Введение

Создание IP-пакетов с использованием поддельного IP-адреса

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

Предыстория

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

Приложения

Подделка IP-адресов, включающая использование доверенного IP-адреса, может использоваться злоумышленниками для обхода сетевых мер безопасности, таких как аутентификация на основе IP-адресов. Этот тип атаки наиболее эффективен в средах, где между машинами установлены отношения доверия. Например, в некоторых корпоративных сетях внутренние системы часто доверяют друг другу, позволяя пользователям входить в систему без имени пользователя или пароля, если они подключаются с другой машины во внутренней сети – что подразумевает, что они уже авторизованы. Подделывая соединение с доверенной машины, злоумышленник, находящийся в той же сети, может получить доступ к целевой машине без аутентификации. Подделка IP-адресов наиболее часто используется в атаках типа "отказ в обслуживании" (DoS), целью которых является перегрузка целевой системы огромным объемом трафика, при этом злоумышленник не заинтересован в получении ответов на пакеты атаки. Пакеты с подделанными IP-адресами сложнее фильтровать, поскольку каждый пакет, кажется, исходит с другого адреса, что скрывает истинный источник атаки. Атаки DoS, использующие подделку, обычно случайным образом выбирают адреса из всего IP-адресного пространства, хотя более сложные механизмы подделки могут избегать немаршрутизируемых или неиспользуемых частей IP-адресного пространства. Распространение крупных бот-сетей снижает значимость подделки в атаках DoS, но злоумышленники обычно имеют возможность использовать подделку как инструмент, и защита от атак DoS, основанная на проверке действительности исходного IP-адреса в пакетах атаки, может оказаться неэффективной против подделанных пакетов. В DDoS-атаках злоумышленник может решить подделать исходный IP-адрес, используя случайно сгенерированные адреса, чтобы целевая машина не могла отличить подделанные пакеты от легитимных. Ответы на эти пакеты будут отправлены на случайные адреса, которые никуда не приведут. Такие пакеты, отправленные в никуда, называются "обратным рассеянием" (backscatter), и существуют сетевые "телескопы", отслеживающие обратное рассеяние для измерения статистической интенсивности DDoS-атак в Интернете с течением времени.

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

Использование пакетов с поддельным исходным IP-адресом не всегда свидетельствует о злонамеренных намерениях. Например, при тестировании производительности веб-сайтов могут быть созданы сотни или даже тысячи "виртуальных пользователей" (vusers), каждый из которых выполняет тестовый сценарий на тестируемом веб-сайте, чтобы смоделировать ситуацию, которая возникнет при запуске системы в эксплуатацию и одновременном входе большого числа пользователей. Поскольку каждый пользователь обычно имеет свой собственный IP-адрес, коммерческие продукты для тестирования (такие как HP LoadRunner, WebLOAD и другие) могут использовать спуфинг IP-адресов, позволяя каждому пользователю иметь свой собственный "адрес обратного ответа". Спуфинг IP-адресов также используется в некоторых системах балансировки нагрузки на стороне сервера. Это позволяет балансировщику нагрузки распределять входящий трафик, не требуя при этом участия в обратном пути от серверов к клиенту. Это позволяет избежать сетевого перехода через коммутаторы и балансировщик нагрузки, а также снизить нагрузку на обработку исходящих сообщений на балансировщике нагрузки. Поскольку исходящий трафик обычно содержит больше пакетов и байтов, экономия оказывается значительной.

Защита от атак на подделку

Фильтрация пакетов — одна из мер защиты от атак, основанных на подмене IP-адресов. Шлюз сети обычно выполняет входящую фильтрацию, блокируя пакеты, поступающие извне сети, с исходным адресом, находящимся внутри сети. Это предотвращает подмену адреса внутренней машины внешним злоумышленником. В идеале шлюз также должен выполнять исходящую фильтрацию, блокируя пакеты, исходящие из сети, с исходным адресом, который не принадлежит сети. Это предотвращает запуск атак, основанных на подмене IP-адресов, против внешних машин злоумышленником, находящимся внутри сети. Система обнаружения вторжений (IDS) часто использует фильтрацию пакетов и применяется для защиты сред обмена данными в сети, а также используются подходы IDS, основанные на хостах. Также рекомендуется разрабатывать сетевые протоколы и сервисы таким образом, чтобы они не полагались на исходный IP-адрес для аутентификации.

Верхние слои

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

Другие определения

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