Команда PVS-Studio объявила о выпуске новой версии PVS-Studio 8.01 своего решения, предназначенного для обеспечения качества, надежности и защищенности исходного кода. О появлении этого релиза редакции CNews сообщили представители компании-разработчика. В обновлении реализована поддержка свежих версий платформ, добавлены новые диагностические правила, а также расширен функционал настройки анализа и фильтрации отчетов.
Для проверки точности обнаружения уязвимости разработчики протестировали SAST-правила анализатора Java на специализированном бенчмарке OWASP Benchmark for Java. Кирилл Епифанов, исполняющий обязанности Project Lead отдела Java разработки PVS-Studio, пояснил, что при проверке реальных проектов сложно объективно оценить полноту поиска уязвимостей, поскольку заранее неизвестно точное количество дефектов и пропусков. Применение специализированного бенчмарка дало возможность обнаружить недочеты в SAST-правилах для Java и повысить общую результативность выявления дефектов безопасности.
В рамках работы с Java-направлением в систему внедрили три новые диагностические проверки, соответствующие требованиям стандарта OWASP ASVS:
V5341. OWASP. A cookie was created without enabling the Secure attribute. This may lead to the exposure of sensitive data
V5342. OWASP. Potentially tainted data is stored in an object that can be used as a source of trusted data
V5343. OWASP. A cryptographically weak random number is used for sensitive data
Обновление также принесло поддержку свежих окружений. Анализатор Java теперь функционирует с JDK 25, что особенно важно для компаний, внедряющих новую версию Java с долгосрочной поддержкой (LTS). В свою очередь, анализатор Go получил совместимость с Go 1.27. Подобные нововведения позволяют командам проверять код на актуальных версиях платформ и стандартных библиотек без задержек, вызванных ограничениями средств статического анализа.
Существенные изменения затронули и инструменты настройки, а также работу с отчетами. При проверке MSBuild-проектов теперь разрешено сохранять конфигурации в JSON-отчете, что облегчает устранение срабатываний на конкретных платформах. В отчете формата fullhtml, создаваемом утилитой PlogConverter.exe, предупреждения теперь сортируются по конфигурационной схеме анализа. Помимо этого, в утилите PlogConverter появилась опция фильтрации срабатываний по идентификаторам CWE и SAST. Эта опция помогает при обработке результатов с оглядкой на требования ГОСТ Р 71207-2024, выделяя критические ошибки, которые классифицируются стандартом и имеют SAST-идентификатор с префиксом SEC.
Пакет настроек пополнился дополнительными параметрами для адаптации продукта под конкретные условия. В анализаторах JavaScript и TypeScript появилась настройка max-old-space-size, задаваемая через файл pvs-settings.toml или инструмент командной строки pvs-js.exe для управления памятью Node.js-сервера анализатора. Утилита PVS-Studio_Cmd.exe научилась принимать пути к кэшам зависимостей относительно конфигурационного файла .pvsconfig. В анализаторе C и C++ расширились параметры настройки диагностик, включая ручное определение дешевых для копирования типов и поведение под целевую платформу. Правило V719 обзавелось дополнительными настройками для игнорирования default-ветки и небольших перечислений enum, а также задания конкретных значений и лимита констант.
Среди изменений присутствует нарушение обратной совместимости с более ранними версиями, из-за чего может потребоваться корректировка сценариев применения. В частности, установщик продукта для Windows получил новый код возврата 100, который фиксируется при сбое инсталляции плагинов для Visual Studio. Чтобы отключить генерацию ненулевого кода возврата в подобных ситуациях, предусмотрен специальный флаг skipVSIXInstallErrorCode.