Các nhà nghiên cứu an ninh mạng vừa mô tả một loại hình tấn công mới có thể lừa các AI coding agent (công cụ AI hỗ trợ lập trình) thực thi mã tùy ý trên máy tính của nhà phát triển.
Được Tenet Security đặt tên là Agentjacking, cuộc tấn công này có thể được kích hoạt thông qua một báo cáo lỗi giả mạo được tạo bằng Sentry, một nền tảng theo dõi lỗi và giám sát hiệu suất mã nguồn mở.
"Cuộc tấn công khai thác một lỗ hổng kiến trúc nghiêm trọng tại điểm giao thoa giữa quá trình nhập sự kiện của Sentry (chấp nhận các payload tùy ý từ bất kỳ ai có DSN) và máy chủ Sentry MCP (trả lại dữ liệu này cho các AI agent dưới dạng đầu ra hệ thống đáng tin cậy)," các nhà nghiên cứu Ron Bobrov, Barak Sternberg và Nevo Poran cho biết.
Ý tưởng của phương thức này là tiêm các đầu vào đã được chuẩn bị vào các sự kiện lỗi của Sentry, sau đó chúng được các AI coding agent như Claude Code và Cursor diễn giải thành các bước giải quyết chẩn đoán hợp lệ và thực thi mã do kẻ tấn công kiểm soát.
Một cuộc tấn công thành công loại này có thể làm lộ dữ liệu nhạy cảm, bao gồm các biến môi trường, thông tin đăng nhập Git, URL kho lưu trữ riêng tư và danh tính của nhà phát triển mà không cần dựa vào các phương pháp như phishing hay xâm nhập máy chủ trước đó.
Rủi ro từ sự tin tưởng ngầm định trong MCP
Vấn đề bắt nguồn từ sự tin tưởng ngầm định liên quan đến việc kết nối với các dịch vụ bên ngoài bằng Model Context Protocol (MCP). Vì AI agent không thể phân biệt giữa một sự kiện lỗi được tạo ra bởi một vụ sập ứng dụng thực tế hay do kẻ tấn công tiêm vào, nó tạo ra một con đường dẫn đến việc thực thi mã tùy ý khi agent xử lý phản hồi.
Chuỗi tấn công Agentjacking được thực hiện như sau:
- Kẻ tấn công tìm thấy Sentry Data Source Name (DSN) của mục tiêu, một thông tin đăng nhập công khai, chỉ có quyền ghi (write-only) được nhúng trong các trang web.
- Kẻ tấn công gửi một sự kiện lỗi độc hại đến điểm cuối thu nạp của Sentry thông qua một yêu cầu POST sử dụng DSN.
- Sự kiện được tiêm chứa "định dạng markdown được chuẩn bị kỹ lưỡng" trong trường thông báo và tên khóa ngữ cảnh. Khi máy chủ Sentry MCP trả lại sự kiện này cho AI agent, nó được hiển thị dưới dạng nội dung có cấu trúc giống hệt về mặt hình ảnh với mẫu hệ thống của Sentry.
- Khi một nhà phát triển yêu cầu AI coding agent của họ "khắc phục các vấn đề Sentry chưa được giải quyết" (hoặc một câu lệnh tương tự), agent sẽ truy vấn Sentry qua MCP và nhận được sự kiện độc hại.
- Agent thực thi mã độc, chạy với toàn bộ đặc quyền của nhà phát triển.
"Kẻ tấn công không bao giờ chạm vào hạ tầng của nạn nhân," các nhà nghiên cứu giải thích. "Chỉ thị độc hại đến dưới dạng một 'Giải pháp' (Resolution) hợp lệ bên trong một lỗi thông thường. Khi nhà phát triển yêu cầu AI agent sửa lỗi Sentry, agent sẽ đọc lệnh của kẻ tấn công như một hướng dẫn đáng tin cậy và thực thi nó - với chính đặc quyền của nhà phát triển, trên chính máy tính của họ."
Agentjacking nổi bật vì nó nhắm trực tiếp vào AI agent mà nhà phát triển tin tưởng và sử dụng Sentry DSN làm điểm khởi đầu. Ngoài ra, kỹ thuật tiêm markdown được hiển thị khiến agent không thể phân biệt được đâu là hướng dẫn hợp lệ từ Sentry.
Phạm vi ảnh hưởng và phản ứng từ Sentry
Công ty an ninh mạng AI này cho biết họ đã tìm thấy ít nhất 2.388 tổ chức bị lộ DSN có thể bị khai thác, và đã thử nghiệm cuộc tấn công một cách có kiểm soát đối với hơn 100 tổ chức, đạt tỷ lệ thành công 85% trên một số trợ lý lập trình AI phổ biến nhất.
Về phía Sentry, họ đã thừa nhận vấn đề nhưng chọn không khắc phục triệt để, tuyên bố rằng điều này "về mặt kỹ thuật là không thể phòng thủ." Tuy nhiên, công ty được cho là đã kích hoạt một bộ lọc nội dung toàn cầu để chặn một "chuỗi payload cụ thể."
"Khi các doanh nghiệp chạy đua để triển khai các AI coding agent, nghiên cứu này chứng minh rằng chính các agent này hiện là bề mặt tấn công - bị lợi dụng để chống lại các nhà phát triển, bằng cách sử dụng chính dữ liệu mà các tổ chức đó công bố về mình," Tenet cho biết. "Cuộc tấn công vượt qua EDR, WAF, IAM, VPN, Cloudflare và tường lửa - vì không có gì độc hại để phát hiện. Mọi hành động trong chuỗi đều được ủy quyền."