Trong bài viết này
Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.
Trợ lý đọc một tài liệu hướng dẫn rồi bất ngờ đề nghị gửi toàn bộ ghi chú nội bộ ra ngoài. Nội dung được đọc đã chứa chỉ dẫn thay đổi mục tiêu. Vấn đề không nằm ở việc văn bản có một câu đáng ngờ; vấn đề là hệ thống đã để dữ liệu được đọc ảnh hưởng tới quyền hành động.
Tiên quyết: hiểu RAG, gọi công cụ và phân quyền. Các tình huống sau dành cho kiểm thử phòng vệ trong ứng dụng của bạn, với tài liệu và tài khoản giả.
Xác định nguồn có quyền ra lệnh
OWASP mô tả prompt injection gián tiếp là tác động qua nội dung bên ngoài như website hoặc tệp. RAG và fine-tuning không tự loại bỏ nguy cơ này. Vì vậy, “đã lấy từ kho tài liệu” không đồng nghĩa với “được phép điều khiển agent”.
Trong thiết kế minh họa, yêu cầu người dùng đi vào kênh nhiệm vụ; tài liệu truy xuất đi vào kênh bằng chứng. Mỗi đoạn có source_id, phạm vi truy cập và loại nội dung. Hệ thống nói rõ rằng tài liệu được dùng để trả lời câu hỏi, không được dùng để cấp thêm quyền hoặc thay đổi người nhận.
Một prompt dễ kiểm tra nêu nhiệm vụ, cung cấp ngữ cảnh, đặt giới hạn và quy định đầu ra. Sau đó thử trên các ví dụ thật để xem mô hình có đáp ứng hay không.
↔ Vuốt ngang để xem toàn bộ sơ đồ.
01 / Nhiệm vụ
Nêu công việc cụ thể: chẳng hạn viết lại thông báo kỹ thuật cho người dùng phổ thông.
02 / Ngữ cảnh
Cung cấp thông báo gốc và nói rõ ai sẽ đọc, họ cần biết điều gì.
03 / Giới hạn
Yêu cầu giữ nguyên mốc giờ, tên tính năng và con số; không tự thêm thông tin thiếu căn cứ.
04 / Định dạng đầu ra
Quy định tiếng Việt, tối đa 120 từ, nêu hành động cần làm và đánh dấu phần còn thiếu.
Đây là khung soạn yêu cầu, không phải công thức bảo đảm đầu ra đúng. Các giới hạn về quyền và bảo mật phải được thực thi trong ứng dụng.
Sơ đồ minh họa cấu trúc đầu vào. Tách phần trong prompt giúp diễn đạt ý định nhưng không tạo ranh giới bảo mật cứng; các lớp kiểm soát tiếp theo vẫn cần thiết.
Chặn tại ranh giới công cụ
Giả sử nhiệm vụ là tóm tắt ba tài liệu. Hợp đồng công cụ chỉ cho phép đọc các tài liệu đã được xác thực và tạo bản nháp trong phiên hiện tại. Không cung cấp công cụ gửi email cho nhiệm vụ không cần email.
authorize_tool(call, session):
require call.tool in session.allowed_tools
require all_resources_belong_to_session(call)
require destination_is_allowed(call)
require write_has_matching_approval(call)
Đây là mã giả cho một cổng kiểm tra; đầu vào mô hình tạo ra vẫn là dữ liệu không đáng tin. Các điều kiện được thực hiện bằng mã và danh tính từ phiên. Nếu mô hình bị dẫn hướng và phát lệnh ngoài phạm vi, bộ thực thi phải từ chối được mà không cần mô hình “đồng ý”.
Lớp này giới hạn hậu quả, nhưng không đảm bảo bản tóm tắt đúng. Một tài liệu có thể khiến mô hình đưa kết luận sai mà không gọi công cụ nguy hiểm. Vì vậy cần kiểm tra cả hành động lẫn chất lượng nội dung.
Kiểm tra đường ra và bảo toàn bằng chứng
Đối với câu trả lời có trích dẫn, yêu cầu mỗi kết luận quan trọng đi kèm đoạn bằng chứng. Bộ kiểm tra xác nhận nguồn được phép truy cập và đoạn dẫn thực sự hỗ trợ kết luận. Nếu nguồn mâu thuẫn, trả trạng thái cần xem xét thay vì để một chỉ dẫn trong tài liệu quyết định nguồn nào “đáng tin hơn”.
Với dữ liệu nhạy cảm, áp dụng lọc hoặc kiểm tra chính sách ở đường xuất. Chỉ dẫn trong prompt không thay cho quy tắc người nhận và miền đích. Đồng thời tránh ghi toàn bộ nội dung bí mật vào log của bộ kiểm tra; khả năng quan sát không nên mở thêm đường rò rỉ.
Nhiều lớp làm tăng độ trễ, số lần từ chối và công sức bảo trì. Cần theo dõi cả chặn đúng lẫn chặn nhầm. Bộ lọc từ khóa quá rộng có thể từ chối một tài liệu đang mô tả prompt injection phục vụ đào tạo, trong khi các biến thể khác vẫn lọt qua.
Tạo bộ thử phòng vệ có kết quả mong đợi
Bài tập: viết sáu tài liệu giả gồm nội dung bình thường, trích dẫn một câu mệnh lệnh, yêu cầu đổi mục tiêu, yêu cầu dùng công cụ ngoài phạm vi, nguồn mâu thuẫn và tài liệu thiếu bằng chứng. Không dùng dữ liệu thật hoặc kiểm thử hệ thống của người khác.
Tự kiểm: nhiệm vụ hợp lệ vẫn hoàn tất; nội dung tài liệu không mở rộng quyền; không có dữ liệu vượt phạm vi phiên; kết luận thiếu nguồn được đánh dấu; trường hợp chặn nhầm được lưu để sửa. Ghi rõ bộ thử chỉ bao phủ các tình huống đã tạo, không chứng minh miễn nhiễm với mọi tấn công.
Đọc tiếp phân quyền tối thiểu và red team ứng dụng AI để kiểm tra các lớp này cùng nhau.