Shai hulud - gói npm - tấn công chuỗi cung ứng

Shai-Hulud: Sâu máy tính tấn công gói npm được giải thích

TL; DR

Vào ngày 14 tháng 9 năm 2025, các nhà nghiên cứu đã xác định Shai Hulud, một loại sâu tự nhân bản ẩn bên trong gói npm, biến việc cập nhật phụ thuộc thông thường thành một quá trình quy mô lớn. tấn công chuỗi cung ứngLần đầu tiên được phát hiện ở @ctrl/tinycolor Gói phần mềm Shai-Hulud do Daniel dos Santos Pereira phát triển thu thập các thông tin bí mật, đánh cắp chúng thông qua các kho lưu trữ và quy trình làm việc của GitHub, và tự phát hành lại trên toàn bộ registry bằng cách sử dụng thông tin đăng nhập bị đánh cắp. Chỉ trong vài ngày, số lượng gói phần mềm bị nhiễm đã tăng từ hàng chục lên hàng trăm, xác nhận điều đó. Shaihulud Đây không chỉ là một loại mã độc Trojan thông thường mà là một loại sâu máy tính được thiết kế để tự động lây lan trong toàn bộ hệ sinh thái npm.

Va chạm: Bất kỳ nhà phát triển hoặc trình chạy CI nào cài đặt các gói npm công khai đều có nguy cơ gặp rủi ro.

Hành động ngay: Chặn các phiên bản đã biết, chuyển sang cài đặt chỉ bằng tệp khóa, xoay vòng mã thông báo npm và GitHub, kiểm tra quy trình làm việc và giám sát các Chỉ báo về Sự xâm phạm (IoC).

Chuyện gì xảy ra?

Cuộc tấn công chuỗi cung ứng Shai-Hulud trong các gói npm Đây là một trong những sự cố gây rối loạn nghiêm trọng nhất trong thời gian gần đây. Không giống như các loại mã độc Trojan riêng lẻ, loại sâu máy tính này kết hợp nhiều loại mã độc khác nhau. đánh cắp thông tin đăng nhập, đánh cắp dữ liệu tự động và tự sao chépDo đó, thời gian lây nhiễm rút ngắn từ vài tuần xuống chỉ còn vài giờ.

Đối với các nhóm DevOps, bài học rất rõ ràng: nếu mọi quá trình cài đặt đều có thể thực thi mã, thì mọi bản cập nhật phụ thuộc đều là một điểm yếu tiềm tàng.

Phương thức tấn công ban đầu và thông tin xác thực mục tiêu khả thi

Phân tích ban đầu Điều này cho thấy cuộc tấn công có khả năng bắt đầu từ... thông tin đăng nhập bị đánh cắpVí dụ, các chiến dịch lừa đảo giả mạo npm. login Hoặc các lời nhắc xác thực đa yếu tố (MFA) có thể đã thu thập được mã thông báo của nhà phát triển. Sau khi kẻ tấn công giành được quyền kiểm soát ban đầu, sâu máy tính lây lan bằng cách nhúng chính nó vào các gói npm và đánh cắp thêm các bí mật từ:

  • các tệp cấu hình npm Lượt thích .npmrcThường chứa các mã thông báo xuất bản.
  • Biến môi trường và cấu hình với GitHub PAT và CI/CD những bí mật.
  • Điểm cuối siêu dữ liệu đám mây (AWS, GCP, Azure) cung cấp thông tin xác thực có thời hạn ngắn để di chuyển ngang.

Do đó, việc đánh cắp thông tin đăng nhập đã trở thành bàn đạp. Với các mã thông báo npm hợp lệ và các bí mật GitHub, Shai-Hulud có thể tự nhân bản trên nhiều gói và kho lưu trữ mà không cần thêm nỗ lực của con người.

Tác động đến giới điều hành của vụ tấn công chuỗi cung ứng Shai-Hulud

