Back to Blog

ภัยเงียบใน CI/CD! แฮกเกอร์แฝงตัวในเครื่องมือสแกน Trivy ขโมยข้อมูลลับ

พบภัยคุกคามซัพพลายเชนใน GitHub Action Trivy ที่ถูกแฮกเพื่อขโมยข้อมูลลับจากกระบวนการ CI/CD เรียนรู้กลไกการโจมตีและวิธีป้องกัน

Sales
1 min read
ภัยเงียบใน CI/CD! แฮกเกอร์แฝงตัวในเครื่องมือสแกน Trivy ขโมยข้อมูลลับ

ขณะตรวจสอบการตรวจจับการทำงานของสคริปต์ที่เพิ่มสูงขึ้นในลูกค้าของแพลตฟอร์ม CrowdStrike Falcon ทีมวิศวกรได้ติดตามกิจกรรมดังกล่าวไปยัง GitHub Action ที่ชื่อ aquasecurity/trivy-action ซึ่งถูกแฮก เครื่องมือสแกนช่องโหว่โอเพนซอร์สยอดนิยมนี้ถูกใช้บ่อยในกระบวนการ CI/CD

การสืบสวนพบว่า 76 จาก 77 รุ่นปล่อยของสแกนเนอร์ถูกดัดแปลงโดยการเปลี่ยนจุดอ้างอิงแท็ก git เพื่อแทนที่จุดเริ่มต้นที่ถูกต้องด้วยสคริปต์ขโมยข้อมูลหลายขั้นตอน รหัสที่เป็นอันตรายทำงานเงียบๆ ก่อนที่สแกนเนอร์จริงจะเริ่มทำงาน ทำให้เวิร์กโฟลว์ดูเหมือนสำเร็จปกติ



กลไกการโจมตีผ่าน GitHub Actions

GitHub Actions เป็นแพลตฟอร์ม CI/CD ในตัวของ GitHub ที่ช่วยให้สามารถสร้าง ทดสอบ และปรับใช้โค้ดได้โดยอัตโนมัติ เวิร์กโฟลว์ที่กำหนดในไฟล์ YAML สามารถอ้างอิงถึงแอ็กชันที่ใช้ซ้ำได้จากบุคคลที่สาม ซึ่งรันเนอร์จะดาวน์โหลดและดำเนินการโค้ดใดๆ ที่แอ็กชันมีด้วยสิทธิ์เต็ม

aquasecurity/trivy-action เป็นแอ็กชันที่เผยแพร่โดย Aqua Security เพื่อใช้สแกนช่องโหว่ในอิมเมจคอนเทนเนอร์และโครงสร้างพื้นฐาน หากโค้ดของแอ็กชันถูกแก้ไข ทุกไปป์ไลน์ที่อ้างอิงถึงมันจะดำเนินการโค้ดใหม่ในการรันครั้งถัดไป พร้อมกับเข้าถึงความลับและข้อมูลประจำตัวทั้งหมด


Figure 1. High-level attack chain of this threat

การทำงานของมัลแวร์ขโมยข้อมูล

สคริปต์ entrypoint.sh ที่เป็นอันตรายจะเพิ่มโค้ดโจมตีประมาณ 105 บรรทัดก่อนลอจิกของสแกนเนอร์ Trivy จริง มันดำเนินการขโมยข้อมูลประจำตัวหลายขั้นตอน จากนั้นจึงรันสแกนเนอร์จริงเพื่อให้เวิร์กโฟลว์ดูสำเร็จ

ขั้นตอนแรกคือการค้นหาระยะกระบวนการของรันเนอร์ GitHub Actions และอ่านตัวแปรสภาพแวดล้อม ขั้นตอนที่สองจะขโมยข้อมูลประจำตัวตามแพลตฟอร์ม โดยบนรันเนอร์ Linux ที่โฮสต์โดย GitHub จะมีสคริปต์ Python ที่ถอดรหัสแล้วทำงานเพื่อขูดความลับจากหน่วยความจำกระบวนการ

ข้อมูลที่รวบรวมจะถูกเข้ารหัสด้วยคีย์เซสชัน AES-256-CBC จากนั้นส่งออกผ่านช่องทางหลักไปยังโดเมนที่เลียนแบบ aquasecurity.com หากล้มเหลว จะพยายามส่งผ่านบัญชี GitHub ของผู้เสียหายโดยสร้างที่เก็บสาธารณะและอัปโหลดข้อมูล


Figure 2. Process tree identified within the CrowdStrike Falcon Linux sensor

ขอบเขตการถูกบุกรุกและเครื่องมืออื่นๆ

จากการวิเคราะห์แท็กทั้งหมด 77 แท็กของ aquasecurity/trivy-action พบว่ามีการบุกรุก 76 แท็ก มีเพียงแท็ก 0.35.0 เท่านั้นที่สะอาด ทุกรุ่นปล่อยอื่นตั้งแต่ 0.0.1 ถึง 0.34.2 ให้บริการ entrypoint.sh ที่เป็นอันตราย

นอกจากนี้ แอ็กชัน setup-trivy ยังถูกบุกรุกเพื่อดำเนินการสคริปต์ที่เป็นอันตรายเดียวกัน รวมถึงตัวสแกนเนอร์ Trivy เวอร์ชัน 0.69.4 ก็ถูกบุกรุกด้วย โดยจะดรอปสคริปต์ที่ทำหน้าที่เป็นโหลดเดอร์ระยะที่หนึ่ง ซึ่งจะติดต่อเซิร์ฟเวอร์ C2 บนบล็อกเชน Internet Computer เป็นระยะเพื่อดาวน์โหลดและเรียกใช้เพย์โหลดเพิ่มเติม


Figure 3. Visualized process tree identified within the CrowdStrike Falcon Linux sensor

การป้องกันและข้อควรปฏิบัติ

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

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



Reference

CrowdStrike

หากสนใจสินค้า หรือต้องการคำปรึกษาเพิ่มเติม

💬 Line @monsteronline

☎️ Tel 02-026-6664

📩 Email [email protected]

🌐 ดูสินค้าเพิ่มเติม mon.co.th

แชทผ่าน LINEดูสินค้าทั้งหมด