Обнаруживать потенциальные уязвимости в программном обеспечении с открытым исходным кодом стало проще благодаря инструментам искусственного интеллекта, однако простота обнаружения предполагаемой проблемы не означает, что это действительно уязвимость, пригодная для эксплуатации. В результате сопровождающие проекты сталкиваются с потоком длинных, неточных или повторяющихся сообщений, что отнимает время, которое можно было бы направить на исправление дефектов и развитие программного обеспечения.
Инициатива Akrites, о которой Linux Foundation объявила в июне, пытается устранить этот разрыв с помощью объединённой команды реагирования на инциденты безопасности (SIRT). Её задача — собирать сообщения об уязвимостях, проверять их и координировать исправления с сопровождающими исходных проектов. В интервью The New Stack во время Open Source Summit Europe в Праге Christopher Robinson, технический директор Akrites и главный архитектор по безопасности в Open Source Security Foundation (OpenSSF), а также Laura Guazzelli, архитектор по безопасности искусственного интеллекта и агентных систем в Linux Foundation, объяснили характер проблемы и механизм работы инициативы.
От «спонтанного исследования» к операционной нагрузке
По словам Robinson, теперь для начала поиска уязвимостей достаточно платного аккаунта стоимостью 20 долларов, что указывает на снижение порога входа для неспециалистов. Adrianne Marcum, главный сотрудник OpenSSF, иронично описала такую практику выражением «vibe researching», обозначающим использование инструментов искусственного интеллекта для проверки кода и отправки результатов без необходимого контекста в сфере безопасности или опыта для их проверки.
Robinson оценивает, что проверка одного сообщения о проблеме безопасности может занимать у инженера до восьми часов. По его описанию, автоматические сообщения очень подробны, но часто неточны, преувеличивают серьёзность проблемы и не всегда предоставляют данные, необходимые для написания исправления или понимания способа эксплуатации.
Почему обнаружения подозрительного кода недостаточно?
Одно из основных ограничений заключается в том, что модель может увидеть подозрительный фрагмент, не понимая всей архитектуры безопасности проекта. В другом месте могут находиться дополнительные меры защиты, предотвращающие эксплуатацию дефекта, из-за чего сообщение оказывается ложной тревогой или его фактическая опасность снижается. Кроме того, схожие модели склонны обнаруживать одни и те же дефекты, поэтому сопровождающим поступает несколько сообщений об одной и той же проблеме.
Тем не менее Akrites не считает игнорирование сообщений, созданных искусственным интеллектом, практичным вариантом. Robinson говорит, что качество результатов улучшилось за последний год, особенно у более дорогих платных моделей. Кроме того, инструменты иногда способны связать проблемы низкой степени опасности и превратить их в более крупную цепочку эксплуатации — задачу, которая у человека-исследователя может занять месяцы или год.
Проверка людьми до поступления сообщения в проект
Akrites использует искусственный интеллект для оценки поступающих сообщений и обнаружения повторов, после чего командированные инженеры проверяют их перед передачей сопровождающим. Их роль не ограничивается решением вопроса о наличии уязвимости: они также сокращают сообщение, добавляют тестовые случаи, доказательства концепции и исправления, чтобы проект мог быстрее принять решение на основе более убедительных доказательств.
В число учредителей инициативы входят Anthropic, OpenAI, Google, Microsoft, AWS, NVIDIA, Cisco, IBM, Red Hat, Citi и JPMorganChase. По словам Robinson, от участников требуется предоставлять наряду с финансированием инженерные ресурсы; обязательство каждого участника может достигать 10 инженеров, работающих полный рабочий день. Он говорит, что у него около 200 командированных инженеров, многие из которых уже являются участниками или сопровождающими проектов с открытым исходным кодом.
Что меняется на практике?
Akrites создаёт уровень сортировки и проверки между инструментами обнаружения уязвимостей и сопровождающими проектами вместо того, чтобы напрямую передавать владельцам кода каждый автоматический результат. Это может уменьшить шум и повысить практическую ценность сообщений, но не отменяет потребность в человеческом опыте или постоянном финансировании, поскольку инфраструктура и использование языковых моделей требуют значительных ресурсов.
Другая инициатива, связанная с Linux Foundation, — open source Cyber Reasoning System (OSS-CRS) — разрабатывает инструменты, помогающие самим проектам расследовать уязвимости и предлагать исправления. Akrites сосредоточена на координации цикла сообщений между проектами, тогда как OSS-CRS занимается расширением возможностей сопровождающих выполнять большую часть работы самостоятельно. Эффективность предлагаемых исправлений остаётся открытым вопросом: необходимо проверять, устраняют ли они первопричину, не добавляют ли новые уязвимости и не нарушают ли существующие функции.