<<<<< назад в библиотеку



IP Spoofing

Автор - Matt Tanase

Статья взята с www.gfs-team.ru





Преступники уже давно придумали как скрыть свою истинную личность. IP Spoofing
является одной из наиболее распространенных форм маскировки в сети. С помощью
IP Spoofinga преступник может получить доступ к удаленному компьютеру, выдав
себя за довереный компьютер. В данной статье мы рассмотрим концепции IP Spoofing:
почему это возможно, как это работает, для чего он используется и как от него
защитится.

История
Концепция IP-Spoofing в первые появилась(обсуждалась) в научных кругах в 80-х
годах. Хотя о ней было известно давно, но она долгое время оставалось лишь
теорией. Пока Роберт Моррис(Robert Morris), чей сын написал первого
интернет-червя, не обноружил уязвимость в TCP-протоколе под названием
предсказание последовательности. Стивен Беловин(Stephen Bellovin) углубленно
разобрал эту уязвимость в статьеSecurity Problems in the TCP/IP Protocol Suite,
в которой рассмотренны проблемы строения TCP/IP протокола. В одном печально
известном взломе Кевина Митника(Kevin Mitnik) "Рождество", он взломал компьютер
Tsutomu Shimomura с использованием IP-Spoofing и "предсказание последовательности"
атак. Хотя популярность данных методов снизалась, из-за уменьшения количества
сервисов которым они подвержены,   эти методы могут быть использованны и сейчас
и все администраторы должны боротся с этим.

Техническое Реализация
Чтобы понять как это все работает, необходимо разобратся в структуре протокола
TCP/IP. Базовое понимание структуры заголовков и методов обмена данными в сети,
являтся очень важным.

Internet Protocol - IP
Internet Protocol - это сетевой протокол, работающий на 3-м уровне сетевой модели
OSI. В этом протоколе не содержится ни какой информации о состоянии соединения,
которая используется для маршрутизации пакетов в сети. Так же в нем не содержится
методов для определения - доставлен ли пакет до адресата, или нет.

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

Transmission Control Protocol - TCP
Протокол IP можно рассматривать как оболочку для протоколов 4-го уровня сетевой
модели OSI, к которому относится TCP. В отличие от IP, TCP использует связи-
ориентированную структуру. Это означает, что для установления TCP соединения
необходимо пройти 3-х ступенчитаю фазу(SYN-SYN/ACK-ACK) и только затем можно будет
передавать данные. Эта "цепочка", обеспечивает надежность передачи данных,
поскольку отправитель получает подтверждение от получателя пакетов, после
каждой передачи данных.

Как вы можете видеть выше, TCP пакет сильно отличается от IP пакета. Обратим
внимание на первые 12 байт, которые содержат - порт и последовательную информацию.
Как и в случае с IP пакетами, TCP пакетами можно манипулировать с помощью
специальных программ. Исходный и Целевой порты, как правило, зависят от сетевых
приложений, находящихся в эксплуатации (например, HTTP через порт 80).
Важным в понимании IP-Spoofing являются sequence и acknowledgement поля. Данные
содержащиеся в этих полях, гарантируют доставку пакета. Sequence number - это
поле содержит первый байт текущего пакета, который относится к текущему потоку
данных. Acknowledgement number - в свою очередь содержит номер следующего пакета.
Такая взаимосвязь позволяет определить - все ли пакеты были получены.
TCP-протокол значительно отличается от IP-протокола, поскольку соединение
тщательно конролируется.

Возможности  TCP/IP структуры
 Теперь, когда мы имеем общее представление о TCP/IP протоколах,  давайте
 рассмотрим возможные последствия. Очевидно, что очень легко подделать адрес
 отправителя, манипулируя заголовком IP-пакета. Этот способ рассматривается в
 атакках описанных ниже.
Другим последствием, характерным для TCP, является предсказание последовательности
чисел, которые могут привести к "угону сессии". Мы рассмотрим последсвтия такого
нападения ниже.

Spoofing Attacks
Имеется несколько вариаций аттак которые искользуют IP-Spoofing. Хотя некоторые
из них уже давно устарели, но некоторые все же предоставляют угрозу для сетевой
безопастности.

