Mã độc AI nguy hiểm đánh cắp ví crypto qua NPM

Mã độc AI nguy hiểm đánh cắp ví crypto qua NPM

Các nhà nghiên cứu bảo mật tại Safety đã phát hiện một gói NPM độc hại được tạo bởi AI mang tên @kodane/patch-manager. Gói này được thiết kế như một công cụ đánh cắp ví tiền điện tử tiên tiến, đại diện cho một mối đe dọa mạng mới và nghiêm trọng trong hệ sinh thái phát triển phần mềm.

Gói @kodane/patch-manager đã ngụy trang một cách khéo léo, tự giới thiệu là một “NPM Registry Cache Manager” vô hại. Mục đích giả mạo này nhằm đánh lừa người dùng, viện cớ để thực hiện các tác vụ như xác thực giấy phép và tối ưu hóa bộ nhớ cache của registry.

Tuy nhiên, bên trong lớp vỏ bọc này, gói chứa đựng những cơ chế tinh vi và mã hóa phức tạp. Chúng được thiết kế đặc biệt để lén lút rút sạch tiền và tài sản kỹ thuật số từ ví tiền điện tử của cả nhà phát triển và người dùng cuối bị ảnh hưởng.

Bản Chất và Cơ Chế Lừa Đảo Của Mã Độc

Mặc dù được công bố dưới tên người dùng NPM “Kodane” với vẻ ngoài hợp pháp, mã nguồn thực sự của malware lại bộc lộ ý định đen tối của nó. Trong tài liệu nội bộ, nó đã tự nhận diện một cách trơ trẽn là “ENHANCED STEALTH WALLET DRAINER”.

Sự tự nhận diện này cho thấy mức độ tự tin và sự liều lĩnh của kẻ tấn công, bất chấp những lớp ngụy trang phức tạp được sử dụng để che giấu mục đích thực sự của một mã độc AI.

Chuỗi Lây Nhiễm và Duy Trì Quyền Truy Cập Hệ Thống

Chuỗi lây nhiễm của mã độc AI này bắt đầu khi script postinstall của gói được thực thi tự động thông qua Node.js. Script này thực hiện các bước quan trọng để thiết lập quyền kiểm soát.

Đầu tiên, nó đổi tên các tệp quan trọng như monitor.js, sweeper.js, và utils.js, sau đó cấp quyền thực thi cho chúng. Đây là bước chuẩn bị để triển khai các thành phần độc hại.

Tiếp theo, các tệp này được cài đặt vào các thư mục ẩn trên hệ thống của nạn nhân. Các đường dẫn thư mục này được lựa chọn để mô phỏng chặt chẽ các đường dẫn bộ nhớ cache NPM hợp pháp, giúp mã độc ẩn mình hiệu quả hơn.

Vị Trí Lưu Trữ và Che Giấu Mã Độc

Mã độc được triển khai tại các vị trí hệ thống cụ thể tùy thuộc vào hệ điều hành. Trên macOS, nó nhắm mục tiêu vào ~/Library/Application Support/npm/registry-cache/. Đối với môi trường Linux, mã độc sử dụng đường dẫn ~/.local/share/npm/registry-cache/.

Đáng chú ý, trên các hệ thống Windows, mã độc AI này ẩn mình tại %APPDATA%\npm\registry-cache/. Để tăng cường khả năng che giấu, nó còn sử dụng lệnh attrib +H để đặt thuộc tính ẩn cho thư mục, khiến việc phát hiện trở nên khó khăn hơn đối với người dùng thông thường.

# Ví dụ lệnh attrib +H trên Windows được mã độc sử dụng
attrib +H %APPDATA%\npm\registry-cache\

Một khi đã triển khai thành công, malware đảm bảo tính bền bỉ và duy trì quyền truy cập bằng cách khởi tạo một tiến trình nền tách rời từ tệp connection-pool.js. Tiến trình này ngay lập tức thiết lập kênh liên lạc với máy chủ command-and-control (C2) của kẻ tấn công.

Địa chỉ C2 được xác định là https://sweeper-monitor-production.up.railway.app. Điều đáng lo ngại là máy chủ này vẫn có thể truy cập công khai mà không yêu cầu bất kỳ hình thức xác thực nào, cho phép nó quản lý nhiều hệ thống bị lây nhiễm đồng thời.

Script độc hại này có khả năng tạo ra một định danh máy duy nhất cho từng máy chủ bị xâm phạm và chuyển tiếp thông tin này đến C2. Các nhà nghiên cứu đã quan sát thấy các “sự kiện nạp tiền” (funding events) đang diễn ra liên tục trên máy chủ C2.

Nhật ký ghi nhận các vụ xâm phạm gần đây trên các máy chủ có định danh như SmFtZXNz và bG9jYWxo, mặc dù toán tử thường xuyên xóa các bản ghi để che giấu dấu vết. Thông tin chi tiết hơn về các quan sát này có thể tìm thấy tại báo cáo của Safety.

Cơ Chế Đánh Cắp Tài Sản Tiền Điện Tử

Khi mã độc AI phát hiện các tệp ví tiền điện tử trên hệ thống bị nhiễm, tiến trình kiểm soát sẽ chuyển giao cho tệp transaction-cache.js. Đây là thành phần chịu trách nhiệm thực hiện hành vi rút tiền thực tế.

Script này tự động xác định các tài sản tiền điện tử có sẵn, tính toán các khoản phí chuyển khoản cần thiết, và sau đó thực hiện việc vét sạch phần lớn số tiền trong ví.

Một điểm đáng chú ý là nó chỉ để lại một lượng nhỏ số dư trong ví, vừa đủ để trang trải các chi phí giao dịch. Điều này giúp giao dịch rút tiền trông tự nhiên hơn và khó bị phát hiện ngay lập tức bởi các hệ thống giám sát tự động.

Để thực hiện việc chuyển tiền, mã độc sử dụng một endpoint Solana RPC được mã hóa cứng trong mã nguồn: https://mainnet.helius-rpc.com/?api-key=97188cdf-0b78-4cba-86f9-c4bbbd44c6aa. Tất cả các tài sản bị đánh cắp sau đó được chuyển đến một địa chỉ ví cụ thể: B2XwbrGSXs3LAAcqFqKqGUug5TFA1Bug2NNGH3F3mWNK.

Địa chỉ ví này cho thấy khối lượng giao dịch cực kỳ cao và liên tục, một dấu hiệu rõ ràng cho thấy sự thành công và quy mô rộng lớn của chiến dịch khai thác được thực hiện bởi mã độc AI này.

Nguồn Gốc và Lịch Sử Phân Phối

Dựa trên dấu thời gian xuất bản, kẻ tạo ra mã độc AI này có khả năng đến từ một khu vực thuộc múi giờ UTC+5, như Nga, Trung Quốc, hoặc Ấn Độ. Tác nhân này đã rất tích cực, phát hành tổng cộng 19 phiên bản của gói độc hại, bắt đầu từ ngày 28 tháng 7 năm 2025.

Gói @kodane/patch-manager đã thu hút hơn 1.500 lượt tải xuống trong một thời gian ngắn trước khi bị phát hiện. NPM đã chính thức gắn cờ nó là độc hại vào ngày 30 tháng 7 năm 2025, lúc 4:56 PM AEST, sau đó gỡ bỏ nó khỏi registry, khiến nó không còn khả dụng.

Mặc dù phân tích dấu thời gian và tên “Kodane” (tiếng Nhật có nghĩa là “đứa trẻ”) không cung cấp nhiều thông tin chi tiết về danh tính hoặc nguồn gốc chính xác của tác nhân, nhưng sự tinh xảo và độ hoàn thiện của mã nguồn là một chỉ báo mạnh mẽ cho thấy sự hỗ trợ đáng kể từ công nghệ AI trong việc phát triển loại mã độc AI này.

Dấu Hiệu Nhận Biết Mã Độc AI

Cấu trúc và phong cách của gói @kodane/patch-manager chứa đựng nhiều đặc điểm nổi bật, tiết lộ nguồn gốc AI của nó, có khả năng cao là từ các công cụ tạo mã như Claude hoặc tương tự.

Mã nguồn của gói độc hại này có nhiều biểu tượng cảm xúc (emojis) một cách bất thường, điều hiếm thấy trong các dự án của các nhà phát triển chuyên nghiệp. Bên cạnh đó là sự hiện diện của các câu lệnh console.log quá dài dòng và dư thừa, thường xuyên lặp lại các bình luận.

Các bình luận trong mã nguồn cũng được viết một cách quá dồi dào, rõ ràng và tuân theo một mẫu nhất quán trên tất cả các tệp. Điều này hoàn toàn trái ngược với phong cách viết ghi chú mã nguồn của con người, vốn thường ngắn gọn, đôi khi khó hiểu và đặc trưng cho từng nhóm phát triển.

Tệp README.md của gói cũng thể hiện đặc điểm của nội dung được tạo bởi AI. Nó sử dụng kiểu định dạng Markdown nhất quán và chứa nhiều đoạn mã nội tuyến, một dấu hiệu đặc trưng của các công cụ AI.

Đặc biệt, mã độc tự gắn nhãn “Enhanced”, một quy ước phổ biến của AI khi tạo ra các phiên bản cải tiến hoặc sửa đổi của đầu ra.

Việc các tác nhân đe dọa lợi dụng công nghệ AI để tạo ra malware như thế này mang lại nhiều lợi thế. Nó cho phép chúng sản xuất tài liệu và mã nguồn có vẻ ngoài thuyết phục, đạt cấp độ chuyên nghiệp, từ đó dễ dàng né tránh sự kiểm tra ban đầu của hệ thống và con người.

Đồng thời, AI giúp chúng nhúng các logic duy trì quyền truy cập và cơ chế rút trích dữ liệu một cách lén lút và hiệu quả hơn, làm tăng đáng kể mức độ phức tạp và nguy hiểm của mã độc AI trong các cuộc tấn công.

Các Chỉ Số Xâm Phạm (IoCs) Quan Trọng

Để hỗ trợ các nỗ lực phát hiện và giảm thiểu, các chỉ số xâm phạm (Indicators of Compromise – IoCs) liên quan đến mã độc @kodane/patch-manager cần được lưu ý nghiêm ngặt. Các IoCs chính bao gồm:

Tác Động và Phòng Ngừa Tấn Công Chuỗi Cung Ứng

Những chiến thuật tinh vi được áp dụng bởi mã độc @kodane/patch-manager nhấn mạnh rủi ro ngày càng gia tăng của mã độc AI được khuếch đại trong các cuộc tấn công chuỗi cung ứng. Trong bối cảnh này, các gói phần mềm tưởng chừng hợp pháp, đặc biệt là trong các kho lưu trữ mã nguồn mở, có thể trở thành vectơ xâm nhập nguy hiểm.

Việc khai thác các gói phần mềm này có thể dẫn đến việc xâm phạm toàn bộ môi trường phát triển phần mềm và ảnh hưởng nghiêm trọng đến người dùng hạ nguồn. Thông tin chi tiết về việc các tác nhân đe dọa khai thác các gói mã nguồn mở để triển khai malware có thể tìm thấy tại báo cáo của GBHackers.