Home

Published

- 9 min read

ทำไมวงการ Security จีนจึงมี ARK Tool มากมาย

img of ทำไมวงการ Security จีนจึงมี ARK Tool มากมาย

บทนำ

ถ้าเราเคยค้นหาเครื่องมือสำหรับตรวจสอบ Windows Kernel, ค้นหา hidden process, ตรวจสอบ kernel hook หรือจัดการ driver ที่ไม่สามารถลบออกด้วยเครื่องมือทั่วไปได้ เรามักพบชื่อของเครื่องมือจากประเทศจีนอยู่เสมอ เช่น

  • IceSword หรือ 冰刃
  • Wsyscheck
  • XueTr
  • PowerTool
  • ATool
  • PCHunter
  • 火绒剑 หรือ Huorong Sword

เครื่องมือเหล่านี้มักถูกเรียกรวมกันว่า ARK Tool ซึ่งย่อมาจาก Anti-Rootkit Tool

คำถามที่น่าสนใจคือ

ทำไมวงการ Security ของจีนจึงสร้าง ARK Tool ออกมามากกว่าหลายประเทศ?

คำตอบไม่ได้อยู่ที่ว่าคนจีนมีความชื่นชอบ rootkit เป็นพิเศษ และไม่ควรถูกอธิบายเป็นลักษณะนิสัยของคนทั้งประเทศ แต่เกิดจากการรวมกันของหลายปัจจัย ทั้งยุคทองของ Windows XP, การแพร่ระบาดของมัลแวร์และซอฟต์แวร์ที่ถอนออกยาก, วัฒนธรรมการกำจัดมัลแวร์ด้วยมือ รวมถึงชุมชนนักพัฒนาที่ใช้การสร้าง ARK เป็นเวทีแสดงความเข้าใจด้าน Windows Internals

สำหรับผมแล้ว ARK ไม่ได้เป็นเพียงเครื่องมือสำหรับตรวจจับ rootkit เท่านั้น

การสร้าง ARK Tool คือการสร้างผลงานที่ใช้แสดงว่านักพัฒนาคนนั้นเข้าใจ Windows Kernel ลึกเพียงใด

บทความนี้จะพาย้อนกลับไปดูที่มาของวัฒนธรรม ARK ในจีน ตั้งแต่ IceSword จนถึงเครื่องมือรุ่นใหม่ ก่อนเชื่อมโยงมาถึง DIOPROCESS ซึ่งเป็น Windows research framework ที่ผมพัฒนาขึ้น โดยขยายแนวคิดของ ARK จาก Ring 3 และ Ring 0 ลงไปถึง Hypervisor, UEFI และ System Management Mode


1. ARK Tool คืออะไร

ARK ย่อมาจาก Anti-Rootkit

ตามความหมายดั้งเดิม มันคือเครื่องมือสำหรับตรวจจับสิ่งที่ rootkit พยายามซ่อนจากระบบปฏิบัติการ เช่น

  • Process
  • Thread
  • Driver
  • File
  • Registry key
  • Network connection
  • Service
  • Kernel hook

อย่างไรก็ตาม คำว่า ARK ในวงการ Security จีนมีความหมายกว้างกว่าโปรแกรมตรวจจับ rootkit ทั่วไป

ARK ของจีนมักเป็นเครื่องมือแบบ all-in-one ที่สามารถ

  1. แสดง process และ driver ที่ถูกซ่อน
  2. ตรวจสอบ kernel module
  3. ตรวจจับ SSDT และ inline hook
  4. แสดง kernel callbacks
  5. ตรวจสอบ filter driver
  6. แสดงข้อมูล file system และ registry
  7. Terminate process ที่ Task Manager จัดการไม่ได้
  8. Unload driver หรือ module
  9. ลบไฟล์ที่ถูกป้องกัน
  10. Restore โครงสร้างหรือ pointer ที่ถูกแก้ไข

บทความจีนในปี 2011 เคยรวบรวม ARK ยอดนิยมเจ็ดตัว ได้แก่ IceSword, Wsyscheck, Snipesword, SysReveal, XueTr, Superkill และ ATool พร้อมอธิบายความสามารถตั้งแต่ค้นหา hidden process ไปจนถึงจัดการ SSDT, inline hook, kernel modules และ network ports

ดังนั้น ARK Tool จึงไม่ใช่เพียง antivirus ขนาดเล็ก แต่มีลักษณะคล้ายกับการนำเครื่องมือหลายประเภทมารวมกัน

   Task Manager
    +
