Icmp smurf на роутере что это

Обновлено: 06.07.2024

Домашние маршрутизаторы имеют разные интерфейсы, с одной стороны, у нас есть интерфейс LAN и WLAN, где мы подключаем все оборудование в домашней локальной сети, либо через кабель, либо через Wi-Fi соответственно. У нас также есть интерфейс WAN, который является портом Интернета и который связан с публичным IP-адресом. Хороший способ остаться «скрытым» в Интернете - это заблокировать любой тип запроса ICMP и не отвечать на него, таким образом, если кто-то выполняет типичный «пинг» на наш IP, он не ответит, и ему потребуется выполнить Сканирование портов, чтобы определить, работает ли хост (наш маршрутизатор).

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

Мы должны помнить, что не рекомендуется блокировать все ICMP, а только те, которые соответствуют «ping», то есть эхо-запрос ICMP (запрос) и эхо-ответ ICMP (ответ). Некоторые типы ICMP необходимы для правильного функционирования сети, особенно если вы работаете с сетями IPv6.

Что произойдет, если мы заблокируем пинг в глобальной сети?

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


Хотя мы отключили пинг в глобальной сети Интернет, мы сможем пинговать хосты в Интернете без каких-либо проблем, без необходимости открывать порты или делать что-либо еще, потому что единственное, что мы делаем с этим, - это блокируем в брандмауэре любые Эхо-запрос ICMP, который дошел до нас. Маршрутизаторы обычно используют Linux операционной системы внутри, чтобы работать, и использовать iptables, правило, которое они включают, следующее:

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Это правило блокирует любой ICMP типа эхо-запроса, который идет непосредственно к самому маршрутизатору, -j DROP указывает, что он будет непосредственно удалять указанный пакет, не «говоря» ничего, на что он был отправлен, то есть мы отбрасываем пакет.

Очень важный аспект заключается в том, что мы всегда должны блокировать пинг в глобальной сети, но не в локальной сети, поскольку, если мы заблокируем пинг в локальной сети, мы не сможем пинговать шлюз по умолчанию нашего компьютера (который является маршрутизатором), чтобы обнаружить любой возможный сбой.

Хотя многие модели и бренды маршрутизаторов поддерживают блокировку проверки связи в глобальной сети Интернет, сегодня в этой статье мы собираемся дать вам два примера того, как заблокировать проверку связи в глобальной сети. ASUS роутеры а так же на любой роутер от производителя AVM FRITZ! Коробка.

Блокировка пинга (эхо-запрос ICMP) на маршрутизаторах ASUS

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

Блокировка пинга (ICMP Echo-request) на AVM FRITZ! Коробочные маршрутизаторы

В роутерах немецкого производителя AVM мы также можем заблокировать типичный пинг в интернете WAN, для этого надо перейти в главное меню роутера. В правой верхней части, где появляются три вертикальные точки, нажмите « Расширенный режим », Чтобы иметь все параметры конфигурации.

Как только это будет сделано, мы переходим к « Интернет / Фильтры / Списки «И мы спускаемся, пока не найдем вариант« Брандмауэр в режиме невидимости «. Мы включаем его и нажимаем на кнопку применить изменения.

Эта опция позволяет вам отклонять все запросы из Интернета, как мы объяснили, и каждый может сделать это.

Благодаря этому блоку ping в глобальной сети Интернет, чтобы найти наш хост (маршрутизатор) в Интернете, они должны выполнить сканирование портов, чтобы выяснить, работает ли у нас какая-либо служба, либо на маршрутизаторе, либо на каком-либо сервере NAS в нашей сети. местный.


Сам протокол находится на сетевом уровне, однако также частично выполняет функции транспортного уровня. Все ICMP пакеты инкапсулируются в IP пакеты


А вот и расположение протокола в модели OSI:


Какие функции транспортного уровня он выполняет?

Сообщает об ошибках, возникающие в сети, потому что протокол IP не предоставляет никакие механизмы по оповещению узлов в случае возникновения сетевых проблем. Поэтому данные функции и возложены на ICMP.


Но разве это не делает TCP и протоколы прикладного уровня?

TCP и протоколы прикладного уровня применяют данные механизмы в случаях, когда соединение уже установлено или на стадии установления. К тому же, если на сетевом уровне имеется проблема, то пакет никогда не дойдет до транспортного и прикладного уровней и соответственно “верхние” протоколы ничего не смогут сделать и даже ничего не будут знать.

Поясню на простом примере. Мы уже знаем как работает фрагментация пакетов. Теперь представим, что мы отправляем данные и устанавливаем флаг DF (Don’t fragment). На пути следования пакетов одному из узлов вдруг потребуется провести фрагментацию, но так как у нас установлен флаг DF, то узел не сможет обработать запрос и естественно не отправит пакет на транспортный уровень для дальнейшей обработки. Пакет будет уничтожен и если бы не ICMP, то узел-отправитель и дальше бы отправлял пакеты с запретом на фрагментацию, а пользователи бы не знали в чем проблема.
Поэтому, уничтожив пакет, узел-получатель формирует специальный ICMP ответ с указанием, что требуется фрагментация.

Из всего этого видно, что даже на сетевом уровне необходим механизм по контролю за ошибками.


А что произойдет, если сгенерированный ICMP пакет был потерян?

Ничего, повторно пакет высылаться не будет.


А как же выглядит сам заголовок ICMP пакета?

Заголовок состоит из 8 байт и выглядит следующим образом


Контрольная сумма - стандартная проверка пакета ICMP на наличие ошибок.

Данные - в зависимости от значений в полях Тип и Код передаются определенные данные.


С помощью ICMP можно также проверить доступность определенных узлов в сети или провести простое сетевое сканирование.
Достигается это с помощью простой техники. Узел-отправитель генерирует пакет Echo request (эхо запрос) и отправляет его определенному узлу-получателю. Узел-получатель, приняв пакет, ответит узлу-отправителю пакетом Echo reply (эхо ответ). Когда узел-отправитель получит ответ, то измерит задержку распространения пакетов в сети и возможные потери и отобразит результаты на экране. Реализуется это с помощью утилиты Ping, которая доступна на многих платформах (Windows, Linux)


Если пакеты не достигнут узла-получателя, то на экране узла-отправителя отобразится такой результата:


То есть это означает, что узел выключен или не подключен к сети?

Не совсем. Причин неуспешного пинга может быть несколько. Например, не работает маршрутизация, ICMP пакеты блокируются и так далее.
То есть Ping не дает стопроцентной гарантии того, что узел выключен.

На основе техники Echo request - Echo reply и строятся многие инструменты сетевой диагностики.

Другой полезный инструмент, работающи й на основе ICMP способен строить карту сети, то есть отмечает все промежуточные узлы, через которые прошел пакет. Таким способом можно проверить как работает сеть и каким путем следуют пакеты к узлу-получателю. Кроме того, при возникновении сетевых проблем данная утилита поможет найти узел, который возможно является причиной сетевой проблемы. Достигается это с помощью утилиты Traceroute (Linux) либо Tracert (Windows).
Вот как выглядит работы программы:


А как работает данная программа?

Вот как выглядит трафик в анализаторе Wireshark:


Иногда можно увидеть и такой трейс:


Это означает, что наш компьютер не получил никаких пакетов Time Exceeded, потому что маршрутизатору запрещено отправлять пакеты Time Exceeded. Сделано это в целях безопасности.


MikroTik

Научиться настройке MikroTik можно на онлайн курсе по оборудованию этого производителя. Автор курса является сертифицированным тренером MikroTik. Подробней Вы можете прочитать в конце статьи.

Статья отвечает на вопрос насколько опасно блокировать ICMP трафик.

ICMP — яблоко раздора

ICMP-трафик имеет много важных функций; какие то из них полезны для устранения неполадок, другие же необходимы для правильной работы сети. Ниже приведены сведения о некоторых важных составляющих ICMP протокола, о которых вы должны знать. Следует подумать над тем, как оптимальным образом пропускать их через вашу сеть.

Echo запрос и and Echo ответ

