В компьютерных сетях подмена IP-адреса или IP-спуфинг представляет собой создание пакетов интернет-протокола (IP) с ложным исходным IP-адресом с целью выдачи себя за другую вычислительную систему. [1]
Базовым протоколом для отправки данных по сети Интернет и многим другим компьютерным сетям является протокол Интернета (IP). Протокол определяет, что каждый пакет IP должен иметь заголовок , содержащий (помимо прочего) IP-адрес отправителя пакета. Исходный IP-адрес обычно является адресом, с которого был отправлен пакет, но адрес отправителя в заголовке может быть изменен, так что для получателя будет казаться, что пакет пришел из другого источника.
Протокол требует, чтобы принимающий компьютер отправил ответ на исходный IP-адрес, поэтому спуфинг в основном используется, когда отправитель может предвидеть ответ сети или не заботится об ответе.
Исходный IP-адрес предоставляет только ограниченную информацию об отправителе. Он может предоставлять общую информацию о регионе, городе и поселке, когда был отправлен пакет. Он не предоставляет информацию об идентификационных данных отправителя или используемого компьютера.
Подмена IP-адреса, включающая использование доверенного IP-адреса, может использоваться сетевыми злоумышленниками для обхода мер сетевой безопасности, таких как аутентификация на основе IP-адресов. Этот тип атаки наиболее эффективен там, где между машинами существуют доверительные отношения. Например, в некоторых корпоративных сетях распространено доверие внутренних систем друг к другу, так что пользователи могут входить в систему без имени пользователя или пароля, если они подключаются с другой машины во внутренней сети, что потребовало бы от них уже войти в систему. Подделывая соединение с доверенной машины, злоумышленник в той же сети может получить доступ к целевой машине без аутентификации.
Подмена IP-адреса чаще всего используется в атаках типа «отказ в обслуживании» [ 2] , где цель состоит в том, чтобы завалить цель подавляющим объемом трафика, а злоумышленник не заботится о получении ответов на пакеты атаки. Пакеты с поддельными IP-адресами сложнее фильтровать, поскольку каждый поддельный пакет кажется исходящим с другого адреса, и они скрывают истинный источник атаки. Атаки типа «отказ в обслуживании», использующие подмену, обычно случайным образом выбирают адреса из всего пространства IP-адресов, хотя более сложные механизмы подмены могут избегать немаршрутизируемых адресов или неиспользуемых частей пространства IP-адресов. Распространение крупных ботнетов делает подмену менее важной в атаках типа «отказ в обслуживании», но злоумышленники обычно имеют подмену в качестве инструмента, если они хотят ее использовать, поэтому защита от атак типа «отказ в обслуживании», которая полагается на действительность исходного IP-адреса в пакетах атаки, может иметь проблемы с поддельными пакетами.
В DDoS-атаках злоумышленник может решить подменить исходный IP-адрес на случайно сгенерированные адреса, чтобы машина жертвы не могла отличить поддельные пакеты от легитимных пакетов. Затем ответы будут отправляться на случайные адреса, которые не попадают ни на одно конкретное место. Такие пакеты в никуда называются backscatter , и существуют сетевые телескопы, отслеживающие backscatter для измерения статистической интенсивности DDoS-атак в Интернете с течением времени. [3]
Использование пакетов с ложным исходным IP-адресом не всегда является доказательством злого умысла. Например, при тестировании производительности веб-сайтов могут быть созданы сотни или даже тысячи "vusers" (виртуальных пользователей), каждый из которых выполняет тестовый сценарий на тестируемом веб-сайте, чтобы смоделировать, что произойдет, когда система будет запущена "вживую" и большое количество пользователей одновременно войдут в систему.
Поскольку каждый пользователь обычно имеет свой собственный IP-адрес, коммерческие тестовые продукты (такие как HP LoadRunner , WebLOAD и другие) могут использовать подмену IP-адреса, предоставляя каждому пользователю собственный «обратный адрес».
IP-спуфинг также используется в некоторой балансировке нагрузки на стороне сервера. Он позволяет балансировщику нагрузки распылять входящий трафик, но не обязательно находиться на обратном пути от серверов к клиенту. Это экономит сетевой переход через коммутаторы и балансировщик нагрузки, а также нагрузку по обработке исходящих сообщений на балансировщике нагрузки. Выходные данные обычно содержат больше пакетов и байтов, поэтому экономия значительна. [4] [5]
Конфигурация и службы, уязвимые для подмены IP-адресов:
Фильтрация пакетов является одной из защит от атак с подменой IP-адреса . Шлюз в сеть обычно выполняет входную фильтрацию , которая блокирует пакеты извне сети с исходным адресом внутри сети. Это предотвращает подмену адреса внутренней машины внешним злоумышленником. В идеале шлюз также выполняет выходную фильтрацию исходящих пакетов, которая блокирует пакеты из внутренней сети с исходным адресом, который не находится внутри. Это предотвращает запуск злоумышленником в сети, выполняющим фильтрацию, атак с подменой IP-адреса против внешних машин. Система обнаружения вторжений (IDS) является распространенным применением фильтрации пакетов, которая использовалась для защиты сред для обмена данными по сети и подходов IDS на основе хоста. [6]
Также рекомендуется проектировать сетевые протоколы и службы таким образом, чтобы они не полагались на исходный IP-адрес для аутентификации.
Некоторые протоколы верхнего уровня имеют собственную защиту от атак IP-спуфинга. Например, протокол управления передачей (TCP) использует порядковые номера, согласованные с удаленной машиной, чтобы гарантировать, что прибывающие пакеты являются частью установленного соединения. Поскольку злоумышленник обычно не видит никаких ответных пакетов, порядковый номер должен быть угадан, чтобы перехватить соединение. Однако плохая реализация во многих старых операционных системах и сетевых устройствах означает, что порядковые номера TCP можно предсказать.
Термин «спуфинг» также иногда используется для обозначения подделки заголовков , вставки ложной или вводящей в заблуждение информации в заголовки электронной почты или сетевых новостей . Фальсифицированные заголовки используются для введения получателя или сетевых приложений в заблуждение относительно происхождения сообщения. Это распространенный прием спамеров и спамеров , которые хотят скрыть происхождение своих сообщений, чтобы избежать отслеживания.