• XSS.stack #1 – первый литературный журнал от юзеров форума

Актуальны ли современные браузерные антидетекты?

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Актуальны ли современные браузерные антидетекты?

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

Как работает WebGL?

WebGL это технология построения 3D графики (мы же помним, что например Canvas это 2D) и основана эта технология на ускорителе OpenGL, а если быть более точным, то на OpenGL ES.

Работает WebGL так - Веб-сайт передает на наш ПК javascript код, который обрабатывается нашим браузером в двух режимах:
1. Программное ускорение
2. Аппаратное ускорение

Поскольку javascript выполняется только на ПК пользователя, то указанные выше ускорители будут использоваться не с сервера, а с нашего обычного рабочего или домашнего ПК.

Алгоритм следующий:
1. Формируются вершины
2. Формируются вершинные шейдеры (Vertex shader)
3. Между вершинами рисуются линии и появляется форма изображения
4. Добавляется геометрия
5. Формируются пиксели
6. Пиксели заполняются цветом (Pixel shader)
7. Добавляются эффекты (сглаживание, прозрачность и т.д.)

И все – картинка готова. Для пользователя это займет мгновение, но количество операций которое будет выполнено просто колоссально и во всем этом принимают участие сотни различных графических параметров. Думаете, сайт Browserleaks покажет вам их все? Нет, сайт browserleaks как и другие сайты чекеры знаете откуда взяли свой код? Они его тупо скопировали у Валентина Васильева: https://github.com/Valve/fingerprintjs.

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

Вот реальное количество параметров участвующих в обработке графики:
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Constants

Где хранятся эти параметры?

Хранятся параметры обработки графики не в браузере – в браузере хранятся лишь их адреса в ячейках памяти, а вот реальное их местоположение - это графический ускоритель.
Чуть выше мы с вами уже изучили, что ускорителей может быть два:
1. Программный (например SwiftShader)
2. Аппаратный (OpenGL ES (Angle transfer for Win) -> Direct3D. Или просто – наша видеокарта.

Как антидетекты подменяют их?

Все известные мне браузерные антидетекты нацелены только лишь на подмену значений сайта browserleaks и не более – зачем подменять то, что пользователь не видит, отпечаток меняется - и так сойдет.

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

Как вы думаете это хорошо?

Давайте подумаем, мы используем антидетект, который например подменил название нашей карты на GeForce GTX 1080 – все сайты должны видеть что у нас карта GTX 1080, верно?
На самом деле нет и антидетекты меняют всего навсего строковый параметр – тупо текст.

Хотите пруфы?

Исходный код хрома - https://github.com/chromium/chromiu...0b787d58a31ed8fc8bcb/ui/gl/gl_version_info.cc
Строка 52 (условие программного ускорения)
И вы туда можете написать все что хотите, хоть – “GeForce MegaPizdec 100500”
И после этого вы думаете у вас в вашем ПК она вырастет? Отпочкуется от основной видеокарты?
Нет, у вас как были параметры программного ускорителя, так они и остались, а поменялся тупо текст.

Как же поменять параметры графики? Может быть это сделали?

Да, подменить константное значение действительно можно и все параметры (которые мы видим например на https://browserleaks.com/webgl под нашими отпечатками действительно будут меняться и мы даже вручную их можем выбрать – правда классно?
Есть только два подводных камня:
1. При аппаратном реальном графическом ускорении эти параметры являются комплексом и не могут меняться по отдельности.
2. Иногда полезно заглянуть в статистику уникальности параметров которые мы устанавливаем:
https://webglstats.com/webgl/parameter/MAX_VERTEX_UNIFORM_VECTORS


А теперь давайте подведем итог:
1. Реального ускорения нет
2. Параметры не зависят ни от видеокарты, ни от друг друга
3. Комбинации параметров не защищают, а уникализируют пользователя
4. Из нескольких сотен параметров меняем всего 20

Все? Еще не все, дело в том что основа этого программного ускорения – SwiftShader может еще и тупо слить о нас инфу т.к. имеет ряд уязвимостей:
https://www.cisecurity.org/advisory...-allow-for-arbitrary-code-execution_2018-084/

Ну и напоследок о программном ускорении:

У WebGL используются небольшие макросы, которые более известны как extensions. Вот их лист:
https://www.khronos.org/registry/webgl/extensions/
Эти макросы отвечают за множественные графические операции и их работа напрямую зависит от ускорителя и ВСЕГДА ОТЛИЧАЕТСЯ между программным и аппаратным ускорением. И вы, поменяв название своей видеокарты, тупо спалитесь на этом, ибо определить использование программного ускорителя можно и по этим макросам.

А что если ваш антидетект использует Аппаратное ускорение и все данные берет с реальной видеокарты?

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

Для подкрепления фактами, рекомендую ознакомиться с исследованиями одной из топовых компаний в сфере ИБ:
https://www.contextis.com/en/blog/webgl-a-new-dimension-for-browser-exploitation

Ну и любители техники Apple должны понимать угрозу:
https://nvd.nist.gov/vuln/detail/CVE-2018-12152
Подробно:
http://www.cs.ucr.edu/~zhiyunq/pub/ccs18_gpu_side_channel.pdf

Ну и немного уязвимостей прямо из ГосДепа США:
https://www.us-cert.gov/ncas/bulletins/SB18-323
https://nvd.nist.gov/vuln/search/re...lts_type=overview&query=webgl&search_type=all

А знаете к чему это приведет?

А приведет это к тому, что все ваши псевдоизменения отпечатков будут видны как на ладони и РЕАЛЬНЫЕ параметры вашей видеокарты могут быть прочитаны и скомпрометированы, а соответственно БУДУТ ВИДНЫ ваши РЕАЛЬНЫЕ ОТПЕЧАТКИ.

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

Может быть выпустят обновления антидетектов и все будет ок?

Шансы что так произойдет стремятся к нулю т.к. уязвимости описанные выше затрагивают не только браузер, но и технологию WebGL/OpenGL ES ну и конечно драйвера вашей реальной видеокарты и фиксить это никто не будет.

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

(c) вектор
 
Лень читать, но я всю жизнь пользуюсь тором и меня устраивает как и многих, хотя последняя обнова не зашла
Статья про систему для краберов, а не просто анонимность.
 
Лень читать, но я всю жизнь пользуюсь тором и меня устраивает как и многих, хотя последняя обнова не зашла
Проблема Тора в его i/o нодах, они не шифруют трафик, только второе звено цепи имеет шифровку, соответственно провайдер видит когда и на какой нод вы подключались, по похожему принципу и с выходящими нодами, отсюда и уязвимость перед Тайм атаками. Для усиления защиты стоит задуматься над системой VPN->Tor->VPN (минусы это потеря скорости сигнала до 50-70%, плюсы это наличие исходящего сигнала не из тор ноды, которая 99% будет в черном списке у сайта) или Tor->VPN (выход чистый и скорость лучше, но страдает безопасность на входящем сигнале ибо на нем может быть установлен сниффер (трафик входного узла не шифруется же))
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх