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

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

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

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



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

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 бит/час

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



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

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

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



Теоретически, в качестве приёмника может выступать даже мобильный телефон, поскольку во многих современных телефонах есть антенны для приёма радиосигнала на средних частотах с модуляцией 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, кажется, не генерирует волны достаточной амплитуды, чтобы их можно было уловить. Вообще, количество помех и максимальное расстояние до передатчика, похоже, зависят именно от модели компьютера. Некоторые генерируют более мощный сигнал, а другие — более слабый или не генерируют вовсе. Хотя качество приёма зависит ещё от множества других факторов, которые пока не удаётся формализовать.



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



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

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

Комментарии (8)


  1. Caelwyn
    06.02.2018 12:24

    Угу, а для того чтобы просто послушать радио на средних волнах нужно уезжать в лес.


  1. Lexi
    06.02.2018 22:05

    на частоте 1560 Гц


    Очевидно всё-таки килогерц. Впрочем, ни там ни там, у меня ничего не слышно.


    1. dobergroup
      08.02.2018 15:45

      В оригинальном описании утилиты — 1580кГц. В их же генераторе (очевидно, ошибочно) уже указано 1560 Гц.
      В приведеном в статье графике речь уже про 2ГГц, и очевидно он имеет отношение совершенно к другому исследованию. Впрочем, как и упомянутое исследование GSMem


    1. dobergroup
      08.02.2018 16:15

      Впрочем, ни там ни там, у меня ничего не слышно.

      А чем пробовали слушать?
      В моих условиях на 1589.5 kHz лучше всего прямо в упор к ноуту, 1543 — в двух метрах. SNR за гранью приличия, но у меня куча БП мусорит помехами, надо бы в более чистых условиях повторить


  1. scruff
    07.02.2018 07:27

    Где-то была статейка на хабре, как хакнули обучный беспроводной маршрутизатор и «подправили» его так, чтобы он мигал индикаторами так интенцисвно, что глаз не воспринимал мерцания. Затем считавили через мерцания то, что тварилось внутри локальной сети, предварительно «навешав» фильтра и отбросив ненужный трафик. Я так подумал — ведь так можно и флоповод или CD/DVD-ROM, даже HDD заставить мигать нужным шифром и 25-кадр «повесить» на монитор. У светового сигнала всётаки дальность куда больше пары метров и считать мерцания светодиода можно даже через окно, находясь в здании напротив.


  1. mickvav
    07.02.2018 11:19

    Хм, а ещё прошивка может сама слушать шумы, наведённые, к примеру, во входной микрофонной цепочке, и если поймает в них паттерн — получить обратную связь.
    Имеем схему — вирус «шумит» данными, к примеру, lspci или dmidecode, атакующий с хорошей направленной антенной в соседнем доме слушает вот-это, подбирает материнку, исследует на резонансные частоты и возможность паразитного детектирования входную аналоговую шину, потом SDR-ом фигачит на подогнанной под конкретную мать частоте подписанный сигнал и имеет обратный канал к вирусу. Партия.


  1. php7
    07.02.2018 15:29

    Может кто знает.
    У меня при изменение изображения на экране ноута HP (достаточно хувера по кнопке со сменой ее цвета) в колонках на высокой громкости слышно шорох.


    1. Caelwyn
      08.02.2018 16:34

      Это нормально, раньше дешёвые звуковушки с копеечными колонками только так и шумели.