Tiêm nhiễm prompt là một kỹ thuật tấn công AI trong đó kẻ tấn công cố gắng thao túng LLM bằng cách "tiêm" thông tin độc hại vào dấu hiệu đầu vào. Tiêm nhiễm prompt có thể được thực hiện theo nhiều cách khác nhau, chẳng hạn như sử dụng các từ hoặc cụm từ có ý nghĩa đặc biệt đối với LLM, hoặc sử dụng cấu trúc ngữ pháp của dấu hiệu.
Ngăn chặn hoàn toàn tấn công tiêm nhiễm prompt là cực kỳ khó khăn, và chưa có giải pháp hoàn hảo nào. Tuy nhiên, các nhà phát triển LLM có thể áp dụng các chiến lược bảo vệ dấu hiệu để giảm thiểu khả năng xảy ra các cuộc tấn công này.
Các chiến lược bảo vệ dấu hiệu:
Các chiến lược bảo vệ dấu hiệu hiện có có thể được chia thành hai loại chính:
- ⚔️ Các chiến lược phòng thủ chủ động: Các chiến lược này cố gắng phát hiện và ngăn chặn các cuộc tấn công trước khi chúng xảy ra.
- 🔰 Các chiến lược phòng thủ bị động: Các chiến lược này cố gắng giảm thiểu tác động của các cuộc tấn công đã xảy ra.
Các chiến lược phòng thủ chủ động:
Các chiến lược phòng thủ chủ động có thể được sử dụng để ngăn chặn các cuộc tấn công tiêm nhiễm prompt ngay từ đầu. Một số chiến lược phòng thủ chủ động phổ biến bao gồm:
- ▼ Filtering: Loại bỏ các từ có khả năng gây hại hoặc thao túng.
- 📝 Instruction: Cung cấp hướng dẫn rõ ràng cho LLM về những gì được yêu cầu.
- ✏️ Post-prompting: Thêm thông tin bổ sung sau dấu hiệu ban đầu để giải thích hoặc điều chỉnh hướng.
- 🎲 Random Sequence Enclosure (RSE) hoạt động bằng cách bọc quanh các prompt đầu vào bằng một chuỗi ngẫu nhiên.
- 🥪 Sandwich Defense hoạt động bằng cách bọc quanh các đầu vào bằng hai lớp thông tin.
- 🔲 Framing: Xử lý đầu vào của người dùng theo các cách khác nhau để tăng tính an toàn.
- 🏷️ XML tagging: Thêm cấu trúc XML cho prompt để tăng khả năng kiểm soát.
Các chiến lược phòng thủ bị động:
Các chiến lược phòng thủ bị động có thể được sử dụng để giảm thiểu tác động của các cuộc tấn công tiêm nhiễm prompt đã xảy ra. Một số chiến lược phòng thủ bị động phổ biến bao gồm:
- 🤷🏻♂️ Obfuscation/token smuggling: Là một kỹ thuật làm xáo trộn mã hoặc dữ liệu để khiến nó khó hiểu hoặc khó phân tích. Kỹ thuật này có thể được sử dụng để bảo vệ ứng dụng khỏi các cuộc tấn công chèn prompt, vì nó có thể khiến kẻ tấn công khó xác định vị trí của prompt.
- 🚚 Payload splitting: Là một kỹ thuật chia tải đầu vào thành nhiều phần nhỏ hơn. Kỹ thuật này có thể được sử dụng để bảo vệ ứng dụng khỏi các cuộc tấn công chèn prompt, vì nó có thể khiến kẻ tấn công khó chèn prompt mà không bị phát hiện.
- 🔤 Defined dictionary attack: Là một kỹ thuật sử dụng một từ điển các từ hoặc cụm từ đã biết để tìm kiếm các dấu hiệu chèn dấu hiệu. Kỹ thuật này có thể được sử dụng để phát hiện các cuộc tấn công chèn dấu hiệu, nhưng nó có thể không hiệu quả đối với các cuộc tấn công sử dụng các từ hoặc cụm từ không nằm trong từ điển.
- 💾 Virtualization: Là một kỹ thuật tạo ra một môi trường ảo để chạy ứng dụng. Kỹ thuật này có thể được sử dụng để bảo vệ ứng dụng khỏi các cuộc tấn công chèn dấu hiệu, vì nó có thể ngăn chặn kẻ tấn công truy cập vào các tài nguyên hệ thống quan trọng.
- ➰ Indirect injection: Là một kỹ thuật chèn prompt gián tiếp vào ứng dụng. Kỹ thuật này có thể khó phát hiện hơn các cuộc tấn công chèn prompt trực tiếp.
- ♾️ Recursive injection: Là một kỹ thuật chèn prompt lặp lại vào ứng dụng. Kỹ thuật này có thể khó phát hiện hơn các cuộc tấn công chèn prompt đơn giản.
- </> Code injection: Là một kỹ thuật chèn mã độc vào ứng dụng. Kỹ thuật này có thể gây ra nhiều thiệt hại cho ứng dụng, bao gồm mất dữ liệu, truy cập trái phép vào hệ thống và rò rỉ thông tin.
Kết hợp các chiến lược:
Để có hiệu quả cao nhất, các chiến lược bảo vệ dấu hiệu nên được kết hợp với nhau. Ví dụ, một ứng dụng có thể sử dụng lọc từ để loại bỏ các từ có khả năng gây hại, đồng thời sử dụng hướng dẫn để cung cấp hướng dẫn rõ ràng cho LLM.
Ví dụ cụ thể:
Giả sử chúng ta có một ứng dụng dịch ngôn ngữ. Chúng ta muốn ngăn chặn các cuộc tấn công tiêm nhiễm prompt nhằm mục đích dịch các văn bản có nội dung thù địch. Chúng ta có thể sử dụng các chiến lược sau để bảo vệ ứng dụng:
- Filtering: Loại bỏ các từ có liên quan đến chủ đề thù địch, chẳng hạn như "chiến tranh", "khủng bố", "phân biệt chủng tộc".
- Instruction: Cung cấp hướng dẫn rõ ràng cho LLM về loại văn bản cần dịch. Hướng dẫn có thể bao gồm các cụm từ như "dịch chính xác", "dịch trung lập" hoặc "dịch sáng tạo".
- Post-prompting: Yêu cầu người dùng cung cấp thêm thông tin về ngữ cảnh của văn bản cần dịch.
Việc kết hợp các chiến lược này có thể giúp giảm thiểu khả năng xảy ra các cuộc tấn công tiêm nhiễm dấu hiệu nhằm mục đích dịch các văn bản có nội dung thù địch.
Kết luận:
Tấn công tiêm nhiễm prompt là một mối đe dọa nghiêm trọng đối với các LLM. Các nhà phát triển LLM cần phải áp dụng các chiến lược bảo vệ dấu hiệu để giảm thiểu khả năng xảy ra các cuộc tấn công này. Việc kết hợp các chiến lược bảo vệ dấu hiệu là cách tốt nhất để đạt được hiệu quả cao nhất.