DevOps & giám sát

Chiến dịch GhostAction chèn các quy trình đánh cắp thông tin đăng nhập vào hàng nghìn kho lưu trữ GitHub

Tin tặc đã xâm chiếm tài khoản của những người bảo trì nổi tiếng để đẩy các GitHub Actions độc hại, nhằm đánh cắp bí mật (secrets) từ kho lưu trữ và lịch sử git.

Hình minh họa một pipeline CI/CD đang được kiểm tra để tìm các mối đe dọa bảo mật ẩn
Ảnh minh họa tạo riêng cho bài viết

Bài được dịch tự động từ bản gốc tiếng Anh.

Một cuộc tấn công chuỗi cung ứng quy mô lớn mang tên GhostAction đã xâm chiếm hàng trăm tài khoản GitHub, chèn các quy trình tích hợp liên tục (CI) độc hại vào hàng chục nghìn kho lưu trữ. Chiến dịch này leo thang đáng kể vào đầu tháng 10 năm 2026, nhắm mục tiêu vào thông tin đăng nhập của nhà phát triển bằng cách giả mạo các cuộc kiểm toán bảo mật thường lệ trong các dự án mã nguồn mở phổ biến.

Điều gì đã xảy ra

Các nhà nghiên cứu an ninh mạng xác định rằng tin tặc đã truy cập được vào tài khoản của hai người bảo trì mã nguồn mở nổi bật: Takashi Kitao, người tạo ra engine trò chơi pyxel, và Henry Wu, tác giả của athenadriver thuộc Uber. Sử dụng danh tính đáng tin cậy này, các nhóm đe dọa đã đẩy một tệp quy trình độc hại có tên là "security-audit.yml" hoặc "github_actions_security.yml" vào các nhánh mặc định của hàng trăm kho lưu trữ. Việc chèn mã diễn ra rất nhanh chóng, với 318 kho lưu trữ bị ảnh hưởng chỉ trong khoảng thời gian 16 phút vào ngày 7 tháng 10 năm 2026.

Quy trình độc hại được thiết kế để kích hoạt khi có bất kỳ lần push nào hoặc dispatch thủ công. Sau khi kích hoạt, nó thực hiện quét sâu kho lưu trữ, không chỉ kiểm tra cây làm việc (working tree) hiện tại mà còn toàn bộ lịch sử git để tìm dữ liệu nhạy cảm. Cụ thể, nó tìm kiếm mười ba mẫu liên quan đến các nhà cung cấp đám mây, dịch vụ AI và kho đăng ký gói (package registries). Thông tin đăng nhập thu thập được sau đó được gửi qua HTTP không mã hóa tới địa chỉ IP do tin tặc kiểm soát, 193.32.204.199. Phương pháp này cho phép tin tặc thu thập các bí mật có thể đã được commit trong quá khứ và sau đó bị xóa khỏi mã nguồn hiện tại.

Tính đến ngày 9 tháng 10 năm 2026, công ty bảo mật Socket báo cáo rằng hơn 500 tài khoản GitHub đã commit quy trình độc hại này kể từ ngày 7 tháng 10. Chiến dịch đã ảnh hưởng đến 817 kho lưu trữ thuộc 327 người dùng, dẫn đến việc đánh cắp 3.325 bí mật. Các thông tin đăng nhập bị đánh cắp bao gồm token cho PyPI, npm, DockerHub, AWS, Anthropic, OpenAI và nhiều nền tảng SaaS khác. Trong một số trường hợp, chẳng hạn như kho lưu trữ "kuafuai/DevOpsGPT", tin tặc cũng nhúng phần mềm đào tiền mã hóa vào các hình ảnh Docker.

Chi tiết chính

  • Vector tấn công: Tài khoản của những người bảo trì bị xâm chiếm đã được sử dụng để chèn trực tiếp các quy trình GitHub Actions độc hại vào các kho lưu trữ.
  • Tệp độc hại: Payload được đặt tên là "security-audit.yml" hoặc "github_actions_security.yml" và kích hoạt khi push không lọc hoặc dispatch thủ công.
  • Đánh cắp dữ liệu: Quy trình quét cây làm việc và toàn bộ lịch sử git để tìm 13 mẫu thông tin đăng nhập cụ thể, gửi kết quả tới 193.32.204.199 qua HTTP không mã hóa.
  • Quy mô: Hơn 500 tài khoản GitHub bị liên lụy, ảnh hưởng đến hàng chục nghìn kho lưu trữ và làm lộ 3.325 bí mật cho đến nay.
  • Rủi ro từ fork: Các bản fork downstream, đặc biệt là bản riêng tư, thừa hưởng quy trình độc hại và vẫn gặp rủi ro nếu GitHub Actions được kích hoạt.
  • Bí mật bị nhắm mục tiêu: Dữ liệu bị đánh cắp bao gồm khóa AWS, API key của nhà cung cấp AI, token DockerHub và khóa riêng SSH.

Bối cảnh

GitHub Actions là nền tảng tích hợp liên tục và triển khai liên tục (CI/CD), cho phép nhà phát triển tự động hóa các quy trình phần mềm trực tiếp trong kho lưu trữ của họ. Các quy trình này có thể truy cập vào "secrets", tức là các biến môi trường được mã hóa lưu trong cài đặt kho lưu trữ. Thông thường, các secrets này bao gồm API key, mật khẩu cơ sở dữ liệu và token xác thực cần thiết để xây dựng và triển khai phần mềm. Mặc dù GitHub mã hóa các secrets này khi lưu trữ, chúng sẽ được giải mã và cung cấp cho runtime của quy trình trong quá trình thực thi.

Các cuộc tấn công chuỗi cung ứng như GhostAction khai thác sự tin tưởng vốn có trong hệ sinh thái mã nguồn mở. Khi tài khoản của một người bảo trì nổi tiếng bị xâm chiếm, đóng góp của họ được ngầm tin tưởng bởi người dùng downstream và các hệ thống tự động. Bằng cách chèn một quy trình trông giống như một công cụ bảo mật hợp pháp, tin tặc có thể vượt qua sự nghi ngờ. Việc sử dụng fetch-depth: 0 trong quy trình độc hại đảm bảo rằng toàn bộ lịch sử của kho lưu trữ được tải xuống, cho phép script tìm thấy các bí mật đã bị loại bỏ khỏi các commit gần đây nhưng vẫn tồn tại trong các phiên bản cũ của mã nguồn.

Tại sao điều này quan trọng

Đối với các đội ngũ tự host phần mềm hoặc quản lý pipeline CI/CD riêng, sự cố này làm nổi bật sự mong manh của các chuỗi phụ thuộc. Ngay cả khi hạ tầng nội bộ của bạn an toàn, việc dựa vào các thành phần mã nguồn mở bên ngoài vẫn gây ra rủi ro. Nếu một thư viện bạn phụ thuộc vào bị xâm chiếm, các quy trình độc hại của nó có thể thực thi trong môi trường của bạn nếu bạn fork kho lưu trữ hoặc sử dụng theo cách kích hoạt Actions. Việc lộ API key của nhà cung cấp AI đặc biệt đáng lo ngại, vì chúng có thể dẫn đến tổn thất tài chính đáng kể do sử dụng API trái phép.

Hơn nữa, cuộc tấn công chứng minh rằng việc xóa một secret khỏi mã nguồn hiện tại là không đủ để bảo vệ nó. Vì quy trình độc hại quét toàn bộ lịch sử git, bất kỳ thông tin đăng nhập nào từng được commit vào kho lưu trữ đều dễ bị tổn thương. Điều này có nghĩa là vệ sinh lịch sử (historical hygiene) cũng quan trọng như các biện pháp bảo mật hiện hành. Đối với trưởng nhóm IT và kỹ sư DevOps, điều này đòi hỏi phải xem xét không chỉ các phụ thuộc đang hoạt động, mà còn tính toàn vẹn lịch sử của các kho lưu trữ mà họ tương tác.

Bạn có thể làm gì

  • Quét tìm quy trình độc hại: Kiểm tra tất cả các kho lưu trữ để tìm các tệp có tên "security-audit.yml" hoặc "github_actions_security.yml" được thêm kể từ ngày 31 tháng 8 năm 2026.
  • Thu hồi và xoay vòng thông tin đăng nhập: Nếu bạn tìm thấy quy trình độc hại, hãy giả định rằng đã bị xâm chiếm. Ngay lập tức thu hồi tất cả token GitHub, khóa AWS và API secret liên quan đến các kho lưu trữ bị ảnh hưởng.
  • Kiểm toán lịch sử git: Sử dụng các công cụ để quét toàn bộ lịch sử git của bạn nhằm tìm các secret bị commit vô tình, không chỉ ở head commit hiện tại.
  • Xem xét các kho lưu trữ đã fork: Nếu bạn đã fork bất kỳ kho lưu trữ nào bị ảnh hưởng, hãy kiểm tra chúng để tìm quy trình độc hại và tắt GitHub Actions cho đến khi chúng được làm sạch.
  • Kích hoạt bảo vệ nhánh: Hạn chế quyền push tệp quy trình vào các nhánh mặc định của bạn để ngăn chặn các sửa đổi trái phép.
  • Giám sát lưu lượng outbound: Cấu hình chính sách mạng để phát hiện các yêu cầu HTTP outbound bất thường từ runner CI/CD của bạn tới các địa chỉ IP không xác định.

Tin khác

Tất cả tin