bảo mật npm dưới áp lực: các cuộc tấn công có thể bị tấn công, lừa đảo người bảo trì và các quy tắc chặt chẽ hơn của GitHub

Cập nhật lần cuối: 09/23/2025
  • Các cuộc tấn công chuỗi cung ứng npm chủ động lợi dụng lừa đảo và chiếm đoạt tài khoản người bảo trì để phát hành các bản phát hành trojan.
  • Phần mềm độc hại "Shai-Hulud" tự lây lan đã đánh cắp bí mật và phát tán lại các gói tin bị xâm phạm trên quy mô lớn.
  • GitHub đang áp dụng các biện pháp kiểm soát chặt chẽ hơn: 2FA cho việc xuất bản cục bộ, mã thông báo chi tiết có thời hạn ngắn và xuất bản đáng tin cậy.
  • Hướng dẫn về hệ sinh thái nhấn mạnh vào việc luân chuyển mã thông báo, kiểm tra sự phụ thuộc và áp dụng quy trình làm việc được hỗ trợ bởi OIDC và 2FA dựa trên FIDO.

minh họa bảo mật npm

Nguồn mở thúc đẩy sự phát triển hiện đại, nhưng quy mô và tính cởi mở của nó cũng tạo ra một bề mặt tấn công rộng lớn, nơi bảo mật npm phải liên tục phát triển để theo kịp đối thủ.

Trong những tuần gần đây, các nhà nghiên cứu và cơ quan đăng ký đã nêu chi tiết một loạt các sự cố tập trung vào npm kết hợp kỹ thuật xã hội, đánh cắp thông tin đăng nhập và công bố gói độc hại—đạt đến đỉnh điểm là một chiến dịch có khả năng lây lan thông qua quy trình phát hành của chính những người bảo trì đáng tin cậy.

Làn sóng tấn công gần đây vào hệ sinh thái npm

bảo mật sổ đăng ký npm

Nhiều báo cáo mô tả hoạt động lừa đảo có chủ đích nhắm vào những người bảo trì npm, tiếp theo là việc nhanh chóng đưa ra các phiên bản mới mang tải trọng sau khi cài đặt được thực thi trên máy của nhà phát triển và hệ thống CI.

Một chiến dịch, được theo dõi là "Shai-Hulud", đã phát tán một loại sâu nhiều giai đoạn, tìm kiếm các bí mật trong môi trường, lạm dụng API GitHub và cố gắng tự nhân giống bằng cách phát hành các gói tin bị nhiễm độc dưới các tài khoản bị xâm phạm.

Các nhóm bảo mật và cơ quan đăng ký đã phản ứng nhanh chóng: GitHub đã xóa hàng trăm gói bị ảnh hưởng và thêm các khối liên quan đến các chỉ báo xâm phạm phần mềm độc hại, các bước ngăn chặn sự lây lan thêm trên toàn bộ sổ đăng ký.

Các cuộc điều tra riêng biệt đã liên kết các chiến thuật này với các sự cố trước đó (bao gồm cả vụ trộm quy trình làm việc “S1ngularity”/Nx và làn sóng cập nhật các gói phổ biến), làm nổi bật sự leo thang rõ ràng từ hành vi trộm thông tin đăng nhập riêng lẻ sang chuỗi cung ứng tự động lạm dụng.

  • Các gói đáng tin cậy đã được cập nhật bằng các tập lệnh sau khi cài đặt được thiết kế để thu thập mã thông báo và lọc dữ liệu.
  • Các tài khoản bị xâm phạm đã công bố các phiên bản mới, làm tăng rủi ro trên nhiều dự án và phụ thuộc hạ lưu.

Lộ trình của GitHub nhằm tăng cường xuất bản npm

tăng cường bảo mật gói hàng

Để hạn chế việc lạm dụng mã thông báo và ngăn chặn phần mềm độc hại có thể xâm nhập, GitHub đã phác thảo những thay đổi nhằm thu hẹp phạm vi tấn công xuất bản và nâng cao tiêu chuẩn xác thực người bảo trì.

  • Xuất bản địa phương sẽ yêu cầu xác thực hai yếu tố (2FA), không có tùy chọn bỏ qua.
  • Mã thông báo chi tiết được sử dụng để xuất bản sẽ có tuổi thọ tối đa là bảy ngày.
  • Các mã thông báo cổ điển cũ sẽ bị loại bỏ và xuất bản thông qua mã thông báo sẽ bị từ chối theo mặc định.
  • 2FA dựa trên TOTP sẽ dần bị loại bỏ để chuyển sang FIDO/WebAuthn phương pháp.
  • Xuất bản đáng tin cậy sẽ được mở rộng, với nhiều đối tượng đủ điều kiện hơn Nhà cung cấp CI/CD.

