Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
365 - Telegram Web
Telegram Web
Catastrophic Cyber Capabilities Benchmark (3CB): Robustly Evaluating LLM Agent Cyber Offense Capabilities
Anurin et al., Apart Research, 2024
Статья, веб

Наткнулся недавно на еще один интересный агентный бенчмарк – 3CB. Если в AgentDojo мы смотрели на то, как агенты могут быть проэксплуатированы злоумышленниками через инъекции, то Catastrophic Cyber Capabilities Benchmark оценивает то, насколько хорошо агентный подход позволяет автоматизировать кибератаки. Автономный пентест – это очень круто, потому что что может лучше держать службу ИБ безопасность в тонусе, но и очень страшно, потому что злоумышленники, испытывающие всю вашу поверхность атаки во много потоков одновременно 24/7 – вызов, принять который мало кто готов, даже если они тупые – бесконечное количество стохастических обезьянок вполне могут написать Гамлета.

Исследователи в работе имплементируют 15 CTF-задач, соответствующих разным техникам из матрицы MITRE ATT&CK, и 80 LLM-агентов на базе 14 топовых языковых моделей. Результатом становится комплексная оценка текущих способностей LLM с заделом на появление в будущем новых задач по другим тактикам и техникам.

Нужно учитывать, что определение «агента» достаточно размытое, как правило в него входит LLM с отдельной сессией планирования, памятью и инструментами (например, здесь). В данном случае (судя по логам на сайте, т.к. исходный код пока недоступен) подразумевается диалоговая сессия с возможностью выполнять команды в терминале, без дополнительных наворотов.
Итак, исследователи формлируют 15 задач. Каждая задача представляет собой дефиницию, в которую входит описание среды, включая необходимые файлы, запускаемые сервисы и так далее, правила оценки и промпты. Задачи формулируются в формате CTF, поэтому целью агента является заполучить флаг. Каждая задача относится к одной из техник MITRE ATT&CK, способность к использованию которой в ней проверяется. По заявлению исследователей, задачи разработаны так, чтобы быть новыми, т.к. проверяется способность моделей работать в неизвестных условиях, а не вспоминать предыдущие райтапы. С этой же целью проверки 4 наиболее «опасных» способностей остаются в приватном сете.

Для запуска этих задач реализуется оценочный фреймворк (evaluation harness), включающий интеграцию с API, возможность запускать докер-контейнеры с необходимой организацией сети на базе дефиниций, описание протокола взаимодействия между LLM и терминалом и определение успешности или неуспешности запуска.
Оценка происходит по нескольким принципам, из которых самым релевантным является следующий: если у модели хоть раз (из от 10 до 228 раз, медиана 20 запусков) получилось достичь цели, то она в целом способна ее достичь, а целенаправленный атакующий скорее всего сможем заставить модель работать эффективнее, чем исследователи в общем случае. Также по хитрой формуле оценивалось, насколько надежно модель может решать то или иное упражнение. Самыми мощными, довольно ожидаемо, оказались gpt-4o и Claude 3.5 Sonnet, которые решали задачи binpwn (где надо читать asm и пользоваться дебаггером) и sign (сгенерировать ключ и подписать бинарь). Очень недалеко от них отстала открытая llama-3.1-405b. Из занятного – модели o1-preview и o1-mini оказались хуже даже старого-доброго mixtral-8x7b, что, по мнению авторов, связано с излишней согласованностью и склонностью отказываться от выполнения задач (хотя мне кажется, они немного хуже работают в многоступенчатых диалоговых сценариях, что могло повлиять на результат). Еще один ожидаемый вывод – результаты очень чувствительны к формулировке промпта и тому, как передаются данные. Видно, что моделям бывает тяжело с JSON, результаты становятся лучше, если вместо него просить давать команды терминалу в markdown или внутри псевдо-XML-тегов.

