Một mã độc dạng sâu viết bằng Rust có tên IronWorm đã xâm phạm ít nhất 36 gói npm trong hệ sinh thái Arweave, đánh cắp thông tin đăng nhập của nhà phát triển và sử dụng chúng để tự nhân bản qua các kho lưu trữ GitHub trước khi biến mất.
JFrog Security Research đã xác định chiến dịch này khi điều tra hoạt động đáng ngờ liên quan đến một tài khoản nhà phát triển trong hệ sinh thái mã nguồn mở Arweave và WeaveDB. Mã độc được viết bằng Rust, thu thập các khóa API, thông tin đăng nhập đám mây, khóa SSH và token xuất bản npm từ các máy tính của nhà phát triển bị nhiễm, sau đó tái sử dụng các thông tin đó để đẩy mã độc lên các kho lưu trữ khác.
"So sánh gần nhất là chiến dịch Shai-Hulud," nhóm nghiên cứu của JFrog cho biết trong một báo cáo được công bố hôm thứ Tư. "Mã độc chúng tôi xem xét có nhiều điểm chung với nó: cùng ý tưởng xâm phạm nhà phát triển, đánh cắp thông tin đăng nhập, và sử dụng các quy trình chuỗi cung ứng phần mềm đáng tin cậy để lây lan xa hơn." Nhưng IronWorm đã đưa khái niệm này "lên một tầm cao mới," các nhà nghiên cứu cho biết thêm.
Kẻ tấn công đã thực hiện ít nhất 57 thay đổi mã độc hại trên các kho lưu trữ thuộc về chín tổ chức, đặt ngày tháng cũ hơn cho các commit để che giấu dòng thời gian xâm phạm. Một số đóng góp được gán cho mô hình AI Claude của Anthropic sử dụng email "[email protected]" mặc dù có dấu thời gian cũ tới 13 năm. Nhật ký GitHub Actions cho thấy các commit thực tế được đẩy lên bởi người dùng ocrybit đã bị xâm phạm, JFrog cho biết. OX Security, cũng theo dõi chiến dịch này, cho biết các gói bị ảnh hưởng đã có hơn 32.000 lượt tải xuống hàng tháng trước khi mối đe dọa được ngăn chặn.
Một Phần Mềm Độc Tùy Chỉnh Không Có Tiền Lệ Đã Biết
JFrog cho biết tải trọng IronWorm không khớp với bất kỳ infostealer, rootkit eBPF, hoặc khung điều khiển và chỉ huy nào đã biết trong cơ sở dữ liệu của họ. Tệp nhị phân chứa hàng nghìn hàm với các chuỗi được mã hóa chỉ có thể được khôi phục tại thời điểm chạy, mỗi hàm sử dụng các tham số giải mã duy nhất thay vì một khóa cứng duy nhất.
Mã độc nhắm vào 86 biến môi trường trên các nhà cung cấp đám mây, dịch vụ AI và nền tảng tiền điện tử. Nó thu thập thông tin đăng nhập cho Amazon Web Services, Docker, Kubernetes, npm và cấu hình vault, cũng như các khóa API cho các dịch vụ AI bao gồm Anthropic, OpenAI, Google Gemini, Cohere, Mistral, Groq, Perplexity và xAI. Nó cũng nhắm vào ví tiền điện tử Exodus trên máy tính để bàn — mặc dù kẻ tấn công đã mã hóa cứng cụm từ khôi phục BIP-39 của ví riêng để ngăn mã độc chạm vào nó, một chi tiết mà JFrog đã truy vết đến một ví thử nghiệm gần như trống chỉ chứa vài xu.
IronWorm sử dụng một tải trọng eBPF hoạt động như một rootkit nhân Linux để ẩn các tiến trình, tệp tin và hoạt động mạng độc hại khỏi các hệ thống bảo mật. Trên các hệ thống có khóa nhân được kích hoạt, các thủ thuật ẩn tiến trình thất bại và hoạt động trở nên hiển thị trở lại, JFrog lưu ý. Mã độc giao tiếp với người điều hành qua Tor và chấp nhận các lệnh để tải lên bí mật, thả tệp tin và chạy shell từ xa.
Tự Nhân Bản Qua Quy Trình Xuất Bản Đáng Tin Cậy
Chuỗi tấn công bắt đầu với một tài khoản npm bị xâm phạm tên "asteroiddao," đã xuất bản các phiên bản gói chứa tệp nhị phân Rust ELF được thực thi thông qua hook cài đặt trước. Trong môi trường CI, mã độc đã lạm dụng luồng Trusted Publishing của npm — lấy mã thông báo OIDC từ môi trường CI của nhà phát triển để đẩy các phiên bản bị nhiễm độc lên registry mà không cần thông tin đăng nhập npm.
Tải trọng độc hại cũng đã thay thế các quy trình GitHub Actions hiện có bằng một phiên bản có khả năng thu thập bí mật, ghi chúng vào một tệp tin trông vô hại và tải nó lên như một artifact xây dựng — loại bỏ nhu cầu về máy chủ C2 bên ngoài để trích xuất dữ liệu. Kẻ tấn công sau đó đã âm thầm gỡ bỏ các gói độc hại khỏi GitHub trong vòng một ngày sau khi xuất bản, JFrog cho biết.
Chiến dịch này tương tự như sâu Shai-Hulud được triển khai bởi nhóm tội phạm mạng TeamPCP, nhóm trước đây đã xâm phạm công cụ quét bảo mật Trivy và các dự án khác để triển khai infostealer nhắm vào bí mật CI/CD. Nhưng IronWorm được viết bằng Rust thay vì JavaScript, khiến nó khó bị dịch ngược hơn đáng kể. JFrog cho biết họ "không thể biết chắc chắn" liệu IronWorm có liên quan trực tiếp đến TeamPCP hay là một bản sao chép.
Cuộc tấn công nhấn mạnh cách môi trường phát triển đã trở thành mục tiêu hàng đầu cho việc xâm phạm chuỗi cung ứng. Bằng cách xâm phạm một nhà phát triển duy nhất, các tác nhân đe dọa có thể đưa mã độc vào các dự án phần mềm đáng tin cậy và tiếp cận nhiều tổ chức hạ nguồn. Các tổ chức có thể đã bị ảnh hưởng nên kiểm tra kho lưu trữ để tìm các commit từ tài khoản ocrybit, xoay vòng tất cả các khóa và bí mật có sẵn cho tài khoản bị xâm phạm, và kiểm tra các gói npm đã xuất bản để tìm các phiên bản độc hại, JFrog cho biết.
Bài viết này chỉ nhằm mục đích cung cấp thông tin và không cấu thành lời khuyên đầu tư.