Các biện pháp này sẽ được giới thiệu dần dần, với tài liệu hỗ trợ và di chuyển để giúp người bảo trì điều chỉnh quy trình làm việc an toàn trong khi giảm thiểu sự gián đoạn; tham khảo ý kiến ​​el tác động của GitHub Copilot và cuộc giải thích để tham gia vào những cambios và cảm cúm.

Chiến dịch Shai-Hulud hoạt động như thế nào

Những kẻ đe dọa thường bắt đầu bằng cách giả mạo npm hoặc các dịch vụ liên quan để lừa đảo người bảo trì, sau đó sử dụng thông tin đăng nhập bị đánh cắp để xuất bản bản cập nhật chạy phần mềm độc hại sau khi cài đặt sự nối tiếp.

Sau khi được thực thi, tải trọng sẽ liệt kê các biến môi trường cục bộ, tệp cấu hình, cài đặt npm và khóa đám mây; nó cũng lạm dụng API GitHub để liệt kê các kho lưu trữ có thể truy cập, tạo các nhánh và xóa quy trình làm việc độc hại tự động thu thập và lưu giữ bí mật.

Các nhà điều tra đã quan sát thấy việc sử dụng các tiện ích quét bí mật (ví dụ: TruffleHog) để mở rộng mạng lưới thông tin đăng nhập đã thu thập trước khi xóa dấu vết. Dữ liệu được dàn dựng đến các điểm cuối do kẻ tấn công kiểm soát và, trong một số trường hợp, được đẩy vào một kho lưu trữ công khai mới được tạo có tên “Shai-Hulud” theo tài khoản của nạn nhân.

Đặc điểm nổi bật của sâu này là khả năng tự sao chép: nếu tìm thấy mã thông báo npm, nó sẽ cố gắng xuất bản các gói đã thay đổi, trên thực tế biến đặc quyền của người bảo trì thành một công cụ cho lây lan theo cấp số nhân.

  • Các hành vi chính: lạm dụng sau khi cài đặt, các hoạt động GitHub API tự động và đưa luồng công việc vào kho lưu trữ.
  • Các mối đe dọa bao gồm xâm phạm tài khoản đám mây, trộm cắp IP thông qua các bản sao lưu kho lưu trữ đầy đủ và chuyển động bên trên khắp các tổ chức.

Phạm vi và tác động

Các nhóm nghiên cứu đã lập danh mục hàng trăm bản phát hành bị ảnh hưởng trên nhiều dự án khác nhau, bao gồm các thư viện được sử dụng rộng rãi với hàng triệu lượt tải xuống hàng tuần, tăng bán kính nổ đối với người tiêu dùng không hề nghi ngờ.

Kết quả đo từ xa và phản ứng sự cố cho thấy các tổ chức ở Bắc Mỹ và Châu Âu nằm trong số những tổ chức dễ bị ảnh hưởng nhất bởi các tải trọng liên quan, với rủi ro từ khai thác tiền điện tử và đánh cắp dữ liệu gây gián đoạn trong quá trình xây dựng và triển khai.

Những phát hiện liên quan đến bảo mật npm cần chú ý

Các nhà phân tích cũng đánh dấu fezbox, một gói npm tồn tại trong thời gian ngắn đã nhúng một Tải trọng dựa trên mã QR kỹ thuật truy xuất và thực thi JavaScript để lấy thông tin đăng nhập của trình duyệt từ cookie—một hình thức trốn tránh kỹ thuật ẩn thông tin bất thường.

Trong khi nhiều ứng dụng tránh lưu trữ mật khẩu trong cookie ngày nay, phương pháp này nhấn mạnh tốc độ lặp lại của kẻ tấn công sự che giấu và phân phối trong hệ sinh thái gói.

Xuất bản đáng tin cậy: sự thay đổi rộng rãi hơn trên các cơ quan đăng ký

Xuất bản đáng tin cậy—được khuyến nghị bởi các nhóm bảo mật nguồn mở—thay thế các khóa API tồn tại lâu dài bằng các khóa tồn tại ngắn hạn, Danh tính được OIDC hỗ trợ từ các hệ thống CI, giảm thiểu nguy cơ rò rỉ và phát tán mã thông báo.

Lần đầu tiên được thấy trên PyPI và sau đó được RubyGems, crates.io, npm và NuGet áp dụng, cách tiếp cận này mang lại nguồn gốc mật mã và đảm bảo mạnh mẽ hơn về như thế nào và ở đâu một gói đã được xây dựng.

API
Bài viết liên quan:
Sự phát triển của API: Những bước tiến mới trong tích hợp, bảo mật và AI đại lý

Người bảo trì có thể làm gì bây giờ

Có những bước ngay lập tức mà người bảo trì và nhóm có thể thực hiện để giảm thiểu sự tiếp xúc trong khi triển khai các biện pháp phòng thủ cấp sổ đăng ký và cải thiện tổng thể tư thế an ninh các dự án của họ.

  • Áp dụng xuất bản đáng tin cậy với OIDC và loại bỏ các bản sao lưu lâu dài Mã thông báo API từ CI/CD.
  • Kích hoạt và thực thi FIDO/WebAuthn 2FA dành cho các nhà cung cấp npm, GitHub và CI.
  • Xem lại và khóa lại quyền xuất bản; xóa các mã thông báo và tài khoản không sử dụng.
  • Kiểm toán các phụ thuộc (đặc biệt là các bản cập nhật gần đây) và phiên bản pin để giảm thiểu sự trôi dạt của chuỗi cung ứng.
  • Xoay vòng thông tin xác thực npm, GitHub và đám mây; giả sử bất kỳ bí mật nào hiện diện trên máy phát triển có thể bị lộ.
  • Quét các tệp quy trình làm việc đáng ngờ (ví dụ: .github/workflows/shai-hulud-workflow.yml) và những nhánh bất ngờ.

Các chỉ số và ý tưởng săn bắn

Các nhóm có thể tăng cường phát hiện bằng các chỉ số và truy vấn được chia sẻ, điều chỉnh chúng theo công cụ cục bộ đồng thời tránh nhiễu dương tính giả.

  • Ví dụ SHA-256 được quan sát trong tự nhiên: 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • Đã báo cáo hiện vật Webhook: hxxps://webhooksite/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
  • Theo dõi việc tạo ra các kho lưu trữ công khai có tên “Shai-Hulud” theo tài khoản người đóng góp.
  • Tìm kiếm tập lệnh sau khi cài đặt mô hình thực hiện và sự thay đổi phụ thuộc đột ngột.

Các tín hiệu săn tìm mẫu (điều chỉnh cho nền tảng của bạn): giám sát các kết nối đến miền webhooksite; đánh dấu các lần ghi shai-hulud-workflow.yml; cảnh báo về các dòng lệnh gọi "trufflehog" trong các tác nhân xây dựng; và xem xét các thay đổi kho lưu trữ gần đây giới thiệu Quy trình làm việc CI không có sự chấp thuận.

Điểm nổi bật của dòng thời gian

Cuối tháng 8 chứng kiến ​​một vụ vi phạm có chủ đích liên quan đến lỗ hổng quy trình làm việc đã làm rò rỉ mã thông báo xuất bản và dẫn đến các bản phát hành bị trojan hóa; đầu đến giữa tháng 9 đã xảy ra một cuộc tấn công rộng hơn liên quan đến các gói npm phổ biếnvà sau đó là chiến dịch Shai-Hulud với sự lan truyền như sâu bọ và thu thập bí mật một cách hung hăng.

Trong suốt quá trình, phản ứng phối hợp từ các nhà điều hành sổ đăng ký và nhà cung cấp bảo mật đã xóa các phiên bản bị xâm phạm, chặn các IoC đã biết và đẩy nhanh các kế hoạch để yêu cầu các biện pháp mạnh mẽ hơn xác thực và nguồn gốc để xuất bản npm.

Những sự cố này cho thấy một tác nhân đe dọa có thể nhanh chóng biến lòng tin của người bảo trì thành việc phân phối như thế nào mã độc hạivà lý do tại sao hệ sinh thái đang chuyển sang FIDO 2FA, thông tin xác thực có thời hạn ngắn và bản phát hành được CI chứng thực để ngăn chặn toàn bộ các loại tấn công.

bài viết liên quan: