Network, Security: DoS/DDoS

 

DOS/DDOS теория

DOS/DDOS (dns lookup, half-open attacks like syn flood; ddos = dos + botnet => flood guard) – отправляем большое количество каких-либо пакетов/запросов/ответов для отказа в обслуживании сервиса из-за нехватки ресурсов (процессинговых, памяти, сетевых и проч). DDOS – Distributed DoS (напр. используя botnet).

Это если в среднем. По факту даже атаку с одним или несколькими пакетами зачастую называют DoS – если в результате этой атаки произошел тот самый Denial of Service. Примером такой атаки можно считать TCP SACK PANIC, когда небольшое количество скрафченных TCP пакетов с минимальным MSS и использованием SACK приводит к отказу системы из-за уязвимости в коде ядра Linux.

A remote user can trigger this issue by setting the Maximum Segment Size(MSS) of a TCP connection to its lowest limit of 48 bytes and sending a sequence of specially crafted SACK packets. Lowest MSS leaves merely 8 bytes of data per segment, thus increasing the number of TCP segments required to send all data.

Список поддерживаемых Tera VM DDoS атак (основные атаки).

Существует три основных вида DOS:

    • Direct (SYN flood) – атакующий отправляет DOS трафик непосредственно жертве (напр. TCP SYN Flood Attack, но, безусловно, он может быть реализован и не напрямую)
      • Reflected (smurf attack) – атакующий отправляет фейковый трафик (spoofed) на промежуточный хост (или хосты), а промежуточный хост нагружает жертву. Обычно тут используется UDP т.к. его легко подделать (отсутствие 3whs). Примером являются
        • smurf атака – когда подменяется адрес источника icmp сообщения на бродкаст адрес и хосты сети начинают отвечать жертве.
        • tcp middlebox reflection – когда используются enterprise или правительственные системы фильтрации (China Great Firewall), которые на один spoofed IP SYN с контентом! (payload SYN) отвечают заблокированным контентом (т.е. без ожидания 3WHS) и как итог, spoofed IP атакуется системами фильтрации. Решения в конце статьи простые (игнорировать SYN + payload, использовать SYN cookies/challenges).

Fig. 1. Example responses from vulnerable middlebox

  • Amplification (dns amplification attack) – форма reflected атаки, в ней атакующий так же отправляет фейковый трафик (spoofed) на промежуточный хост (или хосты), а промежуточный хост нагружает жертву. В сравнении с классической reflected атакой amplification имеет особенность – промежуточный хост генерирует в итоге большую нагрузку на жертву, чем если бы атакующий передал трафик непосредственно жертве. Пример реализации: используя смену source address мы генерируем на некий сервер небольшой по объему запрос (NTP сервер, DNS сервер и другие сервера), а он отвечает жертве по подмененному SRC адресу большим количеством данных и в результате DDOS’ит его. Так же примером amplification является Smurf amplifier для smurf атаки.

Формой DoS так же являются buffer overflow атаки (и вообще любые другие атаки), приводящие к отказу сервиса.

Сегодня большая часть DoS/DDoS атак основана на использовании ботнетов (botnet) с использованием command-and-control серверов (C2, CnC), тогда как ранее на тулзках вроде Ping of Death, Teardrop. Новые ботнеты так же замещают старые (напр. Storm, Mariposa).

 

 

DOS/DDOS АТАКИ практика

 

DOS/DDOS защита
  • Flood guards – обеспечение защиты от DoS/DDoS. Обычно реализуется на Firewall/Enterprise Router/IPS/IDS, но есть и open source продукты для небольших организаций, например failed2ban (подробнее в статье iptables). Он обнаруживает атаки по общему паттерну (SYN flood/UDP flood), при достижении порога генерируется alert или даже предпринимаются автоматические меры (activation threshold) – напр. блокируется трафик на определенное время.

  • Почему традиционные Firewall/IPS плохи в защите от DDoS пишут Radware – они имеют серьезные архитектурные ограничения для этого (connection table, only individual session analysis).
    The simple answer is that they were not designed to do so. Firewalls and IPS focus on examining and preventing the intrusion of one entity at a time, but were not designed to detect the combined behavior of legitimate packets sent millions of times.
  • Пример защиты от DDoS на основе решения от Imperva, так же есть куча альтернатив (напр. de-cix.net, psychz.net и даже Касперский). Работает на основе BGP пиринга поверх GRE через DDoS облако хостера или на основе подмены DNS записи для защищаемого ресурса (DNS lookup резолвит в IP адрес DDoS-хостера). Я решение даже порекомендовал тут в ролике. Трафик к кастомеру маршрутизируется через imperva в результате
    • bgp as path prepend
    • анонсов конкретных сетей (которых атакуют или потенциально могут атаковать)
    • отключением анонсов через основной канал (напр. при атаке)
Я бы на вашем месте "на всякий такой случай" поглядел в сторону связки симка с белым IP + BGP + GRE, если еще не глядели.
Буржуи (напр. imperva) предлагают пиринг поверх gre как услугу защиты от ddos, вам же профит будет и в доп. бекапе.

WAF

Web Application Firewall, WAF (cloudflare, incapsula, sucuri) реализует функционал защиты web application от различных атак, включая ddos.
WAF представляет из себя промежуточный (между сервером и клиентов) сервис (сервер/облако), который располагается между клиентом и web application.

– Клиент резолвит сайт через dns
– Клиент получает один из адресов WAF, а не непосредственно адрес сайта (web application)
– WAF после анализа перенаправляет запрос на web application
– При этом на web application производится настройка приема запросов только от пулов IP WAF – на случай если кто то особо умный из истории dns поднимет твой старый IP.

https://github.com/vincentcox/bypass-firewalls-by-DNS-history
Firewall bypass script based on DNS history records. This script will search for DNS A history records and check if the server replies for that domain. Handy for bugbounty hunters.
How to protect against this script?
If you use a firewall, make sure to accept only traffic coming through the firewall. Deny all traffic coming directly from the internet. For example: Cloudflare has a list of IP's which you can whitelist with iptables or UFW. Deny all other traffic.
Make sure that no old servers are still accepting connections and not accessible in the first place

 

FASTNETMON
FastNetMon – заброшенный с 2016 года, но рабочий сенсор DoS/DDoS с возможностями реакции на атаки (BGP, script).
Подразумевается для установки на отдельном серваке (FastNetMon принимает, например, Netflow данные), не на самой машине. В теории можно установить и на машину, обрабатывающую трафик. Среди источников данных не только Netflow: NetFlow, IPFIX, sFLOW, SnabbSwitch, netmap, PF_RING, PCAP.
В презе умудрились сравнивать себя с Arbor, Radware 😀
FastNetMon - very fast DDoS sensor with sFlow/Netflow/IPFIX/SPAN support.

https://www.enog.org/presentations/enog-9/17-FastNetMon_ENOG_pdf.pdf
https://github.com/pavel-odintsov/fastnetmon
What we could do?
Save NOC’s sleep :)
Detect any DoS/DDoS attack for channel overflow or equipment
Partially or completely block traffic from/to own host (target of attack) Save your network (routers, switches, servers)
Save your SLA
How we could block attack?
BGP announce (community 666, blackhole, selective blackhole) BGP flow spec/RFC 5575 (selective traffic blocking)
ACL on switch
Custom script

Attack detection logic
By number of packets per second to/from /32
By number of mbps per second from/to /32
By number of flows per second from/to /32
By number of fragmented packets from/to /32
By number of tcp syn packets from/to /32
By number of udp packets from/to /32

Complete support for most popular attacks for channel overflow
SYN flood
UDP amplification (SSDP, Chargen, DNS, SNMP, NTP)
IP fragmentation

Performance
sFLOW - 40-100GE
NetFLOW - 40-100GE
Span/mirror - 10-40GE per node (tested up to 10 MPPS)

Supported vendors
Cisco
Juniper
Extreme
Huawei
Linux (ipt_NETFLOW)


Example STATS
IP: 194.**.**.**
Attack type: syn_flood
Initial attack power: 516 packets per second
Peak attack power: 516 packets per second
Attack direction: incoming
Attack protocol: tcp
Total incoming traffic: 5 mbps
Total outgoing traffic: 0 mbps
Total incoming pps: 516 packets per second
Total outgoing pps: 294 packets per second
Total incoming flows: 0 flows per second
Total outgoing flows: 0 flows per second
Average incoming traffic: 5 mbps
Average outgoing traffic: 0 mbps
Average incoming pps: 516 packets per second
Average outgoing pps: 294 packets per second
Average incoming flows: 0 flows per second
Average outgoing flows: 0 flows per second
Incoming ip fragmented traffic: 0 mbps
Outgoing ip fragmented traffic: 0 mbps
Incoming ip fragmented pps: 0 packets per second
Outgoing ip fragmented pps: 0 packets per second
Incoming tcp traffic: 156 mbps
Outgoing tcp traffic: 5 mbps
Incoming tcp pps: 15013 packets per second
Outgoing tcp pps: 8381 packets per second
Incoming syn tcp traffic: 155 mbps
Outgoing syn tcp traffic: 3 mbps
Incoming syn tcp pps: 14590 packets per second
Outgoing syn tcp pps: 7733 packets per second
Incoming udp traffic: 0 mbps
Outgoing udp traffic: 0 mbps
Incoming udp pps: 0 packets per second
Outgoing udp pps: 0 packets per second
Incoming icmp traffic: 0 mbps
Outgoing icmp traffic: 0 mbps
Incoming icmp pps: 0 packets per second
Outgoing icmp pps: 0 packets per second
Average packet size for incoming traffic: 1346.9 bytes
Average packet size for outgoing traffic: 89.9 bytes

Example STATS
2017-01-26 07:44:42,057 [iNFO] Logger initialized!
2017-01-26 07:44:42,058 [WARN] We add subnet 10.10.10.221/32 to host group my_hosts
2017-01-26 07:44:42,058 [WARN] We add subnet 10.10.10.222/32 to host group my_hosts
2017-01-26 07:44:42,058 [iNFO] We have created host group my_hosts with 2 subnets
2017-01-26 07:44:42,058 [iNFO] We will read ban settings for my_hosts
2017-01-26 07:44:42,058 [ERROR] We can't find notify script /usr/local/bin/notify_about_attack.sh
2017-01-26 07:44:42,061 [iNFO] Read configuration file
2017-01-26 07:44:42,062 [iNFO] We loaded 5 networks from networks file
2017-01-26 07:44:42,062 [iNFO] Totally we have 5 IPv4 subnets
2017-01-26 07:44:42,062 [iNFO] Totally we have 0 IPv6 subnets
2017-01-26 07:44:42,062 [iNFO] Total number of monitored hosts (total size of all networks): 17920
2017-01-26 07:44:42,062 [iNFO] We need 10 MB of memory for storing counters for your networks
2017-01-26 07:44:42,062 [iNFO] I will allocate 4096 records for subnet 2137694 cidr mask: 20
2017-01-26 07:44:42,066 [iNFO] I will allocate 4096 records for subnet 11562416 cidr mask: 20
2017-01-26 07:44:42,069 [iNFO] I will allocate 8192 records for subnet 14708144 cidr mask: 19
2017-01-26 07:44:42,077 [iNFO] I will allocate 1024 records for subnet 9183673 cidr mask: 22
2017-01-26 07:44:42,077 [iNFO] I will allocate 512 records for subnet 2408641 cidr mask: 23
2017-01-26 07:44:42,077 [iNFO] We start total zerofication of counters
2017-01-26 07:44:42,078 [iNFO] We finished zerofication
2017-01-26 07:44:42,078 [iNFO] We loaded 5 IPv4 subnets to our in-memory list of networks
2017-01-26 07:44:42,078 [iNFO] Run banlist cleanup thread, we will awake every 60 seconds
2017-01-26 07:44:42,078 [iNFO] netflow plugin started
2017-01-26 07:44:42,078 [iNFO] netflow: We will listen on 1 ports
2017-01-26 07:44:42,078 [iNFO] netflow plugin will listen on 10.0.0.20:2055 udp port
2017-01-26 07:44:42,242 [iNFO] Dump: 2017-01-26 07:44:42.240984852 146.66.156.196:27030 > 94.158.37.129:9692 protocol: udp frag: 0 packets: 0 size: 0 bytes ttl: 0 sample ratio: 1
2017-01-26 07:44:42,242 [iNFO] Dump: 2017-01-26 07:44:42.240984852 183.87.48.193:2599 > 193.192.37.3:51413 protocol: tcp flags: - frag: 0 packets: 0 size: 0 bytes ttl: 0 sample ratio: 1
2017-01-26 07:44:42,242 [iNFO] Dump: 2017-01-26 07:44:42.240984852 185.38.12.37:80 > 94.158.32.204:4475 protocol: tcp flags: - frag: 0 packets: 0 size: 0 bytes ttl: 0 sample ratio: 1
2017-01-26 07:44:42,242 [iNFO] Dump: 2017-01-26 07:44:42.240984852 216.147.182.212:31608 > 94.158.35.27:17922 protocol: udp frag: 0 packets: 0 size: 0 bytes ttl: 0 sample ratio: 1
2017-01-26 07:44:42,242 [iNFO] Dump: 2017-01-26 07:44:42.240984852 91.221.248.21:63916 > 94.158.43.45:49412 protocol: udp frag: 0 packets: 0 size: 0 bytes ttl: 0 sample ratio: 1

Cisco IOS/Linux anti-DOS фичи
Firewall services в Cisco IOS могут уменьшить вероятность syn flood и других атак:
    • Защита Control Plane
      • COPP/CPPR, подробнее в архитектуре Cisco IOS
      • rate-limiting/policing (ниже)

 

    • Защита Connection table
      • rate-limiting/policing (ниже)
      • есть даже на простейшем роутере ZTE F680:Anti-DoS атакаЗащита от несанкционаированного доступа
        “Порог” означает максимальное количество соединений TCP или UDP от одного хоста на стороне WAN к самой CPE каждые 3 секунды.
      • ограничение на время полуоткрытого соединения <после обнаружения SYN attack> (10 секунд был default) после SYN (SynDefender)
In a SYN attack, the attacker sends many SYN packets without finishing the three-wayhandshake. This causes the attacked host to be unable to accept new connections.You can protect against this attack by specifying a maximum amount of time forcompleting handshakes.

A SYN attack is when more than 5 incomplete TCP handshakes aredetected within 10 seconds.
      • Context-Based Access Control (CBAC) – правим таймауты на аномальные состояния, отслеживаем их количество. Аналогичное можно сделать и в conntrack (пример ниже). Подробнее про конкретные таймауты/таймеры читаем тут.
Router(config)# ip inspect tcp synwait-time seconds
Router(config)# ip inspect tcp finwait-time seconds
Router(config)# ip inspect tcp idle-time seconds
Router(config)# ip inspect udp idle-time seconds
Router(config)# ip inspect dns-timeout seconds
Router(config)# ip inspect max-incomplete high number
Router(config)# ip inspect max-incomplete low number
Router(config)# ip inspect one-minute high number
Router(config)# ip inspect one-minute low number
Router(config)# ip inspect tcp max-incomplete host number
CBAC to restrict the number of half-open sessions, which typically is used to prevent TCP SYN flood attacks. This feature is similar to TCP Intercept, but it can examine TCP as well as UDP and ICMP sessions. Of course, with UDP and ICMP, because there is no state machine that defines the setup, maintenance, and removal of a connection, CBAC uses timers instead of connection threshold values.
In this article I will give an example of optimizing the parameters of nf_conntrack for a high-loaded NAT server.
On high-load servers, it is desirable to slightly reduce the timeout values, especially during DDOS attacks, or disable nf_conntrack if it is not needed and the server is not used for NAT, for example, change some timeout to such values (I left the uncommented lines unchanged):
net.netfilter.nf_conntrack_generic_timeout=60
net.netfilter.nf_conntrack_icmp_timeout=10
#net.netfilter.nf_conntrack_tcp_timeout_close=10
net.netfilter.nf_conntrack_tcp_timeout_close_wait=20
net.netfilter.nf_conntrack_tcp_timeout_established=1800
net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30  # tcp_fin_timeout (default 60, recommended below 10)
#net.netfilter.nf_conntrack_tcp_timeout_last_ack=30
#net.netfilter.nf_conntrack_tcp_timeout_max_retrans=300
net.netfilter.nf_conntrack_tcp_timeout_syn_recv=30
net.netfilter.nf_conntrack_tcp_timeout_syn_sent=60
net.netfilter.nf_conntrack_tcp_timeout_time_wait=60
#net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=300
#net.netfilter.nf_conntrack_udp_timeout=30
net.netfilter.nf_conntrack_udp_timeout_stream=60
      • tcp_max_tw_buckets – ограничение по количеству сессий (sockets) в состоянии time-wait
