Главная
Архив новостей
Безопасность в Unix
Безопасность в Windows
Сборник FAQ'ов
Телефония, фрикинг
Кредитные карты
Криптография
Истории о хакерах
Программы, утилиты
_el@sp.sz.ru

RB2 Network

Незаметные ARP и ICMP


Открытые системы · #4/98
·   


Илья Медведовский, ilya@blader.com
Специализированный Центр Защиты Информации, Санкт-Петербург

ARP-spoofing или ложный ARP-сервер
ICMP-spoofing


Стандартизация и широкое распространение сети Internet, по которой сегодня передается много интересной, но иногда не предназначенной для посторонних глаз информации вызывает у некоторых участников коммуникационного пространства Сети соб лазн нарушить конфиденциальность. Для этого, например, используется ложный ARP-сервер или реакция сетевой ОС на ICMP ; сообщение Redirect datagrams for the Host. Цель данной статьи ; разбор некоторых опасных лазеек в сетевом окружении, через которые могут пролезть хакеры и рассмотрение некоторых способов их блокировки.

В вычислительных сетях связь между двумя удаленными хостами осуществляется путем передачи по сети сообщений, заключенных в пакеты обмена. В общем случае, передаваемый по сети пакет, вне зависимости от используемого протокола и типа сети (Token Ring, Ether net, X.25 и др.), состоит из заголовка пакета и поля данных. В заголовок пакета обычно заносится служебная информация, определяемая используемым протоколом обмена и необходимая для адресации пакета, его идентификации, преобразования и т. д. В поле данных помещаются либо непосредственно данные, либо другой пакет более высокого уровня OSI. Так, например, пакет транспортного уровня может быть вложен в пакет сетевого уровня, который, в свою очередь, вложен в пакет канального уровня. Спроецировав это утвержден ие на сетевую ОС, использующую протоколы TCP/IP, можно утверждать, что пакет TCP (транспортный уровень) вложен в пакет IP (сетевой уровень), который, в свою очередь, вложен в пакет Ethernet (канальный уровень). Рис.1 наглядно иллюстрирует то, как выглядит , например, TCP ; пакет в сети Internet:

Рассмотрим схему адресации пакетов в сети Internet и возникающие здесь проблемы с безопасностью. Как известно, базовым сетевым протоколом обмена в сети Internet является протокол IP (Internet Protocol) ; межсетевой протокол, позволяющий передавать пакеты в любую точку глобальной сети. Для адресации на сетевом уровне (IP ; уровне) каждый хост имеет уникальный 32 ; разрядный IP ; адрес. Для передачи IP ; пакета на хост необходимо указать в IP ; заголовке пакета в поле D estination Address IP ; адрес данного хоста. Однако, как видно из рис. 1, IP ; пакет находится внутри аппаратного пакета (в случае среды передачи Ethernet ; Ethernet ; пакета). Поэтому, каждый пакет в сетях любого типа и с любыми п ротоколами обмена в конечном счете адресуется на аппаратный адрес сетевого адаптера, непосредственно осуществляющего прием и передачу пакетов в сеть (в дальнейшем, рассматриваются только Ethernet ; сети).


Рис. 1. Структура TCP ; пакета

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

Среди прочих в стеке TCP/IP определен управляющий протокол ICMP (Internet Control Message Protocol) , одной из функций которого является удаленное управление таблицей маршрутизации на хостах внутри сегмента сети. Динамическое удаленное управление маршрути зацией изначально задумывалось для предотвращения возможной передачи сообщений по неоптимальному маршруту и для повышения отказоустойчивости сети в целом. Предполагалось, что сетевой сегмент может быть подключен к глобальной сети не через один (как это об ычно происходит на сегодняшний день), а через несколько маршрутизаторов. В это случае адресоваться во внешнюю сеть можно через любой из ближайших узлов. Это достаточно удобно, как с точки зрения оптимальности маршрута (например, к хосту www.example.one оп тимальный (кратчайший) маршрут проходит через первый маршрутизатор, а к хосту www.example.two ; через второй марщрутизатор), так и с точки зрения повышения надежности работы сети (при выходе из строя одного из маршрутизаторов связь с внешним миром в озможна через другой маршрутизатор). В обоих случаях (при изменении оптимального маршрута и при выходе из строя маршрутизатора) необходимо изменение таблицы маршрутизации в памяти сетевой операционной системы. Одно из назначений протокола ICMP состоит име нно в динамическом изменении таблицы маршрутизации оконечных сетевых систем.

Возврат ARP-spoofing или ложный ARP-сервер

В сети Internet для нахождения адреса сетевого адаптера используется протокол ARP (Address Resolution Protocol) , который позволяет получить взаимно однозначное соответствие IP и Ethernet ; адресов для хостов, находящихся внутри одного сегмента. Это достигается следующим образом: при пе рвом обращении к сетевым ресурсам хост отправляет широковещательный ARP ; запрос на Ethernet ; адрес FFFFFFFFFFFFh, в котором указывает IP ; адрес маршрутизатора и просит сообщить его свой Ethernet ; адрес (IP ; адрес маршрут изатора ; обязательный параметр, который всегда устанавливается вручную при настройке любой сетевой ОС в сети Internet). Этот широковещательный запрос получат все станции в данном сегменте сети, в том числе, и маршрутизатор. Получив данный запрос, м аршрутизатор внесет запись о запросившем хосте в свою ARP ; таблицу, а, затем, отправит на запросивший хост ARP ; ответ, в котором сообщит свой Ethernet ; адрес. Полученный в ARP ; ответе Ethernet ; адрес будет занесен в ARP ; таблицу, находящуюся в памяти операционной системы на запросившем хосте и содержащую записи соответствия IP ; и Ethernet ; адресов для хостов внутри одного сегмента. Отметим, что в случае адресации к хосту, расположенному в той же под сети также используется ARP ; протокол и рассмотренная схема полностью повторяется.

В том случае, если в распределенной сети используются алгоритмы удаленного поиска, то имеется возможность осуществления в такой сети типовой удаленной атаки, связанной с внесением в систему ложного объекта . Из анализа безопасности протокола ARP становитс я ясно, что перехватив на атакующем хосте внутри данного сегмента сети широковещательный ARP ; запрос, можно послать ложный ARP ; ответ, в котором объявить себя искомым хостом, (например, маршрутизатором), и, в дальнейшем, активно контролирова ть и воздействовать на сетевой трафик «обманутого» хоста по схеме «Ложный объект распределенной сети». Необходимо обратить внимание, что данная удаленная атака возможна только в сети с широковещательной среде передачи (типа Etherne t) и является внутрисегментной. (Стать ложным ARP-сервером довольно просто. Например, и в ОС Solaris, и в Linux имеется команда arp, которая, кроме всего прочего, как раз и предназначена для этой цели. Прим. ред.)

Рассмотрим обобщенную функциональную схему ложного ARP ; сервера (рис. 2):

  • ожидание ARP ; запроса;
  • при получении ARP ; запроса передача по сети на запросивший хост ложного ARP ; ответа, в котором указывается адрес сетевого адаптера атакующей станции (ложного ARP ; сервера) или тот Ethernet ; адрес, на котором будет принимат ь пакеты ложный ARP ; сервер (совершенно необязательно указывать в ложном ARP ; ответе свой настоящий Ethernet ; адрес, так как при работе непосредственно с сетевым адаптером его можно запрограммировать на прием пакетов на любой Ethernet ; адрес);
  • прием, анализ, воздействие и передача пакетов обмена между взаимодействующими хостами.

Рис. 2. Ложный ARP - сервер в сети Internet

Данная схема атаки требует некоторого уточнения ; в действительности, на практике автор столкнулся с тем, что, зачастую, даже очень квалифицированные сетевые администраторы и программисты не знают либо не понимают тонкостей работы протокола ARP. Это , наверное, связано с тем, что при обычной настройке сетевой ОС, поддерживающей протоколы TCP/IP, не требуется настройка модуля ARP (автор не встречал ни одной сетевой ОС, где обязательно требовалась бы создание «вручную» ARP ; таблицы). Поэтому протокол ARP остается, как бы, скрытым для администраторов. Далее, необходимо обратить внимание на тот факт, что у маршрутизатора тоже имеется ARP ; таблица, в которой содержится информация о IP ; и, соответствующих им Ethernet ; адресах всех хостов из сегмента сети, подключенного к маршрутизатору. Информация в эту ARP ; таблицу на маршрутизаторе также обычно заносится не «вручную», а при помощи протокола ARP. Поэтому, кстати, так легко в одном сегменте IP &nda sh; сети присвоить чужой IP ; адрес: выдать команду сетевой ОС на установку нового IP ; адреса, потом обратиться в сеть, а, значит сразу же будет послан широковещательный ARP ; запрос и маршрутизатор, получив этот запрос, автоматически о бновит запись в своей ARP ; таблице (поставит в соответствии с чужим IP ; адресом Ehternet ; адрес вашей етевой карты) ; а в результате обладатель данного IP ; адреса потеряет связь с внешним миром (все пакеты, адресуемые на его бывший IP ; адрес и приходящие на маршрутизатор, будут направляться маршрутизатором на Ethernet ; адрес атакующего). Правда, некоторые ОС, анализируют все передаваемые по сети широковещательные ARP ; запросы. Например ОС Solaris при получении ARP ; запроса, с указанным в нем IP ; адресом, совпадающим с IP ; адресом данной системы, выдает предупреждающее сообщение о том, что хост с таким-то Ethernet ; адресом пытается присвоить (естественно, успешно) себе данны й IP ; адрес.

Теперь вернемся непосредственно к уже описанной схеме атаки «ложный ARP ; сервер». Из анализа механизмов адресации становится ясно, что, так как поисковый ARP ; запрос кроме атакующего получит и маршрутизатор, то в его таблице окаж ется соответствующая запись о IP ; и Ethernet ; адресе атакуемого хоста. Поэтому, когда на маршрутизатор придет пакет, направленный на IP ; адрес атакуемого хоста, то он будет передан не на ложный ARP ; сервер, а ; непосредст венно на хост. То есть схема передачи пакетов в этом случае будет следующая:

  • атакованный хост передает пакеты на ложный ARP ; сервер;
  • ложный ARP ; сервер передает принятый от атакованного хоста пакет на маршрутизатор;
  • маршрутизатор, в случае получения ответа на переданный запрос, передает его непосредственно на атакованный хост, минуя ложный ARP ; сервер.

В этом случае, очевидно, что последняя фаза, связанная с «приемом, анализом, воздействием и передачей пакетов обмена» между атакованным хостом и, например, маршрутизатором (или любым другим хостом в том же сегменте) будет проходить уже не в ре жиме полного перехвата пакетов ложным сервером, а режиме «полуперехвата» (петлевая схема). Действительно, в режиме полного перехвата маршрут всех пакетов, отправляемых как в одну, так и в другую стороны, обязательно проходит через ложный серве р; а в режиме «полуперехвата» маршрут пакетов образует петлю, которую можно видеть на рис. 3. Необходимо обратить внимание на эту петлевую схему перехвата информации ложным сервером, так как, в дальнейшем, будет рассмотрен вариант атаки на баз е протокола ICMP, результат которой ; это перехват информации по такой же схеме, и там, также может возникнуть петлевой маршрут.


Рис. 3. Петлевая схема перехвата информации ложным ARP- сервером

Кстати, очевидно, что довольно просто придумать несколько способов, позволяющих функционировать ложному ARP ; серверу по мостовой схеме перехвата (полный перехват). Например, можно, получив ARP ; запрос, самому послать такой же запрос и присвоить себе данный IP ; адрес ( правда, в этом случае ложному ARP ; серверу не удастся остаться незамеченным, так некоторые ОС, как уже отмечалось, перехватив этот запрос, выдадут предупреждение о использовании их IP ; адреса). Другой, значительно более предпочтительный спос об: послать ARP ; запрос, указав в качестве своего IP ; адреса любой свободный в данном сегменте IP ; адрес, и, в дальнейшем, вести работу с данного IP ; адреса как с маршрутизатором, так и с «обманутыми» хостами.

