Một vụ lừa đảo tuyển dụng tại Singapore vừa khiến các dự án crypto mất 11.8 triệu USD. Không phải smart contract bị hack, không phải private key bị lộ. Chỉ là một bài coding test giả mạo, một session token bị đánh cắp, và toàn bộ hệ thống sụp đổ.
Tôi đọc tin này lúc 2 giờ sáng tại Tokyo. Ngay lập tức, tôi nhận ra: đây không phải một vụ hack bình thường. Đây là bản thiết kế cho một làn sóng tấn công mới, nhắm thẳng vào điểm yếu nhất của Web3: con người.
Context: Chiến trường mới trong thị trường tăng
Thị trường đang nóng. Bitcoin chạm mốc mới, altcoin bay, và hàng loạt dự án mới mọc lên như nấm. Nhu cầu tuyển dụng developer crypto tăng vọt. Các team remote trải khắp toàn cầu, quy trình phỏng vấn gói gọn trong vài cuộc gọi Zoom và một bài coding test gửi qua email.
Chính cái 'coding test' đó là cánh cửa. Kẻ tấn công giả làm nhà tuyển dụng, gửi cho ứng viên một bài test chứa malware. Khi ứng viên chạy code, malware âm thầm đánh cắp session token của GitHub, GitLab, hay bất kỳ dịch vụ nào đang mở trên trình duyệt. Chỉ cần vài giây, hacker có toàn quyền truy cập vào kho code chứa private key, deploy script, và cả quyền admin.
Tháng 11 năm ngoái, tôi suýt mắc bẫy tương tự. Một 'dự án DeFi' trên LinkedIn mời tôi làm Solidity developer. Bài test đầu tiên: chạy một script Node.js để tương tác với contract trên testnet. Tôi nghi ngờ, chạy trong sandbox Docker. Kết quả: script đó gửi request đến một IP lạ. Tôi báo lại cho team an ninh của công ty cũ. Hai tuần sau, họ phát hiện đó là một tổ chức tội phạm mạng. Kinh nghiệm đó khiến tôi luôn cảnh giác.
Core: Giải mã kỹ thuật – tại sao session token là vũ khí hủy diệt?
Session token: mảnh giấy thông hành giả mạo
Session token là một chuỗi ký tự được server cấp sau khi bạn đăng nhập. Nó giống như tấm vé vào cửa: bạn không cần phải xếp hàng kiểm tra ID (MFA) nữa, chỉ cần đưa vé là vào. Kẻ tấn công lấy được token của bạn, chúng có thể giả mạo bạn mà không cần vượt qua MFA.
Coding test: cánh cửa mở vào kho báu
Trong vụ này, hacker gửi một 'coding test' qua email. Ứng viên tải về, giải nén, chạy. File đó chứa mã độc dạng memory-only – nó không ghi file, không kích hoạt antivirus. Nó chỉ đọc session token từ trình duyệt (Chrome, Firefox) gửi về server của hacker. Thủ thuật này đã tồn tại từ lâu, nhưng được tái sử dụng trong bối cảnh mới: tuyển dụng crypto.
MFA: tường cao nhưng cửa sau luôn rộng
Nhiều người nghĩ MFA là bất khả xâm phạm. Sai. Khi hacker có session token, chúng không cần MFA. Token đã chứng thực danh tính rồi. MFA chỉ có tác dụng khi đăng nhập, không phải khi sử dụng token. Đây là lỗ hổng thiết kế mà nhiều team bỏ qua.
Từ token đến code repository: chỉ một bước nhảy
Với token hợp lệ, hacker truy cập GitHub/GitLab của dự án. Họ clone toàn bộ repo, tìm private key, deploy script, thậm chí thêm backdoor vào code. Nếu dự án có bridge, multisig, hay contract upgrade, chúng có thể rút toàn bộ tiền. 11.8 triệu USD là con số đã được xác nhận. Con số thực tế có thể cao hơn, vì nhiều dự án không công bố.
Supply chain attack: quả bom hẹn giờ
Kẻ tấn công không chỉ lấy tiền. Chúng có thể thêm mã độc vào code, đẩy lên npm, PyPI, hay Docker Hub. Khi các dự án khác dùng package đó, chúng cũng bị nhiễm. Đây là kiểu tấn công chuỗi cung ứng, từng xảy ra với Event-stream, SolarWinds. Giờ nó xảy ra trong Web3.
Contrarian: Góc nhìn chưa được đưa tin – lỗi không phải ở MFA, mà ở quy trình
Truyền thông thường đổ lỗi cho MFA yếu, hoặc bảo mật kém. Nhưng góc nhìn của tôi khác.
Vấn đề cốt lõi: Coding test không được kiểm soát
Hầu hết các dự án Web3 đều yêu cầu ứng viên làm coding test. Họ gửi file zip, link git, yêu cầu chạy code trên máy thật. Không có sandbox, không có môi trường cách ly. Đây là điểm mù. Nếu bạn là startup, bạn không có đủ nguồn lực để xây dựng quy trình phỏng vấn an toàn. Nhưng chi phí của một sai lầm là 11.8 triệu USD.
Các dự án quá tập trung vào audit smart contract
Tôi đã thấy hàng trăm dự án chi hàng trăm nghìn USD để audit contract, nhưng không đầu tư một xu cho bảo mật nội bộ. Họ dùng máy tính cá nhân của developer để quản lý private key, không có VPN, không có endpoint detection. Kẻ tấn công biết điều này, và chúng khai thác đúng điểm yếu đó.

Developer là mục tiêu, không phải nạn nhân
Nhiều người nghĩ chỉ có CEO, CTO mới có quyền cao. Sai. Developer có quyền truy cập code repository, CI/CD pipeline, thậm chí cả production server. Một developer mới vào có thể có quyền admin. Đó là lý do hacker nhắm vào ứng viên: họ là những người dễ bị tổn thương nhất, nhưng lại có quyền lớn nhất.
Session token: kẻ thù vô hình
Chúng ta quen với việc bảo vệ password, private key, nhưng session token lại bị bỏ quên. Token thường có thời hạn dài (24h, 7 ngày), và được lưu trong trình duyệt. Một mã độc nhẹ nhàng đọc token, gửi đi, và bạn không hề hay biết. Đây là lỗ hổng thiết kế của toàn bộ hệ sinh thái OAuth, session management.
Takeaway: Bài học cho Web3 mùa tăng giá
11.8 triệu USD chỉ là khởi đầu. Khi thị trường càng nóng, số lượng vụ lừa đảo tuyển dụng sẽ càng tăng. Tôi dự đoán trong 6 tháng tới, ít nhất 5 vụ tương tự sẽ bị phát hiện, với tổng thiệt hại vượt 100 triệu USD.
Cơ hội cho các giải pháp bảo mật
- Sandbox coding test: Các nền tảng như CoderPad, HackerRank cần tích hợp tính năng chạy code trong môi trường cách ly, không thể truy cập tài nguyên máy thật.
- Endpoint detection cho developer: Các công cụ như CrowdStrike, SentinelOne nên có gói dành riêng cho máy tính developer, phát hiện hành vi đọc token.
- Session token quản lý: Token nên có thời gian sống ngắn (15 phút), và yêu cầu xác thực lại khi thực hiện hành động nhạy cảm.
Lời khuyên cho team Web3
- Không bao giờ yêu cầu ứng viên chạy code trên máy thật. Dùng sandbox từ xa.
- Giới hạn quyền truy cập repo: chỉ cấp quyền đọc, không cho phép push khi chưa ký hợp đồng.
- Kích hoạt FIDO2/Passkey thay vì MFA OTP.
- Theo dõi session token: nếu phát hiện token được dùng từ IP lạ, thu hồi ngay.
Còn bạn? Bạn có chắc coding test cuối cùng bạn gửi cho ứng viên là an toàn? Hay bạn đang mở cửa cho kẻ săn mồi?
Bài viết dựa trên phân tích vụ lừa đảo 11.8 triệu USD tại Singapore, tháng 6/2025.
Tags: blockchain security, crypto scam, recruitment attack, Web3, session hijack, MFA bypass, supply chain attack, Singapore, coding test malware, developer security
