Системная шина ПК передаёт музыку на средних частотах

iwagqcz0isxl7rr7_pc7prfoez0.jpeg
В качестве антенны радиопередатчика используется шина между процессором и памятью

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

Но если кто-то инфицировал физически изолированный компьютер, а потом ему позарез нужно снять информацию — что делать? Здесь приходится выдумывать разные хитроумные и нестандартные способы. Например, превратить обычный ПК в генератор радиосигнала — и ловить этот сигнал радиоприёмником. Именно такую задачу выполняет утилита System Bus Radio, которая однажды упоминалась на GT. Хотя если честно, то вряд ли кто-то будет использовать её для шпионажа — это просто любопытная программка для развлечения. Она использует системную шину ПК или ноутбука как радиопередатчик для трансляции любых звуков на установленной радиочастоте.

За время, прошедшее с начала разработки, пользователи собрали обширную статистику, на радиоприёмниках какой модели и на какой частоте ловится сигнал. Кроме того, создан онлайновый модулятор, где вы можете сочинять музыку не выходя из браузера — и генерировать радиосигнал на частоте 1560 Гц нажатием одной кнопки Play Tune.

1hlgftdruxbpgns7p-ygax0r_b0.jpeg

Формат онлайнового модулятора:

400 2673
400 2349
400 2093
400 2349
400 2673
400 0
400 2673
400 0
790 2673
400 2349
400 2349
400 0
790 2349
400 2673
400 3136
400 0

Здесь первая цифра означает время звучания ноты в миллисекундах, а вторая цифра — частоту этой ноты в герцах.

В браузере Chrome возможны ошибки при локальном открытии файла (file://), так что рекомендуется использовать команду вроде php -S localhost:8000 для быстрого веб-сервера.

В программе генерация излучения реализована с помощью инструкции _mm_stream_si128, результат выполнения которой записывается по определённому адресу в оперативной памяти (вместо _mm_stream_si128 можно использовать x++). Эта концепция под названием GSMem была представлена в докладе специалистов из Университета имени Бен-Гуриона (Израиль) на конференции USENIX Security 15 (см. стр. 849–864 в сборнике докладов с конференции или отдельный pdf). В своём докладе авторы упоминают другие работы в смежной области, когда информация с физически изолированного компьютера передаётся нестандартными способами:

  • на FM-радиочастотах путём регистрации излучения с кабеля монитора (AirHopper), частота 78–108 МГц, расстояние 7 метров, скорость 104–480 бит/с
  • через аудиоколонки (Ultrasonic), 19,7 м, 20 бит/с
  • путём считывания излучения CPU специальными датчиками (SAVAT), 80 кГц, расстояние 1 м
  • путём считывания тепловыделения CPU/GPU датчиками тепла (BitWhisper), 0,4 м, 8 бит/час


В научной работе приводится такой алгоритм для модуляции аудиосигнала с цифровой информацией:

9lobz7w3mbmkg4bgso9hhczqdi4.png

Отправка одного бита информации представляет собой вариант двоичной амплитудной модуляции B-ASK (Binary amplitude shift keying). В этом случае для передачи »0» мы ничего не делаем в течение T секунд, а для передачи »1» — повышаем амплитуду сигнала на T секунд. Для определения факта передачи приёмником и синхронизации используется фрейминг, где каждые 12 бит полезной информации предваряется стандартной последовательностью 1010.

С точки зрения информационной безопасности такой способ удобен для злоумышленника, потому что программа-генератор занимает всего 4 килобайта в памяти, не использует никаких API и не требует для работы рутовых прав на компьютере жертвы. В то же время она будет отлично работать на машинах с любыми процессорами (Intel, AMD…) и под любой операционной системой (Windows, Linux, macOS и другие).

Вот алгоритм для получения (расшифровки) сигнала с физически изолированного компьютера:

elypmoi109xmwufdh3ag7azjulm.png

Теоретически, в качестве приёмника может выступать даже мобильный телефон, поскольку во многих современных телефонах есть антенны для приёма радиосигнала на средних частотах с модуляцией AM. Требуется только модифицировать прошивку baseband-микросхемы в телефоне. Существует проект OsmocomBB, где сотни энтузиастов уже несколько лет работают над модификацией прошивок GSM-телефонов. Об этом проекте подробно рассказывалось на Хабре (введение, hardware, software).

Как показали эксперименты, на хорошем приёмнике Sony STR-K670P со стоковой антенной сигнал ловится на расстоянии до 2 метров (1 метр через стену).


Генерацию сигнала уже проверили на ноутбуках MacBook Air, HP ENVY 15-j142na, Asus X201E, Mac mini, MacBookPro Retina, Lenovo X1 Carbon, Dell Inspiron 17 7000, Acer Aspire E1–572–6 BR691, на настольном компьютере с Athlon II X2 240 и материнской платой Gigabyte GA-MA785GM-US2H. Сигнал найден во всех случаях. А вот Raspberry Pi, кажется, не генерирует волны достаточной амплитуды, чтобы их можно было уловить. Вообще, количество помех и максимальное расстояние до передатчика, похоже, зависят именно от модели компьютера. Некоторые генерируют более мощный сигнал, а другие — более слабый или не генерируют вовсе. Хотя качество приёма зависит ещё от множества других факторов, которые пока не удаётся формализовать.

0d0612738f7192d2785358f53197066e.png

Авторы научной работы с помощью качественной антенны и программно-определяемой радиосистемы (SDR) зарегистрировали уверенный приём с расстояния 30–40 метров.

hjttf7sawvkneproaeobagqe0lg.png

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

Модуляция радиосигнала с системной шины может использоваться не только для шпионажа. Например, один умелец таким способом провёл отладку своего компьютера Apple Newton, который не хотел включаться, но туда можно было залить новую прошивку. Собственно, хакер так и сделал: залил новую прошивку с маленькими циклами, которые выполняли разные задачи по шине и звучали по-разному на AM-волнах, при этом были ассоциированы с разными путями загрузки. После часа прослушивания радиоприёмника он всё-таки определил, где проблема.

© Habrahabr.ru