การโจมตี 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