การโจมตี Supply Chain ขนาดใหญ่บน NPM ส่งผลกระทบต่อแพ็กเกจกว่า 40 รายการ รวมถึงไลบรารี Tinycolor ยอดนิยม

ทีมชุมชน BigGo
การโจมตี Supply Chain ขนาดใหญ่บน NPM ส่งผลกระทบต่อแพ็กเกจกว่า 40 รายการ รวมถึงไลบรารี Tinycolor ยอดนิยม

การโจมตี supply chain ที่ซับซ้อนได้แทรกซึมเข้าสู่ระบบนิเวศ NPM โดยส่งผลกระทบต่อแพ็กเกจกว่า 40 รายการและส่งผลต่อนักพัฒนาหลายล้านคนทั่วโลก การโจมตีครั้งนี้มุ่งเป้าไปที่แพ็กเกจยอดนิยม @ctri/tinycolor ซึ่งมีการดาวน์โหลดสัปดาห์ละ 2.2 ล้านครั้ง พร้อมกับแพ็กเกจอื่นๆ อีกหลายสิบรายการที่ครอบคลุมผู้ดูแลหลายราย

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

ตัวอย่างแพ็กเกจที่ถูกบุกรุก:

  • @ctri/tinycolor (ดาวน์โหลด 2.2 ล้านครั้งต่อสัปดาห์)
  • @ctri/delegate.2.2
  • @ctri/ngx-codemirror9.0.2
  • encounter-playground9.0.5
  • ngx-color91.0.2
  • react-complate-image9.0.30

การดำเนินการขโมยข้อมูลประจำตัว

เป้าหมายหลักของการโจมตีครั้งนี้ดูเหมือนจะเป็นการขโมยข้อมูลประจำตัวที่สำคัญจากสภาพแวดล้อมของนักพัฒนา มัลแวร์ใช้ TruffleHog ซึ่งเป็นเครื่องมือรักษาความปลอดภัยที่ถูกต้องตามกฎหมาย เพื่อสแกนระบบไฟล์หาโทเค็นและข้อมูลประจำตัวคลาวด์ที่มีค่า โดยเฉพาะมุ่งเป้าไปที่โทเค็นการเผยแพร่ NPM คีย์ลับ AWS และโทเค็นการเข้าถึง GitHub

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

ข้อมูลประจำตัวที่ถูกกำหนดเป้าหมาย:

  • NPM_TOKEN และ NPM_TOKEN_AMG
  • AWS_SECRET_ACCESS_KEY และ ACCESS_KEY_ID
  • โทเค็นการเข้าถึงส่วนบุคคลของ GitHub
  • ข้อมูลประจำตัวเมตาดาต้าคลาวด์จากเอเจนต์บิลด์

การตอบสนองของชุมชนและความท้าทายในการตรวจจับ

ชุมชนรักษาความปลอดภัยได้แสดงความกังวลเกี่ยวกับความถี่ของการโจมตีดังกล่าว โดยนี่เป็นการโจมตี NPM ครั้งใหญ่ที่สองในสัปดาห์เดียว นักพัฒนากำลังตั้งคำถามเกี่ยวกับมาตรการรักษาความปลอดภัยของแพลตฟอร์มและเรียกร้องให้มีการป้องกันที่แข็งแกร่งยิ่งขึ้น

มีข้อเสนอแนะเชิงปฏิบัติที่สามารถป้องกันสิ่งนี้ได้ แต่ NPM ยังไม่ได้นำมาใช้: ป้องกันการเผยแพร่เวอร์ชันแพ็กเกจใหม่เป็นเวลา 24-48 ชั่วโมงหลังจากเปลี่ยนข้อมูลประจำตัวบัญชี กำหนดให้มีการสนับสนุนคีย์รักษาความปลอดภัย

การโจมตีถูกตรวจพบครั้งแรกโดยระบบอัตโนมัติ ทำให้เกิดความสับสนเกี่ยวกับความถูกต้องตามกฎหมาย อย่างไรก็ตาม นักวิจัยด้านความปลอดภัยได้ยืนยันว่าภัยคุกคามนี้เป็นจริงและกำลังแพร่กระจายอย่างแข็งขัน การตรวจจับเน้นย้ำทั้งคุณค่าของการตรวจสอบอัตโนมัติและความจำเป็นในการตรวจสอบการแจ้งเตือนความปลอดภัยโดยมนุษย์

มาตรการป้องกันเร่งด่วน

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

องค์กรที่ใช้แพ็กเกจที่ได้รับผลกระทบควรตรวจสอบสภาพแวดล้อมการพัฒนาและระบบ CI/CD เพื่อหาสัญญาณของการขโมยข้อมูลประจำตัว ระบบใดๆ ที่ติดตั้งเวอร์ชันที่ถูกโจมตีควรถือว่าอาจถูกโจมตี โดยโทเค็นและความลับที่เกี่ยวข้องทั้งหมดต้องมีการหมุนเวียน

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

อ้างอิง: Popular Tinycolor npm Package Compromised in Supply Chain Attack Affecting 40+ Packages