วันศุกร์ที่ 27 เมษายน พ.ศ. 2550

ว่าด้วยเรื่องของ MAC times

หนึ่งในวิธีที่บรรดา incident handler นิยมทำกันในการสืบสวนอาชญากรรมคอมพิวเตอร์คือ การดู timeline ที่เกิดขึ้นบนระบบว่ามีไฟล์ใดถูกสร้างหรือถูกเปลี่ยนแปลงก่อน - หลังจากที่เกิดเหตุการณ์บุกรุกบ้าง การสร้าง timeline จะช่วยให้ incident handler สามารถลำดับเหตุการณ์ต่างๆที่เกิดขึ้นในระบบได้มีประสิทธิภาพมากขึ้น

โดยปกติแล้ว timeline ของเหตุการณ์จะใช้ข้อมูลจากเวลาที่ไฟล์ถูกเปลี่ยนแปลง (Modified) เวลาที่ไฟล์ถูกเข้าถึง (Accessed) และเวลาที่ไฟล์ถูกสร้างขึ้น (Created) ซึ่งข้อมูลของเวลาเหล่านี้เรียกอีกอย่างหนึ่งว่า MAC times

การเรียกดู MAC times บนระบบปฏิบัติการ Windows สามารถทำได้โดยใช้คำสั่ง dir /TW, dir /TA และ dir /TC ตามลำดับ ตัวอย่างผลลัพธ์ของการเรียกดูเวลาที่ไฟล์ถูกสร้างขึ้นแสดงดังข้างล่าง

C:\Documents and Settings\Trirat\Desktop\Sysinternals>dir /TC
Volume in drive C has no label.
Volume Serial Number is 3CCF-7B7F

Directory of C:\Documents and Settings\Trirat\Desktop\Sysinternals

04/24/2007 11:34 AM DIR .
04/24/2007 11:34 AM DIR ..
04/24/2007 11:31 AM 475,790 Autoruns.zip
04/24/2007 11:51 AM 1,539,243 ProcessExplorer.zip
04/24/2007 11:44 AM DIR PsTools
04/24/2007 11:40 AM 1,022,681 PsTools.zip

ถึงแม้ว่าการสร้าง timeline ของเหตุการณ์จาก MAC times จะเป็นเครื่องอำนวยความสะดวกให้กับ incident handler แต่ทว่าความน่าเชื่อถือของ MAC times นั้นเป็นสิ่งที่ incident handler ควรระมัดระวังเนื่องจาก MAC times ของไฟล์ต่างๆนั้นสามารถปลอมแปลงได้ !!?

เครื่องมือที่ใช้สำหรับปลอมแปลง MAC times มีอยู่มากมาย แต่ในที่นี้จะใช้เครื่องมือจาก Metasploit Anti-Forensics Project ที่ชื่อว่า timestomp

C:\Documents and Settings\Trirat\Desktop\Sysinternals> dir /TC PsTools.zip
Volume in drive C has no label.
Volume Serial Number is 3CCF-7B7F

Directory of C:\Documents and Settings\Trirat\Desktop\Sysinternals

04/24/2007 11:40 AM 1,022,681 PsTools.zip

C:\Documents and Settings\Trirat\Desktop\Sysinternals> timestomp.exe PsTools.zip -c "Sunday 1/1/2007 1:11:11 AM"

C:\Documents and Settings\Trirat\Desktop\Sysinternals> dir /TC PsTools.zip
Volume in drive C has no label.
Volume Serial Number is 3CCF-7B7F

Directory of C:\Documents and Settings\Trirat\Desktop\Sysinternals

01/01/2007 01:11 AM 1,022,681 PsTools.zip

จากตัวอย่างข้างบนแสดงการใช้งาน timestomp สังเกตว่าก่อนการใช้ timestomp นั้นเวลาที่ไฟล์ PsTools.zip ถูกสร้างขึ้นคือวันที่ 04/07/2007 เวลา 11.40 หลักจากนั้นจึงใช้ timestomp ทำการปลอมแปลงเวลาที่ไฟล์ถูกสร้างขึ้นให้เป็นวันที่ 01/01/2007 เวลา 01:11

เนื่องด้วยการปลอมแปลง MAC times สามารถทำได้อย่างง่ายดาย ดังนั้น incident handler จึงควรระมัดระวังตรงจุดนี้ไว้ :)

วันอังคารที่ 24 เมษายน พ.ศ. 2550

เปรียบเทียบความสามารถของ tlist และ pslist

ในปัจจุบัน live response (กระบวนการ forensic แบบสดๆ - ไม่รู้ว่าจะแปลเป็นไทยว่ายังไงดี 555 - โดยการวิเคราะห์จะอาศัยข้อมูลแบบ volatile ซึ่งเป็นข้อมูลที่หายไปเมื่อระบบทำการ reboot เช่น ข้อมูลใน RAM เป็นต้น) ได้รับความนิยมมากขึ้นอันเนื่องมาจากเทคนิคการบุกรุกในปัจจุบันมีความซับซ้อนมากขึ้น
และกระบวนการ forensic แบบเก่า (ที่ทำการ duplicate image ของ harddisk แล้วทำการวิเคราะห์ทีหลัง) ก็ไม่สามารถนำมาใช้ในการวิเคราะห์หลักฐานได้่อย่างมีประสิทธิภาพ (หลักฐานอาจอยู่ใน memory ซึ่งไม่ได้ทำการเก็บข้อมูลในส่วนนั้นมา) นั่นเอง

