กลับไปหน้าบทความ

อ่าน 20 นาที

รูทคิท

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

รูทคิท

รูทคิตคือชุดซอฟต์แวร์คอมพิวเตอร์ที่เป็นอันตรายซึ่งออกแบบมาเพื่อเปิดใช้งานการเข้าถึงคอมพิวเตอร์หรือส่วนหนึ่งของซอฟต์แวร์ซึ่งโดยปกติแล้วจะไม่ได้รับอนุญาต (เช่น โดยผู้ใช้ที่ไม่ได้รับอนุญาต) รูทคิตมักจะซ่อนตัวตนของมันเองหรือของซอฟต์แวร์อื่น[ 1 ]คำว่ารูทคิตเป็นคำประสมของ " root " (ชื่อดั้งเดิมของบัญชีที่มีสิทธิ์พิเศษใน ระบบปฏิบัติการ แบบ Unix ) และคำว่า "kit" (ซึ่งหมายถึงส่วนประกอบซอฟต์แวร์ที่ใช้ในการสร้างเครื่องมือ) [ 2 ]คำว่า "รูทคิต" มีความหมายเชิงลบเนื่องจากมีความเกี่ยวข้องกับมัลแวร์[ 1 ]

การติดตั้งรูทคิตสามารถทำได้โดยอัตโนมัติ หรือผู้โจมตีสามารถติดตั้งรูทคิตได้หลังจากได้รับสิทธิ์เข้าถึงระดับรูทหรือผู้ดูแลระบบ[ 3 ]การเข้าถึงนี้เป็นผลมาจากการโจมตีระบบโดยตรง เช่น การใช้ประโยชน์จากช่องโหว่ (เช่นการยกระดับสิทธิ์ ) หรือรหัสผ่าน (ที่ได้มาจากการถอดรหัสหรือ กลยุทธ์ ทางวิศวกรรมสังคมเช่น " ฟิชชิ่ง ") เมื่อติดตั้งแล้ว จะสามารถซ่อนการบุกรุกและรักษาสิทธิ์การเข้าถึงระดับสูงได้ การควบคุมระบบอย่างสมบูรณ์หมายความว่าซอฟต์แวร์ที่มีอยู่สามารถแก้ไขได้ รวมถึงซอฟต์แวร์ที่อาจใช้ในการตรวจจับหรือหลีกเลี่ยงระบบได้

การตรวจจับรูทคิตเป็นเรื่องยาก เนื่องจากรูทคิตอาจสามารถบิดเบือนซอฟต์แวร์ที่ออกแบบมาเพื่อตรวจจับมันได้ วิธีการตรวจจับ ได้แก่ การใช้ระบบปฏิบัติการ ทางเลือกที่เชื่อถือได้ วิธีการตามพฤติกรรม การสแกนลายเซ็น การสแกนความแตกต่าง และ การวิเคราะห์ ข้อมูลหน่วยความจำการกำจัดอาจซับซ้อน โดยเฉพาะอย่างยิ่งในกรณีที่รูทคิตอยู่ในเคอร์เนลการติดตั้งระบบปฏิบัติการใหม่อาจเป็นวิธีแก้ปัญหาเดียวที่มีอยู่ เมื่อต้องรับมือกับ รูทคิต ในเฟิร์มแวร์การกำจัดอาจต้อง เปลี่ยน ฮาร์ดแวร์หรือใช้อุปกรณ์พิเศษ

ประวัติศาสตร์

คำว่าrootkit , rkitหรือroot kitเดิมทีหมายถึงชุดเครื่องมือบริหารจัดการที่ถูกดัดแปลงอย่างเป็นอันตรายสำหรับระบบปฏิบัติการที่คล้าย Unix ซึ่งให้สิทธิ์การเข้าถึงระดับ " root " [ 4 ]หากผู้บุกรุกสามารถแทนที่เครื่องมือบริหารจัดการมาตรฐานในระบบด้วย rootkit ผู้บุกรุกจะสามารถเข้าถึง root ในระบบได้ในขณะเดียวกันก็ซ่อนกิจกรรมเหล่านี้จากผู้ดูแลระบบ ที่ถูกต้องตามกฎหมาย rootkit รุ่นแรกเหล่านี้ตรวจจับได้ง่ายโดยใช้เครื่องมือเช่นTripwireที่ไม่ถูกบุกรุกเพื่อเข้าถึงข้อมูลเดียวกัน[ 5 ] [ 6 ] Lane Davis และ Steven Dake เขียน rootkit รุ่นแรกสุดที่รู้จักกันในปี 1990 สำหรับ ระบบปฏิบัติการ SunOS UNIX ของSun Microsystems [ 7 ]ในการบรรยายที่เขาให้เมื่อได้รับรางวัล Turingในปี 1983 Ken ThompsonจากBell Labsหนึ่งในผู้สร้างUnixได้ตั้งทฤษฎีเกี่ยวกับการบ่อนทำลาย คอมไพ เลอร์ Cในการแจกจ่าย Unix และได้พูดคุยเกี่ยวกับการโจมตี คอมไพเลอร์ที่แก้ไขแล้วจะตรวจจับความพยายามในการคอมไพล์คำสั่ง Unix และสร้างโค้ดที่เปลี่ยนแปลงไปซึ่งจะยอมรับไม่เพียงแต่รหัสผ่านที่ถูกต้องของผู้ใช้เท่านั้น แต่ยังรวมถึงรหัสผ่าน " แบ็กดอร์ " เพิ่มเติมที่ผู้โจมตีรู้จักอีกด้วย นอกจากนี้ คอมไพเลอร์จะตรวจจับความพยายามในการคอมไพล์เวอร์ชันใหม่ของคอมไพเลอร์ และจะแทรกช่องโหว่เดียวกันลงในคอมไพเลอร์เวอร์ชันใหม่ การตรวจสอบซอร์สโค้ดของคำสั่งหรือคอมไพเลอร์ที่อัปเดตแล้วจะไม่พบโค้ดที่เป็นอันตรายใดๆ[ 8 ]ช่องโหว่นี้เทียบเท่ากับรูทคิตloginlogin

ไวรัสคอมพิวเตอร์ตัวแรกที่มีการบันทึกว่ามุ่งเป้าไปที่คอมพิวเตอร์ส่วนบุคคลซึ่งค้นพบในปี 1986 ใช้เทคนิคHelix Cloaking เพื่อซ่อนตัว: ไวรัส Brain ดักจับความพยายามในการอ่านเซกเตอร์บูตและเปลี่ยนเส้นทางไปยังที่อื่นบนดิสก์ ซึ่งจะเก็บสำเนาของเซกเตอร์บูตดั้งเดิมไว้[ 1 ] เมื่อเวลาผ่านไป วิธีการซ่อนตัวของไวรัส DOSก็มีความซับซ้อนมากขึ้น เทคนิคขั้นสูงรวมถึง การดัก จับ การเรียก ขัดจังหวะ BIOS INT 13Hระดับต่ำของดิสก์เพื่อซ่อนการแก้ไขไฟล์ที่ไม่ได้รับอนุญาต[ 1 ]

รูทคิตที่เป็นอันตรายตัวแรกสำหรับ ระบบปฏิบัติการ Windows NTปรากฏขึ้นในปี 1999: โทรจันชื่อNTRootkitที่สร้างโดยGreg Hoglund [ 9 ] ตามมาด้วยHackerDefenderในปี 2003 [ 1 ]รูทคิตตัวแรกที่มุ่งเป้าไปที่Mac OS Xคือ WeaponX/Weapox ปรากฏขึ้นในปี 2004 [ 10 ]ในขณะที่ เวิร์ม Stuxnetเป็นตัวแรกที่ตั้งเป้าหมายไปที่ตัวควบคุมลอจิกแบบโปรแกรมได้ (PLC) [ 11 ]

เหตุการณ์การพบ Rootkit ใน BIOS ของ Lenovo (Lenovo Service Engine) (ปี 2015)

ในช่วงกลางปี ​​2015 มีการค้นพบว่าLenovoได้จัดส่งพีซีสำหรับผู้บริโภคบางรุ่นที่มีเฟิร์มแวร์ที่ทำงานคล้ายกับรูทคิตแบบฝังตัว ฟีเจอร์นี้เรียกว่า Lenovo Service Engine (LSE) ฝังอยู่ในBIOS ของระบบ และจะทำงานเมื่อเริ่มต้นระบบ แม้กระทั่งก่อนที่ Windows จะบูตเสร็จ LSE ถูกออกแบบมาเพื่อให้แน่ใจว่ายูทิลิตี้การอัปเดตระบบของ Lenovo และโปรแกรมที่ติดตั้งไว้ล่วงหน้าที่เกี่ยวข้องยังคงติดตั้งอยู่ โดยจะติดตั้งใหม่โดยอัตโนมัติหากถูกลบออก เนื่องจากโค้ดนี้อยู่ในเฟิร์มแวร์ ทำให้ผู้ใช้ตรวจจับหรือลบได้ยาก แม้แต่การติดตั้ง Windows ใหม่ทั้งหมดก็ไม่สามารถกำจัด LSE ได้ เพราะมันจะถูกติดตั้งใหม่ในการรีบูตครั้งถัดไป

ต่อมานักวิจัยค้นพบว่า LSE ก่อให้เกิดปัญหาด้านความปลอดภัยที่ร้ายแรง ซึ่งเป็นช่องโหว่ที่อนุญาตให้มีการโจมตีเพื่อยกระดับสิทธิ์ (ผ่านบัฟเฟอร์โอเวอร์โฟลว์ ) เพื่อควบคุมในระดับผู้ดูแลระบบ เพื่อเป็นการตอบสนอง Lenovo จึงได้ออกอัปเดต BIOS และยูทิลิตี้สำหรับลบในปี 2015 เพื่อปิดใช้งานและลบคุณสมบัติ LSE นอกจากนี้ Microsoftยังได้อัปเดตแนวทางการรักษาความปลอดภัยของ Windows เพื่อห้ามพฤติกรรมเฟิร์มแวร์ดังกล่าว ซึ่งส่งผลให้ Lenovo ต้องหยุดใช้ LSE ในระบบใหม่ ฟังก์ชัน LSE ถูกลบออกจากรุ่นต่อๆ มา และ Lenovo ได้กระตุ้นให้ลูกค้าติดตั้งเฟิร์มแวร์ที่อัปเดตแล้วเพื่อกำจัดความเสี่ยง[ 12 ] [ 13 ]

สตัคเน็ต (2010)

Stuxnet ซึ่งถูกเปิดเผยในปี 2010 เป็นเวิร์มที่มีความซับซ้อนสูง ซึ่งเชื่อกันอย่างกว้างขวางว่าได้รับการพัฒนาขึ้นในปฏิบัติการข่าวกรองร่วมระหว่างสหรัฐฯ และอิสราเอล โดยมีเป้าหมายที่โรงงานนิวเคลียร์ของอิหร่าน[ 14 ] [ 15 ] [ 16 ] [ 17 ] ที่สำคัญคือมันมีรูทคิต โหมดเคอร์เนลของ Windows ที่ซ่อนไฟล์และกระบวนการของมัลแวร์ ทำให้เวิร์มสามารถก่อวินาศกรรมระบบควบคุมอุตสาหกรรมได้อย่างเงียบๆ Stuxnet มักถูกอ้างถึงว่าเป็นอาวุธไซเบอร์ ตัวแรกที่รู้จัก มันทำลาย เครื่องปั่นแยกยูเรเนียมส่วนสำคัญของอิหร่านในขณะที่ยังคงตรวจจับได้ยาก[ 18 ] [ 19 ] [ 20 ]

สแกนดัลรูทคิตป้องกันการคัดลอกของ Sony BMG (ปี 2005)

ภาพหน้าจอจากRootkitRevealerแสดงไฟล์ที่ถูกซ่อนไว้โดยรูทคิตExtended Copy Protection

ในปี 2548 Sony BMGได้เผยแพร่ซีดีที่มีซอฟต์แวร์ป้องกันการคัดลอกและการจัดการสิทธิ์ดิจิทัล ที่เรียกว่า Extended Copy Protectionซึ่งสร้างโดยบริษัทซอฟต์แวร์ First 4 Internet ซอฟต์แวร์นี้มีโปรแกรมเล่นเพลง แต่ได้ติดตั้งรูทคิตโดยไม่แจ้งให้ทราบล่วงหน้า ซึ่งจำกัดความสามารถของผู้ใช้ในการเข้าถึงซีดี[ 21 ]วิศวกรซอฟต์แวร์Mark Russinovichผู้สร้างเครื่องมือตรวจจับรูทคิตRootkitRevealerได้ค้นพบรูทคิตบนคอมพิวเตอร์เครื่องหนึ่งของเขา[ 1 ]เรื่องอื้อฉาวที่เกิดขึ้นทำให้สาธารณชนตระหนักถึงรูทคิตมากขึ้น[ 22 ]เพื่อพรางตัว รูทคิตจะซ่อนไฟล์ใดๆ ที่ขึ้นต้นด้วย "$sys$" จากผู้ใช้ ไม่นานหลังจากรายงานของ Russinovich มัลแวร์ก็ปรากฏขึ้นซึ่งใช้ประโยชน์จากรูทคิตที่มีอยู่บนระบบที่ได้รับผลกระทบ[ 1 ] นักวิเคราะห์ของ BBCคนหนึ่งเรียกมันว่า " ฝันร้าย ด้านการประชาสัมพันธ์ " [ 23 ] Sony BMG ได้ออกแพตช์เพื่อถอนการติดตั้งรูทคิต ซึ่งทำให้ผู้ใช้เผชิญกับช่องโหว่ที่ร้ายแรงยิ่งขึ้น[ 24 ]ในที่สุดบริษัทก็เรียกคืนซีดีเหล่านั้น ในสหรัฐอเมริกา มี การฟ้องร้องดำเนินคดีแบบกลุ่มต่อ Sony BMG [ 25 ]

คดีการดักฟังโทรศัพท์ในกรีซ (ปี 2004–05)

กรณีการดักฟังโทรศัพท์ในกรีซปี 2547-2548หรือที่รู้จักกันในชื่อ วอเตอร์เกตแห่งกรีซ[ 26 ]เกี่ยวข้องกับการดักฟังโทรศัพท์มือถือมากกว่า 100 เครื่องใน เครือข่าย Vodafone Greece อย่างผิดกฎหมาย ซึ่งส่วนใหญ่เป็นของสมาชิก รัฐบาล กรีกและข้าราชการระดับสูง การดักฟังเริ่มขึ้นในช่วงต้นเดือนสิงหาคม 2547 และถูกถอดออกในเดือนมีนาคม 2548 โดยไม่พบตัวตนของผู้กระทำผิด ผู้บุกรุกได้ติดตั้งรูทคิตที่มุ่งเป้าไปที่ระบบโทรศัพท์ AXE ของ Ericsson ตามรายงานของIEEE Spectrumนี่เป็น "ครั้งแรกที่มีการสังเกตรูทคิตบนระบบเฉพาะกิจ ในกรณีนี้คือสวิตช์โทรศัพท์ของ Ericsson" [ 27 ]รูทคิตได้รับการออกแบบมาเพื่อแก้ไขหน่วยความจำของระบบขณะที่กำลังทำงาน เปิดใช้งานการดักฟังในขณะที่ปิดใช้งานบันทึกการตรวจสอบ แก้ไขคำสั่งที่แสดงรายการกระบวนการที่ใช้งานอยู่และบล็อกข้อมูลที่ใช้งานอยู่ และแก้ไขคำสั่งตรวจสอบผลรวม ตรวจสอบของบล็อกข้อมูล “ช่องทางลับ” อนุญาตให้ผู้ปฏิบัติงานที่มี สถานะ ผู้ดูแลระบบสามารถปิดใช้งานบันทึกธุรกรรม สัญญาณเตือน และคำสั่งการเข้าถึงที่เกี่ยวข้องกับความสามารถในการเฝ้าระวังของการแลกเปลี่ยนได้[ 27 ]รูทคิตถูกค้นพบหลังจากผู้บุกรุกติดตั้งการอัปเดตที่ผิดพลาด ซึ่งทำให้ ข้อความ SMSไม่สามารถส่งได้ ส่งผลให้มีการสร้างรายงานความล้มเหลวอัตโนมัติ วิศวกรของ Ericsson ได้รับการเรียกตัวมาตรวจสอบข้อผิดพลาดและค้นพบบล็อกข้อมูลที่ซ่อนอยู่ซึ่งมีรายการหมายเลขโทรศัพท์ที่ถูกตรวจสอบ รวมถึงรูทคิตและซอฟต์แวร์ตรวจสอบที่ผิดกฎหมาย 

การใช้งาน

รูทคิตสมัยใหม่ไม่ได้ยกระดับการเข้าถึง[ 4 ]แต่ใช้เพื่อทำให้เพย์โหลดซอฟต์แวร์อื่นตรวจจับไม่ได้โดยการเพิ่มความสามารถในการซ่อนตัว[ 9 ]รูทคิตส่วนใหญ่ถูกจัดประเภทเป็นมัลแวร์เนื่องจากเพย์โหลดที่รวมอยู่ด้วยนั้นเป็นอันตราย ตัวอย่างเช่น เพย์โหลดอาจขโมยรหัสผ่าน ของผู้ใช้ ข้อมูลบัตรเครดิตทรัพยากรคอมพิวเตอร์ หรือดำเนินกิจกรรมที่ไม่ได้รับอนุญาตอื่นๆ อย่างลับๆ รูทคิตจำนวนเล็กน้อยอาจถูกผู้ใช้พิจารณาว่าเป็นแอปพลิเคชันยูทิลิตี้ ตัวอย่างเช่น รูทคิตอาจซ่อนไดรเวอร์จำลองซีดีรอมทำให้ ผู้ใช้ เกมวิดีโอสามารถเอาชนะ มาตรการ ต่อต้านการละเมิดลิขสิทธิ์ที่ต้องใส่สื่อการติดตั้งต้นฉบับลงในไดรฟ์ออปติคัลเพื่อตรวจสอบว่าซอฟต์แวร์นั้นซื้อมาอย่างถูกต้อง

รูทคิตและเพย์โหลดของมันมีประโยชน์หลายอย่าง:

  • การเปิดช่องโหว่ให้ผู้โจมตีสามารถเข้าถึงระบบได้อย่างเต็มที่ผ่านแบ็กดอร์ซึ่งอนุญาตให้เข้าถึงโดยไม่ได้รับอนุญาต เช่น การขโมยหรือปลอมแปลงเอกสาร หนึ่งในวิธีการที่จะทำเช่นนี้ได้คือการแทรกแซงกลไกการล็อกอิน เช่น โปรแกรม /bin/login บน ระบบ ที่คล้าย UnixหรือGINAบน Windows โปรแกรมที่ใช้แทนนั้นจะดูเหมือนทำงานได้ตามปกติ แต่ยังยอมรับชุดข้อมูลล็อกอินลับที่อนุญาตให้ผู้โจมตีเข้าถึงระบบโดยตรงด้วยสิทธิ์ผู้ดูแลระบบ โดยไม่ต้องผ่านกลไกการตรวจสอบสิทธิ์และการอนุญาต มาตรฐาน
  • ซ่อนมัลแวร์ อื่นๆ โดยเฉพาะโปรแกรมดักจับการกดแป้นพิมพ์ที่ขโมยรหัสผ่านและไวรัสคอมพิวเตอร์[ 28 ]
  • ยึดเครื่องที่ถูกบุกรุกเป็นคอมพิวเตอร์ซอมบี้เพื่อโจมตีคอมพิวเตอร์เครื่องอื่น (การโจมตีมีต้นกำเนิดมาจากระบบหรือเครือข่ายที่ถูกบุกรุก แทนที่จะเป็นระบบของผู้โจมตี) คอมพิวเตอร์ "ซอมบี้" มักเป็นสมาชิกของบอทเน็ต ขนาดใหญ่ ที่สามารถดำเนินการต่างๆ ได้ เช่นการโจมตีแบบปฏิเสธการให้บริการการแจกจ่ายสแปมอีเมล และการฉ้อโกงการคลิก[ 29 ]

ในบางกรณี รูทคิตอาจมีฟังก์ชันการทำงานที่ต้องการ และอาจถูกติดตั้งโดยเจตนาในนามของผู้ใช้คอมพิวเตอร์:

  • ตรวจจับการ โจมตีเช่น ในhoneypot [ 30 ]
  • ปรับปรุงซอฟต์แวร์จำลองและซอฟต์แวร์รักษาความปลอดภัย[ 31 ] Alcohol 120%และDaemon Toolsเป็นตัวอย่างเชิงพาณิชย์ของรูทคิตที่ไม่เป็นอันตรายซึ่งใช้ในการเอาชนะกลไกการป้องกันการคัดลอก เช่นSafeDiscและSecuROM [ 32 ]ซอฟต์แวร์ป้องกันไวรัส Kaspersky ยังใช้เทคนิคที่คล้ายกับรูทคิตเพื่อป้องกันตัวเองจากการกระทำที่เป็นอันตราย โดย จะโหลด ไดรเวอร์ของตัวเองเพื่อดักจับกิจกรรมของระบบ จากนั้นจะป้องกันไม่ให้กระบวนการอื่นทำอันตรายต่อตัวมันเอง กระบวนการของมันไม่ได้ถูกซ่อนไว้ แต่ไม่สามารถยุติได้ด้วยวิธีการมาตรฐาน
  • การป้องกันการโจรกรรม: แล็ปท็อปอาจมีซอฟต์แวร์รูทคิตที่ใช้ BIOS ซึ่งจะรายงานไปยังหน่วยงานกลางเป็นระยะ ทำให้สามารถตรวจสอบ ปิดใช้งาน หรือลบข้อมูลของแล็ปท็อปได้ในกรณีที่ถูกขโมย[ 33 ]
  • การข้ามขั้นตอนการเปิดใช้งานผลิตภัณฑ์ของ Microsoft [ 34 ]

ประเภท

มีรูทคิตอย่างน้อยห้าประเภท ตั้งแต่ประเภทที่อยู่ในระดับต่ำสุดในเฟิร์มแวร์ (ที่มีสิทธิ์สูงสุด) ไปจนถึงประเภทที่มีสิทธิ์น้อยที่สุดซึ่งทำงานในระดับผู้ใช้ในRing 3การผสมผสานแบบไฮบริดอาจเกิดขึ้นได้ เช่น ครอบคลุมทั้งโหมดผู้ใช้และโหมดเคอร์เนล[ 35 ]

โหมดผู้ใช้

วงแหวนรักษาความปลอดภัยคอมพิวเตอร์ที่ใช้ Intel (หมายเหตุ: วงแหวน -1ไม่ได้แสดงในภาพ)

รูทคิตโหมดผู้ใช้ทำงานในRing 3พร้อมกับแอปพลิเคชันอื่นๆ ในฐานะผู้ใช้ แทนที่จะเป็นกระบวนการระบบระดับต่ำ[ 36 ]พวกมันมีเวกเตอร์การติดตั้งที่เป็นไปได้หลายวิธีในการดักจับและแก้ไขพฤติกรรมมาตรฐานของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) บางวิธีจะแทรก ไลบรารี ที่เชื่อมโยงแบบไดนามิก (เช่น ไฟล์ .DLLบน Windows หรือไฟล์ .dylib บนMac OS X ) เข้าไปในกระบวนการอื่นๆ และด้วยเหตุนี้จึงสามารถเรียกใช้ภายในกระบวนการเป้าหมายใดๆ เพื่อปลอมแปลงได้ บางวิธีที่มีสิทธิ์เพียงพอจะเขียนทับหน่วยความจำของแอปพลิเคชันเป้าหมาย กลไกการแทรกประกอบด้วย: [ 36 ]

  • การใช้งานส่วนขยายแอปพลิเคชันที่ผู้จำหน่ายจัดหาให้ ตัวอย่างเช่นWindows Explorerมีอินเทอร์เฟซสาธารณะที่อนุญาตให้บุคคลที่สามขยายฟังก์ชันการทำงานได้
  • การดักฟังข้อความ
  • โปรแกรมดีบักเกอร์
  • การใช้ประโยชน์จากช่องโหว่ด้านความปลอดภัย
  • การ ดักจับฟังก์ชันหรือการแก้ไข API ที่ใช้กันทั่วไป เช่น เพื่อซ่อนกระบวนการทำงานหรือไฟล์ที่อยู่ในระบบไฟล์[ 37 ]

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

ภาพรวมรูทคิทของ Windows, Symantec [ 4 ]

โหมดเคอร์เนล

รูทคิตโหมดเคอร์เนลทำงานด้วยสิทธิ์ระบบปฏิบัติการสูงสุด ( Ring 0 ) โดยการเพิ่มโค้ดหรือแทนที่ส่วนต่างๆ ของระบบปฏิบัติการหลัก รวมถึงทั้งเคอร์เนลและไดรเวอร์อุปกรณ์ ที่เกี่ยวข้อง ระบบปฏิบัติการส่วน ใหญ่รองรับไดรเวอร์อุปกรณ์โหมดเคอร์เนล ซึ่งทำงานด้วยสิทธิ์เดียวกันกับระบบปฏิบัติการเอง ดังนั้น รูทคิตโหมดเคอร์เนลจำนวนมากจึงถูกพัฒนาขึ้นเป็นไดรเวอร์อุปกรณ์หรือโมดูลที่โหลดได้ เช่นโมดูลเคอร์เนลที่โหลดได้ในLinuxหรือไดรเวอร์อุปกรณ์ในMicrosoft Windowsรูทคิตประเภทนี้มีการเข้าถึงความปลอดภัยที่ไม่จำกัด แต่เขียนได้ยากกว่า[ 38 ]ความซับซ้อนทำให้เกิดบั๊กได้บ่อย และบั๊กใดๆ ในโค้ดที่ทำงานในระดับเคอร์เนลอาจส่งผลกระทบอย่างร้ายแรงต่อเสถียรภาพของระบบ นำไปสู่การค้นพบรูทคิต[ 38 ]หนึ่งในรูทคิตเคอร์เนลที่เป็นที่รู้จักกันอย่างแพร่หลายเป็นครั้งแรกได้รับการพัฒนาสำหรับWindows NT 4.0และเผยแพร่ในนิตยสารPhrack ในปี 1999 โดย Greg Hoglund [ 39 ] [ 40 ]รูทคิตเคอร์เนลอาจตรวจจับและกำจัดได้ยากเป็นพิเศษ เนื่องจากทำงานในระดับความปลอดภัย เดียว กับระบบปฏิบัติการเอง จึงสามารถดักจับหรือทำลายการทำงานของระบบปฏิบัติการที่เชื่อถือได้มากที่สุดได้ ซอฟต์แวร์ใดๆ เช่นซอฟต์แวร์ป้องกันไวรัสที่ทำงานบนระบบที่ถูกบุกรุกก็มีความเสี่ยงเช่นกัน[ 41 ]ในสถานการณ์เช่นนี้ ไม่มีส่วนใดของระบบที่สามารถเชื่อถือได้

รูทคิตสามารถแก้ไขโครงสร้างข้อมูลในเคอร์เนลของ Windows โดยใช้วิธีที่เรียกว่าการจัดการวัตถุเคอร์เนลโดยตรง (DKOM) [ 42 ]วิธีนี้สามารถใช้เพื่อซ่อนกระบวนการได้ รูทคิตในโหมดเคอร์เนลยังสามารถดักจับตารางคำอธิบายบริการระบบ (SSDT) ​​หรือแก้ไขเกตระหว่างโหมดผู้ใช้และโหมดเคอร์เนลเพื่อซ่อนตัว[ 4 ]ในทำนองเดียวกันสำหรับ ระบบปฏิบัติการ Linuxรูทคิตสามารถแก้ไขตารางการเรียกใช้ระบบเพื่อทำลายการทำงานของเคอร์เนล[ 43 ] [ 44 ]เป็นเรื่องปกติที่รูทคิตจะสร้างระบบไฟล์ที่เข้ารหัสและซ่อนไว้ ซึ่งสามารถซ่อนมัลแวร์อื่น ๆ หรือสำเนาต้นฉบับของไฟล์ที่ติดเชื้อได้[ 45 ]ระบบปฏิบัติการกำลังพัฒนาเพื่อต่อต้านภัยคุกคามจากรูทคิตในโหมดเคอร์เนล ตัวอย่างเช่น Microsoft Windows รุ่น 64 บิตในปัจจุบันใช้การลงนามบังคับของไดรเวอร์ระดับเคอร์เนลทั้งหมด เพื่อทำให้ยากขึ้นสำหรับโค้ดที่ไม่น่าเชื่อถือในการเรียกใช้ด้วยสิทธิ์สูงสุดในระบบ[ 46 ]

ชุดบู๊ทคิท

รูทคิทโหมดเคอร์เนลชนิดหนึ่งที่เรียกว่าบูทคิทสามารถติดเชื้อโค้ดเริ่มต้น เช่นมาสเตอร์บูตเรคคอร์ด (MBR) วอลุ่มบูตเรคคอร์ด (VBR) หรือเซกเตอร์บูตและด้วยวิธีนี้สามารถใช้โจมตีระบบการเข้ารหัสทั้งดิสก์ได้ [ 47 ] ตัวอย่างของการโจมตีการเข้ารหัสดิสก์ดังกล่าวคือ " การโจมตีแม่บ้านชั่วร้าย " ซึ่งผู้โจมตีติดตั้งบูทคิทบนคอมพิวเตอร์ที่ไม่มีคนดูแล สถานการณ์ที่คาดการณ์ไว้คือแม่บ้านแอบเข้าไปในห้องพักโรงแรมที่เหยื่อทิ้งฮาร์ดแวร์ไว้[ 48 ]บูทคิทจะแทนที่บูตโหลดเดอร์ ที่ถูกต้อง ด้วยบูตโหลดเดอร์ที่อยู่ภายใต้การควบคุมของพวกเขา โดยทั่วไปแล้ว โหลดเดอร์มัลแวร์จะยังคงอยู่ตลอดการเปลี่ยนไปสู่โหมดป้องกันเมื่อเคอร์เนลโหลดเสร็จแล้ว และด้วยเหตุนี้จึงสามารถบิดเบือนเคอร์เนลได้[ 49 ] [ 50 ] [ 51 ]ตัวอย่างเช่น "Stoned Bootkit" บิดเบือนระบบโดยใช้บูตโหลดเดอร์ ที่ถูกบุกรุก เพื่อดักจับคีย์การเข้ารหัสและรหัสผ่าน[ 52 ]ในปี 2010 รูทคิต Alureon ประสบความสำเร็จในการหลีกเลี่ยงข้อกำหนดสำหรับการลงนามไดรเวอร์โหมดเคอร์เนล 64 บิตในWindows 7โดยการแก้ไขมาสเตอร์บูตเรคคอร์ด [ 53 ] แม้ว่าจะไม่ใช่มัลแวร์ในแง่ของการทำสิ่งที่ผู้ใช้ไม่ต้องการ แต่ซอฟต์แวร์ "Vista Loader" หรือ "Windows Loader" บางตัวทำงานในลักษณะเดียวกันโดยการแทรก ตาราง ACPI SLIC (System Licensed Internal Code) ในเวอร์ชัน BIOS ที่แคชไว้ใน RAM ระหว่างการบูต เพื่อเอาชนะกระบวนการเปิดใช้งาน Windows Vista และ Windows 7 ช่องทางการโจมตีนี้ไร้ประโยชน์ในเวอร์ชัน Windows 8 (ที่ไม่ใช่เซิร์ฟเวอร์) ซึ่งใช้คีย์เฉพาะเครื่องสำหรับแต่ละระบบ ซึ่งสามารถใช้ได้เฉพาะเครื่องนั้นเครื่องเดียวเท่านั้น[ 54 ]บริษัทแอนติไวรัสหลายแห่งมีโปรแกรมและยูทิลิตี้ฟรีสำหรับการกำจัดบูตคิต

ระดับไฮเปอร์ไวเซอร์

รูทคิตถูกสร้างขึ้นเป็นไฮเปอร์ไวเซอร์ ประเภท II ในแวดวงวิชาการเพื่อเป็นหลักฐานเชิงแนวคิด โดยการใช้ประโยชน์จากคุณสมบัติการจำลองเสมือนของฮาร์ดแวร์ เช่นIntel VTหรือAMD-Vรูทคิตประเภทนี้ทำงานใน Ring  -1 และโฮสต์ระบบปฏิบัติการเป้าหมายเป็นเครื่องเสมือนทำให้รูทคิตสามารถดักจับการเรียกใช้ฮาร์ดแวร์ที่ทำโดยระบบปฏิบัติการดั้งเดิมได้[ 6 ]แตกต่างจากไฮเปอร์ไวเซอร์ทั่วไป รูทคิตประเภทนี้ไม่จำเป็นต้องโหลดก่อนระบบปฏิบัติการ แต่สามารถโหลดเข้าไปในระบบปฏิบัติการก่อนที่จะโปรโมตให้เป็นเครื่องเสมือนได้[ 6 ]รูทคิตไฮเปอร์ไวเซอร์ไม่จำเป็นต้องทำการแก้ไขใดๆ กับเคอร์เนลของเป้าหมายเพื่อทำลายมัน อย่างไรก็ตาม นั่นไม่ได้หมายความว่าระบบปฏิบัติการแขกจะไม่สามารถตรวจจับได้ ตัวอย่างเช่น อาจสามารถตรวจจับความแตกต่างของเวลาในคำสั่งCPU ได้ [ 6 ]รูทคิตในห้องปฏิบัติการ "SubVirt" ซึ่งพัฒนาร่วมกันโดย นักวิจัยของ Microsoftและมหาวิทยาลัยมิชิแกนเป็นตัวอย่างทางวิชาการของรูทคิตแบบเครื่องเสมือน (VMBR) [ 55 ] ในขณะที่ ซอฟต์แวร์ Blue Pillก็เป็นอีกตัวอย่างหนึ่ง ในปี 2552 นักวิจัยจาก Microsoft และมหาวิทยาลัยแห่งรัฐนอร์ทแคโรไลนาได้สาธิตโปรแกรมป้องกันรูทคิตระดับไฮเปอร์ไวเซอร์ที่เรียกว่าHooksafeซึ่งให้การป้องกันทั่วไปต่อรูทคิตในโหมดเคอร์เนล[ 56 ] Windows 10ได้แนะนำคุณสมบัติใหม่ที่เรียกว่า "Device Guard" ซึ่งใช้ประโยชน์จากเวอร์ชวลไลเซชันเพื่อมอบการป้องกันภายนอกที่เป็นอิสระของระบบปฏิบัติการจากมัลแวร์ประเภทรูทคิต[ 57 ]

เฟิร์มแวร์และฮาร์ดแวร์

รู ทคิท เฟิร์มแวร์ใช้เฟิร์มแวร์ของอุปกรณ์หรือแพลตฟอร์มเพื่อสร้างภาพมัลแวร์ถาวรในฮาร์ดแวร์ เช่นเราเตอร์การ์ดเครือข่าย [ 58 ] ฮาร์ดไดรฟ์หรือBIOSของ ระบบ [ 36 ] [ 59 ]รูทคิทจะซ่อนตัวอยู่ในเฟิร์มแวร์ เนื่องจากโดยปกติเฟิร์มแวร์จะไม่ได้รับการตรวจสอบความสมบูรณ์ของโค้ด John Heasman ได้แสดงให้เห็นถึงความเป็นไปได้ของรูทคิทเฟิร์มแว ร์ทั้งในรูทีนเฟิร์มแวร์ACPI [ 60 ]และในROMการ์ดขยายPCI [ 61 ]ในเดือนตุลาคม พ.ศ. 2551 อาชญากรได้ดัดแปลง เครื่องอ่าน บัตรเครดิต ของยุโรป ก่อนที่จะติดตั้ง อุปกรณ์ดังกล่าวสามารถดักจับและส่งรายละเอียดบัตรเครดิตผ่านเครือข่ายโทรศัพท์มือถือ[ 62 ]ในเดือนมีนาคม พ.ศ. 2552 นักวิจัย Alfredo Ortega และAnibal Saccoได้เผยแพร่รายละเอียดของ รูทคิท Windows ระดับ BIOSที่สามารถอยู่รอดได้แม้จะมีการเปลี่ยนดิสก์และติดตั้งระบบปฏิบัติการใหม่[ 63 ] [ 64 ] [ 65 ]ไม่กี่เดือนต่อมา พวกเขาได้เรียนรู้ว่าแล็ปท็อปบางเครื่องถูกขายพร้อมกับรูทคิตที่ถูกต้องตามกฎหมาย ซึ่งรู้จักกันในชื่อ Absolute CompuTraceหรือ Absolute LoJack for Laptopsที่ติดตั้งไว้ล่วงหน้าในอิมเมจ BIOS จำนวนมาก นี่คือระบบเทคโนโลยีป้องกันการโจรกรรมที่นักวิจัยแสดงให้เห็นว่าสามารถนำไปใช้ในทางที่มุ่งร้ายได้[ 33 ]

เทคโนโลยี Intel Active Management Technologyซึ่งเป็นส่วนหนึ่งของIntel vProช่วยให้สามารถจัดการแบบ out-of-band ได้ ทำให้ผู้ดูแลระบบสามารถบริหารจัดการ ควบคุมและจัดการ พีซี จาก ระยะไกล ได้โดยไม่ต้องอาศัยโปรเซสเซอร์หรือ BIOS แม้ว่าระบบจะปิดอยู่ก็ตาม การบริหารจัดการจากระยะไกลรวมถึงการเปิดและปิดเครื่องจากระยะไกล การรีเซ็ตจากระยะไกล การบูตแบบเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางคอนโซล การเข้าถึงการตั้งค่า BIOS ก่อนบูต การกรองข้อมูลเครือข่ายขาเข้าและขาออกที่ตั้งโปรแกรมได้ การตรวจสอบสถานะของเอเจนต์ การแจ้งเตือนตามนโยบายแบบ out-of-band การเข้าถึงข้อมูลระบบ เช่น ข้อมูลฮาร์ดแวร์ บันทึกเหตุการณ์ถาวร และข้อมูลอื่นๆ ที่จัดเก็บไว้ในหน่วยความจำเฉพาะ (ไม่ใช่ฮาร์ดไดรฟ์) ซึ่งสามารถเข้าถึงได้แม้ว่าระบบปฏิบัติการจะหยุดทำงานหรือพีซีปิดอยู่ก็ตาม ฟังก์ชันบางอย่างเหล่านี้จำเป็นต้องใช้ rootkit ระดับลึก ซึ่งเป็นคอมพิวเตอร์สอดแนมตัวที่สองที่ไม่สามารถถอดออกได้ สร้างขึ้นรอบๆ คอมพิวเตอร์หลัก ชิปเซ็ต Sandy Bridge และชิปเซ็ตในอนาคตมี "ความสามารถในการทำลายและกู้คืนพีซีที่สูญหายหรือถูกขโมยจากระยะไกลผ่าน 3G" รูทคิตฮาร์ดแวร์ที่ฝังอยู่ในชิปเซ็ตสามารถช่วยกู้คืนคอมพิวเตอร์ที่ถูกขโมย ลบข้อมูล หรือทำให้คอมพิวเตอร์ใช้งานไม่ได้ แต่ก็ก่อให้เกิดความกังวลด้านความเป็นส่วนตัวและความปลอดภัยจากการสอดแนมและการเปลี่ยนเส้นทางที่ไม่สามารถตรวจจับได้โดยผู้บริหารหรือแฮกเกอร์ที่อาจเข้าควบคุมระบบได้

การติดตั้งและการพรางตัว

รูทคิตใช้วิธีการต่างๆ มากมายเพื่อควบคุมระบบ ประเภทของรูทคิตมีอิทธิพลต่อการเลือกเวกเตอร์การโจมตี เทคนิคที่พบบ่อยที่สุดคือการใช้ช่องโหว่ด้านความปลอดภัยเพื่อยกระดับสิทธิ์ อย่างลับๆ อีกวิธีหนึ่งคือการใช้ม้าโทรจัน หลอกลวงผู้ใช้คอมพิวเตอร์ให้เชื่อใจโปรแกรมติดตั้งรูทคิตว่าเป็นโปรแกรมที่ไม่เป็นอันตรายในกรณีนี้วิศวกรรมสังคมจะโน้มน้าวให้ผู้ใช้เชื่อว่ารูทคิตมีประโยชน์[ 38 ]งานติดตั้งจะง่ายขึ้นหาก ไม่ได้ใช้ หลักการของสิทธิ์ขั้นต่ำเนื่องจากรูทคิตไม่จำเป็นต้องขอสิทธิ์ระดับสูง (ระดับผู้ดูแลระบบ) อย่างชัดเจน รูทคิตประเภทอื่นๆ สามารถติดตั้งได้โดยผู้ที่มีสิทธิ์เข้าถึงระบบเป้าหมายเท่านั้น รูทคิตบางตัวอาจถูกติดตั้งโดยเจตนาโดยเจ้าของระบบหรือผู้ที่ได้รับอนุญาตจากเจ้าของ เช่น เพื่อวัตถุประสงค์ในการตรวจสอบพนักงานทำให้เทคนิคการก่อกวนดังกล่าวไม่จำเป็น[ 66 ]การติดตั้งรูทคิตที่เป็นอันตรายบางอย่างมีจุดประสงค์เพื่อการค้า โดยมีวิธีการชดเชยแบบจ่ายต่อการติดตั้ง (PPI) เป็นเรื่องปกติสำหรับการแจกจ่าย[ 67 ] [ 68 ]

เมื่อติดตั้งแล้ว รูทคิตจะดำเนินการอย่างแข็งขันเพื่อปกปิดการมีอยู่ของมันภายในระบบโฮสต์โดยการบิดเบือนหรือหลีกเลี่ยง เครื่องมือ รักษาความปลอดภัย ของระบบปฏิบัติการมาตรฐาน และอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ใช้สำหรับการวินิจฉัย การสแกน และการตรวจสอบ[ 69 ]รูทคิตบรรลุเป้าหมายนี้โดยการแก้ไขพฤติกรรมของส่วนหลักของระบบปฏิบัติการโดยการโหลดโค้ดลงในกระบวนการอื่น การติดตั้งหรือแก้ไขไดรเวอร์หรือโมดูลเคอร์เนลเทคนิคการปกปิดรวมถึงการซ่อนกระบวนการที่กำลังทำงานจากกลไกการตรวจสอบระบบและการซ่อนไฟล์ระบบและข้อมูลการกำหนดค่าอื่นๆ[ 70 ]ไม่ใช่เรื่องแปลกที่รูทคิตจะปิดใช้ งานความสามารถใน การบันทึกเหตุการณ์ของระบบปฏิบัติการ เพื่อพยายามซ่อนหลักฐานการโจมตี ในทางทฤษฎี รูทคิตสามารถบิดเบือน กิจกรรม ใดๆของระบบปฏิบัติการได้[ 71 ] "รูทคิตที่สมบูรณ์แบบ" สามารถคิดได้ว่าคล้ายกับ " อาชญากรรมที่สมบูรณ์แบบ ": อาชญากรรมที่ไม่มีใครรู้ว่าเกิดขึ้น รูทคิตยังใช้มาตรการหลายอย่างเพื่อให้แน่ใจว่าพวกมันจะอยู่รอดจากการตรวจจับและการ "กำจัด" โดยซอฟต์แวร์ป้องกันไวรัส นอกเหนือจากการติดตั้งลงใน Ring 0 (โหมดเคอร์เนล) ซึ่งพวกมันสามารถเข้าถึงระบบได้อย่างสมบูรณ์ มาตรการเหล่านี้รวมถึงโพลีมอร์ฟิซึม (การเปลี่ยนแปลงเพื่อให้ "ลายเซ็น" ของพวกมันตรวจจับได้ยาก) เทคนิคการล่องหน การสร้างใหม่ การปิดใช้งานหรือปิดซอฟต์แวร์ป้องกันมัลแวร์[ 72 ]และการไม่ติดตั้งบนเครื่องเสมือนซึ่งอาจง่ายกว่าสำหรับนักวิจัยในการค้นพบและวิเคราะห์พวกมัน