Process Explorer
    +
Autoruns
    +
Kernel Debugger
    +
Rootkit Detector
    +
Driver Inspector
    +
Memory Viewer
    +
Manual Removal Tool
    =
ARK Tool

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


2. เมื่อระบบปฏิบัติการอาจไม่ได้บอกความจริง

โปรแกรมทั่วไปบน Windows มักขอข้อมูลจากระบบปฏิบัติการผ่าน API

ตัวอย่างเช่น โปรแกรมจัดการ process อาจเรียก API เพื่อขอรายการ process ที่กำลังทำงานอยู่

   Application

    │ Request process list

Windows API


Kernel


Process information

ปัญหาเกิดขึ้นเมื่อ rootkit เข้าไปแทรกแซงเส้นทางดังกล่าว

   Application


Windows API


Rootkit Hook

    ├── Process A
    ├── Process B
    ├── Process C
    └── Process X ถูกซ่อน

ในกรณีนี้ Task Manager ไม่ได้ทำงานผิดพลาด มันเพียงแสดงข้อมูลที่ระบบปฏิบัติการส่งกลับมาให้เท่านั้น

Rootkit อาจซ่อนตัวเองด้วยวิธีต่าง ๆ เช่น

  • Hook system call
  • แก้ไข SSDT
  • Inline hook kernel function
  • ใช้ filter driver
  • แก้ไข linked list ของ kernel object
  • ปลอมผลลัพธ์จาก API
  • Intercept file หรือ registry operation

แนวคิดพื้นฐานของ ARK จึงเป็นการถามว่า

ถ้าเส้นทางข้อมูลปกติถูกแก้ไข เราจะตรวจสอบข้อมูลจริงจากเส้นทางอื่นได้หรือไม่?

ตัวอย่างเช่น ARK อาจเปรียบเทียบรายการ process จากหลายแหล่ง

   ActiveProcessLinks ─────┐
PspCidTable ────────────┼──> Cross-view comparison
Handle Table ───────────┤
Thread ownership ───────┘

เมื่อ process ปรากฏอยู่ในแหล่งข้อมูลหนึ่ง แต่หายไปจากอีกแหล่งหนึ่ง ก็อาจเป็นสัญญาณว่ามีการแก้ไขโครงสร้างภายใน kernel

เทคนิคนี้มักถูกเรียกว่า Cross-view Detection


3. ยุคทองของ Rootkit บน Windows XP

เหตุผลสำคัญที่ทำให้ ARK Tool เติบโตในจีนคือช่วงเวลาที่มันถือกำเนิดขึ้น

ในยุค Windows XP นักพัฒนา driver สามารถแก้ไขหลายส่วนของ kernel ได้อย่างอิสระกว่าระบบ Windows สมัยใหม่ เทคนิคที่ได้รับความนิยมประกอบด้วย

  • SSDT Hook
  • Shadow SSDT Hook
  • IDT Hook
  • Inline Hook
  • DKOM
  • IRP Hook
  • Filter Driver
  • Kernel Object Modification

เทคนิค hook บน Windows XP เขียนได้ไม่ยาก แต่ให้ความสามารถสูงมาก และในเวลานั้นระบบยังไม่มีข้อจำกัดเข้มงวดเหมือน Windows x64 รุ่นใหม่ เมื่อ rootkit เพิ่มจำนวนขึ้น เครื่องมือ ARK จึงเติบโตตามไปด้วย โดย IceSword เป็นหนึ่งในตัวแทนสำคัญของยุคนั้น

สภาพแวดล้อมดังกล่าวสร้างการแข่งขันระหว่างสองฝ่าย

   Rootkit ซ่อน Process


ARK เพิ่มวิธี Enumerate ใหม่


Rootkit วิเคราะห์และหลบ ARK


ARK ลงไปอ่าน Kernel Structure โดยตรง


Rootkit โจมตี Driver หรือ Communication ของ ARK

มันคือเกมแมวไล่จับหนูที่ไม่มีฝ่ายใดชนะอย่างถาวร


4. 手工杀毒 — วัฒนธรรมการกำจัดมัลแวร์ด้วยมือ

หนึ่งในคำสำคัญของวงการ Security จีนยุคนั้นคือ

手工杀毒 — Shǒugōng shādú

แปลตรงตัวได้ว่า การกำจัดไวรัสด้วยมือ

