วันพุธที่ 12 ธันวาคม พ.ศ. 2550

USB forensics ตอนที่ 2: จะรู้ได้ยังไงว่าเวลาไหนคือเวลาล่าสุดที่เสียบ USB thumb drive เข้าเครื่อง

ช่วงนี้หมกมุ่นอยู่กับ USB ก็เลยกลายเป็น series ที่เกี่ยวกับ USB ไปซะงั้น post เมื่อคราวก่อนเลยกลายเป็น USB forensics ตอนที่ 1 ไปซะงั้น สำหรับในตอนที่ 2 นี้จะกล่าวถึงการดูเวลาครั้งสุดท้ายที่ USB thumb drive ถูกเสียบเข้าเครื่องคอมพิวเตอร์ที่ต้องสงสัย ซึ่งจะใช้ข้อมูลจากในตอนที่ 1 พอสมควรดังนั้นถ้าคราวนี้แล้วยังมึนๆก้อกลับไปอ่านให้เข้าใจก่อนนะครับ จะได้มึนน้อยลง

ในตอนนี้เราจะใช้ USB thumb drive คือ Kingmax USB Flash Disk Rev 2.00 ซึ่งมี serial number คือ EC5543658C8B00EA&0 หรือ EC5543658C8B00EA ถ้าดูใน UVCView ให้เราเข้าไปที่ registry key ที่เกี่ยวข้องกับอุปกรณ์ USB ดังกล่าวคือ

HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR\
Disk&Ven_KINGMAX&Prod_USB_Flash_Disk&Rev_2.00\
EC5543658C8B00EA&0


จะปรากฏข้อมูลต่างๆที่เกี่ยวข้องกับอุปกรณ์ตรงด้านขวามือดังภาพ

Photo Sharing and Video Hosting at Photobucket

ข้อมูลที่เราสนใจคือ ParentIdPrefix ซึ่งในที่นี้คือ 7&24e36f51&0 เด๋วจะได้อธิบายต่อไปว่าใช้ทำอะไรได้

การดูเวลาครั้งสุดท้ายที่ USB thumb drive ถูกเสียบเข้าเครื่องนั้นเราจะอาศัยการดู Last Write Time ของ registry key ที่เคยกล่าวไว้ใน post แรกของ blog นี้เลยครับ :) ให้เข้าไปที่ registry key ดังต่อไปนี้

HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\

และเข้าไปยัง subkey ทั้งสองอันนี้ครับ

