เบื้องหลังการทำงานของ Windows API: ทำไมผู้โจมตีถึงซ่อนตัวอยู่ตรงนั้น

เบื้องหลังการทำงานของ Windows API: ทำไมผู้โจมตีถึงซ่อนตัวอยู่ตรงนั้น

เคยสงสัยหรือไม่ว่าโปรแกรมที่เราใช้งานกันอยู่ทุกวัน ไม่ว่าจะเป็นเบราว์เซอร์ โปรแกรมแต่งภาพ หรือแม้แต่เกม มันสื่อสารกับระบบปฏิบัติการ Windows ได้อย่างไร คำตอบนั้นซับซ้อนกว่าที่คิด และเบื้องหลังความซับซ้อนนี้เองที่กลายเป็นช่องทางสำคัญให้ผู้ไม่หวังดีใช้ในการหลบเลี่ยงการตรวจจับจากระบบรักษาความปลอดภัย

ลองจินตนาการว่า Windows เป็นอาคารขนาดใหญ่ และโปรแกรมต่างๆ ก็คือผู้เช่าที่ต้องการใช้บริการต่างๆ ของอาคาร เช่น ไฟฟ้า ประปา หรือการเข้าถึงห้องเก็บเอกสาร การจะขอใช้บริการเหล่านี้ โปรแกรมต้องส่งคำร้องผ่านช่องทางมาตรฐานที่เรียกว่า API (Application Programming Interface) ซึ่งเปรียบเสมือนจุดบริการต่างๆ ในอาคารนั่นเอง

Win32 API: ประตูหลักที่ทุกคนรู้จัก

ในโลกของ Windows Win32 API คือชุดคำสั่งมาตรฐานที่นักพัฒนาโปรแกรมส่วนใหญ่ใช้งาน มันเป็นเหมือนประตูหน้าของอาคารที่ทุกคนรู้จักและผ่านเข้าออกอยู่เป็นประจำ

Win32 API ถูกออกแบบมาให้ใช้งานง่าย มีเอกสารประกอบครบถ้วน และช่วยให้นักพัฒนาสามารถสร้างโปรแกรมที่โต้ตอบกับระบบปฏิบัติการได้หลากหลายฟังก์ชัน เช่น การสร้างหน้าต่างแสดงผล การอ่านเขียนไฟล์ การจัดการหน่วยความจำ หรือแม้กระทั่งการสื่อสารผ่านเครือข่าย

ระบบรักษาความปลอดภัยสมัยใหม่ เช่น Antivirus หรือ EDR (Endpoint Detection and Response) มักจะติดตั้ง “ตะขอ” (hooks) ไว้ที่จุดเชื่อมต่อของ Win32 API เหล่านี้ เพื่อตรวจสอบและสกัดกั้นการทำงานที่น่าสงสัยของโปรแกรมต่างๆ

หากมีโปรแกรมพยายามจะทำอะไรผิดปกติ ระบบก็จะตรวจจับได้ทันที เพราะทุกการกระทำจะถูกบันทึกและตรวจสอบ ณ จุดบริการเหล่านี้

Native API (Ntdll.dll): ทางลับสู่ใจกลางระบบ

ใต้ชั้นของ Win32 API ลงไป ยังมีอีกชุดคำสั่งที่เรียกว่า Native API หรือบางครั้งเรียกว่า NT API ซึ่งอยู่ในไลบรารี Ntdll.dll

Native API เป็นเหมือน “ทางลับ” ที่ตรงเข้าสู่ใจกลางของระบบปฏิบัติการหรือที่เรียกว่า Kernel ได้โดยตรง ไม่ต้องผ่าน Win32 API ที่เปรียบเสมือนประตูหน้าอีกที

คำสั่งใน Native API นั้นเป็นชุดคำสั่งระดับต่ำที่ซับซ้อนกว่า มีการบันทึกข้อมูลน้อยกว่า และส่วนใหญ่ถูกออกแบบมาให้ระบบปฏิบัติการใช้กันเอง Win32 API เองก็ใช้ Native API ในการทำงานเบื้องหลังอยู่แล้ว เพียงแต่ส่วนใหญ่ไม่ได้เปิดเผยให้โปรแกรมภายนอกเข้าถึงโดยตรง

ทำไมผู้โจมตีถึงสนใจ Native API?

นี่คือประเด็นสำคัญที่ทำให้ Native API กลายเป็นเครื่องมืออันตรายในมือของผู้ไม่หวังดี

เนื่องจากระบบรักษาความปลอดภัยส่วนใหญ่มักจะเฝ้าระวังที่ Win32 API เป็นหลัก การใช้ Native API ทำให้ผู้โจมตีสามารถ เลี่ยงการตรวจจับ ที่ถูกวางไว้บน Win32 API ได้

จินตนาการว่าโปรแกรมป้องกันภัยได้ติดกล้องวงจรปิดไว้ที่ประตูหน้า (Win32 API) แต่ผู้โจมตีกลับใช้ทางลับ (Native API) ในการเข้าถึงห้องเก็บเอกสารสำคัญ โดยที่ไม่ต้องผ่านกล้องวงจรปิดเหล่านั้นเลย

ผู้โจมตีสามารถเรียกใช้ฟังก์ชันระดับต่ำ เช่น การจัดสรรหน่วยความจำ (แทนที่จะใช้ VirtualAlloc ที่เป็น Win32 API พวกเขาอาจจะใช้ NtAllocateVirtualMemory ที่เป็น Native API โดยตรง) การแก้ไขกระบวนการ หรือการเข้าถึงข้อมูลต่างๆ ได้อย่างเงียบเชียบและรวดเร็ว

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

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