แทนที่จะติดตั้ง antivirus แล้วกด Scan ผู้ใช้ระดับสูงจะเปิด ARK และตรวจสอบระบบทีละส่วนด้วยตัวเอง

   ตรวจ Process

ตรวจ Module

ตรวจ Driver

ตรวจ Startup Entry

ตรวจ File และ Registry

ตรวจ Hook และ Callback

Terminate / Unload / Delete / Restore

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

คำว่า 操控感 สามารถอธิบายได้ว่าเป็นความรู้สึกที่ผู้ใช้สามารถควบคุมระบบได้โดยตรง ARK จีนจำนวนมากจึงไม่ได้เน้นเพียงการตรวจจับ แต่ยังให้ผู้ใช้ terminate, unload, restore หรือลบสิ่งผิดปกติด้วยตัวเอง

นี่ไม่ได้หมายความว่าต่างประเทศไม่มีเครื่องมือที่ดี เพราะยังมีเครื่องมืออย่าง RootkitRevealer, BlackLight, GMER และ Kernel Detective

ความแตกต่างอยู่ที่แนวทางการออกแบบ

   Automated Security Product
    └── โปรแกรมเป็นผู้ตัดสินใจ

ARK Tool
    └── นักวิเคราะห์เป็นผู้ตัดสินใจ

5. 软件流氓 — เมื่อปัญหาไม่ได้มีเพียงไวรัส

อีกหนึ่งบริบทสำคัญคือการแพร่ระบาดของ 软件流氓 หรือซอฟต์แวร์อันธพาล

โปรแกรมประเภทนี้อาจไม่ได้ทำตัวเหมือนไวรัสแบบดั้งเดิมเสมอไป แต่มักมีพฤติกรรมเช่น

  • ติดตั้งพ่วงมากับโปรแกรมอื่น
  • แทรก browser
  • เปลี่ยน homepage
  • สร้าง startup entries
  • ป้องกัน process ของตัวเอง
  • ใช้ driver ป้องกันไฟล์และ registry
  • ถอนการติดตั้งได้ยาก
  • สร้าง process กลับขึ้นมาใหม่หลังถูกปิด

เมื่อซอฟต์แวร์ใช้ kernel driver ป้องกันตัวเอง เครื่องมือจัดการไฟล์หรือ Task Manager ธรรมดาจึงอาจไม่สามารถลบมันได้

IceSword ถูกนำมาใช้จัดการปัญหาประเภทนี้ เพราะสามารถมองเห็น hidden process, driver และข้อมูลที่ไม่ปรากฏผ่านเครื่องมือปกติ รวมถึงจัดการไฟล์หรือ registry ที่ถูก driver ป้องกันไว้ได้

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


6. IceSword — จุดเริ่มต้นของตำนาน ARK จีน

เมื่อพูดถึง ARK จีน ชื่อแรกที่มักถูกกล่าวถึงคือ IceSword หรือ 冰刃

IceSword ถูกพัฒนาโดยโปรแกรมเมอร์จีนที่ใช้ชื่อว่า pjf_ และได้รับชื่อเสียงอย่างมากในช่วงประมาณปี 2005

หน้าตาของมันมีลักษณะคล้าย Windows Explorer แต่สามารถแสดงสิ่งที่ Windows Explorer หรือ Task Manager ไม่สามารถมองเห็นได้ เช่น

  • Hidden process
  • Hidden file
  • Hidden service
  • Hidden registry entry
  • Kernel module
  • Protected object

สิ่งที่ทำให้ IceSword กลายเป็นตำนานไม่ใช่เพียงจำนวนฟังก์ชัน แต่เป็นความสามารถในการต่อสู้กับ rootkit ที่มีอยู่จริง

ในปี 2005 ผู้พัฒนา Hacker Defender ซึ่งเป็น rootkit ที่มีชื่อเสียงในยุคนั้น ระบุว่า IceSword เป็นเครื่องมือ Anti-Rootkit ที่สามารถตรวจจับ Hacker Defender ได้ และมองว่ามันเป็นความท้าทายที่เขาต้องการเอาชนะ

เหตุการณ์นี้แสดงให้เห็นว่า IceSword ไม่ได้เป็นเพียงโปรแกรมดูข้อมูลระบบ แต่ได้รับการยอมรับจากฝั่งผู้พัฒนา rootkit ว่าเป็นคู่ต่อสู้ทางเทคนิค

นี่คือธรรมชาติของ ARK

ARK ไม่ได้ยืนอยู่นอกสนามรบ แต่มันเป็นส่วนหนึ่งของสนามรบ


