Identifikationstests für Betriebssysteme
Vor dem Start eines Exploits kann ein Angreifer den Zielhost untersuchen und versuchen, sein Betriebssystem kennenzulernen. Verschiedene Betriebssysteme reagieren unterschiedlich auf TCP-Anomalien. Mit diesem Wissen kann ein Angreifer entscheiden, welcher weitere Angriff dem Gerät, dem Netzwerk oder beidem mehr Schaden zufügen könnte. Weitere Informationen finden Sie in den folgenden Themen:
Grundlegendes zu Betriebssystemidentifikationstests
Vor dem Start eines Exploits könnten Angreifer versuchen, den Zielhost zu sondieren, um sein Betriebssystem (OS) kennenzulernen. Mit diesem Wissen können sie besser entscheiden, welchen Angriff sie starten und welche Schwachstellen sie ausnutzen möchten. Junos OS kann Aufklärungssonden blockieren, die üblicherweise zum Sammeln von Informationen über Betriebssystemtypen verwendet werden.
Grundlegendes zu Domain Name System Resolve
Vor Junos OS Version 12.1X47 wurde die DNS-Auflösung nur mit UDP als Transport durchgeführt. Nachrichten, die von UDP übertragen werden, sind auf 512 Byte beschränkt. längere Nachrichten werden abgeschnitten und das Datenverkehrsklassenbit (TC) wird im Header festgelegt. Die maximale Länge von UDP-DNS-Antwortnachrichten beträgt 512 Byte, die maximale Länge von TCP-DNS-Antwortnachrichten beträgt jedoch 65.535 Byte. Ein DNS-Resolver weiß, ob die Antwort vollständig ist, wenn das TC-Bit im Header gesetzt ist. Daher kann eine TCP-DNS-Antwort mehr Informationen enthalten als eine UDP-DNS-Antwort.
Es gibt drei Arten von DNS-Auflösungsverhalten:
UDP-DNS-Auflösung
TCP-DNS-Auflösung
UDP/TCP-DNS-Auflösung
Eine Richtlinie verwendet die UDP/TCP-DNS-Auflösung, um IP-Adressen aufzulösen. Bei der UDP/TCP-DNS-Auflösung wird zuerst die UDP-DNS-Auflösung verwendet, und wenn sie abgeschnitten wird, wird die TCP-DNS-Auflösung verwendet.
Eine Routingmodulrichtlinie unterstützt maximal 1024 IPv4-Adresspräfixe und 256 IPv6-Adresspräfixe, die an die PFE gesendet werden können. Wenn die maximale Anzahl von IPv4- oder IPv6-Adresspräfixen die Grenzwerte überschreitet, werden die Adressen, die über den Einschränkungen liegen, nicht an die PFE gesendet, und es wird eine Syslog-Meldung generiert. Die maximale Anzahl von Adressen in einer TCP-DNS-Antwort beträgt 4094 für IPv4-Adressen und 2340 für IPv6-Adressen, aber nur 1024 IPv4-Adressen und 256 IPv6-Adressen werden in die PFE geladen.
Grundlegendes zu TCP-Headern mit gesetzten SYN- und FIN-Flags
Sowohl die SYN- als auch die FIN-Steuerflags werden normalerweise nicht im selben TCP-Segment-Header gesetzt. Das SYN-Flag synchronisiert Sequenznummern, um eine TCP-Verbindung zu initiieren. Das FIN-Flag zeigt das Ende der Datenübertragung an, um eine TCP-Verbindung zu beenden. Ihre Zwecke schließen sich gegenseitig aus. Ein TCP-Header, bei dem die Flags SYN und FIN festgelegt sind, ist ein anomales TCP-Verhalten, das je nach Betriebssystem unterschiedliche Antworten des Empfängers hervorruft. Siehe Abbildung 1.

Ein Angreifer kann ein Segment mit beiden gesetzten Flags senden, um zu sehen, welche Art von Systemantwort zurückgegeben wird, und dadurch festzustellen, welche Art von Betriebssystem sich auf der Empfängerseite befindet. Der Angreifer kann dann alle bekannten Systemschwachstellen für weitere Angriffe nutzen.
Wenn Sie diese Bildschirmoption aktivieren, prüft Junos OS, ob die SYN- und FIN-Flags in TCP-Headern festgelegt sind. Wenn es einen solchen Header entdeckt, verwirft es das Paket.
Junos OS unterstützt TCP-Header mit SYN- und FIN-Flags, die Schutz für IPv4- und IPv6-Datenverkehr festlegen.
Beispiel: Blockieren von Paketen mit gesetzten SYN- und FIN-Flags
In diesem Beispiel wird gezeigt, wie ein Bildschirm zum Blockieren von Paketen erstellt wird, bei denen die SYN- und FIN-Flags festgelegt sind.
Anforderungen
Bevor Sie beginnen, sollten Sie sich mit der Funktionsweise von TCP-Headern mit SYN- und FIN-Flags vertraut machen. Weitere Informationen finden Sie unter Grundlegendes zu TCP-Headern mit gesetzten SYN- und FIN-Flags.
Übersicht
Der TCP-Header mit den gesetzten SYN- und FIN-Flags verursacht je nach ausgeführtem Betriebssystem unterschiedliche Antworten von einem Zielgerät. Der Syn-Fin-Bildschirm ist für die Sicherheitszone aktiviert.
In diesem Beispiel erstellen Sie einen Bildschirm mit dem Namen screen-1 in einer Sicherheitszone, um Pakete mit den Flags SYN und FIN zu blockieren.
Topologie
Konfiguration
Verfahren
Schritt-für-Schritt-Anleitung
So blockieren Sie Pakete, bei denen sowohl das SYN- als auch das FIN-Flag gesetzt sind:
Konfigurieren Sie den Bildschirm.
[edit] user@host# set security screen ids-option screen-1 tcp syn-fin
Aktivieren Sie den Bildschirm in der Sicherheitszone.
[edit ] user@host# set security zones security-zone zone-1 screen screen-1
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen der Bildschirme in der Sicherheitszone
- Überprüfen der Konfiguration des Sicherheitsbildschirms
Überprüfen der Bildschirme in der Sicherheitszone
Zweck
Stellen Sie sicher, dass der Bildschirm in der Sicherheitszone aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security zones
Befehl ein.
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
Überprüfen der Konfiguration des Sicherheitsbildschirms
Zweck
Zeigen Sie die Konfigurationsinformationen zum Sicherheitsbildschirm an.
Aktion
Geben Sie im Betriebsmodus den show security screen ids-option screen-name
Befehl ein.
[edit] user@host> show security screen ids-option screen-1 Screen object status: Name Value TCP SYN FIN enabled
Grundlegendes zu TCP-Headern mit gesetztem FIN-Flag und ohne ACK-Flag
Abbildung 2 zeigt TCP-Segmente mit gesetztem FIN-Steuerflag (um den Abschluss einer Sitzung zu signalisieren und die Verbindung zu beenden). Normalerweise ist für TCP-Segmente mit gesetztem FIN-Flag auch das ACK-Flag gesetzt (um das zuvor empfangene Paket zu bestätigen). Da ein TCP-Header mit gesetztem FIN-Flag, aber nicht mit ACK-Flag ein anomales TCP-Verhalten darstellt, gibt es keine einheitliche Antwort darauf. Das Betriebssystem antwortet möglicherweise, indem es ein TCP-Segment mit gesetztem RST-Flag sendet. Ein anderer könnte es völlig ignorieren. Die Antwort des Opfers kann dem Angreifer einen Hinweis auf sein Betriebssystem geben. (Andere Zwecke für das Senden eines TCP-Segments mit gesetztem FIN-Flag bestehen darin, die Erkennung bei der Durchführung von Adress- und Port-Scans zu umgehen und die Abwehrmaßnahmen zu umgehen, die auf der Hut vor einer SYN-Flood sind, indem stattdessen eine FIN-Flood durchgeführt wird.)
Die Anbieter haben RFC 793 ( Transmission Control Protocol) bei der Entwicklung ihrer TCP/IP-Implementierungen unterschiedlich interpretiert. Wenn ein TCP-Segment mit gesetztem FIN-Flag, aber nicht mit ACK-Flag eintrifft, senden einige Implementierungen RST-Segmente, während andere das Paket verwerfen, ohne ein RST zu senden.

Wenn Sie diese Bildschirmoption aktivieren, prüft Junos OS, ob das FIN-Flag, aber nicht das ACK-Flag in TCP-Headern festgelegt ist. Wenn es ein Paket mit einem solchen Header entdeckt, verwirft es das Paket.
Junos OS unterstützt TCP-Header mit SYN- und FIN-Flags, die Schutz für IPv4- und IPv6-Datenverkehr festlegen.
Beispiel: Blockieren von Paketen mit gesetztem FIN-Flag und ohne ACK-Flag
In diesem Beispiel wird gezeigt, wie ein Bildschirm zum Blockieren von Paketen erstellt wird, bei denen das FIN-Flag gesetzt, aber das ACK-Flag nicht festgelegt ist.
Anforderungen
Bevor Sie beginnen, sollten Sie sich mit der Funktionsweise von TCP-Headern vertraut machen. Weitere Informationen finden Sie unter Grundlegendes zu TCP-Headern mit gesetztem FIN-Flag und ohne ACK-Flag.
Übersicht
Für die TCP-Segmente, für die das FIN-Flag festgelegt ist, ist auch das ACK-Flag festgelegt, um das zuvor empfangene Paket zu bestätigen. Da ein TCP-Header mit gesetztem FIN-Flag, aber nicht gesetztem ACK-Flag ein anomales TCP-Verhalten aufweist, gibt es keine einheitliche Antwort darauf. Wenn Sie die Bildschirmoption fin-no-ack aktivieren, prüft Junos OS, ob das FIN-Flag, aber nicht das ACK-Flag in TCP-Headern festgelegt ist. Wenn es ein Paket mit einem solchen Header entdeckt, verwirft es das Paket.
In diesem Beispiel erstellen Sie einen Bildschirm mit dem Namen screen-1, um Pakete zu blockieren, für die das FIN-Flag festgelegt, aber das ACK-Flag nicht festgelegt ist.
Konfiguration
Verfahren
Schritt-für-Schritt-Anleitung
So blockieren Sie Pakete, bei denen das FIN-Flag gesetzt, aber das ACK-Flag nicht gesetzt ist:
Konfigurieren Sie den Bildschirm.
[edit ] user@host# set security screen ids-option screen-1 tcp fin-no-ack
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen der Bildschirme in der Sicherheitszone
- Überprüfen der Konfiguration des Sicherheitsbildschirms
Überprüfen der Bildschirme in der Sicherheitszone
Zweck
Stellen Sie sicher, dass der Bildschirm in der Sicherheitszone aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security zones
Befehl ein.
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
Überprüfen der Konfiguration des Sicherheitsbildschirms
Zweck
Zeigen Sie die Konfigurationsinformationen zum Sicherheitsbildschirm an.
Aktion
Geben Sie im Betriebsmodus den show security screen ids-option screen-name
Befehl ein.
[edit] user@host> show security screen ids-option screen-1 Screen object status: Name Value TCP FIN no ACK enabled
Grundlegendes zum TCP-Header ohne festgelegte Flags
Für einen normalen TCP-Segmentheader ist mindestens ein Flag-Steuerelement festgelegt. Ein TCP-Segment, für das keine Steuerflags festgelegt sind, ist ein anomales Ereignis. Da verschiedene Betriebssysteme unterschiedlich auf solche Anomalien reagieren, kann die Reaktion (oder das Ausbleiben einer Reaktion) des Zielgeräts einen Hinweis darauf geben, welche Art von Betriebssystem es ausführt. Siehe Abbildung 3.

Wenn Sie das Gerät aktivieren, um TCP-Segmentheader ohne festgelegte Flags zu erkennen, verwirft das Gerät alle TCP-Pakete mit einem fehlenden oder falsch formatierten Flags-Feld.
Junos OS unterstützt TCP-Header ohne festgelegte Flags für IPv4- und IPv6-Datenverkehr.
Beispiel: Blockieren von Paketen ohne gesetzte Flags
In diesem Beispiel wird gezeigt, wie ein Bildschirm zum Blockieren von Paketen ohne festgelegte Flags erstellt wird.
Anforderungen
Bevor Sie beginnen, sollten Sie verstehen, wie ein TCP-Header ohne festgelegte Flags funktioniert. Weitere Informationen finden Sie unter Grundlegendes zum TCP-Header ohne festgelegte Flags.
Übersicht
Für einen normalen TCP-Segmentheader ist mindestens ein Flag-Steuerelement festgelegt. Ein TCP-Segment, für das keine Steuerflags festgelegt sind, ist ein anomales Ereignis. Da verschiedene Betriebssysteme unterschiedlich auf solche Anomalien reagieren, kann die Reaktion (oder das Ausbleiben einer Reaktion) des Zielgeräts einen Hinweis darauf geben, welche Art von Betriebssystem es ausführt.
Wenn Sie das Gerät aktivieren, um TCP-Segmentheader ohne festgelegte Flags zu erkennen, verwirft das Gerät alle TCP-Pakete mit einem fehlenden oder falsch formatierten Flags-Feld.
In diesem Beispiel erstellen Sie einen Bildschirm mit dem Namen screen-1, um Pakete zu blockieren, für die keine Flags festgelegt sind.
Konfiguration
Verfahren
Schritt-für-Schritt-Anleitung
So blockieren Sie Pakete, für die keine Flags festgelegt sind:
Konfigurieren Sie den Bildschirm.
[edit ] user@host# set security screen ids-option screen-1 tcp tcp-no-flag
Aktivieren Sie den Bildschirm in der Sicherheitszone.
[edit ] user@host# set security zones security-zone zone-1 screen screen-1
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Überprüfung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Überprüfen der Bildschirme in der Sicherheitszone
- Überprüfen der Konfiguration des Sicherheitsbildschirms
Überprüfen der Bildschirme in der Sicherheitszone
Zweck
Stellen Sie sicher, dass der Bildschirm in der Sicherheitszone aktiviert ist.
Aktion
Geben Sie im Betriebsmodus den show security zones
Befehl ein.
[edit] user@host> show security zones Security zone: zone-1 Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: screen-1 Interfaces bound: 1 Interfaces: ge-1/0/0.0
Überprüfen der Konfiguration des Sicherheitsbildschirms
Zweck
Zeigen Sie die Konfigurationsinformationen zum Sicherheitsbildschirm an.
Aktion
Geben Sie im Betriebsmodus den show security screen ids-option screen-name
Befehl ein.
[edit] user@host> show security screen ids-option screen-1 Screen object status: Name Value TCP no flag enabled