
บริษัทความปลอดภัย Socket Security เปิดเผยเมื่อวันที่ 25 พฤษภาคมว่าได้ตรวจพบกิจกรรมโจมตีห่วงโซ่อุปทานการขโมยคริปโตที่มีชื่อว่า TrapDoor ซึ่งพบแพ็กเกจมัลแวร์มากกว่า 34 แพ็กเกจและเวอร์ชันที่เกี่ยวข้อง 384 เวอร์ชันใน npm, PyPI และ Crates.io แล้ว Socket ได้รายงานไปยังรีจิสทรีที่ได้รับผลกระทบ และพบว่ามัลแวร์บางส่วนถูกลบออกแล้ว ขณะที่รายงานเผยแพร่นี้ยังคงมีบางส่วนอยู่
กลไกการทำงานของมัลแวร์ในคลังหลัก 3 แห่ง
(ที่มา:Socket Security)
npm (22 แพ็กเกจ) ผ่าน postinstall hooks เพื่อปรับใช้เพย์โหลดสำหรับเก็บข้อมูลรับรองที่ใช้ร่วมกัน จำนวน 1,149 บรรทัดของไฟล์ trap-core.js โดยใช้การยืนยันตัวตนผ่าน AWS และ GitHub API ที่ถูกขโมย และคงสภาพการเข้าถึงด้วยการฝัง persistence ในลักษณะต่าง ๆ เช่น Git hooks, shell hooks, systemd, cron และ SSH เครื่องพัฒนาที่ถูกบุกรุกสามารถกลายเป็นสะพานเพื่อเคลื่อนย้ายแบบ lateral ไปยังโครงสร้างพื้นฐานอื่นได้
PyPI (7 แพ็กเกจ) จะรันอัตโนมัติระหว่างการนำเข้า โดยดาวน์โหลด JavaScript จากโดเมน GitHub Pages ที่ผู้โจมตีควบคุม และใช้คำสั่ง node -e เพื่อรัน ผู้โจมตีไม่จำเป็นต้องเผยแพร่เวอร์ชันใหม่ก็สามารถอัปเดตพฤติกรรมได้ Crates.io (6 แพ็กเกจ ทั้งหมดมุ่งเป้าไปที่นักพัฒนา Sui และ Move) ใช้สคริปต์ build.rs ที่เป็นอันตราย โดยระหว่างการคอมไพล์ของ Rust จะค้นหา local keyring และส่งไปที่ GitHub Gist หลังจากเข้ารหัสด้วย XOR key ที่ฝังอยู่ในโค้ด
ประเภทข้อมูลที่ TrapDoor ขโมย (Socket ยืนยันแล้ว)
จากการวิเคราะห์ของ Socket TrapDoor ขโมยข้อมูลต่อไปนี้:
· คีย์ SSH (ใช้สำหรับ lateral movement)
· ข้อมูลของกระเป๋าเงิน Sui, Solana และ Aptos
· ข้อมูลประจำตัวของ AWS และโทเคน GitHub
· ข้อมูลโปรไฟล์การตั้งค่าและฐานข้อมูลสำหรับการเข้าสู่ระบบของเบราว์เซอร์
· ข้อมูลจากส่วนขยายกระเป๋าเงินเข้ารหัส
· ตัวแปรสภาพแวดล้อมและ API key
· ไฟล์ตั้งค่าการพัฒนาในเครื่อง
การฉีดเป้าหมายด้วย AI: .cursorrules, CLAUDE.md และ PR ที่เป็นอันตราย
TrapDoor ใช้ไฟล์ .cursorrules และ CLAUDE.md เพื่อฝังคำสั่งที่ซ่อนอยู่ผ่านอักขระ Unicode แบบความกว้างศูนย์ โดยพยายามชักจูงเครื่องมือเขียนโค้ดของ AI (เช่น Cursor, Claude) ให้รัน “การสแกนความปลอดภัย” ส่งผลให้คีย์ของนักพัฒนาถูกขโมย ผู้โจมตีใช้บัญชี GitHub ชื่อ ddjidd564 และในเวลาเดียวกันได้ส่ง pull request ไปยังโปรเจกต์โอเพนซอร์ส AI ยอดนิยมอย่าง browser-use, langchain, langflow, llama_index, MetaGPT และ OpenHands เพื่อพยายามแทรกไฟล์ .cursorrules และ CLAUDE.md ที่มีคำแนะนำไปยัง URL สำหรับการตั้งค่าที่ผู้โจมตีควบคุม กิจกรรมถูกทำเครื่องหมายเป็น P-2024-001
คำถามที่พบบ่อย
ผู้พัฒนาที่ได้รับผลกระทบจาก TrapDoor ควรดำเนินมาตรการฉุกเฉินใดบ้าง?
ให้ระบุและลบมัลแวร์ที่เกี่ยวข้องซึ่งติดตั้งไว้แล้วทันที (รายการฉบับเต็มครอบคลุม npm 22 แพ็กเกจ, PyPI 7 แพ็กเกจ, Crates.io 6 แพ็กเกจ) และเพิกถอนทันทีคีย์ AWS, โทเคน GitHub และคีย์ SSH ที่อาจถูกเปิดเผย Socket ได้รายงานไปยังคลังทะเบียนทั้งสามแห่ง และยังคงอัปเดตหน้าสำหรับติดตามกิจกรรมการโจมตีของ TrapDoor อย่างต่อเนื่อง
โครงสร้างพื้นฐานของกิจกรรมการโจมตี TrapDoor คืออะไร?
ผู้โจมตีใช้บัญชี GitHub ชื่อ ddjidd564 โฮสต์เพย์โหลดและการตั้งค่า โดยโดเมน GitHub Pages คือ ddjidd564[.]github[.]io/defi-security-best-practices/ บัญชีดังกล่าวยังดูแลเอกสารทางเทคนิคที่ผู้โจมตีเขียนเอง (รวมถึง AUDIT-MATRIX.md, BYPASS.md, PAYLOAD.md และ SWARM.md) รวมถึงคลังเหยื่อหลายแห่งที่เน้นด้าน DeFi และความปลอดภัย
นักพัฒนาจะตรวจสอบได้อย่างไรว่าเครื่องของตนติดเชื้อหรือไม่?
Socket แนะนำให้ตรวจสอบว่าในสภาพแวดล้อมการพัฒนาภายในเครื่องมีไฟล์ .cursorrules หรือ CLAUDE.md ที่มีการกำหนดค่าผิดปกติซึ่งมีอักขระ Unicode แบบความกว้างศูนย์หรือไม่ รวมถึงกระบวนการผิดปกติใน postinstall hooks, systemd services หรือ cron jobs Socket ได้เผยแพร่รายชื่อมัลแวร์แบบครบถ้วน นักพัฒนาสามารถตรวจสอบทีละรายการของแพ็กเกจที่ติดตั้งไว้ได้