{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

registry ดังกล่าวจะเกี่ยวข้องกับอุปกรณ์ disk และ volume ตามลำดับครับซึ่ง USB thumb drive ของเราเข้าข่ายพอดี

มาดูที่ {53f56307-b6bf-11d0-94f2-00a0c91efb8b} ก่อนครับ เมื่อคลิกเข้าไปจะเห็นเป็นดังภาพ

Photo Sharing and Video Hosting at Photobucket

รูปแบบชื่อของแต่ละ sub key เป็นดังนี้

##?#Device#Disk#Ven_VendorName&Prod_ProductName&Rev_Revision#Serial Number#
{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

Device ที่เราสนใจในที่นี้คือ USBSTOR ครับ และเมื่อนำมารวมกับข้อมูลของ USB thumb drive ของเราคือ
Kingmax USB Flash Disk Rev 2.00 ซึ่งมี serial number คือ EC5543658C8B00EA&0 ก็จะได้ว่า subkey ที่เราต้องการดู Last Write Time คือ

##?#USBSTOR#Disk&Ven_KINGMAX&Prod_USB_Flash_Disk&Rev_2.00#EC5543658C8B00EA&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

เมื่อดู Last Write Time พบว่าเป็นดังข้างล่าง

Last Write Time: 12/12/2007 - 10:37 AM
Value 0

Name: DeviceInstance

Type: REG_SZ

Data: USBSTOR\Disk&Ven_KINGMAX&Prod_USB_Flash_Disk&Rev_2.00\EC5543658C8B00EA&0


วันที่ 12 ธันวาคม 2007 เวลา 10.37 น. คือเวลาครั้งสุดท้ายที่เสียบ USB thumb drive เข้าไปยังเครื่องที่ทำการตรวจสอบ ไม่ยากเลยชิมิ :)

อ้าว....แล้วไอ้เจ้า
ParentIdPrefix เอาไปทำอะไรหว่า ??? เจ้าค่าตัวนี้จะเอาไปใช้งานกับ sub key {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} อีกอันครับ โดยที่เมื่อเี่ราคลิ๊กไปที่ sub key ดังกล่าวจะเห็นเป็นดังภาพ

Photo Sharing and Video Hosting at Photobucket

รูปแบบของชื่อใน sub key นี้ค่อนข้างจะดูมึนๆเล็กน้อย แต่ sub key ที่เราสนใจนั้นจะมี ParentIdPrefix ของ USB thumb drive ที่เราสนใจปรากฏอยู่ครับ ซึ่งในที่นี้คือ
7&24e36f51&0 เมื่อเราทำการค้นหา sub key ที่มี ParentIdPrefix ซึ่งจะได้ sub key ชื่อ

##?#STORAGE#RemovableMedia#7&24e36f51&0&RM#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}

เมื่อดู Last Write Time ของ sub key ดังกล่าวพบว่าผลลัพธ์เป็นดังข้างล่าง

Last Write Time: 12/12/2007 - 10:37 AM
Value 0

Name: DeviceInstance

Type: REG_SZ

Data: STORAGE\RemovableMedia\7&24e36f51&0&RM


เป็นวันที่ 12 ธันวาคม 2007 เวลา 10.37 น. เหมือนกันครับ ตรงกับอันแรกที่เราได้มา เราสามารถใช้ค่า Last Write Time ของ sub key ทั้งสองอันในการ cross checkได้ครับ

วันอังคารที่ 11 ธันวาคม พ.ศ. 2550

จะรู้ได้อย่างไร ว่าเครื่องเราเสียบ USB thumb drive อะไรไปบ้าง

หลังจากที่พักร้อนยาวไปตามหาหัวใจตัวเอง (น้ำเน่าๆ แหะๆ) วันนี้ก้อได้เวลากลับมาทำงานอีกครั้ง ว่าจะทำเขียนเรื่องเกี่ยวกับ Windows Memory Analysis ต่อ แต่มันตันๆยังไงไม่รู้ ก็เลยเปลี่ยนมาเรื่องเบาๆบ้างดีกว่า โดยเรื่องที่จะเอามายำวันนี้เกี่ยวกับ USB forensics โดยจะเป็นการตรวจสอบว่าเครื่องที่เราสงสัยได้เสียบ USB thumb drive ใดไปบ้าง

พระเอกของเราในตอนนี้คือ registry key ครับ (แน่นอน วิธีการนี้ใช้ได้แต่ระบบปฏิบัติการ Windows เท่านั้นแหะๆ) โดย registry key ที่เราสนใจสำหรับการตรวจสอบคือ

HKLM\System\CurrentControlSet\Enum\USBSTOR

โดยภายใต้ key ดังกล่าวจะเป็นรายชื่อและรุ่นของอุปกรณ์ USB ที่เชื่อมต่อเข้ากับคอมพิวเตอร์ที่ทำการตรวจสอบดังภาพ

Photo Sharing and Video Hosting at Photobucket

โดยรูปแบบของชื่ออุปกรณ์เป็นดังข้างล่างนี้

Type&Ven_VendorName&Prod_ProductName&Rev_Revision

โดย Type นั้นเป็นประเภทของอุปกรณ์ ถ้าเป็น USB thumb drive นั้น Type จะเป็น Disk แต่ถ้าเป็น CD-ROM Type จะเป็น CdRom

VendorName เป็นชื่อของผู้ผลิตของอุปกรณ์ดังกล่าว

ProductName เป็นชื่อรุ่นของอุปกรณ์ดังกล่าว

Revision เป็นการ revision ของอุปกรณ์ในรุ่นนั้นๆ

ดังนั้น Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_1.00 จึงสามารถแปลงข้อมูลได้เป็น

อุปกรณ์: USB Thumb drive (Disk)

ผู้ผลิต: Kingston


รุ่น: Data Traveler 2.0


Revision: 1.00


ไม่ยากเลยชิมิ :)