Shai-Hulud vẫn đang hoạt động cho đến ngày nay. Loại sâu máy tính này đẩy nhanh tiến độ lây nhiễm. Điều mà trước đây mất hàng tuần với Trojan giờ đây diễn ra chỉ trong vài giờ. Kết quả là, Sự lây lan diễn ra nhanh hơn và khó kiểm soát hơn. Nó tiến triển bằng cách:

  • Đánh cắp token xuất bản của npm và secret của GitHub.
  • Tự động tái xuất bản vào các gói npm khác.
  • Thêm các quy trình GitHub Actions độc hại để duy trì hoạt động.

Ai bị ảnh hưởng:

Bất kỳ nhóm nào cài đặt các gói npm công khai đều có nguy cơ bị tấn công. Hơn nữa, các nhà phát triển sử dụng mã thông báo npm hoặc GitHub được lưu trong bộ nhớ cache cũng đối mặt với rủi ro cao. Các trình chạy CI sử dụng các bí mật có phạm vi rộng cũng dễ bị tổn thương.

Rủi ro kinh doanh

Tác động đến hoạt động kinh doanh ngày càng gia tăng nhanh chóng. Các mã thông báo bị đánh cắp có thể dẫn đến chiếm đoạt tài khoản, chiếm quyền kiểm soát gói phần mềm và thậm chí là lạm dụng dịch vụ đám mây. Ngoài ra, việc chúng tồn tại dai dẳng trong quy trình làm việc của GitHub khiến việc xóa bỏ trở nên khó khăn hơn. Do đó,Các đội phải coi Shai-Hulud là một sự cố đang diễn ra, chứ không phải là một sự cố đã kết thúc.

Cách thức hoạt động của cuộc tấn công chuỗi cung ứng Shai-Hulud trong các gói npm

Mục tiêu và động cơ của kẻ tấn công

Chiến dịch này tối ưu hóa cho ba yếu tố:

  • Mục tiêu đầu tiên là đánh cắp thông tin đăng nhập trên quy mô lớn Từ máy tính xách tay của nhà phát triển và các trình chạy CI. Điều này bao gồm mã thông báo xuất bản npm, mã thông báo GitHub và thông tin xác thực đám mây. Trên thực tế, nhiều phân tích xác nhận việc thu thập bí mật một cách có hệ thống, chẳng hạn như chạy TruffleHog và truy vấn các điểm cuối siêu dữ liệu đám mây.
  • Mục tiêu thứ hai là tự động lan truyền bằng cách lạm dụng quyền xuất bản của những người duy trì bị xâm phạm. Kết quả là, một điểm xâm nhập nhanh chóng lan rộng thành nhiều điểm khác, vì các phiên bản bị nhiễm mới của các gói phần mềm khác xuất hiện mà không cần thêm nỗ lực của con người.
  • Mục tiêu thứ ba là kiên trì và thoát ra ngoài một cách đáng tin cậy Thông qua cơ sở hạ tầng của GitHub, kẻ tấn công tạo một kho lưu trữ công khai có tên “Shai-Hulud” với mã hóa base64 kép. dữ liệu.jsonvà ngoài ra, họ còn thiết lập một quy trình làm việc tuần tự hóa. ${{ toJSON(secrets) }} và gửi nó đến một webhook tĩnh.

Lợi ích tiềm năng bao gồm quyền truy cập lâu dài vào các kho lưu trữ và mã nguồn, khả năng chuyển đổi nhanh chóng sang các tài khoản đám mây và tùy chọn để tiếp tục khai thác chuỗi cung ứng. Các báo cáo công khai cho thấy các kho lưu trữ riêng tư đã được chuyển sang công khai với một số lợi ích nhất định. “-di cư” hậu tố, giúp tăng cường khả năng tiếp cận dữ liệu và động lực.

Bên trong khoang chứa hàng của Shai-Hulud: bó.js trong các gói npm

Tàu Shai-Hulud được vận chuyển như một có kích thước lớn, được đóng gói bằng Webpack và được thu nhỏ tối đa. Tệp JavaScript (bó.js(khoảng 3–3.7 MB) thực thi từ một sau khi cài đặt móc vào package.json. Do đó, Mỗi lần cài đặt đều tự động kích hoạt payload. Thiết kế này che giấu các định danh, nén luồng điều khiển và đẩy tất cả logic vào một artifact duy nhất được thực thi trong quá trình cài đặt. Các nhà phân tích liên tục xác nhận việc đóng gói Webpack, kích thước tệp bất thường và việc thực thi trong quá trình cài đặt.

Các đặc điểm che giấu và chống phân tích mà bạn sẽ thấy trong các mẫu:

  • Đồ thị mô-đun thu nhỏ với ID mô-đun dạng số, chú thích ngắn gọn và luồng điều khiển được làm phẳng. Hơn nữa, Cấu trúc này khiến việc xem xét thủ công trở nên vô cùng khó khăn.
  • Ẩn chuỗi thông qua các lớp base64 và các công cụ hỗ trợ xây dựng. Ví dụ:, Việc mã hóa và giải mã base64 lặp đi lặp lại thường xuất hiện xung quanh các quy trình đánh cắp dữ liệu.
  • Điều phối động thông qua đánh giá- Các mẫu kiểu và thân hàm được tạo tự động, do đó cho phép mã thay đổi hành vi trong thời gian chạy.
  • Lọc hệ điều hành Ưu tiên sử dụng Linux và macOS, đặc biệt là trên các máy chủ CI và máy tính xách tay của nhà phát triển.

Về mặt chức năng, bộ sản phẩm này có tính mô-đun. Các bài viết mô tả các mô-đun để phát hiện hệ điều hành, quét hệ thống tập tin và mã bí mật Git, truy cập SDK đám mây, các thao tác API GitHub và một công cụ lan truyền chỉnh sửa các gói khác mà người duy trì sở hữu. Trên thực tế, cả StepSecurity và ReversingLabs đều nhấn mạnh một chức năng tự động cập nhật các gói có chứa mã độc.

Quá trình thực thi khi cài đặt trong Shai-Hulud: Cách các gói npm kích hoạt sâu máy tính

Cuộc tấn công bắt đầu khi postinstall chạy node bó.js. Đến bước này, kịch bản khởi tạo và giải nén trạng thái hoạt động trong bộ nhớ, tạo tiền đề cho hoạt động đầy đủ của sâu máy tính.

Khám phá và thu hoạch

  • Payload này trích xuất process.env và quét các tệp cục bộ để tìm các bí mật có độ phức tạp cao và tiền tố token. Ngoài ra, nó mở rộng phạm vi bằng cách chạy TruffleHog.
  • Nó truy vấn các điểm cuối siêu dữ liệu đám mây để thu thập thông tin xác thực có thời hạn ngắn. Ví dụ, gọi đến 169.254.169.254 trên AWS hoặc metadata.google.internal Trên GCP, các triệu chứng thường xuất hiện ở các máy chủ bị nhiễm bệnh.
  • Do đó, Bất kỳ thông tin xác thực nào được tìm thấy đều có thể sử dụng ngay lập tức để xuất bản các gói npm mới hoặc đẩy các quy trình làm việc lên GitHub.

Lọc

  • Con sâu máy tính tạo một kho lưu trữ GitHub mới có tên là Shai Hulud và ghi một chuỗi mã hóa base64 kép data.json Bao gồm thông tin chi tiết về nền tảng, thông tin môi trường và các bí mật. Như có thể thấy, hành vi gây nhiễu này rất dễ phát hiện nếu người bảo vệ biết phải tìm ở đâu.
  • Nó cũng thiết lập một quy trình làm việc GitHub Actions, thường là trên một nhánh có tên là shai-hulud, điều đó tuần tự hóa ${{ toJSON(secrets) }} và gửi dữ liệu đến một webhook tĩnh. Hơn nữa, quy trình này sẽ tiếp tục hoạt động cho đến khi ai đó chủ động xóa nó.

Tuyên truyền

  • Với bất kỳ token npm nào được tìm thấy, payload sẽ liệt kê tất cả các gói thuộc sở hữu của người duy trì bị xâm nhập. Sau đó, nó tải xuống từng tệp nén tarball, chèn bundle.js và một mục postinstall, rồi xuất bản lại gói đó.
  • Kết quả là, hàng chục gói hàng bị nhiễm có thể xuất hiện chỉ trong vài giờ, làm tăng phạm vi ảnh hưởng trên toàn hệ sinh thái.

Sự kiên trì và tiếp xúc

  • Con sâu máy tính này duy trì các quy trình làm việc độc hại và, trong một số trường hợp, biến các kho lưu trữ riêng tư thành công khai. “-di cư” hậu tố. Nhìn chung, điều này đảm bảo kẻ tấn công duy trì được chỗ đứng và tối đa hóa việc rò rỉ dữ liệu.

Ghi chú phát hiện khóa
Cách sử dụng bất thường này ${{ toJSON(secrets) }} Điều này hiếm khi xảy ra trong quy trình làm việc của Actions. Vì vậy, Các đội nên coi đó là một tín hiệu quan trọng trong quá trình săn bắn.

Mẫu quy trình làm việc đã được tinh chỉnh mà bạn nên tìm kiếm.

Cách sử dụng bất thường này đến JSON (bí mật) "Trong phần Hành động" là một chỉ báo tín hiệu cao trong sự cố này.

Mã giả mô tả sự lan truyền ở mức độ cao (an toàn, dễ hiểu)

Các nhà phân tích đã quan sát thấy vòng lặp này trên quy mô lớn, điều này giải thích sự gia tăng nhanh chóng từ hàng chục lên hàng trăm gói hàng bị nhiễm.

Tại sao đây lại là một con sâu trong hệ sinh thái gói hàng?

Worm là phần mềm độc hại tự lây lan mà không cần sự can thiệp thủ công của người dùng ở mỗi giai đoạn. Trong hệ điều hành, worm thường khai thác các lỗ hổng mạng để lây lan từ máy này sang máy khác. Ngược lại, Shai-Hulud hoạt động bên trong kho lưu trữ npm. Con đường lây lan hiệu quả của nó là thông qua tái sử dụng thông tin xác thực.

Con sâu máy tính này lợi dụng các mã thông báo xuất bản npm bị đánh cắp. Ngay khi có được thông tin đăng nhập hợp lệ, nó sẽ tái xuất bản các phiên bản bị nhiễm dưới các gói khác thuộc sở hữu của cùng một người duy trì. Sau đó, các gói này được cài đặt bởi các nhà phát triển hoặc trình chạy CI không hề hay biết, và chu kỳ lặp lại.

Vì lý do này, các nhà phân tích an ninh, bao gồm Đọc tối, phân loại Shai-Hulud là một giun tự nhân bản Thay vì chỉ là một con Trojan đơn giản hay một sự cố chiếm đoạt tên miền do lỗi chính tả. Sự khác biệt rất quan trọng: Trojan thường chỉ xâm nhập vào một máy chủ, nhưng sâu máy tính tự động khuếch đại tác động của nó trên toàn bộ hệ sinh thái.

Hướng dẫn nhanh "Cách thức hoạt động"

Tóm lại, vòng đời của Shai-Hulud như sau:cisPhân tích chi tiết các bước chính:

  • Một gói hàng với sau khi cài đặt đã được cài đặt và bundle.js thực thi.
  • Phần mềm độc hại này trích xuất các biến môi trường, quét các tập tin và lịch sử Git, rồi chạy lệnh. TruffleHogvà truy vấn các dịch vụ siêu dữ liệu đám mây. Do đó, bất kỳ bí mật nào được tìm thấy đều trở nên hữu ích ngay lập tức.
  • Việc rò rỉ dữ liệu diễn ra theo hai cách: thứ nhất, bằng cách tạo một kho lưu trữ công khai có tên là Shai Hulud với mã hóa base64 kép data.jsonThứ hai, bằng cách thiết lập một quy trình làm việc GitHub Actions để đăng tải ${{ toJSON(secrets) }} đến một webhook.
  • Sử dụng bất kỳ mã thông báo npm nào bị đánh cắp, sâu máy tính sẽ tái phát hành tất cả các gói khác thuộc sở hữu của người duy trì bị xâm nhập với cùng một đoạn mã độc hại. Bằng cách này, sự lây nhiễm lan rộng nhanh chóng.
  • Cuối cùng, kẻ tấn công nắm giữ nhiều bí mật hơn, nhiều gói tin hơn để phát tán và kiên trì Bên trong các tài khoản và kho lưu trữ GitHub.

Làm thế nào để tránh loại tấn công này trên thực tế?

Shai-Hulud là một lời cảnh tỉnh. Một loại sâu máy tính đánh cắp token và tự tái phát hành không phải là mối nguy hiểm trong tương lai, nó đang hiện hữu ngay bây giờ. Hệ sinh thái các gói npm ngày nay. Để ngăn chặn loại này tấn công chuỗi cung ứngCác nhóm cần các biện pháp kiểm soát có thể lập trình, tự động hóa và được thực thi trực tiếp. CI/CD pipelineĐây là những biện pháp phòng thủ tương tự mà bạn đã có thể áp dụng. Xygeni.

Hãy ngăn chặn những hiện vật xấu ngay tại cổng.

Bạn nên quét các gói npm và các tệp nén tarball trước khi chúng đến tay nhà phát triển hoặc các tác vụ CI. Kích thước quá lớn bundle.js các tập tin, postinstall đáng ngờ hooksvà các dấu hiệu làm mờ mã nguồn đều đóng vai trò như những cảnh báo sớm. Hơn nữa, việc áp dụng thời gian chờ và các phiên bản được ghim trong pipelines ngăn chặn việc tự động sử dụng các bản phát hành mới, chưa được kiểm duyệt.

Cứng CI/CD theo mặc định

Guardrails in CI/CD là rất cần thiết. Chúng từ chối việc hợp nhất hoặc cài đặt đưa vào các tập lệnh hoặc tệp nhị phân mới. Đồng thời, chúng chặn các quy trình làm việc mã hóa bí mật hoặc cố gắng đăng bài từ bên ngoài. Các nhóm cũng nên yêu cầu cài đặt chỉ bằng tệp khóa (lockfile-only).npm ci) trên tất cả pipelineVì vậy, các tập hợp phụ thuộc vẫn có thể tái tạo và an toàn.

Giảm bán kính vụ nổ của token.

Các bí mật không được trở thành điểm yếu duy nhất. Hãy liên tục quét mã, cấu hình và... pipeline đầu ra cho thông tin đăng nhập bị lộCác token nên được giới hạn phạm vi, có thời gian sử dụng ngắn và được tự động xoay vòng khi phát hiện bị lộ thông tin. Theo nguyên tắc, hãy coi bất kỳ token nào được sử dụng trên máy chủ đã thực hiện quá trình cài đặt sau đó đáng ngờ là đã bị xâm phạm.

Quan sát hành vi của giun từ sớm

Phát hiện bất thường Điều này rất quan trọng. Ví dụ, sự gia tăng đột ngột trong các sự kiện npm publish, các quy trình làm việc mới xuất hiện mà không rõ lý do, hoặc các kho lưu trữ công khai mới chứa đầy các tệp được mã hóa kỳ lạ đều có thể là dấu hiệu của hoạt động sâu máy tính. Do đó, các nhóm nên nhanh chóng đưa ra cảnh báo và cách ly bất kỳ người bảo trì hoặc người chạy nào có những dấu hiệu cảnh báo này.

Khắc phục nhanh chóng mà không làm ảnh hưởng đến các bản dựng.

Tốc độ và an toàn phải song hành cùng nhau. Tự động hóa pull requests Có thể thay thế các gói npm bị lỗi bằng các phiên bản đã được kiểm duyệt. Ngoài ra, khả năng tiếp cậnkhả năng khai thác Phân tích đảm bảo các bản nâng cấp được thực hiện ở mức tối thiểu và ổn định. Cuối cùng, hãy xây dựng lại các máy chủ CI bị ảnh hưởng từ các ảnh hệ thống sạch sau khi xác nhận sự xâm nhập, ngăn chặn cuộc tấn công lan rộng hơn nữa.

Các chỉ số về sự thỏa hiệp (IoC)

Khi phân tích Shai-Hulud, các đội nên chú ý đến cả hai yếu tố sau: IoC tĩnh trong các tập tin và IoCs hành vi in pipelineNhìn chung, những tín hiệu này giúp phát hiện sớm các bệnh nhiễm trùng và có biện pháp xử lý trước khi giun lây lan rộng hơn.

IoC tĩnh

Các kết quả băm SHA-256 sau đây khớp với kết quả quan sát được. bundle.js mẫu:

  • 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
  • dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c

Ngoài ra, hãy chú ý đến những mô hình lặp đi lặp lại sau đây:

  • A bundle.js tại thư mục gốc của gói.
  • "postinstall": "node bundle.js" trong package.json.
  • Các kho lưu trữ có tên Shai Hulud.
  • Các quy trình làm việc của GitHub chứa ${{ toJSON(secrets) }}.

IoCs hành vi

Ngoài chữ ký tập tin, hoạt động của sâu máy tính còn thể hiện qua hành vi. Ví dụ:

  • Sự gia tăng đột ngột các sự kiện npm publish từ một người duy nhất.
  • Các quy trình làm việc mới đẩy dữ liệu đến các điểm cuối bên ngoài.
  • Các yêu cầu POST gửi đi được kích hoạt từ các trình chạy CI.
  • Các kho lưu trữ công khai mới được tạo gần đây chứa các dữ liệu nhị phân được mã hóa.

Săn nhanh

Kết luận: Những bài học từ Shai-Hulud

Cuộc tấn công chuỗi cung ứng Shai-Hulud Việc xuất hiện các gói npm cho thấy chuỗi cung ứng phần mềm hiện nay đã trở nên mong manh như thế nào. Con sâu máy tính này không chỉ thêm mã độc hại mà còn đánh cắp token, gửi dữ liệu đi và tự động tái phát tán. Do đó, cuộc tấn công lan rộng chỉ trong vài giờ thay vì vài tuần.

Đối với các nhà phát triển và nhóm DevOps, bài học rất rõ ràng:

  • Mỗi lần cài đặt đều chạy mã. Ngay cả một gói npm thông thường cũng có thể ẩn chứa một loại sâu máy tính lây nhiễm sau khi cài đặt.
  • Mỗi token đều có giá trị cao. Một khi bị đánh cắp, nó có thể được sử dụng để phát tán phần mềm độc hại rộng hơn.
  • Mỗi pipeline Cần kiểm tra lại. Nếu không có guardrails Với các mối quan hệ phụ thuộc, quy trình làm việc và thông tin bí mật, chỉ cần một sự xâm phạm nhỏ cũng có thể nhanh chóng ảnh hưởng đến môi trường sản xuất.

Do đó, việc ngăn chặn các cuộc tấn công như Shai-Hulud đòi hỏi các biện pháp kiểm soát tự động và dễ thực thi. Các nhóm nên quét các gói npm trước khi cài đặt, sử dụng bản dựng lockfile, phát hiện hoạt động xuất bản bất thường và giữ cho các token có thời hạn ngắn. Những bước này không còn là tùy chọn nữa. Thay vào đó, chúng là nền tảng của khả năng phục hồi trong môi trường hiện đại. pipelines.

Tại Xygeni, chúng tôi xem vụ tấn công chuỗi cung ứng Shai-Hulud như một lời cảnh báo cho toàn bộ hệ sinh thái mã nguồn mở. Cách thức bền vững để tiến lên phía trước là đưa vấn đề bảo mật chuỗi cung ứng trực tiếp vào quy trình phát triển, ngay tại thời điểm mã nguồn, các gói npm và... được sử dụng. pipelinekết nối.

Dưới đây là danh sách đầy đủ các gói npm và phiên bản được báo cáo là bị xâm phạm trong Shai-Hulud. Hãy sử dụng danh sách này để kiểm tra các tệp khóa, kho lưu trữ và CI của bạn. pipelineđể tăng độ phơi sáng.

Danh sách các gói bị xâm phạm

📦 Xem trước các gói npm bị xâm phạm

Tên gói phiên bản Ngày xuất bản
công cụ quy tắc JSON được đơn giản hóa0.2.12025-09-14T17:58:51.203Z
phi công0.8.82025-09-14T18:35:07.600Z
đồ thị tri thức mcp1.2.12025-09-14T18:35:09.494Z
chỉ huy không quân0.3.12025-09-14T18:35:09.521Z
cổng nhảy0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/validation0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
➡️ Xem danh sách đầy đủ các gói dịch vụ bị xâm phạm
Tên gói phiên bản Ngày xuất bản
công cụ quy tắc JSON được đơn giản hóa0.2.12025-09-14T17:58:51.203Z
phi công0.8.82025-09-14T18:35:07.600Z
đồ thị tri thức mcp1.2.12025-09-14T18:35:09.494Z
chỉ huy không quân0.3.12025-09-14T18:35:09.521Z
cổng nhảy0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/logger0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/validation0.1.62025-09-14T20:45:55.595Z
@hestjs/core0.2.12025-09-14T20:45:55.888Z
@hestjs/cqrs0.1.62025-09-14T20:45:55.966Z
@hestjs/scalar0.1.72025-09-14T20:45:56.386Z
ng2-file-upload7.0.32025-09-15T02:44:29.555Z
trình xử lý thông báo tụ điện0.0.22025-09-15T04:54:48.431Z
tụ điện cắm điện áp1.0.22025-09-15T04:54:48.501Z
ứng dụng sức khỏe cắm tụ điện0.0.22025-09-15T04:54:48.704Z
tụ điện androidpermissions0.0.42025-09-15T04:54:48.753Z
bộ dụng cụ gọi thoại VoIP1.0.22025-09-15T04:54:49.223Z
tụ điện-plugin-ihealth1.1.82025-09-15T04:55:08.113Z
@art-ws/common2.0.222025-09-15T05:21:15.411Z
@art-ws/config-eslint2.0.42025-09-15T05:21:17.199Z
ngx-ws1.1.52025-09-15T05:21:17.514Z
@art-ws/slf2.0.152025-09-15T05:21:17.524Z
@art-ws/http-server2.0.212025-09-15T05:21:17.745Z
pm2-gelf-json1.0.42025-09-15T05:21:18.413Z
@art-ws/di2.0.282025-09-15T05:21:18.488Z
@art-ws/di-node2.0.132025-09-15T05:21:18.849Z
@art-ws/config-ts2.0.72025-09-15T05:21:19.408Z
@art-ws/db-context2.0.212025-09-15T05:21:19.814Z
@art-ws/openapi0.1.92025-09-15T05:21:19.969Z
@art-ws/web-app1.0.32025-09-15T05:21:20.383Z
@art-ws/ssl-info1.0.92025-09-15T05:21:20.927Z
sca-tools-software-composition-analysis-tools
Ưu tiên, khắc phục và bảo mật các rủi ro phần mềm của bạn
Đăng ký tài khoản miễn phí ngay.
Không cần thẻ tín dụng.

Bảo mật quá trình phát triển và phân phối phần mềm của bạn.

với bộ sản phẩm Xygeni