Мы открываем серию материалов о том, как компании используют PVS-Studio. В этом кейсе — опыт компании Eltex.

Российская компания Eltex разрабатывает и производит продукты для закрытия полного спектра задач создания сетевой инфраструктуры. В каталоге — широкий спектр оборудования, в том числе коммутаторы доступа, агрегации, ЦОД и ядра, сервисные и магистральные маршрутизаторы, оборудование для IP-телефонии и Wi-Fi, программные системы для управления сетевой инфраструктурой, видеонаблюдения и т.д.
Одним из ключевых направлений деятельности компании является разработка сервисных маршрутизаторов ESR — устройств, которые стоят на границе сети, обеспечивая её безопасность и связь с другими сетями.
Команда под руководством Павла Ильченко отвечает за разработку сервисов безопасности в решении ESR. В рамках подразделения команда также развивает и внедряет передовые практики обеспечения безопасности кода, включая статический анализ, проверку на уязвимости и security review.
По мере роста команды процесс code review и тестирования стал занимать всё больше времени. При этом сохранялся риск человеческих ошибок, влияющих на качество контроля. Возникла необходимость оптимизировать процессы и автоматизировать рутинные проверки, чтобы сократить нагрузку на специалистов и сосредоточиться на более высокоуровневых задачах.
Более пяти лет назад команда ESR начала последовательно внедрять практики разработки безопасного ПО, ориентируясь на международные стандарты.
"Статический анализ стал для нас первым шагом к построению процесса безопасной разработки", — Павел Ильченко, руководитель группы Security.
Изучив рынок, команда начала искать подходящий инструмент. Были протестированы различные анализаторы, но многие либо сложно интегрировались в инфраструктуру, либо значительно замедляли сборку. Важной задачей было обеспечить корректную работу анализатора с кодом на C и надстройками GCC, используемыми в проектах. Кроме того, команда хотела получать оперативную техподдержку для минимизации ложных срабатываний и корректной настройки инструмента.
В итоге выбор пал на PVS-Studio — инструмент, сочетающий точность анализа, необходимый функционал и качественную техническую поддержку. Eltex использует его в работе с 2020 года.
Команда направления Security подразделения ESR начала с продолжительного тестирования PVS-Studio, сравнивая его с другими инструментами на одном и том же участке legacy-кода, известном большим количеством проблем. Тестирование продолжалось несколько месяцев и покрывалось политикой PVS-Studio по выдаче триальных лицензий.
"На начальном этапе нас поразила скорость работы. Другие анализаторы могли увеличивать время сборки до 30 минут, а PVS-Studio добавлял буквально пару минут. Это стало весомым преимуществом. Кроме того, интеграция через CMake идеально легла в наши процессы", — Павел Ильченко, руководитель группы Security.
Хотя часть сотрудников уже имела опыт взаимодействия с PVS-Studio в личных проектах и с бесплатной лицензией для open source, большая часть команды не была знакома с анализатором. Руководитель команды признаёт, что привыкание к инструменту потребовало времени, но постепенно он стал незаменимым для каждого разработчика:
"На первых этапах разработка действительно замедлилась, так как разработчикам требовалось время, чтобы разобраться с найденными ошибками в коде. Со временем они выявили повторяющиеся паттерны и стали быстрее устранять проблемы. Мы ожидали первоначальное замедление и последующее ускорение работы — именно так и произошло", — Павел Ильченко, руководитель группы Security.
Параллельно с внедрением анализатора команда улучшала и другие процессы, в том числе пересмотрела DevOps и ускорила сборку.
"Мы переделали наш DevOps, внедрили его лучшим способом, ускорили сборку. При внедрении анализатора не возникло проблем, как раз за счёт того, что мы вместе с PVS начали хорошо и правильно настраивать процессы", — Павел Ильченко, руководитель группы Security.
В ходе тестирования команда не только оценивала функциональность анализатора, но и проверяла качество технического сопровождения. Одним из ключевых факторов при выборе инструмента стала оперативность и вовлечённость техподдержки.
Замечания, собранные в ходе проверки, были оперативно проработаны, и часть из них была учтена ещё до оформления лицензии. Общение с командой продолжается и сегодня: обсуждаются идеи, как сделать работу с анализатором ещё удобнее.
"Ваша поддержка всегда довольно быстро отвечает, что-то правит, что-то нам объясняет", — Павел Ильченко, руководитель группы Security.
За время сотрудничества команда PVS-Studio реализовала ряд улучшений, которые сделали использование анализатора удобнее для разработчиков Eltex:
Многие улучшения PVS-Studio появляются благодаря обратной связи от Enterprise пользователей. Полный список улучшений можно увидеть здесь.
Снижение количества ошибок и потенциальных уязвимостей в коде
Команда разработки ESR отмечает сокращение числа уязвимостей, выявляемых в новых реквестах. Регулярные проверки с помощью PVS-Studio способствовали повышению качества кода и снижению количества повторяющихся ошибок.
"Если сравнивать период до внедрения практик безопасной разработки, с текущим моментом, то количество ошибок сократилось значительно и начало снижаться уже с момента внедрения статического анализа", — Павел Ильченко, руководитель группы Security.
Сокращение возвратов задач
Команда ESR оценивает эффективность изменений по тому, сколько задач возвращается на доработку на разных этапах: после первичного тестирования, после тестирования при слиянии с основным кодом и в ходе эксплуатации.
После внедрения PVS-Studio возвраты задач на доработку значительно сократились. Это позволяет команде быстрее закрывать задачи и уменьшает объём повторных проверок на различных этапах.
"Задачи из тестов возвращаются гораздо реже, потому что у них нет очевидных проблем: меньше багов находится на этапе эксплуатации", — Павел Ильченко, руководитель группы Security.
Формирование устойчивых привычек безопасной разработки
Регулярные проверки с помощью PVS-Studio помогли разработчикам быстрее распознавать уязвимые участки кода и избегать повторения ошибок. Команда ESR придерживается устойчивых привычек безопасной разработки, а внимание к качеству кода является частью внутренней культуры.
"Сейчас количество ошибок заметно снизилось. Анализатор PVS-Studio на текущем этапе находит маленькое количество проблем, в чем, на самом деле, его заслуга: разработчики стали достаточно опытными и не допускают типичных ошибок", — Павел Ильченко, руководитель группы Security.
Интеграция PVS-Studio помогла команде разработки сервисных маршрутизаторов ESR компании Eltex выстроить эффективный процесс безопасной разработки и значительно улучшить качество кода. Инструмент не только автоматизировал поиск потенциальных ошибок, но и стал частью культуры разработки, способствуя росту экспертизы команды.
Сегодня PVS-Studio — важный инструмент разработки в компании Eltex, который повышает стабильность, безопасность и надёжность конечного продукта.
0