-
09/04/2020
-
114
-
1.118 bài viết
Chiến dịch cài mã độc vào GitHub Actions để đánh cắp token PyPI
Một chiến dịch tấn công chuỗi cung ứng phần mềm tinh vi vừa được phát hiện, nhắm trực diện vào GitHub Actions – nền tảng CI/CD phổ biến bậc nhất hiện nay. Nhóm nghiên cứu GitGuardian đặt tên chiến dịch là GhostAction và cho biết đây là một trong những vụ tấn công có quy mô lớn nhất từng được ghi nhận.
Theo báo cáo, ít nhất 817 repository thuộc 327 tài khoản đã bị xâm nhập, với tổng cộng 3.325 secrets bị đánh cắp. Những secrets bị lộ không chỉ dừng lại ở PyPI token mà còn bao gồm npm token, DockerHub credentials, AWS keys, Cloudflare API key và GitHub personal access token, phản ánh phạm vi tấn công đặc biệt rộng và nguy hiểm.
Kẻ tấn công không tạo file độc hại mới mà chỉnh sửa trực tiếp các workflow YAML trong thư mục .github/workflows, chèn thêm một step thực thi script. Workflow bị cấy thường có tên “Github Actions Security” và được trigger bởi sự kiện push hoặc workflow_dispatch, khiến thay đổi khó bị phát hiện nếu dự án không bật quy trình review bắt buộc.
Đoạn mã độc được thêm dưới dạng một shell script step rất ngắn gọn. Khi workflow được kích hoạt, script sẽ đọc toàn bộ biến môi trường chứa secrets, trong đó có pypi_token, rồi dùng curl gửi dữ liệu qua HTTP POST tới một domain do kẻ tấn công kiểm soát. Domain nhận dữ liệu được xác định là ghostaction[.]net, với một số IP cụ thể đã được chia sẻ cho cộng đồng để rà soát. Cách tấn công này không cần payload phức tạp, dễ bị nhầm với tác vụ build hợp pháp, nhưng hậu quả rất nghiêm trọng vì secrets bị lộ có thể được dùng để xuất bản gói độc hại, chiếm quyền kiểm soát package hoặc xâm nhập hạ tầng CI/CD.
Hoạt động đầu tiên được phát hiện ngày 5/9 trong dự án fastuuid. Ngay sau đó, GitGuardian gửi báo cáo cho đội an ninh PyPI, mở ra cuộc điều tra diện rộng. Các nhà phân tích nhanh chóng tìm thấy thêm hàng trăm repository khác bị cấy cùng đoạn mã độc, xác nhận đây là một chiến dịch có tổ chức. Đến ngày 12/9, PyPI và GitHub đã phối hợp để vô hiệu hóa domain exfiltration, cảnh báo các maintainer và khuyến nghị quay vòng token. Ngày 15/9, PyPI chính thức thu hồi toàn bộ token bị lộ, gửi thông báo trực tiếp đến các dự án và tạm thời khóa một số repository ở trạng thái read-only để ngăn lây lan.
Song song với việc xử lý sự cố, GitGuardian công bố Indicators of Compromise (IoC) bao gồm: tên file workflow bị sửa, hash của commit chứa mã độc, địa chỉ IP và domain exfiltration, giúp cộng đồng rà quét diện rộng. Nhiều maintainer đã nhanh chóng revert commit độc hại, force-push để xóa lịch sử bị nhiễm và rotate toàn bộ secrets.
Vụ việc lần này cho thấy việc lưu trữ token dài hạn trong GitHub Secrets tiềm ẩn nhiều rủi ro nếu không có lớp bảo vệ bổ sung. Chỉ một thay đổi nhỏ trong file workflow cũng đủ để secrets bị lộ mà không ai hay biết. Để giảm thiểu nguy cơ, cộng đồng bảo mật khuyến nghị các dự án nên chuyển sang cơ chế Trusted Publishers, nơi token được sinh ra ngắn hạn ngay trong thời gian chạy và chỉ có hiệu lực trong phạm vi repository cụ thể. Bên cạnh đó, việc bật bảo vệ nhánh, yêu cầu review bắt buộc cho mọi chỉnh sửa trong thư mục .github/workflows, giới hạn quyền của GitHub Token ở mức tối thiểu và theo dõi lưu lượng kết nối ra ngoài sẽ giúp phát hiện sớm những bất thường trong pipeline.
Theo báo cáo, ít nhất 817 repository thuộc 327 tài khoản đã bị xâm nhập, với tổng cộng 3.325 secrets bị đánh cắp. Những secrets bị lộ không chỉ dừng lại ở PyPI token mà còn bao gồm npm token, DockerHub credentials, AWS keys, Cloudflare API key và GitHub personal access token, phản ánh phạm vi tấn công đặc biệt rộng và nguy hiểm.
Kẻ tấn công không tạo file độc hại mới mà chỉnh sửa trực tiếp các workflow YAML trong thư mục .github/workflows, chèn thêm một step thực thi script. Workflow bị cấy thường có tên “Github Actions Security” và được trigger bởi sự kiện push hoặc workflow_dispatch, khiến thay đổi khó bị phát hiện nếu dự án không bật quy trình review bắt buộc.
Đoạn mã độc được thêm dưới dạng một shell script step rất ngắn gọn. Khi workflow được kích hoạt, script sẽ đọc toàn bộ biến môi trường chứa secrets, trong đó có pypi_token, rồi dùng curl gửi dữ liệu qua HTTP POST tới một domain do kẻ tấn công kiểm soát. Domain nhận dữ liệu được xác định là ghostaction[.]net, với một số IP cụ thể đã được chia sẻ cho cộng đồng để rà soát. Cách tấn công này không cần payload phức tạp, dễ bị nhầm với tác vụ build hợp pháp, nhưng hậu quả rất nghiêm trọng vì secrets bị lộ có thể được dùng để xuất bản gói độc hại, chiếm quyền kiểm soát package hoặc xâm nhập hạ tầng CI/CD.
Hoạt động đầu tiên được phát hiện ngày 5/9 trong dự án fastuuid. Ngay sau đó, GitGuardian gửi báo cáo cho đội an ninh PyPI, mở ra cuộc điều tra diện rộng. Các nhà phân tích nhanh chóng tìm thấy thêm hàng trăm repository khác bị cấy cùng đoạn mã độc, xác nhận đây là một chiến dịch có tổ chức. Đến ngày 12/9, PyPI và GitHub đã phối hợp để vô hiệu hóa domain exfiltration, cảnh báo các maintainer và khuyến nghị quay vòng token. Ngày 15/9, PyPI chính thức thu hồi toàn bộ token bị lộ, gửi thông báo trực tiếp đến các dự án và tạm thời khóa một số repository ở trạng thái read-only để ngăn lây lan.
Song song với việc xử lý sự cố, GitGuardian công bố Indicators of Compromise (IoC) bao gồm: tên file workflow bị sửa, hash của commit chứa mã độc, địa chỉ IP và domain exfiltration, giúp cộng đồng rà quét diện rộng. Nhiều maintainer đã nhanh chóng revert commit độc hại, force-push để xóa lịch sử bị nhiễm và rotate toàn bộ secrets.
Vụ việc lần này cho thấy việc lưu trữ token dài hạn trong GitHub Secrets tiềm ẩn nhiều rủi ro nếu không có lớp bảo vệ bổ sung. Chỉ một thay đổi nhỏ trong file workflow cũng đủ để secrets bị lộ mà không ai hay biết. Để giảm thiểu nguy cơ, cộng đồng bảo mật khuyến nghị các dự án nên chuyển sang cơ chế Trusted Publishers, nơi token được sinh ra ngắn hạn ngay trong thời gian chạy và chỉ có hiệu lực trong phạm vi repository cụ thể. Bên cạnh đó, việc bật bảo vệ nhánh, yêu cầu review bắt buộc cho mọi chỉnh sửa trong thư mục .github/workflows, giới hạn quyền của GitHub Token ở mức tối thiểu và theo dõi lưu lượng kết nối ra ngoài sẽ giúp phát hiện sớm những bất thường trong pipeline.
Theo Cyber Security News