IP-спуфинг

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

IP-спуфинг (от англ. spoof — мистификация) —

  1. Вид хакерской атаки, заключающийся в использовании чужого IP-адреса с целью обмана системы безопасности.
  2. Метод, используемый в некоторых атаках. Состоит в проставлении в поле обратного (source) адреса IP-пакета неверного адреса. Применяется с целью сокрытия истинного адреса атакующего, с целью вызвать ответный пакет на нужный адрес и с иными целями.

Протокол транспортного (4) уровня TCP имеет встроенный механизм для предотвращения спуфинга — так называемые номера последовательности и подтверждения (sequence number, acknowledgement number)[1]. Протокол UDP не имеет такого механизма, следовательно, построенные на его основе приложения более уязвимы для спуфинга. Гарантированным методом защиты от подмены IP-адреса является сопоставление MAC-адреса (Ethernet кадр) и IP-адреса (заголовок протокола IP) отправителя.

IP-спуфинг – это замена адреса отправителя, являющегося одним из полей IP-заголовка, на любой другой адрес. Удалённый компьютер, получив заголовок с таким адресом, отправит ответ на этот адрес, а не на адрес крэкера. В случае с TCP-соединением необходимо получить ответ от адресата для установки соединения с ним[2]. При установке TCP-соединения важен так называемый ISN (Initial Sequence Number) - начальный порядковый номер. Во время установки соединения между машинами передается порядковый номер клиента, обозначаемый как ISNc, a также передается ISN сервера, как ISNs.

Рассмотрим установку соединения:

  1. клиент отправляет TCP-пакет с установленным флагом SYN, также он выбирает ISNc.
  2. сервер увеличивает на единицу ISNc и отправляет его обратно вместе со своим ISNs.
  3. клиент отвечает пакетом ACK, содержащим ISNs, увеличенный на единицу.

Когда крэкер пытается установить TCP-соединение с поддельным IP-адресом, сервер отправляет компьютеру А пакет SYN-ACK, содержащий его ISN. Так как компьютер А не отправлял серверу пакет SYN, он ответит пакетом RST для прерывания неизвестного соединения. Взломщику остается дождаться когда компьютер А будет выключен или перезагружен. Крэкер не сможет увидеть ISN, отправленный одной машиной к другой. Этот ISN ему нужен на третьем шаге, когда он должен будет увеличить его на 1 и отправить. Атакующий должен угадать ISN. В старых операционных системах (ОС) было очень легко угадать ISN - он увеличивался на единицу с каждым соединением. Современные ОС используют механизм, который предотвращает угадывание ISN. Современные сервисы используют для аутентификации имя пользователя и пароль и передают данные в зашифрованном виде, поэтому в наше время отпала всякая необходимость в IP-спуфинге.

Ссылки[править | править вики-текст]