В заключении разговоря о уязвимостях протокола ARP необходимо показать, как по разному различные сетевые ОС используют этот протокол для изменения информации в своих ARP ; таблицах. При исследовании различных сетевых ОС выяснилось, что в ОС Linux 1. 2.8 при адресации к хосту, находящемуся в одной подсети с данным хостом, в случае отсутствия в ARP ; таблице соответствующей записи о Ethernet ; адресе, передается ARP ; запрос и, в дальнейшем, при последующих обращениях к данному хосту, посылки ARP ; запроса не происходит. В ОС Solaris при каждом новом обращении к хосту происходит передача ARP ; запроса и, следовательно, ARP ; таблица динамически обновляется. ОС Windows ‘95 при обращении к хостам с точки зрения использования протокола ARP ведет себя также, как и Linux, за исключением того, что эта операционная система периодически (каждую минуту) посылает ARP ; запрос о Ethernet ; адресе маршрутизатора (видимо, программисты Microsoft считают, что мар шрутизатор постоянно меняет свой Ethernet ; адрес?!). Результатом этой уверенности (или лучше сказать халатности) является то, что в течении нескольких минут вся локальная сеть с Windows ‘95 с легкостью поражается с помощью ложного ARP ; сервера. Что касается NT 4.0, то эксперименты показали ; здест также используется динамически изменяемая ARP ; таблица и ARP ; запросы о Ethernet ; адресе маршрутизатора передаются с периодичностью 5 минут, следовательно сеть пора жается чуть дольше.

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

Таблица 1.
Таблица маршрутизации Таблица 1
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 144.206.136.11 UGSc 8 91699 ed0  
127.0.0.1 127.0.0.1 UH 1 112 lo0  
144.206.128/19 link#1 UC 0 0    
144.206.130.52 0:0:1b:12:32:79 UHLW 0 719 ed0 275
144.206.136.11 0:60:9:a5:8f:60 UHLW 9 0 ed0 1199
144.206.146.158 0:80:48:fc:b7:ef UHLW 0 234 ed0 1068
144.206.192/19 link#2 UC 0 0    
144.206.192.10 8:0:69:b:20:a0 UHLW 0 185 ed1 404
144.206.192.11 8:0:69:b:20:a0 UHLW 0 709 ed1 47
144.206.192.20 8:0:69:5:6f:55 UHLW 0 2278 ed1 572
144.206.192.23 0:0:e2:2:eb:41 UHLW 2 4887 ed1 1187

Возврат ICMP-spoofing

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

В каждой строке таблицы содержится описание соответствующего маршрута: IP ; адрес конечной точки маршрута (Сетевой адрес), IP ; адрес соответствующего ближайшего маршрутизатора (Адрес маршрутизатора), а, также, ряд других параметров, характери зующих этот маршрут. Обычно в системе существует так называемый маршрут по умолчанию (default), который означает, что все пакеты, адресуемые на IP ; адрес вне пределов данной подсети, будут направляться по указанному маршруту ; на маршрутиза тор (IP ; адресация, как адресация на сетевом уровне, была задумана изначально именно для межсегментной передачи данных из одной точки глобальной сети в другую). Для адресации на канальном уровне используются аппаратные адреса сетевых карт. В том сл учае если бы сеть представляла из себя всего один сегмент, то введение дополнительной IP ; адресации не потребовалось бы ; аппаратных адресов сетевых адаптеров было бы вполне достаточно для непосредственной адресации пакетов.

