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.

Материал опубликован при поддержке сайта habr.com
Комментарии

    Актуальные новости по теме "Array"