AUF DIESER SEITE
Verständnis unseres Ansatzes zum Umgang mit bekannten und unbekannten Schwachstellen
Grundlegendes zu vordefinierten IDP-Angriffsobjekten und -objektgruppen
Auflisten der IDP-Testbedingungen für ein bestimmtes Protokoll
Beispiel: Zusammengesetzte Signatur zum Erkennen der Ausnutzung einer HTTP-Schwachstelle
Beispiel: Verwenden von Zeitbindungsparametern zum Erkennen eines Brute-Force-Angriffs
Referenz: Benutzerdefinierte Protokollnummern für Angriffsobjekte
Grundlegendes zu auf IDP-Protokollanomalien basierenden Angriffen
Beispiel: Konfigurieren von auf IDP-Protokollanomalien basierenden Angriffen
Angriffsobjekte und Objektgruppen für IDP-Richtlinien
In diesem Thema werden Details zu IDP-Angriffsobjekten und -gruppen erläutert. Es wird erläutert, wie Sie Angriffsobjekte und -gruppen erstellen, ändern und verwenden, um Netzwerke vor verschiedenen Bedrohungen und Schwachstellen zu schützen. Dadurch wird sichergestellt, dass robuste Sicherheitsmaßnahmen vorhanden sind.
Angriffsobjekte, Anwendungssignaturobjekte und Dienstobjekte werden beim Definieren von IDP-Richtlinienregeln verwendet. Als Reaktion auf neue Schwachstellen stellt Juniper Networks regelmäßig eine Datei mit aktualisierten Angriffsdatenbanken auf der Juniper Website bereit. Sie können diese Datei herunterladen, um Ihr Netzwerk vor neuen Bedrohungen zu schützen. Diese Angriffsobjekte und -gruppen wurden entwickelt, um bekannte Angriffsmuster und Protokollanomalien im Netzwerkverkehr zu erkennen. Sie können Angriffsobjekte und -gruppen als Übereinstimmungsbedingungen in IDP-Richtlinienregeln konfigurieren.
Weitere Informationen finden Sie in den folgenden Themen:
Verständnis unseres Ansatzes zum Umgang mit bekannten und unbekannten Schwachstellen
Dieses Thema enthält die folgenden Abschnitte:
Bekannte Schwachstellen
Bekannte Sicherheitslücken sind diejenigen, die innerhalb der Internetsicherheits-Community dokumentiert sind. Die Internetsicherheits-Community besteht aus mehreren Sicherheitsorganisationen, Sicherheitsanalysten und Sicherheitsforen. Die Sicherheitsgemeinschaft entdeckt und analysiert ständig neue Angriffe und tauscht diese Informationen über das Internet aus. Auf diese Weise können sie einen Angriff schnell lokalisieren, identifizieren und verstehen.
Einige Sicherheitshinweise enthalten den eigentlichen Angriffscode. Sie können die Angriffsinformationen und den Angriffscode verwenden, um Paketinformationen und Dienstkontexte zu erfassen. Sie können diese Informationen verwenden, um ein benutzerdefiniertes Signaturangriffsobjekt zu erstellen.
Leider wird in den meisten Advisories der Angriffscode nicht mit der Beschreibung des Angriffs veröffentlicht. Wenn Sie den Angriffscode nicht abrufen können, lesen Sie das Advisory sorgfältig durch und versuchen Sie, die Grundlagen des Angriffspakets zu rekonstruieren.
Denken Sie daran, Code aus unbekannten Quellen zu isolieren.
Die folgenden Organisationen sind in der Sicherheitscommunity aktiv und eine gute Ressource für die Suche nach Angriffsinformationen:
NVD – National Vulnerability Database (http://nvd.nist.gov). Das Repository der US-Regierung für Daten zum Schwachstellenmanagement, die mithilfe des Security Content Automation Protocol (SCAP) dargestellt werden.
SANS: SysAdmin, Audit, Netzwerk, Security Institute (www.sans.org). Eine Forschungs-, Zertifizierungs- und Bildungsorganisation für Informationssicherheit, die Sicherheitswarnungen bereitstellt. Außerdem beherbergt das Internet Storm Center (ISC) in http://www.incidents.org.
CVE – Common Vulnerabilities and Exposures (http://cve.mitre.org). Eine standardisierte Liste von Schwachstellen und anderen Schwachstellen in der Informationssicherheit.
BugTraq (http://securityfocus.com/archive/1). Eine moderierte Mailingliste, die von Security Focus gehostet wird und Sicherheitslücken auf dem Computer diskutiert und ankündigt.
CERT-Koordinationszentrum (http://www.cert.org). Eine vom Bund finanzierte Organisation für Sicherheitswarnungen, die Sicherheitshinweise bereitstellt.
Sicherheit bei Paketstürmen (http://packetstormsecurity.nl) Eine gemeinnützige Organisation von Sicherheitsexperten, die Sicherheitsinformationen in Form von Sicherheitsnachrichten, Advisories, Foren und Angriffscode bereitstellt.
Metasploit (http://www.metasploit.com). Metasploit bietet nützliche Informationen für die Durchführung von Penetrationstests, die Entwicklung von IDS-Signaturen und die Exploit-Forschung.
FrSIRT – Französisches Security Incident Response Team (http://www.frsirt.com). FrSIRT ist eine unabhängige Sicherheitsforschungsorganisation, die Sicherheitshinweise und Echtzeit-Schwachstellenwarnungen und -benachrichtigungsdienste anbietet.
ISS – Internet-Sicherheitssysteme (http://www.iss.net). Ein Internet-Sicherheitsunternehmen, das Warnungen und Internet-Bedrohungsstufen bereitstellt.
Unbekannte Schwachstellen
Unbekannte Sicherheitslücken sind Sicherheitslücken, die nicht in den Empfehlungen der Internetsicherheits-Community dokumentiert sind. In diesen Fällen werden Sie von den in Ihrer Produktionsumgebung generierten IDP Series Profiler-, Firewall- oder IDP-Sicherheitsereignisprotokollen vor verdächtigen Aktivitäten und anormalem Datenverkehr gewarnt. In Ihrer Produktionsumgebung verwenden Sie Paketprotokollierungstools, um Pakete und Dienstkontextinformationen zu erfassen, die Sie später in Ihrem Lab analysieren und damit experimentieren können.
Testen eines benutzerdefinierten Angriffsobjekts
Wir empfehlen den folgenden Workflow, um ein benutzerdefiniertes Angriffsobjekt zu testen. Beachten Sie, dass das folgende Verfahren aus allgemeinen Schritten besteht und für erfahrene Benutzer gedacht ist, die mit diesen Aufgaben vertraut sind.
So testen Sie ein benutzerdefiniertes Angriffsobjekt:
- Erstellen Sie eine neue Sicherheitsrichtlinie und eine neue IDP-Regelbasisregel, die nur das zu testende benutzerdefinierte Angriffsobjekt enthält. Aktivieren Sie die Protokollierung und die Paketprotokollierung.
- Übertragen Sie die Richtlinie per Push an das Laborgerät der IDP-Serie.
- Reproduzieren Sie vom Computer des Angreifers aus den Angriff, der auf den Computer des Opfers abzielt.
- Verwenden Sie die Security Director-Protokollanzeige, um zu überprüfen, ob der generierte Datenverkehr wie erwartet protokolliert wurde.
Wenn der Test fehlschlägt, überprüfen Sie die Angriffswarnung, den Protokoll-RFC und den Angriffscode oder die Paketaufzeichnungen, um zusätzliche Informationen zu ermitteln, die Ihnen bei der Feinabstimmung Ihrer Einstellungen helfen können. Das häufigste Problem, das eine Optimierung erfordert, ist die Syntax des DFA-Ausdrucks.
Erstellen eines Signaturangriffsobjekts
Ein Signatur-Angriffsobjekt ist ein Muster, das das System erkennen soll. Sie verwenden einen DFA-Ausdruck, um das Muster darzustellen. Alle anderen Signatureigenschaften, die Sie festlegen können (z. B. Dienst- oder Protokollkontext, Richtung und andere Einschränkungen), werden bereitgestellt, damit Sie die Leistung des Systems bei der Erkennung des Musters optimieren und Fehlalarme vermeiden können. Im Allgemeinen möchten Sie die Einstellungen eines Signaturangriffsobjekts so abstimmen, dass das System in jedem Kontext, in dem es auftreten könnte, und in keinem anderen Kontext danach sucht.
So konfigurieren Sie ein Signaturangriffsobjekt:
Grundlegendes zu vordefinierten IDP-Angriffsobjekten und -objektgruppen
Das Sicherheitspaket für Intrusion Detection and Prevention (IDP) enthält eine Datenbank mit vordefinierten IDP-Angriffsobjekten und IDP-Angriffsobjektgruppen, die Sie in IDP-Richtlinien verwenden können, um Datenverkehr mit bekannten und unbekannten Angriffen abzugleichen. Juniper Networks aktualisiert die vordefinierten Angriffsobjekte und -gruppen regelmäßig mit neu entdeckten Angriffsmustern.
Aktualisierungen der Angriffsobjektdatenbank können Folgendes umfassen:
Neue Beschreibungen oder Schweregrade für bestehende Angriffsobjekte
Neue Angriffsobjekte
Löschung veralteter Angriffsobjekte
Dieses Thema enthält die folgenden Abschnitte:
Vordefinierte Angriffsobjekte
Vordefinierte Angriffsobjekte werden in alphabetischer Reihenfolge aufgelistet. Diese Angriffsobjekte haben eindeutige Namen, anhand derer Sie den Angriff leichter identifizieren können. Der erste Teil des Namens gibt die Gruppe an, zu der das Angriffsobjekt gehört. Zum Beispiel:
FTP:USER:ROOT: Gehört zurFTP:USERGruppe. Es erkennt Versuche, sich mit demrootKonto bei einem FTP-Server anzumelden.HTTP:HOTMAIL:FILE-UPLOAD: Gehört zurHTTP:HOTMAILGruppe. Es erkennt Dateien, die an E-Mails angehängt sind, die über den webbasierten E-Mail-DienstHotmailgesendet werden.
Vordefinierte Angriffsobjektgruppen
In der Liste der vordefinierten Angriffsgruppen werden die Angriffsobjekte in den unten beschriebenen Kategorien angezeigt. Eine Reihe empfohlener Angriffsobjekte, die Juniper Networks als ernsthafte Bedrohungen einstuft, ist ebenfalls in dieser Liste enthalten. Die empfohlenen Angriffsobjekte sind in die folgenden Kategorien unterteilt:
Gruppe der Angriffsobjekte |
Beschreibung |
|---|---|
Art des Angriffs |
Gruppiert Angriffsobjekte nach Typ (Anomalie oder Signatur). Innerhalb jedes Typs werden die Angriffsobjekte nach Schweregrad gruppiert. |
Kategorie |
Gruppen greifen Objekte nach vordefinierten Kategorien an. Innerhalb jeder Kategorie werden die Angriffsobjekte nach Schweregrad gruppiert. |
Betriebssystem |
Gruppen greifen Objekte nach dem Betriebssystem an, auf das sie angewendet werden: BSD, Linux, Solaris oder Windows. Innerhalb der einzelnen Betriebssysteme werden die Angriffsobjekte nach Services und Schweregrad gruppiert. |
Strenge |
Gruppiert Angriffsobjekte nach dem Schweregrad, der dem Angriff zugewiesen ist. IDP hat fünf Schweregrade: Critical, Major, Minor, Warning, Info. Innerhalb jedes Schweregrads werden die Angriffsobjekte nach Kategorien gruppiert. |
Webservices |
Gruppen greifen Objekte über allgemeine Webdienste an. Diese Dienste sind nach Schweregraden gruppiert: "Warnung", "Kritisch", "Schwerwiegend", "Geringfügig", "Informationen". |
Verschiedenes |
Gruppen greifen Objekte nach Leistungsstufe an. Angriffsobjekte, die die IDP-Leistung ab einem bestimmten Level beeinträchtigen, werden unter dieser Kategorie zusammengefasst. |
Antwort |
Gruppen greifen Objekte im Datenverkehr an, der auf dem Server in Richtung Client fließt. |
Grundlegendes zu benutzerdefinierten Angriffsobjekten
Sie können benutzerdefinierte Angriffsobjekte erstellen, um neue Angriffe zu erkennen, oder vordefinierte Angriffsobjekte an die individuellen Anforderungen Ihres Netzwerks anpassen.
Um ein benutzerdefiniertes Angriffsobjekt zu konfigurieren, geben Sie einen eindeutigen Namen für das Objekt an und geben dann zusätzliche Informationen an, z. B. eine allgemeine Beschreibung und Schlüsselwörter, die Ihnen das Auffinden und Verwalten des Angriffsobjekts erleichtern können.
Bestimmte Eigenschaften in den Definitionen von Angriffsobjekten sind für alle Arten von Angriffen gleich, z. B. Angriffsname, Beschreibung, Schweregrad, Dienst- oder Anwendungsbindung, Zeitbindung, empfohlene Aktion und Protokoll- oder Portbindung. Einige Felder sind spezifisch für einen Angriffstyp und nur für diese spezifische Angriffsdefinition verfügbar.
Die IDP-Funktion ist standardmäßig aktiviert, es ist keine Lizenz erforderlich. Benutzerdefinierte Angriffe und Gruppen in IDP-Richtlinien können auch dann konfiguriert und installiert werden, wenn keine gültige Lizenz und Signaturdatenbank auf dem Gerät installiert sind.
Dieses Thema enthält die folgenden Abschnitte:
- Name des Angriffs
- Strenge
- Dienst- und Anwendungsbindungen
- Protokoll- und Portbindungen
- Zeitbindungen
- Angriffseigenschaften (Signaturangriffe)
- Angriffseigenschaften (Angriffe auf Protokollanomalien)
- Angriffseigenschaften (zusammengesetzte oder Kettenangriffe)
Name des Angriffs
Geben Sie einen alphanumerischen Namen für das Objekt an. Sie können das Protokoll, das für den Angriff verwendet wird, in den Angriffsnamen aufnehmen.
Beginnend mit Junos OS Version 15.1X49-D140 beträgt die maximal zulässige Anzahl von Zeichen für einen benutzerdefinierten Angriffsobjektnamen 60 Zeichen. Sie können die Anweisung mit dem set security idp custom-attack Befehl validieren.
Strenge
Gibt die Brutalität des Angriffs auf Ihr Netzwerk an. Die Schweregradkategorien, in der Reihenfolge der zunehmenden Brutalität, sind Info, Warnung, gering, schwer, kritisch. Kritische Angriffe sind am gefährlichsten – in der Regel versuchen diese Angriffe, Ihren Server zum Absturz zu bringen oder die Kontrolle über Ihr Netzwerk zu erlangen. Informationsangriffe sind am wenigsten gefährlich und werden in der Regel von Netzwerkadministratoren eingesetzt, um Lücken in ihren eigenen Sicherheitssystemen zu entdecken.
Dienst- und Anwendungsbindungen
Das Dienst- oder Anwendungsbindungsfeld gibt den Dienst an, den der Angriff verwendet, um in Ihr Netzwerk einzudringen.
Geben Sie entweder den Dienst oder die Protokollbindung in einem benutzerdefinierten Angriff an. Wenn Sie beides angeben, hat die Dienstbindung Vorrang.
any: Geben Sie anany, ob Sie sich nicht sicher sind, welcher Dienst korrekt ist, und möchten Sie die Signatur in allen Services anpassen. Da bei einigen Angriffen mehrere Dienste für Angriffe auf Ihr Netzwerk verwendet werden, sollten Sie dieAnyDienstbindung auswählen, um den Angriff zu erkennen, unabhängig davon, welchen Dienst der Angriff für eine Verbindung auswählt.serviceBei den meisten Angriffen wird ein bestimmter Service für Angriffe auf Ihr Netzwerk verwendet. Sie können den spezifischen Dienst, der für den Angriff verwendet wurde, als Dienstbindung auswählen.Eine Liste der Services, Service-Bindungen und Kontexte finden Sie unter Grundlegendes zu benutzerdefinierten IDP-Angriffsobjekten-Servicekontexten
Protokoll- und Portbindungen
Mit Protokoll- oder Portbindungen können Sie das Protokoll angeben, das bei einem Angriff zum Eindringen in Ihr Netzwerk verwendet wird. Sie können den Namen des Netzwerkprotokolls oder die Protokollnummer angeben.
Geben Sie entweder den Dienst oder die Protokollbindung in einem benutzerdefinierten Angriff an. Wenn Sie beides angeben, hat die Dienstbindung Vorrang.
IP: Sie können jedes der unterstützten Netzwerkschichtprotokolle mithilfe von Protokollnummern angeben. Tabelle 11 listet Protokollnummern für verschiedene Protokolle auf.
Tabelle 11: Unterstützte Protokolle und Protokollnummern Protokollname
Protokollnummer
IGMP
2
IP-IP
4
EGP
8
WELPE
12
KLOPAPIER
29
IPV6
41
ROUTING
43
FRAGMENT
44
U.A.W.G
46
GRE
47
ASW
50
AH
51
ICMPV6-KARTON
58
NICHTS
59
DSTOPTS
60
MTP
92
KAPSELUNG
98
PIM
103
COMP
108
ROH
255
ICMP, TCP und UDP: Angriffe, die keinen bestimmten Service nutzen, können bestimmte Ports für Angriffe auf Ihr Netzwerk nutzen. Einige TCP- und UDP-Angriffe nutzen Standardports, um in Ihr Netzwerk einzudringen und eine Verbindung herzustellen.
RPC: Das RPC-Protokoll (Remote Procedure Call) wird von verteilten Verarbeitungsanwendungen verwendet, um die Interaktion zwischen Prozessen remote zu handhaben. Wenn ein Client einen Remoteprozeduraufruf an einen RPC-Server sendet, antwortet der Server mit einem Remoteprogramm. Jedes Remote-Programm verwendet eine andere Programmnummer. Um Angriffe zu erkennen, die RPC verwenden, konfigurieren Sie die Dienstbindung als RPC, und geben Sie die RPC-Programm-ID an.
Tabelle 12 zeigt Beispielformate für Schlüsselprotokolle.
Protokollname |
Protokollnummer |
Beschreibung |
|---|---|---|
ICMP |
|
Geben Sie den Protokollnamen an. |
IP |
|
Geben Sie die Protokollnummer der Netzwerkschicht an. |
RPC |
|
Geben Sie die RPC-Programmnummer an. |
TCP oder UDP |
|
Die Angabe des Ports ist für TCP- und UDP-Protokolle optional. Sie können z. B. eine der folgenden Angaben angeben:
|
Zeitbindungen
Verwenden Sie Zeitbindungen, um die Zeitattribute für das benutzerdefinierte Angriffsobjekt für die Zeitbindung zu konfigurieren. Zeitattribute steuern, wie das Angriffsobjekt Angriffe identifiziert, die sich eine bestimmte Anzahl von Malen wiederholen. Durch die Konfiguration des Umfangs und der Anzahl eines Angriffs können Sie eine Abfolge derselben Angriffe über einen bestimmten Zeitraum hinweg über Sitzungen hinweg erkennen.
Ab Junos OS Version 18.4R1 können Sie das maximale Zeitintervall zwischen zwei beliebigen Instanzen eines benutzerdefinierten zeitgebundenen Angriffs konfigurieren, und der Bereich für das maximale Zeitintervall beträgt 0 Minuten und 0 Sekunden bis 60 Minuten und 0 Sekunden. In Junos OS-Versionen vor 18.4R1 beträgt das maximale Zeitintervall zwischen zwei beliebigen Instanzen eines zeitgebundenen Angriffs 60 Sekunden, bis die Anzahl der Angriffsauslöser die in der Zeitbindung konfigurierte Anzahl erreicht. Die interval interval-value Anweisung wird in der [edit security idp custom-attack attack-name time-binding] Hierarchie eingeführt, um eine benutzerdefinierte Zeitbindung zu konfigurieren.
Umfang
Geben Sie den Bereich an, in dem die Anzahl der Angriffe erfolgt:
Quelle: Geben Sie diese Option an, um Angriffe von der Quelladresse unabhängig von der Zieladresse für die angegebene Anzahl von Malen zu erkennen. Das bedeutet, dass für einen bestimmten Angriff ein Schwellenwert für jeden Angriff von der Quelladresse beibehalten wird. Die Zieladresse wird ignoriert. Beispielsweise werden Anomalien von zwei verschiedenen Paaren (
ip-a,ip-b) und (ip-a,ip-c) erkannt, die dieselbe Quelladresseip-a, aber unterschiedliche Zieladressenip-bundip-chaben. Dann wird die Anzahl der Übereinstimmungen fürip-aInkremente auf2. Angenommen, der Schwellwert oder count ist ebenfalls auf 2 gesetzt, dann löst die Signatur das Angriffsereignis aus.Ziel: Geben Sie diese Option an, um Angriffe zu erkennen, die unabhängig von der Quelladresse für die angegebene Anzahl von Malen an die Zieladresse gesendet werden. Das bedeutet, dass für einen bestimmten Angriff für jeden Angriff von der Zieladresse aus ein Schwellenwert beibehalten wird. Die Quelladresse wird ignoriert. Wenn z. B. Anomalien von zwei verschiedenen Paaren (
ip-a,) und (ip-c,ip-bip-b) erkannt werden, die dieselbe Zieladresseip-b, aber unterschiedliche Quelladressenip-aundip-c. Dann wird die Anzahl der Übereinstimmungen fürip-bInkremente auf2. Angenommen, der Schwellwert oder count ist ebenfalls auf2gesetzt, dann löst die Signatur das Angriffsereignis aus.Peer: Geben Sie diese Option an, um Angriffe zwischen Quell- und Ziel-IP-Adressen der Sitzungen für die angegebene Anzahl von Malen zu erkennen. Das bedeutet, dass der Schwellwert für ein Paar aus Quell- und Zieladressen gilt. Angenommen, Anomalien werden von zwei verschiedenen Quell- und Zielpaaren (
ip-a,ip-b) und (ip-a,ip-c) erkannt. Dann wird die Anzahl der Übereinstimmungen für jedes Paar auf1festgelegt, obwohl beide Paare eine gemeinsame Quelladresse haben.
Zählen
Die Anzahl oder der Schwellenwert gibt an, wie oft das Angriffsobjekt einen Angriff innerhalb des angegebenen Bereichs erkennen muss, bevor das Gerät das Angriffsobjekt als mit dem Angriff übereinstimmend betrachtet. Wenn Sie das Angriffsobjekt an mehrere Ports binden und das Angriffsobjekt diesen Angriff auf verschiedenen Ports erkennt, wird jeder Angriff auf jeden Port als separates Vorkommen gezählt. Wenn das Angriffsobjekt z. B. einen Angriff auf TCP/80 und dann auf TCP/8080erkennt, beträgt die Anzahl zwei.
Sobald die count Übereinstimmung erreicht ist, erhöht sich die Anzahl der Angriffe durch jeden Angriff, der den Kriterien entspricht, um eins. Dieser Zählzyklus dauert eine benutzerdefinierte Dauer (konfiguriert mit der interval Option), danach wird der Zyklus wiederholt.
Intervall
Interval gibt das maximale Zeitintervall zwischen zwei beliebigen Instanzen eines zeitbindenden benutzerdefinierten Angriffs an. Der Bereich für das Zeitintervall liegt zwischen 0 Sekunden und 1 Stunde, und der Standardwert beträgt 60 Sekunden.
Angriffseigenschaften (Signaturangriffe)
Signaturangriffsobjekte verwenden eine zustandsbehaftete Angriffssignatur (ein Muster, das immer innerhalb eines bestimmten Angriffsabschnitts vorhanden ist), um bekannte Angriffe zu erkennen. Dazu gehören auch das Protokoll oder der Dienst, der für den Angriff verwendet wurde, und der Kontext, in dem der Angriff stattfindet. Die folgenden Eigenschaften sind spezifisch für Signaturangriffe und Sie können sie bei der Konfiguration des Signaturangriffs konfigurieren:
Angriffskontext, Datenflusstyp und -richtung sind Pflichtfelder für die Definition des Signaturangriffs.
- Angriffskontext
- Angriffsrichtung
- Angriffsmuster
- Protokollspezifische Parameter
- Beispiel-Signatur-Angriffsdefinition
Angriffskontext
Ein Angriffskontext definiert den Speicherort der Signatur. Wenn Sie den Dienst und den spezifischen Dienstkontext kennen, geben Sie diesen Dienst an, und geben Sie dann die entsprechenden Dienstkontexte an. Wenn Sie den Dienst kennen, aber sich über den spezifischen Dienstkontext nicht sicher sind, geben Sie einen der folgenden allgemeinen Kontexte an:
first-data-packet: Geben Sie diesen Kontext an, um den Angriff nur im ersten Datenpaket zu erkennen.first-packet– Geben Sie diesen Kontext an, um den Angriff nur im ersten Paket eines Streams zu erkennen. Wenn die Flussrichtung für das Angriffsobjekt auf festgelegtanyist, überprüft das Gerät das erste Paket sowohl des Server-zu-Client- als auch des Client-zu-Server-Datenverkehrs. Wenn Sie wissen, dass die Angriffssignatur im ersten Paket einer Sitzung angezeigt wird, können Siefirst packetanstelle von "Reduziertpacketden Datenverkehr", den das Gerät überwachen muss, was die Leistung verbessert.packet– Geben Sie diesen Kontext so an, dass er dem Angriffsmuster innerhalb eines Pakets entspricht. Wenn Sie diese Option auswählen, müssen Sie auch die Dienstbindung angeben, um die Dienstheaderoptionen zu definieren. Die Angabe dieser zusätzlichen Parameter ist zwar nicht erforderlich, verbessert jedoch die Genauigkeit des Angriffsobjekts und damit die Leistung.line: Geben Sie diesen Kontext an, um eine Musterübereinstimmung innerhalb einer bestimmten Zeile innerhalb Ihres Netzwerkdatenverkehrs zu erkennen.normalized-stream: Geben Sie diesen Kontext an, um den Angriff in einem gesamten normalisierten Stream zu erkennen. Der normalisierte Datenstrom ist eine der zahlreichen Möglichkeiten zum Senden von Informationen. In diesem Stream werden die Informationen im Paket normalisiert, bevor ein Abgleich durchgeführt wird. Angenommenwww.yahoo.com/sports, ist identisch mitwww.yahoo.com/s%70orts. Die normalisierte Form, die diese beiden URLs darstellt, könnte seinwww.yahoo.com/sports. Wählen Sienormalized streamanstelle vonstream, es sei denn, Sie möchten ein Muster in seiner genauen Form erkennen. Wenn Sie z. B. das genaue Musterwww.yahoo.com/s%70ortserkennen möchten, wählen Siestream.normalized-stream256Geben Sie diesen Kontext an, um den Angriff nur in den ersten 256 Bytes eines normalisierten Streams zu erkennen.normalized-stream1k: Geben Sie diesen Kontext an, um den Angriff nur in den ersten 1024 Bytes eines normalisierten Streams zu erkennen.normalized-stream-8k: Geben Sie diesen Kontext an, um den Angriff nur in den ersten 8192 Bytes eines normalisierten Streams zu erkennen.stream– Geben Sie diesen Kontext an, um Pakete neu zusammenzusetzen und die Daten zu extrahieren, um nach einer Musterübereinstimmung zu suchen. Da das Gerät jedoch keine Paketgrenzen für Streamkontexte erkennen kann, werden Daten für mehrere Pakete kombiniert. Geben Sie diese Option nur an, wenn keine andere Kontextoption den Angriff enthält.stream256Geben Sie diesen Kontext an, um Pakete neu zusammenzusetzen und innerhalb der ersten 256 Byte eines Datenverkehrsstroms nach einer Musterübereinstimmung zu suchen. Wenn die Flussrichtung aufanyfestgelegt ist, überprüft das Gerät die ersten 256 Byte sowohl der Server-zu-Client- als auch der Client-zu-Server-Datenströme. Wenn Sie wissen, dass die Angriffssignatur in den ersten 256 Byte einer Sitzung angezeigt wird, können Sie die Menge des Datenverkehrs, den das Gerät überwachen und zwischenspeichern muss, reduzieren, indem Siestream256stattdessenstreamdie Leistung verbessern.stream1kGeben Sie diesen Kontext an, um Pakete wieder zusammenzusetzen und innerhalb der ersten 1024 Byte eines Datenstroms nach einer Musterübereinstimmung zu suchen. Wenn die Flussrichtung aufanyfestgelegt ist, überprüft das Gerät die ersten 1024 Byte sowohl der Server-zu-Client- als auch der Client-zu-Server-Datenströme. Wenn Sie wissen, dass die Angriffssignatur in den ersten 1024 Bytes einer Sitzung angezeigt wird, können Siestream1024anstelle von "Reduziertstreamdie Menge des Datenverkehrs", den das Gerät überwachen und zwischenspeichern muss, wodurch die Leistung verbessert wird.stream8kGeben Sie diesen Kontext an, um Pakete wieder zusammenzusetzen und innerhalb der ersten 8192 Byte eines Datenverkehrsstroms nach einer Musterübereinstimmung zu suchen. Wenn die Flussrichtung aufanyfestgelegt ist, überprüft das Gerät die ersten 8192 Byte sowohl der Server-zu-Client- als auch der Client-zu-Server-Datenströme. Wenn Sie wissen, dass die Angriffssignatur in den ersten 8192 Bytes einer Sitzung angezeigt wird, können Siestream8192anstelle von "Reduziertstreamden Datenverkehr", den das Gerät überwachen und zwischenspeichern muss, wodurch die Leistung verbessert wird.
Angriffsrichtung
Sie können die Verbindungsrichtung des Angriffs angeben. Die Verwendung einer einzelnen Richtung (anstelle von Any) verbessert die Leistung, reduziert Fehlalarme und erhöht die Erkennungsgenauigkeit.
Client-zu-Server (erkennt den Angriff nur im Client-zu-Server-Datenverkehr)
Server-zu-Client (erkennt den Angriff nur im Server-zu-Client-Datenverkehr)
Beliebig (erkennt den Angriff in beide Richtungen)
Angriffsmuster
Angriffsmuster sind Signaturen der Angriffe, die Sie erkennen möchten. Eine Signatur ist ein Muster, das bei einem Angriff immer vorhanden ist. Wenn der Angriff vorhanden ist, ist auch die Signatur vorhanden. Um das Angriffsmuster zu erstellen, müssen Sie zuerst den Angriff analysieren, um ein Muster zu erkennen (z. B. ein Codesegment, eine URL oder einen Wert in einem Paketheader), und dann einen syntaktischen Ausdruck erstellen, der dieses Muster darstellt. Sie können ein Muster auch negieren. Das Negieren eines Musters bedeutet, dass der Angriff als übereinstimmend betrachtet wird, wenn das im Angriff definierte Muster mit not dem angegebenen Muster übereinstimmt.
Die Musternegation wird nur für paket-, leitungs- und anwendungsbasierte Kontexte unterstützt, nicht aber für stream- und normalisierte Streamkontexte.
Protokollspezifische Parameter
Gibt bestimmte Werte und Optionen an, die in Paketheadern vorhanden sind. Diese Parameter sind für verschiedene Protokolle unterschiedlich. In einer benutzerdefinierten Angriffsdefinition können Sie Felder nur für eines der folgenden Protokolle angeben: TCP, UDP oder ICMP. Sie können jedoch IP-Protokollfelder mit TCP oder UDP in einer benutzerdefinierten Angriffsdefinition definieren.
Headerparameter können nur für Angriffsobjekte definiert werden, die ein Paket oder einen ersten Paketkontext verwenden. Wenn Sie eine Linie, einen Stream, einen Stream 256 oder einen Dienstkontext angegeben haben, können Sie keine Headerparameter angeben.
Wenn Sie sich über die Optionen oder Kennzeichnungseinstellungen für das bösartige Paket nicht sicher sind, lassen Sie alle Felder leer und Intrusion Detection and Prevention (IDP) versucht, die Signatur für alle Header-Inhalte abzugleichen.
In Tabelle 13 werden Felder und Flags angezeigt, die Sie für Angriffe festlegen können, die das IP-Protokoll verwenden.
Feld |
Beschreibung |
|---|---|
Art der Dienstleistung |
Geben Sie einen Wert für den Diensttyp an. Gängige Servicetypen sind:
|
Gesamtlänge |
Geben Sie einen Wert für die Anzahl der Bytes im Paket an, einschließlich aller Headerfelder und der Datennutzlast. |
ID |
Geben Sie einen Wert für den eindeutigen Wert an, der vom Zielsystem verwendet wird, um ein fragmentiertes Paket wieder zusammenzusetzen. |
Zeit zu leben |
Geben Sie einen ganzzahligen Wert im Bereich von 0 bis 255 für den TTL-Wert (Time-to-Live) des Pakets an. Dieser Wert stellt die Anzahl der Geräte dar, die das Paket durchlaufen kann. Jeder Router, der das Paket verarbeitet, verringert die TTL um |
Protokoll |
Geben Sie einen Wert für das verwendete Protokoll an. |
Quelle |
Geben Sie die Quelladresse des angreifenden Geräts ein. |
Bestimmungsort |
Geben Sie die Zieladresse des Angriffsziels ein. |
Reserviertes Bit |
Dieses Bit wird nicht verwendet. |
Weitere Fragmente |
Wenn diese Option gesetzt ist, |
Nicht fragmentieren |
Wenn diese Option ( |
In Tabelle 14 sind Paket-Header-Felder und -Flags aufgeführt, die Sie für Angriffe festlegen können, die das TCP-Protokoll verwenden.
Feld |
Beschreibung |
|---|---|
Quellport |
Geben Sie einen Wert für die Portnummer auf dem angreifenden Gerät an. |
Zielhafen |
Geben Sie einen Wert für die Portnummer des Angriffsziels an. |
Sequenznummer |
Geben Sie einen Wert für die Sequenznummer des Pakets an. Diese Zahl gibt den Speicherort der Daten in Bezug auf die gesamte Datensequenz an. |
ACK-Nummer |
Geben Sie einen Wert für die ACK-Nummer des Pakets an. Diese Nummer identifiziert die nächste Sequenznummer. Um dieses Feld zu aktivieren, muss das ACK-Flag gesetzt sein. |
Headerlänge |
Geben Sie einen Wert für die Anzahl der Bytes im TCP-Header an. |
Datenlänge |
Geben Sie einen Wert für die Anzahl der Bytes in der Datennutzlast an. Für SYN-, ACK- und FIN-Pakete sollte dieses Feld leer sein. |
Fenstergröße |
Geben Sie einen Wert für die Anzahl der Bytes in der Größe des TCP-Fensters an. |
Dringender Hinweis |
Geben Sie einen Wert für den dringenden Zeiger an. Der Wert gibt an, dass die Daten im Paket dringend sind. Um dieses Feld zu aktivieren, muss das URG-Kennzeichen gesetzt sein. |
URG |
Wenn diese Option festgelegt ist, zeigt das Flag urgent an, dass die Paketdaten dringend sind. |
ACK |
Wenn diese Option gesetzt ist, bestätigt das Bestätigungsflag den Empfang eines Pakets. |
PSH |
Wenn diese Option gesetzt ist, zeigt das push-Flag an, dass der Empfänger alle Daten in der aktuellen Sequenz an die Zielanwendung (identifiziert durch die Portnummer) übertragen soll, ohne auf die verbleibenden Pakete in der Sequenz zu warten. |
RST |
Wenn das Reset-Flag gesetzt ist, setzt es die TCP-Verbindung zurück und verwirft alle Pakete in einer vorhandenen Sequenz. |
SYN |
Wenn diese Option festgelegt ist, zeigt das SYN-Flag eine Anforderung für eine neue Sitzung an. |
FLOSSE |
Wenn diese Option gesetzt ist, zeigt das letzte Flag an, dass die Paketübertragung abgeschlossen ist und die Verbindung geschlossen werden kann. |
R1-KARTON |
Dieses reservierte Bit (1 von 2) wird nicht verwendet. |
R2 |
Dieses reservierte Bit (2 von 2) wird nicht verwendet. |
In Tabelle 15 sind Paket-Header-Felder und -Flags aufgeführt, die Sie für Angriffe festlegen können, die das UDP-Protokoll verwenden.
Feld |
Beschreibung |
|---|---|
Quellport |
Geben Sie einen Wert für die Portnummer auf dem angreifenden Gerät an. |
Zielhafen |
Geben Sie einen Wert für die Portnummer des Angriffsziels an. |
Datenlänge |
Geben Sie einen Wert für die Anzahl der Bytes in der Datennutzlast an. |
In Tabelle 16 sind Paket-Header-Felder und -Flags aufgeführt, die Sie für Angriffe festlegen können, die das ICMP-Protokoll verwenden.
Feld |
Beschreibung |
|---|---|
ICMP-Typ |
Geben Sie einen Wert für den Primärcode an, der die Funktion des Anforderungs- oder Antwortpakets identifiziert. |
ICMP-Code |
Geben Sie einen Wert für den sekundären Code an, der die Funktion des Anforderungs- oder Antwortpakets innerhalb eines bestimmten Typs identifiziert. |
Sequenznummer |
Geben Sie einen Wert für die Sequenznummer des Pakets an. Diese Zahl gibt den Speicherort des Anforderungs- oder Antwortpakets in Bezug auf die gesamte Sequenz an. |
ICMP-ID |
Geben Sie einen Wert für die Identifikationsnummer an. Die Identifikationsnummer ist ein eindeutiger Wert, der vom Zielsystem verwendet wird, um Anforderungs- und Antwortpakete zuzuordnen. |
Datenlänge |
Geben Sie einen Wert für die Anzahl der Bytes in der Datennutzlast an. |
Beispiel-Signatur-Angriffsdefinition
Im Folgenden finden Sie ein Beispiel für eine Signatur-Angriffsdefinition:
<Entry> <Name>sample-sig</Name> <Severity>Major</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>dst</Scope></TimeBinding> <Application>FTP</Application> <Type>signature</Type> <Context>packet</Context> <Negate>true</Negate> <Flow>Control</Flow> <Direction>any</Direction> <Headers><Protocol><Name>ip</Name> <Field><Name>ttl</Name> <Match>==</Match><Value>128</Value></Field> </Protocol><Name>tcp</Name> <Field><Name><Match><</Match> <value>1500</Value> </Field></Protocol></Headers> </Attack></Attacks> </Entry>
Angriffseigenschaften (Angriffe auf Protokollanomalien)
Ein Angriffsobjekt für Protokollanomalien erkennt unbekannte oder komplexe Angriffe, die gegen Protokollspezifikationen (RFCs und allgemeine RFC-Erweiterungen) verstoßen. Sie können keine neuen Protokollanomalien erstellen, aber Sie können ein neues Angriffsobjekt konfigurieren, das steuert, wie Ihr Gerät mit einer vordefinierten Protokollanomalie umgeht, wenn es erkannt wird.
Die Dienst- oder Anwendungsbindung ist ein Pflichtfeld für Angriffe auf Protokollanomalien.
Die folgenden Eigenschaften sind spezifisch für Angriffe auf Protokollanomalien. Sowohl die Angriffsrichtung als auch die Testbedingung sind Pflichtfelder für die Konfiguration von Anomalie-Angriffsdefinitionen.
Angriffsrichtung
Mit Angriffsrichtung können Sie die Verbindungsrichtung eines Angriffs angeben. Die Verwendung einer einzelnen Richtung (anstelle von Any) verbessert die Leistung, reduziert Fehlalarme und erhöht die Erkennungsgenauigkeit:
Client-zu-Server (erkennt den Angriff nur im Client-zu-Server-Datenverkehr)
Server-zu-Client (erkennt den Angriff nur im Server-zu-Client-Datenverkehr)
Beliebig (erkennt den Angriff in beide Richtungen)
Versuchsbedingung
Testbedingung ist eine Bedingung, die für einen Anomalieangriff erfüllt werden muss. Juniper Networks unterstützt bestimmte vordefinierte Testbedingungen. Im folgenden Beispiel handelt es sich bei der Bedingung um eine zu lange Nachricht. Wenn die Größe der Nachricht länger als der vorkonfigurierte Wert für diese Testbedingung ist, wird der Angriff abgeglichen.
<Attacks> <Attack> <Type>anomaly</Type> ... <Test>MESSAGE_TOO_LONG</Test> <Value>yes</Value> ... </Attack> </Attacks>
Beispiel für eine Angriffsdefinition für Protokollanomalien
Im Folgenden finden Sie ein Beispiel für eine Angriffsdefinition für Protokollanomalien:
<Entry> <Name>sample-anomaly</Name> <Severity>Info</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>peer</Scope></TimeBinding> <Application>TCP</Application> <Type>anomaly</Type> <Test>OPTIONS_UNSUPPORTED</Test> <Direction>any</Direction> </Attack></Attacks> </Entry>
Angriffseigenschaften (zusammengesetzte oder Kettenangriffe)
Ein zusammengesetztes oder Kettenangriffsobjekt erkennt Angriffe, die mehrere Methoden verwenden, um eine Schwachstelle auszunutzen. Dieses Objekt kombiniert mehrere Signaturen und/oder Protokollanomalien zu einem einzigen Angriffsobjekt und zwingt den Datenverkehr, einem Muster aus kombinierten Signaturen und Anomalien innerhalb des zusammengesetzten Angriffsobjekts zu entsprechen, bevor der Datenverkehr als Angriff identifiziert wird. Durch Kombinieren und sogar Festlegen der Reihenfolge, in der Signaturen oder Anomalien übereinstimmen müssen, können Sie die Ereignisse sehr genau bestimmen, die stattfinden müssen, bevor das Gerät Datenverkehr als Angriff identifiziert.
Sie müssen mindestens 2 Elemente (Angriffe) in einem zusammengesetzten Angriff angeben. Sie können bis zu 32 Elemente im zusammengesetzten Angriff angeben. Bei den Mitgliedern kann es sich entweder um Signatur- oder Anomalieangriffe handeln.
Die folgenden Eigenschaften sind spezifisch für zusammengesetzte Angriffe:
- Umfang
- Bestellung
- Zurücksetzen
- Ausdruck (Boolescher Ausdruck)
- Mitgliederverzeichnis
- Beispiel für eine Definition eines zusammengesetzten Angriffs
Umfang
Mit dem Bereich können Sie angeben, ob der Angriff innerhalb einer Sitzung oder über Transaktionen in einer Sitzung hinweg abgeglichen wird. Wenn der angegebene Dienst mehrere Transaktionen innerhalb einer einzelnen Sitzung unterstützt, können Sie auch angeben, ob die Übereinstimmung über eine einzelne Sitzung erfolgen soll oder ob sie über mehrere Transaktionen innerhalb einer Sitzung erfolgen kann:
Geben Sie an, ob mehrere Übereinstimmungen session für das Objekt innerhalb derselben Sitzung zulässig sein sollen.
Geben Sie an transaction , ob das Objekt für mehrere Transaktionen abgeglichen werden soll, die innerhalb derselben Sitzung stattfinden.
Bestellung
Verwenden Sie die geordnete Übereinstimmung, um ein zusammengesetztes Angriffsobjekt zu erstellen, das mit jeder Membersignatur oder Protokollanomalie in der von Ihnen angegebenen Reihenfolge übereinstimmen muss. Wenn Sie keine geordnete Übereinstimmung angeben, muss das zusammengesetzte Angriffsobjekt dennoch mit allen Mitgliedern übereinstimmen, aber das Angriffsmuster oder die Protokollanomalien können im Angriff in zufälliger Reihenfolge angezeigt werden.
Zurücksetzen
Gibt an, dass jedes Mal, wenn ein Angriff innerhalb derselben Sitzung erkannt wird, ein neues Protokoll generiert wird. Wenn dieses Feld auf festgelegt ist, no wird der Angriff nur einmal für eine Sitzung protokolliert.
Ausdruck (Boolescher Ausdruck)
Wenn Sie das Feld "Boolescher Ausdruck" verwenden, wird die Funktion "Geordnete Übereinstimmung" deaktiviert. Das Feld "Boolescher Ausdruck" verwendet die Eigenschaften "Elementname" oder "Elementindex". Die folgenden drei booleschen Operatoren werden zusammen mit Klammern unterstützt, die bei der Bestimmung der Rangfolge helfen:
or– Wenn eines der Elementnamensmuster übereinstimmt, stimmt der Ausdruck überein.and– Wenn beide Membernamensmuster übereinstimmen, stimmt der Ausdruck überein. Dabei spielt es keine Rolle, in welcher Reihenfolge die Mitglieder erscheinen.oand (ordered and)– Wenn beide Membernamensmuster übereinstimmen und in der Reihenfolge angezeigt werden, die im booleschen Ausdruck angegeben ist, stimmt der Ausdruck überein.
Angenommen, Sie haben fünf Signaturelemente mit der Bezeichnung s1-s5. Angenommen, Sie wissen, dass der Angriff immer das Muster s1enthält, gefolgt von entweder s2 oder . s3 Sie wissen auch, dass der Angriff immer und enthält s4 s5, aber ihre Positionen im Angriff können variieren. In diesem Fall können Sie den folgenden booleschen Ausdruck erstellen:
((s1 oand s2) or (s1 oand s3)) and (s4 and s5)
Sie können entweder eine geordnete Übereinstimmung oder einen Ausdruck (nicht beides) in einer benutzerdefinierten Angriffsdefinition definieren.
Mitgliederverzeichnis
Der Mitgliederindex wird in Kettenangriffen angegeben, um ein Mitglied (Angriff) eindeutig zu identifizieren. Im folgenden Beispiel wird der Elementindex verwendet, um die Elemente m01 zu identifizieren, und m02 im definierten Ausdruck:
<Expression>m02 AND m01</Expression> <Order>no</Order> <Reset>no</Reset> <ScopeOption/> <Members> <Attack> <Member>m01</Member> <Type>Signature</Type> ... <Pattern><!CDATA[.*/getlatestversion]]></Pattern> <Regex/> </Attack> <Attack><Member>m02</Member> <Type>Signature</Type> ... <Pattern><!CDATA[\[Skype\'.*]]></Pattern> <Regex/> </Attack> <Attack>
Beim Definieren des Ausdrucks müssen Sie den Elementindex für alle Member angeben.
Beispiel für eine Definition eines zusammengesetzten Angriffs
Im Folgenden finden Sie ein Beispiel für die Definition eines zusammengesetzten Angriffs:
<Entry> <Name>sample-chain</Name> <Severity>Critical</Severity> <Attacks><Attack> <Application>HTTP</Application> <Type>Chain</Type> <Order>yes</Order> <Reset>yes</Reset> <Members><Attack> <Type>Signature</Type> <Context>packet</Context> <Pattern><![CDATA[Unknown[]></Pattern> <Flow>Control</Flow> <Direction>cts</Direction> </Attack><Attack> <Type>anomaly</Type> <Test>CHUNK_LENGTH_OVERFLOW</Test> <Direction>any</Direction> </Attack></Members> </Attack></Attacks> </Entry>
Erstellen eines zusammengesetzten Angriffsobjekts
Verwenden Sie zusammengesetzte Angriffsobjekte in Fällen, wenn:
Bei Angriffen werden mehrere Methoden verwendet, um eine Schwachstelle auszunutzen, und bei isolierter Betrachtung erscheinen die einzelnen Kontexte harmlos.
Durch den Abgleich mehrerer Kontexte werden die Zahl der Fehlalarme reduziert.
Durch die Kopplung einer Signatur mit einer Protokollanomalie werden die Falschmeldungen (False Positives) reduziert.
Sie wählen Signaturangriffsobjekte oder vordefinierte Anomalien als "Elemente" des zusammengesetzten Objekts aus und verwenden boolesche Ausdrücke, um die Abgleichslogik anzugeben.
So konfigurieren Sie ein zusammengesetztes Angriffsobjekt:
Siehe auch
Ändern von benutzerdefinierten Angriffsobjekten aufgrund von Änderungen, die in der Signaturaktualisierung eingeführt wurden
In diesem Thema werden Änderungen an einigen Dienstkontexten beschrieben, die vom HTTP-Protokolldecoder generiert werden. Ab Signatur-Update #1972 generiert der HTTP-Protokoll-Decoder einige Kontexte nicht mehr. Wenn Ihre IDP-Sicherheitsrichtlinie benutzerdefinierte Signaturen enthält, die die entfernten Kontexte verwenden, müssen Sie die Definitionen der Angriffsobjekte wie unten beschrieben ändern, um Fehler bei der Richtlinienerstellung zu vermeiden. Dieses Thema enthält die folgenden Informationen:
- Referenz: Entfernte Kontexte
- Beispiel: Ersetzen des Kontexts für Muster, die in HTML-Text erscheinen
- Beispiel: Ersetzen der Kontexte für Muster, die in URLs angezeigt werden
Referenz: Entfernte Kontexte
Um die Leistung zu verbessern, generiert der HTTP-Protokolldecoder nicht mehr die Kontexte, die in der ersten Spalte von Tabelle 19 aufgeführt sind. In dieser Tabelle finden Sie Richtlinien zum Ersetzen der Kontexte in benutzerdefinierten Angriffsobjekten.
Entfernt |
Ersetzen durch |
Richtlinie |
|---|---|---|
http-text-html-body |
http-text-html |
Ändern Sie Signaturen, die den Kontext http-text-html-body verwenden, in http-text-html. Sie müssen keine Änderungen am Signaturmuster oder anderen Eigenschaften vornehmen. |
|
Verwenden Sie eine Kombination der folgenden Kontexte:
|
Verwenden Sie eine zusammengesetzte Signatur mit einem booleschen UND, um das Signaturmuster in mehrere Teile zu unterteilen. Stellen Sie sicher, dass das Feld "Bereich" auf "Transaktion" festgelegt ist. Die Verwendung des http-request-method-Kontexts ist optional. Sie verwenden den http-request-method-Kontext, um die Erkennung an http GET-, POST- oder HEAD-Transaktionen zu binden. Für die GET-Methode verwenden wir das Muster \[GET\] (GET ohne Berücksichtigung der Groß-/Kleinschreibung). Verwenden Sie http-request-method nur, wenn die Ergebnisse, die Sie zuvor beim Abgleich mit der Anforderungsmethode protokolliert haben, es wert sind, beibehalten zu werden. Wenn nicht, lassen Sie es weg, um die Leistung zu verbessern. Wenn Sie http-request-method verwenden, ordnen Sie sie zuerst in der zusammengesetzten Kette an. Verwenden Sie den geparsten http-url-Kontext, um eine in der URL identifizierbare Angriffssignatur abzugleichen. Verwenden Sie diesen Kontext, um ein Muster in der URL abzugleichen, das vor Variablenparametern angezeigt wird, d. h. dem Teil der URL vor dem Fragezeichen (?). Verwenden Sie einen oder mehrere Kontexte, in denen die URL-Variablen mit analysierten Kontexten übereinstimmen – der Teil der URL nach dem Fragezeichen (?), der normalerweise durch kaufmännische Und-Zeichen (&) getrennt ist. |
Beispiel: Ersetzen des Kontexts für Muster, die in HTML-Text erscheinen
Jeder Kontext, der von der HTTP-Detektor-Engine generiert wird, ist mit Leistungseinbußen verbunden. Die Kontexte http-text-html und http-text-html-body dienen dem gleichen Zweck. Durch Verringern der Anzahl von Kontexten wird die Leistung verbessert.
Tabelle 20 zeigt die Eigenschaften einer Signatur vor Update #1972 und der Signatur danach. Dies ist eine einfache Änderung. Sie ändern nur den Kontext. Sie müssen das Muster oder andere Eigenschaften nicht ändern.
Vor dem Update |
Nach dem Update |
|
|---|---|---|
Zusammenhang |
http-text-html-body |
http-text-html |
Muster |
.*<span></span>.* |
.*<span></span>.* |
Beispiel: Ersetzen der Kontexte für Muster, die in URLs angezeigt werden
Dieser Abschnitt besteht aus zwei Teilen:
- Signaturen, die mit Anforderungsmethoden übereinstimmen
- Signaturen, die mit URL-Zeichenfolgen und URL-Variablen übereinstimmen
Signaturen, die mit Anforderungsmethoden übereinstimmen
Überlegen Sie beim Ändern von benutzerdefinierten Angriffsobjekten, die zuvor mit den Anforderungsmethoden GET, POST oder HEAD übereinstimmten, ob Übereinstimmungen mit diesen Anforderungsmethodenmustern für Sie effektiv waren. Denken Sie daran, dass jeder generierte Kontext Leistungseinbußen verursacht. Wenn die Anforderungsmethode für Ihre Ergebnisse nicht wesentlich ist, nutzen Sie diese Gelegenheit, um Ihre Signatur ohne sie neu zu formulieren.
Tabelle 21 und Tabelle 22 zeigen die Eigenschaften einer Signatur vor Update #1972 und die zusammengesetzte Signatur danach. In diesem Beispiel wird das Interesse an der Anforderungsmethode beibehalten.
Signatur vor der Aktualisierung |
|
|---|---|
Umfang |
– |
Zusammenhang |
http-get-url-parsed-param |
Muster |
\[/viper/vegaspalms/\].* |
Zusammengesetzte Signatur nach dem Update |
||
|---|---|---|
|
M01 |
M02-KARTON |
Umfang |
Transaktion |
|
Zusammenhang |
http-request-method |
http-url-parsed |
Muster |
|
\[/viper/vegaspalms/\].* |
Signaturen, die mit URL-Zeichenfolgen und URL-Variablen übereinstimmen
Im Allgemeinen kann sich die Aufteilung eines einzelnen Musters in mehrere Kontexte positiv oder negativ auf die Leistung auswirken. Sie müssen Ihre Änderungen testen, um die Auswirkungen auf die Leistung zu verstehen, bevor Sie die Angriffsobjekte in einem Produktionsnetzwerk bereitstellen. Im Beispiel in Tabelle 23 und Tabelle 24 wird der URL-Abgleich in mehrere Kontexte unterteilt. Unser Sicherheitsteam hat die Leistung für die hier beschriebenen Empfehlungen getestet.
Signatur vor der Aktualisierung |
|
|---|---|
Umfang |
– |
Zusammenhang |
http-get-url-param-parsed-param |
Muster |
|
Zusammengesetzte Signatur nach dem Update |
||||
|---|---|---|---|---|
M01 |
M02-KARTON |
M03-KARTON |
M04-KARTON |
|
Umfang |
Transaktion |
|||
Zusammenhang |
http-url-parsed |
http-variable-parsed |
http-variable-parsed |
http-variable-parsed |
Muster |
|
|
|
|
Siehe auch
Beispiel: Konfigurieren von Compound- oder Chain-Angriffen
In diesem Beispiel wird gezeigt, wie zusammengesetzte Angriffe oder Kettenangriffe für bestimmte Übereinstimmungskriterien konfiguriert werden. Ein zusammengesetztes oder Kettenangriffsobjekt kann so konfiguriert werden, dass es Angriffe erkennt, die mehrere Methoden verwenden, um eine Sicherheitsanfälligkeit auszunutzen.
Anforderungen
Bevor Sie beginnen, muss IDP auf dem Gerät unterstützt und aktiviert werden.
Überblick
Ein zusammengesetztes oder Kettenangriffsobjekt kann die Signaturen und Anomalien zu einem einzigen Angriffsobjekt kombinieren. Ein einzelnes Angriffsobjekt kann enthalten:
Zwei oder mehr Signaturen
Zwei oder mehr Anomalien
Eine Kombination aus Signaturen und Anomalien
Zusammengesetzte oder Kettenangriffsobjekte kombinieren mehrere Signaturen und/oder Protokollanomalien zu einem einzigen Angriffsobjekt und zwingen den Datenverkehr, einem Muster von kombinierten Signaturen und Anomalien innerhalb des zusammengesetzten Angriffsobjekts zu entsprechen, bevor der Datenverkehr als Angriff identifiziert wird. Diese Objekte werden auch verwendet, um Fehlalarme zu reduzieren und die Erkennungsgenauigkeit zu erhöhen. Sie ermöglicht es Ihnen, die Ereignisse genau zu bestimmen, die eintreten müssen, bevor IDP Datenverkehr als Angriff identifiziert.
Konfiguration
Verfahren
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die erforderlich sind, um sie an Ihre Netzwerkkonfiguration anzupassen, kopieren Sie dann die Befehle, fügen Sie sie auf der Hierarchieebene in die CLI ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attacks ftpchain set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack ftpchain severity info set security idp custom-attack ftpchain attack-type chain protocol-binding application ftp set security idp custom-attack ftpchain attack-type chain scope session set security idp custom-attack ftpchain attack-type chain order set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature context ftp-banner set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature pattern .*vsFTPd.* set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature direction server-to-client set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature context ftp-username set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature pattern .*root.* set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature direction client-to-server set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly test LOGIN_FAILED set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly direction any set security idp traceoptions file idpd set security idp traceoptions flag all
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So konfigurieren Sie zusammengesetzte Angriffe oder Kettenangriffe für bestimmte Übereinstimmungskriterien:
Erstellen Sie eine IDP-Richtlinie.
[edit] user@host# set security idp idp-policy idpengine
Ordnen Sie der Richtlinie eine Regelbasis zu.
[edit security idp idp-policy idpengine] user@host# edit rulebase-ips
Fügen Sie der Regelbasis Regeln hinzu.
[edit security idp idp-policy idpengine rulebase-ips] user@host# edit rule 1
Definieren Sie die Übereinstimmungskriterien für die Regel.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
Geben Sie einen Anwendungssatznamen an, der den Regelkriterien entspricht.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
Geben Sie das Angriffsobjekt und den Namen für das Angriffsobjekt an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attacks ftpchain
Geben Sie eine Aktion für die Regel an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
Geben Sie Benachrichtigungs- oder Protokollierungsoptionen für die Regel an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
Aktivieren Sie die IDP-Richtlinie.
[edit] user@host# set security idp active-policy idpengine
Geben Sie einen Namen für den benutzerdefinierten Angriff an.
[edit security idp] user@host# set custom-attack ftpchain
Legen Sie den Schweregrad für den benutzerdefinierten Angriff fest.
[edit security idp custom-attack ftpchain] user@host# set severity info
Legen Sie den Angriffstyp und den Anwendungsnamen für den benutzerdefinierten Angriff fest.
[edit security idp custom-attack ftpchain] user@host# set attack-type chain protocol-binding application ftp
Legen Sie den Umfang und die Reihenfolge fest, in der der Angriff definiert wird.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set scope session user@host# set order
Geben Sie einen Namen für das erste Element des Kettenangriffsobjekts an.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m1
Legen Sie den Kontext, das Muster und die Richtung für das erste Element des Kettenangriffsobjekts fest.
[edit security idp custom-attack ftpchain attack-type chain member m1] user@host# set attack-type signature context ftp-banner user@host# set attack-type signature pattern .*vsFTPd.* user@host# set attack-type signature direction server-to-client
Geben Sie einen Namen für das zweite Element des Kettenangriffsobjekts an.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m2
Legen Sie den Kontext, das Muster und die Richtung für das zweite Element des Kettenangriffsobjekts fest.
[edit security idp custom-attack ftpchain attack-type chain member m2] user@host# set attack-type signature context ftp-username user@host# set attack-type signature pattern .*root.* user@host# set attack-type signature direction client-to-server
Geben Sie einen Namen für das dritte Element des Kettenangriffsobjekts an.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m3
Geben Sie einen Angriffstyp und eine Richtung für das dritte Element des Kettenangriffsobjekts an.
[edit security idp custom-attack ftpchain attack-type chain member m3] user@host# set attack-type anomaly direction any
Geben Sie die Ablaufverfolgungsoptionen und Ablaufverfolgungsdateiinformationen für die IDP-Dienste an.
[edit] user@host# set security idp traceoptions file idpd
Geben Sie die Ereignisse und andere Informationen an, die in die Ablaufverfolgungsausgabe aufgenommen werden müssen.
[edit] user@host# set security idp traceoptions flag all
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security idp Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security idp
idp-policy idpengine {
rulebase-ips {
rule 1 {
match {
from-zone any;
source-address any;
to-zone any;
destination-address any;
application default;
attacks {
custom-attacks ftpchain;
}
}
then {
action {
no-action;
}
notification {
log-attacks;
}
}
}
}
}
active-policy idpengine;
custom-attack ftpchain {
severity info;
attack-type {
chain {
protocol-binding {
application ftp;
}
scope session;
order;
member m1 {
attack-type {
signature {
context ftp-banner;
pattern .*vsFTPd.*;
direction server-to-client;
}
}
}
member m2 {
attack-type {
signature {
context ftp-username;
pattern .*root.*;
direction client-to-server;
}
}
}
member m3 {
attack-type {
anomaly {
test LOGIN_FAILED;
direction any;
}
}
}
}
}
}
traceoptions {
file idpd;
flag all;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit Sie aus dem Konfigurationsmodus.
Wenn Sie in den Konfigurationsmodus wechseln commit , wird die Konfiguration intern überprüft und dann bestätigt. Wenn Fehler auftreten, schlägt der Commit fehl und die Fehler werden gemeldet.
Verifizierung
Führen Sie diese Aufgabe aus, um zu bestätigen, dass die Konfiguration des Kettenangriffs ordnungsgemäß funktioniert:
Überprüfen der Konfiguration
Zweck
Vergewissern Sie sich, dass die Konfiguration des Kettenangriffs korrekt ist.
Aktion
Geben Sie im Betriebsmodus den show security idp policy-commit-status Befehl ein, um den Kompilierungs- oder Ladestatus der Richtlinie zu überprüfen.
Die Ausgabe des show security idp policy-commit-status Befehls ist dynamisch, daher gibt es keine einzelne Ausgabe für diesen Befehl.
Vergewissern Sie sich, dass die Angriffe gemäß der Konfiguration erkannt werden, und leiten Sie den Datenverkehr durch das Gerät, um eine Angriffsübereinstimmung auszulösen. Geben Sie z. B. den show security idp status Befehl ein, um zu überprüfen, ob die Richtlinie geladen ist oder nicht.
user@host> show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
Geben Sie den show security idp attack table Befehl ein, um den Angriffsdatenverkehr weiterzuleiten, und überprüfen Sie dann, ob die Angriffe erkannt werden oder nicht.
Der Befehl zeigt die Ausgabe nur an, wenn Angriffe erkannt werden.
user@host> show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
Beispiel: Konfigurieren von Angriffsgruppen mit dynamischen Angriffsgruppen und benutzerdefinierten Angriffsgruppen
In diesem Beispiel wird gezeigt, wie Angriffsgruppen mit dynamischen Angriffsgruppen und benutzerdefinierten Angriffsgruppen in einer IDP-Richtlinie konfiguriert werden, um einen FTP- oder Telnet-Server zu schützen.
Anforderungen
Bevor Sie beginnen, installieren Sie das Sicherheitspaket nur dann auf dem Gerät, wenn eine der folgenden Aussagen zutrifft:
Dynamische Angriffsgruppen werden konfiguriert.
Benutzerdefinierte Angriffsgruppen enthalten vordefinierte Angriffe oder Angriffsgruppen.
Wenn benutzerdefinierte Angriffsgruppen nur benutzerdefinierte Angriffe enthalten, ist die Lizenz für das Sicherheitspaket nicht erforderlich, und das Sicherheitspaket muss nicht auf dem Gerät installiert werden. Um das Sicherheitspaket zu installieren, benötigen Sie eine IDP-Sicherheitspaketlizenz.
Überblick
IDP enthält eine große Anzahl vordefinierter Angriffsobjekte. Um IDP-Richtlinien zu verwalten und zu organisieren, können Angriffsobjekte gruppiert werden. Eine Angriffsobjektgruppe kann zwei oder mehr Arten von Angriffsobjekten enthalten. Die Angriffsgruppen werden wie folgt klassifiziert:
Dynamische Angriffsgruppe: Enthält Angriffsobjekte, die auf bestimmten Übereinstimmungskriterien basieren. Während einer Signaturaktualisierung wird die dynamische Gruppenmitgliedschaft automatisch basierend auf den Übereinstimmungskriterien für diese Gruppe aktualisiert. Beispielsweise können Sie die Angriffe, die sich auf eine bestimmte Anwendung beziehen, mithilfe der dynamischen Angriffsgruppenfilter dynamisch gruppieren.
Benutzerdefinierte Angriffsgruppe: Enthält eine Liste der Angriffe, die in der Angriffsdefinition angegeben sind. Eine benutzerdefinierte Angriffsgruppe kann auch bestimmte vordefinierte Angriffe, benutzerdefinierte Angriffe, vordefinierte Angriffsgruppen oder dynamische Angriffsgruppen enthalten. Eine benutzerdefinierte Angriffsgruppe ist statisch, da die Angriffe in der Gruppe angegeben werden. Daher ändert sich die Angriffsgruppe nicht, wenn die Sicherheitsdatenbank aktualisiert wird. Bei den Mitgliedern kann es sich um vordefinierte Angriffe oder vordefinierte Angriffsgruppen aus der Signaturdatenbank oder um andere benutzerdefinierte Angriffe und dynamische Angriffsgruppen handeln.
In diesem Beispiel konfigurieren wir eine Angriffsgruppe in einer IDP-Richtlinie, um einen FTP- oder Telnet-Server vor benutzerdefinierten und dynamischen Angriffen zu schützen.
Konfiguration
Verfahren
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die erforderlich sind, um sie an Ihre Netzwerkkonfiguration anzupassen, kopieren Sie dann die Befehle, fügen Sie sie auf der Hierarchieebene in die CLI ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attack-groups cust-group set security idp idp-policy idpengine rulebase-ips rule 1 match attacks dynamic-attack-groups dyn2 set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack customftp severity info set security idp custom-attack customftp attack-type signature context ftp-username set security idp custom-attack customftp attack-type signature pattern .*guest.* set security idp custom-attack customftp attack-type signature direction client-to-server set security idp custom-attack-group cust-group group-members customftp set security idp custom-attack-group cust-group group-members ICMP:INFO:TIMESTAMP set security idp custom-attack-group cust-group group-members "TELNET - Major" set security idp custom-attack-group cust-group group-members dyn1 set security idp dynamic-attack-group dyn1 filters category values TROJAN set security idp dynamic-attack-group dyn2 filters direction expression and set security idp dynamic-attack-group dyn2 filters direction values server-to-client set security idp dynamic-attack-group dyn2 filters direction values client-to-server set security idp dynamic-attack-group dyn2 filters age-of-attack less-than value 7 set security idp dynamic-attack-group dyn2 filters vulnerability-type values Injection set security idp dynamic-attack-group dyn2 filters vendor Microsoft set security idp dynamic-attack-group dyn2 filters cvss-score less-than value 7 set security idp traceoptions file idpd set security idp traceoptions flag all
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So konfigurieren Sie Angriffsgruppen mit dynamischen Angriffsgruppen und benutzerdefinierten Angriffsgruppen:
Erstellen Sie eine IDP-Richtlinie.
[edit] user@host# set security idp idp-policy idpengine
Ordnen Sie der Richtlinie eine Regelbasis zu.
[edit security idp idp-policy idpengine] user@host# set rulebase-ips
Fügen Sie der Regelbasis Regeln hinzu.
[edit security idp idp-policy idpengine rulebase-ips] user@host# set rule 1
Definieren Sie die Übereinstimmungskriterien für die Regel.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
Geben Sie einen Anwendungssatznamen an, der den Regelkriterien entspricht.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
Geben Sie eine Übereinstimmung für die benutzerdefinierte Angriffsgruppe an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attack-groups cust-group
Geben Sie eine Übereinstimmung für die dynamische Angriffsgruppe an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks dynamic-attack-groups dyn2
Geben Sie eine Aktion für die Regel an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
Geben Sie Benachrichtigungs- oder Protokollierungsoptionen für die Regel an.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
Aktivieren Sie die IDP-Richtlinie.
[edit] user@host# set security idp active-policy idpengine
Geben Sie einen Namen für den benutzerdefinierten Angriff an.
[edit security idp] user@host# set custom-attack customftp
Legen Sie den Schweregrad für den benutzerdefinierten Angriff fest.
[edit security idp custom-attack customftp] user@host# set severity info
Legen Sie den Angriffstyp und den Kontext für den Angriff fest.
[edit security idp custom-attack customftp] user@host# set attack-type signature context ftp-username
Geben Sie ein Muster für den Angriff an.
[edit security idp custom-attack customftp] user@host# set attack-type signature pattern .*guest.*
Geben Sie eine Richtung für den Angriff an.
[edit security idp custom-attack customftp] user@host# set attack-type signature direction client-to-server
Geben Sie einen Namen für die benutzerdefinierte Angriffsgruppe an.
[edit security idp] user@host# set custom-attack-group cust-group
Geben Sie eine Liste von Angriffen oder Angriffsgruppen an, die zur benutzerdefinierten Angriffsgruppe gehören.
[edit security idp custom-attack-group cust-group] user@host# set group-members customftp user@host# set group-members ICMP:INFO:TIMESTAMP user@host# set group-members "TELNET - Major" user@host# set group-members dyn1
Geben Sie einen Namen für die erste dynamische Angriffsgruppe an.
[edit security idp] user@host# set dynamic-attack-group dyn1
Konfigurieren Sie einen Filter, und legen Sie einen Kategoriewert für den Filter fest.
[edit security idp dynamic-attack-group dyn1 ] user@host# set filters category values TROJAN
Geben Sie einen Namen für die zweite dynamische Angriffsgruppe an.
[edit security idp] user@host# set dynamic-attack-group dyn2
Konfigurieren Sie einen Filter für die zweite dynamische Angriffsgruppe, und legen Sie die Richtung und ihre Werte für dieses Feld fest.
[edit security idp dynamic-attack-group dyn2 ] user@host# set filters direction expression and user@host# set filters direction values server-to-client user@host# set filters direction values client-to-server user@host# set filters age-of-attack less-than value 7 user@host# set filters cvss-score less-than value 7 user@host# set filters file-type MPEG user@host# set filters vendor Microsoft user@host# set filters vulnerability-type values Injection
Geben Sie die Ablaufverfolgungsoptionen und Ablaufverfolgungsdateiinformationen für die IDP-Dienste an.
[edit] user@host# set security idp traceoptions file idpd
Geben Sie die Ereignisse und andere Informationen an, die in die Ablaufverfolgungsausgabe einbezogen werden müssen.
[edit] user@host# set security idp traceoptions flag all
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security idp Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security idp
idp-policy idpengine {
rulebase-ips {
rule 1 {
match {
from-zone any;
source-address any;
to-zone any;
destination-address any;
application default;
attacks {
custom-attack-groups cust-group;
dynamic-attack-groups dyn2;
}
}
then {
action {
no-action;
}
notification {
log-attacks;
}
}
}
}
}
active-policy idpengine;
custom-attack customftp {
severity info;
attack-type {
signature {
context ftp-username;
pattern .*guest.*;
direction client-to-server;
}
}
}
custom-attack-group cust-group {
group-members [ customftp ICMP:INFO:TIMESTAMP "TELNET - Major" dyn1 ];
}
dynamic-attack-group dyn1 {
filters {
category {
values TROJAN;
}
}
}
dynamic-attack-group dyn2 {
filters {
direction {
expression and;
values [ server-to-client client-to-server ];
}
age-of-attack less-than
{
value 7;
}
vulnerability-type
{
values Injection;
}
vendor Microsoft;
cvss-score less-than
{
value 7;
}
}
}
traceoptions {
file idpd;
flag all;
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit Sie aus dem Konfigurationsmodus.
Wenn Sie in den Konfigurationsmodus wechseln commit , wird die Konfiguration intern überprüft und dann bestätigt. Wenn Fehler auftreten, schlägt der Commit fehl und die Fehler werden gemeldet.
Verifizierung
Überprüfen der Konfiguration
Zweck
Überprüfen Sie, ob die Konfiguration korrekt ist.
Aktion
Geben Sie im Betriebsmodus den show security idp policy-commit-status Befehl ein, um den Kompilierungs- oder Ladestatus der Richtlinie zu überprüfen.
Die Ausgabe des show security idp policy-commit-status Befehls ist dynamisch, daher gibt es keine einzelne Ausgabe für diesen Befehl.
Vergewissern Sie sich, dass die Angriffe gemäß der Konfiguration erkannt werden, und leiten Sie den Datenverkehr durch das Gerät, wodurch eine Angriffsübereinstimmung ausgelöst wird. Geben Sie z. B. den show security idp status Befehl ein, um zu überprüfen, ob die Richtlinie geladen ist oder nicht.
user@host> show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
Geben Sie den show security idp attack table Befehl ein, um den Angriffsdatenverkehr weiterzuleiten, und überprüfen Sie dann, ob die Angriffe erkannt werden oder nicht.
Der Befehl zeigt die Ausgabe nur an, wenn Angriffe erkannt werden.
user@host> show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
Benutzerdefinierte DFA-Ausdrücke für Angriffsobjekte
Tabelle 25 enthält Beispiele für die Syntax des Abgleichs mit einem Angriffsmuster.
Beispielsyntax |
Beschreibung |
Beispiel-Übereinstimmungen |
|---|---|---|
Hallo.. \B.0.1.. 00\B... Welt |
Es gibt zwei Aspekte für das Matching: Muss mit dem Bitmaskenmuster übereinstimmen: \B.0.0.1.. 00\B Muss mit der Anzahl der Bytes (gekennzeichnet durch .) vor und nach dem Bitmaskenmuster übereinstimmen. |
Streichhölzer: Hallo.. \B.0.11100\B... WeltHallo.. \B.0.10000\B... Welt Stimmt nicht überein: Hallo.\B.0.1.. 00\B.worldHallo.. \B.0.1.. 11\B... Welt |
\X01 86 A5 00 00\X |
Muster wörtlich mit den fünf angegebenen Bytes. |
01 86 A5 00 00 |
(hallo|welt) |
Muster mit Hallo oder Welt, das einmal vorkommt. |
Hallo Welt |
(Hallo|Welt)+ |
Muster mit "Hallo" oder "Welt", das ein- oder mehrmals vorkommt. |
HalloWelt WELTHALLO HalloHallo |
\[Hallo\] |
Muster hallo, Groß-/Kleinschreibung wird nicht beachtet. |
Hallo Hallo Hallo |
\uHallo\u |
Muster hallo, Unicode unempfindlich. |
Hallo 68656C6C6F |
Hallo\sworld |
Muster hello world, die beiden Wörter durch ein Leerzeichen getrennt. |
Hallo Welt |
[c-e]a(d|t) |
Muster mit dem Anfangsbuchstaben von c, d oder e; der mittlere Buchstabe a; und endet auf d oder t. |
Katze Papa essen |
[^c-d]a(d|t) |
Muster, das mit einem anderen Buchstaben als c, d oder e beginnt; den zweiten Buchstaben a haben; und enden mit d oder t. |
Modeerscheinung Zad |
a*b+c |
Muster mit einer beliebigen Anzahl von Zeichen (einschließlich Null); gefolgt von einem oder mehreren b-Zeichen; gefolgt von einem C-Zeichen. |
v. Chr ABC aaaaabbbbc |
T[Kk] |
Muster, das mit einem großen T beginnt, gefolgt von einem k, bei dem die Groß-/Kleinschreibung nicht beachtet wird. |
TK Tk |
([tt])k |
Muster, das mit einem t beginnt, bei dem die Groß-/Kleinschreibung nicht beachtet wird, gefolgt von einem Kleinbuchstaben k. |
Tk Tk |
Meer[In] |
Muster, das mit Sea beginnt, gefolgt von einem kleinen l, m oder n. |
Siegel Naht Sean |
([B-D])at |
Muster, das mit einem großen B, C oder D beginnt, gefolgt von einem kleinen Buchstaben at. |
Fledermaus Katze Dat |
\0133\[Hallo\]\0135 |
Muster, das mit einer öffnenden eckigen Klammer beginnt, gefolgt von hello, bei dem die Groß-/Kleinschreibung nicht beachtet wird, und das mit einer schließenden Klammer endet. Dieser Ausdruck verwendet den Ausdruck \0, um anzugeben, dass der folgende Ausdruck ein Oktalcode ist, dann folgt der Oktalcode für die öffnende Klammer (133) oder die schließende Klammer (135). |
[Hallo] [HeLLo] |
Beispiel: Verwenden der Musternegation
Sie können die Musternegation verwenden, um ein Muster auszuschließen, von dem bekannt ist, dass es sicher ist und mit allen anderen Mustern übereinstimmt.
Angenommen, Sie entwerfen ein Angriffsobjekt, um den Datenverkehr zu einem FTP-Server zu untersuchen. Sie wissen, dass der Benutzername und die Kennwörter des Kontos gut verwaltet werden, um sicherzustellen, dass nur autorisierte Benutzer auf interne Ressourcen zugreifen können. Wenn jedoch Netzwerke wachsen und neue Komponenten hinzugefügt werden, kann sich die Anzahl der Benutzerkonten vermehren, wodurch der Netzwerkzugriff auf bestimmte Komponenten erhöht wird. In diesem Beispiel haben Sie einen FTP-Server in Ihrem internen Netzwerk, auf dem mehrere Benutzerkonten aktiviert sind. Um die Sicherheit zu verbessern, möchten Sie den Zugriff auf den FTP-Administrator beschränken.
Sie erstellen ein Angriffsobjekt für den FTP-Dienst, den ftp-username-Kontext und das Muster adminund aktivieren das Kontrollkästchen Negieren . Das Ergebnis ist ein Angriffsobjekt, das Anmeldeversuche von anderen Benutzern als admin. Sie können dieses Angriffsobjekt in einer Regel verwenden, die übereinstimmenden Datenverkehr protokolliert oder verwirft.
Siehe auch
Beispiel: Übereinstimmende Dateierweiterungen
In diesem Beispiel möchten Sie Microsoft Windows-Metadateien erkennen, die die Erweiterungen .emf (Windows Enhanced Metafiles) und .wmf (Microsoft Windows Metafile) verwenden.
Um einen dieser Dateitypen abzugleichen, verwenden Sie einen einfachen DFA-Ausdruck:
.*\.\[w|emf\]
In diesem Ausdruck:
Der Punkt in Kombination mit dem Sternchen (.*) gibt an, dass ein oder mehrere Zeichen vorkommen müssen (Platzhalterübereinstimmung).
Der umgekehrte Schrägstrich in Kombination mit dem Punktzeichen (\.) gibt an, dass der Punkt mit Escapezeichen versehen ist (der Punkt wird im Muster angezeigt).
Die Klammern am Anfang und Ende des Ausdrucks ( ) geben eine Gruppe an. Der senkrechte Strich zwischen dem e und dem w (e|w) gibt eine ODER-Beziehung zwischen den Zeichen an. Für diesen Ausdruck muss e oder w im Muster angezeigt werden, um diesem Ausdruck zu entsprechen. Es muss nur einer anwesend sein.
Die öffnende eckige Klammer (\[) gibt den Beginn einer Übereinstimmung ohne Berücksichtigung der Groß-/Kleinschreibung für alle Zeichen an, bis die schließende eckige Klammer (\]) angezeigt wird.
Die schließende eckige Klammer (\]) gibt das Ende einer Übereinstimmung an, bei der die Groß-/Kleinschreibung nicht beachtet wird.
Siehe auch
Beispiel: Apache Tomcat Denial-of-Service-Angriffe
In diesem Beispiel wird davon ausgegangen, dass Sie über einen Webserver verfügen, auf dem Apache Tomcat ausgeführt wird. Ihr Sicherheitsadministrator benachrichtigt Sie, dass soeben eine Sicherheitslücke für Apache Tomcat angekündigt wurde, und Sie beschließen, ein benutzerdefiniertes Angriffsobjekt zu erstellen, um Ihr Netzwerk zu schützen, bis Sie eine Ausfallzeit zum Patchen des Servers planen können.
Das CVE-Advisory für die Sicherheitsanfälligkeit (http://nvd.nist.gov/nvd.cfm?cvename=CAN-2002-0682) enthält das folgende Zitat:
A cross-site scripting vulnerability in Apache Tomcat 4.0.3 allows remote attackers to execute script as other web users via script in a URL with the /servlet/ mapping, which does not filter the script when an exception is thrown by the servlet.
Anhand dieser Informationen wissen Sie, dass der Angriff HTTP verwendet. Jetzt müssen Sie den Angriffscode finden. Das Advisory enthält auch Verweise, die auf weitere Informationen über den Angriff verweisen. Leider enthält keine der Webseiten, auf die verwiesen wird, Exploit-Code. Nachdem Sie das Internet mit den Informationen aus dem CVE-Advisory durchsucht haben, finden Sie Exploit-Code auf http://packetstormsecurity.nl/0210-exploits/neuter.c. Kopieren Sie das Skript, und verschieben Sie es auf den Computer des Angreifers in der Testumgebung.
So entwickeln Sie dieses Angriffsobjekt:
Siehe auch
Auflisten der IDP-Testbedingungen für ein bestimmtes Protokoll
Wenn Sie benutzerdefinierte IDP-Angriffe konfigurieren, können Sie Testbedingungen für ein bestimmtes Protokoll auflisten. So listen Sie die Testbedingungen für ICMP auf:
Listen Sie die unterstützten Testbedingungen für ICMP auf, und wählen Sie die Testbedingungen aus, die Sie konfigurieren möchten. Die unterstützten Testbedingungen sind in der CLI auf der
[edit security idp custom-attack test1 attack-type anomaly]Hierarchieebene verfügbar.user@host#set test icmp? Possible completions: <test> Protocol anomaly condition to be checked ADDRESSMASK_REQUEST DIFF_CHECKSUM_IN_RESEND DIFF_CHECKSUM_IN_RESPONSE DIFF_LENGTH_IN_RESEND
Konfigurieren Sie den Dienst, für den Sie die Testbedingung konfigurieren möchten.
user@host# set service ICMP
Konfigurieren Sie die Testbedingung (die Angabe des Protokollnamens ist nicht erforderlich).
user@host# set test ADDRESSMASK_REQUEST
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln
commitSie aus dem Konfigurationsmodus.
Grundlegendes zu IDP-Protokolldecodern
Protokolldecoder werden von Intrusion Detection and Prevention (IDP) verwendet, um die Protokollintegrität und Protokollkontextinformationen zu überprüfen, indem nach Anomalien gesucht und sichergestellt wird, dass die RFC-Standards eingehalten werden. Eine Anomalie kann ein beliebiger Teil eines Protokolls sein, z. B. der Header, der Nachrichtentext oder andere einzelne Felder, die von den RFC-Standards für dieses Protokoll abweichen. Wenn z. B. bei SMTP SMTP MAIL TO vor SMTP HELO steht, handelt es sich um eine Anomalie im SMTP-Protokoll.
Wenn Protokollkontextinformationen verfügbar sind, suchen Protokolldecoder nach Angriffen innerhalb dieser Kontexte. Wenn z. B. für SMTP eine E-Mail an user@company.com gesendet wird, sind user@company.com die Kontextinformationen und SMTP MAIL AN der Kontext. Durch die Verwendung von Protokollkontextdaten anstelle des gesamten Pakets für die Angriffserkennung verbessern Protokolldecoder die Gesamtleistung und Genauigkeit.
Wenn eine Richtlinie mit einer Regel konfiguriert ist, die mit der Protokolldecoderprüfung für SMTP übereinstimmt, wird die Regel ausgelöst, und die entsprechende Aktion wird ausgeführt.
Das IDP-Modul wird mit einem vorkonfigurierten Satz von Protokoll-Decodern ausgeliefert. Diese Protokolldecoder verfügen über Standardeinstellungen für verschiedene protokollspezifische kontextbezogene Prüfungen, die sie durchführen. Sie können diese Standardeinstellungen verwenden oder sie an die spezifischen Anforderungen Ihrer Website anpassen. Um die Liste der verfügbaren Protokolldecoder anzuzeigen, geben Sie den folgenden Befehl ein:
user@host # show security idp sensor-configuration detector protocol-name ?
Für eine detailliertere Ansicht des aktuellen Satzes von Protokolldecodern und ihrer Standardkontextwerte können Sie diedetector-capabilities.xml Datei anzeigen, die sich im Ordner /ar/db/idpd/sec-download auf dem Gerät befindet. Wenn Sie ein neues Sicherheitspaket herunterladen, erhalten Sie auch diese Datei, die aktuelle Protokolle und Standard-Decoderkontextwerte auflistet.
Beispiel: UNIX CDE/dtlogin-Schwachstelle
In diesem Beispiel umfasst Ihr Netzwerk mehrere Benutzerarbeitsstationen und Server, auf denen UNIX ausgeführt wird. Viele UNIX-Betriebssysteme verwenden die Common Desktop Environment (CDE) als grafische Benutzeroberfläche. Ihr Sicherheitsadministrator benachrichtigt Sie über eine neue Schwachstelle im dtlogin-Prozess für CDE (der dtlogin-Prozess verarbeitet einen GUI-Anmeldeprozess für CDE).
Das CERT-Advisory für die Sicherheitsanfälligkeit (http://www.kb.cert.org/vuls/id/179804) enthält die folgenden Informationen:
...The dtlogin program contains a "double-free" vulnerability that can be triggered by a specially crafted X Display Manager Control Protocol (XDMCP) packet... Block XDMCP traffic (177/udp) from untrusted networks such as the Internet...
Aus diesen Informationen wissen Sie, dass der Angriff ein XDMCP-Protokollpaket verwendet und auf UDP/177 ausgeführt wird. Jetzt müssen Sie den Angriffscode finden. Das Advisory enthält auch Verweise, die auf weitere Informationen über den Angriff verweisen. Eine Referenz, http://lists.immunitysec.com/pipermail/dailydave/2004-March/000402.html, weist darauf hin, dass die Person, die den Angriff zuerst gemeldet hat, auch ein Skript geschrieben hat, das den Angriff repliziert. Rufen Sie das Skript ab, und verschieben Sie es auf den Computer des Angreifers in der Testumgebung.
So entwickeln Sie dieses Angriffsobjekt:
Siehe auch
Beispiel: Einen Wurm erkennen
Würmer und Trojaner umgehen häufig Firewalls und andere herkömmliche Sicherheitsmaßnahmen, um in ein Netzwerk einzudringen. In diesem Beispiel erstellen Sie ein benutzerdefiniertes Angriffsobjekt, um den Blaster-Wurm in Ihrem Netzwerk zu erkennen.
Das CERT-Advisory (http://www.cert.org/advisories/CA-2003-20.html) für den Blaster-Wurm enthält die folgenden Informationen:
The W32/Blaster worm exploits a vulnerability in Microsoft's DCOM RPC interface...”
Anhand dieser Informationen wissen Sie, dass der Angriff DCOM-Exploits nutzt, eine zuvor identifizierte Sicherheitslücke. Jetzt müssen Sie den Angriffscode finden. Das Advisory enthält auch Verweise, die auf weitere Informationen über den Angriff verweisen. Leider enthält keine der Webseiten, auf die verwiesen wird, Exploit-Code. Nachdem Sie das Internet mit den Informationen aus dem CERT-Advisory durchsucht haben, finden Sie Exploit-Code auf PacketStorm (http://packetstormsecurity.com/0307-exploits/dcom.c).
So entwickeln Sie dieses Angriffsobjekt:
Siehe auch
Beispiel: Zusammengesetzte Signatur zum Erkennen der Ausnutzung einer HTTP-Schwachstelle
Einige Angriffe sind so gestaltet, dass sie harmlos erscheinen, wenn sie auf Paketebene betrachtet werden. Für diese Angriffe können Sie eine zusammengesetzte Signatur erstellen, die mehrere Signaturmuster in mehreren Kontexten (Dienst, Nichtdienst oder beides) erkennt.
In diesem Beispiel verfügen Sie über einen Webserver, der Microsoft FrontPage Server-Erweiterungen verwendet. Ihr Sicherheitsadministrator benachrichtigt Sie über eine neue Sicherheitsanfälligkeit aufgrund eines Pufferüberlaufs in den FrontPage-Servererweiterungen.
Das BugTraq-Advisory für die Sicherheitsanfälligkeit (http://www.securityfocus.com/bid/9007/discussion/) enthält die folgenden Informationen:
Microsoft FrontPage Server Extensions are prone to a remotely exploitable buffer overrun vulnerability ... It is possible to trigger this condition with a chunked-encoded HTTP POST request...
Das folgende Proof-of-Concept-Beispiel wird ebenfalls bereitgestellt:
POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1 Transfer-Encoding: chunked PostLength PostData 0
Zusätzlich ist ein Link zum kompilierten Exploit enthalten.
Aus diesen Informationen wissen Sie, dass der Angriff das HTTP-Protokoll und zumindest einen Teil des Angriffs die POST-Methode verwendet. Verwenden Sie den Link zum kompilierten Exploit, um das Skript abzurufen, und verschieben Sie es auf den Computer des Angreifers in Ihrer Testumgebung.
So entwickeln Sie dieses Angriffsobjekt:
Siehe auch
Beispiel: Verwenden von Zeitbindungsparametern zum Erkennen eines Brute-Force-Angriffs
Die Zeitbindungseinschränkung erfordert, dass das Muster innerhalb einer Minute eine bestimmte Anzahl von Malen auftritt, damit der Datenverkehr als Übereinstimmung betrachtet wird.
Sie können den Zeitbindungsparameter zusammen mit der Signatur verwenden, um Anzeichen eines Brute-Force-Angriffs zu erkennen. Das Ändern des Kennworts durch einen Benutzer ist ein harmloses Ereignis und wird normalerweise gelegentlich im Netzwerk gesehen. Tausende von Passwortänderungen in einer Minute sind jedoch verdächtig.
Bei einem Brute-Force-Angriff versucht der Angreifer, die Systemabwehr mit schierer Gewalt zu durchbrechen, in der Regel durch Überlastung der Kapazität des Zielservers oder durch wiederholte Versuch-und-Irrtum-Versuche, Authentifizierungsanmeldeinformationen abzugleichen. Bei einem Brute-Force-Login-Angriff sammeln die Angreifer zunächst eine Liste von Benutzernamen und ein Passwortwörterbuch. Als Nächstes verwendet der Angreifer ein Tool, das das erste Kennwort für den ersten Benutzer in der Liste in das Wörterbuch eingibt und dann jedes Kennwort für jeden Benutzer ausprobiert, bis eine Übereinstimmung gefunden wird. Wenn der Angreifer jede Kombination aus Benutzernamen und Passwörtern ausprobiert, ist er immer erfolgreich. Brute-Force-Angriffe schlagen jedoch häufig fehl, da das Kennwortwörterbuch in der Regel eingeschränkt ist (nicht alle möglichen Kennwörter enthält) und das Angriffstool keine Permutationen für das Kennwort durchführt (z. B. Umkehren von Buchstaben oder Ändern der Groß-/Kleinschreibung).
In diesem Beispiel erstellen Sie ein Signaturangriffsobjekt, das eine übermäßige Anzahl von Kennwortänderungen für Benutzer erkennt, die über HTTP authentifiziert sind (eine webbasierte Anwendung).
Zuerst konfigurieren Sie ein Angriffsmuster:
.*/\[changepassword\.cgi\]
In diesem Ausdruck:
Die Punkt-Stern-Kombination (.*) gibt eine Platzhalterübereinstimmung an.
Der umgekehrte Schrägstrich vor einem Zeichen gibt an, dass es sich um einen regulären Ausdruck handelt und mit Escapezeichen versehen werden muss. In diesem Fall handelt es sich bei dem Zeichen um eine öffnende Klammer. Der umgekehrte Schrägstrich wird auch in diesem Ausdruck vor der Dateierweiterungsmarkierung (dem Punkt) und vor der schließenden Klammer verwendet.
Der Name des CGI-Skripts, das zum Ändern von Benutzerkennwörtern verwendet wird, ist ebenso enthalten wie die CGI-Erweiterung.
Wählen Sie für den Kontext HTTP-URL-PARSED aus der Liste aus, da Sie versuchen, Kennwortänderungen zu erkennen, die für webbasierte Anwendungen auftreten. Wenn das changepassword.cgi Skript verwendet wird, wird es als Teil der URL angezeigt, aber Sie müssen das Gerät der IDP-Serie anweisen, die URL zu analysieren, um den Namen zu finden.
Als Nächstes konfigurieren Sie die Zeitbindung.
In diesen Einstellungen:
Der Bereich ist auf Peer festgelegt, damit das Angriffsmuster unabhängig von Quelle oder Ziel mit dem Ereignis übereinstimmen kann.
Die Anzahl ist auf eine hohe Zahl (bis 1000) festgelegt, um Fehlalarme zu vermeiden. Dieser Wert bedeutet, dass das changepassword.cgi-Skript 1000 Mal in einer URL vorkommen muss, bevor das Angriffsobjekt abgeglichen wird.
Siehe auch
Referenz: Benutzerdefinierte Protokollnummern für Angriffsobjekte
Tabelle 26 Protokollnummern, die im IDP-System verwendet werden.
Protokollname |
Protokollnummer |
|---|---|
HOPOPT |
0 |
ICMP |
1 |
IGMP |
2 |
GGP |
3 |
IPIP (IPIP) |
4 |
ST |
5 |
TCP |
6 |
CBT (CBT) |
7 |
EGP |
8 |
IGP |
9 |
BBN-RCC-MON |
10 |
NVP-II |
11 |
WELPE |
12 |
ARGUS |
13 |
EMCON |
14 |
XNET |
15 |
CHAOS |
16 |
UDP |
17 |
MUX |
18 |
DCN-MEAS |
19 |
HMP |
20 |
PRM (PRM) |
21 |
XND-IDP |
22 |
STAMM-1 |
23 |
TRUNK-2 |
24 |
LEAF-1 |
25 |
LEAF-2 |
26 |
RDP |
27 |
IRTP |
28 |
ISO-TP4 |
29 |
NETBLT |
30 |
MFE-NSP |
31 |
MERIT-INP |
32 |
SEP |
33 |
3 STÜCK |
34 |
IDPR |
35 |
XTP |
36 |
DDP |
37 |
TP_PLUS_PLUS |
39 |
IL |
40 |
IPV6 |
41 |
SDRP |
42 |
IPV6-ROUTING |
43 |
IDV6-FRAGMENT |
44 |
IDRP |
45 |
U.A.W.G |
46 |
GRE |
47 |
MHRP |
48 |
BNA |
49 |
ASW |
50 |
AH |
51 |
I-NLSP |
52 |
KLAUEN |
53 |
NARP |
54 |
MOBIL |
55 |
TLSP |
56 |
HÜPFEN |
57 |
IPV6-ICMP |
58 |
IPV6-NONXT |
59 |
IPV6-OPTS |
60 |
AHIP |
61 |
CFTP |
62 |
ALNP |
63 |
SAT-EXPAK |
64 |
KRYPTOLAN |
65 |
RVD |
66 |
IPPC |
67 |
ADFSP |
68 |
SA-MO |
69 |
VISUM |
70 |
IPCV (IPCV) |
71 |
CPNX (Englisch) |
72 |
CPHB |
73 |
WSN |
74 |
PVP |
75 |
BR-SAT-MO |
76 |
SUN-ND |
77 |
WB-MON |
78 |
WB-EXPAK |
79 |
ISO-IP |
80 |
VMTP (VMTP) |
81 |
SECURE-VMTP |
82 |
REBEN |
83 |
TTP |
84 |
NSFNET-IBP |
85 |
DGP |
86 |
TCF |
87 |
EIGRP |
88 |
OSPFIGP |
89 |
SPRITE-RPC |
90 |
LARP |
91 |
MTP |
92 |
AX_25 |
93 |
IPIP (IPIP) |
94 |
MICP |
95 |
SCC-SP |
96 |
ETHERIP |
97 |
KAPSELUNG |
98 |
AFFEN |
99 |
GMTP |
100 |
IFMP |
101 |
PNNI |
102 |
PIM |
103 |
ARIS |
104 |
SCPS |
105 |
QNX |
106 |
A/N |
107 |
IPCOMP |
108 |
SNP |
109 |
KOMPAT-PEER |
110 |
IPZ-IN-IP |
111 |
VRRP |
112 |
PGM |
113 |
HOP-O |
114 |
L2TP |
115 |
DDX |
116 |
IATP |
117 |
STP |
118 |
SRP |
119 |
UTI |
120 |
SMP |
121 |
SSM |
122 |
PTP |
123 |
ISIS |
124 |
FEUER |
125 |
CRTP |
126 |
CRUDP |
127 |
SSCOPMCE |
128 |
IPLT |
129 |
SPS |
130 |
PFEIFE |
131 |
SCTP |
132 |
FC |
133 |
RSVP-E2E-IGNORIEREN |
134 |
N/A |
|
N/A |
|
N/A |
|
RESERVIERT |
255 |
Referenz: Nicht druckbare und druckbare ASCII-Zeichen
Die folgenden Tabellen enthalten Details zur ASCII-Darstellung von nicht druckbaren und druckbaren Zeichen.
Dec |
Fluch |
Okt |
Verkohlen |
Kommentar |
|---|---|---|---|---|
0 |
0 |
000 |
NUL |
Null |
1 |
1 |
001 |
SOH |
Anfang der Überschrift |
2 |
2 |
002 |
STX |
Textanfang |
3 |
3 |
003 |
ETX |
Ende des Textes |
4 |
4 |
004 |
EOT |
Ende der Übertragung |
5 |
5 |
005 |
ENQ |
Anfrage |
6 |
6 |
006 |
ACK |
Anerkennen |
7 |
7 |
007 |
BEL |
Glocke |
8 |
8 |
010 |
BS |
Backspace |
9 |
9 |
011 |
REGISTERKARTE |
Registerkarte "Horizontal" |
10 |
Ein |
012 |
LF |
Zeilenvorschub |
11 |
B |
013 |
VT |
Vertikale Registerkarte |
12 |
C |
014 |
FF |
Formularvorschub |
13 |
D |
015 |
CR |
Wagenrücklauf |
14 |
E |
016 |
ALSO |
Ausschalten |
15 |
F |
017 |
SI |
EINSCHALTEN |
16 |
10 |
020 |
DLE |
Datenlink-Flucht |
17 |
11 |
021 |
DC1-KARTON |
Gerätesteuerung 1 |
18 |
12 |
022 |
DC2-KARTON |
Gerätesteuerung 2 |
19 |
13 |
023 |
DC3-KARTON |
Gerätesteuerung 3 |
20 |
14 |
024 |
DC4 |
Gerätesteuerung 4 |
21 |
15 |
025 |
NAK |
Negative Bestätigung |
22 |
16 |
026 |
SYN |
Synchroner Leerlauf |
23 |
17 |
027 |
ETB |
Ende des Übertragungsblocks |
24 |
18 |
030 |
DOSE |
Abbrechen |
25 |
19 |
031 |
EM |
Ende des Mediums |
26 |
1A |
032 |
SUB |
Ersatz |
27 |
1 Mrd. |
033 |
ESC |
Flucht |
28 |
1C |
034 |
FS |
Dateitrennzeichen |
29 |
1D |
035 |
GS |
Gruppentrennzeichen |
30 |
1E |
036 |
RS |
Datensatz-Trennzeichen |
31 |
1F |
037 |
UNS |
Trennzeichen für Einheiten |
Dec |
Fluch |
Okt |
Verkohlen |
|---|---|---|---|
32 |
20 |
040 |
Raum |
33 |
21 |
041 |
! |
34 |
22 |
042 |
|
35 |
23 |
043 |
# |
36 |
24 |
044 |
$ |
37 |
25 |
045 |
% |
38 |
26 |
046 |
& |
39 |
27 |
047 |
|
40 |
28 |
050 |
( |
41 |
29 |
051 |
) |
42 |
2A |
052 |
* |
43 |
2 Mrd. |
053 |
+ |
44 |
2C |
054 |
, |
45 |
2D |
055 |
- |
46 |
2E |
056 |
. |
47 |
2F |
057 |
/ |
48 |
30 |
060 |
0 |
49 |
31 |
061 |
1 |
50 |
32 |
062 |
2 |
51 |
33 |
063 |
3 |
52 |
34 |
064 |
4 |
53 |
35 |
065 |
5 |
54 |
36 |
066 |
6 |
55 |
37 |
067 |
7 |
56 |
38 |
070 |
8 |
57 |
39 |
071 |
9 |
58 |
3A |
072 |
: |
59 |
3 Mrd. |
073 |
; |
60 |
3C |
074 |
< |
61 |
3D |
075 |
= |
62 |
3E |
076 |
> |
63 |
3F |
077 |
? |
64 |
40 |
100 |
@ |
65 |
41 |
101 |
Ein |
66 |
42 |
102 |
B |
67 |
43 |
103 |
C |
68 |
44 |
104 |
D |
69 |
45 |
105 |
E |
70 |
46 |
106 |
F |
71 |
47 |
107 |
G |
72 |
48 |
110 |
H |
73 |
49 |
111 |
Ich |
74 |
4A |
112 |
J |
75 |
4 Mrd. |
113 |
K |
76 |
4C |
114 |
L |
77 |
4D |
115 |
M |
78 |
4E |
116 |
N |
79 |
4F |
117 |
O |
80 |
50 |
120 |
P |
81 |
51 |
121 |
Q |
82 |
52 |
122 |
R |
83 |
53 |
123 |
S |
'84 |
54 |
124 |
T |
85 |
55 |
125 |
U |
86 |
56 |
126 |
V |
87 |
57 |
127 |
W |
88 |
58 |
130 |
X |
89 |
59 |
131 |
Y |
90 |
5A |
132 |
Z |
91 |
5 Mrd. |
133 |
[ |
92 |
5C |
134 |
\ |
93 |
5D |
135 |
] |
94 |
5E |
136 |
^ |
95 |
5F |
137 |
_ |
96 |
60 |
140 |
` |
97 |
61 |
141 |
ein |
98 |
62 |
142 |
b |
99 |
63 |
143 |
c |
100 |
64 |
144 |
d |
101 |
65 |
145 |
e |
102 |
66 |
146 |
f |
103 |
67 |
147 |
g |
104 |
68 |
150 |
h |
105 |
69 |
151 |
Ich |
106 |
6A |
152 |
j |
107 |
6 Mrd. |
153 |
k |
108 |
6C |
154 |
l |
109 |
6D |
155 |
m |
110 |
6E |
156 |
n |
111 |
6F |
157 |
o |
112 |
70 |
160 |
p |
113 |
71 |
161 |
q |
114 |
72 |
162 |
r |
115 |
73 |
163 |
s |
116 |
74 |
164 |
t |
117 |
75 |
165 |
u |
118 |
76 |
166 |
v |
119 |
77 |
167 |
w |
120 |
78 |
170 |
x |
121 |
79 |
171 |
y |
122 |
7A |
172 |
z |
123 |
7 Mrd. |
173 |
{ |
124 |
7C |
174 |
| |
125 |
7D |
175 |
} |
126 |
7E |
176 |
~ |
127 |
7F |
177 |
DEL |
128 |
80 |
200 |
Ç |
129 |
81 |
201 |
ü |
130 |
82 |
202 |
é |
131 |
83 |
203 |
â |
132 |
84 |
204 |
ä |
133 |
85 |
205 |
à |
134 |
86 |
206 |
å |
135 |
87 |
207 |
ç |
136 |
88 |
210 |
ê |
137 |
89 |
211 |
ë |
138 |
8A |
212 |
è |
139 |
8 Mrd. |
213 |
ï |
140 |
8C |
214 |
î |
141 |
8D |
215 |
ì |
142 |
8E |
216 |
Ä |
143 |
8F |
217 |
Å |
144 |
90 |
220 |
É |
145 |
91 |
221 |
æ |
146 |
92 |
222 |
Æ |
147 |
93 |
223 |
ô |
148 |
94 |
224 |
ö |
149 |
95 |
225 |
ò |
150 |
96 |
226 |
û |
151 |
97 |
227 |
ù |
152 |
98 |
230 |
ÿ |
153 |
99 |
231 |
Ö |
154 |
9A |
232 |
Ü |
155 |
9 Mrd. |
233 |
¢ |
156 |
9C |
234 |
£ |
157 |
9D |
235 |
¥ |
158 |
9E |
236 |
P |
159 |
9F |
237 |
ƒ |
160 |
A0 |
240 |
á |
161 |
DIN A1 |
241 |
í |
162 |
DIN A2 |
242 |
ó |
163 |
DIN A3 |
243 |
ú |
164 |
DIN A4 |
244 |
ñ |
165 |
DIN A5 |
245 |
Ñ |
166 |
DIN A6 |
246 |
ª |
167 |
DIN A7 |
247 |
º |
168 |
A8 |
250 |
¿ |
169 |
A9 |
251 |
¬ |
170 |
AA |
252 |
|
171 |
BLUTGRUPPE |
253 |
1/2 |
172 |
WECHSELSTROM |
254 |
1/4 |
173 |
INSERAT |
255 |
¡ |
174 |
AE |
256 |
" |
175 |
AF |
257 |
" |
176 |
B0 |
260 |
¦ |
177 |
B1 |
262 |
¦ |
178 |
B2 |
262 |
¦ |
179 |
B3 |
263 |
¦ |
180 |
B4 |
264 |
¦ |
181 |
B5 |
265 |
¦ |
182 |
B6 |
266 |
¦ |
183 |
B7 |
267 |
+ |
184 |
B8-KARTON |
270 |
+ |
185 |
B9-KARTON |
271 |
¦ |
186 |
BA |
272 |
¦ |
187 |
BB |
273 |
+ |
188 |
V. Chr |
274 |
+ |
189 |
BD |
275 |
+ |
190 |
SEIN |
276 |
+ |
191 |
BF |
277 |
+ |
192 |
C0 |
300 |
+ |
193 |
C1 |
301 |
- |
194 |
C2-KARTON |
302 |
- |
195 |
C3-KARTON |
303 |
+ |
196 |
C4 |
304 |
- |
197 |
C5 |
305 |
+ |
198 |
C6-KARTON |
306 |
¦ |
199 |
C7-KARTON |
307 |
¦ |
200 |
C8-KARTON |
310 |
+ |
201 |
C9-KARTON |
311 |
+ |
202 |
CA |
312 |
- |
203 |
CB |
313 |
- |
204 |
CC |
314 |
¦ |
205 |
CD |
315 |
- |
206 |
Unserer Zeitrechnung |
316 |
+ |
207 |
VGL |
317 |
- |
208 |
D0-KARTON |
320 |
- |
209 |
D1 |
321 |
- |
210 |
D2-KARTON |
322 |
- |
211 |
D3 |
323 |
+ |
212 |
D4 |
324 |
+ |
213 |
D5 |
325 |
+ |
214 |
D6 |
326 |
+ |
215 |
D7 |
327 |
+ |
216 |
D8-KARTON |
330 |
+ |
217 |
D9-KARTON |
331 |
+ |
218 |
DA |
332 |
+ |
219 |
DB |
333 |
¦ |
220 |
GLEICHSTROM |
334 |
_ |
221 |
DD |
335 |
¦ |
222 |
DE |
336 |
¦ |
223 |
DF |
337 |
¯ |
224 |
E0 |
340 |
ein |
225 |
E1 |
341 |
ß |
226 |
E2 |
342 |
G |
227 |
E3 |
343 |
p |
228 |
E4 |
344 |
S |
229 |
E5 |
345 |
s |
230 |
E6 |
346 |
μ |
231 |
E7 |
347 |
t |
232 |
E8-KARTON |
350 |
F |
233 |
E9 |
351 |
T |
234 |
EA |
352 |
O |
235 |
EB |
353 |
d |
236 |
EG |
354 |
8 |
237 |
ED |
355 |
f |
238 |
EE |
356 |
e |
239 |
EF |
357 |
n |
240 |
F0 |
360 |
= |
241 |
Formel 1 |
361 |
+/- |
242 |
F2 |
362 |
= |
243 |
Taste F3 |
363 |
= |
244 |
Taste 4 |
364 |
( |
245 |
F5 |
365 |
) |
246 |
F6 |
366 |
÷ |
247 |
F7 |
367 |
˜ |
248 |
F8 |
370 |
° |
249 |
Taste F9 |
371 |
﹒ |
250 |
FA |
372 |
﹒ |
251 |
FB |
373 |
v |
252 |
FC |
374 |
n |
253 |
FD |
375 |
² |
254 |
FE |
376 |
¦ |
255 |
FF |
377 |
|
Beispiel: Konfigurieren von IDP-Protokolldecodern
In diesem Beispiel wird gezeigt, wie IDP-Protokolldecoder-Tunables konfiguriert werden.
Anforderungen
Bevor Sie beginnen, sollten Sie sich mit der Funktion IDP-Protokolldecoder vertraut machen. Weitere Informationen finden Sie unter Grundlegendes zu IDP-Protokolldecodern.
Überblick
Das Junos IDP-Modul wird mit einer Reihe von vorkonfigurierten Protokoll-Decodern ausgeliefert. Diese Protokolldecoder verfügen über Standardeinstellungen für verschiedene protokollspezifische kontextbezogene Prüfungen, die sie durchführen. Sie können die Standardeinstellungen verwenden oder sie an die spezifischen Anforderungen Ihrer Website anpassen. In diesem Beispiel wird gezeigt, wie Sie den Protokolldecoder für FTP optimieren.
Konfiguration
Verfahren
Schritt-für-Schritt-Anleitung
So konfigurieren Sie IDP-Protokolldecoder-Tunables:
Zeigen Sie die Liste der Protokolle mit abstimmbaren Parametern an.
[edit] user@host# edit security idp sensor-configuration detector protocol-name FTP
Konfigurieren Sie abstimmbare Parameter für das FTP-Protokoll.
[edit security idp sensor-configuration-detector protocol-name FTP] user@host# set tunable-name sc_ftp_failed_logins tunable-value 4 user@host# set tunable-name sc_ftp_failed_flags tunable value 1 user@host# set tunable-name sc_ftp_line_length tunable-value 1024 user@host# set tunable-name sc_ftp_password_length tunable-value 64 user@host# set tunable-name sc_ftp_sitestring_length tunable-value 512 user@host# set tunable-name sc_ftp_username_length tunable-value 32
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Verifizierung
Um zu überprüfen, ob die Konfiguration ordnungsgemäß funktioniert, geben Sie den Befehl show security idp status ein.
Grundlegendes zur Unterstützung mehrerer IDP-Detektoren
Wenn ein neues Sicherheitspaket empfangen wird, enthält es Angriffsdefinitionen und einen Detektor. In jeder Version eines Sicherheitspakets entsprechen die Angriffsdefinitionen den Fähigkeiten des mitgelieferten Detektors. Wenn die Richtlinienalterung auf dem Gerät deaktiviert ist (siehe die Anweisung zum Zurücksetzen der Richtlinie für Befehle zur Richtlinienalterung), ist immer nur eine Richtlinie gültig. Wenn jedoch die Richtlinienalterung aktiviert ist und eine Richtlinienaktualisierung erfolgt, wird die vorhandene Richtlinie nicht entladen, wenn die neue Richtlinie geladen wird. Daher können beide Richtlinien auf dem Gerät in Kraft sein. In diesem Fall werden alle vorhandenen Sitzungen weiterhin durch vorhandene Richtlinien überprüft, und neue Sitzungen werden mit neuen Richtlinien überprüft. Sobald alle vorhandenen Sitzungen, die die ältere Richtlinie verwenden, beendet wurden oder abgelaufen sind, wird die ältere Richtlinie entladen.
Wenn eine Richtlinie geladen wird, wird sie auch einem Detektor zugeordnet. Wenn der neuen Richtlinie, die geladen wird, ein Detektor zugeordnet ist, der mit dem Detektor übereinstimmt, der bereits von der vorhandenen Richtlinie verwendet wird, wird der neue Detektor nicht geladen, und beide Richtlinien verwenden einen einzelnen zugeordneten Detektor. Wenn der neue Melder jedoch nicht mit dem aktuellen Melder übereinstimmt, wird der neue Melder zusammen mit der neuen Richtlinie geladen. In diesem Fall verwendet jede geladene Richtlinie einen eigenen zugehörigen Detektor für die Angriffserkennung.
Beachten Sie, dass maximal zwei Melder gleichzeitig geladen werden können. Wenn bereits zwei Melder geladen sind (durch zwei oder mehr Richtlinien) und das Laden einer neuen Richtlinie auch das Laden eines neuen Detektors erfordert, muss mindestens einer der geladenen Detektoren entladen werden, bevor der neue Detektor geladen werden kann. Bevor ein Melder entladen wird, werden auch alle Richtlinien, die den entsprechenden Melder verwenden, entladen.
Sie können die aktuelle Richtlinie und die entsprechende Melderversion anzeigen, indem Sie den folgenden Befehl eingeben:
user@host> show security idp status
Ab Junos OS Version 18.4R1 werden beim Laden einer neuen IDP-Richtlinie die vorhandenen Sitzungen anhand der neu geladenen Richtlinie überprüft, und die vorhandenen Sitzungen werden bei der IDP-Verarbeitung nicht ignoriert. Die IDP-Überprüfung wird für kontextbasierte Angriffe, die vom Melder erstellt werden, fortgesetzt, nachdem eine neue IDP-Richtlinie geladen wurde, mit der Ausnahme, dass die neue Richtlinie, die mit dem neuen Melder geladen wird, nicht identisch ist.
Grundlegendes zur Inhaltsdekomprimierung
In Anwendungsprotokollen wie HTTP können die Inhalte komprimiert und dann über das Netzwerk übertragen werden. Die Muster stimmen nicht mit dem komprimierten Inhalt überein, da die Signaturmuster so geschrieben werden, dass sie mit den nicht codierten Verkehrsdaten übereinstimmen. In diesem Fall wird die IDP-Erkennung umgangen. Um eine IDP-Erkennung des komprimierten HTTP-Inhalts zu vermeiden, wurde ein IDP-Submodul hinzugefügt, das den Protokollinhalt dekomprimiert. Der Signaturmusterabgleich erfolgt für den dekomprimierten Inhalt.
Um den Status aller IPS-Zählerwerte anzuzeigen, geben Sie den folgenden Befehl ein:
user@host> show security idp counters ips
Einige Angriffe werden durch komprimierte Inhalte eingeführt. Wenn der Inhalt dekomprimiert wird, kann er sich zu einer sehr großen Größe aufblähen, was wertvolle Systemressourcen beansprucht, was zu Denial-of-Service führt. Diese Art von Angriff erkennt man am Verhältnis von dekomprimierter Datengröße zu komprimierter Datengröße. Der Zähler content-decompress-ratio-over-limit gibt die Anzahl der Vorfälle an, bei denen dieses Verhältnis überschritten wurde. Das Standardverhältnis wird als konsistent mit einer typischen Umgebung angesehen. In einigen Fällen muss dieses Verhältnis jedoch durch Zurücksetzen des content-decompress-ratio-over-limit Werts angepasst werden. Beachten Sie jedoch, dass ein höheres Verhältnis die Wahrscheinlichkeit verringert, diese Art von Angriff zu erkennen.
Der Zähler content-decompress-memory-over-limit gibt die Anzahl der Vorfälle an, bei denen die Menge der dekomprimierten Daten den zugewiesenen Arbeitsspeicher überschritten hat. Die Standardspeicherzuweisung bietet 33 KB pro Sitzung für eine durchschnittliche Anzahl von Sitzungen, die gleichzeitig dekomprimiert werden müssen. Um festzustellen, ob dieser Wert mit Ihrer Umgebung konsistent ist, analysieren Sie Werte aus dekomprimierungsbezogenen Zählern und die Gesamtzahl der IDP-Sitzungen, die das Gerät durchlaufen, und schätzen Sie die Anzahl der Sitzungen, die gleichzeitig dekomprimiert werden müssen. Unter der Annahme, dass für jede dieser Sitzungen 33 KB Arbeitsspeicher für die Dekomprimierung erforderlich sind, vergleichen Sie Ihre geschätzten Anforderungen mit dem Standardwert. Bei Bedarf können Sie die Speicherzuweisung anpassen, indem Sie den content-decompression-max-memory-kb Wert zurücksetzen. Beachten Sie, dass, da die Inhaltsdekomprimierung eine erhebliche Zuweisung von Arbeitsspeicher erfordert, die Systemleistung durch eine Erhöhung der maximalen Speicherzuweisung für die Dekomprimierung beeinträchtigt wird.
Beispiel: Konfigurieren der IDP-Inhaltsdekomprimierung
In diesem Beispiel wird gezeigt, wie die Dekomprimierung von IDP-Inhalten konfiguriert wird.
Anforderungen
Bevor Sie beginnen, sollten Sie sich die Funktion zur Dekomprimierung von IDP-Inhalten ansehen. Weitere Informationen finden Sie unter Grundlegendes zur Inhaltsdekomprimierung
Überblick
Die Dekomprimierungsfunktion ist standardmäßig deaktiviert. In diesem Beispiel aktivieren Sie den Detektor, konfigurieren den maximalen Arbeitsspeicher auf 50.000 Kilobyte und konfigurieren ein maximales Dekomprimierungsverhältnis von 16:1.
Das Aktivieren der Dekomprimierung führt zu einer Verringerung der Leistung auf Ihrem Gerät.
Konfiguration
Verfahren
Schritt-für-Schritt-Anleitung
So konfigurieren Sie die Dekomprimierung von IDP-Inhalten:
Aktivieren Sie den Melder.
[edit] user@host# set security idp sensor‑configuration detector protocol‑name HTTP tunable‑name sc_http_compress_inflating tunable‑value 1
Anmerkung:Um den Melder zu deaktivieren, setzen Sie den Wert
tunable‑valueauf 0.Ändern Sie bei Bedarf den maximalen Arbeitsspeicher in Kilobyte.
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-memory-kb 50000
Konfigurieren Sie bei Bedarf das maximale Dekomprimierungsverhältnis.
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-ratio 16
Wenn Sie mit der Konfiguration des Geräts fertig sind, bestätigen Sie die Konfiguration.
[edit] user@host# commit
Verifizierung
Um zu überprüfen, ob die Konfiguration ordnungsgemäß funktioniert, geben Sie den Befehl show security idp status ips ein. Die Inhaltsdekomprimierungszähler stellen Statistiken zur Dekomprimierungsverarbeitung bereit.
Grundlegendes zu signaturbasierten IDP-Angriffen
Um ein benutzerdefiniertes Angriffsobjekt zu konfigurieren, geben Sie einen eindeutigen Namen für das Objekt an und geben dann zusätzliche Informationen an, die Ihnen das Auffinden und Verwalten des Angriffsobjekts erleichtern können.
Bestimmte Eigenschaften in den Angriffsobjektdefinitionen sind für alle Arten von Angriffen gleich, z. B. Angriffsname, Schweregrad, Dienst- oder Anwendungsbindung, Zeitbindung und Protokoll- oder Portbindung. Einige Felder sind spezifisch für einen Angriffstyp und nur für diese spezifische Angriffsdefinition verfügbar.
Signaturangriffsobjekte verwenden eine zustandsbehaftete Angriffssignatur (ein Muster, das immer innerhalb eines bestimmten Angriffsabschnitts vorhanden ist), um bekannte Angriffe zu erkennen. Dazu gehören auch das Protokoll oder der Dienst, der für den Angriff verwendet wurde, und der Kontext, in dem der Angriff stattfindet. Die folgenden Eigenschaften sind spezifisch für Signaturangriffe und Sie können sie bei der Konfiguration des Signaturangriffs konfigurieren: Angriffskontext, Angriffsrichtung, Angriffsmuster und protokollspezifische Parameter (TCP-, UDP-, ICMP- oder IP-Headerfelder).
Beachten Sie bei der Konfiguration von signaturbasierten Angriffen Folgendes:
Angriffskontext und -richtung sind Pflichtfelder für die Definition des Signaturangriffs.
Die Musternegation wird nur für paket-, leitungs- und anwendungsbasierte Kontexte unterstützt, nicht aber für stream- und normalisierte Streamkontexte.
Bei der Konfiguration der protokollspezifischen Parameter können Sie Felder nur für eines der folgenden Protokolle angeben: IP, TCP, UDP oder ICMP.
Wenn Sie eine Protokollbindung konfigurieren, können Sie nur eine der folgenden Optionen angeben: IP, ICMP, TCP, UDP, RPC oder Anwendungen.
IP: Die Protokollnummer ist ein Pflichtfeld.
TCP und UDP: Sie können entweder einen einzelnen Port (
minimum-port) oder einen Portbereich (minimum-portundmaximum-port) angeben. Wenn Sie keinen Port angeben, wird der Standardwert (0-65535) verwendet.RPC: Die Programmnummer ist ein Pflichtfeld.
Ab Junos OS Version 19.1R1 können Sie signaturbasierte Angriffe mithilfe erweiterter Hyperscan-Parameter konfigurieren. Durch das Festlegen optimaler Werte für die erweiterten Hyperscan-Parameter können Sie den Prozess des Angriffsmusterabgleichs erheblich verbessern.
Um die erweiterten Parameter zu konfigurieren, fügen Sie die optional-parameters Option auf Hierarchieebene [edit security idp custom-attack attack-name attack-type signature] ein. Unter der optional-parameters Option können Sie folgende Parameter konfigurieren:
min-offsetmax-offsetmin-length
Kurzes Funktionsprinzip der Hyperscan API – Hyperscan ist eine Software-Engine für den Abgleich regulärer Ausdrücke, die auf hohe Leistung und Flexibilität ausgelegt ist. Wenn eine Signatur mit einem Muster als Teil einer IDP-Richtlinie konfiguriert wird, wird das Muster als regulärer Ausdruck identifiziert. In der Routing-Engine nimmt Hyperscan diesen regulären Ausdruck als Eingabe und kompiliert ihn zu einer Datenbank, die an die Packet Forwarding Engine übertragen wird. Wenn ein Paket in die Packet Forwarding Engine eingeht, werden die Daten im Paket überprüft, um festzustellen, ob sie mit dem regulären Ausdruck übereinstimmen, der die Datenbank verwendet.
Wenn eine IDP-Richtlinie mit einem Satz von Signaturen konfiguriert ist, werden deterministische endliche Automatengruppen (DFA) gebildet. Muster aller Signaturen in den DFA-Gruppen werden an Hyperscan übergeben, um eine einzige Datenbank zu bilden, mit der alle Angriffe im Paket gleichzeitig überprüft werden können. Da für jeden Angriff eine einzelne Datenbank anstelle einer separaten Datenbank verwendet wird, ist der Musterabgleich effizient.
Wenn eine Signatur mit den erweiterten Parametern konfiguriert ist, bildet die Hyperscan API die Datenbank unter Berücksichtigung der konfigurierten Parameter. Der Musterabgleich erfolgt auf der Packet Forwarding Engine mit dieser neuen Datenbank. Mit diesen Parametern können die von einem Muster erzeugten Übereinstimmungen zur Kompilierzeit eingeschränkt werden, anstatt sich darauf zu verlassen, dass die Anwendung unerwünschte Übereinstimmungen zur Laufzeit verarbeitet.
Siehe auch
Beispiel: Konfigurieren von IDP-signaturbasierten Angriffen
In diesem Beispiel wird gezeigt, wie ein signaturbasiertes Angriffsobjekt erstellt wird.
Anforderungen
Bevor Sie beginnen, konfigurieren Sie Netzwerkschnittstellen.
Überblick
In diesem Beispiel erstellen Sie einen Signaturangriff mit dem Namen sig1 und weisen ihm die folgenden Eigenschaften zu:
Empfohlene Aktion (Paket verwerfen): Legt ein passendes Paket ab, bevor es sein Ziel erreichen kann, schließt die Verbindung jedoch nicht.
Zeitbindung: Gibt den Bereich als
sourceund die Anzahl als10an. Wenn scope gleich istsource, werden alle Angriffe von derselben Quelle gezählt, und wenn die Anzahl der Angriffe die angegebene Anzahl (10) erreicht, wird der Angriff protokolliert. In diesem Beispiel wird jeder zehnte Angriff von derselben Quelle protokolliert.Angriffskontext (Paket): Entspricht dem Angriffsmuster innerhalb eines Pakets.
Angriffsrichtung (beliebig): Erkennt den Angriff in beide Richtungen – Client-zu-Server- und Server-zu-Client-Datenverkehr.
Protokoll (TCP): Gibt den TTL-Wert 128 an.
Shellcode (Intel): Legt das Flag fest, um Shellcode für Intel-Plattformen zu erkennen.
Protokollbindung: Gibt das TCP-Protokoll und die Ports 50 bis 100 an.
Nachdem Sie ein signaturbasiertes Angriffsobjekt konfiguriert haben, geben Sie den Angriff als Übereinstimmungskriterium in einer IDP-Richtlinienregel an. Siehe Beispiel: Definieren von Regeln für eine IDP-IPS-Regelbasis.
Konfiguration
Verfahren
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die erforderlich sind, um sie an Ihre Netzwerkkonfiguration anzupassen, kopieren Sie dann die Befehle, fügen Sie sie auf der Hierarchieebene in die CLI ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security idp custom-attack sig1 severity major set security idp custom-attack sig1 recommended-action drop-packet set security idp custom-attack sig1 time-binding scope source count 10 set security idp custom-attack sig1 attack-type signature context packet set security idp custom-attack sig1 attack-type signature shellcode intel set security idp custom-attack sig1 attack-type signature protocol ip ttl value 128 match equal set security idp custom-attack sig1 attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100 set security idp custom-attack sig1 attack-type signature direction any
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So erstellen Sie ein signaturbasiertes Angriffsobjekt:
Geben Sie einen Namen für den Angriff an.
[edit] user@host# edit security idp custom-attack sig1
Geben Sie allgemeine Eigenschaften für den Angriff an.
[edit security idp custom-attack sig1] user@host# set severity major user@host# set recommended-action drop-packet user@host# set time-binding scope source count 10
Geben Sie den Angriffstyp und den Kontext an.
[edit security idp custom-attack sig1] user@host# set attack-type signature context packet
Geben Sie die Angriffsrichtung und das Shellcode-Flag an.
[edit security idp custom-attack sig1] user@host# set attack-type signature shellcode intel
Legen Sie das Protokoll und seine Felder fest.
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol ip ttl value 128 match equal
Geben Sie die Protokollbindung und die Ports an.
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100
Geben Sie die Richtung an.
[edit security idp custom-attack sig1] user@host# set attack-type signature direction any
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security idp Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security idp
custom-attack sig1 {
recommended-action drop-packet;
severity major;
time-binding {
count 10;
scope source;
}
attack-type {
signature {
protocol-binding {
tcp {
minimum-port 50 maximum-port 100;
}
}
context packet;
direction any;
shellcode intel;
protocol {
ip {
ttl {
match equal;
value 128;
}
}
}
}
}
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit Sie aus dem Konfigurationsmodus.
Grundlegendes zu auf IDP-Protokollanomalien basierenden Angriffen
Ein Angriffsobjekt für Protokollanomalien erkennt unbekannte oder komplexe Angriffe, die gegen Protokollspezifikationen (RFCs und allgemeine RFC-Erweiterungen) verstoßen. Sie können keine neuen Protokollanomalien erstellen, aber Sie können ein neues Angriffsobjekt konfigurieren, das steuert, wie Ihr Gerät mit einer vordefinierten Protokollanomalie umgeht, wenn es erkannt wird.
Die folgenden Eigenschaften sind spezifisch für Angriffe auf Protokollanomalien:
Angriffsrichtung
Versuchsbedingung
Beachten Sie bei der Konfiguration von auf Protokollanomalien basierenden Angriffen Folgendes:
Die Dienst- oder Anwendungsbindung ist ein Pflichtfeld für Angriffe auf Protokollanomalien. Neben den unterstützten Anwendungen umfassen die Services auch IP, TCP, UDP, ICMP und RPC.
Die Eigenschaften "Angriffsrichtung" und "Testbedingung" sind Pflichtfelder für die Konfiguration von Anomalie-Angriffsdefinitionen.
Beispiel: Konfigurieren von auf IDP-Protokollanomalien basierenden Angriffen
In diesem Beispiel wird gezeigt, wie ein auf Protokollanomalien basierendes Angriffsobjekt erstellt wird.
Anforderungen
Bevor Sie beginnen, konfigurieren Sie Netzwerkschnittstellen.
Überblick
In diesem Beispiel erstellen Sie einen Protokollanomalieangriff mit dem Namen anomaly1 und weisen ihm die folgenden Eigenschaften zu:
Zeitbindung: Gibt den Bereich als
peerund die Anzahl als2an, um Anomalien zwischen Quell- und Ziel-IP-Adressen der Sitzungen für die angegebene Anzahl von Malen zu erkennen.Schweregrad (Info): Stellt Informationen zu allen Angriffen bereit, die den Bedingungen entsprechen.
Angriffsrichtung (beliebig): Erkennt den Angriff in beide Richtungen – Client-zu-Server- und Server-zu-Client-Datenverkehr.
Service (TCP): Stimmt Angriffe mithilfe des TCP-Service ab.
Testbedingung (OPTIONS_UNSUPPORTED) – Stimmt mit bestimmten vordefinierten Testbedingungen überein. In diesem Beispiel ist die Bedingung, dass sie übereinstimmt, wenn der Angriff nicht unterstützte Optionen enthält.
Shellcode (sparc): Legt das Flag fest, um Shellcode für Sparc-Plattformen zu erkennen.
Nachdem Sie das auf Protokollanomalien basierende Angriffsobjekt konfiguriert haben, geben Sie den Angriff als Übereinstimmungskriterium in einer IDP-Richtlinienregel an. Siehe Beispiel: Definieren von Regeln für eine IDP-IPS-Regelbasis.
Konfiguration
Verfahren
CLI Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die erforderlich sind, um sie an Ihre Netzwerkkonfiguration anzupassen, kopieren Sie dann die Befehle, fügen Sie sie auf der Hierarchieebene in die CLI ein, und geben Sie sie dann aus dem [edit] Konfigurationsmodus ein commit .
set security idp custom-attack anomaly1 severity info set security idp custom-attack anomaly1 time-binding scope peer count 2 set security idp custom-attack anomaly1 attack-type anomaly test OPTIONS_UNSUPPORTED set security idp custom-attack sa set security idp custom-attack sa attack-type anomaly service TCP set security idp custom-attack sa attack-type anomaly direction any set security idp custom-attack sa attack-type anomaly shellcode sparc
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Anweisungen hierzu finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im CLI-Benutzerhandbuch.
So erstellen Sie ein auf Protokollanomalien basierendes Angriffsobjekt:
Geben Sie einen Namen für den Angriff an.
[edit] user@host# edit security idp custom-attack anomaly1
Geben Sie allgemeine Eigenschaften für den Angriff an.
[edit security idp custom-attack anomaly1] user@host# set severity info user@host# set time-binding scope peer count 2
Geben Sie den Angriffstyp und die Testbedingung an.
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly test OPTIONS_UNSUPPORTED
Geben Sie weitere Eigenschaften für den Anomalieangriff an.
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly service TCP user@host# set attack-type anomaly direction any user@host# attack-type anomaly shellcode sparc
Befund
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie den show security idp Befehl eingeben. Wenn in der Ausgabe nicht die beabsichtigte Konfiguration angezeigt wird, wiederholen Sie die Konfigurationsanweisungen in diesem Beispiel, um sie zu korrigieren.
[edit]
user@host# show security idp
custom-attack anomaly1 {
severity info;
time-binding {
count 2;
scope peer;
}
attack-type {
anomaly {
test OPTIONS_UNSUPPORTED;
service TCP;
direction any;
shellcode sparc;
}
}
}
Wenn Sie mit der Konfiguration des Geräts fertig sind, wechseln commit Sie aus dem Konfigurationsmodus.
Verifizierung
Gehen Sie folgendermaßen vor, um zu bestätigen, dass die Konfiguration ordnungsgemäß funktioniert:
Übersicht über die Konfiguration der IDP-Richtlinien
Mit der IDP-Richtlinie (Intrusion Detection and Prevention) von Junos OS können Sie selektiv verschiedene Techniken zur Erkennung und Verhinderung von Angriffen im Netzwerkverkehr erzwingen, der ein IDP-fähiges Gerät passiert. Sie können damit Richtlinienregeln definieren, die basierend auf einer Zone, einem Netzwerk und einer Anwendung einem Datenverkehrsabschnitt entsprechen, und anschließend aktive oder passive Vorkehrung für diesen Datenverkehr treffen.
Eine IDP-Richtlinie definiert, wie Ihr Gerät mit dem Netzwerkverkehr umgeht. Sie ermöglicht es Ihnen, verschiedene Techniken für die Erkennung und Verhinderung von Angriffen im Datenverkehr in Ihrem Netzwerk durchzusetzen.
Eine Richtlinie besteht aus Regelbasen, und jede Regelbasis enthält einen Satz von Regeln. Sie definieren Regelparameter, z. B. Datenverkehrsübereinstimmungsbedingungen, Aktionen und Protokollierungsanforderungen, und fügen die Regeln dann zu Regeldatenbanken hinzu. Nachdem Sie eine IDP-Richtlinie erstellt haben, indem Sie Regeln in einer oder mehreren Regelbasen hinzugefügt haben, können Sie diese Richtlinie als aktive Richtlinie auf Ihrem Gerät auswählen.
Führen Sie die folgenden Schritte aus, um die IDP-Richtlinie zu konfigurieren:
Aktivieren Sie IDP in einer Sicherheitsrichtlinie.
Konfigurieren von IDP-Richtlinienregeln, IDP-Regelbasen und IDP-Regelaktionen. Siehe Beispiel: Einfügen einer Regel in die IDP-Regelbasis , Beispiel: Definieren von Regeln für eine IDP-IPS-Regelbasis und Beispiel: Konfigurieren und Anwenden von Rewrite-Regeln auf einem Sicherheitsgerät .
Konfigurieren Sie benutzerdefinierte IDP-Signaturen. Weitere Informationen finden Sie unter Grundlegendes zu IDP-Signatur-basierten Angriffen und Beispiel: Konfigurieren von IDP-Signatur-basierten Angriffen .
Aktualisieren Sie die IDP-Signaturdatenbank. Weitere Informationen finden Sie unter Aktualisieren der IDP-Signaturdatenbank – Übersicht.
IPv6 Covert Channels – Übersicht
Ein verdeckter Kanal ist eine Angriffstechnik, die die Kommunikation von Informationen ermöglicht, indem Objekte auf unbefugte oder illegale Weise über bestehende Informationskanäle übertragen werden. Mit Hilfe von verdeckten Kanälen kann ein Angreifer böswillige Aktivitäten in einem Netzwerk ausführen.
Ab Junos OS Version 19.1R1 wird die Identifizierung und Verminderung verdeckter Kanäle für IPv6-Erweiterungsheader in Intrusion Detection and Prevention (IDP) unterstützt. Es ist die Übertragung von Informationen, die gegen die bestehenden Sicherheitssysteme verstößt. Das Sicherheitspaket für IDP enthält eine Datenbank mit vordefinierten IDP-Angriffsobjekten für verdeckte Kanäle, die Sie in IDP-Richtlinien verwenden können, um Datenverkehr mit Angriffen abzugleichen.
Im Rahmen dieser Unterstützung können Sie Anomalien in den IPv6-Erweiterungsheadern erkennen und kennzeichnen, wodurch verdeckte Kanäle eingerichtet und die in der Richtlinie festgelegten Maßnahmen ergriffen werden können. Die verdeckten Kanalangriffe werden in der Show security idp attack table Seite mit den anderen Angriffen angezeigt.
Tabellarischer Änderungsverlauf
Die Unterstützung der Funktion hängt von der Plattform und der Version ab, die Sie benutzen. Verwenden Sie Funktionen entdecken , um festzustellen, ob eine Funktion auf Ihrer Plattform unterstützt wird.
interval interval-value Anweisung wird in der
[edit security idp custom-attack attack-name time-binding] Hierarchie eingeführt, um eine benutzerdefinierte Zeitbindung zu konfigurieren.
set security idp custom-attack Befehl validieren.