Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
PVS-Studio 7.18: обновления и улучшения

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

13 Апр 2022

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

0934_Release_7_18_ru/image1.png

Находим ещё больше дефектов безопасности: 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 проектов:

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

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

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

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

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

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

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

Посмотреть

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

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

Попробовать

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

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

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

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

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

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

Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам