รูทคิท Linux ที่หลบเลี่ยง Elastic EDR: เปิดเผย Singularity

  • นักวิจัยนำเสนอ Singularity ซึ่งเป็นรูทคิท Linux ที่สามารถหลีกเลี่ยง Elastic EDR โดยใช้เทคนิคขั้นสูง
  • กลยุทธ์สำคัญ: การทำให้สตริงสับสน การสุ่มสัญลักษณ์ การแบ่งส่วนและการโหลดหน่วยความจำ และการเรียกใช้ระบบโดยตรง
  • ฟังก์ชันที่เป็นอันตราย: การซ่อนกระบวนการ ไฟล์ และการเชื่อมต่อ แบ็กดอร์ ICMP และการยกระดับสิทธิ์
  • ผลกระทบต่อยุโรปและสเปน: จำเป็นเร่งด่วนในการตรวจสอบความสมบูรณ์ของเคอร์เนลและใช้การป้องกันเชิงลึกด้วยการตรวจสอบหลักฐานหน่วยความจำ

รูทคิท Linux หลบเลี่ยง Elastic EDR

กลุ่มนักวิจัยได้แสดงให้เห็น รูทคิท Linux ที่เรียกว่า Singularity ซึ่งถูกจัดการโดย Elastic Security EDR โดยไม่ตรวจพบ แสดงให้เห็นถึงข้อจำกัดที่สำคัญในการตรวจจับระดับเคอร์เนล แนวคิดพิสูจน์นี้ไม่ได้เป็นเพียงทฤษฎีเท่านั้น: มันผสมผสานเทคนิคการบดบังและการหลีกเลี่ยง เพื่อลดสัญญาณที่ปกติจะส่งสัญญาณถึงโมดูลที่เป็นอันตรายให้เหลือศูนย์

การค้นพบนี้สร้างความกังวลให้กับทีมรักษาความปลอดภัยในยุโรป รวมถึงในสเปนด้วย เนื่องจาก โดยทั่วไปแล้ว Elastic จะทริกเกอร์การแจ้งเตือนมากกว่า 26 รายการ กับรูทคิททั่วไป และในกรณีนี้ พวกมันไม่ได้ถูกกระตุ้น งานวิจัยที่ตีพิมพ์เพื่อการศึกษาโดย 0xMatheuZ แสดงให้เห็นว่า วิธีการตามลายเซ็นและรูปแบบ พวกเขาล้มเหลวต่อศัตรูที่พัฒนาวิศวกรรมของพวกเขา

วิธีเอาชนะ Elastic EDR: เทคนิคการหลีกเลี่ยงที่สำคัญ

การหลีกเลี่ยง EDR ใน Linux

ข้อได้เปรียบประการแรกของความแปลกประหลาดคือ การบดบังสตริงในเวลาคอมไพล์แบ่งตัวอักษรที่มีความละเอียดอ่อน (เช่น "GPL" หรือ "kallsyms_lookup_name") ออกเป็นชิ้นต่อเนื่องที่คอมไพเลอร์ C สามารถเข้าใจได้ จัดเรียงใหม่โดยอัตโนมัติป้องกันไม่ให้เครื่องสแกน เช่น YARA ค้นหาสตริงที่เป็นอันตรายอย่างต่อเนื่องโดยไม่ต้องเสียสละฟังก์ชันการทำงาน

ควบคู่กันไปก็ใช้ การสุ่มชื่อสัญลักษณ์แทนที่จะใช้ตัวระบุที่คาดเดาได้ เช่น hook_getdents หรือ hide_module มันใช้แท็กทั่วไปที่มีคำนำหน้า พวกมันเลียนแบบเคอร์เนลนั้นเอง (sys, kern, dev) ทำให้เส้นทางของฟังก์ชันที่น่าสงสัยไม่ชัดเจนและยกเลิกกฎการตรวจจับตามชื่อ

การเคลื่อนไหวต่อไปคือ การแบ่งส่วนของโมดูล ในชิ้นส่วนที่เข้ารหัสซึ่งประกอบขึ้นใหม่ในหน่วยความจำเท่านั้น แฟรกเมนต์เหล่านี้ถูกเข้ารหัสด้วย XOR และตัวโหลดใช้ memfd_create เพื่อหลีกเลี่ยงการทิ้งเศษข้อมูลไว้บนดิสก์ เมื่อแทรกเข้าไป จะใช้ การเรียกระบบโดยตรง (รวมถึง finit_module) โดยใช้แอสเซมเบลอร์อินไลน์ หลบเลี่ยงตัวห่อ libc ที่ EDR หลายตัวตรวจสอบ

นอกจากนี้ยังพรางตัว ftrace auxiliaries อีกด้วย: ฟังก์ชันที่ตรวจสอบโดยทั่วไป (เช่น fh_install_hook หรือ fh_remove_hook) คือ เปลี่ยนชื่อในลักษณะกำหนดแน่นอน ด้วยตัวระบุแบบสุ่ม โดยรักษาพฤติกรรมของตนไว้แต่ทำลาย ลายเซ็นยืดหยุ่นที่กำหนดเป้าหมายรูทคิททั่วไป.

ในระดับพฤติกรรม นักวิจัยหลีกเลี่ยงกฎเชลล์ย้อนกลับโดยเขียนเพย์โหลดลงในดิสก์ก่อนแล้วจึงดำเนินการด้วย บรรทัดคำสั่ง “ทำความสะอาด”นอกจากนี้ รูทคิทยังซ่อนกระบวนการที่กำลังทำงานทันทีโดยใช้สัญญาณเฉพาะ ซึ่งทำให้ความสัมพันธ์มีความซับซ้อน ระหว่างเหตุการณ์และกิจกรรมจริง.

ความสามารถและความเสี่ยงของรูทคิทสำหรับสภาพแวดล้อมในยุโรป

ความเสี่ยงของรูทคิทในลินุกซ์

นอกเหนือจากการหลบเลี่ยงแล้ว Singularity ยังรวมฟังก์ชันการโจมตีไว้ด้วย: มันสามารถ ซ่อนกระบวนการใน /procการซ่อนไฟล์และไดเร็กทอรีที่เชื่อมโยงกับรูปแบบเช่น "singularity" หรือ "matheuz" และ ปลอมตัวการเชื่อมต่อ TCP (ตัวอย่างเช่น บนพอร์ต 8081) นอกจากนี้ยังเปิดใช้งานการยกระดับสิทธิ์ผ่าน สัญญาณที่กำหนดเองหรือตัวแปรสภาพแวดล้อมและมี ICMP backdoor ที่สามารถเปิดใช้งานเชลล์ระยะไกลได้

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

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

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

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

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