ข้ามไปที่เนื้อหา

การวิเคราะห์ผลลัพธ์ของ 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

คุณจะเห็นบางอย่างเช่นนี้:

First Start

ที่ด้านล่างสุด คุณสามารถเห็นชื่อไฟล์ Total lines และ Visible lines

นอกเหนือจากคอลัมน์ที่พบในไฟล์ CSV แล้ว ยังมีคอลัมน์สองคอลัมน์ทางด้านซ้ายที่ Timeline Explorer เพิ่มเข้ามา: Line และ Tag Line แสดงหมายเลขบรรทัดแต่โดยทั่วไปแล้วไม่มีประโยชน์ต่อการสืบสวน ดังนั้นคุณอาจต้องการซ่อนคอลัมน์นี้ Tag ให้คุณใส่เครื่องหมายถูกสำหรับเหตุการณ์ที่คุณต้องการจดบันทึกไว้เพื่อการวิเคราะห์เพิ่มเติมในภายหลัง เป็นต้น น่าเสียดายที่ไม่มีวิธีเพิ่มแท็กแบบกำหนดเองให้กับเหตุการณ์หรือเขียนความคิดเห็นเกี่ยวกับเหตุการณ์ เนื่องจากไฟล์ CSV ถูกเปิดในโหมดอ่านอย่างเดียวเพื่อป้องกันไม่ให้ข้อมูลถูกเขียนทับ

การกรองข้อมูล

หากคุณเลื่อนเมาส์ไปวางเหนือส่วนบนขวาของส่วนหัว คุณจะเห็นไอคอนตัวกรองสีดำปรากฏขึ้น

Basic Data Filtering

คุณสามารถใส่เครื่องหมายถูกที่ระดับความรุนแรงเพื่อคัดกรองการแจ้งเตือน high และ crit (critical) ก่อน การกรองนี้ยังมีประโยชน์มากในการกรองการแจ้งเตือนที่มีสัญญาณรบกวนออก โดยการเลือกทุกอย่างภายใต้ Rule Title แล้วยกเลิกการเลือกกฎที่มีสัญญาณรบกวน

ดังที่แสดงด้านล่าง หากคุณคลิกที่ Text Filters คุณสามารถสร้างตัวกรองขั้นสูงเพิ่มเติมได้:

Advanced Data Filtering

อย่างไรก็ตาม แทนที่จะสร้างตัวกรองที่นี่ มักจะง่ายกว่าที่จะคลิกที่ไอคอน ABC ใต้ส่วนหัวและใช้ตัวกรองที่นี่:

ABC Filtering

น่าเสียดายที่ทั้งสองตำแหน่งนี้ให้ตัวเลือกการกรองที่แตกต่างกันเล็กน้อย ดังนั้นคุณควรทราบทั้งสองตำแหน่งสำหรับการกรองข้อมูล

ตัวอย่างเช่น หากคุณมีเหตุการณ์ Proc Exec มากเกินไปที่คุณต้องการกรองออก คุณสามารถเลือก Does not contain แล้วพิมพ์ Proc Exec เพื่อละเว้นเหตุการณ์เหล่านั้น:

Rule Filtering

หากคุณมองไปทางด้านล่าง คุณจะเห็นกฎสำหรับตัวกรองในสีต่าง ๆ หากคุณต้องการปิดใช้งานตัวกรองชั่วคราว เพียงยกเลิกการเลือกมัน หากคุณต้องการล้างตัวกรองทั้งหมด ให้คลิกปุ่ม X

หากคุณต้องการละเว้นกฎที่มีสัญญาณรบกวนอีกตัวหนึ่ง คุณควรเปิด Filter Editor โดยการคลิกที่ Edit Filter ที่มุมขวาล่าง:

Filter Editor

คัดลอกข้อความ Not Contains([Rule Title], 'Proc Exec') เพิ่ม and วางตัวกรองเดียวกันลงไปและเปลี่ยน Proc Exec เป็น Possible LOLBIN และตอนนี้คุณสามารถละเว้นกฎทั้งสองนี้ได้:

Multiple Filters

วิธีที่ง่ายที่สุดในการรวมตัวกรองหลายตัวเข้าด้วยกันคือ การสร้างไวยากรณ์ตัวกรองจากไอคอน ABC ก่อน จากนั้นคัดลอก วาง และแก้ไขข้อความนั้น แล้วรวมตัวกรองด้วย and or และ not

คุณยังสามารถคลิกที่ข้อความสีใด ๆ เพื่อรับกล่องดรอปดาวน์สำหรับตัวเลือกที่เป็นไปได้ในการแก้ไขตัวกรองของคุณ:

Dropdown editing

ตัวเลือกส่วนหัว

หากคุณคลิกขวาที่ส่วนหัวใด ๆ คุณจะได้รับตัวเลือกดังต่อไปนี้:

Header Options

ตัวเลือกเหล่านี้ส่วนใหญ่อธิบายตัวเองได้ในตัว

  • หลังจากที่คุณซ่อนคอลัมน์ คุณสามารถแสดงมันอีกครั้งได้โดยเปิด 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...:

Conditional Formatting

