Anthropic: ИИ-аудит сократил поверхность атаки в OpenSSH на 20%
Hacker News · оригинал
Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Команда Anthropic применила модель Claude для автоматического анализа поверхности атаки в 25 крупных open-source проектах, обнаружив 493 проблемы с конфигурацией и доступностью кода. Наиболее значимый результат зафиксирован в OpenSSH, где переработка логики проверки алгоритмов подписи исключила из зоны досягаемости неаутентифицированных клиентов около 4500 строк экспериментального кода.
Исследование демонстрирует, что автоматизированное сокращение поверхности атаки позволяет существенно повысить безопасность критической инфраструктуры без необходимости поиска и устранения каждой отдельной уязвимости, что особенно важно для сложных систем с миллионами строк кода.
В традиционной кибербезопасности акцент часто делается на поиске и исправлении конкретных уязвимостей. Однако, как отмечает Chris Rohlf из Anthropic, такой подход плохо масштабируется: устранение одной критической ошибки не дает гарантий относительно оставшихся дыр в системе. Альтернативный путь — автоматизированный анализ и сокращение поверхности атаки (attack surface reduction). Этот метод предполагает картирование кода, доступного для внешнего взаимодействия, и последующее ограничение доступа к компонентам, которые не требуются для работы конкретного развертывания. Такой подход не удаляет неизвестные уязвимости из кодовой базы, но делает их сложнее для достижения, тем самым снижая общую степень риска.
Команда Anthropic применила модель Claude к 25 крупным open-source проектам на языках C, C++, Java, PHP и Python, суммарно содержащим более пяти миллионов строк кода. В ходе анализа было создано инвентаризационное описание свыше 17 000 опций конфигурации, из которых 3 842 оказались связанными с механизмами безопасности. Claude выявил 493 проблемы, сгруппированные по трем основным категориям: код, доступный в конфигурации по умолчанию без необходимости; конфликтующие настройки, которые молча отключают защитные функции; и выполнение чувствительного кода до прохождения аутентификации или перехода протокольного состояния.
Особого внимания заслуживает анализ проектов категории «Gated», предназначенных для работы с аутентифицированными пользователями. Во всех одиннадцати таких проектах Claude обнаружил код, который непреднамеренно оставался доступным до входа пользователя. В частности, были найдены 93 случая ненужной пред-аутентификационной доступности и 61 комбинация настроек, которая тайно ослабляла контроль доступа. Наиболее интересными оказались результаты анализа взаимодействия конфигураций: в 162 случаях модель нашла пары опций, которые принимались системой без ошибок или предупреждений, но приводили к отключению безопасности или неопределенному поведению.
Ключевым кейсом стала работа с OpenSSH — одним из самых тщательно аудируемых проектов в мире. Claude проанализировал входные пути демона SSH в версии 10.4 и обнаружил, что около 4500 строк экспериментального кода для постквантового алгоритма ML-DSA-44 были доступны неаутентифицированному клиенту по умолчанию. Хотя сам алгоритм не был включен, сервер парсил ключи любого типа до проверки разрешений. Это составляло около 16% всего пред-аутентификационного кода OpenSSH.
Разработчики Anthropic сообщили об этой проблеме и совместно с мейнтейнерами доработали логику. В версии 10.5 проверка была перемещена перед парсингом, однако Claude выявил два оставшихся пробела: несоответствие между заявленным клиентом алгоритмом и фактическим типом ключа в блоке данных, а также отсутствие гейтинга для верификации подписи CA в сертификатах. Итоговая правка, выпущенная в версии 10.6, переместила проверки внутрь самого парсера. Теперь тип ключа и алгоритм подписи проверяются по списку разрешений до десериализации или верификации. Это изменение сделало недоступными для атакующего около пятой части кода OpenSSH, ранее достижимой без аутентификации.
Anthropic объединила описанные методы в переиспользуемый навык (skill) для Claude, который проходит три этапа анализа: проверку конфигурации по умолчанию, анализ ранней доступности кода и оценку конфликтующих настроек. На каждом этапе модель создает инвентарь точек входа и подтверждает находки динамическим трассированием программы. Для предложений по изменению конфигурации по умолчанию система проверяет отсутствие регрессий с помощью тестовых наборов проекта.
Авторы подчеркивают, что сокращение поверхности атаки — это один из самых практических способов для разработчиков измеримо повысить безопасность уже существующего программного обеспечения. Даже в таких строго контролируемых системах, как OpenSSH, лишняя доступность кода может сохраняться годами. Автоматизированный подход позволяет системно устранять такие риски, защищая от неизвестных уязвимостей, которые могут быть активно эксплуатированы.