Sebagai administrator sistem yang bertanggung jawab atas keamanan server web, kita harus selalu waspada terhadap aktivitas mencurigakan yang dapat mengancam integritas dan ketersediaan sistem kita. Dalam artikel ini, kita akan melihat bagaimana kita dapat menggunakan Python untuk memantau log ModSecurity di server web kita dan mengirim notifikasi ke Telegram saat terdeteksi indikasi serangan yang kritis.
ModSecurity adalah sebuah modul keamanan web yang berfungsi sebagai firewall aplikasi web. Modul ini secara aktif memantau lalu lintas HTTP/HTTPS dan mencatat setiap aktivitas yang dianggap berbahaya dalam file log. Tugas kita adalah menganalisis log tersebut secara real-time dan mengirimkan peringatan ke Tim Keamanan atau administrator terkait.
Berikut link untuk source codenya :
Berikut adalah penjelasan singkat tentang bagaimana kode ini bekerja:
- Kode ini memuat konfigurasi dari file
.env
, yang berisi API key Telegram dan ID percakapan (chat_id) tempat notifikasi akan dikirim. - Kelas
FileModifiedHandler
digunakan untuk memantau perubahan pada file log ModSecurity. Saat file log dimodifikasi, kode akan membaca baris-baris log baru dan mencari indikasi serangan yang kritis. - Untuk setiap indikasi serangan kritis yang ditemukan, kode akan mengekstrak informasi penting seperti timestamp, IP penyerang, metode HTTP, URI, kode respons, dan detail indikasi serangan.
- Kemudian, kode akan mengirimkan pesan notifikasi ke Telegram menggunakan API Telegram. Jika terjadi kegagalan koneksi, kode akan melakukan retry hingga 3 kali sebelum menyerah.
- Akhirnya, kode akan terus memantau file log ModSecurity secara berkelanjutan hingga dihentikan dengan menekan Ctrl+C.
Dengan menggunakan kode ini, Anda dapat memastikan bahwa tim Keamanan atau administrator Anda akan segera menerima peringatan tentang aktivitas berbahaya di server web Anda, sehingga dapat segera ditangani dan diminimalisir dampaknya.