
แคมเปญมัลแวร์บน npm ที่ยังคงดำเนินอยู่ ซึ่งเกี่ยวข้องกับแพ็กเกจ 'indexed-btree' แสดงให้เห็นว่ากลุ่มผู้โจมตีสามารถ Bypass มาตรการป้องกันการโจมตีแบบ Supply Chain Attack ด้วยการซ่อนโค้ดอันตรายไว้ในพฤติกรรมการทำงานตามปกติของแพ็กเกจขณะ Runtime แทนที่จะซ่อนไว้ใน Installation Script
แพ็กเกจดังกล่าวถูกค้นพบโดยนักวิจัยจาก Checkmarx โดยมัลแวร์จะพยายามปลอมตัวเป็นไลบรารี 'sorted-btree' ของจริง และมียอดดาวน์โหลดไปแล้วถึง 2 ล้านครั้งต่อสัปดาห์
แคมเปญนี้ยังอาจสร้างผลกำไรจำนวนมากให้กับผู้โจมตี ซึ่ง Checkmarx ระบุว่า มีการใช้กระเป๋าเงินดิจิทัล (Wallet) ที่ถือครองเงินอยู่ 109 ETH อย่างไรก็ตาม รายงานไม่ได้ระบุว่าเงินจำนวนดังกล่าวมาจากการขโมยสกุลเงินคริปโต
การ Bypass มาตรการด้านความปลอดภัยล่าสุด
เมื่อเดือนมิถุนายน 2026 GitHub ได้ประกาศชุดมาตรการด้านความปลอดภัยสำหรับ npm ที่ออกแบบมาเพื่อช่วยป้องกันการโจมตีแบบ Supply Chain Attack ซึ่งสร้างความปั่นป่วนให้กับระบบนิเวศ Open-source ซ้ำแล้วซ้ำเล่านับตั้งแต่ช่วงปลายปี 2025
หนึ่งในมาตรการสำคัญคือการบล็อก Lifecycle Script ของ Dependency อย่าง 'preinstall', 'install' และ 'postinstall' เว้นแต่จะได้รับการอนุมัติอย่างชัดเจน
ส่วนมาตรการอื่น ๆ จะป้องกันไม่ให้ npm ดึง Dependency จาก Git Repository หรือ URL ภายนอกมาโดยอัตโนมัติ หากไม่ได้รับอนุญาต
แพ็กเกจอันตราย indexed-btree หลบเลี่ยงมาตรการป้องกันเหล่านี้ด้วยการไม่ใช้ Installation Script แต่เปลี่ยนไปซ่อน Loader ของตนเองไว้ในเมธอด BTree.prototype.set() ของแพ็กเกจแทน ซึ่งจะทำงานขณะ Runtime เมื่อแอปพลิเคชันเรียกใช้เมธอดดังกล่าวด้วยค่า Key ที่กำหนดไว้เฉพาะ
ส่งผลให้ขั้นตอนการติดตั้งดูปลอดภัย และไม่ไปกระตุ้นกลไกการขออนุมัติใด ๆ ของ npm v12
Checkmarx อธิบายว่า "Loader ของมัลแวร์จะซ่อนอยู่ในเมธอด BTree.prototype.set ของไลบรารีเอง ซึ่งเป็นฟังก์ชันหลักที่ผู้ใช้งานทุกรายต้องเรียกใช้อยู่ตลอดเวลา"
"สิ่งนี้จะไปทำให้การทำงานของ sharedLoad.min.js ซึ่งมีมัลแวร์ในขั้นตอนแรกที่ผ่านการทำ Obfuscation เอาไว้ นับเป็นวิธีการที่ถูกสร้างขึ้นมาอย่างดี เพื่อแอบซ่อนผ่านเครื่องมือ Taint-analysis มาตรฐาน และเครื่องมือสแกนแบบ Static ส่วนใหญ่ไปได้"
เมื่อมัลแวร์ถูกเรียกใช้งานแล้ว จะสามารถเก็บรวบรวมข้อมูลรายละเอียดของระบบ ซึ่งประกอบด้วย
- สถาปัตยกรรมของระบบ
- Hostname
- CPU
- หน่วยความจำ
- Uptime
จากนั้นจะส่งข้อมูลดังกล่าวออกไปผ่านช่องทาง Slack และ Telegram ที่ถูก Hard-code เอาไว้
นอกจากนี้ มัลแวร์ยังคอยดึงข้อมูล Command-and-Control (C2) จาก Smart Contract บน Ethereum ที่อยู่บนเครือข่ายทดสอบ Sepolia เป็นระยะ โดยใช้การแลกเปลี่ยนคีย์แบบ X25519 เพื่อสร้างคีย์ AES ขึ้นมา และถอดรหัส Payload ในขั้นตอนที่สองที่ถูกเก็บไว้ใน Smart Contract ดังกล่าว
เมื่อกลุ่มผู้โจมตีเลือกที่จะยุติการโจมตี มัลแวร์จะสามารถลบไฟล์ของตนเอง และลบ Trigger ที่เป็นอันตรายออกจากโค้ดของแพ็กเกจ เพื่อลบร่องรอยของตนเองได้
นักวิจัยระบุว่า กลุ่มผู้โจมตีทุ่มเทอย่างมากเพื่อทำให้โปรเจกต์ดูน่าเชื่อถือ ซึ่งรวมถึง
- การสร้าง GitHub Repository ที่ดูเหมือนของจริง
- การเพิ่มประวัติการ Commit เข้าไปในโปรเจกต์
- การจัดแต่งบัญชีนักพัฒนา

Checkmarx ยังค้นพบแพ็กเกจ npm เพิ่มเติมอีก 9 รายการที่เชื่อมโยงกับปฏิบัติการเดียวกันนี้ ซึ่งปัจจุบันได้ถูกนำออกจาก npm แล้ว โดยแพ็กเกจเหล่านั้นก็มียอดดาวน์โหลดจำนวนมากเช่นกัน ดังต่อไปนี้ :
- ordered-kv-index (448,184 ดาวน์โหลด)
- btree-leaderboard (493,685 ดาวน์โหลด)
- priority-slot-queue (402,860 ดาวน์โหลด)
- btree-range-store (468,092 ดาวน์โหลด)
- btree-core (1,951,274 ดาวน์โหลด)
- btree-time-index (425,312 ดาวน์โหลด)
- btree-lru-cache (372,185 ดาวน์โหลด)
- neighbor-key-map (366,019 ดาวน์โหลด)
- sliding-score-window (448,024 ดาวน์โหลด)
นักพัฒนาได้รับคำแนะนำไม่ให้พึ่งพาการสแกนในขั้นตอนการติดตั้งเพียงอย่างเดียว แต่ควรใช้การวิเคราะห์พฤติกรรมขณะ Runtime ควบคู่ไปด้วย
ส่วนผู้ที่ติดตั้ง indexed-btree หรือแพ็กเกจใด ๆ ในรายการข้างต้นไปแล้ว ควรเปลี่ยน (Rotate) Secrets ทั้งหมด และกู้คืนสภาพแวดล้อมในการพัฒนาจากข้อมูลสำรองที่ปลอดภัย
ที่มา : bleepingcomputer

You must be logged in to post a comment.