Tấn công mạng chuỗi cung ứng: Mã độc npm ChainDrop nguy hiểm thế nào?

Tấn công mạng chuỗi cung ứng: Mã độc npm ChainDrop nguy hiểm thế nào?
CLOUD HOSTING
DỊCH VỤ
VPS • CLOUD • SERVER
Hiệu năng cao
Ổn định • Bảo mật • Tốc độ
☁️
SSD NVMe 99.9% 24/7
TÌM HIỂU NGAY

ChainDrop là một mã độc tự nhân bản (worm) đã biến việc cài đặt phần mềm thông thường thành một con đường để đánh cắp thông tin xác thực. Mã độc này đã lây nhiễm hơn 400 gói npm, đặt các máy tính của nhà phát triển, hệ thống xây dựng và môi trường đám mây vào tình trạng rủi ro. Các gói bị xâm phạm vẫn hoạt động như mong đợi, khiến các nhóm có thể không nhận ra rằng một bản cập nhật đã mở ra một lối đi vào môi trường của họ.

ChainDrop: Một Mối Đe Dọa Từ Chuỗi Cung Ứng Phần Mềm

Chiến dịch này lây lan thông qua các tài khoản phát hành đáng tin cậy. Một gói độc hại sẽ chạy trong quá trình cài đặt, tìm kiếm các token truy cập có giá trị và sử dụng thông tin xác thực npm bị đánh cắp để sửa đổi và tái xuất bản các gói tiếp theo. Chu kỳ tự động này cho phép một nhà phát triển hoặc hệ thống xây dựng bị xâm phạm ảnh hưởng đến nhiều người dùng hạ nguồn.

Unit 42 báo cáo rằng chiến dịch này đã chạm tới các gói được tải xuống hàng trăm triệu lần mỗi tuần. Các nhà nghiên cứu đã phát hiện 453 kho lưu trữ công khai trên năm tài khoản phù hợp với mô hình đánh cắp dữ liệu của mã độc. Tuy nhiên, các tài khoản này vẫn có khả năng là nạn nhân chứ chưa được xác nhận.

Vụ việc này nhấn mạnh sự nguy hiểm của các tấn công mạng chuỗi cung ứng phần mềm. Thay vì sử dụng các trang web giả mạo hoặc các chiêu trò lừa đảo qua email, kẻ tấn công lạm dụng sự tin tưởng mà các nhà phát triển đặt vào các kho lưu trữ gói, tự động hóa quá trình phát hành và các phụ thuộc mã nguồn mở quen thuộc.

Mô Thức Hoạt Động Tinh Vi

Mối đe dọa có thể lan từ các dự án mã nguồn sang các tài khoản đám mây và các quy trình sản xuất. ChainDrop ẩn mình bên trong các bản phát hành gói hợp pháp. Các nhà nghiên cứu phát hiện một gói bị nhiễm sẽ thêm một hướng dẫn lúc cài đặt, một trình tải và một tải trọng (payload) đã được làm rối trong khi vẫn giữ nguyên mã gốc.

Cách tiếp cận kín đáo này giúp bản phát hành đã sửa đổi trông có vẻ bình thường đối với các nhà phát triển và quy trình xem xét. Sau khi cài đặt, mã độc có thể hoạt động âm thầm trên máy trạm hoặc trong một tác vụ tích hợp liên tục (CI). Nó thu thập các token npm và GitHub, thông tin xác thực đám mây, khóa SSH, tệp cấu hình môi trường và dữ liệu cấu hình công cụ của nhà phát triển.

Nó cũng nhắm mục tiêu vào các bí mật tạm thời được lưu trữ trong bộ nhớ của GitHub Actions runner, tiếp cận thông tin có thể không bao giờ được lưu dưới dạng tệp thông thường. Mã độc sau đó sử dụng các token phát hành để xác định các gói mà một tài khoản bị xâm phạm có thể cập nhật, thêm các thành phần độc hại, tăng phiên bản vá và tái xuất bản chúng.

Điều này tương tự như các hoạt động mã độc npm liên quan khác, nơi một kênh cập nhật đáng tin cậy trở thành cơ chế phân phối thay vì một bản tải xuống độc hại rõ ràng. Nó cũng tạo ra sự tồn tại dai dẳng trong cài đặt dự án cho các trình soạn thảo mã và các công cụ phát triển được hỗ trợ bởi AI. Do đó, việc mở một dự án có thể kích hoạt mã độc sau lần cài đặt ban đầu.

