Mã độc GlassWorm sử dụng Dead Drop Solana để phát tán RAT, đánh cắp dữ liệu trình duyệt và tiền điện tử

Các nhà nghiên cứu an ninh mạng đã cảnh báo về một sự phát triển mới của chiến dịch GlassWorm, sử dụng một framework đa giai đoạn có khả năng đánh cắp dữ liệu toàn diện và cài đặt một remote access trojan (RAT). RAT này triển khai một extension Google Chrome đánh cắp thông tin, ngụy trang thành phiên bản offline của Google Docs. Mã độc này ghi lại thao tác bàn phím, lấy cắp cookies, token phiên và chụp ảnh màn hình.
Mã độc GlassWorm
Hình minh họa: Mã độc GlassWorm đang hoạt động.

Các nhà nghiên cứu an ninh mạng đã cảnh báo về một sự phát triển mới của chiến dịch GlassWorm, sử dụng một framework đa giai đoạn có khả năng đánh cắp dữ liệu toàn diện và cài đặt một remote access trojan (RAT). RAT này triển khai một extension Google Chrome đánh cắp thông tin, ngụy trang thành phiên bản offline của Google Docs.

"Nó ghi lại thao tác bàn phím, lấy cắp cookies và session token, chụp ảnh màn hình và nhận lệnh từ máy chủ C2 được ẩn trong một bản ghi Solana blockchain," nhà nghiên cứu bảo mật Ilyas Makari từ Aikido cho biết trong một báo cáo được công bố tuần trước.

GlassWorm là tên gọi của một chiến dịch dai dẳng, nơi những kẻ tấn công giành được quyền truy cập ban đầu thông qua các gói độc hại được xuất bản trên npm, PyPI, GitHub và Open VSX marketplace. Ngoài ra, những kẻ điều hành còn được biết đến là đã xâm nhập tài khoản của những người duy trì dự án để đẩy các bản cập nhật độc hại.

Các cuộc tấn công đủ cẩn trọng để tránh lây nhiễm vào các hệ thống có cài đặt ngôn ngữ tiếng Nga và sử dụng các giao dịch Solana làm dead drop resolver để lấy địa chỉ máy chủ command-and-control (C2) ("45.32.150[.]251") và tải xuống các payload dành riêng cho hệ điều hành.

Payload giai đoạn hai là một data-theft framework với khả năng thu thập thông tin đăng nhập, trích xuất ví tiền điện tử và lập hồ sơ hệ thống. Dữ liệu thu thập được nén vào một tệp ZIP và bị rò rỉ ra một máy chủ bên ngoài ("217.69.3[.]152/wall"). Nó cũng tích hợp chức năng để truy xuất và khởi chạy payload cuối cùng.

Sau khi dữ liệu được truyền đi, chuỗi tấn công bao gồm việc lấy về hai thành phần bổ sung: một binary .NET được thiết kế để thực hiện phishing ví cứng và một JavaScript RAT dựa trên Websocket để hút dữ liệu trình duyệt web và chạy mã tùy ý. Payload RAT được lấy từ "45.32.150[.]251" bằng cách sử dụng một URL sự kiện Google Calendar công khai làm dead drop resolver.

Binary .NET này tận dụng cơ sở hạ tầng Windows Management Instrumentation (WMI) để phát hiện kết nối thiết bị USB và hiển thị cửa sổ phishing khi một ví cứng Ledger hoặc Trezor được cắm vào.

"UI của Ledger hiển thị lỗi cấu hình giả mạo và trình bày 24 trường nhập cụm từ khôi phục được đánh số," Makari lưu ý. "UI của Trezor hiển thị thông báo giả mạo 'Firmware validation failed, initiating emergency reboot' với cùng bố cục nhập 24 từ. Cả hai cửa sổ đều có nút 'RESTORE WALLET'."

Mã độc này không chỉ tắt bất kỳ tiến trình Ledger Live thực sự nào đang chạy trên máy chủ Windows, mà còn hiển thị lại cửa sổ phishing nếu nạn nhân đóng nó. Mục tiêu cuối cùng của cuộc tấn công là thu thập cụm từ khôi phục ví và truyền nó đến địa chỉ IP "45.150.34[.]158."

Mặt khác, RAT sử dụng một Distributed Hash Table (DHT) để truy xuất thông tin chi tiết về C2. Trong trường hợp cơ chế này không trả về giá trị nào, mã độc sẽ chuyển sang dead drop dựa trên Solana. RAT sau đó thiết lập liên lạc với máy chủ để chạy các lệnh khác nhau trên hệ thống bị xâm nhập:

  • start_hvnc / stop_hvnc, để triển khai một mô-đun Hidden Virtual Network Computing (HVNC) cho truy cập máy tính từ xa.
  • start_socks / stop_socks, để khởi chạy một mô-đun WebRTC và chạy nó như một SOCKS proxy.
  • reget_log, để đánh cắp dữ liệu từ các trình duyệt web như Google Chrome, Microsoft Edge, Brave, Opera, Opera GX, Vivaldi và Mozilla Firefox. Thành phần này được trang bị để vượt qua các biện pháp bảo vệ app-bound encryption (ABE) của Chrome.
  • get_system_info, để gửi thông tin hệ thống.
  • command, để thực thi JavaScript do kẻ tấn công cung cấp thông qua eval().

RAT cũng tự động cài đặt một extension Google Chrome có tên "Google Docs Offline" trên các hệ thống Windows và macOS. Extension này sau đó kết nối với máy chủ C2 và nhận lệnh từ kẻ điều hành, cho phép thu thập cookies, localStorage, toàn bộ cây Document Object Model (DOM) của tab đang hoạt động, dấu trang, ảnh chụp màn hình, thao tác bàn phím, nội dung clipboard, lên đến 5.000 mục lịch sử trình duyệt và danh sách các extension đã cài đặt.

"Extension này cũng thực hiện giám sát phiên có mục tiêu. Nó kéo các quy tắc trang web được giám sát từ /api/get-url-for-watch và được cấu hình sẵn với Bybit (.bybit.com) làm mục tiêu, theo dõi các cookies secure-token và deviceid," Aikido cho biết. "Khi phát hiện, nó kích hoạt một auth-detected webhook đến /api/webhook/auth-detected chứa dữ liệu cookies và siêu dữ liệu trang. C2 cũng có thể cung cấp các quy tắc chuyển hướng để buộc các tab đang hoạt động đến các URL do kẻ tấn công kiểm soát."

Phát hiện này trùng hợp với một sự thay đổi khác trong chiến thuật của GlassWorm, khi những kẻ tấn công xuất bản các gói npm giả mạo máy chủ WaterCrawl Model Context Protocol (MCP) ("@iflow-mcp/watercrawl-watercrawl-mcp) để phân phối các payload độc hại.

"Đây là bước đi được xác nhận đầu tiên của GlassWorm vào hệ sinh thái MCP," nhà nghiên cứu bảo mật Lotan Sery từ Koi cho biết. "Và với tốc độ phát triển nhanh chóng của AI-assisted development – cùng với mức độ tin cậy mà các máy chủ MCP được cấp theo thiết kế – đây sẽ không phải là lần cuối cùng."

Các nhà phát triển được khuyên nên thận trọng khi cài đặt các extension Open VSX, các gói npm và các máy chủ MCP. Cũng nên kiểm tra tên nhà phát hành, lịch sử gói và tránh tin tưởng mù quáng vào số lượt tải xuống. Công ty an ninh mạng AFINE của Ba Lan đã xuất bản một công cụ Python mã nguồn mở có tên glassworm-hunter để quét các hệ thống của nhà phát triển tìm kiếm các payload liên quan đến chiến dịch này.

"glassworm-hunter không thực hiện bất kỳ yêu cầu mạng nào trong quá trình quét," các nhà nghiên cứu Paweł Woyke và Sławomir Zakrzewski cho biết. "Không có telemetry. Không có phone-home. Không có kiểm tra cập nhật tự động. Nó chỉ đọc các tệp cục bộ. Lệnh cập nhật glassworm-hunter là lệnh duy nhất chạm vào mạng. Nó lấy cơ sở dữ liệu IoC mới nhất từ GitHub của chúng tôi và lưu nó cục bộ."