Vorlesungsreihe Computersicherheit
Teil IV: Auswertung von Software und Betriebssystemen mittels Fingerprinting
Winterquartal 2004/2005

Mittwoch, 10. November 2004

Marc Ruef
marc.ruef at computec dot ch
http://www.computec.ch

technikkurse.ch
c/o Handelsschule Dr. Raeber
Bederstrasse 4, 8027 Zürich
http://www.technikkurse.ch

Stichworte

Zusammenfassung

Nach dem Erkennen möglicher Angriffsziele mittels Mapping (z.B. Ping-Mapping) gilt es für einen Angreifer die eingesetzte Software und das genutzte Betriebssystem auszumachen. Zu diesem Zweck wird Fingerprinting, eine spezielle Form des Auswertens (engl. enumeration) betrieben. Dabei werden die typischen Merkmale einer Lösung zu identifizieren versucht, um eine Determinierung des eingesetzten Produkts und der genutzten Version ausfindig zu machen. Wenn die installierte Software identifiziert werden kann, können weitere Zugriffe, generische Auswertungen und Angriffe angestrebt werden.

Durch verschiedene Techniken des OS-Fingerprintings wird das auf dem Zielsystem eingesetzte Betriebssystem erkannt. Dies umfasst zum Beispiel das Analysieren der Port-Stati, um typische Konfigurationen spezifischer Systeme ausmachen zu können. Ebenfalls können Banner und typisches Verhalten von Applikationen Rückschlüsse auf das Betriebssystem geben. Durch das TCP/IP-Fingerprinting wird der Protokoll-Stapel auf spezifisches Verhalten, das Rückschlüsse auf das Betriebssystem geben könnte, untersucht [Fyodor 1998, Ruef et al. 2002].

Durch das Auswerten spezifischer Applikationen sollen auch hier die eingesetzten Lösungen samt Versionen und Patch-Level identifiziert werden. Portscanning ist der erste Schritt zur Identifizierung einer angebotenen Netzwerkapplikation. Danach kann über verschiedene Auswertungstechniken, zum Beispiel den Anwendungs-Banner mittels Banner-Grabbing abfangen, die eingesetzte Anwendung identifiziert werden [Ruef 2001, Ruef et al. 2002, McClure et al. 2003].

Konnten diese Informationen eingeholt und analysiert werden, kann über öffentliche Datenbanken potentielle Schwachstellen herausgefunden werden. Das Verifizieren oder direkte Umsetzen dieser wäre sodann der nächste Schritt eines Angriffs.

Vorstudium

Die folgenden Publikationen gelten als empfohlene Lektüre des Vorstudiums für diese Vorlesung. Die umfassendste Einführung in das Thema Auswertung wurde erstmals in [McClure 2003] publiziert, weshalb die Durchsicht dessen am ehesten angeraten ist. Es existieren verschiedene Auflagen, wobei die aktuellste aufgrund einiger Umstrukturierungen und Erweiterungen zu bevorzugen ist. Die deutsche Übersetzung, die jeweils durch Ian Travis getätigt wird, ist sehr gelungen und ebenfalls empfehlenswert. Eine vergleichbare Vortragung der Auswertungs-Techniken ist in [Ruef 2001] publiziert worden, das als kostengünstige Alternative gelten kann, da es mittlerweile frei im Internet Verfügbar ist. Das Thema TCP/IP-Fingerprinting wird am besten in [Ruef et al. 2002] dokumentiert, das sich in vielen Punkten an die originale Abschrift [Fyodor 1998] anlehnt. Diese wurde durch Stefan Maly ins Deutsche übersetzt, wird jedoch seit dem 10. April 1999 nicht mehr von ihm aktualisiert (Im Gegensatz zum englischen Original, dessen letzte Aktualisierung am 11. Juni 2002 stattfand.). Entsprechend ist nach Möglichkeit das Lesen des englischen Originals als Ergänzung und Verrtiefung zu [Ruef et al. 2002] angeraten.

Fyodor, 18. Oktober 1998, Remote OS detection via TCP/IP Stack FingerPrinting, http://www.insecure.org/nmap/nmap-fingerprinting-article.html, deutsche Übersetzung durch Stefan Maly, Das Erkennen von Betriebssystemen mittels TCP/IP Stack FingerPrinting, http://www.computec.ch/dokumente/scanning/erkennen_von_betriebssystemen_mittels_stack-fingerprinting/erkennen_von_betriebssystemen_mittels_stack-fingerprinting.txt
Dieses Dokument von Fyodor (Autor von nmap) gilt historisch als eine der mitunter wichtigsten Publikationen im Bereich der Netzwerksicherheit. Darin wurde erstmals ausführlich über die Möglichkeiten des Erkennens eines Betriebssystems anhand der generischen Charakteristika der TCP/IP-Implementierung berichtet. Dieser Text wurde sodann zum Grundbaustein vieler Utilities, die diese Auswertungs-Technik zur Verfügung stellen (z.B. nmap).
McClure, Stuart, Scambray, Joel, Kurtz, 1. Februar 2003, Hacking Exposed, Osborne/McGraw-Hill, ISBN 0072227427, vierte Auflage, deutsche Übersetzung durch Ian Travis, Das Anti-Hacker-Buch, MITP, ISBN 3826613759
Eine sehr detaillierte und tiefgründige Einführung in die Welt der Netzwerksicherheit wartet auf den aufmerksamen Leser dieses sehr umfassenden Buches. Neben den verschiedenen Scanning- und Footprinting-Methoden werden Bufferoverflows, Race-Conditions und Core-Dump-Attacken genau erläutert, wobei der Schwerpunkt des Buches auf Windows NT und UNIX liegt. Nebenbei wird der Leser auch für die komplexe Thematik der Firewalls, VPNs und Netzwerkgeräte vorbereitet und mit höchst amüsanten Gedankenspielen belohnt.
Ruef, Marc, 21. Januar 2001, Die Sicherheit von Windows, Kapitel 3 (Auswertung), http://www.computec.ch/dokumente/windows/sicherheit_von_windows/
Die von unter dem Namen "Die Sicherheit von Windows" publizierte Dokumentation beschäftigt sich mit der Sicherheit von Windows-Systemen und -Netzwerken. Ich habe versucht die verschiedenen Stufen eines Angriffs, sowie die entsprechenden Schutzmassnahmen darzulegen. Dieses Online-Buch wurde von 1999 bis 2001 in die von mir geführten Unterrichte miteinbezogen. Ausserdem nutzen einige Informatik-Schulen "Die Sicherheit von Windows" als Begleitmaterial. Praktisch jeder Neuling auf dem Gebiet der Computersicherheit wird hier solide Informationen zum Thema finden können.
Ruef, Marc, Rogge, Marko, Velten, Uwe, Gieseke, Wolfram, September 2002, Hacking Intern, Kapitel 1.3 (ab Betriebssystem mittels Stack-TCP/IP-Fingerprinting erkennen), Seiten 61 bis 71, Data Becker, Düsseldorf, ISBN 381582284X, http://www.amazon.de/exec/obidos/ASIN/381582284X/
Die drei Unterkapitel beziehen sich erstmals für deutsche Literatur sehr detailliert auf die Möglichkeiten des TCP/IP-Fingerprintings. Zuerst werden die historischen ersten Gehversuche auf diesem Gebiet analysiert, um sodann am Beispiel von nmap die genaue Funktionsweise einzelner Tests zu besprechen. Die von nmap genutzte Betriebssystem-Datenbank wird genauestens angeschaut, um eventuell selber eigene Fingerprints in diese einzufügen oder besser mit false positives umgehen zu können. Als Zusatz wird erstmalig in der deutschen Fachliteratur auf die explizite Funktionsweise von ICMP-Fingerprinting eingegangen.
Voraussetzungen Ablauf

Folgend der angestrebte Ablauf der Vorlesung. Dieser muss nicht exakt eingehalten werden und kann jenachdem in gewissen Punkten (z.B. Pause) mit den Studenten abgestimmt werden.
 
Zeit Thema
18:30-18:50 Betriebssysteme mittels Portscanning erkennen
18:50-19:30 Betriebssysteme mittels Stack-Fingerprinting erkennen
19:30-19:40 Pause
19:40-20:00 Anwendungen mittels Banner-Grabbing erkennen
20:00-20:15 Anwendungen mittels ihrem Verhalten erkennen
20:15-20:30 Diskussion, letzte Fragen, Aufgaben und Ausblick auf die nächste Vorlesung