Николай Костригин, «Базальт СПО»: От развития статического анализа выиграет все общество
7 июля опубликованы итоги этапа «Домашнее задание» испытаний статических анализаторов под патронажем ФСТЭК России. Команда «Базальт СПО» выступила в них сразу в двух ролях: как член жюри и как участник. Зачем понадобились испытания протяженностью в год, какие результаты ожидаются и какую пользу они принесут разработчикам российского ПО, рассказывает руководитель направления РБПО «Базальт СПО» Николай Костригин.
Костригин
Как вышло, что «Базальт СПО» — одновременно член жюри и участник? И не скажется ли это на объективности оценок?
Николай Костригин: Прежде всего, цель испытаний не в том, чтобы выявить победителя. Главная задача — ответить на вопрос участников рынка, какие статические анализаторы подходят для целей РБПО. А для этого необходимо создать тесты и методики, позволяющие оценить их соответствие стандарту (ГОСТ Р 71207–2024 «Защита информации. Разработка безопасного программного обеспечения. Статический анализ программного обеспечения. Общие требования»).
Сначала нас пригласили в жюри, поскольку «Базальт СПО» — крупный вендор, активно использующий статический анализ в разработке и заинтересованный в совершенствовании инструментов. Мы согласились и предложили также войти в программу со свободными инструментами. Сформировали две команды — одна участвует в испытаниях, другая стала членом жюри. Мы не являемся производителем анализаторов, наша команда представила на испытания комплекс из нескольких свободных инструментов. Поэтому никаких препятствий для участия в обеих ролях одновременно для нас нет.
Добавлю, что «Базальт СПО» обеспечивает часть инфраструктуры испытаний: предоставляет хостинг и управление репозиторием комплекта тестов.
Какую выгоду получают участники испытаний?
Николай Костригин: В процессе испытаний вырабатываются материалы и способы сравнения статических анализаторов, проявляются их преимущества и ограничения. Это в будущем позволит разработчикам, в том числе в «Базальт СПО», обоснованно выбирать инструменты в зависимости от конкретных задач.
Кроме того, в процессе испытаний, благодаря полученной обратной связи, совершенствуются инструменты статического анализа. Уже сейчас выявлены сильные и слабые стороны российских и свободных анализаторов, которые стали объектом испытаний. Это позволяет определить приоритетные направления их развития и оптимальные способы применения. Например, наша команда сначала выбрала два свободных анализатора Clang Static Analyzer и CppCheck. Но в ходе испытаний выяснилось, что не для всех групп тестов они дают хороший результат. И мы объединили несколько свободных инструментов под управлением единой платформы — CodeChecker, включающей: clang-static-analyzer, clang-tidy, cppcheck и gcc. Полученные результаты — TPR – 64.6 %, TNR – 85.3% по всему набору тестов, что соответствует пункту 8.4 ГОСТ Р 71207-2024.
Производители получили возможность общаться и обмениваться опытом с коллегами по цеху, в том числе с прямыми конкурентами. Это позволяет гораздо быстрее наращивать экспертизу, чем в ситуации, когда все работают разрозненно. Важно, что достигнута договоренность о размещении материалов испытаний по этапу «Домашнее задание» в общем доступе. Комплект тестов размещен под свободной лицензией GPLv2 на ресурсе altlinux.space, а конфигурации представляемых нами инструментов и методика их тестирования в репозитории Sisyphus. Мы приветствуем это решение и готовы способствовать открытой публикации тестов, материалов и техники тестирования не только для участников, но и для всего мирового сообщества.
Организаторы планируют завершить второй этап испытаний к ноябрю, а в декабре 2025 года представить отчет.
Какую роль играют статические анализаторы в обеспечении безопасности разработки?
Николай Костригин: Статический анализ играет ключевую роль в безопасной разработке, потому что позволяет при относительно небольших трудозатратах получить весомый результат. Большинство команд, внедряющих РБПО, начинают именно с этого вида анализа. Чем шире распространятся эти практики, тем безопаснее и качественнее станет программное обеспечение, которым современный человек пользуется ежедневно. В итоге от развития статического анализа выиграет все общество.