Hayabusa คือ เครื่องมือสร้างไทม์ไลน์การพิสูจน์หลักฐานบันทึกเหตุการณ์ที่รวดเร็วของ Windows และ เครื่องมือค้นหาภัยคุกคาม ที่สร้างโดยกลุ่มรักษาความปลอดภัย Yamato ในญี่ปุ่น ฮายาบูสะ แปลว่า "เหยี่ยวเพเรกริน" ในภาษาญี่ปุ่น และได้รับเลือกให้เป็นเหยี่ยวเพเรกรินเป็นสัตว์ที่เร็วที่สุดในโลก ล่าสัตว์เก่งและฝึกได้ดีมาก เขียนด้วยภาษา Rust และรองรับการทำงานแบบมัลติเธรดเพื่อให้ทำงานได้เร็วที่สุด เราได้จัดเตรียมเครื่องมือในการแปลงกฎ Sigma เป็นรูปแบบกฎของ Hayabusa กฎการตรวจจับ Hayabusa ที่เข้ากันได้กับ Sigma เขียนขึ้นใน YML เพื่อให้ปรับแต่งและขยายได้ง่ายที่สุด Hayabusa สามารถรันบนระบบที่ทำงานเพียงระบบเดียวสำหรับการวิเคราะห์แบบเรียลไทม์ โดยการรวบรวมบันทึกจากระบบเดียวหรือหลายระบบสำหรับการวิเคราะห์แบบออฟไลน์ หรือโดยการรันสิ่งประดิษฐ์ Hayabusa ด้วย Velociraptor สำหรับการตามล่าภัยคุกคามและการตอบสนองต่อเหตุการณ์ทั่วทั้งองค์กร เอาต์พุตจะถูกรวมเป็นไทม์ไลน์ CSV เดียวเพื่อการวิเคราะห์ที่ง่ายดายใน LibreOffice, Timeline Explorer, Elastic Stack, Timesketch ฯลฯ...
evtx
ที่ได้รับการดูแลมากขึ้น-T
ตัวเลือก)-H
)-M
Multiline Output)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
ไฟล์กำหนดค่าคำสั่งcsv-timeline
csv-timeline
csv-timeline
json-timeline
json-timeline
และไฟล์ปรับแต่งlevel-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 มีกฎ Sigma มากกว่า 4,000 กฎและกฎการตรวจจับในตัวของ Hayabusa มากกว่า 170 กฎ โดยมีการเพิ่มกฎเพิ่มเติมเป็นประจำ สามารถใช้สำหรับการตามล่าภัยคุกคามเชิงรุกทั่วทั้งองค์กร เช่นเดียวกับ DFIR (Digital Forensics and Incident Response) ได้ฟรีด้วยสิ่งประดิษฐ์ Hayabusa ของ Velociraptor ด้วยการรวมเครื่องมือโอเพ่นซอร์สทั้งสองนี้เข้าด้วยกัน คุณจะสามารถสร้าง SIEM ย้อนหลังได้เมื่อไม่มีการตั้งค่า SIEM ในสภาพแวดล้อม คุณสามารถเรียนรู้เกี่ยวกับวิธีการทำเช่นนี้ได้โดยการชมคำแนะนำ Velociraptor ของ Eric Capuano ที่นี่
การวิเคราะห์บันทึกเหตุการณ์ของ Windows เดิมทีเป็นกระบวนการที่ยาวและน่าเบื่อมาก เนื่องจากบันทึกเหตุการณ์ของ Windows คือ 1) ในรูปแบบข้อมูลที่ยากต่อการวิเคราะห์ และ 2) ข้อมูลส่วนใหญ่เป็นสัญญาณรบกวนและไม่มีประโยชน์สำหรับการตรวจสอบ เป้าหมายของฮายาบูสะคือการดึงเฉพาะข้อมูลที่เป็นประโยชน์ออกมาและนำเสนอในรูปแบบที่กระชับที่สุดเท่าที่จะเป็นไปได้ที่อ่านง่าย ซึ่งไม่เพียงแต่นักวิเคราะห์ที่ได้รับการฝึกอบรมอย่างมืออาชีพเท่านั้น แต่ยังใช้งานได้กับผู้ดูแลระบบ Windows ด้วย ฮายาบูสะหวังว่าจะให้นักวิเคราะห์ทำงานเสร็จ 80% ใน 20% ของเวลาทั้งหมด เมื่อเปรียบเทียบกับการวิเคราะห์บันทึกเหตุการณ์ของ Windows แบบเดิม
-T
ตัวเลือก) -H
) -M
Multiline Output) คุณสามารถเรียนรู้วิธีวิเคราะห์ไทม์ไลน์ CSV ใน Excel และ Timeline Explorer ได้ที่นี่
คุณสามารถเรียนรู้วิธีนำเข้าไฟล์ CSV ลงใน Elastic Stack ได้ที่นี่
คุณสามารถเรียนรู้วิธีนำเข้าไฟล์ CSV ลงใน Timesketch ได้ที่นี่
คุณสามารถเรียนรู้วิธีวิเคราะห์ผลลัพธ์ในรูปแบบ JSON ด้วย jq
ได้ที่นี่
|equalsfield
และ |endswithfield
0xc0000234
-> ACCOUNT LOCKED
)โปรดดาวน์โหลด Hayabusa เวอร์ชันเสถียรล่าสุดพร้อมไบนารีที่คอมไพล์แล้ว หรือคอมไพล์ซอร์สโค้ดจากหน้าเผยแพร่
เราจัดเตรียมไบนารีสำหรับสถาปัตยกรรมต่อไปนี้:
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
)ด้วยเหตุผลบางประการ ไบนารี Linux ARM MUSL ทำงานไม่ถูกต้อง ดังนั้นเราจึงไม่ได้จัดเตรียมไบนารีนั้นไว้ มันอยู่นอกเหนือการควบคุมของเรา ดังนั้นเราจึงวางแผนที่จะให้บริการในอนาคตเมื่อได้รับการแก้ไข
ตั้งแต่เวอร์ชัน 2.18.0 เป็นต้นไป เรามีแพ็คเกจ Windows พิเศษที่ใช้กฎที่เข้ารหัส XOR ที่ให้มาในไฟล์เดียว รวมถึงไฟล์กำหนดค่าทั้งหมดที่รวมกันเป็นไฟล์เดียว (โฮสต์อยู่ที่พื้นที่เก็บข้อมูลกฎที่เข้ารหัสของ hayabusa) เพียงดาวน์โหลดแพ็คเกจ zip พร้อม live-response
ในชื่อ ไฟล์ zip มีสามไฟล์: ไบนารี Hayabusa, ไฟล์กฎที่เข้ารหัส XOR และไฟล์ปรับแต่ง วัตถุประสงค์ของแพ็คเกจการตอบกลับสดเหล่านี้มีไว้เพื่อเมื่อใช้งาน Hayabusa บนตำแหน่งข้อมูลไคลเอนต์ เราต้องการให้แน่ใจว่าโปรแกรมสแกนป้องกันไวรัสเช่น Windows Defender จะไม่ให้ผลบวกลวงในไฟล์กฎ .yml
นอกจากนี้ เราต้องการลดจำนวนไฟล์ที่ถูกเขียนลงในระบบให้เหลือน้อยที่สุด เพื่อไม่ให้สิ่งประดิษฐ์ทางนิติวิทยาศาสตร์ เช่น USN Journal ถูกเขียนทับ
คุณสามารถ git clone
ที่เก็บด้วยคำสั่งต่อไปนี้และคอมไพล์ไบนารีจากซอร์สโค้ด:
คำเตือน: สาขาหลักของพื้นที่เก็บข้อมูลมีไว้เพื่อวัตถุประสงค์ในการพัฒนา ดังนั้นคุณอาจสามารถเข้าถึงคุณสมบัติใหม่ที่ยังไม่เปิดตัวอย่างเป็นทางการ อย่างไรก็ตาม อาจมีข้อบกพร่อง ดังนั้นโปรดพิจารณาว่ามันไม่เสถียร
git clone https://github.com/Yamato-Security/hayabusa.git --recursive
หมายเหตุ: หากคุณลืมใช้ตัวเลือก --recursive โฟลเดอร์
rules
ซึ่งได้รับการจัดการเป็นโมดูลย่อย git จะไม่ถูกโคลน
คุณสามารถซิงค์โฟลเดอร์ rules
และรับกฎ Hayabusa ล่าสุดด้วย git pull --recurse-submodules
หรือใช้คำสั่งต่อไปนี้:
hayabusa.exe update-rules
หากการอัปเดตล้มเหลว คุณอาจต้องเปลี่ยนชื่อโฟลเดอร์ rules
แล้วลองอีกครั้ง
ข้อควรระวัง: เมื่ออัปเดต ไฟล์กฎและการกำหนดค่าในโฟลเดอร์
rules
จะถูกแทนที่ด้วยกฎและไฟล์การกำหนดค่าล่าสุดในที่เก็บ hayabusa-rules การเปลี่ยนแปลงใดๆ ที่คุณทำกับไฟล์ที่มีอยู่จะถูกเขียนทับ ดังนั้นเราขอแนะนำให้คุณสำรองข้อมูลไฟล์ใดๆ ที่คุณแก้ไขก่อนที่จะอัปเดต หากคุณกำลังทำการปรับระดับด้วยlevel-tuning
โปรดปรับแต่งไฟล์กฎของคุณใหม่หลังการอัปเดตแต่ละครั้ง หากคุณเพิ่มกฎ ใหม่ ภายในโฟลเดอร์rules
เหล่านั้นจะ ไม่ ถูกเขียนทับหรือลบออกเมื่อทำการอัพเดต
หากคุณติดตั้ง Rust คุณสามารถคอมไพล์จากแหล่งที่มาด้วยคำสั่งต่อไปนี้:
หมายเหตุ: ในการคอมไพล์ คุณมักจะต้องมี Rust เวอร์ชันล่าสุด
cargo build --release
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดที่ไม่เสถียรได้จากสาขาหลักหรือเวอร์ชันเสถียรล่าสุดได้จากหน้าการเผยแพร่
อย่าลืมอัปเดต Rust เป็นระยะด้วย:
rustup update stable
ไบนารีที่คอมไพล์แล้วจะถูกส่งออกในโฟลเดอร์ ./target/release
คุณสามารถอัปเดตเป็นกล่อง Rust ล่าสุดได้ก่อนทำการคอมไพล์:
cargo update
โปรดแจ้งให้เราทราบหากมีสิ่งใดเสียหายหลังจากที่คุณอัปเดต
คุณสามารถสร้างไบนารี 32 บิตบนระบบ Windows 64 บิตได้ดังต่อไปนี้:
rustup install stable-i686-pc-windows-msvc
rustup target add i686-pc-windows-msvc
rustup run stable-i686-pc-windows-msvc cargo build --release
คำเตือน: ตรวจสอบให้แน่ใจว่าได้รัน
rustup install stable-i686-pc-windows-msvc
ทุกครั้งที่มี Rust เวอร์ชันเสถียรใหม่ เนื่องจากrustup update stable
จะไม่อัปเดตคอมไพเลอร์สำหรับการคอมไพล์ข้ามและคุณอาจได้รับข้อผิดพลาดในการสร้าง
หากคุณได้รับข้อผิดพลาดในการคอมไพล์เกี่ยวกับ openssl คุณจะต้องติดตั้ง Homebrew จากนั้นจึงติดตั้งแพ็คเกจต่อไปนี้:
brew install pkg-config
brew install openssl
หากคุณได้รับข้อผิดพลาดในการคอมไพล์เกี่ยวกับ openssl คุณจะต้องติดตั้งแพ็คเกจต่อไปนี้
distros ที่ใช้ Ubuntu:
sudo apt install libssl-dev
Distro ที่ใช้ Fedora:
sudo yum install openssl-devel
บน Linux OS ให้ติดตั้งเป้าหมายก่อน
rustup install stable-x86_64-unknown-linux-musl
rustup target add x86_64-unknown-linux-musl
คอมไพล์ด้วย:
cargo build --release --target=x86_64-unknown-linux-musl
คำเตือน: อย่าลืมเรียกใช้
rustup install stable-x86_64-unknown-linux-musl
ทุกครั้งที่มี Rust เวอร์ชันเสถียรใหม่ เนื่องจากrustup update stable
จะไม่อัปเดตคอมไพเลอร์สำหรับการคอมไพล์ข้ามและคุณอาจได้รับข้อผิดพลาดในการสร้าง
ไบนารี MUSL จะถูกสร้างขึ้นในไดเร็กทอรี . ./target/x86_64-unknown-linux-musl/release/
-linux-musl/release/ ไบนารี MUSL นั้นช้ากว่าไบนารี GNU ประมาณ 15% อย่างไรก็ตาม ไบนารีเหล่านี้สามารถพกพาได้มากกว่าในเวอร์ชันและการกระจายของ linux ที่แตกต่างกัน
คุณอาจได้รับการแจ้งเตือนจากผลิตภัณฑ์ป้องกันไวรัสหรือ EDR เมื่อพยายามเรียกใช้ hayabusa หรือแม้แต่เมื่อดาวน์โหลดกฎ .yml
เนื่องจากจะมีคำสำคัญ เช่น mimikatz
และคำสั่ง PowerShell ที่น่าสงสัยในลายเซ็นการตรวจจับ สิ่งเหล่านี้เป็นผลบวกลวง ดังนั้นจะต้องกำหนดค่าการยกเว้นในผลิตภัณฑ์รักษาความปลอดภัยของคุณเพื่อให้ฮายาบูสะทำงานได้ หากคุณกังวลเกี่ยวกับมัลแวร์หรือการโจมตีในห่วงโซ่อุปทาน โปรดตรวจสอบซอร์สโค้ดของ Hayabusa และรวบรวมไบนารีด้วยตนเอง
คุณอาจพบว่ารันไทม์ช้าโดยเฉพาะในการรันครั้งแรกหลังจากรีบูตเนื่องจากการป้องกันแบบเรียลไทม์ของ Windows Defender คุณสามารถหลีกเลี่ยงปัญหานี้ได้โดยปิดการป้องกันแบบเรียลไทม์ชั่วคราวหรือเพิ่มการยกเว้นลงในไดเร็กทอรีรันไทม์ของ Hayabusa (โปรดคำนึงถึงความเสี่ยงด้านความปลอดภัยก่อนที่จะดำเนินการเหล่านี้)
ใน Command/PowerShell Prompt หรือ Windows Terminal เพียงเรียกใช้ไบนารี Windows 32 บิตหรือ 64 บิตที่เหมาะสม
เมื่อใช้พรอมต์ Command หรือ PowerShell ในตัวใน Windows คุณอาจได้รับข้อผิดพลาดว่า Hayabusa ไม่สามารถโหลดไฟล์ .evtx ใด ๆ ได้หากมีช่องว่างในไฟล์หรือเส้นทางไดเรกทอรีของคุณ หากต้องการโหลดไฟล์ .evtx อย่างถูกต้อง โปรดดำเนินการดังต่อไปนี้:
ก่อนอื่นคุณต้องทำให้ไบนารี่ปฏิบัติการได้
chmod +x ./hayabusa
จากนั้นรันจากไดเร็กทอรีรากของ Hayabusa:
./hayabusa
จาก Terminal หรือ iTerm2 คุณต้องทำให้ไบนารี่ปฏิบัติการได้ก่อน
chmod +x ./hayabusa
จากนั้นลองเรียกใช้จากไดเรกทอรีรากของ Hayabusa:
./hayabusa
บน macOS เวอร์ชันล่าสุด คุณอาจได้รับข้อผิดพลาดด้านความปลอดภัยต่อไปนี้เมื่อคุณพยายามเรียกใช้:
คลิก "ยกเลิก" จากนั้นจากการตั้งค่าระบบ เปิด "ความปลอดภัยและความเป็นส่วนตัว" และจากแท็บทั่วไป คลิก "อนุญาตต่อไป"
หลังจากนั้นให้ลองเรียกใช้อีกครั้ง
./hayabusa
คำเตือนต่อไปนี้จะปรากฏขึ้น ดังนั้นโปรดคลิก "เปิด"
ตอนนี้คุณควรจะสามารถวิ่งฮายาบูสะได้แล้ว
computer-metrics
: พิมพ์จำนวนเหตุการณ์ตามชื่อคอมพิวเตอร์eid-metrics
: พิมพ์จำนวนและเปอร์เซ็นต์ของเหตุการณ์ตามรหัสเหตุการณ์logon-summary
: พิมพ์สรุปเหตุการณ์การเข้าสู่ระบบpivot-keywords-list
: พิมพ์รายการคำหลักที่น่าสงสัยที่จะ pivotsearch
: ค้นหาเหตุการณ์ทั้งหมดด้วยคำสำคัญหรือนิพจน์ทั่วไป csv-timeline
: บันทึกไทม์ไลน์ในรูปแบบ CSVjson-timeline
: บันทึกไทม์ไลน์ในรูปแบบ JSON/JSONLlevel-tuning
: ปรับ level
การแจ้งเตือนแบบกำหนดเองlist-profiles
: แสดงรายการโปรไฟล์เอาต์พุตที่มีอยู่set-default-profile
: เปลี่ยนโปรไฟล์เริ่มต้นupdate-rules
: ซิงค์กฎกับกฎล่าสุดในพื้นที่เก็บข้อมูล GitHub hayabusa-rules help
: พิมพ์ข้อความนี้หรือความช่วยเหลือจากคำสั่งย่อยที่กำหนดlist-contributors
: พิมพ์รายชื่อผู้ร่วมให้ข้อมูลcomputer-metrics
คุณสามารถใช้คำสั่ง computer-metrics
เพื่อตรวจสอบจำนวนเหตุการณ์ที่มีตามคอมพิวเตอร์แต่ละเครื่องที่กำหนดไว้ในฟิลด์
โปรดทราบว่าคุณไม่สามารถพึ่งพาฟิลด์ Computer
เพื่อแยกเหตุการณ์โดยคอมพิวเตอร์เครื่องเดิมได้อย่างสมบูรณ์ บางครั้ง Windows 11 จะใช้ชื่อ Computer
ที่แตกต่างกันโดยสิ้นเชิงเมื่อบันทึกลงในบันทึกเหตุการณ์ นอกจากนี้ Windows 10 บางครั้งจะบันทึกชื่อ Computer
เป็นตัวพิมพ์เล็กทั้งหมด คำสั่งนี้ไม่ได้ใช้กฎการตรวจจับใดๆ ดังนั้นจะวิเคราะห์เหตุการณ์ทั้งหมด นี่เป็นคำสั่งที่ดีในการเรียกใช้อย่างรวดเร็วเพื่อดูว่าคอมพิวเตอร์เครื่องใดมีบันทึกมากที่สุด ด้วยข้อมูลนี้ คุณสามารถใช้ตัวเลือก --include-computer
หรือ --exclude-computer
เมื่อสร้างไทม์ไลน์ของคุณ เพื่อทำให้การสร้างไทม์ไลน์ของคุณมีประสิทธิภาพมากขึ้นโดยการสร้างหลายไทม์ไลน์ตามคอมพิวเตอร์หรือแยกกิจกรรมจากคอมพิวเตอร์บางเครื่อง
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
คุณสามารถใช้คำสั่ง eid-metrics
เพื่อพิมพ์จำนวนทั้งหมดและเปอร์เซ็นต์ของ ID เหตุการณ์ (ฟิลด์
) แยกตามช่องสัญญาณ คำสั่งนี้ไม่ได้ใช้กฎการตรวจจับใดๆ ดังนั้นจะสแกนเหตุการณ์ทั้งหมด
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
ช่อง รหัสเหตุการณ์ และชื่อของเหตุการณ์ถูกกำหนดไว้ใน rules/config/channel_eid_info.txt
ตัวอย่าง:
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
คุณสามารถใช้คำสั่ง logon-summary
เพื่อส่งออกข้อมูลสรุปการเข้าสู่ระบบ (ชื่อผู้ใช้ที่เข้าสู่ระบบและจำนวนการเข้าสู่ระบบที่สำเร็จและล้มเหลว) คุณสามารถแสดงข้อมูลการเข้าสู่ระบบสำหรับไฟล์ evtx หนึ่งไฟล์ด้วย -f
หรือไฟล์ evtx หลายไฟล์ด้วยตัวเลือก -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
คุณสามารถใช้คำสั่ง pivot-keywords-list
เพื่อสร้างรายการคีย์เวิร์ด Pivot ที่ไม่ซ้ำกันเพื่อระบุผู้ใช้ ชื่อโฮสต์ กระบวนการ ฯลฯ ที่ผิดปกติได้อย่างรวดเร็ว รวมถึงเชื่อมโยงเหตุการณ์ต่างๆ เข้าด้วยกัน
สิ่งสำคัญ: ตามค่าเริ่มต้น ฮายาบูสะจะส่งกลับผลลัพธ์จากเหตุการณ์ทั้งหมด (เชิงข้อมูลและสูงกว่า) ดังนั้นเราขอแนะนำอย่างยิ่งให้รวมคำสั่ง pivot-keywords-list
เข้ากับตัวเลือก -m, --min-level
ตัวอย่างเช่น เริ่มต้นด้วยการสร้างคำหลักจากการแจ้งเตือน critical
ด้วย -m critical
จากนั้นดำเนินการต่อด้วย -m high
, -m medium
ฯลฯ... มีแนวโน้มว่าจะมีคำหลักทั่วไปในผลลัพธ์ของคุณที่จะจับคู่กับเหตุการณ์ปกติหลายๆ เหตุการณ์ ดังนั้นหลังจากตรวจสอบผลลัพธ์ด้วยตนเองและสร้างรายการคำหลักที่ไม่ซ้ำในไฟล์เดียวแล้ว คุณสามารถสร้างไทม์ไลน์ของกิจกรรมที่น่าสงสัยให้แคบลงด้วยคำสั่ง เช่น 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
ฯลฯ...): hayabusa.exe pivot-keywords-list -d ../logs -m critical -o keywords`
pivot-keywords-list
คุณสามารถปรับแต่งคำหลักที่ต้องการค้นหาได้โดยแก้ไข . ./rules/config/pivot_keywords.txt
หน้านี้เป็นการตั้งค่าเริ่มต้น
รูปแบบคือ KeywordName.FieldName
ตัวอย่างเช่น เมื่อสร้างรายชื่อ Users
ฮายาบูสะจะแสดงรายการค่าทั้งหมดในช่อง SubjectUserName
, TargetUserName
และ User
search
คำสั่ง search
จะช่วยให้คุณค้นหาคำสำคัญในทุกเหตุการณ์ (ไม่ใช่เพียงผลการตรวจจับของฮายาบูสะ) สิ่งนี้มีประโยชน์ในการพิจารณาว่ามีหลักฐานใด ๆ ในเหตุการณ์ที่ฮายาบูสะตรวจไม่พบหรือไม่
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
sample-evtx เพื่อหาคำหลัก mimikatz
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz"
หมายเหตุ: คำหลักจะตรงกันหากพบ
mimikatz
ที่ใดก็ได้ในข้อมูล มันไม่ตรงกันทุกประการ
../hayabusa-sample-evtx
sample-evtx เพื่อหาคำหลัก mimikatz
หรือ kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -k "kali"
../hayabusa-sample-evtx
sample-evtx เพื่อหาคีย์เวิร์ด mimikatz
และละเว้นตัวพิมพ์: hayabusa.exe search -d ../hayabusa-sample-evtx -k "mimikatz" -i
../hayabusa-sample-evtx
sample-evtx เพื่อหาที่อยู่ IP โดยใช้นิพจน์ทั่วไป: hayabusa.exe search -d ../hayabusa-sample-evtx -r "(?:[0-9]{1,3}.){3}[0-9]{1,3}"
../hayabusa-sample-evtx
sample-evtx และแสดงเหตุการณ์ทั้งหมดที่ฟิลด์ WorkstationName
เป็น kali
: hayabusa.exe search -d ../hayabusa-sample-evtx -r ".*" -F WorkstationName:"kali"
หมายเหตุ:
.*
เป็นนิพจน์ทั่วไปที่ตรงกับทุกเหตุการณ์
search
ไฟล์กำหนดค่าคำสั่ง ./rules/config/channel_abbreviations.txt
: การแมปชื่อช่องและคำย่อ
ขณะนี้คำสั่ง csv-timeline
และ json-timeline
มีวิซาร์ดการสแกนที่เปิดใช้งานตามค่าเริ่มต้น มีจุดมุ่งหมายเพื่อช่วยให้ผู้ใช้เลือกกฎการตรวจจับที่ต้องการเปิดใช้งานตามความต้องการและความชอบได้อย่างง่ายดาย ชุดกฎการตรวจจับที่จะโหลดจะขึ้นอยู่กับรายการอย่างเป็นทางการในโครงการ Sigma รายละเอียดมีการอธิบายไว้ในโพสต์บล็อกนี้ คุณสามารถปิดวิซาร์ดและใช้ฮายาบูสะด้วยวิธีดั้งเดิมได้อย่างง่ายดายโดยการเพิ่มตัวเลือก -w, --no-wizard
ชุดกฎ core
เปิดใช้งานกฎที่มีสถานะ test
หรือ stable
และมีระดับ high
หรือ critical
กฎเหล่านี้เป็นกฎคุณภาพสูงที่ให้ความมั่นใจและความเกี่ยวข้องสูง และไม่ควรสร้างผลบวกลวงมากมาย สถานะของกฎคือ test
หรือ stable
ซึ่งหมายความว่าไม่มีการรายงานผลบวกลวงเป็นเวลานานกว่า 6 เดือน กฎจะจับคู่กับเทคนิคของผู้โจมตี กิจกรรมที่น่าสงสัยทั่วไป หรือพฤติกรรมที่เป็นอันตราย มันเหมือนกับการใช้ตัวเลือก --exclude-status deprecated,unsupported,experimental --min-level high
ชุดกฎ core+
เปิดใช้งานกฎที่มีสถานะ test
หรือ stable
และมีระดับ medium
หรือสูงกว่า กฎ medium
มักต้องการการปรับแต่งเพิ่มเติมเนื่องจากแอปพลิเคชันบางตัว พฤติกรรมผู้ใช้ที่ถูกต้องตามกฎหมาย หรือสคริปต์ขององค์กรอาจตรงกัน มันเหมือนกับการใช้ --exclude-status deprecated,unsupported,experimental --min-level medium
ตัวเลือก
ชุดกฎ core++
เปิดใช้งานกฎที่มีสถานะ experimental
test
หรือ stable
และมีระดับ medium
หรือสูงกว่า กฎเหล่านี้มีเลือดออก โดยได้รับการตรวจสอบกับไฟล์ evtx พื้นฐานที่มีอยู่ในโครงการ SigmaHQ และได้รับการตรวจสอบโดยวิศวกรการตรวจจับหลายราย นอกเหนือจากนั้นพวกเขายังไม่ผ่านการทดสอบในตอนแรก ใช้สิ่งเหล่านี้หากคุณต้องการตรวจจับภัยคุกคามได้เร็วที่สุดเท่าที่จะเป็นไปได้โดยต้องเสียค่าใช้จ่ายในการจัดการเกณฑ์ที่สูงกว่าของผลบวกลวง มันเหมือนกับการใช้ --exclude-status deprecated,unsupported --min-level medium
ตัวเลือก
ชุดกฎ Emerging Threats (ET)
เปิดใช้งานกฎที่มีแท็ก detection.emerging_threats
กฎเหล่านี้กำหนดเป้าหมายภัยคุกคามเฉพาะและมีประโยชน์อย่างยิ่งสำหรับภัยคุกคามปัจจุบันที่ยังไม่มีข้อมูลมากนัก กฎเหล่านี้ไม่ควรมีผลบวกลวงมากนัก แต่จะมีความเกี่ยวข้องลดลงเมื่อเวลาผ่านไป เมื่อไม่ได้เปิดใช้งานกฎเหล่านี้จะเหมือนกับการใช้ตัวเลือก --exclude-tag detection.emerging_threats
เมื่อเรียกใช้ Hayabusa แบบดั้งเดิมโดยไม่มีตัวช่วยสร้าง กฎเหล่านี้จะถูกรวมไว้ตามค่าเริ่มต้น
ชุดกฎ Threat Hunting (TH)
เปิดใช้งานกฎที่มีแท็ก detection.threat_hunting
กฎเหล่านี้อาจตรวจพบกิจกรรมที่เป็นอันตรายที่ไม่รู้จัก แต่โดยทั่วไปแล้วจะมีผลบวกลวงมากกว่า เมื่อไม่ได้เปิดใช้งานกฎเหล่านี้จะเหมือนกับการใช้ตัวเลือก --exclude-tag detection.threat_hunting
เมื่อเรียกใช้ Hayabusa แบบดั้งเดิมโดยไม่มีตัวช่วยสร้าง กฎเหล่านี้จะถูกรวมไว้ตามค่าเริ่มต้น
ตั้งแต่ Hayabusa เวอร์ชัน 2.16.0 เราได้เปิดใช้งานตัวกรองตามช่องสัญญาณเมื่อโหลดไฟล์ .evtx
และกฎ .yml
จุดประสงค์คือเพื่อให้การสแกนมีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้โดยการโหลดเฉพาะสิ่งที่จำเป็นเท่านั้น แม้ว่าอาจมีผู้ให้บริการหลายรายในบันทึกเหตุการณ์เดียว แต่ก็ไม่ใช่เรื่องปกติที่จะมีหลายช่องในไฟล์ evtx ไฟล์เดียว (ครั้งเดียวที่เราได้เห็นสิ่งนี้คือเมื่อมีคนรวมไฟล์ evtx สองไฟล์ที่แตกต่างกันเข้าด้วยกันสำหรับโปรเจ็กต์ตัวอย่าง-evtx) เราสามารถใช้สิ่งนี้เพื่อประโยชน์ของเราโดยการตรวจสอบช่อง Channel
ในบันทึกแรกของไฟล์ .evtx
ทุกไฟล์ที่ระบุก่อน ที่จะสแกน นอกจากนี้เรายังตรวจสอบว่ากฎ .yml
ใดใช้ช่องใดที่ระบุในช่อง Channel
ของกฎ ด้วยสองรายการนี้ เราจะโหลดกฎที่ใช้ช่องสัญญาณที่มีอยู่จริงภายในไฟล์ .evtx
เท่านั้น
ตัวอย่างเช่น หากผู้ใช้ต้องการสแกน Security.evtx
ระบบจะใช้เฉพาะกฎที่ระบุ Channel: Security
เท่านั้น ไม่มีประโยชน์ในการโหลดกฎการตรวจจับอื่นๆ เช่น กฎที่ค้นหาเฉพาะเหตุการณ์ในบันทึกของ Application
ฯลฯ... โปรดทราบว่าช่องช่องสัญญาณ (เช่น Channel: Security
) ไม่ได้ถูกกำหนดไว้ อย่างชัดเจน ภายในกฎ Sigma ดั้งเดิม สำหรับกฎ Sigma ช่องช่องและรหัสเหตุการณ์จะถูกกำหนด โดยปริยาย ด้วย service
และหมวด category
ใต้ logsource
(เช่น service: security
) เมื่อดูแลจัดการกฎ Sigma ในพื้นที่เก็บข้อมูล hayabusa-rules เราจะยกเลิกการสรุปฟิลด์ logsource
และกำหนดช่องสัญญาณและฟิลด์ ID เหตุการณ์อย่างชัดเจน เราอธิบายวิธีการและเหตุผลที่เราทำสิ่งนี้ในเชิงลึกที่นี่
ปัจจุบัน มีกฎการตรวจจับเพียงสองกฎที่ไม่ได้กำหนด Channel
และมีวัตถุประสงค์เพื่อสแกนไฟล์ .evtx
ทั้งหมดดังต่อไปนี้:
หากคุณต้องการใช้กฎทั้งสองข้อนี้และสแกนกฎทั้งหมดเทียบกับไฟล์ .evtx
ที่โหลด คุณจะต้องเพิ่มตัวเลือก -A, --enable-all-rules
ในคำสั่ง csv-timeline
และ json-timeline
ในการวัดประสิทธิภาพของเรา การกรองกฎมักจะให้ความเร็วเพิ่มขึ้น 20% ถึง 10 เท่า ขึ้นอยู่กับไฟล์ที่กำลังสแกน และแน่นอนว่าใช้หน่วยความจำน้อยกว่า
การกรองช่องสัญญาณยังใช้เมื่อโหลดไฟล์ .evtx
ตัวอย่างเช่น หากคุณระบุกฎที่ค้นหาเหตุการณ์ด้วยช่องทาง Security
ก็ไม่มีประโยชน์ที่จะโหลดไฟล์ .evtx
ที่ไม่ได้มาจากบันทึก Security
ในการวัดประสิทธิภาพของเรา สิ่งนี้ให้ประโยชน์ความเร็วประมาณ 10% ด้วยการสแกนปกติ และประสิทธิภาพเพิ่มขึ้นสูงสุด 60%+ เมื่อสแกนด้วยกฎเดียว หากคุณแน่ใจว่ามีการใช้หลายช่องสัญญาณภายในไฟล์ .evtx
ไฟล์เดียว เช่น มีคนใช้เครื่องมือเพื่อรวมไฟล์ .evtx
หลายไฟล์เข้าด้วยกัน คุณปิดใช้งานการกรองนี้ด้วย -a, --scan-all-evtx-files
ตัวเลือกในคำสั่ง csv-timeline
และ json-timeline
หมายเหตุ: การกรองช่องใช้งานได้กับไฟล์
.evtx
เท่านั้น และคุณจะได้รับข้อผิดพลาดหากคุณพยายามโหลดบันทึกเหตุการณ์จากไฟล์ JSON ด้วย-J, --json-input
และระบุ-A
หรือ-a
ด้วย
csv-timeline
คำสั่ง csv-timeline
จะสร้างไทม์ไลน์ทางนิติเวชของเหตุการณ์ในรูปแบบ 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
เริ่มต้น: 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
หมายเหตุ: การเปิดใช้งานตัวกรอง EID จะทำให้การวิเคราะห์เร็วขึ้นประมาณ 10-15% ในการทดสอบของเรา แต่มีความเป็นไปได้ที่จะพลาดการแจ้งเตือน
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
ทำเครื่องหมายว่า deprecated
) และกฎที่มีเสียงดัง (ซึ่งมี ID กฎอยู่ใน .rulesconfignoisy_rules.txt
):หมายเหตุ: เมื่อเร็วๆ นี้ กฎที่เลิกใช้แล้วขณะนี้อยู่ในไดเร็กทอรีแยกต่างหากในพื้นที่เก็บข้อมูล sigma ดังนั้นจึงไม่ได้รวมไว้เป็นค่าเริ่มต้นใน Hayabusa อีกต่อไป ดังนั้น คุณอาจไม่จำเป็นต้องเปิดใช้งานกฎที่เลิกใช้แล้ว
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
กฎการโหลด:
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
ข้อผิดพลาดระหว่างการสแกน:
[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
คุณสามารถเพิ่มข้อมูล GeoIP (องค์กร ASN เมือง และประเทศ) ลงในฟิลด์ SrcIP (IP ต้นทาง) และฟิลด์ TgtIP (IP เป้าหมาย) ด้วยข้อมูลตำแหน่งทางภูมิศาสตร์ GeoLite2 ฟรี
ขั้นตอน:
.mmdb
สามไฟล์จากหน้าดาวน์โหลดและบันทึกลงในไดเร็กทอรี ชื่อไฟล์ควรจะเรียกว่า GeoLite2-ASN.mmdb
, GeoLite2-City.mmdb
และ GeoLite2-Country.mmdb
csv-timeline
หรือ json-timeline
ให้เพิ่มตัวเลือก -G
ตามด้วยไดเร็กทอรีที่มีฐานข้อมูล MaxMind เมื่อใช้ csv-timeline
คอลัมน์ 6 คอลัมน์ต่อไปนี้จะถูกส่งออกเพิ่มเติม: SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
เมื่อใช้ json-timeline
ช่อง SrcASN
, SrcCity
, SrcCountry
, TgtASN
, TgtCity
, TgtCountry
เดียวกันจะถูกเพิ่มลงในออบเจ็กต์ Details
แต่เฉพาะเมื่อมีข้อมูลเท่านั้น
เมื่อ SrcIP
หรือ TgtIP
เป็น localhost ( 127.0.0.1
, ::1
ฯลฯ...) SrcASN
หรือ TgtASN
จะถูกส่งออกเป็น Local
เมื่อ SrcIP
หรือ TgtIP
เป็นที่อยู่ IP ส่วนตัว ( 10.0.0.0/8
, fe80::/10
ฯลฯ...) SrcASN
หรือ TgtASN
จะถูกส่งออกเป็น Private
ชื่อฟิลด์ที่มีที่อยู่ IP ต้นทางและเป้าหมายที่ถูกค้นหาในฐานข้อมูล GeoIP ถูกกำหนดไว้ใน rules/config/geoip_field_mapping.yaml
คุณสามารถเพิ่มลงในรายการนี้ได้หากจำเป็น นอกจากนี้ยังมีส่วนตัวกรองในไฟล์นี้ที่กำหนดเหตุการณ์ที่จะแยกข้อมูลที่อยู่ IP จาก
ฐานข้อมูล MaxMind GeoIP ได้รับการอัปเดตทุก 2 สัปดาห์ คุณสามารถติดตั้งเครื่องมือ MaxMind geoipupdate
ได้ที่นี่เพื่ออัปเดตฐานข้อมูลเหล่านี้โดยอัตโนมัติ
ขั้นตอนบน macOS:
brew install geoipupdate
/usr/local/etc/GeoIP.conf
: ใส่ใน AccountID
และ LicenseKey
ของคุณที่คุณสร้างหลังจากเข้าสู่เว็บไซต์ MaxMind ตรวจสอบให้แน่ใจว่า EditionIDs
Line บอกว่า EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
geoipupdate
-G /usr/local/var/GeoIP
เมื่อคุณต้องการเพิ่มข้อมูล GEOIPขั้นตอนบน Windows:
geoipupdate_4.10.0_windows_amd64.zip
) จากหน้ารีลีสProgramDataMaxMind/GeoIPUpdateGeoIP.conf
: ใส่ใน AccountID
และ LicenseKey
ของคุณที่คุณสร้างหลังจากเข้าสู่เว็บไซต์ MaxMind ตรวจสอบให้แน่ใจว่า EditionIDs
Line บอกว่า EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country
geoipupdate
ปฏิบัติการ csv-timeline
./rules/config/channel_abbreviations.txt
: การแมปของชื่อช่องและตัวย่อของพวกเขา
./rules/config/default_details.txt
: ไฟล์การกำหนดค่าสำหรับข้อมูลฟิลด์เริ่มต้น (ฟิลด์ %Details%
) ควรถูกส่งออกหากไม่มี details:
บรรทัดถูกระบุในกฎ สิ่งนี้ขึ้นอยู่กับชื่อผู้ให้บริการและรหัสเหตุการณ์
./rules/config/eventkey_alias.txt
: ไฟล์นี้มีการแมปของนามแฝงชื่อสั้นสำหรับฟิลด์และชื่อฟิลด์ที่ยาวกว่าเดิม
ตัวอย่าง:
InstanceID,Event.UserData.UMDFHostDeviceArrivalBegin.InstanceId
IntegrityLevel,Event.EventData.IntegrityLevel
IpAddress,Event.EventData.IpAddress
หากไม่ได้กำหนดฟิลด์ที่นี่ฮายาบูซ่าจะตรวจสอบโดยอัตโนมัติภายใต้ Event.EventData
สำหรับฟิลด์
./rules/config/exclude_rules.txt
: ไฟล์นี้มีรายการรหัสกฎที่จะถูกแยกออกจากการใช้งาน โดยปกติแล้วนี่เป็นเพราะกฎข้อหนึ่งได้แทนที่อื่นหรือไม่สามารถใช้กฎได้ตั้งแต่แรก เช่นเดียวกับไฟร์วอลล์และ IDSS เครื่องมือที่ใช้ลายเซ็นใด ๆ จะต้องมีการปรับแต่งเพื่อให้พอดีกับสภาพแวดล้อมของคุณดังนั้นคุณอาจต้องยกเว้นกฎบางอย่างอย่างถาวรหรือชั่วคราว คุณสามารถเพิ่มรหัสกฎ (ตัวอย่าง: 4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6
) ถึง ./rules/config/exclude_rules.txt
เพื่อละเว้นกฎใด ๆ ที่คุณไม่ต้องการ
./rules/config/noisy_rules.txt
: ไฟล์นี้เป็นรายการของรหัสกฎที่ถูกปิดใช้งานโดยค่าเริ่มต้น แต่สามารถเปิดใช้งานได้โดยการเปิดใช้งานกฎที่มีเสียงดังด้วยตัวเลือก -n, --enable-noisy-rules
กฎเหล่านี้มักจะมีเสียงดังโดยธรรมชาติหรือเนื่องจากผลบวกที่ผิดพลาด
./rules/config/target_event_IDs.txt
: เฉพาะรหัสเหตุการณ์ที่ระบุในไฟล์นี้จะถูกสแกนหากเปิดใช้งานตัวกรอง EID โดยค่าเริ่มต้น Hayabusa จะสแกนกิจกรรมทั้งหมด แต่ถ้าคุณต้องการปรับปรุงประสิทธิภาพโปรดใช้ตัวเลือก -E, --EID-filter
ซึ่งมักจะส่งผลให้เกิดการปรับปรุงความเร็ว 10 ~ 25%
json-timeline
คำสั่ง json-timeline
จะสร้างไทม์ไลน์ทางนิติวิทยาศาสตร์ของเหตุการณ์ในรูปแบบ JSON หรือ JSONL การส่งออกไปยัง JSONL จะมีขนาดไฟล์เร็วกว่าและเล็กกว่า JSON ดังนั้นจึงเป็นสิ่งที่ดีถ้าคุณจะนำเข้าผลลัพธ์ไปยังเครื่องมืออื่นเช่น Elastic Stack JSON จะดีกว่าถ้าคุณจะวิเคราะห์ผลลัพธ์ด้วยตัวแก้ไขข้อความด้วยตนเอง เอาต์พุต CSV นั้นดีสำหรับการนำเข้าระยะเวลาที่เล็กกว่า (โดยปกติจะน้อยกว่า 2GB) ไปยังเครื่องมือเช่น LibreOffice หรือ Timeline Explorer JSON ดีที่สุดสำหรับการวิเคราะห์ข้อมูลรายละเอียดเพิ่มเติม (รวมถึงไฟล์ผลลัพธ์ขนาดใหญ่) ด้วยเครื่องมือเช่น jq
เนื่องจากฟิลด์ Details
จะถูกแยกออกเพื่อการวิเคราะห์ที่ง่ายขึ้น (ในเอาต์พุต CSV ฟิลด์บันทึกเหตุการณ์ทั้งหมดอยู่ในคอลัมน์ราย Details
ขนาดใหญ่หนึ่งคอลัมน์การจัดเรียงข้อมูล ฯลฯ ... ยากขึ้น)
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
และไฟล์กำหนดค่า ตัวเลือกและไฟล์กำหนดค่าสำหรับ json-timeline
นั้นเหมือนกับ csv-timeline
แต่ตัวเลือกพิเศษหนึ่งตัวเลือก -L, --JSONL-output
สำหรับการส่งออกไปยังรูปแบบ JSONL
level-tuning
คำสั่ง level-tuning
จะช่วยให้คุณปรับระดับการแจ้งเตือนสำหรับกฎไม่ว่าจะเพิ่มหรือลดระดับความเสี่ยงตามสภาพแวดล้อมของคุณ
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
Hayabusa และ Sigma Rule Authors จะกำหนดระดับความเสี่ยงของการแจ้งเตือนเมื่อเขียนกฎของพวกเขา อย่างไรก็ตามระดับความเสี่ยงที่แท้จริงอาจแตกต่างกันไปตามสภาพแวดล้อม คุณสามารถปรับระดับความเสี่ยงของกฎได้โดยเพิ่มลงใน ./rules/config/level_tuning.txt
และดำเนิน hayabusa.exe level-tuning
ซึ่งจะอัปเดตบรรทัด level
ในไฟล์กฎ โปรดทราบว่าไฟล์กฎจะได้รับการอัปเดตโดยตรง
คำเตือน: เมื่อใดก็ตามที่คุณเรียกใช้
update-rules
ระดับการแจ้งเตือนดั้งเดิมจะเขียนทับการตั้งค่าใด ๆ ที่คุณเปลี่ยนไปดังนั้นคุณจะต้องเรียกใช้คำสั่งlevel-tuning
หลังจากทุกครั้งที่คุณเรียกใช้update-rules
หากคุณต้องการเปลี่ยนระดับ
./rules/config/level_tuning.txt
ตัวอย่างบรรทัด:
id,new_level
00000000-0000-0000-0000-000000000000,informational # sample level tuning line
ในกรณีนี้ระดับความเสี่ยงของกฎที่มี id
ของ 00000000-0000-0000-0000-000000000000
ในไดเรกทอรีกฎจะมีการเขียน level
ให้กับ informational
ระดับที่เป็นไปได้ในการตั้งค่า critical
high
medium
low
และ 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
คำสั่ง update-rules
จะซิงค์โฟลเดอร์ rules
ด้วยที่เก็บกฎของ Hayabusa GitHub การอัปเดตกฎและไฟล์กำหนดค่า
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
โดยปกติคุณจะดำเนินการนี้: hayabusa.exe update-rules
Hayabusa มีโปรไฟล์เอาต์พุตที่กำหนดไว้ล่วงหน้า 5 รายการเพื่อใช้ใน config/profiles.yaml
:
minimal
standard
(ค่าเริ่มต้น)verbose
all-field-info
all-field-info-verbose
super-verbose
timesketch-minimal
timesketch-verbose
คุณสามารถปรับแต่งหรือเพิ่มโปรไฟล์ของคุณเองได้อย่างง่ายดายโดยการแก้ไขไฟล์นี้ นอกจากนี้คุณยังสามารถเปลี่ยนโปรไฟล์เริ่มต้นได้อย่างง่ายดายด้วย set-default-profile --profile
ใช้คำสั่ง list-profiles
เพื่อแสดงโปรไฟล์ที่มีอยู่และข้อมูลฟิลด์
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
แทนที่จะส่งออกข้อมูล details
ขั้นต่ำข้อมูลฟิลด์ทั้งหมดในส่วน EventData
และ UserData
จะถูกส่งออกพร้อมกับชื่อฟิลด์ดั้งเดิม
%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
เอาต์พุตไปยังรูปแบบที่เข้ากันได้กับการนำเข้าสู่ TimesKetch
%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%
เกณฑ์มาตรฐานต่อไปนี้ได้ดำเนินการในปี 2018 Lenovo P51 (Xeon 4 Core CPU / 64GB RAM) พร้อมข้อมูล 3GB ของข้อมูล EVTX และกฎ 3891 ที่เปิดใช้งาน (2023/06/01)
ประวัติโดยย่อ | เวลาประมวลผล | ไฟล์เอาต์พุต | ไฟล์เพิ่มขึ้น |
---|---|---|---|
น้อยที่สุด | 8 นาที 50 วินาที | 770 MB | -30% |
มาตรฐาน (ค่าเริ่มต้น) | 9 นาที 00 วินาที | 1.1 GB | ไม่มี |
รายละเอียด | 9 นาที 10 วินาที | 1.3 GB | +20% |
ทั้งหมดฟิลด์-อินฟา | 9 นาที 3 วินาที | 1.2 GB | +10% |
ทุกฟิลด์-อินฟา-คำกริยา | 9 นาที 10 วินาที | 1.3 GB | +20% |
คำกริยา | 9 นาที 12 วินาที | 1.5 GB | +35% |
ข้อมูลต่อไปนี้สามารถส่งออกด้วยโปรไฟล์เอาต์พุตในตัว:
ชื่อนามแฝง | ข้อมูลผลลัพธ์ของ Hayabusa |
---|---|
%allfieldinfo% | ข้อมูลภาคสนามทั้งหมด |
%ช่อง% | ชื่อของบันทึก ฟิลด์ |
%คอมพิวเตอร์% | ฟิลด์
|
%รายละเอียด% | อย่างไรก็ตามฟิลด์ details ในกฎการตรวจจับ YML มีเพียงกฎฮายาบูซ่าเท่านั้นที่มีฟิลด์นี้ ฟิลด์นี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับการแจ้งเตือนหรือเหตุการณ์และสามารถดึงข้อมูลที่เป็นประโยชน์จากฟิลด์ในบันทึกเหตุการณ์ ตัวอย่างเช่นชื่อผู้ใช้ข้อมูลบรรทัดคำสั่งข้อมูลกระบวนการ ฯลฯ ... เมื่อตัวยึดตำแหน่งชี้ไปที่ฟิลด์ที่ไม่มีอยู่หรือมีการแมปนามแฝงที่ไม่ถูกต้องมันจะถูกส่งออกเป็น n/a (ไม่พร้อมใช้งาน) หากไม่ได้ระบุฟิลด์ details (เช่นกฎ Sigma) ข้อความ details เริ่มต้นเพื่อแยกฟิลด์ที่กำหนดไว้ใน ./rules/config/default_details.txt จะถูกส่งออก คุณสามารถเพิ่มข้อความ details เริ่มต้นเพิ่มเติมได้โดยเพิ่ม Provider Name EventID และข้อความ details ที่คุณต้องการส่งออกใน default_details.txt เมื่อไม่มีการกำหนดฟิลด์ details ในกฎหรือใน default_details.txt ฟิลด์ทั้งหมดจะถูกส่งไปยังคอลัมน์ details |
%extrafieldInfo% | พิมพ์ข้อมูลภาคสนามที่ไม่ได้ส่งออกใน %รายละเอียด % |
%EventId% | ฟิลด์
|
%evtxfile% | ชื่อไฟล์ EVTX ที่ทำให้เกิดการแจ้งเตือนหรือเหตุการณ์ |
%ระดับ% | ฟิลด์ level ในกฎการตรวจจับ YML ( informational , low , medium , high , critical ) |
%mitretactics% | Miter Att & CK Tactics (เช่นการเข้าถึงเริ่มต้นการเคลื่อนไหวด้านข้าง ฯลฯ ... ) |
%mitretags% | MITER ATT & CK ID ID, ID เทคนิคและรหัสซอฟต์แวร์ |
%อื่น ๆ | คำหลักใด ๆ ในฟิลด์ tags ในกฎการตรวจจับ YML ซึ่งไม่รวมอยู่ใน MitreTactics หรือ MitreTags |
%ผู้ให้บริการ% | แอตทริบิวต์ Name ใน ฟิลด์ |
%recordID% | รหัสบันทึกเหตุการณ์จาก ฟิลด์ |
%Ruleauthor% | ฟิลด์ author ในกฎการตรวจจับ YML |
%RulecreationDate% | ฟิลด์ date ในกฎการตรวจจับ YML |
%Rulefile% | ชื่อไฟล์ของกฎการตรวจจับที่สร้างการแจ้งเตือนหรือเหตุการณ์ |
%Rulemodifieddate% | ฟิลด์ modified ในกฎการตรวจจับ YML |
%Ruletitle% | ฟิลด์ title ในกฎการตรวจจับ YML |
%สถานะ% | ฟิลด์ status ในกฎการตรวจจับ YML |
%การประทับเวลา% | ค่าเริ่มต้นคือ YYYY-MM-DD HH:mm:ss.sss +hh:mm รูปแบบ ฟิลด์ในบันทึกเหตุการณ์ เขตเวลาเริ่มต้นจะเป็นเขตเวลาท้องถิ่น แต่คุณสามารถเปลี่ยนเขตเวลาเป็น UTC ด้วยตัวเลือก --UTC |
นอกจากนี้คุณยังสามารถเพิ่มนามแฝงพิเศษเหล่านี้ลงในโปรไฟล์เอาต์พุตของคุณหากคุณต้องการ:
ชื่อนามแฝง | ข้อมูลผลลัพธ์ของ Hayabusa |
---|---|
%renderedMessage% | ฟิลด์ในบันทึกที่ส่งต่อ WEC |
%reguid% | ฟิลด์ id ในกฎการตรวจจับ YML |
หมายเหตุ: สิ่งเหล่านี้ ไม่ รวมอยู่ในโปรไฟล์ในตัวใด ๆ ดังนั้นคุณจะต้องแก้ไขไฟล์ config/default_profile.yaml
ด้วยตนเองและเพิ่มบรรทัดต่อไปนี้ด้วยตนเอง:
Message: "%RenderedMessage%"
RuleID: "%RuleID%"
คุณยังสามารถกำหนดนามแฝงคีย์เหตุการณ์เพื่อส่งออกฟิลด์อื่น ๆ
เพื่อประหยัดพื้นที่เราใช้ตัวย่อต่อไปนี้เมื่อแสดง level
การแจ้งเตือน
crit
: critical
high
: high
med
: medium
low
: low
info
: informational
เพื่อประหยัดพื้นที่เราใช้ตัวย่อต่อไปนี้เมื่อแสดงแท็กกลยุทธ์ ATT & CK คุณสามารถแก้ไขตัวย่อเหล่านี้ได้อย่างอิสระในไฟล์การกำหนดค่า ./config/mitre_tactics.txt
Recon
: ลาดตระเวนResDev
: การพัฒนาทรัพยากรInitAccess
: การเข้าถึงเริ่มต้นExec
: การดำเนินการPersis
: ความเพียรPrivEsc
: การเพิ่มสิทธิ์Evas
: การหลีกเลี่ยงการป้องกันCredAccess
: การเข้าถึงข้อมูลรับรองDisc
: การค้นพบLatMov
: การเคลื่อนไหวด้านข้างCollect
: คอลเลกชันC2
: คำสั่งและการควบคุมExfil
: การกรองImpact
: ผลกระทบ เพื่อประหยัดพื้นที่เราใช้ตัวย่อต่อไปนี้เมื่อแสดงช่อง คุณสามารถแก้ไขตัวย่อเหล่านี้ได้อย่างอิสระใน ./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
ตัวย่อต่อไปนี้ใช้ในกฎเพื่อให้เอาต์พุตกระชับที่สุดเท่าที่จะทำได้:
Acct
-> บัญชีAddr
-> ที่อยู่Auth
-> การรับรองความถูกต้องCli
-> ลูกค้าChan
-> ช่องCmd
-> คำสั่งCnt
-> นับComp
-> คอมพิวเตอร์Conn
-> การเชื่อมต่อ/เชื่อมต่อCreds
-> ข้อมูลรับรองCrit
-> วิกฤตDisconn
-> ขาดการเชื่อมต่อ/ตัดการเชื่อมต่อDir
-> ไดเรกทอรีDrv
-> ไดรเวอร์Dst
-> ปลายทางEID
-> รหัสเหตุการณ์Err
-> ข้อผิดพลาดExec
-> การดำเนินการFW
-> ไฟร์วอลล์Grp
-> กลุ่มImg
-> รูปภาพInj
-> การฉีดKrb
-> kerberosLID
-> รหัสเข้าสู่ระบบMed
-> MediumNet
-> เครือข่ายObj
-> วัตถุOp
-> การดำเนินงาน/การดำเนินงานProto
-> โปรโตคอลPW
-> รหัสผ่านReconn
-> reconnectionReq
-> คำขอRsp
-> การตอบสนองSess
-> เซสชันSig
-> ลายเซ็นSusp
-> น่าสงสัยSrc
-> แหล่งที่มาSvc
-> บริการSvr
-> เซิร์ฟเวอร์Temp
-> ชั่วคราวTerm
-> การเลิกจ้าง/ยกเลิกTkt
-> ตั๋วTgt
-> เป้าหมายUnkwn
-> ไม่ทราบUsr
-> ผู้ใช้Perm
-> อนุญาตPkg
-> แพ็คเกจPriv
-> สิทธิพิเศษProc
-> กระบวนการPID
-> รหัสกระบวนการPGUID
-> Process GUID (Global Unique ID)Ver
แถบความคืบหน้าจะทำงานกับไฟล์ EVTX หลายไฟล์เท่านั้น มันจะแสดงตามเวลาจริงและเปอร์เซ็นต์ของไฟล์ EVTX ที่ได้ทำการวิเคราะห์เสร็จแล้ว
การแจ้งเตือนจะถูกส่งออกเป็นสีตาม level
การแจ้งเตือน คุณสามารถเปลี่ยนสีเริ่มต้นในไฟล์ config ที่ ./config/level_color.txt
ในรูปแบบของ level,(RGB 6-digit ColorHex)
หากคุณต้องการปิดการใช้งานเอาต์พุตสีคุณสามารถใช้ --no-color
เหตุการณ์ทั้งหมดจำนวนเหตุการณ์ที่มีการเข้าชมตัวชี้วัดการลดข้อมูลการตรวจจับทั้งหมดและที่ไม่ซ้ำกันวันที่ที่มีการตรวจจับมากที่สุดคอมพิวเตอร์ชั้นนำที่มีการตรวจจับและการแจ้งเตือนด้านบนจะปรากฏขึ้นหลังจากการสแกนทุกครั้ง
หากคุณเพิ่มตัวเลือก -T, --visualize-timeline
คุณลักษณะไทม์ไลน์ความถี่เหตุการณ์จะแสดงไทม์ไลน์ความถี่ความถี่ของเหตุการณ์ที่ตรวจพบ หมายเหตุ: จำเป็นต้องมีกิจกรรมมากกว่า 5 เหตุการณ์ นอกจากนี้อักขระจะไม่แสดงผลอย่างถูกต้องบนพรอมต์คำสั่งเริ่มต้นหรือพรอมต์ PowerShell ดังนั้นโปรดใช้เทอร์มินัลเช่น Windows Terminal, Iterm2 ฯลฯ ...
กฎการตรวจจับ Hayabusa ถูกเขียนขึ้นในรูปแบบ YML เหมือนซิกมาและอยู่ในโฟลเดอร์ rules
กฎถูกโฮสต์ที่ https://github.com/yamato-security/hayabusa-rules ดังนั้นโปรดส่งปัญหาใด ๆ และดึงคำขอสำหรับกฎที่นั่นแทนที่จะเป็นที่เก็บ Hayabusa หลัก
โปรดอ่าน Readme ที่เก็บของ Hayabusa-Rules เพื่อทำความเข้าใจเกี่ยวกับรูปแบบกฎและวิธีการสร้างกฎ
ควรวางกฎทั้งหมดจากที่เก็บของ Hayabusa-Rules ในโฟลเดอร์ rules
กฎระดับ informational
ถือเป็น events
ในขณะที่ทุกสิ่งที่มี level
low
และสูงกว่าถือเป็นการ alerts
โครงสร้างไดเรกทอรีกฎของกฎฮายาบูซาแยกออกเป็น 2 ไดเรกทอรี:
builtin
: บันทึกที่สามารถสร้างได้โดยฟังก์ชั่นในตัวของ Windowssysmon
: บันทึกที่สร้างโดย Sysmonกฎจะถูกแยกออกเป็นไดเรกทอรีตามประเภทบันทึก (ตัวอย่าง: ความปลอดภัยระบบ ฯลฯ ... ) และมีชื่อในรูปแบบต่อไปนี้:
โปรดตรวจสอบกฎปัจจุบันเพื่อใช้เป็นเทมเพลตในการสร้างกฎใหม่หรือตรวจสอบตรรกะการตรวจจับ
Hayabusa สนับสนุนกฎซิกม่าโดยมีข้อยกเว้นเพียงอย่างเดียวในการจัดการฟิลด์ logsource
ภายใน เพื่อลดผลบวกที่ผิดพลาดกฎซิกม่าควรเรียกใช้ผ่านตัวแปลงของเราอธิบายที่นี่ สิ่งนี้จะเพิ่ม Channel
ที่เหมาะสมและ EventID
และทำการแมปฟิลด์สำหรับบางหมวดหมู่เช่น process_creation
กฎฮายาบูซ่าเกือบทั้งหมดเข้ากันได้กับรูปแบบ Sigma เพื่อให้คุณสามารถใช้ตามกฎ Sigma เพื่อแปลงเป็นรูปแบบ SIEM อื่น ๆ กฎฮายาบูซ่าได้รับการออกแบบมาสำหรับการวิเคราะห์บันทึกเหตุการณ์ของ Windows เท่านั้นและมีประโยชน์ดังต่อไปนี้:
details
เพิ่มเติมเพื่อแสดงข้อมูลเพิ่มเติมที่นำมาจากฟิลด์ที่มีประโยชน์ในบันทึกเท่านั้น|equalsfield
และ |endswithfield
เพื่อความรู้ของเราฮายาบูซ่าให้การสนับสนุนที่ยิ่งใหญ่ที่สุดสำหรับกฎ Sigma จากเครื่องมือการวิเคราะห์บันทึกเหตุการณ์ Windows โอเพนซอร์สใด ๆ
ในการตรวจจับกิจกรรมที่เป็นอันตรายอย่างถูกต้องบนเครื่อง Windows คุณจะต้องปรับปรุงการตั้งค่าบันทึกเริ่มต้น เราได้สร้างโครงการแยกต่างหากเพื่อจัดทำเอกสารการตั้งค่าบันทึกที่จำเป็นต้องเปิดใช้งานเช่นเดียวกับสคริปต์เพื่อเปิดใช้งานการตั้งค่าที่เหมาะสมโดยอัตโนมัติที่ https://github.com/yamato-security/enablewindowslogsettings
นอกจากนี้เรายังแนะนำเว็บไซต์ต่อไปนี้สำหรับคำแนะนำ:
ในการสร้างหลักฐานทางนิติวิทยาศาสตร์มากที่สุดและตรวจจับด้วยความแม่นยำสูงสุดคุณต้องติดตั้ง Sysmon เราขอแนะนำเว็บไซต์และไฟล์กำหนดค่าต่อไปนี้:
เราจะรักการบริจาคทุกรูปแบบ คำขอดึงการสร้างกฎและบันทึกตัวอย่าง EVTX เป็นสิ่งที่ดีที่สุด แต่คำขอคุณลักษณะแจ้งให้เราทราบถึงข้อบกพร่อง ฯลฯ ... ยินดีต้อนรับเช่นกัน
อย่างน้อยถ้าคุณชอบเครื่องมือของเราโปรดให้ดาวบน GitHub และแสดงการสนับสนุนของคุณ!
โปรดส่งข้อบกพร่องใด ๆ ที่คุณพบที่นี่ โครงการนี้ได้รับการดูแลอย่างแข็งขันและเรายินดีที่จะแก้ไขข้อบกพร่องใด ๆ ที่รายงาน
หากคุณพบปัญหาใด ๆ (ข้อดีที่ผิดพลาดข้อบกพร่อง ฯลฯ ... ) กับกฎฮายาบูซ่าโปรดรายงานพวกเขาไปยังหน้าปัญหา Hayabusa-Rules GitHub ที่นี่
หากคุณพบปัญหาใด ๆ (ข้อดีที่ผิดพลาดข้อบกพร่อง ฯลฯ ... ) ด้วยกฎ Sigma โปรดรายงานพวกเขาไปยังหน้าปัญหา Sigmahq GitHub อัปสตรีมที่นี่
Hayabusa ได้รับการปล่อยตัวภายใต้ AGPLV3 และกฎทั้งหมดได้รับการปล่อยตัวภายใต้ใบอนุญาตการตรวจจับกฎ (DRL) 1.1
Hayabusa ใช้ข้อมูล Geolite2 ที่สร้างโดย MaxMind สามารถใช้งานได้จาก https://www.maxmind.com
คุณสามารถรับข่าวล่าสุดเกี่ยวกับฮายาบูซ่าการอัปเดตกฎเครื่องมือรักษาความปลอดภัยยามาโตะอื่น ๆ ฯลฯ ... โดยติดตามเราบน Twitter ที่ @SecurityYamato