Chiêu lừa đảo mới: 'Bẫy' tuyển dụng IT phát tán mã độc đánh cắp thông tin
Kẻ gian giả danh nhà tuyển dụng trên LinkedIn gửi bài test lập trình chứa mã độc nhằm đánh cắp thông tin đăng nhập, ví tiền mã hóa và các tệp tin nhạy cảm. Bài viết phân tích chi tiết kỹ thuật tấn công và hướng dẫn cách phòng tránh cho lập trình viên Việt Nam.

Chiêu lừa đảo mới: 'Bẫy' tuyển dụng IT phát tán mã độc đánh cắp thông tin
Thị trường IT đang cạnh tranh khốc liệt, nên khi một nhà tuyển dụng trên LinkedIn liên hệ với lời mời hấp dẫn — làm việc từ xa bán thời gian, mức lương theo giờ cao — ít lập trình viên nào cưỡng lại được. Nhưng đằng sau lời mời đó có thể là một cái bẫy tinh vi được thiết kế để đánh cắp toàn bộ thông tin nhạy cảm trên máy tính của bạn.
Câu chuyện bắt đầu khi một người bạn của tác giả bài viết gốc nhận được lời mời phỏng vấn với bài test coding gửi qua Bitbucket. Mã nguồn TypeScript với khoảng 180 file tưởng chừng vô hại, nhưng ẩn bên trong là một đoạn mã độc được ngụy trang khéo léo, kích hoạt ngay khi chạy lệnh npm run dev. Kẻ tấn công đã lợi dụng sự tin tưởng của ứng viên trong quá trình tuyển dụng để xâm nhập hệ thống.
Hình ảnh minh họa về cuộc tấn công qua bài test tuyển dụng
Mã độc hoạt động như thế nào?
Điểm mấu chốt của cuộc tấn công nằm ở một hàm initPriceConfig có vẻ vô hại, được gọi tự động khi khởi chạy ứng dụng. Hàm này kết nối tới endpoint api.jsonbin.io để tải về một đoạn mã JavaScript phức tạp, thực thi từ xa ngay trên máy nạn nhân thông qua Function.constructor('require', ...) — một kỹ thuật cho phép truy cập trực tiếp vào module require của Node.js.
Sau khi chiếm được quyền thực thi, mã độc tải về một loạt các module tấn công chuyên dụng, tất cả đều được điều khiển từ máy chủ C2 (Command & Control) qua giao thức HTTP thông thường. Điều đáng sợ là toàn bộ quá trình này diễn ra bằng kết nối ra ngoài (outbound-only), nghĩa là kẻ tấn công không cần mở cổng kết nối vào máy nạn nhân, vượt qua mọi rào cản NAT, tường lửa hay proxy doanh nghiệp.
Dữ liệu nào bị nhắm tới?
Mã độc được trang bị đầy đủ khả năng thu thập thông tin, tạo thành một bộ công cụ hoàn chỉnh:
- Đánh cắp trình duyệt: Thu thập dữ liệu đăng nhập từ Chrome, Edge, Brave trên cả ba hệ điều hành chính, bao gồm cả
Login Data, cookie và toàn bộ dữ liệu lưu trữ của các extension. - Tấn công ví tiền mã hóa: Nhắm trực tiếp tới 28 extension ví phổ biến như MetaMask, Phantom, Coinbase, Binance, Trust Wallet, Keplr, thu thập khóa riêng tư và cụm từ khôi phục (seed phrase) liên tục mỗi phút.
- Quét toàn bộ thư mục người dùng: Tìm kiếm các tệp tin nhạy cảm như khóa SSH, thông tin AWS, tệp
.envvà các tài liệu quan trọng khác. - Theo dõi clipboard: Ghi lại mọi nội dung người dùng sao chép, từ mật khẩu đến địa chỉ ví, ẩn mình dưới tên tệp log giả mạo
npm-compiler.log. - Điều khiển toàn diện: Bao gồm cả việc mở shell ẩn, chụp màn hình và mô phỏng bàn phím/chuột để thực hiện các thao tác phức tạp.
Một chi tiết quan trọng: mã độc không cần quyền root hay admin. Vì tất cả dữ liệu nó nhắm tới đều thuộc quyền sở hữu của người dùng hiện tại, nó có thể truy cập hoàn toàn hợp pháp thông qua quyền của chính bạn.
Dấu hiệu nhận biết lừa đảo
Theo bài viết, có một số cảnh báo rõ ràng mà ứng viên nên chú ý:
- Người liên hệ không thuộc công ty được nhắc đến trên LinkedIn
- Không có buổi giới thiệu ban đầu trước khi nhận bài test
- Ngôn ngữ lập trình không khớp với kỹ năng của bạn
- Mã nguồn được chia sẻ qua Bitbucket — một nền tảng ít phổ biến hơn GitHub hay GitLab
- Email gửi từ địa chỉ @gmail.com thay vì email chính thức của công ty
Giải pháp bảo vệ cho lập trình viên Việt Nam
Với sự phát triển của ngành công nghệ trong nước, các lập trình viên Việt Nam cũng đang trở thành mục tiêu của những chiêu trò tương tự. Dưới đây là một số khuyến nghị thiết thực:
Sử dụng môi trường cô lập: Chạy mọi mã nguồn nhận được từ bên thứ ba trong Docker container hoặc máy ảo Vagrant — lựa chọn tối ưu nhất vì có thể chụp snapshot và khôi phục sau đó. Không bao giờ mount dữ liệu cá nhân vào môi trường chạy thử.
Thận trọng với AI: Dùng AI để quét mã nguồn chỉ mang lại hiệu quả hạn chế. Ngay cả Claude Code cũng không phát hiện được bất thường trong bài test này. AI có thể nhìn thấy cuộc gọi tới jsonbin.io nhưng không thể biết dữ liệu trả về chứa gì.
Kiểm tra kỹ lưỡng: Dành thời gian đọc hiểu luồng chạy của ứng dụng, đặc biệt là các đoạn mã khởi tạo tự động. Tìm kiếm các cuộc gọi tới API ngoài, mã bị obfuscate hoặc các mẫu nhúng trình thông dịch.
Xử lý sự cố: Nếu không may trở thành nạn nhân, bạn cần nhanh chóng thu hồi và xoay vòng khóa SSH, đổi toàn bộ mật khẩu, kiểm tra các thông tin nhạy cảm khác và tốt nhất là cài lại hệ điều hành.
Kẻ lừa đảo vẫn sẽ tiếp tục tìm kiếm nạn nhân mới, và kỹ thuật của chúng ngày càng tinh vi. Việc trang bị kiến thức bảo mật cơ bản, đặc biệt là khi nhận mã nguồn từ bên ngoài, là kỹ năng sống còn cho mọi lập trình viên trong thời đại AI phát triển như hiện nay.