Chiến dịch tấn công này sử dụng các kỹ thuật tinh vi, lợi dụng những công cụ hợp pháp như Visual Studio Code (VS Code) và GitHub để tiến hành xâm nhập trái phép. Đây là hình thức tấn công mới, trong đó kẻ xâm nhập khai thác phần mềm có độ tin cậy cao nhằm né tránh sự phát hiện của các hệ thống bảo mật và thâm nhập vào hệ thống mục tiêu.
Phân tích
1. Giai đoạn ban đầu
Kẻ tấn công gửi tệp .LNK qua các hình thức phishing phổ biến như email lừa đảo. Tệp .LNK này nguỵ trang là một tệp cài đặt phần mềm thông thường, sử dụng biểu tượng MSI để làm người dùng tin tưởng. Khi được mở, tệp này sẽ không hiển thị dấu hiệu bất thường, mà chỉ hiển thị thông báo “Cài đặt thành công” bằng tiếng Trung Quốc (“安裝成功“). Tuy nhiên, ngầm bên dưới, nó sử dụng lệnh curl để tải xuống gói Python với tên “python-3.12.5-embed-amd64.zip” và giải nén gói này vào thư mục “%LOCALAPPDATA%\Microsoft\Python”. Sau đó, nó tải xuống một script Python độc hại lưu trữ nó dưới tên “update.py” trong cùng thư mục. Script này được thực thi âm thầm thông qua pythonw.exe.
2. “Tự cài đặt VSCode”
Script Python kiểm tra xem Visual Studio Code đã được cài đặt trên hệ thống hay chưa bằng cách kiểm tra sự tồn tại của thư mục “%LOCALAPPDATA%\Microsoft\VScode”. Nếu VSCode chưa được cài đặt, script sẽ tải xuống phiên bản Command Line Interface (CLI) của VSCode từ nguồn Microsoft chính thức, sau đó giải nén và cài đặt nó. Sau khi cài đặt, script sử dụng VSCode để thiết lập một Remote Tunnel. Đây là tính năng hợp pháp trong VSCode, thường được dùng để kết nối với các máy tính từ xa, nhưng trong trường hợp này, nó bị lợi dụng để thiết lập một kết nối từ xa trái phép giữa máy nạn nhân và kẻ tấn công.
3. Thiết lập kết nối từ xa và lấy mã kích hoạt
Khi thiết lập Remote Tunnel, VSCode tạo ra một mã kích hoạt ngắn (gồm 8 ký tự alphanumeric) và liên kết mã này với một tài khoản GitHub để xác thực. Tác nhân tấn công sẽ trích xuất mã này từ tệp log “output2.txt“ và lưu trữ mã này để sử dụng trong các giai đoạn tấn công sau.
Mã kích hoạt này cho phép kẻ tấn công truy cập hệ thống từ xa thông qua GitHub, bằng cách nhập mã vào trang đăng nhập GitHub (hxxps://github.com/login/device).
4. Duy trì sự hiện diện trên hệ thống
Để duy trì sự tồn tại trên máy nạn nhân, script tạo một Scheduled Task với tên “MicrosoftHealthcareMonitorNode”. Tác vụ này sẽ chạy script Python “update.py” định kỳ với quyền hệ thống và mức độ ưu tiên cao. Nếu nạn nhân không có quyền quản trị, tác vụ này sẽ chạy mỗi bốn giờ một lần. Trên các hệ thống mà người dùng có quyền quản trị, tác vụ này được kích hoạt mỗi khi người dùng đăng nhập vào hệ thống, bảo đảm rằng kẻ tấn công có thể truy cập ngay khi hệ thống được khởi động.
5. Thu thập và xâm nhập thông tin
Kẻ tấn công thu thập thông tin hệ thống như tên máy tính, tên thư mục, danh sách các tiến trình đang chạy, cũng như các thông tin nhạy cảm khác. Toàn bộ dữ liệu này được mã hóa bằng Base64 trước khi gửi đến máy chủ của kẻ tấn công. Sau khi nhận được dữ liệu, kẻ tấn công có thể đăng nhập vào hệ thống của nạn nhân, duyệt các tệp tin và thực hiện các hành động gây hại khác như cài đặt thêm phần mềm độc hại hoặc thay đổi cấu hình hệ thống.
Tác động
Kẻ tấn công có thể chiếm quyền điều khiển hoàn toàn hệ thống của nạn nhân, từ việc truy cập tệp tin, cài đặt phần mềm độc hại, đến thu thập dữ liệu nhạy cảm. Cuộc tấn công này nguy hiểm vì nó sử dụng các công cụ hợp pháp như VSCode và GitHub, nên rất khó bị phát hiện bởi các giải pháp bảo mật thông thường.
Khuyến nghị
Nhằm đảm bảo an toàn thông tin cho hệ thống thông tin của đơn vị, góp phần đảm bảo an toàn cho không gian mạng Việt Nam, Trung tâm VNCERT/CC khuyến nghị người dùng và quản trị viên nên:
– Kiểm tra Scheduled Task: Kiểm tra các tác vụ theo lịch trên hệ thống để phát hiện và loại bỏ các tác vụ không hợp lệ.
– Giới hạn quyền cài đặt: Hạn chế quyền cài đặt phần mềm cho người dùng, và sử dụng danh sách ứng dụng được phép để kiểm soát các phần mềm có thể cài đặt trên hệ thống.