Вышел новый релиз PVS-Studio — 8.01. В нём: расширение поддержки OWASP, поддержка новых версий Java и Go и многое другое.

OWASP Benchmark for Java
В этом релизе мы проверили соответствие SAST-правил анализатора Java бенчмарку OWASP Benchmark for Java.
На реальных проектах довольно трудно оценить качество диагностических правил, направленных на поиск дефектов безопасности. Мы не знаем заранее, сколько в коде уязвимостей, а значит, не понимаем, какие дефекты были пропущены.
Использование бенчмарка позволило нам закрыть пробелы в SAST-части анализатора Java, сделав его более эффективным в обнаружении дефектов безопасности.
Новые версии Java и Go
В PVS-Studio 8.01 мы добавили поддержку новых версий платформ: анализатор Java теперь работает с JDK 25, а анализатор Go — с версией 1.27.
Это позволяет проверять проекты, которые используют актуальные версии языков и их стандартных библиотек, и не откладывать обновление из-за ограничений инструментов анализа.
JDK 25 при этом относится к LTS-выпускам, поэтому его поддержка особенно важна для команд, которые переходят на новую долгосрочную версию.
Отчёты с конфигурацией анализа
Утилита PVS-Studio_Cmd.exe для проверки MSBuild-проектов теперь сохраняет в JSON-отчёт конфигурации проектов, которые использовались при анализе. Это упрощает исправление срабатываний, возникающих на некоторых платформах.
Кроме того, в отчёте fullhtml, который генерирует утилита PlogConverter.exe, срабатывания теперь группируются по конфигурации анализа.
Расширения конфигурации
В этой версии мы расширили возможности настройки анализаторов и утилит, чтобы их можно было точнее подстроить под особенности проекта и окружения.
В анализаторе JavaScript и TypeScript появилась настройка max-old-space-size, доступная в файле конфигурации pvs-settings.toml и в утилите командной строки pvs-js.exe. Она позволяет задать объём памяти, который использует Node.js-сервер анализатора.
В утилите PVS-Studio_Cmd.exe пути к кэшам зависимостей теперь можно задавать относительно файла конфигурации .pvsconfig.
В анализаторе C и C++ расширились возможности настройки диагностических правил. Например, можно вручную указать типы, которые анализатор будет считать дешёвыми для копирования, и настроить поведение анализатора в зависимости от целевой платформы.
Для диагностического правила V719 теперь можно настроить игнорирование default-ветки и небольших enum, задать конкретные игнорируемые значения и допустимое количество игнорируемых констант.
Расширенная фильтрация срабатываний
В утилите для конвертации и фильтрации отчётов Plog Converter появилась возможность фильтрации срабатываний по номерам CWE и идентификаторам SAST. Это может быть удобно для отображения критических ошибок по ГОСТ Р 71207—2024. Срабатывания, которые по этому стандарту классифицируются как критические ошибки, имеют идентификатор SAST с приставкой SEC.
Breaking Change
В этом релизе произошло изменение, которое ломает обратную совместимость с предыдущими версиями анализатора. В связи с этим вам может потребоваться изменить способ его использования.
В установщике PVS-Studio для Windows был добавлен код возврата 100, который выдается при неудачной установке плагинов для Visual Studio. Также был добавлен флаг skipVSIXInstallErrorCode для отключения ненулевого кода возврата в таком случае.
Новые диагностические правила
Java
V5341. OWASP. A cookie was created without enabling the ‘Secure’ attribute. This may lead to the exposure of sensitive data.
V5342. OWASP. Potentially tainted data is stored in an object that can be used as a source of trusted data.
V5343. OWASP. A cryptographically weak random number is used for sensitive data.
Статьи
А вот и традиционная подборка публикаций из нашего блога! За прошедшие два месяца мы выпустили статьи, в которых искали ошибки в популярных C# ORM RepoDB и SqlSugar, проверяли исходники VSCode, разбирали нововведения Java 27, находили баги в моде Create и многое другое. Полный список представлен ниже.
C и C++
C#
Java
JavaScript и TypeScript
Go
Security
Другое
Вебинары
Качество и безопасность в эпоху GenAI
Мы продолжаем цикл вебинаров, посвящённый использованию генеративного искусственного интеллекта в разработке.
Завышенное доверие к генеративному искусственному интеллекту (GenAI) усиливает проблемы владения кодом, безопасностью, bus-фактором, обучения персонала и так далее. Вместе с экспертами из разных компаний посмотрим на эти проблемы с разных сторон и разберём, как их можно минимизировать. GenAI теперь с нами, и нет смысла отказываться от его возможностей. Но важно видеть в нём инженерный инструмент — иногда опасный, — а не волшебного помощника.
Агенты пишут код, а кто его проверяет?
AI-агенты постепенно меняют привычный процесс разработки: человек всё меньше пишет код напрямую и всё больше выступает в роли оркестратора, который ставит задачи, направляет агентов, проверяет результат и выстраивает вокруг них целую экосистему инструментов.
В первой части вебинара разобрали, как выглядит работа с агентами в продакшене уже сегодня: от планирования и итераций до ревью, файлов-памяти и автоматизации проверки кода. Посмотрели, куда развивается агентная экосистема и почему агенты постепенно выходят за пределы IDE — в мессенджеры и другие среды, где они могут работать практически 24/7. Отдельно поговорили о главном компромиссе этой эволюции: возможностях агентов и безопасности их работы.
Во второй части разобрали, как контролировать результат такой разработки. Несмотря на весь шум вокруг AI, задача остаётся знакомой: нужно проверять код, независимо от того, кто его написал — человек или агент. Посмотрели, как тестирование, статический анализ и другие QA-инструменты помогают находить проблемы и обеспечивать качество и безопасность без необходимости изобретать новый подход к контролю.
В конце поговорили о том, как адаптировать привычные инженерные практики к новой реальности: использовать возможности AI-агентов на полную, но не забывать главное правило: не доверяй, проверяй.
Стратегия без иллюзий: как превращать цели в результаты
Большие цели редко достигаются благодаря одному удачному рывку. Их определяют понятная стратегия, системный подход и ежедневные действия. Но как сделать, чтобы планы не оставались в презентациях, а действительно влияли на работу и жизнь? Именно это мы и разберём на вебинаре.
Александр Швец (CTO Авито Товары, ex-CTO Яндекс Еда) расскажет, как пройти путь “От мечты — к миссии, от миссии — к стратегии, от стратегии — к жизни”. Вы узнаете, как создавать стратегию, которая работает не только на бумаге, почему повседневные действия определяют итоговый результат и что делает любые амбиции достижимыми, при этом наполняя смыслом дорогу к ним.
Константин Волоховский (руководитель направления разработки Java в PVS-Studio) расскажет про “Цели на год, или как действовать системно”. Он разберёт методику постановки годовых целей Павла Комаровского, расскажет, как формулировать цели, отслеживать прогресс, а главное, поделится собственным опытом её применения.
Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики!
В Go разработчики ошибаются так же, как и разработчики в любом другом языке: опечатки, дубликаты, нерабочие условия проверок и тому подобное.
Но почему? Ведь многие используют тот же go vet который прекрасно находит всё это... ведь так, да?
На вебинаре разобрали частые и типовые ошибки Go разработчиков в известных проектах, а также узнали, какие ошибки не могут найти стандартные инструменты и подходы и что с этим делать.
Как разговорить человека и договориться
Small talk — это не просто короткая беседа, а способ устанавливать контакт, создавать доверие и открывать новые возможности для общения. На вебинаре разберём, как легко начинать и поддерживать такие разговоры, а также как использовать small talk в рабочих ситуациях: от нетворкинга и новых знакомств до сложных обсуждений, переговоров и договорённостей.
Юлия Лантратова (специалист по развитию персонала в PVS-Studio) в своём докладе “Вам предстоят сложные переговоры — с чего начать?” расскажет о том, что small talk может быть не просто приятным началом разговора, а инструментом, который помогает наладить контакт перед сложной коммуникацией. Разберём, как использовать его в рабочих ситуациях: от договорённостей о задачах до командных обсуждений и переговоров — и как понять, когда контакт уже установлен и можно переходить к делу.
Дарья Мулык (бизнес-тренер по коммуникации и публичным выступлениям, коуч для руководителей и команд) в своём докладе “SMALL talk: искусство короткой беседы” разберёт три ключевых элемента успешного small talk: как легко начать разговор, как поддерживать и развивать беседу, а также как красиво её завершить, оставив приятное впечатление. Вы получите простые инструменты, которые помогут чувствовать себя увереннее на конференциях, деловых встречах, нетворкинге и в любых компаниях.
Автоматизация контроля качества и безопасности ПО
Вебинар посвящен тому, как встроить практики качества и безопасности в ежедневный цикл разработки. Эксперты PVS-Studio и Apsafe рассказали, почему статический анализ и автоматизированные проверки стали доступными инструментами для любой команды и как регулярный контроль безопасности помогает успевать за современным ритмом релизов без перестройки CI/CD.
Валерий Филатов (Developer Advocate в PVS-Studio) рассказал в своем докладе “Зачем платить за то, что уже работает?” о том, что когда-то код-ревью, автотесты и CI/CD казались лишней бюрократией — дорогой и доступной немногим. Со временем выяснилось, что без них инциденты обходятся дороже, чем сама практика, а инструменты подтянулись настолько, что теперь это может себе позволить любая команда. На примере статического анализа посмотрели, почему Best Practices давно перестали быть недостижимым идеалом.
Виктор Тимашков (руководитель группы Apsafe) в своем докладе “Безопасность приложения — это не разовая проверка, а ритм релиза” объяснил, что разовые пентесты и квартальные аудиты не успевают за поставкой: код уходит в прод чаще, чем его успевают “проверить снаружи”. Разобрали, почему контроль должен повторяться вместе с релизом, что меняется в процессе разработки и как облачный контур (на примере Apsafe) встраивает проверки в этот ритм без перестройки CI/CD.
Применение ЗОСРВ “Нейтрино” и PVS-Studio для разработки ПО согласно требованиям МЭК 61508
На вебинаре разобрали подходы к разработке функционально безопасного ПО для ЗОСРВ “Нейтрино” в соответствии с требованиями МЭК 61508 и показали, какую роль в этом процессе играют инструменты статического анализа.
В первой части поговорили о принципах разработки ПО для “Нейтрино”, рассмотрели требования МЭК 61508 к инструментальным средствам и продемонстрировали работу PVS-Studio в комплекте разработчика “Нейтрино”.
Во второй части подробнее остановились на статическом анализе как инструменте для обеспечения безопасности. Разобрали требования МЭК 61508 и МЭК 26262, их связь со стандартами MISRA и рассмотрели, как PVS-Studio помогает контролировать качество и соответствие кода требованиям стандартов.
В завершение рассказали о новой мажорной версии PVS-Studio — 8.0. Рассмотрели ключевые изменения и нововведения релиза и обозначили дальнейшие направления развития инструмента, включая функциональную безопасность.
Каждая идиома когда-то была проблемой
Красивый и надёжный код почти никогда не рождается с первого раза. Сначала появляются ошибки, а уже потом идиомы, которые помогают их избегать. На вебинаре рассмотрели реальные фрагменты кода из открытых проектов на языке C++, нашли в них проблемные места с помощью статического анализа и разобрали более 10 идиом и паттернов, которые позволят защитить ваш код.
Можно ли быть тимлидом, но не быть экспертом? Или тренеры не играют
Должен ли тимлид быть лучшим разработчиком в команде? На этом вебинаре поговорили о том, в чём на самом деле заключается ценность тимлида, можно ли эффективно руководить командой, не являясь техническим экспертом, и как решать проблемы, в которых вы сами не разбираетесь.
Инна Пристягина (руководитель развития персонала в PVS-Studio) рассказала о практиках хорошего тимлида, но плохого тех.эксперта. Разбрала, почему неумение лично выполнять задачи команды — не слабость руководителя, а вполне осознанная и эффективная модель работы.
Александра Бутузова (TeamLead кросс-функциональной команды в F.Doc) разобрала, как решать проблемы как тимлид. Ведь лидеру регулярно приходится сталкиваться с задачами и ситуациями, в которых он не является экспертом. Как действовать в таких случаях и в чём заключается истинная ценность работы руководителя — обсудили на вебинаре.
Go vet не поможет... Как сделать свой анализатор кода для Go?
Статический анализатор — это полезный инструмент, и Go разработчики знают это не понаслышке благодаря go vet. Но что, если его возможностей не хватает? Искать новый инструмент? Или сделать... свой?!
В докладе разобрали встроенные в Go инструменты и возможности для разбора кода. Узнали, что лежит под капотом статического анализа, что такое семантическая модель, и построили синтаксическое дерево.
А нужно это всё для того, чтобы в итоге написать собственный анализатор, который будет искать ошибки под ваш конкретный проект.
Завершение
Если вы хотите получать новости о новых релизах PVS-Studio, можете подписаться на нашу рассылку.
А если вы ещё не проверяли свой проект с помощью PVS-Studio, начните с пробной лицензии.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Valerii Filatov. PVS-Studio 8.01: OWASP Benchmark, JDK 25 and Go 1.27 support, and much more.

4 часов назад
2



English (US) ·
Russian (RU) ·