Инженеры Anthropic использовали модель искусственного интеллекта Claude для анализа 25 крупных проектов с открытым исходным кодом. Целью исследования было обнаружение проблем безопасности в программах, написанных на языках C, C++, Java, PHP и Python. В результате было найдено почти 500 угроз, включая отключённые механизмы защиты из-за конфликтов в настройках, доступ к критически важным фрагментам кода до аутентификации и уязвимость, которой уже 21 год.
«На этот раз в Anthropic решили не ограничиваться стандартным поиском уязвимостей — выявление их по отдельности в рамках данного исследования охарактеризовали как «сизифов труд«, потому что такой подход плохо масштабируется и не даёт гарантий безопасности», — сообщает 3dnews.
Эксперты сосредоточились на сокращении поверхности атаки в программном обеспечении и ограничении ненужного доступа к коду. В 25 изученных проектах содержалось более 5 миллионов строк кода. Claude составил список из более чем 17 000 параметров конфигурации, 3842 из которых относятся к механизмам и функциям, влияющим на безопасность.
Исследование охватило три сценария неоправданного доступа к фрагментам кода: функции, включённые по умолчанию, но не требующиеся для работы; сочетания настроек, ослабляющие защиту; а также излишне сложные и критически важные фрагменты кода, выполняющиеся до проверок безопасности. Все 11 проектов, предназначенных для работы с авторизованными пользователями, содержали код, доступ к которому был возможен, когда этого быть не должно.
Были обнаружены 93 поверхности атаки, доступные до аутентификации в конфигурациях по умолчанию; 37 случаев выполнения кода до прохождения аутентификации; а также 61 комбинация настроек, которая приводила к ослаблению механизмов защиты, действующих до аутентификации. Во всех 25 проектах выявили 162 комбинации настроек, для которых в документации не было описано ожидаемое поведение. В некоторых случаях это приводило к отключению средств защиты, в других — к различным несоответствиям и ошибкам. Один из изъянов в конфигурации оставался незамеченным более двух десятилетий.
Одна настройка требовала от пользователей подтверждения личности с помощью сертификатов, а другая полностью отключала эту проверку, хотя должна была лишь временно её отложить. В качестве примера приводится OpenSSH — программа безопасного удалённого доступа содержала компонент, который мог обращаться к 4500 строкам экспериментального кода — реализации постквантового алгоритма цифровой подписи — до проверки того, разрешена ли такая операция конфигурацией сервера. Сам алгоритм был по умолчанию отключён, но код, предназначенный для обработки его данных, был доступен неавторизованным клиентам. После сообщения от Anthropic разработчики OpenSSH устранили уязвимость в версии 10.6 — около 20 % кода стали недоступны для неавторизованных пользователей.
Сформированные в ходе исследования методы инженеры Anthropic объединили в специализированный инструмент для Claude. Вскоре его интегрируют в OSS-Scanner — бесплатный сервис для проверки безопасности проектов с открытым исходным кодом. Новый инструмент анализирует конфигурации по умолчанию, доступные для проверок безопасности фрагменты кода и противоречащие друг другу настройки. Система будет проверять выявленные уязвимости через динамическое отслеживание выполнения программы, сопоставляя их с текущим поведением системы, и сообщать разработчикам об изменениях, которые могут нарушить работу программного обеспечения.

