แพ็กเกจ npm 13 รายการ, 48 วินาที, กับหนึ่ง SDK กระเป๋าเงินปลอม
การโจมตีที่มีการประสานงานกันบน npm registry ได้ปล่อยแพ็กเกจ SDK กระเป๋าเงินปลอมที่เลียนแบบสไตล์ Coinbase จำนวน 13 รายการภายในเวลาเพียง 48 วินาที ซึ่งแสดงให้เห็นว่าโค้ดอันตรายสามารถปลอมแปลงเป็นเครื่องมือที่น่าเชื่อถือได้อย่างรวดเร็วเพียงใด นักพัฒนาที่ติดตั้งแพ็กเกจโดยดูเพียงแค่ชื่อที่คุ้นเคยอาจเผลอใส่ SDK ปลอมเข้าไปในแอปพลิเคชันของตนโดยไม่รู้ตัว
แพ็กเกจเหล่านี้ปรากฏขึ้นระหว่างเวลา 04:54:59 ถึง 04:55:48 UTC เมื่อวันที่ 7 กันยายน 2026 ชื่ออย่าง cb-wallet-http และ scw-core เลียนแบบ namespace อย่างเป็นทางการของ @coinbase/wallet-sdk แทนที่จะใช้การทำ typo-squatting ผู้โจมตีกลับใช้คำที่คุ้นเคยนำหน้าชื่อ โดยหวังว่าคำแนะนำจากเพื่อนร่วมทีมหรือโพสต์ในฟอรัมจะทำให้ผู้ใช้เชื่อว่าแพ็กเกจเหล่านี้มีความถูกต้อง
การปล่อยทั้ง 13 เวอร์ชันมีการตั้งค่าพื้นฐานที่เหมือนกัน ได้แก่ เวอร์ชัน 0.0.1-security, รายชื่อผู้ดูแล (maintainer) ที่ว่างเปล่า และ metadata เริ่มต้นของ npm ที่แสดงทันทีหลังการเผยแพร่ การตั้งค่าที่เหมือนกันนี้บ่งชี้ถึงการใช้สคริปต์เพียงตัวเดียวในการผลิตแพ็กเกจออกมาจำนวนมาก ซึ่งเป็นเอกลักษณ์ของการใช้ระบบอัตโนมัติมากกว่าการลงมือทำด้วยตนเอง
โมเดลการเผยแพร่แบบเปิดของ npm อนุญาตให้ใครก็ได้อัปโหลดแพ็กเกจโดยไม่ต้องผ่านการตรวจสอบล่วงหน้า ซึ่งเปิดโอกาสให้เกิดการโจมตีเช่นนี้ เหตุการณ์โจมตีห่วงโซ่อุปทาน (supply-chain incidents) ในอดีตแสดงให้เห็นว่า เมื่อโค้ดอันตรายเข้าไปอยู่ใน dependency tree แล้ว มันจะทำงานบนทุกเครื่องที่ติดตั้งแพ็กเกจนั้น
NPM ยังไม่สามารถระบุตัวผู้กระทำผิดหรืออธิบายได้ว่าโค้ดเหล่านี้แพร่กระจายไปไกลกว่าการอัปโหลดครั้งแรกได้อย่างไร นอกจากนี้ยังไม่แน่ชัดว่าผู้โจมตีตั้งเป้าไปที่ผู้ใช้ Coinbase โดยเฉพาะ หรือเพียงแค่ต้องการถม registry ด้วยชื่อที่ดูน่าเชื่อถือเพื่อหวังว่าจะมีบางส่วนถูกนำไปใช้งาน
สิ่งที่นักพัฒนาสามารถทำได้ในตอนนี้
- ตรวจสอบผู้เผยแพร่แพ็กเกจก่อนเพิ่มเข้าไป; SDK อย่างเป็นทางการจะอยู่ภายใต้ scope ขององค์กรที่ได้รับการยืนยันแล้ว
- ใช้เครื่องมือที่สแกน dependency เพื่อหาลายเซ็น (signature) ของมัลแวร์ที่รู้จัก
- ระบุเวอร์ชันที่แน่นอนใน lockfiles และหลีกเลี่ยงการดึงแพ็กเกจที่เพิ่งเผยแพร่ใหม่มาใช้โดยไม่ได้ตรวจสอบ
- เลือกใช้ registry ที่กำหนดให้ผู้ดูแลต้องใช้การยืนยันตัวตนแบบสองปัจจัย (two-factor authentication)
สิ่งที่ควรเฝ้าระวัง
- การที่ npm จะเพิ่มความเข้มงวดในการตรวจสอบแพ็กเกจที่เลียนแบบแบรนด์ที่มีชื่อเสียงหรือไม่
- รายชื่อแบล็กลิสต์ (blacklists) ที่ขับเคลื่อนโดยชุมชนซึ่งทำหน้าที่แจ้งเตือนชื่อที่แอบอ้าง
- ข้อมูลอัปเดตจากนักวิจัยด้านความปลอดภัยเกี่ยวกับการนำ 13 SDK ปลอมนี้ไปใช้โจมตีในปัจจุบัน
เหตุการณ์นี้พิสูจน์ให้เห็นว่าชื่อที่ฟังดูคุ้นเคยไม่ได้เป็นหลักประกันความปลอดภัย ความระแวดระวังและการตรวจสอบยังคงเป็นเกราะป้องกันที่แข็งแกร่งที่สุดต่อการโจมตีห่วงโซ่อุปทานในระบบนิเวศโอเพนซอร์ส (open-source ecosystem)
