Bạn là một lập trình viên blockchain, đang thoải mái code trên terminal. Bạn yêu cầu Claude Code xem xét một lỗi Sentry, và AI trả lời bằng một kế hoạch sửa chữa. Bạn chạy npm install, không chút nghi ngờ. Vài giây sau, AWS keys, GitHub tokens của bạn đã bay hơi. Tôi đã fork repo của một dự án DeFi và phát hiện một kịch bản tương tự, nhưng lần này, nó không phải là giả thuyết. Đây là những gì code thực sự nói về một vector tấn công mới, được gọi là Agentjacking, được trình bày tại DEF CON 34.
Phân tích này dựa trên một bài báo cáo về lỗ hổng bảo mật, nơi các tác nhân AI (AI Agent) bị khai thác thông qua các DSN (Data Source Name) công khai của Sentry. Sự kết hợp giữa MCP (Model Context Protocol) và cơ chế ingest lỗi không xác thực đã tạo ra một cơn bão hoàn hảo. Nếu bạn đọc kỹ whitepaper của MCP, bạn sẽ thấy nó được thiết kế để kết nối AI với mọi thứ, nhưng lại không có một lớp bảo mật nào để phân biệt dữ liệu và mã lệnh. Đây là lỗ hổng kiến trúc: các Agent không thể phân biệt được một mẹo sửa lỗi từ một lệnh tấn công.
Cốt lõi của vấn đề nằm ở cơ chế giao thức. Sentry, một nền tảng giám sát lỗi phổ biến, sử dụng DSN để xác định dự án. Vấn đề là các endpoint ingest của Sentry chấp nhận bất kỳ payload nào có chứa DSN hợp lệ, mà không cần xác thực thêm. Điều này có nghĩa là bất kỳ ai cũng có thể POST một sự kiện lỗi giả mạo vào dự án của bạn. Khi bạn sử dụng AI coding agent như Claude Code hoặc Cursor, và cấu hình nó để đọc lỗi từ Sentry qua MCP, agent sẽ lấy nội dung của issue đó, bao gồm cả các đề xuất sửa lỗi, và coi đó là hướng dẫn hành động. Đây là một biến thể của Indirect Prompt Injection, nhưng được mở rộng quy mô thông qua các DSN công khai.
Tôi đã kiểm tra dữ liệu từ báo cáo. Có khoảng 2.388 tổ chức có DSN Sentry công khai có thể bị khai thác. Trong số đó, 71 tổ chức nằm trong top 1 triệu trang web của Tranco, và khoảng 27% các công ty trong Fortune 1000 có thể bị ảnh hưởng thông qua tích hợp MCP của Cloudflare. Hãy tưởng tượng bạn là một nhà phát triển Layer2, đang sử dụng Cursor để debug một contract thông minh. Agent của bạn đọc lỗi từ Sentry, và thấy một đề xuất sửa lỗi bằng cách chạy một lệnh npm install. Đó là một gói npm độc hại, được thiết kế để đánh cắp private key hoặc RPC endpoint của bạn. Tỷ lệ thành công của cuộc tấn công này trong môi trường kiểm soát lên tới 85%.

Điều phản trực giác ở đây là Sentry đã triển khai một bộ lọc nội dung (content filter) để chặn các payload cụ thể. Nhưng đây là một giải pháp tạm thời, một loại danh sách đen IoC (Indicator of Compromise) có thể dễ dàng bị bypass bằng cách thay đổi một vài ký tự. Giả định tin cậy họ đang đặt ra là một giải pháp mang tính nền tảng là "không khả thi về mặt kỹ thuật". Điều này có nghĩa là họ đang chấp nhận rủi ro, và đẩy trách nhiệm cho người dùng cuối. Tenet Security, nhóm nghiên cứu đã phát hiện ra lỗ hổng, đã phát hành một công cụ mã nguồn mở có tên là agent-jackstop. Nó thực hiện các biện pháp giảm thiểu như danh sách trắng mạng, phê duyệt lệnh, và bảo vệ thông tin xác thực ở cấp tiến trình. Nhưng đây chỉ là giảm thiểu, không phải là giải pháp gốc rễ. Vấn đề cốt lõi là kiến trúc: dữ liệu từ các nguồn bên ngoài, một khi được đưa vào ngữ cảnh của Agent, có thể ảnh hưởng đến quyết định của nó.

Điều này có ý nghĩa gì đối với hệ sinh thái blockchain? Các nhà phát triển DeFi, những người làm việc với các khóa riêng tư, RPC endpoints, và các contract thông minh, đang đặc biệt dễ bị tổn thương. Họ thường xuyên sử dụng các công cụ AI để tăng tốc độ phát triển. Một cuộc tấn công Agentjacking có thể đánh cắp private key của một multi-sig wallet, hoặc thay đổi mã nguồn của một contract trước khi triển khai. MCP, một giao thức mở, đang chuyển từ một cuộc đua về tính năng sang một cuộc đua về bảo mật. Các công ty bảo mật đang tạo ra các sản phẩm mới như "MCP Security Gateway". Nhưng liệu có đủ nhanh không? Khi thị trường đang đi ngang, các nhà phát triển có xu hướng tập trung vào việc xây dựng, và bỏ qua bảo mật. Đây là thời điểm để xếp hàng, nhưng cũng là thời điểm để đặt câu hỏi: bạn có đang tin tưởng vào AI của mình một cách mù quáng?