Hacker nhắm dev ETH và SOL bằng gói npm typosquat

Năm gói npm độc hại đã nhắm vào developer Ethereum và Solana bằng kỹ thuật typosquatting để đánh cắp khóa riêng và gửi trực tiếp về Telegram của kẻ tấn công.

Các nhà nghiên cứu bảo mật phát hiện chiến dịch này vận hành dưới một tài khoản duy nhất, có hạ tầng điều khiển (C2) đang hoạt động. Dù một gói bị gỡ chỉ sau vài phút, cơ chế ẩn mã và exfiltration vẫn đủ để làm lộ khóa nếu developer cài nhầm.

NỘI DUNG CHÍNH
  • 5 gói npm giả mạo thư viện crypto đánh cắp khóa riêng và đẩy về Telegram.
  • 4 gói nhắm Solana (can thiệp Base58 decode), 1 gói nhắm Ethereum (Wallet constructor).
  • Khóa riêng bị lộ được xem là đã compromised, cần chuyển tài sản sang ví mới ngay.

Chiến dịch npm độc hại nhắm thẳng developer Ethereum và Solana

Năm package npm giả mạo thư viện phổ biến đã được dùng để “móc” các hàm xử lý khóa riêng, sau đó gửi khóa về một Telegram bot được hardcode, khiến developer khó phát hiện.

Không chỉ nhà đầu tư nhỏ lẻ mới là mục tiêu của tội phạm crypto. Nhóm tấn công tận dụng social engineering và đặc biệt là typosquatting, tức đặt tên package rất giống thư viện hợp pháp để tăng khả năng bị cài nhầm.

Các nhà nghiên cứu từ Socket xác định 5 package độc hại đều do một tài khoản phát hành và có dấu hiệu cùng một quy trình build. Dù có package bị gỡ trong khoảng 5 phút, gói này vẫn ẩn mã và cố gắng gửi dữ liệu đã đánh cắp.

Typosquatting hoạt động như thế nào trong hệ sinh thái npm

Typosquatting tạo ra package có tên gần giống thư viện thật, khiến developer cài nhầm khi gõ sai hoặc chọn nhầm dependency, từ đó mở đường cho mã độc chạy trong môi trường build hoặc runtime.

Khi package giả mạo được cài, nó có thể được gọi gián tiếp thông qua dependency chain hoặc trực tiếp trong code. Điểm nguy hiểm là hành vi vẫn trả về kết quả “đúng” như thư viện thật, nên quá trình test cơ bản có thể không phát hiện bất thường.

Cách mã độc đánh cắp khóa riêng mà vẫn “chạy bình thường”

Mã độc hook vào các hàm mà developer dùng để truyền khóa riêng, gửi khóa sang Telegram trước khi trả kết quả kỳ vọng, khiến ứng dụng vẫn hoạt động nhưng khóa đã bị exfiltrate.

Đọc thêm:  OpenAI mở rộng rà soát tác nhân AI sau tương tác với website chính phủ Mỹ

Cơ chế tấn công dựa trên việc chèn lớp trung gian vào các lời gọi quan trọng. Khi hàm được gọi, package lấy dữ liệu nhạy cảm (khóa riêng), gửi đi, rồi tiếp tục trả về output như bình thường. Điều này làm developer không nghi ngờ vì không thấy lỗi tức thì.

4 package nhắm Solana và 1 package nhắm Ethereum

Bốn package nhắm Solana bằng cách can thiệp các lời gọi Base58 decode(), còn package nhắm Ethereum tập trung vào constructor của Wallet để thu thập khóa.

Theo phân tích, các gói nhắm Solana thực hiện intercept các thao tác giải mã Base58, nơi khóa/seed có thể đi qua trong một số luồng xử lý. Với Ethereum, package giả mạo sao chép thư viện thật và cấy thêm thay đổi nhỏ nhưng đủ để trích xuất dữ liệu nhạy cảm.

Điểm chung: gửi dữ liệu về cùng một Telegram endpoint, không cần server ngoài

Tất cả các package gửi dữ liệu về cùng một Telegram endpoint với bot token và chat ID hardcode, giúp kẻ tấn công nhận khóa mà không cần hạ tầng máy chủ riêng.

Việc hardcode bot token và chat ID trong từng package giúp hệ thống hoạt động miễn là Telegram bot vẫn online. Điều này cũng làm giảm dấu vết về máy chủ C2 truyền thống, vì kênh exfiltration nằm trên nền tảng Telegram.

Yêu cầu Node.js 18+ vì dùng global fetch

Các package dựa vào global fetch, nên thường chỉ hoạt động đúng trên Node.js 18 trở lên; phiên bản cũ có thể khiến request thất bại “im lặng” và không gửi được dữ liệu.

Đây là chi tiết kỹ thuật quan trọng trong điều tra và đánh giá phạm vi rủi ro. Nếu môi trường chạy không hỗ trợ global fetch, hành vi gửi dữ liệu có thể không xảy ra, nhưng việc cài nhầm dependency vẫn là tín hiệu cần xử lý ngay vì có thể phát sinh biến thể khác.

Các biến thể package: từ đơn giản đến che giấu bằng obfuscation và dependency chain

Một số package sửa trực tiếp hàm decode để gửi khóa, một số khác dùng obfuscation hoặc đưa payload qua dependency nhằm che giấu và tăng tỷ lệ tồn tại.

Đọc thêm:  Thị trường dự đoán vượt 20 tỷ USD giao dịch tuần lần đầu

Gói raydium-bs58 được mô tả là đơn giản nhất: chỉnh sửa decode, gửi khóa trước khi trả kết quả. README bị sao chép từ SDK hợp pháp, trường author để trống, đây là dấu hiệu thường gặp của typosquatting.

Gói base-x-64 che payload bằng obfuscation và gửi tin nhắn chứa khóa bị đánh cắp qua Telegram. Trong khi đó bs58-basic không chứa mã độc trực tiếp nhưng phụ thuộc base-x-64, qua đó “chuyển” payload theo chuỗi phụ thuộc để giảm khả năng bị phát hiện khi xem nhanh source.

Package nhắm Ethereum có dấu hiệu can thiệp thủ công ở file đã biên dịch

Gói ethersproject-wallet sao chép @ethersproject/wallet và chèn thêm một dòng sau khi compile, thay đổi chỉ xuất hiện trong file compiled, cho thấy có thao tác chỉnh sửa thủ công.

Mẫu tấn công này nguy hiểm vì so sánh source có thể không thấy khác biệt rõ, nhưng artifact build lại chứa hành vi đánh cắp. Việc thay đổi chỉ nằm ở file đầu ra cũng là tín hiệu cho thấy chủ đích né kiểm tra ở cấp mã nguồn.

Dấu hiệu quy về một tác nhân: endpoint chung, lỗi chính tả giống nhau và build artifacts trùng lặp

Các package có chung endpoint điều khiển, lỗi chính tả tương tự, cùng kiểu build artifacts; có gói trùng compiled file và có gói phụ thuộc trực tiếp gói khác, cho thấy khả năng cao do một nhóm thực hiện.

Những liên kết này giúp đội bảo mật gom cụm (clustering) để nhận diện chiến dịch thay vì xử lý từng package riêng lẻ. Trong thực tế ứng phó, điều này hỗ trợ săn lùng IOC trong repo, lockfile, CI logs và registry logs nhanh hơn.

Khóa riêng bị lộ phải xem là đã compromised và cần chuyển tiền ngay

Nếu đã cài các package liên quan và từng nhập khóa riêng, cần coi khóa đã bị lộ và nhanh chóng chuyển toàn bộ tài sản sang ví mới để giảm nguy cơ bị rút tiền.

Các nhà nghiên cứu đã gửi yêu cầu gỡ bỏ (takedown) tới npm. Tuy nhiên, việc gỡ package không đảm bảo an toàn cho những khóa đã bị lộ trước đó. Quy trình an toàn thường gồm: loại bỏ dependency, xoay vòng khóa, tạo ví mới, chuyển tài sản, và rà soát lịch sử giao dịch để phát hiện rút tiền bất thường.

Đọc thêm:  Độ chính xác AI y tế vượt bằng chứng cải thiện kết quả bệnh nhân

Rủi ro chuỗi cung ứng phần mềm crypto vẫn tiếp diễn

Các chiến dịch nhắm developer vẫn tăng, với ví dụ khác là một installer giả từng xuất hiện trên npm nhằm đánh cắp khóa riêng, seed phrase và dữ liệu nhạy cảm.

Mô hình tấn công supply chain tận dụng thói quen cài package/installer để chiếm quyền truy cập dữ liệu ví. Vì developer thường có quyền truy cập môi trường build, key, và endpoint triển khai, tác động có thể lan từ cá nhân sang dự án hoặc người dùng cuối nếu mã độc đi theo bản phát hành.

So sánh package npm độc hại và thư viện crypto hợp pháp. Tham khảo: bài phân tích của Socket.

Những câu hỏi thường gặp

Typosquatting trong npm là gì và vì sao nguy hiểm với developer crypto?

Typosquatting là việc tạo package có tên gần giống thư viện phổ biến để dụ cài nhầm. Với developer crypto, chỉ cần một dependency can thiệp luồng xử lý khóa riêng là có thể làm lộ khóa và mất toàn bộ tiền trong ví.

Vì sao việc gửi khóa qua Telegram lại khó phát hiện?

Mã độc thường gửi khóa trước rồi vẫn trả về kết quả đúng, nên ứng dụng chạy bình thường. Ngoài ra, Telegram bot token và chat ID có thể bị hardcode, không cần máy chủ lạ, khiến dấu hiệu mạng khó nổi bật hơn so với C2 truyền thống.

Node.js phiên bản nào có nguy cơ cao hơn trong chiến dịch này?

Các package được mô tả là dựa vào global fetch và thường cần Node.js 18+. Với Node.js cũ hơn, request có thể thất bại im lặng và không gửi được dữ liệu, nhưng việc đã cài nhầm dependency vẫn phải xử lý như một sự cố bảo mật.

Nếu đã từng dùng khóa riêng khi cài nhầm package, cần làm gì ngay?

Hãy coi khóa riêng đã bị lộ: tạo ví mới, chuyển toàn bộ tài sản sang địa chỉ mới càng sớm càng tốt, thu hồi/đổi các khóa liên quan, gỡ dependency độc hại và kiểm tra lockfile, CI, cùng lịch sử giao dịch để phát hiện hành vi rút tiền.

BÀI VIẾT LIÊN QUAN

Matt Hougan dự báo NEAR tăng 40 lần đến 2030 trong kịch bản cơ sở

Matt Hougan dự báo NEAR tăng 40 lần đến...

Matt Hougan, Giám đốc đầu tư Bitwise, đưa ra kịch bản cơ sở NEAR đạt 155,85 USD...
Phí THORChain tăng hơn gấp đôi dù không có tiền từ vụ hack Bitget

Phí THORChain tăng hơn gấp đôi dù không có...

THORChain thu khoảng 404.600 USD phí hoán đổi từ ngày 5–11/10, hơn gấp đôi tuần trước đợt...
Lợi suất trái phiếu kho bạc Mỹ gần đỉnh 24 năm, Pimco cảnh báo 6%

Lợi suất trái phiếu kho bạc Mỹ gần đỉnh...

Lợi suất trái phiếu Kho bạc Mỹ kỳ hạn 10 năm dao động quanh 5,29% trong phiên...