VirusTotal adalah portal online, milik Google, yang menggunakan banyak mesin antivirus untuk memeriksa virus dan malware. Ini menyediakan layanan API yang digunakan Wazuh untuk memindai hash file, nama domain, alamat IP, atau URL. Untuk integrasi ini kami menggunakan wazuh-integratord
komponen yang berjalan pada pengelola Wazuh. Periksa dokumentasi VirusTotal kami untuk informasi lebih lanjut tentang integrasi ini.
Dalam kasus penggunaan ini, kami memantau direktori secara real time dan melakukan pemindaian VirusTotal ke setiap file baru atau yang baru saja dimodifikasi. Jika file diklasifikasikan sebagai berbahaya, respons aktif dipicu dan file akan dihapus.
Mengonfigurasi integrasi VirusTotal
Masukkan kunci API Anda dan aktifkan integrasi VirusTotal pada pengelola Wazuh dengan menambahkan konfigurasi berikut di /var/ossec/etc/ossec.conf
.
<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
Dalam contoh ini, kami membatasi pemindaian pada file baru atau yang baru saja dimodifikasi di /root
direktori karena keterbatasan dalam kueri per menit saat menggunakan akun aplikasi gratis. Untuk melakukannya, kami membuat aturan khusus untuk memantau /root
direktori dan menggunakannya untuk memicu integrasi VirusTotal.
Tambahkan aturan khusus berikut ke /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>
Mengonfigurasi Respons Aktif untuk menghapus file berbahaya
Setelah VirusTotal mengidentifikasi file sebagai ancaman, Wazuh akan memicu respons aktif untuk menghapus file dari sistem
Mengonfigurasi pengelola Wazuh
Tambahkan blok berikut ke manajer Wazuh /var/ossec/etc/ossec.conf
berkas.
<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>
Respons aktif dipicu oleh aturan 87105 yang di-trip saat VirusTotal mengidentifikasi file sebagai berbahaya.
Tambahkan aturan khusus berikut di /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>
Aturan ini dipicu saat file berbahaya dihapus oleh respons aktif atau jika terjadi kesalahan saat menghapus file.
Mulai ulang pengelola Wazuh untuk menerapkan perubahan konfigurasi.
systemctl restart wazuh-manager
Mengonfigurasi agen Wazuh untuk VirusTotal
Ubah pengaturan pemantauan integritas file di /var/ossec/etc/ossec.conf
untuk memantau /root
dalam waktu nyata.
<syscheck>
<directories whodata="yes">/root</directories>
</syscheck>
Tambahkan skrip respons aktif berikut di /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;
Skrip ini menerima informasi file berbahaya dari peringatan yang dibuat oleh VirusTotal (87105), menghapus file, dan menulis log respons aktif.
Ubah /var/ossec/active-response/bin/remove-threat.sh
pemilik dan izin.
chmod 750 /var/ossec/active-response/bin/remove-threat.sh
chown root:ossec /var/ossec/active-response/bin/remove-threat.sh
Mulai ulang agen Wazuh untuk menerapkan perubahan konfigurasi.
systemctl restart wazuh-agent
Hasilkan peringatan
Ketika file dimodifikasi di bawah direktori yang dipantau /root
, ini memicu pemindaian VirusTotal dan menghasilkan peringatan jika terdeteksi sebagai berbahaya. Respons aktif dikonfigurasi untuk menghapus ancaman secara otomatis.
Untuk menguji apakah semuanya berfungsi dengan benar, buat peringatan menggunakan tes EICAR. Hasil yang diharapkan adalah file tersebut terdeteksi sebagai berbahaya dan dihapus secara otomatis oleh respons aktif
cd /root
curl -LO http://www.eicar.org/download/eicar.com