Pull to refresh
100.7
PVS-Studio
Статический анализ кода для C, C++, C# и Java

PVS-Studio 7.37: улучшения taint-анализа, выбор версии стандарта MISRA, анализ SLNX и многое другое

Reading time6 min
Views251

Вышел новый релиз 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.

Tags:
Hubs:
+2
Comments0

Other news

Information

Website
pvs-studio.ru
Registered
Founded
2008
Employees
51–100 employees
Location
Россия
Representative
Андрей Карпов