2,388 tổ chức đang lộ diện. 71 trang web trong top 1 triệu. 27% Fortune 1000 có thể bị xâm nhập. Và con số 85% thành công trong thử nghiệm kiểm soát.
Bạn nghĩ rằng mình an toàn vì đã bảo vệ private key? Sai rồi. Kẻ thù không còn nhắm vào blockchain nữa. Chúng nhắm vào con người, vào những công cụ mà con người tin tưởng. Cụ thể là AI Agent.
Tại DEF CON 34, một nhóm nghiên cứu có tên Tenet đã trình diễn một cuộc tấn công mà họ gọi là 'Agentjacking'. Nó không phải là một lỗi zero-day trong mô hình ngôn ngữ. Nó không phải là một lỗ hổng trong smart contract. Nó là một sự kết hợp chết người giữa hai thiết kế 'hoàn toàn hợp lý' của hai hệ thống khác nhau: Sentry và MCP.
Sự thật nằm ở số liệu, không phải ở lời hứa.
Hãy nhìn vào context. Tại sao là bây giờ?
Chúng ta đang sống trong kỷ nguyên mà AI Agent không còn là khái niệm. Claude Code, Cursor, GitHub Copilot – chúng là những người bạn đồng hành trong coding của hàng triệu lập trình viên. Những agent này, để hoạt động hiệu quả, cần kết nối với thế giới bên ngoài. Chúng cần đọc issue từ Sentry, cần tìm kiếm trên web, cần truy cập vào repository. Giao thức kết nối đó được gọi là MCP (Model Context Protocol).
Vấn đề nằm ở chỗ: MCP, như được thiết kế hiện tại, hoàn toàn tin tưởng vào dữ liệu mà nó nhận được từ các công cụ. Nó không có cơ chế để phân biệt đâu là 'dữ liệu' và đâu là 'mệnh lệnh'.
Sentry, một nền tảng giám sát lỗi cực kỳ phổ biến, có một tính năng: DSN (Data Source Name) của nó, khi bị rò rỉ ra ngoài, cho phép bất kỳ ai cũng có thể gửi một error event giả mạo vào project của bạn. Thiết kế này vốn dĩ không có vấn đề, vì error event chỉ là dữ liệu.
Nhưng hãy nhìn vào sự kết hợp. Kẻ tấn công tìm thấy một DSN công khai. Họ gửi một error event giả mạo, chứa một đoạn markdown trông giống như một 'hướng dẫn sửa lỗi' từ đội ngũ phát triển. Lập trình viên, khi thấy ứng dụng gặp lỗi, sẽ yêu cầu AI Agent: 'Hãy xem Sentry và sửa lỗi này'. Agent, thông qua MCP, đọc error event. Nó thấy 'hướng dẫn' trong markdown. Nó không biết đó là dữ liệu hay mệnh lệnh. Nó thực thi. Nó chạy npm install một package độc hại. Và thế là credentials – AWS keys, GitHub OAuth tokens, npm tokens – bị đánh cắp.
Chạy nhanh không quan trọng bằng chạy đúng hướng.
Phân tích kỹ thuật: Một chuỗi tấn công hoàn chỉnh, chi phí thấp.
Đây là vẻ đẹp kỹ thuật của Agentjacking. Nó không phải là một cuộc tấn công phức tạp. Nó là một attack chain gồm sáu bước, mỗi bước đều hợp lý trong thiết kế của từng hệ thống riêng lẻ.
- Phát hiện: Kẻ tấn công quét internet để tìm các Sentry DSN bị rò rỉ. Con số 2,388 tổ chức là một cột mốc đáng sợ, nhưng đó chỉ là phần nổi của tảng băng. Nó cho thấy quy mô của bề mặt tấn công.
- Tiêm: Một HTTP POST đơn giản tới endpoint của Sentry. Không cần xác thực. Chỉ cần một DSN hợp lệ. Chi phí gần như bằng không.
- Chờ đợi: Kẻ tấn công không cần làm gì thêm. Chúng chỉ cần đợi lập trình viên chạy AI Agent để debug.
- Kích hoạt: Lập trình viên yêu cầu Agent xem xét lỗi. Agent, qua MCP, truy vấn Sentry.
- Thực thi: Agent đọc 'hướng dẫn sửa lỗi' trong markdown. Nó coi đó là một phần của context. Nó thực thi lệnh
npm installvà chạy mã độc. - Khai thác: Mã độc đánh cắp tất cả credentials có sẵn trên máy của lập trình viên. Kết thúc.
Điều làm cho cuộc tấn công này trở nên nguy hiểm là tính tự động hóa cao. Một khi DSN được tìm thấy, việc gửi error event có thể được thực hiện bởi một script. Không cần tương tác thủ công. Kẻ tấn công có thể quét, tiêm, và chờ đợi. Hàng ngàn mục tiêu có thể bị tấn công cùng lúc.
Theo kinh nghiệm kiểm toán smart contract của tôi, tôi đã thấy nhiều lỗ hổng phức tạp hơn, nhưng ít lỗ hổng nào có tỷ lệ thành công cao và chi phí khai thác thấp như vậy. Trong một thử nghiệm kiểm soát với hơn 100 tổ chức, Tenet báo cáo tỷ lệ thành công là 85%. Con số này, dù đến từ một nguồn duy nhất, vẫn rất đáng báo động. Nó cho thấy rằng trong một môi trường thực tế, nơi lập trình viên thường xuyên yêu cầu Agent debug, khả năng bị tấn công là rất cao.
Các biện pháp giảm thiểu hiện tại: Băng cá nhân cho một vết thương sâu.
Sentry đã phản ứng bằng cách triển khai một bộ lọc nội dung (content filter) – một danh sách đen các chuỗi payload cụ thể. Tenet đã phát hành một công cụ có tên agent-jackstop – một bộ cấu hình tăng cường bảo mật ở phía client, bao gồm danh sách trắng mạng, phê duyệt lệnh, và bảo vệ credentials ở cấp độ tiến trình con.
Những biện pháp này rất hữu ích, nhưng chúng không giải quyết được gốc rễ của vấn đề. Bộ lọc nội dung có thể bị vượt qua bằng cách biến đổi payload. agent-jackstop là một lớp phòng thủ bổ sung, nhưng nó không thay đổi thực tế rằng kiến trúc MCP vẫn cho phép dữ liệu từ bên ngoài ảnh hưởng đến quyết định của Agent.
Vấn đề cốt lõi là một lỗ hổng kiến trúc: AI Agent hiện tại không thể phân biệt giữa 'dữ liệu' và 'chỉ thị' ở lớp ngữ nghĩa. Bất kỳ nguồn dữ liệu bên ngoài nào được Agent tin tưởng đều có thể trở thành một bề mặt tấn công tiềm ẩn. Đây là một vấn đề của thiết kế, không phải của một bản vá.
Góc nhìn phản trực giác: Ai là nạn nhân thực sự?
Bạn nghĩ rằng nạn nhân là lập trình viên? Đúng, nhưng đó chỉ là phần trực tiếp. Phần gián tiếp mới là điều thú vị.
Nạn nhân thực sự là các dự án crypto và DeFi.
Tại sao? Bởi vì kẻ tấn công không nhắm vào lập trình viên một cách ngẫu nhiên. Chúng nhắm vào credentials. Và credentials của một lập trình viên trong một dự án crypto có giá trị cực kỳ cao. Một AWS key có thể cho phép truy cập vào server chứa private key. Một GitHub OAuth token có thể cho phép đẩy code độc hại vào smart contract. Một npm token có thể cho phép phát hành một phiên bản giả mạo của thư viện được sử dụng bởi hàng trăm dự án khác.
Đây là một cuộc tấn công vào chuỗi cung ứng phần mềm AI. Nó cho phép kẻ tấn công biến một lập trình viên vô tội thành một cánh cửa để xâm nhập vào toàn bộ hệ sinh thái.
Hãy nghĩ về điều này. Một cuộc tấn công Agentjacking thành công vào một developer của một giao thức lending lớn có thể dẫn đến việc nâng cấp hợp đồng thông minh độc hại. Một cuộc tấn công vào một developer của một sàn DEX có thể dẫn đến việc đánh cắp private key của một ví nóng. Một cuộc tấn công vào một developer của một bridge có thể dẫn đến việc rút cạn thanh khoản.

