Inhaltsverzeichnis
Verwendung des OmniVista 2500 Advanced Quarantine Manager (AQM)
Der OmniVista 2500 Advanced Quarantine Manager (AQM) bietet eine zentrale Möglichkeit um auf Sicherheitsmeldungen zu reagieren. In diesem Artikel wird exemplarisch anhand einer Fortinet Log-Meldung gearbeitet, es können aber einfach eigene Einträge für beliebige Systeme hinterlegt werden (dafür müssen nur die Log-Meldungen/SNMP-Traps empfangen werden können). Die Log-Meldungen werden dann einfach über reguläre Ausdrücke (Regular Expressions, auch „Regexp“) ausgewertet.
Einrichtung der Funktion
Da im Zuge der Einrichtung dieser Funktion Log-Meldungen an OmniVista geschickt werden, sollte man überlegen wie man einschränkt wer dies darf (z.B. an der Firewall nur für Management-Netzwerke zulassen)
- Auswahl des Eintrags „Fortinet Signature“
- Aktivieren über Klick auf „Enable/Disable Rules“
- Damit Ports deaktiviert werden können, muss „Allow Port Disabling“ in der Konfiguration aktiviert und abgespeichert werden (diese Konfiguration muss dafür nicht auf Switches ausgerollt werden!)
- Im „Device Manager“ muss bei Access Switches an denen Ports deaktiviert werden könnnen, die Einstellung „Allow Port Disabling“ aktiviert werden
- Da für die Erkennung des Anschlusses der „Locator“ verwendet wird, empfehle ich „getaggte Ports“ von der Auflistung auszuschließen (Exclude Q Tagged Ports)
- Die Vorbereitungen sind nun abgeschlossen!
Simulation einer Log-Meldung
- OmniVista 2500: 192.168.2.15 (-n w.x.y.z - die IP Adresse von OmniVista 2500, Port 514 UDP)
- IP des Clients: 192.168.11.164 ( src= - dieser Client soll vom Netzwerk getrennt werden)
- „logger“ ist bei Debian Bullseye standardmäßig installiert
Es ist wichtig dass die Log-Meldung einen status=dropped und nicht z.B. status=detected oder status=pass_session beeinhaltet (wenn man dies verwenden möchte, muss der reguläre Ausdruck umgestellt werden)
benny@tiger:~$ logger -n 192.168.2.15 -d device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=1.2.3.4 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=dropped proto=6
- Hat man keine Linux-VM/-Maschine zur Verfügung sondern macOS oder Windows10/11 (mit z.B. MobaXterm), kann das Kommando wie folgt verwendet werden
% echo device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=1.2.3.4 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=dropped proto=6 | nc -u 192.168.2.15 514
Demo: Port abschalten auf Basis von Log-Meldung
- Der Raspberry Pi mit IP-Adresse 192.168.11.164 ist am OS6465T-P12 Port 1/1/9 angeschlossen
- Die vorherigen Punkt genannte Log-Meldung wird gesendet
- Das Gerät wird nun in „Candidate List“ aufgeführt
- Der Administrator kann nun entscheiden, ob der Client aus dem Netzwerk ausgeschlossen werden soll
- Ich nehme an der Administrator hat sich für „Ban“ entschieden
- Das Gerät wird daraufhin vom Netzwerk getrennt und der Port deaktiviert
- Unter „Disabled Ports“ werden alle vom Quarantäne Manager deaktivierten Ports aufgeführt
- Mit einem Klick auf „Release“ kann ein Port wieder freigegeben werden
Demo: Port abschalten via Locator
- Über den Locator ist es ebenfalls möglich ein Gerät zu sperren, dafür wählt man den Eintrag aus und hinterlegt einen Kommentar mit dem Grund
- Der Eintrag erscheint dann in der gleichen Liste und kann ebenfalls über „Release“ wieder freigegeben werden
Fehleranalyse / Logs
Automatisches Sperren von Ports
- Soll der manuelle Schritt über die „Candidates“ umgangen (automatisiert) werden, stellt man die Regel von „Candidate“ auf „Quarantine“ um
- Achtung: Ich empfehle die getroffenen Einstellungen gründlich zu testen, bevor man dies automatisch ausführen lässt!
- In diesem Fall wurde der Client direkt in die „Banned“-Liste übernommen
- Dies geht auch aus dem Eintrag im quarantine.log hervor
Automatisches Sperren und Freigeben von Ports
- Oft können/sollen Sperrungen automatisch freigegeben werden, wenn die verwendeten Tools dies ermöglichen
- In diesem Beispiel sperren wir einen Port und geben diesen bei einer „release“-Logmeldung (Annahme, wird vermutlich anders heißen - ich habe aber keine Fortinet Firewall zur Hand) wieder frei
- Der reguläre Ausdruck für die Fortinet Signature wird wie folgt angepasst
- Der Eintrag steht außerdem auf „Quarantine“
log_id=0420070000.*status=[^p].[^t].[^(release)]
- Log-Meldung um den Port (automatisch) zu sperren
benny@tiger:~$ logger -n 192.168.2.15 -d device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=217.12.6.122 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=dropped proto=6
- Regel um den Sperrzustand wieder aufzuheben
Name: Fortinet Signature Restore Description: Fortinet IDS Signature Restore Trigger Expression: log_id=0420070000.*status=(release)+ Extraction Expression: src=([0-9.]*) Action: RELEASE Enabled: true Event Type: SYSLOG
- Log-Meldung um den Port freizugeben
benny@tiger:~$ logger -n 192.168.2.15 -d device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=217.12.6.122 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=release proto=6
- Hat man keine Linux-VM/-Maschine zur Verfügung sondern macOS oder Windows10/11 (mit z.B. MobaXterm), kann das Kommando wie folgt verwendet werden
% echo device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=1.2.3.4 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=released proto=6 | nc -u 192.168.2.15 514
- Im quarantine.log kann man folgenden Vorgang beobachten
Benachrichtung per eMail
Es ist möglich Responder einzurichten die bei Events eine Benachrichtung senden.
- Konfiguration für die eMail
OmniVista AI/ML disconnected a malicious network device! Action - The action being taken, a ban or a release. Banned Reason - The Reason field from the QM object. <13>1 2022-05-22T17:33:28.004235+02:00 tiger benny - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="215500"] device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=217.12.6.122 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=dropped proto=6 MacAddress - The MAC address of the device being banned or release. dca632:554e61 IpAddress - The IP address of the device being banned or release. If the IP address is unknown it will be displayed as 0.0.0.0 192.168.11.164 VlanName - The name of the VLAN that the device was banned to or released from: Quarantined MacGroupName - The MAC group that the device was banned to or released from: Quarantined Details - Contains a message with the Action, Mac, IP address, Vlan, and MacGroupName: Device dca632:554e61 (192.168.11.164) was Banned using the Quarantined VLAN at 5/22/22 5:33 PM. The device was Banned because <13>1 2022-05-22T17:33:28.004235+02:00 tiger benny - - [timeQuality tzKnown="1" isSynced="1" syncAccuracy="215500"] device_id=FGT50xxxxxxxxxxx log_id=0420070000 type=ips subtype=signature pri=alert attack_id=103022660 src=192.168.11.164 dst=217.12.6.122 src_port=2098 dst_port=80 src_int=internal dst_int=n/a status=dropped proto=6