7 основных принципов автоматизации проектирования с учетом безопасности



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

Решения для автоматизации электронного проектирования (EDA) — это программы, помогающие разработчикам разрабатывать электронные системы и полупроводниковые микросхемы. Какие новые возможности должны предлагать сегодняшние решения EDA для обеспечения безопасности в дополнение к традиционному фокусу на функциональной корректности? Вот семь характеристик, которые, по моему мнению, должно обеспечивать высокоэффективное решение для автоматизации проектирования с учетом требований безопасности.

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

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

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

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

Бесшовная интеграция лучших в своем классе средств защиты
В качестве примера возьмем ошибки повреждения памяти в домене безопасности программного обеспечения. Исследования добились больших успехов за последнее десятилетие, предлагая аппаратные средства защиты, которые защищают программные рабочие нагрузки, работающие поверх них. Эти системные средства защиты значительно повышают барьер атак и минимизируют негативные последствия эксплуатации программного обеспечения, что делает практические атаки более сложными для достижения успеха. Хотя разработчики программного обеспечения могут по-прежнему не проверять ненадежные входные данные перед использованием, многие из этих ошибок больше не могут быть использованы, когда включены аппаратные средства защиты, такие как технология принудительного управления потоками (CET). Аппаратная промышленность нуждается в аналогичных инвестициях в исследования, чтобы помочь разработчикам, таким как отказоустойчивые библиотеки стандартных ячеек, схемы самовосстановления и криптографические примитивы с постоянным временем/мощностью. Решение EDA с учетом безопасности может затем интегрировать эти лучшие в своем классе меры по смягчению последствий и беспрепятственно синтезировать устойчивые схемы без прямого вмешательства пользователя.

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

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

Постоянно учитесь у пользователей
Ни одна система не идеальна, даже для умного EDA-решения. Чтобы со временем повышать точность и качество, необходимо постоянно учиться у пользователей. Однако пользователи не всегда правы. Кроме того, разные пользователи могут предоставлять противоречивые отзывы, поскольку каждый из них имеет уникальные предпочтения и приоритеты. Дальнейшее развитие исследований в области искусственного интеллекта позволит решению EDA выборочно учиться на основе отзывов краудсорсинга.

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

https://cyberxhack.org/