- Shai Hulud 2.0 โจมตีระบบนิเวศ npm อีกครั้ง และทำให้แพ็กเกจของโปรเจ็กต์สำคัญอย่าง Zapier, ENS Domains, AsyncAPI, PostHog, Postman ติดมัลแวร์
- มัลแวร์จะรันอัตโนมัติระหว่างขั้นตอนติดตั้งเพื่อ ขโมยข้อมูลลับจากเครื่องนักพัฒนาและสภาพแวดล้อมคลาวด์
- บนระบบที่ติดเชื้อ มันใช้ TruffleHog ค้นหา API key, token, รหัสผ่าน ฯลฯ แล้วอัปโหลดไปยัง GitHub repository แบบสาธารณะ
- การโจมตีครั้งนี้ขยายวงกว้างกว่าครั้งก่อน โดยมี แพ็กเกจติดเชื้อสูงสุด 100 รายการ และมี ฟังก์ชันลบไฟล์ใน home directory เมื่อการยืนยันตัวตนล้มเหลว
- นี่คือการโจมตีซัพพลายเชนขนาดใหญ่ที่คุกคามระบบความเชื่อถือของ npm ecosystem และตอกย้ำว่า ทุกทีมพัฒนาต้องตรวจสอบและเปลี่ยนข้อมูลลับ
ภาพรวมแคมเปญ Shai-Hulud
- Shai-Hulud คือ มัลแวร์แบบเวิร์มที่แพร่กระจายตัวเองในระบบนิเวศ npm และสามารถลุกลามได้อย่างรวดเร็วผ่านสภาพแวดล้อมการพัฒนาที่ติดเชื้อ
- เมื่อเครื่องติดเชื้อ มันจะใช้ TruffleHog ค้นหา API key, token และข้อมูลลับที่เปิดเผยอยู่
- ข้อมูลที่รวบรวมได้จะถูกส่งไปยัง GitHub repository แบบสาธารณะ จากนั้นจึงเผยแพร่ต่อด้วยการโพสต์แพ็กเกจอันตรายใหม่บน npm
- ผู้โจมตีตั้งชื่อการโจมตีรอบนี้ว่า “Second Coming”
- การโจมตีกลับมาอีกครั้งในช่วงที่ npm ประกาศว่า จะยกเลิก token แบบเก่าในวันที่ 9 ธันวาคม
ไทม์ไลน์ของการโจมตี
- 27 สิงหาคม: เปิดเผยรายงานแคมเปญ S1ngularity
- 16 กันยายน: เกิดการโจมตี Shai-Hulud ครั้งแรก
- 18 กันยายน: มีการเผยแพร่การวิเคราะห์ทางเทคนิคและพฤติกรรมของ payload
- 24 พฤศจิกายน: เกิด การโจมตีครั้งที่สอง (Second Coming) ก่อน npm ยกเลิก token ไม่นาน
การเปลี่ยนแปลงของรูปแบบการโจมตี
- การโจมตีครั้งนี้ติดตั้ง Bun runtime ผ่านไฟล์
setup_bun.js แล้วจึงรัน bun_environment.js
- มีการสร้าง GitHub repository ที่ใช้ชื่อแบบสุ่ม เพื่ออัปโหลดข้อมูลที่ขโมยมา
- จำนวนแพ็กเกจเป้าหมายที่ติดเชื้อเพิ่มจาก 20 เป็น 100 รายการ
- หากการยืนยันตัวตนของ GitHub หรือ npm ล้มเหลว จะมี ฟังก์ชันลบ home directory ของผู้ใช้ทั้งหมด
แพ็กเกจที่ติดเชื้อ
- มี npm package ติดเชื้อรวม 492 รายการ และมียอดดาวน์โหลดต่อเดือนรวม 132 ล้านครั้ง
- โปรเจ็กต์ที่ได้รับผลกระทบหลัก: Zapier, ENS Domains, AsyncAPI, PostHog, Postman, Browserbase
- ตัวอย่างแพ็กเกจ:
@zapier/zapier-sdk, @ensdomains/ensjs, @asyncapi/cli, posthog-js, @postman/pm-bin-linux-x64 เป็นต้น
การรั่วไหลของข้อมูลลับ
- มัลแวร์อัปโหลดข้อมูลลับไปยัง GitHub repository ที่มีคำอธิบายว่า “Sha1-Hulud: The Second Coming”
- ขณะนี้ยืนยันได้แล้วว่ามี repository มากกว่า 26,300 แห่ง ที่ถูกเปิดเผย
ความผิดพลาดของผู้โจมตี
- แพ็กเกจบางส่วนมีเพียง
setup_bun.js แต่ไม่มี bun_environment.js ทำให้เวิร์มไม่สามารถทำงานได้ครบถ้วน
- ส่งผลให้ ขอบเขตการแพร่กระจายของการโจมตีถูกจำกัด
เส้นทางการติดเชื้อและจุดเริ่มต้นของการติดเชื้อ
- การติดเชื้อครั้งแรกเริ่มต้นเมื่อ 24 พฤศจิกายน 2025 03:16:26 GMT+0 ใน
go-template และ 36 แพ็กเกจที่เกี่ยวข้องกับ AsyncAPI
- จากนั้นจึงแพร่ไปยัง PostHog (04:11:55) และ Postman (05:09:25) ตามลำดับ
- มีการยืนยันโค้ดที่ถูกเผยแพร่หลังจาก สร้าง branch อันตรายใน AsyncAPI CLI repository
ผลกระทบที่อาจเกิดขึ้น
- มันรันอัตโนมัติระหว่างการติดตั้ง จึงสามารถเข้าถึง สภาพแวดล้อม local ของนักพัฒนา, build system และ credentials บนคลาวด์
- ข้อมูลลับที่ถูกขโมยอาจนำไปสู่ การยึดบัญชีเพิ่มเติมและการเผยแพร่แพ็กเกจอันตราย
- เป็น ภัยคุกคามร้ายแรงต่อความปลอดภัยของซัพพลายเชนที่ตั้งอยู่บนความเชื่อถือของ npm ecosystem
คำแนะนำในการรับมือด้านความปลอดภัย
- ตรวจสอบ npm dependency ที่เกี่ยวข้องกับ Zapier และ ENS ทั้งหมด
- เปลี่ยนข้อมูลลับทั้งหมดของ GitHub, npm, คลาวด์ และ CI/CD
- ค้นหา repository บน GitHub ที่มีคำอธิบายว่า “Sha1-Hulud: The Second Coming”
- ปิดใช้งาน npm
postinstall script ในสภาพแวดล้อม CI
- ตรึงเวอร์ชันแพ็กเกจและเปิดใช้ MFA รวมถึงใช้เครื่องมืออย่าง Safe-Chain เพื่อบล็อกแพ็กเกจอันตราย
บทสรุป
- Shai-Hulud 2.0 คือ การโจมตีซัพพลายเชน npm ครั้งใหญ่ที่เกิดขึ้นซ้ำอีกครั้ง โดย
แพ็กเกจยอดนิยมหลายร้อยรายการและ GitHub repository หลายพันแห่ง ได้รับผลกระทบ
- ทุกทีมพัฒนาควรดำเนินการ ตรวจสอบ dependency, เปลี่ยนข้อมูลลับ และบล็อกสคริปต์ติดตั้งอัตโนมัติ โดยทันที
ยังไม่มีความคิดเห็น