7. จาก IceSword สู่ XueTr และ PCHunter

หลังจาก IceSword ประสบความสำเร็จ เครื่องมือ ARK รุ่นใหม่ก็เริ่มปรากฏขึ้น

7.1 Wsyscheck

Wsyscheck เน้นความสะดวกในการใช้งาน สามารถตรวจสอบ process, service, module และ file system พร้อมใช้สีช่วยแยกรายการที่น่าสงสัย

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

7.2 XueTr

XueTr ขยายขอบเขตของ ARK อย่างมาก โดยรวมความสามารถหลายประเภทไว้ในโปรแกรมเดียว เช่น

  • Process, thread และ module inspection
  • SSDT และ Shadow SSDT inspection
  • IDT inspection
  • Kernel callback enumeration
  • Filter driver inspection
  • Object type hook detection
  • Kernel patch detection
  • File system และ registry management
  • Inline hook detection และ restoration

รายการความสามารถของ XueTr แสดงให้เห็นว่า ARK เริ่มเปลี่ยนจากเครื่องมือกำจัด rootkit ไปเป็น Windows Kernel Inspection Platform

7.3 PCHunter

เมื่อ Windows เปลี่ยนเข้าสู่ยุค x64 เครื่องมือจำนวนมากหยุดพัฒนาเพราะต้องรับมือกับ

  • Driver Signature Enforcement
  • Kernel Patch Protection
  • ความแตกต่างของโครงสร้างใน Windows แต่ละรุ่น
  • การเปลี่ยนแปลงของ internal symbols และ offsets
  • กลไกป้องกัน kernel ที่ซับซ้อนขึ้น

PCHunter กลายเป็นหนึ่งในชื่อที่ยังถูกพูดถึงในฐานะผู้สืบทอดแนวคิด ARK บน Windows รุ่นใหม่กว่า

เมื่อ Windows 10 และระบบ x64 แพร่หลาย จำนวน ARK ที่ยังใช้งานได้จริงลดลงอย่างมาก เพราะการพัฒนาเครื่องมือประเภทนี้ต้องรับมือกับข้อจำกัดด้าน driver signing และการป้องกันข้อมูลสำคัญของ kernel


8. ทำไมการสร้าง ARK จึงเป็นการโชว์ความรู้ด้าน Kernel

ผู้ใช้ทั่วไปอาจมองเห็นเพียง GUI ที่มีรายการ process, driver และ callback

แต่สิ่งที่อยู่เบื้องหลัง ARK หนึ่งตัวมีความซับซ้อนกว่านั้นมาก

ความสามารถของ ARKความรู้ที่นักพัฒนาต้องมี
แสดง Process และ ThreadWindows Process Manager, EPROCESS, ETHREAD
ค้นหา Hidden ProcessDKOM, Cross-view Detection, Handle Table
แสดง Driver และ Kernel ModulePsLoadedModuleList, PE Format, Loader Internals
ตรวจ SSDT และ Inline HookAssembly, Disassembly, Calling Convention
แสดง Kernel CallbackCallback Internals, Symbols, Reverse Engineering
ตรวจ Filter DriverI/O Manager, Device Stack, IRP
ตรวจ File และ RegistryFile System Driver, Configuration Manager
อ่าน Process MemoryVirtual Memory Manager, VAD, Page Table
ตรวจ User-mode HookPE Import/Export, IAT, EAT, Code Integrity
สื่อสารระหว่าง GUI กับ DriverIOCTL, Shared Memory, Synchronization
รองรับ Windows หลายรุ่นSymbols, Signatures, Dynamic Offset Resolution
ป้องกัน BSODIRQL, Locking, Reference Counting, Race Condition

การเขียน ARK จึงไม่ใช่เพียงการเขียน driver ที่สามารถอ่าน memory ได้

นักพัฒนาต้องเข้าใจว่า

  • Object ถูกสร้างและทำลายเมื่อใด
  • Pointer ใดมีอายุการใช้งานนานเพียงใด
  • ต้องเพิ่มและลด reference count ตรงไหน
  • Code สามารถทำงานที่ IRQL ระดับใด
  • โครงสร้างใดได้รับการป้องกัน
  • ข้อมูลใดเปลี่ยนไปตาม Windows build
  • การอ่านข้อมูลพร้อมกับ kernel ที่กำลังแก้ไขข้อมูลนั้นจะเกิด race condition หรือไม่

