Các nhà nghiên cứu phát hiện các gói phần mềm độc hại trên VS Code, Go, npm và Rust đánh cắp dữ liệu nhà phát triển

Các nhà nghiên cứu an ninh mạng đã phát hiện hai tiện ích mở rộng mới trên Microsoft Visual Studio Code (VS Code) Marketplace được thiết kế để lây nhiễm phần mềm độc hại stealer vào máy tính của nhà phát triển. Các tiện ích mở rộng VS Code này mạo danh là một giao diện tối cao cấp và một trợ lý mã hóa được hỗ trợ bởi trí tuệ nhân tạo (AI), nhưng trên thực tế, chúng chứa chức năng bí mật để tải xuống các payload bổ sung, chụp màn hình và trích xuất dữ liệu.
Phần mềm độc hại trên VS Code
Phần mềm độc hại ẩn trong tiện ích mở rộng VS Code.

Các nhà nghiên cứu an ninh mạng đã phát hiện hai tiện ích mở rộng mới trên Microsoft Visual Studio Code (VS Code) Marketplace được thiết kế để lây nhiễm phần mềm độc hại stealer vào máy tính của nhà phát triển.

Các tiện ích mở rộng VS Code này mạo danh là một giao diện tối cao cấp và một trợ lý mã hóa được hỗ trợ bởi trí tuệ nhân tạo (AI), nhưng trên thực tế, chúng chứa chức năng bí mật để tải xuống các payload bổ sung, chụp màn hình và trích xuất dữ liệu. Thông tin thu thập được sau đó sẽ được gửi đến một máy chủ do kẻ tấn công kiểm soát.

"Mã của bạn. Email của bạn. Tin nhắn Slack của bạn. Bất cứ thứ gì trên màn hình của bạn, chúng cũng đang nhìn thấy," Idan Dardikman của Koi Security cho biết. "Và đó mới chỉ là khởi đầu. Nó còn đánh cắp mật khẩu WiFi của bạn, đọc nội dung clipboard của bạn và chiếm quyền điều khiển các phiên trình duyệt của bạn."

Tên của các tiện ích mở rộng là:

  • BigBlack.bitcoin-black (16 lượt cài đặt) - Đã bị Microsoft gỡ bỏ vào ngày 5 tháng 12 năm 2025
  • BigBlack.codo-ai (25 lượt cài đặt) - Đã bị Microsoft gỡ bỏ vào ngày 8 tháng 12 năm 2025

Danh sách các tiện ích mở rộng đã bị Microsoft gỡ bỏ khỏi Marketplace cho thấy công ty cũng đã gỡ bỏ một gói thứ ba có tên "BigBlack.mrbigblacktheme" từ cùng một nhà phát hành vì chứa malware.

Trong khi "BigBlack.bitcoin-black" kích hoạt trên mọi hành động của VS Code, Codo AI lại nhúng chức năng độc hại của nó vào một công cụ hoạt động, qua đó cho phép nó vượt qua việc phát hiện.

Các phiên bản trước của tiện ích mở rộng có khả năng thực thi một script PowerShell để tải xuống một kho lưu trữ ZIP được bảo vệ bằng mật khẩu từ một máy chủ bên ngoài ("syn1112223334445556667778889990[.]org") và giải nén payload chính từ đó bằng bốn phương pháp khác nhau: Windows native Expand-Archive, .NET System.IO.Compression, DotNetZip và 7-Zip (nếu được cài đặt).

Sơ đồ trích xuất dữ liệu của phần mềm độc hại
Cách thức phần mềm độc hại trích xuất dữ liệu.

Tuy nhiên, kẻ tấn công được cho là đã vô tình phát hành một phiên bản tạo ra cửa sổ PowerShell hiển thị, có thể đã cảnh báo người dùng. Các phiên bản sau đó đã được tìm thấy để ẩn cửa sổ và hợp lý hóa toàn bộ quá trình bằng cách chuyển sang một batch script sử dụng lệnh curl để tải xuống executable và DLL.

Executable là binary Lightshot hợp pháp được sử dụng để tải DLL độc hại ("Lightshot.dll") thông qua DLL hijacking, từ đó thu thập nội dung clipboard, danh sách các ứng dụng đã cài đặt, các tiến trình đang chạy, ảnh chụp màn hình desktop, thông tin đăng nhập Wi-Fi đã lưu và thông tin hệ thống chi tiết. Nó cũng khởi chạy Google Chrome và Microsoft Edge ở chế độ headless để lấy các cookie đã lưu và chiếm quyền điều khiển các phiên người dùng.

"Một nhà phát triển có thể cài đặt một theme tưởng chừng vô hại hoặc một công cụ AI hữu ích, và trong vài giây, mật khẩu WiFi, nội dung clipboard và các phiên trình duyệt của họ đã bị exfiltrate đến một máy chủ từ xa," Dardikman nói.

Các gói độc hại khác được phát hiện

Việc tiết lộ này diễn ra khi Socket cho biết họ đã xác định các gói độc hại trên các hệ sinh thái Go, npm và Rust có khả năng thu thập dữ liệu nhạy cảm -

  • Các gói Go có tên "github[.]com/bpoorman/uuid" và "github[.]com/bpoorman/uid" đã có mặt từ năm 2021 và typosquat các thư viện UUID đáng tin cậy ("github[.]com/google/uuid" và "github[.]com/pborman/uuid") để exfiltrate dữ liệu đến một trang paste có tên dpaste khi một ứng dụng gọi rõ ràng một hàm trợ giúp được cho là có tên "valid" cùng với thông tin cần được xác thực.
  • Một bộ 420 gói npm độc đáo được xuất bản bởi một kẻ tấn công có thể nói tiếng Pháp, tuân theo một mẫu đặt tên nhất quán bao gồm "elf-stats-*", một số trong đó chứa mã để thực thi một reverse shell và exfiltrate các tệp đến một endpoint Pipedream.
  • Một crate Rust có tên finch-rust được xuất bản bởi faceless, mạo danh công cụ tin sinh học hợp pháp "finch" và đóng vai trò là một loader cho một payload độc hại thông qua một gói đánh cắp thông tin đăng nhập được gọi là "sha-rust" khi một nhà phát triển sử dụng chức năng sketch serialization của thư viện.

"Finch-rust hoạt động như một malware loader; nó chứa hầu hết mã hợp pháp được sao chép từ gói finch hợp pháp nhưng bao gồm một dòng độc hại duy nhất tải và thực thi payload sha-rust," nhà nghiên cứu Kush Pandya của Socket cho biết. "Sự tách biệt này khiến việc phát hiện trở nên khó khăn hơn: finch-rust trông vô hại khi đứng một mình, trong khi sha-rust chứa phần mềm độc hại thực sự."