ช่องโหว่ DoubleAgent เป็นช่องโหว่ที่หละหลวมมากที่สุดอันหนึ่งของ Windows OS เลยก็ว่าได้ เนื่องด้วยกระทบตั้งแต่ Windows XP – Windows 10 เลยทีเดียว

Microsoft Application Verifier Provider

Microsoft มีการสร้างมาตรฐานในการตรวจสอบความถูกต้องและหาบัคของ native code โดยใช้เครื่องมือที่ชื่อว่า “Microsoft Application Verifier Provider DLL” ซึ่ง DLL ตัวดังกล่าว จะถูกโหลดกับ process และตรวจสอบ code ในขณะ runtime ของ Application

การที่จะทำ Application Verifier Provider DLL จำเป็นต้องมีการสร้าง Verifier Provider DLL และลงทะเบียนกับ process ใดๆผ่านการสร้าง registry key (นั่นหมายความว่าจำเป็นต้องมีสิทธิ์ในการสร้าง registry ด้วย)

หลังจากที่ลงทะเบียน DLL ให้เป็น Application Verifier Provider DLL ของ process ใดๆไปแล้ว มันจะทำให้ DLL ตัวนั้นถูกโหลดทุกครั้งที่ process นั้นกระทำการเริ่มทำงานโดย Windows Loader ซึ่งไม่ว่า Windows OS นั้นจะถูก reboot, updates, reinstall, patches หรืออะไรก็แล้วแต่ก็ตาม

นั่นคือสิ่งที่ทำให้เกิด DoubleAgent , ทางทีมงาน Cybellum ได้พบพฤติกรรมดังกล่าว จึงได้สร้างเครื่องมือที่ชื่อว่า DoubleAgent สำหรับการ register DLL ที่เป็น DLL ใดๆ(รวมถึง malicious DLL ด้วย) ให้ติดไปกับ process ใดๆที่พวกเค้าต้องการ ไม่เว้นแม้แต่ Antivirus เองก็ตาม เมื่อ process นั้นๆเริ่มทำงาน, DLL ที่ถูก register ไว้ก็จะถูกสั่งมาให้ทำงาน นั่นคือการฝัง backdoor ไปกับ process ใดๆได้เลยนั่นเอง

Microsoft หาทางแก้

Microsoft ทราบถึงปัญหาดังกล่าว จึงได้ออกแบบ concept การพัฒนาใหม่โดยเรียกว่า “Protected Process” , ซึ่ง concept ใหม่นี้จะใช้เพื่อ Antivirus ทุกตัว, Antivirus สามารถถูกสร้างให้กลายเป็น protected process ได้ โดย protected process จะใช้งานเฉพาะ trusted, signed DLL เท่านั้น และมีการ built-in mechanism ต่างๆเพื่อป้องกัน code injection อีกด้วย

ณ ตอนนี้ concept ดังกล่าวยังไม่มี Antivirus ใดๆที่ใช้งาน concept ดังกล่าว​(ยกเว้น Windows Defender) ทั้งๆที่ design concept ดังกล่าวออกมาแล้ว 3 ปีด้วยกัน

Source:: Cybellum.com