Два компонента: IGL‑Converter (фронтенд для C и C++‑подобного поднабора: AST/NAST, security‑профиль, IR/MMIO) и IGL‑RV‑emb (Draft/Alpha runtime для запуска WebAssembly‑модулей в sandbox на ARM Cortex‑M и RISC‑V). Фокус - предсказуемая память, ограничения выполнения и трассируемый доступ к периферии.
Статус: v0.1 Draft/Alpha. Поддержка языка/фич и уровень защитных механизмов зависят от профиля, бэкенда и целевой платформы.
Ключевые компоненты:
IGL‑Converter - фронтенд/конвертер для embedded‑кода (C и C++‑подобный subset), который строит AST/NAST, выполняет семантические проверки и применяет правила security‑профиля, после чего понижает программу в промежуточное представление (IR) и целевые форматы. Цель - предсказуемое поведение, сильная диагностика и контролируемый доступ к MMIO в рамках заданных политик.
Подход (v0.1):
1. Единый пайплайн: preprocess → parse/AST → semantic → NAST → security profile → IR/MMIO → targets/runtime.
2. Профилированная безопасность: запреты и проверки (например, без исключений и без динамической памяти; опциональные runtime checks).
3. Мультитаргетинг: генерация C и WebAssembly возможна для поддерживаемого поднабора и выбранного бэкенда.
Политики исполнения:
1. Ограничения времени/итераций (fuel), контроль доступных возможностей (allowlist) - по конфигурации.
2. Возможность встроить проверку аутентичности модулей (например, подписи) - если включено в интеграции/сборку.
Особенности:
1. no‑std/без ОС — по целевому дизайну.
2. Требования по памяти/flash зависят от конфигурации runtime и набора поддерживаемых WASM‑фич (цифры фиксируются на целевом MCU в пилоте).
3. Внедрение этого решения не требует замены железа - работает на существующих микроконтроллерах.
Фронтенд и конвейер проверок для embedded‑кода
Draft/Alpha WASM‑runtime для микроконтроллеров
Интеграция в рабочий процесс
Примечание: IGL v0.1 - Draft/Alpha. Security‑профили и sandbox снижают риски, но итоговая защищённость зависит от конфигурации, целевого MCU, цепочки поставки и принятой модели угроз.
на внедрение и сопровождение практик безопасности (зависит от проекта)
в сборку/CI/CD как шаг пайплайна (оценка зависит от покрытия и профиля)
требования зависят от конфигурации WASM‑фич, sandbox и целевого MCU
по производительности - зависят от включённых проверок и лимитов
Примечание: значения зависят от модели угроз, конфигурации профиля, бэкенда и целевой платформы. Для пилота обычно фиксируются измеримые метрики на вашем коде.
Примечание: IGL v0.1 - Draft/Alpha. Набор файлов и покрытие стадий зависят от выбранного профиля и бэкенда.
IGL помогает:
• ограничивать опасные возможности языка через профиль;
• снижать риск классов runtime‑ошибок (в зависимости от включённых checks и политики выполнения);
• делать доступ к MMIO наблюдаемым и управляемым;
• получать “evidence” для внутренних проверок и подготовки к сертификации.
IGL не заменяет:
• аппаратные меры (secure boot, защита ключей, debug lock, fault‑injection устойчивость);
• процесс secure development lifecycle и тестирование;
• формальную сертификацию (это отдельный процесс).
Статус: v0.1 Draft/Alpha. Набор поддерживаемых конструкций и WASM‑фич развивается; ограничения бэкенда могут влиять на применимость.
Важно: IGL не является универсальной защитой. Эффект зависит от модели угроз, конфигурации профиля и платформы.
Сделаем пилот: прогоним один модуль через IGL‑Converter, покажем диагностику, ограничения профиля и артефакты понижения (IR/WASM).
Если понадобится - поможем посчитать ROI на ваших вводных (объём кода, требования, платформа, уровень проверок).