Skip to main content

Command Palette

Search for a command to run...

Chuỗi tấn công supply chain Trivy lan rộng: Docker Hub, GitHub và Kubernetes đều bị ảnh hưởng

Published
5 min read
Chuỗi tấn công supply chain Trivy lan rộng: Docker Hub, GitHub và Kubernetes đều bị ảnh hưởng

Tổng quan

Các nhà nghiên cứu an ninh mạng đã phát hiện thêm nhiều artifact độc hại trên Docker Hub liên quan đến vụ tấn công supply chain nhắm vào công cụ quét lỗ hổng Trivy. Sự cố này không chỉ dừng lại ở việc phát tán mã độc, mà còn mở rộng sang CI/CD pipelines, GitHub organization nội bộ và hạ tầng Kubernetes, cho thấy mức độ lan rộng nghiêm trọng.

Phiên bản Trivy cuối cùng được xác nhận an toàn là 0.69.3. Các phiên bản:

  • 0.69.4 (đã bị gỡ)

  • 0.69.5

  • 0.69.6

đều chứa mã độc và không còn an toàn để sử dụng.

Docker Hub bị lợi dụng để phát tán mã độc

Các image Trivy độc hại (0.69.5, 0.69.6) được push lên Docker Hub mà không có release tương ứng trên GitHub, cho thấy dấu hiệu rõ ràng của việc bị xâm nhập.

Phân tích cho thấy các image này chứa:

  • Domain C2 giả mạo: scan.aquasecurtiy.org (typosquatting)

  • File exfiltration: payload.enc, tpcp.tar.gz

  • Liên kết đến GitHub repo backdoor: tpcp-docs-*

Đáng chú ý, dù đã bị xóa, các image này vẫn tồn tại qua cache/mirror (ví dụ mirror.gcr.io), khiến nhiều pipeline vẫn vô tình pull về bản độc hại.

Nguồn gốc: Tấn công GitHub Actions của Trivy

Cuộc tấn công bắt nguồn từ việc:

  • Kẻ tấn công chiếm quyền GitHub Actions của Trivy

  • Inject mã đánh cắp credential vào:

    • aquasecurity/trivy-action

    • aquasecurity/setup-trivy

Payload này được thiết kế để:

  • Thu thập GitHub token

  • Lấy SSH keys

  • Trích xuất cloud credentials

  • Thu thập biến môi trường từ CI runners

Leo thang: Từ đánh cắp token → chiếm quyền GitHub org

Một bước leo thang quan trọng là việc attacker sử dụng token bị đánh cắp để chiếm quyền GitHub organization nội bộ aquasec-com.

Hậu quả:

  • 44 repository bị:

    • Rename hàng loạt với prefix tpcp-docs-

    • Đổi description thành: "TeamPCP Owns Aqua Security"

    • Public hóa toàn bộ

Đáng chú ý:

Toàn bộ hành động diễn ra trong ~2 phút (20:31 → 20:32 UTC, 22/03/2026) → chứng tỏ:

  • Tấn công hoàn toàn tự động (script qua GitHub API)

  • Được chuẩn bị kỹ trước đó

Điểm yếu cốt lõi: Service account bị compromise

Nguồn gốc truy vết cho thấy:

  • Account bị compromise: Argon-DevOps-Mgt
  • Đây là service account dùng token dài hạn (PAT)

  • Có quyền truy cập cả 2 organization:

    • aquasecurity (public)

    • aquasec-com (internal)

=> Chỉ cần 1 token bị lộ → toàn bộ hệ thống bị kiểm soát

Dấu hiệu reconnaissance trước tấn công

7 giờ trước khi deface:

  • Attacker tạo và xóa một branch “ghost”: update-plugin-links-v0.218.2

  • Không trigger workflow

  • Không tồn tại release thật

=> Đây là hành vi test token để kiểm tra quyền truy cập mà không gây chú ý.

Mở rộng: Worm, npm packages và wiper malware

Sau khi có được credential:

1. Phát tán worm (CanisterWorm)

  • Lây nhiễm qua npm packages

  • Tự lan rộng trong hệ sinh thái dev

  • Dùng ICP (Internet Computer) làm C2

2. Wiper malware “kamikaze”

Payload mới nguy hiểm hơn:

  • Target chính: Kubernetes clusters (đặc biệt tại Iran)

  • Hành vi:

    • Deploy DaemonSet trên toàn cluster

    • Node Iran:

      • Xóa sạch (rm -rf /)

      • Force reboot

    • Node khác: Cài backdoor (systemd service)

3. Tấn công hạ tầng cloud

TeamPCP còn:

  • Exploit Docker API (port 2375)

  • Tấn công Redis, Ray dashboard

  • Dùng SSH key bị đánh cắp

  • Triển khai:

    • Cryptomining Ransomware

    • Data exfiltration

Tác nhân đe dọa: TeamPCP

TeamPCP (aka DeadCatx3, PCPcat, ShellForce) là nhóm tấn công cloud-native với khả năng ngày càng cao:

Đặc điểm nổi bật:

  • Chuyên khai thác:

    • Kubernetes

    • Docker

    • CI/CD pipelines

  • Tiên phong: Worm dùng ICP làm C2

  • Chiến thuật:

    • Supply chain attack

    • Credential harvesting

    • Automation quy mô lớn

Phạm vi ảnh hưởng

  • Không chỉ image chính thức bị ảnh hưởng

  • Các image:

    • CI/CD build lại từ Trivy

    • Fork / derivative

=> Có thể đã gián tiếp nhiễm mã độc

Khuyến nghị bảo mật

Phía FPT Threat Intelligence đưa ra các khuyến nghị sau cần phải thực hiện ngay lập tức:

  • Không sử dụng Trivy > 0.69.3

  • Rotate toàn bộ:

    • GitHub tokens

    • SSH keys

    • Cloud credentials

  • Kiểm tra CI/CD runners:

    • /tmp/pglog

    • Kết nối đến ICP domain

  • Cấu hình an toàn hơn

    • Pin GitHub Actions bằng commit SHA (không dùng tag)

    • Dùng short-lived tokens

    • Áp dụng least privilege

    • Giám sát pipeline như production

  • Kiểm tra hệ thống

    • Audit toàn bộ:

      • CI/CD pipelines

      • Docker images đã pull gần đây

    • Kiểm tra:

      • Kubernetes clusters

      • Docker API public (port 2375)

Kết luận

Đây là ví dụ điển hình cho “long-tail supply chain attack”:

  • Một credential bị đánh cắp từ trước

  • Được sử dụng lại để:

    • Chiếm GitHub org

    • Phát tán malware

    • Tấn công hạ tầng cloud

Qua đó cho thấy điểm yếu lớn nhất không phải lỗ hổng kỹ thuật, mà là:

Service account với quyền quá rộng + token tồn tại lâu

Tham khảo

More from this blog

F

FPT IS Security

726 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.