VirusTotal ist ein Online-Portal von Google, das viele Antivirus-Engines verwendet, um nach Viren und Malware zu suchen. Es bietet einen API-Dienst, den Wazuh verwendet, um Datei-Hashes, Domänennamen, IP-Adressen oder URLs zu scannen. Für diese Integration verwenden wir den wazuh-integratord
Komponente, die auf dem Wazuh-Manager ausgeführt wird. Weitere Informationen zu dieser Integration finden Sie in unserer VirusTotal-Dokumentation.
In diesem Anwendungsfall überwachen wir ein Verzeichnis in Echtzeit und führen einen VirusTotal-Scan für jede neue oder kürzlich geänderte Datei durch. Wenn eine Datei als bösartig eingestuft wird, wird eine aktive Reaktion ausgelöst und die Datei entfernt.
Konfigurieren der VirusTotal-Integration
Fügen Sie Ihren API-Schlüssel ein und aktivieren Sie die VirusTotal-Integration auf dem Wazuh-Manager, indem Sie die folgende Konfiguration in /var/ossec/etc/ossec.conf
hinzufügen .
<ossec_config>
<integration>
<name>virustotal</name>
<api_key>${your_virustotal_api_key}</api_key>
<rule_id>100200,100201</rule_id>
<alert_format>json</alert_format>
</integration>
</ossec_config
In diesem Beispiel beschränken wir das Scannen auf neue oder kürzlich geänderte Dateien in /root
Verzeichnis aufgrund von Einschränkungen bei Abfragen pro Minute bei Verwendung eines kostenlosen App-Kontos. Dazu erstellen wir benutzerdefinierte Regeln zur Überwachung von /root
Verzeichnis und verwenden Sie sie, um die VirusTotal-Integration auszulösen.
Fügen Sie die folgenden benutzerdefinierten Regeln zu /var/ossec/etc/rules/local_rules.xml
hinzu .
<group name="syscheck,pci_dss_11.5,nist_800_53_SI.7,">
<!-- Rules for Linux systems -->
<rule id="100200" level="7">
<if_sid>550</if_sid>
<field name="file">/root</field>
<description>File modified in /root directory.</description>
</rule>
<rule id="100201" level="7">
<if_sid>554</if_sid>
<field name="file">/root</field>
<description>File added to /root directory.</description>
</rule>
</group>
Konfigurieren von Active Response zum Entfernen bösartiger Dateien
Sobald VirusTotal eine Datei als Bedrohung identifiziert, löst Wazuh eine aktive Reaktion aus, um die Datei aus dem System zu entfernen
Konfigurieren des Wazuh-Managers
Fügen Sie die folgenden Blöcke an den Wazuh-Manager /var/ossec/etc/ossec.conf
an Datei.
<ossec_config>
<command>
<name>remove-threat</name>
<executable>remove-threat.sh</executable>
<timeout_allowed>no</timeout_allowed>
</command>
<active-response>
<disabled>no</disabled>
<command>remove-threat</command>
<location>local</location>
<rules_id>87105</rules_id>
</active-response>
</ossec_config>
Die aktive Reaktion wird durch Regel 87105 ausgelöst, die ausgelöst wird, wenn VirusTotal eine Datei als bösartig identifiziert.
Fügen Sie die folgenden benutzerdefinierten Regeln in /var/ossec/etc/rules/local_rules.xml
hinzu .
<group name="virustotal,">
<rule id="100092" level="12">
<if_sid>657</if_sid>
<match>Successfully removed threat</match>
<description>$(parameters.program) removed threat located at $(parameters.alert.data.virustotal.source.file)</description>
</rule>
<rule id="100093" level="12">
<if_sid>657</if_sid>
<match>Error removing threat</match>
<description>Error removing threat located at $(parameters.alert.data.virustotal.source.file)</description>
</rule>
</group>
Diese Regeln werden ausgelöst, wenn eine schädliche Datei durch eine aktive Antwort entfernt wird oder wenn beim Entfernen der Datei ein Fehler aufgetreten ist.
Starten Sie den Wazuh-Manager neu, um die Konfigurationsänderungen zu übernehmen.
systemctl restart wazuh-manager
Konfigurieren des Wazuh-Agenten für VirusTotal
Ändern Sie die Einstellungen für die Überwachung der Dateiintegrität in /var/ossec/etc/ossec.conf
um /root
zu überwachen in Echtzeit.
<syscheck>
<directories whodata="yes">/root</directories>
</syscheck>
Fügen Sie das folgende aktive Antwortskript unter /var/ossec/active-response/bin/remove-threat.sh
hinzu .
#!/bin/bash
LOCAL=`dirname $0`;
cd $LOCAL
cd ../
PWD=`pwd`
read INPUT_JSON
FILENAME=$(echo $INPUT_JSON | jq -r .parameters.alert.data.virustotal.source.file)
COMMAND=$(echo $INPUT_JSON | jq -r .command)
LOG_FILE="${PWD}/../logs/active-responses.log"
#------------------------ Analyze command -------------------------#
if [ ${COMMAND} = "add" ]
then
# Send control message to execd
printf '{"version":1,"origin":{"name":"remove-threat","module":"active-response"},"command":"check_keys", "parameters":{"keys":[]}}\n'
read RESPONSE
COMMAND2=$(echo $RESPONSE | jq -r .command)
if [ ${COMMAND2} != "continue" ]
then
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Remove threat active response aborted" >> ${LOG_FILE}
exit 0;
fi
fi
# Removing file
rm -f $FILENAME
if [ $? -eq 0 ]; then
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Successfully removed threat" >> ${LOG_FILE}
else
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Error removing threat" >> ${LOG_FILE}
fi
exit 0;
Dieses Skript empfängt die bösartigen Dateiinformationen aus der von VirusTotal generierten Warnung (87105), entfernt die Datei und schreibt das aktive Antwortprotokoll.
Ändern Sie /var/ossec/active-response/bin/remove-threat.sh
Eigentümer und Berechtigungen.
chmod 750 /var/ossec/active-response/bin/remove-threat.sh
chown root:ossec /var/ossec/active-response/bin/remove-threat.sh
Starten Sie den Wazuh-Agenten neu, um die Konfigurationsänderungen zu übernehmen.
systemctl restart wazuh-agent
Generieren Sie eine Warnung
Wenn eine Datei im überwachten Verzeichnis /root
geändert wird , löst es einen VirusTotal-Scan aus und generiert eine Warnung, wenn es als bösartig erkannt wird. Active Response ist so konfiguriert, dass die Bedrohung automatisch entfernt wird.
Um zu testen, ob alles richtig funktioniert, generieren Sie mit dem EICAR-Test eine Warnung. Das erwartete Ergebnis ist, dass die Datei als bösartig erkannt und automatisch durch aktive Reaktion entfernt wird
cd /root
curl -LO http://www.eicar.org/download/eicar.com