แจ้งเตือนกรณีแพ็กเกจ SAP บน npm ถูกฝังโค้ดอันตราย เสี่ยงถูกขโมย Credentials และกระทบ Supply Chain

ยอดเข้าชม: 129 views

ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ขอแจ้งเตือนหน่วยงานและผู้พัฒนาซอฟต์แวร์ที่มีการใช้งานแพ็กเกจของ SAP ผ่าน npm ให้เร่งตรวจสอบโดยด่วน หลังพบกรณีแพ็กเกจถูกฝังโค้ดอันตราย ซึ่งมีพฤติกรรมขโมยข้อมูลสำคัญ เช่น credentials และ environment variables โดยอาจกระทบต่อระบบพัฒนาและกระบวนการ CI/CD

1. รายละเอียดเหตุการณ์ [1]

จากการตรวจสอบพบว่าแพ็กเกจของ SAP บน npm บางรายการถูกผู้ไม่หวังดีเข้าควบคุม และมีการแทรกโค้ดอันตรายลงไปในเวอร์ชันที่เผยแพร่ โดยโค้ดดังกล่าวมีพฤติกรรมหลัก ได้แก่

* ดึงข้อมูล environment variables จากระบบที่ติดตั้งแพ็กเกจ

* ขโมย credentials, tokens, API keys

* ส่งข้อมูลออกไปยังเซิร์ฟเวอร์ของผู้โจมตี (exfiltration)

ลักษณะการโจมตีดังกล่าวจัดอยู่ในรูปแบบ supply chain attack เนื่องจากผู้โจมตีอาศัยความน่าเชื่อถือของแพ็กเกจ เพื่อกระจายโค้ดอันตรายไปยังนักพัฒนาและระบบ CI/CD โดยไม่จำเป็นต้องโจมตีระบบปลายทางโดยตรง

ทั้งนี้ เหตุการณ์มีความเกี่ยวข้องกับกลุ่มผู้โจมตีที่ใช้เทคนิคคล้ายกับแคมเปญของ “Shai-Hulud” หรือ MiniHarvester ซึ่งมุ่งเน้นการเก็บข้อมูล credentials จาก developer environment และ pipeline

2. ระบบที่ได้รับผลกระทบ [2]

* ระบบที่มีการติดตั้งหรือใช้งานแพ็กเกจ SAP จาก npm ที่ถูก compromise

* ระบบพัฒนา (Developer workstation)

* ระบบ CI/CD pipeline ที่มีการ build หรือ deploy โดยใช้แพ็กเกจดังกล่าว

* ระบบที่มีการเก็บ secrets / credentials / tokens ใน environment variables

จากการรายงานเพิ่มเติม พบว่าอาจมีแพ็กเกจที่ได้รับผลกระทบแล้ว ได้แก่

* @cap-js/sqlite – เวอร์ชัน 2.2.2

* @cap-js/postgres – เวอร์ชัน 2.2.2

* @cap-js/db-service – เวอร์ชัน 2.10.1

* mbt – เวอร์ชัน 1.2.48

แม้จะมีการระบุเวอร์ชันที่ได้รับผลกระทบบางส่วน แต่เนื่องจากเป็นเหตุการณ์ในลักษณะ supply chain compromise จึงไม่สามารถยืนยันขอบเขตเวอร์ชันที่ได้รับผลกระทบได้ทั้งหมด หน่วยงานควรตรวจสอบ dependency ที่ใช้งานย้อนหลัง และพิจารณาว่าการติดตั้งแพ็กเกจในช่วงเวลาที่เกิดเหตุอาจมีความเสี่ยงทั้งหมด

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

หากมีการใช้งานแพ็กเกจที่ถูกฝังโค้ดอันตราย ผู้โจมตีอาจสามารถ:

* เข้าถึง credentials, API keys, access tokens

* เข้าควบคุม pipeline หรือระบบ CI/CD บางส่วน

* ดำเนินการโจมตีต่อเนื่อง (lateral movement) ภายในองค์กร

* แทรกโค้ดอันตรายในซอฟต์แวร์ที่พัฒนา (software supply chain compromise)

* กระทบความลับ ความถูกต้อง และความพร้อมใช้งานของระบบ

4. แนวทางการแก้ไขและป้องกัน

4.1 ตรวจสอบรายการแพ็กเกจ npm ที่ใช้งาน โดยเฉพาะแพ็กเกจจาก SAP และ dependency ที่เกี่ยวข้อง

4.2 ตรวจสอบเวอร์ชันของแพ็กเกจ และหลีกเลี่ยงการใช้งานเวอร์ชันที่มีความเสี่ยง หรือได้รับการยืนยันว่าถูก compromise

4.3 ลบและติดตั้งแพ็กเกจใหม่จากแหล่งที่เชื่อถือได้ พร้อมตรวจสอบ integrity (เช่น checksum / signature)

4.4 ดำเนินการเปลี่ยนและหมุนเวียน credentials, tokens และ API keys ที่อาจได้รับผลกระทบโดยทันที

4.5 ตรวจสอบ log ของระบบ CI/CD และ developer environment เพื่อค้นหาพฤติกรรมผิดปกติ เช่น การส่งข้อมูลออกไปยังปลายทางที่ไม่รู้จัก

4.6 ใช้แนวทาง least privilege ในการกำหนดสิทธิ์ของ secrets และ service accounts

4.7 ใช้เครื่องมือ Software Composition Analysis (SCA) หรือ dependency scanning เพื่อตรวจจับแพ็กเกจที่มีความเสี่ยง

4.8 แยก environment ระหว่าง development, testing และ production เพื่อลดผลกระทบในกรณีถูกโจมตี

5. แนวทางการลดความเสี่ยงเพิ่มเติม

5.1 หลีกเลี่ยงการเก็บ secrets ใน environment variables โดยไม่จำเป็น

5.2 ใช้ secret management เช่น vault แทนการฝังค่าคงที่ใน pipeline

5.3 จำกัดการเข้าถึง outbound network ของ CI/CD runner

5.4 ใช้การตรวจสอบพฤติกรรม (behavior monitoring) เช่น EDR หรือ runtime security

5.5 ทบทวนกระบวนการ build และ dependency trust เพื่อป้องกัน supply chain attack

แหล่งอ้างอิง

[1] https://dg.th/gu2k36b5rq

[2] https://dg.th/je64wazh52

[3] https://dg.th/omdleip4g9