การตรวจจับ

ปัญหาพื้นฐานของการตรวจจับรูทคิตคือ หากระบบปฏิบัติการถูกบุกรุก โดยเฉพาะอย่างยิ่งโดยรูทคิตระดับเคอร์เนล ระบบจะไม่สามารถเชื่อถือได้ว่าจะตรวจพบการแก้ไขที่ไม่ได้รับอนุญาตต่อตัวมันเองหรือส่วนประกอบต่างๆ[ 71 ]การกระทำต่างๆ เช่น การขอรายการกระบวนการที่กำลังทำงานอยู่ หรือรายการไฟล์ในไดเร็กทอรี จะไม่สามารถเชื่อถือได้ว่าจะทำงานได้ตามที่คาดหวัง กล่าวอีกนัยหนึ่ง ตัวตรวจจับรูทคิตที่ทำงานบนระบบที่ติดเชื้อจะมีประสิทธิภาพเฉพาะกับรูทคิตที่มีข้อบกพร่องในการพรางตัว หรือที่ทำงานด้วยสิทธิ์ในโหมดผู้ใช้ที่ต่ำกว่าซอฟต์แวร์ตรวจจับในเคอร์เนล[ 38 ]เช่นเดียวกับไวรัสคอมพิวเตอร์การตรวจจับและการกำจัดรูทคิตเป็นการต่อสู้ที่ดำเนินอยู่ระหว่างทั้งสองฝ่ายของความขัดแย้งนี้[ 71 ]การตรวจจับสามารถใช้วิธีการต่างๆ ได้หลายวิธี รวมถึงการมองหา "ลายเซ็น" ของไวรัส (เช่น ซอฟต์แวร์ป้องกันไวรัส) การตรวจสอบความสมบูรณ์ (เช่นลายเซ็นดิจิทัล ) การตรวจจับตามความแตกต่าง (การเปรียบเทียบผลลัพธ์ที่คาดหวังกับผลลัพธ์จริง) และการตรวจจับตามพฤติกรรม (เช่น การตรวจสอบการใช้งาน CPU หรือปริมาณการรับส่งข้อมูลเครือข่าย)

สำหรับการตรวจจับรูทคิตในโหมดเคอร์เนลนั้นมีความซับซ้อนมากขึ้นอย่างมาก โดยต้องตรวจสอบตารางการเรียกใช้ระบบอย่างละเอียดเพื่อค้นหาฟังก์ชันที่ถูกดักจับซึ่งมัลแวร์อาจกำลังบิดเบือนพฤติกรรมของระบบ[ 73 ]รวมถึง การสแกนหน่วยความจำ แบบนิติวิทยาศาสตร์เพื่อหารูปแบบที่บ่งชี้ถึงกระบวนการที่ซ่อนอยู่ เครื่องมือตรวจจับรูทคิตสำหรับ Unix ได้แก่ Zeppoo [ 74 ] chkrootkit rkhunter และ OSSEC สำหรับ Windows เครื่องมือตรวจจับ ได้แก่ Microsoft Sysinternals RootkitRevealer [ 75 ] Avast Antivirus [ 76 ] Sophos Anti -Rootkit [ 77 ] F-Secure [ 78 ] Radix [ 79 ] GMER [ 80 ]และWindowsSCOPE เครื่องมือตรวจจับรูทคิตใดๆ ที่พิสูจน์แล้วว่ามีประสิทธิภาพในที่สุดก็ส่งผลให้ตัวเองไร้ประสิทธิภาพ เนื่องจากผู้เขียนมัลแวร์จะปรับและทดสอบ โค้ด ของ ตน เพื่อหลีกเลี่ยงการตรวจ จับโดยเครื่องมือที่ใช้กันอย่างแพร่หลาย[หมายเหตุ 1 ]การตรวจจับโดยการตรวจสอบพื้นที่จัดเก็บข้อมูลในขณะที่ระบบปฏิบัติการที่ต้องสงสัยไม่ได้ทำงาน อาจพลาดรูทคิตที่ซอฟต์แวร์ตรวจสอบไม่รู้จัก เนื่องจากรูทคิตไม่ได้ทำงานและพฤติกรรมที่น่าสงสัยถูกระงับไว้ ซอฟต์แวร์ป้องกันมัลแวร์ทั่วไปที่ทำงานร่วมกับรูทคิตอาจล้มเหลวหากรูทคิตซ่อนตัวได้อย่างมีประสิทธิภาพ

สื่อทางเลือกที่น่าเชื่อถือ

วิธีที่ดีที่สุดและน่าเชื่อถือที่สุดสำหรับการตรวจจับรูทคิตระดับระบบปฏิบัติการคือการปิดเครื่องคอมพิวเตอร์ที่ต้องสงสัยว่าติดเชื้อ จากนั้นตรวจสอบพื้นที่จัดเก็บข้อมูลโดยการบูตจากสื่อที่เชื่อถือได้อื่น (เช่นซีดีรอม "กู้ คืน" หรือแฟลชไดรฟ์ USB ) [ 81 ]เทคนิคนี้ได้ผลเพราะรูทคิตไม่สามารถซ่อนตัวตนได้หากไม่ได้ทำงาน

อิงตามพฤติกรรม

แนวทางการตรวจจับรูทคิตโดยอาศัยพฤติกรรมนั้น พยายามที่จะอนุมานการมีอยู่ของรูทคิตโดยการมองหาพฤติกรรมที่คล้ายกับรูทคิต ตัวอย่างเช่น โดยการวิเคราะห์ระบบ ความแตกต่างในเวลาและความถี่ของการเรียกใช้ API หรือในการใช้งาน CPU โดยรวม สามารถนำมาเชื่อมโยงกับรูทคิตได้ วิธีนี้มีความซับซ้อนและมีข้อจำกัดเนื่องจากมีผลลัพธ์ที่ผิดพลาด สูง รูทคิตที่มีข้อบกพร่องบางครั้งอาจทำให้เกิดการเปลี่ยนแปลงที่เห็นได้ชัดเจนมากในระบบ: รูทคิต Alureonทำให้ระบบ Windows ล่มหลังจากที่การอัปเดตความปลอดภัยเผยให้เห็นข้อบกพร่องในการออกแบบในโค้ด[ 82 ] [ 83 ]บันทึกจากเครื่องวิเคราะห์แพ็กเก็ไฟร์วอลล์หรือระบบป้องกันการบุกรุกอาจแสดงหลักฐานของพฤติกรรมรูทคิตในสภาพแวดล้อมเครือข่าย[ 35 ]

อิงตามลายเซ็น

ผลิตภัณฑ์ป้องกันไวรัสแทบจะไม่สามารถตรวจจับไวรัสทั้งหมดได้ในการทดสอบสาธารณะ (ขึ้นอยู่กับสิ่งที่ใช้และขอบเขตการใช้งาน) แม้ว่าผู้จำหน่ายซอฟต์แวร์รักษาความปลอดภัยจะรวมการตรวจจับรูทคิตไว้ในผลิตภัณฑ์ของตนก็ตาม หากรูทคิตพยายามซ่อนตัวในระหว่างการสแกนป้องกันไวรัส ตัวตรวจจับการซ่อนตัวอาจตรวจพบได้ หากรูทคิตพยายามโหลดตัวเองออกจากระบบชั่วคราว การตรวจจับลายเซ็น (หรือ "การทำลายนิ้วมือ") ก็ยังสามารถค้นพบได้[ 84 ]วิธีการแบบผสมผสานนี้บังคับให้ผู้โจมตีต้องใช้กลไกการตอบโต้ หรือขั้นตอน "ย้อนกลับ" ที่พยายามยุติโปรแกรมป้องกันไวรัส วิธีการตรวจจับตามลายเซ็นอาจมีประสิทธิภาพกับรูทคิตที่เผยแพร่ทั่วไป แต่มีประสิทธิภาพน้อยกว่ากับรูทคิตที่สร้างขึ้นเป็นพิเศษ[ 71 ]

อิงตามความแตกต่าง

อีกวิธีหนึ่งที่สามารถตรวจจับรูทคิตได้คือการเปรียบเทียบข้อมูลดิบที่ "เชื่อถือได้" กับเนื้อหาที่ "ปนเปื้อน" ที่ส่งคืนโดยAPIตัวอย่างเช่นไบนารีที่มีอยู่ในดิสก์สามารถเปรียบเทียบกับสำเนาภายในหน่วยความจำการทำงาน (ในบางระบบปฏิบัติการ รูปภาพในหน่วยความจำควรจะเหมือนกับรูปภาพบนดิสก์) หรือผลลัพธ์ที่ส่งคืนจาก API ของ ระบบไฟล์หรือWindows Registryสามารถตรวจสอบกับโครงสร้างดิบในดิสก์ทางกายภาพที่อยู่เบื้องหลังได้[ 71 ] [ 85 ] —อย่างไรก็ตาม ในกรณีแรก ความแตกต่างที่ถูกต้องบางอย่างสามารถเกิดขึ้นได้จากกลไกของระบบปฏิบัติการ เช่น การย้ายตำแหน่งหน่วยความจำหรือการปรับแต่งรูทคิตอาจตรวจพบการมีอยู่ของสแกนเนอร์แบบอิงความแตกต่างหรือเครื่องเสมือน (ซึ่งมักใช้ในการวิเคราะห์ทางนิติวิทยาศาสตร์) และปรับพฤติกรรมเพื่อไม่ให้ตรวจพบความแตกต่าง การตรวจจับแบบอิงความแตกต่างถูกใช้โดย เครื่องมือ RootkitRevealerของRussinovichเพื่อค้นหารูทคิต Sony DRM [ 1 ]

การตรวจสอบความถูกต้อง

โปรแกรมrkhunterใช้ ค่าแฮ ช SHA-1เพื่อตรวจสอบความถูกต้องของไฟล์ระบบ

การลงนามรหัสใช้โครงสร้างพื้นฐานคีย์สาธารณะเพื่อตรวจสอบว่าไฟล์ได้รับการแก้ไขหรือไม่นับตั้งแต่ได้รับการลงนามดิจิทัลโดยผู้เผยแพร่ หรืออีกทางหนึ่ง เจ้าของระบบหรือผู้ดูแลระบบสามารถใช้ฟังก์ชันแฮชเข้ารหัสลับเพื่อคำนวณ "ลายนิ้วมือ" ในเวลาติดตั้ง ซึ่งสามารถช่วยตรวจจับการเปลี่ยนแปลงที่ไม่ได้รับอนุญาตในภายหลังต่อไลบรารีรหัสบนดิสก์ได้[ 86 ]อย่างไรก็ตาม แผนการที่ไม่ซับซ้อนจะตรวจสอบเฉพาะว่ารหัสได้รับการแก้ไขหรือไม่นับตั้งแต่เวลาติดตั้ง การเปลี่ยนแปลงก่อนหน้านั้นไม่สามารถตรวจจับได้ ลายนิ้วมือจะต้องถูกสร้างขึ้นใหม่ทุกครั้งที่มีการเปลี่ยนแปลงเกิดขึ้นกับระบบ เช่น หลังจากติดตั้งการอัปเดตความปลอดภัยหรือแพ็คเกจบริการฟังก์ชันแฮชจะสร้างข้อความสรุปซึ่งเป็นรหัสที่ค่อนข้างสั้นที่คำนวณจากแต่ละบิตในไฟล์โดยใช้อัลกอริทึมที่สร้างการเปลี่ยนแปลงขนาดใหญ่ในข้อความสรุปด้วยการเปลี่ยนแปลงที่เล็กกว่าในไฟล์ต้นฉบับ การคำนวณใหม่และเปรียบเทียบข้อความสรุปของไฟล์ที่ติดตั้งเป็นระยะๆ กับรายการข้อความสรุปที่เชื่อถือได้ การเปลี่ยนแปลงในระบบสามารถตรวจจับและตรวจสอบได้ ตราบใดที่ได้สร้างฐานเดิมก่อนที่จะเพิ่มมัลแวร์

รูทคิตที่ซับซ้อนกว่าสามารถบิดเบือนกระบวนการตรวจสอบได้โดยการนำเสนอสำเนาไฟล์ที่ไม่ได้รับการแก้ไขสำหรับการตรวจสอบ หรือโดยการแก้ไขโค้ดเฉพาะในหน่วยความจำ รีจิสเตอร์การกำหนดค่าใหม่ ซึ่งจะถูกเปรียบเทียบกับรายการค่าที่คาดหวังไว้ในภายหลัง[ 87 ]โค้ดที่ทำการแฮช เปรียบเทียบ หรือขยายการทำงานจะต้องได้รับการปกป้องด้วย ในบริบทนี้ แนวคิดของรากแห่งความเชื่อถือที่ไม่เปลี่ยนแปลงได้ถือว่าโค้ดแรกสุดที่วัดคุณสมบัติความปลอดภัยของระบบจะต้องได้รับความไว้วางใจเพื่อให้แน่ใจว่ารูทคิตหรือบูทคิตจะไม่บุกรุกระบบในระดับพื้นฐานที่สุด[ 88 ]

การดัมพ์หน่วยความจำ

การบังคับให้ดัมพ์หน่วย ความจำเสมือนทั้งหมดจะสามารถจับรูทคิตที่ทำงานอยู่ (หรือดัมพ์เคอร์เนลในกรณีของรูทคิตโหมดเคอร์เนล) ทำให้สามารถทำการวิเคราะห์ทางนิติวิทยาศาสตร์ แบบออฟไลน์ได้โดยใช้ ดีบักเกอร์ กับ ไฟล์ดัมพ์ที่ได้ โดยที่รูทคิตไม่สามารถใช้มาตรการใดๆ เพื่อซ่อนตัวได้ เทคนิคนี้มีความเฉพาะทางสูง และอาจต้องเข้าถึงซอร์สโค้ดที่ไม่เปิดเผย ต่อสาธารณะ หรือสัญลักษณ์การดีบัก การดัมพ์หน่วยความจำที่เริ่มต้นโดยระบบปฏิบัติการไม่สามารถใช้ตรวจจับรูทคิตที่ใช้ไฮเปอร์ไวเซอร์ได้เสมอไป เนื่องจากรูทคิตประเภทนี้สามารถดักจับและบิดเบือนความพยายามในการอ่านหน่วยความจำในระดับต่ำสุดได้[ 6 ] — อาจต้องใช้อุปกรณ์ฮาร์ดแวร์ เช่น อุปกรณ์ที่ใช้การขัดจังหวะที่ไม่สามารถปิดกั้นได้ เพื่อดัมพ์หน่วยความจำในสถานการณ์นี้ [ 89 ] [ 90 ]เครื่องเสมือนยังทำให้การวิเคราะห์หน่วยความจำของเครื่องที่ถูกบุกรุกจากไฮเปอร์ไวเซอร์พื้นฐานทำได้ง่ายขึ้น ดังนั้นรูทคิตบางตัวจึงหลีกเลี่ยงการติดเชื้อเครื่องเสมือนด้วยเหตุผลนี้

การลบ

การลบรูทคิตด้วยตนเองมักเป็นเรื่องยากมากสำหรับผู้ใช้คอมพิวเตอร์ทั่วไป[ 36 ] แต่ผู้จำหน่ายซอฟต์แวร์รักษาความปลอดภัยหลายรายเสนอเครื่องมือในการตรวจจับและลบรูทคิตบางตัวโดยอัตโนมัติ ซึ่งโดยทั่วไป จะเป็นส่วนหนึ่งของชุดโปรแกรมป้องกันไวรัสณ ปี 2548เครื่องมือ Windows Malicious Software Removal Toolรายเดือนของ Microsoft สามารถตรวจจับและกำจัดรูทคิตบางประเภทได้[ 91 ] [ 92 ] นอกจากนี้ Windows Defender Offline ยังสามารถกำจัดรูทคิตได้ เนื่องจากทำงานจากสภาพแวดล้อมที่เชื่อถือได้ก่อนที่ระบบปฏิบัติการจะเริ่มต้น[ 93 ]โปรแกรมสแกนไวรัสบางตัวสามารถข้าม API ของระบบไฟล์ซึ่งมีความเสี่ยงต่อการถูกรูทคิตจัดการได้ โดยจะเข้าถึงโครงสร้างระบบไฟล์ดิบโดยตรง และใช้ข้อมูลนี้เพื่อตรวจสอบความถูกต้องของผลลัพธ์จาก API ของระบบเพื่อระบุความแตกต่างใดๆ ที่อาจเกิดจากรูทคิต[หมายเหตุ 2 ] [ 94 ] [ 95 ] [ 96 ] [ 97 ]มีผู้เชี่ยวชาญบางคนเชื่อว่าวิธีเดียวที่เชื่อถือได้ในการกำจัดรูทคิตคือการติดตั้งระบบปฏิบัติการใหม่จากสื่อที่เชื่อถือได้[ 98 ] [ 99 ]ทั้งนี้เนื่องจากเครื่องมือป้องกันไวรัสและเครื่องมือกำจัดมัลแวร์ที่ทำงานบนระบบที่ไม่น่าเชื่อถืออาจไม่มีประสิทธิภาพต่อรูทคิตโหมดเคอร์เนลที่เขียนขึ้นอย่างดี การบูตระบบปฏิบัติการทางเลือกจากสื่อที่เชื่อถือได้จะช่วยให้สามารถติดตั้งไดรฟ์ระบบที่ติดไวรัสและอาจทำความสะอาดได้อย่างปลอดภัยและคัดลอกข้อมูลสำคัญออกไปได้ หรืออีกทางหนึ่งคือดำเนินการตรวจสอบทางนิติวิทยาศาสตร์[ 35 ]ระบบปฏิบัติการขนาดเล็ก เช่นWindows PE , Windows Recovery Console , Windows Recovery Environment , BartPEหรือLive Distrosสามารถใช้เพื่อจุดประสงค์นี้ได้ ทำให้ระบบสามารถ "ทำความสะอาด" ได้ แม้ว่าจะทราบประเภทและลักษณะของรูทคิตแล้ว การซ่อมแซมด้วยตนเองอาจทำได้ยาก ในขณะที่การติดตั้งระบบปฏิบัติการและแอปพลิเคชันใหม่นั้นปลอดภัยกว่า ง่ายกว่า และเร็วกว่า[ 98 ]

การป้องกัน

การเสริมความแข็งแกร่งของระบบถือเป็นหนึ่งในชั้นการป้องกันแรกๆ ต่อรูทคิต เพื่อป้องกันไม่ให้สามารถติดตั้งได้ตั้งแต่แรก[ 100 ]การใช้แพตช์ความปลอดภัยการใช้หลักการสิทธิ์ขั้นต่ำการลดพื้นที่การโจมตีและการติดตั้งซอฟต์แวร์ป้องกันไวรัส เป็นแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยมาตรฐานบางประการที่มีประสิทธิภาพต่อมัลแวร์ทุกประเภท[ 101 ]ข้อกำหนดการบูตที่ปลอดภัยแบบใหม่ เช่นUEFIได้รับการออกแบบมาเพื่อจัดการกับภัยคุกคามจากบูตคิต แต่แม้กระทั่งสิ่งเหล่านี้ก็ยังมีความเสี่ยงหากไม่ได้ใช้คุณสมบัติความปลอดภัยที่พวกเขามีให้[ 59 ]สำหรับระบบเซิร์ฟเวอร์ การรับรองเซิร์ฟเวอร์ระยะไกลโดยใช้เทคโนโลยีเช่น Intel Trusted Execution Technology (TXT) เป็นวิธีหนึ่งในการตรวจสอบว่าเซิร์ฟเวอร์ยังคงอยู่ในสถานะที่ดีที่ทราบ ตัวอย่างเช่นการเข้ารหัสข้อมูลที่จัดเก็บของMicrosoft Bitlocker ตรวจสอบว่าเซิร์ฟเวอร์อยู่ใน "สถานะที่ดี" ที่ทราบเมื่อบูตเครื่อง PrivateCore vCage เป็นซอฟต์แวร์ที่รักษาความปลอดภัยข้อมูลที่ใช้งานอยู่ (หน่วยความจำ) เพื่อหลีกเลี่ยงบูตคิตและรูทคิตโดยการตรวจสอบว่าเซิร์ฟเวอร์อยู่ใน "สถานะที่ดี" ที่ทราบเมื่อบูตเครื่อง การใช้งาน PrivateCore ทำงานร่วมกับ Intel TXT และล็อกอินเทอร์เฟซระบบเซิร์ฟเวอร์เพื่อหลีกเลี่ยงบูทคิตและรูทคิตที่อาจเกิดขึ้น

กลไกการป้องกันอีกอย่างหนึ่งที่เรียกว่าแนวทาง Virtual Wall (VTW) ทำหน้าที่เป็นไฮเปอร์ไวเซอร์น้ำหนักเบาที่มีความสามารถในการตรวจจับรูทคิตและการติดตามเหตุการณ์ ในการทำงานปกติ (โหมดแขก) Linux จะทำงาน และเมื่อ LKM ที่โหลดละเมิดนโยบายความปลอดภัย ระบบจะเปลี่ยนเป็นโหมดโฮสต์ VTW ในโหมดโฮสต์จะตรวจจับ ติดตาม และจำแนกเหตุการณ์รูทคิตตามการควบคุมการเข้าถึงหน่วยความจำและกลไกการฉีดเหตุการณ์ ผลการทดลองแสดงให้เห็นถึงประสิทธิภาพของ VTW ในการตรวจจับและป้องกันรูทคิตเคอร์เนลได้อย่างทันท่วงทีด้วยโอเวอร์เฮด CPU น้อยที่สุด (น้อยกว่า 2%) VTW ได้รับการเปรียบเทียบในเชิงบวกกับแผนการป้องกันอื่นๆ โดยเน้นที่ความเรียบง่ายในการใช้งานและศักยภาพในการเพิ่มประสิทธิภาพบนเซิร์ฟเวอร์ Linux [ 102 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ชื่อกระบวนการของ Sysinternals RootkitRevealer ถูกโจมตีโดยมัลแวร์ เพื่อเป็นการตอบโต้มาตรการนี้ ปัจจุบันเครื่องมือนี้จึงใช้ชื่อกระบวนการที่สร้างขึ้นแบบสุ่ม
  2. ในทางทฤษฎี รูทคิตระดับเคอร์เนลที่มีความซับซ้อนเพียงพออาจสามารถบิดเบือนการดำเนินการอ่านกับโครงสร้างข้อมูลระบบไฟล์ดิบได้เช่นกัน เพื่อให้ผลลัพธ์ที่ได้ตรงกับผลลัพธ์ที่ส่งคืนโดย API

อ่านเพิ่มเติม

  • Blunden, Bill (2009). The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System . Wordware. ISBN 978-1-59822-061-2.
  • Hoglund, Greg; Butler, James (2005). Rootkits: Subverting the Windows Kernel . Addison-Wesley Professional. ISBN 978-0-321-29431-9.
  • Grampp, FT; Morris, Robert H. Sr. (ตุลาคม 1984). "ระบบ UNIX: ความปลอดภัยของระบบปฏิบัติการ UNIX". AT&T Bell Laboratories Technical Journal . 62 (8): 1649– 1672. Bibcode : 1984BSTJ...63.1649G . doi : 10.1002/j.1538-7305.1984.tb00058.x . S2CID 26877484 . 
  • กง, โจเซฟ (2550) การออกแบบรูทคิ ทBSDไม่มีการกดแป้งไอเอสบีเอ็น 978-1-59327-142-8.
  • ไวเลอร์, ริค (2007). รูทคิตระดับมืออาชีพ . วร็อกซ์. ISBN 978-0-470-10154-4.
  • โลโก้ Wikimedia Commonsสื่อที่เกี่ยวข้องกับRootkits ใน Wikimedia Commons

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รูทคิท

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

ประวัติศาสตร์

คำว่า rootkit , rkit หรือ root kit เดิมทีหมายถึงชุดเครื่องมือบริหารจัดการที่ถูกดัดแปลงอย่างเป็นอันตรายสำหรับ ระบบปฏิบัติการ ที่คล้าย Unix ซึ่งให้สิทธิ์การเข้าถึงระดับ " root " [ 4 ] หากผู้บุกรุกสามารถแทนที่เครื่องมือบริหารจัดการมาตรฐานในระบบด้วย rootkit...

เหตุการณ์การพบ Rootkit ใน BIOS ของ Lenovo (Lenovo Service Engine) (ปี 2015)

ในช่วงกลางปี ​​2015 มีการค้นพบว่า Lenovo ได้จัดส่งพีซีสำหรับผู้บริโภคบางรุ่นที่มี เฟิร์มแวร์ ที่ทำงานคล้ายกับรูทคิตแบบฝังตัว ฟีเจอร์นี้เรียกว่า Lenovo Service Engine (LSE) ฝังอยู่ใน BIOS ของระบบ และจะทำงานเมื่อเริ่มต้นระบบ แม้กระทั่งก่อนที่ Windows จะบูตเสร็จ...

สตัคเน็ต (2010)

Stuxnet ซึ่งถูกเปิดเผยในปี 2010 เป็นเวิร์มที่มีความซับซ้อนสูง ซึ่งเชื่อกันอย่างกว้างขวางว่าได้รับการพัฒนาขึ้นในปฏิบัติการข่าวกรองร่วมระหว่างสหรัฐฯ