- มี คอมโพเนนต์มากกว่า 1,000 รายการ ใน NPM registry ถูกฝังการติดเชื้อด้วยวิธีเดียวกันภายในไม่กี่ชั่วโมง และมีการเผยแพร่เวอร์ชันใหม่ที่แฝงโค้ดอันตราย
- แพ็กเกจอันตรายปลอมตัวเป็น สคริปต์ติดตั้ง Bun runtime โดยเพิ่ม
setup_bun.js และ bun_environment.js ที่ถูกทำให้อ่านยาก เมื่อรันจะใช้ TruffleHog เพื่อขโมยข้อมูลรับรองในเครื่อง
- ข้อมูลอ่อนไหวที่เก็บได้ เช่น โทเค็น AWS/GCP/Azure·GitHub·NPM ถูกส่งออกไปภายนอกผ่าน GitHub Action runner ชื่อ
SHA1HULUD
- สคริปต์อันตรายรัน
npm publish แบบอัตโนมัติเพื่อ จำลองตัวเองในรูปแบบเวิร์ม ส่งผลให้มี GitHub repository มากกว่า 27,000 แห่ง ติดเชื้อ
- เหตุการณ์นี้ถูกประเมินว่าเป็นกรณีที่ตอกย้ำ ภัยคุกคามด้านความปลอดภัยของซัพพลายเชน ต่อระบบนิเวศโอเพนซอร์สอีกครั้ง
ภาพรวมการโจมตี
- วันที่ 24 พฤศจิกายน 2025 HelixGuard ตรวจพบว่า แพ็กเกจกว่า 1,000 รายการ ใน NPM registry ถูกฝังการติดเชื้อด้วยวิธีเดียวกันภายในไม่กี่ชั่วโมง
- เวอร์ชันใหม่เหล่านี้ปลอมตัวเหมือนเพิ่ม Bun runtime และมีสคริปต์
preinstall: node setup_bun.js
- ไฟล์
bun_environment.js ที่แจกมาด้วยเป็นโค้ดอันตรายแบบ obfuscated ซึ่งเมื่อรันจะดาวน์โหลดและเรียกใช้ TruffleHog
- TruffleHog จะสแกนและขโมย โทเค็น NPM, ข้อมูลรับรอง AWS/GCP/Azure, ตัวแปรสภาพแวดล้อม จากเครื่องโลคัล
- ข้อมูลที่ขโมยมาได้จะถูกส่งออกผ่านการสร้าง GitHub Action runner
SHA1HULUD และผ่าน GitHub repository ที่มีคำอธิบายว่า Sha1-Hulud: The Second Coming.
- HelixGuard ชี้ว่าการโจมตีนี้อาจเป็นฝีมือผู้โจมตีรายเดียวกับเหตุการณ์ “Shai-Hulud” เมื่อเดือนกันยายน 2025
การวิเคราะห์การทำงานของโค้ดอันตราย
- จากการวิเคราะห์แพ็กเกจ
@asyncapi/specs เป็นตัวอย่าง พบว่าเวอร์ชันที่เผยแพร่บน NPM ติดเชื้อ แต่ repository ต้นทางบน GitHub ยังปลอดภัย
- ผู้โจมตีแก้ไข
package.json เพื่อเพิ่ม setup_bun.js และตั้งให้สคริปต์ดังกล่าวเรียก bun_environment.js
bun_environment.js เป็น ไฟล์ JavaScript ที่ถูก obfuscate อย่างหนัก ขนาดมากกว่า 10MB โดยมีความสามารถหลักดังนี้
- เก็บ ข้อมูลรับรองคลาวด์และโทเค็น จากตัวแปรสภาพแวดล้อม
- สแกนหาคีย์ลับด้วย TruffleHog
- ส่งข้อมูลออกผ่าน GitHub Actions
- นอกจากนี้ยังแก้ไข
package.json เพื่อแทรกโค้ดติดเชื้อ และรัน npm publish อัตโนมัติเพื่อ แพร่กระจายในรูปแบบเวิร์ม
การติดเชื้อบน GitHub และการส่งข้อมูลออก
- สคริปต์อันตรายสร้างไฟล์
.github/workflows/formatter_123456789.yml และลงทะเบียน runner SHA1HULUD
- เวิร์กโฟลว์ดังกล่าวจะจัดแพ็กข้อมูลลับของ repository เป็นไฟล์
actionsSecrets.json ที่ เข้ารหัส Base64 สองชั้น
- จากนั้นจะสร้าง GitHub repository ชื่อสุ่มที่มีคำอธิบาย
Sha1-Hulud: The Second Coming. เพื่ออัปโหลดข้อมูล
- HelixGuard ยืนยันว่ามี GitHub repository มากกว่า 27,000 แห่ง ติดเชื้อ
- ข้อมูลลับที่ถูกขโมยมีข้อมูลรับรองของบริการหลากหลาย เช่น
AWS_ACCESS_KEY_ID, SLACK_WEBHOOK_URL, CODECOV_TOKEN, WEBFLOW_TOKEN
รายชื่อแพ็กเกจที่ติดเชื้อ
- HelixGuard รายงานว่ามี แพ็กเกจ NPM หลายร้อยรายการ ติดเชื้อ
- ตัวอย่างสำคัญได้แก่แพ็กเกจจากองค์กรอย่าง
@asyncapi, @ensdomains, @posthog, @zapier, @postman, @voiceflow
- แต่ละแพ็กเกจมีหลายเวอร์ชันที่ติดเชื้อ เช่น
@asyncapi/specs@6.8.2, @postman/csv-parse@4.0.5
- แพ็กเกจที่ติดเชื้อส่วนใหญ่ปลอมตัวเป็นโปรเจกต์โอเพนซอร์สปกติ และอยู่ในลักษณะ ถูกแทรกโค้ดอันตรายในกระบวนการ deploy อัตโนมัติ
นัยสำคัญด้านความปลอดภัย
- การโจมตีครั้งนี้เป็นกรณีที่ใช้ประโยชน์จาก ช่องโหว่ด้านความปลอดภัยของซัพพลายเชน เพื่อแพร่การติดเชื้อในระบบนิเวศโอเพนซอร์สขนาดใหญ่
- สะท้อนความจำเป็นในการยกระดับการดูแลความปลอดภัยของ NPM, GitHub และข้อมูลรับรองบนคลาวด์ ตลอดทั้งโครงสร้างพื้นฐานการพัฒนา
- HelixGuard แนะนำให้หยุดติดตั้งแพ็กเกจที่ติดเชื้อทันที และ เพิกถอนโทเค็นและข้อมูลรับรองที่เกี่ยวข้องโดยทันที
ยังไม่มีความคิดเห็น