В книге Нила Стивенсона «Криптономикон», про которую у нас в блоге был пост, описываются разные виды утечек информации по сторонним каналам. Есть практические, вроде перехвата ван Эйка, и чисто теоретические, для красного словца: отслеживание перемещений человека по пляжу на другой стороне океана, построение карты города по тому, как его жители преодолевают бордюрный камень на перекрестках (вот это сейчас можно реализовать акселерометрами, только бордюры везде спилили и переименовали в поребрики). Перехват Ван Эйка, впрочем, тоже сложная штука — реконструировать картинку на экране по электромагнитному излучению монитора непросто, особенно если не упрощать атакующему жизнь и не печатать в ворде огромные буквы.

21 августа ученые из университетов США и Израиля опубликовали работу, которая реализует похожую идею: как реконструировать картинку, отслеживая излучение монитора. Только в качестве побочного канала утечки данных они использовали довольно простой в обращении звук. С вами такое наверняка тоже случалось: стоит неаккуратно положить провода или же попадется неудачная комбинация из монитора и колонок — и вы начинаете слышать противный писк, который еще и меняется в зависимости от направления прокрутки текста мышью. Работа посвящена анализу такого звукового излучения. Ученым удалось «увидеть» на атакуемой системе крупный текст, идентифицировать посещаемый сайт и даже подсмотреть пароль, набираемый на экранной клавиатуре.

Учитывая другие открытия в сфере атак по боковым каналам, возможно, мы уверенно движемся к тому моменту, когда это направление исследований перевернет не только qd??н?v??, но и все наши представления о цифровой приватности.

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

Изначально исследователи хотели определить, есть ли какой-то звуковой выхлоп от монитора в самой простой для утечек ситуации, когда на экране демонстрируются меняющиеся местами черные и белые полосы. Установка для «прослушивания» выглядела так:


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


Вот здесь видно, как полосы на мониторе генерируют четкий паттерн, причем как в области ультразвука, так и в слышимом диапазоне. Картинка слева — это исследователи проверяли, что имеют дело именно со звуком, а не с электромагнитным излучением, которое случайно навелось на провода, на ноутбук или на предусилитель. Все в лучших традициях капитанства: если закрыть микрофон тряпкой, звук пропадает. Были перепробованы разные мониторы — от самых свежих до изделий 16-летней давности, с разными типами подсветки. «Шум» так или иначе издавали все, осталось только извлечь из этого звукового загрязнения какой-то смысл.


Ах да, сначала неплохо было бы идентифицировать, а кто, собственно, шумит. Для этого один из мониторов разобрали и смогли локализовать источник: оказалось, блок питания. Частота излучения меняется в зависимости от размера изображения, размера отдельного элемента (первоначально пробовали рисовать шахматную доску) и частоты обновления кадров. Дальше начали изменять изображение, вставляя, например, черный прямоугольник между черно-белыми полосами. Амплитуда сигнала соответствующим образом падала там, где монитору ничего не нужно было выводить на экран.


На этом этапе ученые столкнулись с массой трудностей, начиная с «плавающей» частоты обновления кадров, которая пусть немного, но отличалась от эталонных 60 герц. Трудности были героически преодолены. Более того, выяснилось, что для записи излучения вовсе не обязательно использовать высококачественный микрофон. Достаточно лежащего под экраном телефона. Или веб-камеры с микрофоном, которая, как правило, прикручена к дисплею. Или даже стоящей рядом умной колонки от Google или Amazon. Во всех случаях необходимые для анализа сигналы сохранились.


А вот для анализа данных использовались алгоритмы машинного обучения, точнее, сверточные нейронные сети. Для обучения использовали комбинацию из скриншота экрана и полусекундной записи звука, сделанной в соответствующий временной отрезок. В результате:

  • Почти гарантированно (с вероятностью до 100%) получилось перехватывать пароль, вводимый с помощью экранной клавиатуры.
  • С высокой (88–98%) вероятностью удалось распознать выводимый на монитор текст.
  • С высокой же (от 90,9%) точностью получилось идентифицировать выведенный на экран веб-сайт, один из 97 из списка наиболее часто посещаемых.

А теперь текст мелким шрифтом. Все эксперименты так или иначе имеют свои ограничения. Например, вводимый на экранной клавиатуре пароль состоял только из букв английского алфавита. Распознанный с высокой вероятностью текст — это были буквы высотой 175 пикселей. Самое главное: чтобы эту атаку провести, желательно выкрасть ночью монитор, натренировать на нем нейросеть, а потом вернуть его обратно, чтобы никто не заметил. Дело в том, что точность идентификации данных резко падает даже при замене монитора на соседнюю модель в линейке того же производителя.

