BIS Journal №4(59)2025

22 декабря, 2025

Статический анализатор PVS-Studio за пределами РБПО

Публикации этого журнала во многом ориентированы на тему разработки безопасного ПО (РБПО), рассматривая методологии и продукты именно с этой точки зрения. Мы сами ранее упоминали PVS-Studio в журнале именно в контексте РБПО. Однако статический анализ — это не только про безопасность.

Вернее, статический анализ — это всегда про безопасность, качество и надёжность кода. Но работа над этими характеристиками может происходить вне классических понятий и ГОСТов. Взглянем на PVS-Studio за пределами описания:

PVS-Studio — статический анализатор кода, совместимый с ГОСТ Р 71207-2024, выявляющий критические ошибки в коде на языкахC, C++, C#, Java. Включён в Реестр российского ПО: запись № 9837. Может применяться для построения РБПО согласно ГОСТ Р 56939-2024. Соответствует требованиям «Методики выявления уязвимостей и НДВ в программном обеспечении». 

Теперь посмотрим на инструмент с других сторон.

В PVS-Studio реализовано множество диагностик для поиска опечаток и дефектов, связанных с написанием кода методом copy-paste. Особенность детекторов опечаток в том, что многие из них построены на эмпирических алгоритмах. Это их и слабая, и сильная сторона.

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

Например, C++ анализатор может выявить ошибки формирования строк с HTML-кодом. Выявит незакрытые теги или их дублирование, хотя этот баг не имеет никакого отношения к языку C++ (см. диагностику V735).

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

И всё же PVS-Studio помогает оптимизировать код благодаря диагностикам «микрооптимизации». Отдельный найденный фрагмент неоптимального кода не ускорит программу, но исправление сотен таких предупреждений в сумме может давать заметный результат.

Пример срабатывания диагностики V813 на C++ код реального приложения. Контейнер передаётся по значению, но его элементы используются только для чтения:

void

addDescriptions(

std::vector<std::pair<int, std::string>> toAdd)

{

  if (m_descCount + toAdd.size() >

MAX_POLICY_DESCRIPTIONS)

  ....

  for (const auto &it : toAdd)

....

}

Мы получали положительные отзывы от клиентов, что, исправив несколько таких недочётов в коде, они получали заметное ускорение приложения в десятки процентов.

Для помощи разработчикам игр инструментPVS-Studio интегрируется с такими игровыми движками, как Unreal Engine (С++) и Unity Engine (C#). Анализатор не только удобно встраивается в соответствующие CI/CD-конвейеры, но и учитывает особенности движков, реализуя узкоспециализированные диагностики.

Пример диагностики для Unity Engine: V3205.

Анализатор обнаруживает нежелательное создание экземпляра классов 'MonoBehaviour' или 'ScriptableObject' с помощью оператора 'new'. Объекты, созданные таким образом, не будут связаны с движком, поэтому такие специфичные Unity-методы, как 'Update', 'Awake', 'OnEnable' и прочие, вызываться не будут.

На практике при выборе инструмента приходится учитывать удобство интерфейса и интеграцию с другими системами. Нашей командой проделана большая работа в этом направлении. В настоящее время PVS-Studio интегрируется:

  • сIDE (Visual Studio, IntelliJ IDEA, Rider, OpenIDE, CLion, Visual Studio Code, Qt Creator);
  • сборочными системами (MSBuild, CMake, Ninja, Gradle, Maven, JSON Compilation Database);
  • облачными CI (CircleCI, Travis CI, GitLab, Azure DevOps, GitHub Actions);

и т. д.

Запускается на большом количестве ОС, в том числе отечественных: Windows, macOS, Arch Linux, Astra Linux, CentOS, Debian GNU/Linux, Fedora, Linux Mint, openSUSE, Ubuntu, РЕДОС.

 

Реклама. ООО «ПВС», ИНН: 7105502635, Erid: 2VfnxxBYefT

Стать автором BIS Journal

Смотрите также

Подписаться на новости BIS Journal / Медиа группы Авангард

Подписаться
Введите ваш E-mail

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных

24.03.2026
Россия вошла в тройку наиболее атакуемых хакерами стран мира
24.03.2026
Ущерб от атак хактивистов достиг уровня прогосударственных группировок
24.03.2026
О запрете на входящие для пенсионеров и SMS-коды для детей
24.03.2026
Путаница в вопросе ответственности за ИИ повышает ИБ-риски
24.03.2026
Минюст правит криптозаконодательство
24.03.2026
Запрет TP-Link в США: нацбезопасность или лоббирование?
23.03.2026
Бумажная безопасность? В России появятся «белые» банкоматы
23.03.2026
Экстремистские материалы всё же можно будет искать. Но не всем
23.03.2026
Никита Леокумович (Angara Security): «Культура ИБ начинается с умения вовремя заметить атаку»
23.03.2026
А что если ИИ не снижает рабочую нагрузку?

Стать автором BIS Journal

Поля, обозначенные звездочкой, обязательные для заполнения!

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных