Ученые из университета прикладных наук им. св. Пёльтена в Австрии разработали мобильное приложение, которое умеет детектировать акустические cookies и блокировать отслеживание устройства с их помощью. Система получила название SoniControl.

Под катом — расскажем, как работает приложение.


/ Flickr / Pete Sheffield / CC

Почему потребовалось приложение


В 2015 году компания SilverPush представила технологию ultrasonic cross-device tracking. Она позволяла рекламным щитам или баннерам в общественных местах (в торговых центрах, на стадионах и др.) издавать высокочастотные звуки, которые улавливались микрофонами мобильных устройств. Получая сигнал от маяка, смартфон показывал владельцу рекламу соседнего магазина или кинотеатра.

В свое время проблемами, связанными с новой технологий, обеспокоились даже в американском Центре демократии и технологий (CDT) и Федеральной торговой комиссию США (FTC). Суть заключается в том, что приложения могли расшифровать эти сигналы и определить, что в текущий момент видит пользователь и на какие сайты заходит. Ученые из Брауншвейгского технического университета обнаружили, что действия пользователей таким образом отслеживали порядка двухсот Android-приложений. В результате Google даже пришлось удалить часть из них из Play Store.

Группа исследователей из Университетского колледжа Лондона (UCL) и Калифорнийского университета в Санта-Барбаре (UCSB) также показала, что с помощью ультразвуковых маячков пользователей можно деанонимизировать.

Разработчики проекта SoniControl обеспокоились тем, что это ставит под угрозу конфиденциальность пользовательских данных. Поэтому и разработали свой ультразвуковой файрвол.

Как работает SoniControl


SoniControl реализован на C++ и Java. Во время работы приложение создает модель фонового ультразвукового шума, а затем отслеживает его изменения (то есть ищет посторонние сигналы). Для этого сигнал преобразуется из временного представления в частотное, что дает возможность оценить амплитуду сигнала для каждой частоты. Сама обработка включает в себя следующие этапы:

  1. Фильтруются слышимые частоты (для этого применяется фильтр верхних частот с пороговым значением 17 кГц);
  2. Нормализуется спектрограмма;
  3. Нормализованная спектрограмма добавляется в фоновый буфер, который приставляет собой список спектрограмм.

Как только фоновый буфер заполняется (на это уходит примерно 10 секунд), начинается анализ по следующему алгоритму:

  1. Вычисляется «текущая фоновая модель» — это значения амплитуды для каждой частоты;
  2. Построенная модель сравнивается с нормализованной спектрограммой (для этого используется расстояние Кульбака — Лейблера);
  3. Если вычисленное расстояние большое, то эта частота помещается в «медианный буфер»;
  4. При заполнении этого буфера, вычисляется его медиана. Если полученное значение равно 1, значит была зафиксирована ультразвуковая коммуникация. В этом случае приложение предложит пользователю заблокировать ультразвуковой сигнал;
  5. Если был обнаружен ультразвуковой сигнал, то фоновая модель «очищается» от последних записей, чтобы система не посчитала модифицированный сигнал нормой.


/ Flickr / U.S. Department of Agriculture / PD

Как еще можно защититься


Специалисты ИТ-индустрии считают, что для полноценной защиты от отслеживания устройств с помощью ультразвука, необходимо начать разрабатывать отраслевые стандарты. «Как только всё будет стандартизировано, разработчики ОС для мобильных устройств смогут реализовать API, которые запретят приложениям получать доступ к микрофону без необходимости», — отмечает Василиос Мавродис (Vasilios Mavroudis) из UCL.

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

Также можно воспользоваться приложением похожим на SoniControl — UltraSound Detector, однако оно помогает просто обнаружить ультразвуковое вмешательство, а не блокирует его.



Дополнительное чтение в блоге на сайте VAS Experts:



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


  1. Barafu_Albino_Cheetah
    07.07.2018 15:27
    +5

    А всего-то стоило добавить в Андроид нормальную систему управления доступом к ресурсам, в частности, к микрофону.


    1. NewStahl
      07.07.2018 15:36
      +3

      Но тогда ведь несанкционированный съём данных с пользователей усложнится встократ. Это огромные расходы для агрегаторов такой информации. Да и зачем? Что вообще холоп может скрывать от пана?


    1. dartraiden
      07.07.2018 15:42
      +3

      Любому приложению в Android давно можно запретить доступ к камере и микрофону без всяких сторонних патчей. Патч запрещает доступ конкретно к ультразвуковой части спектра.

      А ходить постоянно с включённым «звуковым файерволлом» — прощай батарея, полагаю.


      1. rPman
        07.07.2018 15:57
        +4

        проблема в том что приложению может легально потребоваться разрешать доступ к микрофону, примерно 0.1% времени его использования, но все остальное время это приложение может собирать данные нелегально.

        Отличный пример, после установки lineageos (то кажется фича самого android 7+) приложение стало запрашивать доступ к ресурсу в момент использования а не только во время установки и позволяет не сохранять выбор для будущих случаев (раньше это достигалось специальным приложением, требующим рут)

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

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


        1. KorDen32
          07.07.2018 19:48

          Отличный пример, после установки lineageos (то кажется фича самого android 7+) приложение стало запрашивать доступ к ресурсу в момент использования

          Это фича LOS (PrivacyGuard или что-то такое), работающая параллельно со штатной андроидной системой прав.


          1. qw1
            08.07.2018 00:02

            В Android 6+ разрешения могут запрашиваться по мере необходимости, приложение должно быть собрано с поддержкой API 23 — developer.android.com/training/permissions/requesting

            Другое дело, что приложение может отказаться выполнять какую-либо фунциюю, если не выдать разрешение. В этом смысле PrivacyGuard был лучше — тем, что приложение якобы получило доступ к контактам, а читает пустой список.

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


          1. andrewdrone
            08.07.2018 07:22
            -1

            это было в Симпсонах, тьфу ты, в MiUI еще какой-то древней 4й версии, позже выпилили, иначе сертификацию Гугла бы не прошли.


            1. tvr
              08.07.2018 11:03

              MIUI 9, андроид 5. Варианты разрешений для приложений — разрешить/запретить/спрашивать.


        1. qw1
          08.07.2018 00:07

          Так вот, стал замечать что сторонние приложения, какая-нибудь яндекс-карта или яндекс-такси, вываливает просьбу доступа к уточненным координатам устройства… во время входящего звонка. ну просто мегадушки, я бы это не заметил, если бы сразу разрешил доступ к GPS приложению карты, ведь это логично
          Для этого у Яндекс-карт должно быть активное разрешение «Телефон», а зачем вы ему его дали? Я проверил на своих картах — потенциально запрос на «Телефон» может появиться, но я ещё ни разу его не активировал.


          1. rPman
            08.07.2018 11:03

            яндекс такси, функция звонков нужна, к сожалению
            картам я право не давал
            полагаю через него яндекс карты и узнают о них, другого объяснения у меня нет


            1. funca
              08.07.2018 20:58

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


      1. igor_suhorukov
        07.07.2018 19:44
        +1

        Аппаратный фильтр ВЧ вряд ли истощит батарею.


        1. qw1
          08.07.2018 00:04

          Аппаратному фильтру легко найти противодействие. Например, перейдя с ультразвука на инфразвук, или на неслышимые пакеты по 10 мс на частоте 800 Hz. А исправить уже ничего нельзя.

          Все эти фильтры — костыль, проблему нужно решать на другом уровне.


          1. engine9
            08.07.2018 19:02

            Если вообще её можно решить. Для большинства в этом нет никакой проблемы.


    1. vmchaz
      08.07.2018 03:04
      +2

      Приложения порой отказываются запускаться, не получив доступ к желаемому ресурсу.
      Надо, чтобы кроме стандартного ресурса в системе можно было создать несколько эмуляторов (эмулятор микрофона, берущий данные из аудиофайла, эмулятор камеры — из видеопотока, эмулятор g-сенсора, эмулятор gps, и даже отдельное дерево файловой системы, неотличимое от настоящего).
      Ну и возможность на лету переключить доступ с фейкового сенсора на настоящий.


      1. Alex_Q
        08.07.2018 11:52
        +1

        Был такой проект XPrivacy. Но сейчас заброшен, Android 7 и выше не поддерживается.


        1. Vodochnik
          10.07.2018 15:23

          xprivacylua же, от того же разработчика. Но размер пива вырос (про версия за 10 евро).


      1. Lure_of_Chaos
        08.07.2018 23:36
        +1

        *sigh* а потом приложения научатся детектить фальшивку и так же отказываться запускаться :(


  1. Goodkat
    07.07.2018 18:01
    +1

    Как только всё будет стандартизировано, разработчики ОС для мобильных устройств смогут реализовать API, которые запретят приложениям получать доступ к микрофону без необходимости», — отмечает Василиос Мавродис (Vasilios Mavroudis) из UCL.

    Давно же реализовано.


  1. Vsevo10d
    07.07.2018 19:16

    Особенно круто, что всякие уроды облучают людей на улице ультразвуком, достаточно мощным, чтобы на улице докричаться десяток метров до твоего смартфона. У нас ручным УЗ-гомогенизатором по технике безопасности нужно пользоваться в наушниках и не распахивая пасть — для зубной эмали тоже вредно. А тут установки явно помощнее. Животные, наверное, вообще в ужасе от такого.


    1. tormozedison
      07.07.2018 20:18

      Уверены, что мощнее? У гомогенизаторов мощность от 50 Вт до 16 кВт.


      1. Vsevo10d
        08.07.2018 00:02

        Ну я же про ручной лабораторный, который с дремель размером) 16 кВт — это я не знаю что за гомогенизатор такой. Промышленная шаровая мельница, что ли?
        В любом случае это вредно.


        1. tormozedison
          08.07.2018 07:51

          Ручной и есть 50 Вт.


    1. aamonster
      08.07.2018 00:00

      Шутите или просто знаний не хватает?
      УЗ-гомогенизатор всяко серьёзней каких-то динамиков будет. Плюс мощность не забудьте поделить на квадрат расстояния.
      В общем, опасности для здоровья не представляет, все вопросы именно по privacy.


    1. QuakeMan
      08.07.2018 01:25
      +1

      Вот тоже интересно — как эта технология уживется с летучими мышами например.
      Странно вообще что защитники животных этой технологией не обеспокоились раньше защитников приватности.


      1. MTyrz
        09.07.2018 00:30

        Летучие мыши возле торговых центров?


        1. QuakeMan
          09.07.2018 00:41

          Ну летучие мыши — практически городские животные. Не знаю как сейчас… давненько летними вечерами вверх не смотрю, но лет 25 назад, в детстве, помню что вечерами они все время воланчик от бадминтона атаковали.
          Чердаки и насекомые… и то и другое в городах водится.


          1. MTyrz
            09.07.2018 00:48

            Я как раз смотрю регулярно.
            Возможно, мы про разные города и разные торговые центры. Хотя пожалуй, вы правы. Несколько южнее Москвы такое вполне может происходить.


            1. sumanai
              10.07.2018 20:22

              У меня в Самаре кот домой такую приносил, отпустил, так как они комарами питаются.


  1. DASM
    07.07.2018 19:39

    Ерунда какая-то. Может кто нибудь сквозную АЧХ тракта телефона дать?


    1. tormozedison
      07.07.2018 22:06

      20 кГц, думаю, легко.


      1. DASM
        08.07.2018 09:03

        а я думаю что нет. В телефонных сетях 3400 Гц достаточно. Хорошо, с целю записи просто разговоров и прочего могли оставить до 15 кГц. Зачем выше?


        1. DASM
          08.07.2018 09:35

          гм, 20 кГц однако слышит хорошо, проверил


          1. rPman
            08.07.2018 11:07

            не на всех базовых станция поддерживаются такие кодеки
            старые например точно нет


            1. DASM
              08.07.2018 18:23

              Вы о чем? Я просто на один телефон поставил генератор программу, включил 20 кГц. На второй — программу что в конце статьи указана. И слышит однако. Меня только это интересовало.


        1. qw1
          08.07.2018 12:49

          Зачем выше?
          Маркетинг. Та же гонка, что за мегапикселями в камере. И ставят много микрофонов, чтобы писать видео с «hi-res» «3d» звуком. Кто-то ради маркетинга пытается писать больше каналов, чем стерео, с 4 микрофонов.

          Сейчас это только флагманы, а через несколько лет будет стандартом, как стали им FullHD-экраны.


    1. Vbeerby
      08.07.2018 07:59

      Можно измерить в домашних условиях при помощи программы RightMark Audio Analyzer (RMAA), 2-х AUX кабелей и более-менее нормальной звуковой карты(Creative, Asus).


      1. DASM
        08.07.2018 08:03

        Не очень понимаю как именно. Для начала микрофоны в смартах выдают сразу цифру в PDM. Проще пойти прямым путем — может кто либо показать запись с микрофона андроида, где есть следы УЗ? Очевидно что запись должна быть хотя бы с 96 кГц Fds


        1. Vbeerby
          08.07.2018 08:18

          Все верно, дал маху, не выйдет. Понадобится еще пьезоизлучатель…
          RMAA сама генерирует тестовый сигнал, а потом его анализирует на входе. И как раз на звуковушках чуть посерьезней верхний порог 96-192КГц.
          Попробую на неделе поэкспериментировать с обычным генератором частот и пьезоизлучателем, если будет время.


          1. DASM
            08.07.2018 08:54

            так где для анализа то возьмете сигнал аналоговый?


        1. Vbeerby
          08.07.2018 08:32

          В качестве генератора можно использовать Ардуину, а маленький пьезоизлучатель есть в каждом 2-м компьютерном корпусе — «пищалка». Принцип можно погуглить — ультразвуковой отпугиватель комаров на ардуино.


  1. aamonster
    08.07.2018 00:05

    Хм. Не вижу сложностей в обходе такого файрвола. Вполне можно ставить метки в звуковом диапазоне — например, маскируясь под шумы, примешанные к музыке (алгоритмы, используемые для CDMA в помощь). Или просто воспроизводя определённую мелодию.


    Т.е. единственный разумный вариант — давать permission на микрофон только доверенным приложениям и только на то время, на которое действительно нужно.


  1. sumanai
    08.07.2018 01:06
    +1

    Нужно не только залеплять изолентой камеру, но и затыкать дырки микрофона. Правда не знаю чем.


    1. DASM
      08.07.2018 09:01

      и не забыть что сейчас во всех практически смартах их два. Впрочем все равно сомневаюсь что они слышат ульразвук


      1. qw1
        08.07.2018 12:42

        Где-то и по 3, и по 4 микрофона ставят.


  1. andrewdrone
    08.07.2018 07:14
    +1

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


    1. DrZlodberg
      08.07.2018 08:30

      Не знаю, как сейчас. У меня старый телефон (андроид 2..4) — там он просто не позволяет включить GPS (в системе) не позволив ей отправлять что-то по сети. При этом для его функционирования это не требуется (без неё прекрасно всё работает). Правда там везде логика странная. При включении авиа-режима вырубается и GPS, но хоть работает, если принудительно включить.


  1. STingerOid
    08.07.2018 10:11

    Я что-то не понял — в современных смартфонах микрофон всегда включен, и приложения, которым это разрешено, могут свободно сканировать «эфир»?


    1. rPman
      08.07.2018 11:08
      -1

      да
      и так СО ВСЕМИ разрешениями!
      например доступ к видеокамере (абсолютно незаметный), смс и телефонным звонкам (если будет платить автор приложения то вы даже и не узнаете про это, кроме как через детализацию звонков) и прочее.

      концепция требует доработки но гуглу это не нужно :( ведь это надо на уровне api приложений улучшать


    1. qw1
      08.07.2018 12:39

      Подразумевается, что это для «ок, гугл» ))


      1. kAIST
        08.07.2018 13:27

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


        1. qw1
          08.07.2018 13:35

          Специальные чипы — это скорее про Apple.
          А гугл-помощник накатывается на любой Android 5+

          Контрольный вопрос: приведите пример такого чипа (производитель + артикул).


          1. qw1
            08.07.2018 13:59

            Погуглил и обнаружил, что в некоторых android-устройствах есть такой чип (обычно упоминают Moto X), а в остальных устройствах всё на усмотрение производителя, но обычно микрофон не слушают при выключенном экране. А где-то есть своё решение, отвязанное от google — сервис Emy на Huawei, или Samsung voice.


  1. Dioxin
    09.07.2018 07:59

    Шел 2048 год.
    Иван Петрович осознав степень тотальности контроля над его жизнью окончательно впал в уныние и решил это дело прекратить самым радикальным образом, наевшись снотворного.
    Его ультрафон через нейроинтерфейс уловил подозрительные флюиды головного мозга своего хозяина и вызвал МЧС и на всякий случай команду мстителей.
    Наш герой очнулся в белой, залитой белым светом комнате.
    «Я в раю, пронеслась шальная мысль»
    «Вы в операционной, сказал хирург. Вы больше не в состоянии заботиться о себе, поэтому мы вживим вам модуль безопасности, он будет следить за вашими действиями и контролировать их».
    «Теперь я знаю как выглядит ад, подумал ГГ.»
    Это была его последняя самостоятельная мысль.


    1. Vodochnik
      10.07.2018 15:28

      Это пять!)))


  1. zerg59
    09.07.2018 08:40

    А ведь это всё (если пользователь явно не согласился со сбором инфы) подпадает под новое определение «приборы, системы, комплексы, устройства, специальный инструмент и программное обеспечение для электронных вычислительных машин и других электронных устройств, независимо от их внешнего вида, технических характеристик, а также принципов работы, которым намеренно приданы качества и свойства для обеспечения функции скрытного (тайного, неочевидного) получения информации либо доступа к ней (без ведома ее обладателя)»»