Атака TCP Reset
Атака TCP Reset, «фальшивые TCP Reset», «сбросы TCP», «спуфинг пакетов TCP reset» — способ манипулирования интернет-соединениями. В одних случаях, так действуют злоумышленники, в других — легитимные пользователи.
Технические подробности
Интернет, по сути, является системой обмена информацией, сгруппированной в пакеты. Эта система состоит из аппаратного обеспечения передачи данных (медные и оптоволоконные кабели) и стандартизованной формы представления информации, т. е. протоколов. Основным протоколом сети Интернет является IP в сочетании с такими дополнительными протоколами как TCP и UDP[1]). Веб и электронная почта используют стек протоколов TCP/IP. В соответствии с ним, в начале каждого пакета находится заголовок со служебной информацией об отправителе, получателе, размере пакета и т. п.
В отличие от других протоколов (например, UDP), TCP предполагает установку соединения между двумя компьютерами. Сетевое ПО, такое как браузер и веб-сервер, обменивается данными в форме потоков пакетов. За счёт этого они могут пересылать больший объём данных, чем может поместиться в один пакет, например видеоклипы, документы или аудиозаписи. Хотя некоторые веб-страницы бывают достаточно малы, чтобы уместиться в один пакет, они также передаются посредством соединения в целях удобства.
Сбросы TCP
Каждый TCP-пакет в рамках соединения несёт заголовок. В каждом из них есть бит флага сброса (RST). У большинства пакетов этот бит установлен в 0 и ничего не значит, но если он установлен в 1, это значит, что получатель должен немедленно прекратить использовать данное соединение: не посылать пакетов с текущим идентификатором (на текущий порт), а также игнорировать все последующие пакеты этого соединения (согласно информации в их заголовках). По сути, сброс TCP моментально разрывает соединение.
При надлежащем использовании такой сброс — полезный механизм. Такой способ применяется, когда на одном компьютере (условно А) происходит сбой во время передачи данных по TCP. Второй компьютер (условно Б) продолжит слать TCP-пакеты, так как не знает о сбое на А. После перезагрузки А продолжит получать пакеты от старого соединения, но, не обладая данными о соединении, уже не будет знать, что с ними делать. В этом случае он отправит требование сброса TCP компьютеру Б, сообщая, что соединение прервано. Пользователь компьютера Б может установить новое соединение либо предпринять иные действия.
Фальшивые сбросы TCP
В вышеописанном случае сообщение о сбросе отправлял один из участников соединения. Третий компьютер мог отслеживать TCP-пакеты этого соединения и затем подделать пакет с флагом сброса и отправить одному или обоим участникам от имени другого. Информация в заголовках должна указывать, что пакет получен якобы от другой стороны, а не от нападающего. Такая информация включает в себя IP-адреса и номера портов и должна содержать достаточно правдоподобные данные, чтобы вынудить участников прервать соединение. Правильно сформированные поддельные пакеты могут быть весьма надёжным способом нарушить любое TCP-соединение, доступное для отслеживания нападающим.
Области применения
Очевидным применением метода сброса TCP является тайное нарушение злоумышленником сообщения между сторонами. С другой стороны, известны системы сетевой безопасности, использующие такой способ. Прототип программы «Buster» был продемонстрирован в 1995 г. и мог отправлять фальшивые пакеты сброса на любые соединения, использующие порты из заданного списка. Разработчики Linux предложили аналогичные возможности для брандмауэров на базе Linux в 2000 г.[2], а свободная программа Snort использовала сбросы TCP для прерывания подозрительных соединений уже в 2003 г.[3]
Инцидент в Comcast
В конце 2007 г. провайдер Comcast начал использовать спуфинг TCP для вывода из строя P2P-программ и ПО для совместной работы (groupware) своих клиентов.[4]. Это вызвало конфликт, итогом которого стало создание Группы сетевого нейтралитета (NNSquad) в составе Lauren Weinstein, Vint Cerf, David Farber, Craig Newmark и других борцов за открытость Интернета.[5] В 2008 г. NNSquad выпустили программу NNSquad Network Measurement Agent для Windows (автор — John Bartas), которая выявляла фальшивые пакеты от Comcast и отличала их от настоящих сбросов. Примечательно, что алгоритм выявления сбросов был разработан на основе существующей открытой программы «Buster», созданной для борьбы с вредоносными объектами и рекламой на веб-страницах.
В январе 2008 г. FCC объявила о начале расследования спуфинг со стороны Comcast, а 21 августа 2008 г. предписала им прекратить эту практику.
Слово «фальшивые»
Некоторые представители провайдеров считают слово «фальшивые» неуместным в отношении сбросов TCP. Они также заявляли, что это легитимный способ сокращения сетевого трафика.[6]
Примечания
- Спецификация TCP (англ.) (недоступная ссылка). Дата обращения: 7 сентября 2012. Архивировано 27 августа 2012 года.
- May 2000 Linux discussion archives
- Архив обсуждения SNORT re: TCP resets Архивировано 11 августа 2007 года.{{dead link}}
- Associated Press, Comcast Blocks Some Internet Traffic
- Домашная страница NNSquad
- О легитимности сбросов для управления сетью Архивировано 9 июня 2012 года. (англ.)