Контакты
Подписка 2025

MISRA: повышение безопасности встраиваемых систем через SAST

Михаил Гельвих, 01/07/25

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

Автор: Михаил Гельвих, руководитель отдела технического сопровождения ООО “ПВС”

ris0-3

Почему требования к ПО для встраиваемых систем так высоки

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

Критическая особенность – работа в режиме реального времени с детерминированным поведением. Задержка реакции системы даже на миллисекунды может иметь катастрофические последствия. Например, в системах управления торможением автомобиля или в кардиостимуляторах временные характеристики не менее важны, чем корректность вычислений.

В отличие от обычного ПО, встраиваемые системы напрямую взаимодействуют с физическим миром через датчики и исполнительные механизмы, что требует особого внимания к обработке входных данных и контролю выходных сигналов. Ошибка в коде может привести не к "синему экрану смерти", а к реальной аварии. Кроме того, типичный срок службы встраиваемой системы может достигать 10–20 лет без возможности обновления. Это означает, что все потенциальные проблемы должны быть выявлены и устранены до начала эксплуатации.

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

Стандарт MISRA: что это такое и для чего он нужен?

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

Успех MISRA объясняется практическим подходом: стандарт не изобретал новых языков программирования, а лишь определял безопасное подмножество существующих языков C и С++, исключая потенциально опасные конструкции и неоднозначное поведение.

MISRA использует четкую иерархию правил по степени их важности:

  • обязательные (mandatory) – нарушение этих правил недопустимо, поскольку ведет к серьезным рискам;
  • необходимые (required) – допускаются исключения, но каждое отклонение должно быть документировано;
  • рекомендуемые (advisory) – отражают лучшие практики, соблюдение которых улучшает качество кода, однако они не являются обязательными.

Уникальная особенность MISRA – концепция документированных отклонений (deviations). Признавая невозможность слепого следования всем правилам в реальных проектах, стандарт требует формального процесса для каждого отклонения: составления отчетов (MISRA Compliance), анализа рисков, обоснования необходимости и утверждения ответственным лицом.

Стандарт MISRA делает акцент на использование средств автоматизированной проверки исходного кода, таких как статические анализаторы, классифицируя каждое правило как разрешимое (decidable) или неразрешимое (undecidable). Разрешимые правила позволяют статическим анализаторам однозначно определить соответствие, тогда как неразрешимые указывают на случаи, требующие дополнительной проверки со стороны разработчиков.

ris1-Jul-01-2025-01-54-18-0065-PM
Рис. 1. Пример отчета MISRA Compliance, полученный с помощью PVS-Studio

Ключевые ограничения стандарта MISRA

Стандарт MISRA вводит ряд строгих ограничений, направленных на повышение безопасности и надежности программного кода. Рассмотрим основные из них.

Работа с указателями, памятью и битовыми операциями

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

Ограничение на использование препроцессора и форматных строк

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

Организация кода и детерминированное поведение

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

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

ris2-Jul-01-2025-01-55-09-2430-PM
Рис. 2. Просмотр MISRA предупреждений PVS-Studio в плагине для IDE Qt Creator

Зачем российским компаниям внедрять стандарт в разработку?

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

Международная интеграция и экспорт

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

Импортозамещение и технологический суверенитет

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

Доступ к международному опыту

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

Выход на новые рынки

Соответствие MISRA открывает возможности для выхода на рынки Азии и Ближнего Востока, усиливая конкурентоспособность российских разработок.

Упрощение взаимодействия с регуляторами

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

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

Практические советы по внедрению MISRA

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

Российский статический анализатор PVS-Studio (запись в едином реестре российского ПО No 9837) полностью соответствует указанным требованиям. Он автоматизирует рутинную проверку множества аспектов стандарта, позволяя разработчикам сосредоточиться на действительно критичных задачах. Особое внимание заслуживает обширный набор диагностических правил, включающих как правила общего назначения, так и правила микрооптимизаций.

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

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

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

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

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

Темы:АСУ ТПРБПОЖурнал "Информационная безопасность" №2, 2025SASTMISRAPVS-Studio

Программа мероприятий
для руководителей и специалистов
по защите информации

Посетить
Кибербезопасность
Форум ITSEC 2025 | Москва | Radisson Blu Belorusskaya. Мероприятия для директоров и специалистов по ИБ, инженеров, ИТ-руководителей и разработчиков
Регистрируйтесь и участвуйте 14-15 октября →
Статьи по той же темеСтатьи по той же теме

  • Без полумер и человека: грамотная автоматизация спасет АСУ ТП от киберугроз
    Андрей Кузнецов, менеджер продукта “Синоникс” в компании “АйТи Бастион”
    Минимизация участия человека в производственных процессах – один из главных пунктов обеспечения информационной безопасности АСУ ТП. Человеческий фактор в мире автоматизированных систем до сих пор остается ключевой уязвимостью крупных организаций. Несмотря на то, что многие предприятия до сих пор сопротивляются глобальной цифровизации, нужно смотреть правде в глаза: тренд на автоматизацию производств был, есть и, с учетом развития технологий сегодня, абсолютно точно останется. С этим можно спорить, трепетно вычитывая регуляторные требования, а можно поддаться благому течению технологий и жить. Тем более, что для этого есть необходимые и удобные инструменты даже в случае АСУ ТП. Об этих инструментах и грамотном пути к безопасному обмену данными на производствах и поговорим.
  • Переход на отечественные АСУ ТП: опыт, ошибки, рекомендации
    Переход на отечественные компоненты в АСУ ТП – задача не только технологическая, но и стратегическая: от правильного выбора решений зависят безопасность, стабильность и сопровождаемость критической инфраструктуры. Участники отрасли отмечают, что при всей интенсивности развития российского рынка, зрелость отечественных решений всё ещё неоднородна – особенно в части интеграции с системами ИБ и реализации принципов безопасной разработки. 
  • Киберустойчивость в энергетике: как избежать иллюзий?
    Евгений Генгринович, советник генерального директора компании “ИнфоТеКС”
    Когда речь заходит о цифровой трансформации в АСУ ТП, наравне с вопросами информационной безопасности все чаще поднимается тема киберустойчивости. Устойчивость важна для любой технологической системы – будь то электроэнергетика, нефтегазовая отрасль или нефтехимия. Основная задача любого технологического процесса – достижение запланированных бизнес-результатов, и службы эксплуатации традиционно отвечают за его надежность.
  • Как на практике устранять разрывы между защитой ИТ и AСУ ТП?
    Несмотря на очевидную техническую разницу между ИТ и АСУ ТП, именно организационные барьеры чаще всего мешают выстроить устойчивую систему кибербезопасности в промышленности. Недостаточно просто поделить ответственность между подразделениями: требуется новая модель совместной работы, в которой ИТ, ИБ и технологи не просто "сотрудничают", а действуют как единая команда с общими целями и пониманием процессов. 
  • Аутсорсинг SOC для АСУ ТП: выход или угроза?
    Идея аутсорсинга SOC в промышленности все чаще обсуждается как способ повысить устойчивость и снизить затраты. Однако эксперты сходятся во мнении: применять эту модель в индустриальной сфере напрямую, по шаблону ИТ-инфраструктур, рискованно. Промышленные процессы требуют не просто мониторинга инцидентов, а глубокого понимания технологической специфики и особенностей функционирования АСУ ТП. 

Хотите участвовать?

Выберите вариант!

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2025
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
Linux
Персональные данные в 2026 году: новые требования
Обсудим 15 октября на Форуме ITSEC 2025. Регистрация →

More...
ТБ Форум 2025
Защита АСУ ТП и КИИ: готовимся к 2026 году
Регистрация участников на конференцию 16 октября →

More...