กลับไปหน้าข่าวสาร

พบ npm Package ปลอม "buildrunner-dev" ซ่อน Pulsar RAT ไว้ในไฟล์ภาพ PNG หลบเลี่ยง Anti-malware

แชร์:

Veracode Threat Research เปิดเผยแคมเปญ Supply Chain Attack ที่ใช้เทคนิค Steganography ซ่อนโค้ดอันตรายไว้ภายในไฟล์ภาพ PNG เพื่อหลบเลี่ยงการตรวจจับจากระบบ Anti-malware โดยผู้โจมตีเผยแพร่ npm Package ปลอมชื่อ buildrunner-dev ซึ่งแอบอ้าง (Typosquatting) ให้คล้ายกับ Package ที่เคยได้รับความนิยมอย่าง buildrunner และ build-runner เพื่อหลอกนักพัฒนาให้ติดตั้ง ก่อนแพร่กระจาย Pulsar RAT มัลแวร์ควบคุมเครื่องระยะไกลที่พัฒนาต่อยอดจาก Quasar RAT


กลไกการโจมตี: จาก npm Package สู่ Pulsar RAT ผ่าน 3 ชั้น


แคมเปญนี้ออกแบบมาให้ npm Package ต้นทางดูสะอาดปลอดภัยที่สุดเท่าที่จะเป็นไปได้ โดยแบ่งการโจมตีเป็นหลายขั้นตอน:


  1. npm Package "buildrunner-dev" แอบอ้างชื่อคล้าย Package ที่เคยได้รับความนิยม buildrunner และ build-runner ซึ่งปัจจุบันไม่มีการดูแลต่อแล้ว (Abandoned) หลอกนักพัฒนาที่พิมพ์ชื่อผิดหรือเข้าใจว่าเป็น Fork ที่ยังดูแลอยู่ให้ติดตั้ง
  2. package.json กำหนด postinstall Hook ที่รัน init.js โดยอัตโนมัติทันทีที่มีการ npm install
  3. init.js ทำหน้าที่เป็น Downloader ดึงไฟล์ packageloader.bat ที่ถูก Obfuscate อย่างหนักจาก Repository บน Codeberg ทำให้ตัว npm Package เองยังคง "สะอาด" ไม่มีโค้ดอันตรายฝังอยู่โดยตรง
  4. ไฟล์ PNG ตัวที่ 3 ที่ดึงมาระหว่าง Runtime ซ่อน .NET Assembly ที่เข้ารหัสไว้ภายในภาพ ด้วยเทคนิค Steganography เมื่อถอดรหัสออกมาจะกลายเป็น Pulsar RAT


Pulsar เป็น RAT ที่พัฒนาต่อยอดจาก Quasar RAT มีความสามารถโดดเด่นด้าน Fileless Execution, HVNC-style Stealth Remote Desktop (ควบคุมหน้าจอโดยผู้ใช้ไม่เห็นความผิดปกติ), ขโมย Credential และสอดแนมข้อมูลอย่างกว้างขวาง แคมเปญนี้ยังรวมเทคนิค AMSI Bypass และ Process Hollowing เพื่อหลบเลี่ยงการตรวจจับเพิ่มเติม


ระบบที่ได้รับผลกระทบ


  • นักพัฒนาที่ติดตั้ง npm Package buildrunner-dev โดยเข้าใจผิดว่าเป็น buildrunner หรือ build-runner ตัวจริง
  • เครื่อง Windows ของนักพัฒนาที่รัน npm install โดยไม่ตรวจสอบชื่อ Package หรือ Source ให้ละเอียดก่อน
  • ระบบ CI/CD Pipeline ที่ดึง Dependency จาก npm โดยอัตโนมัติ มีความเสี่ยงติดมัลแวร์ไปพร้อมกับกระบวนการ Build


ผลกระทบที่อาจเกิดขึ้น


  1. เครื่อง Developer ที่ติดตั้ง Package อันตรายเสี่ยงถูกควบคุมระยะไกลแบบเต็มรูปแบบ ผ่าน Pulsar RAT ที่มีความสามารถ Stealth Remote Desktop และขโมย Credential
  2. ตรวจจับได้ยากเป็นพิเศษเนื่องจากโค้ดอันตรายซ่อนอยู่ในไฟล์ภาพ PNG เครื่องมือ Anti-malware ทั่วไปที่สแกนไฟล์ตามนามสกุลหรือ Signature มักมองข้ามไฟล์ภาพว่าไม่เป็นอันตราย
  3. npm Package ต้นทางเองไม่มีโค้ดอันตรายฝังอยู่โดยตรง ทำให้การสแกน Dependency แบบ Static Analysis ทั่วไปอาจไม่พบสัญญาณผิดปกติตั้งแต่ขั้นตอนติดตั้ง
  4. ความเสี่ยงต่อ CI/CD Pipeline และ Source Code ขององค์กร หากเครื่อง Developer หรือ Build Server ติดมัลแวร์ อาจเปิดทางสู่การโจมตี Supply Chain ต่อเนื่องไปยังผลิตภัณฑ์ปลายทาง


สิ่งที่องค์กรควรทำ


  1. ตรวจสอบ package.json และ Lock File ของโปรเจกต์ทันทีว่ามีการเรียกใช้ buildrunner-dev หรือไม่ หากพบให้ถอดถอนและตรวจสอบเครื่องที่เกี่ยวข้องทันที
  2. ตรวจสอบ Process หรือการเชื่อมต่อเครือข่ายที่ผิดปกติไปยัง Codeberg หรือ Domain ที่ไม่คุ้นเคย บนเครื่อง Developer และ CI/CD Server ทั้งหมด
  3. ใช้เครื่องมือ Software Composition Analysis (SCA) ตรวจสอบ postinstall Script ของทุก Dependency ก่อน Build เนื่องจากช่องโหว่นี้อาศัย postinstall Hook เป็นจุดเริ่มต้นการโจมตี
  4. ตรวจสอบชื่อ npm Package อย่างละเอียดก่อนติดตั้งทุกครั้ง โดยเฉพาะ Package ที่มีชื่อใกล้เคียงกับ Tool ยอดนิยมที่ถูก Abandoned ไปแล้ว


แนวทางลดความเสี่ยงระยะยาว


1. ปิดการรัน postinstall Script อัตโนมัติในสภาพแวดล้อม CI/CD ที่ไม่จำเป็นต้องใช้

ใช้ Flag เช่น --ignore-scripts เมื่อ Install Dependency ในสภาพแวดล้อมที่ต้องการความปลอดภัยสูง


2. ใช้ Lockfile และ Dependency Pinning อย่างเคร่งครัดในทุกโปรเจกต์

เพื่อป้องกันการติดตั้ง Package เวอร์ชันใหม่ที่อาจถูกแทรกโค้ดอันตรายโดยไม่ได้ตรวจสอบก่อน


3. ตรวจสอบ Dependency ใหม่ทุกตัวก่อนเพิ่มเข้าโปรเจกต์ โดยเฉพาะ Package ที่มีประวัติผู้เผยแพร่สั้นหรือเพิ่งสร้างขึ้น

Package ที่แอบอ้างชื่อคล้าย Tool ยอดนิยมที่ถูก Abandoned ควรได้รับการตรวจสอบเป็นพิเศษก่อนนำไปใช้


4. เพิ่มการตรวจสอบไฟล์ภาพที่ดาวน์โหลดมาระหว่าง Runtime ด้วยเครื่องมือที่ตรวจจับ Steganography

เนื่องจากเทคนิคนี้กำลังถูกใช้มากขึ้นในแคมเปญ Supply Chain Attack เพื่อหลบเลี่ยง Anti-malware แบบดั้งเดิม


วิเคราะห์ในมุมมองจาก TXEC


แคมเปญนี้สะท้อนวิวัฒนาการสำคัญของเทคนิคการโจมตี Supply Chain ผ่าน npm ที่ผู้โจมตีจงใจออกแบบให้ Package ต้นทางดูสะอาดที่สุดเท่าที่จะเป็นไปได้ โดยแยกโค้ดอันตรายออกเป็นหลายชั้น (Downloader → Obfuscated Batch File → Steganographic PNG) ทำให้การตรวจสอบ Dependency แบบ Static Analysis ทั่วไปที่มักสแกนเฉพาะโค้ด JavaScript หรือไฟล์ Text มองข้ามภัยคุกคามที่ซ่อนอยู่ในไฟล์ภาพได้ง่าย


TXEC มองว่าการใช้ Steganography ร่วมกับ Supply Chain Attack เป็นสัญญาณเตือนว่าเครื่องมือ Security แบบดั้งเดิมที่พึ่งพา File Type หรือ Signature Scanning เพียงอย่างเดียวไม่เพียงพอต่อไปแล้ว องค์กรที่มีทีมพัฒนาซอฟต์แวร์ควรทบทวนกระบวนการตรวจสอบ Dependency ให้ครอบคลุมถึงพฤติกรรม Runtime และการดาวน์โหลดไฟล์เพิ่มเติมระหว่างการทำงาน ไม่ใช่ตรวจสอบเฉพาะโค้ดที่มองเห็นได้ในขั้นตอน Install เท่านั้น


รู้ก่อน ตรวจพบเร็ว ลดความเสียหายได้มากกว่า


[ แหล่งอ้างอิง: Veracode, CyberSecurityNews, GBHackers, Hackread ]