แฮ็กเกอร์โจมตีโดยใช้ประโยชน์จาก OneDrive.exe ผ่าน DLL Sideloading เพื่อรันโค้ดตามที่ต้องการ

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

การโจมตีนี้ใช้ประโยชน์จากไฟล์ version.dll ที่ถูกสร้างขึ้นมาเป็นพิเศษ เพื่อใช้เข้าควบคุมกระบวนการทำงานของ Windows และพยายามแฝงตัวอยู่ในระบบที่ถูกโจมตี

DLL Sideloading เป็นการโจมตีโดยใช้ประโยชน์จากกระบวนการ library-loading ของ Windows โดยการหลอกให้แอปพลิเคชันที่มีความน่าเชื่อถือทำการโหลดไฟล์ Dynamic Link Libraries (DLLs) ที่เป็นอันตรายแทนไฟล์ของจริง

การโจมตีแบบ DLL Sideloading

ตามคำแนะนำด้านความปลอดภัยของ Kas-sec ผู้โจมตีจะวางไฟล์ version.dll ที่ถูกสร้างขึ้นมาเป็นพิเศษไว้ใน directory เดียวกับไฟล์ OneDrive.exe โดยใช้ประโยชน์จากลำดับการค้นหา Dependency ของแอปพลิเคชัน

เมื่อ OneDrive.exe เริ่มทำงาน มันจะโหลด DLL ที่เป็นอันตรายนี้จาก directory ในเครื่องของตัวเองโดยอัตโนมัติก่อนที่จะค้นหา directory ของระบบ

เทคนิคนี้มุ่งเป้าไปที่ไฟล์ version.dll โดยเฉพาะ เนื่องจากแอปพลิเคชันของ Windows หลายตัวรวมถึง OneDrive ต่างพึ่งพา library นี้ในการดึงข้อมูลเวอร์ชันของไฟล์

เทคนิคการวางตำแหน่งของไฟล์ DLL ที่เป็นอันตราย ช่วยให้ผู้โจมตีสามารถรันโค้ดภายใต้ความน่าเชื่อถือของแอปพลิเคชัน Microsoft ที่มี digitally signed ซึ่งเป็นการหลีกเลี่ยงการตรวจจับของระบบความปลอดภัย ที่โดยปกติจะมีการตรวจสอบ processes ที่น่าสงสัย เพื่อรักษาการแฝงตัว และป้องกันแอปพลิเคชันหยุดทำงาน ผู้โจมตีจึงนำเทคนิค DLL Proxying มาใช้งาน

ไฟล์ version.dll ที่เป็นอันตรายนี้ จะทำการ export ฟังก์ชันต่าง ๆ เหมือนกับ library ของแท้ โดยจะมีการ calls เรียกใช้ฟังก์ชันไปยังไฟล์ version.dll ที่อยู่ในโฟลเดอร์ System32 ของ Windows ต้นฉบับ ในขณะเดียวกันก็โจมตีในเบื้องหลังไปพร้อม ๆ กัน

ฟังก์ชันคู่แบบนี้ช่วยให้ OneDrive.exe ยังคงทำงานได้ตามปกติ และลดโอกาสที่ผู้ใช้ หรือระบบรักษาความปลอดภัยจะตรวจพบ

คำแนะนำด้านความปลอดภัยระบุว่า การโจมตีที่ใช้เทคนิคการ Hooking ขั้นสูง ซึ่งใช้ประโยชน์จาก Vectored Exception Handling (VEH) และ Memory protection flag สามารถอ่านเพิ่มเติมได้ที่ hxxps://github[.]com/kas-sec/version[.]dll-sideloading/

โดยแทนที่จะใช้วิธีการ Inline Hooking แบบดั้งเดิมที่เครื่องมือรักษาความปลอดภัยสามารถตรวจจับได้ง่าย วิธีการนี้จะใช้ Memory Exceptions เพื่อดักจับการเรียกใช้ API

เมื่อ OneDrive.exe พยายามเรียกใช้ฟังก์ชันเฉพาะ เช่น CreateWindowExW โค้ดที่เป็นอันตรายจะตรวจจับ Execution Flow ผ่านตัว Exception Handlers และเปลี่ยนเส้นทางไปยังฟังก์ชันที่ผู้โจมตีควบคุมอยู่

วิธีนี้พิสูจน์แล้วว่ามีประสิทธิภาพ เพราะช่วยหลีกเลี่ยงการปลอมแปลง persistent code ซึ่งเป็นสิ่งที่ระบบจะมีการตรวจจับ และระบุออกมาในรูปแบบ Signature-based

โดยตัว Hook จะทำการติดตั้งตัวเองใหม่ หลังจากการดักจับแต่ละครั้ง โดยใช้ Single-step Exceptions ทำให้สามารถควบคุมฟังก์ชัน API เป้าหมายได้อย่างต่อเนื่อง

เมื่อมีการโหลด DLL ที่เป็นอันตรายเข้ามาแล้ว จะมีการสร้าง separate thread ขึ้นมาเพื่อรัน Payload ตามที่ต้องการ โดยไม่บล็อกกระบวนการเริ่มต้นของแอปพลิเคชัน

ได้มีการเปิดเผย Proof-of-Concept ออกมาแล้ว ซึ่งจะมีการซ่อน windows ไม่ให้มองเห็น ซึ่งช่วยให้สามารถดำเนินการได้อย่างแนบเนียนบนระบบที่ถูกโจมตี

ผู้เชี่ยวชาญด้านความปลอดภัยควรต้องดำเนินการ กำหนดรายการแอปพลิเคชันที่ได้รับอนุญาต (Application Whitelisting), เฝ้าระวังพฤติกรรม DLL loading และตรวจสอบ digital signatures ของ libraries ที่ถูกโหลดเพื่อป้องกันการโจมตีแบบ Sideloading ซึ่งมุ่งเป้าไปที่แอปพลิเคชันที่เชื่อถือได้

ที่มา : cybersecuritynews