Типы аппаратных троянов и способы их детектирования

Время на прочтение: 3 мин

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

Аппаратный троян обычно состоит из триггера (механизма активации) и «полезной» нагрузки (которая выполняет вредоносную функцию).

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

Типы троянов по условию срабатывания

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

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

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

Элемент памяти в простейшем случае может представлять собой автомат для многоразрядного счётчика, который достигает своего максимального значения и затем переполняется (сбрасывается) при повторении фактов активации триггера (например, логического элемента «И»).

Отдельно выделяются группа аналоговых/радиочастотных троянов, при создании которых злоумышленники используют аналоговые характеристики элементов схем, применяя соответствующие техники. Например, в качестве триггеров могут использоваться конденсаторы, которые будут активироваться путем накопления заряда при переключении близлежащего «провода-жертвы» до превышения определенного порога. В свою очередь, напряжение конденсатора поднимается выше порога при частом переключении провода, так как заряд конденсатора накапливается быстрее, чем утекает.

Аналоговый троян также может быть рассмотрен как частный случай секвенциального трояна, поскольку он требует многократного выполнения определенного условия или влияет на схему через определенный период времени после срабатывания. Единственная разница заключается в конструкции триггера, поскольку секвенциальный троян использует элементы состояния (например, счетчики), а аналоговый троян — дискретные элементы (например, транзисторы и конденсаторы).

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

Типы троянов по функционалу

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

Детектирование

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

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

Логическое тестирование использует генерацию тестовых шаблонов, затрагивающих редкие узлы (которые часто становятся входами триггеров, например, для комбинационных троянов), чтобы максимально увеличить вероятность запуска внедренных троянов, при этом резко сокращая количество векторов по сравнению с генерацией тестов на основе взвешенных случайных шаблонов.

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

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

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

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

Тем не менее, исследователи ищут способы автоматического детектирования аппаратных троянов независимо от наличия знаний о характеристиках конкретной микросхемы и без необходимости ее «вскрытия». Так, например, группа ученых из Университета Флориды предложила использовать для решения задачи усовершенствованные алгоритмы компьютерного зрения. С помощью контролируемой модели машинного обучения формируются дескрипторы, которые могут различать отличия в интегральных схемах, возникающие из-за производственного процесса, дефектов и распространенных искажений изображения стандартных электронных модулей, снижая возможность ложного обнаружения. Разработанный Trojan Scanner не полагается на наличие «золотого образца» и на функциональность схемы для обнаружения троянов, а фокусируется на реальной физической структуре для обнаружения вредоносных изменений, внесенных на технологическом участке изготовления интегральной схемы.