
ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ได้ติดตามสถานการณ์ภัยคุกคามทางไซเบอร์กรณีตรวจพบการโจมตีในลักษณะ Supply Chain Attack ต่อแพ็กเกจ axios ซึ่งเป็นไลบรารี HTTP Request ยอดนิยมบนระบบ npm โดยพบว่ากลุ่มแฮกเกอร์ได้ลักลอบฝังรหัสอันตรายลงในเวอร์ชันทางการ มุ่งเป้าไปยังเครื่องของนักพัฒนาและโครงสร้างพื้นฐานด้านไอทีขององค์กร เพื่อใช้เป็นช่องทางในการจารกรรมข้อมูลความลับและเข้าควบคุมระบบจากระยะไกล[1]
1. รายละเอียดภัยคุกคาม [1][2]
กลุ่มผู้ไม่หวังดีได้เข้ายึดครองบัญชีของผู้ดูแลแพ็กเกจ และอัปโหลดเวอร์ชันอันตรายขึ้นสู่ระบบ npm (Node Package Manager) โดยมีการใช้เทคนิคและเครื่องมือที่มีประสิทธิภาพสูง ดังนี้
1.1 การทำงานอัตโนมัติผ่านสคริปต์ postinstall: สคริปต์อันตรายจะเริ่มทำงานทันทีระหว่าง npm install หรือ npm update เพื่อดาวน์โหลด เรียกใช้เพย์โหลดขั้นถัดไปโดยที่ผู้ใช้ไม่จำเป็นต้องรันโปรแกรมใด ๆ เพิ่มเติม
1.2 มัลแวร์แบบข้ามแพลตฟอร์ม (RAT/Backdoor): เพย์โหลดที่ถูกปล่อยสามารถทำงานได้ทั้งบน Windows macOS และ Linux ซึ่งอาจเปิดช่องให้ผู้โจมตีสั่งงานหรือควบคุมเครื่องจากระยะไกลได้
1.3 ความเสี่ยงต่อการรั่วไหลของข้อมูลสำคัญ: หากมีการติดตั้งเวอร์ชันที่ได้รับผลกระทบ โดยเฉพาะบนเครื่องนักพัฒนาและ CI/CD อาจทำให้ข้อมูลลับในสภาพแวดล้อมการพัฒนาและกระบวนการ build เช่น keys, tokens และ credentials อยู่ในความเสี่ยงต่อการถูกเข้าถึงหรือถูกนำออกไปได้
2. ลักษณะการโจมตีที่สำคัญ ได้แก่
2.1 Account Takeover: แฮกเกอร์เข้ายึดบัญชีผู้ดูแลเพื่ออัปโหลดเวอร์ชันอันตราย (1.14.1 และ 0.30.4) เข้าสู่ฐานข้อมูลหลักของ npm โดยตรง
2.2 Malicious Dependency: มีการเพิ่มแพ็กเกจอันตราย เช่น plain-crypto-js เป็น Dependency เพื่อหลบเลี่ยงการตรวจสอบโค้ดในตัวไลบรารีหลัก
2.3 Platform Identification: ตรวจสอบระบบปฏิบัติการของเหยื่อเพื่อเลือกดาวน์โหลดมัลแวร์เวอร์ชันที่เหมาะสม (Windows/Mac/Linux)
2.4 Data Exfiltration: มัลแวร์ทำการค้นหาไฟล์ข้อมูลความลับในเครื่อง เช่น ไฟล์ .aws/credentials, .ssh, .env และส่งกลับไปยังเซิร์ฟเวอร์ควบคุม (C2) ของผู้โจมตี
3. ผลกระทบที่อาจเกิดขึ้น[3]
3.1 ข้อมูลความลับขององค์กรถูกขโมย เช่น API Keys และ Cloud Credentials ซึ่งนำไปสู่การเจาะระบบคลาวด์
3.2 ระบบ CI/CD ถูกแทรกแซง อาจนำไปสู่การฝังมัลแวร์ต่อเนื่องไปยังผลิตภัณฑ์ซอฟต์แวร์ที่องค์กรผลิตเพื่อโจมตีผู้ใช้งานอื่น
3.3 เครื่องของนักพัฒนาถูกควบคุมและอาจถูกใช้เป็นจุดเริ่มต้นในการโจมตีภายในเครือข่ายองค์กร
4. เป้าหมายที่ได้รับผลกระทบ
4.1 นักพัฒนาซอฟต์แวร์ที่ใช้งาน Node.js และดิดตั้ง axios ผ่าน npm
4.2 ะทีม DevOps ที่มีกระบวนการอัปเดตไลบรารีอัตโนมัติ
4.3 ระบบที่เคยติดตั้ง เวอร์ชัน 1.14.1 หรือ 0.30.4 หรือพบ plain-crypto-js@4.2.1 ในโปรเจกต์/เครื่อง
5. แนวทางการป้องกันสำหรับผู้ดูแลระบบ
5.1 ตรวจสอบไฟล์ Lock: ตรวจสอบ package-lock.json หรือ yarn.lock ว่ามีการใช้งานเวอร์ชัน 1.14.1 หรือ 0.30.4 หรือไม่
5.2 จำกัดการรันสคริปต์: ใช้พารามิเตอร์ –ignore-scripts เมื่อติดตั้งแพ็กเกจจากภายนอกเพื่อป้องกันสคริปต์อันตรายทำงาน
5.3 ใช้งานเครื่องมือ SCA: ใช้เครื่องมือ Software Composition Analysis เพื่อเฝ้าระวัง Dependencies ที่มีช่องโหว่หรือถูกแจ้งเตือน
5.4 เฝ้าระวัง Network Log: ตรวจสอบการเชื่อมต่อที่ผิดปกติจากเครื่องนักพัฒนาไปยังโดเมนหรือไอพีที่ไม่รู้จัก
6. ข้อแนะนำสำหรับบุคคลทั่วไปและนักพัฒนา
6.1 ปรับลดเวอร์ชัน: หากพบเวอร์ชันอันตราย ให้ปรับลดไปใช้เวอร์ชันที่ปลอดภัย เช่น 1.14.0 หรือ 0.30.3 หรือเวอร์ชันที่ผู้พัฒนาประกาศแก้ไขล่าสุดทันที
6.2 Rotate Secrets: หากพบว่าเคยมีการติดตั้งเวอร์ชันอันตราย ให้ทำการเปลี่ยนรหัสผ่านและ API Keys ทั้งหมดที่อยู่ในเครื่องนั้นโดยเร็วที่สุด
6.3 ตรวจสอบความถูกต้อง: ตรวจสอบประวัติการอัปเดตและประกาศจาก GitHub ทางการของ axios ก่อนการอัปเดตทุกครั้ง
แหล่งข้อมูลอ้างอิง
