Gizli sistem ve tarayıcı tanımlaması için yeni bir teknik tanıtıldı

Daha önce saldırı yöntemleri geliştirmesiyle tanınan Graz Teknik Üniversitesi'nden (Avusturya) bir grup araştırmacı MDS, NetSpectre и Çekiç, ortaya çıkarılmış сведения о новой технике анализа по сторонним каналам, позволяющей определить точную версию браузера, используемую операционную систему, архитектуру CPU и применение дополнений для борьбы со скрытой идентификацией.

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

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

function getProperties(o) {
var result = [];
while (o !== null) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
dönüş sonucu;
}

Например, для 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, применяемую операционную систему и факт запуска на реальном оборудовании или в виртуальной машине.

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

Из иных методов идентификации можно отметить учёт таких косвенных данных, как ekran çözünürlüğü, desteklenen MIME türlerinin listesi, başlığa özel seçenekler (HTTP / 2 и HTTPS), kurulan analiz eklentiler ve yazı tipleri, video kartlarına özel belirli Web API'lerinin kullanılabilirliği özellikler WebGL kullanarak oluşturma ve Tuval, manipülasyon CSS ile çalışma özelliklerinin analizi fare и tuş takımı.

Kaynak: opennet.ru

Yorum ekle