ชุมชนด้านเทคนิคทำการสืบสวน การโจมตีห่วงโซ่อุปทานของ NPM ซึ่งมุ่งเป้าไปที่ไลบรารี JavaScript ที่ใช้งานกันอย่างแพร่หลาย จากข้อมูลของทีมรักษาความปลอดภัยหลายทีม ผู้โจมตีได้แอบแฝงมัลแวร์ที่มีฟังก์ชัน crypto-clipper เข้าไปในแพ็กเกจที่กระจายอยู่ทั่วไป ซึ่งอาจนำไปสู่ เปลี่ยนแปลงธุรกรรมและเปลี่ยนเส้นทางสกุลเงินดิจิทัล.
แม้ว่าขอบเขตศักยภาพจะมหาศาลเนื่องจาก ความนิยมของการอ้างอิงเหล่านี้ในระบบนิเวศ JavaScriptการวิเคราะห์เบื้องต้นชี้ให้เห็นถึงผลกระทบทางเศรษฐกิจที่จำกัด โดยมีรายงานว่ามีการเคลื่อนย้ายเงินจำนวนเล็กน้อยไม่เกินสองสามร้อยดอลลาร์ ในขณะที่ซัพพลายเออร์และสำนักทะเบียนดำเนินการลบเวอร์ชันที่ถูกแก้ไข
การบุกรุกเกิดขึ้นได้อย่างไร
การบุกรุกเริ่มต้นด้วย อีเมลฟิชชิ่งเลียนแบบการสนับสนุน npm อย่างเป็นทางการเรียกร้องให้ผู้ดูแลแพ็กเกจอัปเดตการยืนยันตัวตนแบบสองปัจจัยอย่างเร่งด่วน เว็บไซต์ปลอมได้ขโมยข้อมูลประจำตัวและรหัส ทำให้ผู้โจมตีสามารถควบคุมบัญชีที่มีสิทธิ์เข้าถึงแบบครอบคลุม (ซึ่งเชื่อมโยงกับชุมชนด้วยนามแฝงว่า "Qix") และ เผยแพร่เวอร์ชันปลอมแปลง ของการใช้งานที่หลากหลาย
นักวิจัย เช่น Aikido Security และกลุ่ม JDSTAERK อธิบายถึงแคมเปญที่สามารถ แก้ไขเนื้อหาบนไซต์ สกัดกั้นการเรียก API และเปลี่ยนแปลงสิ่งที่ผู้ใช้คิดว่าพวกเขากำลังลงนามเพิ่มความเสี่ยงให้กับบริการเว็บที่บูรณาการไลบรารีเหล่านี้ผ่านเครือข่ายการอ้างอิงที่ลึกซึ้ง

แพ็คเกจและขอบเขตที่ได้รับผลกระทบ
ช่องว่างที่ได้รับผลกระทบ ยูทิลิตี้พื้นฐานที่มีอยู่ในหลายโครงการดังนั้นแม้แต่คอมพิวเตอร์ที่ไม่ได้ติดตั้งโดยตรงก็อาจเปิดเผยผ่านการอ้างอิงแบบสกรรมกริยาได้ ในบรรดาชื่อที่บริษัทและนักพัฒนาด้านความปลอดภัยอ้างถึง ได้แก่:
- ชอล์ก, แม่แบบชอล์ก, แถบ ansi, แผ่น ansi, ห่อ ansi, รองรับสี
- แปลงสี, ชื่อสี, สตริงสี
- ansi-regex, ansi-สไตล์, has-ansi
- ดีบัก, ตัวอย่างข้อผิดพลาด, อาร์เรย์แบบ is, การสลับแบบง่าย
- รองรับไฮเปอร์ลิงก์, แบ็กสแลช, โปรโตทิงเกอร์-ดับเบิลยูซี
ชิ้นส่วนซอฟต์แวร์เหล่านี้สะสม ยอดดาวน์โหลดรายสัปดาห์หลายล้านครั้งและบันทึกประวัติศาสตร์มากกว่าพันล้านรายการซึ่งทำหน้าที่เป็นส่วนประกอบพื้นฐานสำหรับเซิร์ฟเวอร์สมัยใหม่ เครื่องมือบรรทัดคำสั่ง และแอปพลิเคชันเว็บ
มัลแวร์ทำงานอย่างไร
โค้ดที่เป็นอันตรายทำงานเป็น คลิปเปอร์คริปโต:โดยการตรวจจับสภาพแวดล้อมที่มีกระเป๋าเงินซอฟต์แวร์ (เช่น ส่วนขยายเช่น MetaMask) มันดักจับข้อมูลธุรกรรมก่อนการลงนามและ แทนที่ที่อยู่ปลายทาง โดยอีกคนหนึ่งที่ถูกควบคุมโดยผู้โจมตี
หากไม่สามารถระบุกระเป๋าเงินที่ใช้งานอยู่ได้ อิมแพลนต์จะพยายาม การขโมยข้อมูลแบบพาสซีฟ ไปยังเซิร์ฟเวอร์ภายนอก ในสถานการณ์กระเป๋าสตางค์ที่ใช้งานอยู่ นอกจากจะควบคุมการเรียก API แล้ว ยังตรวจสอบคลิปบอร์ดเพื่อเขียนที่อยู่ใหม่ที่ผู้ใช้คัดลอกมา ซึ่งเป็นกลวิธีคลาสสิกในการฉ้อโกงประเภทนี้
ผู้เชี่ยวชาญชี้ว่าผู้ที่ ตรวจสอบรายละเอียดบนกระเป๋าสตางค์ฮาร์ดแวร์บนหน้าจอ พวกเขามีสิ่งกีดขวางทางกายภาพที่ขัดขวางเวกเตอร์นี้: การยืนยันขั้นสุดท้ายจะเกิดขึ้นบนอุปกรณ์ และไม่สามารถเปลี่ยนแปลงที่อยู่ที่แสดงโดยเบราว์เซอร์หรือเว็บได้
ผลกระทบที่แท้จริงจนถึงตอนนี้
แม้ว่าการเปิดเผยจะยิ่งใหญ่เพียงใด เงินที่ผู้โจมตีเคลื่อนย้ายก็จะเป็น เล็กมาก (หลายสิบถึงหลายร้อยดอลลาร์)ตามร่องรอยห่วงโซ่ต่างๆ ที่นักวิจัยเปิดเผยต่อสาธารณะ ซัพพลายเออร์หลายรายแจ้งเตือนทันทีและ รีจิสทรีปิดการใช้งานโพสต์ที่ถูกบุกรุก ภายในเวลาไม่กี่ชั่วโมง
กระเป๋าเงินคริปโตและทีมบริการ เช่น Ledger, Trezor, MetaMask, Phantom หรือ Uniswap พวกเขารายงานว่าไม่ได้รับผลกระทบจากเวอร์ชันที่แก้ไข หรือได้รับการปกป้องด้วยการป้องกันแบบหลายชั้น อย่างไรก็ตาม พวกเขาแนะนำให้ตรวจสอบธุรกรรมที่ลงนามแต่ละรายการอย่างละเอียด และรักษาแนวปฏิบัติด้านการตรวจสอบที่ดี
คำเตือนสำหรับนักพัฒนานั้นชัดเจน: หากโครงการ การอัปเดตการอ้างอิงระหว่างหน้าต่างการยืนยันเป็นความคิดที่ดีที่จะตรวจสอบต้นไม้ทั้งหมดและสร้างใหม่ด้วยเวอร์ชันที่สะอาด แม้ว่าแอปพลิเคชันจะไม่จัดการกับสกุลเงินดิจิทัลโดยตรงก็ตาม
สิ่งที่นักพัฒนาและทีมควรทำ
นอกเหนือจากการแก้ไขทันที องค์กรต่างๆ ควรนำ การควบคุมห่วงโซ่อุปทาน เพื่อลดพื้นที่การโจมตีในสภาพแวดล้อม JavaScript และ Node.js มาตรการสำคัญประกอบด้วย:
- การปักหมุดเวอร์ชันและการใช้ไฟล์ล็อค การปิดการใช้งานการอัปเดตอัตโนมัติในการผลิต
- ตรวจสอบลายเซ็น ผลรวมตรวจสอบ และแหล่งที่มา ปฏิบัติตามนโยบายการตรวจสอบก่อนการเผยแพร่
- เปิดใช้งาน 2FA ด้วยคีย์ความปลอดภัย FIDO และ หมุนโทเค็นและความลับ ถูกเปิดเผย.
- รวมเครื่องสแกนการอ้างอิงและ SBOM ตรวจสอบการเปลี่ยนแปลงที่ไม่คาดคิดในแพ็คเกจที่สำคัญ
- สร้างใหม่แบบสะอาดและย้อนกลับอย่างรวดเร็วเมื่อมีสัญญาณของการประนีประนอม
สำหรับผู้ใช้ปลายทาง คำแนะนำจะผ่าน ตรวจสอบที่อยู่และจำนวนเงินบนอุปกรณ์ ก่อนลงนาม ควรระวังป๊อปอัปที่ไม่คาดคิดและการหยุดการทำงานชั่วคราว หากคุณตรวจพบพฤติกรรมแปลกๆ บนเว็บไซต์ทั่วไปหรือ dApps
ลำดับเหตุการณ์และตัวเอก
ชุมชนตรวจพบการรณรงค์ในช่วงต้นสัปดาห์ โดยช่วงเวลาดังกล่าวมีตัวเลขในภาคส่วนต่างๆ เช่น ชาร์ลส์ กิลเลเมต์ ซีทีโอของเลดเจอร์เตือนถึงความเสี่ยงที่ไลบรารีเหล่านี้จะแทรกซึมเข้าไปในสแต็ก JavaScript เกือบทุกสแต็ก ไม่กี่ชั่วโมงต่อมา ทีมต่างๆ เช่น Blockaid และ Aikido ได้แบ่งปันรายการแพ็กเกจและอาร์ทิแฟกต์ที่วิเคราะห์แล้ว
ผู้ดูแลระบบที่เชื่อมโยงกับบัญชีที่ถูกบุกรุกได้ยืนยันบนโซเชียลมีเดียว่าเขาเป็นเหยื่อของ การหลอกลวงการรีเซ็ต 2FA และได้ขอโทษขณะประสานงานกับ npm เพื่อลบโพสต์ที่เป็นอันตราย ผู้ให้บริการรีจิสทรีระบุว่ากำลังทำงานร่วมกับนักวิจัยเพื่อปิดช่องโหว่และเสริมความแข็งแกร่งให้กับการควบคุม
แม้ว่าทุกสิ่งจะชี้ไปที่ ความเสียหายทางเศรษฐกิจที่จำกัดตอนนี้ชี้ให้เห็นชัดเจนว่าความปลอดภัยของระบบนิเวศ JavaScript ขึ้นอยู่กับการปกป้องข้อมูลประจำตัวของผู้ดูแลระบบ การเพิ่มความแข็งแกร่งให้กับการเผยแพร่แพ็คเกจ และการถือว่าการอ้างอิงเป็นจุดเชื่อมโยงที่สำคัญ การเสริมสร้างจุดเหล่านี้จะช่วยลดโอกาสที่เหตุการณ์ที่คล้ายกันจะเปิดโอกาสให้ผู้โจมตีเกิดขึ้นอีกครั้ง
