• มี คอมโพเนนต์มากกว่า 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 แนะนำให้หยุดติดตั้งแพ็กเกจที่ติดเชื้อทันที และ เพิกถอนโทเค็นและข้อมูลรับรองที่เกี่ยวข้องโดยทันที

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น