PVS-Studio 7.18: обновления и улучшения

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

0934_Release_7_18_ru/image1.png


Мы выпустили новый релиз PVS-Studio – 7.18. В этой заметке расскажем, как развиваем security-направление, зачем нужна новая система типов в C++ анализаторе, как улучшили анализ кода для embedded-систем и не только.


Находим ещё больше дефектов безопасности: 9 из 10 категорий OWASP Top 10 2021


Мы продолжаем развивать PVS-Studio как SAST-решение. Это позволяет пользователям находить ещё больше потенциальных уязвимостей.


Одно из основных направлений – разработка security-диагностик для поиска дефектов из списка OWASP Top 10 2021. Теперь PVS-Studio покрывает 9 из 10 категорий этого списка. Посмотреть, как диагностики соотносятся с категориями OWASP Top 10, можно здесь.


Непокрытой осталась одна категория – A06:2021. Один из вариантов покрыть её – научить анализатор искать в проектах компоненты с известными уязвимостями. Другими словами – PVS-Studio должен проводить software composition analysis (SCA).


Для начала мы хотим добавить SCA в C# анализатор. Планируем сделать это в одном из будущих релизов.


Новый режим мониторинга компиляции на Windows: ловит все запуски компилятора


Система мониторинга компиляции на Windows нужна, чтобы анализировать проекты на C и C++. Причём сборочная система неважна. Важно только, чтобы PVS-Studio поддерживал компилятор, который используется в проекте.


Однако у системы мониторинга был недостаток: если процесс компилятора быстро завершался, система могла его не отследить. Из-за этого PVS-Studio не анализировал файлы, компиляцию которых не успевал перехватывать.


Чаще всего с проблемой сталкивались разработчики, которые пишут код под embedded-платформы.


Новый режим анализа решает описанную проблему. В нём PVS-Studio перехватывает все запуски компилятора. Быстро компилируется код или нет – неважно.


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


PVS-Studio и Visual Studio Code


С отчётами PVS-Studio можно работать из Visual Studio Code. Для этого нужно:


  • установить плагин Sarif Viewer;
  • преобразовать лог в формат SARIF;
  • загрузить отчёт анализатора.

Подробнее эти шаги мы описали в документации.


Анализ напрямую из Visual Studio Code запускать пока нельзя. Если вас интересует такая возможность – напишите об этом. По фидбеку оценим, насколько функциональность востребована.


Более глубокий анализ C++ кода


Мы обновили систему типов в C++ анализаторе. Теперь PVS-Studio лучше разбирает современный C++: стандартную библиотеку, сложные конструкции, шаблоны. Диагностики стали точнее, а значит, находят больше опасных мест и выдают меньше ложных предупреждений.


Подробнее рассказали об этом в докладе.


Интеграция PVS-Studio с CMake и GitHub Actions


В новых разделах документации мы описали, как можно интегрировать PVS-Studio в GitHub Actions и CMake.


Новые диагностики


C, C++


  • V1079. Parameter of 'std::stop_token' type is not used inside function's body.
  • V1080. Call of 'std::is_constant_evaluated' function always returns the same value.
  • V1081. Argument of abs() function is minimal negative value. Such absolute value can't be represented in two's complement. This leads to undefined behavior.
  • V1082. Function marked as 'noreturn' may return control. This will result in undefined behavior.

C#


  • V5619. OWASP. Possible log injection. Potentially tainted data is written into logs.
  • V5620. OWASP. Possible LDAP injection. Potentially tainted data is used in a search filter.
  • V5621. OWASP. Error message contains potentially sensitive data that may be exposed.

Почитать, посмотреть и попробовать


Почитать


С момента прошлого релиза проверили качество кода нескольких Open Source проектов:


  • Barotrauma (C#);
  • Eto.Forms (C#);
  • Ogre3D (C++);
  • MuditaOS (C++).

Нашли несколько подтверждений тому, почему статический анализ лучше использовать регулярно. Как? Подробно описали здесь, если вкратце – алгоритм примерно такой:


  • разработчики пишут новый код для Open Source проектов;
  • мы анализируем его с помощью PVS-Studio;
  • смотрим отчёты анализатора и находим ошибки, которые пропустили разработчики;
  • пишем об этом.

Некоторые из найденных проблем описали в этих статьях:


  • Как PVS-Studio защищает от поспешных правок кода, пример N3
  • Как PVS-Studio защищает от поспешных правок кода, пример N4

Кроме того, написали статьи про безопасность. В них рассмотрели дефекты, связанные с обработкой XML-файлов, а именно:


  • как уязвимости выглядят в коде;
  • как провести атаку на приложение с уязвимостью;
  • какими будут последствия.

Описали это в двух статьях:


  • Почему моё приложение при открытии SVG-файла отправляет сетевые запросы?
  • Уязвимости из-за обработки XML-файлов: XXE в C# приложениях в теории и на практике

Больше статей – в нашем блоге.


Посмотреть


Мы не только пишем статьи, но и снимаем видео. Новые материалы на нашем YouTube-канале:


  • Using PVS-Studio with JetBrains Rider
  • Mistakes and suspicious code fragments — or how the static analyzer checked .NET 6
  • How to make code reliable and secure [The MISRA standard and PVS-Studio]
  • 10 C# tips for beginners

Кстати, в феврале мы участвовали в подкасте DotNet & More. Там поговорили о статическом анализе, Roslyn, security и не только. Посмотреть запись можно здесь. Если больше нравится слушать, в описании видео на YouTube есть ссылки на аудиозапись.


Попробовать


Нет лицензионного ключа


Если хотите попробовать PVS-Studio, нужно сделать 3 простых шага:


  • запросить триальный ключ;
  • загрузить дистрибутив;
  • проверить проект.

Пройти по шагам поможет эта страница. Не забудьте поделиться впечатлениями. :)


Лицензионный ключ есть


Последнюю версию PVS-Studio можно загрузить здесь.


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. PVS-Studio 7.18: updates and enhancements.

Источник: https://habr.com/ru/company/pvs-studio/blog/660641/


Интересные статьи

Интересные статьи

Сайту PVS-Studio в этом году исполнится 15 лет. Это солидный возраст для любого интернет-ресурса. Далёкий 2006-й в России был признан годом гуманитарных наук. В июне появ...
Microsoft выпустила плановые обновления безопасности, закрывающие 114 уязвимостей, включая 6 уязвимостей в Microsoft Edge и 4 уязвимости в Exchange Server. 19 уязвимостей...
Перфорационные очки (очки с дырочками) – идеальный вариант для тех, кому лень делать гимнастику для глаз. Я почувствовала, что в последнее время понижается острота зрения...
Вышел релиз GitLab 13.5 со сканированием безопасности мобильных приложений, вики-страницами групп, общим реестром пакетов и многими другими классными фичами! Читать дальше &...
Это небольшая история о том, как с помощью PVS-Studio удалось найти ошибку в исходном коде библиотеки, используемой в PVS-Studio. Причём не теоретическую, а фактическую — ошибка проявлялась на ...