Active Response ermöglicht es Wazuh, als Reaktion auf bestimmte Auslöser Befehle auf einem Agenten auszuführen. In diesem Anwendungsfall simulieren wir einen SSH-Brute-Force-Angriff und konfigurieren eine aktive Antwort, um die IP des Angreifers zu blockieren. In diesem Beitrag erfahren Sie also, wie Sie Angriffe mit aktiver Reaktion blockieren.
Den Angriff erkennen
Zunächst müssen wir wissen, wann die Antwort ausgeführt werden soll. Wir können eine der folgenden Optionen verwenden:
- Regel-ID:Die Antwort wird bei jedem Ereignis mit der definierten ID ausgeführt.
- Regelgruppe:Die Antwort wird bei jedem Ereignis in der definierten Gruppe ausgeführt.
- Stufe:Die Antwort wird bei jedem Ereignis mit dieser Stufe oder höher ausgeführt.
In diesem Anwendungsfall möchten wir SSH brute force attacks
verhindern also wenn die Regel 5712 - SSHD brute force trying to get access to the system
ausgelöst wird, führt es die richtige aktive Antwort aus, um die IP des Angreifers zu blockieren.
Befehl definieren
Wir wissen, wann die aktive Antwort ausgeführt wird, jetzt müssen wir definieren, was sie tun wird. Sie können Ihr eigenes Skript erstellen, um eine IP oder jede andere Aktion zu blockieren, aber Wazuh wird mit einer Reihe gängiger Skripts geliefert, die in der aktiven Reaktion verwendet werden. Diese Skripte befinden sich in /var/ossec/active-response/bin/
. Wir werden den firewall-drop
verwenden Skript, das mit gängigen Linux/Unix-Betriebssystemen funktioniert und das Blockieren einer schädlichen IP-Adresse mithilfe der lokalen Firewall ermöglicht.
Definieren Sie den Befehl in der ossec.conf
Ihres Wazuh-Managers:
<command>
<name>firewall-drop</name>
<executable>firewall-drop</executable>
<timeout_allowed>yes</timeout_allowed>
</command>
Definieren der aktiven Antwort zum Blockieren von Angriffen
Definieren Sie die aktive Antwort in der ossec.conf
Ihres Wazuh-Managers:
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5712</rules_id>
<timeout>1800</timeout>
</active-response>
Starten Sie den Wazuh-Manager neu, um die Änderungen zu übernehmen.
Konzeptnachweis
Wir werden einen SSH-Angriff simulieren, der Angriff wird von 10.0.0.6 auf unseren Agenten ausgeführt, der auf 10.0.0.5 läuft. Zuerst prüfen wir, ob eine Verbindung zwischen dem Angreifer und dem Agenten besteht:
[ec2-user@ip-10-0-0-6 ~]$ ping 10.0.0.5 PING 10.0.0.5 (10.0.0.5) 56(84) bytes of data. 64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=0.602 ms 64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=0.774 ms
Jetzt versuchen wir mehrmals, uns mit einem ungültigen Benutzer per SSH mit dem Agenten zu verbinden:
$ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey). $ ssh 10.0.0.5 Permission denied (publickey).
Nach 8 Versuchen können wir im Manager sehen, wie die Regel ausgelöst wird:
Wenn wir versuchen, den Agenten vom Angreifer anzupingen, sehen wir, dass dies nicht möglich ist:
[ec2-user@ip-10-0-0-6 ~]$ ping 10.0.0.5
PING 10.0.0.5 (10.0.0.5) 56(84) bytes of data.
^C
--- 10.0.0.5 ping statistics ---
12 packets transmitted, 0 received, 100% packet loss, time 11000ms
Generieren einer Warnung, wenn eine aktive Antwort ausgelöst wird
Jeder Agent hat eine Protokolldatei unter /var/ossec/logs/active-responses.log
wo die aktiven Reaktionsaktivitäten registriert sind. Standardmäßig wird diese Datei überwacht.
<ossec_config>
<localfile>
<log_format>syslog</log_format>
<location>/var/ossec/logs/active-responses.log</location>
</localfile>
</ossec_config>
Wenn die aktive Antwort ausgelöst wird, können wir die entsprechende Warnung sehen:
Dies ist möglich, weil Regel 651 in ossec_rules.xml
definiert ist . Wenn Sie Ihr eigenes Skript erstellen, müssen Sie die richtige Regel hinzufügen.
Weiße Liste
Wir können auch eine Liste mit IP-Adressen erstellen, die niemals durch die aktive Antwort blockiert werden sollen. Im globalen Abschnitt von ossec.conf
Verwenden Sie im Manager das Feld white_list
. Es erlaubt IP-Adresse oder Netzblock
<ossec_config>
<global>
<jsonout_output>yes</jsonout_output>
<email_notification>no</email_notification>
<logall>yes</logall>
<white_list>10.0.0.6</white_list>
</global>
Erhöhung der Sperrzeit für Wiederholungstäter
Wir haben eine Sperrzeit von 30 Minuten für unsere aktive Reaktion eingerichtet, aber falls Sie diese Sperrzeit für Wiederholungstäter erhöhen müssen, können Sie die folgende Konfiguration in der ossec.conf
hinzufügen jedes Agenten:
<active-response>
<repeated_offenders>60,120,180</repeated_offenders>
</active-response>
Beim ersten Auslösen der aktiven Antwort wird die IP für 30 Minuten blockiert, beim zweiten Mal für 60 Minuten, beim dritten Mal für 120 Minuten und schließlich beim vierten Mal für 180 Minuten.
Dank der aktiven Reaktion können Sie Aktionen ausführen, die auf mehrere Szenarien reagieren und böswillige Aktivitäten einschränken und Angriffe blockieren. Seien Sie sich bewusst, dass jede automatische Antwort ein implizites Risiko birgt, also definieren Sie Ihre Antworten sorgfältig.