สรุปสั้น
ผู้ก่อภัยคุกคามที่ยังไม่ทราบตัวตนได้เจาะ GitHub repository ของโครงการ Injective Labs SDK แล้วใช้เป็นช่องทางเผยแพร่แพ็กเกจอันตรายบน npm registry เพื่อขโมย private key และ mnemonic seed phrase ของกระเป๋าเงินคริปโตเคอร์เรนซี เวอร์ชันที่ถูกเจาะคือ @injectivelabs/sdk-ts@1.20.21 ซึ่งถูกฝังฟังก์ชัน telemetry ปลอมที่แอบดึงข้อมูลออกจากกระเป๋าเงิน โดยเวอร์ชันนี้ถูกปล่อยเมื่อวันที่ 8 กรกฎาคม 2569 และถูกประกาศเลิกใช้ (deprecated) ไปแล้ว แต่ไฟล์ที่ปล่อยออกมายังดาวน์โหลดได้จาก GitHub ในขณะที่เขียนรายงาน
บริษัทความปลอดภัยด้านห่วงโซ่อุปทาน (Supply Chain) ซอฟต์แวร์ Socket ระบุว่าฟังก์ชันอันตรายถูกใส่เข้าไปใน repository ทางการผ่าน commit ที่ส่งจากบัญชี GitHub ของนักพัฒนาที่มีประวัติการมีส่วนร่วมกับ repository มาอย่างยาวนาน ผู้ก่อภัยยังปล่อยเวอร์ชัน 1.20.21 ไปยังแพ็กเกจในเครือ @injectivelabs อีก 17 รายการที่ผูกและ pin เวอร์ชัน SDK อันตรายไว้ ทำให้ผู้ใช้แบบ transitive ที่อาจไม่ได้ติดตั้งไลบรารีโดยตรงก็ได้รับผลกระทบไปด้วย
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 10 กรกฎาคม 2569 ว่า มัลแวร์ในแพ็กเกจนี้มีความเรียบง่ายและตรงไปตรงมา โดยจะทำงานเมื่อนักพัฒนาที่ไม่ทันระวังเรียกใช้ฟังก์ชันของไลบรารี การหลีกเลี่ยงการใช้ lifecycle script และไม่รันในช่วงติดตั้ง ช่วยให้มัลแวร์หลบการตรวจจับได้ โดยเวอร์ชันที่ถูกวางยาจะแก้ไขฟังก์ชันที่ถูกต้องซึ่งใช้สร้าง private key ด้วยการเรียกฟังก์ชัน trackKeyDerivation() ภายใต้ข้ออ้างว่าเป็นการเก็บสถิติการใช้งานแบบไม่ระบุตัวตนเพื่อปรับปรุงประสิทธิภาพ SDK
ตามข้อมูลของ Socket พารามิเตอร์ที่ส่งเข้าฟังก์ชันประกอบด้วยตัวระบุแบบฮาร์ดโค้ดที่บอกวิธีสร้าง private key และข้อมูลอ่อนไหวจริงที่จำเป็นต่อการสร้าง private key ซึ่งข้อมูลที่ดักได้เพียงพอให้ผู้ก่อภัยนำไปสร้าง private key ขึ้นใหม่ที่ฝั่งของตนได้ ด้านบริษัท OX Security อธิบายว่า “มัลแวร์เพิ่มตรรกะขโมยกระเป๋าคริปโตเข้าไปในแพ็กเกจกระเป๋าคริปโต ทุกครั้งที่ผู้ใช้ที่ถูกต้องสร้างหรือใช้ตรรกะที่อ่าน mnemonic phrase ซึ่งเป็นกุญแจหลักของกระเป๋าคริปโต มัลแวร์จะอ่านค่านั้นและส่งไปยังเซิร์ฟเวอร์ระยะไกล”
เพื่อลดจำนวนคำขอที่ส่งออก กลไกการดึงข้อมูลถูกออกแบบให้รวบรวมการสร้างกุญแจหลายครั้งภายในช่วงเวลาสองวินาทีเข้าเป็นคิวเดียว แล้วส่งออกในรูปของคำขอ HTTPS POST ไปยังเซิร์ฟเวอร์ภายนอก (testnet.archival.chain.grpc-web.injective[.]network) เป็นสัญญาณเดียว บริษัท StepSecurity ตั้งข้อสังเกตว่าการปล่อยเวอร์ชันอันตรายนี้ทำผ่าน trusted-publisher (OIDC) pipeline ของ repository เอง และ commit อันตรายถูกสร้างและ push ภายใต้ตัวตนของ maintainer ที่มีอยู่จริงและได้รับความไว้วางใจ (ชื่อบัญชี “thomasRalee”)
วิธีการโจมตี
จุดเด่นของการโจมตีนี้คือการใช้ช่องทางที่น่าเชื่อถือทุกขั้นตอน เริ่มจากการเจาะบัญชี maintainer ที่มีประวัติยาวนาน แล้วส่ง commit อันตรายเข้าสู่ repository ทางการ จากนั้นปล่อยแพ็กเกจผ่าน trusted-publisher (OIDC) pipeline ของโครงการเอง ทำให้ดูเหมือนการปล่อยเวอร์ชันปกติ มัลแวร์เลี่ยงการใช้ lifecycle script และไม่รันตอนติดตั้ง เพื่อไม่ให้ถูกตรวจจับด้วยเครื่องมือสแกนทั่วไป แต่จะทำงานก็ต่อเมื่อมีการเรียกใช้ฟังก์ชันสร้างกุญแจ ซึ่งเป็นช่วงที่ private key และ mnemonic phrase ปรากฏในหน่วยความจำพอดี
การที่ผู้ก่อภัยกระจายเวอร์ชัน 1.20.21 ไปยังแพ็กเกจในเครืออีก 17 รายการที่ pin เวอร์ชัน SDK อันตราย ทำให้ขอบเขตผลกระทบขยายไปถึงนักพัฒนาที่ไม่ได้ติดตั้ง SDK โดยตรงแต่พึ่งพาแพ็กเกจในเครือ นี่คือรูปแบบการโจมตีห่วงโซ่อุปทานที่อาศัยความไว้วางใจในระบบนิเวศแพ็กเกจ เพื่อขยายการแพร่กระจายให้กว้างที่สุด
ผลกระทบต่อไทย
นักพัฒนาและบริษัทในไทยที่ทำงานด้าน Web3, DeFi หรือแอปพลิเคชันบล็อกเชนที่ใช้ Injective Labs SDK หรือแพ็กเกจในเครือ @injectivelabs มีความเสี่ยงสูงที่ private key และ mnemonic phrase ของกระเป๋าคริปโตจะถูกขโมย ซึ่งหมายถึงการสูญเสียสินทรัพย์ดิจิทัลทั้งหมดในกระเป๋านั้น เนื่องจากการโจมตีกระจายผ่านแพ็กเกจในเครืออีก 17 รายการแบบ transitive dependency แม้โปรเจกต์ที่ไม่ได้ติดตั้ง SDK โดยตรงก็อาจได้รับผลกระทบ เหตุการณ์นี้ยังตอกย้ำความเสี่ยงของการโจมตีห่วงโซ่อุปทานซอฟต์แวร์ที่ทีมพัฒนาไทยควรตรวจสอบ dependency ของตนอย่างสม่ำเสมอ
คำแนะนำ
ผู้ใช้ที่ติดตั้งเวอร์ชันอันตรายควรอัปเดตเป็นเวอร์ชันสะอาดที่เพิ่งเผยแพร่ใหม่คือ 1.20.23 ทันที และต้องถือว่า private key หรือ mnemonic phrase ใด ๆ ที่เคยส่งผ่านแพ็กเกจนี้ถูกเจาะแล้ว จึงควรสร้างกุญแจใหม่และย้ายสินทรัพย์ไปยังกระเป๋าใหม่โดยเร็วที่สุด นอกจากนี้ควรตรวจสอบ transitive dependency ในโปรเจกต์ว่ามีการอ้างอิงถึงเวอร์ชัน 1.20.21 ของแพ็กเกจในเครือ @injectivelabs หรือไม่ เฝ้าระวังการเชื่อมต่อออกไปยังเซิร์ฟเวอร์ testnet.archival.chain.grpc-web.injective[.]network และพิจารณาใช้เครื่องมือสแกนความปลอดภัยของห่วงโซ่อุปทานเพื่อตรวจจับแพ็กเกจที่ถูกวางยาในอนาคต
Indicators of Compromise (IoCs)
หมายเหตุ: โดเมนถูก defang (เช่น
[.]) เพื่อป้องกันการเชื่อมโยงโดยไม่ตั้งใจ
| ประเภท | ตัวบ่งชี้ | คำอธิบาย |
|---|---|---|
| แพ็กเกจอันตราย | @injectivelabs/sdk-ts@1.20.21 | เวอร์ชัน SDK ที่ถูกฝังมัลแวร์ (ปล่อย 8 ก.ค. 2569) |
| Exfil server | testnet.archival.chain.grpc-web.injective[.]network | เซิร์ฟเวอร์ที่รับ private key/mnemonic ผ่าน HTTPS POST |
| ฟังก์ชันอันตราย | trackKeyDerivation() | ฟังก์ชัน telemetry ปลอมที่ขโมยข้อมูลกุญแจ |
| บัญชี maintainer | thomasRalee | บัญชีที่ commit อันตรายถูก push ภายใต้ชื่อ |
| เวอร์ชันสะอาด | @injectivelabs/sdk-ts@1.20.23 | เวอร์ชันที่ปลอดภัย ควรอัปเดตไปใช้ |
