27 сентября 2019

Using TensorFlow / machine learning for automated RF side-channel attack classification

https://leveldown.de/blog/tensorflow-sidechannel-analysis/

Использование программной библиотеки TensorFlow и машинного обучения для автоматического анализа сигналов побочных излучений RF при хакерской атаке 

Введение
В своей презентации на wallet.fail мы (Thomas Roth, Josh Datko, Dmitry Nedospasov) указали на множество уязвимостей в современных аппаратных кошельках, одной из которых была атака по побочному каналу RF на кошелек криптовалюты Ledger Blue. Было обнаружено, что при вводе PIN-кода на устройстве, каждое нажатие кнопки создает значительный электромагнитный импульс в диапазоне 169 МГц, как видно на видео ниже. Родилась идея использовать TensorFlow и машинное обучение для автоматического анализа этих сигналов и использовать его для извлечения PIN-кода, введенного в устройство, как из воздуха!
Аппаратура для приёма и записи такого сигнала может варьироваться от очень простой до очень сложной, в нашем случае все было сделано с использованием SDR-приемника. Дешевый RTL-SDR-приемник доступен примерно за 30 долларов, хотя более сложные устройства, такие как HackRF или bladeRF, предлагают значительно более высокую частоту дискретизации (и более высокое разрешение АЦП). Например, для записи видео выше был применен простой HackRF с дешевой телескопической антенной:
Даже при помощи такой дешевой аппаратуры сигнал можно было зафиксировать с расстояния более 2 метров (6,5 футов) – используя же направленную антенну (и, возможно, используя излучения в другом диапазоне частот) этот диапазон можно легко увеличить. Также было обнаружено, что подключение USB-кабеля к устройству значительно увеличивает силу измеряемого излучения.

Следующий вопрос был: какая шина в устройстве вызывает эти выбросы? По графикам записанных выбросов можно отчётливо увидеть, что есть 11 всплесков, короткая пауза, а затем еще несколько всплесков:
Используя логический анализатор, мы определили, что найденные сигналы фактически являются сигналом для дисплея - первые 11 байтов содержат адресную информацию (координаты X и Y, ширину и высоту), за которыми следуют фактические данные изображения. Если вы внимательно посмотрите вышеупомянутое видео, вы увидите, что при нажатии цифры на дисплее она перерисовывается на в виде импульсов на экране монитора - и поскольку разные кнопки на дисплее имеют разные координаты X & Y, первые 11 байтов содержат достаточно информации для сбора введенного PIN!

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

Сбор данных для обучения
Чтобы обучить нейронную сеть, необходимо иметь много обучающих данных. В этом случае это означало известную запись нажатий кнопок, например, 100 нажатий кнопок с цифрой 0, 100 нажатий кнопок с цифрой 1 и т. д. Поскольку это большой объём работы, мы решили автоматизировать ее, создав USB-управляемый автомат – построенный на базе Arduino, серводвигателя и случайных вещей, которые нашли в офисе:
Чтобы поиграться, мы записали тренировочный набор из 50 нажатий цифр 7, 8, 9 и 0. Обычно используют значительно большее количество обучающих примеров, но, как покажет эта статья, даже с таким небольшим набором данных мы можем получить хорошо работающую сеть!
= = =
Описание процесса подготовки данных, фильтрации, создания сети, компиляции модели и обучения сети я опускаю, подробности можете найти по ссылке на статью.
= = =
Тестирование сети
Теперь настал момент истины: насколько хорошо сеть работает с данными, которые она никогда не видела раньше? Помните тестовые данные, которые мы разделили изначально? Мы пропустим их через нашу сеть, чтобы увидеть, насколько она точна!
- - -
Получена точность по тестовым данным: 96,15384340286255%
Вау! Точность 96%! Наша сеть работает очень хорошо.
Завершение
Надеемся, что эта короткая статья дала вам хорошее представление о том, как можно использовать машинное обучение для автоматической и относительно простой классификации данных излучений по побочным каналам. Это не ограничивается только боковыми радиочастотными каналами, такой же анализ может быть выполнен, например, для трассировок мощности SCA, трассировок времени SCA и т. д.

Комментариев нет:

Отправить комментарий

Извините, в связи с огромным количеством спама, все ваши комментарии могут появляться с небольшой задержкой.
Буду рад, если вы не забудете подписаться под своим комментарием :)