Netzwerk-Grundlagen – Angriffserkennung, Teil 1 Eigenschaften von Netzwerk-Attacken wie DoS, XSS und Buffer Overflows

Autor / Redakteur: Markus Nispel, Enterasys / Stephan Augsten

Die Grundvoraussetzung für Netzwerk-Sicherheit ist, dass man Angriffe auf Ressourcen sowie Endgeräte erkennen und den Angreifer identifizieren kann. In diesem Beitrag befassen wir uns mit den Merkmalen und Eigenschaften der gängigsten Angriffsarten, darunter Denial of Service, Pufferüberlauf und Cross Site Scripting.

Firma zum Thema

Fingerzeig: Ein Angriff aufs Netzwerk lässt sich nur abwehren, wenn man ihn richtig einordnen kann., wenn man um die
Fingerzeig: Ein Angriff aufs Netzwerk lässt sich nur abwehren, wenn man ihn richtig einordnen kann., wenn man um die
( Archiv: Vogel Business Media )

Bevor man Angriffen auf die IT- und Netzwerk-Infrastruktur begegnen kann, muss man verstehen, wie diese Attacken durchgeführt werden und welche Charakteristiken zur Erkennung genutzt werden können. Grundsätzlich kann dabei zwischen den folgenden Angreifertypen unterschieden werden:

  • Automatisierte Angriffe (Viren, Würmer, Trojaner)
  • Toolbasierte Angriffe
  • Gezielte, intelligente, per Hand durchgeführte Angriffe

Automatisierte Angriffe

Schafft es eine Sicherheitslücke in die Nachrichten, kann man davon ausgehen, dass ein Virus oder ein Wurm diese Sicherheitslücke nutzt, um IT-Systeme flächendeckend zu kompromittieren. Sind diese Sicherheitslücken bis dato noch unbekannt oder existiert kein Patch dazu, spricht man häufig von Zero-Day-Attacken.

Die eigentliche Begriff des Zero Day Exploit kommt von der kurzen Zeitspanne zwischen dem Entdecken einer Sicherheitslücke und der Verfügbarkeit eines funktionierenden Angriffs (zumeist eines Exploits). Unabhängig davon, ob die Sicherheitslücke bekannt ist und ob ein Patch für diese Sicherheitslücke exisitert, folgt ein Schadcode, der eine Sicherheitslücke automatisiert ausnutzen soll, zumeist einem bestimmten Schema:

Network Discovery und Zielidentifizierung (optional): Bevor ein (vernünftig programmierter) Wurm oder Virus seinen bösartigen Code an ein Zielsystem sendet überprüft er, ob das Zielsystem überhaupt angreifbar ist. Die Palette der Möglichkeiten, um diese Informationen zu erlangen, reicht vom stupiden Banner Grabbing bis zum intelligten TCP Fingerprint.

Kompromittierung des Zielsystems: Nachdem das Ziel feststeht, wird der schadhafte Code übermittelt. Dies stellt den eigentlichen Angriff dar. Da der durchgeführte Angriff auf eine Vielzahl unterschiedlicher Systeme auf unter Umständen unterschiedlichen Plattformen durchgeführt werden soll, ist der Angriff an sich meistens sehr stupide und einfach zu erkennen.

Weiterverbreitung: Ist das Zielsystem kompromittiert, versucht das Schadprogramm sich weiter im Netzwerk zu verbreiten.

Automatisierte Angriffe können sowohl von Systemen, die mit Anomalie-Erkennung arbeiten, als auch von Signatur-basierenden Systemen erkannt werden.

Inhalt

  • Seite 1: Automatisierte Angriffe
  • Seite 2: Framework-gestützte Angriffe
  • Seite 3: Gezielte Angriffe
  • Seite 4: Buffer Overflows und Cross Site Scripting

Framework-gestützte Angriffe

Vor einigen Jahren setzten Stack- oder Heap-basierende Angriffe noch Programmierkenntnisse in C und Assembler voraus. Heutzutage gibt es eine Vielzahl teils freier Frameworks, die das Ausführen eines Schadprogramms per Knopfdruck ermöglichen.

Frameworks laden bestimmte Angriffsmodule und bieten dem Angreifer die Möglichkeit, die dynamischen Parameter einer Attacke per GUI zu definieren. Dadurch werden die Hürden zum erfolgreichen Durchführen des Angriffs enorm gesenkt. Cyber-Kriminelle, die keine oder nur rudimentäre Programmierkenntnisse besitzen und deshalb entsprechende Tools nutzen, werden als Script-Kiddies bezeichnet.

Zumeist erstellen die Tools einen Exploit, der sich in die folgenden Unterteile aufgliedern lässt:

Socket-Aufbau: Bevor der Angriffscode übermittelt werden kann, muss eine Netzwerkverbindung zum Zielsystem aufgebaut werden.

Shell Code / Angriffscode: Nachdem die Verbindung zum Zielsystem initialisiert worden ist, wird der Angriffscode über den Socket verschickt. Da die Rücksprungadresse und das Offset nicht bekannt sind, werden sehr viele verschiedene Rücksprungadressen durchprobiert. Da bei diesen toolgesteuerten Angriffen oftmals auch die verschiedenen Speichergrößen unbekannt sind, werden sehr viele NOPs (No-Operation-Instruktionen) über das Netzwerk versendet – daraus resultiert ein großer Speicherbedarf für das NOP-Sledge.

Informationsaufbereitung: Sobald der Angriffscode übermittelt wurde, werden die daraus resultierenden Informationen (zum Beispiel der Inhalt bestimmter Dateien des Zielsystems) für den User aufbereitet.

Obwohl die Angriffe, die über diese Frameworks durchgeführt werden, gezielt sind und sich somit von den automatisierten Angriffen unterscheiden, müssen die Angriffsschemata dennoch sehr offen gehalten werden. Nur so kann eine sehr hohe Erfolgsquote garantiert werden. Diese Angriffe sind unter anderem durch folgende Merkmale auffällig:

  • Große NOP-Bereiche
  • Oftmaliges Übermitteln des Angriffscodes (da diese die Rücksprungadresse enthält)
  • Auffällige Offsets
  • Standard Shell Code
  • Unsauberes Beenden des angegriffenen Programms (kein exit(0) innerhalb des Shell Codes)

Diese Angriffe lassen sich am besten durch signaturbasierte Systeme erkennen.

Inhalt

  • Seite 1: Automatisierte Angriffe
  • Seite 2: Framework-gestützte Angriffe
  • Seite 3: Gezielte Angriffe
  • Seite 4: Buffer Overflows und Cross Site Scripting

Gezielte Angriffe

Ein gezielter Angriff zeichnet sich dadurch aus, dass der eigentliche Angriffscode sehr schlank und sauber geschrieben ist und dass die Verbindungen und die Codesprünge sauber geschlossen werden.

Die Rücksprungadresse wird oftmals durch einen ersten Vorabangriff geschätzt, so dass der Angriffscode nicht zu oft über den Socket geschickt werden muss. Je nach zu überschreibendem Puffer kann ein gezielter Angriff mit einem Shell Code von 179 Bytes bis 380 Bytes Gesamtlänge liegen (je nach NOP-Slegde).

Angriffe der neuen Generation (wie Cross Site Scripting) sind zumeist sehr gezielt und können innerhalb eines Paketes erfolgreich übermittelt werden. Aufgrund der verschiedenen Evasionsmöglichkeiten, die sich dem Angreifer bieten um seinen Angriff zu verschleiern, stellen diese fokusierten Attacken die größte Herausforderung an präventive Sicherheitssysteme dar.

Gezielte Angriffe lassen sich am besten durch die Kombination von signaturbasierten Systemen und System Information Management Systemen erkennen. Zur besseren Veranschaulichung wie Angriffe funktionieren, wie sie erkannt und verhindert werden können, folgend die Beschreibung dreier bekannter und weitverbreiteter Angriffsmuster.

1) Denial of Service (DoS)

Denial-of-Service-Attacken gelten oftmals als stupide Attacken von Angreifern, die nicht in der Lage sind, ein System zu kompromittieren und es deshalb einfach „nur“ ausschalten wollen. In Wahrheit sind DoS-Attacken jedoch oftmals „Vorboten“ eines Stack- oder Heap-basierenden Angriffs (Buffer-Overflow-Attacke zur Übernahme des Dienstes) oder dienen dazu, die Netzwerkdienste, die ein ausgeschalteter Service offeriert hat, zu übernehmen.

Beliebte Angriffsziele sind DHCP-Server, die zumeist über Broadcasts angesprochen werden und oftmals keinerlei Authentifizierung unterliegen. Schafft es ein Angreifer, einen DHCP-Server auszuschalten, kann er seinen Dienst übernehmen und in die Netzwerkkonfiguration von Endsystemen eingreifen. Dies kann Einfluss auf die Access-Control-Listen im Netzwerk und auf Update-Verhalten haben (bestimmte Sicherheitsgateway-Systeme installieren Updates über NFSMounts, die sie vom DHCP Server erhalten).

Inhalt

  • Seite 1: Automatisierte Angriffe
  • Seite 2: Framework-gestützte Angriffe
  • Seite 3: Gezielte Angriffe
  • Seite 4: Buffer Overflows und Cross Site Scripting

2) Buffer Overflow

Angriffe, die mit dem Überschreiben von Puffern zusammenhängen, sind für die meisten erfolgreichen Angriffe verantwortlich. Die Tendenz geht jedoch von pufferbezogenen Angriffen weg und hin zu Cross-Site-Scripting-Attacken. Im Folgenden sind einige Gründe hierfür aufgeführt:

  • Sichere Frameworks für Applikationserstellung und Code Access Security
  • Stack-Schutz von Betriebssystemen
  • Stack -chutzmechanismen für Compiler

Um zu verstehen, wie diese Angriffe funktionieren und zu erkennen, warum diese stetig an Bedeutung verlieren, ist es wichtig den Programmablauf auf dem „Stack“ und dem „Heap“ zu verstehen. Dies würde jedoch den Rahmen dieses Kapitels sprengen.

3) Cross Site Scripting (XSS)

Cross-Site-Scripting-Attacken gewinnen stetig an Bedeutung, denn entsprechende Schwachstellen sind extrem einfach für einen Angreifer zu finden und auszunutzen, die Angriffe selbst hingegen lassen sich oftmals sehr schwer erkennen und verhindern. XSS kann zu massiven Problemen bis hin zur Kompromittierung des kompletten Systems führen

XSS-Angriffe sind zumeist im http-, XML- und SOAP-Bereich beheimatet und basieren auf der Dynamik der Programmiersprache mit der bestimmte Dienste, die die genannten Protokolle nutzen, geschrieben sind.

Um zu verstehen, wie Cross Site Scripting funktioniert, muss der Unterschied zwischen Hochsprachen und Skriptsprachen verdeutlicht werden. Ein in einer Hochsprache (z.B. C) geschriebenes Programm wird vor Beginn der ersten Ausführung kompiliert – grobe Fehler werden also schon bei der Erstellung des Programms erkannt.

Ein Skript wird hingegen vereinfacht gesagt zeilenweise ausgeführt (vom Interpreter). Kommt es zu einem Fehler oder einer falschen Anweisung, dann endet das Skript in einer bestimmten Zeile. Ferner ist es bei Skriptsprachen möglich, Codes während der Laufzeit einzubinden.

Durch Fehler innerhalb des dynamischen Codes ist der Angreifer in der Lage, den eigenen Code in die Webapplikation einzuschleusen (Skript Code oder Datenbanksteuerungsbefehle). Dies kann er zum Beispiel durch das Manipulieren bestimmter URL Variablen erreichen, die zur Laufzeit Teil des ausführenden Codes werden.

Eine genauere, intensive Betrachtung der verschiedenen Angriffsmuster wird im Enterasys Networks Pre-Sales-Training vermittelt. Dort werden neben den hier genannten Angriffsschemata auch Man-in-the-Middle-Attacken und Protokollangriffe detailliert behandelt. In den kommenden Artikeln werden wir uns der Angriffserkennung mit Intrusion-Detection-Systemen (IDS) widmen.

Inhalt

  • Seite 1: Automatisierte Angriffe
  • Seite 2: Framework-gestützte Angriffe
  • Seite 3: Gezielte Angriffe
  • Seite 4: Buffer Overflows und Cross Site Scripting

Über den Autor

(Archiv: Vogel Business Media)

Markus Nispel ist als Vice President Solutions Architecture zuständig für die strategische Produkt- und Lösungsentwicklung bei Enterasys. Sein Fokus liegt auf dem Ausbau der Sicherheits- und dort insbesondere der Network-Access-Control-Lösung (NAC) von Enterasys; hier zeichnet er als Architekt verantwortlich. Diese Position knüpft an seine vorherige Tätigkeit bei Enterasys als Director Technology Marketing an. Bereits hier war er intensiv in die weltweite Produktentwicklung und -strategie von Enterasys im Office des CTO involviert. Darüber hinaus berät er Key Accounts in Zentraleuropa, Asien und dem mittleren Osten bei strategischen Netzwerkentscheidungen und verantwortet die technischen Integrationsprojekte zwischen Enterasys und der Siemens Enterprise Communications Group.

In Zentraleuropa und Asien verantwortet er zudem das Security Business Development und steht mit einem Team an Security Spezialisten für die Implementierung von Security Projekten mit höchsten Anforderungen bereit.

Vor seiner Tätigkeit für Enterasys Networks war Markus Nispel als Systems Engineer bei Cabletron Systems aktiv. Hier führte er 1998 die ersten Layer 3 Switches für den europäischen Kundenstamm ein.

Markus Nispel studierte an der Fachhochschule der Deutschen Telekom in Dieburg und schloss sein Studium 1996 als Dipl.-Ing. Nachrichtentechnik erfolgreich ab. Erste Berufserfahrung sammelte er unter anderem bei der E-Plus Mobilfunk GmbH innerhalb der Netzwerkoptimierungsgruppe für DCS Mobile Networks.

(ID:2046770)