Driver ที่สามารถแสดง process ได้หนึ่งครั้งไม่ใช่เรื่องยากที่สุด

สิ่งที่ยากกว่าคือทำให้มัน

  • ทำงานได้อย่างเสถียร
  • ไม่ทำให้เครื่อง BSOD
  • รองรับหลาย Windows builds
  • แสดงข้อมูลที่เชื่อถือได้
  • ทำงานในระบบที่อาจพยายามหลอกหรือโจมตีตัวเครื่องมือ

GUI ของ ARK เป็นเพียงยอดภูเขาน้ำแข็ง ส่วนที่อยู่ใต้น้ำคือ Windows Internals, Reverse Engineering และ Kernel Engineering

ด้วยเหตุนี้ นักพัฒนา ARK จำนวนมากจึงไม่ได้สร้างเครื่องมือเหล่านี้เพื่อแข่งขันกับบริษัท Antivirus โดยตรง

พวกเขาสร้างมันเพื่อพิสูจน์ว่า

“ผมเข้าใจ Windows ลึกพอที่จะมองเห็นสิ่งที่ระบบปฏิบัติการปกติไม่แสดงออกมา”


9. ARK คือ Portfolio ของนักพัฒนา Kernel

ในสาย Web Development เราสามารถแสดงความสามารถผ่านเว็บไซต์หรือระบบที่สร้างขึ้น

ในสาย Game Development เราอาจสร้าง game engine หรือเกมหนึ่งตัว

ในสาย Compiler เราอาจสร้างภาษาโปรแกรมหรือ virtual machine

สำหรับสาย Windows Kernel การสร้าง ARK Tool เป็นหนึ่งในผลงานที่สามารถรวมความรู้แทบทุกส่วนไว้ในโปรเจกต์เดียว

   Windows Internals
        +
Kernel Driver Development
        +
Reverse Engineering
        +
Assembly
        +
Memory Management
        +
Operating System Design
        +
Security Research
        +
GUI Development
        =
ARK Tool

ผู้สร้าง ARK ไม่จำเป็นต้องอธิบายเป็นร้อยหน้าว่าเขาเข้าใจ kernel มากเพียงใด

เพียงเปิดโปรแกรม แล้วแสดงให้เห็นว่าเครื่องมือสามารถ enumerate, compare, inspect และอธิบายโครงสร้างภายในระบบได้อย่างถูกต้อง ผลงานก็พูดแทนตัวผู้สร้างแล้ว

ARK จึงมีสถานะคล้ายกับงานประเภทต่อไปนี้

  • การสร้าง Debugger
  • การสร้าง Disassembler
  • การสร้าง Hypervisor
  • การสร้าง Operating System
  • การสร้าง Antivirus Engine
  • การสร้าง Memory Forensics Framework

แต่ ARK มีลักษณะพิเศษ เพราะมันต้องทำงานอยู่ภายในระบบที่อาจถูกแก้ไขโดยคู่ต่อสู้


10. ความเป็น Dual-use ของ ARK

เทคนิคจำนวนมากใน ARK สามารถใช้ได้ทั้งฝ่ายป้องกันและฝ่ายโจมตี

เทคนิคฝ่ายป้องกันฝ่ายโจมตี
Enumerate Callbackตรวจสอบตำแหน่งของ Security Softwareค้นหา Callback เพื่อหลบการตรวจสอบ
อ่าน Physical Memoryตรวจสอบความสอดคล้องของ Kernelหลีกเลี่ยง API Monitoring
ตรวจ Hookค้นหา Rootkitค้นหา Hook ของ EDR
แก้ Process StructureRestore ความเสียหายซ่อนหรือเปลี่ยนสถานะ Process
EPT Hookสร้าง Stealth Monitorเปลี่ยน Execution View
UEFI Inspectionตรวจสอบ Boot Integrityแทรกแซงระบบก่อน OS ทำงาน

นี่เป็นเหตุผลว่าทำไม ARK บางตัวจึงถูก Antivirus ระบุเป็น HackTool แม้ว่าตัวเครื่องมือจะถูกสร้างขึ้นเพื่อวิเคราะห์ระบบก็ตาม

สิ่งที่แยก ARK, rootkit และ offensive tool ออกจากกันจึงไม่ใช่ API หรือเทคนิคที่ใช้เพียงอย่างเดียว แต่ประกอบด้วย

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

คนที่จะตรวจจับการบิดเบือนระบบได้ ต้องเข้าใจวิธีบิดเบือนระบบเสียก่อน


