- RootkitRevealer ตรวจจับความแตกต่างระหว่าง Windows API และข้อมูลดิบเพื่อเปิดเผยปัญหาที่ซ่อนอยู่
- ตีความผลลัพธ์: เมตาดาต้า NTFS, รีจิสทรี และประเภทความคลาดเคลื่อนของระบบไฟล์
- ใช้ตัวเลือก -a -c -m -r และการดำเนินการระยะไกลกับ PsExec ซึ่งต้องใช้ผลบวกปลอมน้อยที่สุดเมื่อระบบไม่ได้ใช้งาน
- การป้องกันและการตอบสนอง: การบูตอย่างปลอดภัย/TPM การสแกนแบบออฟไลน์ เครื่องมือป้องกันรูทคิท และการคืนค่าแบบควบคุม

RootkitRevealer เป็นหนึ่งในยูทิลิตี้ระดับตำนานที่ผู้เชี่ยวชาญด้าน Windows ทุกคนควรรู้จัก โปรแกรมนี้สร้างขึ้นโดยทีม Sysinternals โดยมี Mark Russinovich เป็นหัวหน้าทีม และถึงแม้ว่าจะออกมาหลายปีแล้ว แต่ก็ยังคงเป็นเครื่องมืออ้างอิงในการทำความเข้าใจวิธีการตรวจจับความไม่สอดคล้องกันที่เกิดจากรูทคิตระหว่างสิ่งที่ระบบแสดงกับสิ่งที่อยู่บนดิสก์จริง
แตกต่างจากโปรแกรมสแกนอื่นๆ โปรแกรมนี้ไม่ได้มองหาลายเซ็นหรือรูปแบบ แต่จะเปรียบเทียบมุมมองระดับสูงของ Windows API กับการอ่านข้อมูลดิบระดับต่ำจากดิสก์และรีจิสทรี แนวคิดที่ดูเรียบง่ายนี้ช่วยเปิดเผยเมื่อมัลแวร์พยายามซ่อนไฟล์ คีย์ หรือค่าต่างๆโดยการเปลี่ยนแปลงการเรียกใช้ระบบ
RootkitRevealer คืออะไร และทำงานบนระบบใดบ้าง?
นี่คือเครื่องมือขั้นสูงสำหรับตรวจจับสัญญาณของรูทคิตทั้งในโหมดผู้ใช้และโหมดเคอร์เนลเดิมทีพัฒนาขึ้นสำหรับ Windows XP และ Windows Server 2003 (32 บิต) และโดยทั่วไปมักระบุว่าเป็นโปรแกรมฟรี มีภาษาอังกฤษ และมีขนาดประมาณ 231 กิโลไบต์ หลายรายการยังระบุว่าสามารถใช้งานร่วมกับ Windows NT/2000/XP/Vista ได้ในขณะนั้นด้วย
เมื่อเวลาผ่านไป เวอร์ชันที่ใช้คำสั่งบรรทัดอย่างเดียวถูกกำจัดออกไป เนื่องจากผู้เขียนมัลแวร์บางรายเริ่มตรวจสอบชื่อไฟล์ปฏิบัติการ เพื่อหลีกเลี่ยงปัญหานี้ โปรแกรมจึงถูกเรียกใช้งานในรูปแบบบริการจากสำเนาของตัวเองที่มีชื่อแบบสุ่ม ทำให้การตรวจจับด้วยชื่อทำได้ยากขึ้น และทำให้การให้บริการอินเทอร์เฟซคอนโซลแบบ 100% ซับซ้อน ขึ้น
รูทคิทคืออะไร แนวคิดหลัก
คำว่า รูทคิต (rootkit) หมายถึง เทคนิคและกลไกที่ช่วยให้มัลแวร์ (ไวรัส โทรจัน สปายแวร์ ฯลฯ) ซ่อนตัวจากผู้ใช้และเครื่องมือรักษาความปลอดภัยได้มีการแบ่งออกเป็นหลายประเภท ได้แก่ แบบถาวร (ยังคงอยู่หลังรีบูตเครื่อง) แบบอยู่ในหน่วยความจำ (หายไปเมื่อรีบูตเครื่อง) แบบโหมดผู้ใช้ และแบบโหมดเคอร์เนล รวมถึงรูปแบบอื่นๆ ที่ทันสมัยกว่า
รูทคิตในโหมดผู้ใช้สามารถดักจับฟังก์ชันต่างๆ เช่น FindFirstFile/FindNextFile หรือตัวนับข้อมูลพื้นฐานของระบบ เพื่อกรองรายการที่จะเปิดเผยไฟล์ กระบวนการ หรือคีย์รีจิสทรีที่ถูกแก้ไขซึ่งจะป้องกันไม่ให้ Explorer, พรอมต์คำสั่ง หรือโปรแกรมแก้ไขรีจิสทรีเห็นสิ่งที่มีอยู่จริง
รูทคิตในโหมดเคอร์เนลนั้นทำได้มากกว่านั้น: นอกจากการดักจับ API ดั้งเดิมแล้ว พวกมันยังสามารถจัดการโครงสร้างเคอร์เนลได้โดยตรง ตัวอย่างเช่น โดยการลบกระบวนการของพวกมันออกจากรายการกระบวนการที่ทำงานอยู่ เพื่อไม่ให้ปรากฏในตัวจัดการงานหรือตัวสำรวจกระบวนการแม้ว่ามันจะกำลังทำงานอยู่ก็ตาม
มีบูตโหลดเดอร์หลายประเภท ได้แก่ บูตโหลดเดอร์แบบไฮบริด (ส่วนหนึ่งขึ้นอยู่กับผู้ใช้และอีกส่วนหนึ่งขึ้นอยู่กับเคอร์เนล), เฟิร์มแวร์ (BIOS/UEFI และส่วนประกอบอื่นๆ), บูตคิท (MBR/UEFI), บูตโหลดเดอร์เสมือน (ซึ่งวางระบบปฏิบัติการจริงไว้ภายในเครื่องเสมือน) และบูตโหลดเดอร์แบบใช้หน่วยความจำ (ไม่คงอยู่ถาวร) บูตโหลดเดอร์แบบหลังอาจหาได้ยากเป็นพิเศษ ในขณะที่เฟิร์มแวร์และบูตโหลดเดอร์จะยังคงอยู่แม้หลังจาก การติด ตั้งระบบปฏิบัติการใหม่ทั้งหมด
RootkitRevealer ทำงานอย่างไร
RKR เปรียบเทียบภาพรวมสองแบบ: มุมมองระดับสูงของ Windows API และการอ่านข้อมูลดิบระดับต่ำของไฟล์โครงสร้างย่อยของไดรฟ์และรีจิสทรี (hives) หากรูทคิตทำการแก้ไขการเรียกใช้ระดับสูงเพื่อซ่อนบางสิ่ง การเปลี่ยนแปลงนี้จะถูกเปิดเผยเนื่องจากสิ่งที่อยู่บนดิสก์และในรีจิสทรีไม่ตรงกับสิ่งที่ API ระบุไว้ ทำให้เกิดความคลาดเคลื่อนที่สามารถวินิจฉัยได้
ในทางทฤษฎี รูทคิตอาจพยายามซ่อนตัวจาก RootkitRevealer โดยการดักจับการอ่านข้อมูลดิบและเขียนทับข้อมูลแบบเรียลไทม์ เพื่อให้บรรลุเป้าหมายนี้ รูทคิตจำเป็นต้องมีความรู้เชิงลึกเกี่ยวกับรูปแบบ NTFS, FAT และ Registry และสามารถแก้ไขโครงสร้างโดยไม่ก่อให้เกิดความไม่สอดคล้องกันหรือผลข้างเคียงที่เห็นได้ชัด ซึ่งเป็นความสามารถทางเทคนิคที่ซับซ้อนมากและพบเห็นได้ยาก ถึงกระนั้น ก็ไม่มี "ตัวตรวจจับสากล" ที่สมบูรณ์แบบ: แม้แต่การบูตจากสภาพแวดล้อมภายนอก (เช่น การใช้ระบบปฏิบัติการ Linux ที่ดีที่สุด ) ก็อาจถูกโจมตีโดย สิ่งประดิษฐ์ ที่ซับซ้อนและคงอยู่ยาวนาน เป็นพิเศษ ในทางปฏิบัติ วิธีการที่แข็งแกร่งที่สุดคือการผสมผสานการวิเคราะห์ออนไลน์กับการตรวจสอบแบบออฟไลน์ในสภาพแวดล้อมที่เชื่อถือได้
ข้อกำหนด แนวทางปฏิบัติที่ดี และการดำเนินการ
ในการเรียกใช้การสแกนนี้ บัญชีผู้ใช้จำเป็นต้องมีสิทธิ์ "สำรองไฟล์และไดเร็กทอรี" "โหลดไดรเวอร์" และ "การบำรุงรักษาไดรฟ์" (สิทธิ์เหล่านี้จะได้รับโดยอัตโนมัติสำหรับผู้ดูแลระบบใน Windows XP และเวอร์ชันที่ใหม่กว่า) เพื่อลดโอกาสเกิดผลลัพธ์ที่ผิดพลาด ขอแนะนำให้เรียกใช้การสแกนในขณะที่ระบบอยู่ในสถานะพักและไม่มีแอปพลิเคชันใดเปิดอยู่
ในการใช้งานแบบแมนนวล เพียงแค่กดปุ่มสแกน ในระหว่างกระบวนการ โปรแกรมจะแสดงความคืบหน้าและแสดงรายการความผิดปกติใดๆ มีสองตัวเลือกที่เกี่ยวข้อง ได้แก่ “ซ่อนไฟล์เมตาเดตา NTFS” (เปิดใช้งานโดยค่าเริ่มต้น เพื่อหลีกเลี่ยงการแสดงเมตาเดตามาตรฐานที่ซ่อนไว้โดย NTFS) และ “บันทึกการสแกน” (เปิดใช้งานโดยค่าเริ่มต้น การยกเลิกการเลือกจะข้ามการสแกนรีจิสทรีของ Windows )
สำหรับการทำงานอัตโนมัติ รองรับพารามิเตอร์ที่ให้คุณเริ่มระบบ เข้าสู่ระบบ และออกโดยไม่ต้องมีการแทรกแซง: rootkitrevealer outputfile]. ทางเลือก -a เริ่มและสิ้นสุดโดยอัตโนมัติ; -c ส่งออกผลลัพธ์เป็น CSV; -m แสดงข้อมูลเมตาของ NTFS และ -r ปิดใช้งานการสแกนรีจิสทรี ไฟล์เอาต์พุตต้องอยู่ในรูปแบบ ปริมาณข้อมูลท้องถิ่นที่เข้าถึงได้.
สามารถดำเนินการระยะไกลได้ด้วย PsExec ตัวอย่างเช่น: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. กับ -c, ไม่แสดงความคืบหน้าและความคลาดเคลื่อนจะพิมพ์เป็น CSV ทำให้นำเข้าได้ง่ายขึ้น ในฐานข้อมูลหรือสคริปต์.
การตีความผลลัพธ์และความคลาดเคลื่อนทั่วไป
ข้อผิดพลาด "ซ่อนจาก Windows API" เป็นสิ่งที่พบได้บ่อยที่สุดเมื่อรูทคิตซ่อนข้อมูล หากคุณไม่ได้เปิดใช้งานการแสดงเมตาเดตาของ NTFS คุณจะเห็นความแตกต่างเนื่องจาก NTFS ซ่อนไฟล์ภายใน เช่น$MFT หรือ $Secure จาก API โปรแกรมป้องกันไวรัสบางโปรแกรมก็จัดเก็บข้อมูลในสตรีมทางเลือกและซ่อนไว้ ทำให้เกิดข้อผิดพลาดที่คล้ายกัน
นี่คือเมตาเดตามาตรฐานบางส่วนที่กำหนดไว้ใน NTFS (Windows Server 2003): $AttrDef, $BadClus, $BadClus:$Bad, $BitMap, $Boot, $LogFile, $Mft, $MftMirr, $Secure, $UpCase, $Volume, $Extend, $Extend\$Reparse, $Extend\$ObjId, $Extend\$UsnJrnl, $Extend\$UsnJrnl:$Max, $Extend\$ Quota
RKR เชื่อมโยงแหล่งข้อมูลสามแหล่งในระบบไฟล์ ได้แก่ Windows API, Master File Table (MFT) และดัชนีไดเร็กทอรีบนดิสก์ อาจพบข้อความแสดงความไม่สอดคล้องกันชั่วคราว เช่น "มองเห็นได้ใน API แต่มองไม่เห็นในดัชนีหรือ MFT" หรือ "มองเห็นได้ใน MFT แต่มองไม่เห็นใน API " เป็นต้น
ตัวอย่างการสร้างระหว่างการสแกน: C:\newfile.txtขนาด 8 ไบต์ พร้อมข้อความ “มองเห็นได้ใน API แต่ไม่ปรากฏในดัชนีหรือ MFT” กรณีเหล่านี้ไม่ได้บ่งชี้ถึงรูทคิทเสมอไป แต่บ่งชี้ถึง การเปลี่ยนแปลงที่เกิดขึ้นพร้อมกัน ขณะที่กำลังถูกตรวจสอบ
หากข้อความ "Access denied" ปรากฏขึ้น แสดงว่ามีบางอย่างผิดปกติ: RootkitRevealer ใช้กลไกในการเข้าถึงไฟล์ ไดเร็กทอรี หรือคีย์ใดๆ ดังนั้นข้อความดังกล่าวไม่ควรปรากฏขึ้นภายใต้ สภาวะการ ทำงานปกติ
ในรีจิสทรี มีความผิดปกติที่น่าสนใจหลายประการ ได้แก่ “ความยาวของ Windows API ไม่สอดคล้องกับข้อมูลดิบ” (อาจเป็นการพยายามซ่อนเนื้อหาจริง) “ประเภทไม่ตรงกัน” (เช่น มีการแสดง REG_SZ แต่ควรจะเป็น REG_BINARY) และ “ชื่อคีย์มีค่า NULL ฝังอยู่” (เทคนิคที่รู้จักกันดีซึ่งใช้ประโยชน์จากความแตกต่างระหว่างสตริงที่ลงท้ายด้วย NULL และสตริงที่มีจำนวนนับ) สำหรับกรณีสุดท้ายนี้ ยูทิลิตี้ RegDelNull ของ Sysinternalsช่วยในการล้างคีย์ที่มีค่า NULL ฝังอยู่
“ข้อมูลไม่ตรงกัน” อาจเกิดขึ้นได้หากค่ามีการเปลี่ยนแปลงในระหว่างการสแกน (เช่น เวลาทำงานของ SQL Server เช่น HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). คุณต้องตรวจสอบว่าค่านั้นเป็นของ ส่วนประกอบที่ถูกต้องตามกฎหมาย ที่อัปเดตข้อมูลแบบเรียลไทม์
ตัวอย่างที่เห็นได้ชัดคือ รูทคิต HackerDefender: บริการและไดรเวอร์ของมันมองไม่เห็นโดย Windows API แต่ปรากฏอยู่ในการอ่านข้อมูลดิบของรีจิสทรี และไฟล์ของมันก็เช่นกัน ซึ่งการวิเคราะห์ระบบไฟล์โดยตรงสามารถตรวจพบได้บนดิสก์
ข้อผิดพลาดและปัญหาทั่วไปกับ rootkitrevealer.exe ในสภาพแวดล้อมทางนิติวิทยาศาสตร์
ชุดเครื่องมือทางนิติวิทยาศาสตร์บางชุด (เช่น WinTaylor) จะแสดงข้อผิดพลาดทั่วไปที่เกี่ยวข้องกับrootkitrevealer.exeเช่น “ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้อง” “ไม่พบ” “ข้อผิดพลาดของแอปพลิเคชัน” หรือ “ปัญหาในการเริ่มต้นระบบ” ข้อความเหล่านี้มักเกิดขึ้นระหว่างการติดตั้งระบบ การเริ่มต้นระบบ หรือการปิดระบบ หรือเนื่องจากความขัดแย้งกับแอปพลิเคชันอื่นๆ ที่ติดตั้งอยู่ภายในระบบ
สาเหตุที่พบบ่อยที่สุด ได้แก่ ไฟล์เสียหายหรือสูญหาย รายการรีจิสทรีไม่ถูกต้อง การติดมัลแวร์ การถอนการติดตั้งไม่สมบูรณ์ หรือความขัดแย้งกับซอฟต์แวร์อื่น แหล่งที่มาอาจมาจากรายการรีจิสทรีที่เสียหาย การลบโดยไม่ได้ตั้งใจจากเครื่องมืออื่น การดาวน์โหลดล้มเหลว หรือการติดไวรัสก่อนหน้านี้ที่เปลี่ยนแปลงไฟล์ไบนารี
เพื่อความน่าสนใจของสินค้าคงคลัง รายการบางรายการแสดงไฟล์ปฏิบัติการที่มีขนาดประมาณ 334.720 ไบต์และ แฮชเช่น SHA‑1 และ MD5 (เช่น SHA‑1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, เอ็มดี5 ee738fe9bcdd605821002cec8c7206db) และ CRC32 98b1af0b; พวกเขายังอ้างถึง เวอร์ชัน 2.1 ในแอปคอนเทนเนอร์ และหมวดหมู่ “ชุดเครื่องมือนิติวิทยาศาสตร์/ระบบปฏิบัติการ”
วิธีการตรวจจับและตอบสนองรูทคิท
การตรวจจับรูทคิตไม่ใช่เรื่องง่ายเสมอไป นอกเหนือจากเครื่องมือเฉพาะแล้ว เทคนิคต่างๆ เช่น การวิเคราะห์ลายเซ็นของภัยคุกคามที่รู้จัก การเปรียบเทียบโครงสร้างแบบเย็น การค้นหาหน่วยความจำเพื่อหาฮุกและการเปลี่ยนแปลง และการตรวจสอบหน่วยความจำที่ดัมพ์หลังจากระบบล่ม จะถูกนำมาใช้ร่วมกันเพื่อระบุโมดูลที่น่าสงสัยนอกจากนี้ยังนิยมใช้ระบบป้องกันการบุกรุก (IPS)เพื่อปกป้องเครือข่ายและลดช่องทางการติดเชื้อด้วย
โปรแกรมยูทิลิตี้เฉพาะทาง ได้แก่ GMER (สำหรับตรวจจับกระบวนการที่ซ่อนอยู่และการเปลี่ยนแปลงเคอร์เนล), Kaspersky TDSSKiller (โดยเฉพาะอย่างยิ่งสำหรับการตรวจจับบูทคิตและรูทคิตเคอร์เนล), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (สำหรับการสแกนก่อนที่ Windows จะเริ่มทำงาน) และ RogueKiller การเรียกใช้โปรแกรมเหล่านี้จาก ไดรฟ์ USB ที่เชื่อถือได้และสามารถบูตได้หรือใน Safe Mode จะช่วยลดความเสี่ยงจากการถูกโจมตี
สำหรับภัยคุกคามจากการบูตหรือเฟิร์มแวร์ ขอแนะนำให้ใช้สื่อกู้คืน เช่น Kaspersky Rescue Disk คืนค่า MBR ด้วย bootrec /fixmbr หากเหมาะสมและในกรณีร้ายแรง ให้อัพเดต/แฟลช BIOS/UEFI เป็นเวอร์ชันใหม่จากผู้ผลิตเพื่อกำจัด ความคงอยู่ระดับต่ำ.
การตรวจสอบด้วย Sysinternals นั้นมีคุณค่าอย่างยิ่ง: Process Monitor (ProcMon) สำหรับตรวจสอบกิจกรรมของกระบวนการและไฟล์, Autoruns สำหรับตรวจสอบสิ่งที่โหลดเมื่อเริ่มต้นระบบ และRootkitRevealerสำหรับตรวจสอบความผิดปกติในระดับสูง/ต่ำแพลตฟอร์ม SIEM เช่น Wazuhและระบบ telemetry ในสภาพแวดล้อมระดับองค์กรสามารถเปิดเผยพฤติกรรมเครือข่ายที่ไม่คาดคิดหรือการเปลี่ยนแปลงความสมบูรณ์ของข้อมูลได้
หากตรวจพบการติดเชื้อ ลำดับขั้นตอนที่เหมาะสมคือ: ถอดเครื่องออกจากเครือข่าย สแกนจากสภาพแวดล้อมภายนอก ตรวจสอบความสมบูรณ์ของระบบบูต/เฟิร์มแวร์ และหากไม่มีวิธีรับประกัน ให้สำรองข้อมูล ทำความสะอาดดิสก์อย่างสมบูรณ์ (โดยใช้เครื่องมือเช่น DBAN) และติดตั้งระบบใหม่จากสื่อที่ได้รับการตรวจสอบแล้ว จากนั้นเปิดใช้งานมาตรการต่างๆ เช่นSecure Boot และ TPM
การป้องกัน: การป้องกันที่เหมาะสมต่อรูทคิท
การป้องกันเป็นสิ่งสำคัญที่สุด หมั่นอัปเดตระบบของคุณอยู่เสมอ ติดตั้งแพทช์สำหรับซอฟต์แวร์จากผู้ผลิตรายอื่น หลีกเลี่ยงไฟล์ปฏิบัติการจากแหล่งที่ไม่น่าเชื่อถือ และอย่าใช้โปรแกรมแคร็กหรือคีย์เจน เพราะเป็นช่องทางที่นิยมใช้ในการติดตั้งรูทคิตดรอปเปอร์และตัวโหลด โปรแกรม
ปิดใช้งานการทำงานอัตโนมัติของ USB สแกนไดรฟ์ภายนอกก่อนเปิดใช้งาน และในสภาพแวดล้อมระดับองค์กร ให้จำกัดหรือบล็อกพอร์ตและใช้ไฟร์วอลล์ตามความเหมาะสม ทำงานกับบัญชีผู้ใช้ที่ไม่ได้รับสิทธิ์พิเศษ ใช้หลักการให้สิทธิ์ขั้นต่ำ และกำหนดให้ต้องใช้ข้อมูลรับรองของผู้ดูแลระบบสำหรับการเปลี่ยนแปลงที่สำคัญ เพื่อลดโอกาสการยกระดับสิทธิ์โดยไม่แจ้งให้ทราบล่วงหน้า
บนฮาร์ดแวร์ที่รองรับ ให้เปิดใช้งานSecure Bootและ TPM จาก UEFI เพื่อปกป้องลำดับการบูตและการผนึกคีย์ ควรทำการสำรองข้อมูลแบบออฟไลน์หรือแบบถาวรเป็นประจำ และใช้สแนปช็อต/จุดคืนค่าเพื่อลดเวลาในการกู้คืนหากเกิด ปัญหา ขึ้น
วิธีการติดตั้งรูทคิท: ดรอปเปอร์ โหลดเดอร์ และเวกเตอร์
โดยทั่วไป ผู้โจมตีจะเผยแพร่รูทคิตในรูปแบบของภัยคุกคามแบบผสมผสาน: "ดรอปเปอร์" ที่ส่งแพ็กเกจ และ "โหลดเดอร์" ที่ใช้ประโยชน์จากช่องโหว่ (เช่น บัฟเฟอร์โอเวอร์โฟลว์) เพื่อฝังมัลแวร์ในตำแหน่งที่ไม่ควรอยู่ โดยจะปลอมแปลงมาในรูปแบบอีเมลฟิชชิ่งโปรแกรมติดตั้งปลอม หรือการอัปเดตหลอกลวง
วิธีการโจมตีแบบคลาสสิก ได้แก่ การแฮ็กโปรแกรมรับส่งข้อความเพื่อแพร่กระจายลิงก์ที่เป็นอันตราย การใส่มัลแวร์ประเภทโทรจันลงในพอร์ทัลดาวน์โหลด การใช้มัลแวร์อื่นเป็นพาหะ และการฝังมัลแวร์ไว้ในเอกสารที่มีเนื้อหาหลากหลาย (เช่น ไฟล์ PDF บางประเภท) ซึ่งเมื่อเปิดแล้ว จะทำให้โปรแกรมปล่อยมั ลแวร์ทำงานโดยอัตโนมัติ
สัญญาณการโจมตีและเบาะแสการตรวจจับ
เป้าหมายของรูทคิตคือการซ่อนตัวไม่ให้ถูกตรวจพบ ถึงกระนั้น คุณอาจสังเกตเห็นการเปลี่ยนแปลงการตั้งค่าโดยที่ผู้ใช้ไม่ได้เข้าไปแทรกแซง การหยุดชะงักของเครือข่ายที่ผิดปกติเนื่องจากปริมาณการรับส่งข้อมูลที่ซ่อนอยู่ กระบวนการที่ไม่รู้จัก บริการที่ไม่สามารถปิดได้ และเครื่องมือรักษาความปลอดภัยที่ถูกปิดใช้งานโดยไม่มีคำอธิบาย
อีกหนึ่งเบาะแสคือข้อมูลที่ขัดแย้งกันระหว่างยูทิลิตี้ที่แสดงรายการไฟล์ กระบวนการ หรือคีย์รีจิสทรีโดยใช้เส้นทางที่แตกต่างกัน (API เทียบกับการอ่านข้อมูลดิบ) นี่คือจุดที่วิธีการอย่าง RootkitRevealer โดดเด่น: วัตถุเดียวกันที่ "มี" อยู่ในดิสก์ แต่ "ไม่มี" ตาม API ชี้ให้เห็นถึงการดัดแปลงแก้ไข
ประเภทหลักของรูทคิท
โหมดผู้ใช้:โหมดนี้ทำงานในระดับกระบวนการและไลบรารี มีความเสถียรกว่าและตรวจจับได้ง่ายกว่า แม้ว่าจะสามารถซ่อนไฟล์ กระบวนการ และคีย์ได้ก็ตาม ตัวอย่างคลาสสิกในอดีตคือHackerDefender
โหมดเคอร์เนล: ไวรัสเหล่านี้อาศัยอยู่ในเคอร์เนล ควบคุมได้อย่างสมบูรณ์และซ่อนตัวได้อย่างแนบเนียน กำจัดได้ยาก และมักก่อให้เกิดความไม่เสถียรหากได้รับการออกแบบไม่ดี ตัวอย่างของตระกูลนี้ ได้แก่TDL/Alureonในช่วงวิวัฒนาการ
ระบบไฮบริด:ผสมผสานส่วนประกอบของผู้ใช้และส่วนประกอบของเคอร์เนลเข้าด้วยกันเพื่อสร้างสมดุลระหว่างการปกปิดและความเสถียร ส่งผลให้เป็นที่นิยมในหมู่นักโจมตีเนื่องจากความอเนกประสงค์ที่ใช้งานได้จริง
เฟิร์มแวร์/บูทคิท:สิ่งเหล่านี้จะแทรกซึมเข้าไปใน BIOS/UEFI หรือเซกเตอร์บูต (MBR/UEFI) เพื่อโหลดก่อนระบบปฏิบัติการ เทคโนโลยีอย่าง Secure Boot ทำให้บูทคิทแบบคลาสสิกหลายตัวล้าสมัยไปแล้ว แต่โปรแกรมฝังตัว UEFI สมัยใหม่ก็เกิดขึ้นมาเช่น กัน
แบบเสมือนและแบบใช้หน่วยความจำ: VMBR จะโหลดไฮเปอร์ไวเซอร์ไว้ใต้ระบบปฏิบัติการและจำลองเสมือนขึ้นมา ในขณะที่แบบใช้หน่วยความจำจะอยู่เฉพาะใน RAM และจะหายไปเมื่อรีบูต ซึ่งมีประโยชน์มากสำหรับ การดำเนิน การชั่วคราว
ตัวอย่างและลำดับเหตุการณ์ที่เน้น
รูทคิตตัวแรกสำหรับ SunOS ถูกพัฒนาขึ้นในช่วงทศวรรษ 90 ในปี 1999 Greg Hoglund ได้อธิบายถึง NTRootkit (Windows โหมดเคอร์เนล) และในปี 2003 HackerDefender (Windows 2000/XP โหมดผู้ใช้) ก็ถือกำเนิดขึ้น ซึ่งกระตุ้นให้เกิด "สงครามแย่งชิง" กับเครื่องมือต่างๆ เช่น RootkitRevealer
ในปี 2004 เหตุการณ์ที่เรียกกันว่า "วอเตอร์เกตแห่งกรีก" ใช้รูทคิตในการแฮ็กโทรศัพท์มากกว่า 100 เครื่องบนเครือข่าย GSM และในปี 2005 มีการค้นพบว่าSony BMGได้ใส่รูทคิตป้องกันการละเมิดลิขสิทธิ์ไว้ในซีดีบางแผ่น ทำให้เกิดข้อถกเถียงด้านความปลอดภัยครั้งใหญ่
นับตั้งแต่ปี 2008 บูทคิทอย่าง TDL (TDL-1 ถึง TDL-4) ได้มีการพัฒนาขึ้น ในปี 2009 “Machiavelli” ได้พิสูจน์ให้เห็นว่า macOS (ในขณะนั้นคือ Mac OS X) ก็ไม่ปลอดภัยเช่นกัน และในปี 2010 Stuxnetได้ใช้ส่วนประกอบของรูทคิทเพื่อก่อวินาศกรรมระบบอุตสาหกรรมของอิหร่าน
ในปี 2012 Flameซึ่งเป็นมัลแวร์แบบโมดูลาร์ขนาดใหญ่ได้ปรากฏตัวขึ้น ในปี 2018 LoJaxกลายเป็นรูทคิต UEFI ตัวแรกที่ถูกตรวจพบในวงกว้าง และในปี 2019 Scranosได้รวมการขโมยข้อมูลประจำตัวและการสร้างรายได้ที่ซ่อนเร้นเข้ากับฟาร์มคลิกผ่าน เบราว์ เซอร์ที่ถูกบุกรุกจำนวนมาก
แหล่งข้อมูลและหนังสือแนะนำการอ่าน
การสืบสวนคดีโซนี่ของมาร์ค รัสซิโนวิช และบทความ "Unearthing Rootkits" ใน Windows IT Pro ช่วยให้เข้าใจปรากฏการณ์และเทคนิคเบื้องหลัง RKR ได้ดียิ่งขึ้น ส่วนหนังสือ "Rootkits: Subverting the Windows Kernel" โดยเกร็ก ฮอกลันด์และเจมี บัตเลอร์ เป็นตำราที่เจาะลึกที่สุดในเรื่องนี้
เอกสารสำคัญสำหรับผู้ที่ต้องการศึกษาเจาะลึกเกี่ยวกับสถาปัตยกรรมและมาตรการรับมืออย่างจริงจัง ได้แก่ Phrack Archive, หนังสือ "The Art of Computer Virus Research and Defense" ของ Peter Szor, "Malware: Fighting Malicious Code" ของ Ed Skoudis และ Lenny Zeltser และชุดหนังสือ "Windows Internals" (ตั้งแต่ฉบับที่ 4 เป็นต้นไป )
RootkitRevealer ในระบบนิเวศ Sysinternals
RKR สามารถทำงานร่วมกับยูทิลิตี้อื่นๆ ของ Sysinternals ที่มีประโยชน์ในการวิจัย ได้แก่ AccessChk และ AccessEnum (สิทธิ์การเข้าถึงที่มีประสิทธิภาพ), Autoruns (ทุกสิ่งที่เริ่มต้นพร้อมกับระบบ), Process Explorer (ใครเปิดอะไรและใช้ DLL ใด), PsExec/PsTools (การเรียกใช้งานและการจัดการระยะไกล), PsLogList และ PsLoggedOn (เหตุการณ์และเซสชัน), Sigcheck (ลายเซ็นดิจิทัล), SDelete (การลบอย่างปลอดภัย), ShareEnum (ทรัพยากรที่ใช้ร่วมกัน) และSysmon (การวัดระยะทางขั้นสูงในบันทึกเหตุการณ์)
เป็นเรื่องปกติที่จะพบการอ้างอิงถึง "ดาวน์โหลด 1.71" ในที่เก็บซอฟต์แวร์เก่าๆ รวมถึง "เรียกใช้ทันที" ผ่าน Sysinternals Live แม้ว่าโครงการนี้จะมีมานานแล้ว แต่แนวคิดของมัน—การเปรียบเทียบวิธีการระดับสูงกับวิธีการระดับต่ำ—ยังคงเป็นกุญแจสำคัญในการค้นหารูทคิต
RootkitRevealer เป็นบทเรียนสำคัญในด้านวิศวกรรมการป้องกัน: หากมีสิ่งใดกำลังเปลี่ยนแปลงสิ่งที่ API ส่งคืน คุณต้องตรวจสอบให้ละเอียดและเปรียบเทียบกับสิ่งที่อยู่บนดิสก์และใน Registry จริงๆ ด้วยแนวทางปฏิบัติที่ดี เครื่องมือที่เหมาะสม และการตรวจสอบแบบออฟไลน์เมื่อจำเป็น ก็สามารถเปิดเผยสิ่งที่พยายามซ่อนไว้ในที่ที่เราคิดว่าไม่มีใครจะมองหาได้
ดัชนี
- 1 RootkitRevealer คืออะไร และทำงานบนระบบใดบ้าง?
- 2 รูทคิทคืออะไร แนวคิดหลัก
- 3 RootkitRevealer ทำงานอย่างไร
- 4 ข้อกำหนด แนวทางปฏิบัติที่ดี และการดำเนินการ
- 5 การตีความผลลัพธ์และความคลาดเคลื่อนทั่วไป
- 6 ข้อผิดพลาดและปัญหาทั่วไปกับ rootkitrevealer.exe ในสภาพแวดล้อมทางนิติวิทยาศาสตร์
- 7 วิธีการตรวจจับและตอบสนองรูทคิท
- 8 การป้องกัน: การป้องกันที่เหมาะสมต่อรูทคิท
- 9 วิธีการติดตั้งรูทคิท: ดรอปเปอร์ โหลดเดอร์ และเวกเตอร์
- 10 สัญญาณการโจมตีและเบาะแสการตรวจจับ
- 11 ประเภทหลักของรูทคิท
- 12 ตัวอย่างและลำดับเหตุการณ์ที่เน้น
- 13 แหล่งข้อมูลและหนังสือแนะนำการอ่าน
- 14 RootkitRevealer ในระบบนิเวศ Sysinternals