Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak

Pusat pertahanan dunia maya kami bertanggung jawab atas keamanan infrastruktur web klien dan menghalau serangan di situs klien. Untuk melindungi dari serangan, kami menggunakan Firewall Aplikasi Web FortiWeb (WAF). Tetapi WAF paling keren pun bukanlah obat mujarab dan tidak melindungi "di luar kotak" dari serangan yang ditargetkan. 

Oleh karena itu, selain WAF, kami menggunakan RUSA BESAR. Ini membantu mengumpulkan semua peristiwa di satu tempat, mengumpulkan statistik, memvisualisasikannya, dan memungkinkan kita melihat serangan yang ditargetkan tepat waktu.

Hari ini saya akan memberi tahu Anda lebih detail bagaimana kami melintasi pohon Natal dengan WAF dan apa hasilnya.

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak

Kisah satu serangan: bagaimana semuanya bekerja sebelum beralih ke ELK

Di cloud kami, pelanggan telah menerapkan aplikasi di belakang WAF kami. Dari 10 hingga 000 pengguna yang terhubung ke situs per hari, jumlah koneksi mencapai 100 juta per hari. Dari jumlah tersebut, 000-20 pengguna adalah penyusup dan mencoba meretas situs tersebut. 

Bentuk kekerasan biasa dari satu alamat IP diblokir oleh FortiWeb dengan cukup mudah. Jumlah klik ke situs per menit lebih tinggi daripada pengguna yang sah. Kami hanya mengatur ambang aktivitas dari satu alamat dan menangkis serangan itu.

Jauh lebih sulit untuk menghadapi "serangan lambat", saat penyerang bertindak lambat dan menyamar sebagai klien biasa. Mereka menggunakan banyak alamat IP unik. Aktivitas seperti itu tidak terlihat seperti kekerasan besar-besaran bagi WAF, lebih sulit untuk melacaknya secara otomatis. Dan ada juga risiko memblokir pengguna biasa. Kami mencari tanda-tanda serangan lain dan menyiapkan kebijakan untuk memblokir alamat IP secara otomatis berdasarkan tanda ini. Misalnya, banyak sesi tidak sah memiliki kolom umum di header permintaan http. Anda sering kali harus mencari bidang tersebut secara manual di log kejadian FortiWeb. 

Itu menjadi panjang dan tidak nyaman. Dalam fungsionalitas standar FortiWeb, peristiwa dicatat dalam teks dalam 3 log berbeda: serangan yang terdeteksi, informasi tentang permintaan, dan pesan sistem tentang operasi WAF. Puluhan atau bahkan ratusan kejadian serangan bisa datang dalam satu menit.

Tidak terlalu banyak, tetapi Anda harus memanjat beberapa log secara manual dan beralih ke banyak baris: 

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak
Di log serangan, kami melihat alamat pengguna dan sifat aktivitas. 
 
Tidaklah cukup hanya memindai tabel log. Untuk menemukan yang paling menarik dan berguna tentang sifat serangan, Anda perlu melihat ke dalam peristiwa tertentu:

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak
Bidang yang disorot membantu mendeteksi "serangan lambat". Sumber: tangkapan layar dari Situs Fortinet

Nah, masalah utamanya adalah hanya spesialis FortiWeb yang bisa mengetahuinya. Jika selama jam kerja kami masih bisa melacak aktivitas mencurigakan secara real time, maka investigasi insiden malam hari bisa tertunda. Ketika kebijakan FortiWeb tidak berfungsi karena alasan tertentu, teknisi shift malam yang bertugas tidak dapat menilai situasi tanpa akses ke WAF dan membangunkan spesialis FortiWeb. Kami melihat-lihat log selama beberapa jam dan menemukan momen penyerangan. 

Dengan banyaknya informasi, sulit untuk memahami gambaran besarnya secara sekilas dan bertindak secara proaktif. Kemudian kami memutuskan untuk mengumpulkan data di satu tempat untuk menganalisis semuanya dalam bentuk visual, menemukan awal serangan, mengidentifikasi arah dan metode pemblokirannya. 

Apa yang dipilih

Pertama-tama, kami melihat solusi yang sudah digunakan, agar tidak memperbanyak entitas yang tidak perlu.

Salah satu opsi pertama adalah nagiosyang kami gunakan untuk memantau infrastruktur rekayasa, infrastruktur jaringan, peringatan darurat. Penjaga keamanan juga menggunakannya untuk memberi tahu petugas jika ada lalu lintas yang mencurigakan, tetapi tidak tahu cara mengumpulkan log yang berbeda dan karenanya menghilang. 

Ada opsi untuk menggabungkan semuanya MySQL dan PostgreSQL atau database relasional lainnya. Tetapi untuk mengeluarkan datanya, aplikasi Anda perlu dipahat. 

Sebagai pengumpul kayu di perusahaan kami, mereka juga menggunakan FortiAnalyzer dari Fortinet. Tapi dalam hal ini, dia juga tidak cocok. Pertama, bekerja dengan firewall lebih dipertajam Gerbang Benteng. Kedua, banyak pengaturan yang hilang, dan interaksi dengannya membutuhkan pengetahuan yang sangat baik tentang kueri SQL. Dan ketiga, penggunaannya akan meningkatkan biaya layanan bagi pelanggan.   

Beginilah cara kami datang ke open source secara langsung RUSA BESAR

Mengapa memilih ELK 

ELK adalah sekumpulan program sumber terbuka:

  • Elasticsearch - database deret waktu, yang baru saja dibuat untuk bekerja dengan teks dalam jumlah besar;
  • Logstash – mekanisme pengumpulan data yang dapat mengonversi log ke format yang diinginkan; 
  • Kibana - visualisator yang bagus, serta antarmuka yang cukup ramah untuk mengelola Elasticsearch. Anda dapat menggunakannya untuk membuat jadwal yang dapat dipantau oleh teknisi jaga di malam hari. 

Ambang masuk untuk ELK rendah. Semua fitur dasar gratis. Apa lagi yang dibutuhkan untuk kebahagiaan.

Bagaimana Anda menggabungkan semuanya dalam satu sistem?

Membuat indeks dan hanya menyisakan informasi yang diperlukan. Kami memuat ketiga log FortiWEB ke ELK - hasilnya adalah indeks. Ini adalah file dengan semua log yang dikumpulkan untuk jangka waktu tertentu, misalnya, sehari. Jika kami langsung memvisualisasikannya, kami hanya akan melihat dinamika serangannya. Untuk detailnya, Anda perlu "jatuh" ke dalam setiap serangan dan melihat bidang tertentu.

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak

Kami menyadari bahwa pertama-tama kami perlu menyiapkan penguraian informasi yang tidak terstruktur. Kami mengambil bidang panjang sebagai string, seperti "Pesan" dan "URL", dan menguraikannya untuk mendapatkan lebih banyak informasi untuk pengambilan keputusan. 

Misalnya, menggunakan penguraian, kami mengambil lokasi pengguna secara terpisah. Ini membantu segera menyoroti serangan dari luar negeri di situs untuk pengguna Rusia. Dengan memblokir semua koneksi dari negara lain, kami mengurangi jumlah serangan sebanyak 2 kali dan dapat dengan mudah menangani serangan di dalam Rusia. 

Setelah parsing, mereka mulai mencari informasi apa yang akan disimpan dan divisualisasikan. Meninggalkan semua yang ada di log tidak pantas: ukuran satu indeks besar - 7 GB. ELK membutuhkan waktu lama untuk memproses file tersebut. Namun, tidak semua informasi berguna. Sesuatu diduplikasi dan mengambil ruang ekstra - itu perlu dioptimalkan. 

Pada awalnya, kami hanya melihat-lihat indeks dan menghapus acara yang tidak perlu. Ini ternyata lebih merepotkan dan lebih lama daripada bekerja dengan log di FortiWeb itu sendiri. Satu-satunya nilai tambah dari "pohon Natal" pada tahap ini adalah kami dapat memvisualisasikan waktu yang lama di satu layar. 

Kami tidak putus asa, kami terus memakan kaktus dan mempelajari ELK dan percaya bahwa kami akan dapat memperoleh informasi yang diperlukan. Setelah membersihkan indeks, kami mulai memvisualisasikan apa itu. Jadi kami datang ke dasbor besar. Kami mencolek widget - secara visual dan elegan, ЁLKa asli! 

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak

Menangkap momen penyerangan. Sekarang penting untuk memahami bagaimana tampilan awal serangan di grafik. Untuk mendeteksinya, kami melihat tanggapan server kepada pengguna (kode pengembalian). Kami tertarik dengan respons server dengan kode seperti itu (rc): 

Kode (rc)

Nama

ОписаниС

0

DROP

Permintaan ke server diblokir

200

Ok

Permintaan berhasil diproses

400

Permintaan yang buruk

Permintaan yang buruk

403

Terlarang

Otorisasi ditolak

500

Internal Server Error

Layanan tidak tersedia

Jika seseorang mulai menyerang situs, rasio kode berubah: 

  • Jika ada lebih banyak permintaan yang salah dengan kode 400, dan jumlah permintaan normal yang sama dengan kode 200, maka seseorang mencoba meretas situs tersebut. 
  • Jika, pada saat yang sama, permintaan dengan kode 0 juga bertambah, maka politisi FortiWeb juga "melihat" serangan tersebut dan memblokirnya. 
  • Jika jumlah pesan dengan kode 500 bertambah, maka situs tidak tersedia untuk alamat IP ini - juga semacam pemblokiran. 

Pada bulan ketiga, kami telah menyiapkan dasbor untuk melacak aktivitas ini.

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak

Agar tidak memantau semuanya secara manual, kami menyiapkan integrasi dengan Nagios, yang melakukan polling ELK pada interval tertentu. Jika mencatat pencapaian nilai ambang batas dengan kode, itu mengirimkan pemberitahuan kepada petugas jaga tentang aktivitas mencurigakan. 

Gabungan 4 grafik dalam sistem pemantauan. Sekarang penting untuk melihat pada grafik saat serangan tidak diblokir dan diperlukan intervensi dari seorang insinyur. Pada 4 grafik berbeda, mata kami kabur. Oleh karena itu, kami menggabungkan grafik dan mulai mengamati semuanya di satu layar.

Pada pemantauan, kami mengamati bagaimana grafik dengan warna berbeda berubah. Semburan merah menunjukkan bahwa serangan telah dimulai, sedangkan grafik oranye dan biru menunjukkan reaksi FortiWeb:

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak
Semuanya baik-baik saja di sini: ada lonjakan aktivitas "merah", tetapi FortiWeb mengatasinya dan jadwal serangan menjadi sia-sia.

Kami juga menggambar sendiri contoh grafik yang memerlukan intervensi:

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak
Di sini kita dapat melihat bahwa FortiWeb mengalami peningkatan aktivitas, tetapi grafik serangan merah tidak berkurang. Anda perlu mengubah pengaturan WAF.

Menyelidiki insiden malam hari juga menjadi lebih mudah. Grafik segera menunjukkan momen ketika tiba waktunya untuk mempertahankan situs. 

Bagaimana ELK membantu teknisi keamanan melawan serangan situs web dan tidur nyenyak
Itulah yang terkadang terjadi pada malam hari. Grafik merah - serangan telah dimulai. Biru - aktivitas FortiWeb. Serangan itu tidak sepenuhnya diblokir, kami harus turun tangan.

Kemana kita akan pergi

Sekarang kami sedang melatih administrator tugas untuk bekerja dengan ELK. Petugas belajar untuk menilai situasi di dasbor dan membuat keputusan: saatnya untuk meningkatkan ke spesialis FortiWeb, atau kebijakan di WAF akan cukup untuk menangkis serangan secara otomatis. Jadi kami mengurangi beban insinyur keamanan informasi di malam hari dan membagi peran dukungan di tingkat sistem. Akses ke FortiWeb tetap hanya dengan pusat pertahanan dunia maya, dan hanya mereka yang melakukan perubahan pada pengaturan WAF saat sangat dibutuhkan.

Kami juga bekerja pada pelaporan untuk pelanggan. Kami berencana data tentang dinamika pekerjaan WAF akan tersedia di akun pribadi klien. ELK akan memperjelas situasi tanpa perlu merujuk ke WAF itu sendiri.

Jika pelanggan ingin memantau perlindungan mereka sendiri secara real time, ELK juga akan berguna. Kami tidak dapat memberikan akses ke WAF, karena intervensi pelanggan dalam pekerjaan dapat memengaruhi sisanya. Tapi Anda bisa mengambil ELK terpisah dan memberikannya untuk "bermain-main". 

Ini adalah skenario penggunaan pohon Natal yang telah kami kumpulkan belakangan ini. Bagikan pemikiran Anda tentang ini dan jangan lupa atur semuanya dengan benaruntuk menghindari kebocoran database. 

Sumber: www.habr.com