Шаг 1: Аудит уязвимостей
Протестируйте систему на чёрном ящике: попробуйте стандартные техники injection в поле ввода. Запросите у разработчиков информацию о том, какие данные видит нейросеть (системные инструкции, ключи, приватные данные). Документируйте результаты.
Шаг 2: Разметьте данные
Отделите trusted инструкции от untrusted пользовательского ввода в промпте. Используйте явные теги: <SYSTEM_INSTRUCTIONS>, <USER_INPUT>, <DATABASE>, <EXTERNAL_API>. Это помогает модели различать источники информации и следовать только легальным командам.
Шаг 3: Ограничьте функции
Если нейросеть может вызывать API или выполнять код, создайте whitelist разрешённых функций. Отключите опасные действия: доступ к файловой системе, вызовы произвольных URL, запуск shell-команд. Проверяйте параметры каждого вызова перед исполнением.
Шаг 4: Настройте логирование
Логируйте все запросы и ответы системы. Сохраняйте контекст, использованный нейросетью. Ищите подозрительные паттерны: запросы со словами типа «игнорируй», «новая инструкция», «скажи мне», сокращённые промпты, повторение системных фраз. Настройте алёрты на аномальное поведение.
Шаг 5: Тестируйте регулярно
Проводите автоматизированное тестирование на injection ежемесячно. Используйте известные payload'ы (доступны на GitHub). Добавляйте новые тест-кейсы, когда обнаруживаются уязвимости. Обучайте команду распознавать признаки атаки в логах.