Chiến dịch tấn công GitHub: 4.837 tài khoản bị chiếm đoạt để phát tán mã độc
Các nhà nghiên cứu bảo mật vừa phát hiện một chiến dịch tấn công quy mô lớn nhắm vào GitHub, sử dụng tài khoản bị chiếm đoạt để tiêm mã độc đánh cắp thông tin CI/CD.

- Quy mô tấn công: 4.837 tài khoản GitHub bị chiếm đoạt, ảnh hưởng đến 61.764 kho lưu trữ (repositories).
- Mục tiêu chính: Đánh cắp các bí mật (secrets), khóa đám mây (cloud keys) và thông tin xác thực trong GitHub Actions.
- Kỹ thuật khai thác: Sử dụng các pull request giả mạo để tiêm mã độc "wfx" vào quy trình CI/CD, sau đó tự động xóa dấu vết.
- Khuyến nghị: Kiểm tra ngay các commit lạ, xoay vòng toàn bộ secrets và cloud credentials nếu phát hiện dấu hiệu xâm nhập.
Một chiến dịch tấn công mạng tinh vi đã được các nhà nghiên cứu bảo mật phát hiện, trong đó các tác nhân đe dọa sử dụng thông tin xác thực GitHub bị đánh cắp để đẩy mã độc đánh cắp thông tin (secret-stealing payload) vào hàng chục nghìn kho lưu trữ mã nguồn. Hoạt động này bắt đầu từ ngày 10 tháng 11 năm 2026, nhắm trực tiếp vào GitHub Actions – công cụ cốt lõi trong quy trình CI/CD của nhiều đội ngũ phát triển phần mềm.
Phân tích chuỗi tấn công và kỹ thuật khai thác
Kẻ tấn công sử dụng các token GitHub bị đánh cắp để thực hiện quyền ghi (write access) trên mọi kho lưu trữ mà token đó có quyền truy cập. Bước đầu tiên của cuộc tấn công là thăm dò (probing). Kẻ tấn công mở một pull request với tiêu đề "docs: dependency audit notes" từ một nhánh có tên wfx-docs. Hành động này nhằm xác nhận tài khoản có quyền ghi trước khi triển khai payload thực sự.
Theo dữ liệu từ các nhà nghiên cứu, có khoảng 61.839 pull request dạng này đã được mở chỉ trong hai ngày 10 và 11 tháng 11. Đáng chú ý, khoảng 92% các pull request này vẫn đang mở, cho thấy phần lớn chủ sở hữu kho lưu trữ chưa phát hiện ra sự bất thường. Sau khi thăm dò, kẻ tấn công triển khai payload theo ba phương thức chính:
- Tiêm trực tiếp: Thêm khoảng 1.500 dòng mã vào tệp workflow hiện có.
- Script ẩn: Thêm một script ẩn và hook
postinstallvàopackage.json, kích hoạt khi thực hiện lệnhnpm install. - Nhánh mới: Tạo một nhánh tạm thời chứa tệp workflow độc hại.
Sau khi hoàn tất, kẻ tấn công thực hiện dọn dẹp bằng cách hoàn tác thay đổi trong vòng một phút và xóa lịch sử chạy workflow. Dấu vết duy nhất còn sót lại thường là một số thứ tự (run number) bị thiếu trong lịch sử workflow.
Phân tích mã độc "wfx" và cơ chế đánh cắp dữ liệu
Payload được xác định là một shell script dài khoảng 1.500 dòng, được kẻ tấn công đặt tên là "wfx". Mã độc này hoạt động qua bốn giai đoạn: thu thập, leo thang đặc quyền, duy trì sự hiện diện và exfiltration (trích xuất dữ liệu). Nó nhắm vào các thông tin nhạy cảm bao gồm:
- GitHub Actions secrets và các runtime tokens.
- Tệp tin cấu hình thông tin xác thực đám mây (AWS, Google Cloud, Azure).
- Lịch sử lệnh shell (shell histories).
- Khóa API của các dịch vụ AI như OpenAI, Anthropic và Hugging Face.
- Token được trích xuất từ bộ nhớ của các tiến trình đang chạy.
⚠️ Cảnh báo quan trọng: Nếu payload đã thực thi, hãy mặc định rằng mọi bí mật và vai trò đám mây (cloud roles) có sẵn cho workflow đó đã bị lộ. Cần thực hiện xoay vòng (rotate) toàn bộ các thông tin xác thực này ngay lập tức.
Bảng tổng hợp các chỉ số IOCs
| Loại thực thể | Giá trị / Chỉ số | Mô tả tác động |
|---|---|---|
| Packagist package | digitalelvis/neuronai-studio 3.14.3 | Phiên bản độc hại |
| Go module | github.com/onuragtas/docker-env v1.0.278, v1.0.280 | Chứa payload trong tệp workflow |
| Network | 194.150.166[.]244:8080 (/exfil) | Máy chủ trích xuất dữ liệu |
| Network | 18.143.168[.]96:8080 (/exfil) | Máy chủ trích xuất dữ liệu |
| SHA-256 | 89695abb392d5cfd4972672961e644bb46baa98aa1ed7173c2a2816c762735cf | Script đánh cắp thông tin |
Hướng dẫn phòng thủ và giảm thiểu rủi ro
Để đối phó với chiến dịch này, các đội ngũ bảo mật và DevOps cần thực hiện các biện pháp hardening hệ thống ngay lập tức. Tham khảo thêm các hướng dẫn từ CISA về bảo mật chuỗi cung ứng phần mềm để có cái nhìn tổng quan hơn.
- Kiểm tra audit logs: Rà soát các thay đổi trong chính sách tin cậy (trust policies) của AWS và các thông tin xác thực liên kết (federated credentials) trong Azure.
- Hạn chế quyền hạn: Áp dụng nguyên tắc đặc quyền tối thiểu cho các workflow, giới hạn quyền truy cập vào các secrets nhạy cảm.
- Giám sát lưu lượng: Theo dõi lưu lượng outbound từ các runner để phát hiện các kết nối bất thường đến các máy chủ C2.
- Xác thực mạnh: Bắt buộc sử dụng phương thức đăng nhập chống phishing (phishing-resistant MFA) cho tất cả các tài khoản có quyền truy cập vào kho lưu trữ mã nguồn.
Việc phát hiện sớm các dấu hiệu như tiêu đề pull request lạ hoặc các commit message như ci: refresh build cache hay chore: add ci helper là chìa khóa để ngăn chặn sự lây lan của mã độc này trong môi trường phát triển.
Mạng Lưới An Ninh Mạng & Cộng Đồng
Nhận cảnh báo 0-Day khẩn cấp, phân tích mã độc và tham gia thảo luận kỹ thuật cùng chuyên gia.
Ban biên tập nội dung và phân tích an ninh mạng tại ADSECVN.COM.



