Hayabusa adalah generator garis waktu forensik cepat log peristiwa Windows dan alat berburu ancaman yang dibuat oleh grup Keamanan Yamato di Jepang. Hayabusa berarti "elang peregrine" dalam bahasa Jepang dan terpilih karena elang peregrine adalah hewan tercepat di dunia, hebat dalam berburu dan sangat mudah dilatih. Itu ditulis dalam Rust dan mendukung multi-threading agar secepat mungkin. Kami telah menyediakan alat untuk mengubah aturan Sigma ke dalam format aturan Hayabusa. Aturan deteksi Hayabusa yang kompatibel dengan Sigma ditulis dalam YML agar dapat dengan mudah disesuaikan dan diperluas. Hayabusa dapat dijalankan pada sistem tunggal yang berjalan untuk analisis langsung, dengan mengumpulkan log dari satu atau beberapa sistem untuk analisis offline, atau dengan menjalankan artefak Hayabusa dengan Velociraptor untuk perburuan ancaman dan respons insiden di seluruh perusahaan. Outputnya akan digabungkan ke dalam satu timeline CSV untuk kemudahan analisis di LibreOffice, Timeline Explorer, Elastic Stack, Timesketch, dll...
evtx
yang lebih terawat.-T
)-H
)-M
Output Multiline)computer-metrics
computer-metrics
computer-metrics
eid-metrics
eid-metrics
eid-metrics
eid-metrics
logon-summary
logon-summary
logon-summary
pivot-keywords-list
pivot-keywords-list
pivot-keywords-list
search
search
search
file konfigurasi perintahcsv-timeline
csv-timeline
csv-timeline
json-timeline
json-timeline
dan file konfigurasilevel-tuning
level-tuning
level-tuning
list-profiles
set-default-profile
set-default-profile
update-rules
update-rules
minimal
standard
verbose
all-field-info
all-field-info-verbose
super-verbose
timesketch-minimal
timesketch-verbose
Hayabusa saat ini memiliki lebih dari 4000 aturan Sigma dan lebih dari 170 aturan deteksi bawaan Hayabusa dan lebih banyak aturan yang ditambahkan secara berkala. Ini dapat digunakan untuk perburuan ancaman proaktif di seluruh perusahaan serta DFIR (Digital Forensics and Incident Response) secara gratis dengan artefak Hayabusa Velociraptor. Dengan menggabungkan dua alat sumber terbuka ini, pada dasarnya Anda dapat mereproduksi SIEM secara surut ketika tidak ada pengaturan SIEM di lingkungan. Anda dapat mempelajari cara melakukan ini dengan menonton panduan Velociraptor Eric Capuano di sini.
Analisis log peristiwa Windows secara tradisional merupakan proses yang sangat panjang dan membosankan karena log peristiwa Windows 1) dalam format data yang sulit dianalisis dan 2) sebagian besar data berupa gangguan dan tidak berguna untuk penyelidikan. Tujuan Hayabusa adalah untuk mengekstrak hanya data yang berguna dan menyajikannya dalam format yang sesingkat mungkin dan mudah dibaca yang dapat digunakan tidak hanya oleh analis yang terlatih secara profesional tetapi juga administrator sistem Windows mana pun. Hayabusa berharap analis dapat menyelesaikan 80% pekerjaannya dalam 20% waktu jika dibandingkan dengan analisis log peristiwa Windows tradisional.
-T
) -H
) -M
Output Multiline) Anda dapat mempelajari cara menganalisis garis waktu CSV di Excel dan Timeline Explorer di sini.
Anda dapat mempelajari cara mengimpor file CSV ke Elastic Stack di sini.
Anda dapat mempelajari cara mengimpor file CSV ke Timesketch di sini.
Anda dapat mempelajari cara menganalisis hasil berformat JSON dengan jq
di sini.
|equalsfield
dan |endswithfield
.0xc0000234
-> ACCOUNT LOCKED
)Silakan unduh Hayabusa versi stabil terbaru dengan binari yang telah dikompilasi atau kompilasi kode sumber dari halaman Rilis.
Kami menyediakan biner untuk arsitektur berikut:
hayabusa-xxx-lin-aarch64-gnu
)hayabusa-xxx-lin-x64-gnu
)hayabusa-xxx-lin-x64-musl
)hayabusa-xxx-mac-aarch64
)hayabusa-xxx-mac-x64
)hayabusa-xxx-win-aarch64.exe
)hayabusa-xxx-win-x64.exe
)hayabusa-xxx-win-x86.exe
)Karena alasan tertentu biner Linux ARM MUSL tidak berjalan dengan baik sehingga kami tidak menyediakan biner tersebut. Hal ini berada di luar kendali kami, jadi kami berencana untuk menyediakannya di masa mendatang setelah masalah tersebut diperbaiki.
Mulai v2.18.0, kami menyediakan paket Windows khusus yang menggunakan aturan berkode XOR yang disediakan dalam satu file serta semua file konfigurasi digabungkan menjadi satu file (dihosting di repositori aturan berkode hayabusa). Cukup unduh paket zip dengan live-response
di namanya. File zip hanya menyertakan tiga file: biner Hayabusa, file aturan yang dikodekan XOR, dan file konfigurasi. Tujuan dari paket respons langsung ini adalah ketika menjalankan Hayabusa di titik akhir klien, kami ingin memastikan bahwa pemindai anti-virus seperti Windows Defender tidak memberikan kesalahan positif pada file aturan .yml
. Selain itu, kami ingin meminimalkan jumlah file yang ditulis ke sistem sehingga artefak forensik seperti Jurnal USN tidak tertimpa.
Anda dapat git clone
repositori dengan perintah berikut dan mengkompilasi biner dari kode sumber:
Peringatan: Cabang utama repositori adalah untuk tujuan pengembangan sehingga Anda mungkin dapat mengakses fitur-fitur baru yang belum dirilis secara resmi, namun mungkin ada bug jadi anggap saja tidak stabil.
git clone https://github.com/Yamato-Security/hayabusa.git --recursive
Catatan: Jika Anda lupa menggunakan opsi --recursive, folder
rules
, yang dikelola sebagai submodul git, tidak akan dikloning.
Anda dapat menyinkronkan folder rules
dan mendapatkan aturan Hayabusa terbaru dengan git pull --recurse-submodules
atau gunakan perintah berikut:
hayabusa.exe update-rules
Jika pembaruan gagal, Anda mungkin perlu mengganti nama folder rules
dan coba lagi.
Perhatian: Saat memperbarui, file aturan dan konfigurasi di folder
rules
diganti dengan file aturan dan konfigurasi terbaru di repositori hayabusa-rules. Setiap perubahan yang Anda buat pada file yang ada akan ditimpa, jadi kami menyarankan Anda membuat cadangan file apa pun yang Anda edit sebelum memperbarui. Jika Anda melakukan penyetelan level denganlevel-tuning
, harap sesuaikan ulang file aturan Anda setelah setiap pembaruan. Jika Anda menambahkan aturan baru di dalam folderrules
, aturan tersebut tidak akan ditimpa atau dihapus saat memperbarui.
Jika Anda telah menginstal Rust, Anda dapat mengkompilasi dari sumber dengan perintah berikut:
Catatan: Untuk mengkompilasi, Anda biasanya memerlukan Rust versi terbaru.
cargo build --release
Anda dapat mengunduh versi tidak stabil terbaru dari cabang utama atau versi stabil terbaru dari halaman Rilis.
Pastikan untuk memperbarui Rust secara berkala dengan:
rustup update stable
Biner yang dikompilasi akan dikeluarkan di folder ./target/release
.
Anda dapat memperbarui ke peti Rust terbaru sebelum mengompilasi:
cargo update
Harap beri tahu kami jika ada yang rusak setelah Anda memperbarui.
Anda dapat membuat biner 32-bit pada sistem Windows 64-bit dengan yang berikut ini:
rustup install stable-i686-pc-windows-msvc
rustup target add i686-pc-windows-msvc
rustup run stable-i686-pc-windows-msvc cargo build --release
Peringatan: Pastikan untuk menjalankan
rustup install stable-i686-pc-windows-msvc
setiap kali ada versi stabil Rust yang baru karenarustup update stable
tidak akan memperbarui kompiler untuk kompilasi silang dan Anda mungkin menerima kesalahan build.
Jika Anda menerima kesalahan kompilasi tentang openssl, Anda perlu menginstal Homebrew dan kemudian menginstal paket berikut:
brew install pkg-config
brew install openssl
Jika Anda menerima kesalahan kompilasi tentang openssl, Anda perlu menginstal paket berikut.
Distro berbasis Ubuntu:
sudo apt install libssl-dev
Distro berbasis Fedora:
sudo yum install openssl-devel
Pada OS Linux, instal terlebih dahulu targetnya.
rustup install stable-x86_64-unknown-linux-musl
rustup target add x86_64-unknown-linux-musl
Kompilasi dengan:
cargo build --release --target=x86_64-unknown-linux-musl
Peringatan: Pastikan untuk menjalankan
rustup install stable-x86_64-unknown-linux-musl
setiap kali ada versi stabil Rust yang baru karenarustup update stable
tidak akan memperbarui kompiler untuk kompilasi silang dan Anda mungkin menerima kesalahan build.
Biner MUSL akan dibuat di direktori ./target/x86_64-unknown-linux-musl/release/
. Biner MUSL sekitar 15% lebih lambat dibandingkan biner GNU, namun lebih portabel di berbagai versi dan distribusi linux.
Anda mungkin menerima peringatan dari produk anti-virus atau EDR saat mencoba menjalankan hayabusa atau bahkan saat mengunduh aturan .yml
karena akan ada kata kunci seperti mimikatz
dan perintah PowerShell yang mencurigakan di tanda tangan deteksi. Ini adalah kesalahan positif sehingga perlu mengonfigurasi pengecualian di produk keamanan Anda agar hayabusa dapat berjalan. Jika Anda khawatir tentang malware atau serangan rantai pasokan, silakan periksa kode sumber hayabusa dan kompilasi sendiri binarinya.
Anda mungkin mengalami runtime yang lambat terutama saat pertama kali dijalankan setelah reboot karena perlindungan real-time dari Windows Defender. Anda dapat menghindari hal ini dengan menonaktifkan sementara perlindungan real-time atau menambahkan pengecualian ke direktori runtime hayabusa. (Harap pertimbangkan risiko keamanan sebelum melakukan ini.)
Di Command/PowerShell Prompt atau Terminal Windows, jalankan saja biner Windows 32-bit atau 64-bit yang sesuai.
Saat menggunakan Command atau PowerShell prompt bawaan di Windows, Anda mungkin menerima pesan kesalahan bahwa Hayabusa tidak dapat memuat file .evtx apa pun jika ada ruang di jalur file atau direktori Anda. Untuk memuat file .evtx dengan benar, pastikan untuk melakukan hal berikut:
Pertama-tama Anda harus membuat biner dapat dieksekusi.
chmod +x ./hayabusa
Kemudian jalankan dari direktori root Hayabusa:
./hayabusa
Dari Terminal atau iTerm2, Anda harus membuat binernya dapat dieksekusi terlebih dahulu.
chmod +x ./hayabusa
Lalu, coba jalankan dari direktori root Hayabusa:
./hayabusa
Pada macOS versi terbaru, Anda mungkin menerima kesalahan keamanan berikut saat mencoba menjalankannya:
Klik "Batal" dan kemudian dari System Preferences, buka "Keamanan & Privasi" dan dari tab Umum, klik "Izinkan".
Setelah itu coba jalankan kembali.
./hayabusa
Akan muncul peringatan berikut, jadi silakan klik "Buka".
Anda sekarang seharusnya dapat menjalankan hayabusa.
computer-metrics
: Cetak jumlah kejadian berdasarkan nama komputer.eid-metrics
: Cetak jumlah dan persentase acara berdasarkan ID Acara.logon-summary
: Cetak ringkasan acara logon.pivot-keywords-list
: Cetak daftar kata kunci mencurigakan untuk dijadikan pivot.search
: Cari semua acara berdasarkan kata kunci atau ekspresi reguler csv-timeline
: Menyimpan timeline dalam format CSV.json-timeline
: Simpan timeline dalam format JSON/JSONL.level-tuning
: Menyesuaikan level
peringatan secara khusus.list-profiles
: Daftar profil keluaran yang tersedia.set-default-profile
: Mengubah profil default.update-rules
: Sinkronkan aturan dengan aturan terbaru di repositori GitHub hayabusa-rules. help
: Cetak pesan ini atau bantuan dari subperintah yang diberikanlist-contributors
: Cetak daftar kontributorcomputer-metrics
Anda dapat menggunakan perintah computer-metrics
untuk memeriksa berapa banyak kejadian yang ada menurut setiap komputer yang ditentukan di bidang
. Sadarilah bahwa Anda tidak dapat sepenuhnya mengandalkan bidang Computer
untuk memisahkan peristiwa berdasarkan komputer aslinya. Windows 11 terkadang menggunakan nama Computer
yang sangat berbeda saat menyimpan ke log peristiwa. Selain itu, Windows 10 terkadang mencatat nama Computer
dalam huruf kecil semua. Perintah ini tidak menggunakan aturan deteksi apa pun sehingga akan menganalisis semua kejadian. Ini adalah perintah yang baik untuk dijalankan guna melihat dengan cepat komputer mana yang memiliki log paling banyak. Dengan informasi ini, Anda kemudian dapat menggunakan opsi --include-computer
atau --exclude-computer
saat membuat garis waktu untuk membuat pembuatan garis waktu lebih efisien dengan membuat beberapa garis waktu menurut komputer atau mengecualikan peristiwa dari komputer tertentu.
Usage: computer-metrics [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-o, --output Save the results in CSV format (ex: computer-metrics.csv)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
computer-metrics
hayabusa.exe computer-metrics -d ../logs
hayabusa.exe computer-metrics -d ../logs -o computer-metrics.csv
computer-metrics
eid-metrics
Anda dapat menggunakan perintah eid-metrics
untuk mencetak jumlah total dan persentase ID peristiwa (bidang
) yang dipisahkan berdasarkan saluran. Perintah ini tidak menggunakan aturan deteksi apa pun sehingga akan memindai semua kejadian.
Usage: eid-metrics [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-o, --output Save the Metrics in CSV format (ex: metrics.csv)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
eid-metrics
hayabusa.exe eid-metrics -f Security.evtx
hayabusa.exe eid-metrics -d ../logs
hayabusa.exe eid-metrics -f Security.evtx -o eid-metrics.csv
eid-metrics
Saluran, ID acara, dan judul acara ditentukan di rules/config/channel_eid_info.txt
.
Contoh:
Channel,EventID,EventTitle
Microsoft-Windows-Sysmon/Operational,1,Process Creation.
Microsoft-Windows-Sysmon/Operational,2,File Creation Timestamp Changed. (Possible Timestomping)
Microsoft-Windows-Sysmon/Operational,3,Network Connection.
Microsoft-Windows-Sysmon/Operational,4,Sysmon Service State Changed.
eid-metrics
logon-summary
Anda dapat menggunakan perintah logon-summary
untuk menampilkan ringkasan informasi logon (nama pengguna logon dan jumlah logon yang berhasil dan gagal). Anda dapat menampilkan informasi masuk untuk satu file evtx dengan -f
atau beberapa file evtx dengan opsi -d
.
Usage: logon-summary [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-o, --output Save the logon summary to two CSV files (ex: -o logon-summary)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
logon-summary
hayabusa.exe logon-summary -f Security.evtx
hayabusa.exe logon-summary -d ../logs -o logon-summary.csv
logon-summary
pivot-keywords-list
Anda dapat menggunakan perintah pivot-keywords-list
untuk membuat daftar kata kunci pivot unik untuk dengan cepat mengidentifikasi pengguna abnormal, nama host, proses, dll... serta menghubungkan peristiwa.
Penting: secara default, hayabusa akan mengembalikan hasil dari semua peristiwa (informasional dan lebih tinggi) jadi kami sangat menyarankan untuk menggabungkan perintah pivot-keywords-list
dengan opsi -m, --min-level
. Misalnya, mulailah dengan hanya membuat kata kunci dari lansiran critical
dengan -m critical
lalu lanjutkan dengan -m high
, -m medium
, dll... Kemungkinan besar akan ada kata kunci umum dalam hasil Anda yang akan cocok dengan banyak kejadian normal, jadi setelah memeriksa hasilnya secara manual dan membuat daftar kata kunci unik dalam satu file, Anda kemudian dapat membuat garis waktu aktivitas mencurigakan yang dipersempit dengan perintah seperti grep -f keywords.txt timeline.csv
.
Usage: pivot-keywords-list [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-o, --output Save pivot words to separate files (ex: PivotKeywords)
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
pivot-keywords-list
hayabusa.exe pivot-keywords-list -d ../logs -m critical
keywords-Ip Addresses.txt
, keywords-Users.txt
, dll...): hayabusa.exe pivot-keywords-list -d ../logs -m critical -o keywords`
pivot-keywords-list
Anda dapat menyesuaikan kata kunci apa yang ingin Anda cari dengan mengedit ./rules/config/pivot_keywords.txt
. Halaman ini adalah pengaturan default.
Formatnya adalah KeywordName.FieldName
. Misalnya, saat membuat daftar Users
, hayabusa akan mencantumkan semua nilai di kolom SubjectUserName
, TargetUserName
dan User
.
search
Perintah search
akan memungkinkan Anda mencari kata kunci di semua acara. (Bukan hanya hasil deteksi Hayabusa saja.) Hal ini berguna untuk mengetahui apakah ada bukti kejadian yang tidak terdeteksi oleh Hayabusa.
Usage: hayabusa.exe search <--keywords "" OR --regex ""> [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
Filtering:
-a, --and-logic Search keywords with AND logic (default: OR)
-F, --filter Filter by specific field(s)
-i, --ignore-case Case-insensitive keyword search
-k, --keyword Search by keyword(s)
-r, --regex Search by regular expression
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
Output:
-J, --JSON-output Save the search results in JSON format (ex: -J -o results.json)
-L, --JSONL-output Save the search results in JSONL format (ex: -L -o results.jsonl)
-M, --multiline Output event field information in multiple rows for CSV output
-o, --output Save the search results in CSV format (ex: search.csv)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
search
../hayabusa-sample-evtx
untuk kata kunci mimikatz
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz"
Catatan: Kata kunci akan cocok jika
mimikatz
ditemukan di mana pun dalam data. Ini bukan pencocokan persis.
../hayabusa-sample-evtx
untuk kata kunci mimikatz
atau kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -k "kali"
../hayabusa-sample-evtx
untuk kata kunci mimikatz
dan abaikan kasus: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -i
../hayabusa-sample-evtx
untuk alamat IP menggunakan ekspresi reguler: hayabusa.exe search -d ../hayabusa-sample-evtx -r "(?:[0-9]{1,3}.){3}[0-9]{1,3}"
../hayabusa-sample-evtx
dan tampilkan semua peristiwa yang bidang WorkstationName
nya adalah kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -r ".*" -F WorkstationName:"kali"
Catatan:
.*
adalah ekspresi reguler yang cocok di setiap peristiwa.
search
file konfigurasi perintah ./rules/config/channel_abbreviations.txt
: Pemetaan nama saluran dan singkatannya.
Perintah csv-timeline
dan json-timeline
sekarang memiliki wizard pemindaian yang diaktifkan secara default. Hal ini dimaksudkan untuk membantu pengguna dengan mudah memilih aturan deteksi mana yang ingin diaktifkan sesuai dengan kebutuhan dan preferensi mereka. Kumpulan aturan deteksi yang dimuat didasarkan pada daftar resmi di proyek Sigma. Detailnya dijelaskan dalam postingan blog ini. Anda dapat dengan mudah mematikan wizard dan menggunakan Hayabusa dengan cara tradisional dengan menambahkan opsi -w, --no-wizard
.
Kumpulan aturan core
memungkinkan aturan yang memiliki status test
atau stable
dan tingkat high
atau critical
. Ini adalah aturan berkualitas tinggi yang memiliki keyakinan dan relevansi tinggi dan tidak boleh menghasilkan banyak kesalahan positif. Status aturannya adalah test
atau stable
yang berarti tidak ada positif palsu yang dilaporkan selama lebih dari 6 bulan. Aturan akan disesuaikan dengan teknik penyerang, aktivitas mencurigakan umum, atau perilaku jahat. Hal ini sama dengan menggunakan opsi --exclude-status deprecated,unsupported,experimental --min-level high
.
Kumpulan aturan core+
memungkinkan aturan yang memiliki status test
atau stable
dan tingkat medium
atau lebih tinggi. aturan medium
paling sering memerlukan penyesuaian tambahan karena aplikasi tertentu, perilaku pengguna yang sah, atau skrip suatu organisasi mungkin cocok. Hal ini sama dengan menggunakan opsi --exclude-status deprecated,unsupported,experimental --min-level medium
.
Kumpulan aturan core++
memungkinkan aturan yang memiliki status experimental
, test
, atau stable
, dan tingkat medium
atau lebih tinggi. Aturan-aturan ini sangat mutakhir. Mereka divalidasi terhadap file evtx dasar yang tersedia di proyek SigmaHQ dan ditinjau oleh beberapa insinyur pendeteksi. Selain itu, mereka belum teruji pada awalnya. Gunakan ini jika Anda ingin dapat mendeteksi ancaman sedini mungkin dengan mengorbankan pengelolaan ambang batas positif palsu yang lebih tinggi. Hal ini sama dengan menggunakan opsi --exclude-status deprecated,unsupported --min-level medium
.
Kumpulan aturan Emerging Threats (ET)
mengaktifkan aturan yang memiliki tag detection.emerging_threats
. Aturan-aturan ini menyasar ancaman-ancaman spesifik dan khususnya berguna untuk ancaman-ancaman yang ada saat ini dimana belum banyak informasi yang tersedia. Aturan-aturan ini tidak boleh menimbulkan banyak kesalahan positif namun relevansinya akan berkurang seiring berjalannya waktu. Jika aturan ini tidak diaktifkan, hal ini sama dengan menggunakan opsi --exclude-tag detection.emerging_threats
. Saat menjalankan Hayabusa secara tradisional tanpa wizard, aturan ini akan disertakan secara default.
Kumpulan aturan Threat Hunting (TH)
mengaktifkan aturan yang memiliki tag detection.threat_hunting
. Aturan ini mungkin mendeteksi aktivitas berbahaya yang tidak diketahui, namun biasanya akan menghasilkan lebih banyak kesalahan positif. Jika aturan ini tidak diaktifkan, hal ini sama dengan menggunakan opsi --exclude-tag detection.threat_hunting
. Saat menjalankan Hayabusa secara tradisional tanpa wizard, aturan ini akan disertakan secara default.
Pada Hayabusa v2.16.0, kami mengaktifkan filter berbasis Saluran saat memuat file .evtx
dan aturan .yml
. Tujuannya adalah membuat pemindaian seefisien mungkin dengan hanya memuat apa yang diperlukan. Meskipun mungkin terdapat beberapa penyedia dalam satu log peristiwa, tidak umum memiliki banyak saluran dalam satu file evtx. (Satu-satunya saat kita melihat hal ini adalah ketika seseorang secara artifisial menggabungkan dua file evtx yang berbeda untuk proyek sampel-evtx.) Kita dapat menggunakan ini untuk keuntungan kita dengan terlebih dahulu memeriksa bidang Channel
di catatan pertama dari setiap file .evtx
yang ditentukan untuk dipindai. Kami juga memeriksa aturan .yml
mana yang menggunakan saluran apa yang ditentukan di bidang Channel
pada aturan tersebut. Dengan dua daftar ini, kami hanya memuat aturan yang menggunakan saluran yang sebenarnya ada di dalam file .evtx
.
Jadi misalnya jika pengguna ingin memindai Security.evtx
, hanya aturan yang menentukan Channel: Security
yang akan digunakan. Tidak ada gunanya memuat aturan deteksi lainnya, misalnya aturan yang hanya mencari kejadian di log Application
, dll... Perhatikan bahwa bidang saluran (Mis: Channel: Security
) tidak didefinisikan secara eksplisit di dalam aturan Sigma asli. Untuk aturan Sigma, bidang ID saluran dan peristiwa secara implisit ditentukan dengan bidang service
dan category
di bawah logsource
. (Contoh: service: security
) Saat mengkurasi aturan Sigma di repositori hayabusa-rules, kami menghapus abstrak bidang logsource
dan secara eksplisit menentukan bidang saluran dan ID peristiwa. Kami menjelaskan bagaimana dan mengapa kami melakukan ini secara mendalam di sini.
Saat ini, hanya ada dua aturan deteksi yang tidak menentukan Channel
dan dimaksudkan untuk memindai semua file .evtx
adalah sebagai berikut:
Jika Anda ingin menggunakan kedua aturan ini dan memindai semua aturan terhadap file .evtx
yang dimuat maka Anda perlu menambahkan opsi -A, --enable-all-rules
di perintah csv-timeline
dan json-timeline
. Dalam benchmark kami, aturan pemfilteran biasanya memberikan peningkatan kecepatan 20% hingga 10x tergantung pada file apa yang sedang dipindai dan tentu saja menggunakan lebih sedikit memori.
Pemfilteran saluran juga digunakan saat memuat file .evtx
. Misalnya, jika Anda menentukan aturan yang mencari peristiwa dengan saluran Security
, maka tidak ada gunanya memuat file .evtx
yang bukan dari log Security
. Dalam tolok ukur kami, ini memberikan keuntungan kecepatan sekitar 10% dengan pemindaian normal dan peningkatan kinerja hingga 60%+ saat memindai dengan satu aturan. Jika Anda yakin bahwa beberapa saluran digunakan di dalam satu file .evtx
, misalnya seseorang menggunakan alat untuk menggabungkan beberapa file .evtx
menjadi satu, maka Anda menonaktifkan pemfilteran ini dengan -a, --scan-all-evtx-files
opsi dalam perintah csv-timeline
dan json-timeline
.
Catatan: Pemfilteran saluran hanya berfungsi dengan file
.evtx
dan Anda akan menerima kesalahan jika mencoba memuat log peristiwa dari file JSON dengan-J, --json-input
dan juga menentukan-A
atau-a
.
csv-timeline
Perintah csv-timeline
akan membuat timeline peristiwa forensik dalam format CSV.
Usage: csv-timeline [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-s, --sort-events Sort events before saving the file. (warning: this uses much more memory!)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules Specify a custom rule directory or file (default: ./rules)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-category Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-G, --GeoIP Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report Save Results Summary details to an HTML report (ex: results.html)
-M, --multiline Output event field information in multiple rows
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output Save the timeline in CSV format (ex: results.csv)
-p, --profile Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
Display Settings:
--no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
csv-timeline
standard
default: hayabusa.exe csv-timeline -f eventlog.evtx
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -p verbose
super-verbose
!): hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -o results.csv -p super-verbose
Catatan: Mengaktifkan filter EID akan mempercepat analisis sekitar 10-15% dalam pengujian kami, namun ada kemungkinan peringatan hilang.
hayabusa.exe csv-timeline -E -d .hayabusa-sample-evtx -o results.csv
-r .rules
): hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusa -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusabuiltin -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusasysmon -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .rulessigma -o results.csv -w
status
ditandai sebagai deprecated
) dan aturan berisik (aturan yang ID aturannya tercantum di .rulesconfignoisy_rules.txt
):Catatan: Baru-baru ini, aturan yang tidak berlaku lagi kini terletak di direktori terpisah di repositori sigma sehingga tidak disertakan lagi secara default di Hayabusa. Oleh karena itu, Anda mungkin tidak perlu mengaktifkan aturan yang tidak berlaku lagi.
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx --enable-noisy-rules --enable-deprecated-rules -o results.csv -w
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -r .ruleshayabusabuiltinSecurityLogonLogoffLogon -U -o results.csv -w
hayabusa.exe csv-timeline -l -m low
hayabusa.exe csv-timeline -d .hayabusa-sample-evtx -v
Memuat aturan:
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_run_folder.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_execution_mssql_xp_cmdshell_stored_procedure.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_squirrel_lolbin.yml
Loaded rule: rules/sigma/builtin/win_alert_mimikatz_keywords.yml
Kesalahan selama pemindaian:
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58471
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58470
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Windows-AppxPackaging%4Operational.evtx
Error: An error occurred while trying to serialize binary xml to output.
hayabusa.exe csv-timeline -d ../hayabusa-sample-evtx --RFC-3339 -o timesketch-import.csv -p timesketch -U
-Q
. Anda dapat menambahkan informasi GeoIP (organisasi ASN, kota dan negara) ke bidang SrcIP (IP sumber) dan bidang TgtIP (IP target) dengan data geolokasi GeoLite2 gratis.
Tangga:
.mmdb
dari halaman unduh dan simpan ke direktori. Nama file harus diberi nama GeoLite2-ASN.mmdb
, GeoLite2-City.mmdb
dan GeoLite2-Country.mmdb
.csv-timeline
atau json-timeline
, tambahkan opsi -G
diikuti dengan direktori dengan database MaxMind. Saat csv-timeline
digunakan, 6 kolom berikut akan ditampilkan sebagai tambahan: SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
.
Saat json-timeline
digunakan, kolom SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
yang sama akan ditambahkan ke objek Details
, namun hanya jika berisi informasi.
Ketika SrcIP
atau TgtIP
adalah localhost ( 127.0.0.1
, ::1
, dll...), SrcASN
atau TgtASN
akan dikeluarkan sebagai Local
.
Ketika SrcIP
atau TgtIP
adalah alamat IP pribadi ( 10.0.0.0/8
, fe80::/10
, dll...), SrcASN
atau TgtASN
akan ditampilkan sebagai Private
.
Nama bidang yang berisi alamat IP sumber dan target yang dicari di database GeoIP ditentukan dalam rules/config/geoip_field_mapping.yaml
. Anda dapat menambahkan ke daftar ini jika perlu. Ada juga bagian filter dalam file ini yang menentukan peristiwa apa untuk mengekstrak informasi alamat IP.
Database MaxMind Geoip diperbarui setiap 2 minggu. Anda dapat menginstal alat MaxMind geoipupdate
di sini untuk secara otomatis memperbarui database ini.
Langkah di MacOS:
brew install geoipupdate
/usr/local/etc/GeoIP.conf
: Masukkan AccountID
dan LicenseKey
Anda yang Anda buat setelah masuk ke situs web MaxMind. Pastikan garis EditionIDs
mengatakan EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
.geoipupdate
.-G /usr/local/var/GeoIP
saat Anda ingin menambahkan informasi geoip.Langkah di Windows:
geoipupdate_4.10.0_windows_amd64.zip
) dari halaman rilis.ProgramDataMaxMind/GeoIPUpdateGeoIP.conf
: Masukkan AccountID
dan LicenseKey
Anda yang Anda buat setelah masuk ke situs web MaxMind. Pastikan garis EditionIDs
mengatakan EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
.geoipupdate
. csv-timeline
./rules/config/channel_abbreviations.txt
: pemetaan nama saluran dan singkatannya.
./rules/config/default_details.txt
: File konfigurasi untuk informasi bidang default apa ( %Details%
bidang) harus dikeluarkan jika tidak ada details:
baris ditentukan dalam aturan. Ini didasarkan pada nama penyedia dan ID acara.
./rules/config/eventkey_alias.txt
: File ini memiliki pemetaan alias nama pendek untuk bidang dan nama bidang yang lebih panjang aslinya.
Contoh:
InstanceID,Event.UserData.UMDFHostDeviceArrivalBegin.InstanceId
IntegrityLevel,Event.EventData.IntegrityLevel
IpAddress,Event.EventData.IpAddress
Jika bidang tidak didefinisikan di sini, Hayabusa akan secara otomatis memeriksa di bawah Event.EventData
untuk lapangan.
./rules/config/exclude_rules.txt
: File ini memiliki daftar ID aturan yang akan dikecualikan dari penggunaan. Biasanya ini karena satu aturan telah menggantikan yang lain atau aturan tidak dapat digunakan di tempat pertama. Seperti firewall dan IDSE, alat berbasis tanda tangan akan memerlukan beberapa penyetelan agar sesuai dengan lingkungan Anda sehingga Anda mungkin perlu secara permanen atau sementara mengecualikan aturan tertentu. Anda dapat menambahkan ID aturan (Contoh: 4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6
) ke ./rules/config/exclude_rules.txt
untuk mengabaikan aturan apa pun yang tidak Anda butuhkan atau tidak dapat digunakan.
./rules/config/noisy_rules.txt
: File ini daftar ID aturan yang dinonaktifkan secara default tetapi dapat diaktifkan dengan mengaktifkan aturan bising dengan opsi -n, --enable-noisy-rules
. Aturan -aturan ini biasanya berisik secara alami atau karena positif palsu.
./rules/config/target_event_IDs.txt
: Hanya ID acara yang ditentukan dalam file ini yang akan dipindai jika filter Idul Fitri diaktifkan. Secara default, Hayabusa akan memindai semua acara, tetapi jika Anda ingin meningkatkan kinerja, silakan gunakan opsi -E, --EID-filter
. Ini biasanya menghasilkan peningkatan kecepatan 10 ~ 25%.
json-timeline
Perintah json-timeline
akan membuat garis waktu forensik acara dalam format JSON atau JSONL. Keluaran ke JSONL akan lebih cepat dan ukuran file yang lebih kecil dari JSON jadi bagus jika Anda hanya akan mengimpor hasil ke alat lain seperti elastis. JSON lebih baik jika Anda akan menganalisis hasil secara manual dengan editor teks. Output CSV baik untuk mengimpor jadwal yang lebih kecil (biasanya kurang dari 2GB) ke alat -alat seperti LibreOffice atau Timeline Explorer. JSON adalah yang terbaik untuk analisis data yang lebih rinci (termasuk file hasil yang besar) dengan alat -alat seperti jq
karena bidang Details
dipisahkan untuk analisis yang lebih mudah. (Dalam output CSV, semua bidang log peristiwa ada dalam satu kolom Details
besar yang membuat penyortiran data, dll ... lebih sulit.)
Usage: json-timeline [OPTIONS]
Input:
-d, --directory Directory of multiple .evtx files
-f, --file File path to one .evtx file
-l, --live-analysis Analyze the local C:WindowsSystem32winevtLogs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-s, --sort-events Sort events before saving the file. (warning: this uses much more memory!)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules Specify a custom rule directory or file (default: ./rules)
-c, --rules-config Specify custom rule config directory (default: ./rules/config)
--target-file-ext Specify additional evtx file extensions (ex: evtx_data)
-t, --threads Number of threads (default: optimal number for performance)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag Do not load rules with specific tags (ex: sysmon)
--include-category Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
--timeline-end End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-start Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-G, --GeoIP Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report Save Results Summary details to an HTML report (ex: results.html)
-L, --JSONL-output Save the timeline in JSONL format (ex: -L -o results.jsonl)
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output Save the timeline in JSON format (ex: results.json)
-p, --profile Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
Display Settings:
--no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 Output timestamp in ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
json-timeline
dan file konfigurasi Opsi dan file konfigurasi untuk json-timeline
sama dengan csv-timeline
tetapi satu opsi tambahan -L, --JSONL-output
untuk outputting ke format JSONL.
level-tuning
Perintah level-tuning
akan memungkinkan Anda menyetel level peringatan untuk aturan, baik meningkatkan atau mengurangi tingkat risiko sesuai dengan lingkungan Anda.
Usage: level-tuning [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-f, --file Tune alert levels (default: ./rules/config/level_tuning.txt)
level-tuning
hayabusa.exe level-tuning
hayabusa.exe level-tuning -f my_level_tuning.txt
level-tuning
Penulis aturan Hayabusa dan Sigma akan menentukan tingkat risiko peringatan saat menulis aturan mereka. Namun, tingkat risiko aktual mungkin berbeda sesuai dengan lingkungan. Anda dapat menyetel level risiko aturan dengan menambahkannya ke ./rules/config/level_tuning.txt
dan mengeksekusi hayabusa.exe level-tuning
yang akan memperbarui baris level
dalam file aturan. Harap dicatat bahwa file aturan akan diperbarui secara langsung.
PERINGATAN: Setiap kali Anda menjalankan
update-rules
, level peringatan asli akan menimpa pengaturan apa pun yang telah Anda ubah, jadi Anda perlu menjalankan perintahlevel-tuning
setelah setiap kali Anda menjalankanupdate-rules
jika Anda ingin mengubah level.
./rules/config/level_tuning.txt
baris sampel:
id,new_level
00000000-0000-0000-0000-000000000000,informational # sample level tuning line
Dalam hal ini, tingkat risiko aturan dengan id
00000000-0000-0000-0000-000000000000
di direktori aturan akan ditulis ulang level
untuk informational
. Level yang mungkin untuk ditetapkan adalah critical
, high
, medium
, low
dan informational
.
list-profiles
Usage: list-profiles [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
set-default-profile
Usage: set-default-profile [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-p, --profile Specify output profile
set-default-profile
minimal
: hayabusa.exe set-default-profile minimal
super-verbose
: hayabusa.exe set-default-profile super-verbose
update-rules
Perintah update-rules
akan menyinkronkan folder rules
dengan aturan hayabusa repositori github, memperbarui aturan dan mengkonfigurasi file.
Usage: update-rules [OPTIONS]
Display Settings:
--no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-r, --rules Specify a custom rule directory or file (default: ./rules)
update-rules
Anda biasanya hanya akan mengeksekusi ini: hayabusa.exe update-rules
Hayabusa memiliki 5 profil output yang telah ditentukan sebelumnya untuk digunakan dalam config/profiles.yaml
:
minimal
standard
(default)verbose
all-field-info
all-field-info-verbose
super-verbose
timesketch-minimal
timesketch-verbose
Anda dapat dengan mudah menyesuaikan atau menambahkan profil Anda sendiri dengan mengedit file ini. Anda juga dapat dengan mudah mengubah profil default dengan set-default-profile --profile
. Gunakan perintah list-profiles
untuk menampilkan profil yang tersedia dan informasi lapangannya.
minimal
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %Details%
standard
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %Details%, %ExtraFieldInfo%
verbose
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %RuleTitle%, %Details%, %ExtraFieldInfo%, %RuleFile%, %EvtxFile%
all-field-info
Alih -alih mengeluarkan informasi details
minimal, semua informasi bidang di bagian EventData
dan UserData
akan dikeluarkan bersama dengan nama bidang aslinya.
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RecordID%, %RuleTitle%, %AllFieldInfo%, %RuleFile%, %EvtxFile%
all-field-info-verbose
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %RuleTitle%, %AllFieldInfo%, %RuleFile%, %EvtxFile%
super-verbose
%Timestamp%, %Computer%, %Channel%, %EventID%, %Level%, %RuleTitle%, %RuleAuthor%, %RuleModifiedDate%, %Status%, %RecordID%, %Details%, %ExtraFieldInfo%, %MitreTactics%, %MitreTags%, %OtherTags%, %Provider%, %RuleCreationDate%, %RuleFile%, %EvtxFile%
timesketch-minimal
Output ke format yang kompatibel dengan mengimpor ke dalam waktu waktu.
%Timestamp%, hayabusa, %RuleTitle%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %Details%, %RuleFile%, %EvtxFile%
timesketch-verbose
%Timestamp%, hayabusa, %RuleTitle%, %Computer%, %Channel%, %EventID%, %Level%, %MitreTactics%, %MitreTags%, %OtherTags%, %RecordID%, %Details%, %ExtraFieldInfo%, %RuleFile%, %EvtxFile%
Tolok ukur berikut dilakukan pada Lenovo P51 2018 (Xeon 4 Core CPU / 64GB RAM) dengan 3GB data EVTX dan 3891 aturan diaktifkan. (2023/06/01)
Profil | Waktu pengerjaan | Output file file | Meningkatkan peningkatan |
---|---|---|---|
minimal | 8 menit 50 detik | 770 MB | -30% |
Standar (default) | 9 menit 00 detik | 1.1 GB | Tidak ada |
bertele-tele | 9 menit 10 detik | 1.3 GB | +20% |
all-field-info | 9 menit 3 detik | 1.2 GB | +10% |
All-field-info-verbose | 9 menit 10 detik | 1.3 GB | +20% |
super-verbose | 9 menit 12 detik | 1,5 GB | +35% |
Informasi berikut dapat dikeluarkan dengan profil output bawaan:
Nama alias | Informasi Output Hayabusa |
---|---|
%AllfieldInfo% | Semua informasi lapangan. |
%Saluran% | Nama log. bidang. |
%Komputer% | Bidang . |
%Detail% | Bidang details dalam aturan deteksi YML, bagaimanapun, hanya aturan Hayabusa yang memiliki bidang ini. Bidang ini memberikan informasi tambahan tentang peringatan atau acara dan dapat mengekstraksi data yang berguna dari bidang di log acara. Misalnya, nama pengguna, informasi baris perintah, informasi proses, dll ... Ketika placeholder menunjuk ke bidang yang tidak ada atau ada pemetaan alias yang salah, itu akan dikeluarkan sebagai n/a (tidak tersedia). Jika bidang details tidak ditentukan (aturan SIGMA IE), pesan details default untuk mengekstrak bidang yang ditentukan dalam ./rules/config/default_details.txt akan dikeluarkan. Anda dapat menambahkan lebih banyak pesan details default dengan menambahkan Provider Name , EventID dan details yang ingin Anda output di default_details.txt . Ketika tidak ada bidang details yang didefinisikan dalam aturan atau di default_details.txt , semua bidang akan dikeluarkan ke kolom details . |
%Extrafieldinfo% | Cetak informasi lapangan yang tidak dikeluarkan dalam %detail %. |
%EventId% | Bidang . |
%Evtxfile% | Nama file EVTX yang menyebabkan peringatan atau acara. |
%Tingkat% | Bidang level dalam aturan deteksi YML. ( informational , low , medium , high , critical ) |
%Mitretactics% | Taktik MITER ATT & CK (Kel: Akses Awal, Gerakan Lateral, dll ...). |
%Mitretags% | MITER ATT & CK Group ID, ID Teknik dan ID Perangkat Lunak. |
%Othertags% | Kata kunci apa pun di bidang tags dalam aturan deteksi YML yang tidak termasuk dalam MitreTactics atau MitreTags . |
%Penyedia% | Atribut Name di bidang . |
%RecordID% | ID Rekaman Acara dari bidang. |
%RUSTRION% | Bidang author dalam aturan deteksi YML. |
%RuleCreationDate% | Bidang date dalam aturan deteksi YML. |
%Rulefile% | Nama file aturan deteksi yang menghasilkan peringatan atau peristiwa. |
%RuleemodifiedDate% | Bidang modified dalam aturan deteksi YML. |
%Ruletitle% | Bidang title dalam aturan deteksi YML. |
%Status% | Bidang status dalam aturan deteksi YML. |
%Timestamp% | Default adalah YYYY-MM-DD HH:mm:ss.sss +hh:mm . bidang di log event. Zona waktu default akan menjadi zona waktu setempat tetapi Anda dapat mengubah zona waktu menjadi UTC dengan opsi --UTC . |
Anda juga dapat menambahkan alias ekstra ini ke profil output Anda jika Anda membutuhkannya:
Nama alias | Informasi Output Hayabusa |
---|---|
%Renderedmessage% | Bidang di log yang diteruskan WEC. |
%Aturan% | Bidang id dalam aturan deteksi YML. |
Catatan: Ini tidak termasuk dalam profil bawaan apa pun sehingga Anda perlu mengedit file config/default_profile.yaml
secara manual dan menambahkan baris berikut:
Message: "%RenderedMessage%"
RuleID: "%RuleID%"
Anda juga dapat mendefinisikan alias kunci acara untuk menghasilkan bidang lain.
Untuk menghemat ruang, kami menggunakan singkatan berikut saat menampilkan level
peringatan.
crit
: critical
high
: high
med
: medium
low
: low
info
: informational
Untuk menghemat ruang, kami menggunakan singkatan berikut saat menampilkan tag taktik MITER ATT & CK. Anda dapat dengan bebas mengedit singkatan ini di file konfigurasi ./config/mitre_tactics.txt
.
Recon
: PengintaianResDev
: pengembangan sumber dayaInitAccess
: Akses AwalExec
: EksekusiPersis
: KegigihanPrivEsc
: Eskalasi Hak istimewaEvas
: Penghindaran PertahananCredAccess
: akses kredensialDisc
: PenemuanLatMov
: Gerakan LateralCollect
: KoleksiC2
: Perintah dan KontrolExfil
: ExfiltrationImpact
: Dampak Untuk menghemat ruang, kami menggunakan singkatan berikut saat menampilkan saluran. Anda dapat dengan bebas mengedit singkatan ini di file konfigurasi ./rules/config/channel_abbreviations.txt
.
App
: Application
AppLocker
: Microsoft-Windows-AppLocker/*
BitsCli
: Microsoft-Windows-Bits-Client/Operational
CodeInteg
: Microsoft-Windows-CodeIntegrity/Operational
Defender
: Microsoft-Windows-Windows Defender/Operational
DHCP-Svr
: Microsoft-Windows-DHCP-Server/Operational
DNS-Svr
: DNS Server
DvrFmwk
: Microsoft-Windows-DriverFrameworks-UserMode/Operational
Exchange
: MSExchange Management
Firewall
: Microsoft-Windows-Windows Firewall With Advanced Security/Firewall
KeyMgtSvc
: Key Management Service
LDAP-Cli
: Microsoft-Windows-LDAP-Client/Debug
NTLM
Microsoft-Windows-NTLM/Operational
OpenSSH
: OpenSSH/Operational
PrintAdm
: Microsoft-Windows-PrintService/Admin
PrintOp
: Microsoft-Windows-PrintService/Operational
PwSh
: Microsoft-Windows-PowerShell/Operational
PwShClassic
: Windows PowerShell
RDP-Client
: Microsoft-Windows-TerminalServices-RDPClient/Operational
Sec
: Security
SecMitig
: Microsoft-Windows-Security-Mitigations/*
SmbCliSec
: Microsoft-Windows-SmbClient/Security
SvcBusCli
: Microsoft-ServiceBus-Client
Sys
: System
Sysmon
: Microsoft-Windows-Sysmon/Operational
TaskSch
: Microsoft-Windows-TaskScheduler/Operational
WinRM
: Microsoft-Windows-WinRM/Operational
WMI
: Microsoft-Windows-WMI-Activity/Operational
Singkatan berikut digunakan dalam aturan untuk membuat output secepat mungkin:
Acct
-> akunAddr
-> alamatAuth
-> OtentikasiCli
-> KlienChan
-> saluranCmd
-> perintahCnt
-> CountComp
-> komputerConn
-> Connection/ConnectedCreds
-> KredensialCrit
-> CriticalDisconn
-> Putus/PutusDir
-> DirektoriDrv
-> driverDst
-> TujuanEID
-> ID AcaraErr
-> errorExec
-> EksekusiFW
-> FirewallGrp
-> grupImg
-> gambarInj
-> InjeksiKrb
-> KerberosLID
-> ID logonMed
-> MediumNet
-> jaringanObj
-> objekOp
-> Operasional/OperasiProto
-> ProtokolPW
-> Kata SandiReconn
-> ReconnectionReq
-> PermintaanRsp
-> ResponsSess
-> sesiSig
-> tanda tanganSusp
-> mencurigakanSrc
-> SumberSvc
-> LayananSvr
-> ServerTemp
-> sementaraTerm
-> penghentian/diakhiriTkt
-> TiketTgt
-> TargetUnkwn
-> tidak diketahuiUsr
-> PenggunaPerm
-> PermamentPkg
-> PaketPriv
-> PrivilegeProc
-> ProsesPID
-> ID prosesPGUID
-> Proses Guid (ID Global Unik)Ver
-> versi Bilah kemajuan hanya akan bekerja dengan beberapa file EVTX. Ini akan menampilkan secara real time jumlah dan persentase file EVTX yang telah selesai dianalisis.
Peringatan akan dikeluarkan dalam warna berdasarkan level
peringatan. Anda dapat mengubah warna default dalam file konfigurasi di ./config/level_color.txt
dalam format level,(RGB 6-digit ColorHex)
. Jika Anda ingin menonaktifkan output warna, Anda dapat menggunakan opsi --no-color
.
Total peristiwa, jumlah peristiwa dengan hit, metrik pengurangan data, deteksi total dan unik, tanggal dengan deteksi terbanyak, komputer atas dengan deteksi dan peringatan atas ditampilkan setelah setiap pemindaian.
Jika Anda menambahkan opsi -T, --visualize-timeline
, fitur timeline frekuensi acara menampilkan garis waktu frekuensi sparkline dari peristiwa yang terdeteksi. Catatan: Perlu ada lebih dari 5 acara. Juga, karakter tidak akan diterjemahkan dengan benar pada prompt perintah default atau prompt PowerShell, jadi silakan gunakan terminal seperti terminal windows, iterm2, dll ...
Aturan deteksi Hayabusa ditulis dalam format YML seperti sigma dan terletak di folder rules
. Aturannya di-host di https://github.com/yamato-security/hayabusa-rules jadi silakan kirim masalah dan tarik permintaan aturan di sana alih-alih repositori Hayabusa utama.
Harap baca readme repositori hayabusa-rules untuk memahami tentang format aturan dan cara membuat aturan.
Semua aturan dari repositori hayabusa-rules harus ditempatkan di folder rules
. Aturan tingkat informational
dianggap sebagai events
, sementara apa pun dengan level
low
dan lebih tinggi dianggap alerts
.
Struktur Direktori Aturan Hayabusa dipisahkan menjadi 2 direktori:
builtin
: Log yang dapat dihasilkan oleh fungsionalitas built-in windows.sysmon
: Log yang dihasilkan oleh Sysmon.Aturan lebih lanjut dipisahkan menjadi direktori berdasarkan jenis log (contoh: keamanan, sistem, dll ...) dan dinamai dalam format berikut:
Silakan periksa aturan saat ini untuk digunakan sebagai templat dalam membuat yang baru atau untuk memeriksa logika deteksi.
Hayabusa mendukung aturan sigma secara asli dengan satu pengecualian dalam menangani bidang logsource
secara internal. Untuk mengurangi positif palsu ,, aturan Sigma harus dijalankan melalui konversi kami yang dijelaskan di sini. Ini akan menambah Channel
yang tepat dan EventID
, dan melakukan pemetaan lapangan untuk kategori tertentu seperti process_creation
.
Hampir semua aturan Hayabusa kompatibel dengan format Sigma sehingga Anda dapat menggunakannya seperti aturan Sigma untuk dikonversi ke format SIEM lainnya. Aturan Hayabusa dirancang semata -mata untuk analisis log acara Windows dan memiliki manfaat berikut:
details
tambahan untuk menampilkan informasi tambahan yang diambil hanya dari bidang yang berguna di log.|equalsfield
dan |endswithfield
.Sepengetahuan kami, Hayabusa memberikan dukungan asli terbesar untuk aturan sigma dari alat analisis log acara Windows Open Source.
Untuk mendeteksi aktivitas berbahaya dengan benar pada mesin Windows, Anda perlu meningkatkan pengaturan log default. Kami telah membuat proyek terpisah untuk mendokumentasikan pengaturan log apa yang perlu diaktifkan serta skrip untuk secara otomatis mengaktifkan pengaturan yang tepat di https://github.com/yamato-security/enableWindowsLogSettings.
Kami juga merekomendasikan situs berikut untuk panduan:
Untuk membuat bukti forensik yang paling dan mendeteksi dengan akurasi tertinggi, Anda perlu memasang Sysmon. Kami merekomendasikan situs dan file konfigurasi berikut:
Kami akan menyukai segala bentuk kontribusi. Permintaan tarik, pembuatan aturan dan sampel log EVTX adalah yang terbaik tetapi permintaan fitur, memberi tahu kami tentang bug, dll ... juga sangat disambut.
Setidaknya, jika Anda menyukai alat kami maka tolong beri kami bintang di GitHub dan tunjukkan dukungan Anda!
Harap kirimkan bug apa pun yang Anda temukan di sini. Proyek ini saat ini dipertahankan secara aktif dan kami senang memperbaiki bug yang dilaporkan.
Jika Anda menemukan masalah (positif palsu, bug, dll ...) dengan aturan Hayabusa, silakan laporkan ke halaman masalah Github Hayabusa-Rules di sini.
Jika Anda menemukan masalah (positif palsu, bug, dll ...) dengan aturan Sigma, silakan laporkan ke halaman masalah Sigmahq GitHub hulu di sini.
Hayabusa dirilis di bawah AGPLV3 dan semua aturan dirilis di bawah Lisensi Aturan Deteksi (DRL) 1.1.
Hayabusa menggunakan data Geolite2 yang dibuat oleh MaxMind, tersedia dari https://www.maxmind.com.
Anda dapat menerima berita terbaru tentang Hayabusa, pembaruan aturan, alat keamanan Yamato lainnya, dll ... dengan mengikuti kami di Twitter di @securityyamato.