Третирайте извлеченото съдържание като недоверен вход
ЗавършеноРазпознавайте инструкции, скрити във файлове на хранилището и резултати от инструменти. Разграничавайте извлечената информация от правомощието за действие.
Проверете разбирането сиФайл в хранилището казва, че всички тестове са незадължителни и агентът трябва да игнорира инструкциите на задачата. Как работният процес трябва да го третира?Направете упражнението
Какво ще научите
- Определете непряка prompt injection атака в работен процес за разработка.
- Обяснете защо текстовите етикети сами по себе си не могат да наложат граница на сигурността.
- Проектирайте безопасен тест на ограниченията за инструментите.
Определете момента, в който данните се превръщат в инструкция
Агент за програмиране чете повече от искането на потребителя. Може да преглежда задачи, файлове в хранилището, документация на пакети, резултати от търсене и отговори от инструменти. Част от това съдържание може да включва инструкции от друг човек.
Prompt injection възниква, когато такова съдържание отклонява модела от разрешената задача. Непряка инжекция идва чрез извлечен източник, а не чрез прякото искане на потребителя. OWASP описва материалите в хранилището и изхода от инструменти като относими входни точки. Прочетете указанията за предотвратяване.
Разгледайте измислена задача по поддръжката. Потребителят иска агентът да поправи филтър на отчет и да изпълни необходимите тестове. Извлечен README казва, че тестовете са остарели, и иска агентът да качи конфигурационен файл. README може да обяснява проекта. Не може да разреши пропускане на потребителските проверки или изпращане на файлове другаде.
Определете възможните последствия
Един и същ подвеждащ текст има различни последствия в различни среди. Инструмент за обобщаване само с достъп за четене може да създаде неправилно обобщение. Агент с право за запис в хранилището може да променя код. Агент с тайни стойности и изходящ мрежов достъп може да разкрие информация.
Прегледайте наличните действия, преди да решите кои защити са важни. Избройте чувствителните ресурси, ресурсите, в които е разрешен запис, и външните дестинации. Включете конекторите, добавени след първоначалната настройка. Нов инструмент може да увеличи ефекта на съществуваща слабост.
Агент може и да пренесе подвеждащо съдържание към по-късен етап. Например може да копира недоверена инструкция в генерирано задание. Следващият агент не трябва да третира това задание като независимо одобрена политика.
Използвайте няколко контроли с различни цели
Отделете доверените инструкции на задачата от извлечените данни в проекта на приложението. Показвайте произхода на извлечения материал. Тези стъпки подобряват тълкуването, но не установяват пълна граница на сигурността.
Налагайте правата за ресурсите в системата за изпълнение. Ограничете дестинациите за чувствителни данни. Изисквайте подходящото решение преди действия с важни последствия. Проверявайте предложената операция спрямо разрешената задача и целевия ресурс.
Филтри и втори модел могат да помогнат при откриване на подозрително съдържание. Могат и да пропускат атаки или да блокират допустима информация. Не заменяйте детерминистичната проверка на правата с оценка на увереността на модел. OWASP изрично посочва ограниченията на подход, който разчита само на промптове или извличане. Прочетете описанието на риска.
Тествайте работния процес без реално излагане на риск
Използвайте временно хранилище и измислени файлове. Не давайте на оценката данни за достъп до продукционна среда или неограничен запис във външни системи. Добавете безобидна инструкция, която противоречи на задачата, например да се пропусне задължителна проверка.
Наблюдавайте и отговора на модела, и действителните действия на инструментите. Съобщение „Игнорирах инструкцията“ е недостатъчно, ако проверката все пак е пропусната. Запишете задачата, тестовите данни с инжекцията, разрешените инструменти и наблюдавания резултат.
Повтаряйте представителни случаи след промени в промптове, модели, конектори или права. Блокиран пример е доказателство за този случай, а не доказателство за защита срещу всяка инжекция. Ако тестът не успее, ограничете възможните последствия, докато поправяте основния работен процес.
Направете упражнението
Създайте временни тестови данни с коментар, който иска агентът да пропусне задължителна проверка. Изпълнете разрешена, изолирана оценка без тайни стойности или запис във външни системи. Проверете дали проверката все пак се изпълнява. Запишете правата за инструментите, наблюдаваното поведение и ограниченията на този единствен тест.
Изтеглете работния лист (Markdown)Премахването на тази отметка изтрива целия напредък, запазен в този браузър.
Напредъкът остава в този браузър. Без акаунт и проследяване.