Phân tích kỹ thuật lừa đảo mới nhằm phát tán phần mềm độc hại trên GitHub
Khai thác chức năng tìm kiếm và cập nhật tự động của GitHub
Những phát hiện gần đây của hãng bảo mật Checkmarx (Mỹ) cho thấy một tác nhân đe dọa đã tạo ra các kho lưu trữ GitHub với tên và các chủ đề phổ biến, chúng được ngụy trang dưới dạng các dự án (project) hợp pháp, thường liên quan đến trò chơi hoặc các công cụ phổ biến, khiến người dùng khó phân biệt với các chương trình an toàn.
Hình 1. Ví dụ về các kho lưu trữ độc hại
Những kẻ tấn công đã sử dụng kỹ thuật cập nhật tự động để liên tục đặt các kho lưu trữ độc hại lên đầu kết quả tìm kiếm trên GitHub khi người dùng lọc và sắp xếp kết quả của họ dựa trên các bản cập nhật gần đây nhất và tăng mức độ phổ biến thông qua các ngôi sao không có thật được thêm qua tài khoản giả mạo.
Người dùng khi tải xuống tệp từ các kho lưu trữ đó sẽ bị nhiễm phần mềm độc hại ẩn trong tệp Visual Studio (.csproj hoặc .vcxproj) và được thực thi tự động trong quá trình phát triển dự án.
Bằng cách tận dụng GitHub Actions, kẻ tấn công tự động cập nhật kho lưu trữ với tần suất rất cao bằng cách sửa đổi một tệp, thường được gọi là “log”, với ngày giờ hiện tại hoặc chỉ một số thay đổi nhỏ ngẫu nhiên. Hoạt động liên tục này tăng cường khả năng hiển thị của các kho lưu trữ, đặc biệt trong các trường hợp người dùng lọc kết quả của họ theo “most recently updated”, tức là cập nhật gần đây.
Giả mạo sự phổ biến
Bên cạnh các bản cập nhật tự động, những kẻ tấn công kết hợp một kỹ thuật khác để khuếch đại tính hiệu quả của kho lưu trữ độc hại, khi sử dụng nhiều tài khoản không có thật để thêm các ngôi sao giả mạo, tạo niềm tin của người dùng về sự phổ biến và đáng tin cậy. Điều này làm tăng thêm khả năng hiển thị của kho lưu trữ một cách hiệu quả, đặc biệt đối với các trường hợp người dùng lọc kết quả của họ theo “most stars”.
Khác với những cuộc tấn công mạng giả mạo trước đây khi các tác nhân đe dọa đã thêm hàng trăm hoặc hàng nghìn ngôi sao vào kho lưu trữ của họ, có vẻ như trong chiến dịch lần này, những kẻ tấn công đã chọn số lượng sao khiêm tốn hơn, có lẽ để tránh gây nghi ngờ với con số phóng đại.
Hình 2. Các tài khoản giả mạo (màu vàng) chứa kho lưu trữ độc hại
Những người dùng không nghi ngờ, thường bị thu hút bởi các kết quả tìm kiếm và kho lưu trữ hàng đầu với mức độ tương tác cao, do đó dẫn đến nhiều khả năng nhấp vào các kho lưu trữ độc hại này và sử dụng mã hoặc công cụ độc hại mà không nhận thức được những mối nguy hiểm tiềm ẩn bên trong.
Phần mềm độc hại ẩn trong tệp dự án
Những kẻ tấn công che giấu phần mềm độc hại của chúng chủ yếu dưới dạng mã bị xáo trộn bên trong các tệp .csproj hoặc .vcxproj của kho lưu trữ (các tệp thường được sử dụng trong các dự án Visual Studio) để giảm khả năng người dùng bình thường phát hiện ra nó trừ khi họ chủ động tìm kiếm các phần tử đáng ngờ. Tuy nhiên, điều đáng chú ý là vẫn có một số lượng nhỏ các kho lưu trữ được phát hiện có chứa phần mềm độc hại khác.
Hình 3. Phần mềm độc độc hại ẩn bên trong các dự án
Tập lệnh độc hại được nhúng trong bản pre-build event của các tệp Visual Studio (.vcxproj) và được thiết kế để thực thi tự động trong quá trình phát triển dự án. Tập lệnh này bao gồm 2 thành phần chính:
- Một tập lệnh batch thiết lập môi trường và thực thi tệp VBScript.
- Tập lệnh PowerShell mã hóa base64 được giải mã và thực thi bởi tệp VBScript.
Tập lệnh batch tạo một thư mục tạm thời, tạo tệp VBScript và giải mã tập lệnh PowerShell. Sau đó, nó thực thi tập lệnh PowerShell đã giải mã và xóa các tệp tạm thời. Còn tập lệnh PowerShell được giải mã thực hiện các hành động độc hại sau:
- Truy xuất địa chỉ IP và xác định xem vị trí đó có phải đến từ Nga không.
- Tải xuống nội dung từ các URL cụ thể dựa trên mã quốc gia (nội dung được kẻ tấn công cập nhật liên tục)
- Tải xuống các tệp được mã hóa từ mỗi URL, giải nén chúng bằng mật khẩu được xác định trước và thực thi các tệp được giải nén.
Hình 4. Luồng lây nhiễm trong chiến dịch
Vào ngày 03/4/2024, kẻ tấn công đã cập nhật mã độc trong các kho lưu trữ của chúng, trỏ đến một URL mới tải xuống tệp .7z được mã hóa khác chứa tệp thực thi có tên làfeedbackAPI[.]exe.
Kẻ tấn công đã thêm nhiều số 0 vào tệp này, một kỹ thuật được sử dụng để tăng kích thước tệp, nó đã được tăng lên 750MB và đã vượt quá ngưỡng phát hiện của nhiều giải pháp bảo mật, trong đó có VirusTotal.
Hình 5. Thông báo của VirusTotal về khi tải lên các tệp lớn hơn 32MB
Kết quả phân tích của các nhà nghiên cứu chiến dịch này cho thấy phần mềm độc hại được các tin tặc phân phối có những điểm tương đồng với phần mềm độc hại Keyzetsu clipper nhắm mục tiêu vào ví tiền điện tử.
Trên hệ thống Windows, phần mềm độc hại thiết lập sự tồn tại trên các máy bị nhiễm bằng cách tạo một tác vụ theo lịch trình chạy tệp thực thi hàng ngày vào lúc 4 giờ sáng mà không cần xác nhận của người dùng, tác vụ này có tên là Feedback_API_VS_Services_Client.
Trong chiến dịch này, payload độc hại được sử dụng để hoán đổi địa chỉ ví tiền điện tử của nạn nhân với địa chỉ của kẻ tấn công. Điều này cho phép mọi khoản thanh toán được thiết lập để chuyển hướng thanh toán sang ví dưới sự kiểm soát của chúng.
Vì địa chỉ tiền điện tử thường dài và khó nhớ nên hầu hết mọi người đều sao chép địa chỉ từ một site hoặc trang web. Payload độc hại phát hiện địa chỉ được sao chép trong bộ nhớ đệm và thay thế nó bằng địa chỉ của chính kẻ tấn công với hy vọng nạn nhân sẽ không nhận ra sự thay đổi. Sau đó, khi người dùng dán địa chỉ vào ví của họ để gửi giao dịch tiền điện tử, tiền sẽ được gửi đến địa chỉ dưới sự kiểm soát của kẻ tấn công chứ không phải người nhận dự định.
Kết luận
Các phát hiện này nhấn mạnh sự cẩn trọng khi tải xuống mã nguồn từ các kho lưu trữ nguồn mở, chưa kể đến sự nguy hiểm của việc chỉ dựa vào mức độ phổ biến làm thước đo để đánh giá độ tin cậy.
Nhà nghiên cứu bảo mật Yehuda Gelb của Checkmarx cho biết: “Việc sử dụng kho GitHub để phát tán phần mềm độc hại là xu hướng đang diễn ra và gây ra mối đe dọa đáng kể cho hệ sinh thái nguồn mở. Bằng cách khai thác chức năng tìm kiếm của GitHub và thao túng các thuộc tính kho lưu trữ, kẻ tấn công có thể dụ dỗ người dùng không nghi ngờ tải xuống và thực thi mã độc”.
Đình Linh
(Tổng hợp)