Сегодняшняя сеть Internet представляет из себя совокупность сегментов, соединенных через маршрутизаторы, поэтому в сети вынуждены использовать систему двойной адресации (по аппаратным и сетевым адресам). Когда пакет направляется в другой сегмент сети в за головке сетевого уровня указывается IP ; адрес назначения, а в заголовке канального уровня указывается Ethernet ; адрес ближайшего маршрутизатора. Обычно в сетях TCP/IP различают внешнюю и внутреннюю, статическую и динамическую маршрутизацию. Внешняя маршрутизация ; это маршруты между автономными системами Internet, внутренняя ; маршрутизация внутри автономной системы, статическая ; администратор хоста вручную прописывает таблицу маршрутизации, динамическая ; используют ся протоколы динамической маршрутизации. Обычно внимание администратора сегмента сети сосредотачивается на выборе типа маршрутизации и настройке программного обеспечения. Но в сегменте сети, которая разбита на подсети правки в таблицу маршрутизации могут вносить и ICMP-сообщения в виде передачи с маршрутизатора на хост управляющего сообщения: Redirect Message.

8-bit
Type
8-bit
Code
16-bit
Checksum
32-bit
Gateway Internet Address
Internet Header + 64 bits of Original Data Datagram

ICMP Заголовок:
поле Type: 5
поле Code:
0 = Redirect datagrams for the Network;
1 = Redirect datagrams for the Host;
2 = Redirect datagrams for the Type of Service and Network;
3 = Redirect datagrams for the Type of Service and Host.

Как следует из спецификации протокола ICMP, сообщение Redirect бывает двух видов. Первый вид (code 0) носит название Redirect datagrams for the Network и уведомляет хост о необходимости смены адреса маршрутизатора ; default ; маршрута. Второй вид (code 1) ; Redirect datagrams for the Host информирует хост о необходимости создания нового маршрута к указанному в сообщении хосту и внесения его в таблицу маршрутизации. Для этого в сообщении указывается IP ; адрес хоста, где необходим а смена маршрута (адрес будет занесен в поле Destination в пристыкованном IP ; заголовке), и новый IP ; адрес маршрутизатора, на который необходимо направлять пакеты, адресованные данному хосту (этот адрес заносится в поле Gateway). Необходимо обратить внимание на важное ограничение, накладываемое на IP ; адрес нового маршрутизатора ; он должен быть в пределах адресов данной подсети! Это выяснилось в результате изучения реакции различных сетевых систем на данное ICMP ; сообще ние.

Анализ публикаций, посвященных протоколу ICMP показал, что сообщение Redirect datagrams for the Network является устаревшим и уже не используется современными сетевыми ОС. Это подтверждает и проведенный автором анализ исходных текстов ОС Linux 1.2.8. Инач е дело обстоит с управляющим сообщением Redirect datagrams for the Host. Здесь нет такого единства в рядах разработчиков различных сетевых операционных систем. На практике многие из известных ОС игнорируют это сообщение. Например, если в версии Linux 1.2. 8 еще была реакция на Redirect datagrams for the Host, то уже в версии Linux 2.0.0 это сообщение игнорировалось. Иначе обстоит дело с ОС Windows 95 и NT. Наплевательское отношение разработчиков этих систем к вопросам обеспечения безопасности в данном слу чае привело как всегда к тому же: очевидная опасность Redirect datagrams for the Host была ими проигнорирована и обе системы реагируют на это сообщение, позволяя удаленно изменять таблицу маршрутизации на любом Windows ; хосте.

Итак. Мы подошли к основному вопросу. В чем же состоит потенциальная опасность в реакции сетевой ОС на ICMP ; сообщение Redirect datagrams for the Host? Ответ на этот вопрос очевиден: существует опасность несанкционированого изменения маршрутизации на хосте. Что может помешать хакеру самому послать подобное сообщение и навязать системе ложный маршрут. К сожалению ; ничего. Анализ механизма идентификации ICMP Redirect сообщения показывает, что единственным параметром, идентифицирующим это сооб щение, является IP ; адрес отправителя, который должен совпадать с IP ; адресом маршрутизатора, так как это сообщение может и должно передаваться только маршрутизатором. Особенность протокола ICMP состоит в том, что он не предусматривает никак ой дополнительной аутентификации источников сообщений. ICMP ; сообщения передаются на хост маршрутизатором однонаправлено без создания виртуального соединения (в процессе создания виртуального соединения можно было бы динамически, например, по схеме Диффи-Хелмана, выработать идентифицирующую информацию). А так как изначально ни хост, ни маршрутизатор не имеют заранее определенной статической ключевой информации для идентификации ICMP Redirect сообщения, то, очевидно, что в данном случае у его получа теля нет возможности установить подлинность отправителя однонаправленного сообщения ICMP Redirect. Следовательно, ничто не мешает атакующему самому послать ложное ICMP Redirect сообщение о смене маршрута от имени маршрутизатора.

Приведенные факты позволяют осуществить типовую удаленную атаку «Внедрение в распределенную сеть ложного объекта путем навязывания ложного маршрута» . Для осуществления этой удаленной атаки достаточно подготовить ложное ICMP Redirect datagrams for the Host- сообщение, в котором указать конечный IP ; адрес маршрута (адрес хоста, маршрут к которому будет изменен) и IP ; адрес ложного маршрутизатора. Далее, это сообщение передается на атакуемый хост от имени маршрутизатора. Для этого в IP ; заголовке в поле адреса отправителя указывается IP ; адрес маршрутизатора.

Имеется два варианта данной удаленной атаки. В первом случае атакующий находится в том же сегменте сети, что и цель атаки. Тогда, послав ложное ICMP ; сообщение, он в качестве IP ; адреса нового маршрутизатора может указать либо свой IP &nda sh; адрес либо любой из адресов данной подсети. Это даст атакующему возможность перемаршрутизировать сообщения, направляемые атакованным хостом на определенный IP ; адрес, и получить контроль над трафиком между атакуемым хостом и интересующим атакую щего сервером. Далее атака перейдет во вторую стадию, связанную с приемом, анализом и передачей пакетов, получаемых от «обманутого» хоста. Рассмотрим функциональную схему (Рис. 4.) осуществления этой удаленной атаки :


Рис. 4.Внутрисегментное навязывание хосту ложного маршрута при использовании протокола ICMP
  • передача на атакуемый хост ложного сообщения ICMP Redirect datagrams for the Host;
  • если пришел ARP ; запpос от атакуемого хоста, то посылается ARP ; ответ;
  • если пришел пакет от атакуемого хоста, то он переправляется на настоящий маршрутизатор;
  • если пришел пакет от маршрутизатора, то он переправляется на атакуемый хост;
  • при приеме пакета возможно воздействие на информацию по схеме «Ложный объект сети» .

В случае осуществления второго варианта удаленной атаки, атакующий находится в другом сегменте относительно цели атаки. Тогда при передаче на атакуемый хост ложного ICMP Redirect сообщения сам атакующий уже не сможет получить контроль над трафиком, так ка к адрес нового маршрутизатора должен находиться в пределах подсети атакуемого хоста. Использование данного варианта этой удаленной атаки не позволит атакующему получить доступ к передаваемой по каналу связи информации. Однако в этом случае атака достигает другой цели ; нарушение работоспособности хоста. Хакер с любого хоста в Internet может послать подобное сообщение на атакуемый хост и, в случае, если сетевая ОС на данном хосте не проигнорирует данное сообщение, то в дальнейшем нарушится связь межд у хостом и указанным в ложном ICMP ; сообщении сервером. Это произойдет из-за того, что все пакеты, направляемые хостом на этот сервер будут отправлены на IP ; адрес несуществующего маршрутизатора. Для того, чтобы провести эту межсегментную ат аку хакеру необходимо, во-первых, знать внутренний IP ; адрес маршрутизатора, к которому подключен хост, во-вторых, выбрать имя сервера, к которому требуется изменить маршрутизацию, и, в-третьих, выбрать IP ; адрес ложного маршрутизатора из вн утренней атакуемой сети.

Рассмотрим возможные проблемы для хакера и способы построения препятствий на пути осуществления данной атаки.

Первая проблема ; внутренний IP ; адрес маршрутизатора. Узнать его можно только путем простого перебора ; получить этот адрес из внешней сети не представляется возможным (утилита traceroute даст только IP ; адрес маршрутизатора во внешней сети). Поэтому, исходя из того, что большинство хостов в сети находятся в подсетях класса C, то для осуществления этой атаки достаточно будет послать 256 ICMP Redirect сообщений с различными IP ; адресами отправителя. Например, пусть хост им еет IP ; адрес 194.85.96.197. Тогда, исходя из предположения, что он находится в подсети класса С, IP-адрес маршрутизатора, к которому он подключен, будет иметь те же первые три байта: 194.85.96. Хакеру достаточно будет перебрать только последний ба йт (послать 256 пакетов).

Вторая проблема для хакера ; выбор имени (или IP ; адреса) сервера, к которому будет изменена маршрутизация. Очевидно, что узнать к какому серверу наиболее часто обращается пользователь данного хоста для хакера не представляется возможным. Одн ако ничто ему не мешает, посылая неограниченное число ICMP Redirect сообщений, последовательно изменять маршрутизацию к наиболее известным или наиболее часто используемым серверам Internet (поисковые серверы, серверы известных фирм, и т.д.). Дело может си льно упроститься в том случае, если хакер будет обладать некоторой информацией об атакуемом объекте (например, он является бывшим сотрудником данной фирмы).

Решение третей проблемы ; выбор IP-адреса ложного маршрутизатора из внутренней атакуемой сети лежит на поверхности. Используя утилиту ping, атакующий находит любой активный в настоящий момент хост во внутренней сети и использует его IP ; адрес в качестве адреса ложного маршрутизатора (рис.5). Вы спросите, почему нельзя использовать в качестве адреса ложного маршрутизатора адрес любого хоста во внутренней сети? Ответ вытекает из анализа функциональной схемы этой атаки. Дело в том, что использов ав без предварительной проверки активности любой адрес из внутренней сети, можно попасть на неактивный в данный момент хост. Тогда при первом же обращении с атакованного хоста на этот ложный маршрутизатор на него будет передан ARP-запрос и, не получив на него ответа (хост- то не активен, например, выключен из сети), операционная система через небольшой интервал времени (несколько секунд) пошлет вновь данный запрос, но уже на поиск адреса старого маршрутизатора и, получив на него ответ тут же «вычист ит» из таблицы маршрутизации ложный маршрут. Таким образом задержка в связи будет минимальна и, соответственно атака нанесет минимальный ущерб.


Рис. 5. Внутрисегментное навязывание хосту ложного маршрута при использовании протокола ICMP, приводящее к отказу в обслуживании

В том случае, если атакующий в качестве ложного маршрутизатора выберет активный хост, то с ARP ; ответом от него проблем не будет и связь будет нарушена на значительно более долгий промежуток времени. Время нарушения работоспособности сетевой операц ионной системы для каждой ОС свое. Эксперименты, проведенные автором с ОС Windows NT 4.0 показали, что время нарушения работоспособности системы этой атакой ; 10 минут. Получив одно ложное ICMP Redirect сообщение NT не могла связаться с указанным в ложном сообщении серверов в течении 10 минут (однако ничто не мешает хакеру, атакуя Windows NT, передавать это сообщение с периодом 10 минут, не правда ли?).

Защититься от этой атаки можно только фильтрацией (при помощи систем брандмауэров) проходящих ICMP Redirect сообщений. Другой способ защиты состоит в изменении исходных текстов сетевого ядра операционных систем с дальнейшей его перекомпиляцией с целью зап ретить реакцию на ICMP Redirect сообщение. Но это возможно только в случае свободного распространения исходных текстов ОС (как в случае с ОС Linux или ОС Free BSD). (В общем случае, перенаправление, приходящее из внешней сети фильтруется маршрутизатором, который соединяет сеть организации с внешним миром, поэтому нужно опасаться своих шалунов, так же как и в случае с ARP. Имеются организации где ICMP redirect работает во всю, но сбои по маршрутизации бывают только когда происходят сбои у CISCO. Прим. ред .)

Литература:

И. Медведовский, П. Семьянов Атака через Internet. //Мир и Семья-95, 1997г.
RFC792 ; ICMP
RFC826 ; ARP Protocol for finding out Ethernet addresses


<== Back to main page