Bảo mật chuỗi cung ứng mã nguồn mở trên GitHub: Hướng dẫn ngăn chặn đánh cắp bí mật
Các cuộc tấn công mới vào mã nguồn mở đang tập trung vào việc lấy cắp bí mật như khóa API. Bài viết này đề xuất các bước phòng ngừa ngay lập tức cho GitHub Actions và tổng hợp các khả năng bảo mật mà GitHub đang phát triển.

Trong năm qua, một mô hình tấn công mới đã xuất hiện nhắm vào chuỗi cung ứng mã nguồn mở. Những kẻ tấn công đang tập trung vào việc lấy cắp các bí mật (như khóa API) để vừa phát hành các gói độc hại từ máy bị kiểm soát, vừa truy cập vào nhiều dự án khác nhằm lan rộng cuộc tấn công.
Những cuộc tấn công này thường bắt đầu bằng cách xâm nhập vào một workflow trên GitHub Actions. Hãy cùng xem bạn có thể làm gì ngay hôm nay để bảo mật các workflow của mình, những nỗ lực mà GitHub đã thực hiện để bảo vệ mã nguồn mở, và những gì chúng ta có thể mong đợi trong những tháng tới.
Bảo mật chuỗi cung ứng GitHub
Các hành động bạn có thể thực hiện ngay hôm nay
Nhiều cuộc tấn công bắt đầu bằng cách tìm kiếm các lỗ hổng trong workflow GitHub Actions. Hành động quan trọng nhất bạn có thể làm là kích hoạt CodeQL để xem xét việc triển khai workflow của mình (miễn phí trên các kho lưu trữ công cộng) để kiểm tra các thực hành bảo mật tốt nhất.
Tiếp theo, hãy xem lại hướng dẫn bảo mật chi tiết về Actions của GitHub. Đặc biệt lưu ý:
- Không kích hoạt workflow trên sự kiện
pull_request_target. - Cố định các Action bên thứ ba vào commit SHA đầy đủ.
- Việc cố định này nên do bạn hoặc Dependabot thực hiện; hãy cảnh giác với các pull request từ bên ngoài cố gắng cập nhật nội dung này.
- Cảnh giác với việc tiêm script (script injection) khi tham chiếu đến nội dung do người dùng gửi.
Khi một cuộc tấn công xảy ra, GitHub sẽ công bố thông tin về các phụ thuộc bị xâm phạm trong Cơ sở dữ liệu Tư vấn (Advisory Database). Bạn có thể nhận thông tin cập nhật trực tiếp từ cơ sở dữ liệu này hoặc sử dụng các công cụ như Dependabot (cũng miễn phí cho các kho lưu trữ công cộng) để nhận thông báo khi bạn có các phụ thuộc độc hại hoặc bị lỗi.
Những gì GitHub đã thực hiện
Các cuộc tấn công này tuân theo một khuôn mẫu: chúng tập trung vào việc lấy cắp bí mật để phát hành các gói độc hại, đồng thời sử dụng các gói độc hại đó để truy cập nhiều dự án hơn nhằm lan truyền cuộc tấn công.
Thay vì sử dụng bí mật trong các workflow, giờ đây bạn có thể sử dụng token OpenID Connect chứa danh tính workload của workflow để ủy quyền các hoạt động. GitHub đã làm việc với nhiều hệ thống để tích hợp theo cách này với Actions, bao gồm các nhà cung cấp đám mây, kho lưu trữ gói và các dịch vụ được lưu trữ khác.
Cụ thể, GitHub hợp tác với OpenSSF để hỗ trợ khả năng bảo mật này, được gọi là "Trusted Publishing" (Xuất bản đáng tin cậy), trong các kho lưu trữ gói. Hiện tính năng này đã được hỗ trợ trên npm, PyPI, NuGet, RubyGems, Crates và các kho khác. Không chỉ loại bỏ bí mật khỏi quy trình xây dựng, "Trusted Publishing" còn cung cấp một tín hiệu quý giá khi một gói mới được xuất bản ngừng sử dụng tính năng này: cộng đồng sẽ sử dụng tín hiệu này để điều tra xem gói đó có phải đến từ kẻ tấn công sử dụng thông tin đăng nhập bị đánh cắp hay không.
npm là kho lưu trữ gói lớn nhất thế giới, với hơn 30.000 gói được xuất bản mỗi ngày. GitHub quét mọi phiên bản gói npm để tìm phần mềm độc hại (malware), và khả năng phát hiện của họ không ngừng được cập nhật và cải thiện khi các cuộc tấn công phát triển. Hàng trăm gói mới được xuất bản hàng ngày chứa mã độc, do đó khi phát hiện, một con người sẽ xem xét để xác nhận đó là dương tính giả trước khi hành động. Quy mô này rất lớn, thậm chí tỷ lệ dương tính giả 1% cũng làm gián đoạn hàng trăm lần xuất bản hợp pháp mỗi ngày.
Điều gì sẽ xảy ra trong những tháng tới?
Vào cuối năm 2025, các cuộc tấn công Shai-Hulud đã thúc đẩy lộ trình bảo mật được thiết kế lại cho npm, điều mà GitHub đã đề cập trong các kế hoạch trước đó. Để đáp lại Shai-Hulud, GitHub đã đẩy nhanh việc triển khai các khả năng như "Trusted Publishing" cho npm, tiếp tục công việc phát hiện và loại bỏ phần mềm độc hại, và trao đổi với những người duy trì mã nguồn mở về các khả năng bảo mật npm sẽ có tác động tích cực nhất. Ngay cả khi cộng đồng đồng ý rằng một thay đổi phải được thực hiện, những thay đổi đó có nghĩa là mọi người cần thay đổi quy trình làm việc của họ, hoặc tệ hơn, gây ra không tương thích ngược. GitHub đang nỗ lực để cung cấp quá trình chuyển đổi càng mượt mà càng tốt.
Tương tự, với vòng tấn công gần nhất, GitHub đang xem xét lại lộ trình bảo mật cho GitHub Actions và đẩy nhanh các khả năng bảo mật cho Actions tại các nơi công việc đang được thực hiện. Bạn có thể đưa ra phản hồi về lộ trình bảo mật GitHub Actions trong bài đăng thảo luận cộng đồng.
Kết luận
Mã nguồn mở là một lợi ích công cộng toàn cầu và là một trong những dự án hợp tác vĩ đại nhất của nhân loại. Chúng ta chưa thấy sự kết thúc của các cuộc tấn công vào mã nguồn mở, nhưng GitHub cam kết bảo vệ nó trên npm, Actions, hoặc bất cứ điều gì sẽ xuất hiện tiếp theo. Khi làm việc để triển khai các khả năng bảo mật này, GitHub rất mong nhận được phản hồi của bạn về những gì quan trọng nhất và cách chúng ta quản lý quá trình chuyển đổi sang một tương lai an toàn hơn.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