Rủi ro này phản ánh các sự cố cửa hậu trong công cụ AI, nơi cấu hình cục bộ trở thành một điểm thực thi không mong muốn. ChainDrop làm nhiều hơn là chỉ thu thập bí mật. Nó có thể tạo ra các kho lưu trữ công khai dưới tài khoản nạn nhân như một tuyến đường bổ sung cho dữ liệu bị đánh cắp.

Nó cũng truy xuất đích lệnh của mình thông qua một hợp đồng thông minh Ethereum, cho phép người điều hành thay đổi đích mà không cần cập nhật các gói bị nhiễm. Các nhà nghiên cứu đã quan sát thấy một sự thay đổi như vậy vào ngày 4 tháng 8. Thiết kế này làm phức tạp thêm phản ứng đơn giản bằng cách chặn và di chuyển.

Một tổ chức có thể dừng một tuyến mạng nhưng bỏ lỡ kênh dựa trên kho lưu trữ, các tệp khóa bị xâm phạm, bộ đệm được lưu trữ hoặc các hình ảnh xây dựng bị nhiễm.

Biện Pháp Ứng Phó Và Phòng Ngừa

Các nhóm nên xem xét các thay đổi phát hành và kho lưu trữ npm bất thường, đặc biệt là sau các bản cập nhật phụ thuộc hoặc các bản phát hành tự động khác thường. Unit 42 khuyến nghị định vị và xóa các phiên bản gói bị ảnh hưởng, điều tra các máy tính của nhà phát triển và CI runner, và loại bỏ sự tồn tại dai dẳng trước khi luân chuyển thông tin xác thực.

Các nhóm bảo mật nên thu hồi và thay thế các bí mật npm, GitHub, đám mây, SSH và tự động hóa đã bị lộ trên các hệ thống bị nhiễm được xác nhận. Việc cài đặt trong thời gian xảy ra sự cố phơi nhiễm cần được xử lý khẩn cấp như một sự cố thông tin xác thực.

Quản trị viên nên xây dựng lại các tệp khóa phụ thuộc từ các bản phát hành đáng tin cậy và xóa các bộ đệm, gương và kho lưu trữ gói cũ. Việc chỉ cập nhật thẻ mới nhất có thể không bảo vệ các hệ thống đã phân giải một phiên bản bị nhiễm độc.

Các nhóm có thể giảm thiểu rủi ro bằng cách sử dụng thông tin xác thực có thời hạn ngắn, phạm vi hẹp, các CI runner chỉ sử dụng một lần và các quy tắc mạng đầu ra nghiêm ngặt cho các tác vụ xây dựng. Cuối cùng, các chuyên gia phòng thủ nên kiểm tra các thay đổi gói xem có các móc cài đặt mới, các phần script bị sửa đổi và các tệp JavaScript nén lớn bất thường hay không.

Họ nên tìm kiếm trên các kho lưu trữ và môi trường xây dựng, không chỉ các gói được đặt tên, bởi vì mã độc mở rộng ra mọi tài khoản mà nó tìm thấy quyền truy cập phát hành. Sự cố gói dịch vụ đám mây rộng hơn minh họa cách thông tin xác thực phát hành bị đánh cắp có thể biến một vụ vi phạm hạn chế thành một sự kiện chuỗi cung ứng lan rộng.

Indicators of Compromise (IoCs)

Các chỉ báo về sự xâm phạm (IoCs) có thể được tìm thấy trong báo cáo chi tiết. Các nhà nghiên cứu đã khuyến cáo vô hiệu hóa các URL và domain độc hại (ví dụ: [.]) để ngăn chặn việc phân giải hoặc liên kết quá mức. Chỉ nên kích hoạt lại (re-fang) trong các nền tảng thông tin tình báo mối đe dọa được kiểm soát như MISP, VirusTotal hoặc SIEM của bạn.

Các nhóm nên kiểm tra các thay đổi gói cho các móc cài đặt mới, các phần script bị sửa đổi và các tệp JavaScript nén lớn bất thường. Họ nên tìm kiếm trên các kho lưu trữ và môi trường xây dựng, không chỉ các gói được đặt tên, bởi vì mã độc mở rộng ra mọi tài khoản mà nó tìm thấy quyền truy cập phát hành.

Tham khảo báo cáo đầy đủ từ Unit 42 để biết chi tiết về các IoC: ChainDrop Worm Infects 400 npm Packages to Steal GitHub and Cloud Credentials.