สรุปสั้น

ผู้ก่อภัยคุกคามที่ยังไม่ทราบตัวตนได้เจาะ 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 servertestnet.archival.chain.grpc-web.injective[.]networkเซิร์ฟเวอร์ที่รับ private key/mnemonic ผ่าน HTTPS POST
ฟังก์ชันอันตรายtrackKeyDerivation()ฟังก์ชัน telemetry ปลอมที่ขโมยข้อมูลกุญแจ
บัญชี maintainerthomasRaleeบัญชีที่ commit อันตรายถูก push ภายใต้ชื่อ
เวอร์ชันสะอาด@injectivelabs/sdk-ts@1.20.23เวอร์ชันที่ปลอดภัย ควรอัปเดตไปใช้

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