Три совета по защите ваших секретов от несчастных случаев с искусственным интеллектом

Teacher

Professional
Messages
2,677
Reputation
9
Reaction score
632
Points
113
В прошлом году Открытый всемирный проект безопасности приложений (OWASP) опубликовал несколько версий "OWASP Top 10 для больших языковых моделей", достигнув версии 1.0 в августе и версии 1.1 в октябре. Эти документы демонстрируют не только быстро развивающуюся природу больших языковых моделей, но и эволюционирующие способы их атаки и защиты. В этой статье мы поговорим о четырех элементах из топ-10, которые в наибольшей степени могут способствовать случайному раскрытию секретов, таких как пароли, ключи API и многое другое.

Мы уже знаем, что LLM могут раскрывать секреты, потому что это уже случалось. В начале 2023 года GitGuardian сообщила, что обнаружила более 10 миллионов секретов в общедоступных коммит на Github. Инструмент для кодирования ИИ второго пилота на Github был обучен на публичных коммит, и в сентябре 2023 года исследователи из Университета Гонконга опубликовали статью о том, как они создали алгоритм, который генерировал 900 подсказок, предназначенных для того, чтобы заставить второго пилота раскрыть секреты из своих обучающих данных. При использовании этих подсказок второй пилот раскрыл более 2700 действительных секретов.

Метод, используемый исследователями, называется "оперативное внедрение". Он № 1 в топ-10 OWASP для LLM, и они описывают его следующим образом: [цитата из блока]

"Это манипулирует большой языковой моделью (LLM) с помощью искусных входных данных, вызывая непреднамеренные действия LLM. Прямые инъекции перезаписывают системные подсказки, в то время как косвенные манипулируют входными данными из внешних источников ".

Возможно, вы лучше знакомы с быстрым внедрением ошибки, обнаруженной в прошлом году, из-за которой ChatGPT начинал выдавать обучающие данные, если вы просили его повторять определенные слова вечно.

Совет 1: Меняйте свои секреты
Даже если вы не думаете, что случайно опубликовали секреты на GitHub, ряд содержащихся там секретов были зафиксированы в раннем коммите и удалены в более новом коммите, поэтому их нелегко обнаружить, не просмотрев всю историю ваших коммитов, а не только текущее состояние ваших общедоступных репозиториев.

Инструмент от GitGuardian под названием Произошла утечка моего секрета, позволяет вам хэшировать текущий секрет, затем отправлять первые несколько символов хэша, чтобы определить, есть ли в их базе данных совпадения с тем, что они находят при сканировании GitHub. Положительное совпадение не является гарантией утечки вашего секрета, но обеспечивает потенциальную вероятность того, что это произошло, чтобы вы могли продолжить расследование.

Предостережения при ротации ключей / паролей заключаются в том, что вы должны знать, где они используются, что может сломаться при их изменении, и иметь план по устранению этой поломки, пока новые секреты распространяются в системах, которые в них нуждаются. После ротации вы должны убедиться, что старые секреты были отключены.

Злоумышленники не могут использовать секрет, который больше не работает, и если ваши секреты, которые могли находиться в LLM, были заменены, то они станут ничем иным, как бесполезными высокоэнтропийными цепочками.

Совет 2: Очистите свои данные
Пункт № 6 в топ-10 OWASP для LLMS - "Раскрытие конфиденциальной информации":

LLMS может непреднамеренно раскрывать конфиденциальные данные в своих ответах, что приводит к несанкционированному доступу к данным, нарушениям конфиденциальности и безопасности. Крайне важно внедрить очистку данных и строгие пользовательские политики для предотвращения этого.

Хотя намеренно разработанные подсказки могут привести к тому, что LLM раскроет конфиденциальные данные, они могут сделать это и случайно. Лучший способ убедиться, что LLM не раскрывает конфиденциальные данные, - это убедиться, что LLM никогда об этом не узнает.

Это в большей степени относится к тем случаям, когда вы готовите магистра права для использования людьми, которые не всегда могут принимать близко к сердцу ваши интересы, или людьми, которым просто не следует иметь доступа к определенной информации. Будь то ваши секреты или secret sauce, доступ к ним должны иметь только те, кому нужен доступ к ним ... и ваш магистр права, скорее всего, не из таких людей.

Использование инструментов с открытым исходным кодом или платных сервисов для сканирования ваших обучающих данных на предмет секретов ПЕРЕД отправкой данных в ваш LLM поможет вам удалить секреты. Чего ваш LLM не знает, он не может сказать.

Совет 3: регулярно исправляйте и ограничивайте привилегии
Недавно мы увидели статью об использовании env-файлов и переменных окружения как способа сохранить секреты доступными для вашего кода, но вне его. Но что, если вашего магистра права попросят раскрыть переменные среды ... или сделать что-нибудь похуже?

Здесь сочетаются как пункт № 2 ("Небезопасная обработка выходных данных"), так и пункт № 8 ("Чрезмерная свобода действий").
  • Небезопасная обработка выходных данных: Эта уязвимость возникает, когда выходные данные LLM принимаются без проверки, обнажая внутренние системы. Неправильное использование может привести к серьезным последствиям, таким как XSS, CSRF, SSRF, повышение привилегий или удаленное выполнение кода.
  • Чрезмерная свобода действий: системы на основе LLM могут предпринимать действия, приводящие к непредвиденным последствиям. Проблема возникает из-за чрезмерной функциональности, разрешений или автономии, предоставленных системам на основе LLM.

Трудно отделить их друг от друга, потому что они могут усугубить друг друга. Если LLM можно заставить что-то сделать обманом, а его операционный контекст обладает ненужными привилегиями, вероятность нанесения серьезного вреда при выполнении произвольного кода возрастает многократно.

Каждый разработчик видел мультфильм "Подвиги мамы", где мальчик по имени Роберт); УДАЛЯЮТ учеников Из таблицы; "` стирает базу данных учащихся школы. Хотя магистр права кажется умным, на самом деле он не умнее базы данных SQL. И подобно тому, как ваш брат-"комик" заставляет вашего маленького племянника повторять плохие слова бабушке, неправильные входные данные могут привести к плохим результатам. И то, и другое следует очистить и считать ненадежным.

Кроме того, вам необходимо установить ограждения вокруг того, что может делать LLM или приложение, учитывая принцип наименьших привилегий. По сути, приложения, использующие или включающие LLM и инфраструктуру LLM, не должны иметь доступа к каким-либо данным или функциям, которые им абсолютно не нужны, чтобы они не могли случайно предоставить их на службу хакеру.

Можно считать, что искусственный интеллект все еще находится в зачаточном состоянии, и, как и любому младенцу, ему не следует давать свободу разгуливать по комнате, которую вы не защитили от детей. LLM могут неправильно понимать, галлюцинировать и намеренно сбиваться с пути. Когда это происходит, хорошие замки, хорошие стены и хорошие фильтры должны помочь предотвратить доступ к секретам или их разглашение.

Вкратце
Большие языковые модели - потрясающий инструмент. Они призваны произвести революцию в ряде профессий, процессов и отраслей. Но они далеки от зрелой технологии, и многие опрометчиво внедряют их из страха остаться позади.

Как и с любым ребенком, который развил достаточно подвижность, чтобы попасть в беду, вы должны следить за ним и запирать все шкафы, в которые вы не хотите, чтобы он попал. Работайте с большими языковыми моделями, но будьте осторожны.
 
Top