แต่ยัง... ยังไม่จบ เพราะว่าตอนนี้เราเพิ่งรู้แค่ว่า USB รุ่นอะไรที่เสียบเข้ามาที่เครื่องคอมพิวเตอร์เท่านั้น แต่เราไม่รู้ว่าเป็น USB อันไหน ซึ่งการที่เราจะสามารถระบุ USB thumb drive แบบเจาะจงลงไปนั้น เราจะต้องใช้หมายเลข serial number ของอุปกรณ์ในการระบุครับ โดยหมายเลข serial number ของอุปกรณ์ USB ที่เสีบเข้าเครื่องนั้นสามารถดูได้จาก sub key ของ registry ของอปุกรณ์ที่เราสนใจดังภาพ

Photo Sharing and Video Hosting at Photobucket

ที่วงไว้ตรงสีแดงคือ serial number ของอุปกรณ์ครับ โดย serial ของ USB thumb drive Kingston Data Traveler ที่เราทำการตรวจสอบไปในตัวอย่างแรกนั้นคือ 135000000000001357924712&0 ซึ่ง serial number ดังกล่าวจะไม่มีการซ้ำกับอุปกรณ์ชิ้นอื่นถึงแม้ว่าเป็นรุ่นเดียวกัน (กล่าวคือ USB thumb drive Kingston Data Traveler 2 อันถึงแม้จะเป็นรุ่นเดียวกัน แต่จะมี serial number ที่ต่างกัน) นอกจากนี้ถึงแม้จะนำไปเสียบที่ต่างเครื่องกันก็จะขึ้นเป็นเลขเดียวกันด้วย

อีกวิธีการหนึ่งที่สะดวกสำหรับระบุว่าอุปกรณ์ USB นี้มีหมายเลข serial คืออะไรโดยเราโปรแกรมชื่อว่า UVCView ครับ ซึ่งตัวอย่างของการใช้โปรแกรมเป็นดังภาพ

Photo Sharing and Video Hosting at Photobucket

จากภาพตำแหน่งที่วงสีแดงๆคือ serial number ของอุปกรณ์ USB ซึ่งในที่นี้คือ Kingmax USB Flash Disk Rev 2.00 นั่นเอง

อย่างไรก็ตามก็มีข้อควรระวังสำหรับการตรวจสอบคือ
  1. การตรวจสอบนี้อาศัยข้อมูลจาก registry key ซึ่งสามารถเปลี่ยนแปลงและแก้ไขได้ ซึ่งผู้กระทำความผิดอาจแก้ไขข้อมูลตรงจุดดังกล่าวเพื่อทำลายหลักฐานได้
  2. ถึงแม้อุปกรณ์ USB ส่วนมากจะมี serial number ที่แตกต่างกับในแต่ละชิ้นระบุไว้ ก็ยังมีอีกอุปกรณ์ USB อีกจำนวนมากที่ไม่มี serial number ซึ่งอุปกรณ์ที่ไม่มี serial number นั้น ระบบปฏิบัติการ Windows จะทำการสร้าง serial number ให้เอง ซึ่ง serial number ดังกล่าวไม่สามารถนำไประบุอุปกรณ์ที่ต้องสงสัยได้ ตัวอย่างของ serial number ที่ไม่สามารถนำไปใช้ได้คือ serial ที่มีเครื่องหมาย & อยู่เป็นลำดับที่สอง ยกตัวอย่างเช่น 6&355c3fd8&0
จบแหละ เด๋วนี้ขี้เกียจหาคำลงท้ายน่ะ แหะๆ