Обеспечение надежности процессорного дизайна: лучшие практики для безопасных и надежных IC
Современные интегральные схемы (IC) обеспечивают вычислительные и системно-контрольные возможности для обработки огромных объёмов данных, принятия safety-критических решений в реальном времени и защиты чувствительных данных. Разработка ASIC или FPGA SoC с нуля была бы запредельно дорогой и долгой. Многие критические функции реализуются через сторонние IP-блоки. Процессорные ядра, например, поставляются специализированными организациями и предоставляют гибкую программируемую функцию через свою ISA, определяющую интерфейс железа и софта. Открытые процессорные архитектуры дают возможность глубокого аудита и строгого обеспечения безопасности в системах, уже сталкивающихся с динамичной средой угроз. Статья описывает подход к обеспечению безопасности IP и SoC на базе открытой ISA RISC-V.
RISC-V: открытая ISA промышленного уровня
RISC-V — открытая ISA, изобретённая в UC Berkeley и управляемая некоммерческим фондом RISC-V Foundation (основан 2015 г., 300+ участников). Это первая открытая ISA, ставшая реально жизнеспособным промышленным выбором для широкого спектра приложений. Экосистема инструментов, софта и экспертизы надежна и растёт. Множество организаций уже внесли открытые HDL-реализации RISC-V. Группа OpenHW, например, нацелена на реализацию долгожданной перспективы открытого железа — особенно процессорных ядер — для высокообъёмных чипов.
Причины роста RISC-V множественны. Архитектура построена с нуля с расширяемостью в виду, позволяя новый уровень железной оптимизации под специфические нагрузки. Замедление закона Мура делает кастомизацию критичной для поддержания темпов производительности, которые процесс-технологии больше не дают. Отсутствие лицензионных отчислений позволяет большему числу компаний создавать инновационные доступные продукты — особенно в IoT и носимых устройствах с AI.
Риски использования сторонних и открытых RISC-V ядер
Интеграторы SoC часто используют открытые или сторонние RISC-V IP. Эти дизайны и тулчейны можно расширять кастомными инструкциями. Качественное верификационное окружение, поставляемое с IP, и дополнительное системное тестирование дают некоторую уверенность в отсутствии критических багов. К сожалению, для многих приложений этого недостаточно — существуют и другие серьёзные риски.
Уязвимости и трояны
Традиционно уязвимости в электронных системах ассоциировались с системным уровнем и софтом. Недавно аппаратные IP, особенно процессоры, стали центральной проблемой (см. рис. 1). Процессорные реализации используют конвейерные микроархитектуры и часто включают фичи оптимизации производительности и питания. Сложность повышает риск пропуска не только функциональных багов, но и уязвимостей безопасности. Исследователи, обнаружившие Meltdown и Spectre в 2018 г., показали, что фичи оптимизации в процессорах могут использоваться непредназначенным образом для вредоносных целей. С тех пор открыто множество уязвимостей в хай-энд и лоу-энд процессорах. Боковые каналы и атаки транзиентного исполнения могут пробить защищённые энклавы, позволяя вредоносным приложениям утекать конфиденциальные данные или даже захватывать контроль системы. И, в отличие от софта, железяные проблемы нельзя легко поправить OTA-обновлениями. Устранение железяной проблемы через софт часто вызывает тяжёлую деградацию производительности.
Архитектура RISC-V имеет фичи для безопасных встраиваемых систем: спека привилегий определяет четыре режима (machine, supervisor, hypervisor, user). Кастомные инструкции и расширения ISA в процессе ратификации (например, Cryptographic extension) добавляют возможности. Дизайнеры могут реализовывать множество защищённых энклавов для изоляции приложений и предотвращения утечек. Однако RTL-микроархитектурные фичи всё равно могут приводить к уязвимостям. Эти риски нельзя полностью решить на уровне ISA. Новый исследуемый подход — использование расширенной ISA (aISA) для определения аспектов исполнения инструкций на микроархитектурном уровне, например, управления состоянием буферов/регистров, невидимых на уровне ISA. RTL-функциональные баги всё равно могут компрометировать все эти фичи безопасности.
Менее вероятный, но с гораздо большей severность риск — наличие вредоносной логики или hardware trojans в RISC-V ядре. Hardware trojan — логическая функция, намеренно спроектированная как stealthy, активирующаяся в очень редких обстоятельствах, известных только атакующему. Специфическая последовательность данных и контрольных событий, не случающаяся в целевых use-case, триггерит троян, доставляющий вредоносную нагрузку: утечку секрета или критическое искажение поведения системы. SoC-интеграции с открытыми/сторонними RISC-V ядрами больше не могут игнорировать этот риск.
Обеспечение того, что процессор делает то, что должен — сложно. Обеспечение того, что он НЕ делает то, чего не должен — ещё более сложная задача, в целом нерешенная. Safety-критические системы и системы, где приватность данных paramount, нуждаются в эффективных, качественных решениях, адресующих риски уязвимостей и троянов.
Умное Hardware Assurance
Обеспечение доверия и безопасности RISC-V IP требует инновационных эффективных технических решений, дополнительных к подходам функциональной корректности, в основном нацеленных на intended use cases IP (см. рис. 2). IP-вендоры отвечают за применение state-of-the-art процессов верификации доверия/безопасности, а интеграторы IP должны иметь доступ к независимым решениям assurance, быстро развёртываемым без глубокого знания деталей реализации IP.
Формальные методы могут исчерпывающе анализировать железные функции и доставлять доказательство точного соответствия IP/SoC ожидаемому поведению, часто зафиксированному в SystemVerilog assertions. Формальная верификация железа с коммерческими model checkers получила широкое распространение за десятилетие. Обычно у IP-вендоров и интеграторов SoC есть эксперты по формальной верификации, стремящиеся минимизировать риск пропуска функциональных багов. Хотя определённые формальные задачи можно автоматизировать через Apps, в общем случае требуются значительные инженерные усилия для захвата ожидаемого поведения IP в ассертах. Более того, нет гарантии, что написано достаточно ассертов. Недокументированные функции или непреднамеренные пробелы в наборе ассертов могут привести к неверифицированной функциональности IP.
Открытая природа RISC-V позволяет разработку предпакованных независимых решений assurance. Решение OneSpin RISC-V Integrity Verification, например, применимо к широкому спектру микроархитектур. Оно включает модели RISC-V ISA и привилегированной ISA, расширяемые и приспособляемые к кастомным инструкциям. Критический аспект — база на GapFreeVerification™ процессе OneSpin, доставляющем строгое доказательство полноты и безпроблемности набора ассертов, моделирующих RISC-V ISA. Этот аспект высь важности при цели детекции hardware trojans или недокументированной логики. Решение позволяет интеграторам SoC с ограниченной экспертизой в RISC-V и RTL под проверку получить уверенность в качестве и надежности IP. Разработчики IP могут использовать его для обнаружения слабостей безопасности и функциональных багов до релиза.
Работает ли это?
Процесс assurance целостности RISC-V, описанный выше, успешно применён к множеству RTL-дизайнов. Edaptive Computing, интегрирующая инновационные решения для оптимизации, assurance и автоматизации систем систем для US DoD и коммерческих заказчиков, применила процесс к RocketCore. RocketCore — открытое, кремниально-проверенное 64-битное RISC-V ядро с 39-битной виртуальной памятью. Оно имеет 5-ступенчатый single-issue in-order конвейер с out-of-order завершением для инструкций с высокой латентностью (деление). Включает branch prediction и instruction replay.
RISC-V Integrity Verification Solution применялся к дизайну со всеми инструкциями, уровнями привилегий, прерываниями и механизмом исключений — обнаружено 8 проблем (см. рис. 3). Подробности по 3 из них ниже.
Corner-case деления
Глубокий corner-case баг, связанный с out-of-order завершением инструкции деления. Проблема могла заставить софт, использующий деление, вычислять неверные результаты и вести к системному мисбиhavior. Проблема появляется только при комбинации редких обстоятельств, поэтому предыдущие верификационные усилия её пропустили.
Реплей нелегальной инструкции
Это не corner-case баг. Реплей нелегальной инструкции тратит циклы, но если случается редко — производительность не страдает. Однако есть другие аспекты. Реплей может вызывать ненужные запросы к памяти. Они могут иметь побочные эффекты, эксплуатируемые в side-channel атаках. Следовательно, это поведение нужно либо устранить, либо чётко понять и задокументировать.
Недокументированная инструкция
Обнаружена недокументированная нестандартная инструкция CEASE, останавливающая ядро. Фактически RocketCore мог делать то, чего не должен был. Недокументированные скрытые функции неприемлемы, когда доверие и безопасность важны, даже если они относятся к use-case, считающимся нерелевантными для конечного приложения.
Кейс-стади RocketCore детально представлена в статье GOMACTech 2019 «Complete Formal Verification of RISC-V Processor IPs for Trojan-Free Trusted ICs». Копия на onespin.com/resources/white-papers.
Что дальше?
Представленный процесс assurance RISC-V детектирует сценарии, влияющие на безопасность, и систематически выявляет недокументированные функции и hardware trojans, влияющие на поведение процессора, как бы редкими и stealthy они ни были. Однако side-channels не детектируются системно. Исчерпывающее обнаружение всех потенциальных side-channels требует выделенного решения с соответствующей технологией. Уже есть прототипы, решающие этот вызов. Подробнее: onespin.com/resources/technical-articles и статья EE Times «Side-Channel Attacks on Embedded Processors».
Процессорные ядра — критические IP во встраиваемых системах. Но типичный SoC интегрирует многие другие IP, которые тоже могут содержать hardware trojans. В отличие от RISC-V ядер, независимые решения trust assurance могут быть недоступны. Здесь ценен был бы автоматизированный low-effort процесс trust assessment, применимый к любому IP. Процесс без trusted модели IP не может гарантировать отсутствие трояна. Однако можно идентифицировать необычные подозрительные паттерны кода, известные сигнатуры троянов и слабости, эксплуатируемые на поздних стадиях. Статья на эту тему «An Automated Pre-Silicon IP Trustworthiness Assessment for Hardware Assurance» от AEROSPACE Corporation и инженеров OneSpin будет представлена на GOMACTech 2020.
Встроенный
- Разблокировка IoT-данных: как Business Rules Management драйвит enterprise value
- Ускорьте приложения с адаптированными пользовательскими инструкциями RISC-V
- Создание робота на Arduino и Raspberry Pi: пошаговое руководство
- Полное руководство по производству стекловолокна
- Обеспечение надежных данных цепочки поставок: проверенная стратегия
- Создание анимации прогрессивного среза в SolidWorks — Пошаговый урок
- Создайте выигрывающий прототип: Пошаговое руководство для быстрой разработки продукта
- Пошаговое руководство по замене гидравлического шланга на тяжелом оборудовании
- Проверенные стратегии для работы комплексной программы безопасности
- Профессиональное руководство по изготовлению зажима для металлотокарного станка