Chiến dịch npm Mini Shai-Hulud xâm phạm các gói @antv, nhắm vào token GitHub, khóa AWS và bí mật CI/CD của các nhà phát triển blockchain trong một cuộc tấn công chuỗi cung ứng có phối hợp.
Các bản phát hành độc hại bắt đầu ngay trước 2 giờ sáng UTC ngày 19 tháng 5. Vào thời điểm hầu hết các nhà phát triển ở Bờ Đông nhâm nhi tách cà phê đầu tiên, thiệt hại đã được thực hiện.
Nhóm Nghiên cứu Mối đe dọa của Socket đang theo dõi một cuộc tấn công chuỗi cung ứng npm đang hoạt động xâm phạm các gói trong bộ trực quan hóa antv. Tài khoản người bảo trì npm bị ảnh hưởng, atool, kiểm soát một loạt các gói trực quan hóa dữ liệu và đồ thị được sử dụng nhiều trong công cụ phát triển blockchain. Trong số các gói bị gắn cờ: antv/g2, antv/g6, antv/x6, antv/l7, antv/s2, antv/f2 và các công cụ liên quan bên ngoài không gian tên antv bao gồm timeago.js, size-sensor và canvas-nest.js.
echarts-for-react nằm ở trung tâm của sự phơi nhiễm. Gói đó nhận khoảng 1,1 triệu lượt tải xuống hàng tuần. Socket đã gắn cờ một phiên bản độc hại, 3.2.7, là phần mềm độc hại đã biết, với tạo phẩm bị xâm phạm được xuất bản chỉ 19 phút trước khi phát hiện theo dữ liệu kho gói riêng của Socket.
639 Phiên bản. Một đêm. Vẫn đang tiếp tục.
Cửa sổ hoạt động rất hẹp. Các bản phát hành độc hại bắt đầu vào khoảng 01:56 UTC và dừng vào khoảng 02:56 UTC. Hệ thống phát hiện của Socket đã phát hiện hầu hết trong vòng sáu đến mười hai phút sau khi xuất bản. Thời gian phát hiện trung bình là khoảng 6,7 phút, theo đánh giá nội bộ của công ty được đăng trên socket.dev.
Trên toàn bộ chiến dịch Mini Shai-Hulud, Socket hiện đã theo dõi 1.055 phiên bản bị xâm phạm trên 502 gói duy nhất. Chiến dịch trải dài trên npm, PyPI và Composer. npm chiếm gần như tất cả: 1.048 phiên bản trên 498 gói duy nhất, với PyPI và Composer chỉ đóng góp một số ít.
Các gói bị ảnh hưởng trong đêm đó cũng bao gồm các không gian tên bên ngoài antv. Các gói dưới lint-md, openclaw-cn và starmind đã nhận được các bản cập nhật độc hại trong cùng một đợt. Dữ liệu CSV được phóng viên này xem xét cho thấy các gói như antv/x6 phiên bản 3.2.7 và 3.3.7, antv/g2 phiên bản 5.5.8 và 5.6.8, antv/g6, antv/g2plot, antv/s2 và hàng tá gói khác, tất cả đều được xuất bản trong cùng một khung giờ một giờ đó.

Nguồn:socket.dev.
Tải trọng thực sự làm gì
Mã được tiêm không hề tinh tế về mục tiêu của nó. Một tệp index.js cấp gốc sửa đổi package.json để tự chạy tại thời điểm cài đặt thông qua một hook preinstall: bun run index.js.
Các lớp làm xáo trộn chuỗi rất sâu. Tải trọng sử dụng một bảng tra cứu lớn, giải mã chuỗi thời gian chạy và một bộ giải mã tùy chỉnh được đăng ký với globalThis dưới tên fc2edea72. Giải mã nó tiết lộ điểm cuối lọc dữ liệu: https://t[.]m-kosche[.]com:443/api/public/otel/v1/traces. Dữ liệu thu thập được nén bằng gzip, mã hóa bằng AES-256-GCM, và bản thân khóa AES được bọc bằng RSA-OAEP với SHA-256 trước khi truyền. Việc chặn lưu lượng đó từ viễn trắc mạng là không dễ dàng.
Tải trọng săn lùng cụ thể các bí mật môi trường của nhà phát triển. Token GitHub, token npm, thông tin xác thực AWS, tài liệu tài khoản dịch vụ Kubernetes, token Vault, khóa SSH riêng tư, tệp xác thực Docker và chuỗi kết nối cơ sở dữ liệu đều xuất hiện trong danh sách mục tiêu. Nó cũng chứa logic rõ ràng cho 19 nền tảng CI/CD, bao gồm GitHub Actions, GitLab CI, CircleCI, Jenkins, Azure DevOps, AWS CodeBuild, Buildkite, Vercel và Netlify.
Danh sách đó đọc giống như một giỏ mua sắm. Không phải là một công cụ giám sát.
Kho lưu trữ GitHub, Tên Dune và một con sâu có tham vọng
Một đường dẫn lọc dữ liệu dự phòng trên GitHub tồn tại cho các trường hợp điểm cuối HTTPS chính bị chặn. Nếu tải trọng có được một token GitHub có thể sử dụng, nó tạo một kho lưu trữ dưới tài khoản nạn nhân và commit dữ liệu bị đánh cắp vào một thư mục results/. Tên tệp tuân theo mẫu results-timestamp-counter.json. Socket trước đây đã ghi lại hành vi này trong các đợt Mini Shai-Hulud trước đó.
Kết quả tìm kiếm công khai trên GitHub cho cụm từ ngược đã được đánh dấu hiện cho thấy khoảng 1,8 nghìn kho lưu trữ, dựa trên ảnh chụp màn hình được xem xét từ báo cáo của Socket. Tên kho lưu trữ tuân theo các mẫu chủ đề Dune: sayyadina-stillsuit-852, atreides-ornithopter-112, harkonnen-phibian-552. Một kho lưu trữ được quan sát, Zaynex/sayyadina-stillsuit-852, chứa một thư mục results/ phù hợp với việc lọc dữ liệu đang hoạt động.
Cũng có logic sâu được tích hợp sẵn. Gói xác thực token npm thông qua các API đăng ký, liệt kê các gói có thể bảo trì, tiêm hook preinstall, tăng số phiên bản, sau đó xuất bản lại dưới danh tính người bảo trì bị xâm phạm. Được thiết kế để lây lan, không chỉ ăn cắp.
Các biến thể Mini Shai-Hulud trước đó đã tấn công các gói TanStack và các công cụ liên quan đến Intercom. Tên tệp khác nhau, điểm cuối C2 khác nhau. Đợt này sử dụng một index.js cấp gốc và một thân tải trọng nhỏ hơn. Hành vi cốt lõi khớp nhau trên các biến thể. Socket coi đây là cùng một họ chiến dịch.
Mối đe dọa không phải là lý thuyết đối với cơ sở hạ tầng tiền điện tử. Các nhà phát triển blockchain xây dựng công cụ DeFi hoặc bảng điều khiển Web3 thường xuyên sử dụng các thư viện biểu đồ antv để trực quan hóa dữ liệu trên chuỗi. Một đường ống CI/CD bị xâm phạm tại một dự án DeFi có thể làm lộ thông tin xác thực của người triển khai hoặc quyền truy cập quản trị giao thức. Socket cho biết cuộc điều tra vẫn đang mở.





Để lại một bình luận