Non-Blind Spoofing - Обман не в слепую
Этот тип нападения реализуется, когда нападающий и жертва находятся в одной
подсети. Sequence и acknowledgement номера(поля пакета) могут быть перехвачены,
устранив тем самым проблему их подбора. Самая большая угроза при таком виде
спуфинга, это перехват сессии. Это достигается путем искажения текущей сессии,
и последующим установлением новой сессии с правильными sequence и acknowledgement
полями с атакуемым компьютером(от перевод. - таким образом атакуемый компьютер
принимает вас за компьютер с которым была установленна сессия ранее). Используя
эту технику, нападающий может обойти авторизацию при установке соединения.

Blind Spoofing - Атака в слепую
Это более сложный вид атаки, поскольку sequence и acknowledgement поля нам не
известны. Для того чтобы обойти это, взломщик отправляет несколько пакетов целевой
машине, с целью - подобрать эти поля. В отличии от сегодняшних, компьютеры в
прошлом использовали простые технологии для генерации sequence чисел. Было
довольно легко обнаружить правильную формулу с помощью исследования пакетов и
TCP сессий. Сегодня же, большинство операционных систем используют рандомную
генерацию sequence чисел, что сильно затрудняет их определение(подбор). Но если
все же удастся выявить sequence числа, то можно будет обмениватся пакетами с
целевым компьютером.
Несколько лет назад, компьютеры использовали сервисы аутентификации на основе
хостов(например Rlogin). Тщательно проведеная атака, может использоватся для
внесения изменений в целевую систему(например добавление нового пользователя) в
слепую, тем самым открывая путь для компьютера взломщика, который не принадлежит
к довереным хостам.

 Denial of Service Attack - Атака на отказ в обслуживании
IP-Spoofing в настоящие время используются в одной из самых сложных для
отражения аттак - DoS(Denial of Service Attack). Нападающие стремятся забить
пропускной канал жертвы, и заставить ее потреблять большее количество ресурсов.
Тем самым взломщикам не нужно беспокоится о правильном заполнении sequence и
acknowledgement полей пакетов. Наоборот, они хотят заполонить жертву наибольшим
количеством пакетов в короткий промежуток времени. Для того чтобы максимально
продлить время атаки, они подменяют исходные IP адреса, что делает сложным
отслеживание и остановку атаки.
Когда в нападении принимают участие несколько(множество?) скомпроментированых
хостов, становится очень сложно блокировать все входящие и исходящие соединения.

Защита против IP-Spoofing
Ниже приводятся несколько мер предосторожности, которые могут быть предприняты
для снижения возможности проведения IP-Spoofing атак:
Фильтрация на роутере - применение входящих и исходящих фильтров
на роутерах в вашей сети, является прекрасным способом защиты от IP-Spoofing
аттак. Вам необходимо будет использовать ACL (access control list) который
блокирует неизветсные IP аддреса. Так же, этот интерфейс(роутер) не должен
принимать пакеты, source поле в которых содержит аддреса относящиеся к вашей
внутреней сети, поскольку это распространенная техника, используемая для обхода
firewallов. Так же следует запретить прохождение пакетов изнутри ващей сети,
source поля которых содержат адреса, не отосящиеся к вашей внутренией сети, для
того чтобы предотвратить возможно IP-Spoofinga компьютерами вашей внутреней сети.
Шифрование и Аутендификация - выполнение шифрования и аутендификации так же
позволит сократить риск использования IP-Spoofing атак. Обе этих функции доступны
в Ipv6 протоколе, который устранит возможность проведения Spoofing атак. Так же
следует удалить все службы аутендификации на основе хостов(Rlogin, etc..).

Заключение
IP-Spoofing это проблема, которая не будет иметь легкого решения, пока интернет
построен  на базе протоколов TCP/IP. Понимаение как и для чего используются
Spoofing атаки, в сочетании с несколькими простыми превентивными мерами,
позволит защитить вашу сеть от подобного рода атак.

© Matt Tanase