เจาะลึกความลับในแรม: ไขรหัสที่ซ่อนอยู่ด้วยนิติวิทยาศาสตร์ทางหน่วยความจำ

เจาะลึกความลับในแรม: ไขรหัสที่ซ่อนอยู่ด้วยนิติวิทยาศาสตร์ทางหน่วยความจำ

ในโลกไซเบอร์ที่เต็มไปด้วยภัยคุกคาม ข้อมูลสำคัญมักถูกซ่อนเร้นอย่างชาญฉลาด ไม่ใช่แค่บนฮาร์ดดิสก์เท่านั้น แต่ยังรวมถึงในหน่วยความจำชั่วคราวอย่าง RAM ด้วย การสืบสวนทางนิติวิทยาศาสตร์ในหน่วยความจำ หรือที่เรียกว่า Memory Forensics จึงกลายเป็นเครื่องมือสำคัญที่ช่วยให้เราค้นพบร่องรอยอาชญากรรมไซเบอร์ ข้อมูลลับ หรือแม้กระทั่ง “ธง” ในการแข่งขัน CTF (Capture The Flag) ที่ซ่อนอยู่

ทำไมต้องพุ่งเป้าไปที่หน่วยความจำ?

เมื่อพูดถึงการวิเคราะห์ทางนิติวิทยาศาสตร์ หลายคนอาจนึกถึงการสำรวจฮาร์ดดิสก์ แต่ในความเป็นจริงแล้ว RAM คือขุมทรัพย์ข้อมูลที่มักถูกมองข้าม ระบบปฏิบัติการ โปรแกรมที่กำลังทำงาน รวมถึงข้อมูลที่กำลังประมวลผลอยู่ ล้วนถูกเก็บอยู่ใน RAM ทั้งสิ้น

ข้อมูลเหล่านี้มักจะอยู่ในรูปแบบที่ไม่ได้เข้ารหัส และสามารถเปิดเผยความลับที่ไม่มีวันพบได้จากการวิเคราะห์ดิสก์เพียงอย่างเดียว ไม่ว่าจะเป็นรหัสผ่านที่อยู่ในหน่วยความจำ กระบวนการที่เป็นอันตราย หรือข้อมูลชั่วคราวที่แฮกเกอร์ใช้ก่อนที่จะถูกลบออกจากดิสก์

อาวุธลับ: Volatility3 และเครื่องมือคู่ใจ

หัวใจสำคัญของการวิเคราะห์หน่วยความจำคือเฟรมเวิร์กที่ทรงพลังอย่าง Volatility3 เครื่องมือนี้ถูกออกแบบมาเพื่อดึงข้อมูลเชิงลึกจากภาพหน่วยความจำ (memory dump) ของระบบปฏิบัติการต่างๆ ทั้ง Linux, Windows และ macOS

นอกจาก Volatility3 แล้ว เรายังใช้เครื่องมือพื้นฐานของระบบปฏิบัติการอย่าง strings เพื่อสกัดข้อความที่สามารถอ่านได้จากไฟล์ และ grep เพื่อค้นหารูปแบบคำที่ต้องการในข้อมูลเหล่านั้น

เริ่มต้นภารกิจ: การเตรียมภาพหน่วยความจำ

ก่อนจะดำดิ่งลงไปใน RAM ขั้นตอนแรกสุดคือการได้มาซึ่ง ภาพหน่วยความจำ หรือ memory dump ซึ่งเป็นไฟล์ที่บันทึกสถานะทั้งหมดของ RAM ณ เวลาใดเวลาหนึ่ง ในสถานการณ์จริง การดึงข้อมูล RAM ต้องทำอย่างระมัดระวังเพื่อไม่ให้กระทบต่อข้อมูล แต่สำหรับการฝึกฝนหรือใน CTF มักมีไฟล์ภาพหน่วยความจำ (เช่น ไฟล์ .vmem) เตรียมไว้ให้แล้ว

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

แกะรอยกระบวนการที่ซ่อนอยู่

เมื่อได้ภาพหน่วยความจำและโปรไฟล์ที่ถูกต้องแล้ว เราสามารถใช้ Volatility3 เพื่อดูรายการกระบวนการ (process list) ทั้งหมดที่ทำงานอยู่ ณ เวลาที่ดัมป์หน่วยความจำได้ คำสั่งเช่น linux.pslist จะแสดงข้อมูลสำคัญของแต่ละโปรเซส ไม่ว่าจะเป็น PID (Process ID), ชื่อโปรเซส, หรือผู้ใช้งานที่เรียกใช้

จากรายการนี้เอง เราจะเริ่มมองหาสิ่งผิดปกติ เช่น โปรเซสที่มีชื่อแปลกๆ หรือโปรเซสที่รันภายใต้สิทธิ์ที่ไม่ควรเป็น ซึ่งอาจเป็นตัวบ่งชี้ถึงกิจกรรมที่น่าสงสัย หรือจุดที่ “ธง” ถูกซ่อนไว้

ดึงความลับจากหน่วยความจำของโปรเซส

เมื่อระบุโปรเซสเป้าหมายได้แล้ว ขั้นตอนต่อไปคือการดึงข้อมูลหน่วยความจำเฉพาะของโปรเซสนั้นออกมา คำสั่งอย่าง linux.proc_maps จะช่วยให้เห็นการจัดสรรพื้นที่หน่วยความจำของโปรเซส จากนั้น linux.memdump จะทำหน้าที่ดึงข้อมูลเหล่านั้นออกมาเป็นไฟล์แยกต่างหาก

ไฟล์ที่ได้จากการดัมพ์หน่วยความจำของโปรเซสนี้คือแหล่งข้อมูลสำคัญที่เราจะใช้ในการค้นหาคำตอบ

เปิดเผย “ธง” ด้วยการวิเคราะห์ขั้นสุดท้าย

หลังจากดึงข้อมูลหน่วยความจำของโปรเซสเป้าหมายออกมาเป็นไฟล์แล้ว ถึงเวลาใช้เครื่องมืออย่าง strings เพื่อสกัดทุกข้อความที่สามารถอ่านได้จากไฟล์นั้น ข้อมูลเหล่านี้อาจเป็นรหัสผ่าน ข้อมูลลับ หรือข้อความที่สื่อถึง “ธง” โดยตรง

จากนั้น ใช้ grep เพื่อกรองผลลัพธ์จาก strings โดยค้นหาคำสำคัญที่เกี่ยวข้อง เช่น “flag”, “key” หรือรูปแบบเฉพาะอื่นๆ ที่เราคาดว่าข้อมูลที่ต้องการจะปรากฏ การผสมผสานเครื่องมือเหล่านี้อย่างมีประสิทธิภาพมักจะนำไปสู่การค้นพบความลับที่ซ่อนอยู่ได้อย่างง่ายดาย

การทำความเข้าใจและเชี่ยวชาญเทคนิคการวิเคราะห์หน่วยความจำไม่เพียงแต่เป็นประโยชน์ในการแข่งขัน CTF เท่านั้น แต่ยังเป็นทักษะที่ขาดไม่ได้สำหรับผู้เชี่ยวชาญด้านความปลอดภัยไซเบอร์ในการสืบสวนและตอบสนองต่อภัยคุกคามในโลกดิจิทัลปัจจุบัน