PVS-Studio: поиск ошибок в С/С++, С# и Java
1.78K subscribers
1.51K photos
71 videos
2 files
1.49K links
Статический анализатор на страже качества, защищённости (SAST) и безопасности кода.

Сайт: https://pvs-studio.ru/ru/
Download Telegram
Тихий враг или молчаливый союзник: коротко о выравнивании в C++. Часть 2

Казалось бы, тайна выравнивания раскрыта. Вы победили невидимого врага — невыровненный доступ. Память под контролем, но производительность по-прежнему шепчет: "Есть ещё нюансы". Что? Нюансы? Какие? Пришло время посмотреть, что происходит, когда структуры начинают наследовать друг друга. Здесь всё становится... интереснее. Правила игры меняются.

Подробности по ссылке 🔗

#cpp #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
6
В декабре 2025 года вышел обновленный методический документ ЦБ РФ — "Профиль защиты (ПЗ) прикладного ПО автоматизированных систем и приложений кредитных организаций и некредитных финансовых организаций". Этот документ уточнил и расширил многие меры, направленные на разработку безопасных программных продуктов. Например, перечислены требования, предъявляемые к инструментальным средствам статического анализа кода.

Если вы работаете в финтехе или создаете ПО для банков, игнорировать эти изменения нельзя.

На новом вебинаре рассмотрим эти изменения, также причины, по которым полезно изучить ГОСТ Р 56939—2024 и ГОСТ Р 71207—2024 при реализации требований безопасности, изложенных в ПЗ.

📅16 февраля в 16:00

Регистрация доступна по ссылке 🔗

#вебинар #финтех
6
Media is too big
VIEW IN TELEGRAM
Пропустили новый выпуск Разбаговки? Ничего, вот вам ссылочки, чтобы и посмотреть, и послушать:

- Яндекс.Музыка
- Vk video
- YouTube
- наш сайт
- Mave
- Звук

#подкаст #разбаговка
5
Бесконечность — не предел! И нашим вебинарам предела нет! 🔥

Друзья, мы рады анонсировать вам новый продукт — PVS-Studio Atlas!

Это новая платформа контроля качества кода: просмотр, аналитика, разметка, отчёты для сертификационных лабораторий и ФСТЭК.

Мы еще не раз будем говорить об этом. А пока приглашаем вас на вебинар, на котором мы презентуем PVS-Studio Atlas и расскажем про него подробнее!

🗓11 февраля в 16:00

Регистрация доступна по ссылке 🔗

#вебинар #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
743
💻 Java по сей день – один из главных языков для разработки серверных программ. А для серверных программ самое главное – не быть уязвимыми к актуальным на данный момент угрозам.

OWASP Top 10 – это одна из главных классификаций веб уязвимостей. В ней представлены 10 обобщенных категорий, каждая из которых агрегирует набор актуальных атак на веб-приложения. А PVS-Studio – это статический анализатор, и Java является одним из поддерживаемых им языков.

Можем ли мы находить потенциальные уязвимости из перечня OWASP Top 10? Да!

На протяжении большого количества времени мы делали так, чтобы PVS-Studio для языка Java умел находить потенциальные уязвимости в большем количестве категорий OWASP Top 10. На данный момент, диагностики анализатора попадают в 9 из 10 её категорий. Среди таковых, возможные SQL-инъекции, Path-Traversal, XSS-инъекции и многое другое.

Взглянуть одним глазком можно в статье "OWASP Top Ten 2021 через простые примеры на Java. И немного про SAST". Но, всегда лучше попробовать самому. Получить пробную лицензию PVS-Studio для своего Java проекта можно по этой ссылке 🔗

#java #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Друзья, мы готовим серию вебинаров про PVS-Studio ❤️

А именно: вместе пройдем путь от установки анализатора до встраивания в CI/CD и тонких настроек.

На первом вебинаре познакомим с возможностями анализатора, разберём актуальные требования ГОСТ и расскажем, как устроено лицензирование PVS-Studio.

🗓19 февраля в 14:00

Регистрация по ссылке 🔗

#вебинар #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
92
Ни для кого не новость, что цена поздно обнаруженной уязвимости в разработке очень высока. Но что нужно сделать, чтобы избежать такой ситуации? В статье обсудим, что такое политика нулевой терпимости и то, как статический анализ и ASOC помогут её достичь.

Переходите по ссылке 🔗

#статья #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Мы возвращаемся! 🔥

С новыми силами мы возобновляем митап "Сплошные плюсы. Клуб С++ разработчиков"!

Что вас ждет:
- доклад "Тихий враг или молчаливый союзник: Коротко о выравнивании в C++"
- доклад "Разработка решения для расчета метрик графа в Single Node"
- увлекательные квизы
- эксклюзивный мерч
- нетворкинг и живое общение

📅 Встречаемся 19 февраля в 18:30
📍Москва, кампус ЦУ, ул. Гашека, д.7 стр. 1.

Регистрация и подробности по ссылке 🔗

#митап #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
7
На нем написан Docker, Kubernetes, Gitea и многие другие проекты самых разных масштабов. Наверное, вы догадались, что речь идёт о Go. Мы никогда не писали об ошибке на Golang-проектах, но настало время это исправить, ведь скоро выйдет анализатор PVS-Studio для Go!

Все подробности по ссылке 🔥

#статья #go
Please open Telegram to view this post
VIEW IN TELEGRAM
641
Нас трудно остановить! Да и не можем мы вас оставить без полезных вебинаров 😉

Встречаемся 18 февраля в 16:00 на бонусном вебинаре "Системы с конструктивной информационной безопасностью".

В конце 2025 года вступил в силу национальный стандарт «ГОСТ Р 72118 Защита информации. Системы с конструктивной информационной безопасностью. Методология разработки». На вебинаре мы разберемся, в чем сходство и различие таких систем с безопасным ПО, как соотносятся создание систем с КИБ и разработка безопасного ПО, чем новый стандарт полезен в работе специалистов по ИБ различного профиля.

Приглашенный эксперт: Екатерина Рудина, аналитик Департамента перспективных технологий "Лаборатории Касперского"

Регистрация доступна по ссылке 🔗

#вебинар
711
Спешим поделиться интересной ошибкой, которую нашел наш анализатор. В примере ошибка из проекта OpenIDE:

public final class UsageType {
....
public static final UsageType
DELEGATE_TO_ANOTHER_INSTANCE_PARAMETERS_CHANGED = new UsageType(
UsageViewBundle.messagePointer(
"usage.type.delegate.to.another.instance.method.parameters.changed"
)
);

private static final Logger LOG = Logger.getInstance(UsageType.class);

public UsageType(@NotNull Supplier<....> nameComputable) {
myNameComputable = nameComputable;
if (ApplicationManager.getApplication().isUnitTestMode()) {
String usageTypeString = myNameComputable.get();
if (usageTypeString.indexOf('{') != -1) {
LOG.error(....);
}
}
}
....
}


Срабатывание анализатора PVS-Studio: V6050 Class initialization cycle is present. Initialization of 'DELEGATE_TO_ANOTHER_INSTANCE_PARAMETERS_CHANGED' appears before the initialization of 'LOG'. UsageType.java 46

Анализатор говорит, что мы имеем дело с циклической зависимостью при инициализации статических полей. Снова не самый очевидный момент, связанный с нюансами языка Java.
Для инициализации поля DELEGATE_TO_ANOTHER_INSTANCE_PARAMETERS_CHANGED используется конструктор. А в нём мы обращаемся к логгеру LOG.

Всё дело в том, что поля инициализируются в порядке их объявления. Как вы можете видеть, DELEGATE_TO_ANOTHER_INSTANCE_PARAMETERS_CHANGED располагается выше LOG, т.е. инициализируется раньше. Как следствие, LOG на момент исполнения конструктора будет равен null, и при обращении к нему мы столкнёмся с NPE.

Исправление, как и в большинстве случаев выше, будет донельзя простым. Нужно просто разместить объявление LOG выше, чем DELEGATE_TO_ANOTHER_INSTANCE_PARAMETERS_CHANGED.

Не совершай такую ошибку в своем проекте! А узнать о других багах из проекта можно по этой ссылке 🔗

#java #programming #ошибка
Please open Telegram to view this post
VIEW IN TELEGRAM
53
Что внутри у GameDev-команд? Разбираем инструменты на вебинаре 🎮

Производительность в играх — это не просто "приятный бонус", а база. Если игра тормозит, никакой геймплей её не спасет. 26 февраля вместе с экспертами из Forgotten Empires и Playrix заглянем "под капот" разработки и обсудим профилирование.

В программе:

Сергей Кушниренко (Forgotten Empires): Инструментальное профилирование видеоигр
Андрей Зенкович (Playrix): Инструменты профилирования в геймдеве и кейсы использования
Александра Уварова (PVS-Studio): Превратили PVS-Studio в город. Покажем, как превратить скучные строки кода в настоящий город и прогуляться по нему.

📅26 февраля в 15:00
Регистрация доступна по ссылке 🔗

#вебинар #gamedev