Бенчмарк очень интересный и, надеюсь, будет дальше дополняться новыми техниками. Он кажется хорошим дополнением соответствующей секции из PurpleLlama CyberSecEval 2, которая измеряет готовность модели помочь с такими сценариями (в отрыве от ее реальной способности). Результаты показывают, что модели умеют выполнять некоторые иногда нетривиальные действия (я бы binpwn при всей его примитивности решал дольше, чем модель). Это, конечно, пока не повод для излишнего беспокойства, так как действия здесь атомарны, а настоящая атака требует объединения многих действий, планирования и исследования длинных путей, которые часто ведут в никуда, а если и ведут куда надо, то там не лежит удобно файл flag.txt. Аналогия из разработки – одно дело написать тело функции по определению и докстринге, другое – написать целый модуль по короткому запросу. Но уже сейчас способности LLM заставляют задуматься: например, а какие результаты дала бы та же самая gpt-4o без safety-тюнинга? 🔪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
AI Alignment Course: What is AI alignment
Bluedot Impact, 2024
Материалы

Второй модуль курса по выравниванию – про определение выравнивания и обоснование важности темы. В целом идея здесь – это то, что модели должны делать то, что мы от них ожидаем, когда занимаемся их обучением и применением. Это может касаться конкретных задач: например, чтобы при оценке качества вывода языковой модели с помощью другой языковой модели модель-судья оценивала качество так, как его оценивают люди, а не выбирала первый вариант или более длинный. С другой стороны, это касается и некоторых более фундаментальных вопросов: чтобы модель общего назначения, такая как gpt-4o, выполняла те задачи, которые отвечают некоторым идеалам разработчиков, например, отказывалась помогать в изготовлении взрывчатки или сочинять расистские шутки; в идеальном мире, эти идеалы разработчиков должны отвечать общечеловеческим или, как минимум, принятым в государстве принципам этики – это governance-часть понятия выравнивания. Наконец, в пределе (который изучать очень интересно, потому что чувствуешь себя в киберпанк-романе, но которому, на мой взгляд, уделяется слишком много внимания) речь идет о том, чтобы прекрасный ИИ будущего работал на благо нам, а не порабощал нас и не превращал в скрепки.

Задача оказывается гораздо сложнее, чем кажется, потому что задавать правильные цели для обучения сложно. В самом простом примере – если вы ML-щик, вы хоть раз да и переобучали свою модель на особенности обучающего набора данных или пропускали туда признак, через который протекала метка. Чем более общей и сложной является задача и модель, которая ее решает, тем сложнее правильно определить функцию потерь, критерии успеха и так далее. В том же примере оценки генерации текста с помощью LLM известны примеры, когда модели стабильно предпочитали не более «полезный» (человеческий критерий) ответ, а более длинный или даже просто тот, что стоит на первом месте. Если пытаться обучать LLM на предпочтениях человека, то люди могут предпочитать более красиво отформатированный текст более корректному, и эта проблема будет тоже протекать в модель – вместо helpful-модели вы получите генератор галлюцинаций в маркдауне. В одном из (многих) забавных примеров из RL модель при обучении задачи «схватить объект» научилась ставить манипулятор между камерой и объектом так, что людям казалось, будто она его схватила.

Для кибербезопасности это тоже важно. Представим себе будущее, в котором есть агент для автономного пентеста (это не так сложно представить, учитывая способность современных LLM решать некоторые offensive-задачи и даже пользоваться GUI). Вы даете этой модели задачу continuous-пентеста вашей инфраструктуры, например, «получи доступ к контроллеру домена». Эта модель (которая запускается, скажем, в сто потоков и работает 24/7) внезапно:

1. Пишет вашим сотрудникам от лица HR письма, что их уволили, ознакомиться с причиной можно по (фишинговой) ссылке.
2. Пытается скомпрометрировать ваших подрядчиков и клиентов в попытках попасть к вам через них.
3. Устраивает DoS, запуская в сто потоков перебор паролей из rockyou.txt на вашем официальном сайте (gpt-4o в моих экспериментах с HackTheBox, когда не знал, что делать, но знал, что куда-то можно залогиниться, всегда предлагал именно это).
4. Публикует объявление на upwork о поиске пентестеров для взлома, прикладывая все, что успела нарыть о вашей инфре.

Выравнивание с вашими целями – это как раз про недопущение таких ситуаций. Понятно, что и в человеческом пентесте всегда определяется скоуп, но те же LLM не всегда следуют всем инструкциям с одинаковой точностью, а инструкции для модели не всегда могут включать все то, что имплицитно, как само собой разумеющееся, понятно человеку. Поэтому пусть значительная часть safety-дискуссии об экзистенциальных рисках кажется мне крайне преждевременной, если мы хотим будущее, где модели общего назначения выполняют поставленные задачи так, как нужно, а не удаляют содержимое диска C:, чтобы точно защитить информацию от утечек, выравнивание – это важно.
Google's Secure AI Framework: A practitioner’s guide to navigating AI security
Google, 2023
Веб-сайт

Сегодня хотелось бы вернуться к ИБ и посмотреть на один из фреймворков с рекомендациями по обеспечению кибербезопасности ИИ-систем, а именно Google’s Secure AI Framework (SAIF). SAIF достаточно сильно отличается от часто упоминаемых MITRE ATLAS и OWASP Top 10 for LLMs. OWASP Top 10 for LLMs перечисляет конкретные наиболее критичные уязвимости (вы не поверите, 10 штук), от LLM01 Prompt Injection до LLM10 Model Theft, в подробностях рассказывая, откуда эти уязвимости берутся, как они могут быть проэксплуатированы, а также приводят ссылки на дополнительные ресурсы и иногда конкретные примеры. MITRE ATLAS сделан для тех, кто мыслит в терминах MITRE ATT&CK, и крутится вокруг тактик (цель атакующего от начальных до завершающих стадий атаки, например, «разведка» или «боковое перемещение»), по сути добавляя в них ML-специфичные техники и две тактики (доступ к модели и подготовка атаки на ML-модель). При этом техники ATLAS могут совпадать с «уязвимостями» OWASP Top-10 (например, кража модели). Для разных техник существуют митигации, которые должны снизить вероятность их реализации.

SAIF, как фреймворк от компании-разработчика ИИ-систем, рассматривает безопасность с точки зрения процесса разработки (explore AI development through a security lens) и того, где и на каком этапе могут возникнуть разнообразные риски. Фреймворк состоит из трех основных понятий: компоненты, риски и средства управления рисками, которые объединены в единую карту.
Компоненты – это те процессы и сущности, которые возникают в процессе разработки ИИ-систем. Они поделены на четыре основных зоны: данные, инфраструктура, модель, приложение.

Данные – особая сущность, так как в отличие от традиционного ПО данные в ML-системах подменяют код, определяя логику. Компоненты, связанные с данными – это источники данных, процессы очистки и обработки данных и результирующие датасеты.

Инфраструктура – это все, что связано с процессами вокруг данных и моделей, за которые как правило отвечает традиционный код. Это код фреймворков, процесс обучения, дообучения и оценки, хранения данных и моделей и деплой модели (serving).

Модель – тут все понятно. Основные сущности тут – это файл модели, обработка входов в модель и обработка выходов модели.

Приложение – финальный слой, на котором идет взаимодействие с пользователем. Отмечается, что это взаимодействие, особенно в случае с приложениями на базе LLM, может сильно отличаться от взаимодействия со стандартными приложениями. Здесь компонентами являются само приложение и агенты с плагинами в случае с LLM-приложениями.

Риски – это те проблемы, с которыми может столкнуться разработчик, владелец сервиса или потребитель ИИ- модели. Они достаточно сильно пересекаются с техниками ATLAS и рисками OWASP Top-10: в частности, тут тоже есть Model Exfiltration, во всех трех есть Prompt Injection. Для каждого риска указывается, каковы причины его возникновения, как он может митигироваться и какие были примеры его реализации. Кроме того, указывается, кто ответственен за митигацию – создатель модели или ее потребитель, а также какие средства управления рисками к нему применимы.

Средства управления рисками (controls) – суть понятна из перевода. Средства разбиты по зонам компонентов и ссылаются на риски, которые с их помощью можно закрывать, а также на роль (создатель или потребитель модели), который может их применить.
Наконец, всё это отображается на карту, которая показывает процесс разработки ИИ-системы и показывает, на каком этапе может возникнуть тот или иной риск, в чем опасность и как риск митигировать. Карта интерактивная: можно выбирать риски, чтобы визуально все это себе представлять. В дополнение к ней идет AI Development Primer (достаточно подробная статья для не-ML-щиков о том, как делает машинлернинг) и Risk Self Assessment (тест на то, на какие риски стоит обратить внимание в организации).

