วันจันทร์ที่ 21 กรกฎาคม พ.ศ. 2551

Volatility กับ Live Forensics

คำว่า volatility ถ้าคนที่เรียนคอมมาก็คงเคยได้ยินกันมาไม่มากก้อน้อย คำๆนี้หมายถึง ลักษณะบางอย่างของอุปกรณ์คอมพิวเตอร์ที่สามารถเก็บข้อมูลเมื่อมีไฟเลี้ยง และข้อมูลจะหายไปเมื่อไม่มีไฟเลี้ยง ซึ่งโดยปกติแล้วมักจะหมายถึง RAM นั่นเอง แต่ที่เราจะกล่าวกันในวันนี้นั้นไม่ใช่วิชาพื้นฐานคอมพิวเตอร์ครับ แต่เป็นวิชา Forensics และ Volatility ที่จะกล่าวถึงในวันนี้ก็ไม่ใช่อาการดังกล่าวครับ แต่เป็น tools ที่ช่วยให้ชีวิตง่ายขึ้น

Voliatility เป็น tools ไว้ใช้สำหรับการวิเคราะห์ memory image ครับ หากใครไล่อ่านเนื้อหาอันไร้สาระมาตลอดก็จะพอทราบได้มีคนพัฒนาสคริปต์ต่างๆ เพื่อช่วยสำหรับการวิเคราะห์ memory image อยู่บ้างแล้ว เช่น lsproc ซึ่งตัวสคริปต์ดังกล่าวนั้นเป็นเพียง Proof of Concept และสามารถใช้ได้กับ image ของระบบปฏิบัติการ Windows 2000 เท่านั้น ไม่สามารถใช้กับ image ของ XP หรือ 2003 ได้ (ผมเขียน lsproc สำหรับ XP และ 2003 ไว้แล้ว แต่สำหรับสคริปต์อื่นๆนี่ไม่ไหวครับ เกิด error) แต่ก็มีกลุ่มคนสนใจและพัฒนาสคริปต์ต่างๆจนกระทั้งกลายเป็นเจ้า Volatility ขึ้นมาซึ่งสามารถทำงานได้กับ image ของ XP และ 2003 ได้ครับ วันนี้ผมจะนำภาพบางส่วนจากการใช้งานจริงของเจ้า Volatility มาให้ดูกันครับ

ความสามารถแรกคือการแสดงรายชื่อของโปรเซสที่รันขณะที่ทำการ image memory มา ซึ่งความสามารถนี้ก็คือ lsproc ที่เราคุ้นกันนั่นเองครับ

Photobucket

ข้อแตกต่างระหว่างผลลัพธ์ของ lsproc กับ Volatility คือ lsproc นั้นจะมีแสดงข้อมูลของโปรเซสที่หยุดการทำงานไปแล้ว และตำแหน่งของ physical address ของโปรเซสแต่ละโปรเซสด้วย แต่ทว่าถ้าอยากได้ข้อมูลครบแบบ lsproc แล้วละก็ Volatility ก็สามารถทำได้ครับ โดยใช้ความสามารถในการแสกนหา EPROCESS ใน memory image ดังภาพ

Photobucket

เหมือนกันเด๊ะๆ แต่สังเกตว่าพอให้เทคนิคสแกน EPROCESS นั้น Volatility จะทำงานช้ากว่าการเลือกแสดงโปรเซสเพียวๆ อาจเป็นไปได้ว่าใช้คนละ algorithm ในการค้นหา

พอก่อนละกันวันนี้ เด๋วมาต่อตอนสองใหม่