- แพ็คเกจ npm สองรายการ ได้แก่ colortoolsv2 และ mimelib2 ทำการค้นหาสัญญาอัจฉริยะของ Ethereum เพื่อดึง URL C2 สำหรับมัลแวร์ระยะที่สอง
- ผู้โจมตีได้ใช้แคมเปญที่สร้างขึ้นโดยใช้คลังข้อมูลบอทซื้อขาย GitHub ปลอมเพื่อล่อลวงนักพัฒนา
- เทคนิคนี้ผสมผสานกับการรับส่งข้อมูลบล็อคเชนที่ถูกต้องตามกฎหมาย ทำให้การตรวจจับและการถอดข้อมูลมีความซับซ้อน
- ReversingLabs แชร์ IoC รวมถึงแฮชแพ็คเกจและที่อยู่สัญญาที่ใช้ในการให้บริการ URL

นักวิจัยได้ให้รายละเอียดเกี่ยวกับโครงการซัพพลายเชนในรีจิสทรี npm ซึ่งมีไลบรารี JavaScript สองรายการปรึกษาหารือกัน Ethereum สัญญาอัจฉริยะ Ethereum เพื่อค้นหาตำแหน่งดาวน์โหลดของมัลแวร์ที่ติดตามมา กลยุทธ์นี้ซึ่งพบเห็นในเดือนกรกฎาคม 2025 และปัจจุบันถูกลบออกจาก npm แสดงให้เห็นว่าบล็อกเชนสาธารณะอาจถูกนำไปใช้ในทางที่ผิดเป็นชั้นของข้อมูลทางอ้อมเพื่อ โครงสร้างพื้นฐานการสั่งการและควบคุม (C2) พ้นสายตา
แทนที่จะฝัง URL คงที่ โค้ดอันตรายกลับดึง URL เหล่านั้นมาจากสัญญาบน Ethereum ในขณะรันไทม์ ทำให้กิจกรรมดูเหมือนคิวรีแบบ on-chain ทั่วไป การเปลี่ยนไปใช้ “สมุดที่อยู่” แบบกระจายอำนาจ สำหรับการส่งมอบเพย์โหลดแสดงให้เห็นว่าผู้ก่อภัยคุกคามปรับตัวอย่างไรเพื่อหลีกเลี่ยงการสแกนแบบเดิมและรายการบล็อกที่เรียบง่าย
สิ่งที่อัพโหลดไปยัง npm
ตามที่ ReversingLabs ระบุ แพ็คเกจที่ชื่อ คัลเลอร์ทูลส์v2 และ ไมเมลิบ2 ได้รับการตีพิมพ์ในเดือนกรกฎาคม 2025 และถูกลบออกในภายหลัง แต่ละอันทำหน้าที่เป็นตัวโหลดขนาดเล็ก: เมื่อแพ็คเกจถูก ติดตั้งหรือนำเข้ามันดำเนินการโค้ดที่เข้าถึงสัญญา Ethereum อ่านค่า และดึงส่วนประกอบขั้นถัดไปจาก URL ที่ส่งคืน
แม้ว่าไลบรารี npm จะไม่ทำให้พฤติกรรมการโหลดของพวกมันคลุมเครือมากนัก แต่ความน่าเชื่อถือก็ถูกสร้างขึ้นในที่อื่น: โปรเจ็กต์ GitHub ที่เชื่อมโยงได้นำรูปแบบการตั้งชื่อและกิจกรรมที่คุ้นเคยมาใช้เพื่อให้ดูถูกต้องตามกฎหมาย ทำให้นักพัฒนาสามารถ... ยอมรับการพึ่งพา อย่างรวดเร็ว
การทำงานของแกนสัญญาอัจฉริยะ
ตำแหน่งบรรทุกไม่ได้ถูกเขียนโค้ดไว้ตายตัว แต่ตัวโหลดกลับสอบถามสัญญาที่ 0x1f171a1b07c108eae05a5bccbe86922d66227e2bโดยใช้ฟังก์ชันการอ่านที่ส่งคืนสตริงที่ตีความว่าเป็น URL สำหรับขั้นตอนที่สอง โดยการโฮสต์ตัวชี้บนเชน ผู้โจมตีจะได้รับความยืดหยุ่น: สาธารณะ สอบถามได้ และอัปเดตได้ โดยไม่ต้องผลักดันการเปิดตัว npm ใหม่หรือรักษาเซิร์ฟเวอร์เดียวที่เสี่ยงต่อการถูกลบออก
เนื่องจากการค้นหาบล็อกเชนนั้นคล้ายคลึงกับเครื่องมือและการวิเคราะห์คริปโตที่ไม่เป็นอันตราย คำขอเหล่านั้นจึงสามารถผสานเข้ากับเวิร์กโฟลว์ปกติของนักพัฒนาได้ แนวทางนี้สะท้อนแนวคิดก่อนหน้านี้ เช่น EtherHiding แต่ในที่นี้มันถูกเชื่อมโยงเข้ากับ การดำเนินการแพ็กเกจ npmเปลี่ยนการติดตั้งตามปกติให้เป็นเส้นทางสู่การจัดส่งแบบเป็นขั้นตอน
ผลักดัน GitHub ที่กว้างขึ้นสู่การนำ Seed มาใช้
แพ็กเกจ npm ถูกอ้างอิงผ่านเครือข่ายคลังข้อมูล GitHub ที่ถูกจัดวางเป็นยูทิลิตี้การซื้อขายคริปโต ตัวอย่างประกอบด้วย solana-trading-bot-v2, อีเธอเรียม-เมฟ-บอท-v2, บอทการเก็งกำไรและ บอทซื้อขายไฮเปอร์ลิควิดกิจกรรมต่างๆ รอบๆ ที่เก็บข้อมูลเหล่านี้ ไม่ว่าจะเป็นดาว ฟอร์ก ผู้เฝ้าดู และการคอมมิทบ่อยๆ ล้วนได้รับการออกแบบมาเพื่อให้เห็นถึงความชอบธรรมและโมเมนตัม
ReversingLabs เชื่อมโยงการขยายสัญญาณนี้เข้ากับคลัสเตอร์การจัดจำหน่ายแบบบริการที่เรียกว่า เครือข่ายผีสตาร์เกเซอร์ซึ่งบัญชีที่ประสานงานกันจะส่งสัญญาณความนิยมเกินจริงและแทรกการอ้างอิงที่เป็นอันตรายเข้าไปในโครงการ บัญชี GitHub ที่เชื่อมโยงกับคลังเก็บหลักแห่งหนึ่งถูกลบออกในภายหลัง แต่ประวัติการคอมมิตแสดงให้เห็นว่า การนำเข้าที่เป็นอันตราย ถูกแทรกเข้าไปในโค้ดตามระยะเวลา
ไทม์ไลน์และการหมุนเวียนแพ็คเกจ
Colortoolsv2 ปรากฏขึ้นก่อนและถูกบล็อกใน npm ประมาณ กรกฎาคม 7, 2025หลังจากนั้นไม่นาน นักแสดงก็เปลี่ยนมาใช้นักแสดงที่เกือบจะเหมือนกันซึ่งมีชื่อว่า ไมเมลิบ2โดยยังคงรักษาการค้นหาสัญญาอัจฉริยะแบบเดียวกันสำหรับ URL ขั้นที่สอง การสลับอย่างรวดเร็วนี้เน้นย้ำถึงรูปแบบที่คุ้นเคยในเหตุการณ์ห่วงโซ่อุปทาน: เมื่ออาร์ติแฟกต์หนึ่งถูกทำเครื่องหมาย แพ็คเกจเลียนแบบ เติมเต็มบทบาทของตนได้อย่างรวดเร็ว
ตัวชี้วัดการประนีประนอม (IoCs)
ReversingLabs รายงานตัวบ่งชี้ต่อไปนี้ที่เชื่อมโยงกับแคมเปญ องค์กรต่างๆ สามารถใช้ตัวบ่งชี้เหล่านี้เพื่อขับเคลื่อน การตรวจจับและการล่าสัตว์ ความพยายาม:
- แพ็กเกจและเวอร์ชัน npm:
- colortoolsv2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215)
- colortoolsv2 1.0.1 (SHA1 1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b)
- colortoolsv2 1.0.2 (SHA1 db86351f938a55756061e9b1f4469ff2699e9e27)
- mimelib2 1.0.0 (SHA1 bda31e9022f5994385c26bd8a451acf0cd0b36da)
- mimelib2 1.0.1 (SHA1 c5488b605cf3e9e9ef35da407ea848cf0326fdea)
- ไฟล์ขั้นที่สอง: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
- Ethereum contract: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b
เหตุใดวิธีการนี้จึงทำให้การป้องกันมีความซับซ้อน
โดยการเอาท์ซอร์สการตัดสินใจเรื่อง “จะไปที่ไหนต่อไป” ให้กับ สัญญาสมาร์ทผู้โจมตีจะแยกตรรกะของมัลแวร์ออกจากจุดปลายเพียงจุดเดียว หาก URL ถูกบล็อก ค่าสัญญาสามารถอัปเดตได้ และแพ็กเกจ npm เดิมจะแก้ไขตำแหน่งใหม่โดยไม่มีการเปลี่ยนแปลง พลวัตดังกล่าวบั่นทอน ตัวบ่งชี้แบบคงที่ และยกระดับมาตรฐานการล้มคู่แข่ง
นอกจากนี้ สภาพแวดล้อมของนักพัฒนาซอฟต์แวร์จำนวนมากมีการโต้ตอบกับจุดสิ้นสุดของ web3 อยู่แล้ว ดังนั้นการเรียกใช้ EVM จึงอาจไม่น่าสงสัยโดยเนื้อแท้ เส้นแบ่งระหว่างการรับส่งข้อมูลบล็อกเชนที่ถูกต้องตามกฎหมายและ การส่งสัญญาณที่เป็นอันตราย ความเบลอ ท้าทายทั้งกลยุทธ์การตรวจสอบเครือข่ายและการตรวจจับจุดสิ้นสุด
ขั้นตอนปฏิบัติสำหรับนักพัฒนา npm และ web3
ทีมควรรวมการตรวจสอบโค้ด ผู้ดูแลระบบ และเครือข่ายเข้าด้วยกันก่อนที่จะนำสิ่งที่ต้องพึ่งพาเข้ามา นอกเหนือจากจำนวนการดาวน์โหลดและดาวแล้ว ให้ตรวจสอบ ประวัติการบำรุงรักษาอายุของที่เก็บข้อมูล คุณภาพการคอมมิต จังหวะการเผยแพร่ และไม่ว่าแพ็คเกจจะเข้าถึงสัญญาบนเชนหรือโฮสต์ที่ไม่คุ้นเคยโดยไม่คาดคิดหรือไม่
- ตรวจสอบการติดตั้งและหลังการติดตั้งรวมถึงจุดเข้าสำหรับ การโทรผ่านเครือข่าย หรือการดำเนินการกระบวนการย่อย
- บล็อกหรือแจ้งเตือนเมื่อมีการสอบถาม EVM RPC ที่ไม่คาดคิดจาก CI/CD หรือสร้างไปป์ไลน์ กำหนดพื้นฐานว่าเครื่องมือของคุณควรเข้าถึงอะไรและ ปฏิเสธส่วนที่เหลือ.
- ปักหมุดเวอร์ชัน ใช้ไฟล์ล็อค และมิเรอร์แพ็คเกจที่ตรวจสอบแล้วไปยังรีจิสทรีภายในเพื่อลดการเปิดเผย การสลับแพ็กเกจ.
- นำการรับรองสิ่งประดิษฐ์และการยืนยันลายเซ็น (เช่น แหล่งที่มาของ SLSA) มาใช้เพื่อให้ความสมบูรณ์ของการอ้างอิง ตรวจสอบแล้วเมื่อสร้าง.
- สแกนกราฟการอ้างอิงอย่างต่อเนื่องสำหรับ IoC ที่เปิดเผยใหม่และผิดปกติ การเปลี่ยนแปลงผู้ดูแลระบบ.
สำหรับที่เก็บข้อมูลที่ได้รับการสัมผัสโดยแคมเปญ ให้ตรวจสอบการคอมมิตล่าสุดสำหรับการแนะนำ colortoolsv2 หรือ mimelib2 คีย์โรลและโทเค็นที่ใช้ระหว่างการสร้างที่ถูกบุกรุก และพิจารณาการสร้างภาพระบบใหม่ที่ดำเนินการแพ็คเกจที่ได้รับผลกระทบเพื่อลบออก สิ่งประดิษฐ์ขั้นที่สอง.
ตอนนี้จะเน้นย้ำถึงวิธีการใช้ประโยชน์จากแพลตฟอร์มที่คุ้นเคยอย่าง npm ควบคู่ไปกับ Ethereum เพื่อปกปิดเส้นทางระหว่าง dependency และโฮสต์เพย์โหลดของมัน ด้วยข้อมูลบนเชนที่ทำหน้าที่เป็นตัวชี้ที่ยืดหยุ่น ผู้ป้องกันจึงถูกผลักดันให้เชื่อมโยงกัน พฤติกรรมของแพ็คเกจ สัญญาณ GitHub และการอ่านบล็อคเชน เพื่อตรวจจับสิ่งที่การตรวจสอบแบบคงที่ง่ายๆ พลาดไป