PVS-Studio 7.34: поддержка Apple Silicon ARM64, проектов для .NET 9, taint-анализа в Java анализаторе
Вышел новый релиз PVS-Studio — 7.34. Поддержка процессора Apple Silicon с архитектурой ARM64, поддержка проектов для .NET 9, внедрение механизма taint-анализа в Java анализатор и это ещё не всё! Больше подробностей в этом пресс-релизе.
Загрузить актуальную версию PVS-Studio можно здесь.
PVS-Studio теперь доступен для Apple Silicon ARM64
Анализаторы PVS-Studio для операционных систем семейства macOS теперь поддерживают процессоры Apple Silicon с архитектурой ARM64, что открыло новые горизонты для пользователей macOS. С выпуском версии 7.34 стали доступны нативные сборки, позволяющие использовать все преимущества новой платформы.
C# анализатор PVS-Studio поддерживает проекты для .NET 9
Теперь пользователи могут выполнять статический анализ кода, написанного на C#, с учётом всех нововведений и функций .NET 9.
В связи с этим изменились требования C# анализатора на Windows, более подробно про эти и другие изменения смотрите под заголовком Breaking Changes.
Внедрение механизма taint-анализа в Java анализатор PVS-Studio
В последнем обновлении Java анализатора PVS-Studio был внедрен механизм для проведения taint-анализа. На основе этого механизма было разработано первое диагностическое правило V5309, предназначенное для поиска SQL-инъекции.
В следующем году в Java анализаторе будет сделан упор на SAST, покрытие списка наиболее распространённых потенциальных уязвимостей OWASP Top-10, а также разработку диагностических правил для taint-анализа.
Режим проверки модифицированных файлов
В утилиты командной строки PVS-Studio_Cmd
и pvs-studio-dotnet
был добавлен режим проверки модифицированных файлов, позволяющий автоматически обнаружить изменённые между запусками анализа исходные файлы. Данный режим является альтернативой инкрементальному анализу и может быть полезен при проверке Pull Request'ов.
Подробнее о новом режиме можно прочитать в документации.
Отображение критических ошибок согласно ГОСТ
В плагин PVS-Studio для Visual Studio Code и утилиту командной строки plog-converter
была добавлена возможность отображения критических ошибок согласно ГОСТ Р 71207-2024. Это позволит автоматически выявлять и классифицировать в коде ошибки, соответствующие новым стандартам.
Просмотр результатов анализа в веб-интерфейсе CodeChecker
С выходом новой версии CodeChecker 6.25.0 пользователи получат возможность загружать отчёты PVS-Studio прямо в веб-интерфейс для удобного просмотра результатов анализа кода. Подробнее об интеграции можно прочитать в документации.
Гибкая настройка включения в анализ файлов
Добавлена возможность гибкой настройки включения или выключения из анализа исходных файлов и файлов настроек .pvsconfig
. Также данный механизм можно будет использовать для проверки Unreal Engine проектов с помощью UnrealBuildTool, начиная с версии 5.5.2. Подробнее можно прочитать в документации.
Breaking Changes
Данные изменения ломают обратную совместимость с предыдущими версиями анализатора. В связи с ними вам может потребоваться изменить способ использования анализатора.
Изменились требования C# анализатора на Windows:
для анализа .NET проектов теперь потребуется установка .NET 9 SDK;
Читайте так же:для анализа .NET, .NET Standard и .NET Framework SDK-style проектов также потребуется .NET SDK 9;
требования по проверке не изменились для классических .NET Framework проектов: если в системе установлены Visual Studio или MSBuild версий 2017, 2019 или 2022, достаточно наличия в системе .NET Framework 4.7.2;
для классических .NET Framework проектов в системах с Visual Studio или MSBuild версий 2015 или более старых теперь также будет требоваться присутствие .NET 9 SDK;
При использовании silent режима установки на Windows, если необходимо запускать анализ на проектах, которые теперь требуют наличия в системе .NET 9 SDK, потребуется указать компонент DOTNET для установки .NET 9 SDK, если SDK не был установлен в системе отдельно.
В утилите командной строки pvs-studio-analyzer
изменено поведение флага флага --sourcetree-root (-r)
. При подмене путей в генерируемом отчёте путь до базовой директории проверяется на существование:
если часть путей не получилось подменить, то выдаётся сообщение с предупреждением, но код возврата останется равным 0;
если же не получилось подменить ни один путь, то помимо сообщения с предупреждением, код возврата будет ненулевым.
Новые диагностические правила
C, C++:
V1116. Creating an exception object without an explanatory message may result in insufficient logging.
V1117. The declared function type is cv-qualified. The behavior when using this type is undefined.
V2022. Implicit type conversion from integer type to enum type.
V5014. OWASP. Cryptographic function is deprecated. Its use can lead to security issues. Consider switching to an equivalent newer function.
C#:
V3207. The 'not A or B' logical pattern may not work as expected. The 'not' pattern is matched only to the first expression from the 'or' pattern.
V3208. Unity Engine. Using 'WeakReference' instance with 'UnityEngine.Object' is not supported. GC will not properly reclaim memory from this object because it is linked to a native object.
V3209. Unity Engine. Re-applying await to an Awaitable object will result in an exception.
V3210. Unity Engine. Unity does not allow removing the 'Transform' component using 'Destroy' or 'DestroyImmediate' methods. The method call will be ignored.
V4007. Unity Engine. Avoid creating and destroying UnityEngine objects in performance-sensitive context. Consider activating and deactivating them instead.
Java:
V6123. Modified value of the operand is not used after the increment/decrement operation.
V6124. Converting an integer literal to the type with a smaller value range will result in overflow.
V6125. Calling the 'wait', 'notify', and 'notifyAll' methods outside of synchronized context will lead to 'IllegalMonitorStateException'.
V5309. Possible SQL injection. Potentially tainted data is used to create SQL command.
Анонс нового вебинара
Использование статических анализаторов кода при разработке безопасного ПО
В апреле 2024 года вышел ГОСТ Р 71207-2024, посвящённый разработке безопасного программного обеспечения, а точнее использованию статических анализаторов в этом процессе. В данном вебинаре разберём, что этот стандарт регулирует, а также что нужно изменить в рабочем процессе, чтобы ему соответствовать.
Вебинар пойдет 19 декабря 14:00, регистрация доступна по ссылке.
Статьи
Для тех, кто пишет на C++:
Путеводитель C++ программиста по неопределённому поведению: часть 11 из 11
Отладка вашего "процессора" вместе с Андерсом Шау Кнаттеном, автором книги "C++ Brain Teasers: Exercise Your Mind"
Путеводитель C++ программиста по неопределённому поведению: часть 10 из 11
Гадание на пяти строчках: о чем молчит программа
История C и C++. Часть первая: появление и стандартизация C, C with Classes становится C++
19 ошибок в LLVM 19
Дебажим баги в дебаггере x64dbg. "Шаг с выходом" в GUI
Дюжина ошибок мессенджера Telegram
DPDK: 100 больших и маленьких багов
Путеводитель C++ программиста по неопределённому поведению: часть 9 из 11
Поиск ошибок в юнит-тестах
Путеводитель C++ программиста по неопределённому поведению: часть 8 из 11
Игровое поле экспериментов: какие ошибки могут подстерегать программиста при создании эмулятора
Самая красивая ошибка, которую я нашёл с помощью PVS-Studio в 2024 году
Путеводитель C++ программиста по неопределённому поведению: часть 7 из 11
Для тех, кто пишет на C#:
Как одна строка может положить приложение? Поиск проблем и уязвимостей в ScreenToGif
Что нового в .NET 9?
.NET Digest #4
Поймай уязвимость своими руками: пользовательские аннотации C# кода
Обзор нововведений в C# 13
Что нового в Unity 6? Обзор нововведений и ошибок в исходном коде
Исходный код на прощание: разбор ошибок в проектах закрывшейся инди-студии
Для тех, кто пишет на Java:
Поиск потенциальных уязвимостей в коде, часть 1: теория
Внутри Java Enterprise кода: проверка Flowable
Сериализация в Java. Давайте разбираться
YYYY? yyyy!
Скажем нет "Превращению", или анализ Kafka
Статьи общей тематики:
CodeChecker — контроль качества кода с использованием PVS-Studio
Самый вечный календарь
Где нас носило: все конференции PVS-Studio за 2024 год
Обновляем мерч: шо, опять?
От ВАЛЛ-И до Терминатора: баги, принципы работы и фантазии разработчиков
Вебинары
Парсим С++
На вебинаре "Парсим C++" Олег Лысый, наш C++ разработчик, обсудил грамматические конструкции языка C++ и их функционирование. Также он рассмотрел различные типы парсеров и выяснил, почему парсинг C++ представляет собой сложную задачу. А еще Олег раскрыл полезные хитрости, которые помогут избежать чрезмерного замедления при парсинге.
C# разработка и статический анализ: в чем практическая польза?
В этом вебинаре наш C# разработчик Глеб Асламов рассказал, какие реальные проблемы может выявить статический анализатор для проектов на C#.
Может ли он находить только незакрытые скобки, плохие названия переменных или уязвимости в коде? Или может что-то большее?
МАСКОМ УЦ — Вебинар N7 серии вебинаров РБПО: Давайте разбираться вместе!
На вебинаре Андрей Карпов, директор по маркетингу, делится практическими знаниями о статическом анализаторе PVS-Studio и его роли в обеспечении качества, защищённости и безопасности кода. Там же обсудили безопасность мобильных приложений и сертификацию процессов БРПО средств защиты информации.
PVS-Studio в CI/CD. Автоматизация регулярного статического анализа на примере интеграции с Jenkins
В этом вебинаре C# разработчик Валерий Филатов и C++ разработчик Тарас Шевченко обсудили, зачем интегрировать статический анализ в CI/CD, и какие преимущества это привнесёт в процесс разработки. Также в вебинаре рассмотрели способ интеграции статического анализатора PVS-Studio в Jenkins и SonarQube.
Доклады
ГОСТ Р 71207–2024: безопасная разработка и статический анализ — о чём он?
Наш C# разработчик Глеб Асламов выступил на мероприятии SQA Days 35. В докладе он обсудил ключевые аспекты нового ГОСТ Р 71207-2024, посвященного статическому анализу программного обеспечения. Рассказал о том, какие инструменты могут обеспечить безопасную разработку, как правильно организовать процесс анализа и какие новые требования входят в стандарт.
Статический анализ. Что? Как? Зачем?
В докладе нашего C++ разработчика Евгения Фёклина на мероприятии C++ meetup мы погрузились в мир статического анализа кода. Как он помогает писать безопасный и качественный код? Евгений рассказал о ключевых подходах, инструментах для статического анализа и их значении в процессе разработки. Узнайте, как улучшить качество вашего кода и избежать распространенных ошибок с помощью статического анализатора.
Подкасты
Соер.Клуб: поговорим про компиляторы
Наш разработчик на C++ Юрий Минаев побывал на подкасте "Соер.Клуб: поговорим про компиляторы", где участники поговорили о работе с компиляторами и их устройстве, а также о роли деревьев в представлении программного кода.
Интервью
PVS-Studio: безопасность кода – наша работа
В эксклюзивном интервью на X Федеральном форуме по IT и цифровым технологиям нефтегазовой отрасли SMART OIL & GAS Михаил Гельвих, С++ разработчик, и Екатерина Хренова, руководитель отдела продаж, обсудили важность безопасности кода в современных проектах. Узнайте, как инструменты статического анализа помогают повысить качество и безопасность программного.
Видео
История о том, как мы на конференции съездили
Недавно побывали на трёх топовых конференциях. В этом веселом видео вы увидите, как гости нашего стенда проходили наши программистские испытания.
Время вспомнить constexpr!
В недавнем видео мы поговорили о функции constexpr
в языке программирования C++, объяснили, что такое constexpr
, как его использовать и какие преимущества он может дать разработчикам.
Самая жуткая история из жизни программиста
В этом видео в честь Хэллоуина мы рассказали самую жуткую историю из жизни программиста. Эта история о том, как неожиданные проблемы в коде могут привести к ужасным последствиям.
Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.
Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio по ссылке.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Aleksandra Uvarova. PVS-Studio 7.34: support for Apple Silicon ARM64, .NET 9, taint analysis in Java analyzer, and more.
Написать комментарий