Applies To:
Show Versions
F5 DDoS Hybrid Defender
- 14.0.0
Protecting Against DDoS Attacks
Overview: Protecting against DDoS attacks
You can easily set up DDoS Hybrid Defender™ to protect your networks and applications from DoS attacks. Once it is all set up, you can monitor the system to see whether there have been any attacks, and whether they are being handled properly.
Protecting the network from DDoS attacks
Automatically setting system-wide DDoS vector thresholds
Manually setting system-wide DDoS vector thresholds
Configuring dynamic signatures at the device level
To view and edit dynamic signatures, go to the Signatures screen, and click the signature name. You can edit the state and threshold mode, and view predicates in the Properties pane on the right. Click the name in the list again to review details about recent attacks for this signature.
Creating a whitelist address list
Different types of whitelists are available depending on the hardware compatibility level of your system: whitelists (Level 1 or 2), rich whitelists (all levels), or extended whitelists (Level 2 only). You can create rich and extended whitelists when configuring Device Protection or creating a Protection Profile.
This task describes how to create a Whitelist Address List, which is configurable only if your system compatibility level is set to Level 1 or 2. You can check the compatibility level from the Advanced Menu at
.- On the Main tab, click .
- Click Create.
- In the Name field, type a name.
-
In the Addresses field, type each
address then click Add to add it to the whitelist.
Addresses can be in the following forms:
- An IPv4 or IPv6 address, and specify a network with CIDR slash notation
- An IPv4 or IPv6 address range
- A fully qualified domain name
- A geographic location
- Another address list or whitelist
- Click Finished to add the whitelist to the configuration.
Adjusting the device compatibility level
Creating a protection profile
For example, if securing a DNS server and several application servers, you could create two protection profiles: one that enforces DNS vectors and the other for enforcing HTTP vectors on two application servers. Then, you can create three protected objects and associate the DNS protection profile with the protected object representing the DNS server, and associate the HTTP protection profile with the protected objects created for the application servers.
Automatically setting DDoS vector thresholds for protected objects
Manually setting DDoS vector thresholds for protected objects
Configuring dynamic signatures in the protection profile
To view and edit dynamic signatures, go to the Signatures screen, and click the signature name. You can edit the state and threshold mode, and view predicates in the Properties pane on the right. Click the name in the list again to review details about recent attacks for this signature.
Protecting network objects from DDoS attacks
You need to create protected objects that represent the different devices, and attach a protection profile that defines the DoS protections to apply to that device.
Creating an eviction policy
Creating a policy to check addresses against IP intelligence
How to protect different network objects from DDoS attacks
Administrators often want to protect against a specific type of DDoS attack or to protect a particular type of protected object from attacks. This table gives you an idea of the types of protections you can set up.
To protect this: | Use these settings: |
---|---|
DNS Servers |
|
SIP Servers |
|
Web applications |
|
Backend servers from Syn Floods |
|
Backend servers from Sweep Attacks |
|
DDoS protected object attack types
For each protected object, you can specify specific threshold, rate increase, rate limit, and other parameters for supported DoS attack types, to more accurately detect, track, and rate limit attacks.
IPv4 Attack Vectors
Vector | Information |
---|---|
Host Unreachable | The host cannot be reached. |
ICMP Fragment | ICMP fragment flood. |
ICMPv4 Flood | Flood with ICMPv4 packets. |
IP Fragment Flood | Fragmented packet flood with IPv4. |
IP Option Frames | IPv4 address packets that are part of an IP option frame flood. On the command line option.db variable tm.acceptipsourceroute must be enabled to receive IP options. |
TIDCMP | ICMP type 4 error; can't accept queries. |
TTL <= tunable | An IP packet with a destination that is not multicast has a Time to live (TTL) value less than or equal to the configured value. To tune this value, in tmsh: modify sys db dos.iplowttl value, where value is 1-4. 1 is default. |
IPv6 Attack Vectors
Vector | Information |
---|---|
Host Unreachable | The host cannot be reached. |
ICMP Fragment | ICMP fragment flood. |
ICMPv6 Flood | Flood with ICMPv6 packets. |
IPV6 Extended Header Frames | IPv6 address contains extended header frames. |
IPv6 extension header too large | An IPv6 extension header exceeds the limit in bytes set at Too Large IPv6 Extension Header field . | , in the
IPV6 Fragment Flood | The IPv6 extended header hop count is less than or equal to the hop count limit set at DoS Protection Quick Configuration Global Settings, in the IPv6 Low Hop Count field. |
IPv6 hop count <= <tunable> | The IPv6 extended header hop count is less than or equal to the hop count limit set at DoS Protection Quick Configuration Global Settings, in the IPv6 Low Hop Count field. |
Too Many Extended Headers | For an IPv6 address, the extension headers exceed the limit set at Too Many IPv6 Extension Header field. | , in the
TCP Attack Vectors
Vector | Information |
---|---|
Non TCP Connection | Sets a connection rate limit for non-TCP flows that takes into account all other connections per second. |
Option Present With Illegal Length | Packets contain an option with an illegal length. |
TCP Bad URG | TCP header has a bad URG flag, this is likely malicious (flag is set and urgent pointer is 0). |
TCP Option Overruns TCP Header | The TCP option bits overrun the TCP header. |
TCP PSH Flood | Attackers send spoofed PUSH packets at very high rates; packets do not belong to any current session. |
TCP RST Flood |
TCP reset attack, also known as "forged TCP resets", "spoofed TCP reset packets" or "TCP reset attacks" is a method of tampering with Internet communications. |
TCP SYN ACK Flood | An attack method that involves sending a target server spoofed SYN-ACK packets at a high rate. |
TCP SYN Flood |
Attackers send a succession of SYN requests to a target's system in an attempt to consume enough server resources to make the system unresponsive to legitimate traffic. |
TCP SYN Oversize | Detects TCP data SYN packets larger than the maximum specified in the limit set at Too Large TCP SYN Packet field. The default size in bytes is 64 and the maximum allowable value is 9216. | , in the
TCP Window Size | The TCP window size in packets is above the maximum size. To tune this setting, change the setting at Too Low TCP Window Size field. | , in the
Unknown TCP Option Type | TCP option type is not standard. |
UDP Attack Vector
Vector | Information |
---|---|
UDP Flood | The attacker sends UDP packets, typically large ones, to single destination or to random ports. |
Sweep Attack Vector
Vector | Information |
---|---|
Sweep | The attacker uses a network scanning technique that typically sweeps your network by sending packets, and using the packet responses to determine live hosts. |
DNS Attack Vectors
Vector | How to identify it |
---|---|
a | UDP packet, DNS Qtype is A_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
aaaa | UDP packet, DNS Qtype is AAAA, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
any | UDP packet, DNS Qtype is ANY_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
axfr | UDP packet, DNS Qtype is AXFR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
cname | UDP DNS query, DNS Qtype is CNAME, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
dns-malformed | Malformed DNS packets. |
ixfr | UDP DNS query, DNS Qtype is IXFR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
mx | UDP DNS query, DNS Qtype is MX, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
ns | UDP DNS query, DNS Qtype is NS, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
other | UDP DNS query, DNS Qtype is OTHER, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
ptr | UDP DNS query, DNS Qtype is PTR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
qdcount | DNS QDCount limit. UDP packet, DNS qdcount neq 1, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
soa | UDP packet, DNS Qtype is SOA_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
srv | UDP packet, DNS Qtype is SRV, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
txt | UDP packet, DNS Qtype is TXT, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). |
SIP Attack Vectors
Vector | Information |
---|---|
ack | SIP ACK packets. Used with invite request when establishing a call. |
bye | SIP BYE packets. The attacker tries to terminate a communication session prematurely. |
cancel | SIP CANCEL packets. Attackers prevent callers from establishing a session. |
invite | SIP INVITE packets. Attackers send multiple invite packets to initiate call sessions. |
message | SIP MESSAGE packets. Attackers send instant messages. |
notify | SIP NOTIFY packets. Attackers send notifications, such as of voice mails. |
options | SIP OPTIONS packets. Attackers send probes to determine capabilities of servers. |
other | Other SIP method packets. |
prack | SIP PRACK packets. Attackers send prack packets for provisional acknowledgements. |
publish | SIP PUBLISH packets. Attackers publish messages to the server. |
register | SIP REGISTER packets. Attackers register or unregister a phone address listed in the To header field with a SIP server. |
subscribe | SIP SUBSCRIBE packets. Attackers send subscriber notification messages. |
URI Limit | The SIP URI exceeds the limit set at Too Long SIP URI field. This setting should be less than 1024, the maximum length for a SIP URI in bytes. | , in the
Layer 7 HTTP and HTTPS Attack Vectors
Protection | Description |
---|---|
Behavioral | Attack indicates bad actors by their anomalous behavior based on deviation from baseline behavior. |
Detection by Device | Attack indicates suspicious client devices tracked by fingerprinting and a high number of transactions per second. |
Detection by Geolocation | Attack indicates suspicious geographical locations identified by their IP range and an unusual traffic share. |
Detection by Site | Attack indicates that the global traffic on the site (whole application) signifies an attack based on a high number of transactions per second. |
Detection by Source-IP | Attack indicates suspicious clients identified by their IP address and a high number of transactions per second. |
Detection by URL | Attack targets specific URLs in the web application by sending a high number of transactions per second to them. |
Heavy URL | Attack focuses on URLs that consume considerable server resources thus can become tipping points in DoS attacks. The system automatically detects heavy URLs. |
HTTP and HTTPS Proactive Bot Defense Categories
Category | Description/Category |
---|---|
Proactive Bot Defense | Attacks caused by web robots. The system uses JavaScript evaluations and bot signatures to ensure that browsers are legitimate not automated. |
Crawler | Benign |
HTTP Library | Benign |
Search Bot | Benign |
Search Engine | Benign |
Service Agent | Benign |
Site Monitor | Benign |
Social Media Agent | Benign |
Web Downloader | Benign |
DoS Tool | Malicious |
E-Mail Collector | Malicious |
Exploit Tool | Malicious |
Network Scanner | Malicious |
Spam Bot | Malicious |
Vulnerability Scanner | Malicious |
Web Spider | Malicious |
DDoS device protection attack types
In Device Protection, you can specify thresholds, rate increase, rate limit, and other parameters for device-level DDoS attack types, to more accurately detect, track, and rate limit attacks. Broken packets, such as those with bad headers, should be severely rate limited.
Network attack types
Vector | Information | Hardware accelerated |
---|---|---|
ARP Flood | ARP packet flood | Yes |
Bad ICMP Checksum | An ICMP frame checksum is bad. Reuse the TCP or UDP checksum bits in the packet. | Yes |
Bad ICMP Frame | The ICMP frame is either the wrong size or not one of the valid IPv4 or IPv6
types. Valid IPv4 types:
|
Yes |
Bad IGMP Frame | IPv4 IGMP packets should have a header >= 8 bytes. Bits 7:0 should be either 0x11, 0x12, 0x16, 0x22 or 0x17, or else the header is bad. Bits 15:8 should be non-zero only if bits 7:0 are 0x11, or else the header is bad. | Yes |
Bad IP TTL Value | Time-to-live equals zero for an IPv4 address. | Yes |
Bad IP Version | The IPv4 address version in the IP header is not 4. | Yes |
Bad IPv6 Addr | IPv6 source IP = 0xff00:: | Yes |
Bad IPV6 Hop Count | Both the terminated (cnt=0) and forwarding packet (cnt=1) counts are bad. | Yes |
Bad IPV6 Version | The IPv6 address version in the IP header is not 6. | Yes |
Bad SCTP Checksum | Bad SCTP packet checksum. | No |
Bad Source | The IPv4 source IP = 255.255.255.255 or 0xe0000000U. | Yes |
Bad TCP Checksum | The TCP checksum does not match. | Yes |
Bad TCP Flags (All Cleared) | Bad TCP flags (all cleared and SEQ#=0). | Yes |
Bad TCP Flags (All Flags Set) | Bad TCP flags (all flags set). | Yes |
Bad UDP Checksum | The UDP checksum is not correct. | Yes |
Bad UDP Header (UDP Length > IP Length or L2 Length) | UDP length is greater than IP length or Layer 2 length. | Yes |
Ethernet MAC Source Address == Destination Address | Ethernet MAC source address equals the destination address. | Yes |
FIN Only Set | Bad TCP flags (only FIN is set). | Yes |
Header Length > L2 Length | No room in Layer 2 packet for IP header (including options) for IPv4 address | Yes |
Header Length Too Short | IPv4 header length is less than 20 bytes. | Yes |
Host Unreachable | Host unreachable error | Yes |
ICMP Fragment | ICMP fragment flood | Yes |
ICMP Frame Too Large | The ICMP frame exceeds the declared IP data length or the maximum datagram length set at Too Large IPv6 Extension Header field. To tune this value, in tmsh: modify sys db dos.maxicmpframesize value , where value is <=65515. | , in theYes |
ICMPv4 Flood | Flood with ICMPv4 packets | Yes |
ICMPv6 Flood | Flood with ICMPv6 packets | Yes |
IGMP Flood | Flood with IGMP packets (IPv4 packets with IP protocol number 2) | Yes |
IGMP Fragment Flood | Fragmented packet flood with IGMP protocol | Yes |
IP Error Checksum | The header checksum is not correct. | Yes |
IP Fragment Error | Other IPv4 fragment error | Yes |
IP Fragment Flood | Fragmented packet flood with IPv4 | Yes |
IP Fragment Overlap | IPv4 overlapping fragment error | No |
IP Fragment Too Small | IPv4 short fragment error | Yes |
IP Length > L2 Length | The total length in the IPv4 address header or payload length in the IPv6 address header is greater than the Layer 3 length in a Layer 2 packet. | Yes |
IP Option Frames | IPv4 address packets that are part of an IP option frame flood. On the command line option.db variable tm.acceptipsourceroute must be enabled to receive IP options. | Yes |
IP Option Illegal Length | Option present with illegal length. | No |
IP uncommon proto | Sets thresholds for and tracks packets containing IP protocols considered to be uncommon. By default, all IP protocols other than TCP, UDP, ICMP, IPV6-ICMP, and SCTP are on the IP uncommon protocol list. | Yes |
IP Unknown protocol | Unknown IP protocol | No |
IPv4 mapped IPv6 | The IPv6 stack is receiving IPv4 address packets. | Yes |
IPV6 Atomic Fragment | IPv6 Frag header present with M=0 and FragOffset =0 | Yes |
IPv6 duplicate extension headers | An extension header should occur only once in an IPv6 packet, except for the Destination Options extension header. | Yes |
IPv6 Extended Header Frames | IPv6 address contains extended header frames. | Yes |
IPv6 extended headers wrong order | Extension headers in the IPv6 header are in the wrong order. | Yes |
IPv6 extension header too large | An IPv6 extension header exceeds the limit in bytes set at Too Large IPv6 Extension Header field. | , in theYes |
IPv6 Fragment Error | Other IPv6 fragment error | Yes |
IPv6 Fragment Flood | Fragmented packet flood with IPv6 | Yes |
IPv6 Fragment Overlap | IPv6 overlapping fragment error | No |
IPv6 Fragment Too Small | IPv6 short fragment error | Yes |
IPv6 hop count <= <tunable> | The IPv6 extended header hop count is less than or equal to the hop count limit set at IPv6 Low Hop Count field. | , in theYes |
IPv6 Length > L2 Length | IPv6 address length is greater than the Layer 2 length. | Yes |
L2 Length >> IP Length | Layer 2 packet length is much greater than the payload length in an IPv4 address header, and the Layer 2 length is greater than the minimum packet size. | Yes |
LAND Attack | Source IP equals destination IP address | Yes |
No L4 | No Layer 4 payload for IPv4 address. | Yes |
No L4 (Extended Headers Go To Or Past End of Frame) | Extended headers go to the end or past the end of the L4 frame. | Yes |
No Listener Match | This can occur if the listener is down as it attempts to make a connection, or if it was not started or was configured improperly. It may also be caused by a network connectivity problem. | |
Non TCP Connection | Sets a connection rate limit for non-TCP flows that takes into account all other connections per second. | |
Option Present With Illegal Length | Packets contain an option with an illegal length. | Yes |
Payload Length < L2 Length | Specified IPv6 payload length is less than the L2 packet length. | Yes |
Routing Header Type 0 | Identifies flood packets containing type 0 routing headers, which can be used to amplify traffic to initiate a DoS attack. | Yes |
Single Endpoint Flood | Flood to a single endpoint and can come from many sources. You can configure packet types to check for, and packets per second for both detection and rate limiting. | No |
Single Endpoint Sweep | Sweep on a single endpoint. You can configure packet types to check for, and packets per second for both detection and rate limiting. | No |
SYN && FIN Set | Bad TCP flags (SYN and FIN set). | Yes |
TCP BADACK Flood | TCP ACK packet flood | No |
TCP Flags - Bad URG | Packet contains a bad URG flag; this is likely malicious. | Yes |
TCP Half Open | TCP connection whose state is out of synchronization between the two communicating hosts | Yes |
TCP Header Length > L2 Length | The TCP header length exceeds the Layer 2 length. | Yes |
TCP Header Length Too Short (Length < 5) | The Data Offset value in the TCP header is less than five 32-bit words. | Yes |
TCP Option Overruns TCP Header | The TCP option bits overrun the TCP header. | Yes |
TCP PUSH Flood | TCP PUSH flood | Yes |
TCP RST Flood | TCP RST flood | Yes |
TCP SYN ACK Flood | TCP SYN/ACK flood | Yes |
TCP SYN Flood | TCP SYN flood | Yes |
TCP SYN Oversize | Detects TCP data SYN packets larger than the maximum specified in the limit set at Too Large TCP SYN Packet field. The default size in bytes is 64 and the maximum allowable value is 9216. | , in theYes |
TCP Window Size | The TCP window size in packets is above the maximum size. To tune this setting, change the setting at Too Low TCP Window Size field. | , in theYes |
TIDCMP | ICMP source quench attack | Yes |
Too Many Extension Headers | For an IPv6 address, the extension headers exceed the limit set at Too Many IPv6 Extension Header field. | , in theYes |
TTL <= <tunable> | An IP packet with a destination that is not multicast has a TTL greater than 0 and less than the value set at IPv4 Low TTL field. The range for this setting is 1-4. | , in theYes |
UDP Flood | UDP flood attack | Yes |
Unknown Option Type | Unknown IP option type. | No |
Unknown TCP Option Type | Unknown TCP option type. | Yes |
DNS attack vectors
Vector | Information | Hardware accelerated |
---|---|---|
DNS A Query | UDP packet, DNS Qtype is A_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS AAAA Query | UDP packet, DNS Qtype is AAAA, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS AXFR Query | UDP packet, DNS Qtype is AXFR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS Any Query | UDP packet, DNS Qtype is ANY_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS CNAME Query | UDP DNS query, DNS Qtype is CNAME, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS IXFR Query | UDP DNS query, DNS Qtype is IXFR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS MX Query | UDP DNS query, DNS Qtype is MX, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS Malformed | Malformed DNS packet | Yes |
DNS NS Query | UDP DNS query, DNS Qtype is NS, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS NXDOMAIN Query | DNS query. Queried domain name does not exist. | Yes |
DNS OTHER Query | UDP DNS query, DNS Qtype is OTHER, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS Oversize | Detects oversized DNS headers. To tune this value, set the Too Large DNS Packet setting at to the maximum value for a DNS header, from 256-8192 bytes. | Yes |
DNS PTR Query | UDP DNS query, DNS Qtype is PTR, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS Question Items != 1 | UDP packet, DNS qdcount neq 1, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS Response Flood | UDP DNS Port=53, packet and DNS header flags bit 15 is 1 (response), VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS SOA Query | UDP packet, DNS Qtype is SOA_QRY, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS SRV Query | UDP packet, DNS Qtype is SRV, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
DNS TXT Query | UDP packet, DNS Qtype is TXT, VLAN is <tunable>. To tune this value, set the DNS VLAN setting at to the DNS VLAN (0-4094). | Yes |
SIP attack vectors
Vector | Information | Hardware accelerated |
---|---|---|
SIP ACK Method | SIP ACK packets | Yes |
SIP BYE Method | SIP BYE packets | Yes |
SIP CANCEL Method | SIP CANCEL packets | Yes |
SIP INVITE Method | SIP INVITE packets | Yes |
SIP Malformed | Malformed SIP packets | Yes |
SIP MESSAGE Method | SIP MESSAGE packets | Yes |
SIP NOTIFY Method | SIP NOTIFY packets | Yes |
SIP OPTIONS Method | SIP NOTIFY packets | Yes |
SIP OTHER Method | Other SIP method packets | Yes |
SIP PRACK Method | SIP PRACK packets | Yes |
SIP PUBLISH Method | SIP PUBLISH packets | Yes |
SIP REGISTER Method | SIP REGISTER packets | Yes |
SIP SUBSCRIBE Method | SIP SUBSCRIBE packets | Yes |
SIP URI Limit | The SIP URI exceeds the limit set at Too Long SIP URI field. This setting should be less than 1024, the maximum length for a SIP URI in bytes. | , in theYes |
Behavioral
Behavioral DDoS protection is enabled, by default, and all thresholds and threshold actions are applied. You can initiate leaning or relearning of dynamic signatures, adjust mitigation sensitivity, and enable redirection and scrubbing of IP addresses identified by the dynamic signatures. You also have the option of selecting Learn Only to track dynamic vector statistics, without enforcing any thresholds or limits.
In the case of an attack, the system dynamically creates signatures that characterize the attack. During the attack, you see them listed as behavioral vectors (starting with Sig). They are removed when the attack is over.