Мы все хорошо знаем, что ping, — один из первых инструментов для поиска и устранения неполадок. Да, если вы включите на своем оборудование обработку ICMP-пакетов, то это значит, что ваш хост теперь доступен для обнаружения, но разве ваш веб-сервер уже не слушает порт 80, и не отправляет ответы на клиентские запросы? Конечно, заблокируйте ещё и эти запросы, если вы действительно хотите, чтобы на границе сети была ваша DMZ. Но блокируя ICMP трафик внутри вашей сети, не усилите защиту, напротив получите систему с излишне сложным процессом поиска и устранения неполадок («Проверьте пожалуйста отзывается ли шлюз на сетевые запросы?», «Нет, но это меня ничуть не расстраивает, потому что мне это ничего не скажет! »).

Помните, также можете разрешить прохождение запросов в определенном направлении; например, настроить оборудование так, чтобы Echo запросы из вашей сети проходили в сеть Интернет и Echo ответы из Интернета в вашу сеть, но не наоборот.

Необходима фрагментация пакета (IPv4) / Пакет слишком большой (IPv6)

Данные компоненты протокола ICMP очень важны, так как являются важным компонентом в Path MTU Discovery (PMTUD), который является неотъемлемой частью протокола TCP. Позволяет двум хостам корректировать значение максимального размера сегмента TCP (MSS) до значения, которое будет соответствовать наименьшему MTU по пути связей между двумя адресатами. Если на пути следования пакетов будет узел с меньшим Maximum Transmission Unit, чем у отправителя или получателя, и у них не будет средств для обнаружения данной коллизии, то трафик будет незаметно отбрасывается. И вы не будете понимать что происходит с каналом связи; другими словами, «для вас наступят веселые деньки».

TCP-handshake

Исследование пути доставки пакетов

Превышение времени передачи пакетов

Traceroute — очень полезный инструмент для устранения неполадок в сетевых соединениях между двумя хостами, подробно описывающий каждый шаг пути.

Time to live

NDP and SLAAC (IPv6)

Router Solicitation (RS) (Type133, Code0)
Router Advertisement (RA) (Type134, Code0)
Neighbour Solicitation (NS) (Type135, Code0)
Neighbour Advertisement (NA) (Type136, Code0)
Redirect (Type137, Code0)

В то время как IPv4 использовал протокол разрешения адресов (ARP) для сопоставления 2 и 3 уровней сетевой модели OSI, IPv6 использует другой подход в виде протокола обнаружения соседей (NDP). NDP предоставляет множество функций, включая обнаружение маршрутизатора, обнаружение префикса, разрешение адреса и многое другое. В дополнение к NDP, Автоконфигурация (StateLess Address AutoConfiguration (SLAAC) позволяет динамически настраивать хост в сети, аналогично концепции протокола динамической настройки узла (Dynamic Host Configuration Protocol (DHCP) (хотя DHCPv6 предназначается для более тонкого управления).

Нумерация типов ICMP

Тип Наименование Спецификация
0 Echo Reply [RFC792]
1 Unassigned
2 Unassigned
3 Destination Unreachable [RFC792]
4 Source Quench (Deprecated) [RFC792][RFC6633]
5 Redirect [RFC792]
6 Alternate Host Address (Deprecated) [RFC6918]
7 Unassigned
8 Echo [RFC792]
9 Router Advertisement [RFC1256]
10 Router Solicitation [RFC1256]
11 Time Exceeded [RFC792]
12 Parameter Problem [RFC792]
13 Timestamp [RFC792]
14 Timestamp Reply [RFC792]
15 Information Request (Deprecated) [RFC792][RFC6918]
16 Information Reply (Deprecated) [RFC792][RFC6918]
17 Address Mask Request (Deprecated) [RFC950][RFC6918]
18 Address Mask Reply (Deprecated) [RFC950][RFC6918]
19 Reserved (for Security) Solo
20-29 Reserved (for Robustness Experiment) ZSu
30 Traceroute (Deprecated) [RFC1393][RFC6918]
31 Datagram Conversion Error (Deprecated) [RFC1475][RFC6918]
32 Mobile Host Redirect (Deprecated) David_Johnson
33 IPv6 Where-Are-You (Deprecated) [RFC6918]
34 IPv6 I-Am-Here (Deprecated) [RFC6918]
35 Mobile Registration Request (Deprecated) [RFC6918]
36 Mobile Registration Reply (Deprecated) [RFC6918]
37 Domain Name Request (Deprecated) [RFC1788][RFC6918]
38 Domain Name Reply (Deprecated) [RFC1788][RFC6918]
39 SKIP (Deprecated) [RFC6918]
40 Photuris [RFC2521]
41 ICMP messages utilized by experimental mobility protocols such as Seamoby [RFC4065]
42 Extended Echo Request [RFC8335]
43 Extended Echo Reply [RFC8335]
44-252 Unassigned
253 RFC3692-style Experiment 1 [RFC4727]
254 RFC3692-style Experiment 2 [RFC4727]
255 Reserved

Пара слов об ограничении скорости

Читать, исследовать и понимать

Учитывая, что обсуждение темы «блокировать или не блокировать» ICMP-пакетов, всегда приводит к путанице, спорам и разногласиям, предлагаю продолжить изучать эту тему самостоятельно. На этой странице привел много ссылок, считаю для более полного понимания проблематики следует потратить время на их чтение. И сделать осознанный выбор того, что лучше всего подходит для вашей сети.

MikroTik: куда нажать, чтобы заработало?
При всех своих достоинствах, есть у продукции компании MikroTik один минус – много разобщенной и далеко не всегда достоверной информации о ее настройке. Рекомендуем проверенный источник на русском языке, где все собрано, логично и структурировано – видеокурс « Настройка оборудования MikroTik ». В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект. Все материалы остаются у вас бессрочно. Начало курса можно посмотреть бесплатно, оставив заявку на странице курса. Автор курса является сертифицированным тренером MikroTik.

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Теория ICMP

Зачем нужен ICMP

Как говорилось в гдаве 2, “TCPdump и TCP”, TCP является протоколом, ориентированным на установление соединений, и для надежной доставки TCP-

сегментов требуются значительные ресурсы вычислительных систем. Протокол UDP не ориентирован на установление соединений и не гарантирует надежной доставки данных. Для работы обоих протоколов необходим свободный порт сервера, с которым может взаимодействовать клиент.

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

Область применения ICMP

Рассмотренная в главе 1, “Фундамент Internet”, многоуровневая модель стека протоколов TCP/IP определяет обмен данными между двумя хостами на различных уровнях (рис. 4.1).


Рис. 4.1. Многоуровневая модель стека TCP/IP

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

Одна из необычных особенностей ICMP заключается в том, что нет необходимости в работе определенных служб и ожидании запросов к соответствующим портам. На эхо-запрос ICMP способны отвечать практически все операционные системы, и отключить используемый по умолчанию режим обязательного ответа на эхо-запрос совсем не просто.

Еще одной уникальной возможностью ICMP является поддержка широковещательного трафика. Протокол TCP требует установления единственного соединения клиент-сервер, a ICMP позволяет отправлять данные сразу нескольким адресатам. Как будет показано в разделе “Атака Smurf’, эта возможность может быть успешно использована злоумышленниками.

Резюме теоретических сведений

Методы составления схемы сети

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

Атака злоумышленника, который не составил схемы сети, приведет к резкому увеличению сетевого трафика, т.е. не будет действительно эффективной. В последнем квартале 1999 года была проведена подобная атака сканирования, которая напомнила поговорку “как слон в посудной лавке”. Троянская программа RingZero, поражавшая компьютеры под управлением Windows, выполняла сканирование хостов на предмет открытых портов ргоху-серверов. Основным недостатком ее работы было сканирование случайных хостов, работающих в различных сетях. Поэтому выполнялось сканирование как по действительным, так и по несуществующим IP-адресам. Такие действия быстро выявлялись системами обнаружения вторжений. Кроме того, для извлечения полезной информации о проведенном сканировании приходилось выполнять большой объем лишней работы. Если бы атака была более направленной, и все сканируемые IP-адреса принадлежали бы активным компьютерам, то нарушитель, несомненно, добился бы больших результатов.

Троянская программа RingZero

Первым предположением было, что при данной атаке были использованы подложные IP-адреса, а цель ее неизвестна. Но, Рон Маркум (Ron Marcum), системный администратор Университета Вандербильта, обнаружил в своей сети компьютер под управлением Windows, выполняющий данное сканирование. Процессом сканирования управляла программа под именем RingZero. Программа RingZero была подробно рассмотрена на конференции SANS (System Administration, Networking and Security - системное администрирование, работа в сети и безопасность), проходившей в октябре 1999 года.

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

Одним из наиболее популярных методов составления схемы сети является применение эхо-запросов ICMP. Хост, который ответил на эхо-запрос, явным образом сигнализирует о своей активности. На этом и построен принцип использования команды ping, с ее помощью отправляется эхо-запрос, на который должен быть возращен эхо-ответ. Многие системные администраторы защищаются от этой функции протокола ICMP, блокируя получение эхо-запросов. Это неплохой и даже нужный метод защиты, но он не является универсальным решением, а только усложняет задачу настойчивого злоумышленника. Блокирование эхо-запросов стимулировало хакеров на изобретение других методов сканирования, реализуемых с помощью других протоколов.

В разделе “Сканирование с помощью АСК-пакетов” главы 2, “TCPdump и TCP”, показано, как с помощью TCP-пакетов с установленным флагом АСК можно выявить работающие хосты. Этот метод - достойная альтернатива сканированию с помощью эхо-запросов. В следующих разделах рассмотрен ряд обычных и нестандартных методов сканирования.

Неутомимый составитель схем

Ниже представлен отчет о классическом сканировании для составления схем сетей с помощью отправления отдельных эхо-запросов ICMP всем хостам определенной подсети. В данном случае сканируется сеть класса С 192.168.117. Выявить такое сканирование не составляет труда.

Тем не менее даже такое сканирование может остаться незамеченным, если на узле не контролируется ICMP-трафик. Тут возникает риторический вопрос: если хакер сканирует всю сеть, но никто за этим не следит, то будет ли поднята тревога? Если считать подозрительным каждый одиночный эхо-запрос, то системы обнаружения вторжений поднимали бы тревогу слишком часто, поэтому одиночные эхо-запросы, как правило, игнорируются. Тем не менее система обнаружения вторжений, которая отслеживает все попытки сканирования, способна выявить сканирование при отправке большого числа одиночных запросов с одного хоста. Другими словами, система обнаружения вторжений контролирует количество попыток подключения с одного IP-адреса за установленный период времени (например, не более семи соединений в час). Поэтому приведенное выше сканирование будет обнаружено.

Эффективное составление схем

Рассмотренное в предыдущем примере сканирование, скорее всего, выполнялось автоматически с помощью простой программы. Но зачем нужны лишние действия, если протокол ICMP позволяет организовать широковещательную отправку запросов и проверить активность многих хостов с помощью нескольких команд? Именно такую возможность использует программа сканирования, отчет о действиях которой представлен ниже.

Как видим, составляется схема подсети 192 .168. Здесь представлен только фрагмент полного сканирования, в котором значения третьего байта IP-адреса изменяются от 65 до 69. В качестве значения последнего байта используется или 0, или 255. Значение 255 - стандартный адрес для широковещательного пакета, а 0 - широковещательный адрес для хостов, в которых стек протоколов TCP/IP работает под управлением операционной системы BSD UNIX (Berkeley Software Distribution). При использовании в ICMP-запросах обоих этих широковещательных адресов должны ответить все активные хосты исследуемой сети.

Можно сделать вывод о том, что в своей сети лучше запретить любые действия с использованием широковещательных адресов. Лично мне не известны другие законные операции при рассылке широковещательных запросов, кроме как проверки работы компьютеров. Кроме того, запрещение широковещательного трафика предотвратит распространение атаки Smurf за счет ресурсов вашей сети (см. раздел “Атака Smurf’).

Искусное составление схем

Следующий листинг дает представление о новом варианте уже рассмотренного метода составления схемы сети.

Рассмотрим данный метод сканирования. Эхо-запросы ICMP были отправлены в подсеть класса С 192.168.21. Обратите внимание на последний байт использованных IP-адресов. Как видим, первый запрос был отправлен по широковещательному адресу 0, а последний - по широковещательному адресу 255. Эти адреса уже применялись в предыдущем методе сканирования.

Но в данном случае запросы отправляются еще и по другим IP-адресам, при этом используются первое и последнее значение промежутка в 64 IP-адреса. Например, первый IP-адрес заканчивается байтом со значением 0, а следующий за ним - байтом со значением 63. Почему используется именно такой интервал в 64 адреса?

Согласно стандарту сеть класса С имеет 256 IP-адресов в диапазоне от 0 до 255. С помощью маски подсети эту сеть можно разделить на несколько подсетей, и одним из вариантов является создание четырех независимых подсетей по 64 IP-адреса каждая. При этом соответственно изменяются широковещательные адреса для каждой подсети, которые и были использованы в данном примере. Таким образом, при составлении схемы учитывается возможность существования “нестандартной” схемы сети класса С. Если в исследуемой сети действительно было использовано указанное разделение, то ответили бы все активные хосты. То же самое произойдет и при сканировании стандартной сети класса С (в которой не запрещено использование широковещательных адресов), так как применяются широковещательные адреса 0 и 255.

Интеллектуальное составление схемы

В этом последнем отчете о сканировании с целью составления схемы сети показано использование другого типа ICMP-запросов. ICMP-запрос маски адреса (address mask request) предназначен для получения маски подсети, в которой установлен запрашиваемый хост. Помните, как в прошлом примере основной целью сканирования было угадать схему адресации сети? Данный метод позволяет устранить лишние проблемы.

Этот метод нельзя назвать классическим методом составления схемы сети, но он позволяет провести предварительную разведку и определить маски подсетей различных маршрутизаторов. Как правило, на запросы о масках подсетей отвечают только маршрутизаторы, поэтому нарушитель получает адреса наиболее интересных для исследования хостов. Как говорилось в главе 1, “Фундамент Internet”, с помощью маски подсети можно узнать, сколько битов IP-адреса отведено для указания сети, а сколько - для хоста.

Если нарушитель определит маску подсети, он будет точно знать, сколько хостов нужно сканировать. Хотя маску подсети хоста обычно можно узнать по первому байту

IP-адреса, использованный в данном случае ICMP-запрос позволяет выявить сети, в которых применяются нестандартные маски. Такую информацию невозможно получить при изучении только IP-адреса. В этом примере сканируемые маршрутизаторы отвечают на запрос шестнадцатеричным числом Oxf f f f f f 00. Десятичное значение этого числа составляет маску подсети 255.255.255.0, т.е. все хосты принадлежат сети класса С. Для обеспечения безопасности ответы маршрутизаторов на ICMP-запросы о масках подсети следует запрещать.

Резюме о составлении схемы сети

Итак, существуют следующие методы составления схемы сети:

router > sending.host: icmp: host target.host unreachable

По какой-то причине хост target .host недостижим. Возможно, вообще не существует хоста с указанным IP-адресом, или он в данный момент не в состоянии ответить на запрос, или же этот хост не отвечает в результате неправильной настройки.

target.host > sending.host: icmp: target.host udp port ntp unreachable (DF)

В следующем примере содержится отчет о еще одном ICMP-уведомлении об ошибке.

router > sending.host: icmp: target.host unreachable - admin prohibited

В данном случае хост-отправитель пытался передать пакет хосту target. host. Маршрутизатор (router) работает как шлюз для сети получателя.

Превышение лимита времени

Протокол IP должен иметь возможность удалить из Internet потерянную дейтаграмму, которая, возможно, бесцельно и бесконечно передается по замкнутому маршруту между несколькими маршрутизаторами. Необходимость отбрасывания потерянных дейтаграмм определяет значение поля TTL (time-to-live - время жизни) в заголовке 1Р-дейтаграммы.


Резюме о стандартном использовании ICMP

Использование ICMP для проведения атак

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

Одним зимним утром после ночного снегопада, по дороге на работу я подумал, что эта поездка похожа на мою работу в области обеспечения безопасности сетей. Я осторожно ехал на своем автомобиле по длинной, извилистой, занесенной снегом дороге, снижая скорость, переключаясь на более низкую передачу, съезжая вниз, и внимательно объезжая оставленные у обочины машины на подъеме. Я старался соблюдать максимальную осторожность по отношению к любому препятствию, но были и невидимые мне угрозы, например, гололедица.

Очень часто, анализируя трафик, предназначенный нашим узлам, у меня возникало это ощущение невидимой угрозы. На личном опыте я убедился в настойчивости, хитрости и сообразительности, с которыми Internet-пираты добиваются своих целей. Для каждого специалиста в области сетевой безопасности основным вопросом должен стать вопрос “Чего я не заметил?”. Если проявить беспечность по отношению к защите своего Web-узла, то однажды он может выйти из-под контроля по неизвестной причине.

Атака Smurf (рис. 4.3) основана на использовании возможности протокола ICMP рассылать дейтаграммы по нескольким адресам. Ответить на один широковещательный эхо-запрос ICMP может большое количество хостов. Эта возможность используется для проведения атаки отказа в обслуживании на избранный хост или сеть.

Сначала злоумышленник должен сформировать широковещательный эхо-запрос ICMP к хостам атакуемой сети, подменив при этом действительный IP-адрес своего компьютера.


Рис. 4.3. Схема атаки Smurf

Вот еще одна причина, по которой следует запретить вхождение извне пакетов с широковещательным адресом - это не позволит использовать вашу сеть для распространения атаки Smurf.

Атака Tribe Flood Network


Рис. 4.4. Схема атаки Tribe Flood Network

Самостоятельно организованный отказ в обслуживании

Это было 29 декабря 1999 года. Приступая к работе в центре Y2K (проблема 2000 года), расположенном в резиденции министра обороны, я размышлял над слухами о грядущем компьютерном апокалипсисе. Большинство полагало, что будут проведены массированные атаки отказа в обслуживании, направленные против транспортных и энергетических служб. Несмотря на заверения хакеров о том, что они будут праздновать Новый год вместе со всеми, преобладало мнение, что появление средств для распределенных атак отказа в обслуживании приурочено именно к наступлению 2000 года.

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

Атака WinFreeze, по существу, заставляет избранный компьютер атаковать самого себя.

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

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

Предположение 1: подмена IP-адреса

Предположение 2: атака TFN

Предположение 3: Loki

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

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

Резюме о незаконном использовании ICMP

Подводя итоги этого раздела, можно сказать, что протокол ICMP может применяться не только для нормальных, но и для вредоносных операций, например для атак отказа в обслуживании (Smurf и WinFreeze). В атаке TFN этот протокол служит, скорее, в качестве транспортного средства, предоставляющего возможность для проведения еще одного типа атак отказа в обслуживании. Программа Loki вообще превращает ICMP в туннельный протокол для проведения атакующих действий.

Блокировать или не блокировать

Кроме того, если маршрутизатор сети будет уведомлять отправителя об ошибках недостижимости некоторых хостов (host unreachable), то, предположив активность всех остальных хостов, можно составить схему сети.

Так почему же полностью не блокировать весь входящий и исходящий ICMP-трафик? На некоторых узлах так и делается, но давайте рассмотрим последствия блокирования всего входящего ICMP-трафика.

Эхо-запросы без ответа

Отказ от возможностей Traceroute

Для команды tracert, используемой в системах под управлением Windows, требуется получение внешних эхо-запросов, поэтому удаленный пользователь не сможет применить эту команду для компьютеров в вашей сети. В свою очередь, UNIX-команда traceroute в качестве транспортного средства использует протокол UDP, поэтому блокирование входящего ICMP-трафика не повлияет на возможности удаленных пользователей применять ее для компьютеров вашей локальной сети.

Тишина в локальной сети

Неизвестное значение MTU

Относитесь к ICMP-трафику с осторожностью. В этой главе было описано несколько современных способов вредоносного использования возможностей ICMP. Нет никакого сомнения в том, что появятся и новые с неизвестным доныне предназначением.

В целях защиты блокируйте входящий ICMP-трафик, но делайте это разумно и избирательно. Закрыв путь хакерам, проверьте, не приводит ли установленное блокирование к каким-либо тяжелым последствиям.

Читайте также: