สรุปสั้น

NetamLoader คือ เฟรมเวิร์กมัลแวร์ตัวใหม่ที่ทีม GReAT ของบริษัท Kaspersky เผยแพร่รายงานเมื่อวันที่ 29 ตุลาคม 2569 จุดที่ทำให้โดดเด่น คือ เป้าหมายเป็น Windows 10 รุ่นปรับแต่งพิเศษที่ใช้เฉพาะหน่วยงานรัฐในเอเชีย และมัลแวร์ซ่อนตัวอยู่ในแพ็กเกจอัปเดตของ Windows เอง ไฟล์เกือบทั้งหมดในแพ็กเกจเป็นของจริงจากเครื่องมือแพตช์ Patch My PC และโมดูล .NET ที่ Microsoft เซ็นรับรอง มีเพียงไฟล์เดียวที่บรรจุโค้ดอันตราย ซึ่งถูกเรียกใช้ผ่านการตั้งค่าที่บิดให้โปรแกรมของจริงโหลดโค้ดผู้โจมตีก่อนเริ่มทำงาน ลักษณะนี้ทำให้ Kaspersky มองว่าเป็นปฏิบัติการแบบซัพพลายเชน

เมื่อเข้าเครื่องได้ NetamLoader ปิดระบบสแกนมัลแวร์ของ Windows ลบไฟล์และล็อกที่เป็นหลักฐาน แล้วรันตัวสุดท้ายในโปรเซสของระบบ ตัวสุดท้ายรอ 20-40 นาทีก่อนติดต่อเซิร์ฟเวอร์สั่งการที่ตั้งชื่อเลียนบริการ AI เพื่อให้การตรวจใน sandbox ระยะสั้นมองไม่เห็น Kaspersky พบเหยื่อเพียงรายเดียว ยังไม่รู้ว่าไฟล์เข้าถึงเหยื่อได้อย่างไร และยังไม่โยงกับกลุ่มแฮ็กเกอร์ที่รู้จัก หน่วยงานที่ดูแลระบบปฏิบัติการของตัวเองควรเฝ้าไฟล์ตั้งค่าแปลกในโฟลเดอร์อัปเดต และส่งล็อกไปเก็บศูนย์กลางก่อนมัลแวร์จะลบทิ้ง

รายละเอียดข่าว

เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 30 ตุลาคม 2569 ว่า Kaspersky พบมัลแวร์นี้ครั้งแรกในครึ่งแรกของปี 2569 เมื่อเครือข่ายตรวจจับของบริษัทแจ้งเตือนไฟล์ .config น่าสงสัยที่อยู่ในไฟล์ CAB ในโฟลเดอร์ที่ Windows ใช้เก็บแพ็กเกจอัปเดต ตอนแรกไฟล์ CAB ดูไม่มีพิษภัย เพราะไฟล์ส่วนใหญ่เป็นส่วนประกอบจริงของ Patch My PC เครื่องมือแพตช์ของบุคคลที่สาม และไฟล์ .NET ในห่วงโซ่ล้วนมีลายเซ็นของ Microsoft ไฟล์อันตรายมีเพียง Resources.resx

Kaspersky ระบุว่าการล้างล็อกของมัลแวร์รวมถึงการลบบรรทัดในล็อกอัปเดตของโฟลเดอร์ชื่อ CmitUpdateAgent ซึ่งอาจผูกกับ Windows รุ่นปรับแต่งของภาครัฐนั้น เมื่อมัลแวร์ถูกสร้างมาเฉพาะสำหรับ Windows รุ่นที่ใช้เฉพาะหน่วยงานรัฐ นักวิจัยจึงเชื่อว่าเป้าหมาย คือ หน่วยงานรัฐในเอเชีย รายงานยังชี้ว่าประเทศที่สร้างระบบปฏิบัติการของตัวเองต้องปกป้องห่วงโซ่ซอฟต์แวร์ทั้งหมดด้วยตัวเอง ซึ่งต้องใช้เวลา

ข้อจำกัดของหลักฐาน คือ Kaspersky พบเหยื่อเพียงรายเดียวผ่านระบบตรวจจับของบริษัท ไม่เห็นว่าไฟล์ CAB เข้าถึงเครื่องเหยื่อได้อย่างไร ไม่พบสัญญาณว่า Patch My PC ถูกเจาะ ไม่ระบุประเทศเป้าหมาย และยังไม่มีการโยงไปยังกลุ่มแฮ็กเกอร์ที่รู้จัก

Malicious config file hidden inside a Windows update package folder on a government PC

วิธีการโจมตี

ยืมโปรแกรมของจริงรันโค้ด — ห่วงโซ่เริ่มเมื่อ PatchMyPC-ScriptRunner.exe ทำงาน ไฟล์ตั้งค่า PatchMyPC-ScriptRunner.exe.config ใช้เทคนิค AppDomainManager injection คือ สั่งให้ .NET โหลดโค้ดที่กำหนดก่อนฟังก์ชันหลักของโปรแกรมเริ่ม การตั้งค่านั้นชี้ไปที่โมดูลที่ Microsoft เซ็น ซึ่งอ่านไฟล์ที่สอง fabric.config ต่อ แล้วไฟล์นี้ทำให้ Windows เปิด Resources.resx โดยอาศัยจุดอ่อนของฟีเจอร์ BinaryFormatter รุ่นเก่า (ตัวแปลงข้อมูลที่รันโค้ดได้ระหว่างแปลง) รันสคริปต์ XAML ชั้นแรกที่ซ่อนอยู่ เหตุที่ได้ผล คือ ทุกโปรแกรมที่รันดูถูกต้องและมีลายเซ็นที่น่าเชื่อถือ

แกะทีละชั้นด้วยกุญแจจากบรรทัดคำสั่ง — แต่ละชั้นถูกเข้ารหัส บีบอัด หรือเข้ารหัสลับ และกุญแจถอดรหัสชั้นแรกมาจากบรรทัดคำสั่ง (command line) ของโปรแกรมที่รันอยู่ หากรันด้วยบรรทัดคำสั่งที่ไม่ตรง เช่น ใน sandbox การถอดรหัสจะล้มและโปรแกรมปิดตัวเงียบ ๆ

ปิด AMSI และหลบการสแกน — ชั้นที่สองเป็นไฟล์ XAML ยาวที่แก้หน่วยความจำของ Windows Antimalware Scan Interface (AMSI กลไกที่ส่งสคริปต์ให้แอนตี้ไวรัสตรวจ) ให้ทุกการสแกนตอบว่า “สะอาด” ข้อความที่อ่อนไหวในโค้ดถูกหั่นเป็นชิ้นเล็ก ๆ เพื่อไม่ให้ตัวสแกนจับลายเซ็นได้

ลบหลักฐานและย้ายโปรเซส — loader ตัวแรกลบไฟล์ที่แตกออกมา ล็อกการใช้ .NET และไฟล์ Prefetch รวมถึงลบบรรทัดในล็อกอัปเดตใต้โฟลเดอร์ CmitUpdateAgent จากนั้นใช้ COM object ระยะไกลเริ่ม payload ตัวสุดท้ายใน dllhost.exe เพื่อตัดความเชื่อมโยงกับโปรเซสแรกและหลบการตรวจพฤติกรรมของ EDR

สื่อสารช้าเพื่อหลบ sandbox — ตัวสุดท้ายชื่อ .NET 2 Plugin ติดต่อเซิร์ฟเวอร์สั่งการที่ openaigpt4v[.]com ซึ่งอยู่หลัง Cloudflare มันรอ 20-40 นาทีก่อนติดต่อครั้งแรก เมื่อได้คำตอบที่ถูกต้องจะเช็กอินทุก 5-6 นาที หากเซิร์ฟเวอร์เงียบจะรอ 22-28 ชั่วโมง และตัวจับเวลาปิดโปรเซสเองหลังราว 28 ชั่วโมง ทราฟฟิกเข้ารหัส AES พร้อมตรวจ HMAC และหาพร็อกซีได้ 3 วิธีเพื่อทำงานในเครือข่ายที่ปิดแน่น โค้ด XAML ที่ดาวน์โหลดมารันใน AppDomain ชั่วคราวที่ถูกทิ้งหลังใช้ จึงเหลือหลักฐานในโปรเซสน้อย

ผลกระทบ

กลุ่มที่เสี่ยงโดยตรง คือ หน่วยงานรัฐในเอเชียที่ใช้ Windows 10 รุ่นปรับแต่งของภาครัฐ ซึ่งรายงานไม่ได้ระบุประเทศ ผลลัพธ์ของ NetamLoader คือ ช่องทางลับที่รันโค้ดเพิ่มได้ตามสั่ง ในเครื่องของหน่วยงานรัฐ ซึ่งเหมาะกับงานจารกรรมระยะยาวมากกว่าการทำลาย

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

คำแนะนำ

  • เฝ้าระวังไฟล์ .config ที่ไม่คาดคิดในโฟลเดอร์ C:\Windows\SoftwareDistribution\Download\ โดยเฉพาะไฟล์ที่มีการตั้ง appDomainManagerAssembly หรือ appDomainManagerType
  • ตั้งกฎตรวจจับโปรแกรมที่มีลายเซ็นแต่โหลดโค้ดผิดปกติ เช่น PatchMyPC-ScriptRunner.exe ที่รันจากโฟลเดอร์อัปเดตของ Windows และ dllhost.exe ที่เชื่อมต่อออกอินเทอร์เน็ต
  • ตรวจหาไฟล์ ชื่อไฟล์ และแฮชในตาราง IoC ด้านล่าง และบล็อกโดเมน openaigpt4v[.]com
  • ส่งล็อกของ Windows, Sysmon และล็อกอัปเดตไปเก็บที่ SIEM ศูนย์กลาง และแจ้งเตือนเมื่อพบล็อกหายหรือ Prefetch ถูกลบ เพราะมัลแวร์ลบหลักฐานในเครื่อง
  • ตรวจห่วงโซ่การกระจายอัปเดตภายใน ทั้งเซิร์ฟเวอร์แจกจ่ายและสิทธิ์การวางไฟล์ เพื่อหาจุดที่ไฟล์ CAB อาจถูกแทรก
  • ใช้ sandbox ที่ปล่อยให้ตัวอย่างรันนานกว่า 40 นาทีเมื่อวิเคราะห์ไฟล์น่าสงสัยจากระบบภาครัฐ

Indicators of Compromise (IoCs)

ตัวบ่งชี้เครือข่ายถูก defang แล้ว (เช่น [.]) เพื่อป้องกันการคลิกโดยไม่ตั้งใจ · Kaspersky ตรวจจับเป็น HEUR:Trojan.MSIL.NetamLoader.gen, Trojan.MSIL.Zapchast และ Trojan.Script.Agent

ประเภทตัวบ่งชี้คำอธิบาย
Hash (SHA1)e4537a1762fcafd2fd96bfc825bad34f9db9a24dไฟล์ CAB
Hash (MD5)F2458ED133F8D0CA19E22C10F577E98Eรายการแรกในชุดแฮชของรายงาน
Hash (MD5)E1DC6F1ED193594F2284BE22AE08DFA4Resources.resx
Hash (MD5)AB81564BCB8CA7E710C66832DE747556.NET 1 Loader
Hash (MD5)CFB8B281BDF5D9390E64B10C312FB2C1.NET 2 Plugin
Hash (MD5)67E3617F8709D34F806F8E02BADBA8A5fabric.config
Hash (MD5)514AC0D73B8A1B73488EF5E2E55A75C3PatchMyPC-ScriptRunner.exe.config
Hash (MD5)514117D536E347560D049CFE0C609632XAML-1
Hash (MD5)9000820D8153C24CD60D53001D3A97B6XAML-2
Hash (MD5)B3C4A635179680EDAFB5D006CF0CFFC6XAML-2-1
Hash (MD5)4F28622C5E60C01319BF48CF742FE1A5XAML-2-2
Hash (MD5)C86D53392A87DD3F3E62D62C9B92A9BDXAML-3
File pathC:\Windows\SoftwareDistribution\Download\Install\PatchMyPC-ScriptRunner.exe.configไฟล์ตั้งค่าอันตราย
File pathC:\Windows\SoftwareDistribution\Download\Install\fabric.configไฟล์ตั้งค่าอันตราย
File pathC:\Windows\SoftwareDistribution\Download\Install\Resources.resxไฟล์บรรจุ payload
Domainopenaigpt4v[.]comเซิร์ฟเวอร์สั่งการ (C2)
IP Address104.18.14[.]219IP ของ C2 (Cloudflare)

แหล่งอ้างอิง