Sysmon v15.15
Oleh Mark Russinovich dan Thomas Garnier
Diterbitkan: 23 Juli 2024
Unduh Sysmon (4.6 MB)
Unduh Sysmon untuk Linux (GitHub)
System Monitor (Sysmon) adalah layanan sistem Windows dan driver perangkat yang, setelah diinstal pada sistem, tetap tinggal di seluruh reboot sistem untuk memantau dan mencatat aktivitas sistem ke log peristiwa Windows. Ini menyediakan informasi terperinci tentang pembuatan proses, koneksi jaringan, dan perubahan waktu pembuatan file. Dengan mengumpulkan peristiwa yang dihasilkannya menggunakan Windows Event Collection atau agen SIEM dan kemudian menganalisisnya, Anda dapat mengidentifikasi aktivitas berbahaya atau anomali dan memahami bagaimana penyusup dan malware beroperasi di jaringan Anda. Layanan ini berjalan sebagai proses yang dilindungi, sehingga melarang berbagai interaksi mode pengguna.
Perhatikan bahwa Sysmon tidak memberikan analisis peristiwa yang dihasilkannya, juga tidak mencoba menyembunyikan dirinya dari penyerang.
Sysmon mencakup kemampuan berikut:
- Pembuatan proses log dengan baris perintah penuh untuk proses saat ini dan induk.
- Merekam hash file gambar proses menggunakan SHA1 (default), MD5, SHA256, atau IMPHASH.
- Beberapa hash dapat digunakan pada saat yang sama.
- Menyertakan GUID proses dalam proses membuat peristiwa untuk memungkinkan korelasi peristiwa bahkan ketika Windows menggunakan kembali ID proses.
- Menyertakan GUID sesi di setiap peristiwa untuk memungkinkan korelasi peristiwa pada sesi masuk yang sama.
- Mencatat pemuatan driver atau DLL dengan tanda tangan dan hashnya.
- Log terbuka untuk akses baca mentah disk dan volume.
- Secara opsional mencatat koneksi jaringan, termasuk setiap proses sumber koneksi, alamat IP, nomor port, nama host, dan nama port.
- Mendeteksi perubahan waktu pembuatan file untuk memahami kapan file benar-benar dibuat. Modifikasi tanda waktu pembuatan file adalah teknik yang umum digunakan oleh malware untuk menutupi treknya.
- Muat ulang konfigurasi secara otomatis jika diubah dalam registri.
- Pemfilteran aturan untuk menyertakan atau mengecualikan peristiwa tertentu secara dinamis.
- Menghasilkan peristiwa dari awal proses boot untuk menangkap aktivitas yang dibuat oleh malware mode kernel yang canggih sekalipun.
Penggunaan umum yang menampilkan opsi baris perintah sederhana untuk menginstal dan menghapus instalan Sysmon, serta untuk memeriksa dan memodifikasi konfigurasinya:
Pasang: sysmon64 -i [<configfile>]
Konfigurasi pembaruan: sysmon64 -c [<configfile>]
Instal manifes peristiwa: sysmon64 -m
Skema cetak: sysmon64 -s
Hapus instalan: sysmon64 -u [force]
Parameter | Deskripsi |
---|---|
-i | Instal layanan dan driver. Secara opsional mengambil file konfigurasi. |
-c | Perbarui konfigurasi driver Sysmon yang diinstal atau buang konfigurasi saat ini jika tidak ada argumen lain yang disediakan. Secara opsional mengambil file konfigurasi. |
-m | Instal manifes peristiwa (secara implisit dilakukan pada penginstalan layanan juga). |
-s | Cetak definisi skema konfigurasi. |
-u | Hapus instalan layanan dan driver. Menggunakan -u force penyebab penghapusan instalasi untuk dilanjutkan bahkan ketika beberapa komponen tidak diinstal. |
Layanan mencatat peristiwa segera dan driver diinstal sebagai driver boot-start untuk mengambil aktivitas dari awal boot yang akan ditulis layanan ke log peristiwa ketika dimulai.
Di Vista dan yang lebih tinggi, peristiwa disimpan di Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
.
Pada sistem yang lebih lama, peristiwa ditulis ke System
log peristiwa.
Jika Anda memerlukan informasi lebih lanjut tentang file konfigurasi, gunakan -? config
perintah .
Tentukan -accepteula
untuk menerima EULA secara otomatis pada penginstalan, jika tidak, Anda akan diminta untuk menerimanya secara interaktif.
Penginstalan atau penghapusan instalasi tidak memerlukan boot ulang.
Instal dengan pengaturan default (gambar proses di-hash dengan SHA1 dan tidak ada pemantauan jaringan)
sysmon -accepteula -i
Instal Sysmon dengan file konfigurasi (seperti yang dijelaskan di bawah)
sysmon -accepteula -i c:\windows\config.xml
Menghapus instalan
sysmon -u
Mencadangkan konfigurasi saat ini
sysmon -c
Mengonfigurasi ulang Sysmon aktif dengan file konfigurasi (seperti yang dijelaskan di bawah)
sysmon -c c:\windows\config.xml
Mengubah konfigurasi ke pengaturan default
sysmon -c --
Menampilkan skema konfigurasi
sysmon -s
Di Vista dan yang lebih tinggi, peristiwa disimpan di Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
, dan pada peristiwa sistem yang lebih lama ditulis ke System
log peristiwa.
Tanda waktu peristiwa berada dalam waktu standar UTC.
Berikut ini adalah contoh setiap jenis peristiwa yang dihasilkan Sysmon.
Peristiwa pembuatan proses menyediakan informasi yang diperluas tentang proses yang baru dibuat. Baris perintah lengkap menyediakan konteks tentang eksekusi proses. Bidang ProcessGUID
adalah nilai unik untuk proses ini di seluruh domain untuk mempermudah korelasi peristiwa. Hash adalah hash lengkap file dengan algoritma di HashType
bidang .
Peristiwa waktu pembuatan file perubahan didaftarkan ketika waktu pembuatan file dimodifikasi secara eksplisit oleh proses. Kejadian ini membantu melacak waktu pembuatan file yang sebenarnya. Penyerang dapat mengubah waktu pembuatan file backdoor untuk membuatnya terlihat seperti diinstal dengan sistem operasi. Perhatikan bahwa banyak proses secara sah mengubah waktu pembuatan file; itu tidak selalu menunjukkan aktivitas berbahaya.
Peristiwa koneksi jaringan mencatat koneksi TCP/UDP pada komputer. Ini dinonaktifkan secara default. Setiap koneksi ditautkan ke proses melalui ProcessId
bidang dan ProcessGuid
. Kejadian ini juga berisi alamat IP nama host sumber dan tujuan, nomor port, dan status IPv6.
Peristiwa perubahan status layanan melaporkan status layanan Sysmon (dimulai atau dihentikan).
Proses mengakhiri laporan peristiwa ketika proses berakhir. Ini menyediakan UtcTime
, ProcessGuid
dan ProcessId
prosesnya.
Peristiwa yang dimuat driver menyediakan informasi tentang driver yang sedang dimuat pada sistem. Hash yang dikonfigurasi disediakan serta informasi tanda tangan. Tanda tangan dibuat secara asinkron karena alasan performa dan menunjukkan apakah file dihapus setelah dimuat.
Peristiwa yang dimuat gambar mencatat saat modul dimuat dalam proses tertentu. Kejadian ini dinonaktifkan secara default dan perlu dikonfigurasi dengan opsi "–l
". Ini menunjukkan proses di mana modul dimuat, hash, dan informasi tanda tangan. Tanda tangan dibuat secara asinkron karena alasan performa dan menunjukkan apakah file dihapus setelah dimuat. Kejadian ini harus dikonfigurasi dengan hati-hati, karena memantau semua peristiwa beban gambar akan menghasilkan sejumlah besar pengelogan.
Peristiwa mendeteksi CreateRemoteThread
kapan proses membuat utas dalam proses lain. Teknik ini digunakan oleh malware untuk menyuntikkan kode dan bersembunyi dalam proses lain. Peristiwa menunjukkan proses sumber dan target. Ini memberikan informasi tentang kode yang akan dijalankan di utas baru: StartAddress
, StartModule
dan StartFunction
. Perhatikan bahwa StartModule
dan StartFunction
bidang disimpulkan, bidang mungkin kosong jika alamat awal berada di luar modul yang dimuat atau fungsi yang diekspor yang diketahui.
Peristiwa mendeteksi RawAccessRead
kapan proses melakukan operasi pembacaan dari drive menggunakan penolakan \\.\
. Teknik ini sering digunakan oleh malware untuk penyelundupan data file yang dikunci untuk dibaca, serta untuk menghindari alat audit akses file. Peristiwa menunjukkan proses sumber dan perangkat target.
Proses yang diakses melaporkan peristiwa ketika proses membuka proses lain, operasi yang sering diikuti oleh kueri informasi atau membaca dan menulis ruang alamat proses target. Ini memungkinkan deteksi alat peretasan yang membaca konten memori proses seperti Otoritas Keamanan Lokal (Lsass.exe) untuk mencuri kredensial untuk digunakan dalam serangan Pass-the-Hash. Mengaktifkannya dapat menghasilkan sejumlah besar pengelogan jika ada utilitas diagnostik aktif yang berulang kali membuka proses untuk mengkueri statusnya, sehingga umumnya hanya boleh dilakukan dengan filter yang menghapus akses yang diharapkan.
Operasi pembuatan file dicatat ketika file dibuat atau ditimpa. Kejadian ini berguna untuk memantau lokasi autostart, seperti folder Startup, serta direktori sementara dan unduh, yang merupakan tempat umum penurunan malware selama infeksi awal.
Kunci registri dan nilai membuat dan menghapus peta operasi ke jenis peristiwa ini, yang dapat berguna untuk memantau perubahan pada lokasi autostart Registri, atau modifikasi registri malware tertentu.
Sysmon menggunakan versi singkat nama kunci akar Registri, dengan pemetaan berikut:
Nama kunci | Singkatan |
---|---|
HKEY_LOCAL_MACHINE |
HKLM |
HKEY_USERS |
HKU |
HKEY_LOCAL_MACHINE\System\ControlSet00x |
HKLM\System\CurrentControlSet |
HKEY_LOCAL_MACHINE\Classes |
HKCR |
Jenis peristiwa Registri ini mengidentifikasi modifikasi nilai Registri. Peristiwa mencatat nilai yang ditulis untuk nilai Registri jenis DWORD
dan QWORD
.
Kunci registri dan peta operasi penggantian nama nilai ke jenis peristiwa ini, merekam nama baru kunci atau nilai yang diganti namanya.
Kejadian ini mencatat ketika aliran file bernama dibuat, dan menghasilkan peristiwa yang mencatat hash konten file tempat aliran ditetapkan (aliran yang tidak disebutkan namanya), serta konten aliran bernama. Ada varian malware yang menjatuhkan pengaturan executable atau konfigurasi mereka melalui unduhan browser, dan kejadian ini bertujuan untuk menangkapnya berdasarkan browser yang melampirkan Zone.Identifier
aliran "tanda web".
Kejadian ini mencatat perubahan dalam konfigurasi Sysmon - misalnya saat aturan pemfilteran diperbarui.
Kejadian ini menghasilkan ketika pipa bernama dibuat. Malware sering menggunakan pipa bernama untuk komunikasi antarproseksi.
Kejadian ini mencatat ketika koneksi pipa bernama dibuat antara klien dan server.
Ketika filter peristiwa WMI terdaftar, yang merupakan metode yang digunakan oleh malware untuk dijalankan, peristiwa ini mencatat namespace layanan WMI, nama filter, dan ekspresi filter.
Kejadian ini mencatat pendaftaran konsumen WMI, mencatat nama konsumen, log, dan tujuan.
Saat konsumen mengikat ke filter, peristiwa ini mencatat nama konsumen dan jalur filter.
Kejadian ini dihasilkan ketika proses menjalankan kueri DNS, baik hasilnya berhasil atau gagal, di-cache atau tidak. Telemetri untuk kejadian ini ditambahkan untuk Windows 8.1 sehingga tidak tersedia pada Windows 7 dan yang lebih lama.
File telah dihapus. Selain itu untuk mencatat peristiwa, file yang dihapus juga disimpan di ArchiveDirectory
(yang secara C:\Sysmon
default). Dalam kondisi operasi normal, direktori ini mungkin tumbuh ke ukuran yang tidak masuk akal - lihat ID peristiwa 26: FileDeleteDetected
untuk perilaku serupa tetapi tanpa menyimpan file yang dihapus.
Kejadian ini dihasilkan ketika isi papan klip sistem berubah.
Kejadian ini dihasilkan ketika teknik persembunyian proses seperti "berongga" atau "herpaderp" sedang terdeteksi.
File telah dihapus.
Kejadian ini dihasilkan ketika Sysmon mendeteksi dan memblokir pembuatan file yang dapat dieksekusi (format PE).
Kejadian ini dihasilkan ketika Sysmon mendeteksi dan memblokir penghancur file dari alat seperti SDelete.
Kejadian ini dihasilkan ketika Sysmon mendeteksi pembuatan file baru yang dapat dieksekusi (format PE).
Kejadian ini dihasilkan ketika terjadi kesalahan dalam Sysmon. Mereka dapat terjadi jika sistem berada di bawah beban berat dan tugas tertentu tidak dapat dilakukan atau bug ada di layanan Sysmon, atau bahkan jika kondisi keamanan dan integritas tertentu tidak terpenuhi. Anda dapat melaporkan bug apa pun di forum Sysinternals atau melalui Twitter (@markrussinovich).
File konfigurasi dapat ditentukan setelah sakelar konfigurasi -i (penginstalan) atau -c (penginstalan). Mereka mempermudah penyebaran konfigurasi prasetel dan memfilter peristiwa yang diambil.
File xml konfigurasi sederhana terlihat seperti ini:
<Sysmon schemaversion="4.82">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<!-- Do not log process termination -->
<ProcessTerminate onmatch="include" />
<!-- Log network connection if the destination port equal 443 -->
<!-- or 80, and process isn't InternetExplorer -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</NetworkConnect>
</EventFiltering>
</Sysmon>
File konfigurasi berisi atribut skemaversion pada tag Sysmon. Versi ini independen dari versi biner Sysmon dan memungkinkan penguraian file konfigurasi yang lebih lama. Anda bisa mendapatkan versi skema saat ini dengan menggunakan baris perintah "-? config
". Entri konfigurasi berada tepat di Sysmon
bawah tag dan filter berada di EventFiltering
bawah tag.
Entri konfigurasi mirip dengan sakelar baris perintah dan menyertakan yang berikut ini
Entri konfigurasi mencakup yang berikut ini:
Entri | Nilai | Deskripsi |
---|---|---|
ArchiveDirectory | String | Nama direktori di akar volume tempat file salin-saat-hapus dipindahkan. Direktori dilindungi dengan ACL Sistem (Anda dapat menggunakan PsExec dari Sysinternals untuk mengakses direktori menggunakan psexec -sid cmd ). Default: Sysmon |
CheckRevocation | Boolean | Mengontrol pemeriksaan pencabutan tanda tangan. Default: True |
CopyOnDeletePE | Boolean | Mempertahankan file gambar yang dapat dieksekusi yang dihapus. Default: False |
CopyOnDeleteSIDs | String | Daftar SID akun yang dipisahkan koma yang penghapusan filenya akan dipertahankan. |
CopyOnDeleteExtensions | String | Ekstensi untuk file yang dipertahankan saat dihapus. |
CopyOnDeleteProcesses | String | Nama proses yang penghapusan filenya akan dipertahankan. |
DnsLookup | Boolean | Mengontrol pencarian DNS terbalik. Default: True |
DriverName | String | Menggunakan nama yang ditentukan untuk gambar driver dan layanan. |
HashAlgorithms | String | Algoritma hash untuk mengajukan hash. Algoritma yang didukung termasuk MD5, SHA1, SHA256, IMPHASH dan * (semua). Default: None |
Sakelar baris perintah memiliki entri konfigurasi yang dijelaskan dalam output penggunaan Sysmon. Parameter bersifat opsional berdasarkan tag. Jika sakelar baris perintah juga mengaktifkan peristiwa, sakelar tersebut perlu dikonfigurasi melalui tag filternya. Anda dapat menentukan sakelar -s
agar Sysmon mencetak skema konfigurasi lengkap, termasuk tag peristiwa serta nama dan jenis bidang untuk setiap peristiwa. Misalnya, berikut adalah skema untuk RawAccessRead
jenis peristiwa:
<event name="SYSMON_RAWACCESS_READ" value="9" level="Informational "template="RawAccessRead detected" rulename="RawAccessRead" version="2">
<data name="UtcTime" inType="win:UnicodeString" outType="xs:string"/>
<data name="ProcessGuid" inType="win:GUID"/>
<data name="ProcessId" inType="win:UInt32" outType="win:PID"/>
<data name="Image" inType="win:UnicodeString" outType="xs:string"/>
<data name="Device" inType="win:UnicodeString" outType="xs:string"/>
</event>
Pemfilteran peristiwa memungkinkan Anda memfilter peristiwa yang dihasilkan. Dalam banyak kasus, peristiwa bisa berisik dan mengumpulkan semuanya tidak mungkin terjadi. Misalnya, Anda mungkin tertarik pada koneksi jaringan hanya untuk proses tertentu, tetapi tidak semuanya. Anda dapat memfilter output pada host yang mengurangi data untuk dikumpulkan.
Setiap peristiwa memiliki tag filternya sendiri di bawah simpul EventFiltering dalam file konfigurasi:
ID | Tag | Kejadian |
---|---|---|
1 | ProcessCreate | Proses Buat |
2 | FileCreateTime | Waktu pembuatan file |
3 | NetworkConnect | Koneksi jaringan terdeteksi |
4 | n/a | Perubahan status layanan Sysmon (tidak dapat difilter) |
5 | ProcessTerminate | Proses dihentikan |
6 | DriverLoad | Driver Dimuat |
7 | ImageLoad | Gambar dimuat |
8 | CreateRemoteThread | CreateRemoteThread terdeteksi |
9 | RawAccessRead | RawAccessRead terdeteksi |
10 | ProcessAccess | Proses diakses |
11 | FileBuat | File dibuat |
12 | RegistryEvent | Objek registri ditambahkan atau dihapus |
13 | RegistryEvent | Kumpulan nilai registri |
14 | RegistryEvent | Objek registri diganti namanya |
15 | FileCreateStreamHash | Aliran file dibuat |
16 | n/a | Perubahan konfigurasi Sysmon (tidak dapat difilter) |
17 | PipeEvent | Pipa bernama dibuat |
18 | PipeEvent | Pipa bernama tersambung |
19 | WmiEvent | Filter WMI |
20 | WmiEvent | Konsumen WMI |
21 | WmiEvent | Filter konsumen WMI |
22 | DNSQuery | Kueri DNS |
23 | FileDelete | Penghapusan File diarsipkan |
24 | ClipboardChange | Konten baru di clipboard |
25 | ProcessTampering | Proses perubahan gambar |
26 | FileDeleteDetected | Penghapusan File dicatat |
27 | FileBlockExecutable | File Block Executable |
28 | FileBlockShredding | Penghancutan Blok File |
29 | FileExecutableDetected | File yang Dapat Dieksekusi Terdeteksi |
Anda juga dapat menemukan tag ini di penampil peristiwa pada nama tugas.
Filter onmatch
diterapkan jika peristiwa cocok. Ini dapat diubah dengan onmatch
atribut untuk tag filter. Jika nilainya adalah "include"
, itu berarti hanya peristiwa yang cocok yang disertakan. Jika diatur ke "exclude"
, peristiwa akan disertakan kecuali jika aturan cocok. Anda dapat menentukan kumpulan filter sertakan dan set filter pengecualian untuk setiap ID peristiwa, di mana pengecualian kecocokan diutamakan.
Setiap filter dapat menyertakan nol aturan atau lebih. Setiap tag di bawah tag filter adalah nama bidang dari peristiwa. Aturan yang menentukan kondisi untuk nama bidang yang sama berulah sebagai kondisi OR, dan yang menentukan nama bidang yang berbeda berulah sebagai kondisi AND. Aturan bidang juga dapat menggunakan kondisi untuk mencocokkan nilai. Kondisinya adalah sebagai berikut (semuanya tidak peka huruf besar/kecil):
Kondisi | Keterangan |
---|---|
is | Default, nilai sama dengan |
adalah | Bidang adalah salah satu nilai yang dibatasi ; |
tidak | Nilai berbeda |
mengandung | Bidang berisi nilai ini |
berisi apa pun | Bidang berisi salah satu nilai yang dibatasi ; |
berisi semua | Bidang berisi semua nilai yang dibatasi ; |
Termasuk | Bidang tidak berisi nilai ini |
mengecualikan apa pun | Bidang tidak berisi satu atau beberapa nilai yang dibatasi ; |
mengecualikan semua | Bidang tidak berisi nilai yang dibatasi ; |
mulai dengan | Bidang dimulai dengan nilai ini |
diakhir dengan | Bidang berakhir dengan nilai ini |
tidak dimulai dengan | Bidang tidak dimulai dengan nilai ini |
tidak diakhir dengan | Bidang tidak diakhir dengan nilai ini |
Kurang | Perbandingan leksikografis kurang dari nol |
lebih | Perbandingan leksikografis lebih dari nol |
gambar | Cocokkan jalur gambar (jalur lengkap atau hanya nama gambar). Misalnya: lsass.exe akan cocok c:\windows\system32\lsass.exe |
Anda dapat menggunakan kondisi yang berbeda dengan menentukannya sebagai atribut. Ini mengecualikan aktivitas jaringan dari proses dengan iexplore.exe di jalurnya:
<NetworkConnect onmatch="exclude">
<Image condition="contains">iexplore.exe</Image>
</NetworkConnect>
Agar Sysmon melaporkan kecocokan aturan mana yang mengakibatkan peristiwa dicatat, tambahkan nama ke aturan:
<NetworkConnect onmatch="exclude">
<Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>
Anda dapat menggunakan aturan sertakan dan kecualikan untuk tag yang sama, di mana mengecualikan penimpaan aturan menyertakan aturan. Dalam aturan, kondisi filter memiliki perilaku ATAU.
Dalam konfigurasi sampel yang ditunjukkan sebelumnya, filter jaringan menggunakan aturan serta sertakan dan kecualikan untuk mengambil aktivitas ke port 80 dan 443 oleh semua proses kecuali yang ada iexplore.exe
dalam namanya.
Dimungkinkan juga untuk mengambil alih cara aturan digabungkan dengan menggunakan grup aturan yang memungkinkan jenis gabungan aturan untuk satu atau beberapa peristiwa diatur secara eksplisit ke AND atau OR.
Contoh berikut menunjukkan penggunaan ini. Dalam grup aturan pertama, peristiwa pembuatan proses akan dihasilkan ketika timeout.exe
dijalankan hanya dengan argumen 100
baris perintah , tetapi peristiwa penghentian proses akan dihasilkan untuk penghentian ping.exe
dan timeout.exe
.
<EventFiltering>
<RuleGroup name="group 1" groupRelation="and">
<ProcessCreate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<CommandLine condition="contains">100</CommandLine>
</ProcessCreate>
</RuleGroup>
<RuleGroup groupRelation="or">
<ProcessTerminate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<Image condition="contains">ping.exe</Image>
</ProcessTerminate>
</RuleGroup>
<ImageLoad onmatch="include"/>
</EventFiltering>
Unduh Sysmon (4.6 MB)
Berjalan pada:
- Klien: Windows 10 dan yang lebih tinggi.
- Server: Windows Server 2016 dan yang lebih tinggi.