Panduan Analisis Ancaman Sysmon, Bahagian 1

Panduan Analisis Ancaman Sysmon, Bahagian 1

Artikel ini ialah bahagian pertama siri tentang analisis ancaman Sysmon. Semua bahagian lain siri ini:

Bahagian 1: Pengenalan kepada Analisis Log Sysmon (kita berada di sini)
Bahagian 2: Menggunakan Data Peristiwa Sysmon untuk Mengenalpasti Ancaman
Bahagian 3. Analisis mendalam ancaman Sysmon menggunakan graf

Jika anda bekerja dalam keselamatan maklumat, anda mungkin sering perlu memahami serangan yang berterusan. Jika anda sudah mempunyai mata terlatih, anda boleh mencari aktiviti bukan standard dalam log "mentah" yang belum diproses - katakan, skrip PowerShell berjalan dengan arahan DownloadString atau skrip VBS yang berpura-pura menjadi fail Word - hanya menatal melalui aktiviti terkini dalam log peristiwa Windows. Tetapi ini adalah sakit kepala yang sangat besar. Nasib baik, Microsoft mencipta Sysmon, yang menjadikan analisis serangan lebih mudah.

Ingin memahami idea asas di sebalik ancaman yang dipaparkan dalam log Sysmon? Muat turun panduan kami Acara WMI sebagai cara mengintip dan anda sedar bagaimana orang dalam boleh memerhati pekerja lain secara diam-diam. Masalah utama dengan bekerja dengan log peristiwa Windows ialah kekurangan maklumat tentang proses induk, i.e. adalah mustahil untuk memahami hierarki proses daripadanya. Entri log Sysmon, sebaliknya, mengandungi ID proses induk, namanya dan baris arahan yang akan dilancarkan. Terima kasih, Microsoft.

Dalam bahagian pertama siri kami, kami akan melihat perkara yang boleh anda lakukan dengan maklumat asas daripada Sysmon. Dalam Bahagian XNUMX, kami akan memanfaatkan sepenuhnya maklumat proses induk untuk mencipta struktur pematuhan yang lebih kompleks yang dikenali sebagai graf ancaman. Di bahagian ketiga, kita akan melihat algoritma ringkas yang mengimbas graf ancaman untuk mencari aktiviti luar biasa dengan menganalisis "berat" graf. Dan pada akhirnya, anda akan diberi ganjaran dengan kaedah pengesanan ancaman kebarangkalian yang kemas (dan boleh difahami).

Bahagian 1: Pengenalan kepada Analisis Log Sysmon

Apakah yang boleh membantu anda memahami kerumitan log peristiwa? Akhirnya - SIEM. Ia menormalkan peristiwa dan memudahkan analisis seterusnya. Tetapi kita tidak perlu pergi sejauh itu, sekurang-kurangnya tidak pada mulanya. Pada mulanya, untuk memahami prinsip SIEM, sudah cukup untuk mencuba utiliti Sysmon percuma yang hebat. Dan dia sangat mudah untuk bekerjasama. Teruskan, Microsoft!

Apakah ciri yang ada pada Sysmon?

Pendek kata - maklumat berguna dan boleh dibaca tentang proses (lihat gambar di bawah). Anda akan menemui banyak butiran berguna yang tiada dalam Log Acara Windows, tetapi yang paling penting ialah medan berikut:

  • ID Proses (dalam perpuluhan, bukan heks!)
  • ID proses ibu bapa
  • Baris arahan proses
  • Baris arahan proses induk
  • Cincang imej fail
  • Nama imej fail

Sysmon dipasang sebagai pemacu peranti dan sebagai perkhidmatan - butiran lanjut здСсь. Kelebihan utamanya ialah keupayaan untuk menganalisis log daripada lebih sumber, korelasi maklumat dan output nilai yang terhasil ke satu folder log peristiwa yang terletak di sepanjang laluan Microsoft -> Windows -> Sysmon -> Operasi. Dalam penyiasatan log Windows saya sendiri, saya mendapati diri saya sentiasa perlu bertukar antara, katakan, folder log PowerShell dan folder Keselamatan, menyelak log peristiwa dalam percubaan berani untuk mengaitkan nilai antara keduanya. Ini bukanlah satu tugas yang mudah, dan seperti yang saya sedar kemudian, adalah lebih baik untuk segera menyimpan aspirin.

Sysmon mengambil lonjakan kuantum ke hadapan dengan menyediakan maklumat yang berguna (atau seperti yang vendor katakan, boleh diambil tindakan) untuk membantu memahami proses asas. Sebagai contoh, saya memulakan sesi rahsia wmiexec, mensimulasikan pergerakan orang dalam pintar dalam rangkaian. Inilah yang anda akan lihat dalam log acara Windows:

Panduan Analisis Ancaman Sysmon, Bahagian 1

Log Windows menunjukkan beberapa maklumat tentang proses itu, tetapi ia tidak banyak digunakan. Tambah ID proses dalam perenambelasan???

Untuk profesional IT profesional dengan pemahaman asas penggodaman, baris arahan harus mencurigakan. Menggunakan cmd.exe untuk kemudian menjalankan perintah lain dan mengalihkan output ke fail dengan nama yang aneh jelas serupa dengan tindakan perisian pemantauan dan kawalan arahan dan kawalan (C2): Dengan cara ini, pseudo-shell dicipta menggunakan perkhidmatan WMI.
Sekarang mari kita lihat setara entri Sysmon, perhatikan berapa banyak maklumat tambahan yang diberikannya kepada kita:

Panduan Analisis Ancaman Sysmon, Bahagian 1

Ciri Sysmon dalam satu tangkapan skrin: maklumat terperinci tentang proses dalam bentuk yang boleh dibaca

Anda bukan sahaja melihat baris arahan, tetapi juga nama fail, laluan ke aplikasi boleh laku, perkara yang Windows tahu mengenainya ("Pemproses Perintah Windows"), pengecam ibu bapa proses, baris arahan ibu bapa, yang melancarkan shell cmd, serta nama fail sebenar proses induk. Semuanya di satu tempat, akhirnya!
Daripada log Sysmon, kita boleh menyimpulkan bahawa dengan tahap kebarangkalian yang tinggi, baris arahan yang mencurigakan yang kita lihat dalam log "mentah" ini bukanlah hasil kerja biasa pekerja. Sebaliknya, ia dihasilkan oleh proses seperti C2 - wmiexec, seperti yang saya nyatakan sebelum ini - dan secara langsung dihasilkan oleh proses perkhidmatan WMI (WmiPrvSe). Kini kami mempunyai penunjuk bahawa penyerang jauh atau orang dalam sedang menguji infrastruktur korporat.

Memperkenalkan Get-Sysmonlogs

Sudah tentu ia hebat apabila Sysmon meletakkan log di satu tempat. Tetapi mungkin lebih baik jika kita boleh mengakses medan log individu secara pengaturcaraan - contohnya, melalui arahan PowerShell. Dalam kes ini, anda boleh menulis skrip PowerShell kecil yang akan mengautomasikan carian untuk potensi ancaman!
Saya bukanlah orang pertama yang mempunyai idea sedemikian. Dan ada baiknya dalam beberapa siaran forum dan GitHub projek Ia telah pun diterangkan cara menggunakan PowerShell untuk menghuraikan log Sysmon. Dalam kes saya, saya ingin mengelak daripada menulis baris skrip parsing yang berasingan untuk setiap medan Sysmon. Jadi saya menggunakan prinsip lelaki malas dan saya rasa saya menghasilkan sesuatu yang menarik sebagai hasilnya.
Perkara pertama yang penting ialah keupayaan pasukan Dapatkan-WinEvent baca log Sysmon, tapis peristiwa yang diperlukan dan keluarkan hasilnya kepada pembolehubah PS, seperti di sini:

$events = Get-WinEvent  -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}

Jika anda ingin menguji arahan itu sendiri, dengan memaparkan kandungan dalam elemen pertama tatasusunan $events, $events[0].Mesej, output boleh menjadi satu siri rentetan teks dengan format yang sangat mudah: nama Medan Sysmon, titik bertindih, dan kemudian nilai itu sendiri.

Panduan Analisis Ancaman Sysmon, Bahagian 1

Hooray! Mengeluarkan log masuk Sysmon ke dalam format sedia JSON

Adakah anda berfikir perkara yang sama seperti saya? Dengan sedikit usaha lagi, anda boleh menukar output menjadi rentetan berformat JSON dan kemudian memuatkannya terus ke objek PS menggunakan arahan yang berkuasa Tukar Daripada-Json .
Saya akan menunjukkan kod PowerShell untuk penukaran - ia sangat mudah - di bahagian seterusnya. Buat masa ini, mari lihat apa yang boleh dilakukan oleh arahan baharu saya yang dipanggil get-sysmonlogs, yang saya pasang sebagai modul PS.
Daripada menyelam jauh ke dalam analisis log Sysmon melalui antara muka log peristiwa yang menyusahkan, kami boleh dengan mudah mencari aktiviti tambahan terus daripada sesi PowerShell, serta menggunakan arahan PS di mana (alias – β€œ?”) untuk memendekkan hasil carian:

Panduan Analisis Ancaman Sysmon, Bahagian 1

Senarai cangkerang cmd yang dilancarkan melalui WMI. Analisis Ancaman tentang Murah dengan Pasukan Get-Sysmonlogs Kami Sendiri

Hebat! Saya mencipta alat untuk meninjau log Sysmon seolah-olah ia adalah pangkalan data. Dalam artikel kami tentang EQL telah diperhatikan bahawa fungsi ini akan dilakukan oleh utiliti sejuk yang diterangkan di dalamnya, walaupun secara rasmi masih melalui antara muka seperti SQL sebenar. Ya, EQL anggun, tetapi kami akan menyentuhnya dalam bahagian ketiga.

Sysmon dan analisis graf

Mari kita berundur dan berfikir tentang apa yang baru kita buat. Pada asasnya, kami kini mempunyai pangkalan data acara Windows yang boleh diakses melalui PowerShell. Seperti yang saya nyatakan sebelum ini, terdapat sambungan atau perhubungan antara rekod - melalui ParentProcessId - jadi hierarki proses yang lengkap boleh diperolehi.

Jika anda telah membaca siri ini "Pengembaraan Perisian Hasad Sulit" anda tahu bahawa penggodam suka mencipta serangan berbilang peringkat yang kompleks, di mana setiap proses memainkan peranan kecilnya sendiri dan menyediakan batu loncatan untuk langkah seterusnya. Sangat sukar untuk menangkap perkara sedemikian hanya dari log "mentah".
Tetapi dengan arahan Get-Sysmonlogs saya dan struktur data tambahan yang akan kami lihat kemudian dalam teks (tentu saja graf), kami mempunyai cara praktikal untuk mengesan ancaman - yang hanya memerlukan melakukan carian puncak yang betul.
Seperti biasa dengan projek blog DYI kami, lebih banyak anda berusaha untuk menganalisis butiran ancaman secara kecil-kecilan, lebih banyak anda akan menyedari betapa kompleksnya pengesanan ancaman di peringkat perusahaan. Dan kesedaran ini amat sangat perkara penting.

Kami akan menghadapi komplikasi menarik pertama dalam bahagian kedua artikel, di mana kami akan mula menghubungkan peristiwa Sysmon antara satu sama lain ke dalam struktur yang lebih kompleks.

Sumber: www.habr.com

Tambah komen