Specifies the maximum number of sockets in the “time-wait” state allowed to exist at any time. If the maximum value is exceeded, sockets in the “time-wait” state are immediately destroyed and a warning is displayed. This setting exists to thwart certain types of “Denial of Service” attacks.

# sysctl -a | grep tcp_max_tw_buckets
net.ipv4.tcp_max_tw_buckets = 32768
      • tcp_no_metrics_save – по умолчанию 0 (сохраняем метрики при разрыве соединений, чтобы ускорить новые соединения), рекомендуется 1 (не сохраняем метрики).
      • tcp syncookies (cookies) – не создаем соединение на базе SYN пакета, но отсылает SYN+ACK. Если от клиента будет получен в последующем ACK на отосланный SYN+ACK (т.е. получен пакет завершения 3whs) – то создаем соединение. Особенность, что в SYN+ACK в sequence number вкладывается не рандомное значение, а значение на основе адресов в socket + со временем отправки SYN+ACK + значением MSS клиента. В итоге инициировать соединение кто-то кроме отправившего SYN не сможет, так же клиент не сможет инициировать соединение, если превышен таймаут (дефолт 64 секунды). У syncookies есть недостатки, подробнее в WIKI, в вкратце – игнорирование всех TCP опций т.к. они передаются в SYN.
/proc/sys/net/ipv4/tcp_syncookies
net.ipv4.tcp_syncookies
      • tcp intercept (в активном режиме или watch режиме) – являемся proxy для создаваемых соединений и отслеживаем их. Принцип защиты от SYN flood в таком случае простой – мы пересогласовываем TCP handshake со внутренним сегментом только после получения ACK от клиента (SYN – SYN-ACK – ACK). Недостаток этого подхода – меняются sequence номера и поэтому ассиметричный роутинг перестает работать – т.е. трафик должен форвардится или через одну железку или через кластер, но никак не через независимые железки.
The TCP  intercept software intercepts TCP synchronization (SYN) packets from  clients to servers that match an extended access list. The software  establishes a connection with the client on behalf of the destination  server, and if successful, establishes the connection with the server on  behalf of the client and knits the two half-connections together  transparently. Thus, connection attempts from unreachable hosts will  never reach the server. The software continues to intercept and forward  packets throughout the duration of the connection. The number of SYNs  per second and the number of concurrent connections proxied depends on  the platform, memory, processor, and other factors
Router(config)# access-list 100 tcp permit tcp any host 192.1.1.1 eq 80
Router(config)# access-list 100 tcp permit tcp any host 192.1.1.2 eq 25
Router(config)# ip tcp intercept list 100
Router(config)# ip tcp intercept mode watch
Router(config)# ip tcp intercept watch-timeout 20
Router(config)# ip tcp intercept connection-timeout 120
Router(config)# ip tcp intercept max-incomplete high 600
Router(config)# ip tcp intercept min-incomplete low 500
Router(config)# ip tcp intercept one-minute high 800
Router(config)# ip tcp intercept one-minute low 600
    • ограничение по количеству non-tcp connections (Non-TCP Flooding, CheckPoint)
Advanced firewalls maintain state information about connections in a State table. In Non-TCP Flooding attacks, the attacker sends high volumes of non-TCP traffic. Since suchtraffic is connectionless, the related state information cannot be cleared or reset, and thefirewall State table is quickly filled up. This prevents the firewall from accepting newconnections and results in a Denial of Service (DoS).You can protect against Non-TCP Flooding attacks by limiting the percentage of state tablecapacity used for non-TCP connections.
  • Пакетные фильтры
    • Rate-limiting/policing (ниже)
    • (U)RPF фильтры
cat /proc/sys/net/ipv4/conf/all/rp_filter
0

sysctl -w net.ipv4.conf.all.rp_filter=1
    • LAND атака в которой SRC IP = DST IP (LAND, CheckPoint)
In a LAND attack, the attacker sends a SYN packet, in which the source address and portare the same as the destination (the victim computer). The victim computer then tries toreply to itself and either reboots or crashes.
    • попакетная проверка (Packet Sanity, CheckSum Verification, Sequence verifier, Strict TCP, Small PMTU; CheckPoint)
      • корректность IP/UDP/TCP длин payload,
      • опций протоколов (IP options, TCP flags, Sequence, etc)
      • out-of-state packets (Strict TCP; assymetric routing, firewall restart)
      • small packets (Small PMTU, <300 byte)
      • checksum
Packet Sanity performs several Layer 3 and Layer 4 sanity checks. These include verifying packet size, UDP and TCP header lengths, dropping IP options, and verifying the TCPflags.

SmartDefense identifies any IP, TCP, or UDP packets with incorrect checksums. You can configure how these packets should be handled.

Out-of-state TCP packets are SYN-ACK or data packets that arrive out of order, before theTCP SYN packet.
Note: In normal conditions, out-of-state TCP packets can occur after the UTM-1restarts, since connections which were established prior to the reboot are unknown.This is normal and does not indicate an attack.

Small PMTU (Packet MTU) is a bandwidth attack in which the client fools the server intosending large amounts of data using small packets. Each packet has a large overhead thatcreates a "bottleneck" on the server.You can protect against this attack by specifying a minimum packet size for data sent overthe Internet.
    •  фильтр по размеру пакетов PING (Max Ping Size, CheckPoint)
An attacker can echo the client with a large amount of data, causing a buffer overflow.You can protect against such attacks by limiting the allowed size for ICMP echo requests
    • фильтр фрагментированных пакетов с настройками размеров пакетов, количество времени перед дропов и максимального размера очереди (IP fragments, Ping of Death, Teardrop; CheckPoint)

 

 

Rate-liminiting/policing

Rate-limiting – делаем порог по количеству трафика определенных подсетей/протоколов и проч.

Router(config)# interface vlan10
Router(config-if)# rate-limit input access-group rate-limit 199
  256000 64000 64000
  conform-action transmit exceed-action drop

Network quota – делаем порог в 100 CPS rate (default value) для SRC IP (Network quota, CheckPoint).

An attacker may try to overload a server in your network by establishing a very large number of connections per second. To protect against Denial Of Service (DoS) attacks, Network Quota enforces a limit upon the number of connections per second that are allowed from the same source IP address.

 

 

Сетевое нагрузочное тестирование DoS
Пример специализированных решений на основе отчета NSS Labs (NSS Labs DDoS Prevention) ((дублируется ниже)).
    • Radware DefensePro 1006 v6.12.01
    • Arbor Networks APS 2800 v5.8.1 – Street Price $175,000
    • Corero SmartWall v8.10.248 – Street Price $160,000
    • F5 BIG-IP 10250v v12.0.0
    • Fortinet FortiDDoS 2000B v4.1.10
    • Huawei AntiDDoS8030 V500R001C00SPC600

Забавная ситуация, что Arbor не предоставил данные о GPL стоимости.

Arbor Networks declined to provide list pricing for the device tested.
Методика направлена на специализированные решения (Radware, Arbor, Corero, etc), из интересного/потенциально полезного, ожидания от DDoS решения:
    • Автоматически обнаруживать и блокировать все категории DDoS атак при том, что используется один subnet для легитимного и нелегитимного трафика  – т.е. базовый фильтр по IP не поможет
    • Быть устойчивыми к evasion
    • Предоставлять “reasonable” доступ к защищаемым ресурсам во время атаки: критерием успешности (того, что тест пройден) является
      • отсутствие блокировки легитимного трафика с нагрузкой в 40% от заявленной производительности
      • полная блокировка атак
      • т.е. атак до 60%, 40% под легитимный трафик

Так же про DoS тестирования можно найти информацию в Ixia Black Book DoS/DDoS testing. Измеряется тоже самое – обнаружение и блокирование, влияние на легитимный трафик.

Attack Mitigation Score
Baseline Impact Score
Testing mitigation strategy and impact in QoE of users
    • Test Case: Application Forwarding Performance Under DoS Attacks
    • Test Case: Mitigation of TCP SYN DDoS attack/ICMP Fragments/SIP invite flood/MIX/etc.etc.etc

Тестирование DDoS с использованием Ixia BreakingPoint (ее использовали и NSS Labs).

Наиболее интересное из методики и отчетов NSS Labs.

- Both the legitimate network traffic and the DDoS attack are executed using a shared pool of IP addresses, which represents a worst-case scenario for the enterprise. Since legitimate traffic uses the same IP addresses as the attacker, no product can simply block or blacklist a range of IP addresses. This test can reveal the DUT’s true ability to effectively mitigate attacks. ((спорный пункт про один конкретный IP - как часто DoS и легитимные запросы могут передаваться с одного хоста - ответ нечасто, даже аналитику проводить не надо для этого.))

- NSS analysis is conducted first by testing every category of DDoS attack individually to determine that the DUT can successfully detect and mitigate each attack. Once a baseline of security effectiveness is determined, NSS build upon this baseline by adding multiple DDoS attacks from different categories in an attempt to overwhelm the DUT
and allow “attack leakage” to occur. At each point during testing, NSS validates that legitimate traffic is still allowed and is not inadvertently blocked by the DUT.

- In all security effectiveness tests, a mix of http traffic is run to establish a baseline of legitimate traffic. This traffic is run at 40% of the device’s rated bandwidth, and is used to ensure that legitimate traffic is not affected during mitigation. The baseline impact percentage is listed as the amount of baseline traffic that is affected by the device
while the device is mitigating an attack. As an example, if the baseline impact score is 5%, then 5% of the known baseline traffic was inadvertently blocked during attack mitigation.

- After the baseline traffic has been stabilized at 40% of the rated bandwidth, an attack is started. These attacks are intended to saturate the network link in terms of either bandwidth or packet rate. To calculate the percentage of each attack that is being mitigated, the known amount of attack traffic being injected into the device is compared with the amount of attack traffic that is allowed to pass through the device. This percentage is calculated separately from the baseline impact score, which allows for a scenario where a device may mitigate an attack very
well, but at the same time cause an unintended impact to legitimate services.

- During NSS testing, vendors tune their devices to create a performance baseline based on normalized network traffic. Devices are further tuned for accuracy as needed. The performance baseline traffic is 40% of rated
throughput and consists of a mix of web application traffic to provide readers with relevant security effectiveness and performance dimensions based on their expected usage.

 

Специализированные решения длля защиты от (D)DoS.
Пример специализированных решений на основе отчета NSS Labs (NSS Labs DDoS Prevention) ((дублируется выше)).
    • Radware DefensePro 1006 v6.12.01
    • Arbor Networks APS 2800 v5.8.1 – Street Price $175,000
    • Corero SmartWall v8.10.248 – Street Price $160,000
    • F5 BIG-IP 10250v v12.0.0
    • Fortinet FortiDDoS 2000B v4.1.10
    • Huawei AntiDDoS8030 V500R001C00SPC600
Партнерство Cisco с Arbor и Radware

Насколько DDoS – это специфика, что даже Cisco, будучи ключевым вендором в телекоммуникационной индустрии использует партнерство с вендорами (arbor, radware), которые разбираются в DDoS (и имеют патенты, что, возможно, ключевое), для реализации функционала защиты от DDoS в своих ключевых Service Provider и Security продуктах.

  • В ASR9000 добавлен функционал защиты от DDoS на базе Arbor
  • В старшие FirePower добавлен функционал DDoS mitigation от Radware Virtual DefensePro (vDP)

 

Решение на базе Arbor

https://www.cisco.com/c/en/us/products/collateral/routers/asr-9000-series-aggregation-services-routers/solution-overview-c22-736143.html
https://www.cisco.com/c/en/us/products/collateral/routers/asr-9000-series-aggregation-services-routers/datasheet-c78-736894.html
  • требует установленную карту Virtualized Services Module, VSM
  • отправляет метаданные в коллектор Arbor SP (деплоится в VM in-house)
    NetFlow to Arbor Networks Peakflow SP
  • получает сигнатуры с актуальными ботнетами/правилами из облака Arbor
ATLAS
Both Peakflow and vDDoS protection receive regular updates from the Arbor Networks ATLAS Intelligence Feed (AIF), informing the device about the latest and most relevant DDoS threats from botnets and other sources.

 

Решение Radware Virtual DefensePro

  • DDoS prevention solutions … can be integrated into NGFW.
Behavioral DDoS with Radware vDP
• Behavioral detection for maximum efficacy and low false positives
• Effectively protects web, e-mail, VoIP, and other services
• Adaptive behavioral DoS against IPv4/IPv6 TCP/UDP/ICMP/IGMP floods
• SYN flood protection with active Layer 4 challenges
• DNS flood protection with request/response record tracking
• Application signature protection for HTTP, SMTP, FTP, POP3, SIP, SMB, SQL
• Anomaly protection against basic malformed packets

  • представляет собой судя по всему VM, устанавливаемую на одну аппаратную платформу с FirePower
  • отправляет профиль трафика (netflow) в облачный сервис Radware для анализа
  • делает выводы не только на основе spike нагрузок (в radware называют это legacy rate based solutions), но и анализируя поля в пакетах (напр. распределение по SYN, RST флагам в TCP)

https://www.youtube.com/watch?v=aOLM9md2eMQ
https://www.radware.com/partners/cisco/firepower-ngfw/

Firepower DDoS Mitigation
Also available on the Cisco Firepower 4100 Series and 9300 appliances is tightly integrated, comprehensive, behavioral
DDoS mitigation for both network and application infrastructure protection. This DDoS mitigation is Radware’s Virtual
DefensePro (vDP). It is available from and supported directly by Cisco.

Пример защиты:

  • отправляем TCP syn flood с использованием hping3 – radware успешно блокирует атакующие пакеты к dst на основе acl: packet size, ttl, destination IP, destination port
hping3 172.17.18.200 -S -p 80 --rand-source --flood


   
  • отправляем DNS flood с использованием dns-flood – radware успешно блокирует атакующие пакеты к dst на основе acl: in probe dns query to attack destination
./dnsflood www.radware.com 172.17.18.200 -t A -r -p 53

     

 

Leave a Reply