Бестиарий программирования
الذهاب إلى القناة على Telegram
Наблюдения за жизнью ошибок в коде. Андрей Карпов. ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8
إظهار المزيد1 119
المشتركون
لا توجد بيانات24 ساعات
+27 أيام
+3230 أيام
أرشيف المشاركات
Методика ВУ и НДВ – 2026 (пост №3 из 3)
Должна быть выполнена ручная разметка всех предупреждений о критических ошибках, выданных анализаторами. Обратите внимание, что речь идёт о фокусе на ошибках критического типа.
Анализаторы выдают разнообразнейшие предупреждения, многие из которые могут иметь стилистический характер: способ именования переменных, запрет приведения типов в стиле языка C, запрет на использование оператора
goto и т. д. Попытка отрефакторить все места кода, где выданы подобные предупреждения, или разметить все предупреждения крайне трудоёмка и на практике слабо повлияет на безопасность. Возникает вопрос, какие предупреждения анализаторов обязательны к разбору, а какие нет?
Ответ на него даёт ГОСТ 71207—2024 "Статический анализ программного обеспечения", где введено понятие критическая ошибка. Именно предупреждения, указывающие на потенциальное наличие критической ошибки, и должны быть разобраны/размечены в обязательном порядке.
Анализатор PVS-Studio выявляет все типы критических ошибок и помечает их специальным маркёром. Подробнее про разметку критических ошибок и работу с ними можно прочитать в статье "Фильтрация предупреждений PVS-Studio, выявляющих критические ошибки (согласно классификации ГОСТ Р 71207—2024)".
Разработчиками выполняется разметка всех предупреждений, предусмотренных планом поддержки безопасности заимствованных компонентов (в случае внесения изменения в сертификационный ОО).
Дополнительные требования к статическому анализатору начинаются с 4 уровня доверия. Испытательной лабораторией проверяется, что используемый статический анализатор отвечает требованиям ГОСТ 71207—2024 "Статический анализ программного обеспечения".
Информацию о требованиях к исследованию с помощью статического анализа кода для более высоких уровней доверия можно получить из полной версии методического документа.
Примером анализатора, совместимого с ГОСТ 71207—2024, является PVS-Studio:
1. Статический анализатор кода PVS-Studio в 2026: ГОСТ Р 71207, ГОСТ Р 56939, приказ ФСТЭК №117
2. Кратко об итогах испытаний статических анализаторов исходного кода в 2025 году
Основные характеристики PVS-Studio:
• поддерживает: C, C++, C#, Java, (скоро Go, JavaScript, TypeScript);
• совместим с ГОСТ Р 71207—2024 (Статический анализ кода);
• может применяться для РБПО согласно ГОСТ Р 56939—2024;
• соответствует требованиям Методики от 12 мая 2026 года;
• включён в Реестр российского ПО: запись № 9837;
• имеет сертификат технической совместимости с Astra Linux — №31190/2025;
• запросить демонстрацию PVS-Studio.Методика ВУ и НДВ – 2026 (пост №2 из 3)
Статический анализ исходного кода объекта оценки требуется начиная с 5 уровня контроля (таблица 3 в разделе 4.2 выписки). Но для 5 уровня нет требований к анализаторам кода. Эти требования появляются начиная с 4 уровня доверия.
Задачей исследования является выявление недостатков безопасности кода методами и инструментами статического анализа кода в соответствии с ГОСТ 56939—2024. В стандарте этому посвящён раздел 5.10 — Статический анализ исходного кода.
В первую очередь исходными данными для проведения исследования является исходный код объекта оценки. Статический анализ выполняется разработчиком ОО в отношении исходного кода всех модулей, составляющих поверхность атаки.
Статический анализ выполняется разработчиком для всех высокоуровневых языков программирования, которые встречаются в исходном коде модулей. Здесь уместно напомнить, что согласно ГОСТ Р 71207—2024 (п. 5.2) необходимо выбрать один или несколько статических анализаторов. Не ставится задача выбрать только один инструмент сразу для всех языков.
Используемые статические анализаторы должны реализовывать автоматизированный анализ исходного кода на уровне синтаксического дерева. Это базовое с точки зрения технологий анализа требование служит для того, чтобы отсечь совсем простые инструменты (линтеры), где детекторы реализуются только с помощью регулярных выражений. Почему построение полноценного анализа возможно только на базе синтаксического дерева, см. в статье "Статический анализ и регулярные выражения".
Методика ВУ и НДВ – 2026 (пост №1 из 3)
Событие, которое РБПО-сообщество ожидало уже несколько месяцев. 12 мая 2026 года ФСТЭК была утверждена "Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении" (далее — Методика). Методика приведена в соответствие с ГОСТ Р 56939—2024.
Из информационного сообщения В. Лютикова от 28 мая № 240/24/3693:
Методика ориентирована на проведение исследований, выполняемых испытательными лабораториями и разработчиками в рамках сертификационных испытаний программных, программно-аппаратных средств защиты информации и защищённых программных, программно-технических средств, а также в рамках внесения изменений в ранее сертифицированные средства. Разработчикам программного обеспечения средств защиты информации рекомендуется использовать положения настоящей Методики для организации внутренних процессов жизненного цикла программного обеспечения в соответствии с ГОСТ Р 56939—2024 "Защита информации. Разработка безопасного программного обеспечения. Общие требования".Если вы ещё не знакомы с обновлённым стандартом, то предлагаю взглянуть на подборку материалов "Разработка безопасного программного обеспечения (РБПО) по ГОСТ Р 56939—2024". Подборка основана на 30 вебинарах, проведённых с экспертами из различных компаний, и будет хорошей отправной точкой для знакомства с РБПО и ГОСТ Р 56939—2024. Соответственно, с выходом новой Методики старая более не применяется:
В связи с утверждением настоящей Методики положения методического документа "Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении", утверждённого ФСТЭК России 25 декабря 2020 г., не применяются.С рассуждением о вопросе "Как быть с уже идущими работами по старой методике?" можно познакомиться в здесь (Информационный канал сообщества ФСТЭК России и ИСП РАН). Примечательно, что впервые выложена выписка из Методики (для 6-4 уровней доверия). Теперь затрону некоторые моменты, которые так или иначе касаются близкой нам темы — статического анализа кода. В выписке говорится (п.2.3.л), что при проведении исследования объектов оценки (далее — ОО) используются методики статического анализа заимствованных компонентов с открытым исходным кодом, опубликованные на сайте Центра исследований в разделе "Методика проведения статического анализа". Как я понимаю, имеются в виду следующие методические материалы: • Методика проведения статического анализа ядра Linux • Инструкция по импорту результатов разметки предупреждений SVACE • Инструкция по проведению разметки результатов статического анализа ядра Linux Здесь речь идёт исключительно про работу с ядром Linux с помощью конкретно анализатора Svace. Однако суть этих материалов может быть легко перенесена на другие открытые библиотеки и анализаторы кода. Примечание. Для разметки (выставления вердиктов, обмена комментариями и т. д.) в экосистеме PVS-Studio появился инструмент ATLAS в двух редакциях: • Atlas Viewer — десктопное приложение для работы с одним отчётом анализатора PVS-Studio. • Atlas Server — серверное решение для работы с отчётами статических анализаторов кода в многопользовательском режиме.
Repost from PVS-Studio: поиск ошибок в коде
Продолжаем делиться докладами с прошедших конференций! На этот раз у нас тут доклад с Joker 2025 🔥
Тема: "Как компилятор видит код. Поиск уязвимостей на графах"
Посмотрели, как код превращается из исходного представления в графовое, чтобы ответить на вопрос: «Как компилятор видит код?». Прошлись по технологиям фронтенда — от AST и графов на его основе до карты вызовов — и посмотрели на их визуализацию.
В качестве кейса взяли поиск уязвимостей небезопасной обработки внешних данных с помощью taint-анализа. Заодно узнали, почему обход графов — это не только про задачи на литкоде.
Доклад будет полезен как тем, кто хочет создать свой инструмент для работы с кодом, так и тем, кто хочет узнать, из чего состоит фронтенд компилятора, как он видит код и как использует это представление.
Посмотреть можно тут:
- наш сайт
- VK Video
- Rutube
- YouTube
#доклад
Раз речь зашла об использовании ИИ для подготовки материалов, хочу законспектировать ещё одну мысль: ИИ можно использовать для поиска данных, анализа материала, исследований и т. д.
Но надо чётко понимать, что исследования являются, во-первых, "археологическими" (что было в интернете, книгах, ...), а во-вторых, ограничено доступным для ИИ материалом. Если нет материала, не будет и никакого исследования, а только словоблудие. Боюсь, что не все и не всегда это понимают, создавая "обзоры продуктов", "сравнение с конкурентами", "исследования рынка" и так далее.
Попробую объяснить на примере. Если начать делать с помощью ИИ сравнение PVS-Studio и Cppcheck, то не будет никакого исследования на самом-то деле! Вернее, будет, на основе того, что написано в интернете, и не более того. Неизвестно, насколько это старая/полная информация и насколько полученный вывод будет соответствовать действительности. Ведь ИИ не пойдёт сам скачивать анализаторы, смотреть их интерфейс и запускать на разных проектах.
Можно сказать, что это всё и так понятно, но наблюдая безудержный рост ИИ-статей, в том числе "исследовательских", стоит лишний раз проговорить банальную вещь. Ответы ИИ – это переваренный материал из интернета. Кто больше/громче про себя написал, тот в исследовании и будет лучше. Вот и вся достоверность.
Между исследованием и "ИИ, сравни эти штуки" может лежит пропасть. Например, если говорить об испытаниях анализаторов, несколько компаний занимались этим год и то не сделали всё, что хотели (Кратко об итогах испытаний статических анализаторов исходного кода в 2025 году). Это можно назвать исследованием, а не вот это вот всё...
P.S. Ради интереса задал пару вопросов DeepSeek про детекторы утечек памяти: 1, 2. Как пафосно он нахваливает PVS-Studio! :) Я бы постеснялся быть таким безапелляционным. А ему-то что — про PVS-Studio подробно написано, вот и результат. Единственный вывод: мы молодцы и хорошо описываем наши возможности :)
Время от времени начал сталкиваться с тем, что разные люди присылают выхлоп нейросети как ответ или как описание чего-то. Я не про коллег. Сотрудников, как учат в Стратоплане, можно "учить-лечить-мочить". Есть внешний мир людей, с которым сложно что-то делать.
Поскольку бессмысленных и беспощадных текстов будет становиться всё больше, появилась задумка сделать специальную мини-статью или даже раздел на сайте и отправлять туда всех, кто стал прокладкой между мной и ИИ :) Уверен, другим такой ресурс тоже пригодится.
Неудивительно, что такая же идея пришла в голову не только мне. Так что всё уже сделано. Держите ссылку: Не вставляй мне нейросеть, пожалуйста.
Repost from SourceCraft
🔓 Новые security-интеграции в SourceCraft
Мы уже рассказывали, как подключить собственный анализатор кода в SourceCraft, чтобы использовать его в процессах безопасной разработки. Настало время делиться кейсом из практики.
Недавно команда PVS-Studio интегрировала с нашей платформой свой инструмент статического анализа и добавила в документацию инструкцию для его подключения. Теперь все находки этого инструмента можно обрабатывать в интерфейсе SourceCraft Security и ускорять разбор уязвимостей с помощью встроенной функции ИИ-триажа.
❤️ На SourceCraft размещён репозиторий от партнёров с тремя готовыми Docker-образами для быстрого запуска проверки C, Java и .NET кода в CI/CD платформы, а также примером настройки сканирования для проекта на C. Проект можно склонировать и запустить — для работы потребуется действующая лицензия PVS-Studio.
Механизм интеграции открыт для всех анализаторов кода, совместимых с SARIF, и расширяет возможности стандартных проверок SourceCraft.А какие внешние инструменты ждёте вы в SourceCraft?
Просто интересное событие: SEI CERT опубликовал первый стандарт безопасного программирования на Fortran
НЕкурс про разработку безопасного программного обеспечения (РБПО)
Мы подготовили раздел материалов, посвящённых разработке безопасного ПО (РБПО) по ГОСТ Р 56939—2024. Теперь эти материалы представлены в виде бесплатного онлайн-курса из 28 уроков. Такая структура поможет, во-первых, распределить нагрузку при знакомстве с теорией, а во-вторых, проверить свои знания.
Материалы о РБПО по ГОСТ Р 56939—2024
Компания ООО "ПВС" совместно с учебным центром "Маском" провела цикл вебинаров, посвящённых разработке безопасного программного обеспечения (РБПО). Совместно с приглашёнными экспертами из различных компаний мы рассмотрели 25 процессов, приведённых в ГОСТ Р 56939—2024.
Общее количество вебинаров — 30: каждому из 25 процессов ГОСТа посвящено по одному вебинару и 5 записано дополнительно на смежные темы. Записи всех вебинаров и подборка дополнительной информации доступна бесплатно по ссылке: ГОСТ56939.РФ.
Материалы ориентированы на специалистов, которые начинают знакомиться с темой РБПО. Для них они станут отправной точкой погружения в процессы безопасной разработки и внедрением их в компании. Те, кто уже знаком с темой, также найдут для себя новое и полезное.
Теперь с этими материалами и вебинарами можно знакомиться ещё и в формате уроков.
Чем не является курс
Чтобы избежать неправильных ожиданий, просим обратить внимание, что это не курс в области информационной безопасности в классическом понимании.
Во-первых, предлагаемый материал рассчитан на самостоятельное знакомство и не включает практическую часть или взаимодействие с преподавателем.
Во-вторых, существует перечень организаций, осуществляющих образовательную деятельность, имеющих дополнительные профессиональные программы в области информационной безопасности, согласованные с ФСТЭК. Мы не ведём образовательную деятельность, не входим в этот список и не выдаём удостоверяющие документы.
Если вам необходимо направить сотрудников на курсы повышения квалификации и получить подтверждающие документы, то вы можете обратиться в одну из организаций, приведённых в списке. Например, вы можете обратиться в УЦ "Маском", вместе с которым мы проводили вебинары. ФСТЭК России согласовала их программу повышения квалификации М-БРПО "Специалист по процессам разработки безопасного программного обеспечения" (200 часов).
Чем является курс
Суммарное время предлагаемых к изучению вебинаров составляет около 50 часов. Их можно смотреть на ускорении. Однако даже в этом случае с учётом дополнительных материалов и отсылок на внешние ресурсы изучение займёт около двух рабочих недель.
Это достаточно большая задача, поэтому мы решили помочь и разбили материалы на отдельные уроки. Так будет проще усваивать материал, а интерфейс позволяет отмечать, с чем вы уже познакомились.
После завершения курса вы можете пройти тестирование для самопроверки. В качестве приятного бонуса при хорошем прохождении теста вы получите ачивку – сертификат о знакомстве с курсом. Сертификат автоматически генерируется по окончании обучения и тестирования.
Тестирование также может использовать руководитель, чтобы убедиться, что сотрудники действительно изучили материалы и познакомились с основами РБПО.
Начать знакомство c курсом можно после регистрации/авторизации: Разработка безопасного программного обеспечения (РБПО) по ГОСТ Р 56939—2024
Repost from PVS-Studio: поиск ошибок в коде
Про новые интеграции ⚡️
Начиная с релиза 7.42 у нас появилось еще больше новых интеграций:
1️⃣ Qt Creator 19
Появилась поддержка плагина PVS-Studio для Qt Creator версий 19.x. Плагин позволяет запускать анализ, просматривать предупреждения и работать с кодом, не покидая привычную среду разработки. Подробнее о работе с плагином можно прочитать в документации.
2️⃣ Интеграция в SourceCraft
SourceCraft — платформа, с помощью которой можно разрабатывать исходный код, управлять версиями, тестировать, собирать, развёртывать и сопровождать программные продукты. Мы проверили техническую совместимость PVS-Studio с этой платформой и описали процесс её использования в нашей документации.
3️⃣ Официальная интеграция в CMake
Начиная с версии 4.3.0 сборочная система CMake имеет встроенный механизм для работы с PVS-Studio, при котором срабатывания анализатора будут появляться в процессе компиляции проекта. Подробнее об этом можно прочитать в документации.
А тут вы найдете полную заметку со всеми последними обновлениями 👈🏻
#PVS_Studio
Появилась публичная запись доклада моих коллег с C++Russia 2026. Юрий Минаев, Олег Лысый – Семантика C++ изнутри компилятора.
Смотреть: VKvideo, Youtube, Cppconf.
Поговорим о семантике C++ с точки зрения статического анализатора или фронтенда компилятора. Рассмотрим, как устроена таблица символов и как происходит поиск имен, а также как семантика влияет на парсинг. Поговорим о том, как происходит выбор перегрузок и каким образом компилятор находит функции, которые даже не видны в текущей точке программы. Еще затронем тему шаблонов и их инстанцирования.
Дайте посмотреть на нормальный С++ проект, созданный вайб-кодингом
Чтобы корректировать развитие PVS-Studio я заинтересован смотреть C++ проекты, созданные с использованием генеративного AI или, по-простому, вайб-кодинга. Но вот незадача: все кругом пишут про этот самый вайб-кодинг, но я не знаю, как и где искать такие открытые проекты.
Мне попадается какая-то белиберда типа enhance-client, сгенерированная за $15. Но это даже смотреть несерьёзно. По присутствию в репозитории
.obj, .iobj, .ipdb файлов и прочего мусора видно, что автор не понимает, что он делает. Проект не компилируется по разным причинам, например, из-за того, что заложен какой-то огрызок файла bytes.hpp (у массива нет конца).
Если немного поправить и проверить, что удалось собрать, то там лезут перлы вида:
void enhance::modules::autototem::run()
{
....
auto env = enhance::instance->get_env();
if (!env)
{
env->DeleteLocalRef(player);
return;
}
....
}
Предупреждение PVS-Studio: V522 [CWE-476, CERT-EXP34-C, SEC-NULL] Dereferencing of the null pointer 'env' might take place. autototem.cpp 757
Явное разыменование нулевого указателя.
Или бессмысленные сравнения значения типа int с константой 0.1f:
int sdk::minecraft_client::get_attack_cooldown() { .... }
void enhance::modules::shield_breaker::run()
{
....
if (sdk::instance->get_attack_cooldown() > 0.1f)
....
}
Предупреждение PVS-Studio: V674 [CWE-682, CERT-FLP36-C] The '0.1f' literal of the 'float' type is compared to a value of the 'int' type. shield_breaker.cpp 628
Такие ляпы нет смысла серьёзно разбирать и описывать.
Можно спросить: "А что ты хочешь от поделок за 15$?" Да, в общем-то, ничего, но вместо нормальных проектов попадаются они. Мне интересно изучить большие открытые проекты нормального качества, при написании которых используется GenAI. А то пока ощущение, что термин "вайб-кодинг" есть, а C++ проектов нет. Или за них стыдно? :)
Если вы знаете подобные большие проекты, то присылайте ссылки на них в комментарии. Заранее спасибо.Коллега собрала интересные события в мире C++ за последнее время, а также полезные материалы.
У меня сегодня День Рождения. Приобретайте лицензии на PVS-Studio. Мне будет приятно! 🎂❤️
В социальных сетях вирусится высказывание Бьёрна Страуструпа про то, что ИИ в С++ не особо так успешен. Пожалуй, да… Пожалуй, да.
PVS-Studio в CMake: теперь официально
Если у вас кроссплатформенный проект на C или C++, то, как правило, вы не завязываетесь на одну систему сборки, а используете генератор сценариев для сборочных систем. Самый распространённый из них, CMake, недавно получил официальную интеграцию со статическим анализатором PVS-Studio для этих языков.
Repost from PVS-Studio: поиск ошибок в коде
Мы открыли ранний доступ для анализатора TypeScript 🔥
Если вы оставляли заявку, проверьте почту — вам должны были прийти инструкции по тестированию. Если вдруг инструкции не обнаружите, напишите нам в поддержку.
А для тех, кто впервые узнал о разработке нами TS анализатора, вот ссылочка на регистрацию и участие в EAP ❤️
#eap #TS
Продолжаем развивать Go анализатор. Про новую диагностику в PVS-Studio для выявления классического паттерна опечаток. Как можно ошибиться при обработке ошибок в Go.
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
