Tấn công chuỗi cung ứng nguy hiểm qua VS Code của Lazarus

Nhóm tấn công Lazarus đã phát động một chiến dịch tấn công chuỗi cung ứng phức tạp, nhắm mục tiêu vào các nhà phát triển phần mềm thông qua một chiến dịch có tên “Fake Font”. Các tác nhân đe dọa sử dụng các cuộc phỏng vấn xin việc giả mạo và các kho lưu trữ GitHub độc hại để lừa các kỹ sư tải xuống mã chứa mã độc ẩn.
Chiến dịch này, bắt đầu hơn 100 ngày trước, gần đây đã tăng cường hoạt động với 19 kho lưu trữ được xác định là một phần của chiến dịch.
Tổng Quan Chiến Dịch “Fake Font” và Phương Thức Tiếp Cận
Cuộc tấn công bắt đầu trên LinkedIn, nơi các tuyển dụng viên giả mạo từ các công ty tiền điện tử và công nghệ tài chính liên hệ với các nhà phát triển. Họ đóng vai trò là quản lý tuyển dụng, bày tỏ sự ấn tượng với hồ sơ GitHub của mục tiêu và yêu cầu hoàn thành một bài đánh giá mã hóa đơn giản.
Các nhà phát triển được gửi liên kết đến các kho lưu trữ có vẻ hợp pháp, chứa các cấu trúc dự án web tiêu chuẩn. Các kho lưu trữ này bao gồm các phần frontend bằng React, backend bằng Node.js, tài liệu thích hợp và cấu hình CI/CD. Giao diện xác thực này làm cho các kho lưu trữ độc hại khó phân biệt với các dự án thật ngay từ cái nhìn đầu tiên.
Phân Tích Kỹ Thuật Tấn Công Chuỗi Cung Ứng qua VS Code
Khai thác Tính năng Tự Động Hóa của Visual Studio Code
Các nhà phân tích từ OpenSourceMalware đã xác định và ghi lại cách chiến dịch này hoạt động. Cuộc tấn công khai thác tính năng tự động hóa tác vụ của Microsoft Visual Studio Code, một công cụ được các nhà phát triển sử dụng phổ biến để chạy thử nghiệm và xây dựng dự án.
Tệp `.vscode/tasks.json` Độc Hại
Ẩn trong mỗi kho lưu trữ độc hại là một tệp .vscode/tasks.json được cấu hình để tự động thực thi khi thư mục được mở trong VS Code. Cơ chế lây nhiễm dựa vào việc ngụy trang mã độc JavaScript dưới dạng tệp font web với phần mở rộng .woff2.
Khi một nhà phát triển mở kho lưu trữ, VS Code sẽ tự động thực thi tác vụ độc hại, chạy tệp font giả mạo thông qua Node.js. Điều này kích hoạt một trình tải đa tầng (multi-stage loader) sẽ kích hoạt mã độc một cách âm thầm, gần như không hiển thị cho người dùng.
Cấu hình Ẩn Cửa Sổ Đầu Ra
Các cài đặt trình bày trong cấu hình tác vụ ẩn mọi cửa sổ đầu ra, làm cho cuộc tấn công chuỗi cung ứng này khó bị phát hiện.
// Ví dụ cấu hình tasks.json độc hại (đã lược giản) { "version": "2.0.0", "tasks": [ { "label": "Run Malicious Font", "type": "shell", "command": "node ./.vscode/evil-font.woff2", "problemMatcher": [], "runOptions": { "runOn": "folderOpen" }, "presentation": { "reveal": "silent", "panel": "dedicated", "showReuseMessage": false, "clear": true } } ]}Mã Độc InvisibleFerret Python Backdoor
Mã độc cuối cùng được triển khai là backdoor Python InvisibleFerret. Mã độc này được thiết kế để đánh cắp ví tiền điện tử, thông tin đăng nhập trình duyệt và thiết lập quyền truy cập lâu dài vào các máy tính bị xâm nhập. Phân tích chi tiết về chiến dịch Fake Font của OpenSourceMalware cung cấp cái nhìn sâu hơn về các thành phần này.
Sự phức tạp của InvisibleFerret cho phép nhóm tấn công duy trì sự hiện diện bí mật và liên tục thu thập dữ liệu nhạy cảm từ các mục tiêu.
Đặc Điểm Khai Thác Niềm Tin và Thách Thức Phát Hiện
Điểm đặc biệt nguy hiểm của chiến dịch này là cách nó khai thác niềm tin hợp pháp của các nhà phát triển vào các kho lưu trữ mã nguồn mở và các công cụ phát triển. Cấu trúc kho lưu trữ trông hoàn toàn bình thường, với các tệp font hoàn toàn phù hợp với bố cục dự án dự kiến cho các ứng dụng web sử dụng biểu tượng Font Awesome.
Các nhà phát triển sao chép các kho lưu trữ này để đánh giá công việc không có bất kỳ chỉ báo trực quan nào cho thấy họ đang cài đặt mã độc. Điều này làm nổi bật rủi ro bảo mật tiềm tàng khi các cuộc tấn công chuỗi cung ứng ẩn mình trong các quy trình làm việc thông thường.
Biện Pháp Phòng Ngừa và Phát Hiện Xâm Nhập
Chiến dịch này chứng minh cách các tác nhân đe dọa tiếp tục phát triển kỹ thuật để vượt qua các biện pháp bảo mật hiện có. Bằng cách kết hợp kỹ thuật xã hội, các lỗ hổng tấn công chuỗi cung ứng và các tính năng cụ thể của công cụ, nhóm tấn công đã nhắm mục tiêu thành công vào một đối tượng có giá trị cao, những người có quyền truy cập vào các hệ thống nhạy cảm và tài sản tiền điện tử.
Để giảm thiểu rủi ro từ các cuộc tấn công tương tự, các đội bảo mật nên:
- Rà soát quyền truy cập GitHub: Ngay lập tức xem xét quyền truy cập vào các kho lưu trữ GitHub và các cấu hình liên quan trong toàn bộ tổ chức.
- Kiểm tra cấu hình VS Code: Đánh giá các tệp
.vscode/tasks.jsonvà các cài đặt tự động hóa khác để tìm kiếm các cấu hình đáng ngờ. - Đào tạo nhận thức bảo mật: Nâng cao nhận thức cho các nhà phát triển về các mối đe dọa kỹ thuật xã hội và các dấu hiệu của các kho lưu trữ giả mạo.
- Triển khai giải pháp EDR/XDR: Sử dụng các giải pháp Endpoint Detection and Response (EDR) hoặc Extended Detection and Response (XDR) để tăng cường khả năng phát hiện xâm nhập và phản ứng nhanh chóng với các hoạt động bất thường.
- Áp dụng nguyên tắc Zero Trust: Thực hiện các nguyên tắc Zero Trust, giả định rằng mọi người dùng và thiết bị đều có thể bị xâm phạm, yêu cầu xác thực và ủy quyền chặt chẽ trước khi cấp quyền truy cập.