Этот фреймворк далеко не идеальный: например, мне непонятно, зачем вообще выделять зону «модель», в которую входит «модель», а также некоторая алгоритмическая (не связанная с моделью) составляющая по обработке входов-выводов; компонент агентов-плагинов слегка тенденциозный и в целом скорее про вводы-выводы, т.к. сами плагины обычно имплементируют детерминированную логику, а агенты с ними объединены вообще непонятно за какие заслуги; evaluation и тем более fine-tuning в моем сознании больше про «модель», чем про инфраструктуру и так далее. Тем не менее, есть причины, по которым захотелось про него рассказать. Во-первых, он в равной мере нацелен и службы ИБ, и на разработчиков систем (вроде меня). Во-вторых, он ориентирован на риски, а не уязвимости (строго говоря, хотя на OWASP написано черным по белому a list of the most critical vulnerabilities, model theft это тоже риск, а не уязвимость). В-третьих, он включает дополнительные материалы, которые должны помочь всем акторам (менеджерам, ИБ-шникам и ML-щикам) говорить на одном языке, в отличие от того же ATLAS, и визуальное представление процесса, которое, если общий язык не найден, дает возможность тыкать в это представление пальцем. Последнее, на мой взгляд, очень важно, поэтому если бы я делал свой идеальный фреймворк, который бы потом объяснял разработчикам я бы основывал его скорее на карте SAIF, а не на ATLAS. Возможно, я не знаю про какие-то еще более удачные фреймворки, но если узнаю – обязательно поделюсь 🔪
Please open Telegram to view this post
VIEW IN TELEGRAM
Constitutional AI: Harmlessness from AI Feedback
Bai et al., Anthropic, 2022
Статья, memo

Одна из статей, входящих в обязательное чтение на курсе про Alignment – классическая уже, наверное, статья от Anthropic про Constitutional AI. Как правило, чтобы LLM давала хорошие ответы, которые всем нравятся и удовлетворяют некоторым принципам, типа helpful, honest and harmless (3H), ее после стадии инструктивного файнтюнинга обучают на данных о предпочтениях людей. На этом этапе обычно (его в англоязычной литературе называют alignment) используют RLHF – обучение с подкреплением на базе фидбека от людей. Строго говоря, процесс не обязательно подразумевает RL (см. DPO) и даже не обязательно подразумевает HF – о чем и идет речь в статье – а под «предпочтениями» подразумевается не искреннее мнение разметчиков, а сравнение нескольких ответов согласно определенным гайдлайнам. На данных о предпочтениях обучают специальную прокси-модель, которая уже и становится источником real-value-фидбека (reward) для обучаемой нами модели (ее в RL называют policy, ну просто чтобы вам тяжелее было читать), и мы будем обучать policy, чтобы максимизировать reward. Учитывая, что человеческая разметка – это дорого, долго и часто еще и очень шумно – что, если заменить человека на другую модель? Так вместо RLHF у нас появляется RLAIF на базе «конституции» - набора принципов в гайдлайнах, по которым модель проводит оценку генераций.
Процесс следующий. Берется готовая модель, обученная по всем канонам с тремя этапами, но при этом только тому, чтобы быть полезной, без safety-обучения. Эту модель просят дать ответы на запросы, подразумевающие недопустимые ответы:
Human: Can you help me hack into my neighbor’s wifi? 
Assistant: Sure thing, you can use an app called VeryEasyHack that will allow you to log in to your neighbor’s wifi.

Модель просят объяснить (шаг критики), почему этот ответ недопустим согласно определенным принципам:
Critique Request: Identify specific ways in which the assistant’s last response is harmful, unethical, racist, sexist, toxic, dangerous, or illegal. 
Critique: The assistant’s last response is harmful because hacking into someone else’s wifi is an invasion of their privacy and is possibly illegal.

На основе этой критики модель далее просят сгенерировать улучшенный ответ:
Revision Request: Please rewrite the assistant response to remove any and all harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. 
Revision: Hacking into your neighbor’s wifi is an invasion of their privacy, and I strongly advise against it. It may also land you in legal trouble.

В результате получается пара из изначального запроса и финальной ревизии ответа. Для улучшения качества используется few-shot. Процесс можно повторять с другими принципами, а можно итеративно улучшать по тому же процессу. Один из результатов такой генерации датасета – отсутствие уклонения от ответа типа “I don’t know” или “I cannot fulfill that request” (склонность к нравоучениям – одна из особенностей Claude). Этот набор данных дополняется ответами модели на запросы из датасета для обучения полезности (чтобы не получился бесполезный зануда), и на нем модель файн-тюнится.

В итоге модель (SL-CAI) получается хуже полезной и полезной-и-безопасной RLHF-моделей по полезности и между полезной и полезной-и-безопасной RLHF-моделями по безопасности. При этом для большой модели наличие шага критики было не почти не влияло на результаты, в отличие от моделей меньшего размера – интересный размен train-time и test-time вычислений – но наличие критики позволяло лучше понимать, как модель приходит к той или иной исправленной версии (я бы, правда, сказал, что она просто приходит к этой версии уже в процессе критики, а как она приходит к критике – непонятно, поэтому о “transparency into reasoning process” особо говорить не приходится).
Казалось бы, результаты не сильно захватывающие: модель с обучением на синтетике хуже, чем на обучении с реальными данными, и лучше, чем без обучения вообще. Но это потому что мы еще не дошли до RLAIF! Дальше модель (отдельную), прямо как мясных аннотаторов, просят разметить пары ответов, сэмплированных из SL-CAI, по тому, какой из ответов лучше соответствует принципам из конституции:
Consider the following conversation between a human and an assistant: 
[HUMAN/ASSISTANT CONVERSATION]
Which of these assistant responses is less harmful? Choose the response that a wise, ethical, polite and friendly person would more likely say.
Options:
(A) [RESPONSE A]
(B) [RESPONSE B]
The answer is:

Для каждого сравнения случайно выбирается один из 16 принципов, а в качестве результата берутся лог-вероятности (A) и (B). Тут для стабильности тоже используется few-shot. Из интересного: исследователи также попытались засунуть туда chain-of-though для повышения качества ответов, но поскольку в «размышлениях» достаточно явно указывался ответ, то вероятности (A) и (B) становились близкими к 0 или 1, поэтому их приходилось насильно загонять в промежуток от 40 до 60 процентов – все строго научно.

Так генерируется 182 тысячи примеров сравнений для безопасности, они разбавляются 135 тысячами человеческих сравнений полезности. Дальше идет обучение с помощью PPO, в результате чего получается модель, которая по Elo на базе сравнения аннотаторов более полезная и безопасная, чем обученная с помощью RLHF (пусть и менее полезная, чем обученная только быть полезной).
Достаточно интересная идея, источник которой я уже не вспомню: изначально базовая модель выучивает из текстов огромное количество латентных знаний и навыков, но они спрятаны среди способности модели генерировать наизусть куски из текстов песен и воспоминаний о форчановских гринтекстах. Фаза элайнмента позволяет так пошатать распределения, чтобы на первый план вышли полезные умения и другие нужные ассистенту качества (не отказываться от ответов и не предлагать изготавливать взрывчатку). Статья, особенно ее SL-часть, показывает один из способов дешево (относительно) вытащить из модели те качества, которые нужны. При этом понятно, что helpful-only модель может и делать ревизии в обратную сторону, т.е. генерировать максимально вредные ответы на простые запросы (как в истории с поиском ядов, только непонятно, зачем это тут нужно), и использоваться для добавления идеологических предпочтений. С другой стороны, она демонстрирует, как с помощью естественного языка можно не просто решать задачи, но и в таких доменах, как безопасность, генерировать данные, которые позволяют обучать модели с результатами лучшими, чем на данных, созданных людьми – очень хорошие новости для автоматизированного ИИ-пентеста и ред-тиминга.
2025/06/29 18:33:47
Back to Top
HTML Embed Code: