Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang

Pusat pertahanan siber kami bertanggungjawab untuk keselamatan infrastruktur web pelanggan dan menangkis serangan ke atas tapak pelanggan. Untuk melindungi daripada serangan, kami menggunakan Tembok Api Aplikasi Web FortiWeb (WAF). Tetapi walaupun WAF yang paling hebat bukanlah ubat penawar dan tidak melindungi "di luar kotak" daripada serangan yang disasarkan. 

Oleh itu, sebagai tambahan kepada WAF, kami menggunakan ELK. Ia membantu untuk mengumpul semua acara di satu tempat, mengumpul statistik, menggambarkannya dan membolehkan kami melihat serangan yang disasarkan dalam masa.

Hari ini saya akan memberitahu anda dengan lebih terperinci bagaimana kami menyeberangi pokok Krismas dengan WAF dan apa yang berlaku.

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang

Kisah satu serangan: bagaimana semuanya berfungsi sebelum beralih kepada ELK

Dalam awan kami, pelanggan telah menggunakan aplikasi di belakang WAF kami. Daripada 10 hingga 000 pengguna yang disambungkan ke tapak setiap hari, bilangan sambungan mencecah 100 juta sehari. Daripada jumlah ini, 000-20 pengguna adalah penceroboh dan cuba menggodam tapak tersebut. 

Bentuk kekerasan biasa dari satu alamat IP disekat oleh FortiWeb dengan mudah. Bilangan kunjungan ke tapak seminit adalah lebih tinggi daripada pengguna yang sah. Kami hanya menyediakan ambang aktiviti dari satu alamat dan menangkis serangan itu.

Adalah lebih sukar untuk menangani "serangan perlahan", apabila penyerang bertindak perlahan dan menyamar sebagai pelanggan biasa. Mereka menggunakan banyak alamat IP unik. Aktiviti sedemikian tidak kelihatan seperti kekerasan besar-besaran kepada WAF, lebih sukar untuk mengesannya secara automatik. Dan terdapat juga risiko menyekat pengguna biasa. Kami mencari tanda-tanda serangan lain dan menyediakan dasar untuk menyekat alamat IP secara automatik berdasarkan tanda ini. Sebagai contoh, banyak sesi tidak sah mempunyai medan biasa dalam pengepala permintaan http. Anda sering terpaksa mencari medan sedemikian secara manual dalam log peristiwa FortiWeb. 

Ia menjadi panjang dan tidak selesa. Dalam fungsi standard FortiWeb, peristiwa direkodkan dalam teks dalam 3 log berbeza: serangan yang dikesan, maklumat tentang permintaan dan mesej sistem tentang operasi WAF. Puluhan atau bahkan ratusan peristiwa serangan boleh datang dalam satu minit.

Tidak begitu banyak, tetapi anda perlu memanjat secara manual melalui beberapa log dan mengulangi banyak baris: 

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang
Dalam log serangan, kami melihat alamat pengguna dan sifat aktiviti. 
 
Tidak cukup dengan mengimbas jadual log sahaja. Untuk mencari yang paling menarik dan berguna tentang sifat serangan, anda perlu melihat ke dalam acara tertentu:

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang
Medan yang diserlahkan membantu untuk mengesan "serangan perlahan". Sumber: tangkapan skrin daripada laman web Fortinet

Nah, masalah utama ialah hanya pakar FortiWeb yang boleh memikirkannya. Jika semasa waktu perniagaan kami masih boleh menjejaki aktiviti yang mencurigakan dalam masa nyata, maka siasatan kejadian malam boleh ditangguhkan. Apabila dasar FortiWeb tidak berfungsi atas sebab tertentu, jurutera syif malam yang bertugas tidak dapat menilai keadaan tanpa akses kepada WAF dan membangunkan pakar FortiWeb. Kami melihat melalui balak selama beberapa jam dan mendapati detik serangan itu. 

Dengan jumlah maklumat sedemikian, sukar untuk memahami gambaran besar sepintas lalu dan bertindak secara proaktif. Kemudian kami memutuskan untuk mengumpul data di satu tempat untuk menganalisis segala-galanya dalam bentuk visual, mencari permulaan serangan, mengenal pasti arah dan kaedah menyekatnya. 

Apa yang anda pilih

Pertama sekali, kami melihat penyelesaian yang sudah digunakan, supaya tidak membiak entiti secara tidak perlu.

Salah satu pilihan pertama ialah Nagiosyang kami gunakan untuk memantau infrastruktur kejuruteraan, infrastruktur rangkaian, makluman kecemasan. Pengawal keselamatan juga menggunakannya untuk memberitahu atendan sekiranya berlaku trafik yang mencurigakan, tetapi ia tidak tahu cara mengumpul balak yang bertaburan dan oleh itu hilang. 

Terdapat pilihan untuk mengagregat semuanya dengan MySQL dan PostgreSQL atau pangkalan data hubungan lain. Tetapi untuk mengeluarkan data, anda perlu mengukir permohonan anda. 

Sebagai pengumpul balak di syarikat kami mereka juga menggunakan FortiAnalyzer daripada Fortinet. Tetapi dalam kes ini, dia juga tidak sesuai. Pertama, ia lebih tajam untuk bekerja dengan tembok api FortiGate. Kedua, banyak tetapan hilang, dan interaksi dengannya memerlukan pengetahuan yang sangat baik tentang pertanyaan SQL. Dan ketiga, penggunaannya akan meningkatkan kos perkhidmatan untuk pelanggan.   

Inilah cara kami datang ke sumber terbuka di muka ELK

Kenapa pilih ELK 

ELK ialah satu set program sumber terbuka:

  • Elasticsearch - pangkalan data siri masa, yang baru dicipta untuk berfungsi dengan jumlah teks yang besar;
  • Logstash – mekanisme pengumpulan data yang boleh menukar log kepada format yang dikehendaki; 
  • Kibana - visualizer yang baik, serta antara muka yang agak mesra untuk mengurus Elasticsearch. Anda boleh menggunakannya untuk membina jadual yang boleh dipantau oleh jurutera bertugas pada waktu malam. 

Ambang kemasukan untuk ELK adalah rendah. Semua ciri asas adalah percuma. Apa lagi yang diperlukan untuk kebahagiaan.

Bagaimanakah anda meletakkan semuanya dalam satu sistem?

Mencipta indeks dan hanya meninggalkan maklumat yang diperlukan. Kami memuatkan ketiga-tiga log FortiWEB ke dalam ELK - outputnya ialah indeks. Ini ialah fail dengan semua log yang dikumpul untuk satu tempoh, contohnya, sehari. Jika kita memvisualisasikannya dengan segera, kita hanya akan melihat dinamik serangan. Untuk mendapatkan butiran, anda perlu "melewati" setiap serangan dan melihat medan tertentu.

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang

Kami menyedari bahawa pertama sekali kami perlu menyediakan penghuraian maklumat tidak berstruktur. Kami mengambil medan panjang sebagai rentetan, seperti "Mesej" dan "URL", dan menghuraikannya untuk mendapatkan lebih banyak maklumat untuk membuat keputusan. 

Contohnya, menggunakan penghuraian, kami mengeluarkan lokasi pengguna secara berasingan. Ini membantu segera menyerlahkan serangan dari luar negara di tapak untuk pengguna Rusia. Dengan menyekat semua sambungan dari negara lain, kami mengurangkan bilangan serangan sebanyak 2 kali dan boleh menangani serangan di dalam Rusia dengan mudah. 

Selepas menghuraikan, mereka mula mencari maklumat yang hendak disimpan dan divisualisasikan. Meninggalkan segala-galanya dalam log adalah tidak sesuai: saiz satu indeks adalah besar - 7 GB. ELK mengambil masa yang lama untuk memproses fail. Walau bagaimanapun, tidak semua maklumat berguna. Sesuatu telah diduplikasi dan menggunakan ruang tambahan - ia adalah perlu untuk mengoptimumkan. 

Pada mulanya, kami hanya melihat melalui indeks dan mengalih keluar peristiwa yang tidak perlu. Ini ternyata lebih menyusahkan dan lebih lama daripada bekerja dengan log di FortiWeb itu sendiri. Satu-satunya kelebihan daripada "pokok Krismas" pada peringkat ini ialah kami dapat menggambarkan tempoh masa yang besar pada satu skrin. 

Kami tidak putus asa, kami terus makan kaktus dan mengkaji ELK dan percaya bahawa kami akan dapat mengekstrak maklumat yang diperlukan. Selepas membersihkan indeks, kami mula memvisualisasikan apa itu. Jadi kami sampai ke papan pemuka besar. Kami mencucuk widget - secara visual dan elegan, ЁLKa sebenar! 

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang

Merakam detik serangan. Sekarang adalah perlu untuk memahami bagaimana permulaan serangan kelihatan pada carta. Untuk mengesannya, kami melihat respons pelayan kepada pengguna (kod pengembalian). Kami berminat dengan respons pelayan dengan kod tersebut (rc): 

Kod (rc)

nama

ОписаниС

0

GUGUR

Permintaan kepada pelayan disekat

200

Ok

Permintaan berjaya diproses

400

Permintaan buruk

Permintaan buruk

403

Larangan

Keizinan ditolak

500

Ralat Pelayan Dalaman

Perkhidmatan tidak tersedia

Jika seseorang mula menyerang tapak, nisbah kod berubah: 

  • Jika terdapat lebih banyak permintaan yang salah dengan kod 400, dan bilangan permintaan biasa yang sama dengan kod 200, maka seseorang cuba menggodam tapak tersebut. 
  • Jika, pada masa yang sama, permintaan dengan kod 0 juga meningkat, maka ahli politik FortiWeb juga "melihat" serangan itu dan menggunakan sekatan ke atasnya. 
  • Jika bilangan mesej dengan kod 500 meningkat, maka tapak tersebut tidak tersedia untuk alamat IP ini - juga sejenis penyekatan. 

Menjelang bulan ketiga, kami telah menyediakan papan pemuka untuk menjejaki aktiviti ini.

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang

Untuk tidak memantau semuanya secara manual, kami menyediakan penyepaduan dengan Nagios, yang meninjau ELK pada selang masa tertentu. Jika ia merekodkan pencapaian nilai ambang mengikut kod, ia menghantar pemberitahuan kepada pegawai bertugas tentang aktiviti yang mencurigakan. 

Digabungkan 4 carta dalam sistem pemantauan. Sekarang adalah penting untuk melihat pada graf saat serangan tidak disekat dan campur tangan seorang jurutera diperlukan. Pada 4 graf berbeza, mata kami kabur. Oleh itu, kami menggabungkan carta dan mula memerhatikan segala-galanya pada satu skrin.

Semasa pemantauan, kami melihat bagaimana graf warna berbeza berubah. Ledakan merah menunjukkan bahawa serangan telah bermula, manakala graf oren dan biru menunjukkan reaksi FortiWeb:

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang
Semuanya baik-baik saja di sini: terdapat lonjakan aktiviti "merah", tetapi FortiWeb berjaya mengatasinya dan jadual serangan menjadi sia-sia.

Kami juga melukis sendiri contoh graf yang memerlukan campur tangan:

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang
Di sini kita dapat melihat bahawa FortiWeb telah meningkatkan aktiviti, tetapi graf serangan merah tidak berkurangan. Anda perlu menukar tetapan WAF.

Menyiasat kejadian malam juga menjadi lebih mudah. Graf serta-merta menunjukkan masa apabila tiba masanya untuk mempertahankan tapak tersebut. 

Bagaimana ELK membantu jurutera keselamatan melawan serangan tapak web dan tidur dengan tenang
Itulah yang kadang-kadang berlaku pada waktu malam. Graf merah - serangan telah bermula. Biru - Aktiviti FortiWeb. Serangan itu tidak disekat sepenuhnya, kami terpaksa campur tangan.

Kemana kita akan pergi

Kini kami sedang melatih pentadbir tugas untuk bekerja dengan ELK. Atendan belajar menilai situasi di papan pemuka dan membuat keputusan: sudah tiba masanya untuk merujuk kepada pakar FortiWeb, atau dasar pada WAF sudah cukup untuk menangkis serangan secara automatik. Jadi kami mengurangkan beban jurutera keselamatan maklumat pada waktu malam dan membahagikan peranan dalam sokongan di peringkat sistem. Akses kepada FortiWeb kekal hanya dengan pusat pertahanan siber, dan hanya mereka yang membuat perubahan pada tetapan WAF apabila diperlukan segera.

Kami juga sedang mengusahakan pelaporan untuk pelanggan. Kami merancang bahawa data mengenai dinamik kerja WAF akan tersedia dalam akaun peribadi pelanggan. ELK akan menjadikan keadaan lebih jelas tanpa perlu merujuk kepada WAF sendiri.

Jika pelanggan ingin memantau perlindungan mereka sendiri dalam masa nyata, ELK juga akan berguna. Kami tidak boleh memberikan akses kepada WAF, kerana campur tangan pelanggan dalam kerja boleh menjejaskan yang lain. Tetapi anda boleh mengambil ELK yang berasingan dan memberikannya kepada "bermain-main". 

Ini adalah senario untuk menggunakan pokok Krismas yang telah kami kumpulkan kebelakangan ini. Kongsi pendapat anda tentang perkara ini dan jangan lupa tetapkan semuanya dengan betuluntuk mengelakkan kebocoran pangkalan data. 

Sumber: www.habr.com