Вышел новый релиз PVS-Studio — 7.37. Встречайте расширенный механизм анализа помеченных данных, возможность выбора версии стандарта MISRA, поддержку анализа MSBuild проектов на основе SLNX и ещё много других обновлений! Больше подробностей в этой заметке.

Загрузить актуальную версию PVS-Studio можно по этой ссылке.
Расширение механизма анализа помеченных данных
В новой версии анализаторы PVS-Studio обзавелись улучшениями в механизме анализа помеченных данных.
В C++ анализаторе PVS-Studio этот механизм теперь распространяется на диагностики поиска других типов ошибок: деления на ноль, выхода за границу буфера, побитового сдвига на недостоверное значение, знакового переполнения и передачи аргументом недостоверного значения.
В C# и Java анализаторах был добавлен учёт помеченных данных при выходе за границу массива, определении переполнения и потенциальном делении на ноль.
Эти изменения позволили анализатору находить ошибки и потенциальные уязвимости в большем количестве сценариев.
Выбор версии стандарта MISRA
Настройка, позволяющая выбрать версию стандарта MISRA C Coding Guidelines, была добавлена в плагины PVS-Studio для интегрированных сред разработки Visual Studio Code, Qt Creator, CLion и Rider, а также в утилиты командной строки PVS-Studio_Cmd.exe
и pvs-studio-analyzer
.
В прошлой версии PVS-Studio подобная настройка была добавлена в плагин PVS-Studio для интегрированной среды разработки Visual Studio.
Анализ проектов на основе SLNX
В анализаторе MSBuild-проектов появилась возможность анализировать проекты на основе файла решения SLNX — нового и более лаконичного формата файлов решений, добавленного в .NET SDK 9.0.200.
C23 и стандартная библиотека: улучшения в анализаторе C и C++
В C и C++ анализаторе была улучшена поддержка стандарта C23 с добавлением поддержки ключевых слов constexpr
и alignas
.
Также была улучшена работа C и C++ анализатора со стандартной библиотекой. Был улучшен разбор brace-initilalizer-list
для встроенных контейнеров, а также были проаннотированы std::min
, std::max
, std::unique_ptr<T[]>::reset
и std::unique_ptr<T[]>::release
.
PVS-Studio на Нейтрино
Плагин PVS-Studio для Qt Creator портирован на комплект разработчика для операционной системы Нейтрино на Windows. Из данного комплекта поддержана работа с Qt Creator 6 (Qt 5.14.2).
Интеграция результатов анализа PVS-Studio в Securitm
Был добавлен раздел документации, который объясняет, как интегрировать результаты анализа кода в систему управления безопасностью Securitm. В нем подробно описаны шаги по подключению, настройке отчётов и взаимодействию с системой.
Примечание. Ознакомиться с новым разделом документации можно здесь.
Настройка Security Related Issues в .pvsconfig
Ранее в плагинах PVS-Studio для интегрированных сред разработки, а также в утилитах командной строки была добавлена возможность включения SAST-идентификаторов для сообщений анализатора, относящихся к потенциальным угрозам безопасности (Security Related Issues).
Теперь подобная возможность добавлена и в файлы конфигурации диагностик .pvsconfig
.
Примечание. Подробнее о файлах конфигурации диагностик можно прочитать в соответствующем разделе нашей документации.
Напомним, что идентификаторы Security Related Issues позволяют идентифицировать срабатывания анализатора, которые классифицируются как критические ошибки в стандарте ГОСТ Р 71207-2024, описывающем использование статических анализаторов в процессе безопасной разработки программного обеспечения.
Breaking Changes
Эти изменения ломают обратную совместимость с предыдущими версиями анализатора. В связи с этим вам может потребоваться изменить способ использования анализатора.
Изменено сообщение, выдаваемое диагностическим правилом V1077. Есть вероятность возникновения необходимости повторно подавить уже подавленные ранее предупреждения этого правила.
Из-за распространения механизма анализа помеченных данных на диагностические правила V557, V609, V610, V1083 и V575 возможно повторное возникновение ранее подавленных сообщений, выданных диагностическим правилом V1010.
Новые диагностические правила
C, C++:
V1118. Excessive file permissions can lead to vulnerabilities. Consider restricting file permissions.
C#:
V5630. Possible cookie injection. Potentially tainted data is used to create a cookie.
V3222. Potential resource leak. An inner IDisposable object might remain non-disposed if the constructor of the outer object throws an exception.
V3223. Inconsistent use of a potentially shared variable with and without a lock can lead to a data race.
Java:
V6126. Native synchronization used on high-level concurrency class.
V6127. Closeable object is not closed. This may lead to a resource leak.
V6128. Using a Closable object after it was closed can lead to an exception.
V6129. Possible deadlock due to incorrect synchronization order between locks.
V6130. Integer overflow in arithmetic expression.
V6131. Casting to a type with a smaller range will result in an overflow.
V5331. OWASP. Hardcoded IP addresses are not secure.
V5332. OWASP. Possible path traversal vulnerability. Potentially tainted data might be used to access files or folders outside a target directory.
Статьи
Для тех, кто пишет на C++:
Для тех, кто пишет на C#:
Для тех, кто пишет на Java:
Статьи общей направленности:
Вебинары
Интеграция статического анализа и DevSecOps: PVS-Studio и AppSec.Hub в действии
Рассказали, как повысить безопасность кода с помощью современных инструментов. PVS-Studio — мощный статический анализатор, выявляющий ошибки и уязвимости в коде, и AppSec.Hub — платформа DevSecOps от AppSec Solutions, которая автоматизирует внедрение инструментов безопасности и управление процессами безопасной разработки. На вебинаре эксперты продемонстрировали возможности продуктов и объяснили, как интегрировать PVS-Studio в AppSec.Hub для создания эффективного конвейера DevSecOps. Показали на практике, как сократить время на поиск уязвимостей и улучшить качество ПО.
Регулярный статический анализ по ГОСТу
Разобрали часть требований стандартов 56939-2024 и 71207-2024 в области регулярного статического анализа. Объяснили, как выстроить этот самый регулярный статический анализ в рамках РБПО, автоматизировать его через системы CI и значительно ускорить пайплайн за счёт эффективных подходов. Рассказали, как интеграция анализа в процесс разработки поможет найти уязвимости раньше и сэкономить ресурсы команды.
Эффективная разработка с Нейтрино и PVS-Studio: инструменты, безопасность и качество кода
На экспертном вебинаре от PVS-Studio и ООО "СВД ВС" рассказали, как создавать надёжное и безопасное ПО с помощью современных инструментов разработки. Представили обзор комплекта разработчика для ОС Нейтрино с кроссплатформенными решениями для Linux и Windows. Продемонстрировали интеграцию PVS-Studio в Qt Creator для автоматического выявления ошибок, уязвимостей и проверки соответствия стандартам (SAST, MISRA, CWE), а также показали практические кейсы с примерами работы инструментов в реальных проектах.
Доклады
Начали выпуск серии докладов про новый ГОСТ Р 56939-2024. В первой части разбираем причины разработки и выпуска этой версии ГОСТа.
Во второй части говорим про содержание нового ГОСТа и его структуру.
Подкасты
Pure Virtual Cast / Эволюция подходов к парсингу C++ в PVS-Studio
Говорим про возможные подходы к парсингу C++ в НЕ компиляторах. Нужен ли полноценный парсер? Если нужен, то почему? Можно ли использовать готовые парсеры, в том числе из компиляторной инфраструктуры (типа Clang)? Зачем может понадобиться собственный парсер и с какими проблемами придётся столкнуться при его создании.
Подкаст linkmeup | sysadmins N58. РБПО | Андрей Карпов
Поговорим о сложностях и особенностях разработки безопасного ПО в России. Какие ГОСТ за это отвечают. Какие есть старые и новые стандарты. При чём тут ФСТЭК и анализатор кода PVS-Studio. Какие методики оценки есть у РБПО и как написать действительно безопасное ПО. Почему "критическая ошибка" не всегда то, чем кажется?
Ever Secure | Статический анализ по-серьёзному
На подкасте поговорили о развитии статических анализаторов, о ГОСТ Р 71207-2024. О том, как инструмент PVS-Studio под стандарт адаптировали и продолжают это делать. Рассказали про испытания статических анализаторов под руководством ФСТЭК. И, конечно, ответили на вопросы зрителей.
Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.
Если вы хотите получать новости о новых релизах, подпишитесь на рассылку от компании PVS-Studio по этой ссылке.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Valerii Filatov. PVS-Studio 7.37: enhanced taint analysis, MISRA version control, SLNX project support, and more.