Платформа CodeScoring представила проверку достижимости уязвимостей в сторонних компонентах

Вместе с другими инструментами фильтрации в платформе новая функция призвана на порядок сократить временные затраты на разбор уязвимостей

В платформе CodeScoring появился анализ достижимости уязвимостей с учетом транзитивных зависимостей. Эта функция показывает реальную

эксплуатируемость обнаруженных уязвимостей, т. е. помогает определить, можно ли на самом деле использовать найденные в коде уязвимости через существующие вызовы.

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

Композиционный анализ с достижимостью уже можно провести в проектах на языках Java, Go и Python, идет работа над добавлением в модуль CodeScoring.SCA анализа проектов на других популярных языках программирования: JavaScript, C#, PHP и Kotlin.

Как это работает

Команда CodeScoring в сотрудничестве со специалистами научно-технического центра «Фобос-НТ» и кафедры ИУ10 «Защита информации» МГТУ им. Н. Э. Баумана изучила открытые репозитории с исходным кодом проектов на Java, Python, JavaScript, Go, Kotlin, C#, PHP, выделила характерные для каждой уязвимости вызовы и собрала собственную базу знаний, которая регулярно пополняется. Такая разметка уязвимых методов позволяет достигать высокой точности анализа достижимости и снижать количество ложноположительных срабатываний. Сейчас в базе размечено более 10 000 известных уязвимостей.

Технологическая основа проекта — построение графа вызовов с использованием технологий анализа Института системного программирования им. В. П. Иванникова Российской академии наук (ИСП РАН).

Арутюн Аветисян, академик РАН, директор ИСП РАН: «Граф вызовов программы выявляет связи ее методов между собой. Точное построение такого графа — нетривиальная задача, которая требует глубокого анализа кода на основе фундаментальных научных технологий. В их число входят анализы указателей и виртуальных методов, широко использующихся в современных языках программирования. А для компилируемых языков необходима технология перехвата сборки. Все эти методы анализа мы развиваем в рамках статического анализатора Svace, поэтому наши специалисты смогли в сжатые сроки доработать их и выделить как отдельный компонент для использования в CodeScoring.SCA. Мы рады, что с выходом этой совместной технологии наше сотрудничество с давними друзьями из CodeScoring вышло на новый уровень».

Дмитрий Пономарев, заместитель генерального директора, директор департамента РБПО НТЦ «Фобос-НТ»: «В работе испытательной лаборатории мы используем инструмент статического анализа Svace с 2019 года и инструмент композиционного анализа CodeScoring с 2023 года. Совместная работа этих движков — на наш взгляд, лучших инструментов в своем классе на отечественном рынке — долгожданное событие, поскольку в ряде случаев поможет существенно сократить сложность доказательного процесса в части эксплуатируемости или неэксплуатируемости известных уязвимостей компонентов в составе программных продуктов».

Алгоритм работает следующим образом: сначала на основе исходного кода проекта строится граф вызовов функций проекта, далее происходит сверка с базой знаний. Для каждой известной уязвимости система знает характерные шаблоны эксплуатации — то, как ее могут использовать в реальных атаках. По итогам анализа пользователь получает информацию по найденным достижимым уязвимостям с цепочками вызовов для каждой.

Максим Щедрин, начальник управления тестирования безопасности «Т1 Иннотех»: «В ходе пилотных испытаний новой функции анализа достижимости уязвимостей сотрудниками Т1 Иннотех была проведена оценка её эффективности. Ключевой фактор в данном случае – точность результатов. Для подтверждения точности была проведена ручная проверка, в ходе которой удалось установить, что заявленная функция корректно идентифицирует как достижимые, так и недостижимые уязвимости, обеспечивая высокую достоверность результатов.

Можно с уверенностью утверждать, что автоматизированный анализ отражает реальное положение дел и может служить основой для принятия решений по устранению уязвимостей. Функция проверки достижимости уязвимостей позволяет не только автоматизировать приоритизацию уязвимостей с учетом фактической достижимости, но и значительно сократить объем ручного анализа, что актуально в условиях нехватки ресурсов. Это делает функцию ценным инструментом повышения эффективности и точности работы по обеспечению безопасности программных продуктов».

Анализ достижимости доступен в модуле CodeScoring.SCA с версии 2025.37.0. Результаты анализа отображаются в интерфейсе платформы и отчетах, удобных для выгрузки. Новая функция призвана повысить эффективность работы DevSecOps-команд и снизить нагрузку на команды безопасности.

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

Алексей Смирнов, основатель платформы безопасной разработки CodeScoring: «Знать все сторонние компоненты и их риски в вашем продукте сегодня недостаточно. Этим знанием важно эффективно управлять для построения качественного процесса безопасной разработки. Выявленная достижимость известной уязвимости — повышенный риск для продукта, т. к. информация о методах эксплуатации с большой вероятностью уже находится в публичном доступе и ей может воспользоваться каждый. Реализация такого вида анализа — наукоёмкая и кропотливая задача, решение которой стало возможным благодаря нашим технологическим партнерам».

CodeScoring
Автор: CodeScoring
CodeScoring – российская платформа безопасной разработки программного обеспечения. Решение состоит из четырех модулей: композиционный анализ CodeScoring.SCA, защита цепочек поставки CodeScoring.OSA, анализ качества разработки CodeScoring.TQI и выявление конфиденциальной информации в исходном коде CodeScoring.Secrets. CodeScoring устанавливается в инфраструктуре заказчика, интегрируется с популярными инструментами разработки и развертывания ПО и поддерживает все ключевые экосистемы пакетных менеджеров.
Комментарии: