PVS-Studio 7.39: OWASP Top Ten 2021, улучшения в плагине для Visual Studio Code, расширение поддержки MISRA и не только

Вышел новый релиз PVS-Studio — 7.39. Обо всех нововведениях в нашем продукте рассказываем здесь.

Покрытие OWASP Top Ten 2021 Java анализатором

В новой версии PVS-Studio Java анализатор пополнился диагностическими правилами из классификации OWASP Top Ten 2021. На момент релиза 7.39 анализатор для Java покрывает 9 из 10 её категорий. Это является частью большой работы по развитию Java анализатора как SAST-решения.

Ознакомиться с тем, как диагностические правила C/C++, C# и Java анализаторов соотносятся к категориями OWASP Top Ten 2021, можно здесь.

Запуск анализа в режиме мониторинга компиляции в плагине для Visual Studio Code

В плагине PVS-Studio для среды разработки Visual Studio Code добавлена возможность запуска анализа в режиме мониторинга компиляции на операционной системе Windows.

Система мониторинга компиляции (PVS-Studio Compiler Monitoring, CLMonitoring) предназначена для «бесшовной» интеграции статического анализа PVS-Studio в любую сборочную систему на ОС семейства Windows. Эта сборочная система должна использовать для компиляции файлов один из препроцессоров, поддерживаемых command-line анализатором PVS-Studio.exe (Visual C++, GCC, Clang, Keil MDK ARM Compiler 5/6, IAR C/C++ Compiler for ARM).

Подробнее про режим мониторинга компиляции в плагине для VS Code можно прочитать в нашей документации.

В будущих релизах мы планируем также поддержать в Visual Studio Code трассировку сборки на операционных системах семейства Linux.

Поддержка генерации отчёта MISRA Compliance для новых версий стандарта MISRA

MISRA Compliance — это стандарт, который позволяет понять, соответствует ли проект стандарту MISRA C и/или MISRA C++ с учётом всех отклонений и рекатегоризаций. И в новом релизе PVS-Studio была добавлена поддержка генерации отчёта MISRA Compliance с учётом новых поддерживаемых версий MISRA.

Чтобы сгенерировать отчёт, нужно воспользоваться утилитой PlogConverter.exe (Windows) или plog-converter (Linux, macOS). Сам отчёт представляет собой HTML-страницу, которая удобно подходит для печати. Вот пример отчёта, когда проект соответствует MISRA C 2012:

Подробнее можно ознакомиться в документации.

Также в рамках C/C++ анализатора продолжаются работы по покрытию стандарта MISRA C 2023. Завершить их планируется к концу этого года. Ознакомиться с тем, как диагностические правила PVS-Studio соотносятся с правилами стандартов MISRA С и MISRA C++, можно здесь.

Поддержан анализ проектов на основе сборочной системы MSBuild, использующих формат решений SLNF

Начиная с этой версии, анализатор PVS-Studio для C# может анализировать не только полные решения в формате .sln, но и их облегчённые версии — файлы с расширением .slnf.

Solution Filter файлы (.slnf) позволяют работать только с выбранными проектами внутри большого решения, что ускоряет сборку и упрощает работу с частями кода.

Механизм перезаписи более приоритетных настроек для файлов конфигурации диагностик .pvsconfig

.pvsconfig — это файл конфигурации, служащий для отображения и фильтрации сообщений анализатора. Также в нём можно задать дополнительные настройки анализа.

В этом релизе добавлена возможность перезаписи настроек в файлах .pvsconfig с более высоким приоритетом из файлов .pvsconfig с менее высоким приоритетом.

Подробнее об этом можно прочитать в нашей документации.

Breaking changes

Данные изменения ломают обратную совместимость с предыдущими версиями анализатора. В связи с этим вам может потребоваться изменить способ использования анализатора.

В Java анализаторе изменены сообщения некоторых диагностических правил. Возможно появление в отчёте анализатора ранее подавленных сообщений.

Новые диагностические правилаC и C++:

V2652. MISRA. Argument of an integer constant macro should have an appropriate form.

V2653. MISRA. The small integer variants of the minimum-width integer constant macros should not be used.

V2654. MISRA. Initializer list should not contain persistent side effects.

V2655. MISRA. The right operand of a logical ‘&&’ or ‘||’ operator should not contain persistent side effects.

V2656. MISRA. The Standard Library function memcmp should not be used to compare null terminated strings.

V2657. MISRA. Obsolescent language features should not be used.

V2658. MISRA. Dead code should not be used in a project.

V2659. MISRA. Switch statements should be well-formed.

V2660. MISRA. A function declared with a _Noreturn specifier should not return to its caller.

V2661. MISRA. MISRA. A ‘for’ loop should be well-formed.

V2662. MISRA. Any value passed to a function from should be representable as an unsigned character or be the value EOF.

C#:

V3226. Potential resource leak. The disposing method will not be called if an exception occurs in the ‘try’ block. Consider calling it in the ‘finally’ block.

V3227. The precedence of the arithmetic operator is higher than that of the shift operator. Consider using parentheses in the expression.

V5631. OWASP. Use of externally-controlled format string. Potentially tainted data is used as a format string.

Java:

V5335. OWASP. Potential XXE vulnerability. Insecure XML parser is used to process potentially tainted data.

V5336. OWASP. Potential XEE vulnerability. Insecure XML parser is used to process potentially tainted data.

СтатьиДля тех, кто пишет на C/C++:

CMake: герой, который споткнулся о 12 багов;

Что делать, если ваш слон думает, что он баг?;

Боремся с хедкрабами в исходниках Source SDK;

Коробка багов (эмулируется).

Для тех, кто пишет на C#:

Копаемся в открытом исходном коде Unity VR игр. Часть 1: RocketMan;

Копаемся в открытом исходном коде Unity VR игр. Часть 2: NorthStar;

Вопросов нет? Или почему отсутствие ‘?’ может навредить проекту.

Для тех, кто пишет на Java:

Безопасность приложений: инструменты и практики для Java-разработчиков;

Как мы Best Practices в Java анализатор внедряли;

Нововведения Java 25;

Баги носят данные. Проверка Apache NiFi;

OWASP Top Ten 2021 через простые примеры на Java. И немного про SAST;

Цепочка гаджетов в Java и как небезопасная десериализация приводит к RCE?

Статьи общей направленности:

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 1: подготовка и начало работы;

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 2: первый запуск и настройка;

Как получить и использовать бесплатную лицензию PVS-Studio на практике. Часть 3: работа с отчётом и разбор срабатываний;

Команда PVS-Studio просит присылать примеры ошибок, связанные с использованием вайб-кодинга;

Статический анализ в open source проектах с помощью PVS-Studio;

Управление результатами статического анализа;

Компетенция: теория разработки безопасного ПО (РБПО).

Вебинары:Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939-2024

Новый ГОСТ Р 56939-2024 описывает 25 процессов для создания безопасного программного обеспечения (РБПО). Каждый из них можно представить в виде списка действий, направленных на создание более зрелого цикла разработки ПО в компании.

Учебный Центр «МАСКОМ» и PVS-Studio организуют цикл вебинаров, посвящённых разбору этих 25 процессов.

Вебинары проходят каждую неделю, регистрация доступна по ссылке. Присоединяйтесь к путешествию вокруг РБПО вместе с нами каждую среду!

Оптимизация игр

На вебинаре «Оптимизация игр» вместе с экспертами из игровых студий Forgotten Empires и Playrix мы обсудили практические советы по улучшению проектов. Поговорили о тонкостях работы с памятью, кастомных аллокаторах, а также способах ускорить запуск мобильных игр.

Посмотреть можно по ссылке.

Подкасты:Процесс сертификации в системе ФСТЭК России — взгляд со стороны участников | linkmeup

Сегодня многие российские разработчики задаются вопросом, как получить сертификат ФСТЭК. Вместе с Никитой Молчаном из лаборатории Атомзащитаинформ, Даниилом Скалацким из Angie Software и Андреем Карповым из PVS-Studio выяснили, в чём разница между лицензированием, аттестацией и сертификацией. Зачем, кому и для чего это нужно, как проводится экспертиза и, главное, что ждать при подаче документов на свою разработку во ФСТЭК.

Посмотреть можно по ссылке.

Разбаговка. Пилотный выпуск

Вышел пилотный выпуск подкаста «Разбаговка» от PVS-Studio. Знакомим вас с ведущими и рассказываем о том, как работает синергия маркетинга и DevRel.

Посмотреть можно по ссылке.

Разбаговка #2. Фёдор Сазонов: зачем нужна новая IDE на IntelliJ Platform?

В новом выпуске подкаста поговорили с CEO OpenIDE, Фёдором Сазоновым. Обсудили язык Java, устройство современных инструментов разработки и то, что на самом деле важно, когда создаёшь среду для других программистов.

Посмотреть можно по ссылке.

МитапыАнонс митапа «Карты, деньги, JVM»

На митапе обсудим внутренности JVM и компилятора. Разберём, как JVM оптимизирует динамические вызовы, чем MethodHandle лучше рефлексии и как компилятор обрабатывает код — от фронтенда до практического применения. Вы услышите два доклада от разработчиков Java анализатора PVS-Studio.

С подробностями можно ознакомиться по ссылке.

Хотите проверить свой проект с помощью PVS-Studio? Начните с этой страницы.

Если вы хотите получать новости о новых релизах, можете подписаться на рассылку от команды PVS-Studio.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Vladislav Bogdanov. PVS-Studio 7.39: OWASP Top Ten 2021, enhanced Visual Studio Code plugin, extended MISRA Compliance support, and more.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии