Các gói npm độc hại đang được sử dụng để cài cắm một backdoor trên Linux vào các công cụ tính toán lịch và chuỗi hoạt động. Các gói này cung cấp các chức năng ngày tháng hợp pháp, khiến mã độc hại dễ bị bỏ sót. Vụ việc này là một ví dụ điển hình về các cuộc tấn công mạng dạng phần mềm chuỗi cung ứng.
Phân tích chi tiết cuộc tấn công
Mối nguy hiểm bắt đầu khi một module bị ảnh hưởng được nhập vào hệ thống. Trình tải (loader) sẽ biến một chương trình Linux được đóng gói thành tệp thực thi và khởi chạy nó ở chế độ nền mà không cần bất kỳ tập lệnh cài đặt hay lời gọi hàm đáng ngờ nào. Điều này gây khó khăn cho việc phát hiện sớm các mối đe dọa mạng.
Chiến dịch này được TrendAI mô tả là một cuộc tấn công chuỗi cung ứng phần mềm, sử dụng RedShell, một backdoor dành cho Linux có liên quan đến framework chỉ huy và kiểm soát RedC2. TrendAI đã chia sẻ báo cáo về vấn đề này với Cyber Security News, nhấn mạnh cách một dependency tưởng chừng vô hại có thể trở thành điểm xâm nhập vào môi trường sản xuất.
Các gói bị ảnh hưởng giả dạng các tiện ích nhỏ, độc lập cho việc tính toán ngày tháng. Các tính năng được quảng cáo hoạt động như mong đợi, trong khi một tệp nhị phân ẩn được trình bày như một trình trợ giúp gốc (native helper). Sự kết hợp giữa mã hữu ích và thực thi ẩn giấu là lý do tại sao các chiến dịch gói npm độc hại vẫn khó bị các đội ngũ an ninh mạng phát hiện sớm.
Cơ chế hoạt động của mã độc
Tệp thực thi chính, có tên dist/index.mjs, chạy tự động ngay khi module được tải. Nó kiểm tra sự tồn tại của tệp nhị phân, thay đổi quyền của tệp đó và xác minh giá trị SHA-256 trước khi khởi chạy nó dưới dạng một tiến trình tách biệt. Cách thức này cho phép mã độc hoạt động mà không cần dựa vào các hook vòng đời (lifecycle hooks).
Việc sử dụng tùy chọn --ignore-scripts trong npm cũng không thể ngăn chặn được cơ chế thực thi này. Một lần nhập trực tiếp hoặc gián tiếp vào một module có thể kích hoạt mã độc, ngay cả khi nhà phát triển không trực tiếp lựa chọn gói đó.
Các kỹ thuật tương tự đã cho thấy các cuộc tấn công chuỗi cung ứng thông qua tệp cấu hình có thể vượt qua các biện pháp kiểm soát được xây dựng dựa trên các tập lệnh vòng đời npm quen thuộc.
Khả năng và tác động của RedShell
Tệp nhị phân độc hại được xác định là RedShell, một thành phần gốc trên Linux được giới thiệu trong RedC2 phiên bản 4.0. Implant này sử dụng các đường dẫn HTTP riêng biệt, dạng văn bản thuần, cho việc đánh cắp dữ liệu và tải xuống payload.
RedShell có khả năng thu thập các khóa SSH, thông tin xác thực được lưu trữ trong trình duyệt và các tệp liên quan đến cơ sở dữ liệu. Nó có thể tạo sự tồn tại dai dẳng (persistence) thông qua cron, các tệp khởi động shell, dịch vụ cấp người dùng hoặc các mục tự động khởi chạy trên desktop. Những hành động này có thể cung cấp cho kẻ tấn công một chỗ đứng vững chắc sau khi gói ban đầu đã bị gỡ bỏ.
RedC2 bao gồm Red Agent, một tính năng có khả năng chuyển đổi một yêu cầu ngôn ngữ tự nhiên thành một chuỗi các lệnh cho hệ thống bị nhiễm. Điều này cho phép kẻ tấn công yêu cầu thu thập thông tin tình báo hoặc thu thập thông tin xác thực mà không cần phải thực hiện từng bước một cách thủ công.
Lớp AI (Artificial Intelligence) trong Red Agent có thể làm cho các hoạt động tiếp theo trở nên nhanh chóng và dễ dàng phối hợp hơn. RedShell có khả năng thực thi lệnh, mở reverse shell, truyền tệp và kiểm tra người dùng, tiến trình, cũng như cài đặt mạng. Nó hỗ trợ proxy SOCKS5, chuyển tiếp cổng TCP và tạo đường hầm (tunnelling).
Các tính năng này có thể biến một máy chủ Linux bị xâm nhập thành một cầu nối để truy cập các hệ thống khác vốn dĩ không thể tiếp cận được. Rủi ro này tương tự như các sự cố đánh cắp thông tin xác thực CI gần đây, nơi môi trường của nhà phát triển cung cấp quyền truy cập quý giá vượt ra ngoài một máy trạm.
Khuyến nghị và biện pháp phòng ngừa
Các nhóm bảo mật nên kiểm tra các tệp lockfile, bộ đệm gói (package cache) và các tạo tác xây dựng (build artifacts) để tìm tên và phiên bản của các gói bị ảnh hưởng. Bất kỳ máy chủ nào đã nhập một trong các gói này nên được coi là có khả năng bị xâm nhập: cách ly máy chủ, xoay vòng các thông tin xác thực đã bị lộ, kiểm tra các vị trí lưu trữ persistence và xem xét các kết nối đi ra.
Việc chỉ gỡ bỏ một dependency có thể không loại bỏ được một implant đã được triển khai hoặc hoàn tác các bí mật đã bị đánh cắp. Những người phòng thủ nên theo dõi các tiến trình Node thực hiện thay đổi các tệp .bin được đóng gói thành tệp thực thi, các tiến trình con bất ngờ chạy từ thư mục dependency và lưu lượng truy cập đến các địa chỉ và cổng đã xác định.
Việc thắt chặt quy trình phê duyệt dependency, ghim phiên bản (pinning versions), xem xét nội dung gói và giới hạn quyền của hệ thống xây dựng có thể làm giảm phạm vi ảnh hưởng của các cuộc tấn công. Vụ việc này củng cố các bài học từ các cuộc tấn công phân phối mã độc đa nền tảng, nơi các payload gốc ẩn mình sau các công cụ phát triển đáng tin cậy.
Đối với việc ứng phó sự cố, ưu tiên các máy chủ có quyền truy cập vào kho lưu trữ mã nguồn, khóa triển khai, token đám mây hoặc mạng sản xuất. Tìm kiếm telemetry trên các điểm cuối cho hash và tên tệp của RedShell, chặn các giao tiếp độc hại đã được xác nhận khi thích hợp và bảo toàn các bản ghi (logs) trước khi xây dựng lại hệ thống. Bằng chứng cho thấy một mối đe dọa được thiết kế để thiết lập một tuyến đường cho việc xâm nhập mạng.
Các chỉ số về sự cố (Indicators of Compromise – IoCs)
Các chỉ số về sự cố được cung cấp trong báo cáo gốc bao gồm các địa chỉ IP và tên miền độc hại. Lưu ý: các địa chỉ IP và tên miền này được cố tình làm mất hiệu lực (ví dụ: [.]) để ngăn chặn việc phân giải hoặc tạo siêu liên kết ngẫu nhiên. Chỉ nên khôi phục lại định dạng chuẩn khi làm việc 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.
Báo cáo của TrendAI mô tả chi tiết các khả năng của RedShell và chiến dịch tấn công này.










