CHAINDROP: Nguy hiểm tấn công chuỗi cung ứng npm

CHAINDROP: Nguy hiểm tấn công chuỗi cung ứng npm
CLOUD SERVER
Vững hạ tầng • Chắc thành công
☁️
⚡ Hiệu năng cao
🛡️ Bảo mật
📈 Mở rộng dễ dàng
🕒 Hỗ trợ 24/7
TÌM HIỂU NGAY

Một chiến dịch phần mềm độc hại tự lan truyền mới có tên là CHAINDROP đã xâm nhập vào hơn 400 gói trong hệ sinh thái npm sau khi kẻ tấn công chiếm quyền kiểm soát tài khoản của người bảo trì thư viện keyv vốn được sử dụng rộng rãi. Hoạt động này biến các bản cập nhật phần mềm đáng tin cậy thành một con đường để đánh cắp thông tin xác thực của nhà phát triển và lây lan rộng hơn.

Phân tích chiến dịch CHAINDROP

Elastic Security Labs đã xác định hoạt động này vào ngày 4 tháng 8, mô tả một cuộc tấn công bắt đầu với kho lưu trữ đơn thể (monorepo) của keyv và mở rộng nhanh chóng. Tập hợp các gói bị ảnh hưởng có tổng cộng hơn 1.3 tỷ lượt tải xuống hàng tháng, đặt các nhà phát triển, hệ thống xây dựng và các ứng dụng phụ thuộc vào đường dẫn phơi nhiễm.

Chiến dịch này cũng cho thấy cách một tài khoản người bảo trì bị xâm phạm có thể tạo ra một vấn đề trên toàn bộ hệ sinh thái. Rủi ro trung tâm ở đây là thông tin xác thực xuất bản bị đánh cắp cho phép phần mềm độc hại di chuyển qua các kênh phát hành thông thường, một mối đe dọa đã được ghi nhận trong các cuộc tấn công chuỗi cung ứng trước đây.

Cơ chế tấn công ban đầu

Kẻ tấn công đã chèn một hook preinstall vào tệp package.json, một tính năng npm tiêu chuẩn chạy các lệnh trước khi gói cài đặt hoàn tất. Điều này có nghĩa là một nhà phát triển có thể kích hoạt mã độc hại chỉ bằng cách cài đặt hoặc cập nhật một phụ thuộc bị ảnh hưởng, mà không cần mở hoặc nhập nó. Vì npm coi đây là một phần của quy trình cài đặt thông thường, việc xem xét mã nguồn có thể bỏ sót mối nguy hiểm khi các nhóm chấp nhận một bản cập nhật vá lỗi thông thường. Kết quả là mã độc được thực thi âm thầm bên trong máy trạm của nhà phát triển và môi trường xây dựng.

Mỗi gói con của keyv chứa một trình thả (dropper) khởi chạy payload chính trên Linux, macOS và Windows. Các bản phát hành đã sửa đổi sử dụng các thành phần liên quan trong các gói bị xâm phạm trực tiếp và trong các gói được tiếp cận thông qua sự lây lan của sâu máy tính (worm propagation), cung cấp cho các nhà phòng thủ một cách để điều tra các bản phát hành đáng ngờ.

Hoạt động và mục tiêu của Payload

CHAINDROP ban đầu thu thập thông tin xác thực từ các hệ thống của nhà phát triển, bao gồm các kho lưu trữ npm, GitHub, đám mây, Kubernetes, SSH, CI/CD và các công cụ lập trình AI. Khi tìm thấy một token npm có quyền truy cập ghi gói và cho phép xuất bản mà không cần xác thực hai yếu tố, nó sẽ truy xuất các gói, tiêm các tệp độc hại, tăng số phiên bản và xuất bản lại chúng.

Phần mềm độc hại cũng có thể sửa đổi các kho lưu trữ khi nó chiếm được token GitHub App. Nó thêm các tệp cấu hình Claude Code và VS Code độc hại trên tối đa 50 nhánh, do đó, việc mở một kho lưu trữ bị nhiễm có thể tạo ra một con đường thực thi khác. Payload tìm kiếm hơn 300 mẫu thông tin xác thực, sau đó nén và mã hóa những gì nó tìm thấy trước khi gửi đến cơ sở hạ tầng do kẻ tấn công kiểm soát.

Thay vì dựa vào một máy chủ lệnh cố định, nó tìm kiếm đích đến của mình thông qua một hợp đồng thông minh trên Ethereum, cho phép người vận hành thay đổi cơ sở hạ tầng mà không cần xuất bản lại phần mềm độc hại. Sự phức tạp này làm cho việc theo dõi và ngăn chặn các hoạt động độc hại trở nên khó khăn hơn.

Các biện pháp phòng ngừa và giảm thiểu rủi ro

Các tổ chức nên tránh áp dụng các phiên bản gói mới ngay lập tức và giới thiệu một khoảng thời gian chờ đợi trước khi các bản dựng sử dụng chúng. Sự chậm trễ này có thể cho phép các nhà nghiên cứu và người bảo trì có thời gian xác định các bản phát hành bị nhiễm độc. Điều này đã được chứng minh trong sự cố gói Axios bị nhiễm độc trước đó.

Các nhóm bảo mật nên điều tra các máy có cài đặt các phiên bản bị ảnh hưởng, thu hồi các token GitHub và tạo lại các token npm bị lộ, đặc biệt là các token tự động hóa có thể bỏ qua xác thực hai yếu tố. Họ cũng nên xoay vòng các bí mật đám mây, Kubernetes, Vault, công cụ AI và CI/CD có thể có trên các điểm cuối bị ảnh hưởng.

Bảo vệ nâng cao cho người bảo trì và hệ thống

Người bảo trì nên bật xác thực hai yếu tố trên tài khoản npm, loại bỏ khả năng bypass_2fa khi nó không cần thiết và xem xét các kho lưu trữ để tìm các cam kết (commits) không mong muốn liên quan đến chiến dịch. Nâng cấp lên npm phiên bản 12 trở lên bổ sung một biện pháp bảo vệ vì nó chặn các hook preinstall theo mặc định, một biện pháp phòng thủ hữu ích chống lại việc lạm dụng tập lệnh preinstall độc hại được thấy trong các cuộc xâm nhập chuỗi cung ứng gần đây. Các nhóm bảo mật có thể sử dụng các chỉ số kỹ thuật dưới đây khi kiểm tra nhật ký xây dựng cho các quy trình node hoặc bun được liên kết với cuộc tấn công. Bất kỳ sự cố nào được xác nhận nên được coi là một sự xâm phạm thông tin xác thực, không chỉ là một phụ thuộc độc hại: cô lập điểm cuối, xem xét hoạt động xuất bản gói, thay thế bí mật và kiểm tra tất cả các bản phát hành gần đây về các thay đổi trái phép trước khi khôi phục công việc phát triển bình thường.

Các chỉ số về sự cố (IoCs) cần được chú ý bao gồm các mẫu cụ thể của payload, các tệp cấu hình độc hại và các điểm cuối liên quan đến cơ sở hạ tầng do kẻ tấn công kiểm soát. Khi đánh giá các IoC, điều quan trọng là phải xử lý chúng một cách thận trọng, ví dụ bằng cách làm mất hiệu lực (defanged) chúng (ví dụ: sử dụng [.]) để ngăn chặn việc phân giải hoặc siêu liên kết vô tình. Chỉ nên phục hồi các chỉ số này trong các nền tảng tình báo mối đe dọa được kiểm soát như MISP, VirusTotal hoặc SIEM của bạn.

Để ngăn chặn các cuộc tấn công lừa đảo và phần mềm độc hại mới, việc tích hợp thông tin tình báo trực tiếp từ các trung tâm điều hành an ninh (SOC) trên toàn thế giới có thể là một chiến lược hiệu quả. Thông tin này giúp phát hiện sớm và phản ứng nhanh chóng với các mối đe dọa mới nổi.

Nguồn tham khảo chi tiết về chiến dịch Shai-Hulud và CHAINDROP có thể được tìm thấy tại báo cáo của Elastic Security Labs và các bài viết phân tích chuyên sâu.

Báo cáo của Elastic Security Labs cung cấp cái nhìn sâu sắc về kỹ thuật của cuộc tấn công.