Respons aktif memungkinkan Wazuh menjalankan perintah pada agen sebagai respons terhadap pemicu tertentu. Dalam kasus penggunaan ini, kami mensimulasikan serangan Brute Force SSH dan mengonfigurasi respons aktif untuk memblokir IP penyerang. Jadi, dalam postingan ini Anda akan mempelajari cara memblokir serangan dengan respons aktif.
Mendeteksi serangan
Pertama-tama, kita perlu tahu kapan harus mengeksekusi respons. Kita dapat menggunakan salah satu opsi berikut:
- ID Aturan:Respons akan dieksekusi pada peristiwa apa pun dengan ID yang ditentukan.
- Grup aturan:Respons akan dieksekusi pada setiap peristiwa dalam grup yang ditentukan.
- Level:Respons akan dieksekusi pada acara apa pun dengan level ini atau lebih tinggi.
Dalam kasus penggunaan ini, kami ingin mencegah SSH brute force attacks
jadi ketika aturan 5712 - SSHD brute force trying to get access to the system
dipicu, ia akan mengeksekusi respons aktif yang tepat untuk memblokir IP penyerang.
Mendefinisikan perintah
Kita tahu kapan respon aktif akan dieksekusi, sekarang kita harus mendefinisikan apa yang akan dilakukannya. Anda dapat membuat skrip Anda sendiri untuk memblokir IP, atau tindakan lainnya, tetapi Wazuh hadir dengan serangkaian skrip umum yang digunakan dalam respons aktif. Skrip ini ada di /var/ossec/active-response/bin/
. Kami akan menggunakan firewall-drop
skrip yang bekerja dengan sistem operasi Linux/Unix umum dan memungkinkan pemblokiran IP berbahaya menggunakan firewall lokal.
Tentukan perintah di ossec.conf
dari manajer Wazuh Anda:
<command>
<name>firewall-drop</name>
<executable>firewall-drop</executable>
<timeout_allowed>yes</timeout_allowed>
</command>
Mendefinisikan respon aktif untuk memblokir serangan
Tentukan respon aktif di ossec.conf
dari manajer Wazuh Anda:
<active-response>
<command>firewall-drop</command>
<location>local</location>
<rules_id>5712</rules_id>
<timeout>1800</timeout>
</active-response>
Mulai ulang pengelola Wazuh untuk menerapkan perubahan.
Bukti konsep
Kami akan mensimulasikan serangan SSH, serangan akan dieksekusi dari 10.0.0.6 ke agen kami yang berjalan di 10.0.0.5. Pertama, kami memeriksa apakah ada konektivitas antara penyerang dan agen:
[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
Sekarang, kami mencoba menghubungkan ke agen dengan SSH beberapa kali menggunakan pengguna yang tidak valid:
$ 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).
Setelah 8 kali percobaan, kita dapat melihat di manajer bagaimana aturan tersebut diaktifkan:
Jika kami mencoba melakukan ping ke agen dari penyerang, kami melihat bahwa itu tidak mungkin:
[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
Membuat peringatan saat respons aktif diaktifkan
Setiap agen memiliki file log di /var/ossec/logs/active-responses.log
dimana aktivitas respon aktif terdaftar. Secara default, file ini sedang dipantau.
<ossec_config>
<localfile>
<log_format>syslog</log_format>
<location>/var/ossec/logs/active-responses.log</location>
</localfile>
</ossec_config>
Saat respons aktif dipicu, kita dapat melihat peringatan yang sesuai:
Ini dimungkinkan karena aturan 651 didefinisikan dalam ossec_rules.xml
. Jika Anda membuat skrip sendiri, Anda harus menambahkan aturan yang tepat.
Daftar putih
Kami juga dapat mengatur daftar alamat IP yang tidak boleh diblokir oleh respons aktif. Di bagian global ossec.conf
di Manajer, gunakan bidang white_list
. Ini memungkinkan alamat IP atau netblock
<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>
Meningkatkan waktu pemblokiran untuk pelanggar berulang
Kami menyiapkan waktu pemblokiran 30 menit untuk respons aktif kami, tetapi jika Anda perlu menambah waktu pemblokiran ini untuk pelanggar berulang, Anda dapat menambahkan konfigurasi berikut di ossec.conf
dari setiap agen:
<active-response>
<repeated_offenders>60,120,180</repeated_offenders>
</active-response>
Pertama kali respons aktif dipicu, itu akan memblokir IP selama 30 menit, yang kedua selama 60 menit, yang ketiga selama 120 menit, dan terakhir yang keempat selama 180 menit.
Berkat respons aktif, Anda dapat melakukan tindakan menanggapi beberapa skenario dan membatasi aktivitas jahat serta memblokir serangan. Ketahuilah bahwa setiap respons otomatis memiliki risiko implisit, jadi tentukan respons Anda dengan cermat.