spvd.ru
spvd.ru
Павел Селиванов. Статьи, обзоры, заметки

О NAT’ах, жадных провайдерах и нечестных пользователях

Маленький ликбез на тему методов обнаружения спрятанных за NAT локальных сетей с точки зрения провайдера.

В разделе Сети и средства коммуникации Форума 3DNews, к которому я имею некоторое отношение, с завидной регулярностью появляются вопросы вроде такого: "Провайдер в договоре запрещает установку маршрутизатора, а у меня дома компьютер, ноутбук, игровая приставка и кофеварка, требующая подключения к интернету. Как же мне быть? Как подключить всё это к интернету и не платить за каждое подключение?".

А наиболее распространённый ответ (среди вообще толковых ответов, разумеется) по смыслу примерно таков: "Ставь роутер, клонируй MAC-адрес компьютера, настраивай на нём подключение и не парься, провайдер не узнает".

Так вот, плохая новость в том, что провайдер захочет – провайдер узнает. Зато хорошая новость – до вашей кофеварки с интернетом, подключенной вместе с компьютером через домашний маршрутизатор, провайдеру, скорее всего, и дела нет. Не интересно это ему. А теперь давайте разберёмся по порядку.

Cui prodest?

Внесение провайдером в договор пункта о запрете использования клиентом NAT’а (и proxy вообще) чаще происходит не из-за патологической жадности провайдера, желающего заработать денег на подключении каждого устройства в нашей квартире, даже интернет-кофеварки, которая и трафика-то потребляет всего-ничего ;). А является, на самом деле, попыткой защититься от перепродавцов трафика, просто неправильно, с точки зрения специалиста по сетям, сформулированной.

Нет, я не утверждаю, что таких жадных провайдеров не существует, но предоставим таким решать самим, что им делать – меняться или потихоньку вымирать, оставляя рынок более вменяемым конкурентам, которые, обнаружив у клиента NAT, не будут жёстко требовать объяснений, денег и отключать почём зря, а спокойно разберутся и оставят в покое. Клиент-то, может, и знать не знает ни про какой NAT, а просто, как вариант, на единственном компьютере с прямым подключением установил виртуальную машину, чтоб в древнюю игрушку поиграть, или там роутер с Wi-Fi купил, чтоб тёща с ноутбука на кухне могла в интернете кулинарные рецепты искать, а тут на тебе.

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

Persona suspecta

Прежде всего, клиент у провайдера не один. И как себя в среднем ведут клиенты в Сети, провайдер прекрасно знает. Любые заметные отклонения, будь то значительный трафик, или генерация большого количества http-запросов в единицу времени могут вызвать подозрения. И тогда специалист провайдера, вооружившись знаниями, может приступить к сбору улик.

Corpus delicti

HTTP Proxy

Не секрет, что многие proxy-серверы модифицируют http-запросы, явно обнаруживая своё присутствие. Отловить некоторое количество запросов и подтвердить наличие такого proxy провайдеру не составит большого труда. Однако одного этого факта для доказательства вины клиента явно недостаточно. Приведу собственный пример. По некоторым причинам я на своём компьютере время от времени пользуюсь четырьмя различными браузерами. К счастью, цены на безлимитный интернет падают, а скорости растут, но во времена, когда я по экономическим соображениям пользовался подключением с довольно низкоскоростным тарифным планом, для оптимизации трафика у меня на компьютере был локально установлен кэширующий proxy-сервер Squid (к тому же с прикрученной к нему баннерорезкой), а разные браузеры были настроены на его использование.

Source port

Если речь не идёт о каких-то специальных сервисах с заранее предопределённым диапазоном портов источника, задача по выбору порта источника для отправки, например, TCP или UDP дейтаграммы, возложена на операционную систему. Во-первых, разные операционные системы по-умолчанию используют разные диапазоны динамических портов и разные способы выбора исходящего порта. И если NAT (точнее, в данном случае, NPAT, но все уже привыкли говорить просто NAT) при модификации пакета сохраняет порт источника, сбор и анализ статистики по исходящим портам может помочь выявить существование за NAT’ом хостов с различными операционными системами. Во-вторых, не все устройства с NAT сохраняют порт источника, есть и такие, что меняют его случайным образом на номер порта из заданного диапазона, что так же может быть выявлено статистикой.

IP TTL

Заголовок IP пакета содержит поле TTL (Time To Live). Значение поля TTL уменьшается при прохождении каждого промежуточного узла сети. Значения, по умолчанию присваиваемые полю TTL различными операционными системами известны, и уменьшение этого значения в пакетах, попавших в сеть провайдера однозначно укажет на присутствие шлюза.

Identification

В заголовке IP-пакета присутствует заполняемое хостом-отправителем поле Identification, предназначенное для правильной сборки фрагментов дейтаграммы. Распространённые сейчас операционные системы очень просто создают значение для поля Identification – генерируют случайное число, а для каждого следующего пакета увеличивают его на единицу. Проанализировав поля Identification в заголовках пакетов проходящего трафика и обнаружив большой разброс случайных значений, можно предположить, что трафик создаётся далеко не одной машиной.

Пассивный fingerprinting

Реализации стека протоколов TCP/IP в различных операционных системах имеют некоторые отличия. К ним относятся уже упомянутые алгоритм выбора номера исходящего порта и значение поля TTL по-умолчанию, а так же начальный размер TCP window и другие. Анализируя проходящий сетевой трафик и обнаружив в нём особенности, характерные для разных ОС, можно сделать предположение, что за NAT’ом находятся и работают несколько компьютеров с разными операционными системами.

Quod erat demonstrandum

Но и это ещё не всё. В принципе провайдер может пойти дальше, и начать с целью анализа расковыривать проходящие пакеты до прикладного уровня, хотя такие действия со стороны провайдера уже выглядят, по меньшей мере, очень некрасиво. А многие приложения могут включать в передаваемые данные информацию об адресах локальных сетевых интерфейсов. Особенно могут грешить этим instant messenger'ы и программы для голосового общения. Или вот ещё пример, почтовый протокол SMTP. Начиная почтовую сессию, многие почтовые клиенты после команды EHLO (или HELO) представляются локальным именем хоста. А где разные имена при соединении с одного адреса, там и NAT.

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

В общем, к чему был весь этот текст? Если однажды к вам в почтовый ящик упадёт письмо от провайдера с напоминанием про соответствующий пункт договора и просьбой прокомментировать подозрения в его нарушении, не стоит отпираться, что вы знать не знаете никаких NAT’ов и с компьютером только недавно познакомились. Провайдер знает. См. выше. Всё, что им нужно, это убедиться, что вы не занимаетесь перепродажей трафика. Кстати, если вы скинулись на интернет с соседом, и заключили договор на одного из вас – с точки зрения провайдера это таки перепродажа. А если вы ничего такого не делали, но провайдер упорствует – что ж, значит вам попался один из ещё выживших жадных динозавров, и пришло время провайдера сменить.

Оцените материал: 
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com blogger.com liveinternet.ru livejournal.ru memori.ru google.com yandex.ru
Комментариев: 2
  1. В большинстве случаев клиент не перепродает трафик, а работает в режиме публичной Wi-Fi сети, не озаботившись настроить свой Wi-Fi роутер.

  2. Только к этом случае это полностью проблема клиента.

Оставить комментарий

Отправка комментария без регистрации. Комментарий публикуется после проверки.

Имя и сайт используются только при регистрации

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

(обязательно)