Представлена новая техника скрытой идентификации системы и браузера

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 17 Jun 2019.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,577
    Likes Received:
    3,507
    Reputations:
    693
    Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой методов атак MDS,NetSpectre и Throwhammer, раскрыла сведения о новой технике анализа по сторонним каналам, позволяющей определить точную версию браузера, используемую операционную систему, архитектуру CPU и применение дополнений для борьбы со скрытой идентификацией.

    Для определения указанных параметров достаточно выполнения в браузере подготовленного исследователями JavaScript кода. На практике метод может применяться не только в качестве дополнительного источника для косвенной идентификации пользователя, но и для определения параметров системного окружения для целевого применения эксплоитов с учётом ОС, архитектуры и браузера. Метод эффективен в том числе при применении браузеров с реализацией механизмов блокировки скрытой идентификации, таких как Tor Browser. Исходные тексты прототипа кода с реализацией метода опубликованы под лицензией MIT.

    Определение производится на основе выделения свойственных для разных браузеров шаблонов состояния свойств в JavaScript и характеристик времени выполнения операций, зависящих от особенностей работы JIT, CPU и механизмов выделения памяти. Определение свойств производится через генерацию списка всех объектов, доступных из JavaScript. Как оказалось число объектов напрямую коррелирует с браузерным движком и его версией.

    Code:
    function getProperties(o) {
    var result = [];
    while (o !== null) {
    result = result.concat(Reflect.ownKeys(o));
    o = Object.getPrototypeOf(o);
    }
    return result;
    }
    Например, для Firefox заявлена поддержка 2247 свойств, в то время как реальное число рекурсивно определённых свойств составляет 15709 (в Tor Browser - 15639), для Chrome заявлено 2698 свойств, а реально предлагается 13570 (в Chrome для Android - 13119). Число и значения свойств меняются от версии к версии браузера и при применении различных операционных систем.

    Значения и наличие тех или иных свойств можно использовать для определения типа ОС. Например, в Kubuntu свойство window.innerWidth выставляется в значение 1000, а в Windows 10 - в 1001. В Windows доступно свойство window.navigator.activeVRDisplays, а в Linux его нет. Для Android предоставляется множество специфичных вызовов, но нет window.SharedWorker. Для идентификации операционной системы также предлагается использовать анализ параметров WebGL, состояние которых зависит от драйверов. Кроме того, вызов WEBGL_debug_renderer_infoextension позволяет получить информацию о движке отрисовки OpenGL, который для каждой операционной системы разный.

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

    Определённые в ходе выполнения скрипта параметры сравниваются с эталонными значениями, свойственными для заранее протестированных окружений. В ходе проверки разработанная техника позволила точно определить 40 различных тестовых окружений, определив версии используемых браузеров, производителя CPU, применяемую операционную систему и факт запуска на реальном оборудовании или в виртуальной машине.

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

    Из иных методов идентификации можно отметить учёт таких косвенных данных, как разрешение экрана, список поддерживаемых MIME-типов, специфичные параметры в заголовках (HTTP/2 и HTTPS), анализ установленных плагинов и шрифтов, доступность определённых Web API, специфичные для видеокарт особенности отрисовки при помощи WebGL и Canvas, манипуляции с CSS, анализ особенностей работы с мышью и клавиатурой.

     
  2. mail156

    mail156 Active Member

    Joined:
    28 Sep 2018
    Messages:
    178
    Likes Received:
    107
    Reputations:
    0
    Я уже 2 года не понимаю, что делает javascript-скрипт, прогружаемый в браузер от сайта scorecardresearch.com .
     
  3. quite gray

    quite gray Well-Known Member

    Joined:
    8 Dec 2016
    Messages:
    117
    Likes Received:
    532
    Reputations:
    1
    Запрети выполнение на странице всех скриптов нах - и военные потеряются.
     
    mail156 likes this.
Loading...