11. เมื่อ ARK แบบดั้งเดิมเริ่มไม่เพียงพอ

Windows รุ่นใหม่เพิ่มกลไกป้องกัน kernel หลายชั้น

11.1 Driver Signature Enforcement

Windows x64 กำหนดให้ kernel-mode driver ต้องมีลายเซ็นที่เหมาะสมก่อนจึงจะสามารถโหลดได้

11.2 Kernel Patch Protection

Kernel Patch Protection หรือ PatchGuard ทำให้การแก้ไขโครงสร้างสำคัญของ kernel โดยตรงมีความเสี่ยงที่จะทำให้ระบบหยุดทำงาน

11.3 Virtualization-based Security

Windows เริ่มใช้ virtualization เพื่อแยกข้อมูลและ security component สำคัญออกจาก kernel ปกติ

11.4 ความแตกต่างระหว่าง Windows Builds

Internal structures และ implementation details เปลี่ยนแปลงได้ในแต่ละ build ทำให้เครื่องมือที่อาศัย hardcoded offset มีอายุการใช้งานสั้น

ผลคือ ARK รุ่นใหม่ต้องเปลี่ยนแนวทาง

   ยุค Windows XP

    ├── SSDT Hook Detection
    ├── Inline Hook Detection
    └── Hidden Process Detection


ยุค Windows x64

    ├── Callback Inspection
    ├── Filter Driver Inspection
    ├── ETW และ Telemetry
    ├── Cross-view Enumeration
    ├── Hypervisor-based Inspection
    └── Firmware Integrity

ARK ไม่ได้หายไป แต่มันเปลี่ยนจากเครื่องมือกำจัด rootkit ให้กลายเป็น framework สำหรับสำรวจ trust boundary ของระบบ


12. DIOPROCESS — จาก Process Monitor สู่ Post-ARK Framework

DIOPROCESS คือโปรเจกต์ที่ผมพัฒนาขึ้นเพื่อศึกษา Windows Internals และการทำงานของระบบในหลาย privilege levels

จุดเริ่มต้นของมันคือ Windows process monitor ที่สามารถตรวจสอบ process, thread, handle, module, memory region, network connection และ system events ได้

ในภายหลังโปรเจกต์ถูกขยายให้มี kernel driver สำหรับงานวิจัย เช่น kernel callback enumeration, PspCidTable enumeration, process protection inspection และการวิเคราะห์ hook

อย่างไรก็ตาม เป้าหมายของ DIOPROCESS ไม่ได้หยุดอยู่ที่การเป็น Task Manager ที่มีฟังก์ชันมากขึ้น

มันถูกพัฒนาให้เป็น research framework ที่ครอบคลุมหลายระดับของระบบ

   ┌─────────────────────────────────────────────────────┐
│ Ring 3   │ DIOPROCESS User Interface                │
│          │ Process, Thread, Module, Memory, Network │
├──────────┼──────────────────────────────────────────┤
│ Ring 0   │ Windows Kernel Driver                    │
│          │ Kernel Object and Callback Research      │
├──────────┼──────────────────────────────────────────┤
│ Ring -1  │ Intel VT-x Hypervisor                    │
│          │ EPT, Hypercall, Memory Inspection        │
├──────────┼──────────────────────────────────────────┤
│ Pre-OS   │ UEFI Application / DXE Runtime Driver   │
│          │ Boot Process and Runtime Communication   │
├──────────┼──────────────────────────────────────────┤
│ Ring -2* │ System Management Mode                  │
│          │ Firmware-level Memory Research           │
└──────────┴──────────────────────────────────────────┘

* Ring -2 เป็นคำเรียกแบบไม่เป็นทางการเพื่ออธิบายตำแหน่งของ SMM

สถาปัตยกรรมส่วน firmware ประกอบด้วย module สำคัญ ได้แก่

  • DioProcessEfi
  • DioProcessDxe
  • DioProcessSmm

DioProcessEfi ใช้ศึกษาเส้นทางการ boot และช่วงเปลี่ยนผ่านระหว่าง UEFI กับระบบปฏิบัติการ

DioProcessDxe ทำหน้าที่เป็น runtime component และสะพานเชื่อมระหว่างโลกของ firmware กับระบบปฏิบัติการ

DioProcessSmm ใช้ศึกษาการสื่อสารและ memory operation ภายใน System Management Mode ซึ่งแยกออกจาก address space ปกติของระบบปฏิบัติการ


13. DNA ของ ARK ภายใน DIOPROCESS