Đây không phải là một vấn đề lý thuyết. Đây là một véc-tơ tấn công mới, có khả năng gây ra thiệt hại lớn hơn nhiều so với các cuộc tấn công vào smart contract, bởi vì nó tấn công vào con người và công cụ của họ, thay vì vào code.
Kết luận: Tương lai của Agent Security.
Sự kiện Agentjacking tại DEF CON 34 là một hồi chuông cảnh tỉnh. Nó cho thấy rằng ngành công nghiệp AI Agent đang phát triển nhanh hơn nhiều so với các biện pháp bảo mật của nó. Các giao thức như MCP cần phải được thiết kế lại với tư duy 'zero trust' đối với dữ liệu đầu vào. Các nền tảng như Sentry cần phải chịu trách nhiệm về bảo mật của các điểm cuối của họ. Và các công ty crypto cần phải nhận ra rằng bảo mật AI Agent không chỉ là một vấn đề của phòng thí nghiệm, mà là một vấn đề của sự sống còn.
Câu hỏi đặt ra không phải là 'Liệu điều này có xảy ra không?', mà là 'Khi nào nó xảy ra, ai sẽ là người đầu tiên gục ngã?'. Giải pháp có thể đến từ các lớp bảo mật mới như 'MCP Security Gateway', từ các công ty bảo mật chuyên về Agent, hoặc từ các tiêu chuẩn mới như 'MCP Security Extension'. Nhưng điều chắc chắn là: cuộc chơi đã thay đổi.

Sự thật nằm ở số liệu, không phải ở lời hứa. 2,388 tổ chức là một con số. 85% là một con số. Nhưng con số quan trọng nhất là 0 – số lượng các tổ chức đã sẵn sàng cho cuộc tấn công này.