Атака TCP Reset

Атака TCP Reset (англ. TCP reset attack, подделка TCP reset или спуфинг TCP reset) — способ принудительного завершения TCP-соединения путём отправки поддельного пакета с TCP-флагом сброса (RST). Эта техника вмешательства может использоваться как межсетевым экраном, так и злоумышленником с целью разрыва интернет-соединения.

По состоянию на 2025 год широко известно, что Великий фаервол Китая, цензоры интернета в Иране, а также система TKPPSE в Индонезии применяют атаки TCP Reset для вмешательства в соединения и их блокировки как один из основных методов интернет-цензуры[1].

Предпосылки

Интернет — это система для обмена электронными сообщениями или пакетами данных между отдельными компьютерами. В её состав входят аппаратные компоненты для передачи сообщений (например, медные и оптические кабели), а также формализованные протоколы для форматирования сообщений. Базовым протоколом сети является Интернет-протокол (IP), обычно используемый совместно с такими протоколами, как TCP (англ. Transmission Control Protocol[2]) или UDP (англ. User Datagram Protocol). Набор протоколов TCP/IP применяется, в частности, для электронной почты и веб-браузинга. Каждый протокол добавляет к передаваемому пакету информационный заголовок, который содержит сведения об отправителе, получателе, размере пакета и другие параметры.

Протокол TCP часто используется вместе с IP для установления двунаправленного виртуального соединения между двумя компьютерами. Как протокол с установлением соединения, TCP требует создания логического канала между двумя процессами до начала передачи данных. Это отличает его от UDP, который не требует установления соединения. TCP/IP-сокеты позволяют компьютерам (например, между рабочей станцией с браузером и веб-сервером) обмениваться потоками пакетов данных. Благодаря TCP-соединениям возможно передавать крупные фрагменты данных, превышающие размер одного пакета (например, видеоролики, вложения электронной почты или музыкальные файлы). Хотя некоторые веб-страницы помещаются в один пакет, их, как правило, также передают по TCP для повышения надёжности и контроля ошибок.

Сброс TCP

В каждом пакете, проходящем по соединению TCP, содержится TCP-заголовок. В каждом из этих заголовков присутствует бит, называемый флагом «сброс» (RST). Обычно этот бит установлен в 0 и не оказывает влияния, однако если он выставлен в 1, получающий компьютер немедленно прекращает использовать данное соединение — не отправляет новых пакетов и отвергает последующие пакеты с идентификаторами этого соединения (порты). Получив такой сигнал, система мгновенно завершает TCP-соединение.

Этот механизм играет важную роль в управлении TCP-соединениями. Например, если компьютер А аварийно завершает работу в момент активного соединения, другой конец соединения — компьютер Б — остаётся неосведомлённым об этом и продолжает отправлять пакеты. После перезапуска компьютер А получает эти «зависшие» пакеты, но не может их корректно обработать из-за утраты контекста соединения и, как правило, возвращает TCP-сброс в адрес компьютера Б. Это информирует Б о разрыве соединения, позволяя пользователю либо попытаться подключиться заново, либо предпринять другие действия.

Подделка TCP-сброса

В вышеописанном случае бит сброса был отправлен одним из участников соединения. Однако возможно, чтобы третья сторона, отслеживая пакеты на линии связи, отправила поддельный пакет с флагом RST одному или обоим адресатам соединения. Заголовки поддельного пакета искусственно имитируют один из реальных концов соединения, копируя их IP-адреса и номера портов. Все поля IP- и TCP-заголовков должны быть подобраны так, чтобы подделка выглядела как реальный пакет; только в этом случае удаётся «обмануть» адресата и заставить его закрыть соединение. Корректно оформленные поддельные TCP-сбросы эффективны для прерывания любого прослушиваемого злоумышленником TCP-соединения.

Законное использование

Одним из применений подделки TCP-сброса может быть злонамеренное разрушение соединения без ведома сторон. Однако также существуют и легитимные решения для сетевой безопасности, использующие поддельные TCP-сбросы. В 1995 году был продемонстрирован прототип ПО «Buster», отправляющий поддельные сбросы для TCP-соединений с определёнными портами. В 2000 году волонтёры Linux предложили использовать схожий подход в межсетевых экранах Linux, а к 2003 году открытое ПО, такое как Snort, стало применять TCP-сбросы для разрыва подозрительных соединений[3].

Конфликт вокруг Comcast

К концу 2007 года компания Comcast начала использовать поддельные TCP-сбросы для ограничения работы пиринговых сетей и ряда групповых приложений у своих абонентов. Это вызвало бурные споры и привело к созданию организацией Лорен Вайнштейн, Винтом Серфом, Дэвидом Фарбером, Крейгом Ньюмарком и другими сторонниками сетевой открытости группы Network Neutrality Squad (NNSquad)[4]. В 2008 году участниками NNSquad был выпущен программный агент NNSquad Network Measurement Agent для Windows (автор — Джон Бартас), способный выявлять фальшивые TCP-сбросы Comcast и отличать их от обычных сбросов, генерируемых оконечными точками. Технологии обнаружения фальшивых сбросов были унаследованы от предыдущего открытого суперконтроля «Buster», в прошлом использовавшего TCP-сбросы для блокировки вредоносного ПО и рекламы в веб-страницах.

В январе 2008 года ФКС (FCC) объявила о начале расследования использования поддельных сбросов Comcast, а 21 августа 2008 года издала предписание прекратить подобную практику[5].

Противодействие

В сочетании с TLS, зашифровка Server Name Indication (SNI) посредством зашифрованного приветствия клиента вынуждает атакующего блокировать целого провайдера ECH-услуг, что обычно приводит к побочному ущербу.

Примечания

  1. Clayton, Richard; Murdoch, Steven J.; Watson, Robert N. M. (2006). Danezis, George; Golle, Philippe, eds. Ignoring the Great Firewall of China (PDF). Privacy Enhancing Technologies. Lecture Notes in Computer Science [англ.]. 4258. Кембридж (Великобритания): Springer Berlin. pp. 20—35. DOI:10.1007/11957454_2. ISBN 978-3-540-68793-1.
  2. Transmission Control Protocol (TCP), STD 7, <https://datatracker.ietf.org/doc/html/std7> 
  3. Berry, Josh TCP Resets. Список рассылки (28 февраля 2004).
  4. NNSquad home page (англ.). Дата обращения: 17 июня 2024.
  5. Commission Orders Comcast To End Discriminatory Network Management Practices (англ.). Дата обращения: 17 июня 2024. Архивировано 28 августа 2014 года.