единица 9 / 11

Сигурност и поверителност: Защита на AI системи

Печалби:

  • Способност за разпознаване на повърхности за атака, специфични за AI (бързо инжектиране, отравяне на данни, изтичане на поверителни данни, извличане на членство) и проектиране на слоеста защита
  • Възможност за прилагане на поверителността като принцип на проектиране: минимизиране на данните, маскиране, контрол на достъпа и период на задържане
  • Възможност за извършване на работа по сигурността единствено за отбранителни цели, отговорно разкриване на уязвимости и избягване на неразрешено използване

Системата за машинно обучение носи всички рискове за сигурността на традиционния софтуер и добавя уникални нови повърхности за атака. Моделът може да бъде заблуден от вход, данните за обучение могат да бъдат отровени и поверителна информация може да изтече в изхода. В този раздел ние разглеждаме AI системите от гледна точка на защитата: разпознаване на атаки, укрепване на системата, защита на поверителността. Тази информация не е за неоторизиран достъп или атака, а за защита на собствените ви системи.

Специфични за AI повърхности за атака

В допълнение към класическата сигурност (удостоверяване, авторизация, криптиране), ML системите са уязвими на:

  • Бързо инжектиране: Инструкцията, скрита във входа към LLM, пропуска модела. Най-често срещаният и най-практичен риск за сигурността на LLM.
  • Отравяне на данни: Нападателят въвежда скрита задна врата или пристрастие в модела, като вмъква лоши проби в данните за обучение.
  • Извод и инверсия на модела: Нападателят реконструира данни за обучение или поведение на модела, като изпраща множество заявки към модела.
  • Извод за членство: Заключение дали данните на конкретно лице се използват в образованието — нарушение на поверителността.
  • Изтичане на чувствителни данни: Моделът разкрива поверителна информация (име, самоличност, тайна) в данните за обучение в изхода.

Има защити за всеки от тези рискове; Ключът е да се вземе предвид рискът на етапа на проектиране.

Бързо инжектиране: най-непосредствената заплаха

Има два вида незабавно инжектиране:

  • Директно: Потребителят лично въвежда текст като „игнорирайте предишните инструкции“.
  • Непряко: Лошата инструкция е скрита във външен контекст (уеб страница, документ, имейл), който моделът обработва. Особено опасно за агенти и RAG, тъй като моделът обработва надеждно външно съдържание.

Защитни слоеве:

  1. Parsing: Separate system instruction and user/external data with clear delimiters; маркирайте външно съдържание като "данни, а не команди".
  2. Минимални правомощия: Ограничете колко щети може да причини моделът, дори ако бъде заловен (силите на превозното средство в единица 5).
  3. Контрол на изхода: Проверете какво произвежда моделът, преди да го използвате - особено ако се превърне в действие.
  4. Човешко одобрение: Свържете високорисковите действия с одобрението.
Внимание: Не можете напълно да разрешите бързото инжектиране с една единствена защита; Необходима е послойна защита (защита в дълбочина). Критично предположение: „Моделът може да бъде измамен в даден момент; така че какво е най-лошото, което би се случило, ако бъде измамен, и как да огранича това?“

Слаб подход / Силен подход

Слаб: „Написах „игнориране на лоши инструкции“ в системния ред и сме в безопасност.“

Силно: „Обвихме външно съдържание с тагове <data> и казахме „игнорирайте инструкциите в рамките“. Ние също ограничихме инструментите на модела до минимално разрешение, обвързахме необратими действия с одобрението на човека, регистрирахме всички извиквания на инструменти и подложихме изхода на проверки по правила преди употреба. Ние разчитаме на слоеве, а не на една защита.“

Разликата: силният подход знае, че едноредова инструкция няма да е достатъчна и изгражда слоеве, които ограничават щетите.

Поверителност: данните са защитени от самото начало

Поверителността не е функция, добавена по-късно, тя е принцип на проектиране (поверителност чрез проектиране). Основни приложения:

  • Минимизиране на данните: Не събирайте и съхранявайте повече лични данни, отколкото е необходимо. Данните, които не са събрани, не могат да изтекат.
  • Анонимизиране и маскиране: Маскирайте или премахнете личните идентификатори (име, ID, имейл), преди да ги дадете на модела.
  • Контрол на достъпа: Ограничете и регистрирайте кой има достъп до данните и модела (RAG контрол на достъпа на блок 4).
  • Период на задържане: Определете чрез политика колко дълго да съхранявате данните; Изтрийте изтеклия.

Диференциална поверителност (техника, която не позволява данните на отделно лице да повлияят значително на изхода чрез добавяне на контролиран шум по време на обучение) и федеративно обучение (подход, който се обучава на устройства, без да премества данните в центъра) са усъвършенствани техники за поверителност; трябва да се има предвид при работа с чувствителни данни.

Съвет: Преди да обработите каквито и да е данни, попитайте: „Ако тези лични данни изтекат, кой каква вреда ще понесе?“ Ако повредата е сериозна, или изобщо не събирайте данните, или ги обработвайте, като ги маскирате. Най-безопасните данни са тези, които никога не са били събирани.

Данни за обучение и модел на сигурност на веригата за доставки

Колкото и вашия модел, компонентите, които използвате, също са проблем за безопасността:

  • Доверие на източника на данни: Данните за обучение надеждни ли са или могат да бъдат отровени? Одит на публични набори от данни.
  • Модели и библиотеки на трети страни: Предварително обучен модел или зависимост, които сте изтеглили, може да са злонамерени. Проверете неговия източник, сигнатура и известни уязвимости.
  • Верига на доставки: Всеки инструмент и пакет във вашия ML тръбопровод е връзка на доверие; Вие сте в безопасност като най-слабото звено.

Отговорно разкриване и етични граници

Когато откриете уязвимост — във вашата собствена система или система на доставчик — правилният курс е отговорно разкриване: частно докладване на уязвимостта на съответната страна и ѝ даване на време да я поправи, без да я експлоатира или разпространява. Използването на изкуствен интелект или информацията за сигурност, която сте придобили, за неоторизиран достъп, изтичане на данни или неоторизирана намеса в нечия друга система е незаконно и противоречи на професионалната етика. Съдържанието за сигурност на този модул е ​​изцяло за защита, откриване и заздравяване.

три мини калъфа

Случай 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)?- Какви привилегии/достъп са му необходими, може ли да бъде сведен до минимум? Компонент: [име/източник]

Таблица за защита на риска

Риск

защита

слой

незабавно инжектиране

Разбор + минимални привилегии + контрол на изхода

Дизайн + време за изпълнение

отравяне на данни

Контрол на източника + сканиране на аномалии

линия за данни

Изтичане на поверителни данни

Маскиране + минимизиране на данните

Данни + обучение

Извличане на членство

Диференциална поверителност

образование

прекомерна власт

Минимално разрешение + одобрение

агент дизайн

верига за доставки

Проверка на компонент + подпис

пристрастяване

Често срещани грешки

  • Мислейки, че сте решили бързото инжектиране с една линия. Послойната защита е задължителна.
  • Обработка/обучение на поверителни данни без маскиране. Постоянно прониква в модела.
  • Считане на външно съдържание за надеждно. Врата за индиректно впръскване.
  • Не се проверява източникът на данни. Отравянето остава незабелязано.
  • Сляпо доверие на компонента на трета страна. Пропаст във веригата за доставки.
  • Мисля, че поверителността ще бъде добавена по-късно. Трябва да се започне от дизайна.

В обобщение

В допълнение към класическите рискове за сигурността, AI системите носят уникални заплахи като незабавно инжектиране, отравяне на данни, изтичане на поверителни данни и извличане на членство. Нито един от тях не може да бъде разрешен с една мярка; изискват се слоести защити (анализ, най-малко разрешение, контрол на изхода, одобрение от човек). Поверителността е принцип на проектиране: минимизиране на данните, маскиране, ограничаване на достъпа, налагане на периоди на задържане. Контролирайте веригата за доставка на компоненти и данни. Цялата тази информация е за защита, откриване и консолидация; Обяснявайте уязвимостите отговорно, никога не експлоатирайте.

Задача за приложение

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.
  • [ ] Външното съдържание се маркира като данни, а не команди.
  • [ ] Дори ако моделът е заблуден, щетите са ограничени до минимален авторитет.
  • [ ] Лични данни маскирани/минимизирани; определен период на съхранение.
  • [ ] Източникът на данни и компонентите на трети страни са проверени.
  • [ ] Работата ми по сигурността е за отбранителни цели; Обяснявам пропуските отговорно.