Вышел новый релиз 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++ программиста по неопределённому поведению: часть 10 из 11
-
История C и C++. Часть первая: появление и стандартизация C, C with Classes становится C++
-
Путеводитель C++ программиста по неопределённому поведению: часть 9 из 11
-
Путеводитель C++ программиста по неопределённому поведению: часть 8 из 11
-
Игровое поле экспериментов: какие ошибки могут подстерегать программиста при создании эмулятора
-
Самая красивая ошибка, которую я нашёл с помощью PVS-Studio в 2024 году
-
Путеводитель C++ программиста по неопределённому поведению: часть 7 из 11
Для тех, кто пишет на C#:
-
Как одна строка может положить приложение? Поиск проблем и уязвимостей в ScreenToGif
-
Поймай уязвимость своими руками: пользовательские аннотации C# кода
-
Что нового в Unity 6? Обзор нововведений и ошибок в исходном коде
-
Исходный код на прощание: разбор ошибок в проектах закрывшейся инди-студии
Для тех, кто пишет на Java:
Статьи общей тематики:
-
CodeChecker — контроль качества кода с использованием PVS-Studio
-
От ВАЛЛ-И до Терминатора: баги, принципы работы и фантазии разработчиков
Вебинары
Парсим С++
На вебинаре «Парсим 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.
ссылка на оригинал статьи https://habr.com/ru/articles/867674/
Добавить комментарий