Обновить
64K+
194,33
Рейтинг
93 332
Подписчики
Сначала показывать

РБПО по ГОСТ Р 56939—2024: вебинар №08 из 30 – Формирование и поддержание в актуальном состоянии правил кодирования

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.8. – "Формирование и поддержание в актуальном состоянии правил кодирования". На YouTube. Слайды.

Цели восьмого процесса по ГОСТ Р 56939—2024:

Обеспечение эффективной и единообразной организации оформления и использования исходного кода в соответствии с предъявляемыми к ПО требованиями.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
0
Комментарии0

ИИ что? Проверяем Semantic Kernel

Проекты, связанные с интеграцией искусственного интеллекта, всё чаще становятся частью повседневной разработки. Один из таких проектов — Semantic Kernel. Он представляет собой SDK для построения AI-агентов и оркестрации LLM-сценариев и активно развивается компанией Microsoft.

Однако под капотом даже самых современных решений скрывается вполне обычный C# код со всеми присущими ему проблемами. Поэтому мы проверили проект и написали статью о самых интересных ошибках в коде Semantic Kernel.

Теги:
+3
Комментарии0

Тема неопределённого поведения (UB) в языке C++ освещается и обсуждается многие годы, но это не значит, что она исчерпала себя. Это плата, которую программисты отдают за эффективные оптимизации кода, такие как удаление ряда проверок.

C++ - опасный инструмент, и не помешает лишний раз напомнить, как правильно держать его в руках. Причём с приходом инструментов вайб-кодинга ситуация, скорее всего, даже ухудшится, так как станет ещё сложнее удерживать неопределённое поведение под контролем. В докладе обсудили эту тему, заглянув в будущее.

Полезные ссылки из доклада:

Примечание. Был задан вопрос про безопасные компиляторы (ГОСТ Р 71206—2024). Подробнее с этой темой можно познакомиться здесь: Использование безопасной системы сборки программного обеспечения

Сделайте свой проект чистым с PVS-Studio. Месяц бесплатного использования по промокоду.

Теги:
0
Комментарии1

РБПО по ГОСТ Р 56939—2024: вебинар №07 из 30 – Моделирование угроз и разработка описания поверхности атаки

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.7. – "Моделирование угроз и разработка описания поверхности атаки". На YouTube.  Слайды.

Цели седьмого процесса по ГОСТ Р 56939—2024:

5.7.1.1 Создание условий для снижения количества недостатков, связанных с особенностями реализации архитектуры ПО и логики его функционирования, выработка мер по нейтрализации угроз безопасности, связанных с особенностями реализации архитектуры ПО.

5.7.1.2 Уточнение модели угроз и описания поверхности атаки по результатам разработки кода и его изменений.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
0
Комментарии0

РБПО по ГОСТ Р 56939—2024: вебинар №06 из 30 – Разработка, уточнение и анализ архитектуры программного обеспечения

Прошёлся сегодня по использованию вайб-кодинга без соответствующих мер контроля результата – Ревью вайб-кода с гнильцой, который притворяется оптимизированным С++ кодом. А теперь продолжим тему, как создавать качественные, надёжные и безопасные приложения. Это всё, кстати, актуально и для веб-кодинга, но, к сожалению, пока мало кто это осознаёт :(

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.6. – "Разработка, уточнение и анализ архитектуры программного обеспечения". Слайды.

Цели шестого процесса по ГОСТ Р 56939—2024:

5.6.1.1 Создание условий для снижения количества возможных недостатков при разработке архитектуры ПО.

5.6.1.2 Уточнение архитектуры ПО в процессе разработки кода.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
0
Комментарии0

Тимлид: ожидания, реальность и внутренние вопросы

Быть тимлидом — это не только про процессы и задачи, но и про людей, ожидания и собственные сомнения.

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

Посмотреть вебинар можно и на этих площадках:

Следите за анонсами следующих вебинаров в нашем канале!

Теги:
0
Комментарии0

РБПО по ГОСТ Р 56939—2024: вебинар №05 из 30 – Управление недостатками и запросами на изменение программного обеспечения

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.5. – "Управление недостатками и запросами на изменение программного обеспечения". Слайды.

Цели пятого процесса по ГОСТ Р 56939—2024:

5.5.1.1 Обеспечение управления недостатками ПО.

5.5.1.2 Обеспечение управления запросами на изменение ПО.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
0
Комментарии0

Как устроен компилятор?

Мы каждый день пишем код, но часто воспринимаем компилятор как "чёрный ящик". Сегодня приоткроем завесу тайны над работой компилятора, расскажем о его жизненном цикле и объясним, на каком этапе в игру вступают деревья.

Под капотом скрывается целый конвейер, который включает в себя построение дерева, оптимизацию и генерацию кода. Мы разобрали все этапы на конкретных примерах и написали статью для тех, кто хочет понять, как работает компилятор.

Теги:
+4
Комментарии0

Зачем тестировщику нужна безопасность? Обсудили на прошедшем вебинаре!

Вместе с Семеном Ремезовым, Senior QA в компании “Гринатом”, разобрали, как мануальному тестировщику начать работать с безопасностью без узкой специализации в ИБ:

  • какие базовые навыки нужны

  • как находить уязвимости на практике

  • что делать с найденными проблемами

  • как повысить свою ценность на рынке

Также обсудили, как стандарты и ГОСТы влияют на вашу работу (даже если вы этого не замечаете) и к чему стоит готовиться дальше.

Посмотреть можно ещё тут:
- Наш сайт
- Rutube
- YouTube

Теги:
0
Комментарии0

РБПО по ГОСТ Р 56939—2024: вебинар №04 из 30 – Управление конфигурацией программного обеспечения

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.4. – "Управление конфигурацией программного обеспечения". Слайды.

Цели четвёртого процесса по ГОСТ Р 56939—2024:

5.4.1.1 Осуществление уникальной идентификации ПО, документации на ПО, других элементов, подлежащих отслеживанию в рамках управления конфигурацией ПО (элементов конфигурации).

5.4.1.2 Контроль реализации изменений ПО, документации на ПО, других элементов, подлежащих отслеживанию в рамках управления конфигурацией ПО (элементов конфигурации).

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

P.S. При разработке регламента идентификации ПО (версий ПО, модулей ПО) можно оттолкнуться от ГОСТ 19.103—77 "Единая система программной документации. Обозначение программ и программных документов".

Теги:
0
Комментарии0

РБПО по ГОСТ Р 56939—2024: вебинар №03 из 30 – Формирование и предъявление требований безопасности к программному обеспечению

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем сегодня вашему вниманию вебинар цикла, посвящённый процессу, описанному в разделе 5.3. – "Формирование и предъявление требований безопасности к программному обеспечению". Слайды.

Цели третьего процесса по ГОСТ Р 56939—2024 (п. 5.3.1.1):

Обеспечение безопасности ПО посредством предъявления к нему требований и управления требованиями в процессе изменения (разработки) ПО.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
0
Комментарии0

РБПО по ГОСТ Р 56939—2024: вебинар №02 из 30 – Обучение сотрудников

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем вашему вниманию сегодня вебинар цикла, посвящённый процессу, описанному в разделе 5.2. – "Обучение сотрудников". Слайды.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Я буду публиковать по два вебинара в неделю, чтобы было время знакомиться с ними.

Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Поскольку рассматриваем процесс обучения, хочется напомнить, что учебный центр "Маском" предлагает ряд курсов по тематике РБПО:

  1. М БРПО-Спец. Специалист по процессам разработки безопасного программного обеспечения. 200 часов / 20 дней.

  2. М БРПО-01. Внедрение процессов разработки безопасного программного обеспечения в организации (для руководителей и ответственных). 40 часов/4 дня.

  3. М БРПО-02. Внедрение процессов разработки безопасного программного обеспечения для специалистов по информационной безопасности. 50 часов/5 дней.

  4. М БРПО-03. Сертификационные испытания с учётом требований по разработке безопасного программного обеспечения для экспертов органов по сертификации (испытательных лабораторий) различных систем сертификации средств защиты информации. 140 часов/14 дней.

  5. М БРПО-04. Формирование практических навыков по разработке безопасного программного обеспечения для разработчиков и программистов. 140 часов/14 дней.

  6. М БРПО-05. Методология подготовки предприятия к сертификации процессов безопасной разработки программного обеспечения средств защиты информации в соответствии с требованиями ФСТЭК России. 30 часов/3 дня.

Вы узнаете много полезной информации из вебинаров, которые я здесь публикую. Однако есть смысл подумать и о прохождении обучающих курсов.

  • Вебинары – это теория. На курсах вы получите практические навыки, знакомясь с продуктами лидеров рынка РФ по РБПО.

  • УЦ "Маском" имеет лицензию на учебную деятельность и право давать официальный документ о повышении квалификации и прохождении профессиональной переподготовки.

  • Официальный документ об обучении требуется для экспертов органов/лабораторий в системах сертификации ФСТЭК России и Минобороны России.

  • Программа М БРПО-Спец "Специалист по процессам разработки безопасного ПО" (200 часов/20 дней) официально согласована с ФСТЭК России.

  • Человеческий фактор. Не все сотрудники достаточно мотивированы самостоятельно глубоко изучить тему РБПО. Курсы станут поводом выделить на это время.

P.S. В конце не могу не упомянуть про курс "ПВС СТАТ" – Статический анализ программного обеспечения в соответствии с требованиями ГОСТ Р 71207–2024 с применением PVS-Studio. 30 часов/3 дня.

Теги:
0
Комментарии1

РБПО по ГОСТ Р 56939—2024: вебинар №01 из 30 – Планирование процессов РБПО

Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.

Предлагаем вашему вниманию сегодня первый вебинар цикла, посвящённый первому процессу, описанному в разделе 5.1. – "Планирование процессов разработки безопасного программного обеспечения". Слайды.

Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Я буду публиковать по два вебинара в неделю, чтобы было время знакомиться с ними.

Запись всех вебинаров и подборка дополнительной информации доступна по ссылке: ГОСТ56939.РФ.

Теги:
+2
Комментарии0

А какой у тебя RPG-класс? Пройди наш квиз, чтобы узнать :)

Трудовые будни каждого разработчика рано или поздно превращаются в рутину, даже если поначалу новоиспечённому джуну всё кажется непривычным и увлекательным. Со временем эффект новизны исчезает, уверенность растёт вместе с грейдом, и очередное код-ревью уже воспринимается не как захватывающее испытание, а как привычная часть рабочего процесса. Узнаёте себя? Нет?

А что, если взглянуть на повседневную разработку под другим, более увлекательным углом? В конце концов, «что наша жизнь? Игра!». С таким подходом каждый проект может стать настоящим приключением. А какое приключение обходится без отважных героев, готовых сражаться с монстрами-багами? Вы тоже среди этих храбрецов, даже если раньше об этом не задумывались.

Неважно, являетесь ли вы поклонником настольных или компьютерных ролевых игр, вам наверняка знакомы классические архетипы: маги, воины, плуты и другие. Предлагаем ненадолго отвлечься от рутины: ответьте на несколько нескучных вопросов и примерьте на себя роль одного из семи героев! В конце вас также ждёт подарочек, который поможет в будущих битвах с багами.

Теги:
+4
Комментарии0

Ближайшие события

Механизмы в SAST-решениях для выявления дефектов из OWASP Top Ten

На вебинаре вместе с Лукой Сафоновым, лидером российского отделения консорциума OWASP, разобрали OWASP Top Ten. Поговорили о том, почему так важно проверять исходный код на наличие потенциальных уязвимостей и как с этой задачей помогают справляться SAST-инструменты. А также рассмотрели механизмы, которые позволяют выявлять потенциальные уязвимости и дефекты безопасности.

Статья "OWASP Top 10 2025 — от кода к цепочке поставок: расширение границ безопасности"

Теги:
0
Комментарии0

Бывший коллега, который учил меня программировать, когда я только-только устроилась в PVS-Studio, пять лет назад написал статью о технической поддержке и о том, как от неё не выгорать. За это время структура работы поддержки в нашей компании сильно изменилась, поэтому пора обновить информацию.

В новой статье вы сможете увидеть путь поддержки PVS-Studio за последние пять лет: развитие отделов, внутренних инструментов, а также кейсы клиентов СВД ВС и Eltex.

Теги:
+1
Комментарии0

Всё, что нужно знать для начала работы в PVS-Studio

Статический анализатор PVS-Studio — это инструмент для поиска ошибок в коде на протяжении всего жизненного цикла проекта.
В новой статье разберём основные особенности анализатора PVS-Studio, сценарии и варианты анализа, а также узнаем всё, что нужно знать для начала работы с инструментом.

Теги:
0
Комментарии0

Как повысить эффективность команды разработки? Узнайте в вебинаре!

Поговорили о системном управлении, автоматизации и инструментах, которые реально экономят время и ресурсы.

Столяров Альфред Игоревич, директор компании EvApps, рассказал «Почему увеличение штата не работает». Он разобрал, почему масштабирование через наём часто оказывается иллюзией, где на самом деле находятся узкие места в разработке и как выстроить систему управления, основанную на процессах и данных, а не на интуиции.

Филатов Валерий, DevAdvocate в PVS-Studio, пояснил «Как статический анализ может сэкономить время команды разработки». Речь пойдёт о том, как правильно внедрять и автоматизировать статический анализ, сокращать время проверки кода, настраивать уведомления и использовать агрегирующие дашборды, чтобы инструмент ускорял процесс, а не становился дополнительной нагрузкой.

Приятного просмотра!

Теги:
0
Комментарии0

Инструменты для разработчиков игр и не только

Недавно провели крутой вебинар про GameDev вместе с экспертами из Forgotten Empires и Playrix. Мы разобрали, какие инструменты входят в арсенал GameDev-команд, зачем они нужны и почему профилировщики играют ключевую роль в разработке. А бонусом — показали, как превратить ваш код в настоящий город.

Кстати, мы PVS-Studio уже в город превращали. Почитать про это можно по ссылке!

Теги:
Рейтинг0
Комментарии0

Статический анализ кода в методическом документе ЦБ РФ “Профиль защиты”.

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

Примечание. По окончании вебинара был задан вопрос о сертификации средств статического анализа. В качестве ответа уместно привести цитату из статьи “Итоги этапа «Домашнее задание» испытаний статических анализаторов под патронажем ФСТЭК России”:

«Важно отметить, что в настоящий момент ФСТЭК России не предъявляет каких-либо специальных требований к инструментам статического анализа, на соответствие которым возможно проводить сертификационные испытания инструментов. Как следствие, любые требования заказчиком наличия сертификата ФСТЭК России на инструмент статического анализа являются его частной инициативой (подробнее — в эфире канала AMLive, выпуск «Как встроить безопасность в процесс разработки ПО: практика, ошибки, решения»).»

Теги:
Рейтинг0
Комментарии0

Системный аналитик часто превращается в дорогого «секретаря», который фиксирует решения постфактум, создаёт артефакты, которыми никто не пользуется, и почти не влияет на результат. Ценность роли падает, багов в проде много, а внутри скребут кошки.

На вебинаре «Как системному аналитику уйти от документирования к проектированию» разобрали, как: перестать быть документистом, обрести ментальное здоровье, приносить реальную пользу команде и улучшать продукт, одновременно сокращая время на работу.

Спикеры:

Филипп Хандельянц (Руководитель разработки статических анализаторов, PVS-Studio).
За 9-летнюю историю в компании PVS-Studio прошёл путь от разработчика-джуна до руководителя отделов разработки статических анализаторов. Сам того не ведая, стал ещё неявно выполнять работу системного аналитика.

Владимир Бурмистров (Главный системный аналитик, IT-холдинг Т1). 18 лет в IT. Прошёл путь от автоматизации бухгалтерии и производств, до финтеха. Автор курсов и преподаватель. Может без ИИ найти информацию как в интернете, так и в библиотеке.

Теги:
Рейтинг0
Комментарии0

Вы тимлид или руководитель команды разработки? У нас есть классный материал для вас!

Ещё в начале года мы сделали крутой вебинар «Тимлидами рождаются или становятся: базовые настройки руководителя» с двумя сильными экспертами:

  • Инна Пристягина (руководитель отдела развития, PVS‑Studio) рассказала «Что должен уметь тимлид». Инна разобрала, как в PVS‑Studio на практике проходит путь развития тимлида: от первых задач до построения годового родмапа для команды. Она поделилась инструментами, с которыми тимлид так или иначе знакомится в своей работе.

  • Владимир Куропятник (руководитель отделов обучения, тренер и консультант руководителей) рассказал про то, каким должен быть «Руководитель: базовые принципы и первые шаги». Владимир поделился, как регулярность, предсказуемость, смелость и развитие людей помогают строить систему управления с повторяемыми результатами. А ещё разобрал конкретные приёмы, которые может взять любой руководитель и применить сразу в своей работе.

Приятного просмотра! Ждем ваши комментарии!

Теги:
Рейтинг0
Комментарии0

^ != <<

Знаете ли вы, что некоторые используют оператор '^' для возведения в степень? Хотя в ряде языков он действительно отвечает за возведение в степень, во многих популярных стеках разработки этот оператор выполняет операцию исключающего ИЛИ (XOR). Мы разберём, к каким последствиям приводит подобная путаница, и покажем реальный пример этой ошибки в механизме работы очереди внутри популярной библиотеки.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

🚀 Бесплатный курс для разработчиков: создаём свой язык программирования!

Приглашаем вас пройти наш курс и разобраться, как устроены языки программирования изнутри.

Изначально курс делали для прохождения внутри компании, но решили, что полезного материала так много, что хочется рассказать всему миру!

Этот курс подойдёт разработчикам, которые хотят выйти за рамки повседневной разработки и глубже понять фундаментальные принципы работы кода. Да, примеры будут на C++, но сам материал гораздо шире и будет полезен программистам с любым стеком. Независимо от того, пишете вы на C++, C#, Java или любом другом языке, понимание внутренней архитектуры языков сделает вас сильнее как инженера.

В рамках курса мы шаг за шагом разберём, как создаётся язык программирования:
— что такое лексер и парсер и какую роль они играют;
— как работает семантический анализ;
— как происходит вычисление и обработка кода;
— как все эти части объединяются в единую систему.

Вы увидите, как текст программы превращается в структуру, понятную машине, и поймёте, какие решения стоят за этим процессом.

Даже если вы не планируете создавать собственный язык программирования, курс поможет чуть глубже понять, как всё это устроено "под капотом", расширить технический кругозор и по-новому взглянуть на привычные инструменты. Это хороший способ систематизировать знания, освежить базовые концепции и просто обсудить интересные темы с коллегами.

Мы постарались сделать материал одновременно понятным и практико-ориентированным: минимум абстракции ради абстракции — максимум смысла.

Если вы хотите лучше понимать, что происходит "под капотом" программирования и прокачать инженерное мышление — этот курс для вас.

👉 Подробности и доступ к курсу по ссылке.

Присоединяйтесь и изучайте программирование глубже — бесплатно!

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Как далеко видит lookup в C++?

Хорошей практикой в C++ считается размещение функций рядом с типами, для которых они предназначены. Однако, чтобы такой подход работал корректно, важно понимать механизмы поиска имён и знать, где можно размещать функции, не нарушая правил языка.

Совсем недавно мы проверяли проект OpenCV и нашли там довольно интересную ошибку. Рассмотрели её подробнее и написали новую статью специально для тех, кто хочет разобраться с механизмом поиска имён в C++, в частности с поиском имён по аргументам.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Зачем делать игры, которые увидят немногие? | Разбаговка #6

