Montag, 1. März 2010


Topthema

Donnerstag, 20. Juli 2006 | Topthema

About Security #64: Angriffe auf TCP/IP — Schutzmaßnahmen

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/030198)

In dieser Folge geht es um um weitere Schutzmaßnahmen gegen Angriffe auf TCP/IP und das Erkennen von Systemen durch Fingerprinting.

Schutz vor IP Spoofing

Da IP Spoofing (About Security #57) auf einer Designschwäche beruht, kann man es nicht verhindern. Also muss man versuchen, das Beste aus der Situation zu machen und den möglichen Schaden zu begrenzen.

Wenn jedes Teilnetz nur Pakete in andere Netze weiterleitet, die Senderadressen aus dem eigenen Netzwerk tragen, ist IP-Spoofing nur noch im jeweiligen Teilnetz möglich. Außerdem wird so verhindert, dass vom lokalen Teilnetz aus IP-Spoofing-Angriffe gestartet werden. Analog können von außen kommende Pakete mit Senderadresse aus dem lokalen Netz verworfen werden, da sie mit Sicherheit gefälscht ist. Die entsprechenden Maßnahmen sind in RFC 2267 beschrieben.

About Security: Die komplette Serie
Schutz vor ARP Spoofing

Im Gegensatz zum global möglichen IP Spoofing ist ARP Spoofing (About Security #60) ein lokales Problem, da es immer nur im jeweiligen Teilnetz möglich ist. Zu seiner Verhinderung gibt es eine einfache Lösung: Die Verwendung statischer ARP-Einträge. Ihr Nachteil ist, dass bei allen Systemen im jeweiligen Teilnetz alle IP-Adressen mit der jeweils dazu gehörenden MAC-Adresse im ARP-Cache eingetragen werden müssen. Dies führt zu einem erhöhten Verwaltungsaufwand. Oft reicht es aber aus, nur die MAC-Adressen kritischer Systeme wie des Standard-Gateways oder wichtiger Server statisch einzutragen, um die Auswirkungen eines Angriffs zu minimieren.

Eine weitere Möglichkeit ist der Einsatz virtueller LANs (VLANS), durch die das lokale Netz in logische Netzwerksegmente aufgeteilt wird, die untereinander über einen Router kommunizieren. Eine Kommunikation auf Ethernet-Ebene ist nur innerhalb der Segmente möglich, sodass gefälschte ARP-Informationen nur das jeweilige Segment betreffen. Nur der Router als Bestandteil jedes angeschlossenen VLANs ist weiterhin angreifbar. Allerdings ist kein Man-in-the-Middle-Angriff mehr möglich, da ein Angreifer zwar den über den Router in ein anderes VLAN gehenden Netzwerkverkehr zu sich umleiten, die Daten danach aber nicht an den ursprünglichen Empfänger weiterleiten kann.

Außer diesen vorbeugenden Maßnahmen ist auch der Einsatz eines Intrusion-Prevention-Systems möglich, durch das erkannte Angriffe gestoppt werden können.

Schutz vor Hijacking

Gegen TCP- (About Security #59) und andere Hijacking-Angriffe wie z.B. HTTP Hijacking (About Security #62) hilft der Einsatz von Authentifizierungs- und Verschlüsselungssystemen. Allerdings muss bei der Authentifizierung mit besonderer Sorgfalt vorgegangen werden, damit sich kein Angreifer als Man-in-the-Middle einschleichen kann (siehe About Security #62). Beim Einsatz einer Ende-zu-Ende-Verschlüsselung guckt der Angreifer buchstäblich auf die Röhre: Er kann zwar die Verbindung über seinen Rechner umleiten, die verschlüsselt übertragenen Daten aber nicht entschlüsseln.

Fingerprinting

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Unter TCP/IP Fingerprinting versteht man das Erkennen von Systemen anhand ihres TCP/IP-Stacks. Dabei wird ausgenutzt, dass verschiedene Betriebssysteme auf bestimmte TCP/IP-Pakete unterschiedlich reagieren. Beim Fingerprinting wird eine festgelegte Folge von TCP/IP-Paketen an das Zielsystem gesendet und dessen Antworten werden protokolliert. Durch den Vergleich dieser Daten mit den gespeicherten Fingerprints verschiedener Betriebssysteme kann das verwendete System erkannt werden.

Ein Programm zur Durchführung von TCP/IP Fingerprinting-Scans ist der Netzwerkscanner Nmap. Der Entwickler von Nmap, Fyodor, hat einen Artikel veröffentlicht, in dem die zur Bildung des Fingerprints verwendeten TCP/IP-Pakete beschrieben werden: "Remote OS Detection via TCP/IP Fingerprinting (2nd Generation)".

Beim HTTP Fingerprinting wird nicht das Betriebssystem, sondern der eingesetzte Webserver ermittelt. Während TCP/IP Fingerprinting bereits seit dem Ende der 1990er Jahre eingesetzt wird (erste entsprechende Programme erschienen ca. 1997), ist HTTP Fingerprinting eine relative neue Entwicklung. Wo beim TCP/IP Fingerprinting Unterschiede in der Implementierung des TCP/IP-Stacks ermittelt werden, werden beim HTTP Fingerprinting Unterschiede in der Implementierung des HTTP-Protokolls betrachtet.

Das Problem, mit dem HTTP-Fingerprinting zu kämpfen hat, ist die weitgehende Konfigurierbarkeit der Webserver. Während ein Betriebssystem einen TCP/IP-Stack besitzt, der seine Charakteristiken weitgehend unabhängig von der Konfiguration des Systems beibehält, ändern sich die Antworten eines Webservers durch eine einfache Änderung der Konfigurationsdateien oder das Hinzufügen und/oder Entfernen von Plug-ins oder Modulen. So kann z.B. der 'Server'-HTTP-Header, der eigentlich die Identität des verwendeten Webservers enthält, beliebig manipuliert sein. Um den Webserver zu identifizieren, werden Eigenheiten der HTTP-Implementierung getestet, z.B. die Anordnung der HTTP-Header-Felder, die Reaktion auf falsche oder verbotene Anweisungen oder die ausgegebenen Fehlermeldungen. Ein Tool zum HTTP Fingerprinting ist httprint.

In der nächsten Folge geht es um die in About Security #63 erwähnten Botnets.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "Angriffe auf TCP/IP"

Kommentare

Folgende Links könnten Sie auch interessieren