Fingerprint

OS Fingerprinting

| Kommentar hinterlassen

OS Fingerprinting versucht das Betriebssystem eines entfernten Servers zu erkennen. Das Vorgehen ist ähnlich wie bei der Dienst-Erkennung. Hinzu kommt das TCP/IP Stack Fingerprinting: Hier sendet der Angreifer speziell formatierte Pakete, wobei bekannt ist, dass bestimmte Implementierungen des Stacks anders reagieren. Kombinierte Proben geben so wiederum Hinweise auf die Plattform des Zielsystems.

Fingerprinting ist keine exakte Wissenschaft und arbeitet mit Wahrscheinlichkeiten. Falls ein Scanner also das falsche Betriebssystem ausweist, ist dies als verhinderter Informationsabfluss also positiv zu werten.

Es gibt durchaus Möglichkeiten, die Erkennung einer Plattform zu erschweren. Jedoch sind dazu meist tiefe Eingriffe in das Betriebssystem nötig. Um gewisse Eigenschaften des TCP/IP Stacks zu verändern, könnte man zum Beispiel folgende Optionen anpassen:

  • TCP Initial Sequence Number (ISN)
  • TCP initial window size
  • TCP options (their types, values and order in the packet)
  • IP ID numbers

Diese sogenannten Flags der Protokolle lassen sich bei Linux-/Unix-basierten Systemen über Kernel Parameter oder durch Manipulation des Source Codes verändern.

Unter Linux hat man weiter die Möglichkeit, Pakete mit folgenden Optionen zu verwerfen:

  • Pakete mit SYN und FIN aktiv
  • Pakete mit einem Reserve-Bit aktiv im TCP Header
  • Pakete, welche nicht ein ACK, SYN, RST oder FIN Flag aktiv haben
  • Pakete mit FIN, PUSH und URG

Die aufgelisteten Pakete sind gemäss TCP Standard ungültig. Meist werden aus Performancegründen Pakete nur teilweise validiert. Werden solche Pakete aber verworfen, wird die automatische Plattform-Erkennung erschwert.

Interessante weiterführende Informationen zu OS Fingerprinting finden Sie bei nmap.

Schreiben Sie einen Kommentar

Required fields are marked *.