Сетевые отпечатки: TCP/IP, SSL/TLS, HTTP/2, DNS

Рассказываем про сетевые отпечатки (фингерпринты) в антифрод системах и какие задачи они помогают решать при выявлении мошенников.
сетевые отпечатки, network fingerprints

Содержание

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

Когда вы отправляете сетевой запрос к удаленному устройству (открываете сайт в браузере), то для непосредственной передачи данных к серверу, на котором работает сайт, и получения от него ответа в виде веб-страницы, которая отобразится на экране вашего устройства, происходит сложная последовательность действий. Логика, которая их описывает, называется Сетевая модель OSI. Самый низкий уровень — физическая передача данных на уровне «железа»: например, оптоволоконный кабель или радиосигнал при использовании WiFi. Далее идет канальный уровень, на котором единицы передаваемой информации (биты) формируются в стандартизированные структуры (frames, фреймы или кадры), например, для передачи по кабелю между вашим компьютером и роутером.

На следующем, сетевом, уровне определяется маршрут передачи данных к конечному получателю (например, данные отправляются на IP адрес, который соответствует доменному имени сайта в адресной строке вашего браузера). На транспортном уровне (самые популярные: TCP и UDP) устанавливается непосредственное соединение между вашим компьютером и сервером, на котором расположен сайт. Далее устанавливается защищенное (HTTPS) соединение, которое позволяет шифровать трафик между вашим браузером и сайтом. И в самом конце передается то, для чего вы сделали запрос: например, код HTML страницы или графическое изображение.

Отпечаток подключения к удаленному серверу (TCP/IP fingerprint)

Отпечаток TCP/IP использует сетевой (IP, Layer 3) и транспортный (TCP, Layer 4) уровни Сетевой модели OSI. Обычно для составления отпечатка берется первый пакет, отправленный клиентом (в нашем примере — браузером) при установлении TCP соединения с сервером. Этот пакет TCP рукопожатия (TCP handshake) обладает флагом SYN (от synchronize), TH_SYN на скриншоте ниже. Пакет состоит из нескольких слоев (layers), нас интересуют слои 3 (IP) и 4 (TCP).

Ниже приведен пример первого клиентского пакета при установлении TCP сессии для браузера Firefox на Windows 10. Данные разделены по уровням Ethernet, IP и TCP. В нижней части скриншота представлены отдельные TCP опции.

tcp ip сетевой отпечаток

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

На TCP уровне для отпечатка подойдут: размер окна (Window size), длина заголовка, флаги и опции. На основе опций можно получить значение MTU, которое часто используется для определения VPN соединений.

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

Отпечаток установки защищенного соединения (SSL/TLS fingerprint)

SSL/TLS отпечаток основан на первом пакете (Client Hello) рукопожатия (handshake) при установлении SSL/TLS соединения. TLS (Transport Layer Security) — название более новых версий протокола, раньше использовался SSL (Secure Sockets Layer). В настоящее время актуальной является версия TLS 1.3. Этот протокол нужен, в том числе, чтобы обеспечить шифрование и безопасную передачу данных, когда вы открываете в браузере сайт, адрес которого начинается с https://.

Пример TLS Client Hello пакета для браузера Firefox на Windows 10:

ssl tls сетевой отпечаток

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

Различные клиенты (браузеры и другие программы) используют разные реализации данного протокола, поэтому обладают разными отпечатками первого пакета (Client Hello). За счет этого возможно по полученному отпечатку определить программу, которая сделала запрос: браузер, автоматизированная программа (робот), прокси или другой тип софта.

Если вас интересуют дополнительные материалы о возможности шифрования запроса Client Hello, рекомендуем ознакомиться с этой статьей. В ней рассказано о разрабатываемой (поддержка в браузерах: Chrome, Firefox) технологии Encrypted Client Hello (ECH), которая пришла на смену Encrypted Server Name Indication (ESNI) и позволяет скрыть содержимое Client Hello от стороннего наблюдателя. Тем не менее, полное шифрование этапа установления TLS соединения не повлияет на возможность собирать и анализировать SSL/TLS отпечатки, поскольку запросы шифруются только в том случае, если такая опция специально включена на стороне сервера.

Отпечаток соединения по протоколу HTTP/2 (HTTP/2 fingerprint)

Версия 2 протокола HTTP повышает производительность и эффективность передачи данных, но также добавляет дополнительные данные, которые могут стать основной для создания отпечатков. Одним из них является SETTINGS frame (фрейм, кадр), который содержит первоначальные настройки соединения, передаваемые со стороны клиента.

Пример SETTINGS frame приведен ниже:

http/2 сетевой отпечаток

Как видно из примера, в данном случае при установлении HTTP/2 соединения браузером Chrome на Windows 10 используются следующие параметры и их значения:

SETTINGS_HEADER_TABLE_SIZE (0x1) = 65536
SETTINGS_MAX_CONCURRENT_STREAMS (0x3) = 1000
SETTINGS_INITIAL_WINDOW_SIZE (0x4) = 6291456

Аналогично SSL/TLS отпечатку, HTTP/2 отпечаток основан на том, что разные клиенты используют разные реализации протокола, поэтому будут отправлять разные данные и получать разные отпечатки.

Отпечаток по заголовкам HTTP запроса (HTTP header fingerprint)

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

При обращении к сайту браузер Google Chrome версии 108 на Windows 10 отправляет такой набор HTTP заголовков:

http headers сетевой отпечаток

Обратите внимание, что кроме стандартных хедеров в запросе присутствуют псевдо-заголовки (pseudo-headers), которые начинаются с двоеточия, например: :path, :scheme. Они также могут включаться в отпечаток.

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

Ресолвинг доменного имени (DNS запрос)

Для того, чтобы сделать запрос к сайту, сначала нужно получить IP адрес сервера сайта, к которому вы обращаетесь, чтобы определить маршрут в сети для вашего запроса (другими словами — ресолвинг IP адреса, от англ. resolve). За это отвечает DNS сервер. Обычно используется DNS сервер вашего провайдера. Но в некоторых случаях он может отличаться. Например, если вы решили заменить используемый DNS сервер на вашем устройстве, чтобы скрыть от провайдера информацию о посещаемых сайтах. Либо вы делаете запрос через прокси, тогда DNS запрос может исходить как от вашего провайдера, так и от прокси сервера, в зависимости от настроек.

Пример лога DNS запросов к нашему серверу:

dns запрос

A записи — определяют соответствующие IPv4 адреса для запрашиваемого имени хоста.

AAAA записи — определяют соответствующие IPv6 адреса для запрашиваемого имени хоста.

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

Какие типы мошенников помогают выявлять сетевые отпечатки

Как стало понятно, анализ сетевых отпечатков пользователя позволяет провести различные проверки и выявить аномалии. Приведем основные типы инцидентов, которые можно выявить с помощью сетевых отпечатков.

Кража учетных записей (аккаунтов)

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

Использование мультиаккаунтов

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

Активность роботов (ботов)

Роботы и другие программы для автоматизации действий часто обладают уникальными SSL/TLS фингерпринтами, которые не похожи на обычные браузеры. Таким способом их можно вычислить и заблокировать.

Скрытие IP адреса за прокси или впн

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

Использование эмуляторов

Эмуляторы браузеров и мобильных операционных систем могут вносить изменения в изначальные TCP/IP и SSL/TLS отпечатки, что позволяет выявлять их среди общего числа пользователей.

Сетевые отпечатки и сессионная антифрод система

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

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

Для уведомлений о новых статьях и обсуждения:

Поделитесь записью в соцсетях: