Интро
Все мы в какой-то степени подвержены Троянской угрозе сегодня. Любой девайс, который был куплен в ближайшем магазине под домом, может служить не только Вам, как потребителю, но и злоумышленнику в его целях. Потому угроза и названа Троянской: в древнегреческой мифологии есть случай захвата целой крепости с помощью подарка, который только на первый взгляд таким кажется. Что уж говорить о захвате данных современных пользователей: паролей, реквизитов, личных сообщений.
Есть два основных вида Троянца: software(программный) и hardware(аппаратный). Software trojan представляет собой тип вредоносных программ, маскирующихся под вредоносное ПО. Как правило, это эмуляция бесплатного ПО либо вложение в электронном письме, и установка этой программы даёт возможность выполнить её скрытые истинные задачи: полный контроль над ПК, личными данными, транзакциями и т.п. Примерно такие же цели преследует и hardware trojan, представляя собой злоумышленное изменение электросхем в устройствах (чаще всего с целью кражи данных, паролей). Допустим, вы покупаете клавиатуру в непроверенном магазине, и это устройство внутри содержит встроенную антенну (любой радиопередатчик), которая способна передавать вводимые символы злоумышленнику по радиосвязи. Вообще, такая проблема часто возникает, когда компания проектирует интегральную схему (здесь и далее - ИС), но для производства таких схем вынуждена обращаться к другой ненадёжной компании. Звучит совсем не безопасно, правда?
Сегодня существует множество способов защиты от программной Троянской угрозы и, что самое главное, они постоянно обновляются, так как и вредоносное ПО, и аппаратура "не спят", улучшаясь со временем. Самые простые рекомендации для пользователя - регулярно обновлять ПО, использовать "антивирус" и банально не проходить по непроверенным ссылкам на почте и в Интернете. Однако что делать с hardware угрозами? Оказывается, в последнее время приобретает всё большую популярность анализ угроз с помощью машинного обучения. Об этом я и хотел сегодня рассказать.
Основные исследования
Исследователи из университета Мейджо, Япония, предлагают анализировать сигналы электропотребления при работе Троянца и без него. Данные для решения такой задачи классификации предобрабатываются для более точного анализа. А именно, сигнал с помощью дискретного преобразования Фурье (ДПФ) переводится в частотную область, в которой можно обнаружить характерные частоты работы Троянца.
Далее, на размеченных данных (где х - частоты сигнала, а у - +-1(с или без Троянской угрозы)) обучается классификатор с помощью метода опорных векторов (SVM), что позволяет с неплохой точностью анализировать энергопотребление с целью выявить угрозу и вовремя сообщить об этом пользователю. Стоит отметить, что эксперименты проводились на FPGA - довольно популярной программируемой логической интегральной схеме.
Другой подход, более комплексный, был представлен в "Journal of Hardware and Systems Security" в декабре 2018 года исследователями университета Флорида. Дело в том, что существующие на тот момент подходы работали долго, с недостаточной точностью и только лишь против небольшой части Троянских угроз. И основная идея этой инновации следующая: микросхемы фотографируются с помощью растрового электронного микроскопа (РЭМ) и далее с помощью алгоритмов компьютерного зрения можно обнаружить даже едва заметные изменения в цепи (как правило, анализируются транзисторы). Такие изменения и свидетельствуют о наличии встроенной Троянской угрозы.
Говоря детальнее, производится анализ двух фотографий: первая - эталонная деталь ИС, а вторая - деталь под подозрением, которую мы и хотим проверить на наличие Троянца. При этом нам известны основные структурные особенности Троянских угроз и, соответственно, исходя из различия фотографий можно идентифицировать место и тип угрозы. Такой подход очевидно намного менее энерго- и ресурсозатратен в отличие от полной разборки ИС и ручного анализа на поиск угрозы.
Теперь совсем подробно
Аппаратные Троянские угрозы классифицируются на основе:
своих физических характеристик(определённые геометрические формы внутри ИС); это может быть как добавление\удаление новых транзисторов в схему, так и модификация уже существующих связей, шин и т.п.; банальным примером тут может быть изменение логического элемента с NAND на NOR в интересах злоумышленника;
активации; некоторые Троянцы непрерывно крадут ваши данные, а другие активируются только при определённом внешнем\внутреннем воздействии.
Алгоритм поиска угрозы таков:
подготовка образца;
быстрое фото с помощью микроскопа;
обнаружение различий между эталонным образцом без Троянца и аналогичным рассматриваемым образцом.
На самом деле, сделать нужную для обучения фотографию своего рода искусство. При подаче на рассматриваемую деталь набора напряжений различные элементы проявляют себя более активно. Алгоритм автоматический и способен использовать нужные ему фотографии. Также фотографии можно делать с разного расстояния, менять время съёмки (dwelling time) и разрешение (от этого зависит качество съёмки и, соотв., результат; здесь рождается знакомый для machine learning компромисс между временем работы алгоритма и качеством обнаружения угроз).
Далее всё просто: по выбранной метрике "похожести" анализируются аналогичные участки эталона и проверяемой микросхемы. Все несостыковки проверяются дополнительно на выявление одного из известных типов Троянских угроз.
На сегодня уже существует и более продвинутый подход к поиску Троянца с помощью машинного обучения без эталона. Сперва данные, как и ранее, предобрабатываются для фото.
Далее делается фото плюс несколько фильтров, которые дают чёткое чёрно-белое изображение. Исследуемые участки цепи вырезаются в отдельные снимки и подаются на вход предсказателя, который относит элемент к оригинальным либо же подозрительным. Предсказатель в данном случае - всё тот же SVM с ядром RBF (для выявления нелинейных зависимостей данных). Он тренируется на наборе размеченных сэмплов, которые получаются, если вкратце, с помощью дискретного преобразования Фурье над элементами ИС.
Пояснение по RBF по ДПФ
RBF(radial basis function) - функция преобразования исходного пространства признаков в новое нелинейным образом. Суть в том, что построенная методом SVM линейная граница в новом пространстве будет нелинейной в исходном. Это даёт возможность строить классификаторы хорошей точности с выявлением нелинейностей. Пайплайн для обучения такого классификатора выглядит следубщим образом:
rbf_kernel_svm_clf = Pipeline([
("scaler", StandardScaler()),
("svm_clf", SVC(kernel="rbf", gamma=5, C=0.001))
])
rbf_kernel_svm_clf.fit(X, y)
Что касается ДПФ, деталь ИС имеет чёткие контуры, которые видны на чёрно-белом фоне. Есть специальный метод описания контуров объектов с помощью Фурье-дескрипторов. Там и требуется ДПФ,
Такой подход позволяет распознать контур логического элемента в схеме и, соответственно, более точно определить, является ли этот элемент здоровым и оригинальным. И в случае вредоносной аппаратуры выявить её и указать дальнейшие действия по избавлению от угрозы.
Выводы
В современном мире потребность в различных микросхемах по-прежнему увеличивается, параллельно со спросом растёт и предложение таких товаров. А значит, всё чаще можно приобрести оборудование от злоумышленников, даже не подозревая об этом. Борьба с аппаратными (их можно называть троянскими исходя из известной аналогии в древнегреческой мифологии) угрозами сегодня актуальна для защиты конфиденциальной информации пользователя и его собственности в целом. Что более интересно, защита от такой угрозы уже сейчас может проводиться автоматически с помощью искусственного интеллекта, а не вручную. Такой подход сокращает время обнаружения Троянца с недель и месяцев до часов примерно с такими же показателями точности. Будущее уже наступило!
Литература
Takato Iwase, Yusuke Nozaki, Masaya Yoshikawa, "Detection Technique for Hardware Trojans Using Machine Learning in Frequency Domain", 2015 IEEE 4th Global Conference on Consumer Electronics (GCCE)
N. Vashistha, M. Tanjidur Rahman, H. Shen, D. L. Woodard, N. Asadizanjani, and M. Tehranipoor, “Detecting Hardware Trojans Inserted by Untrusted Foundry using Physical Inspection and Advanced Image Processing,” Springer journal of Hardware and Systems Security, special issue on Hardware Reverse engineering and Obfuscation 2018.
Nidish Vashistha, Hangwei Lu, Qihang Shi, M Tanjidur Rahman, Haoting Shen, Damon L Woodard, Navid Asadizanjani and Mark Tehranipoor, "Trojan Scanner: Detecting Hardware Trojans with Rapid SEM Imaging combined with Image Processing and Machine Learning".
M. Tehranipoor and F. Koushanfar, “A Survey of Hardware Trojan Taxonomy and Detection,” IEEE Des. Test Comput., vol. 27, no. 1, pp. 10–25, Jan. 2010.
Joseph Clements and Yingjie Lao, "Hardware Trojan Attacks on Neural Networks", Department of Electrical and Computer Engineering Clemson University, Clemson, SC 29634.
Yuntao Liu, Yang Xie, and Ankur Srivastava, "Neural Trojans", 2017 IEEE 35th International Conference on Computer Design.
X. Zhang and M. Tehranipoor, “Case study: Detecting hardware Trojans in third-party digital IP cores,” in 2011 IEEE International Symposium on Hardware- Oriented Security and Trust, 2011, pp. 67–70.
K. Xiao, D. Forte, Y. Jin, R. Karri, S. Bhunia, and M. Tehranipoor, “Hardware Trojans: Lessons Learned after One Decade of Research,” ACM Trans. Des. Autom. Electron. Syst., vol. 22, no. 1, pp. 1–23, May 2016.
F. Wolff, C. Papachristou, S. Bhunia, and R. S. Chakraborty, “Towards Trojan-free trusted ICs: Problem analysis and detection scheme,” in Proceedings of the conference on Design, automation and test in Europe, 2008, pp. 1362–1365.