สรุปสั้น
การโจมตี supply-chain ครั้งใหม่ได้ติดมัลแวร์ 36 แพ็กเกจบนดัชนี Node Package Manager (npm) ด้วยมัลแวร์ infostealer ชื่อ IronWorm โดยมัลแวร์มุ่งเป้า environment variable 86 ตัวและไฟล์ credential 20 ไฟล์ที่อาจมี credential ของ OpenAI, AWS, Anthropic และ npm รวมถึงไฟล์ตั้งค่า vault, SSH key และไฟล์ wallet คริปโต Exodus
ตามข้อมูลของนักวิจัยจากบริษัท JFrog ซึ่งเป็นบริษัทด้าน supply-chain และ devops IronWorm เขียนด้วยภาษา Rust ซ่อนตัวหลัง eBPF kernel rootkit และสื่อสารกับผู้ควบคุมผ่านเครือข่าย Tor โดยมัลแวร์ที่เขียนด้วย Rust นี้แพร่กระจายตัวเองด้วยการใช้ credential ที่ขโมยมาเผยแพร่บน npm ซึ่งรวมถึงความลับที่ผูกกับเวิร์กโฟลว์ Trusted Publishing ของ npm
เมื่อมันเจาะสภาพแวดล้อมของนักพัฒนาหรือ CI ได้ ก็สามารถเผยแพร่เวอร์ชันที่ฝังโทรจันของแพ็กเกจที่เหยื่อเป็นเจ้าของ ซึ่งจะไปติดมัลแวร์นักพัฒนาและระบบ CI เพิ่มเติม พฤติกรรมนี้คล้ายกับ Shai Hulud ที่เพิ่งมีโค้ดเผยแพร่บน GitHub แม้นักวิจัย JFrog จะไม่พบความเชื่อมโยงชัดเจนระหว่าง IronWorm กับ Shai Hulud แต่ก็พบชื่อ commit เดียวกันในการโจมตีทั้งสอง
รายละเอียดข่าว
เว็บไซต์ BleepingComputer รายงานเมื่อวันที่ 4 มิถุนายน 2569 ว่ามีการโจมตี supply-chain ใหม่ที่ใช้มัลแวร์ IronWorm ติดมัลแวร์ 36 แพ็กเกจบน npm เป็น infostealer ที่เขียนด้วย Rust ซ่อนด้วย eBPF rootkit และสื่อสารผ่าน Tor
ความเป็นไปได้ที่เปิดขึ้นคือมัลแวร์ใหม่นี้อาจเป็นวิวัฒนาการของ payload ของ TeamPCP เนื่องจาก IronWorm ดูเหมือน “implant ที่สร้างขึ้นเองอย่างพิถีพิถันจากปฏิบัติการที่มีโครงสร้างพื้นฐานของตัวเอง” ตามข้อมูลของ JFrog การโจมตีล่าสุดเริ่มจากบัญชีที่ถูกเจาะชื่อ asteroiddao ซึ่งเผยแพร่เวอร์ชันแพ็กเกจที่มี Rust ELF binary ที่รันผ่าน preinstall พร้อม push commit อันตรายเข้า repository
ผู้เขียน commit ปรากฏเป็น “claude” และ timestamp ชี้ไปหลายปีก่อน บางกรณีถึง 13 ปี แม้จริง ๆ จะถูก push ในไม่กี่วันที่ผ่านมา ซึ่งน่าจะทำเพื่อหลบการสืบสวน องค์ประกอบที่น่าสังเกตอย่างหนึ่งในผลของ JFrog คือกลไกที่อาศัย GitHub Actions ในการส่งความลับที่ขโมยมา โดย JFrog อธิบายว่ามัลแวร์ serialize ความลับเป็นค่าเดียวแล้ว “เขียนลงไฟล์ที่ชื่อดูไม่มีพิษภัย ราวกับเป็นผลลัพธ์ของ lint หรือ formatting” ขั้นตอนสุดท้ายคืออัปโหลดไฟล์เป็น build artifact ที่ใครก็ตามที่เข้าถึงได้ดาวน์โหลดได้ ทำให้ผู้โจมตีไม่จำเป็นต้องมี C2 ภายนอกเลย อย่างไรก็ตามนักวิจัยระบุว่ากลไกส่งข้อมูลนี้ยังไม่ถูกใช้ในการโจมตี IronWorm ที่วิเคราะห์
อีกจุดแปลกที่พบคือผู้ควบคุม hardcode recovery phrase ของ wallet คริปโตของตัวเองไว้ ซึ่งนักวิจัยระบุว่าเหตุผลเดียวคือผู้โจมตีไม่ต้องการให้มัลแวร์ขโมยมันระหว่างขั้นทดสอบ โดยบริษัท Ox Security ระบุว่าการโจมตี IronWorm ถูกตรวจพบเร็วมากและหยุดได้ก่อนลามไปยังแพ็กเกจยอดนิยมบน npm ขณะเดียวกัน Endor Labs และ StepSecurity ก็พบการโจมตีที่คล้ายแต่แยกต่างหากที่ใช้มัลแวร์ JavaScript ชื่อ binding.gyp ในช่วงเวลาเดียวกัน
วิธีการโจมตี
IronWorm เริ่มจากการเจาะบัญชีนักพัฒนา (เช่น asteroiddao) แล้วเผยแพร่เวอร์ชันแพ็กเกจที่มี Rust ELF binary ซึ่งรันผ่าน preinstall hook เมื่อนักพัฒนาคนอื่นติดตั้งแพ็กเกจ มัลแวร์ก็ทำงานทันที จุดเด่นคือการเขียนด้วย Rust ซ่อนหลัง eBPF kernel rootkit และสื่อสารผ่าน Tor ทำให้ตรวจจับและติดตามได้ยาก
เมื่อทำงาน มัลแวร์จะกวาด environment variable 86 ตัวและไฟล์ credential 20 ไฟล์ ทั้ง credential ของ OpenAI, AWS, Anthropic, npm token, ไฟล์ vault, SSH key และ wallet Exodus จากนั้นแพร่ตัวเองด้วยการใช้ npm token ที่ขโมยมา (รวมถึง Trusted Publishing) เผยแพร่เวอร์ชันโทรจันของแพ็กเกจที่เหยื่อเป็นเจ้าของ ไปติดมัลแวร์นักพัฒนาและ CI เพิ่ม
เพื่อหลบการสืบสวน ผู้โจมตีตั้งผู้เขียน commit เป็น “claude” และปลอม timestamp ให้ดูเหมือนหลายปีก่อน นอกจากนี้ยังมีกลไก (ที่ยังไม่ใช้ในแคมเปญนี้) ที่อาศัย GitHub Actions ส่งความลับโดยเขียนเป็นไฟล์ที่ดูเหมือน lint output แล้วอัปโหลดเป็น build artifact เพื่อเลี่ยงการมี C2 ภายนอก
ผลกระทบต่อไทย
นักพัฒนาและองค์กรไทยที่ใช้ npm ในการพัฒนาซอฟต์แวร์มีจำนวนมาก ทำให้การโจมตี supply-chain แบบ IronWorm เป็นภัยโดยตรง โดยเฉพาะการที่มัลแวร์มุ่งเป้า credential ของ OpenAI, AWS, Anthropic และ npm ซึ่งนักพัฒนาไทยจำนวนมากใช้ในงานคลาวด์และ AI
ความอันตรายคือพฤติกรรมแพร่ตัวเอง (worm) ที่ใช้ token ที่ขโมยมาเผยแพร่แพ็กเกจโทรจันต่อ ทำให้หากนักพัฒนาไทยรายเดียวถูกเจาะ ก็อาจลามไปยังแพ็กเกจที่ตนดูแลและกระทบผู้ใช้คนอื่นเป็นลูกโซ่ ยิ่งใช้ eBPF rootkit และ Tor ก็ยิ่งตรวจจับยาก
แม้การโจมตีนี้จะถูกหยุดได้เร็วก่อนลามไปแพ็กเกจยอดนิยม แต่เป็นสัญญาณเตือนว่าองค์กรไทยต้องเฝ้าระวัง supply-chain npm อย่างจริงจัง โดยเฉพาะใน CI/CD ที่ credential รั่วได้ง่ายและกระทบวงกว้าง
คำแนะนำ
- อัปเกรดเป็นเวอร์ชันที่แก้แล้ว — ตรวจรายชื่อแพ็กเกจที่ได้รับผลกระทบจากรายงานของ Ox Security และอัปเกรดทันที
- Rotate credential ทั้งหมด — เปลี่ยน key ของ OpenAI, AWS, Anthropic, npm token, SSH key ที่อาจรั่วในสภาพแวดล้อมที่ติดมัลแวร์
- เปิด 2FA ทุกบัญชี — โดยเฉพาะบัญชี npm และ GitHub เพื่อกันการแพร่ตัวเองด้วย token ที่ขโมยมา
- ตรวจสอบ CI/CD pipeline — หา preinstall hook หรือ binary ที่ไม่คาดคิด และ commit ที่มี timestamp/ผู้เขียนผิดปกติ
- ใช้ lockfile และ pin เวอร์ชัน — ตรวจสอบแพ็กเกจใหม่ก่อนติดตั้งใน environment จริง
- เฝ้าระวังทราฟฟิก Tor และพฤติกรรม eBPF ผิดปกติ — บนเครื่องนักพัฒนาและ CI