У нас в гостях Слава Грис, разработчик игр, блогер.

В этом выпуске:

  • Точка входа: История о том, как Слава оказался в геймдеве (спойлер: опыт не всегда стоит на первом месте).

  • Дух андеграунда: Что движет автором, когда он создает игры не «для всех».

  • Бизнес на коленке: Как инди-разработчику не затеряться в океане ежедневных релизов и найти своего игрока.

  • Свобода vs Мейнстрим: Почему быть «маленьким» разработчиком — это суперсила, и зачем делать игры, которые поймут немногие.

Посмотреть или послушать можно тут:

Наш сайт

VK Video

YouTube

Mave

Яндекс.Музыка

Приглашаем к просмотру и ждём ваши комментарии!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Применяем кодогенерацию в Java для решения алгоритмических задач

В прошлый раз мы разобрались, как решается задача трансляции деревьев. И остановились на том, что в случае с AST от компилятора TypeScript, придётся руками обрабатывать 263 типов узлов. Тысячи строк однотипного boilerplate-кода: приведения типов, аннотации, объявления методов — всё это нужно не просто написать, но ещё и поддерживать. А если требования к архитектуре поменяются — переписывать заново.

Однако в случае с Java у нас есть способ упростить себе жизнь — кодогенерация. Нет, не та, что при помощи ИИ-агентов, хотя это мы тоже затронем. Вместо тысяч строк Java кода можно использовать лаконичный конфиг, в котором описывается соответствие узлов и их связи, а всю рутину берёт на себя генератор. Изоморфные преобразования, декомпозиция — всё это описывается там.

Как реализовать это с помощью JavaPoet, что умеет эта библиотека, а также как встроить в процесс нормализацию можно узнать в новом материале, посвящённом использованию кодогенерации для трансляции деревьев.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

OpenAPI Generator через призму статического анализатора

Знаете ли вы про OpenAPI Generator — open source проект, задача которого — автоматическая генерация клиентских библиотек, серверных заглушек, документации и файлов конфигурации на основе спецификации OpenAPI в формате JSON или YAML. Проект является достаточно популярным: у него чуть больше 25000 звёзд на GitHub.

Мы проверили его статическим анализатором для языка Java и написали статью про найденные в коде OpenAPI Generator ошибки.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Go vet не поможет! Статический анализ Golang проектов с помощью PVS-Studio

На нем написан Docker, Kubernetes, Gitea и многие другие проекты самых разных масштабов. Наверное, вы догадались, что речь идёт о Go. Мы никогда не писали об ошибках на Golang проектах, но настало время это исправить, ведь скоро выйдет анализатор PVS-Studio для Go!

Статические анализаторы являются довольно распространёнными инструментами в разработке. В Golang есть встроенный механизм статического анализа — go vet. Однако стандартные линтеры не всегда справляются. Для тех, кто с нами не знаком, мы — компания PVS-Studio, занимаемся разработкой одноименного статического анализатора для C, C++, C# и Java. В последнее время мы активно занимаемся разработкой анализатора для Go и уже скоро планируем выпустить открытую бета-версию.

В новом материале расскажем, какие нашли ошибки в популярных Golang проектах.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Статический анализ и ASOC: нулевая терпимость к ошибкам в проекте

В современной разработке цена обнаруженной после релиза уязвимости катастрофически высока: дефект, приводящий к утечке данных, или критический сбой в системе — это большой удар по репутации и бюджету. И в отношении таких дефектов традиционный подход "найди и исправь" часто не работает — он слишком медленный, дорогой и ненадёжный.

Что делать в такой ситуации? Самый эффективный путь — не дать дефекту шанса появиться в коде. Именно эту задачу решает политика нулевой терпимости к ошибкам.

Причём внедрение такой политики не заканчивается на установке новых инструментов. Безопасность должна стать неотъемлемой части процесса разработки, а не проверяться постфактум. Такой подход позволяет не просто выявлять уязвимости, а предотвращать их попадание в основную ветку.

В статье обсудим, что такое политика нулевой терпимости и то, как статический анализ и ASOC помогут её достичь.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Тихий враг или молчаливый союзник: коротко о выравнивании в C++. Часть 2

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

Итак, путь ясен: мы погружаемся в мир наследования, чтобы услышать его диалог с памятью. Давайте сразу к делу. Приготовьтесь, правила только что усложнились. В статье поговорим о выравнивании, наследовании POD-структур и множественном наследовании.

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Тихий враг или молчаливый союзник: коротко о выравнивании в C++

Представьте, ваша программа — образец чистого кода, прошедший ревью и покрытый тестами. Казалось бы, всё идеально. Но производительность не такая, на какую рассчитывали. Вы проверили всё, что знали. А что, если проблема в том, о чём вы могли не знать? Всё может упираться в выравнивание данных в памяти. Для многих этот механизм так и остаётся загадкой.

Предлагаю вам вместе попробовать разобраться в такой непростой теме в этой статье.

Теги:
Всего голосов 8: ↑8 и ↓0+9
Комментарии0

Разработчики PVS-Studio порассуждали о вайб-кодинге в 2026 году (да-да, это ещё актуально)

Термин "вайб-кодинг" скоро отметит первую годовщину.

Активно подход к написанию кода нейросетью стали обсуждать ещё весной. Казалось, что тема, всколыхнувшая программистов по всему миру, быстро уйдёт из обсуждений. Но и осенью дискуссии не утихали.

Конец 2025. Вайб-кодинг стал словом года. Это обоснованно: будто бы только ленивый не рассказал, как здорово объяснять нейронке задачу простыми словами и тут же получать готовое решение. Появился и лагерь ярых противников, которые только подогревали своим бурным негодованием интерес к вайб-кодингу.

2026. Растёт спрос, растёт и предложение: языковых моделей становится всё больше, а некоторые СМИ пишут, что джунам не обойтись без вайб-кодинга.

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

Это стоит прочитать и обсудить :)

 

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Автостопом по LTS: основные изменения при переходе с 8 на 11 Java

Совсем недавно мы выпускали статью про нововведения в Java 25. И один из комментаторов сказал, что ему было бы интересно прочитать от нас цикл статей, в которых рассказано и показано, как менялась Java от LTS к LTS, начиная с Java 8.

Нам эта идея показалась интересной, и с этой статьи мы начинаем наш новый цикл, в котором рассказываем, с чем придётся столкнуться разработчику при переходе между LTS-версиями Java. В этой статье рассмотрим основные изменения, которые ждут программиста, если он решит перейти с Java 8 на Java 11.

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

Маркетинг сложных продуктов: зачем нам стенды?

В новом выпуске Разбаговки обсуждаем необходимость ивентов для продвижения сложных продуктов. У нас в гостях — София Наймушина, Project marketing manager ТестОпс и Елизавета Кузнецова, руководитель Event-отдела PVS-Studio. Вместе мы обсудили, чем отличаются подходы к организации ивентов в разных, но смежных областях, зачем нужны стенды, что такое "мёртвый сезон" и многое другое!

Посмотреть и послушать можно на этих площадках:

Приглашаем к просмотру и ждём ваши комментарии!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Что нового появилось в PVS-Studio в 2025 году

Новый 2026 год уже вовсю идёт, и мы решили оглянуться назад и вспомнить, что интересного появилось в PVS-Studio за богатый на изменения 2025 год:

  • десятки новых диагностических правил, включая проверки, ориентированные на безопасность;

  • обновления интеграций в популярные IDE, CI/CD-системы, ASOC и сборочные системы;

  • улучшения анализа;

  • расширенная поддержка стандартов.

Всё это и многое другое описано в новой статье в нашем блоге.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Инструментальное средство PVS-Studio разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207—2024. Выявляет критические ошибки и может использоваться при разработке безопасного программного обеспечения по ГОСТ Р 56939—2024.

Я подготовил развёрнутый материал, посвящённый функциональным возможностям PVS-Studio на начало 2026 года с точки зрения перечисленных стандартов, приказа ФСТЭК №117, методического документа "Профиль защиты" и т. д.

Обзор PVS-Studio получился большой и явно не формата статьи для Хабра. Это вообще, скорее, мини-справочник на 66 страниц. В общем, я вас предупредил :) Тех, кто не испугался, а наоборот, заинтересовался, приглашаю познакомиться с материалом по ссылке:

Статический анализатор кода PVS-Studio в 2026: ГОСТ Р 71207, ГОСТ Р 56939, приказ ФСТЭК №117

Что можно найти в документе:

  • как связаны между собой PVS-Studio и различные ГОСТы;

  • требования к статическим анализаторам кода и насколько им соответствует PVS-Studio;

  • разбор технологий анализа, реализованных в PVS-Studio;

  • примеры выявляемых критических ошибок и что это такое;

  • характеристики анализатора: языки, поддерживаемые операционные системы, скорость работы, форматы отчётов;

  • и т. д.

Если вас заинтересовали озвученные здесь темы или у вас появились вопросы, то напишите нам.

P.S. Команда PVS-Studio будет со стендом на ТБ Форум 2026 (18–20 февраля 2026, МВЦ "Крокус Экспо", павильон 2, зал 10). Я там тоже буду. Приходите задавать вопросы на тему публикации, стандартов и вообще.

Теги:
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Как не потерять сервер в Minecraft из-за опасных модов

Уверен, что многие владельцы Minecraft-проектов сталкивались с игроками, которые хотели взломать сервер и выдать себе права администратора. Я понимаю, что подобное случается не только в играх, и из научного интереса изучаю, как и почему это происходит.

В этой статье мы рассмотрим CVE, найденную в моде Integrated Scripting.

Теги:
Всего голосов 6: ↑4 и ↓2+3
Комментарии0

Я подумал, что было бы интересно сделать дотошное исследование кода, который обеспечивает функционирование исключений в С++, и написать статью об этом. Разные платформы могут реализовывать исключения по-разному, поэтому показалось логичным сконцентрироваться на мире Linux.

Хотя в интернете и так много материалов по исключениям, у меня сложилось впечатление, что они либо слишком кренят в сторону технических описаний, либо описывают самостоятельную имплементацию. Я попытался сделать именно что человеческое описание подкапотной работы исключений.

Всё рассмотрение строится на конкретном примере. Где возможно, опираюсь на библиотеку libcxx от LLVM, а в остальных случаях — на libstdc++ от GCC.

Саму статью можно прочитать по этой ссылке. Если у вас появились какие-то мысли или пожелания в результате прочтения, буду очень рад увидеть вас в комментариях!

 

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

Мы иногда во внутреннем чате обмениваемся фрагментами кода с неочевидными ошибками, которые обнаруживаются с помощью PVS-Studio в каком-нибудь открытом проекте. Мол, кто быстро сообразит, что не так с кодом?

Вчера коллега поделился вот таким фрагментом кода из проекта SereneDB:

template <typename T>
struct NumericParameter : public Parameter {
  using ValueType = T;
  ....
  std::string name() const override {
    if constexpr (std::is_same_v<ValueType, int16_t>) {
      return "int16";
    } else if constexpr (std::is_same_v<ValueType, uint16_t>) {
      return "uint16";
    } else if constexpr (std::is_same_v<ValueType, int32_t>) {
      return "int32";
    } else if constexpr (std::is_same_v<ValueType, uint32_t>) {
      return "uint32";
    } else if constexpr (std::is_same_v<ValueType, int64_t>) {
      return "int64";
    } else if constexpr (std::is_same_v<ValueType, uint64_t>) {
      return "uint64";
    } else if constexpr (std::is_same_v<ValueType, size_t>) {
      return "size";
    } else if constexpr (std::is_same_v<ValueType, double>) {
      return "double";
    } else {
      static_assert("unsupported ValueType");
    }
  }
  ....
};

Признаюсь честно, я два раза прочитал этот фрагмент, но так и не увидел ошибку. И засчитал себе поражение. Раз так, думаю, это достойно публикации в канал, чтобы и вы могли испытать свою внимательность :)

Попробуйте найти сами
Попробуйте найти сами

Ответ:

Анализатор PVS-Studio выдаёт предупреждение V591 Non-void function should return a value. parameters.h 222

На первый взгляд предупреждение странное и смахивает на ложное срабатывание, ведь не может быть, что функция закончила работу, не вернув значение с помощью оператора return. Если выбирается ветка else, то там static_assert, и код просто не должен скомпилироваться. Во всех остальных случаях есть return "что-то";.

Но есть нюанс!

Ещё раз посмотрите на эту строчку:

static_assert("unsupported ValueType");

static_assert используется неправильно: пропущен bool-constexpr. Вернее, строковый литерал неявно конвертируется в значение true, и static_assert никогда не прервёт компиляцию. В итоге else-ветка функции ничего не возвращает, и её поведение будет не определено для всех специализаций NumericParameter, кроме указанных ранее в цепочке if constexpr.

Правильный вариант:

static_assert(false, "unsupported ValueType");
Теги:
Всего голосов 29: ↑28 и ↓1+30
Комментарии16

Вебинару "Тимлидами рождаются или становятся: базовые настройки руководителя" быть! 🔥

Друзья, рады сообщить, что мы определились с новой датой: 16 января 14:00

Напоминаем, что на этом вебинаре поговорим про то, каким должен быть современный лидер в IT-команде.

Все подробности и регистрация доступны по ссылке!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Как увеличить количество спикеров в компании бесплатно, без регистрации и SMS

Существует забавный парадокс: компании вкладывают миллионы в стратегию, продукт, технологии, но всё ещё могут недооценивать один из самых мощных инструментов маркетинга — выступления. Круто делать классный продукт, но какой в этом толк, если о нём не рассказывать?

В этой статье поделюсь с вами кейсом о том, как помочь будущим докладчикам, которые уже готовы делиться экспертизой, но им что-то мешает. А также расскажу, с какими проблемами при подготовке спикеров мы столкнулись и какие выводы сделали в процессе.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Решили порадовать вас перед праздниками новым выпуском Разбаговки 🔥

Наш гость — Евгений Сергеев, архитектор ПО и автор Telegram-канала S0ER.

Как LLM справляются с реальным кодом — и с огромными проектами? В чём разница между агентами и ассистентами, и почему параллельность может стать ключом к прорыву? Обсудили, насколько это всё дорого, как бороться с иллюзией компетентности ИИ — и действительно ли вайбкодинг станет будущим разработки. Изменит ли ИИ саму культуру программирования? И главное — заменит ли искусственный интеллект обычных разработчиков?

Посмотреть/послушать выпуск можно тут:

Приглашаем к просмотру и ждём ваши комментарии!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Катаемся по полям в поисках потенциальных уязвимостей

Мы продолжаем писать про то, как развивается наш механизм анализа помеченных данных в Java анализаторе PVS-Studio. В новой статье вы сможете узнать, как мы учитывали поток данных, проходящий через поля, чтобы научиться искать более неочевидные потенциальные уязвимости.

Эта статья является логическим продолжением нашего цикла про поиск потенциальных уязвимостей в исходном коде ПО. В случае, если вам интересно, с предыдущими частями можно ознакомиться здесь:

  1. Поиск потенциальных уязвимостей в коде, часть 1: теория.

  2. Поиск потенциальных уязвимостей в коде, часть 2: практика.

Тема поиска возможных уязвимостей и инъекций в исходном коде достаточно сложная, но интересная. И мы продолжаем делиться с вами тем, как решаем проблемы, которые возникают у нас по ходу внедрения новых фич и улучшения существующих механизмов в нашем анализаторе. Если вам такое интересно, обязательно подписывайтесь на наш блог.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Усыпальница Java

Java обычно воспринимают как "тихую гавань" стабильности и обратной совместимости. Но на самом деле внутри неё постоянно кипит жизнь: язык и платформа меняются, обрастают новыми API и возможностями, а старые решения постепенно отправляются на покой в виртуальную усыпальницу.

В новой статье мы разберёмся, чем именно наполняется эта усыпальница и почему. Поговорим о legacy-коллекциях Java, финализаторах, Nashorn, SecurityManager и легендарном Unsafe. Какие задачи они решали? Какие архитектурные и эксплуатационные проблемы породили? И, конечно, разберём, какие современные альтернативы пришли им на смену.

Теги:
Всего голосов 5: ↑3 и ↓2+2
Комментарии4

Баги на всех языках мира. Проверка LanguageTool

Всем привет! Hello, everyone! Hallo zusammen! Hola a tothom! مرحباً بالجميع!

В нашем блоге мы часто говорим про статический анализ, линтеры и подобные инструменты. Но на этот раз мы нашли их довольно интересного представителя! LanguageTool — это многоязычная программа проверки орфографии, стилистики и грамматики, которая помогает исправлять и перефразировать тексты.

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

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Компьютерное зрение для кода: что PVS-Studio разглядел в OpenCV

Что общего у компьютерного зрения и статического анализа? Оба ищут смысл в данных. OpenCV находит образы среди миллионов пикселей, а PVS-Studio — ошибки среди тысяч строк кода. Изучим же исходники крупнейшей библиотеки компьютерного зрения.

На примере 14 фрагментов кода из OpenCV предлагаю посмотреть, как статический анализ помогает избежать попадания багов в релиз и облегчить жизнь разработчикам.

Давайте посмотрим на кусок кода из проекта:

template<typename T>
struct Ptr : public std::shared_ptr<T>;
// ....
Ptr<FlannNeighborhoodGraph> FlannNeighborhoodGraph::create(....) 
{           
    return makePtr<FlannNeighborhoodGraphImpl>(....);
}

void Utils::densitySort (const Mat &points, int knn, 
                         Mat &sorted_points, std::vector<int> &sorted_mask) 
{
  // ....
  FlannNeighborhoodGraph &graph =                                      // <=
                         *FlannNeighborhoodGraph::create(....);

  std::vector<double> sum_knn_distances (points_size, 0);
  for (int p = 0; p < points_size; p++) {
    const std::vector<double> &dists = graph.getNeighborsDistances(p);
    for (int k = 0; k < knn; k++)
      sum_knn_distances[p] += dists[k];
  }
  // ....
}

Если вы думаете, что использование умных указателей раз и навсегда решает проблему "висячих" ссылок и доступов к памяти, то здесь всё пошло не так. Давайте разбираться. Сейчас код работает следующим образом:

  1. Функция create создаёт и возвращает умный указатель на тип FlannNeighborhoodGraphImpl, и его счётчик ссылок на объект равен единице;

  2. Создаётся ссылка graph на значение этого умного указателя, при этом счётчик ссылок на объект не изменяется;

  3. Указатель является временным объектом, и поэтому после завершения инициализации счётчик ссылок уменьшится до нуля, что приведёт к освобождению управляемого объекта. Теперь ссылка указывает на разрушенный объект;

  4. В цикле for происходит обращение к невалидной ссылке.

В итоге код, который казался правильным, приводит к неопределённому поведению. Кроме того, эту проблему находит не только PVS-Studio, но и санитайзер. Пруф.

Для исправления необходимо сохранить умный указатель, тогда объект типа FlannNeighborhoodGraph будет жить до конца блока. Можно сделать так:

std::vector<double> sum_knn_distances (points_size, 0);

{
  // get neighbors
  auto graph = FlannNeighborhoodGraph::create(....);

  for (int p = 0; p < points_size; p++) {
    const std::vector<double> &dists = graph->getNeighborsDistances(p);
    for (int k = 0; k < knn; k++) 
      sum_knn_distances[p] += dists[k];
  }
}

Дополнительно ограничили область видимости graph, чтобы ресурс освободился после выполнения циклов.

Хотите узнать больше?

Статический анализ выявляет скрытые дефекты даже в больших работающих проектах. Какие ещё опасные фрагменты кода мы нашли в коде OpenCV? Полный разбор можно найти в отдельной статье.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Проверяем osu! и рассказываем про фишки статических анализаторов

Про существование инструментов статического анализа известно многим, но почему их часто используют и в чём конкретно заключается практическая польза? В этот раз мы предлагаем рассмотреть несколько основных особенностей этого инструмента на примере анализа исходного кода игры osu!

Первая особенность: экономит время

Одной из особенностей статических анализаторов является возможность сэкономить время на код-ревью за счёт схожего подхода (просмотра исходников), только за вас всё делает инструмент :)

Предлагаю начать с небольшой разминки: сможете ли вы самостоятельно найти ошибку?

public partial class TopScoreStatisticsSection
  : CompositeDrawable
{ 
  public ScoreInfo Score
  {
    ....

    if (score == null && value == null) 
      return;

    if (score?.Equals(value) == true)
      return;

    score = value;

    accuracyColumn.Text = value.DisplayAccuracy;

    maxComboColumn.Text = value.MaxCombo
                               .ToLocalisableString(@"0\x");

    ppColumn.Alpha = value.BeatmapInfo!
                          .Status
                          .GrantsPerformancePoints() ? 1 : 0;

   
  }
}

Если нужна подсказка или хотите убедиться в своём варианте, можно посмотреть на предупреждение PVS-Studio:

V3125 [SEC-NULL] The 'value' object was used after it was verified against null. Check lines: 128, 120. TopScoreStatisticsSection.cs 128

Нашли? Ну я в вас и не сомневался :)

Для протокола давайте всё же разберём, что произошло. Выглядит как логическая ошибка, а их не так просто заметить, потому что не все захотят высматривать все возможные сценарии. В нашем же случае один из них сразу может вызвать проблемы.

В начале есть две проверки.

Первая проверка:

if (score == null && value == null)
  return;

Вторая проверка:

if (score?.Equals(value) == true)
  return;

Скорее всего, они предназначались для обработки двух переменных по разным сценариям (если score = null, если value = null, если они равны и т. д.). Но вот если комбинация будет score = "NotNull" и value = null, то первая и вторая проверки отработают без выхода из метода, и мы пойдём дальше по коду, где непременно наткнёмся на разыменовывание свежеполученного null

accuracyColumn.Text = value.DisplayAccuracy;
maxComboColumn.Text = value.MaxCombo.ToLocalisableString(@"0\x");

А это, в свою очередь, может привести к исключению NullReferenceException.

Хотите узнать еще?
Если вас заинтересовало какие еще есть особенности статических анализаторов и что еще мы смогли найти в osu! То предлагаю прочитать полную версию статьи.

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Стоматологические услуги для компиляторов на примере LLVM 21

Многие слышали миф о маленьких птичках, "чистящих зубы" крокодилам. И пусть в живой природе этого не найти, но зато в мире программ есть свои герои, способные помочь ещё более могучим ящерам — драконам в лице компиляторов. Ну или в нашем случае виверне, ведь именно она на логотипе LLVM, чья очередная версия попала под чистку от багов.

Среди сегодняшних процедур: рытьё истории коммитов, чтение технических спецификаций и краткий румтур по совершенно разным уголкам проекта LLVM — от принтеров дебаг информации до оптимизатора и работы с регистрами.

Например, коснёмся инструкции CPUID:

Предупреждение PVS-Studio: V560 A part of conditional expression is always false: AVX10Ver >= 2. Host.cpp 2177

StringMap<bool> sys::getHostCPUFeatures() {
  unsigned EAX = 0, EBX = 0, ECX = 0, EDX = 0;
  ....
  bool HasLeaf24 = MaxLevel >= 0x24
                && !getX86CpuIDAndInfo(0x24, &EAX, &EBX, &ECX, &EDX);

  int AVX10Ver = HasLeaf24 && (EBX & 0xff);
  Features["avx10.1"] = HasAVX10 && AVX10Ver >= 1;
  Features["avx10.2"] = HasAVX10 && AVX10Ver >= 2;
  return Features;
}

В выражении HasLeaf24 && (EBX & 0xff) сперва оба операнда && приведутся к типу bool, вычислится логическое "И", а затем результат снова расширится до типа int. На выходе получаем значение 0 или 1, и выражение AVX10Ver >= 2 всегда будет вычисляться как false.

Опечатка, ошибка в логике или кривой мёрж? Git blame и спецификация помогут ответить на этот вопрос, как и на многие другие, если вас заинтересовало – продолжение читайте в статье.

Теги:
Всего голосов 5: ↑4 и ↓1+4
Комментарии0

Коллега обнаружил забавный момент, который идёт в копилку "PVS-Studio — двигатель прогресса".

Слышали ли вы про то, что злобные C и C++ компиляторы могут удалить вызов memset в конце функции во время оптимизаций? У нас даже про это есть диагностика V597.

Это давно известная, но при этом живучая потенциальная уязвимость CWE-14: Compiler Removal of Code to Clear Buffers. В следующем коде компилятор удалит заполнение памяти нулями (вызов memset), так как после этого буфер не используется. Раз не используется, то заполнение буфера с точки зрения языка C++ не имеет каких-либо наблюдаемых эффектов и, следовательно, является лишим. Т. е. его можно и нужно удалить с целью оптимизации.

void sha1_hmac( unsigned char *key, int keylen,
                unsigned char *input, int ilen,
                unsigned char output[20] )
{
  sha1_context ctx;

  sha1_hmac_starts( &ctx, key, keylen );
  sha1_hmac_update( &ctx, input, ilen );
  sha1_hmac_finish( &ctx, output );

  memset( &ctx, 0, sizeof( sha1_context ) );
}

Код позаимствован из статьи про проверку проекта PPSSPP.

Проблема насущная, и для её решения в стандарт C23 внесли новую функцию memset_explicit, которая теперь обязательна для реализации в стандартной библиотеке вместо memset_s. Так вот, автор предложения (Miguel Ojeda, P1315) в своём документе сослался на нашу диагностику (ссылка N3).

И похоже, что он давно про нас знает, т. к. умудрился вставить ссылку ещё аж на старый сайт viva64.

Не зря столько лет говорим про memset. Приятно, что нас уже в proposal-ы затаскивают :)

Теги:
Всего голосов 15: ↑15 и ↓0+20
Комментарии2

Что такое Cyber Resilience Act, и какие требования к кибербезопасности он предъявляет?

Что же за птица такая — Cyber Resilience Act? Мы написали статью, где рассмотрели закон, который выдвигает требования кибербезопасности к продуктам, поставляемым на европейский рынок. Как выглядят эти требования, какие определены штрафы за их несоблюдение — обо всём поговорим здесь.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Новый выпуск подкаста "Разбаговка"!

В этот раз вместе с Event-менеджерами обсудили, зачем нужны мероприятия продуктовой IT-компании. Мы поделились своим опытом организации митапов и участия в крупных конференциях. Выпуск получился интересным и лёгким.

Приглашаем к просмотру и ждём ваши комментарии!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Предлагаю вашему вниманию запись вебинара "Особенности разработки встроенного ПО по требованиям ФБ". Слайды презентаций.

Вместе с экспертами из "ФанкСэйфети" разбирались с такими сущностями, как ГОСТ Р МЭК 61508, уровнями SIL, стандартом MISRA C, сертификацией по функциональной безопасности и т. д.

В конце была активная дискуссия, во время которой отвечали на интересные вопросы. По её итогу приводим дополнительную информацию и ссылки.

Примечание 1. Говоря про безопасные и сертифицированные компиляторы, стоит отметить, что в 2024 году появился ГОСТ Р 71206-2024: "Разработка безопасного программного обеспечения. Безопасный компилятор языков С/С++. Общие требования". Также см. пост из цикла разбора РБПО: Процесс 12 — Использование безопасной системы сборки программного обеспечения и вебинар на эту тему.

Примечание 2. Инструменты SAST и DAST не обязаны быть сертифицированы. Из методической рекомендация ФСТЭК № 2025-07-011 | Уровень критичности: 3:

Область: Инструментальный анализ

Тип недостатка: Необоснованный выбор инструментов, в том числе инструментов статического анализа исходного кода, для выстраивания и выполнения процессов РБПО.

Описание: В настоящий момент ФСТЭК России не предъявляет требования наличия сертификата соответствия к большинству типов инструментов анализа кода и архитектуры. При этом к инструментам предъявляются следующие требования: ...

См. также выдержку из эфира AM Live "Разработка безопасного программного обеспечения (РБПО)". Анализатор PVS-Studio участвует в инициативе ФСТЭК по испытаниям статических анализаторов кода, но это другая история.

Примечание 3. Был вопрос, связанный с объединением требований ФБ и ИБ в одном стандарте. Некоторые усилия в этом направлении предпринимаются, см. примеры ГОСТов ниже:

ГОСТ Р 59506-2021/IEC TR 63074:2019. Безопасность машин. Вопросы защиты информации в системах управления, связанных с обеспечением функциональной безопасности.

ГОСТ Р 71452-2024/IEC/PAS 63325:2020. Требования к функциональной безопасности и защите системы контроля промышленной автоматизации (IACS) на протяжении жизненного цикла.

Однако необходимо понимать, что у ФБ и ИБ разные цели и разные подходы, поэтому объединение технических требований может создать путаницу, и сейчас меры по объединению некоторых аспектов ФБ и ИБ носят, прежде всего, организационный характер.

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Как анализировать C и C++ код без привязки к сборочной системе на Windows

Код, написанный на C и C++, может использоваться для самых разных целей. И под каждые из этих целей есть свои инструменты сборки. Например, при разработке программного обеспечения для встраиваемых систем используются специальные компиляторы и сборочные системы.

Иногда бывает так, что появляется целый "зоопарк" самописных скриптов сборки, а его последний "смотритель" уволился ещё в прошлом году (играет Гражданская Оборона — "Зоопарк").

Хотелось бы всё равно как-то анализировать такой код без необходимости разбираться в хрупкой и непонятной системе сборки. Что же делать?

На самом деле, решение есть! Смысл взаимодействия анализатора со сборочной системой состоит в том, чтобы получить необходимую для анализа информацию. Но получить её можно и другим способом: из запущенного процесса компиляции.

В новой статье посмотрим, как воспользоваться этим механизмом для ОС Windows в анализаторе PVS-Studio, и  как сделать его использование в процессе разработки удобным.

Теги:
Всего голосов 5: ↑4 и ↓1+4
Комментарии0

Оптимизация игр: работа со строками

Друзья, первый вебинар про оптимизацию игр прошел настолько круто, что мы решили не останавливаться и дальше развивать эту тему.

Поэтому приглашаем вас на второй вебинар!

Поговорим о работе со строками с экспертами из индустрии:

  • поделимся удачными (и не очень) историями развития собственных решений

  • расскажем о пулах строк и способах экономии памяти

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

📅4 декабря
⏰ 15:00

Подробная программа и регистрация доступны по ссылке. Присоединяйтесь и приглашайте коллег!

Теги:
Рейтинг0
Комментарии0

Статья "Код блокчейн-проектов Neo и NBitcoin VS анализатор кода. Кто-кого?"

PVS-Studio ворвался в мир блокчейн-разработки, и первыми "под удар" попали open source проекты на C# — Neo и NBitcoin!

В статье мы рассмотрели самые интересные ошибки: как явные, так и потенциальные, которые нашли в этом проекте. Если вам интересно, какие ошибки могут находить такие инструменты, как PVS-Studio, или вы желаете прокачать свой собственный "ментальный анализатор", приглашаю к прочтению :)

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Статический анализ OpenIDE

Коллеги из OpenIDE предложили нам проверить их продукт статическим анализатором и написать об этом статью.

Мы отобрали самые интересные ошибки и странные моменты, которые нашёл анализатор в исходном коде используемой ими IntelliJ Platform. Если вам интересно посмотреть на ошибки в Java коде и освежить в памяти некоторые теоретические аспекты этого языка, крайне рекомендуем статью к прочтению.

P.S. Отдельная благодарность OpenIDE. Они рассмотрели приведённые в статье ошибки и поправили их.

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

.NET Digest #9

Рады вам представить девятый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET!

В этот раз мы расскажем про новые preview и RC версии .NET 10 и новую Visual Studio 2026. А ещё мы собрали для вас несколько интересных статей:

  • про производительность в .NET от Стивена Тауба;

  • спонсорство на NuGet.org;

  • и статистику популярности языков от GitHub.

Команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов! Подробнее читайте в нашей статье.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

ГОСТ Р МЭК 61508, SIL (УПБ), MISRA C...

Хотите лучше разбираться в этих стандартах? Приходите на наш вебинар 20 ноября!

Требования функциональной безопасности (ФБ) по ГОСТ Р МЭК 61508 — это не просто формальность, а сложный квест для всей команды разработки. На вебинаре вместе с коллегами из FuncSafety мы разберем "подводные камни" этого процесса.

Спикеры:

  • Андрей Карпов, сооснователь PVS-Studio

  • Елена Рогова, ведущий специалист по функциональной безопасности и надежности

  • Андрей Рогов, руководитель, архитектор и разработчик встраиваемых систем

📅20 ноября в 15:00

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

Теги:
Рейтинг0
Комментарии0

Посоревнуйся с анализатором!

Мы нашли ошибки в коде проекта LLVM. Вот одна из них. Попробуй найти, ответ пиши в комментариях.

Теги:
Рейтинг0
Комментарии5

Что такое OpenIDE? Чем IntelliJ лучше, чем Visual Studio Code? JetBrains будет обучать нейросети на нашем коде?

Эти и многие другие вопросы обсудили в нашем подкасте "Разбаговка" вместе с Фёдором Сазоновым, CEO OpenIDE.

Приглашаем к просмотру и ждём ваши комментарии!

Также подкаст можно послушать/посмотреть на этих площадках:

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

"Нулевая терпимость" к ошибкам в коде

А что, если внедрить в проекте "нулевую терпимость" к багам?

Приглашаем вас на вебинар "Статический анализ и ASOC: нулевая терпимость к ошибкам в проекте"!

Мы не просто поговорим о качестве кода, а сформулируем чёткий принцип "нулевой терпимости" к ошибкам и покажем, как статический анализатор становится его технической основой.

Что вас ждёт:

  • На примере C#-проекта продемонстрируем, как инструмент выявляет критические дефекты, уязвимости и code smells до момента попадания кода в репозиторий.

  • Разберём практические аспекты интеграции с CyberCodeReview для автоматизации контроля качества, включая запуск анализа по триггерам из CI и автоматическое создание задач в Jira.

  • Дадим рекомендации по настройке и внедрению процесса, которые помогут вашей команде сократить затраты на исправление ошибок и повысить надёжность ПО.

13 ноября в 15:00 (МСК)

Ссылка на регистрацию тут. До встречи!

Теги:
Рейтинг0
Комментарии0

Друзья, уже прошло 15 вебинаров из цикла "Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939-2024". Спасибо за ваш интерес и участие!

Делимся выпусками 11-15. Будем рады вашей обратной связи! Приятного просмотра!

Вебинар 11. Динамический анализ кода программы

Вебинар 12. Использование безопасной системы сборки программного обеспечения

Вебинар 13. Обеспечение безопасности сборочной среды программного обеспечения

Вебинар 14. Управление доступом и контроль целостности кода при разработке программного обеспечения

Вебинар 15. Обеспечение безопасности используемых секретов

Регистрация на следующие вебинары доступна по ссылке. Присоединяйтесь к путешествию вокруг РБПО вместе с нами!

Теги:
Рейтинг0
Комментарии0

Интеграция PVS-Studio c SGRC SECURITM

Компания PVS-Studio и платформа Securitm заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

Облачный сервис и программное обеспечение SGRC Securitm позволяют построить управление информационной безопасностью на базе риск-ориентированного подхода и единой информационной модели компании.

Отчёт анализатора PVS-Studio стало возможным загрузить в Securitm для дальнейшего использования с помощью пользовательского интерфейса системы.

Подробнее о том, как загрузить отчёт анализатора PVS-Studio в систему Securitm можно прочитать в посвящённом этому разделе нашей документации.

Также мы с коллегами из Securitm провели совместный вебинар, на котором обсудили, как обеспечить соблюдение требований ГОСТ в области РБПО, а также показали реальные примеры использования PVS-Studio и Securitm.

Теги:
Рейтинг0
Комментарии0

Интеграция PVS-Studio в Inseq RBPO

Компания PVS-Studio и Inseq заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

Программное обеспечение Inseq RBPO предназначено для создания и управления конфигурациями, необходимыми для автоматического развёртывания и настройки компонентов инфраструктуры безопасной разработки ПО — систем контроля версий, анализаторов кода, инструментов автоматизации сборки, тестирования и развёртывания. Управление конфигурациями и политиками безопасности осуществляется централизованно.

"ИНСЕК.РБПО" представляет собой клиент-серверную систему, работающую на локальном оборудовании. Она включает серверную часть, генерирующую конфигурационные файлы, и веб-приложение с графическим интерфейсом для взаимодействия с пользователями.

Внутри этой платформы стало возможным использовать статический анализатор PVS-Studio для поиска критических ошибок в исходном коде.

Также мы провели вебинар с коллегами из Inseq, в котором поговорили о необходимости регулярного статического анализа, а также в целом об автоматизации в РБПО.

Теги:
Рейтинг0
Комментарии0

В прошлом году я помог Дмитрию Свиридкину подготовить и опубликовать цикл из 12 статей "Путеводитель C++ программиста по неопределённому поведению". Теперь этот расширенный, доработанный и обобщённый материал доступен в виде печатной книги:

Экскурс в неопределенное поведение C++ / Д. О. Свиридкин, А. Н. Карпов, – СПб.: БХВ-Петербург, 2025. – 384 с. – (Профессиональное программирование)

ISBN 978-5-9775-2073-7

Книга представляет собой обширный справочник типичных, а также очень редко встречающихся ошибок, характерных для программ на C++, Rust и других языках для низкоуровневого и системного программирования, в частности на ассемблере. Все рассмотренные проблемы так или иначе связаны с неопределенным, неуточненным и определяемым реализацией поведением языковых конструкций. Наибольшее внимание уделено неопределенному поведению, возможным признакам его присутствия в программах и методам поиска, диагностики и устранения такого поведения.

Книгу можно найти в offline и online магазинах.

Ещё какое-то количество книг я и коллеги раздадим в качестве сувениров и призов на различных мероприятиях, таких как:

Приятного и вдумчивого чтения!

Теги:
Всего голосов 19: ↑18 и ↓1+28
Комментарии3

Интеграция PVS-Studio с Hexway

Компания PVS-Studio и платформа Hexway заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

Hexway VamPy — это решение, агрегирующее данные о безопасности из разных источников для работы с уязвимостями.

В Hexway стало возможным загрузить результаты анализа PVS-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI-инструментов.

Подробнее о том, как загрузить результаты анализа PVS-Studio в Hexway VamPy можно прочитать в соответствующем разделе нашей документации.

Теги:
Рейтинг0
Комментарии0

Краткий (и не краткий) экскурс в ГОСТ Р 56939-2024 – РБПО

Недавно мои коллеги обработали и опубликовал пятую — финальную — часть моего рассказа про ГОСТ Р 56939-2024 – Разработка безопасного программного обеспечения. Поскольку все части записывались сразу, к моменту выхода этого заключительного видео я понимаю, что сейчас бы немного иначе его сделал. Видение меняется, появляется новая информация. Например, завершился этап домашнего задания испытаний анализаторов кода, и про это стоило бы упомянуть. Или, например, появилась эта методическая рекомендация, про которую стоило бы рассказать.

Но не страшно, про новое расскажем в рамках других митапов и вебинаров. А пока, вот все части общего обзора:

1.      Причины разработки и выпуска нового ГОСТ Р 56939-2024 на замену версии 2016 года

2.      Содержание ГОСТ Р 56939-2024 и его структура

3.      Процессы РБПО 5.1-5.10 в ГОСТ Р 56939-2024

4.      Процессы РБПО 5.11-5.25 в ГОСТ Р 56939-2024

5.      ГОСТ Р 56939-2024: вопросы сертификации, выводы и дополнительные ссылки

Но на этом история не закончилась. Сейчас вместе с УЦ "МАСКОМ" и приглашёнными гостями-экспертами мы записываем подробный цикл вебинаров про каждый из 25 процессов, описанных в стандарте.

Приглашаю смотреть уже записанные встречи и участвовать в новых: Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939-2024.

Update 2026. Запись всех вебинаров доступна здесь: GOST56939.RU

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Интеграция PVS-Studio c AppSecHub

Компания PVS-Studio и платформа AppSec.Hub заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps.

AppSec.Hub — это платформа для автоматизации процессов Application Security, которая позволяет объединять различные инструменты анализа, тестирования и мониторинга безопасности приложений.

Отчёт анализатора PVS-Studio теперь можно загрузить для просмотра в платформу AppSecHub вручную с помощью пользовательского интерфейса инструмента либо с помощью специальной утилиты командной строки.

Подробнее о работе PVS-Studio в AppSec.Hub можно прочитать в посвящённом этому разделе документации.

Также мы провели вебинар с коллегами из AppSec Solutions, чтобы на практике показать, как инструменты работают вместе, а также поделиться полезным опытом в интеграции статического анализа в DevSecOps.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Надёжный фундамент для цифрового доверия: безопасность как приоритет финтеха

В эпоху стремительной цифровизации финансовые технологии становятся основой доверия миллионов. Защита данных и активов клиентов — не просто техническая задача, а краеугольный камень устойчивости и репутации всей отрасли. Финтех-компании, стоящие на передовой цифровых услуг, особенно остро чувствуют необходимость в стабильной и гарантированной безопасности своих IT решений. Обеспечение этой безопасности требует современных, эффективных и, что критически важно, надёжных отечественных инструментов, способных отвечать самым строгим требованиям регуляторов.

Поиск таких решений — сложный и ответственный процесс. Требуется не просто соответствие нормативным актам (таким как Указ Президента РФ №250, определяющий переход критически важной инфраструктуры на отечественный софт и кибербезопасность до 2025 года), но и гарантированная эффективность, проверенная временем и практикой.

Для поддержки финтех-сообщества в этом стратегическом направлении Ассоциацией "ФинТех" (АФТ) по инициативе Банка России был создан специализированный репозиторий финансовых ИТ-продуктов. Его цель — стать надёжным источником уже верифицированных отечественных решений, значительно упрощая и ускоряя их поиск и оценку для финансовых организаций.

Важным шагом в развитии Репозитория стала публикация карты DevSecOps-инструментов Сообществом FinDevSecOps Ассоциации "ФинТех" в марте 2025 года. Эта карта — наглядный путеводитель по доступному сегодня отечественному ПО, призванному укреплять безопасность на всех этапах жизненного цикла разработки и эксплуатации финансовых систем.

Статический анализатор кода PVS-Studio также вошёл в карту и наряду с другими решениями размещён в разделах SAST и Attack Surface Analysis.

PVS-Studio более 17 лет помогает компаниям с собственными командами разработчиков выявлять критические ошибки и потенциальные уязвимости на ранних этапах разработки и соответствовать процессу РБПО.

Важно понимать, что безопасная разработка так или иначе полезна всем компаниям, создающим софт, а не только тем, кто причислен к критической информационной инфраструктуре (КИИ). В связи с этим работа Сообщества FinDevSecOps по созданию карты инструментов крайне значима как для ФинТеха, так и для других отраслей.

В своей работе мы постоянно сталкиваемся с компаниями, которые не знают, как подступиться к созданию процесса РБПО, как начать исправлять программные ошибки на этапе написания кода (когда цена исправления ошибки самая низкая), а не на этапе тестирования или когда продукт развернут у миллиона пользователей.

Сооснователь PVS-Studio Андрей Карпов в своём Telegram-канале публикует большой цикл постов по РБПО — актуальной теме в программистском комьюнити. Приглашаем подписаться всех интересующихся безопасной разработкой и требованиями ГОСТ.

Также, совместно с Учебным Центром "МАСКОМ", мы проводим цикл вебинаров, посвященных разбору процессов РБПО: "Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939-2024". Присоединяйтесь, и Вы получите руководство к действию о том, как выстраивать процесс безопасной разработки в вашей компании.

Первые вебинары мы уже провели. Их можно посмотреть в записи (1, 2 и 3). Регистрация и перечень тем вебинаров доступны по ссылке.

 

Теги:
Всего голосов 5: ↑5 и ↓0+8
Комментарии0

Бета-тестирование: обновлённый парсер для анализа кода на языках C и C++

Уже несколько месяцев наша команда активно тестирует новую версию парсера, и мы достигли значительного прогресса. Благодаря отзывам пользователей, мы смогли выявить и устранить множество неточностей в работе анализатора. Однако наша цель — создать максимально надёжный инструмент, поэтому мы продолжаем процесс тестирования и приглашаем вас присоединиться.

Уже больше года команда разработки PVS-Studio кропотливо работает над обновлением собственного парсера для анализа кода на языках C и C++. Это большое обновление, хоть и не видно для большинства пользователей. Оно служит фундаментом для дальнейших усовершенствований анализатора.

Отличная новость для пользователей Linux: по вашим многочисленным просьбам мы добавили возможность тестирования на Linux! Теперь пользователи обеих операционных систем (Windows и Linux) могут помочь нам в улучшении продукта. Если вы ещё не участвовали в тестировании, сейчас самое время присоединиться!

До 6 июня 2025 года вы сможете протестировать специальную версию анализатора. На этом этапе для нас крайне важна обратная связь от пользователей. К релизу мы хотели бы удостовериться, что новый компонент не приведёт к существенному замедлению анализа или нестабильности у пользователей.

Как присоединиться к тестированию?

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

Расскажите о своём опыте!

Если во время использования анализатора вы заметите баги, падения, странные срабатывания или замедление, пожалуйста, сообщите нам об этом! Для этого вы можете ответить на письмо, которое мы присылали ранее, или написать через форму обратной связи. Любые отзывы, баг-репорты и предложения будут очень полезны для нас.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Mikhail Gelvikh. Beta testing: updated parser for C and C++ code analysis.

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Тяжела и неказиста жизнь простого программиста статических анализаторов кода

Команда PVS-Studio, содействуя разработке методики испытаний статических анализаторов под руководством ФСТЭК, составляла некоторые синтетические тесты. Писать синтетические тесты сложнее, чем кажется, и с их достоверностью всегда масса нюансов. Я никогда не любил синтетические тесты и продолжаю их не любить. Но что делать, они тоже нужны, когда речь заходит о необходимости подтвердить, что в анализаторах реализован определённый набор технологий.

Даже зная и понимая нюансы составления синтетических тестов, мы всё равно наступили на собственные грабли! Переиграли сами себя :)

Есть составленные нами тесты, в которых в функцию srand или её аналог передаётся константное значение. Это приводит к тому, что функция rand каждый раз будет генерировать одинаковую последовательность псевдослучайных чисел. Такой код, согласно ГОСТ Р 71207-2024, п. 6.3.г, может являться ошибкой некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

Когда тесты подготавливались в Compiler Explorer, всё работало: PVS-Studio выдавал предупреждение V1057. А сейчас, когда код мило и скромно лежит в файлах, не работает. На Compiler Explorer работает, а вне — нет. Магия. Уже собрались баг в анализаторе искать.

Ах нет, всё просто. Файлы с тестами называются test_err_*.cpp. И в детекторе срабатывает исключение N4: "Находимся в файле, содержащем в названии слова check/test/bench". Тьфу. Причём получается, что анализатор прав: это действительно тест, а не настоящий баг :) Вот оно, несовпадение реальности и синтетических проверок в действии. Выкрутимся как-нибудь, но решил описать, так как случай интересный.

Зачем такое исключение? При разработке анализатора самое важно состоит не в том, чтобы выдать предупреждение, а в том, чтобы постараться не выдать лишнее. У всех анализаторов ложноположительных срабатываний всегда больше, чем хочется.

При экспертизе коллекции проектов стало ясно, что если это файлы с тестами, то писать srand(константа) абсолютно нормально. Более того, так специально делают, чтобы тесты вели себя повторяемо от запуска к запуску. Вот и было принято решение сделать соответствующее исключение. Теоретически это может скрыть реальную ошибку, но на практике в большой коллекции проектов, на котором мы прогоняем новые диагностические правила, такого не было. Зато в юнит-тестах этих проектов такое встречалось часто, и, соответственно, предупреждение оказывалось бессмысленным.

Был рад поведать немного интересного из жизни разработчиков статических анализаторов кода. А если хочется послушать что-то ещё, приглашаю на подкаст "Статический анализ по серьёзному" с моим участием 27 мая в 19:00 по Москве.

Теги:
Всего голосов 10: ↑10 и ↓0+14
Комментарии1

ГОСТ Р 56939-2024 – Разработка безопасного программного обеспечения (РБПО)

20 декабря 2024 года введён ГОСТ Р 56939-2024 взамен ГОСТ Р 56939—2016. Хотя уже прошло около полугода, не все про это знают, осознают это или как-то подстраиваются под произошедшие изменения :) А изменения есть, так как новый ГОСТ ориентирован на построение и контроль процессов, обеспечивающих цикл безопасной разработки в компании.

Update 2026. Публикации в канале, вебинары и другие ресурсы легли в основу создания информационной подборки о разработке безопасного программного обеспечения по ГОСТ Р 56939‑2024 – ГОСТ56939.РФ

Несколько информационных моментов.

1. Цикл публикаций в моём канале "Бестиарий программирования" на тему РБПО

Я начинаю большой цикл публикаций в Telegram, посвящённый РБПО и ГОСТ Р 56939-2024. Приглашаю подписываться всех, кто хочет постепенно знакомиться с этой темой и разбираться в ней.

2. Вебинары РБПО-направленности

Мы уже провели совместно с другими компаниями два вебинара, связанных с ГОСТ Р 56939-2024:

  1. Интеграция статического анализа и DevSecOps: PVS-Studio и AppSec.Hub в действии.

  2. Внедрение процессов безопасной разработки. Интеграция PVS-Studio и SGRC SECURITM.

Приглашаем принять участие в следующем совместном с "ИНСЕК" вебинаре "Регулярный статический анализ по ГОСТу" (21 мая 12:00 по Москве), где они презентуют InSeq RBPO.

Приглашаем и другие компании к технологическому и/или информационному сотрудничеству. Напишите нам в поддержку или моему ассистенту.

3. Сертификация ФСТЭК

В последнее время нас спрашивают, подходит ли PVS-Studio для сертификации, и есть ли у нас сертификат ФСТЭК?

Для PVS-Studio нет сертификата ФСТЭК, так как он не нужен (для статических анализаторов процедура сертификации является добровольной).

PVS-Studio может использоваться как инструментальное средство статического анализа кода при построении процессов РБПО по ГОСТ Р 56939-2024.

PVS-Studio успешно применяется испытательными лабораториями, аккредитованными в системах сертификации средств защиты информации ФСТЭК России в рамках работ по сертификационным испытаниям программных продуктов, так как соответствует необходимым критериям (для заказчиков и сертификационных лабораторий мы подготовили информационное письмо):

  • PVS-Studio включён в Реестр российского ПО (запись № 9837 от 18.03.2021);

  • PVS-Studio удовлетворяет функциональным требованиям к инструментам статического анализа кода, описанным в Методическом документе "Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении" (издание второе, доработанное, утверждён ФСТЭК России 25 декабря 2020 г.);

  • продукт разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024.

Подробнее: Сертификация ФСТЭК. Если у вас есть вопросы, напишите нам в поддержку или позвоните по телефону +7(903)844-02-22.

 

 

Теги:
Всего голосов 7: ↑6 и ↓1+8
Комментарии8

Проблемы в работе плагина PVS-Studio для Visual Studio

Несколько пользователей сообщили нам, что в работе плагина PVS-Studio для Visual Studio версии 17.12 и выше происходят проблемы, не позволяющие запустить плагин. В этой заметке мы опишем проблему и предложим способы её решения.

У некоторых пользователей статического анализатора PVS-Studio при использовании плагина для интегрированной среды разработки Microsoft Visual Studio 2022 происходило завершение работы плагина, связанное с внутренней ошибкой. А на экране появлялся страшный список вызовов:

Exception message:

One or more errors occurred.

Exception type:

System.AggregateException

Stack:    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)

   at System.Threading.Tasks.Task.Wait()

   at ProgramVerificationSystems.PVSStudio.PVSStudio.InitializeErrorListWindow(Boolean isFromPackageLoadedEvent) in D:\\JenkinsProjects\\workspace\\proj_PVS_Setup_Docker\\WorkDir\\PVS-Studio\\PVS-Studio\\VsPkg.cs:line 2414

Inner Exception:

Exception message:

Exception from HRESULT: 0x80042007

Exception type:

System.Runtime.InteropServices.COMException



Stack: at Microsoft.VisualStudio.Shell.Interop.IVsShell5.LoadPackageWithContext(Guid& packageGuid, Int32 reason, Guid& context)
....

Возникновение этой ошибки обусловлено тем, что в версии Visual Studio 2022 17.12 был изменён API этой среды разработки для взаимодействия с плагинами. Поэтому в версии PVS-Studio 7.33 мы внесли необходимые изменения в плагин для Visual Studio, и на этой версии с указанной средой разработки анализатор работает корректно.

Следовательно, для решения этой проблемы есть следующие варианты:

  • обновить анализатор PVS-Studio до версии 7.33 или выше;

  • откатить версию среды разработки Visual Studio 2022 на предыдущую.

Если после выполнения указанных выше рекомендаций ситуация не решилась, или же вы столкнулись с другой проблемой при использовании нашего анализатора, не стесняйтесь сообщить нам о ней с помощью специальной формы на сайте. Мы приложим все возможные усилия, чтобы решить вашу проблему!

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Valerii Filatov. Issues: PVS-Studio plugin for Visual Studio.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Использование статических анализаторов кода при разработке безопасного ПО

В апреле 2024 года вышел ГОСТ Р 71207-2024, посвящённый разработке безопасного программного обеспечения, а точнее использованию статических анализаторов в этом процессе. В данном вебинаре разберём, что этот стандарт регулирует, а также то, что нужно изменить в рабочем процессе, чтобы ему соответствовать.

Дата: 19 декабря 14:00

Регистрация по ссылке. Будем рады видеть каждого!

Теги:
Рейтинг0
Комментарии0

В этом вебинаре мы обсудили грамматические конструкции в С++ и как они работают. Мы поговорили о разных видах парсеров и о том, почему С++ сложно парсить. Мы также поделились некоторыми хитростями, позволяющими избежать чрезмерного замедления.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

C# разработка и статический анализ: в чем практическая польза?

Многие C# разработчики знают, что статический анализатор кода — это полезная штука (или крутой инструмент?). Но какие проблемы он может выявить в реальности?

  • Заметит незакрытую скобку?

  • Укажет на плохое название или проблемы с код-стайлом?

  • Выявит NRE или выход за границы массива?

  • Или же он способен на что-то большее?

Узнаем в новом вебинаре, посвященном использованию статических анализаторов для проверки и улучшения C# проектов. Узнаем возможности инструмента на реальных примерах, его сильные и слабые стороны. А ещё разберём тему безопасной разработки, узнаем, способны ли выявлять анализаторы уязвимости и причём тут новый ГОСТ 71207.

18 ноября 14:00

Ссылка на регистрацию здесь.

Присоединяйтесь! Будем рады пообщаться!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Заключительный пятый вебинар, посвящённый статическому анализу кода с точки зрения ГОСТ Р 71207–2024.

Поговорим о процессах внедрения и выполнения статического анализа. Достаточно ли регулярно запускать анализатор, но не смотреть на отчёты? Конечно, нет. Хотя, к сожалению, такое встречается в жизни. Стандарт регламентирует, когда и кем предупреждения должны просматриваться, в какие сроки ошибки должны исправляться. Рассмотрим эти и другие аспекты регулярного использования статических анализаторов в процессе разработки ПО. Также затронем тему требования к методике проверки статических анализаторов на соответствие требованиям стандарта, актуальную для сертификационных лабораторий.

Когда?
13 сентября 14:00

Ссылка на регистрацию.

Присоединяйтесь! Будем рады каждому!

Теги:
Всего голосов 3: ↑2 и ↓1+5
Комментарии0

Друзья, совсем скоро состоится четвёртый из пяти вебинаров, посвящённых введённому в 2024 году ГОСТу Р 71207–2024.

Вебинар посвящён устройству статических анализаторов кода. Мы обсудим, как и какие виды анализов должен выполнять инструмент согласно ГОСТ, чтобы находить критические ошибки. Например, разберём, что такое контекстно-чувствительный анализ потока данных и какие баги он позволяет выявлять.

Вебинар пройдёт 23 августа в 14:00.

По этой ссылке можно зарегистрироваться. Также вам будут доступны записи предыдущих вебинаров :)

Будем рады видеть каждого! Всем чистого кода!

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Вебинары PVS-Studio: Статический анализ кода по ГОСТ Р 71207–2024

1 апреля 2024 года введён стандарт, устанавливающий общие требования к внедрению и выполнению статического анализа ПО. Стандарт разработан ФСТЭК России и ИСП РАН и входит в комплекс документов, направленных на предотвращение уязвимостей в программах.

Команда PVS-Studio не могла оставить без внимания этот документ. Например, поставлена задача выделить группу диагностик, выявляющих ошибки, которые по ГОСТу считаются критическими.

Поскольку мы погрузились в эту тему, то решили про неё рассказать другим в научно-популярном виде.

Уже состоялись два из пяти вебинаров: "Общее описание и актуальность" и "Терминология". С ними можно познакомиться здесь. Следующий мы проведём 9 августа в 12:00 по Москве: "ГОСТ Р 71207–2024 — Статический анализ программного обеспечения. Критические ошибки". Зарегистрироваться можно тут.

Если не знаете, готовы ли слушать цикл, и хочется составить общее впечатление про стандарт и про то, о чём рассказываем, послушайте этот доклад.

И ещё для C++ разработчиков:

Совместно с Servicepipe 8 августа мы будем проводить бесплатный митап "В чём сила C++, Брат?". Филипп Хандельянц, C++ Team Lead PVS-Studio, выступит с темой "Разрушители мифов: С++ уже не торт". Приглашаем поучаствовать!

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Информация

Сайт
pvs-studio.ru
Дата регистрации
Дата основания
2008
Численность
51–100 человек
Местоположение
Россия
Представитель
Андрей Карпов