Но это исследовательская работа, авторам и не требовалось за кем-то реально следить, главное — показать возможность. И если начать делать необоснованные допущения (например, что сейчас эту тему кто-нибудь разовьет до практического применения), ситуация получается, кхм, интересная. Если вы настолько важный человек, что вас могут подслушивать, через тот же микрофон за вами, получается, могут и подсматривать. Более того, даже не обязательно подкладывать жучок: нужные аудиоданные зафиксирует «подготовленный» смартфон жертвы. С высокой вероятностью с вашего дисплея украдут что-нибудь интересное и во время конференц-звонка по скайпу. А еще имеющиеся записи вашего голоса могут быть проанализированы постфактум на предмет содержимого экрана поблизости.

Какие рекомендуются способы защиты? Изолировать «звучащую» компоненту монитора подушками, наводить дополнительные, сбивающие алгоритм с толку шумы, перепаивать блок питания, чтобы шумел мало. Использовать специальные, стойкие к непрямому анализу шрифты в конце концов! Список методов обороны по степени параноидальности примерно соответствует характеристикам самой атаки. Скажем же традиционное: пока это скорее теория, чем практика. Как и атака по сторонним каналам через сеть. Как и сам Spectre в общем-то.

Не исключено, что со временем все эти небольшие достижения науки и техники наберут критическую массу и радикально поменяют наш мир, сдвинут парадигму и взорвут (как бы не буквально) Интернет. Или не поменяют и не взорвут, оставшись чисто техническими экспериментами. Мы все еще продолжаем наблюдение.

Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.

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


  1. shiru8bit
    03.09.2018 20:56
    +1

    Идея интересная, но описанное в части успехов вызывает очень сильные сомнения. Писк в колонках — это же главным образом ШИМ для управления яркостью подсветки у недорогих мониторов. Из него можно только понять, ярче или темнее конкретный кадр, в лучшем случае яркость части кадра, но уж точно не содержание строки пикселей. Даже если строка 160 точек в ширину, 480 строк в высоту, 50 кадров в секунду — нужна полоса 160*480*50=3.84 МГц, что очень далеко за пределами звукового диапазона.

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


    1. Ghost_nsk
      04.09.2018 09:06

      не нужна такая полоса, нужна такая частота дискретизации. Да и то если вы хотите получить pixel perfect, в общем случае часть пикселей можно и потерять. Нормативы обычно говорят «не шуметь сильнее стольки то в таком то диапазоне», и соответсвенно всегда может остаться что то, что можно усилить и вытянуть в пригодный для анализа сигнал.


      1. punzik
        04.09.2018 13:44

        не нужна такая полоса, нужна такая частота дискретизации.

        Нет. Частота дискретизации может быть ниже (см. субдискретизация). А вот полоса в нужном диапазоне должна быть открытой.


      1. shiru8bit
        04.09.2018 14:38

        В условном примере предложил всего 160 пикселей в ширину и всего 480 строк в высоту. По сравнению с типичным 1920x1080 это уже огромная потеря, с минимальной надеждой разобрать хоть что-то. Для pixel perfect 1920x1080x60 Hz из реального мира было бы уже не 3, а 124 МГц.


  1. port443
    04.09.2018 21:24

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

    Эти исследователи же не пробовали пропускать звук через алгоритмы сжатия? Все lossy алгоритмы ориентированы на сжатие таким образом, чтобы сохранить в первую очередь диапазон частот, важный для восприятия ушами, и наиболее вероятно, потеряют «интересный» сигнал. То же касается и умных колонок.


    1. Kaspersky_Lab Автор
      05.09.2018 16:25

      Судя по всему пробовали. В примере с умной колонкой аудиозапись была взята с серверов Google в таком виде, как она там хранится. А там не только сжатие, там еще и урезание частоты дискретизации до 16 килогерц, то есть пишется звук с частотой до 8 кГц. Утверждается, что достаточный для анализа шум проникает и туда. Правда не все эксперименты проводились для всех сценариев «подслушивания», но это уже надо подробно в исследование смотреть.


      1. port443
        05.09.2018 18:37

        60 Гц на достаточно привычном сейчас 1200р-мониторе — это уже 72 кГц строчной развёртки. В 8 кГц пролезет только заметное чередование светлых/тёмных строк по 9 штук за раз. Реально, кажется, только «увидеть», что картинка на экране изменилась. Всё-таки тут перекрытие канала данных и канала утечки по частоте выходит бессмысленно малым, и никаких улучшений по перекрытию (снижение разрешения/частот, улучшения ушей) не предвидится. Уж скорее разрешение веб-камер поднимется настолько, что можно будет получать картинку с отражения от очков или глаза.