Security Week 2216: когда кнопка Mute не работает

Security Week 2216: когда кнопка Mute не работает
На прошлой неделе группа исследователей из трех американских университетов опубликовала научную работу , в которой анализируется реальная функциональность кнопки Mute в приложениях для конференц-связи. Да, по всем очевидным признакам кнопка Mute должна отключать запись звука с микрофона и передачу его на сервер, но так ли это на самом деле? Усомниться в этом заставляет встроенная функциональность ряда клиентов для удаленных переговоров, например Microsoft Teams:


Если у вас выключен микрофон и вы начинаете говорить, программа напоминает вам, что микрофон-то выключен и надо бы его включить обратно! А как они узнали, что микрофон выключен? И где эта проверка происходит, на клиенте или где-то на сервере? Для подробного исследования вопроса авторы работы перехватывали поток данных с микрофона и сравнивали с сетевым трафиком от клиента к серверу, дебажили работу самих клиентов и даже применяли машинное обучение. Результаты получили разнообразные, но можно сделать вывод, что наибольший режим приватности на конференц-звонках происходит при работе через веб-интерфейс.

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

Примером «приличного» поведения является клиент для сервиса Zoom. В режиме «микрофон выключен» он не захватывает аудиопоток, то есть не слышит то, что происходит в вашем кабинете. Но при этом он регулярно запрашивает статус особого флага silent, позволяющего определить «тишину». Как только тишина прекращается, клиент выводит ту самую напоминалку про отключение режима Mute.

С упомянутым в начале текста нативным клиентом для Microsoft Teams все сложнее: эта программа не использует стандартный API для работы с микрофоном, а напрямую общается с операционной системой. Из-за этого исследователям не удалось детально изучить, как клиент Teams обрабатывает отключение микрофона во время звонка. Наконец, самым необычным образом себя повел клиент Cisco Webex. Единственный среди десятка сервисов, он постоянно обрабатывал звук от микрофона в процессе звонка независимо от состояния кнопки Mute внутри приложения.

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

Например, с достаточной степенью надежности исследователи смогли бы определить, что у вас в помещении работает пылесос. Или что вы параллельно со звонком что-то готовите. Или что у вас лает собака. Можно понять, есть ли в помещении другие люди (например, если вы находитесь в кафе). Даже такая неидеальная схема захвата звука вряд ли ведет к серьезным утечкам данных: авторы клиента Cisco Webex, скорее всего, сделали постоянный захват аудио, потому что «так проще было», и это легко поправить. Позитивный результат исследования: несмотря на иногда странную взаимосвязь между восприятием кнопки Mute и ее реальными возможностями (отключает она далеко не все), никакого серьезного «криминала» обнаружено не было. Впрочем, тем, кто относится к защите своих данных слишком серьезно, в любом случае будет лучше пользоваться микрофоном с аппаратным выключателем.
cisco webex microsoft teams zoom
Alt text

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!