Бестиарий программирования
1.14K subscribers
373 photos
5 videos
5 files
467 links
Наблюдения за жизнью ошибок в коде.
Андрей Карпов.

ГОСТ Р 71207-2024, ГОСТ Р 56939-2024, РБПО, Статический анализ кода

Канал-дублёр в MAX: https://max.ru/join/3VWTp9apkQvTMSRQ__LGiTQ5NGVBj8p_tOpwlQO6vS8
Download Telegram
Единорог Коди и его товарищ Баг — узнаваемые маскоты PVS-Studio. Этих персонажей вы видели во многих сценариях: при археологических раскопках, в космосе, при ограблении банка, в саду и в сточной канаве. Но как вообще появился этот единорог, и как же он выглядел на заре времён?

Давайте посмотрим хронологию взросления Коди в новой статье, а также изучим самые занятные иллюстрации с его участием! Переходите по ссылке ❤️

#статья #PVS_Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Продолжаем развивать Go анализатор. Про новую диагностику в PVS-Studio для выявления классического паттерна опечаток. Как можно ошибиться при обработке ошибок в Go.
Мы открыли ранний доступ для анализатора TypeScript 🔥

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

А для тех, кто впервые узнал о разработке нами TS анализатора, вот ссылочка на регистрацию и участие в EAP ❤️

#eap #TS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
PVS-Studio в CMake: теперь официально
Если у вас кроссплатформенный проект на C или C++, то, как правило, вы не завязываетесь на одну систему сборки, а используете генератор сценариев для сборочных систем. Самый распространённый из них, CMake, недавно получил официальную интеграцию со статическим анализатором PVS-Studio для этих языков.
❤‍🔥82👍2
В социальных сетях вирусится высказывание Бьёрна Страуструпа про то, что ИИ в С++ не особо так успешен. Пожалуй, даПожалуй, да.
💯5
Продолжаем выкладывать избранные главы книги Сергей Кушниренко – Game++.

Часть 1. С++, движки и архитектуры: Часть 1.1, Часть 1.2.
У меня сегодня День Рождения. Приобретайте лицензии на PVS-Studio. Мне будет приятно! 🎂❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18🏆75😐2
Коллега собрала интересные события в мире C++ за последнее время, а также полезные материалы.
🔥4👏2
Дайте посмотреть на нормальный С++ проект, созданный вайб-кодингом

Чтобы корректировать развитие 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++ проектов нет. Или за них стыдно? :)

Если вы знаете подобные большие проекты, то присылайте ссылки на них в комментарии. Заранее спасибо.
👍8😁1
Появилась публичная запись доклада моих коллег с C++Russia 2025. Юрий Минаев, Олег Лысый – Семантика C++ изнутри компилятора.

Смотреть: VKvideo, Youtube, Cppconf.

Поговорим о семантике C++ с точки зрения статического анализатора или фронтенда компилятора. Рассмотрим, как устроена таблица символов и как происходит поиск имен, а также как семантика влияет на парсинг. Поговорим о том, как происходит выбор перегрузок и каким образом компилятор находит функции, которые даже не видны в текущей точке программы. Еще затронем тему шаблонов и их инстанцирования.
👍7
Про новые интеграции ⚡️

Начиная с релиза 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👌2
НЕкурс про разработку безопасного программного обеспечения (РБПО)

Мы подготовили раздел материалов, посвящённых разработке безопасного ПО (РБПО) по ГОСТ Р 56939—2024. Теперь эти материалы представлены в виде бесплатного онлайн-курса из 28 уроков. Такая структура поможет, во-первых, распределить нагрузку при знакомстве с теорией, а во-вторых, проверить свои знания.

Материалы о РБПО по ГОСТ Р 56939—2024

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

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

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

Теперь с этими материалами и вебинарами можно знакомиться ещё и в формате уроков.

Чем не является курс

Чтобы избежать неправильных ожиданий, просим обратить внимание, что это не курс в области информационной безопасности в классическом понимании.

Во-первых, предлагаемый материал рассчитан на самостоятельное знакомство и не включает практическую часть или взаимодействие с преподавателем.

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

Если вам необходимо направить сотрудников на курсы повышения квалификации и получить подтверждающие документы, то вы можете обратиться в одну из организаций, приведённых в списке. Например, вы можете обратиться в УЦ "Маском", вместе с которым мы проводили вебинары. ФСТЭК России согласовала их программу повышения квалификации М-БРПО "Специалист по процессам разработки безопасного программного обеспечения" (200 часов).

Чем является курс

Суммарное время предлагаемых к изучению вебинаров составляет около 50 часов. Их можно смотреть на ускорении. Однако даже в этом случае с учётом дополнительных материалов и отсылок на внешние ресурсы изучение займёт около двух рабочих недель.

Это достаточно большая задача, поэтому мы решили помочь и разбили материалы на отдельные уроки. Так будет проще усваивать материал, а интерфейс позволяет отмечать, с чем вы уже познакомились.

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

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

Начать знакомство c курсом можно после регистрации/авторизации: Разработка безопасного программного обеспечения (РБПО) по ГОСТ Р 56939—2024
👍4
Forwarded from SourceCraft
🔓 Новые security-интеграции в SourceCraft

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

Недавно команда PVS-Studio интегрировала с нашей платформой свой инструмент статического анализа и добавила в документацию инструкцию для его подключения. Теперь все находки этого инструмента можно обрабатывать в интерфейсе SourceCraft Security и ускорять разбор уязвимостей с помощью встроенной функции ИИ-триажа.

❤️ На SourceCraft размещён репозиторий от партнёров с тремя готовыми Docker-образами для быстрого запуска проверки C, Java и .NET кода в CI/CD платформы, а также примером настройки сканирования для проекта на C. Проект можно склонировать и запустить — для работы потребуется действующая лицензия PVS-Studio.

Механизм интеграции открыт для всех анализаторов кода, совместимых с SARIF, и расширяет возможности стандартных проверок SourceCraft.


А какие внешние инструменты ждёте вы в SourceCraft?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
Время от времени начал сталкиваться с тем, что разные люди присылают выхлоп нейросети как ответ или как описание чего-то. Я не про коллег. Сотрудников, как учат в Стратоплане, можно "учить-лечить-мочить". Есть внешний мир людей, с которым сложно что-то делать.

Поскольку бессмысленных и беспощадных текстов будет становиться всё больше, появилась задумка сделать специальную мини-статью или даже раздел на сайте и отправлять туда всех, кто стал прокладкой между мной и ИИ :) Уверен, другим такой ресурс тоже пригодится.

Неудивительно, что такая же идея пришла в голову не только мне. Так что всё уже сделано. Держите ссылку: Не вставляй мне нейросеть, пожалуйста.
😁6👍3
Раз речь зашла об использовании ИИ для подготовки материалов, хочу законспектировать ещё одну мысль: ИИ можно использовать для поиска данных, анализа материала, исследований и т. д.

Но надо чётко понимать, что исследования являются, во-первых, "археологическими" (что было в интернете, книгах, ...), а во-вторых, ограничено доступным для ИИ материалом. Если нет материала, не будет и никакого исследования, а только словоблудие. Боюсь, что не все и не всегда это понимают, создавая "обзоры продуктов", "сравнение с конкурентами", "исследования рынка" и так далее.

Попробую объяснить на примере. Если начать делать с помощью ИИ сравнение PVS-Studio и Cppcheck, то не будет никакого исследования на самом-то деле! Вернее, будет, на основе того, что написано в интернете, и не более того. Неизвестно, насколько это старая/полная информация и насколько полученный вывод будет соответствовать действительности. Ведь ИИ не пойдёт сам скачивать анализаторы, смотреть их интерфейс и запускать на разных проектах.

Можно сказать, что это всё и так понятно, но наблюдая безудержный рост ИИ-статей, в том числе "исследовательских", стоит лишний раз проговорить банальную вещь. Ответы ИИ – это переваренный материал из интернета. Кто больше/громче про себя написал, тот в исследовании и будет лучше. Вот и вся достоверность.

Между исследованием и "ИИ, сравни эти штуки" может лежать пропасть. Например, если говорить об испытаниях анализаторов, несколько компаний занимались этим год и то не сделали всё, что хотели (Кратко об итогах испытаний статических анализаторов исходного кода в 2025 году). Это можно назвать исследованием, а не вот это вот всё...

P.S. Ради интереса задал пару вопросов DeepSeek про детекторы утечек памяти: 1, 2. Как пафосно он нахваливает PVS-Studio! :) Я бы постеснялся быть таким безапелляционным. А ему-то что — про PVS-Studio подробно написано, вот и результат. Единственный вывод: мы молодцы и хорошо описываем наши возможности :)
🔥9🤔1
Вайбкодинг. Итоги.
😁18🤣6🔥4
Продолжаем делиться докладами с прошедших конференций! На этот раз у нас тут доклад с Joker 2025 🔥

Тема: "Как компилятор видит код. Поиск уязвимостей на графах"

Посмотрели, как код превращается из исходного представления в графовое, чтобы ответить на вопрос: «Как компилятор видит код?». Прошлись по технологиям фронтенда — от AST и графов на его основе до карты вызовов — и посмотрели на их визуализацию.

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

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

Посмотреть можно тут:
- наш сайт
- VK Video
- Rutube
- YouTube

#доклад
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥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 — серверное решение для работы с отчётами статических анализаторов кода в многопользовательском режиме.
😭3