Объявление

Свернуть
Пока нет объявлений.

Часть 4. WebGL, уязвимости и Интерпол.

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Часть 4. WebGL, уязвимости и Интерпол.

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


    Как работает 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/..._API/Constants


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


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

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


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

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

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


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

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


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

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


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

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


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


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

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

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




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


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

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

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

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


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

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

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


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

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

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


    Отдельный привет хотелось бы передать кардерам, наркоторговцам, ботоводам и напомнить что Интерпол может вести расследование годами и всего через год-два сменив род деятельности и уезжая с семьей на море в Турцию к вам подойдут несколько человек в штатском и попросят вас отложить все дела на ближайшие лет так 10.
    Detect.expert - все для мультиаккаунтинга https://detect.expert
    Связь в Telegram @VektorT13


  • #2
    Полностью согласен с тезисами
    Единственное, что хотел бы напомнить
    напомнить что Интерпол может вести расследование годами и всего через год-два сменив род деятельности и уезжая с семьей на море в Турцию к вам подойдут несколько человек в штатском и попросят вас отложить все дела на ближайшие лет так 10.
    Интерпол не ведет расследований - это по сути передаст между органами разных стран
    Я очень хорошо разобрался после одного инцидента с заказчиком с этой темой, что они могут, что не могут, что там хранятся за данные и каким образом это влияет на кого-то
    Есть много мифов об этой структуре, в большинстве своем это просто мифы
    In god we trust
    ______________
    Контакты - только ЛС. jabber, telegram не использую

    Комментарий


    • #3
      Ну и как же защититься от WebGL?

      Комментарий


      • #4
        Сообщение от Vektor T13 Посмотреть сообщение
        Работает WebGL так - Веб-сайт передает на наш ПК javascript код, который обрабатывается нашим браузером в двух режимах:
        1. Программное ускорение
        2. Аппаратное ускорение
        То есть если просто отключить в настройках браузера аппаратное ускорение, WebGL работать не будет?

        Комментарий

        Обработка...
        X