Lab pengantar kami berfokus pada mengidentifikasi insiden yang terkait dengan mendapatkan akses ke panel admin server web.
Kasus
Selama liburan ISA, pengembang pihak ketiga dipekerjakan untuk membuat aplikasi web yang akan dihosting di server web Tomcat. Demi kenyamanan, pengembang membuat konsol web untuk mengelola aplikasi server tersedia untuk dunia luar dan membuat admin akun "non-sepele": admin.
Ancaman
Seorang penyerang, saat memindai host eksternal organisasi, menemukan port 8080 dari server web yang bersangkutan, memastikan bahwa konsol administratif tersedia, dan setelah beberapa upaya, berhasil membongkar kata sandi untuk akun administrator.
Tugas
Penting untuk menentukan bagaimana administrator keamanan informasi dapat menyiapkan SIEM sebelum liburannya agar dapat mencatatkan insiden yang terkait dengan ancaman yang dimaksud secara tepat waktu. Setelah itu, Anda perlu mengimplementasikan skenario serangan ini dan memastikan bahwa arahan korelasi berfungsi dengan benar.
Infrastruktur virtual
Situasi berkembang dalam infrastruktur TI berikut yang disebarkan di VirtualBox:
- Mesin penyerang (Kali Linux, IP: 8.8.8.10, RAM 4GB, kali: kali);
- Firewall dengan sistem deteksi intrusi (pfSense, IP eksternal: 8.8.8.1, IP jaringan internal: 192.168.1.1, DMZ IP: 192.168.2.1, RAM 1GB, admin: pfsense);
- Server web (Ubuntu Server 18.04 dengan Tomcat, IP 192.168.2.15, RAM 2GB, pengguna: pengguna);
- Sistem SIEM server "KOMRAD" (Ubuntu 20.04, IP 192.168.1.99, RAM 4 GB, pengguna: pengguna).
Jika Anda tertarik untuk menerapkan infrastruktur ini sendiri, Anda dapat menggunakan petunjuknya , tetapi jika Anda ingin menghemat waktu, maka kami memposting mesin virtual yang dikonfigurasi dalam format OVA . Sistem SIEM perlu diperoleh sebagai tambahan, tetapi ini akan dijelaskan di bawah.
Solusi: menyiapkan sistem SIEM
Untuk mengatasi masalah ini, kami akan melakukan tindakan penyerang secara berurutan, menganalisis bagaimana tindakan tersebut tercermin dalam firewall dan log server web, mengonfigurasi pengumpulan, mengurai, dan memfilter peristiwa, dan juga membuat arahan korelasi yang diperlukan dalam sistem SIEM.
The panduan laboratorium kami menyediakan langkah-langkah untuk memecahkan masalah ini rinci, dalam artikel ini, kami akan berkonsentrasi hanya pada poin kunci.
1. Mengirim acara dari firewall
Firewall pfSense memungkinkan Anda untuk mengirim log Anda melalui protokol Syslog ke server jauh, untuk ini Anda hanya perlu mengatur alamat IP dan port dari syslog collector SIEM "KOMRAD", serta menambahkan aturan yang memungkinkan pengiriman log dari jaringan 192.168.2.0/24 ke jaringan internal 192.168 .1.0 / 24.
Sistem SIEM akan menerima peristiwa jenis berikut:
<134> 1 2020-10-18T02: 33: 40.684089 + 00: 00 pfSense.localdomain filterlog 9761 - - 4 ,,, 1000000103, em0, match, block , in, 4, 0x0 ,, 64,25904,0, DF, 6, tcp, 60, 8.8.8.10 , 8.8.8.1 , 35818,1721,0, S, 1017288379 ,, 64240 ,, mss; sackOK; TS; nop; wscale
Seperti yang Anda lihat, entri ini berisi informasi penting seperti alamat IP dari host yang memulai koneksi, alamat IP dari host yang sedang mencoba koneksi, dan indikasi bahwa upaya koneksi diblokir.
2. Mengirim acara dari server web
Server web Tomcat mencatat permintaan http di log lokal, yang dapat dialihkan melalui rsyslog ke sistem SIEM. Untuk mengatasi masalah ini, Anda juga dapat menggunakan file collector, yang merupakan bagian dari SIEM-system "KOMRAD". Dalam catatan, Anda dapat melihat bahwa alamat IP dari host tempat permintaan diterima terdaftar, serta akun pengguna jika otorisasi berhasil:
3. Menerima aliran acara oleh SIEM-sistem "KOMRAD"
Peristiwa yang dipertimbangkan secara otomatis didaftarkan oleh sistem SIEM "KOMRAD":
Dua jenis peristiwa yang disebutkan cukup untuk mendeteksi situasi berikut:
- Pemblokiran koneksi - berdasarkan blok;
- Pemindaian port - jika terjadi beberapa upaya pemblokiran koneksi yang dilakukan oleh host yang sama;
- Akses tidak sah yang dicurigai - pemindaian port dan kemudian mendapatkan akses administratif.
Ketiga situasi tersebut dapat menjadi insiden keamanan informasi, tetapi tentu saja dengan tingkat keparahan yang berbeda.
Sebelum mendaftarkan insiden, kita perlu mempelajari cara mengekstrak informasi berguna di atas dari peristiwa.
4. Analisis peristiwa dengan SIEM-sistem "KOMRAD" (parsing)
Untuk mengurai peristiwa sumber dalam sistem SIEM, Anda perlu membuat plugin yang menyertakan sekumpulan ekspresi reguler. Untuk sumber paling populer, COMRAD sudah memiliki plugin yang sudah jadi. Jika tidak ada plugin, pengguna dapat membuatnya.
Di bawah ini adalah contoh mendesain ekspresi reguler untuk mengekstrak bidang dari peristiwa firewall di atas. Sebagai alat debugging, kami menggunakan portal https://regex101.com/
Setelah membuat plug-in, data dari peristiwa diekstrak ke dalam bidang terpisah, seperti yang Anda lihat dari kartu acara berikut:
5. Konfigurasi filter untuk mengekstrak peristiwa keamanan informasi yang menarik dari aliran
Untuk mengidentifikasi peristiwa yang menarik bagi kami dalam aliran peristiwa yang memasuki sistem SIEM, kami perlu menyiapkan filter. Dalam sistem SIEM filter "KOMRAD" dibentuk menggunakan bahasa skrip populer Lua (spesialis keamanan informasi sudah familiar dengannya dari Nmap dan Suricata).
Untuk memilih acara firewall yang terkait dengan pemblokiran koneksi, kami akan membuat filter berikut:
-- filter
function filter(event)
-- , IP- ,
action = event:getString ('Action')
ip = event:getString ('IpSrc')
-- IP-,
if action == 'block' then
return {IP=ip}
end
end
Filter untuk acara Tomcat terlihat sedikit lebih rumit, di mana kami memeriksa apakah akun yang diambil dari acara tersebut cocok dengan nilai "admin". Dalam kasus ini, kami juga mengembalikan alamat IP.
function filter(event)
journal = event:getString ('Journal')
login = event:getString ('Username')
ip = event:getString ('IpSrc')
if journal == 'tomcat-access' and login == 'admin' then
return {IP=ip}
end
end
Saat digunakan dalam lingkungan produksi, untuk meningkatkan kinerja sistem, Anda mungkin perlu memeriksa ID kolektor tertentu di awal setiap filter untuk membatasi cakupan filter.
6. Membuat arahan korelasi
Mari buat arahan korelasi untuk situasi yang dipertimbangkan dengan tingkat keparahan berikut:
- Pemblokiran koneksi - "tidak signifikan";
- Port Scan - Rendah;
- Mengirim permintaan http menggunakan akun admin "tinggi".
Untuk membuat insiden jika koneksi diblokir, itu cukup untuk menunjukkan dalam direktif korelasi satu-satunya filter yang diterapkan:
filter 5
Direktif kedua, yang seharusnya membuat insiden jika tiga kali pemblokiran koneksi yang diprakarsai oleh host yang sama, akan terlihat seperti ini:
/* ip, , .*/
var ip
filter 5 export ip = ep.IP
/* IP.
notforking, .*/
filter 5 +1m where ep.IP==ip notforking
// .
filter 5 +1m where ep.IP==ip notforking
Di direktif ketiga, kami menambahkan baris lain, di mana kami menggunakan filter dengan ID 6, dibuat untuk memilih permintaan ke server web dengan akun admin.
var ip
filter 5 export ip = ep.IP
filter 5 +1m where ep.IP==ip notforking
filter 5 +1m where ep.IP==ip notforking
filter 6 +1m where ep.IP==ip notforking
Dalam contoh tutorial, jendela waktu dibiarkan sama dengan 1 menit; dalam kehidupan nyata, masuk akal untuk menambahnya menjadi beberapa menit.
Solusi: melakukan serangan dan mengidentifikasinya
Setelah mengonfigurasi sumber peristiwa dan sistem SIEM, saatnya melakukan serangan tiruan. Pertama, mari kita pindai port:
Kemudian kita pergi ke port 8080 dan melalui otorisasi dengan akun admin: admin:
Tindakan ini dicatat oleh SIEM-system "KOMRAD": ketiga arahan korelasi dipicu:
Kesimpulan
Jadi, dalam pekerjaan laboratorium ini, kami melihat urutan tindakan untuk mengumpulkan dan menganalisis peristiwa keamanan informasi jika mendapatkan akses administratif ke server web. Di lab berikutnya, penyerang akan mengembangkan serangan dan menggunakan akses administratif yang diperoleh untuk mengumpulkan informasi tentang infrastruktur target.
Cara mendapatkan versi demo dari SIEM-system "KOMRAD"
Saat ini kami sedang dalam pengujian beta produk kami, di mana siapa pun dapat mengambil bagian. Untuk melakukan ini, kami menyediakan versi sistem SIEM saat ini dalam bentuk container Docker. Hanya ada dua batasan dalam versi demo: kecepatan pemrosesan acara dikurangi menjadi 1000 EPS dan tidak ada sistem otorisasi dan kontrol akses.
Untuk menerima arsip dengan versi demo, kirim email kepada kami di alamat email getkomrad@npo-echelon.ru dari kotak surat organisasi Anda (kami tertarik siapa yang akan berpartisipasi). Kami juga mengundang Anda ke grup Telegram kami, di mana Anda bisa mendapatkan bantuan jika ada kesulitan: https://t.me/komrad4
Tautan
- Mesin virtual untuk mengatur infrastruktur pelatihan di VirtualBox: https://yadi.sk/d/GQ4BFn_soDJj0A
- , : https://yadi.sk/i/tD8nxckjYwr_6Q
- №1: https://yadi.sk/i/ffztj2XQMPD-xw