-
09/04/2020
-
128
-
1.837 bài viết
Checkmarx KICS bị chiếm kho Docker, phát tán image độc hại đánh cắp dữ liệu
Một cuộc tấn công chuỗi cung ứng phần mềm quy mô lớn vừa được phát hiện, nhắm vào kho Docker Hub chính thức của Checkmarx KICS. Các Docker image và extension “chính chủ” đã bị can thiệp và biến đổi, trở thành công cụ thu thập thông tin nhạy cảm từ môi trường phát triển của hàng nghìn lập trình viên trên toàn cầu.
Sự việc được phát hiện vào ngày 22/04/2026, khi hệ thống giám sát của Docker và các nhà nghiên cứu tại Socket ghi nhận hoạt động bất thường trên kho lưu trữ chính thức của KICS (checkmarx/kics). Qua quá trình điều tra ban đầu, kết quả phân tích xác định nhóm tấn công TeamPCP là tác nhân đứng sau chiến dịch, sau khi chiếm quyền tài khoản maintainer và tiến hành can thiệp trực tiếp vào các phiên bản đang được sử dụng rộng rãi.
Thay vì tạo một repository giả mạo, tin tặc đã ghi đè trực tiếp lên các tag chính thống trên Docker Hub, bao gồm v2.1.20, alpine, debian và latest. Đồng thời, một tag giả mạo v2.1.21 cũng được phát hành nhằm nhắm tới các hệ thống tự động cập nhật, qua đó biến công cụ quét bảo mật KICS thành image bị cài mã độc nhưng vẫn giữ trạng thái hiển thị hợp lệ trong hệ thống phân phối.
Phân tích kỹ thuật cho thấy thành phần bị can thiệp nằm trong binary ELF viết bằng Go được đóng gói trong các image. Mã độc được bổ sung cơ chế thu thập telemetry và trích xuất dữ liệu từ quá trình quét Infrastructure-as-Code. Khi người dùng thực hiện scan, dữ liệu đầu ra bị thu thập, mã hóa và gửi về máy chủ điều khiển tại endpoint giả mạo dưới dạng dịch vụ telemetry. Việc sử dụng tên miền giả mạo theo hướng typosquatting giúp lưu lượng mạng độc hại khó bị phân biệt với traffic hợp lệ.
Dữ liệu bị thu thập bao gồm thông tin xác thực cloud, khóa API và các secrets sử dụng trong môi trường CI/CD. Đáng chú ý, hạ tầng điều khiển của binary này có liên kết với payload JavaScript mcpAddon.js, cho thấy chiến dịch có nhiều thành phần phối hợp thay vì một thay đổi đơn lẻ trong image.
Phạm vi tấn công không chỉ dừng lại ở Docker Hub. Trong quá trình điều tra mở rộng, các nhà nghiên cứu phát hiện chiến dịch này còn lan sang hệ sinh thái extension của VS Code và OpenVSX thuộc Checkmarx, với nhiều phiên bản bị trojan hóa, bao gồm cx-dev-assist (1.17.0, 1.19.0) và ast-results (2.63.0, 2.66.0). Khi được kích hoạt, các extension này lập tức âm thầm tải xuống payload giai đoạn hai là mcpAddon.js thông qua Bun runtime, không yêu cầu xác thực và cũng không có bất kỳ thông báo hay sự cho phép rõ ràng nào từ người dùng. Cách thức triển khai này khiến quá trình thực thi diễn ra gần như vô hình trong môi trường phát triển, làm gia tăng đáng kể mức độ nguy hiểm của chiến dịch.
mcpAddon.js là một file JavaScript bị obfuscate với dung lượng lớn, hoạt động như một công cụ đánh cắp thông tin xác thực (credential stealer). Payload này thu thập hàng loạt dữ liệu nhạy cảm trong môi trường phát triển, bao gồm GitHub tokens, thông tin AWS, Azure, Google Cloud, file cấu hình npm, SSH keys và các biến môi trường hệ thống. Sau khi thu thập, toàn bộ dữ liệu được nén, mã hóa và gửi về hạ tầng điều khiển của tin tặc.
Từ các GitHub token bị chiếm đoạt, tin tặc tiếp tục mở rộng phạm vi bằng cách tự động chèn các workflow độc hại của GitHub Actions vào những kho mã nguồn mà nạn nhân có quyền ghi. Các workflow này lợi dụng cơ chế tuần tự hóa secrets thông qua biểu thức ${{ toJSON(secrets) }} để trích xuất toàn bộ dữ liệu nhạy cảm của kho mã, sau đó đóng gói và xuất ra dưới dạng tệp kết quả có thể tải xuống. Song song với đó, các token npm bị đánh cắp cũng được sử dụng để xác định những gói phần mềm có quyền phát hành. Từ đó, mã độc được phát tán vào hệ sinh thái npm, tạo ra cơ chế lây lan theo chuỗi thông qua các dependency, khiến phạm vi ảnh hưởng có thể mở rộng nhanh chóng ngoài môi trường ban đầu bị xâm nhập.
Nhóm tin tăc TeamPCP được cho là đã từng xuất hiện trong nhiều chiến dịch trước đó trong năm 2026, nhắm vào các nền tảng CI/CD và hệ sinh thái extension như Trivy và LiteLLM. Các hoạt động này cho thấy nhóm duy trì một chuỗi chiến dịch có tính liên tục, tập trung vào hạ tầng phát triển và chuỗi cung ứng phần mềm thay vì các mục tiêu đơn lẻ.
Để giảm thiểu rủi ro lan rộng trong chuỗi cung ứng phần mềm, các quản trị viên hệ thống cần triển khai ngay các biện pháp kiểm soát sau nhằm hạn chế nguy cơ tiếp tục bị khai thác và ngăn chặn khả năng lan truyền trong môi trường phát triển:
- Cách ly và loại bỏ toàn bộ Docker image KICS bị ảnh hưởng, đồng thời gỡ bỏ các extension VS Code nằm trong danh sách cảnh báo.
- Xoay vòng toàn bộ secrets, bao gồm token, API key và cloud credentials đã từng xuất hiện trong pipeline CI/CD trong thời gian gần nhất.
- Chặn các kết nối ra ngoài tới hạ tầng bị xác định nghi vấn, bao gồm IP 94[.]154[.]172[.]43 và domain audit.checkmarx[.]cx.
- Loại bỏ việc sử dụng các tag động như :latest và chuyển sang ghim image bằng SHA256 digest để đảm bảo tính toàn vẹn của chuỗi cung ứng phần mềm.
Tổng hợp