Внедрение подсказок
Тема дорожной карты · Большие языковые модели (LLM)
Внедрение подсказок (prompt injection) представляет собой серьезную угрозу безопасности для больших языковых моделей (LLM), поскольку позволяет злоумышленникам внедрять вредоносные инструкции через пользовательский ввод. Эта уязвимость позволяет злоумышленникам перепрограммировать модель таким образом, что она выполняет действия, не предусмотренные разработчиками. Это делает крайне важным понимание и защиту от подобных атак.
Как это работает
Prompt injection — это атака, при которой злоумышленник вставляет вредоносные инструкции в пользовательский ввод. Это может быть реализовано через прямую инъекцию, когда злоумышленник указывает модель игнорировать предыдущие инструкции, или через непрямую инъекцию, когда вредоносные данные включаются в веб-страницы, письма или PDF-документы, которые затем читает агент. Для защиты от подобных атак необходимо применять комплексные меры, такие как фильтрация входных и выходных данных, разделение доверенного и недоверенного контекста, ограничение доступа к инструментам и подтверждение чувствительных действий человеком. Важно также относиться к выходным данным LLM как к недоверенным.
Когда применять
Следует относиться к I/O больших языковых моделей как к недоверенному контенту с самого начала работы. Это означает, что пользовательский ввод и выходные данные LLM должны проходить через границы безопасности. Для обеспечения безопасности следует использовать чек-лист OWASP LLM Top 10, который включает проверку инъекций подсказок, отток данных через выходные данные модели, а также обходы системы безопасности. Важно также санитизировать ввод инструментов, так как LLM может сгенерировать вредоносные команды, такие как ; DROP TABLE users;.
Типичные ошибки
Типичными ошибками при защите от внедрения подсказок являются:
- Доверие системным промптам, которые могут быть перебиты пользовательскими инъекциями.
- Доступ модели к вашим секретам в контексте, что может привести к утечке данных.
- Позволение агентам писать в базу данных без подтверждения, что может привести к вторжению.
- Отсутствие логирования I/O LLM для дальнейшего расследования инцидентов.