การวิเคราะห์ผลลัพธ์ของ Hayabusa ด้วย Timeline Explorer¶
เกี่ยวกับ¶
Timeline Explorer เป็นเครื่องมือฟรีแต่เป็นแบบปิดซอร์สที่ใช้แทน Excel เมื่อวิเคราะห์ไฟล์ CSV เพื่อวัตถุประสงค์ด้าน DFIR เป็นเครื่องมือ GUI ที่ใช้ได้เฉพาะบน Windows ซึ่งเขียนด้วยภาษา C# เครื่องมือนี้เหมาะอย่างยิ่งสำหรับการสืบสวนขนาดเล็กโดยนักวิเคราะห์เพียงคนเดียวและสำหรับผู้ที่เพิ่งเริ่มเรียนรู้การวิเคราะห์ DFIR อย่างไรก็ตาม อินเทอร์เฟซอาจเข้าใจได้ยากในตอนแรก ดังนั้นโปรดใช้คู่มือนี้เพื่อทำความเข้าใจฟีเจอร์ต่าง ๆ
การติดตั้งและการรัน¶
ไม่จำเป็นต้องติดตั้งแอปพลิเคชัน
เพียงดาวน์โหลดเวอร์ชันล่าสุดจาก https://ericzimmerman.github.io/#!index.md แตกไฟล์ออกแล้วรัน TimelineExplorer.exe
หากคุณไม่มี .NET runtime ที่เหมาะสม จะมีข้อความปรากฏขึ้นเพื่อแจ้งว่าคุณจำเป็นต้องติดตั้งมัน
ในขณะที่เขียนนี้ (2025/2/14) เวอร์ชันล่าสุดคือ 2.1.0 ซึ่งรันบน .NET เวอร์ชัน 9
การโหลดไฟล์ CSV¶
เพียงคลิก File -> Open จากเมนูเพื่อโหลดไฟล์ CSV
คุณจะเห็นบางอย่างเช่นนี้:
ที่ด้านล่างสุด คุณสามารถเห็นชื่อไฟล์ Total lines และ Visible lines
นอกเหนือจากคอลัมน์ที่พบในไฟล์ CSV แล้ว ยังมีคอลัมน์สองคอลัมน์ทางด้านซ้ายที่ Timeline Explorer เพิ่มเข้ามา: Line และ Tag
Line แสดงหมายเลขบรรทัดแต่โดยทั่วไปแล้วไม่มีประโยชน์ต่อการสืบสวน ดังนั้นคุณอาจต้องการซ่อนคอลัมน์นี้
Tag ให้คุณใส่เครื่องหมายถูกสำหรับเหตุการณ์ที่คุณต้องการจดบันทึกไว้เพื่อการวิเคราะห์เพิ่มเติมในภายหลัง เป็นต้น
น่าเสียดายที่ไม่มีวิธีเพิ่มแท็กแบบกำหนดเองให้กับเหตุการณ์หรือเขียนความคิดเห็นเกี่ยวกับเหตุการณ์ เนื่องจากไฟล์ CSV ถูกเปิดในโหมดอ่านอย่างเดียวเพื่อป้องกันไม่ให้ข้อมูลถูกเขียนทับ
การกรองข้อมูล¶
หากคุณเลื่อนเมาส์ไปวางเหนือส่วนบนขวาของส่วนหัว คุณจะเห็นไอคอนตัวกรองสีดำปรากฏขึ้น
คุณสามารถใส่เครื่องหมายถูกที่ระดับความรุนแรงเพื่อคัดกรองการแจ้งเตือน high และ crit (critical) ก่อน
การกรองนี้ยังมีประโยชน์มากในการกรองการแจ้งเตือนที่มีสัญญาณรบกวนออก โดยการเลือกทุกอย่างภายใต้ Rule Title แล้วยกเลิกการเลือกกฎที่มีสัญญาณรบกวน
ดังที่แสดงด้านล่าง หากคุณคลิกที่ Text Filters คุณสามารถสร้างตัวกรองขั้นสูงเพิ่มเติมได้:
อย่างไรก็ตาม แทนที่จะสร้างตัวกรองที่นี่ มักจะง่ายกว่าที่จะคลิกที่ไอคอน ABC ใต้ส่วนหัวและใช้ตัวกรองที่นี่:
น่าเสียดายที่ทั้งสองตำแหน่งนี้ให้ตัวเลือกการกรองที่แตกต่างกันเล็กน้อย ดังนั้นคุณควรทราบทั้งสองตำแหน่งสำหรับการกรองข้อมูล
ตัวอย่างเช่น หากคุณมีเหตุการณ์ Proc Exec มากเกินไปที่คุณต้องการกรองออก คุณสามารถเลือก Does not contain แล้วพิมพ์ Proc Exec เพื่อละเว้นเหตุการณ์เหล่านั้น:
หากคุณมองไปทางด้านล่าง คุณจะเห็นกฎสำหรับตัวกรองในสีต่าง ๆ
หากคุณต้องการปิดใช้งานตัวกรองชั่วคราว เพียงยกเลิกการเลือกมัน
หากคุณต้องการล้างตัวกรองทั้งหมด ให้คลิกปุ่ม X
หากคุณต้องการละเว้นกฎที่มีสัญญาณรบกวนอีกตัวหนึ่ง คุณควรเปิด Filter Editor โดยการคลิกที่ Edit Filter ที่มุมขวาล่าง:
คัดลอกข้อความ Not Contains([Rule Title], 'Proc Exec') เพิ่ม and วางตัวกรองเดียวกันลงไปและเปลี่ยน Proc Exec เป็น Possible LOLBIN และตอนนี้คุณสามารถละเว้นกฎทั้งสองนี้ได้:
วิธีที่ง่ายที่สุดในการรวมตัวกรองหลายตัวเข้าด้วยกันคือ การสร้างไวยากรณ์ตัวกรองจากไอคอน ABC ก่อน จากนั้นคัดลอก วาง และแก้ไขข้อความนั้น แล้วรวมตัวกรองด้วย and or และ not
คุณยังสามารถคลิกที่ข้อความสีใด ๆ เพื่อรับกล่องดรอปดาวน์สำหรับตัวเลือกที่เป็นไปได้ในการแก้ไขตัวกรองของคุณ:
ตัวเลือกส่วนหัว¶
หากคุณคลิกขวาที่ส่วนหัวใด ๆ คุณจะได้รับตัวเลือกดังต่อไปนี้:
ตัวเลือกเหล่านี้ส่วนใหญ่อธิบายตัวเองได้ในตัว
- หลังจากที่คุณซ่อนคอลัมน์ คุณสามารถแสดงมันอีกครั้งได้โดยเปิด
Column Chooserคลิกขวาที่ชื่อคอลัมน์แล้วคลิกShow Column Group By This Columnมีผลเหมือนกับการลากส่วนหัวคอลัมน์ขึ้นด้านบนเพื่อจัดกลุ่ม (อธิบายโดยละเอียดในภายหลัง)Hide Group By Boxจะเพียงซ่อนข้อความDrag a column header here to group by that columnและเลื่อนแถบค้นหาไป
การจัดรูปแบบตามเงื่อนไข¶
คุณสามารถจัดรูปแบบข้อความด้วยสี ตัวอักษรหนา เป็นต้น โดยการคลิก Conditional Formatting -> Highlight Cell Rules -> Equal To...:
ตัวอย่างเช่น หากคุณต้องการแสดงการแจ้งเตือน critical ด้วย Red Fill ก็เพียงพิมพ์ crit และเลือก Red Fill จากตัวเลือก เลือก Apply formatting to an entire row แล้วกด OK
ตอนนี้การแจ้งเตือน critical จะแสดงเป็นสีแดงดังที่แสดงด้านล่าง:
คุณสามารถทำเช่นนี้ต่อไปได้โดยการเพิ่มสีสำหรับการแจ้งเตือน low medium และ high ด้วยเช่นกัน
การค้นหา¶
โดยค่าเริ่มต้น เมื่อคุณพิมพ์ข้อความบางอย่างในแถบค้นหา มันจะทำการกรองและแสดงเฉพาะผลลัพธ์ที่มีข้อความนั้นอยู่ที่ใดที่หนึ่งในแถวเท่านั้น
คุณสามารถดูว่าคุณมีผลลัพธ์ที่ตรงกันกี่รายการได้โดยการตรวจสอบฟิลด์ Visible lines ที่ด้านล่าง
คุณสามารถเปลี่ยนพฤติกรรมนี้ได้โดยการคลิก Search options ที่มุมขวาล่างสุด
สิ่งนี้จะแสดงสิ่งต่อไปนี้:
หากคุณเปลี่ยน Behavior จาก Filter เป็น Search คุณสามารถค้นหาข้อความได้ตามปกติ
หมายเหตุ: โดยปกติแล้วการสลับพฤติกรรมจะใช้เวลาและ Timeline Explorer จะค้างไปครู่หนึ่ง ดังนั้นโปรดอดทนรอหลังจากคลิก
Match criteria ค่าเริ่มต้นคือ Mixed แต่สามารถเปลี่ยนเป็น Or And หรือ Exact ได้
หากคุณเปลี่ยนเป็นอย่างอื่นนอกเหนือจาก Mixed คุณสามารถตั้งค่า Condition จาก Contains เป็น Starts with Like หรือ Equals ได้
Match criteria แบบ Mixed นั้นซับซ้อนเนื่องจากบางครั้งใช้ตรรกะ AND และบางครั้งใช้ OR แต่สามารถยืดหยุ่นได้มากเมื่อเรียนรู้แล้ว
มันทำงานดังนี้:
- หากคุณแยกคำด้วยช่องว่าง มันจะถูกถือว่าเป็นตรรกะ
OR - หากคุณต้องการรวมช่องว่างในการค้นหาของคุณ คุณจำเป็นต้องเพิ่มเครื่องหมายคำพูด
- นำหน้าเงื่อนไขด้วย
+สำหรับตรรกะAND - นำหน้าเงื่อนไขด้วย
-เพื่อไม่รวมผลลัพธ์ - กรองบนคอลัมน์ที่ระบุด้วยรูปแบบ
ColumnName:FilterString - หากคุณกรองบนคอลัมน์ที่ระบุและยังรวมคีย์เวิร์ดแยกต่างหากด้วย มันจะเป็นตรรกะ
AND
ตัวอย่าง:
| เกณฑ์การค้นหา | คำอธิบาย |
|---|---|
| mimikatz | เลือกระเบียนที่มีสตริง mimikatz ในคอลัมน์ค้นหาใด ๆ |
| one two three | เลือกระเบียนที่มี one OR two OR three ในคอลัมน์ค้นหาใด ๆ |
| "hoge hoge" | เลือกระเบียนที่มี hoge hoge ในคอลัมน์ค้นหาใด ๆ |
| mimikatz +"Bad Guy" | เลือกระเบียนที่มีทั้ง mimikatz AND Bad Guy ในคอลัมน์ค้นหาใด ๆ |
| EventID:4624 kali | เลือกระเบียนที่มี 4624 ในคอลัมน์ที่ขึ้นต้นด้วย EventID AND มี kali ในคอลัมน์ค้นหาใด ๆ |
| data +entry -mark | เลือกระเบียนที่มีทั้ง data AND entry ในคอลัมน์ค้นหาใด ๆ โดยไม่รวมระเบียนที่มี mark |
| manu mask -file | เลือกระเบียนที่มี menu OR mask โดยไม่รวมระเบียนที่มี file |
| From:Roller Subj:"currency mask" | เลือกระเบียนที่มี Roller ในคอลัมน์ที่ขึ้นต้นด้วย From AND มี currency mask ในคอลัมน์ที่ขึ้นต้นด้วย Subj |
| import -From:Steve | เลือกระเบียนที่มี import ในคอลัมน์ค้นหาใด ๆ โดยไม่รวมระเบียนที่มี Steve ในคอลัมน์ที่ขึ้นต้นด้วย From |
การตรึงคอลัมน์¶
แม้ว่าจะไม่ใช่ตัวเลือกการค้นหา แต่คุณสามารถกำหนดค่า First scrollable column ภายใต้เมนู Search options ได้
นักวิเคราะห์ส่วนใหญ่จะตั้งค่านี้เป็น Timestamp เพื่อให้สามารถเห็นได้เสมอว่าเหตุการณ์บางอย่างเกิดขึ้นเมื่อใด
การลากส่วนหัวคอลัมน์เพื่อจัดกลุ่ม¶
หากคุณลากส่วนหัวคอลัมน์ไปยัง Drag a column header here to group by that column Timeline Explorer จะจัดกลุ่มตามคอลัมน์นั้น
เป็นเรื่องปกติที่จะจัดกลุ่มตาม Level เพื่อให้คุณสามารถจัดลำดับความสำคัญของการแจ้งเตือนตามระดับความรุนแรง:
หากคุณมีคอมพิวเตอร์หลายเครื่องในผลลัพธ์ของคุณ คุณสามารถจัดกลุ่มเพิ่มเติมตาม Computer เพื่อคัดกรองตามระดับความรุนแรงที่แตกต่างกันสำหรับแต่ละคอมพิวเตอร์
การตรวจสอบฟิลด์¶
โดยค่าเริ่มต้น Hayabusa จะแยกข้อมูลฟิลด์ด้วยสัญลักษณ์ broken pipe: ¦
เมื่อข้อมูลฟิลด์อยู่บนเส้นแนวนอน สิ่งนี้ทำให้แยกแยะหลายฟิลด์ได้ง่ายมาก เนื่องจากอักขระนี้ไม่ค่อยพบในล็อก:
อย่างไรก็ตาม บางครั้งจะมีข้อมูลฟิลด์มากเกินไปในล็อกและทุกอย่างไม่สามารถพอดีกับหน้าจอเดียวได้ ในกรณีนี้ คุณสามารถดับเบิลคลิกที่เซลล์เพื่อรับป๊อปอัปที่แสดงข้อมูลฟิลด์ทั้งหมด:
ปัญหาคือ Timeline Explorer ให้คุณจัดรูปแบบข้อมูลฟิลด์ได้เฉพาะด้วยอักขระขึ้นบรรทัดใหม่ (CRLF CR LF) จุลภาค และแท็บเท่านั้น
หากคุณใช้ตัวเลือก -M, --multiline คุณสามารถแยกฟิลด์ด้วยอักขระขึ้นบรรทัดใหม่ และเมื่อคุณดับเบิลคลิกเพื่อเปิดเนื้อหาของเซลล์ มันจะถูกจัดรูปแบบอย่างเหมาะสม:
ปัญหาคือตอนนี้จะมีเพียงฟิลด์แรกเท่านั้นที่แสดงในไทม์ไลน์ ดังนั้นคุณจะต้องดับเบิลคลิกและเปิดหน้าต่างใหม่ทุกครั้งที่คุณต้องการตรวจสอบข้อมูลฟิลด์อื่น ๆ:
น่าเสียดายที่ Timeline Explorer ไม่รองรับหลายบรรทัดในมุมมองไทม์ไลน์
เพื่อแก้ไขปัญหานี้ ตั้งแต่ Hayabusa v3.1.0 คุณสามารถแยกฟิลด์ด้วยแท็บได้:
มันจะแยกแยะได้ยากขึ้นเล็กน้อยว่าฟิลด์หนึ่งสิ้นสุดตรงไหนและฟิลด์ถัดไปเริ่มต้นตรงไหน นอกจากนี้ เมื่อคุณดับเบิลคลิกและเปิดเนื้อหาของเซลล์ ฟิลด์จะไม่ถูกจัดรูปแบบโดยอัตโนมัติ:
อย่างไรก็ตาม หากคุณคลิก Tab ที่ด้านล่างแล้ว Format คุณสามารถจัดรูปแบบฟิลด์ให้อยู่ในมุมมองที่อ่านง่ายได้:
สกิน¶
คุณสามารถเปลี่ยนธีมสีได้จาก Tools -> Skins หากคุณชอบโหมดมืด เป็นต้น
เซสชัน¶
หากคุณปรับแต่งคอลัมน์ รูปลักษณ์ เพิ่มตัวกรอง เป็นต้น และคุณต้องการบันทึกการตั้งค่าเหล่านั้นไว้ใช้ในภายหลัง อย่าลืมบันทึกเซสชันของคุณจาก File -> Session -> Save




















