พบการโจมตีแบบ Supply Chain Attack ในไลบรารี web3.js ของ Solana

พบการโจมตีแบบ Supply Chain Attack ในเวอร์ชัน 1.95.6 และ 1.95.7 ของไลบรารี '@solana/web3.js' ที่ได้รับการดาวน์โหลดไปแล้วมากกว่า 350,000 ครั้งต่อสัปดาห์ จาก npm

เวอร์ชันที่ถูกโจมตีเหล่านี้มีการฝังโค้ดที่เป็นอันตรายที่ออกแบบมาเพื่อขโมย private keys จากนักพัฒนา และผู้ใช้งานที่ไม่ระมัดระวัง ซึ่งอาจทำให้ผู้โจมตีสามารถดึงเงินคริปโทเคอร์เรนซีจากกระเป๋าเงินของผู้ใช้งานได้

ข้อมูลที่มีจนถึงตอนนี้

  • เวอร์ชันที่ได้รับผลกระทบ
    • เวอร์ชัน 1.95.6 และ 1.95.7 ของไลบรารี @solana/web3.js บน npm
  • พฤติกรรมที่เป็นอันตราย: โค้ดที่ถูกฝังจะดักจับ private key และส่งไปยังที่อยู่ที่กำหนดไว้ล่วงหน้า
  • กระเป๋าเงินที่เชื่อมโยง: พฤติกรรมดังกล่าวถูกติดตามไปยังที่อยู่ Solana 'FnvLGtucz4E1ppJHRTev6Qv4X7g8Pw6WPStHCcbAKbfx'
  • สาเหตุ: คาดว่าเกิดจากการโจมตีด้วยวิธีการ social engineering และฟิชชิง ที่มุ่งเป้าไปที่ผู้ดูแลไลบรารีโอเพนซอร์ส Web3.js อย่างเป็นทางการ ที่ดูแลโดย Solana

ผลกระทบที่อาจเกิดขึ้น

  • นักพัฒนาที่รวมเวอร์ชันเหล่านี้เข้ากับโปรเจ็กต์ของตนมีความเสี่ยงที่จะถูกเปิดเผย private key ของตน
  • ผู้ใช้งานแอปพลิเคชันที่ใช้ไลบรารีที่ถูกโจมตีอาจถูกดึงเงินจากกระเป๋าของตนหาก private key ถูกเปิดเผย

การดำเนินการทันทีสำหรับนักพัฒนา

  • ตรวจสอบ Dependencies: ตรวจสอบโปรเจ็กต์ของคุณว่าใช้ @solana/web3.js หรือไม่ และใช้งานเวอร์ชัน 1.95.6 หรือเวอร์ชัน1.95.7 หรือไม่
  • ย้อนกลับ หรืออัปเดต: Downgrade เวอร์ชันลงไปยังเวอร์ชันที่ปลอดภัยก่อนหน้า 1.95.6 หรืออัปเดตเป็นเวอร์ชัน 1.95.8 ซึ่งได้ถูกปล่อยออกมาเพื่อลบโค้ดอันตรายที่ถูกฝัง
  • ตรวจสอบโค้ด: ตรวจสอบไดเรกทอรี node_modules และโครงสร้างของ dependencies ด้วยตนเอง เพื่อหาการเปลี่ยนแปลงที่น่าสงสัย
  • เพิกถอนการเข้าถึง: สร้างคีย์ใหม่สำหรับคีย์ที่ถูกโจมตี และเพิกถอนสิทธิ์ตามความจำเป็น


วิธีตรวจสอบว่าแอปพลิเคชันของคุณได้รับผลกระทบหรือไม่

คุณสามารถใช้เครื่องมือฟรีของ Socket เพื่อตรวจสอบว่าโค้ดของคุณได้รับผลกระทบหรือไม่

  • ติดตั้ง Socket และรันการสแกนด้วย CLI (ใช้คำสั่ง socket scan create) วิธีการนี้คือขั้นตอนง่าย ๆ ที่จะช่วยตรวจสอบว่าโค้ดใน local repository ได้รับผลกระทบหรือไม่
  • ติดตั้ง Socket for GitHub ซึ่งจะช่วยตรวจสอบว่า repository ใดในองค์กรกำลังใช้เวอร์ชันที่ได้รับผลกระทบ (โดยจะไม่มีการสแกน repository จนกว่าจะมีการ commit ใหม่ในแต่ละ repository บน branch หลัก)

การอัปเดต

npm ได้ดำเนินการอย่างรวดเร็วในการลบเวอร์ชันที่ได้รับผลกระทบออก

ในโพสต์บน Bluesky นักวิจัยด้านความปลอดภัยบนคลาวด์ 'Christophe Tafani-Dereeper' จาก Datadog ได้แสดงให้เห็นว่า backdoor ใน v1.95.7 รวมถึงฟังก์ชัน "addToQueue" ที่ออกแบบมาเพื่อขโมย private key ใช้ headers ของ CloudFlare ที่ดูเหมือนจะถูกต้อง

Tafani-Dereeper อธิบายว่า "ฟังก์ชันนี้ถูกฝังเข้าไปใน code paths ที่ถูกต้องต่าง ๆ ที่เข้าถึง private key"

Tafani-Dereeper อธิบายว่า "ฟังก์ชันนี้ถูกฝังเข้าไปใน code paths ที่ถูกต้องต่าง ๆ ที่เข้าถึง private key"


เขายังระบุเพิ่มเติมว่า โดเมนที่เกี่ยวข้อง (sol-rpc[.]xyz) ถูกลงทะเบียนเมื่อวันที่ 22 พฤศจิกายน ผ่าน NameSilo และขณะนี้โฮสต์อยู่หลัง CloudFlare แม้ว่าปัจจุบัน C2 จะไม่ทำงานแล้วก็ตาม

ที่มา : socket.dev