Выпуск #2/2017
Е.Кузнецов, А.Сауров
Аппаратные трояны. Часть 4: программно-аппаратные контрмеры
Аппаратные трояны. Часть 4: программно-аппаратные контрмеры
Просмотры: 4752
В завершающей статье, посвященной аппаратным троянам, рассматривается построение безопасных систем, которые надежно функционировали бы, в том числе, в присутствии аппаратной закладки произвольного типа. Хотя общий подход к такому способу противодействия на сегодняшний день не разработан и не предложен, рассмотрим некоторые аспекты такой защиты, детали ее реализации и проведем общий анализ применимости подобных контрмер.
УДК 621.382, ВАК 05.27.01, DOI: 10.22184/1993-8578.2017.72.2.42.56
УДК 621.382, ВАК 05.27.01, DOI: 10.22184/1993-8578.2017.72.2.42.56
Теги: cyber security hardware backdoor hardware trojan integrated circuit malicious modification аппаратная закладка аппаратный троян интегральная схема кибербезопасность несанкционированная модификация
Как уже отмечалось ранее [1–3], использование превентивных подходов предупреждения и современных методов обнаружения аппаратных троянов не дают полной гарантии того, что изготовленная ИС не содержит аппаратных закладок. Большое разнообразие угроз безопасности, связанных с ними, а также огромное пространство состояний для размещения аппаратных закладок поставило перед разработчиками вопрос об обеспечении безопасной эксплуатации системы с "инфицированными" ИС и, в частности, задачу предотвращения активации троянов. Такой подход позволил бы использовать аппаратуру, не обращая внимания на внедренные аппаратные трояны, и даже использовать COTS-компоненты (коммерческие электронные компоненты, находящиеся в свободной продаже) для построения устойчивых к аппаратным закладкам, надежных вычислительных систем.
В большинство публикаций, связанных с такого рода противодействием аппаратным троянам, рассматривается защита только от одного класса или подкласса угроз. Большую безопасность, как предполагается, можно обеспечить с помощью многоуровневой защиты, в которой каждый уровень независимо от других ориентирован на определенные действия и механизмы активации троянов, с последующим объединением всех этих мер в общую стратегию защиты.
Предложенные и экспериментально проверенные механизмы контрмер можно разделить на следующие группы:
• охрана данных;
• новые архитектуры на RTL-уровне (на уровне регистровых передач);
• реконфигурируемая архитектура;
• стратегии репликации, фрагментации и мажоритарной выборки.
ОХРАНА ДАННЫХ
Охрана данных (включая команды процессора) предполагает предотвращение активации аппаратного трояна или /и блокирование прямого доступа троянского оборудования к любым уязвимым данным. Защитное устройство может контролировать выборку данных, хранимых или передаваемых внутри или между ИС и логическими модулями, блокируя механизм, посредством которого троян взаимодействует с данными.
В работе [4] предлагается несколько методов охраны данных с предотвращением активации трояна. Некоторые из этих методов были реализованы на симуляторе Zesto Ч86. Для предотвращения получения троянской закладкой активационного кода используется скремблирование (шифрование) информационного канала (шины). Оно применяется для блоков обработки данных, которые не задействованы в вычислениях. Авторы предлагают использовать простые доверенные схемы шифрования для скрытия данных (например, исключающее ИЛИ с псевдослучайными числами – Xorshif-шифрование), засекречивая их только на короткий период времени.
Эффективность такого скремблирования исследовалась путем введения параметризируемой задержки в кэше и контроллере памяти. Скремблирование шины предотвращало активацию простых троянов, при этом ее вероятность все же сохранялась. Так, например, при использовании простого 32-разрядного триггера, активация произойдет за 232 циклов. Более контролируемый подход может быть реализован через переопределение всех входов в полностью функционально достоверное пространство состояний с использованием доверенной и устойчивой схемы шифрования.
Поскольку для вычислительных блоков такая обфускация данных приведет к неверным вычислениям, в этом случае предлагается использовать гомоморфное шифрование [5], позволяющее вычислительным блокам работать с зашифрованными данными. Шифрование определяется гомоморфным по вычислительной функции, и правильные результаты вычислительный блок получает только с зашифрованными значениями. Полученный в итоге результат может быть расшифрован.
Реализация таких гомоморфных функций –
задача нетривиальная, а их вычисление требует затрат, при этом достаточно трудно построить схему гомоморфного шифрования общего назначения. Так же, как и в случае скремблирования шины данных, блоки шифрования и дешифрования должны быть реализованы в полностью проверенном аппаратном обеспечении. В работе [4] не рассматривалось гомоморфное шифрование, но взамен предложено и проанализировано применение криптографического алгоритма с открытым ключом (RSA – шифрование). Использование схем, реализующих алгоритм "искаженных цепей" Яо (Yao’s Garbled Circuit) [6], можно рассматривать в качестве альтернативного подхода для обфускации данных вычислительных блоков.
Также в работе [4] предложено использовать "защиту времени" для предотвращения активации аппаратного трояна в пределах подтвержденного пространства состояний. ИС проверяется на полную функциональную достоверность за заданное число циклов. В дальнейшем при работе ИС после наработки этого количества циклов схема отключается и включается, тем самым предотвращается временная активация трояна. Аппаратное решение позволяет сохранять контекст в период отключений, обеспечивая непрерывность вычислительного процесса. Авторы при этом делают допущение, что любой аппаратный троян, который находился в состоянии покоя при полном тестировании пространства состояний (в пространстве состояний времени и входов), будет находиться в состоянии покоя в течение этого же периода и в условиях эксплуатации.
Рассмотренный подход не подходит для триггеров, построенных на основах энергонезависимой памяти, накопительного механизма (например, накопления заряда на емкости [7]), побочных каналов, деградации, а также триггеров с внешним управлением (например, по радиоканалу). Авторы предлагают обойти первый из этих вариантов путем визуального контроля на наличие ячеек энергонезависимой памяти, либо специальным выжиганием таких ячеек при сборке. Другим решением может быть использование техпроцесса, исключающего реализацию энергонезависимой памяти. Любые аппаратные средства, использующиеся для перезапуска ИС, а также средства сохранения контекста в период выключения / включения должно быть поверенным.
Предложены также "охранники", которые случайным образом изменяют порядок событий и вносят фиктивные события во входные последовательности различных модулей, например в контроллер памяти, так что сохраняемые или загружаемые последовательности нарушаются. Такие "охранники" защищают от активации триггеров последовательностного типа.
В заключении, авторы [4] предлагают использовать несколько версий непроверенных аппаратных блоков ИС, разработанных различными проектировщиками. Выходы с модуля проверяются путем сравнения между собой, и истинное значение определяется путем мажоритарной выборки. Недостатки такого подхода – высокая стоимость из-за увеличения площади чипа и высокое энергопотребление ИС. Авторы работы попытались охватить все аспекты активации аппаратных троянов, однако полностью обошли вопросы, связанные с активацией по побочным каналам, а также с внешней триггерной активацией.
В работе [8] для чипов "системы на кристалле" SoC предложена защищенная архитектура системной шины. Ее особенность заключается в том, что шина изменяет свое состояние ведомой или ведущей (master / slave) с целью обнаружения аппаратного трояна, который пытается ее заблокировать, используя при этом стандартные команды управления шинами. Такая активность легко обнаруживается с помощью номинальных обновляемых счетчиков и простых эвристических алгоритмов, после чего формируется черный список подозрительных мастер / ведомых устройств на шине с представлением отчета. Предложенный подход был проверен на шинной архитектуре Advanсed Micro-controller Bus Architecture (AMBA) от фирмы ARM. Подобные контрмеры ориентированы на конкретную архитектурную особенность и специальный класс аппаратных троянов, предотвращают вмешательство закладок в корректную работу шины SoC и, следовательно, влияют на производительность всей системы.
Ряд исследователей рассматривали вопросы размещения "охранников" шины памяти в архитектуре процессора, решая при этом задачи предотвращения активации трояна и утечки данных.
В работе [9] предлагается вставлять так называемые "теневые записи" – сопутствующие записи для всех инструкций памяти. Адреса этих теневых записей являются шифрованными версиями оригинальных записей. Ядро привратника (Gate-Keeper, аппаратная реализация), находящегося на шине памяти, проверяет, чтобы все записи в память происходили по соответствующим зашифрованным адресам. Таким образом, привратник гарантирует выполнение только законных записей, тем самым предотвращая утечку конфиденциальной информации через аппаратный троян. Схема привратника должна быть полностью поверенной. Авторами был разработан полнофункциональный прототип, выполняющий инструкции Ч86 и содержащий схему привратника, которая детектировала все теневые записи. Однако этот подход основан на том, что вывод данных предполагает их запись в память (для отправки по сети, например), но на практике он может также происходить с использованием побочных каналов, например путем анализа изменения энергопотребления или изменения временных характеристик.
Двойная защита между центральным процессором и шиной данных предложена в [10]. Два охранных устройства имеют независимые ключи и проверяют друг друга на корректность. Исполняемые программы шифруются одновременно на двух "охранниках" с разными ключами, данные расшифровываются на пути к центральному процессору и шифруются на обратном пути в память. Система предполагает отсутствие взаимосвязи между охранниками. Аппаратный компилятор также составляет критическую часть системы, формируя двоичный код, команды BIOS и образы операционной системы непосредственно перед выполнением. Двойная защита снимает необходимость доверия обоим охранникам, более важным становится отсутствие "сговора" между ними. Для исследования рассматриваемого подхода использовали симулятор компьютерной архитектуры с открытым кодом SimpleScalar.
Еще в 2003 году, в работе [11] была представлена AEGIS-архитектура процессора, в которой возможно использование непроверенных подключаемых периферийных устройств, а также запуск непроверенной операционной системы. Процессор при этом должен быть поверенным. Используя примитивное шифрование, он выступает в качестве охранника между собой и всеми ненадежными периферийными устройствами. Основная трудность такой реализации – уверенность, что ИС подобного процессора полностью свободна от аппаратных закладок.
Как видим, идея использовать минимальную проверенную вычислительную базу (TCB, Trusted Computing Base), или поверенные аппаратные средства для противодействия аппаратным закладкам, является основным условием каждой из приведенных контрмер. Рассмотренные механизмы защиты памяти от аппаратных троянов могут быть распространены на другие информационные каналы передачи данных и аппаратные модули внутри ИС. В работе [12] развили эту идею, введя понятие Silicon Security Harness – "ремни кремниевой безопасности" (по аналогии с ремнями безопасности в автомобиле). Предложенная концепция включает в себя несколько уровней защиты и слежения, которые обеспечиваются аппаратными средствами и системными компонентами или реализуются как часть архитектуры. Она призвана обеспечить защитные меры и увеличить стойкость к действию аппаратных закладок.
НОВЫЕ АРХИТЕКТУРЫ НА RTL-УРОВНЕ
В нескольких работах с целью защиты от аппаратных троянов предложено внесение специальных модификаций в процессор или архитектуру ИС. В основе такого подхода лежит добавление или изменение логических вентилей для идентификации присутствия или предупреждения активации аппаратных закладок.
В работе [13] предлагается комплексное программно-аппаратное обеспечение для противодействия аппаратным закладкам под названием BlueChip (голубой чип). Это оборонительная стратегия, включающая в себя компоненты безопасности как во время разработки, так и во время эксплуатации системы для противодействия на RTL-уровне аппаратным троянам с произвольной локализацией. Разработанный алгоритм под названием UCI (Untrusted Circuit Identification – идентификация ненадежных схем) и набор инструментальных средств автоматически определяет и удаляет потенциально опасные цепи в проекте на RTL-уровне для процессорных ИС. Во время верификации проекта обнаруживаются и удаляются все подозрительные схемы, которые включены в проект, но не влияют на какой-либо из выходов во время тестирования. Удаленные аппаратные устройства заменяются логикой, вызывающей исключение (непредвиденную ошибку), если удаленный участок когда-либо активируется. Это может произойти вследствие потенциальной активации трояна или предоставления допуска к системе, инициализированного удаленным фрагментом. Программное обеспечение низкого уровня путем эмуляции старается восстановить и предсказать последствия, к которым может привести действие обнаруженных подозрительных участков, при этом предложено использовать малый набор "проверенных" инструкций.
Концепция BlueChip была опробована на процессоре Leon3 (Aeroflex Gaisler AB), разработанном на ПЛИС Xilinx Virtex5. В этой концепции безопасность в основном обеспечивается поверенными программными компонентами, и лишь частично поверенными аппаратными средствами, используемыми для эмуляции удаленных фрагментов. Стратегия лучше всего подходит для процессорных проектов, в которых возможно проведение программной эмуляции по исследованию исключений. Для распространения подхода на общий случай проектирования ИС можно использовать поверенный сопроцессор, с помощью которого будут выявляться исключения и выполняться эмуляция при удалении аппаратных устройств. Концепция BlueChip также нуждается в развитии, поскольку известны вредоносные аппаратные реализации [14], которые не обнаруживаются алгоритмом UCI и проходят верификацию.
С этой связи, в работе [15] утверждается, что не существует механизмов защиты от троянов, гарантирующих их обнаружение до непосредственной эксплуатации ИС. Авторы предлагают проводить обнаружение атак, связанных с наличием троянов в ИС, в процессе работы путем добавления дополнительных интегрированных логических блоков, осуществляющих самотестирование ИС и поиск аппаратных закладок. Такая дополнительная логика, называемая DEFENSE (DEsign-For-Enabling-Security), интегрируется в SoC для выполнения в режиме реального времени конфигурируемых проверок безопасности через мультиплексирование различных частей системы с проверочным блоком. Например, могут проверяться законность доступов и законность состояний; ситуации, связанные с DoS-ошибками, а также целостность системы. При обнаружении атаки в режиме реального времени предпринимаются контрмеры, например, отключаются подозрительные логические блоки. Авторы предлагают также использовать отказоустойчивые состояния, резервные логические блоки, копирование текущего состояния при обнаружении атаки. Обеспечение комплексного охвата всевозможных аппаратных атак в режиме реального времени является достаточно трудной задачей, поэтому прототип платформы DEFENSE не был создан. Не менее сложная задача – осуществление таких контрмер в режиме реального времени без прерывания функционирования ИС.
В работе [16] предложено снимать уникальную контрольную сумму аппаратного обеспечения за некий ограниченный промежуток времени с использованием доверенного оборудования. Такая аппаратная контрольная сумма вычисляется для задействованных низкоуровневых микроархитектурных элементов процессора. Аппаратное обеспечение опрашивается, и контрольная сумма определяется в течение ограниченного времени. Авторы полагают, что подлинная контрольная сумма не может быть эмулирована или сымитирована в ограниченное время, и только аутентичные аппаратные средства могут корректно откликаться. Механизм гарантирует отсутствие троянских закладок, внесенных после изготовления ИС. Для обеспечения такого контроля, названного функцией микроархитектурной подписи MSF (Micro-Architecture Signature Function), и генерации уникального ответа на запрос были разработаны новые инструкции для процессора. Однако, такой подход не позволяет обнаруживать трояны, вставленные в проект на стадиях спецификации, разработки, верификации или изготовления.
В работе [10] при рассмотрении угроз со стороны аппаратных троянов, связанных с ошибками типа "отказ в обслуживании" (DoS-атака), разработана специальная функция "сердцебиения" для проверки непрерывности работы ИС. Некэшируемые выборки из памяти добавляются в программное обеспечение, после чего эти сигналы проявляются на шине памяти, как регулярные, но случайные интервалы, которые используются для определения, подверглась ли ИС DoS-атаке.
РЕКОНФИГУРИРУЕМАЯ АРХИТЕКТУРА
Использование реконфигурируемой логики для противостояния аппаратным троянам имеет существенные преимущества, но ставит новые задачи и проблемы перед проектированием. Существует целый спектр реконфигурируемых логических устройств, в том числе:
• ПЛИС высокой логической плотности, где большая часть устройства является перепрограммируемой;
• платформенные целевые ПЛИС, содержащие фиксированные полупроводниковые элементы, например контроллеры памяти, и даже целые процессорные ядра;
• пользовательские (заказные) СИС (ASIC), которые могут содержать мелкие реконфигурируемые части для выполнения определенных функций, например реализации связующих логических схем или заказного элемента для совместной обработки.
Основное преимущество реконфигурируемой логики заключается в том, что при ее использовании становится возможным разделение между проектированием ИС и ее аппаратной реализацией. Если проект типовой ИС передается непосредственно в кристальное производство, то в случае реконфигурируемой логики программируемый логический блок или макроблок вставляется в ИС перед ее запуском в производство, а после изготовления программируется конфигурируемым битовым потоком, завершая аппаратную реализацию проекта. Такое разделение означает, что проект может быть разработан практически полностью в доверяемой среде, за исключением некоторых периферийных функций, добавляемых к основным логическим элементам.
Подход обеспечивает полный контроль проекта на RTL-уровне, однако разработка и включение реконфигурируемой логики подвержены тем же угрозам со стороны аппаратных троянов, которые характерны для стандартных специализированных ИС (ASIC). Однако, злоумышленник может выполнять только общие атаки на архитектуру реконфигурируемой логики, что затрудняет беспрепятственное вмешательство или модификацию логической операции сконфигурированного проекта. При этом можно осуществлять полный спектр атак: изменять функциональность и спецификацию, проводить утечку конфиденциальной информации и выполнять DoS-атаки. Так, например, изменения в логических элементах могут привести к появлению дополнительных логических операций, потенциально опасных и ведущих к возникновению скрытых ошибок в проекте или утечке информации через периферийные устройства.
Таким образом, возникает новая задача: как наилучшим образом реализовать надежный проект, зная, что лежащая в его основе реконфигурируемая логика может быть заражена произвольным аппаратным трояном, и как защитить целостность проекта после его создания, то есть защитить битовый поток от искажения или заражения трояном. Общий трехступенчатый подход к обеспечению целостности битового потока ПЛИС предложен в работе [17]. Во-первых, целостность конфигурации проверяется ее обратным чтением, во-вторых, в случае обнаружения неправильной конфигурации, ПЛИС частично модифицируется (от подлинной части битового потока), в-третьих, в случае если система была скомпрометирована, ПЛИС использует протокол запроса-ответа для уведомления третьей стороны.
В работе [18] предложен обзор решений по защите битовых потоков ПЛИС и конфигурационной памяти от событийных отказов. Авторы делают следующие выводы:
• если изготовление ПЛИС и проектирование ИС на ПЛИС полностью разделены или в проекте используются IP-блоки третьей стороны, то злоумышленнику не представляет труда внести изменения в любой проект;
• конфигурационные битовые потоки достаточно трудно поддаются обратному проектированию как для злоумышленника, что делает для него невозможным понять назначение ИС, так и с целью поиска закладок;
• битовые потоки могут быть зашифрованы, что обеспечивает хорошую защиту, и тогда во многих ПЛИС возможно внутреннее аппаратное декодирование битового потока. Однако такое шифрование не позволяет реализовывать частичную реконфигурацию, поэтому не применимо для таких приложений, как адаптивные вычисления, являющихся существенной нишей для ПЛИС. Шифрование битового потока также не защищает от проникновения аппаратных троянов через IP-блоки сторонних разработчиков.
Для идентификации подлинности разработанного проекта предлагается использовать дополнительные конфигурационные логические блоки (CLB) в составе ПЛИС на основе кода с коррекцией ошибки (ECC), образующие группу проверки четности. Проверка на четность каждого элемента CLB позволяет вскрывать все внесенные в проект изменения. Двухступенчатая рандомизация, используемая для формирования сигнала четности, обеспечивает непредсказуемость результата CLB.
В работе [19] предлагается защита от аппаратных троянов, которая вносится на стадии изготовления. Если размещать реконфигурируемые логические блоки между важнейшими элементами в проекте, то на производственной стадии будет видима некоторая реконфигурируемая архитектура в некоторых областях кристалла. Эти блоки, названные авторами барьерами, после изготовления программируются с использованием секретного ключа, что приводит к разблокировке всего проекта и его логическому завершению. Если расположение и функциональность этих барьеров выбраны оптимально, то любые вставленные аппаратные трояны будет достаточно трудно активировать, и их влияние на ИС можно блокировать. Особое внимание авторы уделяют типу перепрограммируемой логики, управлению ключами, и различным эвристическим методам размещения барьеров. Комбинируя постоянную и программированную логику, можно выработать уникальные решения против потенциальных аппаратных троянов. При этом реконфигурируемая логика может использоваться и для реализации локальных защитных механизмов.
Использование реконфигурируемой логики в качестве защиты от аппаратных закладок ставит новые задачи для проектирования и верификации и перемещает основное внимание по защите с полупроводникового производства на RTL-проект. Для реализации эффективной аппаратной закладки на уровне ИС в этом случае злоумышленнику необходимо обеспечить взаимосвязь (сговор) между производителем и поставщиком инструментальных средств. Реализация сложного реконфигурируемого логического проекта, как правило, основывается на интеграции нескольких IP-блоков. В работе [20] предложена идея "рвов и подъемных мостов" как изоляционных примитивов, которые применяются в случае использования нескольких IP-блоков. Они позволяют блокировать нелегальные ответвления и нелегальные межсоединения внутри реконфигурируемых блоков.
Перечислим некоторые другие подходы с применением реконфигурируемой логики, которые могут быть использованы для борьбы с аппаратными троянами:
• частичное и динамическое перепрограммирование логических блоков [21];
• шифрование конфигурационных битовых потоков [18];
• репликация и жесткая конфигурация (lock-stepping) логики [22];
• использование функционально идентичных, но имеющих различную архитектуру логических блоков [23];
• генерация однозначных аппаратных модулей с использование случайных чисел [24].
РЕПЛИКАЦИЯ ЧАСТЕЙ, ФРАГМЕНТАЦИЯ И МАЖОРИТАРНАЯ ВЫБОРКА
Разработка эффективных аппаратных троянов связана с пониманием противником функционирования проекта ИС, начиная от уровня вентилей, RTL-уровня, уровня ИС и заканчивая макроуровнем всей системы. На всех этих уровнях для противодействия аппаратным троянам могут быть применены следующие общие подходы:
• репликация или удвоение логики или / и данных;
• разделение или фрагментация логики или / и данных;
• рассредоточение или распределение логики или / и данных;
• накопление и объединение логических функций или / и данных, например, используя мажоритарную выборку.
Эти общие контрмеры эффективны в трех случаях:
• при защите от аппаратных троянов, приводящих к утечке конфиденциальной информации путем разделения данных и обработки их независимыми логическими элементами;
• для защиты от функциональных или спецификационных модификаций элементов с помощью нескольких копий или дубликатов логических блоков;
• для защиты от DoS-атак путем задания избыточности работающих логических элементов в проекте.
Рассматриваемые контрмеры могут быть размещены на различных уровнях: вентильном, RTL, логического проектирования, функциональных модулей, IP-ядер, вплоть до уровня ИС и устройств на макроуровне. Механизмы защиты предполагают отсутствие "сговора" между репликационными или дублированными элементами в проекте.
Метод динамической оценки поверки оборудования во время его эксплуатации предложен в работе [23]. Его суть заключается в обнаружении аппаратного трояна при работе системы, после чего она продолжается с удалением или малым задействованием подозрительных элементов. Авторы предлагают использовать многоядерную систему обработки данных и воспользоваться присущим таким системам резервированием, отказываясь от ядер, которые не заслуживают доверия. Функционально эквивалентные варианты процессов проводятся на нескольких процессорах, после чего сравниваются их результаты. Различные варианты одинаковых процессорных обработок могут быть выполнены на основе разных компиляций или реализаций. Также могут использоваться различные алгоритмы обработки данных. Если результаты двух элементов отличаются, проводятся расчеты на третьем элементе и сравнение трех результатов. Этот процесс продолжается до тех пор, пока не будет достигнуто соответствие, по крайней мере, между двумя элементами обработки данных. Процессорные элементы, которые дают противоречивые (ошибочные) результаты динамически "штрафуются", то есть "доверие" к ним становится меньше, и по возможности они используются меньше.
Этот метод может быть расширен с использованием случайной выборки вариантов функционально эквивалентных аппаратных средств. Он также может применяться на различных уровнях абстракции, например, инструкций, вентильном, программы или ИС. Если метод используется на уровне команд, то активность на нем может быть прозрачной для более высоких уровней, в том числе и для небольшой поверенной вычислительной аппаратной базы (TSB), на которой можно проверять командный уровень расписаний, выбора репликационных блоков, заданий вариантов и мажоритарной выборки.
В работе [22] предлагается выполненная на ПЛИС жесткая конфигурация двухпроцессорной архитектуры с непосредственными связями, которая на макроуровне представляет собой реализацию репликации и мажоритарной выборки. Оба процессора получают и обрабатывают одни и те же инструкции одновременно. Аппаратно реализованная логика проверяет и сравнивает все управляющие сигналы каждой транзакции на шине. Если обнаружена ошибка, система принудительно вводится в последовательность устранения ошибки. Для адекватного противодействия системы аппаратным троянам должна быть проведена полная верификация TSB – блоков проверки и устранения ошибок. Метод может быть расширен для большего числа процессоров, которые могут быть отдельными ИС или входить с состав одной ПЛИС.
В 1991 году в работе [25] исследовались вопросы обеспечения высокой надежности и работоспособности, а также сохранения конфиденциальности данных в больших распределенных системах. Угрозы, связанные с аппаратными троянами, не рассматривались, однако предложенные методы отказоустойчивости актуальны для противодействия несанкционированным закладкам. Общий подход предполагает разбиение данных на малые фрагменты, так что каждый из них содержит достаточно мало информации. Он может быть использован и для хранения данных, и для их обработки (соответственно, они группируются, как фрагменты для хранения и для обработки). Репликация (резервирование) фрагментов применяется для обеспечения надежности системы. Пороговые схемы, подобные схемам "тайного обмена" (например, [26]), предложены для перекомпоновки хранимых и обрабатываемых данных. При этом определение функций фрагментации общего назначения – достаточно сложный и дорогой вычислительный процесс. Подобный механизм может быть реализован в виде вычислительных элементов на дискретных аппаратных средствах. В этом случае необходимая TSB включает в себя входы и выходы обработки и хранения операций.
ЗАКЛЮЧЕНИЕ
В настоящее время пока нет единого решения, которое может обеспечить полную защиту от всего спектра угроз и механизмов активации аппаратных закладок при работе системы. Маловероятно, что такое решение когда-нибудь будет найдено, сочетание же контрмер необходимо для борьбы с конкретными классами аппаратных троянов в конкретных прикладных областях. Эти контрмеры должны разрабатываться с учетом систем, в которых они будут применены, а также с учетом обеспечиваемого уровня защиты. Как показано в работе [14], при разработке новых контрмер естественным образом возникают способы их обхода. Такая "гонка вооружений" в области аппаратных закладок диктует необходимость использования комплексных "глубоко эшелонированных" подходов к обеспечению безопасности электронных систем.
Статья подготовлена при финансовой поддержке Минобрнауки в рамках выполнения государственного задания 16.9021.2017/БЧ.
ЛИТЕРАТУРА
1. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 1: Новые угрозы кибербезопасности // НАНОИНДУСТРИЯ. 2016. № 7 (69). С. 16–25.
2. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 2: Способы предупреждения и обнаружения // НАНОИНДУСТРИЯ. 2017. № 1 (71). С. 30–40.
3. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 3: Примеры реализации, способы внедрения и активации // НАНОИНДУСТРИЯ. 2016. № 8 (70). С. 12–21.
4. Waksman A., Sethumadhavan S. Silencing hardware backdoors // Security and Privacy (SP), 2011 IEEE Symposium. IEEE, 2011. С. 49–63.
5. Gentry C. Computing arbitrary functions of encrypted data // Communications of the ACM. 2010. Т. 53. № 3. С. 97–105.
6. Jдrvinen K. et al. Garbled circuits for leakage-resilience: Hardware implementation and evaluation of one-time programs // Cryptographic Hardware and Embedded Systems, CHES 2010. Springer Berlin Heidelberg, 2010. С. 383–397.
7. Chakraborty R.S., Narasimhan S., Bhunia S. Hardware Trojan: Threats and emerging solutions // High Level Design Validation and Test Workshop, 2009. HLDVT 2009. IEEE International. IEEE, 2009. С. 166–171.
8. Kim L.W., Villasenor J.D., Koз C.K. A Trojan-resistant system-on-chip bus architecture // Military Communications Conference, 2009. MILCOM 2009. IEEE, 2009. С. 1–6.
9. Das A. et al. Detecting / preventing information leakage on the memory bus due to malicious hardware // Proceedings of the Conference on Design, Automation and Test in Europe. European Design and Automation Association, 2010. С. 861–866.
10. Bloom G. et al. Providing secure execution environments with a last line of defense against trojan circuit attacks // Computers & security. 2009. Т. 28. № 7. С. 660–669.
11. Suh G.E. et al. AEGIS: architecture for tamper-evident and tamper-resistant processing // Proceedings of the 17th annual international conference on Supercomputing. ACM, 2003. С. 160–171.
12. Anderson M., North C. & Yiu K. Towards Countering the Rise of the Silicon Trojan // DSTO Technical Report DSTO-TR-2220. 2008. DSTO Information Sciences Laboratory.
13. Hicks M. et al. Overcoming an untrusted computing base: Detecting and removing malicious hardware automatically // Security and Privacy (SP), 2010 IEEE Symposium. IEEE, 2010. С. 159–172.
14. Sturton C. et al. Defeating UCI: Building stealthy and malicious hardware // Security and Privacy (SP), 2011 IEEE Symposium. IEEE, 2011. С. 64–77.
15. Abramovici M., Bradley P. Integrated circuit security: new threats and solutions // Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies. ACM, 2009. С. 55.
16. Deng D.Y., Chan A.H., Suh G.E. Hardware authentication leveraging performance limits in detailed simulations and emulations // Proceedings of the 46th Annual Design Automation Conference. ACM, 2009. С. 682–687.
17. Webb J.B. Methods for securing the integrity of FPGA configurations. Дис. Virginia Polytechnic Institute and State University, 2006.
18. Trimberger S. Trusted design in FPGAs // Design Automation Conference, 2007. DAC’07. 44th ACM / IEEE. IEEE, 2007. С. 5–8.
19. Baumgarten A., Tyagi A., Zambreno J. Preventing IC piracy using reconfigurable logic barriers // IEEE Design and Test of Computers. 2010. Т. 27. № 1. С. 66–75.
20. Huffmire T. et al. Moats and drawbridges: An isolation primitive for reconfigurable hardware based systems // Security and Privacy, 2007. SP’07. IEEE Symposium. IEEE, 2007. С. 281–295.
21. Silva M.L., Ferreira J.C. Creation of partial FPGA configurations at run-time // Digital System Design: Architectures, Methods and Tools (DSD), 2010 13th Euromicro Conference. IEEE, 2010. С. 80–87.
22. Newgard B., Hoffman C. Using multiple processors in a single reconfigurable fabric for high-assurance applications // Hardware-Oriented Security and Trust (HOST), 2010 IEEE International Symposium on. IEEE, 2010. С. 25–29.
23. McIntyre D. et al. Dynamic evaluation of hardware trust // Hardware-Oriented Security and Trust, 2009. HOST›09. IEEE International Workshop. IEEE, 2009. С. 108–111.
24. Kumar S.S. et al. The butterfly PUF protecting IP on every FPGA // Hardware-Oriented Security and Trust, 2008. HOST 2008. IEEE International Workshop. IEEE, 2008. С. 67–70.
25. Trouessin G. et al. Improvement Of Data Processing Security By Means Of Fault Tolerance // Proceedings Of The 14th National Computer Security Conference (NCSC’14). 1991. C. 295–304.
26. Shamir A. How to share a secret // Communications of the ACM. 1979. Т. 22. № 11. С. 612–613.
В большинство публикаций, связанных с такого рода противодействием аппаратным троянам, рассматривается защита только от одного класса или подкласса угроз. Большую безопасность, как предполагается, можно обеспечить с помощью многоуровневой защиты, в которой каждый уровень независимо от других ориентирован на определенные действия и механизмы активации троянов, с последующим объединением всех этих мер в общую стратегию защиты.
Предложенные и экспериментально проверенные механизмы контрмер можно разделить на следующие группы:
• охрана данных;
• новые архитектуры на RTL-уровне (на уровне регистровых передач);
• реконфигурируемая архитектура;
• стратегии репликации, фрагментации и мажоритарной выборки.
ОХРАНА ДАННЫХ
Охрана данных (включая команды процессора) предполагает предотвращение активации аппаратного трояна или /и блокирование прямого доступа троянского оборудования к любым уязвимым данным. Защитное устройство может контролировать выборку данных, хранимых или передаваемых внутри или между ИС и логическими модулями, блокируя механизм, посредством которого троян взаимодействует с данными.
В работе [4] предлагается несколько методов охраны данных с предотвращением активации трояна. Некоторые из этих методов были реализованы на симуляторе Zesto Ч86. Для предотвращения получения троянской закладкой активационного кода используется скремблирование (шифрование) информационного канала (шины). Оно применяется для блоков обработки данных, которые не задействованы в вычислениях. Авторы предлагают использовать простые доверенные схемы шифрования для скрытия данных (например, исключающее ИЛИ с псевдослучайными числами – Xorshif-шифрование), засекречивая их только на короткий период времени.
Эффективность такого скремблирования исследовалась путем введения параметризируемой задержки в кэше и контроллере памяти. Скремблирование шины предотвращало активацию простых троянов, при этом ее вероятность все же сохранялась. Так, например, при использовании простого 32-разрядного триггера, активация произойдет за 232 циклов. Более контролируемый подход может быть реализован через переопределение всех входов в полностью функционально достоверное пространство состояний с использованием доверенной и устойчивой схемы шифрования.
Поскольку для вычислительных блоков такая обфускация данных приведет к неверным вычислениям, в этом случае предлагается использовать гомоморфное шифрование [5], позволяющее вычислительным блокам работать с зашифрованными данными. Шифрование определяется гомоморфным по вычислительной функции, и правильные результаты вычислительный блок получает только с зашифрованными значениями. Полученный в итоге результат может быть расшифрован.
Реализация таких гомоморфных функций –
задача нетривиальная, а их вычисление требует затрат, при этом достаточно трудно построить схему гомоморфного шифрования общего назначения. Так же, как и в случае скремблирования шины данных, блоки шифрования и дешифрования должны быть реализованы в полностью проверенном аппаратном обеспечении. В работе [4] не рассматривалось гомоморфное шифрование, но взамен предложено и проанализировано применение криптографического алгоритма с открытым ключом (RSA – шифрование). Использование схем, реализующих алгоритм "искаженных цепей" Яо (Yao’s Garbled Circuit) [6], можно рассматривать в качестве альтернативного подхода для обфускации данных вычислительных блоков.
Также в работе [4] предложено использовать "защиту времени" для предотвращения активации аппаратного трояна в пределах подтвержденного пространства состояний. ИС проверяется на полную функциональную достоверность за заданное число циклов. В дальнейшем при работе ИС после наработки этого количества циклов схема отключается и включается, тем самым предотвращается временная активация трояна. Аппаратное решение позволяет сохранять контекст в период отключений, обеспечивая непрерывность вычислительного процесса. Авторы при этом делают допущение, что любой аппаратный троян, который находился в состоянии покоя при полном тестировании пространства состояний (в пространстве состояний времени и входов), будет находиться в состоянии покоя в течение этого же периода и в условиях эксплуатации.
Рассмотренный подход не подходит для триггеров, построенных на основах энергонезависимой памяти, накопительного механизма (например, накопления заряда на емкости [7]), побочных каналов, деградации, а также триггеров с внешним управлением (например, по радиоканалу). Авторы предлагают обойти первый из этих вариантов путем визуального контроля на наличие ячеек энергонезависимой памяти, либо специальным выжиганием таких ячеек при сборке. Другим решением может быть использование техпроцесса, исключающего реализацию энергонезависимой памяти. Любые аппаратные средства, использующиеся для перезапуска ИС, а также средства сохранения контекста в период выключения / включения должно быть поверенным.
Предложены также "охранники", которые случайным образом изменяют порядок событий и вносят фиктивные события во входные последовательности различных модулей, например в контроллер памяти, так что сохраняемые или загружаемые последовательности нарушаются. Такие "охранники" защищают от активации триггеров последовательностного типа.
В заключении, авторы [4] предлагают использовать несколько версий непроверенных аппаратных блоков ИС, разработанных различными проектировщиками. Выходы с модуля проверяются путем сравнения между собой, и истинное значение определяется путем мажоритарной выборки. Недостатки такого подхода – высокая стоимость из-за увеличения площади чипа и высокое энергопотребление ИС. Авторы работы попытались охватить все аспекты активации аппаратных троянов, однако полностью обошли вопросы, связанные с активацией по побочным каналам, а также с внешней триггерной активацией.
В работе [8] для чипов "системы на кристалле" SoC предложена защищенная архитектура системной шины. Ее особенность заключается в том, что шина изменяет свое состояние ведомой или ведущей (master / slave) с целью обнаружения аппаратного трояна, который пытается ее заблокировать, используя при этом стандартные команды управления шинами. Такая активность легко обнаруживается с помощью номинальных обновляемых счетчиков и простых эвристических алгоритмов, после чего формируется черный список подозрительных мастер / ведомых устройств на шине с представлением отчета. Предложенный подход был проверен на шинной архитектуре Advanсed Micro-controller Bus Architecture (AMBA) от фирмы ARM. Подобные контрмеры ориентированы на конкретную архитектурную особенность и специальный класс аппаратных троянов, предотвращают вмешательство закладок в корректную работу шины SoC и, следовательно, влияют на производительность всей системы.
Ряд исследователей рассматривали вопросы размещения "охранников" шины памяти в архитектуре процессора, решая при этом задачи предотвращения активации трояна и утечки данных.
В работе [9] предлагается вставлять так называемые "теневые записи" – сопутствующие записи для всех инструкций памяти. Адреса этих теневых записей являются шифрованными версиями оригинальных записей. Ядро привратника (Gate-Keeper, аппаратная реализация), находящегося на шине памяти, проверяет, чтобы все записи в память происходили по соответствующим зашифрованным адресам. Таким образом, привратник гарантирует выполнение только законных записей, тем самым предотвращая утечку конфиденциальной информации через аппаратный троян. Схема привратника должна быть полностью поверенной. Авторами был разработан полнофункциональный прототип, выполняющий инструкции Ч86 и содержащий схему привратника, которая детектировала все теневые записи. Однако этот подход основан на том, что вывод данных предполагает их запись в память (для отправки по сети, например), но на практике он может также происходить с использованием побочных каналов, например путем анализа изменения энергопотребления или изменения временных характеристик.
Двойная защита между центральным процессором и шиной данных предложена в [10]. Два охранных устройства имеют независимые ключи и проверяют друг друга на корректность. Исполняемые программы шифруются одновременно на двух "охранниках" с разными ключами, данные расшифровываются на пути к центральному процессору и шифруются на обратном пути в память. Система предполагает отсутствие взаимосвязи между охранниками. Аппаратный компилятор также составляет критическую часть системы, формируя двоичный код, команды BIOS и образы операционной системы непосредственно перед выполнением. Двойная защита снимает необходимость доверия обоим охранникам, более важным становится отсутствие "сговора" между ними. Для исследования рассматриваемого подхода использовали симулятор компьютерной архитектуры с открытым кодом SimpleScalar.
Еще в 2003 году, в работе [11] была представлена AEGIS-архитектура процессора, в которой возможно использование непроверенных подключаемых периферийных устройств, а также запуск непроверенной операционной системы. Процессор при этом должен быть поверенным. Используя примитивное шифрование, он выступает в качестве охранника между собой и всеми ненадежными периферийными устройствами. Основная трудность такой реализации – уверенность, что ИС подобного процессора полностью свободна от аппаратных закладок.
Как видим, идея использовать минимальную проверенную вычислительную базу (TCB, Trusted Computing Base), или поверенные аппаратные средства для противодействия аппаратным закладкам, является основным условием каждой из приведенных контрмер. Рассмотренные механизмы защиты памяти от аппаратных троянов могут быть распространены на другие информационные каналы передачи данных и аппаратные модули внутри ИС. В работе [12] развили эту идею, введя понятие Silicon Security Harness – "ремни кремниевой безопасности" (по аналогии с ремнями безопасности в автомобиле). Предложенная концепция включает в себя несколько уровней защиты и слежения, которые обеспечиваются аппаратными средствами и системными компонентами или реализуются как часть архитектуры. Она призвана обеспечить защитные меры и увеличить стойкость к действию аппаратных закладок.
НОВЫЕ АРХИТЕКТУРЫ НА RTL-УРОВНЕ
В нескольких работах с целью защиты от аппаратных троянов предложено внесение специальных модификаций в процессор или архитектуру ИС. В основе такого подхода лежит добавление или изменение логических вентилей для идентификации присутствия или предупреждения активации аппаратных закладок.
В работе [13] предлагается комплексное программно-аппаратное обеспечение для противодействия аппаратным закладкам под названием BlueChip (голубой чип). Это оборонительная стратегия, включающая в себя компоненты безопасности как во время разработки, так и во время эксплуатации системы для противодействия на RTL-уровне аппаратным троянам с произвольной локализацией. Разработанный алгоритм под названием UCI (Untrusted Circuit Identification – идентификация ненадежных схем) и набор инструментальных средств автоматически определяет и удаляет потенциально опасные цепи в проекте на RTL-уровне для процессорных ИС. Во время верификации проекта обнаруживаются и удаляются все подозрительные схемы, которые включены в проект, но не влияют на какой-либо из выходов во время тестирования. Удаленные аппаратные устройства заменяются логикой, вызывающей исключение (непредвиденную ошибку), если удаленный участок когда-либо активируется. Это может произойти вследствие потенциальной активации трояна или предоставления допуска к системе, инициализированного удаленным фрагментом. Программное обеспечение низкого уровня путем эмуляции старается восстановить и предсказать последствия, к которым может привести действие обнаруженных подозрительных участков, при этом предложено использовать малый набор "проверенных" инструкций.
Концепция BlueChip была опробована на процессоре Leon3 (Aeroflex Gaisler AB), разработанном на ПЛИС Xilinx Virtex5. В этой концепции безопасность в основном обеспечивается поверенными программными компонентами, и лишь частично поверенными аппаратными средствами, используемыми для эмуляции удаленных фрагментов. Стратегия лучше всего подходит для процессорных проектов, в которых возможно проведение программной эмуляции по исследованию исключений. Для распространения подхода на общий случай проектирования ИС можно использовать поверенный сопроцессор, с помощью которого будут выявляться исключения и выполняться эмуляция при удалении аппаратных устройств. Концепция BlueChip также нуждается в развитии, поскольку известны вредоносные аппаратные реализации [14], которые не обнаруживаются алгоритмом UCI и проходят верификацию.
С этой связи, в работе [15] утверждается, что не существует механизмов защиты от троянов, гарантирующих их обнаружение до непосредственной эксплуатации ИС. Авторы предлагают проводить обнаружение атак, связанных с наличием троянов в ИС, в процессе работы путем добавления дополнительных интегрированных логических блоков, осуществляющих самотестирование ИС и поиск аппаратных закладок. Такая дополнительная логика, называемая DEFENSE (DEsign-For-Enabling-Security), интегрируется в SoC для выполнения в режиме реального времени конфигурируемых проверок безопасности через мультиплексирование различных частей системы с проверочным блоком. Например, могут проверяться законность доступов и законность состояний; ситуации, связанные с DoS-ошибками, а также целостность системы. При обнаружении атаки в режиме реального времени предпринимаются контрмеры, например, отключаются подозрительные логические блоки. Авторы предлагают также использовать отказоустойчивые состояния, резервные логические блоки, копирование текущего состояния при обнаружении атаки. Обеспечение комплексного охвата всевозможных аппаратных атак в режиме реального времени является достаточно трудной задачей, поэтому прототип платформы DEFENSE не был создан. Не менее сложная задача – осуществление таких контрмер в режиме реального времени без прерывания функционирования ИС.
В работе [16] предложено снимать уникальную контрольную сумму аппаратного обеспечения за некий ограниченный промежуток времени с использованием доверенного оборудования. Такая аппаратная контрольная сумма вычисляется для задействованных низкоуровневых микроархитектурных элементов процессора. Аппаратное обеспечение опрашивается, и контрольная сумма определяется в течение ограниченного времени. Авторы полагают, что подлинная контрольная сумма не может быть эмулирована или сымитирована в ограниченное время, и только аутентичные аппаратные средства могут корректно откликаться. Механизм гарантирует отсутствие троянских закладок, внесенных после изготовления ИС. Для обеспечения такого контроля, названного функцией микроархитектурной подписи MSF (Micro-Architecture Signature Function), и генерации уникального ответа на запрос были разработаны новые инструкции для процессора. Однако, такой подход не позволяет обнаруживать трояны, вставленные в проект на стадиях спецификации, разработки, верификации или изготовления.
В работе [10] при рассмотрении угроз со стороны аппаратных троянов, связанных с ошибками типа "отказ в обслуживании" (DoS-атака), разработана специальная функция "сердцебиения" для проверки непрерывности работы ИС. Некэшируемые выборки из памяти добавляются в программное обеспечение, после чего эти сигналы проявляются на шине памяти, как регулярные, но случайные интервалы, которые используются для определения, подверглась ли ИС DoS-атаке.
РЕКОНФИГУРИРУЕМАЯ АРХИТЕКТУРА
Использование реконфигурируемой логики для противостояния аппаратным троянам имеет существенные преимущества, но ставит новые задачи и проблемы перед проектированием. Существует целый спектр реконфигурируемых логических устройств, в том числе:
• ПЛИС высокой логической плотности, где большая часть устройства является перепрограммируемой;
• платформенные целевые ПЛИС, содержащие фиксированные полупроводниковые элементы, например контроллеры памяти, и даже целые процессорные ядра;
• пользовательские (заказные) СИС (ASIC), которые могут содержать мелкие реконфигурируемые части для выполнения определенных функций, например реализации связующих логических схем или заказного элемента для совместной обработки.
Основное преимущество реконфигурируемой логики заключается в том, что при ее использовании становится возможным разделение между проектированием ИС и ее аппаратной реализацией. Если проект типовой ИС передается непосредственно в кристальное производство, то в случае реконфигурируемой логики программируемый логический блок или макроблок вставляется в ИС перед ее запуском в производство, а после изготовления программируется конфигурируемым битовым потоком, завершая аппаратную реализацию проекта. Такое разделение означает, что проект может быть разработан практически полностью в доверяемой среде, за исключением некоторых периферийных функций, добавляемых к основным логическим элементам.
Подход обеспечивает полный контроль проекта на RTL-уровне, однако разработка и включение реконфигурируемой логики подвержены тем же угрозам со стороны аппаратных троянов, которые характерны для стандартных специализированных ИС (ASIC). Однако, злоумышленник может выполнять только общие атаки на архитектуру реконфигурируемой логики, что затрудняет беспрепятственное вмешательство или модификацию логической операции сконфигурированного проекта. При этом можно осуществлять полный спектр атак: изменять функциональность и спецификацию, проводить утечку конфиденциальной информации и выполнять DoS-атаки. Так, например, изменения в логических элементах могут привести к появлению дополнительных логических операций, потенциально опасных и ведущих к возникновению скрытых ошибок в проекте или утечке информации через периферийные устройства.
Таким образом, возникает новая задача: как наилучшим образом реализовать надежный проект, зная, что лежащая в его основе реконфигурируемая логика может быть заражена произвольным аппаратным трояном, и как защитить целостность проекта после его создания, то есть защитить битовый поток от искажения или заражения трояном. Общий трехступенчатый подход к обеспечению целостности битового потока ПЛИС предложен в работе [17]. Во-первых, целостность конфигурации проверяется ее обратным чтением, во-вторых, в случае обнаружения неправильной конфигурации, ПЛИС частично модифицируется (от подлинной части битового потока), в-третьих, в случае если система была скомпрометирована, ПЛИС использует протокол запроса-ответа для уведомления третьей стороны.
В работе [18] предложен обзор решений по защите битовых потоков ПЛИС и конфигурационной памяти от событийных отказов. Авторы делают следующие выводы:
• если изготовление ПЛИС и проектирование ИС на ПЛИС полностью разделены или в проекте используются IP-блоки третьей стороны, то злоумышленнику не представляет труда внести изменения в любой проект;
• конфигурационные битовые потоки достаточно трудно поддаются обратному проектированию как для злоумышленника, что делает для него невозможным понять назначение ИС, так и с целью поиска закладок;
• битовые потоки могут быть зашифрованы, что обеспечивает хорошую защиту, и тогда во многих ПЛИС возможно внутреннее аппаратное декодирование битового потока. Однако такое шифрование не позволяет реализовывать частичную реконфигурацию, поэтому не применимо для таких приложений, как адаптивные вычисления, являющихся существенной нишей для ПЛИС. Шифрование битового потока также не защищает от проникновения аппаратных троянов через IP-блоки сторонних разработчиков.
Для идентификации подлинности разработанного проекта предлагается использовать дополнительные конфигурационные логические блоки (CLB) в составе ПЛИС на основе кода с коррекцией ошибки (ECC), образующие группу проверки четности. Проверка на четность каждого элемента CLB позволяет вскрывать все внесенные в проект изменения. Двухступенчатая рандомизация, используемая для формирования сигнала четности, обеспечивает непредсказуемость результата CLB.
В работе [19] предлагается защита от аппаратных троянов, которая вносится на стадии изготовления. Если размещать реконфигурируемые логические блоки между важнейшими элементами в проекте, то на производственной стадии будет видима некоторая реконфигурируемая архитектура в некоторых областях кристалла. Эти блоки, названные авторами барьерами, после изготовления программируются с использованием секретного ключа, что приводит к разблокировке всего проекта и его логическому завершению. Если расположение и функциональность этих барьеров выбраны оптимально, то любые вставленные аппаратные трояны будет достаточно трудно активировать, и их влияние на ИС можно блокировать. Особое внимание авторы уделяют типу перепрограммируемой логики, управлению ключами, и различным эвристическим методам размещения барьеров. Комбинируя постоянную и программированную логику, можно выработать уникальные решения против потенциальных аппаратных троянов. При этом реконфигурируемая логика может использоваться и для реализации локальных защитных механизмов.
Использование реконфигурируемой логики в качестве защиты от аппаратных закладок ставит новые задачи для проектирования и верификации и перемещает основное внимание по защите с полупроводникового производства на RTL-проект. Для реализации эффективной аппаратной закладки на уровне ИС в этом случае злоумышленнику необходимо обеспечить взаимосвязь (сговор) между производителем и поставщиком инструментальных средств. Реализация сложного реконфигурируемого логического проекта, как правило, основывается на интеграции нескольких IP-блоков. В работе [20] предложена идея "рвов и подъемных мостов" как изоляционных примитивов, которые применяются в случае использования нескольких IP-блоков. Они позволяют блокировать нелегальные ответвления и нелегальные межсоединения внутри реконфигурируемых блоков.
Перечислим некоторые другие подходы с применением реконфигурируемой логики, которые могут быть использованы для борьбы с аппаратными троянами:
• частичное и динамическое перепрограммирование логических блоков [21];
• шифрование конфигурационных битовых потоков [18];
• репликация и жесткая конфигурация (lock-stepping) логики [22];
• использование функционально идентичных, но имеющих различную архитектуру логических блоков [23];
• генерация однозначных аппаратных модулей с использование случайных чисел [24].
РЕПЛИКАЦИЯ ЧАСТЕЙ, ФРАГМЕНТАЦИЯ И МАЖОРИТАРНАЯ ВЫБОРКА
Разработка эффективных аппаратных троянов связана с пониманием противником функционирования проекта ИС, начиная от уровня вентилей, RTL-уровня, уровня ИС и заканчивая макроуровнем всей системы. На всех этих уровнях для противодействия аппаратным троянам могут быть применены следующие общие подходы:
• репликация или удвоение логики или / и данных;
• разделение или фрагментация логики или / и данных;
• рассредоточение или распределение логики или / и данных;
• накопление и объединение логических функций или / и данных, например, используя мажоритарную выборку.
Эти общие контрмеры эффективны в трех случаях:
• при защите от аппаратных троянов, приводящих к утечке конфиденциальной информации путем разделения данных и обработки их независимыми логическими элементами;
• для защиты от функциональных или спецификационных модификаций элементов с помощью нескольких копий или дубликатов логических блоков;
• для защиты от DoS-атак путем задания избыточности работающих логических элементов в проекте.
Рассматриваемые контрмеры могут быть размещены на различных уровнях: вентильном, RTL, логического проектирования, функциональных модулей, IP-ядер, вплоть до уровня ИС и устройств на макроуровне. Механизмы защиты предполагают отсутствие "сговора" между репликационными или дублированными элементами в проекте.
Метод динамической оценки поверки оборудования во время его эксплуатации предложен в работе [23]. Его суть заключается в обнаружении аппаратного трояна при работе системы, после чего она продолжается с удалением или малым задействованием подозрительных элементов. Авторы предлагают использовать многоядерную систему обработки данных и воспользоваться присущим таким системам резервированием, отказываясь от ядер, которые не заслуживают доверия. Функционально эквивалентные варианты процессов проводятся на нескольких процессорах, после чего сравниваются их результаты. Различные варианты одинаковых процессорных обработок могут быть выполнены на основе разных компиляций или реализаций. Также могут использоваться различные алгоритмы обработки данных. Если результаты двух элементов отличаются, проводятся расчеты на третьем элементе и сравнение трех результатов. Этот процесс продолжается до тех пор, пока не будет достигнуто соответствие, по крайней мере, между двумя элементами обработки данных. Процессорные элементы, которые дают противоречивые (ошибочные) результаты динамически "штрафуются", то есть "доверие" к ним становится меньше, и по возможности они используются меньше.
Этот метод может быть расширен с использованием случайной выборки вариантов функционально эквивалентных аппаратных средств. Он также может применяться на различных уровнях абстракции, например, инструкций, вентильном, программы или ИС. Если метод используется на уровне команд, то активность на нем может быть прозрачной для более высоких уровней, в том числе и для небольшой поверенной вычислительной аппаратной базы (TSB), на которой можно проверять командный уровень расписаний, выбора репликационных блоков, заданий вариантов и мажоритарной выборки.
В работе [22] предлагается выполненная на ПЛИС жесткая конфигурация двухпроцессорной архитектуры с непосредственными связями, которая на макроуровне представляет собой реализацию репликации и мажоритарной выборки. Оба процессора получают и обрабатывают одни и те же инструкции одновременно. Аппаратно реализованная логика проверяет и сравнивает все управляющие сигналы каждой транзакции на шине. Если обнаружена ошибка, система принудительно вводится в последовательность устранения ошибки. Для адекватного противодействия системы аппаратным троянам должна быть проведена полная верификация TSB – блоков проверки и устранения ошибок. Метод может быть расширен для большего числа процессоров, которые могут быть отдельными ИС или входить с состав одной ПЛИС.
В 1991 году в работе [25] исследовались вопросы обеспечения высокой надежности и работоспособности, а также сохранения конфиденциальности данных в больших распределенных системах. Угрозы, связанные с аппаратными троянами, не рассматривались, однако предложенные методы отказоустойчивости актуальны для противодействия несанкционированным закладкам. Общий подход предполагает разбиение данных на малые фрагменты, так что каждый из них содержит достаточно мало информации. Он может быть использован и для хранения данных, и для их обработки (соответственно, они группируются, как фрагменты для хранения и для обработки). Репликация (резервирование) фрагментов применяется для обеспечения надежности системы. Пороговые схемы, подобные схемам "тайного обмена" (например, [26]), предложены для перекомпоновки хранимых и обрабатываемых данных. При этом определение функций фрагментации общего назначения – достаточно сложный и дорогой вычислительный процесс. Подобный механизм может быть реализован в виде вычислительных элементов на дискретных аппаратных средствах. В этом случае необходимая TSB включает в себя входы и выходы обработки и хранения операций.
ЗАКЛЮЧЕНИЕ
В настоящее время пока нет единого решения, которое может обеспечить полную защиту от всего спектра угроз и механизмов активации аппаратных закладок при работе системы. Маловероятно, что такое решение когда-нибудь будет найдено, сочетание же контрмер необходимо для борьбы с конкретными классами аппаратных троянов в конкретных прикладных областях. Эти контрмеры должны разрабатываться с учетом систем, в которых они будут применены, а также с учетом обеспечиваемого уровня защиты. Как показано в работе [14], при разработке новых контрмер естественным образом возникают способы их обхода. Такая "гонка вооружений" в области аппаратных закладок диктует необходимость использования комплексных "глубоко эшелонированных" подходов к обеспечению безопасности электронных систем.
Статья подготовлена при финансовой поддержке Минобрнауки в рамках выполнения государственного задания 16.9021.2017/БЧ.
ЛИТЕРАТУРА
1. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 1: Новые угрозы кибербезопасности // НАНОИНДУСТРИЯ. 2016. № 7 (69). С. 16–25.
2. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 2: Способы предупреждения и обнаружения // НАНОИНДУСТРИЯ. 2017. № 1 (71). С. 30–40.
3. Кузнецов Е., Сауров А. Аппаратные трояны. Часть 3: Примеры реализации, способы внедрения и активации // НАНОИНДУСТРИЯ. 2016. № 8 (70). С. 12–21.
4. Waksman A., Sethumadhavan S. Silencing hardware backdoors // Security and Privacy (SP), 2011 IEEE Symposium. IEEE, 2011. С. 49–63.
5. Gentry C. Computing arbitrary functions of encrypted data // Communications of the ACM. 2010. Т. 53. № 3. С. 97–105.
6. Jдrvinen K. et al. Garbled circuits for leakage-resilience: Hardware implementation and evaluation of one-time programs // Cryptographic Hardware and Embedded Systems, CHES 2010. Springer Berlin Heidelberg, 2010. С. 383–397.
7. Chakraborty R.S., Narasimhan S., Bhunia S. Hardware Trojan: Threats and emerging solutions // High Level Design Validation and Test Workshop, 2009. HLDVT 2009. IEEE International. IEEE, 2009. С. 166–171.
8. Kim L.W., Villasenor J.D., Koз C.K. A Trojan-resistant system-on-chip bus architecture // Military Communications Conference, 2009. MILCOM 2009. IEEE, 2009. С. 1–6.
9. Das A. et al. Detecting / preventing information leakage on the memory bus due to malicious hardware // Proceedings of the Conference on Design, Automation and Test in Europe. European Design and Automation Association, 2010. С. 861–866.
10. Bloom G. et al. Providing secure execution environments with a last line of defense against trojan circuit attacks // Computers & security. 2009. Т. 28. № 7. С. 660–669.
11. Suh G.E. et al. AEGIS: architecture for tamper-evident and tamper-resistant processing // Proceedings of the 17th annual international conference on Supercomputing. ACM, 2003. С. 160–171.
12. Anderson M., North C. & Yiu K. Towards Countering the Rise of the Silicon Trojan // DSTO Technical Report DSTO-TR-2220. 2008. DSTO Information Sciences Laboratory.
13. Hicks M. et al. Overcoming an untrusted computing base: Detecting and removing malicious hardware automatically // Security and Privacy (SP), 2010 IEEE Symposium. IEEE, 2010. С. 159–172.
14. Sturton C. et al. Defeating UCI: Building stealthy and malicious hardware // Security and Privacy (SP), 2011 IEEE Symposium. IEEE, 2011. С. 64–77.
15. Abramovici M., Bradley P. Integrated circuit security: new threats and solutions // Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies. ACM, 2009. С. 55.
16. Deng D.Y., Chan A.H., Suh G.E. Hardware authentication leveraging performance limits in detailed simulations and emulations // Proceedings of the 46th Annual Design Automation Conference. ACM, 2009. С. 682–687.
17. Webb J.B. Methods for securing the integrity of FPGA configurations. Дис. Virginia Polytechnic Institute and State University, 2006.
18. Trimberger S. Trusted design in FPGAs // Design Automation Conference, 2007. DAC’07. 44th ACM / IEEE. IEEE, 2007. С. 5–8.
19. Baumgarten A., Tyagi A., Zambreno J. Preventing IC piracy using reconfigurable logic barriers // IEEE Design and Test of Computers. 2010. Т. 27. № 1. С. 66–75.
20. Huffmire T. et al. Moats and drawbridges: An isolation primitive for reconfigurable hardware based systems // Security and Privacy, 2007. SP’07. IEEE Symposium. IEEE, 2007. С. 281–295.
21. Silva M.L., Ferreira J.C. Creation of partial FPGA configurations at run-time // Digital System Design: Architectures, Methods and Tools (DSD), 2010 13th Euromicro Conference. IEEE, 2010. С. 80–87.
22. Newgard B., Hoffman C. Using multiple processors in a single reconfigurable fabric for high-assurance applications // Hardware-Oriented Security and Trust (HOST), 2010 IEEE International Symposium on. IEEE, 2010. С. 25–29.
23. McIntyre D. et al. Dynamic evaluation of hardware trust // Hardware-Oriented Security and Trust, 2009. HOST›09. IEEE International Workshop. IEEE, 2009. С. 108–111.
24. Kumar S.S. et al. The butterfly PUF protecting IP on every FPGA // Hardware-Oriented Security and Trust, 2008. HOST 2008. IEEE International Workshop. IEEE, 2008. С. 67–70.
25. Trouessin G. et al. Improvement Of Data Processing Security By Means Of Fault Tolerance // Proceedings Of The 14th National Computer Security Conference (NCSC’14). 1991. C. 295–304.
26. Shamir A. How to share a secret // Communications of the ACM. 1979. Т. 22. № 11. С. 612–613.
Отзывы читателей