เมื่อพูดถึง live response ข้อมูลของระบบอย่างหนึ่งที่ Incident Handler ควรที่จะสนใจคือข้อมูลของ process ที่กำลังรันอยู่บนระบบที่ทำการสืบสวน ซึ่ง tools แบบ command-line ยอดนิยมสำหรับเก็บข้อมูลของ process ที่รันอยู่บนระบบได้แก่ tlist และ pslist

คราวนี้ก็เลยเกิดคำถามขึ้นมาว่าตัวไหนดีกว่ากัน ว่าแล้วก็เลยนำ feature ของเจ้า 2 ตัวนี้มาเปรียบเทียบกัน ซึ่งผลที่ได้มีดังต่อไปนี้

ข้อดีของ tlist ที่ pslist ไม่มี
  1. tlist สามารถเรียกดู command-line รวมทั้ง path ของ executable image ที่ไว้ใช้สำหรับทำการรัน process ได้ โดยใช้คำสั่ง tlist -c
  2. tlist สามารถทำการ map ระหว่าง process กับรายชื่อของ service โดยใช้คำสั่ง tlist -s
ข้อดีของ pslist ที่ tlist ไม่มี
  1. pslist สามารถเรียกดู process ของ remote machine ได้ pslist \\machine-name -u Administrator
  2. pslist สามารถเรียกดูระยะเวลาที่ process ทำการรันว่ารันมาได้นานเท่าใด ซึ่งเมื่อรัน pslist เฉยๆก็จะแสดงออกมา
  3. pslist สามารถเรียกดูข้อมูลของ memory และ thread ของแต่ละ process ได้โดยใช้คำสั่ง pslist -x (แต่รู้สึกไม่ค่อยมีประโยชน์เท่าไหร่เลยน่ะ)
ข้อดีที่มีทั้งใน tlist และ pslist
  1. ทั้ง 2 ตัวนี้สามารถเรียกดู process tree ได้โดยใช้ tlist -t และ pslist -t ตามลำดับ
สรุปก็คือควรใช้ทั้งสองตัวในการเก็บข้อมูลเกี่ยวกับ process นั่นแหละนะ :)

การดู Last Write Time ของ Registry Key

การเรียกดู last write time ของ registry (เวลาที่ registry ถูกเปลี่ยนแปลงล่าสุด) ไม่ค่อยเป็นที่สนใจกันมากนัก อย่างไรก็ตาม last write time ของ registry จะมีประโยชน์ในกรณีที่ incident handler ทำการสันนิษฐานว่าผู้บุกรุกได้ทำการติดตั้ง Malware ลงไปใน services ของระบบปฏิบัติการ Windows โดยรายชื่อของ services ในระบบจะปรากฏอยู่ที่ registry ที่ชื่อว่า

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

ในการที่ผู้บุกรุกจะทำการติดตั้ง services ลงไปในระบบปฏิบัติการ Windows จะต้องมีการสร้าง key ขี้นมาใหม่ หรือทำการแก้ไขค่าของ key ที่มีอยู่แล้ว ซึ่งไม่ว่าผู้บุกรุกจะเลือกวิธีไหนก็ตาม ค่าของ last write time ของ registry จะต้องมีการเปลี่ยนแปลง ดังนั้นหาก incident handler ทำการสังเกตุค่านี้จะช่วยให้สามารถทำการลำดับเหตุการณ์ได้ดียิ่งขึ้น :)

สำหรับการเรียกดูเวลาที่ registry key ถูกเปลี่ยนแปลงล่าสุดสามารถทำได้โดย
1. เรียก regedit ขึ้นมา แล้วทำการ browse ไปยัง key ของ services ที่เราสนใจ
2. ให้ click ขวาที่ key ที่ต้องการแล้วเลือก export จากนั้นให้ save ผลลัพธ์เป็น .txt
3. เมื่อทำการเปิดไฟล์นี้จะพบ ค่า Last Write Time สำหรับแต่ละค่าต่างๆที่อยู่ใน registry key นั้น :)

ตัวอย่างอยู่ข้างล่างครับ

Key Name: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\-
Services\HTTP

Class Name: NO CLASS
Last Write Time: 23/4/2550 - 9:48

P.S. ค่า last write time สำหรับแต่ละ services จะถูกเปลี่ยนแปลงทุกครั้งหลังจากระบบทำการ reboot ดังนั้นถ้าระบบที่เราทำการตรวจสอบถูก reboot หลังจากที่ผู้บุกรุกทำการติดตั้ง malware ลงไปใน services แล้ว จะทำให้การสืบสวนด้วยค่า last write time ไม่มีประโยชน์ครับ

P.S. การสืบสวนด้วยค่า last write time จะมีประสิทธิภาพก็ต่อเมื่อระบบตั้งอยู่บนสมมติฐานที่ว่าค่า last write time ไม่สามารถปลอมแปลงได้ ซึ่งในปัจจุบันยังไม่มี Windows API ที่สามารถทำแบบนั้นได้ (ข้อมูลอ้างอิงจาก Windows Forensic Analysis ของ Harlan Carvey) ดังนั้นหมายความว่าการใช้ค่า last write time ของ registry เป็นแนวทางในการสืบสวนยังสามารถทำได้อยู่ครับ