แม้ว่า DIOPROCESS จะมีขอบเขตกว้างกว่า Anti-Rootkit Tool แบบดั้งเดิม แต่แนวคิดพื้นฐานยังคงเหมือนกัน

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

13.1 เมื่อ Ring 3 อาจถูกหลอก

เราตรวจสอบข้อมูลจาก kernel และเปรียบเทียบข้อมูลจากหลายแหล่ง

13.2 เมื่อ Ring 0 อาจถูกแก้ไข

เราสามารถใช้ Hypervisor เป็นอีกมุมมองหนึ่งในการตรวจสอบ execution และ memory

13.3 เมื่อระบบถูกแทรกแซงก่อน Kernel

เราต้องศึกษากระบวนการ boot, UEFI และ firmware components

13.4 เมื่อ Hypervisor ยังไม่ใช่ระดับล่างสุด

เราต้องทำความเข้าใจ SMM, SMRAM และกลไกของ platform firmware

เส้นทางวิวัฒนาการของ DIOPROCESS จึงสามารถเขียนได้ดังนี้

   Process Monitor


Windows Internals Tool


Kernel Research Tool


Anti-Rootkit / Rootkit Research


Hypervisor Research


UEFI and SMM Research


DIOPROCESS

14. ARK แบบดั้งเดิมกับ DIOPROCESS

หัวข้อARK แบบดั้งเดิมDIOPROCESS
เป้าหมายเริ่มต้นตรวจจับและกำจัด RootkitWindows Internals และ Security Research
User modeProcess, File, Registry, NetworkProcess, Thread, Handle, Module, Memory, Events
Kernel modeDriver, Hook, Callback, Hidden ObjectKernel Objects, Callbacks, Memory และ Process Research
Cross-viewเปรียบเทียบข้อมูลหลายแหล่งใน Kernelเปรียบเทียบข้อมูลข้าม User, Kernel และ Hypervisor
Hypervisorโดยทั่วไปไม่มีIntel VT-x และ EPT Research
UEFIโดยทั่วไปไม่มีUEFI Application และ DXE Runtime Components
SMMไม่มีSMM Communication และ Memory Research
ลักษณะเครื่องมือManual Rootkit Removal ToolMulti-layer Windows Research Framework
คุณค่าด้าน Portfolioแสดงความรู้ Windows Kernelแสดงความรู้ตั้งแต่ Ring 3 ถึง Firmware

ผมจึงมอง DIOPROCESS ว่าเป็นเครื่องมือในกลุ่ม

Modern Post-ARK Windows Research Framework

มันไม่ได้แทนที่ IceSword หรือ PCHunter และไม่ได้พยายามทำหน้าที่เหมือน antivirus

แต่มันนำคำถามพื้นฐานของ ARK มาขยายต่อ

จากเดิมที่ถามว่า

มี process หรือ driver อะไรถูกซ่อนจาก Windows หรือไม่?

กลายเป็นคำถามว่า

ข้อมูลที่เราเห็นมาจาก privilege level ใด และระดับนั้นสามารถถูกหลอกได้อย่างไร?


15. การสร้าง DIOPROCESS ในฐานะ Portfolio

การเพิ่มจำนวนฟีเจอร์ไม่ใช่เป้าหมายเดียวของ DIOPROCESS

แต่ละส่วนของโปรเจกต์เป็นแบบฝึกหัดสำหรับทำความเข้าใจระบบคนละด้าน

Componentสิ่งที่ต้องศึกษา
User InterfaceDesktop Architecture, State Management, FFI
User-mode InspectorWin32, Native API, PE, Process Internals
Kernel DriverWDK, Object Manager, Memory Manager, Synchronization
HypervisorVMX, VMCS, EPT, DPC, Multi-core Virtualization
UEFI ApplicationBoot Services, Runtime Services, PE/COFF
DXE DriverUEFI Protocols, Events, Virtual Address Conversion
SMM DriverSMI, SMRAM, MM Communication, Page Table
Communication LayerIOCTL, Shared Buffer, ABI, Validation
Multi-version SupportSymbols, Signatures, Offsets, Compatibility

การทำให้แต่ละ component ทำงานแยกจากกันเป็นเรื่องหนึ่ง

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

   GUI


User-mode Controller


Kernel Driver

 ├────────> Hypervisor

 └────────> UEFI Runtime Component


                 SMM

นี่คือเหตุผลที่ผมมองว่าโปรเจกต์ประเภท ARK เป็นงานโชว์ความสามารถที่ดีสำหรับนักพัฒนา kernel

มันไม่ได้แสดงเพียงว่าเราสามารถเขียน driver ได้ แต่แสดงว่าเราเข้าใจความสัมพันธ์ระหว่าง component ต่าง ๆ ของระบบ


16. ARK ไม่ได้ตาย แต่มันเปลี่ยนรูปร่าง

ในปัจจุบัน ผู้ใช้ทั่วไปอาจไม่จำเป็นต้องเปิด ARK เพื่อกำจัดมัลแวร์ด้วยมือเหมือนในยุค Windows XP แล้ว

Antivirus และ EDR มีระบบตรวจจับอัตโนมัติที่ดีขึ้น ขณะที่ Windows เพิ่มกลไกป้องกัน kernel และ firmware มากขึ้น

แต่แนวคิดของ ARK ยังคงอยู่ในเครื่องมือหลายประเภท

  • EDR diagnostic tools
  • Memory forensic frameworks
  • Kernel debuggers
  • Anti-cheat diagnostic tools
  • Hypervisor-based monitors
  • Firmware integrity tools
  • Incident response tools
  • Threat research frameworks

ทุกเครื่องมือยังคงพยายามตอบคำถามเดียวกัน

เราจะสร้างมุมมองที่ผู้โจมตีแก้ไขหรือหลอกได้ยากกว่าเดิมได้อย่างไร?

ในยุคหนึ่ง คำตอบคือ kernel driver

ในอีกยุคหนึ่ง คำตอบอาจเป็น hypervisor

สำหรับภัยคุกคามบางประเภท คำตอบอาจต้องลงไปถึง UEFI, SMM หรือ external hardware

แต่ไม่มีระดับใดเป็นแหล่งความจริงที่สมบูรณ์ตลอดไป

ทุกระดับมี trust assumption ของตัวเอง


17. สรุปท้ายบท

สาเหตุที่วงการ Security จีนมี ARK Tool จำนวนมากไม่ได้เกิดจากเหตุผลเดียว แต่เป็นผลจากองค์ประกอบหลายด้าน

  1. Windows XP เปิดโอกาสให้ rootkit และ kernel hook เติบโตอย่างรวดเร็ว
  2. มัลแวร์และ软件流氓จำนวนมากใช้ driver ป้องกัน process, file และ registry ของตัวเอง
  3. วัฒนธรรม手工杀毒ให้ความสำคัญกับการวิเคราะห์และกำจัดภัยคุกคามด้วยมือ
  4. ผู้ใช้ต้องการ操控感 หรือความรู้สึกว่าสามารถควบคุมระบบได้โดยตรง
  5. ชุมชนนักพัฒนาใช้ ARK เป็นพื้นที่ทดลอง Windows Internals และ Reverse Engineering
  6. การสร้าง ARK เป็นวิธีแสดงความรู้ด้าน kernel ที่มองเห็นได้ผ่านผลงานจริง

IceSword แสดงให้เห็นว่าโปรแกรมเมอร์คนหนึ่งสามารถสร้างเครื่องมือที่กลายเป็นคู่ต่อสู้ของ rootkit ระดับนานาชาติได้

XueTr และเครื่องมือรุ่นต่อมาแสดงให้เห็นว่า ARK สามารถวิวัฒนาการเป็นแพลตฟอร์มสำหรับสำรวจ Windows Kernel ได้

DIOPROCESS คือการนำแนวคิดนั้นมาพัฒนาต่อในบริบทของระบบสมัยใหม่

จาก Process Monitor ไปยัง Kernel Driver

จาก Kernel Driver ไปยัง Hypervisor

จาก Hypervisor ไปยัง UEFI และ SMM

ท้ายที่สุดแล้ว แก่นของ ARK ไม่ได้อยู่ที่จำนวน process ที่มันสามารถ terminate ได้ หรือจำนวน hook ที่มันสามารถตรวจจับได้

แก่นของมันคือความพยายามค้นหาความจริงในระบบที่ข้อมูลทุกชั้นสามารถถูกแก้ไขได้

เมื่อระบบปฏิบัติการสามารถโกหกเราได้ เราจะลงไปตรวจสอบความจริงจากชั้นไหน?

และนั่นคือคำถามเดียวกับที่ผลักดันทั้งผู้สร้าง IceSword ในอดีต และผลักดันให้ผมสร้าง DIOPROCESS ในปัจจุบัน

Happy Hacking :)


References