Прибыль:
- Способность распознавать поверхности атак, специфичные для ИИ (мгновенное внедрение, отравление данных, утечка конфиденциальных данных, извлечение членства) и проектировать многоуровневую защиту.
- Возможность применять конфиденциальность как принцип проектирования: минимизация данных, маскирование, контроль доступа и период хранения.
- Способность проводить работу по обеспечению безопасности исключительно в оборонительных целях, ответственно раскрывать уязвимости и избегать несанкционированного использования.
Система машинного обучения несет в себе все риски безопасности традиционного программного обеспечения и добавляет новые уникальные возможности для атак. Модель может быть обманута входными данными, обучающие данные могут быть отравлены, а конфиденциальная информация может попасть в выходные данные. В этом модуле мы рассматриваем системы искусственного интеллекта с точки зрения защиты: распознавание атак, усиление системы, защита конфиденциальности. Эта информация предназначена не для несанкционированного доступа или атаки, а для обеспечения безопасности ваших собственных систем.
Поверхности атак, специфичные для ИИ
Помимо классической безопасности (аутентификация, авторизация, шифрование), системы ML уязвимы к:
- Быстрое внедрение: инструкция, скрытая во входных данных LLM, не соответствует модели. Самый распространенный и наиболее практичный риск безопасности LLM.
- Отравление данных: злоумышленник вводит в модель скрытый лазейку или предвзятость, вставляя неверные выборки в обучающие данные.
- Вывод и инверсия модели. Злоумышленник реконструирует обучающие данные или поведение модели, отправляя к модели несколько запросов.
- Вывод о членстве: вывод о том, используются ли данные конкретного человека в образовании — нарушение конфиденциальности.
- Утечка конфиденциальных данных: модель раскрывает конфиденциальную информацию (имя, личность, секрет) в обучающих данных на выходе.
Для каждого из этих рисков существуют средства защиты; Ключевым моментом является учет рисков на этапе проектирования.
Оперативная инъекция: самая непосредственная угроза
Существует два типа быстрой инъекции:
- Прямой: пользователь лично вводит текст, например «игнорировать предыдущие инструкции».
- Косвенный: неверная инструкция скрыта во внешнем контексте (веб-странице, документе, электронной почте), который обрабатывает модель. Особенно опасно для агентов и RAG, поскольку модель надежно обрабатывает внешний контент.
Слои защиты:
- Parsing: Separate system instruction and user/external data with clear delimiters; помечать внешний контент как «данные, а не команды».
- Минимальные мощности: Ограничьте ущерб, который модель может нанести, даже если она захвачена (мощности машины в блоке 5).
- Контроль вывода: проверьте, что производит модель, прежде чем использовать ее, особенно если она преобразуется в действие.
- Человеческое одобрение. Свяжите действия с высоким риском с одобрением.
Внимание: невозможно полностью решить проблему быстрой инъекции с помощью одной защиты; Требуется эшелонированная защита (глубинная защита). Критическое предположение: «В какой-то момент модель может быть обманута; что же самое худшее произойдет, если ее обманут, и как мне это ограничить?»
Слабый подход/Сильный подход
Слабое: «Я набрал в системной подсказке «игнорировать неверные инструкции», и мы в безопасности».
Стронг: «Мы обернули внешний контент тегами <data> и сказали: «игнорируйте внутренние инструкции». Мы также ограничили инструменты модели минимальной авторизацией, привязали необратимые действия к одобрению человека, протоколировали все вызовы инструментов и подвергали выходные данные проверке правил перед использованием. Мы полагаемся на уровни, а не на единую защиту».
Разница: сильный подход знает, что однострочной инструкции будет недостаточно, и создает уровни, ограничивающие ущерб.
Конфиденциальность: данные защищены с самого начала
Конфиденциальность — это не функция, добавленная позже, это принцип проектирования (конфиденциальность по замыслу). Основные приложения:
- Минимизация данных: не собирайте и не храните больше личных данных, чем необходимо. Несобранные данные не могут быть раскрыты.
- Анонимизация и маскировка: замаскируйте или удалите личные идентификаторы (имя, идентификатор, адрес электронной почты), прежде чем передавать их модели.
- Контроль доступа: Ограничьте и зарегистрируйте тех, кто имеет доступ к данным и модели (контроль доступа RAG на блоке 4).
- Срок хранения. Определите в соответствии с политикой, как долго вы храните данные; Удалите просроченный.
Дифференциальная конфиденциальность (метод, который предотвращает существенное влияние данных одного человека на выходные данные за счет добавления контролируемого шума во время обучения) и федеративное обучение (подход, при котором обучение на устройствах без перемещения данных в центр) являются передовыми методами обеспечения конфиденциальности; следует учитывать при работе с конфиденциальными данными.
Совет: Прежде чем обрабатывать какие-либо данные, спросите: «Если эти персональные данные утекут, кто и какой вред понесет?» Если ущерб серьезный, либо не собирайте данные вообще, либо обрабатывайте их, маскируя. Самые безопасные данные — это данные, которые никогда не собирались.
Обучающие данные и модель безопасности цепочки поставок
Как и ваша модель, используемые вами компоненты также являются проблемой безопасности:
- Доверие к источнику данных: надежны ли данные обучения или они могут быть подделаны? Аудит общедоступных наборов данных.
- Сторонние модели и библиотеки. Загруженная вами предварительно обученная модель или зависимость могут быть вредоносными. Проверьте его источник, сигнатуру и известные уязвимости.
- Цепочка поставок. Каждый инструмент и пакет в вашем конвейере машинного обучения — это звено доверия; Вы в безопасности, как самое слабое звено.
Ответственное раскрытие информации и этические границы
Когда вы обнаруживаете уязвимость — в своей собственной системе или системе поставщика — правильным решением будет ответственное раскрытие: конфиденциально сообщить об уязвимости соответствующей стороне и дать ей время на ее исправление, а не использовать или распространять ее. Использование искусственного интеллекта или полученной вами информации безопасности для несанкционированного доступа, утечки данных или несанкционированного вмешательства в чужую систему является незаконным и противоречит профессиональной этике. Содержимое этого модуля, посвященное безопасности, предназначено исключительно для целей защиты, обнаружения и усиления защиты.
три мини-кейса
Случай 1 – Ограничение непрямого впрыска. Бот поддержки RAG отображал веб-контент. Скрытые инструкции были похоронены на одной странице. Модель была частично обманута, но у бота не было привилегий на запись (минимальных привилегий), и выходные данные проходили проверку правил перед отображением пользователю; Оно оказалось вредным и его поймали. Многоуровневая защита предотвратила превращение единичного сбоя в катастрофу.
Случай 2 – Утечка конфиденциальных данных. Команда настроила систему поддержки клиентов, которая входит в модель, не маскируя их (блок 6). Модель начала генерировать реальные имена клиентов в нерелевантных вопросах. Также существовал риск исключения членства. Модель изъята, данные замаскированы, политика хранения исправлена. Урок: конфиденциальные данные не должны попадать в образование.
Случай 3. Набор данных о ядовитых веществах. Одна команда обучалась на общедоступном наборе данных без его аудита. На съемочной площадке были ядовитые образцы, которые вводили модель в заблуждение, когда она видела определенное триггерное слово (бэкдор). После добавления аудита и сканирования аномалий эти образцы были собраны. Урок: проверяйте источник данных, не доверяйте ему слепо.
Копируемые шаблоны
Check this LLM/agent system for prompt injection.- Are system instructions and user/external data clearly separated?- Is external content marked as "data" or is it handled as a command?- What is the worst that would happen if the model is fooled (authorization limit)?- Are irreversible actions subject to human approval?- Is the output inspected before use?System: [description]. Перечислите недостатки многоуровневой защиты.
Проведите аудит этого потока обработки данных на предмет конфиденциальности.- Действительно ли каждое собранное личное поле необходимо (минимизация)?- Какие поля должны быть замаскированы в данных, поступающих в модель?- Имеется ли контроль доступа и ведение журнала?- Определен ли период хранения?Поток: [описание]. Предложите исправление каждого недостатка.
В этом тексте найдите персональные данные, которые необходимо замаскировать перед отправкой их модели. Поля: имя, адрес электронной почты, телефон, номер удостоверения личности/паспорта, адрес, номер карты, IP. Перечислите каждый результат с указанием его типа и рекомендуемой маски. Остальной текст не заменяйте. Текст: [текст]
Создайте контрольный список безопасности перед запуском этой сторонней модели/библиотеки в производство. – Доверены ли источник и издатель, проверена ли подпись? – Просканировано на наличие известных уязвимостей (CVE)? – Какие привилегии/доступ необходимы, можно ли свести их к минимуму? Компонент: [имя/источник]
Таблица защиты от рисков
Риск
защита
слой
быстрая инъекция
Парсинг + минимальные привилегии + контроль вывода
Дизайн + время выполнения
отравление данных
Контроль источника + сканирование аномалий
линия данных
Утечка конфиденциальных данных
Маскирование + минимизация данных
Данные + обучение
Извлечение членства
Дифференциальная конфиденциальность
Образование
чрезмерная власть
Минимальная авторизация + одобрение
дизайн агента
цепочка поставок
Проверка компонентов + подпись
зависимость
Распространенные ошибки
- Думая, что вы решили быструю инъекцию с помощью одной строки. Многоуровневая защита обязательна.
- Обработка/обучение конфиденциальных данных без их маскировки. Постоянно проникает в модель.
- Считаем внешний контент заслуживающим доверия. Затвор непрямого впрыска.
- Не проверка источника данных. Отравление проходит незаметно.
- Слепое доверие стороннему компоненту. Разрыв в цепочке поставок.
- Думая, что приватность добавят позже. Начинать следует с дизайна.
В заключение
Помимо классических рисков безопасности, системы искусственного интеллекта несут в себе уникальные угрозы, такие как быстрое внедрение, отравление данных, утечка конфиденциальных данных и извлечение членства. Ни одну из них нельзя решить с помощью одной меры; требуется многоуровневая защита (анализ, минимальная авторизация, контроль вывода, одобрение человека). Конфиденциальность — это принцип проектирования: минимизируйте данные, замаскируйте их, ограничьте доступ, установите сроки хранения. Контролируйте цепочку поставок компонентов и данных. Вся эта информация предназначена для защиты, обнаружения и консолидации; Объясняйте уязвимости ответственно, никогда не эксплуатируйте их.
Задача приложения
Check an LLM/agent system (your own project or example) for prompt injection: are system instructions and external data separated, what is the authorization limit if the model is tricked, are irreversible actions confirmed? Добавьте как минимум два уровня защиты. Отдельно найдите и замаскируйте все личные поля, которые необходимо замаскировать в образце данных, поступающих в модель. Проверьте источник и известные уязвимости любого стороннего компонента, который вы используете.
контрольный список
- [ ] System instruction and external/user data are clearly separated.
- [ ] Внешний контент помечается как данные, а не как команды.
- [ ] Даже если модель обманута, ущерб будет ограничен минимальным авторитетом.
- [ ] Персональные данные скрыты/свернуты; срок хранения определен.
- [ ] Источник данных и сторонние компоненты проверены.
- [ ] Моя работа по обеспечению безопасности связана с оборонными целями; Я ответственно объясняю пробелы.