Как сделать процесс разработки встроенного ПО независимым от степени готовности аппаратуры ?

Используйте Wind River Simics - симулятор цифровых электронных систем


Статья "Тестирование кибербезопасности встроенных систем с помощью их цифрового двойника"
опкбликована в журнале Электроника НТБ №7/2021.
Скан публикации здесь


Новая версия симулятора Wind River Simics – новые возможности тестирования кибербезопасности встраиваемых систем
Симулятор цифровых электронных систем Simics компании Wind River позволяет построить модель компьютерной системы и исполнять на этой модели реальное программное обеспечение (например, операционную систему или сетевой стек) в двоичном коде без какой-либо модификации и перекомпиляции, но со скоростью, приемлемой для практического применения, например, для тестирования и отладки ПО.

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

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

Для обнаружения уязвимостей ПО в Simics есть функция «инъекции неисправности» (fault injection), с помощью которой можно смоделировать любой вектор атаки и любое количество этих векторов, а также сделать скрипт для многократного повторения сценария атаки.

В библиотеке моделей Simics сотни цифровых устройств (процессоры, контроллеры шин, памяти, прерываний и прямого доступа, интерфейсы ввода/вывода и др.), а также десятки коммерческих плат (reference-дизайны и COTS-модули). На базе библиотечных моделей Simics можно построить модель многоплатной системы, в том числе и распределенной. В семейство продуктов Simics входит инструмент для разработки новых моделей или для модификации библиотечных моделей.

В новой версии Simics 6 производительность симулятора увеличена на 20% и добавлены новые средства трассировки внутреннего состояние моделей. В Simics 6 расширены возможности по подключению пользовательских средств анализа собранной внутренней информации.


Simics - 20 лет
В 1998 году шведская компания-стартап Virtutech вышла на рынок с продуктом Simics, разработанным в институте компьютерных наук SICS (Swedish Institute of Computer Science). Целью разработки было создание модели вычислительной системы, которая позволяет исполнять на этой модели реальное программное обеспечение (например, операционную систему или сетевой стек) в двоичном коде без какой-либо модификации и перекомпиляции, но со скоростью, приемлемой для практического применения, например для тестирования и отладки. В 2010 году Virtutech была приобретена компанией Wind River.

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

Кроме опережающей разработки ПО, Simics предоставляет много возможностей, недоступных обычным отладчикам и даже средствам OCD (On-Chip Debugging). Можно сделать ПОЛНЫЙ ОСТАНОВ всех компонент системы одновременно, например, синхронно всех ядер многоядерного микропроцессора вместе с периферийными устройствами и даже данными, летящими по шинам и сетям, и исполнить программу РЕВЕРСИВНО (в обратном направлении) для поиска первопричины возникшего сбоя. Симулятор Simics умеет ТРАССИРОВАТЬ любую, даже внутреннюю информацию процессоров и устройств и сохранять ее, в том числе с временными метками, для последующего анализа. В Simics можно ИМИТИРОВАТЬ аппаратные ошибки (fault injection), например, обрыв кабеля связи или срабатывание датчика перегрева микропроцессора для отладки обработчиков исключительных ситуаций (exception handlers) или для стресс-тестирования критически важных сертифицируемых систем.

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

Согласно публикации Gartner “Top 10 Strategic Technology Trends 2018” одной из ключевых технологий 2018 года будет «цифровые двойники» (digital twins) – компьютерные модели физических объектов, управляемые данными из реального мира. Объединение физической модели объекта с моделью компьютерной системы управления этим объектом и исполнение реального управляющего ПО дает возможность создания «цифровых двойников», максимально приближенных к реальности.

WWW.WINDRIVER.COM/PRODUCTS/SIMICS


AVD Systems
тел: (916) 194-42-71

Все наши страницы в сети:
www.avdsys.ru/pikeos PikeOS - операционная система/гипервизор для встраиваемых систем, критически-важных для безопасности (safety) и защищенности (security)
www.avdsys.ru/ada AdaCore – средства разработки и верификации ПО на языках Ada и SPARK
www.avdsys.ru/test Cantata - комплекс средств автоматизации тестирования программного обеспечения критически-важных для безопасности, сертифицируемых встраиваемых систем
www.avdsys.ru/gpu CoreAVI - сертифицируемые по стандарту DO-178B/C драйверы стандарта OpenGL SC (Safety Critical) для различных графических процессоров и графических ядер (GPU = Graphics Processing Unit)
www.avdsys.ru/absint AbsInt - средства статического (по коду программы) анализа ПО критически-важных встраиваемых систем: времени исполнения наихудшего случая WCET (Worst-Case Execution Time), объема используемого стека, наличия потенциальных ошибок времени исполнения
www.avdsys.ru/mbd Средства модельно-ориентированного проектирования (MBD = Model-Based Design).
AdaCore QGen - квалифицируемый генератор программного кода из моделей Simulink и Stateflow.
www.avdsys.ru/tttech TTTech - оборудование Deterministic Ethernet - сетевой Технологии с передачей по Временно́му Расписанию (Time-Triggered Technology), применяемой для построения распределенных систем жесткого реального времени с гарантированным временем передачи данных
www.avdsys.ru/simics Wind River Simics - симулятор цифровых электронных систем