Мы выпустили новый релиз PVS-Studio – 7.18. В этой заметке расскажем, как развиваем security-направление, зачем нужна новая система типов в C++ анализаторе, как улучшили анализ кода для embedded-систем и не только. Мы продолжаем развивать 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 нужна, чтобы анализировать проекты на C и C++. Причём сборочная система неважна. Важно только, чтобы PVS-Studio поддерживал компилятор, который используется в проекте. Однако у системы мониторинга был недостаток: если процесс компилятора быстро завершался, система могла его не отследить. Из-за этого PVS-Studio не анализировал файлы, компиляцию которых не успевал перехватывать.  Чаще всего с проблемой сталкивались разработчики, которые пишут код под embedded-платформы. Новый режим анализа решает описанную проблему. В нём PVS-Studio перехватывает все запуски компилятора. Быстро компилируется код или нет – неважно. Подробнее режим описан в документации. С отчётами PVS-Studio можно работать из Visual Studio Code. Для этого нужно: Подробнее эти шаги мы описали в документации. Анализ напрямую из Visual Studio Code запускать пока нельзя. Если вас интересует такая возможность – напишите об этом. По фидбеку оценим, насколько функциональность востребована. Мы обновили систему типов в C++ анализаторе. Теперь PVS-Studio лучше разбирает современный C++: стандартную библиотеку, сложные конструкции, шаблоны. Диагностики стали точнее, а значит, находят больше опасных мест и выдают меньше ложных предупреждений.  Подробнее рассказали об этом в докладе. В новых разделах документации мы описали, как можно интегрировать PVS-Studio в GitHub Actions и CMake. С момента прошлого релиза проверили качество кода нескольких Open Source проектов: Нашли несколько подтверждений тому, почему статический анализ лучше использовать регулярно. Как? Подробно описали здесь, если вкратце – алгоритм примерно такой: Некоторые из найденных проблем описали в этих статьях: Кроме того, написали статьи про безопасность. В них рассмотрели дефекты, связанные с обработкой XML-файлов, а именно: Описали это в двух статьях: Больше статей – в нашем блоге. Мы не только пишем статьи, но и снимаем видео. Новые материалы на нашем YouTube-канале: Кстати, в феврале мы участвовали в подкасте DotNet & More. Там поговорили о статическом анализе, Roslyn, security и не только. Посмотреть запись можно здесь. Если больше нравится слушать, в описании видео на YouTube есть ссылки на аудиозапись. Нет лицензионного ключа Если хотите попробовать PVS-Studio, нужно сделать 3 простых шага: Пройти по шагам поможет эта страница. Не забудьте поделиться впечатлениями. :) Лицензионный ключ есть Последнюю версию PVS-Studio можно загрузить здесь. Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Sergey Vasiliev. PVS-Studio 7.18: updates and enhancements. Независимый эксперт