Table Of Contents
Using Protection Tools
Preventing IP Spoofing
Configuring the Fragment Size
Show Fragment
Configuring TCP Options
TCP Reset Settings
Configuring IP Audit for Basic IPS Support
IP Audit Policy
Add/Edit IP Audit Policy Configuration
IP Audit Signatures
IP Audit Signature List
Using Protection Tools
This chapter describes some of the many tools available to protect your network and includes the following sections:
•
Preventing IP Spoofing
•
Configuring the Fragment Size
•
Configuring TCP Options
•
Configuring IP Audit for Basic IPS Support
Preventing IP Spoofing
This section lets you enable Unicast Reverse Path Forwarding on an interface. Unicast RPF guards against IP spoofing (a packet uses an incorrect source IP address to obscure its true source) by ensuring that all packets have a source IP address that matches the correct source interface according to the routing table.
Normally, the ASA only looks at the destination address when determining where to forward the packet. Unicast RPF instructs the ASA to also look at the source address; this is why it is called Reverse Path Forwarding. For any traffic that you want to allow through the ASA, the ASA routing table must include a route back to the source address. See RFC 2267 for more information.
For outside traffic, for example, the ASA can use the default route to satisfy the Unicast RPF protection. If traffic enters from an outside interface, and the source address is not known to the routing table, the ASA uses the default route to correctly identify the outside interface as the source interface.
If traffic enters the outside interface from an address that is known to the routing table, but is associated with the inside interface, then the ASA drops the packet. Similarly, if traffic enters the inside interface from an unknown source address, the ASA drops the packet because the matching route (the default route) indicates the outside interface.
Unicast RPF is implemented as follows:
•
ICMP packets have no session, so each packet is checked.
•
UDP and TCP have sessions, so the initial packet requires a reverse route lookup. Subsequent packets arriving during the session are checked using an existing state maintained as part of the session. Non-initial packets are checked to ensure they arrived on the same interface used by the initial packet.
Configuration > Firewall > Advanced > Anti-Spoofing Fields
•
Interface—Lists the interface names.
•
Anti-Spoofing Enabled—Shows whether an interface has Unicast RPF enabled, Yes or No.
•
Enable—Enables Unicast RPF for the selected interface.
•
Disable—Disables Unicast RPF for the selected interface.
Configuring the Fragment Size
By default, the ASA allows up to 24 fragments per IP packet, and up to 200 fragments awaiting reassembly. You might need to let fragments on your network if you have an application that routinely fragments packets, such as NFS over UDP. However, if you do not have an application that fragments traffic, we recommend that you do not allow fragments through the ASA. Fragmented packets are often used as DoS attacks.
To modify the IP fragment database parameters of an interface, perform the following steps:
Step 1
Choose the Configuration > Firewall > Advanced > Fragment pane, choose the interface to change in the Fragment table, and click Edit.
The Edit Fragment dialog box appears.
Step 2
In the Size field, set the maximum number of packets that can be in the IP reassembly database waiting for reassembly. The default is 200.
Step 3
In the Chain field, set the maximum number of packets into which a full IP packet can be fragmented. The default is 24 packets.
Step 4
In the Timeout field, set the maximum number of seconds to wait for an entire fragmented packet to arrive.
The timer starts after the first fragment of a packet arrives. If all fragments of the packet do not arrive by the number of seconds specified, all fragments of the packet that were already received will be discarded. The default is 5 seconds.
Step 5
Click OK.
Step 6
Click Apply.
Step 7
To view the fragment statistics, click Show Fragment. See the "Show Fragment" section for more information.
Show Fragment
The Configuration > Properties > Fragment > Show Fragment pane displays the current IP fragment database statistics for each interface.
Fields
•
Size—Display only. Displays the number of packets in the IP reassembly database waiting for reassembly. The default is 200.
•
Chain—Display only. Displays the number of packets into which a full IP packet can be fragmented. The default is 24 packets.
•
Timeout—Display only. Displays the number of seconds to wait for an entire fragmented packet to arrive. The timer starts after the first fragment of a packet arrives. If all fragments of the packet do not arrive by the number of seconds displayed, all fragments of the packet that were already received will be discarded. The default is 5 seconds.
•
Threshold—Display only. Displays the IP packet threshold, or the limit after which no new chains can be created in the reassembly module.
•
Queue—Display only. Displays the number of IP packets waiting in the queue for reassembly.
•
Assembled—Display only. Displays the number of IP packets successfully reassembled.
•
Fail—Display only. Displays the number of failed reassembly attempts.
•
Overflow—Display only. Displays the number of IP packets in the overflow queue.
Configuring TCP Options
The Configuration > Properties > TCP Options pane lets you set parameters for TCP connections.
Fields
•
Inbound and Outbound Reset—Sets whether to reset denied TCP connections for inbound and outbound traffic.
–
Interface—Shows the interface name.
–
Inbound Reset—Shows the interface reset setting for inbound TCP traffic, Yes or No. Enabling this setting causes the ASA to send TCP resets for all inbound TCP sessions that attempt to transit the ASA and are denied by the ASA based on access lists or AAA settings. Traffic between same security level interfaces is also affected. When this option is not enabled, the ASA silently discards denied packets.
–
Outbound Reset—Shows the interface reset setting for outbound TCP traffic, Yes or No. Enabling this setting causes the ASA to send TCP resets for all outbound TCP sessions that attempt to transit the ASA and are denied by the ASA based on access lists or AAA settings. Traffic between same security level interfaces is also affected. When this option is not enabled, the ASA silently discards denied packets.
–
Edit—Sets the inbound and outbound reset settings for the interface.
•
Other Options—Sets additional TCP options.
–
Send Reset Reply for Denied Outside TCP Packets—Enables resets for TCP packets that terminate at the least secure interface and are denied by the ASA based on access lists or AAA settings. When this option is not enabled, the ASA silently discards denied packets. If you enable Inbound Resets for the least secure interface (see TCP Reset Settings), then you do not also have to enable this setting; Inbound Resets handle to-the-ASA traffic as well as through the ASA traffic.
–
Force Maximum Segment Size for TCP—Sets the maximum TCP segment size in bytes, between 48 and any maximum number. The default value is 1380 bytes. You can disable this feature by setting the bytes to 0. Both the host and the server can set the maximum segment size when they first establish a connection. If either maximum exceeds the value you set here, then the ASA overrides the maximum and inserts the value you set. For example, if you set a maximum size of 1200 bytes, when a host requests a maximum size of 1300 bytes, then the ASA alters the packet to request 1200 bytes.
–
Force Minimum Segment Size for TCP—Overrides the maximum segment size to be no less than the number of bytes you set, between 48 and any maximum number. This feature is disabled by default (set to 0). Both the host and the server can set the maximum segment size when they first establish a connection. If either maximum is less than the value you set for the Force Minimum Segment Size for TCP Proxy field, then the ASA overrides the maximum and inserts the "minimum" value you set (the minimum value is actually the smallest maximum allowed). For example, if you set a minimum size of 400 bytes, if a host requests a maximum value of 300 bytes, then the ASA alters the packet to request 400 bytes.
–
Force TCP Connection to Linger in TIME_WAIT State for at Least 15 Seconds—Forces each TCP connection to linger in a shortened TIME_WAIT state of at least 15 seconds after the final normal TCP close-down sequence. You might want to use this feature if an end host application default TCP terminating sequence is a simultaneous close. The default behavior of the ASA is to track the shutdown sequence and release the connection after two FINs and the ACK of the last FIN segment. This quick release heuristic enables the ASA to sustain a high connection rate, based on the most common closing sequence, known as the normal close sequence. However, in a simultaneous close, both ends of the transaction initiate the closing sequence, as opposed to the normal close sequence where one end closes and the other end acknowledges prior to initiating its own closing sequence (see RFC 793). Thus, in a simultaneous close, the quick release forces one side of the connection to linger in the CLOSING state. Having many sockets in the CLOSING state can degrade the performance of an end host. For example, some WinSock mainframe clients are known to exhibit this behavior and degrade the performance of the mainframe server. Using this feature creates a window for the simultaneous close down sequence to complete.
TCP Reset Settings
The Configuration > Properties > TCP Options > TCP Reset Settings dialog box sets the inbound and outbound reset settings for an interface.
Fields
•
Send Reset Reply for Denied Inbound TCP Packets—Sends TCP resets for all inbound TCP sessions that attempt to transit the ASA and are denied by the ASA based on access lists or AAA settings. Traffic between same security level interfaces is also affected. When this option is not enabled, the ASA silently discards denied packets.
You might want to explicitly send resets for inbound traffic if you need to reset identity request (IDENT) connections. When you send a TCP RST (reset flag in the TCP header) to the denied host, the RST stops the incoming IDENT process so that you do not have to wait for IDENT to time out. Waiting for IDENT to time out can cause traffic to slow because outside hosts keep retransmitting the SYN until the IDENT times out, so the service resetinbound command might improve performance.
•
Send Reset Reply for Denied Outbound TCP Packets—Sends TCP resets for all outbound TCP sessions that attempt to transit the ASA and are denied by the ASA based on access lists or AAA settings. Traffic between same security level interfaces is also affected. When this option is not enabled, the ASA silently discards denied packets. This option is enabled by default. You might want to disable outbound resets to reduce the CPU load during traffic storms, for example.
Configuring IP Audit for Basic IPS Support
The IP audit feature provides basic IPS support for the ASA that does not have an AIP SSM. It supports a basic list of signatures, and you can configure the ASA to perform one or more actions on traffic that matches a signature.
This section includes the following topics:
•
IP Audit Policy
•
Add/Edit IP Audit Policy Configuration
•
IP Audit Signatures
•
IP Audit Signature List
IP Audit Policy
The Configuration > Firewall > Advanced > IP Audit > IP Audit Policy pane lets you add audit policies and assign them to interfaces. You can assign an attack policy and an informational policy to each interface. The attack policy determines the action to take with packets that match an attack signature; the packet might be part of an attack on your network, such as a DoS attack. The informational policy determines the action to take with packets that match an informational signature; the packet is not currently attacking your network, but could be part of an information-gathering activity, such as a port sweep. For a complete list of signatures, see the IP Audit Signature List.
Fields
•
Name—Shows the names of the defined IP audit policies. Although the default actions for a named policy are listed in this table ("--Default Action--"), they are not named policies that you can assign to an interface. Default actions are used by named policies if you do not set an action for the policy. You can modify the default actions by selecting them and clicking the Edit button.
•
Type—Shows the policy type, either Attack or Info.
•
Action—Shows the actions taken against packets that match the policy, Alarm, Drop, and/or Reset. Multiple actions can be listed.
•
Add—Adds a new IP audit policy.
•
Edit—Edits an IP audit policy or the default actions.
•
Delete—Deletes an IP audit policy. You cannot delete a default action.
•
Policy-to-Interface Mappings—Assigns an attack and informational policy to each interface.
–
Interface—Shows the interface name.
–
Attack Policy—Lists the attack audit policy names available. Assign a policy to an interface by clicking the name in the list.
–
Info Policy—Lists the informational audit policy names available. Assign a policy to an interface by clicking the name in the list.
Add/Edit IP Audit Policy Configuration
The Configuration > Firewall > Advanced > IP Audit > IP Audit Policy > Add/Edit IP Audit Policy Configuration dialog box lets you add or edit a named IP audit policy that you can assign to interfaces, and lets you modify the default actions for each signature type.
Fields
•
Policy Name—Sets the IP audit policy name. You cannot edit the name after you add it.
•
Policy Type—Sets the policy type. You cannot edit the policy type after you add it.
–
Attack—Sets the policy type as attack.
–
Information—Sets the policy type as informational.
•
Action—Sets one or more actions to take when a packet matches a signature. If you do not choose an action, then the default policy is used.
–
Alarm—Generates a system message showing that a packet matched a signature. For a complete list of signatures, see IP Audit Signature List.
–
Drop—Drops the packet.
–
Reset—Drops the packet and closes the connection.
IP Audit Signatures
The Configuration > Firewall > Advanced > IP Audit > IP Audit Signatures pane lets you disable audit signatures. You might want to disable a signature if legitimate traffic continually matches a signature, and you are willing to risk disabling the signature to avoid large numbers of alarms.
For a complete list of signatures, see the "IP Audit Signature List" section.
Fields
•
Enabled—Lists the enabled signatures.
•
Disabled—Lists the disabled signatures.
•
Disable—Moves the selected signature to the Disabled pane.
•
Enable—Moves the selected signature to the Enabled pane.
IP Audit Signature List
Table 78-1 lists supported signatures and system message numbers.
Table 78-1 Signature IDs and System Message Numbers
Signature ID
|
Message Number
|
Signature Title
|
Signature Type
|
Description
|
1000
|
400000
|
IP options-Bad Option List
|
Informational
|
Triggers on receipt of an IP datagram where the list of IP options in the IP datagram header is incomplete or malformed. The IP options list contains one or more options that perform various network management or debugging tasks.
|
1001
|
400001
|
IP options-Record Packet Route
|
Informational
|
Triggers on receipt of an IP datagram where the IP option list for the datagram includes option 7 (Record Packet Route).
|
1002
|
400002
|
IP options-Timestamp
|
Informational
|
Triggers on receipt of an IP datagram where the IP option list for the datagram includes option 4 (Timestamp).
|
1003
|
400003
|
IP options-Security
|
Informational
|
Triggers on receipt of an IP datagram where the IP option list for the datagram includes option 2 (Security options).
|
1004
|
400004
|
IP options-Loose Source Route
|
Informational
|
Triggers on receipt of an IP datagram where the IP option list for the datagram includes option 3 (Loose Source Route).
|
1005
|
400005
|
IP options-SATNET ID
|
Informational
|
Triggers on receipt of an IP datagram where the IP option list for the datagram includes option 8 (SATNET stream identifier).
|
1006
|
400006
|
IP options-Strict Source Route
|
Informational
|
Triggers on receipt of an IP datagram in which the IP option list for the datagram includes option 2 (Strict Source Routing).
|
1100
|
400007
|
IP Fragment Attack
|
Attack
|
Triggers when any IP datagram is received with an offset value less than 5 but greater than 0 indicated in the offset field.
|
1102
|
400008
|
IP Impossible Packet
|
Attack
|
Triggers when an IP packet arrives with source equal to destination address. This signature will catch the so-called Land Attack.
|
1103
|
400009
|
IP Overlapping Fragments (Teardrop)
|
Attack
|
Triggers when two fragments contained within the same IP datagram have offsets that indicate that they share positioning within the datagram. This could mean that fragment A is being completely overwritten by fragment B, or that fragment A is partially being overwritten by fragment B. Some operating systems do not properly handle fragments that overlap in this manner and may throw exceptions or behave in other undesirable ways upon receipt of overlapping fragments, which is how the Teardrop attack works to create a DoS.
|
2000
|
400010
|
ICMP Echo Reply
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 0 (Echo Reply).
|
2001
|
400011
|
ICMP Host Unreachable
|
Informational
|
Triggers when an IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 3 (Host Unreachable).
|
2002
|
400012
|
ICMP Source Quench
|
Informational
|
Triggers when an IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 4 (Source Quench).
|
2003
|
400013
|
ICMP Redirect
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 5 (Redirect).
|
2004
|
400014
|
ICMP Echo Request
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 8 (Echo Request).
|
2005
|
400015
|
ICMP Time Exceeded for a Datagram
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 11(Time Exceeded for a Datagram).
|
2006
|
400016
|
ICMP Parameter Problem on Datagram
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 12 (Parameter Problem on Datagram).
|
2007
|
400017
|
ICMP Timestamp Request
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 13 (Timestamp Request).
|
2008
|
400018
|
ICMP Timestamp Reply
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 14 (Timestamp Reply).
|
2009
|
400019
|
ICMP Information Request
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 15 (Information Request).
|
2010
|
400020
|
ICMP Information Reply
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 16 (ICMP Information Reply).
|
2011
|
400021
|
ICMP Address Mask Request
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 17 (Address Mask Request).
|
2012
|
400022
|
ICMP Address Mask Reply
|
Informational
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and the type field in the ICMP header set to 18 (Address Mask Reply).
|
2150
|
400023
|
Fragmented ICMP Traffic
|
Attack
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1 (ICMP) and either the more fragments flag is set to 1 (ICMP) or there is an offset indicated in the offset field.
|
2151
|
400024
|
Large ICMP Traffic
|
Attack
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1(ICMP) and the IP length > 1024.
|
2154
|
400025
|
Ping of Death Attack
|
Attack
|
Triggers when a IP datagram is received with the protocol field of the IP header set to 1(ICMP), the Last Fragment bit is set, and (IP offset * 8) + (IP data length) > 65535 that is to say, the IP offset (which represents the starting position of this fragment in the original packet, and which is in 8 byte units) plus the rest of the packet is greater than the maximum size for an IP packet.
|
3040
|
400026
|
TCP NULL flags
|
Attack
|
Triggers when a single TCP packet with none of the SYN, FIN, ACK, or RST flags set has been sent to a specific host.
|
3041
|
400027
|
TCP SYN+FIN flags
|
Attack
|
Triggers when a single TCP packet with the SYN and FIN flags are set and is sent to a specific host.
|
3042
|
400028
|
TCP FIN only flags
|
Attack
|
Triggers when a single orphaned TCP FIN packet is sent to a privileged port (having port number less than 1024) on a specific host.
|
3153
|
400029
|
FTP Improper Address Specified
|
Informational
|
Triggers if a port command is issued with an address that is not the same as the requesting host.
|
3154
|
400030
|
FTP Improper Port Specified
|
Informational
|
Triggers if a port command is issued with a data port specified that is <1024 or >65535.
|
4050
|
400031
|
UDP Bomb attack
|
Attack
|
Triggers when the UDP length specified is less than the IP length specified. This malformed packet type is associated with a denial of service attempt.
|
4051
|
400032
|
UDP Snork attack
|
Attack
|
Triggers when a UDP packet with a source port of either 135, 7, or 19 and a destination port of 135 is detected.
|
4052
|
400033
|
UDP Chargen DoS attack
|
Attack
|
This signature triggers when a UDP packet is detected with a source port of 7 and a destination port of 19.
|
6050
|
400034
|
DNS HINFO Request
|
Informational
|
Triggers on an attempt to access HINFO records from a DNS server.
|
6051
|
400035
|
DNS Zone Transfer
|
Informational
|
Triggers on normal DNS zone transfers, in which the source port is 53.
|
6052
|
400036
|
DNS Zone Transfer from High Port
|
Informational
|
Triggers on an illegitimate DNS zone transfer, in which the source port is not equal to 53.
|
6053
|
400037
|
DNS Request for All Records
|
Informational
|
Triggers on a DNS request for all records.
|
6100
|
400038
|
RPC Port Registration
|
Informational
|
Triggers when attempts are made to register new RPC services on a target host.
|
6101
|
400039
|
RPC Port Unregistration
|
Informational
|
Triggers when attempts are made to unregister existing RPC services on a target host.
|
6102
|
400040
|
RPC Dump
|
Informational
|
Triggers when an RPC dump request is issued to a target host.
|
6103
|
400041
|
Proxied RPC Request
|
Attack
|
Triggers when a proxied RPC request is sent to the portmapper of a target host.
|
6150
|
400042
|
ypserv (YP server daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the YP server daemon (ypserv) port.
|
6151
|
400043
|
ypbind (YP bind daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the YP bind daemon (ypbind) port.
|
6152
|
400044
|
yppasswdd (YP password daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the YP password daemon (yppasswdd) port.
|
6153
|
400045
|
ypupdated (YP update daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the YP update daemon (ypupdated) port.
|
6154
|
400046
|
ypxfrd (YP transfer daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the YP transfer daemon (ypxfrd) port.
|
6155
|
400047
|
mountd (mount daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the mount daemon (mountd) port.
|
6175
|
400048
|
rexd (remote execution daemon) Portmap Request
|
Informational
|
Triggers when a request is made to the portmapper for the remote execution daemon (rexd) port.
|
6180
|
400049
|
rexd (remote execution daemon) Attempt
|
Informational
|
Triggers when a call to the rexd program is made. The remote execution daemon is the server responsible for remote program execution. This may be indicative of an attempt to gain unauthorized access to system resources.
|
6190
|
400050
|
statd Buffer Overflow
|
Attack
|
Triggers when a large statd request is sent. This could be an attempt to overflow a buffer and gain access to system resources.
|