Zielgruppe BetriebVersion: GSB10.1Angriffe über das Netzwerk
Unter einem Angriff über das Netzwerk versteht man eine Attacke, die unter der Nutzung von Funktionalitäten der eingesetzten Netzwerkprotokolle auf Netzwerkkomponenten, Computersysteme und/oder Applikationen stattfindet.
Es existieren mehrere Möglichkeiten, IT-Systeme in ihrer Funktionsweise zu manipulieren oder zu schädigen bzw. einen Angriff auf IT-Systeme vorzubereiten. Bei Webangeboten stellen Angriffe über das Netzwerk eine wesentliche Bedrohungskomponente dar, die im vorliegenden Dokument eingehender betrachtet werden.
Zu den häufig durchgeführten Angriffen über das Netzwerk zählen die in den folgenden Kapiteln aufgeführten Attacken.
Denial of Service
Als Denial of Service (DoS) wird ein Angriff auf einen Server bezeichnet, der das Ziel hat, einen oder mehrere seiner Dienste arbeitsunfähig zu machen. In der Regel geschieht dies durch Überlastung. Erfolgt der Angriff koordiniert von einer größeren Anzahl anderer Systeme aus, so spricht man von Verteilter Dienstblockade bzw. DDoS (Distributed Denial of Service). Normalerweise werden solche Angriffe nicht per Hand, sondern mit entsprechenden „Hilfs“-Programmen durchgeführt, welche sich von automatisiert auf anderen Rechnern im Netzwerk verbreiten und dadurch dem Angreifer weitere Wirte zum Ausführen seiner Angriffe bringen.
Buffer Overflows
Im Wesentlichen werden bei einem Buffer Overflow (Pufferüberlauf) durch Fehler im Programm zu große Datenmengen in einen dafür zu kleinen Speicherbereich geschrieben, wodurch dem Ziel-Speicherbereich nachfolgende Informationen im Speicher überschrieben werden. Das kann zu einem Absturz des betreffenden Programms, zur Verfälschung von Anwendungsdaten oder zur Beschädigung von Datenstrukturen der Laufzeitumgebung des Programms führen. Durch die Beschädigung von Datenstrukturen kann beispielsweise die Rücksprungadresse eines Unterprogramms mit beliebigen Daten überschrieben werden. Falls ein Angreifer auf diese Weise einen Datensatz mit Maschinencode übermittelt, kann dieser Maschinencode wiederum mit den Privilegien des für den Pufferüberlauf anfälligen Prozesses ausgeführt werden. Der Maschinencode hat in der Regel das Ziel, dem Angreifer einen Zugang zum System zu verschaffen, damit dieser das System dann für seine Zwecke verwenden kann.
Cookie-Diebstahl
Ein Browser-Cookie bezeichnet Informationen, die ein Webserver zu einem Browser sendet, die dann der Browser wiederum bei Zugriffen auf denselben Webserver zurücksendet. Mit Cookies ist das zustandslose Hypertext Transfer Protocol (HTTP) um die Möglichkeit erweitert, Informationen zwischen Aufrufen zu speichern. Das Cookie wird bei jedem Webzugriff vom Browser an den Server geschickt und identifiziert die jeweilige Session.
Mit Cookies können auch Sessions realisiert werden. Dazu wird in einem Cookie vom Server eine eindeutige Session-ID gespeichert, um genau diesen Client bei weiteren Aufrufen wieder zu erkennen, so dass z.B. nicht bei jedem Aufruf einer Unterseite das Passwort erneut eingegeben werden muss.
Damit besteht beispielsweise in Umgebungen, in denen mehrere Nutzer denselben Rechner teilen, gegebenenfalls die Gefahr, dass ein noch gültiger Session-Cookie vom nächsten Nutzer des Rechners verwendet wird, um diese Session fortzusetzen bzw. zu übernehmen und in dessen Namen und mit dessen Rechten zu agieren.
Shell-Kommandos ausführen
Immer dann, wenn die Anwendung User-Eingaben ungeprüft als Parameter an Shellaufrufe übergibt, typischerweise in untainted Perl oder Shell-Programmen, kann der Angreifer fast beliebige Kommandos durch entsprechendes Füllen von Formularfeldern zur Ausführung bringen, etwa das Mailen der /etc/passwd.
Cross-Site Scripting (XSS)
Cross Site Scripting (XSS)-Angriffe sind ein bekanntes und immer wiederkehrendes Problem bei vielen Webanwendungen. Unter Cross Site Scripting versteht man die Manipulation der Benutzereingaben, die an eine Web-Anwendung übergeben werden können. Durch Ausnutzung von Sicherheitslücken in der Anwendung kann ein Angreifer dadurch unter anderem schädlichen Programmcode in eine für den Benutzer normalerweise korrekte Umgebung einbetten.
Hinter dem Begriff Cross-Site Scripting verbergen sich zwei grundsätzlich unterschiedliche Angriffsformen.
- Beim serverseitigen Cross-Site Scripting wird versucht, Code auf dem Server auszuführen. Unter bestimmten Umständen ist es möglich, Dateien von anderen Rechnern einzubinden, d. h. insbesondere auch von einem Rechner eines Angreifers. Wird ein lokales Programm mit benutzer-manipulierbaren Parametern aufgerufen und werden die Parameter nicht entsprechend gefiltert, ist es möglich, weitere Programme aufzurufen. So können etwa Dateien geändert oder sensible Daten ausgespäht werden.
- Beim clientseitigen Cross-Site Scripting wird Code auf Seite des Clients ausgeführt, etwa dem Webbrowser oder E-Mail-Programm. Daher muss der Angreifer seinem Opfer einen präparierten Hyperlink zukommen lassen, den er zum Beispiel in eine Webseite einbindet oder in einer E-Mail versendet.
Session Fixation
Session-Fixation-Attacken oder auch Session-Hijacking-Attacken ermöglichen es einem Angreifer eine Session des Opfers zu übernehmen bzw. dem Opfer eine Session unterzuschieben. Anfällig für Session-Fixation-Attacken sind prinzipiell alle Webapplikation die nach erfolgreicher Anmeldung eines Nutzers keine neue Session erzeugen.
In dem Fall kann der Angreifer dem Opfer eine gültige Session-ID unterschieben, die nach Anmeldung des Opfers durch den Angreifer genutzt werden kann.
SQL-Injection
SQL-Injection bezeichnet das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken. Der Angreifer versucht über die Anwendung, die den Zugriff auf die Datenbank bereitstellt, eigene Datenbankbefehle einzuschleusen. Durch den gezielten Einsatz von Funktionszeichen kann ein Angreifer weitere SQL-Anforderungen einschleusen oder die Abfragen so manipulieren, dass zusätzliche Daten ausgegeben werden. Sein Ziel ist es dabei, Kontrolle über die Datenbank oder den Server zu erhalten und damit User-Daten oder sensible Unternehmensinformationen abzugreifen.
Hidden-Field Manipulation
Auf Webseiten werden oft so genannte „versteckte Felder“ eingesetzt (Hidden-Fields). In diesen Felder werden spezielle Parameter in einer Webseite gespeichert, die für den Anwender normalerweise nicht sicht-/änderbar sind.
Durch Manipulation der in den versteckten Feldern übergebenen Daten kann ein Angreifer unter Umständen sensible Daten ändern oder ausspähen.