Chuỗi tấn công chuỗi cung ứng mới tiếp tục nhắm vào durabletask, gói Python chính thức của Microsoft cho Durable Task workflow execution framework. Ba bản phát hành v1.4.1, v1.4.2 và v1.4.3 đã bị can thiệp và chứa payload worm dạng đánh cắp thông tin xác thực trên môi trường đa đám mây. Đây là một mối đe dọa mạng thuộc nhóm supply chain, với khả năng phát tán tự động sau khi xâm nhập thành công.
Cảnh báo CVE Và Trạng thái sự cố
Vụ việc này không đi kèm CVE cụ thể trong nội dung nguồn, nhưng là một cảnh báo CVE theo nghĩa thực hành bảo mật vì bản phát hành chính thức đã bị thay thế bằng mã độc. Sau phân tích của Wiz, PyPI đã quarantine cả ba phiên bản bị ảnh hưởng. Tham khảo thêm danh mục gói và trạng thái phát hành trên PyPI.
Đây là một ví dụ điển hình của rủi ro bảo mật từ chuỗi cung ứng phần mềm: mã hợp lệ bị thay thế ngay tại kênh phân phối chính thức, khiến việc tin cậy vào repository chưa đủ để bảo đảm an toàn thông tin.
Diễn biến cuộc tấn công mạng
Nhóm đe dọa được theo dõi với các tên TeamPCP, PCPcat và DeadCatx3 đã hoạt động mạnh trong chiến dịch chuỗi cung ứng năm 2026. Chiến dịch này bắt đầu từ đầu tháng 3 với việc xâm nhập Trivy của Aqua Security, sau đó lan sang các bề mặt khác như GitHub Actions, LiteLLM, Telnyx và nhiều gói npm.
Đến ngày 19/05/2026, nhóm tiếp tục chiếm quyền phát hành hơn 300 gói trong hệ sinh thái @antv. Vài ngày sau, chuỗi lây nhiễm chuyển sang guardrails-ai, rồi mở rộng sang microsoft/durabletask-python.
Điểm xâm nhập và kỹ thuật che giấu
Hoạt động bất thường trên kho GitHub mục tiêu được ghi nhận trong khoảng từ 15:08 UTC đến 15:16 UTC. Trong cửa sổ này, kẻ tấn công sao chép thông điệp commit hợp lệ gần nhất từ nhánh chính nhằm che giấu thay đổi độc hại. Đây là kỹ thuật làm nhiễu dấu vết thường thấy trong các cuộc tấn công mạng vào supply chain.
Tài khoản GitHub bị lạm dụng trước đó đã bị chiếm qua một chiến dịch khác, sau đó kẻ tấn công dump GitHub Secrets từ các kho mà tài khoản này có quyền truy cập. Một trong các bí mật bị lấy cắp là PyPI publishing token, cho phép đẩy trực tiếp bản phát hành độc hại lên kho chính thức mà không cần vượt qua quy trình review nguồn.
Phân tích mã độc rope.pyz
Payload được thả xuống có tên rope.pyz, là biến thể kế thừa từ transformers.pyz từng xuất hiện trong vụ guardrails-ai. Mã độc chỉ nhắm vào Linux systems và được chèn vào nhiều điểm thực thi khác nhau để tăng khả năng kích hoạt.
Các entry point bị chèn
- task.py
- entities/__init__.py
- extensions/__init__.py
- payload/__init__.py
Việc cấy mã vào nhiều entry point giúp mã độc có thêm đường kích hoạt so với các phiên bản trước, từ đó tăng tỷ lệ thành công khi hệ thống gọi các module khác nhau.
Hành vi đánh cắp thông tin xác thực
Sau khi được kích hoạt, worm thực hiện thu thập thông tin xác thực trên diện rộng. Mục tiêu bao gồm các loại bí mật phục vụ truy cập vào dịch vụ đám mây, công cụ CI/CD và hạ tầng triển khai. Đây là hành vi cốt lõi tạo ra rò rỉ dữ liệu nhạy cảm và mở đường cho hệ thống bị xâm nhập sâu hơn.
Không có danh sách IOC đầy đủ trong nguồn, nhưng các dấu hiệu kỹ thuật quan trọng đã được mô tả rõ ràng. Với đội vận hành, các chỉ báo này đủ để ưu tiên rà soát nhật ký truy cập và lịch sử phát hành gói.
IOC cần chú ý
- Package: durabletask
- Phiên bản bị ảnh hưởng: v1.4.1, v1.4.2, v1.4.3
- Payload: rope.pyz
- Payload liên quan trước đó: transformers.pyz
- Hệ điều hành mục tiêu: Linux
- Entry point bị chèn: task.py, entities/__init__.py, extensions/__init__.py, payload/__init__.py
- C2: check.git-service.com
- Domain dự phòng: t.m-kosche.com
- Cơ chế di chuyển ngang: AWS SSM, Kubernetes lateral movement
Cơ chế lan truyền và hạ tầng điều khiển
Worm này không dừng ở bước đánh cắp secrets mà còn tự lan truyền qua AWS SSM và Kubernetes lateral movement. Theo mô tả, nó có thể mở rộng sang tối đa 5 mục tiêu bổ sung từ mỗi host đã bị nhiễm. Điều này làm tăng nguy cơ xâm nhập trái phép trên nhiều cụm dịch vụ cùng lúc.
Hạ tầng C2 đã chuyển từ IP thô sang server dùng domain, cụ thể là check.git-service.com với domain dự phòng t.m-kosche.com. Việc kích hoạt SSL verification cho thấy hạ tầng đã được hoàn thiện hơn so với các biến thể trước.
Tác động kỹ thuật đối với hệ thống
Tác động trực tiếp của vụ tin bảo mật mới nhất này là làm lộ token phát hành, secret CI/CD, thông tin truy cập cloud và khả năng bị dùng làm bàn đạp cho các tấn công mạng tiếp theo. Khi một package phổ biến bị thay thế bằng mã độc, rủi ro không chỉ nằm ở môi trường xây dựng mà còn lan sang hệ thống triển khai và các tài nguyên liên kết.
Với các tổ chức đang dùng Python packages từ PyPI, sự cố này là lời nhắc về việc kiểm tra lại an toàn mạng cho pipeline, bao gồm kiểm soát token, giới hạn quyền repository và xác thực tính toàn vẹn gói trước khi deploy.
Kiểm tra và phản ứng sự cố
Các đội bảo mật nên rà soát lịch sử cài đặt và lockfile để xác định hệ thống có tải durabletask ở các phiên bản bị ảnh hưởng hay không. Đồng thời, cần kiểm tra dấu vết liên quan đến PyPI publishing token, GitHub Secrets và các kết nối bất thường từ Linux systems.
Nếu phát hiện dấu hiệu xâm nhập, cần xoay vòng secrets, thu hồi token, kiểm tra quyền truy cập repository và xem xét toàn bộ pipeline CI/CD đã từng sử dụng package bị thay đổi. Đối với môi trường cloud, cần đối chiếu hoạt động bất thường từ AWS SSM và các workload trong Kubernetes để phát hiện phát hiện xâm nhập sớm.
CLI tham chiếu để kiểm tra phiên bản
pip show durabletask
pip freeze | grep durabletask
Trong môi trường build, nên kiểm tra lại artifact đã triển khai và so sánh checksum với nguồn hợp lệ trước khi tiếp tục các bước phát hành. Việc này giúp giảm nguy cơ cập nhật bản vá sai nguồn hoặc cài đặt nhầm package đã bị nhiễm độc.