ตัวอย่างเช่น หากคุณต้องการแสดงการแจ้งเตือน critical ด้วย Red Fill ก็เพียงพิมพ์ crit และเลือก Red Fill จากตัวเลือก เลือก Apply formatting to an entire row แล้วกด OK

Crit

ตอนนี้การแจ้งเตือน critical จะแสดงเป็นสีแดงดังที่แสดงด้านล่าง:

Red fill

คุณสามารถทำเช่นนี้ต่อไปได้โดยการเพิ่มสีสำหรับการแจ้งเตือน low medium และ high ด้วยเช่นกัน

การค้นหา

โดยค่าเริ่มต้น เมื่อคุณพิมพ์ข้อความบางอย่างในแถบค้นหา มันจะทำการกรองและแสดงเฉพาะผลลัพธ์ที่มีข้อความนั้นอยู่ที่ใดที่หนึ่งในแถวเท่านั้น คุณสามารถดูว่าคุณมีผลลัพธ์ที่ตรงกันกี่รายการได้โดยการตรวจสอบฟิลด์ Visible lines ที่ด้านล่าง

คุณสามารถเปลี่ยนพฤติกรรมนี้ได้โดยการคลิก Search options ที่มุมขวาล่างสุด สิ่งนี้จะแสดงสิ่งต่อไปนี้:

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 เพื่อให้คุณสามารถจัดลำดับความสำคัญของการแจ้งเตือนตามระดับความรุนแรง:

Group by

หากคุณมีคอมพิวเตอร์หลายเครื่องในผลลัพธ์ของคุณ คุณสามารถจัดกลุ่มเพิ่มเติมตาม Computer เพื่อคัดกรองตามระดับความรุนแรงที่แตกต่างกันสำหรับแต่ละคอมพิวเตอร์

การตรวจสอบฟิลด์

โดยค่าเริ่มต้น Hayabusa จะแยกข้อมูลฟิลด์ด้วยสัญลักษณ์ broken pipe: ¦ เมื่อข้อมูลฟิลด์อยู่บนเส้นแนวนอน สิ่งนี้ทำให้แยกแยะหลายฟิลด์ได้ง่ายมาก เนื่องจากอักขระนี้ไม่ค่อยพบในล็อก:

Field Information

อย่างไรก็ตาม บางครั้งจะมีข้อมูลฟิลด์มากเกินไปในล็อกและทุกอย่างไม่สามารถพอดีกับหน้าจอเดียวได้ ในกรณีนี้ คุณสามารถดับเบิลคลิกที่เซลล์เพื่อรับป๊อปอัปที่แสดงข้อมูลฟิลด์ทั้งหมด:

Cell Contents

ปัญหาคือ Timeline Explorer ให้คุณจัดรูปแบบข้อมูลฟิลด์ได้เฉพาะด้วยอักขระขึ้นบรรทัดใหม่ (CRLF CR LF) จุลภาค และแท็บเท่านั้น

หากคุณใช้ตัวเลือก -M, --multiline คุณสามารถแยกฟิลด์ด้วยอักขระขึ้นบรรทัดใหม่ และเมื่อคุณดับเบิลคลิกเพื่อเปิดเนื้อหาของเซลล์ มันจะถูกจัดรูปแบบอย่างเหมาะสม:

Multi-line formatting

ปัญหาคือตอนนี้จะมีเพียงฟิลด์แรกเท่านั้นที่แสดงในไทม์ไลน์ ดังนั้นคุณจะต้องดับเบิลคลิกและเปิดหน้าต่างใหม่ทุกครั้งที่คุณต้องการตรวจสอบข้อมูลฟิลด์อื่น ๆ:

Multiline single fiels

น่าเสียดายที่ Timeline Explorer ไม่รองรับหลายบรรทัดในมุมมองไทม์ไลน์

เพื่อแก้ไขปัญหานี้ ตั้งแต่ Hayabusa v3.1.0 คุณสามารถแยกฟิลด์ด้วยแท็บได้:

Tab separation

มันจะแยกแยะได้ยากขึ้นเล็กน้อยว่าฟิลด์หนึ่งสิ้นสุดตรงไหนและฟิลด์ถัดไปเริ่มต้นตรงไหน นอกจากนี้ เมื่อคุณดับเบิลคลิกและเปิดเนื้อหาของเซลล์ ฟิลด์จะไม่ถูกจัดรูปแบบโดยอัตโนมัติ:

Tab separation not formatted

อย่างไรก็ตาม หากคุณคลิก Tab ที่ด้านล่างแล้ว Format คุณสามารถจัดรูปแบบฟิลด์ให้อยู่ในมุมมองที่อ่านง่ายได้:

Tab separation formatted

สกิน

คุณสามารถเปลี่ยนธีมสีได้จาก Tools -> Skins หากคุณชอบโหมดมืด เป็นต้น

เซสชัน

หากคุณปรับแต่งคอลัมน์ รูปลักษณ์ เพิ่มตัวกรอง เป็นต้น และคุณต้องการบันทึกการตั้งค่าเหล่านั้นไว้ใช้ในภายหลัง อย่าลืมบันทึกเซสชันของคุณจาก File -> Session -> Save