Ethersphere bị tấn công chuỗi cung ứng: bee-js và Swarm Desktop phát tán mã độc đánh cắp ví
Kẻ tấn công đã lợi dụng chính quy trình phát hành tự động của dự án Ethersphere để tung ra các phiên bản độc hại của hai công cụ thuộc mạng lưu trữ phi tập trung Swarm: bee-js 13.3.0 và Swarm Desktop 0.56.2. Cả hai bản phát hành đều tải và chạy mã được thiết kế để đánh cắp khóa ví mà Swarm Desktop lưu cho node của người dùng, cùng mật khẩu mở khóa được lưu kèm, đồng thời cài backdoor trên Windows, macOS và Linux.
bee-js là thư viện JavaScript đứng sau Swarm Desktop và công cụ dòng lệnh swarm-cli. Swarm Desktop chạy một node Swarm trên máy người dùng và lưu khóa riêng của node tại đó. Cả hai bản phát hành độc hại đã bị gỡ bỏ và nhóm duy trì dự án đã phát hành bản cập nhật Swarm Desktop sạch, nhưng việc này không xóa được backdoor đã cài sẵn cũng không bảo vệ được khóa đã bị gửi đi. Tại thời điểm viết bài chưa ghi nhận trường hợp mất tiền nào.
Thời gian và phạm vi ảnh hưởng
Swarm Desktop 0.56.2 xuất hiện trên GitHub khoảng 00:36 UTC và bị rút khoảng 8,5 giờ sau đó. Theo phân tích của hãng bảo mật chuỗi cung ứng Socket, trình cập nhật tích hợp của ứng dụng có thể đề nghị bản này cho máy Windows x64 và Mac dùng chip Apple Silicon trong khoảng 10 phút; máy Mac dùng chip Intel không bị đề nghị và bản cài trên Linux không tự động cập nhật.
bee-js 13.3.0 là phiên bản mới nhất trên npm trong khoảng 75 phút, từ 00:09 đến 01:25 UTC. Mã của nó chạy dưới dạng script postinstall, được npm thực thi tự động khi cài đặt trừ khi người dùng tắt install script. Dự án không cần import thư viện thì mã vẫn chạy. Các gói swarm-cli, bee-dashboard của chính dự án và mã nguồn Swarm Desktop chấp nhận dải phiên bản bao gồm 13.3.0, nên một lần cài mới trong khoảng thời gian đó có thể kéo theo bản độc hại.
Không báo cáo nào nêu số máy bị nhiễm. Ước tính thô của Socket là bee-js 13.3.0 được tải khoảng 10 lần, gồm cả máy quét bảo mật và máy nhân bản; lượt tải Swarm Desktop 0.56.2 đạt 65 tính đến 08:27 UTC, gồm cả các nhà nghiên cứu.
Cách mã độc hoạt động
Cả hai bản phát hành mang cùng một loader, theo phân tích kỹ thuật của SafeDep. Đây là vài dòng mã tải thêm mã từ api.frameworkmetrics[.]xyz và chạy với quyền của người dùng. Với bee-js, loader là script postinstall; với Swarm Desktop, nó chạy mỗi khi ứng dụng khởi động.
Mã tải về tìm hai tệp trong thư mục dữ liệu của Swarm Desktop là config.yaml và data-dir/keys/swarm.key. Nếu cả hai tồn tại, nó gửi chúng về máy chủ của kẻ tấn công. Tệp khóa là keystore Ethereum đã mã hóa, nhưng Swarm Desktop lưu mật khẩu dạng văn bản thuần trong config.yaml; có cả hai tệp, kẻ tấn công có thể lấy token xDAI và xBZZ của ví node, tiền trong chequebook và stake.
Mã còn cài backdoor. Trên Linux và macOS là một remote shell viết bằng Go tên evjawbreaker, lưu trong thư mục ẩn ~/.solidity, chạy nền dưới dạng user service trên Linux và LaunchAgent trên macOS. Shell này đọc địa chỉ máy chủ điều khiển từ một hợp đồng thông minh Ethereum nên kẻ tấn công có thể đổi địa chỉ bất cứ lúc nào; họ đã cập nhật nó 29 phút trước khi mã bee-js độc hại được thêm vào.
Trên Windows, mã cài một client truy cập từ xa ScreenConnect thật, được ConnectWise ký, chạy dưới dạng dịch vụ hệ thống và kết nối tới relay của kẻ tấn công. Nếu người dùng là quản trị viên, mã lấy quyền quản trị bằng cách vượt qua hộp thoại User Account Control đã biết; nếu không, nó hiện lại hộp thoại mỗi khi người dùng hủy. Với quyền đó, nó thêm loại trừ cho Microsoft Defender và cài client một cách âm thầm.
Lỗ hổng trong quy trình phát hành
Cả hai bản phát hành đều đến từ tài khoản bee-worker, tài khoản Ethersphere dùng để tự động hóa việc phát hành. Không thay đổi nào được ký hay gửi dưới dạng pull request.
Với bee-js, kẻ tấn công tạo một GitHub release cho phiên bản mới, kích hoạt workflow phát hành lên npm của dự án. Workflow này không cần phê duyệt và đưa gói lên npm trong 73 giây. Vì do workflow thật của dự án xây dựng, gói mang provenance hợp lệ — bản ghi liên kết gói npm với kho mã và workflow đã tạo ra nó — nhưng provenance chỉ cho biết gói được xây ở đâu, không cho biết mã bên trong có được ai xem xét hay không.
Với Swarm Desktop, kẻ tấn công tự khởi động một workflow build có chứng chỉ ký của Apple và Windows của dự án và không cần phê duyệt. Ứng dụng macOS được ký bằng Developer ID của dự án và được Apple notarize, nên macOS chỉ hiển thị hộp thoại lần đầu khởi chạy bình thường. Nhóm duy trì sau đó đã buộc các job ký của ứng dụng phải chờ DevOps của dự án phê duyệt và chỉ chạy từ nhánh main.
Cách kẻ tấn công giành được quyền truy cập vẫn chưa rõ. Ghi chú sự cố của nhóm duy trì đổ lỗi cho việc đánh cắp thông tin xác thực và bí mật CI. Phân tích của Socket cho thấy hai tài khoản GitHub được dùng: bee-worker và tài khoản của một người duy trì lâu năm.
Liên hệ với các vụ tấn công trước
Các payload dùng chung một hợp đồng Ethereum, một relay ScreenConnect và tên tệp có đuôi giả dành cho lập trình viên Solidity từng xuất hiện trên chợ Open VSX hồi tháng 9. Nhóm nghiên cứu Pluto Security mô tả các tiện ích mở rộng này trong phân tích EtherDuck ngày 1/10. Pluto liên hệ chúng với độ tin cậy cao tới nhóm đứng sau tiện ích SleepyDuck gốc, vốn đọc địa chỉ máy chủ từ một hợp đồng Ethereum khác vào năm 2025. Socket cho rằng cùng nhóm này đứng sau các bản phát hành bee-js và Swarm Desktop.
Khuyến nghị xử lý
Khuyến cáo trên GitHub cho bee-js 13.3.0 nêu rõ: bất kỳ máy nào đã cài hoặc chạy gói này đều nên được coi là đã bị xâm phạm hoàn toàn. SafeDep đưa ra lời khuyên tương tự với máy từng cài Swarm Desktop 0.56.2.
- Tìm @ethersphere/[email protected] trong lockfile, cache gói, registry nội bộ và log cài đặt CI, kể cả bản bị kéo theo bởi gói khác.
- Ghim về 13.2.0 và xóa các bản cache của 13.3.0, kể cả npm mirror đang dùng.
- Nếu 13.3.0 được cài khi bật install script, coi máy hoặc CI runner đó đã bị xâm phạm dù log không báo lỗi, vì mã che giấu lỗi mạng của chính nó.
- Từ một máy sạch, đổi mọi mật khẩu, token và khóa mà người dùng cài đặt hoặc job CI có thể đọc được.
- Kiểm tra dòng Bee Desktop version: 0.56.2 (production) trong tệp log bee-desktop.log; thư mục log là ~/Library/Logs/Swarm Desktop/ trên macOS, %LOCALAPPDATA%\Swarm Desktop\Log\ trên Windows và ~/.local/state/Swarm Desktop/ trên Linux.
- Cài 0.56.3; trên Linux phải thay gói bằng tay. Nếu 0.56.2 từng chạy, coi khóa và mật khẩu của node đã bị đánh cắp; từ máy sạch, chuyển tiền, chequebook và stake của node sang khóa mới.
- Xóa thư mục ~/.solidity/, user service solidity-langsupport-runner.service trên Linux, LaunchAgent com.solidity.langsupport.runner trên macOS và dịch vụ ScreenConnect Client (5cbe79c9c25524df) trên Windows. Việc cập nhật, cài lại hay gỡ ứng dụng không xóa các thành phần này.
- Nếu có thể, cài lại máy từ ảnh tin cậy thay vì dọn dẹp tại chỗ.
Chỉ dấu xâm phạm
- Tên miền: api.frameworkmetrics[.]xyz
- Đường dẫn URL: /v1/analytics (loader bee-js), /v1/electron (loader Swarm Desktop), /v1/assets/ (payload tiếp theo), /v1/swarm/report (tệp ví bị đánh cắp)
- Header HTTP: X-Ethersphere: 1
- IP:port: 193[.]57[.]9[.]155:4912 (máy chủ điều khiển evjawbreaker), 185[.]232[.]84[.]169:8041 (relay ScreenConnect)
- Hợp đồng Ethereum: 0xf8a900Db50b3331be6B768bA460BB59f3E40C344
- Đường dẫn: ~/.solidity/
- systemd unit: solidity-langsupport-runner.service
- LaunchAgent: com.solidity.langsupport.runner
- Dịch vụ: ScreenConnect Client (5cbe79c9c25524df)
- SHA-256: 9b73e7cd4e1425e770392549d8df46c706139ef476f4f7b9ac405165dc8d9696 (linux_amd64)
- SHA-256: b601776817363b96295119f7221338a122d5247a35a77a64b04f286e1bbcc565 (linux_arm64)
- SHA-256: 80d2672e2599732d3c0ae2a4cd0d1e3fe4d555a60273ce33feb99db3f34d250f (darwin_amd64)
- SHA-256: fae61f31f00988fdc5cc9e7272b51e08af2e245d81003237875415930fd27358 (darwin_arm64)
- SHA-256: 37d14bff30762ca701e9c1f8bc6c57c065bb20ae3a2208cb7411a6530610f08e (invoke.ps1)
- SHA-256: 7527e86d70e7c9493db4356f1c3775380431b310000f2602c1e993cf435d01da (app.msi)
Nguồn: The Hacker News
Trích nguồn từ: The Hacker News
Tags:
Bài viết liên quan
CISA đưa lỗ hổng vượt qua MFA trên SonicWall SonicOS vào danh mục KEV
CISA bổ sung lỗ hổng nghiêm trọng CVE-2026-19868 trên SonicWall SonicOS vào danh mục lỗ hổng bị khai thác thực tế, sau báo cáo về khả năng bị lợi dụng; SonicWall cũng vá thêm nhiều lỗi nghiêm trọng khác.
Đọc thêm
Điểm tin tuần: Lỗ hổng SSHole bị khai thác, APT leo thang root, 15.000 trang web bị tấn công
Điểm tin bảo mật tuần này gồm lỗ hổng OpenSSH mang tên SSHole đang bị khai thác, lỗi APT của Debian/Ubuntu cho phép chạy mã quyền root, hàng loạt thiết bị mạng và máy chủ bị xâm nhập.
Đọc thêm
Qubole bị lợi dụng quyền truy cập AWS để xâm nhập tài khoản khách hàng
Kẻ tấn công đã lợi dụng quyền truy cập AWS mà nền tảng Qubole được tin cậy để xâm nhập tài khoản của nhiều khách hàng, đánh cắp thông tin xác thực và dữ liệu.
Đọc thêm
File 'Don't Ask Again' của Claude Code làm lộ mật khẩu và khóa trong 1.122 bản công khai trên GitHub
Nghiên cứu của Apiiro phát hiện file .claude/settings.local.json lưu nguyên văn các lệnh chứa mật khẩu, token và API key, khiến hàng nghìn bí mật bị lộ trên GitHub và tồn tại dai dẳng trong lịch sử git.
Đọc thêm
Tương lai hậu lượng tử của quyền riêng tư trên web
Cloudflare phân tích thách thức chuyển Privacy Pass sang mật mã hậu lượng tử và tiềm năng của công nghệ MOLE cùng chữ ký mù mới.
Đọc thêm
Lỗ hổng Claude Dispatch: tiện ích trình duyệt độc hại có thể chạy mã trên máy người dùng
Các nhà nghiên cứu Forever Security cho thấy tiện ích trình duyệt chạy script trên claude.ai có thể lợi dụng Claude Dispatch để ra lệnh cho Claude Desktop cài đặt và chạy mã trên máy tính người dùng.
Đọc thêm
Tin tặc khai thác lỗ hổng SSHole của OpenSSH chỉ vài giờ sau khi công bố, chiếm quyền root trên honeypot
Lỗ hổng CVE-2026-123158 trong OpenSSH trên hệ thống dùng musl và tắt PAM bị khai thác chỉ chưa đầy 9 giờ sau khi công bố, cho phép đăng nhập vào tài khoản không có mật khẩu và leo lên quyền root trên honeypot Alpine Linux.
Đọc thêm
CERT-In cảnh báo tấn công do AI dẫn dắt, bản ARTEX cài backdoor mở root cho 62 console
CERT-In ghi nhận nhóm tấn công Crafty Falcon dùng công cụ tấn công do AI hỗ trợ như ARTEX, PentAGI, Cairn, CyberStrikeAI để nhắm vào BFSI, sàn tiền mã hóa; đồng thời bản ARTEX sao chép trên GitHub/Docker Hub chứa backdoor cho phép root từ xa.
Đọc thêm
Lỗ hổng ChatGPT cho phép đánh cắp hội thoại dù bật Lockdown Mode
Check Point phát hiện lỗ hổng trong tính năng xem trước HTML của ChatGPT, cho phép thoát khỏi sandbox và vượt Lockdown Mode để đánh cắp dữ liệu hội thoại mà không cần người dùng tương tác. OpenAI đã vá lỗi vào ngày 18/9/2026.
Đọc thêm
Bản vá Zyxel GS1900 không chặn được zero-day cho phép chạy lệnh root
Bản vá trước đó của Zyxel cho lỗ hổng GS1900 bị khai thác vẫn không ngăn được exploit; hãng phát hành firmware 2.90 Patch 3 để vá lỗ hổng mới CVE-2026-107441.
Đọc thêm