Tin tặc sử dụng Blockchain C2 để ẩn giấu tấn công chuỗi cung ứng phần mềm
Các nhóm tấn công đang lạm dụng mạng blockchain làm hạ tầng C2 để đánh cắp thông tin xác thực đám mây thông qua các gói npm độc hại, gây rủi ro nghiêm trọng cho môi trường CI/CD.

- Kỹ thuật mới: Tin tặc sử dụng hợp đồng thông minh (smart contract) trên blockchain làm hạ tầng C2 để xoay vòng địa chỉ máy chủ mà không cần thay đổi mã nguồn độc hại.
- Mục tiêu tấn công: Các gói npm bị nhiễm độc nhắm vào môi trường phát triển, CI/CD để đánh cắp token đám mây, SSH keys và thông tin xác thực GitHub.
- Phạm vi ảnh hưởng: Hơn 400 gói npm đã bị lây nhiễm trong chiến dịch ChainDrop, cùng với các chiến dịch tương tự như PolinRider nhắm vào nhiều hệ sinh thái khác.
Các tác nhân đe dọa đang ngày càng chuyển dịch sang việc sử dụng mạng blockchain công khai làm lớp điều khiển và ra lệnh (C2) cho mã độc trong chuỗi cung ứng phần mềm. Kỹ thuật này cho phép kẻ tấn công xoay vòng hạ tầng linh hoạt mà không cần phải cập nhật lại mã độc đã triển khai trên hệ thống của nhà phát triển. Điều này tạo ra một phương thức cực kỳ bền bỉ để điều hướng các gói tin bị nhiễm độc đến các máy chủ đánh cắp dữ liệu mới, đồng thời làm giảm hiệu quả của các danh sách chặn tên miền (domain blocklists) truyền thống.
Rủi ro này đặc biệt nghiêm trọng đối với các tổ chức tập trung vào hạ tầng đám mây. Các gói mã nguồn mở bị nhiễm độc có thể thực thi bên trong máy tính xách tay của nhà phát triển và các đường ống CI/CD, nơi chúng có khả năng truy cập vào các token định danh đám mây tạm thời, bí mật triển khai, khóa tài khoản dịch vụ, thông tin xác thực GitHub và các dữ liệu có giá trị cao khác.
Cơ chế tấn công thông qua Blockchain C2
Trong các chiến dịch mã độc thông thường, kẻ tấn công thường mã hóa cứng (hard-code) một tên miền hoặc địa chỉ IP vào mã độc. Điều này tạo ra một mục tiêu rõ ràng cho các đội ngũ phòng thủ: các nhóm bảo mật có thể chặn địa chỉ đó, các nhà đăng ký có thể đình chỉ tên miền và các nền tảng gói có thể quét mã để tìm kiếm các chỉ số này. Tuy nhiên, mô hình C2 dựa trên blockchain đã thay đổi hoàn toàn cuộc chơi này.

Thay vì chứa một địa chỉ C2 cố định, mã độc sẽ truy vấn một hợp đồng thông minh hoặc giao dịch blockchain để lấy địa chỉ đích hiện tại tại thời điểm thực thi (runtime). Chiến dịch ChainDrop đã sử dụng cách tiếp cận này thông qua một hợp đồng thông minh trên Ethereum. Theo các nhà nghiên cứu tại Unit 42, mã độc đã truy vấn hợp đồng để lấy địa chỉ dùng cho việc đánh cắp dữ liệu, sau đó chuyển C2 từ npm-cache[.]com sang awqhnjewqjkl[.]icu thông qua một giao dịch Ethereum duy nhất. Kỹ thuật này thường được gọi là EtherHiding.
ChainDrop và các mục tiêu trong quy trình phát triển
Quá trình lây nhiễm ChainDrop bắt đầu bằng một gói npm đã bị sửa đổi, chứa lệnh preinstall. Lệnh này khởi chạy setup.mjs, tải xuống môi trường thực thi JavaScript Bun hợp lệ nếu chưa có sẵn và sử dụng nó để chạy payload đã được làm rối (obfuscated). Kẻ tấn công không cần xâm nhập vào Bun, chúng chỉ đơn giản sử dụng môi trường thực thi hợp lệ này để chạy mã độc.
Sau khi kích hoạt, mã độc sẽ kiểm tra các tệp tin cục bộ, biến môi trường và dịch vụ metadata đám mây để tìm kiếm thông tin xác thực. Nó cũng quét bộ nhớ của các tiến trình GitHub Actions runner để tìm các token OpenID Connect (OIDC) tồn tại trong thời gian ngắn và các bí mật của runner. Đây là chi tiết quan trọng vì các hệ thống CI/CD thường sử dụng thông tin xác thực tạm thời không lưu trữ trên ổ đĩa.

Chiến dịch thứ hai, được theo dõi với tên gọi PolinRider, cho thấy mô hình này đang mở rộng ra ngoài npm. Các nhà nghiên cứu đã liên kết chiến dịch này với các hoạt động có nguồn gốc từ Triều Tiên, phát hiện các trình tải độc hại trong npm, Packagist, Go modules và các tiện ích mở rộng Chrome. Các trình tải này sử dụng blockchain và các dịch vụ RPC công cộng kết nối với TRON, Aptos và BNB Smart Chain để lấy các payload tiếp theo đã được mã hóa.
Bảng chỉ số IOCs (Indicators of Compromise)
| Loại thực thể | Giá trị / Chỉ số | Mô tả tác động |
|---|---|---|
| Hợp đồng thông minh | 0xE1f2395ee43e45A1556EC6438a88c31B83493103 | Hợp đồng giải mã C2 được truy vấn qua Ethereum RPC |
| Giao dịch Ethereum | 0xc55920f1bd0531b6738153068a666c080ddded47e6256f1fd980d51c0b507c91 | Giao dịch dùng để xoay vòng tên miền C2 |
| Tên miền C2 | npm-cache[.]com | Điểm cuối exfiltration ban đầu của ChainDrop |
| Tên miền C2 | awqhnjewqjkl[.]icu | Tên miền C2 sau khi xoay vòng |
| Tệp tin | .vscode/tasks.json | Cấu hình tác vụ VS Code để thực thi khi mở thư mục |
⚠️ Cảnh báo quan trọng: Các đội ngũ bảo mật cần coi lưu lượng truy cập blockchain từ các build runner và thiết bị của nhà phát triển là một tín hiệu đáng ngờ nếu tổ chức không có nhu cầu kinh doanh liên quan đến Web3. Hãy kiểm tra các tập lệnh vòng đời gói, cấu hình kho lưu trữ và cô lập các CI runner ngay lập tức.
Để phòng ngừa, các tổ chức nên thực hiện kiểm tra định kỳ các tệp cấu hình như vite.config.js, .vscode/tasks.json và các tệp tin giả mạo khác. Việc hạn chế kết nối outbound từ các hệ thống xây dựng và xoay vòng toàn bộ thông tin xác thực có thể truy cập được từ máy chủ bị ảnh hưởng là bước bắt buộc trong quy trình ứng phó sự cố. Tham khảo thêm thông tin chi tiết tại Unit 42 Threat Research để cập nhật các kỹ thuật săn tìm mối đe dọa mới nhất.
Mạng Lưới An Ninh Mạng & Cộng Đồng
Nhận cảnh báo 0-Day khẩn cấp, phân tích mã độc và tham gia thảo luận kỹ thuật cùng chuyên gia.
Ban biên tập nội dung và phân tích an ninh mạng tại ADSECVN.COM.



