พบการโจมตีแบบ Process injection รูปแบบใหม่ ในชื่อ “Mockingjay” ที่ใช้ในการหลีกเลี่ยงการตรวจจับของ EDR

นักวิจัยจาก Security Joes บริษัทด้านความปลอดภัยทางไซเบอร์ รายงานการพบเทคนิคการโจมตีแบบ Process Injection รูปแบบใหม่ในชื่อ “Mockingjay” ที่ใช้ในการหลีกเลี่ยงการตรวจจับของ EDR (Endpoint Detection and Response) รวมถึงผลิตภัณฑ์รักษาความปลอดภัยอื่น ๆ เพื่อเรียกใช้คำสั่งอันตรายบนระบบเป้าหมาย

โดยเทคนิคการโจมตี Mockingjay จะใช้ DLL ที่ได้รับการรับรอง พร้อมกับสิทธิ์ RWX (read, write, execute) ในการหลีกเลี่ยง EDR hooks และแทรกคำสั่งอันตรายจากระยะไกล

Process injection เป็นวิธีการเรียกใช้คำสั่งจากใน Process ที่กำลังทำงานอยู่ในระบบ ซึ่งเป็นระบบที่ได้รับการเชื่อใจจากระบบ (trusted by the operating system) จึงทำให้ Hacker สามารถเรียกใช้งานคำสั่งอันตรายโดยไม่ถูกตรวจจับได้ ตัวอย่างของเทคนิคการโจมตีนี้ได้แก่ DLL injection, PE (portable executable) injection, reflective DLL injection, thread execution hijacking, process hollowing, mapping injection, APC (asynchronous procedure call) injection และอื่น ๆ

เทคนิคการโจมตี Mockingjay

Security Joes ได้ทำการวิจัยเพื่อค้นหา DLL ที่มีช่องโหว่พร้อมกับสิทธิ์ RWX เริ่มต้น เพื่อให้สามารถแก้ไขเนื้อหา และดาวน์โหลดคำสั่งอันตรายโดยไม่ต้องดำเนินการขอสิทธิ์เพิ่มเติม

ซึ่งนักวิจัยพบ DLL อันตรายจาก DLL msys-2.0.dll ภายใน Visual Studio 2022 Community ซึ่งมีสิทธิ์ RWX เริ่มต้นที่มีขนาด 16 KB

โดยการใช้ประโยชน์จากส่วน RWX ที่มีอยู่แล้วนี้ ทำให้สามารถป้องกันหน่วยความจำในตัว และหลีกเลี่ยงการตรวจสอบของ EDR รวมถึงเพิ่มประสิทธิภาพในการโจมตีแบบ injection

ซึ่งทางทีม Security Joes ได้ทำการพัฒนากระบวนการโจมตีแบบ injection 2 วิธี คือ self-injection และ remote process injection

self-injection ทดลองโดยการใช้ custom application ("nightmare.exe") โหลด DLL ที่มีช่องโหว่ลงในพื้นที่หน่วยความจำโดยตรง ซึ่งใช้การเรียก Windows API สองครั้ง ทำให้สามารถเข้าถึงส่วน RWX ได้โดยตรงโดยไม่ต้องทำการจัดสรรหน่วยความจำ หรือตั้งค่าการอนุญาตของสิทธิ์

จากนั้นโมดูล NTDLL.DLL จะถูกเรียกใช้เพื่อแยกหมายเลข syscall เพื่อหลีกเลี่ยง hooks EDR โดยใช้เทคนิค "Hell's Gate EDR unhooking" ทำให้ shellcode ที่ถูก injection เข้าไปทำงานได้โดยไม่ถูกตรวจจับจาก EDR

remote process injection เป็นการใช้ประโยชน์จากส่วน TWX ของ msys-2.0.dll เพื่อแทรก payload ลงใน process จากระยะไกล โดยเฉพาะ process การ "ssh.exe" หลังจากนั้น custom application ("nightmare.exe") จะทำการเรียกใช้ ssh.exe เป็น {}process ย่อยไปยัง process เป้าหมาย และแทรกคำสั่งที่เป็นอันตรายลงในพื้นที่หน่วยความจำ RWX ของ DLL ที่มีช่องโหว่

ในขั้นตอนสุดท้าย shellcode ที่แทรกเข้าไปจะทำการโหลดไฟล์ DLL "MyLibrary.dll" เพื่อสร้าง reverse shell ไปยังเครื่องของ Hacker จากการทดสอบแสดงให้เห็นว่าการโจมตีแบบ remote process injection ไม่จำเป็นต้องสร้าง process ใหม่, สร้างการจัดสรรหน่วยความจำใหม่ หรือตั้งค่าการอนุญาต ก็สามารถหลบเลี่ยงการตรวจจับของ EDR ได้

เทคนิคการโจมตีทั้งสองวิธีของ Mockingjay ได้ใช้ Windows API เช่น 'LoadLibraryW,' 'CreateProcessW,' และ 'GetModuleInformation' ในการดาวน์โหลด DLL ที่ไม่ปลอดภัย รวมไปถึงการค้นหาที่อยู่ของส่วน RWX ของ DLL

โดยทั่วไปแล้ว EDR จะตรวจสอบ API เช่น 'WriteProcessMemory,' 'NtWriteVirtualMemory,' 'CreateRemoteThread,' หรือ 'NtCreateThreadEx' ซึ่งมักจะถูกใช้ในการโจมตีแบบ injection รูปแบบดั้งเดิม ทำให้เทคนิคการโจมตีแบบ Mockingjay จึงมีโอกาสน้อยที่จะถูกตรวจจับได้

จากกการค้นพบเทคนิคการโจมตีแบบใหม่ 'Mockingjay' โดย Joes Security เป็นสิ่งที่สะท้อนให้เห็นว่าการป้องกันความปลอดภัยด้วย EDR เพียงอย่างเดียว ในปัจจุบันอาจจะไม่เพียงพอ องค์กรจึงควรมีแนวทางการรักษาความปลอดภัยแบบองค์รวม เพื่อประสิทธิในการป้องกันความปลอดภัยทางไซเบอร์ในระดับสูงสุด

 

ที่มา : bleepingcomputer