0980_Release_7_20_ru/image1.png


В этом пресс-релизе пробуем новый формат: основная информация кратко изложена в одном разделе. Если интересны детали, есть разделы с более подробным описанием. Выбирайте то, что вам ближе.


Кратко


Security. Покрыли все категории из OWASP Top 10 2021: на каждую есть минимум по одной диагностике. В C# проектах теперь можно искать зависимости с уязвимостями – реализовали SCA (Software Composition Analysis).


Unreal Engine. В Unreal Engine 5.0.3 исправили баг с поиском PVS-Studio: теперь анализ работает без workaround'ов. Ещё мы улучшили анализ UE-проектов: меньше ложных срабатываний, больше хороших.


Кроссплатформенный анализ C и C++ проектов. Доработали утилиты pvs-studio-analyzer и CompilerCommandsAnalyzer: пользоваться ими стало удобнее. Сами утилиты описали в документе.


Интерактив:


  • сделали игру на поиск ошибок в C# коде: поиграть;
  • составили развлекательный тест "Кто ты в мире C++": узнать.

Получить триал и загрузить PVS-Studio 7.20 можно здесь. Чтобы не пропускать пресс-релизы и самые интересные статьи, подписывайтесь на рассылки.


Подробно


Улучшения анализатора


OWASP Top 10 2021: ищите дефекты безопасности из всех категорий.


В релизе 7.20 мы покрыли последнюю категорию из OWASP Top 10 2021 – A06. Теперь с помощью PVS-Studio можно искать дефекты безопасности из всех категорий, перечисленных в OWASP Top 10.


На специальной странице можно посмотреть, какие диагностические правила ищут проблемы из каждой категории.


SCA: проверяйте зависимости C# проектов на уязвимости.


Приложение может быть уязвимо, если использует зависимости c уязвимостями. Чтобы искать "опасные" зависимости, при разработке используют SCA-решения (Software Composition Analysis).


PVS-Studio для C# теперь тоже ищет подобные дефекты безопасности. Анализатор проверяет, из каких компонентов состоит приложение: если находит зависимость с уязвимостью – выдаёт предупреждение.


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


Unreal Engine: больше хороших срабатываний, меньше ложных.


В Unreal Engine 5.0.3 исправили баг с поиском PVS-Studio. Теперь анализировать UE 5 проекты можно без workaround'ов.


Кроме того, PVS-Studio теперь лучше понимает код Unreal Engine проектов. Анализатор выдаёт меньше ложных предупреждений и больше знает о типах, специфичных для движка. Например, об аналогах контейнеров из стандартной библиотеки C++.


Документация об анализе Unreal Engine проектов.


Кроссплатформенный анализ C и C++ проектов: улучшения утилит, новая документации.


Мы улучшили утилиты кроссплатформенного анализа C и C++ проектов: pvs-studio-analyzer и CompilerCommandsAnalyzer. Например, теперь они лучше определяют тип компилятора, который используется в проекте. Если определить его всё же не удалось, можно задать тип вручную (см. флаг '--compiler').


Сценарии использования, флаги запуска и коды возврата описали в новом разделе документации.


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


C, C++:


  • V1086. Call of the 'Foo' function will lead to buffer underflow.
  • V1087. Upper bound of case range is less than its lower bound. This case may be unreachable.
  • V1088. No objects are passed to the 'std::scoped_lock' constructor. No locking will be performed. This can cause concurrency issues.
  • V1089. Waiting on condition variable without predicate. A thread can wait indefinitely or experience a spurious wake up.

C#:


  • V3177. Logical literal belongs to second operator with a higher priority. It is possible literal was intended to belong to '??' operator instead.
  • V5624. OWASP. Use of potentially tainted data in configuration may lead to security issues.
  • V5625. OWASP. Referenced package contains vulnerability.

Разное


Рассылки пресс-релизов и лучших статей. Подпишитесь, чтобы не пропускать новые статьи и пресс-релизы. Выборка статей приходит раз в месяц, информация о релизах – раз в два.


Историю о создании рассылок рассказали в отдельной статье.


Игра: найди ошибку в коде на C#. Теперь игра на внимательность доступна и для C# (раньше была только для C++).


Суть игры:


  • есть 10 фрагментов кода. Все – из реальных проектов;
  • каждый фрагмент содержит ошибку. Есть 60 секунд, чтобы найти её;
  • набираете очки, в конце получаете результат.

0980_Release_7_20_ru/image2.png


Поиграть: версия для C#, версия для C++.


Делитесь с коллегами, чтобы выяснить, кто самый внимательный баг-хантер. ;)


Тест: кто ты из мира C++. Развлекательный тест, который подскажет, кто вы в мире C++. Подойдёт, чтобы отвлечься на 5 минут и немного разгрузить голову.


0980_Release_7_20_ru/image3.png


Пройти можно здесь.


Почитать. Несколько статей, написанных командой PVS-Studio с прошлого релиза:


  • Статьи о том, как делали межмодульный анализ в C++ проектах: часть 1, часть 2.
  • Почему в С++ массивы нужно удалять через delete[]? Ответ здесь.
  • В этой статье ещё раз рассказали о проблеме связанных переменных в data flow анализе C# кода.
  • Статья для тех, кто хочет использовать PVS-Studio, но не находит одобрения со стороны начальства или коллег. Разбираемся с опасениями, ищем решения возможных проблем.

Посмотреть. На TechLead Conf 2022 рассказали о том, как SAST-решения ищут дефекты безопасности: ссылка.


Загрузить PVS-Studio 7.20 можно на этой странице, получить триал – тут.

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