สรุปสั้น

ส่วนขยาย Nx Console เวอร์ชัน 18.95.0 สำหรับ VS Code ซึ่งมีผู้ติดตั้งกว่า 2.2 ล้านรายถูกฝังมัลแวร์ขโมย Credential สาเหตุเกิดจากเครื่องของนักพัฒนาคนหนึ่งถูกเจาะจนข้อมูล GitHub Credentials รั่วไหล ผู้โจมตีใช้ Credentials ที่ขโมยมาเพื่อ Push Orphan Commit ซ่อน Payload ขนาด 498 KB ไว้ใน Repository อย่างเป็นทางการของ nrwl/nx มัลแวร์ทำงานทันทีเมื่อนักพัฒนาเปิด Workspace ใน VS Code โดยจะขโมยข้อมูลจาก 1Password, npm Token, GitHub Token และ AWS Credentials ช่วงเวลาที่มีผลกระทบอยู่ระหว่างวันที่ 18 พฤษภาคม 2569 เวลา 13:36-13:47 น. (CEST) เพียง 11 นาที นี่เป็นครั้งที่สองภายในหนึ่งปีที่ระบบนิเวศ Nx ถูกโจมตีแบบ Supply Chain

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 19 พฤษภาคม พ.ศ. 2569 ว่า นักวิจัยด้านความปลอดภัยไซเบอร์พบว่าส่วนขยาย Nx Console เวอร์ชัน 18.95.0 บน VS Code Marketplace ถูกฝังมัลแวร์ โดย Nx Console เป็นส่วนขยายยอดนิยมสำหรับจัดการโปรเจกต์ที่ใช้ Nx Build System รองรับทั้ง VS Code, Cursor และ JetBrains มีผู้ติดตั้งบน VS Code กว่า 2.2 ล้านราย

นักวิจัยจาก StepSecurity ค้นพบว่าทันทีที่นักพัฒนาเปิด Workspace ส่วนขยายที่ถูกดัดแปลงจะดาวน์โหลดและ Execute Payload ที่ถูกทำให้อ่านยาก (Obfuscated) ขนาด 498 KB จาก Orphan Commit ที่ซ่อนอยู่ใน Repository อย่างเป็นทางการของ nrwl/nx บน GitHub

ทีมผู้ดูแล Nx Console ระบุว่าสาเหตุมาจากเครื่องของนักพัฒนาคนหนึ่งถูกเจาะในเหตุการณ์ด้านความปลอดภัยก่อนหน้านี้ ทำให้ GitHub Credentials รั่วไหล ผู้โจมตีใช้ Credentials ดังกล่าวเพื่อ Push Commit ที่ไม่มี Digital Signature เข้าสู่ Repository อย่างเป็นทางการ

มัลแวร์ตรวจสอบ Time Zone เพื่อหลีกเลี่ยงการติดมัลแวร์ในเครื่องที่อยู่ในโซนเวลารัสเซีย/CIS จากนั้นจะติดตั้ง Bun JavaScript Runtime เพื่อรัน Payload ที่ขโมย Secrets จาก 1Password Vaults, Anthropic Claude Code Configurations, npm Token, GitHub Token และ AWS Credentials โดยส่งข้อมูลออกผ่าน HTTPS, GitHub API และ DNS Tunneling

วิธีการโจมตี

การโจมตีเริ่มจากการเจาะเครื่องของนักพัฒนา Nx Console เพื่อขโมย GitHub Credentials จากนั้นผู้โจมตีใช้ Credentials ดังกล่าว Push Orphan Commit ที่ไม่มี Digital Signature เข้าสู่ Repository nrwl/nx เพื่อซ่อน Payload ที่เป็นอันตราย

เมื่อนักพัฒนาติดตั้งเวอร์ชัน 18.95.0 และเปิด Workspace ใน VS Code มัลแวร์จะทำงานโดยอัตโนมัติ ติดตั้ง Bun JavaScript Runtime แล้วรัน Payload ที่ถูกทำให้อ่านยากในรูปแบบ Detached Background Process เพื่อหลีกเลี่ยงการตรวจจับ

สิ่งที่โดดเด่นคือ Payload มีความสามารถในการทำ Sigstore Integration ครบถ้วน รวมถึงการออก Fulcio Certificate และสร้าง SLSA Provenance ร่วมกับ npm OIDC Token ที่ถูกขโมยมา ทำให้ผู้โจมตีสามารถเผยแพร่ npm Package ที่เป็นอันตรายพร้อม Provenance Attestation ที่ถูกต้องตามหลักการเข้ารหัส ทำให้ Package ปลอมดูเหมือนเป็น Build ที่ถูกต้อง

บนระบบ macOS มัลแวร์ยังติดตั้ง Python Backdoor ที่ใช้ GitHub Search API เป็น Dead Drop Resolver สำหรับรับคำสั่งเพิ่มเติมจากผู้โจมตี

ผลกระทบต่อไทย

Nx Console เป็นเครื่องมือที่ได้รับความนิยมในหมู่นักพัฒนาซอฟต์แวร์ทั่วโลก รวมถึงนักพัฒนาในประเทศไทยที่ใช้ VS Code เป็นเครื่องมือหลักในการเขียนโค้ด การโจมตีแบบ Supply Chain ครั้งนี้แสดงให้เห็นว่าแม้แต่ส่วนขยายจากแหล่งที่เชื่อถือได้ก็สามารถถูกดัดแปลงได้

ความสามารถของมัลแวร์ในการขโมย AWS Credentials และ npm Token เป็นอันตรายอย่างยิ่งสำหรับบริษัทเทคโนโลยีและสตาร์ตอัปในไทยที่ใช้บริการคลาวด์และเผยแพร่ Package ผ่าน npm เนื่องจากผู้โจมตีอาจใช้ข้อมูลที่ขโมยมาเพื่อเข้าถึงโครงสร้างพื้นฐานคลาวด์หรือเผยแพร่ Package ที่เป็นอันตรายต่อไปในห่วงโซ่อุปทาน

คำแนะนำ

  • ตรวจสอบว่า Nx Console ที่ติดตั้งไม่ใช่เวอร์ชัน 18.95.0 และอัปเดตเป็นเวอร์ชัน 18.100.0 ขึ้นไปโดยทันที
  • หากเคยติดตั้งเวอร์ชัน 18.95.0 ในช่วงเวลา 13:36-13:47 น. CEST ของวันที่ 18 พฤษภาคม 2569 ให้ตรวจสอบไฟล์ที่เป็น Indicator of Compromise ได้แก่ ~/.local/share/kitty/cat.py, ~/Library/LaunchAgents/com.user.kitty-monitor.plist และ /var/tmp/.gh_update_state
  • หมุนเวียน (Rotate) Credentials ทั้งหมดที่เข้าถึงได้จากเครื่องที่ได้รับผลกระทบ รวมถึง Token, Secrets และ SSH Key
  • ตรวจสอบ Process ที่ทำงานอยู่ว่ามี Python Process ที่รัน cat.py หรือ Process ที่มีตัวแปร __DAEMONIZED=1 หรือไม่
  • ทบทวนนโยบายความปลอดภัยสำหรับส่วนขยาย VS Code โดยพิจารณาจำกัดการอัปเดตอัตโนมัติและตรวจสอบ Digital Signature ก่อนติดตั้ง

แหล่งอ้างอิง