Sicherheit: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 37: Zeile 37:


== Lücken, Angriffstechniken, Schadprogramme ==
== Lücken, Angriffstechniken, Schadprogramme ==
Nicht jeder Programmierfehler ist auch eine Sicherheitslücke. Um als solche zu gelten, muss der Fehler einem Benutzer mehr Rechte geben als diesem zustehen. Gelingt der Angriff von aussen über das Netz, so heisst das "entfernte Schwachstelle" (engl. remote vulnerability). Bei "lokalen Sicheheitslücken" (engl. local vulnerability) erhält ein Benutzer die Rechte eines anderen Benutzers - im schlimmsten Fall die von Benutzer "root".
Sicherheitslücken in Server-Programmen gelten als besonders kritisch, da sich Schädlinge über das lokale Netz oder Internet mit dem Server verbinden und die Sicherheitslücke ausnützen können. Erschwerend kommt hinzu, dass Server-Programme oft mit den Rechten des Benutzers "root" laufen, sodass der Schädling nach einem erfolgreichen Angriff gleich den ganzen Rechner übernehmen kann. Zwar kann der Schädling nicht immer gleich die Rechte von Benutzer "root" erlangen, aber befindet er sich selbst als unprivilegierter Benutzer erst einmal auf dem Rechner, so kann er sich über andere Sicherheitslücken womöglich schrittweise bis zu den Rechten von Benutzer "root" vorarbeiten.


=== Authentication error ===
=== Authentication error ===
Zeile 52: Zeile 56:
=== [[Denial of Service]] / DoS ===
=== [[Denial of Service]] / DoS ===


Der Angreifer legt einen [[Netzwerkdienst]] lahm. Er erhält zwar keine Kontrolle über das Programm, aber der Absturz fällt mindestens lästig. Womöglich kostet er auch Geld, was DoS-Angriffe für Erpresser interessant macht.
Der Angreifer legt einen [[Netzwerkdienst]] lahm. Er erhält zwar keine Kontrolle über das Programm, aber der Absturz fällt mindestens lästig. Womöglich kostet er auch Geld, was DoS-Angriffe für Erpresser interessant macht. Daneben gibt es auch Distributed Denial of Service / DDoS-Angriffe, bei denen der Zielrechner von mehreren Rechnern aus dem Internet gleichzeitig angegriffen wird.


=== Dot-Dot-Bug ===
=== Dot-Dot-Bug ===
Zeile 120: Zeile 124:
== Weblinks ==
== Weblinks ==


{{Weblinks|{{url_dewikipedia|Computersicherheit|Computersicherheit}}
{{Weblinks}}
{{url_dewikipedia|Computersicherheit|Computersicherheit}}
{{url_dewikipedia|Informationssicherheit|Informationssicherheit}}
{{url_dewikipedia|Informationssicherheit|Informationssicherheit}}
{{url_dewikipedia|Netzwerksicherheit|Netzwerksicherheit}}
{{url_dewikipedia|Netzwerksicherheit|Netzwerksicherheit}}
Zeile 129: Zeile 134:
{{url|US|Sourceforge|ger|http://nagios.sourceforge.net/download/contrib/documentation/german/1_0/|Nagios Version 1.0 Dokumentation}}
{{url|US|Sourceforge|ger|http://nagios.sourceforge.net/download/contrib/documentation/german/1_0/|Nagios Version 1.0 Dokumentation}}
{{url|US|James Maurer|eng|http://www.auditmypc.com/|Audit my PC}}
{{url|US|James Maurer|eng|http://www.auditmypc.com/|Audit my PC}}
}}
{{Fuss}}


=== Alte Weblinks ===
=== Alte Weblinks ===


{{Weblinks|{{wbm|US|Network Solutions|eng|http://www.fish.com/satan/|SATAN}}
{{Weblinks}}
{{wbm|US|Network Solutions|eng|http://www.fish.com/satan/|SATAN}}
{{wbm|DE||ger|http://www.ztt.fh-worms.de/de/seminararbeiten/ws95_96/satan/script/satan_inst.html|SATAN : Sicherheitslücken spielend beherrschen?}}
{{wbm|DE||ger|http://www.ztt.fh-worms.de/de/seminararbeiten/ws95_96/satan/script/satan_inst.html|SATAN : Sicherheitslücken spielend beherrschen?}}
}}
{{Fuss}}





Aktuelle Version vom 28. November 2010, 14:50 Uhr

Sicherheit ist ein weiter Begriff...

Als Informationssicherheit werden Eigenschaften von informationsverarbeitenden und -lagernden Systemen bezeichnet, welche die Vertraulichkeit, Verfügbarkeit und Integrität sicherstellen. Informationssicherheit dient dem Schutz vor Gefahren bzw. Bedrohungen, der Vermeidung von Schäden und der Minimierung von Risiken. In der Praxis orientiert sich die Informationssicherheit heute meist an der ISO Standard-Reihe 2700x. Der Begriff bezieht sich oft auf eine globale Informationssicherheit, bei der die Zahl der möglichen schädlichen Szenarien summarisch verringert ist oder der Aufwand zur Kompromittierung für den Betreiber in einem ungünstigen Verhältnis zum erwarteten Informationsgewinn steht. In dieser Sichtweise ist die Informationssicherheit eine ökonomische Grösse, mit der etwa in Betrieben und Organisationen gerechnet werden muss. Daneben bezieht sich der Begriff auch auf die Sicherheit unter einem bestimmten Szenarium. In diesem Sinn liegt Informationssicherheit vor, wenn über einen bereits bekannten Weg kein Angriff auf das System mehr möglich ist. Man spricht von einer binären Grösse, weil die Information beim Anwenden dieser speziellen Methode entweder sicher oder nicht sicher sein kann. Die Informationssicherheit umfasst neben der Sicherheit der IT-Systeme und der darin gespeicherten Daten auch die Sicherheit von nicht elektronisch verarbeiteten Informationen.

Netzwerksicherheit (auch: Netzsicherheit) ist kein einzelner feststehender Begriff, sondern umfasst alle Massnahmen zur Planung, Ausführung und Überwachung der Sicherheit in Rechnernetzen. Diese Massnahmen sind nicht nur technischer Natur, sondern beinhalten auch organisatorische Fragestellungen (etwa Richtlinien, in denen geregelt wird, was die Betreiber des Rechnernetzes dürfen), betriebliche Fragestellungen (Wie kann ich Sicherheit im Rechnernetz in der Praxis anwenden, ohne gleichzeitig den Ablauf des Betriebs zu stören?) und endet nicht zuletzt mit rechtlichen Fragestellungen (Was für Massnahmen dürfen eingesetzt werden?).

System-Scanner

System-Scanner decken Systemschwachstellen auf.

Firewall

Einbruchserkennung

Einbruchserkennung erfolgt mit Hilfe von Einbruchserkennungssystemen (engl. Intrusion Detection System / IDS), die in zwei Arten unterschieden werden:

  • Regelbasierte Systeme basieren auf Bibliotheken und Datenbanken mit bekannten Angriffen und Angriffssignaturen. Die Aktualität ist naturgemäss nicht immer gegeben.
  • Adaptive Systeme wenden fortschrittlichere Techniken (z. B. künstliche Intelligenz) an, um nicht nur bekannte Angriffssignaturen zu erkennen, sondern auch neue kennenzulernen. Solche Systeme sind teuer und schwierig zu verwalten.

Im Fall eines Einbruchs können auch folgende Techniken nützlich sein. Diese Techniken taugen allerdings nichts, wenn vom Einbrecher ein Rootkit installiert wurde, das den Kernel bereits so verändert hat, dass die Informationen über bestimmte Prozesse gar nicht erst bereitgestellt werden.

  • Erstellen einer Liste von Prozessen mittels "ps gauxwww". Dabei werden alle Prozesse und alle Aufrufargumente mit allen Optionen angezeigt. Ähnliches kann auch mit folgendem Skript aus "/proc" ausgelesen werden, wenn dem Befehl ps nicht mehr zu trauen ist:
#!/bin/bash
cd /proc
for p in [0-9]*
  do
  proc=$(cat $pcmdline)
  user=$(ls -ld $p | cut -d\  -f3)
  echo "$user $p $proc"
  done
  • "netstat --ip -pan" zeigt alle lokalen IP-Sockets, deren Protokoll (TCP oder UDP) und allenfalls einen Kommunikationspartner bei verbundenen Sockets an. DER Schalter "-n" verhindert dabei, dass das DNS die IP-Adressen in Namen auflöst und so für den Einbrecher verdächtiger Netzverkehr zum Nameserver entsteht. Im Zweifelsfall lassen sich die IP-Adressen auch später noch auflösen. Mehr Informationen über die IP-Adressen zeigen die Befehle whois und traceroute. Allerdings muss der Ausgabepunkt einer TCP- oder UDP-Verbindung nicht mit dem Standort des Angreifers übereinstimmen, da oft andere gekaperte Systeme als Sprungbrett für Angriffe benutzt werden.

Lücken, Angriffstechniken, Schadprogramme

Nicht jeder Programmierfehler ist auch eine Sicherheitslücke. Um als solche zu gelten, muss der Fehler einem Benutzer mehr Rechte geben als diesem zustehen. Gelingt der Angriff von aussen über das Netz, so heisst das "entfernte Schwachstelle" (engl. remote vulnerability). Bei "lokalen Sicheheitslücken" (engl. local vulnerability) erhält ein Benutzer die Rechte eines anderen Benutzers - im schlimmsten Fall die von Benutzer "root".

Sicherheitslücken in Server-Programmen gelten als besonders kritisch, da sich Schädlinge über das lokale Netz oder Internet mit dem Server verbinden und die Sicherheitslücke ausnützen können. Erschwerend kommt hinzu, dass Server-Programme oft mit den Rechten des Benutzers "root" laufen, sodass der Schädling nach einem erfolgreichen Angriff gleich den ganzen Rechner übernehmen kann. Zwar kann der Schädling nicht immer gleich die Rechte von Benutzer "root" erlangen, aber befindet er sich selbst als unprivilegierter Benutzer erst einmal auf dem Rechner, so kann er sich über andere Sicherheitslücken womöglich schrittweise bis zu den Rechten von Benutzer "root" vorarbeiten.

Authentication error

Das Programm prüft die Identität des Benutzers nicht ausreichend.

Buffer Overflow / Boundary Error

Bei diesem Programmierfehler kopiert ein Programm Daten in einen zu kleinen Speicherbereich und überschreibt die dort vorhandenen Werte. Wenn die Daten vom Angreifer stammen, dann kontrolliert er damit Speicherstellen, auf die er normalerweise keinen Einfluss hätte. Das kann er ausnutzen, um eigenen Code einzuschleusen und so die Kontrolle über den Prozess zu übernehmen.

Cross Site Scripting

Javascript-Befehle dürfen nur auf diejenige Webanwendung zugreifen, für die sie gedacht sind. Durch Fehler in Webanwendungen und in den Browsern gelingt es einem Angreifer, seinen Code im Kontext einer fremden Seite laufen zu lassen und so z. B. an Authentifizierungsdaten (Passwörter, Cookies) zu gelangen.

Denial of Service / DoS

Der Angreifer legt einen Netzwerkdienst lahm. Er erhält zwar keine Kontrolle über das Programm, aber der Absturz fällt mindestens lästig. Womöglich kostet er auch Geld, was DoS-Angriffe für Erpresser interessant macht. Daneben gibt es auch Distributed Denial of Service / DDoS-Angriffe, bei denen der Zielrechner von mehreren Rechnern aus dem Internet gleichzeitig angegriffen wird.

Dot-Dot-Bug

Häufig anzutreffen in Webanwendungen. Durch Folgen von "../../" bricht der Angriefer aus dem gewollten Dokumentenverzeichnis aus und greift auf Dateien zu, die er eigentlich nicht erreichen dürfte.

Eingabekontrollfehler (Input Validtion Error)

Oberbegriff für lle Programmierfehler, bei denen der Entwickler Benutzereingaben zu vertrauensselig behandelt.

Entfernte Lücke (Remote Vulnerability)

Diese Schwachstelle ist über das Netzwerk ausnutzbar, ohen vorher ein Benutzerkonto auf dem angegriffenen Rechner zu besitzen.

Format-String-Fehler

Hier benutzt ein Programmierer eine Funktion falsch. Im Format-String haben Steuerzeichen (z. B. "%") eine Sonderbedeutung. Stammt der Format-String vom Angreifer, verhilft ihm das zu ähnlichen Angriffsmöglichkeiten wie beim Buffer Overflow.

Konfigurationsfehler

Manchmal ist nicht das Programm selbst fehlerhaft, sondern nur seine Einstellungen. Dazu gehören auch falsch gesetzte Dateizugriffsrechte.

Lokale Lücke

Um diese Sicherheitslücke auszunutzen, muss der Angreifer bereits einen Login auf dem Rechner haben.

Makrovirus

Rechnervirus, der Dokumente befällt. Viele Dateitypen können Makros enthalten, die ein Editor oder Dateibetrachter als Code ausführt.

PHP-Include-Fehler

Der Angreifer schafft es, eigene PHP-Anweisungen in eine fremde Webanwendung einzuschleusen. Diese Befehle laufen dann mit den Rechten der Webanwendung.

Race Condition

Das sind Lücken, die nur für einen sehr kurzen Zeitraum ausnutzbar sind. Angreifer können das Wettrennen gegen ihre Opfer aber gewinnen. Beispielsweise bei Symlink-Schwachstellen anzutreffen: viele Programme prüfen zwar, ob der Name noch frei ist, zwischen Prüfen und Schreiben verstreicht aber eine (beliebig kurze) Zeitspanne.

Root Access

Der Angreifer erlangt die Rechte des Benutzers "root" und kann so mit allen Rechten auf das gesamte Betriebssystem zugreifen.

SQL Code Injection

Eine Webanwendung nutzt eine Datenbank. In die SQL-Abfragen bettet sie Daten ein, welche vom Angreifer stammen. Der schafft es durch geschickten Einsatz von Sonderzeichen, den SQL-Befehl mit eigenen Befehlen zu erweitern, und erhält damit Kontrolle über den Inhalt der Datenbank.

Symlink-Schwachstelle

Legt ein Programm Dateien in einem Verzeichnis ab, in dem auch potentielle Angreifer Schreibrecht haben (z. B. "/tmp"), dann plazieren Bösewichte vorher einen Symlink mit gleichem Namen. Unvorsichtige Programme überschreiben dann die verlinkte Datei.

Trojanisches Pferd

In einem harmlos wirkenden Programm verborgene Schadfunktion.

Wurm

Selbständig laufendes Schadprogramm, das sich aus eigenem Antrieb verbreitet. Es nutzt dazu Schwachstellen in anderen Programmen.

Virus

Diese Schadsoftware befällt ein Wirtsprogramm und kommt fortan als Teil dieses Programms zur Ausführung.

Literatur

  • Othmar Kyas: IT crackdown. - Bonn : MITP, 2000

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wikipedia ger Computersicherheitwbm Enzyklopädischer Artikel
Wikipedia ger Informationssicherheitwbm Enzyklopädischer Artikel
Wikipedia ger Netzwerksicherheitwbm Enzyklopädischer Artikel
Tenable Network Security eng Nessus : the network vulnerability scannerwbm
Linux Mafia eng Satan on Linuxwbm
Saint Corporation eng Saint : network vulnerability scanner and penetration testing toolwbm Verbesserte Version von SATAN
Nagios Enterprises eng Nagioswbm Verbesserte Version von Saint
Sourceforge ger Nagios Version 1.0 Dokumentationwbm
James Maurer eng Audit my PCwbm

Alte Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Network Solutions eng SATAN
http://www.fish.com/satan/
ger SATAN : Sicherheitslücken spielend beherrschen?
http://www.ztt.fh-worms.de/de/seminararbeiten/ws95_96/satan/script/satan_inst.html