การจัดการวัตถุเคอร์เนลโดยตรง
การจัดการวัตถุเคอร์เนลโดยตรง (DKOM) เป็น เทคนิค รูทคิต ทั่วไป สำหรับMicrosoft Windows เพื่อซ่อน กระบวนการของบุคคลที่สาม ไดรเวอร์ ไฟล์ และการเชื่อมต่อระดับกลางที่อาจเป็นอันตรายจากตัวจัดการงานและตัวกำหนดเวลาเหตุการณ์
ภาพรวม
โดยแก่นแท้แล้ว รูทคิตที่ใช้ DKOM จะซ่อนตัวจากObject ManagerหรือTask Managerโดยการแก้ไขรายการที่เชื่อมโยงซึ่งประกอบด้วยรายการของเธรดและกระบวนการที่ทำงานอยู่ทั้งหมด รูทคิตประเภทนี้สามารถซ่อนร่องรอยทั้งหมดจาก Object Manager ได้โดยการห่อตัวชี้ออกจากตัวรูทคิตเอง สิ่งนี้เป็นไปได้เนื่องจากโมดูลเคอร์เนลและไดรเวอร์ ที่โหลดได้ สามารถเข้าถึงหน่วยความจำเคอร์เนลได้โดยตรงจากการเข้าถึงแบบพิเศษ เมื่อเคอร์เนล ของระบบ ทำการค้นหารายการของกระบวนการทั้งหมดที่ทำงานอยู่ในระบบ มันจะอาศัย EPROCESS ในการค้นหา อย่างไรก็ตาม เนื่องจากเคอร์เนลของ Windows เป็นแบบเธรด ไม่ใช่แบบกระบวนการ ตัวชี้จึงสามารถแก้ไขได้อย่างอิสระโดยไม่มีผลกระทบที่ไม่พึงประสงค์[ 1 ]โดยการแก้ไขตัวชี้รายการที่เชื่อมโยงเพื่อห่อรอบกระบวนการรูทคิตเอง รูทคิตจะมองไม่เห็นใน Windows Event Viewer และแอปพลิเคชันความสมบูรณ์ของระบบใดๆ ที่อาศัยรายการนี้ สิ่งนี้ทำให้รูทคิต DKOM สามารถควบคุมระบบเป้าหมายได้อย่างอิสระ
DKOM ใช้[ 2 ]
- ซ่อนกระบวนการ
- ซ่อนไดรเวอร์
- ซ่อนพอร์ต
- เพิ่มระดับสิทธิ์ของเธรดและกระบวนการ
- นิติวิทยาศาสตร์ที่บิดเบี้ยว
- ควบคุมระบบได้อย่างสมบูรณ์
ซ่อนตัวจากตัวจัดการวัตถุ
แต่ละกระบวนการจะถูกแทนด้วยวัตถุและเชื่อมต่อกันในระบบปฏิบัติการ ภายในแต่ละกระบวนการจะมีพื้นที่ที่จัดสรรไว้ล่วงหน้าซึ่งประกอบด้วยที่อยู่ของเธรดปัจจุบัน เธรดถัดไป และเธรดที่ล็อกด้วย mutex ข้อมูลสำคัญนี้แสดงอยู่ใน EPROCESS ในหน่วยความจำ ส่วนในตัวจัดการวัตถุประกอบด้วยรายการเชื่อมโยงสองทางของกระบวนการที่รู้จักทั้งหมดที่กำลังทำงานอยู่ ซึ่งเรียกอีกอย่างว่า EPROCESS อย่างไรก็ตาม DKOM ใช้ประโยชน์จากโครงสร้างนี้โดยการแก้ไขลิงก์ด้านหน้า (FLINK) ให้ชี้ไปยังโหนดก่อนหน้าของโปรเซสเซอร์ที่เราต้องการซ่อน และชี้ลิงก์ด้านหลัง (BLINK) ของโปรเซสเซอร์ที่ซ่อนอยู่ไปยังโครงสร้างก่อนหน้า[ 3 ]โดยการแก้ไขส่วนย่อยของบล็อก EPROCESS รายการของกระบวนการที่ใช้งานอยู่ในปัจจุบันจะชี้ไปรอบๆ กระบวนการที่ซ่อนอยู่ ซึ่งโดยพื้นฐานแล้วจะซ่อนร่องรอยของกระบวนการหรือตัวฉีดใดๆ จากการตรวจสอบของตัวกำหนดตารางเวลาเนื่องจากกระบวนการถูกซ่อนอยู่ แต่ยังคงทำงานอย่างไม่มีกำหนดเนื่องจากเธรดที่อยู่ในนั้นยังคงทำงานอยู่เนื่องจากนโยบายแบบวนรอบ[ 2 ]
ปัญหาหลักของรูทคิตประเภทนี้คือกระบวนการที่ซ่อนอยู่ยังคงสามารถทำงานได้แม้จะมีการสลับบริบทต่างๆ[ 3 ]ในตัวกำหนดเวลาของ Windows เธรดจะถูกแยกออกเพื่อทำงาน ไม่ใช่กระบวนการ แต่เธรดจะเรียกหลายกระบวนการในช่วงเวลาที่กำหนด กระบวนการนี้ถูกควบคุมโดย ลักษณะ การวนรอบของตัวกำหนดเวลา และเธรดจะถูกตั้งให้ว่างเพื่ออนุญาตให้เธรดอื่นๆ ทำงานได้ แม้ว่ากระบวนการจะมองไม่เห็นในตัวจัดการงาน แต่กระบวนการนั้นยังคงทำงานพร้อมกันกับระบบเนื่องจากเธรดทำงานอยู่[ 4 ] ทำให้การตรวจจับกระบวนการที่ซ่อนอยู่ซึ่งสร้างโดยรูทคิตทำได้ยากมาก
การตรวจจับ
การตรวจจับรูทคิตนั้นแบ่งออกเป็นหลายชั้นที่ซับซ้อน ซึ่งรวมถึงการตรวจสอบความสมบูรณ์และการตรวจจับพฤติกรรมเครื่องมือป้องกันไวรัสแบบง่ายๆ สามารถตรวจ จับ รูทคิต ทั่วไปได้โดยการตรวจสอบ การใช้งาน CPU การรับส่งข้อมูลเครือข่ายที่กำลังดำเนินอยู่และขาออกหรือลายเซ็น ของไดรเวอร์ อย่างไรก็ตาม นี่ไม่ใช่กรณีของรูทคิตประเภทเคอร์เนล เนื่องจากรูทคิตประเภทนี้สามารถซ่อนตัวจากตารางระบบและโปรแกรมดูเหตุการณ์ได้ การตรวจจับจึงต้องมองหา ฟังก์ชัน ที่ถูกดักจับไม่เพียงแต่จะยากมากที่จะนำไปใช้ แต่ยังต้องวนซ้ำผ่านทุกโหนดใน EPROCESS อีกด้วย อย่างไรก็ตาม แม้ว่ากระบวนการที่เป็นอันตรายใดๆ จะไม่ได้ปรากฏอยู่ในแฮนด์เลอร์จริง แต่ก็มีการเรียกใช้ในเบื้องหลัง กระบวนการเหล่านี้ชี้ไปยังเธรด การเชื่อมต่อเครือข่ายชี้ไปยังกระบวนการ และไดรเวอร์ชี้ไปยังเธรด เพื่อให้รูทคิต DKOM ทำงานได้ มันต้องซ่อนตัวตนจากการอ้างอิงทุกรายการใน EPROCESS [ 5 ]ซึ่งหมายความว่ารูทคิตต้องอัปเดตตัวเชื่อมโยงใดๆ เป็นประจำเพื่อให้ชี้ออกไปจากตัวมันเอง การตรวจจับรูทคิต DKOM สามารถทำได้โดยการวนซ้ำผ่านเอนทิตีทุกตัวในตัวกำหนดตารางเวลา (เธรด ส่วนหัวของวัตถุ ฯลฯ) รูปแบบหรือพฤติกรรมหน่วยความจำบางอย่างอาจปรากฏในตัวกำหนดตารางเวลา และหากพบรูปแบบดังกล่าว ในที่สุดก็จะพบรูทคิตจริงได้เช่นกัน[ 5 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- แบล็คแฮท.คอม
- เจสเซคอร์นบลัม.com
- bsodtutorials.blogspot.com
- symantec.com ถูกเก็บถาวรเมื่อวันที่ 28 สิงหาคม 2017 ที่Wayback Machine
- fluxius.handgrep.se