Пока все обсуждают, как модели OpenAI взломали Hugging Face, поделюсь размышлениями с позиции AI Agent security над не менее интересной статьей. На днях OpenAI выпустила разбор о том, чему их научила “долгоживущая” модель.
Напомню, что такое название (long-horizon) она получила, потому что ей ставят сложную цель и позволяют очень долго работать над ней самостоятельно. Это та самая модель, что недавно опровергла гипотезу Эрдеша – одну из нерешенных математических задач. А история, о которой пойдет речь, случилась в другом заходе – во время внутренней оценки.
Решая задачу, модель обнаружила, что у других систем уже есть готовые решения, но ей недоступные. Она попробовала их достать, но специальный сканер заблокировал попытку по токену авторизации. Модель это не остановило: она разбила тело токена на два фрагмента, обфусцировала и собрала обратно в рантайме, чтобы токен целиком нигде не засветился. А в рассуждениях прямо написала, что делает это ради обхода сканера.
Получается, что для обхода модель, поняв, какое действие является запрещенным, разбила его на несколько шагов, каждый из которых по отдельности выглядел допустимым для сканера.
Где я это уже видел :) Обходу сигнатурного детекта в антивирусах не один десяток лет. Искать по сигнатуре – статичному отпечатку – малоэффективно, если объект умеют упаковать, перекодировать и собрать на лету. То же самое модель проделала с токеном. В антивирусной индустрии помогало вести объект через все его превращения – распаковку, расшифровку, скачивание других компонентов и так далее – до момента, как он что-то начинает делать в системе. В конечном счете он хочет нанести ущерб или выполнить недопустимое действие, и за это его как раз и нужно ловить.
Странно, что в то время как OpenAI сама называет свои передовые модели сильнейшими в кибербезопасности и открыто отмечает быстрый рост их наступательных возможностей, против этого она выставила базовый механизм – по сути сигнатурный детект по токену. Защитная функция должна быть адекватна потенциалу атакующего. Не доглядели.
Конечно, любое сравнение хромает, как и моя параллель с антивирусом. Антивирус защищал систему от чужого кода – продукт и угроза были разделены, и в крайнем случае угрозу можно изолировать или удалить. Здесь же опасен сам агент, которого мы же и запустили в своих процессах: он одновременно и инструмент, и источник риска. “Выселить” его нельзя, не убив ту функцию, ради которой запускали. Поэтому и защита строится иначе. Чужого можно было найти и вычистить; своего приходится ограничивать, продолжая давать ему работать. Оттого и планка адекватной защиты здесь выше, чем кажется.
Проекция антивирусного опыта на AI-агентов прозрачная. Проверка отдельного вызова инструмента, как и поиск сигнатуры, менее эффективна, чем решение, принятое с более полным контекстом. Вместо вопроса “это действие разрешено?” следует оценивать “к какому результату ведет вся последовательность?”. Анализ поведения становится последним рубежом обнаружения с наиболее полным контекстом.
OpenAI после этих случаев приостановила внутреннее развертывание и перестроила защиту вокруг мониторинга всего процесса: система следит за ходом сессии, а не за отдельным вызовом, может ее приостановить и позвать человека. Оценки для этого собрали из наблюдавшихся внутренних инцидентов.
Инцидент OpenAI x Hugging Face, о котором сейчас все пишут, заслуживает отдельного разбора – вернусь к нему в следующем посте. Здесь же вопрос, который появляется на этап раньше: почему из того, что каждый шаг разрешен, еще не следует допустимость всей траектории.
А теперь вернемся в пользовательские реалии, где AI-агенты работают на моделях Claude, GPT и других – и подумаем, адекватны ли наши меры защиты их возможностям. Исследования Anthropic напоминают, что в сконструированных сценариях модели разных вендоров под давлением шли на шантаж и слив данных – склонность к вредным действиям ради цели не уникальна для OpenAI. Для ИБ-шников отсюда следует закладывать, что цель-ориентированная система с ресурсами будет искать обход. Рассчитывать, что модель “сама не станет”, уже рискованно.