VirusTotalは、Googleが所有するオンラインポータルであり、多くのウイルス対策エンジンを使用してウイルスやマルウェアをチェックします。 Wazuhがファイルハッシュ、ドメイン名、IPアドレス、またはURLをスキャンするために使用するAPIサービスを提供します。この統合には、wazuh-integratord
を使用します Wazuhマネージャーで実行されるコンポーネント。この統合の詳細については、VirusTotalのドキュメントを確認してください。
このユースケースでは、ディレクトリをリアルタイムで監視し、すべての新しいファイルまたは最近変更されたファイルに対してVirusTotalスキャンを実行します。ファイルが悪意のあるものとして分類されると、アクティブな応答がトリガーされ、ファイルが削除されます。
VirusTotal統合の構成
/var/ossec/etc/ossec.conf
に次の構成を追加して、APIキーを挿入し、WazuhマネージャーでVirusTotal統合を有効にします。 。
<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
この例では、スキャンを/root
内の新しいファイルまたは最近変更されたファイルに制限します。 無料アプリアカウントを使用する場合の1分あたりのクエリ数の制限によるディレクトリ。そのために、/root
を監視するカスタムルールを作成します ディレクトリを作成し、それらを使用してVirusTotal統合をトリガーします。
次のカスタムルールを/var/ossec/etc/rules/local_rules.xml
に追加します 。
<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>
悪意のあるファイルを削除するためのActiveResponseの構成
VirusTotalがファイルを脅威として識別すると、Wazuhはアクティブな応答をトリガーして、システムからファイルを削除します
Wazuhマネージャーの構成
次のブロックをWazuhマネージャーの/var/ossec/etc/ossec.conf
に追加します ファイル。
<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>
アクティブな応答は、VirusTotalがファイルを悪意のあるものとして識別したときにトリップされるルール87105によってトリガーされます。
次のカスタムルールを/var/ossec/etc/rules/local_rules.xml
に追加します 。
<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>
これらのルールは、アクティブな応答によって悪意のあるファイルが削除された場合、またはファイルの削除中にエラーが発生した場合にトリガーされます。
Wazuhマネージャーを再起動して、構成の変更を適用します。
systemctl restart wazuh-manager
VirusTotal用のWazuhエージェントの構成
/var/ossec/etc/ossec.conf
のファイル整合性監視設定を変更します /root
を監視する リアルタイムで。
<syscheck>
<directories whodata="yes">/root</directories>
</syscheck>
次のアクティブな応答スクリプトを/var/ossec/active-response/bin/remove-threat.sh
に追加します。 。
#!/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;
このスクリプトは、VirusTotal(87105)によって生成されたアラートから悪意のあるファイル情報を受け取り、ファイルを削除して、アクティブな応答ログを書き込みます。
/var/ossec/active-response/bin/remove-threat.sh
を変更します 所有者と権限。
chmod 750 /var/ossec/active-response/bin/remove-threat.sh
chown root:ossec /var/ossec/active-response/bin/remove-threat.sh
Wazuhエージェントを再起動して、構成の変更を適用します。
systemctl restart wazuh-agent
アラートを生成する
監視対象ディレクトリ/root
でファイルが変更された場合 、VirusTotalスキャンをトリガーし、悪意のあるものとして検出された場合はアラートを生成します。アクティブレスポンスは、脅威を自動的に削除するように構成されています。
すべてが正しく機能していることをテストするには、EICARテストを使用してアラートを生成します。予想される結果は、ファイルが悪意のあるものとして検出され、アクティブな応答によって自動的に削除されることです
cd /root
curl -LO http://www.eicar.org/download/eicar.com
