На прошлой неделе разработчики браузера Mozilla Firefox опубликовали детальный отчет об использовании искусственного интеллекта для поиска уязвимостей (оригинальный пост, новость на Хабре). Публикации предшествовал краткий анонс в конце апреля: тогда стало известно, что в Mozilla получили доступ к ИИ-модели Claude Mythos компании Anthropic, которая пока недоступна публично всем желающим. В анонсе разработчики браузера не стеснялись в хвалебных эпитетах, предрекая скорый конец уязвимостям нулевого дня — когда разработчик ПО обнаруживает баг, который уже эксплуатируется в реальных атаках.

В новой публикации приведены конкретные примеры в виде 12 уязвимостей. Всего в релизе Firefox 150 была закрыта 271 проблема, все они были найдены с применением Claude Mythos. Если добавить уязвимости, найденные и закрытые другими методами (в том числе обнаруженные с помощью других ИИ-моделей), всего за апрель получится 423 патча, в то время как за весь предыдущий год было закрыто 353 проблемы, так или иначе влияющих на безопасность работы браузера. Из 271 уязвимости, найденной с помощью ИИ, 180 имеют рейтинг sec-high — это внутренняя квалификация Mozilla, указывающая на высокую (но не максимальную) опасность проблемы. Такие баги могут быть эксплуатированы без дополнительных сложностей — например, пользователя достаточно будет заманить на подготовленную страницу.

Это, впрочем, не означает, что в Firefox исправлены 180 методов взлома браузера. Авторы статьи прямо говорят, что сценарии реальной эксплуатации для каждой проблемы не исследовались. Специалисты признают, что более ранние ИИ-модели (упоминаются GPT-4 и Sonnet 3.5) генерировали много ложноположительных результатов. Такие «выдуманные» уязвимости было сложно и дорого отфильтровывать. Совсем недавно эта серьезная проблема широко обсуждалась и даже привела к отказу разработчика утилиты cURL от программы bug bounty — из-за огромного наплыва мусорных баг-репортов. 

Улучшение качества баг-репортов, по мнению разработчиков Firefox, произошло не только благодаря развитию самих ИИ-моделей. Свой вклад внесло также создание необходимой обвязки, в рамках которой эти модели работают: так решаются проблемы нацеливания ИИ-ассистентов на важные участки кода, масштабирования и фильтрации «сигнала» (реально важных ошибок в коде) от «шума». Качественная обвязка позволяет также менять ИИ-модели по мере выпуска новых, не ломая при этом инфраструктуру тестирования.

Среди приведенных в публикации примеров обнаруженных с помощью Claude Mythos уязвимостей упоминаются 15-летний баг при обработке элемента <legend>, долгоживущая проблема при обработке HTML-кода для отрисовки таблиц, и несколько уязвимостей, так или иначе приводящих к побегу из «песочницы». Для последних есть важная оговорка: сценарий, заданный при поиске, предполагал, что изолированный процесс уже скомпрометирован. Так симулируется ситуация использования цепочки уязвимостей, а главное — создаются условия для обнаружения багов, которые другими способами (например, фаззингом) крайне трудно обнаружить.

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

В контексте данной эволюции систем искусственного интеллекта интересно мнение Даниэля Стенберга, разработчика cURL. Как упоминается выше, совсем недавно, в середине января, он объявил об уходе с площадки HackerOne из-за наплыва ИИ-слопа. В марте программа bug bounty снова открылась, а Стенберг отмечал повышение и количества, и качества баг-репортов. Он также получил доступ к Claude Mythos, и в cURL данная модель нашла всего одну, не особо опасную уязвимость.

Стенберг скуп на дифирамбы и, например, отмечает, что ИИ-ассистенты пока находят известные виды ошибок в коде. Они могут это делать эффективнее чем люди, но ничто не мешает обнаружить те же проблемы и другими методами. В отдельном блог-посте он задает амбициозный бенчмарк для новых реалий: ноль ошибок в коде. Он предлагает две метрики, чтобы понять, что мы хотя бы приближаемся к этой фантастической цели. Во-первых, количество обнаруживаемых багов должно со временем снижаться. Во-вторых, баги должны становиться «моложе» — иными словами, новые методы тестирования должны обнаруживать только те проблемы, которые внесены недавно, потому что все старые уже были «прополоты». Динамика проекта cURL показывает, что светлое будущее нам пока не светит: растет как количество баг-репортов, так и «возраст» обнаруживаемых ошибок.

Что еще произошло

Громкая новость прошлой недели — обнаружение уязвимости Dirty Frag в ядре Linux (письмо в рассылке oss-security, пост на Хабре). Уязвимость приводит к локальной эскалации привилегий и отчасти похожа на проблему Copy Fail, также найденную совсем недавно. Особенностью Dirty Frag стал сбой в процессе раскрытия информации об уязвимости: 7 мая детали проблемы были опубликованы в открытом доступе до того, как стал доступен патч.

Скомпрометирован сайт разработчика популярной утилиты Daemon Tools — начиная с 8 апреля с него распространялся зараженный вариант дистрибутива. Подробный разбор инцидента опубликовали эксперты «Лаборатории Касперского». Еще одна публикация «Лаборатории Касперского» анализирует уязвимость в сервере xrdp.

6 и 7 мая вредоносный код распространялся с официального сайта еще одной относительно популярной утилиты — менеджера загрузок JDownloader.

В майском наборе патчей для ОС Android закрыта критическая, эксплуатируемая уязвимость в компоненте Android Debug Bridge daemon.

Комментарии (0)