Bỏ qua để vào nội dung chính
Chống prompt injection cho AI agent: checklist 6 nhóm

Chống prompt injection cho AI agent: checklist 6 nhóm

Bởi Marcus Bennett
10 thg 10, 20264 phút đọc

Agent đọc web lạ rồi tự gửi file ra ngoài? Checklist 6 nhóm chặn indirect prompt injection, kèm cách tự chấm điểm agent theo OWASP Agentic Top 10.

Agent của bạn đọc một trang web lạ để tóm tắt, rồi tự gọi tool đẩy file nội bộ ra ngoài. Không ai lấy API key, không ai khai thác lỗi bộ nhớ — nó chỉ làm theo chữ trong trang đó. Dưới đây là checklist kiến trúc để agent bị lừa không mặc nhiên thành agent bị chiếm quyền.

Agent sinh ra hành động, không chỉ sinh ra chữ

Chatbot sai thì ra một câu trả lời tệ. Agent có tool sai thì ra một hành động: đọc file, gọi API, gửi mail, sửa record, upload dữ liệu.

Indirect prompt injection là khi attacker không nói chuyện với model, mà đặt chỉ thị vào thứ agent chắc chắn sẽ đọc: webpage, email, PDF, GitHub issue, search result, image, tool output, database record. Attacker thao túng môi trường agent tiêu thụ, không đụng tới code của bạn.

Kiểm tra "lethal trifecta" trước tiên

Cụm từ do Simon Willison phổ biến, mô tả agent hội đủ ba điều kiện: truy cập dữ liệu riêng tư, tiếp xúc nội dung không tin cậy, và giao tiếp được ra ngoài. Đủ ba thì agent có thể bị biến thành kênh exfiltration.

Đây là bước rẻ nhất: liệt kê agent, đánh dấu cái nào chạm cả ba cạnh. Cắt một cạnh — bỏ egress của agent chuyên đọc tài liệu nội bộ chẳng hạn — rẻ hơn mọi lớp phòng thủ phía sau.

Checklist sáu nhóm, không phải một classifier

  • Context: đánh dấu dữ liệu ngoài là untrusted, tách instruction khỏi data, theo vết provenance, coi tool output cũng untrusted.
  • Browser: cô lập session, hạn chế interface đặc quyền.
  • Tools: least privilege, tách read khỏi write, authorization mạnh hơn cho thao tác destructive, validate argument model sinh ra.
  • Credentials: không đưa secret thừa vào context, bảo vệ bước nhập credential, dùng broker và short-lived token.
  • Network: giới hạn đích outbound, chống SSRF, giám sát egress bất thường.
  • Human approval: bắt xác nhận với payment, publish ra ngoài, chuyển dữ liệu nhạy cảm và thao tác destructive.

Meta mô tả công khai đúng kiểu kiến trúc này cho Muse: dữ liệu ngoài vào context bị gắn nhãn untrusted, nhiều classifier phát hiện prompt injection, runtime isolation, credential isolation và human approval cho hành động ra ngoài.

Đừng coi classifier là biên giới an ninh: chỉ thị có thể bị encode, chẻ qua nhiều tài liệu, giấu trong ảnh hoặc nhồi qua tool output. Mô hình đề xuất vì thế xếp tám lớp, từ model training tới network egress policy và human approval — một lớp thủng không được phá luôn các lớp còn lại.

Hệ quả khi review log: tool-call hợp lệ không đồng nghĩa ý định hợp lệ — API chạy đúng spec vẫn có thể là bước giữa của chuỗi exfiltration.

Chấm điểm agent đang chạy trên máy bạn

Muốn số liệu thay vì cảm tính thì có agent-ledger, plugin MIT cho Hermes Agent: hook pre_tool_call, ghi entry xuống SQLite trước khi tool chạy, call xong mới confirm; entry không bao giờ confirm thành ghost. Mọi thứ nằm local, không telemetry.

posture.py chấm hành vi đã ghi theo thang 100 đến 0, đối chiếu OWASP Top 10 for Agentic Applications 2026, bằng công thức tác giả công bố: score = 100 − Σ{CRITICAL:25, HIGH:15, MEDIUM:8, LOW:3}, không dedup. Phạm vi nêu thẳng: phủ ASI02, ASI05, ASI08, ASI10, ASI11 (ext); không phủ ASI01, ASI03, ASI04, ASI06, ASI07, ASI09 vì cần soi payload.

Hai cảnh báo của chính tác giả: điểm 100 chỉ nghĩa là "không có gì đáng ngờ trong hoạt động đã ghi", mà ledger lại do chính agent bị chấm ghi ra; và bộ test chỉ chứng minh scorer bắt được bảy mẫu né đã biết.

Làm gì trong tuần này

Dựng bảng ba cột cho từng agent: đọc dữ liệu riêng tư nào, ăn nội dung không tin cậy từ đâu, gửi được ra đâu. Agent nào đủ ba thì cắt một cạnh hoặc đặt human approval trước egress. Nguyên tắc soi mọi thiết kế: đừng để thông tin không tin cậy thừa hưởng đặc quyền ra lệnh.

Không spam, hủy đăng ký bất kỳ lúc nào.

Bài viết liên quan