ด่วน! แจ้งเตือนเหตุ Supply Chain Attack ใน Trivy, trivy-action, setup-trivy และ Docker images

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

ThaiCERT ได้ติดตามสถานการณ์ภัยคุกคามทางไซเบอร์ และพบรายงานเกี่ยวกับเหตุโจมตีแบบ Supply Chain ต่อ Trivy ซึ่งเป็นเครื่องมือสแกนช่องโหว่แบบโอเพนซอร์สของ Aqua Security โดยผู้โจมตีใช้ข้อมูลรับรองที่ถูกขโมยมาเผยแพร่ artifact ที่ฝังมัลแวร์ทั้งในตัว Trivy, GitHub Actions ที่เกี่ยวข้อง และ Docker Hub นอกจากนี้ยังมีการใช้ข้อมูลที่ขโมยได้ไปขยายผลต่อ ทั้งการขโมยความลับจาก CI/CD, การแพร่กระจายมัลแวร์แบบ worm และการโจมตีต่อ GitHub organization ภายในของ Aqua Security อีกด้วย [1]

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

1.1 Aqua Security ระบุว่าผู้โจมตีใช้ credential ที่ถูก compromise ในการเผยแพร่ trivy เวอร์ชันอันตราย v0.69.4 รวมถึง “aquasecurity/trivy-action” และ “aquasecurity/setup-trivy” ที่ถูกแก้ไขให้มีโค้ดขโมยข้อมูลรับรองจากสภาพแวดล้อม CI/CD ได้

1.2 พบ Docker image ของ Trivy เพิ่มเติมที่ถูกฝังมัลแวร์ คือ 0.69.5 และ 0.69.6 บน Docker Hub โดยไม่มี GitHub release หรือ tag ที่สอดคล้องกัน และขณะนั้น latest ยังชี้ไปที่ 0.69.6 ด้วย ทำให้ผู้ที่ดึง image ผ่าน tag อาจได้รับเวอร์ชันอันตรายโดยไม่รู้ตัว

1.3 พบตัวบ่งชี้การโจมตี (IOC) ที่เชื่อมโยงกับ TeamPCP infostealer เช่นโดเมน “scan[.]aquasecurtiy[.]org”, ไฟล์ “payload.enc”, “tpcp.tar.gz” และการอ้างถึง GitHub repository สำรองชื่อ “tpcp-docs” ซึ่งบ่งชี้ว่าผู้โจมตีไม่ได้มุ่งแค่แก้ไข release แต่ยังพยายามขโมยข้อมูลและคงการเข้าถึงต่อเนื่อง

1.4 ข้อมูลที่ขโมยได้ถูกนำไปใช้ต่อยอดโจมตี downstream environment และเชื่อมโยงกับการแพร่กระจายของ CanisterWorm รวมถึง payload ที่มีความสามารถสร้างความเสียหายแก่ Kubernetes cluster และโฮสต์บางประเภทได้

1.5 ผู้โจมตีได้เข้าถึง GitHub organization ภายในชื่อ “aquasec-com” ของ Aqua Security และแก้ไข repository ภายในทั้งหมด 44 รายการ โดยเติม prefix “tpcp-docs-“, เปลี่ยน description เป็น “TeamPCP Owns Aqua Security” และเปิดเผย repository เหล่านั้นสู่สาธารณะ [2]

2. ผลิตภัณฑ์ที่ได้รับผลกระทบ

2.1 trivy เวอร์ชัน v0.69.4 ได้รับผลกระทบในหลายช่องทางเผยแพร่ ได้แก่ GHCR, ECR Public, Docker Hub, deb, rpm และ get.trivy[.]dev

2.2 Docker image ของ trivy เวอร์ชัน 0.69.5 และ 0.69.6 บน Docker Hub ก็ได้รับผลกระทบเช่นกัน

2.3 aquasecurity/trivy-action ได้รับผลกระทบในช่วงเวลาการโจมตี โดย Aqua แนะนำให้ใช้ v0.35.0 หรืออ้างอิงด้วย commit SHA ที่ปลอดภัยแทนการใช้ tag แบบลอย

2.4 aquasecurity/setup-trivy ก็ได้รับผลกระทบเช่นกัน และ Aqua แนะนำให้ใช้ v0.2.6 หรือ SHA ที่ระบุอย่างชัดเจน

2.5 แม้ image อันตรายบางส่วนจะถูกลบออกแล้ว แต่ยังมีรายงานว่า cache/mirror บางแห่ง เช่น mirror.gcr.io อาจยังให้บริการ image ที่ได้รับผลกระทบอยู่ในช่วงหนึ่ง ทำให้ pipeline บางระบบยังอาจดึงของเดิมมาใช้งานต่อได้

3. แนวทางการแก้ไข [2]

3.1 หยุดใช้งาน Trivy เวอร์ชันที่ได้รับผลกระทบทันที และ pin ไปยังเวอร์ชัน/ค่าอ้างอิงที่ Aqua แนะนำอย่างน้อยดังนี้: trivy v0.69.3, trivy-action v0.35.0, และ setup-trivy v0.2.6 โดยควร pin ด้วย commit SHA หรือ digest แทน tag ที่แก้ไขย้อนหลังได้

3.2 หากมีความเป็นไปได้ว่า pipeline หรือเครื่องใดเคยรัน artifact ที่ได้รับผลกระทบ ให้ถือว่าความลับทั้งหมดในสภาพแวดล้อมนั้นอาจรั่วไหลแล้ว และเร่งหมุนเปลี่ยน secrets, tokens, SSH keys, cloud credentials และ environment variables ที่เกี่ยวข้องทันที

3.3 บล็อกการเชื่อมต่อไปยัง IOC ที่เกี่ยวข้องอย่างน้อย “scan[.]aquasecurtiy[.]org” และ IP “45.148.10[.]212” ตามที่ Aqua แนะนำ พร้อมทั้งตรวจสอบ log การเชื่อมต่อย้อนหลังเพื่อหาการติดต่อผิดปกติ

3.4 ตรวจสอบ CI/CD runners, build agents, Docker caches และ mirror ที่องค์กรใช้งาน ว่ามีการ pull หรือ execute เวอร์ชัน 0.69.4, 0.69.5, 0.69.6 หรือ workflow ที่อ้างถึง tag ของ trivy-action หรือ setup-trivy ในช่วงเวลาที่ได้รับผลกระทบหรือไม่

3.5 ปรับแนวปฏิบัติด้านซัพพลายเชนซอฟต์แวร์ เช่น pin GitHub Actions ด้วย commit SHA, pin container images ด้วย digest, ลดการพึ่งพา mutable tags, และเฝ้าระวังพฤติกรรมผิดปกติใน CI/CD ด้วยความเข้มงวดเทียบเท่าระบบ production

4. หากยังไม่สามารถตรวจสอบผลกระทบได้ครบถ้วน ควรดำเนินการดังนี้[3]

4.1 ระงับการใช้งาน workflow หรือ pipeline ที่เรียกใช้ Trivy ผ่าน tag แบบลอย เช่น latest หรือ tag เวอร์ชันที่ไม่ได้ตรึง SHA/digest ไว้ก่อน จนกว่าจะยืนยันความถูกต้องของ artifact ได้

4.2 ตรวจสอบหาไฟล์หรือร่องรอยที่เชื่อมโยงกับการโจมตี เช่น `payload.enc`, `tpcp.tar.gz`, การอ้างถึง tpcp-docs และการเชื่อมต่อไปยังโดเมนที่สะกดคล้าย aquasecurity แต่ผิดตัวอักษร

4.3 ทบทวนสิทธิ์ของ service accounts และ bot accounts โดยเฉพาะบัญชีที่เชื่อมหลายองค์กรหรือหลายระบบเข้าด้วยกัน และลดการใช้ long-lived PAT ให้มากที่สุด

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

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

[2] https://dg.th/37lmipah1g

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

[4] https://dg.th/bfye3z8q69