Understanding Security Policies

Note The AIM IPS and the NME IPS do not support multiple policies.

You can create multiple security policies and apply them to individual virtual sensors. A security policy is made up of a signature definition policy, an event action rules policy, and an anomaly detection policy. Cisco IPS contains a default signature definition policy called sig0, a default event action rules policy called rules0, and a default anomaly detection policy called ad0. You can assign the default policies to a virtual sensor or you can create new policies.

The use of multiple security policies lets you create security policies based on different requirements and then apply these customized policies per VLAN or physical interface.

Working With Signature Definition Policies

Use the service signature-definition namecommand in service signature definition mode to create a signature definition policy. The values of this signature definition policy are the same as the default signature definition policy, sig0, until you edit them.

Or you can use the copy signature-definitionsource_destination command in privileged EXEC mode to make a copy of an existing policy and then edit the values of the new policy as needed.

Use the list signature-definition-configurations command in privileged EXEC mode to list the signature definition policies.

Use the no service signature-definition namecommand in global configuration mode to delete a signature definition policy. Use the defaultservice signature-definition namecommand in global configuration mode to reset the signature definition policy to factory settings.

Understanding Signatures

Attacks or other misuses of network resources can be defined as network intrusions. Sensors that use a signature-based technology can detect network intrusions. A signature is a set of rules that your sensor uses to detect typical intrusive activity, such as DoS attacks. As sensors scan network packets, they use signatures to detect known attacks and respond with actions that you define.

The sensor compares the list of signatures with network activity. When a match is found, the sensor takes an action, such as logging the event or sending an alert. Sensors let you modify existing signatures and define new ones.

Signature-based intrusion detection can produce false positives because certain normal network activity can be misinterpreted as malicious activity. For example, some network applications or operating systems may send out numerous ICMP messages, which a signature-based detection system might interpret as an attempt by an attacker to map out a network segment. You can minimize false positives by tuning your signatures.

To configure a sensor to monitor network traffic for a particular signature, you must enable the signature. By default, the most critical signatures are enabled when you install the signature update. When an attack is detected that matches an enabled signature, the sensor generates an alert, which is stored in the Event Store of the sensor. The alerts, as well as other events, may be retrieved from the Event Store by web-based clients. By default the sensor logs all Informational alerts or higher.

Some signatures have subsignatures, that is, the signature is divided into subcategories. When you configure a subsignature, changes made to the parameters of one subsignature apply only to that subsignature. For example, if you edit signature 3050 subsignature 1 and change the severity, the severity change applies to only subsignature 1 and not to 3050 2, 3050 3, and 3050 4.

Cisco IPS contains over 10,000 built-in default signatures. You cannot rename or delete signatures from the list of built-in signatures, but you can retire signatures to remove them from the sensing engine. You can later activate retired signatures; however, this process requires the sensing engines to rebuild their configuration, which takes time and could delay the processing of traffic. You can tune built-in signatures by adjusting several signature parameters. Built-in signatures that have been modified are called tuned signatures.

Note We recommend that you retire any signatures that you are not using. This improves sensor performance.

You can create signatures, which are called custom signatures. Custom signature IDs begin at 60000. You can configure them for several things, such as matching of strings on UDP connections, tracking of network floods, and scans. Each signature is created using a signature engine specifically designed for the type of traffic being monitored.

Configuring Signature Variables

This section describes signature variables, and contains the following topics:

Understanding Signature Variables

When you want to use the same value within multiple signatures, use a variable. When you change the value of a variable, that variable is updated in all signatures in which it appears. This saves you from having to change the variable repeatedly as you configure signatures.

Note You must preface the variable with a dollar ($) sign to indicate that you are using a variable rather than a string.

Some variables cannot be deleted because they are necessary to the signature system. If a variable is protected, you cannot select it to edit it. You receive an error message if you try to delete protected variables. You can edit only one variable at a time.

Adding, Editing, and Deleting Signature Variables

Use the variables command in the signature definition submode to create signature variables.

The following options apply:

•variable_name—Identifies the name assigned to this variable. A valid name can only contain numbers or letters. You can also use a hyphen (-) or underscore (_).

•web-ports—System-defined variable for ports to look for HTTP traffic. To designate multiple port numbers for a single variable, place a comma between the entries. For example, 80, 3128, 8000, 8010, 8080, 8888, 24326.

To add, edit, and delete signature variables, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Create a signature variable for a group of IP addresses.

sensor(config-sig)# variables IPADD ip-addr-range 10.1.1.1-10.1.1.24

Step 4 Edit the signature variable for web ports. WEBPORTS has a predefined set of ports where web servers are running, but you can edit the value. This variable affects all signatures that have web ports. The default is 80, 3128, 8000, 8010, 8080, 8888, 24326.

Signature Definition Options

The following options apply to configuring the general parameters of a specific signature:

•alert-frequency—Sets the summary options for grouping alerts.

•alert-severity—Sets the severity of the alert.

•engine—Specifies the signature engine. You can assign actions when you are in the engine submode.

•event-counter—Sets the event count.

•promisc-delta—The delta value used to determine the seriousness of the alert.

Caution We do not recommend that you change the promiscuous delta setting for a signature.

Promiscuous delta lowers the risk rating of certain alerts in promiscuous mode. Because the sensor does not know the attributes of the target system and in promiscuous mode cannot deny packets, it is useful to lower the prioritization of promiscuous alerts (based on the lower risk rating) so the administrator can focus on investigating higher risk rating alerts.

In inline mode, the sensor can deny the offending packets and they never reach the target host, so it does not matter if the target was vulnerable. The attack was not allowed on the network and so we do not subtract from the risk rating value.

Signatures that are not service, OS, or application specific have 0 for the promiscuous delta. If the signature is specific to an OS, service, or application, it has a promiscuous delta of 5, 10, or 15 calculated from 5 points for each category.

•sig-description—Your description of the signature.

•sig-fidelity-rating—Rating of the fidelity of signature.

•status—Sets the status of the signature to enabled or retired.

•vulnerable-os—List of OS types that are vulnerable to this attack signature.

Configuring Alert Frequency

Use the alert-frequency command in signature definition submode to configure the alert frequency for a signature. The alert-frequency command specifies how often the sensor alerts you when this signature is firing.

The following options apply:

•sig_id—Identifies the unique numerical value assigned to this signature. This value lets the sensor identify a particular signature. The value is 1000 to 65000.

•subsig_id—Identifies the unique numerical value assigned to this subsignature. A subsignature ID is used to identify a more granular version of a broad signature. The value is 0 to 255.

•summary-mode—Specifies the way you want the sensor to group the alerts:

–fire-all—Fires an alert on all events.

–fire-once—Fires an alert only once.

–global-summarize—Summarizes an alert so that it only fires once regardless of how many attackers or victims.

–summarize—Summarize all the alerts.

•specify-summary-threshold {yes | no}—Enables summary threshold mode:

–summary-threshold—Specifies the minimum number of hits the sensor must receive before sending a summary alert for this signature. The value is 0 to 65535.

–summary-interval—Specifies the time in seconds used in each summary alert. The value is 1 to 1000.

•summary-key—Specifies the storage type on which to summarize this signature:

–global-summary-threshold—Specifies the threshold number of events to take alert in to global summary. The value is 1 to 65535.

To configure the alert frequency parameters of a signature, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify the signature you want to configure.

sensor(config-sig)# signatures 9000 0

Step 4 Enter alert frequency submode:

sensor(config-sig-sig)# alert-frequency

Step 5 Specify the alert frequency of this signature:

a. Configure the summary mode to, for example, fire once.

sensor(config-sig-sig-ale)# summary-mode fire-once

sensor(config-sig-sig-ale-fir)# specify-global-summary-threshold yes

sensor(config-sig-sig-ale-fir-yes)# global-summary-threshold 3000

sensor(config-sig-sig-ale-fir-yes)# summary-interval 5000

b. Specify the summary key.

sensor(config-sig-sig-ale-fir-yes)# exit

sensor(config-sig-sig-ale-fir)# summary-key AxBx

c. Verify the settings.

sensor(config-sig-sig-ale-fir)# show settings

fire-once

-----------------------------------------------

summary-key: AxBx default: Axxx

specify-global-summary-threshold

-----------------------------------------------

yes

-----------------------------------------------

global-summary-threshold: 3000 default: 120

summary-interval: 5000 default: 15

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

sensor(config-sig-sig-ale-fir)#

Step 6 Exit alert-frequency submode.

sensor(config-sig-sig-ale-fir)# exit

sensor(config-sig-sig-ale)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 7 Press Enter to apply the changes or enter no to discard them.

Configuring Alert Severity

Use the alert-severity command in signature definition submode to configure the severity of a signature.

The following options apply:

•sig_id—Identifies the unique numerical value assigned to this signature. This value lets the sensor identify a particular signature. The value is 1000 to 65000.

•subsig_id—Identifies the unique numerical value assigned to this subsignature. A subsignature ID is used to identify a more granular version of a broad signature. The value is 0 to 255.

•alert-severity—Specifies the severity of the alert:

–high —Dangerous alert.

–medium—Medium level alert (default).

–low—Low level alert.

–informational—Informational alert.

To configure the alert severity, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify the signature you want to configure.

sensor(config-sig)# signatures 9000 0

Step 4 Assign the alert severity.

sensor(config-sig-sig)# alert-severity medium

Step 5 Verify the settings.

sensor(config-sig-sig)# show settings

<protected entry>

sig-id: 9000

subsig-id: 0

-----------------------------------------------

alert-severity: medium default: medium

sig-fidelity-rating: 75 <defaulted>

promisc-delta: 0 <defaulted>

sig-description

-----------------------------------------------

sig-name: Back Door Probe (TCP 12345) <defaulted>

sig-string-info: SYN to TCP 12345 <defaulted>

sig-comment: <defaulted>

alert-traits: 0 <defaulted>

release: 40 <defaulted>

-----------------------------------------------

vulnerable-os: general-os <defaulted>

engine

-----------------------------------------------

atomic-ip

-----------------------------------------------

event-action: produce-alert <defaulted>

fragment-status: any <defaulted>

specify-l4-protocol

-----------------------------------------------

--MORE--

Step 6 Exit signatures submode.

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 7 Press Enter to apply the changes or enter no to discard them.

Configuring Event Counter

Use the event-counter command in signature definition submode to configure how the sensor counts events. For example, you can specify that you want the sensor to send an alert only if the same signature fires 5 times for the same address set.

The following options apply:

•event-count—Specifies the number of times an event must occur before an alert is generated. The valid range is 1 to 65535. The default is 1.

•event-count-key—Specifies the storage type on which to count events for this signatures:

–Axxx—Attacker address

–AxBx—Attacker and victim addresses

–Axxb—Attacker address and victim port

–xxBx—Victim address

–AaBb—Attacker and victim addresses and ports

•specify-alert-interval {yes | no}—Enables alert interval:

–alert-interval—Specifies the time in seconds before the event count is reset. The default is 60.

To configure event counter, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify the signature for which you want to configure event counter.

sensor(config-sig)# signatures 9000 0

Step 4 Enter event counter submode.

sensor(config-sig-sig)# event-counter

Step 5 Specify how many times an event must occur before an alert is generated.

sensor(config-sig-sig-eve)# event-count 2

Step 6 Specify the storage type on which you want to count events for this signature.

sensor(config-sig-sig-eve)# event-count-key AxBx

Step 7 (Optional) Enable alert interval:

sensor(config-sig-sig-eve)# specify-alert-interval yes

Step 8 (Optional) Specify the amount of time in seconds before the event count should be reset.

sensor(config-sig-sig-eve-yes)# alert-interval 30

Step 9 Verify the settings.

sensor(config-sig-sig-eve-yes)# exit

sensor(config-sig-sig-eve)# show settings

event-counter

-----------------------------------------------

event-count: 2 default: 1

event-count-key: AxBx default: Axxx

specify-alert-interval

-----------------------------------------------

yes

-----------------------------------------------

alert-interval: 30 default: 60

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

sensor(config-sig-sig-eve)#

Step 10 Exit signatures submode.

sensor(config-sig-sig-eve)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 11 Press Enter to apply the changes or enter no to discard them.

Configuring Signature Fidelity Rating

Use the sig-fidelity-rating command in signature definition submode to configure the signature fidelity rating for a signature.

The following option applies:

•sig-fidelity-rating—Identifies the weight associated with how well this signature might perform in the absence of specific knowledge of the target. The valid value is 0 to 100.

To configure the signature fidelity rating for a signature, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig0

Step 3 Specify the signature you want to configure.

sensor(config-sig)# signatures 12000 0

Step 4 Specify the signature fidelity rating for this signature.

sensor(config-sig-sig)# sig-fidelity-rating 50

Step 5 Verify the settings.

sensor(config-sig-sig)# show settings

<protected entry>

sig-id: 12000

subsig-id: 0

-----------------------------------------------

alert-severity: low <defaulted>

sig-fidelity-rating: 50 default: 85

promisc-delta: 15 <defaulted>

sig-description

-----------------------------------------------

sig-name: Gator Spyware Beacon <defaulted>

sig-string-info: /download/ User-Agent: Gator <defaulted>

sig-comment: <defaulted>

alert-traits: 0 <defaulted>

release: 71 <defaulted>

-----------------------------------------------

Step 6 Exit signatures submode.

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 7 Press Enter to apply the changes or enter no to discard them.

Configuring the Status of Signatures

Caution Activating and retiring signatures can take 30 minutes or longer.

Use the status command in signature definition submode to specify the status of a specific signature.

The following options apply:

•status—Identifies whether the signature is enabled, disabled, or retired:

–enabled {true | false}—Enables the signature.

–retired {true | false}]—Retires the signature.

–obsoletes signature_ID—Shows the other signatures that have been obsoleted by this signature.

To change the status of a signature, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Choose the signature you want to configure.

sensor(config-sig)# signatures 12000 0

Step 4 Change the status for this signature.

sensor(config-sig-sig)# status

sensor(config-sig-sig-sta)# enabled true

Step 5 Verify the settings.

sensor(config-sig-sig-sta)# show settings

status

-----------------------------------------------

enabled: true default: false

retired: false <defaulted>

-----------------------------------------------

sensor(config-sig-sig-sta)#

Step 6 Exit signatures submode.

sensor(config-sig-sig-sta)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 7 Press Enter to apply the changes or enter no to discard them.

Configuring the Vulnerable OSes for a Signature

Use the vulnerable-os command in signature definition submode to configure the list of vulnerable OSes for a signature.

The following options apply:

•general-os—All OS types

•ios—Variants of Cisco IOS

•mac-os—Variants of Macintosh OS

•netware—Netware

•other—Any other OS

•unix—Variants of UNIX

•aix—Variants of AIX

•bsd—Variants of BSD

•hp-ux—Variants of HP-UX

•irix—Variants of IRIX

•linux—Variants of Linux

•solaris—Variants of Solaris

•windows—Variants of Microsoft Windows

•windows-nt-2k-xp—Variants of Microsoft NT, 2000, and XP

•win-nt—Specific variants of Windows NT

To configure the vulnerable OSes for a signature, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify the signature you want to configure.

sensor(config-sig)# signatures 6000 0

Step 4 Specify the vulnerable OSes for this signature.

sensor(config-sig-sig)# vulnerable-os linux|aix

Step 5 Verify the settings.

sensor(config-sig-sig)# show settings

sig-id: 60000

subsig-id: 0

-----------------------------------------------

alert-severity: medium <defaulted>

sig-fidelity-rating: 75 <defaulted>

promisc-delta: 0 <defaulted>

sig-description

-----------------------------------------------

sig-name: My Sig <defaulted>

sig-string-info: My Sig Info <defaulted>

sig-comment: Sig Comment <defaulted>

alert-traits: 0 <defaulted>

release: custom <defaulted>

-----------------------------------------------

vulnerable-os: aix|linux default: general-os

*---> engine

-----------------------------------------------

-----------------------------------------------

event-counter

-----------------------------------------------

event-count: 1 <defaulted>

event-count-key: Axxx <defaulted>

specify-alert-interval

-----------------------------------------------

--MORE--

Step 6 Exit signatures submode.

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 7 Press Enter to apply the changes or enter no to discard them.

Assigning Actions to Signatures

Use the event-action command in signature definition submode to configure the actions the sensor takes when the signature fires.

The following options apply:

•event-action—Specifies the action(s) to perform when alert is triggered:

–deny-attacker-inline —(Inline mode only) does not transmit this packet and future packets from the attacker address for a specified period of time.

–deny-attacker-service-pair-inline—(Inline mode only) Does not transmit this packet and future packets on the attacker address victim port pair for a specified period of time.

–deny-attacker-victim-pair-inline—(Inline mode only) Does not transmit this packet and future packets on the attacker/victim address pair for a specified period of time.

–deny-connection-inline—(Inline mode only) Does not transmit this packet and future packets on the TCP Flow.

–deny-packet-inline—(Inline mode only) Does not transmit this packet.

–log-attacker-packets—Starts IP logging of packets containing the attacker address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-pair-packets—Starts IP logging of packets containing the attacker-victim address pair. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-victim-packets—Starts IP logging of packets containing the victim address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–produce-alert —Writes the event to Event Store as an alert.

–produce-verbose-alert—Includes an encoded dump (possibly truncated) of the offending packet in the alert. This action causes an alert to be written to the Event Store, even if produce-alert is not selected.

–request-block-connection—Sends a request to ARC to block this connection. You must have blocking devices configured to implement this action.

–request-block-host—Sends a request to ARC to block this attacker host. You must have blocking devices configured to implement this action.

–request-rate-limit—Sends a rate limit request to ARC to perform rate limiting. You must have rate limiting devices configured to implement this action.

–request-snmp-trap—Sends a request to the Notification Application component of the sensor to perform SNMP notification. This action causes an alert to be written to the Event Store, even if produce-alert is not selected. You must have SNMP configured on the sensor to implement this action.

–reset-tcp-connection—Sends TCP resets to hijack and terminate the TCP flow. Reset TCP Connection only works on TCP signatures that analyze a single connection. It does not work for sweeps or floods.

–modify-packet-inline— Modifies packet data to remove ambiguity about what the end point might do with the packet.

Note Each time you configure the event actions for a signature, you overwrite the previous configuration. For example, if you always want to produce an alert when the signature is fired, you must configure it along with the other event actions you want. Use the | symbol to add more than one event action, for example, product-alert|deny-packet-inline|request-snmp-trap.

Understanding the AIC Engine

Note The AIC engine runs when HTTP traffic is received on AIC web ports. If traffic is web traffic, but not received on the AIC web ports, the Service HTTP engine is executed. AIC inspection can be on any port if it is configured as an AIC web port and the traffic to be inspected is HTTP traffic.

AIC provides thorough analysis of web traffic. It provides granular control over HTTP sessions to prevent abuse of the HTTP protocol. It allows administrative control over applications, such as instant messaging and gotomypc, that try to tunnel over specified ports. Inspection and policy checks for P2P and instant messaging are possible if these applications are running over HTTP.

AIC also provides a way to inspect FTP traffic and control the commands being issued. You can enable or disable the predefined signatures or you can create policies through custom signatures.

AIC has the following categories of signatures:

•HTTP request method

–Define request method

–Recognized request methods

•MIME type

–Define content type

–Recognized content type

•Define web traffic policy

There is one predefined signature, 12674, that specifies the action to take when noncompliant HTTP traffic is seen. The parameter Alarm on Non HTTP Traffic enables the signature. By default this signature is enabled.

•Transfer encodings

–Associate an action with each method

–List methods recognized by the sensor

–Specify which actions need to be taken when a chunked encoding error is seen

AIC Engine and Sensor Performance

Application policy enforcement is a unique sensor feature. Rather than being based on traditional IPS technologies that inspect for exploits, vulnerabilities, and anomalies, AIC policy enforcement is designed to enforce HTTP and FTP service policies. The inspection work required for this policy enforcement is extreme compared with traditional IPS inspection work. A large performance penalty is associated with using this feature. When AIC is enabled, the overall bandwidth capacity of the sensor is reduced.

AIC policy enforcement is disabled in the IPS default configuration. If you want to activate AIC policy enforcement, we highly recommend that you carefully choose the exact policies of interest and disable those you do not need. Also, if your sensor is near its maximum inspection load capacity, we recommend that you not use this feature since it can oversubscribe the sensor. We recommend that you use the adaptive security appliance firewall to handle this type of policy enforcement.

Configuring the Application Policy

Use the application-policy command in signature definition submode to enable the web AIC feature. You can configure the sensor to provide Layer 4 to Layer 7 packet inspection to prevent malicious attacks related to web and FTP services.

The following options apply:

•ftp-enable {true | false}—Enables protection for FTP services. Set to true to require the sensor to inspect FTP traffic. The default is false.

•http-policy—Enables inspection of HTTP traffic:

–aic-web-ports—Specifies the variable for ports to look for AIC traffic. The valid range is 0 to 65535. A comma-separated list of integer ranges a-b[,c-d] within 0-65535. The second number in the range must be greater than or equal to the first number. The default is 80-80,3128-3128,8000-8000,8010-8010,8080-8080,8888-8888,24326-24326.

–http-enable {true | false}—Enables protection for web services. Set to true to require the sensor to inspect HTTP traffic for compliance with the RFC. The default is false.

–max-outstanding-http-requests-per-connection—Specifies the maximum allowed HTTP requests per connection. The valid value is 1 to 16. The default is 10.

To configure the application policy, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter application policy submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

sensor(config-sig)# application-policy

Step 3 Enable inspection of FTP traffic.

sensor(config-sig-app)# ftp-enable true

Step 4 Configure the HTTP application policy:

a. Enter HTTP application policy submode.

sensor(config-sig-app)# http-policy

b. Enable HTTP application policy enforcement.

sensor(config-sig-app-htt)# http-enable true

c. Specify the number of outstanding HTTP requests per connection that can be outstanding without having received a response from the server.

Creating an AIC Signature

The following example demonstrates how to create a MIME-type signature based on the AIC engine.

The following options apply:

•event-action—Specifies the action(s) to perform when alert is triggered:

–deny-attacker-inline —(Inline only) does not transmit this packet and future packets from the attacker address for a specified period of time.

–deny-attacker-service-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker address victim port pair for a specified period of time.

–deny-attacker-victim-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker/victim address pair for a specified period of time.

–deny-connection-inline—(Inline only) Does not transmit this packet and future packets on the TCP Flow.

–deny-packet-inline—(Inline only) Does not transmit this packet.

–log-attacker-packets—Starts IP logging of packets containing the attacker address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-pair-packets—Starts IP logging of packets containing the attacker-victim address pair. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-victim-packets—Starts IP logging of packets containing the victim address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–produce-alert —Writes the event to Event Store as an alert.

–produce-verbose-alert—Includes an encoded dump (possibly truncated) of the offending packet in the alert. This action causes an alert to be written to the Event Store, even if produce-alert is not selected.

–request-block-connection—Sends a request to ARC to block this connection. You must have blocking devices configured to implement this action.

–request-block-host—Sends a request to ARC to block this attacker host. You must have blocking devices configured to implement this action.

–request-rate-limit—Sends a rate limit request to ARC to perform rate limiting. You must have rate limiting devices configured to implement this action.

–request-snmp-trap—Sends a request to the Notification Application component of the sensor to perform SNMP notification. This action causes an alert to be written to the Event Store, even if produce-alert is not selected. You must have SNMP configured on the sensor to implement this action.

–reset-tcp-connection—Sends TCP resets to hijack and terminate the TCP flow. Reset TCP Connection only works on TCP signatures that analyze a single connection. It does not work for sweeps or floods.

–modify-packet-inline— Modifies packet data to remove ambiguity about what the end point might do with the packet.

•no—Removes an entry or selection setting.

•signature-type—Specifies the type of signature desired:

–content-types—Content-types

–define-web-traffic-policy—Defines web traffic policy

–max-outstanding-requests-overrun—Inspects for large number of outstanding HTTP requests

–msg-body-pattern—Message body pattern

–request-methods—Signature types that deal with request methods

–transfer-encodings—Signature types that deal with transfer encodings

To define a MIME-type policy signature, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Configuring IP Fragment Reassembly

This section describes IP fragment reassembly, lists the IP fragment reassembly signatures with the configurable parameters, describes how to configure these parameters, and how to configure the method for IP fragment reassembly. It contains the following topics:

Understanding IP Fragment Reassembly

Note You configure the IP fragment reassembly per signature.

You can configure the sensor to reassemble a datagram that has been fragmented over multiple packets. You can specify boundaries that the sensor uses to determine how many datagram fragments it reassembles and how long to wait for more fragments of a datagram. The goal is to ensure that the sensor does not allocate all its resources to datagrams that cannot be completely reassembled, either because the sensor missed some frame transmissions or because an attack has been launched that is based on generating random fragmented datagrams.

IP Fragment Reassembly Signatures and Configurable Parameters

Table 8-5 lists IP fragment reassembly signatures with the parameters that you can configure for IP fragment reassembly. The IP fragment reassembly signatures are part of the Normalizer engine.

Table 8-5 IP Fragment Reassembly Signatures

Signature ID and Name

Description

Parameter With Default Value and Range

Default Action

1200 IP Fragmentation Buffer Full

Fires when the total number of fragments in the system exceeds the threshold set by Max Fragments.

1Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packets and all associated fragments for this datagram. If you disable this signature, the default values are still used and packets are dropped (inline mode) or not analyzed (promiscuous mode) and no alert is sent.

2This signature does not fire when the datagram is an exact duplicate. Exact duplicates are dropped in inline mode regardless of the settings. Modify Packet Inline removes the overlapped data from all but one fragment so there is no ambiguity about how the endpoint treats the datagram. Deny Connection Inline has no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

3Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram. Regardless of the actions set the datagram is not processed by the IPS if the datagram is larger than the Max Datagram size.

5Modify Packet Inline removes the overlapped data from all but one fragment so there is no ambiguity about how the endpoint treats the datagram. Deny Connection Inline has no effect on this signature. Deny Packet Inline drops the packets and all associated fragments for this datagram.

6IPS does not inspect a datagram missing the first fragments regardless of the settings. Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

7Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

8IPS does not inspect the datagram if this signature is on and the number of small fragments is exceeded.

9Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

10Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

12Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

13Modify Packet Inline and Deny Connection Inline have no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

14Modify Packet Inline modifies the flags to a valid combination. Deny Connection Inline has no effect on this signature. Deny Packet Inline drops the packet and all associated fragments for this datagram.

Step 6 Enable and change the default setting (if desired) of any of the IP fragment reassembly parameter for signature 1200 for example, specifying the maximum fragments.

sensor(config-sig-sig-nor-def)# specify-max-fragments yes

sensor(config-sig-sig-nor-def-yes)# max-fragments 20000

Step 7 Verify the settings.

sensor(config-sig-sig-nor-def-yes)# show settings

yes

-----------------------------------------------

max-fragments: 20000 default: 10000

-----------------------------------------------

sensor(config-sig-sig-nor-def-yes)#

Step 8 Exit signature definition submode.

sensor(config-sig-sig-nor-def-yes)# exit

sensor(config-sig-sig-nor-def)# exit

sensor(config-sig-sig-nor)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 9 Press Enter for apply the changes or enter no to discard them.

Configuring the Method for IP Fragment Reassembly

Use the fragment-reassembly command in the signature definition submode to configure the method the sensor will use to reassemble fragments. You can configure this option if your sensor is operating in promiscuous mode. If your sensor is operating in inline mode, the method is NT only.

The following options apply:

•ip-reassemble-mode—Identifies the method the sensor uses to reassemble the fragments based on the operating system:

–nt—Windows systems (default).

–solaris—Solaris systems.

–linux—GNU/Linux systems.

–bsd—BSD UNIX systems.

To configure the method for IP fragment reassembly, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter fragment reassembly submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

sensor(config-sig)# fragment-reassembly

Step 3 Configure the operating system you want the sensor to use to reassemble IP fragments.

sensor(config-sig-fra)# ip-reassemble-mode linux

Step 4 Verify the setting.

sensor(config-sig-fra)# show settings

fragment-reassembly

-----------------------------------------------

ip-reassemble-mode: linux default: nt

-----------------------------------------------

sensor(config-sig-fra)#

Step 5 Exit signature definition submode.

sensor(config-sig-fra)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 6 Press Enter to apply the changes or enter no to discard them.

Configuring TCP Stream Reassembly

This section describes TCP stream reassembly, lists the TCP stream reassembly signatures with the configurable parameters, describes how to configure TCP stream signatures, and how to configure the mode for TCP stream reassembly. It contains the following topics:

Understanding TCP Stream Reassembly

You can configure the sensor to monitor only TCP sessions that have been established by a complete three-way handshake. You can also configure how long to wait for the handshake to complete, and how long to keep monitoring a connection where no more packets have been seen. The goal is to prevent the sensor from creating alerts where a valid TCP session has not been established. There are known attacks against sensors that try to get the sensor to generate alerts by simply replaying pieces of an attack. The TCP session reassembly feature helps to mitigate these types of attacks against the sensor.

You configure TCP stream reassembly parameters per signature. You can configure the mode for TCP stream reassembly.

TCP Stream Reassembly Signatures and Configurable Parameters

Table 8-6 lists TCP stream reassembly signatures with the parameters that you can configure for TCP stream reassembly. TCP stream reassembly signatures are part of the Normalizer engine.

This signature allows for setting the internal TCP Max Queue size value for the Normalizer engine. As a result it does not function in promiscuous mode. By default this signature does not fire an alert. If a custom alert event is associated with this signature and if the queue size is exceeded, an alert fires.

1The timer is reset to 0 after each packet on the TCP session. by default, this signature does not produce an alert. You can choose to produce alerts for expiring TCP connections if desired. A statistic of total number of expired flows is updated any time a flow expires.

2Modify Packet Inline, Deny Connection Inline, and Deny Packet Inline have no effect on this signature.

3The timer starts with the first SYN packet and is not reset. State for the session is reset and any subsequent packets for this flow appear to be out of order (unless it is a SYN).

4Modify Packet Inline, Deny Connection Inline, and Deny Packet Inline have no effect on this signature.

5The timer starts with the first FIN packet and is not reset. State for the session is reset and any subsequent packets for this flow appear to be out of order (unless it is a SYN).

6Modify Packet Inline, Deny Connection Inline, and Deny Packet Inline have no effect on this signature.

7Modify Packet Inline and Deny Packet Inline have no effect on this signature. Deny Connection Inline drops the current packet and the TCP session.

8Phrak 57 describes a way to evade security policy using URG pointers. You can normalize the packet when it is in inline mode with this signature.

9Modify Packet Inline strips the URG flag and zeros the URG pointer from the packet. Deny Connection Inline drops the current packet and the TCP session. Deny Packet Inline drops the packet.

15Modify Packet Inline has no effect on this signature. Deny Connection Inline drops the current packet and the TCP connection. Deny Packet Inline drops the packet.

16This signature is used to cause TTLs to monotonically decrease for each direction on a session. For example, if TTL 45 is the lowest TTL seen from A to B, then all future packets from A to B will have a maximum of 45 if Modify Packet Inline is set. Each new low TTL becomes the new maximum for packets on that session.

22Modify Packet Inline has no effect on this signature. Deny Connection Inline drops the current packet and the TCP session. Deny Packet Inline drops the packet.

23Modify Packet Inline, Deny Connection Inline, and Deny Packet Inline have no effect on this signature. By default, the 1330 signatures drop packets for which this signature sends alerts.

24These subsignatures represent the reasons why the Normalizer might drop a TCP packet. By default these subsignatures drop packets. These subsignatures let you permit packets that fail the checks in the Normalizer through the IPS. The drop reasons have an entry in the TCP statistics. By default these subsignatures do not produce an alert.

Configuring IP Logging

You can configure a sensor to generate an IP session log when the sensor detects an attack. When IP logging is configured as a response action for a signature and the signature is triggered, all packets to and from the source address of the alert are logged for a specified period of time.

Note IP logging allows a maximum limit of 20 concurrent IP log files. Once the limit of 20 is reached, you receive the following message in main.log: Cid/W errWarnIpLogProcessor::addIpLog: Ran out of file descriptors.

Use the ip-log command in the signature definition submode to configure IP logging.

The following options apply:

•ip-log-bytes—Identifies the maximum number of bytes you want logged. The valid value is 0 to 2147483647. The default is 0.

•ip-log-packets—Identifies the number of packets you want logged. The valid value is 0 to 65535. The default is 0.

•ip-log-time—Identifies the duration you want the sensor to log. The valid value is 30 to 300 seconds. The default is 30 seconds.

Note When the sensor meets any one of the IP logging conditions, it stops IP logging.

To configure the IP logging parameters, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter IP log submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

sensor(config-sig)# ip-log

Step 3 Specify the IP logging parameters:

a. Specify the maximum number of bytes you want logged.

sensor(config-sig-ip)# ip-log-bytes 200000

b. Specify the number of packets you want logged.

sensor(config-sig-ip)# ip-log-packets 150

c. Specify the length of time you want the sensor to log.

sensor(config-sig-ip)# ip-log-time 60

Step 4 Verify the settings.

sensor(config-sig-ip)# show settings

ip-log

-----------------------------------------------

ip-log-packets: 150 default: 0

ip-log-time: 60 default: 30

ip-log-bytes: 200000 default: 0

-----------------------------------------------

sensor(config-sig-ip)#

Step 5 Exit signature definition submode.

sensor(config-sig-ip)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 6 Press Enter to apply the changes or enter no to discard them.

Creating Custom Signatures

This section describes how to create custom signatures and contains the following topics:

Step 3 Assign the engine-specific parameters. The parameters differ for each signature engine, although there is a group of master parameters that applies to each engine.

Step 4 Assign the alert response:

•Signature fidelity rating

•Severity of the alert

Step 5 Assign the alert behavior.

Step 6 Apply the changes.

Example String TCP Engine Signature

Note This procedure also applies to String UDP and ICMP signatures.

The String engine is a generic-based pattern-matching inspection engine for ICMP, TCP, and UDP protocols. The String engine uses a regular expression engine that can combine multiple patterns into a single pattern-matching table allowing for a single search through the data. There are three String engines: String ICMP, String TCP, and String UDP. The following example demonstrates how to create a custom String TCP signature.

The following options apply:

•default—Sets the value back to the system default setting.

•direction—Specifies the direction of the traffic:

–from-service—Traffic from service port destined to client port.

–to-service—Traffic from client port destined to service port.

•event-action—Specifies the action(s) to perform when alert is triggered:

–deny-attacker-inline —(Inline only) does not transmit this packet and future packets from the attacker address for a specified period of time.

–deny-attacker-service-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker address victim port pair for a specified period of time.

–deny-attacker-victim-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker/victim address pair for a specified period of time.

–deny-connection-inline—(Inline only) Does not transmit this packet and future packets on the TCP Flow.

–deny-packet-inline—(Inline only) Does not transmit this packet.

–log-attacker-packets—Starts IP logging of packets containing the attacker address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-pair-packets—Starts IP logging of packets containing the attacker-victim address pair. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-victim-packets—Starts IP logging of packets containing the victim address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–produce-alert —Writes the event to Event Store as an alert.

–produce-verbose-alert—Includes an encoded dump (possibly truncated) of the offending packet in the alert. This action causes an alert to be written to the Event Store, even if produce-alert is not selected.

–request-block-connection—Sends a request to ARC to block this connection. You must have blocking devices configured to implement this action.

–request-block-host—Sends a request to ARC to block this attacker host. You must have blocking devices configured to implement this action.

–request-rate-limit—Sends a rate limit request to ARC to perform rate limiting. You must have rate limiting devices configured to implement this action.

–request-snmp-trap—Sends a request to the Notification Application component of the sensor to perform SNMP notification. This action causes an alert to be written to the Event Store, even if produce-alert is not selected. You must have SNMP configured on the sensor to implement this action.

–reset-tcp-connection—Sends TCP resets to hijack and terminate the TCP flow. Reset TCP Connection only works on TCP signatures that analyze a single connection. It does not work for sweeps or floods.

–modify-packet-inline— Modifies packet data to remove ambiguity about what the end point might do with the packet.

•no—Removes an entry or selection setting.

•regex-string —Specifies a regular expression to search for in a single TCP packet.

•service-ports—Specifies the ports or port ranges where the target service may reside. The valid range is 0 to 65535. It is a separated list of integer ranges a-b[,c-d] within 0 to 65535. The second number in the range must be greater than or equal to the first number.

•swap-attacker-victim {true | false}—Swaps the attacker and victim addresses and ports (source and destination) in the alarm message and for any actions taken. The default is false for no swapping.

To create a signature based on the String TCP engine, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify a signature ID and subsignature ID for the signature. Custom signatures are in the range of 60000 to 65000.

sensor(config-sig)# signatures 60025 0

Step 4 Enter signature description submode.

sensor(config-sig-sig)# sig-description

Step 5 Specify a name for the new signature. You can also specify a additional comments about the sig using the sig-comment command or additional information about the signature using the sig-string-info command.

sensor(config-sig-sig-sig)# sig-name This is my new name

Step 6 Exit signature description submode.

sensor(config-sig-sig-sig)# exit

Step 7 Specify the string TCP engine.

sensor(config-sig-sig)# engine string-tcp

Step 8 Specify the service ports.

sensor(config-sig-sig-str)# service-ports 23

Step 9 Specify the direction.

sensor(config-sig-sig-str)# direction to-service

Step 10 Specify the regex string to search for in the TCP packet. You can change the event actions if needed according to your security policy using the event-action command. The default event action is produce-alert.

sensor(config-sig-sig-str)# regex-string This-is-my-new-Sig-regex

Step 11 You can also modify the following optional parameters for this custom String TCP signature:

•specify-exact-match-offset

•specify-min-match-length

•strip-telnet-options

•swap-attacker-victim.

Step 12 Verify the settings.

sensor(config-sig-sig-str)# show settings

string-tcp

-----------------------------------------------

event-action: produce-alert <defaulted>

strip-telnet-options: false <defaulted>

specify-min-match-length

-----------------------------------------------

no

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

regex-string: This-is-my-new-Sig-regex

service-ports: 23

direction: to-service default: to-service

specify-exact-match-offset

-----------------------------------------------

no

-----------------------------------------------

specify-max-match-offset

-----------------------------------------------

no

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

specify-min-match-offset

-----------------------------------------------

no

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

-----------------------------------------------

swap-attacker-victim: false <defaulted>

-----------------------------------------------

sensor(config-sig-sig-str)#

Step 13 Exit signature definition submode.

sensor(config-sig-sig-str)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 14 Press Enter to apply the changes or enter no to discard them.

Example Service HTTP Engine Signature

The Service HTTP engine is a service-specific string-based pattern-matching inspection engine. The HTTP protocol is one of the most commonly used in networks of today. In addition, it requires the most amount of preprocessing time and has the most number of signatures requiring inspection making it critical to the overall performance of the system.

The Service HTTP engine uses a Regex library that can combine multiple patterns into a single pattern-matching table allowing a single search through the data. This engine searches traffic directed to web services only to web services, or HTTP requests. You cannot inspect return traffic with this engine. You can specify separate web ports of interest in each signature in this engine.

HTTP deobfuscation is the process of decoding an HTTP message by normalizing encoded characters to ASCII equivalent characters. It is also known as ASCII normalization.

Before an HTTP packet can be inspected, the data must be deobfuscated or normalized to the same representation that the target system sees when it processes the data. It is ideal to have a customized decoding technique for each host target type, which involves knowing what operating system and web server version is running on the target. The Service HTTP engine has default deobfuscation behavior for the Microsoft IIS web server.

•event-action —Specifies the action(s) to perform when alert is triggered:

–deny-attacker-inline —(Inline only) does not transmit this packet and future packets from the attacker address for a specified period of time.

–deny-attacker-service-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker address victim port pair for a specified period of time.

–deny-attacker-victim-pair-inline—(Inline only) Does not transmit this packet and future packets on the attacker/victim address pair for a specified period of time.

–deny-connection-inline—(Inline only) Does not transmit this packet and future packets on the TCP Flow.

–deny-packet-inline—(Inline only) Does not transmit this packet.

–log-attacker-packets—Starts IP logging of packets containing the attacker address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-pair-packets—Starts IP logging of packets containing the attacker-victim address pair. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–log-victim-packets—Starts IP logging of packets containing the victim address. This action causes an alert to be written to Event Store, even if produce-alert is not selected.

–produce-alert —Writes the event to Event Store as an alert.

–produce-verbose-alert—Includes an encoded dump (possibly truncated) of the offending packet in the alert. This action causes an alert to be written to the Event Store, even if produce-alert is not selected.

–request-block-connection—Sends a request to ARC to block this connection. You must have blocking devices configured to implement this action.

–request-block-host—Sends a request to ARC to block this attacker host. You must have blocking devices configured to implement this action.

–request-rate-limit—Sends a rate limit request to ARC to perform rate limiting. You must have rate limiting devices configured to implement this action.

–request-snmp-trap—Sends a request to the Notification Application component of the sensor to perform SNMP notification. This action causes an alert to be written to the Event Store, even if produce-alert is not selected. You must have SNMP configured on the sensor to implement this action.

–reset-tcp-connection—Sends TCP resets to hijack and terminate the TCP flow. Reset TCP Connection only works on TCP signatures that analyze a single connection. It does not work for sweeps or floods.

–modify-packet-inline— Modifies packet data to remove ambiguity about what the end point might do with the packet.

Step 13 Configure the service ports using the signature variable WEBPORTS:

sensor(config-sig-sig-ser)# service-ports $WEBPORTS

Step 14 Exit signature definition submode.

sensor(config-sig-sig-ser)# exit

sensor(config-sig-sig)# exit

sensor(config-sig)# exit

Apply Changes:?[yes]:

Step 15 Press Enter to apply the changes or enter no to discard them.

Example Meta Engine Signature

Caution A large number of Meta signatures could adversely affect overall sensor performance.

Note The Meta engine is different from other engines in that it takes alerts as input where most engines take packets as input.

Note The Meta engine enhancement is available in IPS 7.0(2)E4 and later.

The Meta engine defines events that occur in a related manner within a sliding time interval. This engine processes events rather than packets. As signature events are generated, the Meta engine inspects them to determine if they match any or several Meta definitions. The Meta engine generates a signature event after all requirements for the event are met.

All signature events are handed off to the Meta engine by the Signature Event Action Processor. The Signature Event Action Processor hands off the event after processing the minimum hits option. Summarization and event action are processed after the Meta engine has processed the component events.

The following options apply:

•component-list name1—Specifies the list of Meta components:

–edit—Edits an existing entry in the list.

–insert —Inserts a new entry into the list.

–move—Moves an entry in the list.

–begin—Places the entry at the beginning of the active list.

–end—Places the entry at the end of the active list.

–inactive—Places the entry into the inactive list.

–before—Places the entry before the specified entry.

–after—Places the entry after the specified entry.

–component-count—Specifies the number of times component must fire before this component is satisfied.

–component-sig-id—Specifies the signature ID of the signature to match this component on.

–component-subsig-id—Specifies the subsignature ID of the signature on which to match this component.

–is-not-component {true | false}—Specifies that the component is a NOT component.

•component-list-in-order {true | false}—Specifies whether to have the component list fire in order. For example, if signature 1001 in the m2 component fires before signature 1000 in the m1 component, the Meta signature will not fire.

•all-components-required {true | false}—Specifies to use all components. This option works with the all-not-components-required option, if you have NOT components configured as required, the Meta signature will not fire.

•all-not-components-required {true | false}—Specifies to use all of the NOT components.

•swap-attacker-victim {true | false}—Swaps the attacker and victim addresses and ports (source and destination) in the alert message and in any actions taken.

•meta-reset-interval—Specifies the time in seconds to reset the Meta signature. The valid range is 0 to 3600 seconds. The default is 60 seconds.

•meta-key—Specifies the storage type for the Meta signature:

–AaBb—Attacker and victim addresses and ports.

–AxBx—Attacker and victim addresses.

–Axxx—Attacker address.

–xxBx—Victim address.

•unique-victim-ports—Specifies the number of unique victims ports required per Meta signature. The valid range is 1 to 256.

•event-action—Specifies the action(s) to perform when an alert is triggered:

–deny-attacker-inline (inline only)—Does not transmit this packet and future packets from the attacker address for a specified period of time.

–deny-attacker-service-pair-inline (inline only)—Does not transmit this packet and future packets on the attacker address victim port pair for a specified period of time.

–deny-attacker-victim-pair-inline (inline only)—Does not transmit this packet and future packets on the attacker/victim address pair for a specified period of time.

–deny-connection-inline (inline only)—Does not transmit this packet and future packets on the TCP flow.

–produce-verbose-alert—Includes an encoded dump (possibly truncated) of the offending packet in the alert.

–request-block-connection—Sends a request to the ARC to block this connection.

–request-block-host—Sends a request to the ARC to block this attacker host.

–request-rate-limit—Sends a rate limit request to the ARC to perform rate limiting.

–request-snmp-trap—Sends a request to the Notification Application component of the sensor to perform SNMP notification.

–reset-tcp-connection—Sends TCP resets to hijack and terminate the TCP flow.

–modify-packet-inline— Modifies packet data to remove ambiguity about what the end point might do with the packet.

Note Signature 64000 subsignature 0 will fire when it sees the alerts from signature 1000 subsignature 0 and signature 1001 subsignature 0 on the same source address. The source address selection is a result of the meta key default value of Axxx. You can change the behavior by changing the meta key setting to xxBx (destination address) for example.

Creating a Meta Engine Signature

To create a signature based on the Meta engine, follow these steps:

Step 1 Log in to the CLI using an account with administrator or operator privileges.

Step 2 Enter signature definition submode.

sensor# configure terminal

sensor(config)# service signature-definition sig1

Step 3 Specify a signature ID and a subsignature ID for the signature. Custom signatures are in the range of 60000 to 65000.

sensor(config-sig)# signatures 64000 0

Step 4 Specify the signature engine.

sensor(config-sig-sig)# engine meta

Step 5 Insert a signature (named m1) at the beginning of the list.

sensor(config-sig-sig-met)# component-list insert m1 begin

Step 6 Specify the signature ID of the signature on which to match this component.

sensor(config-sig-sig-met-com)# component-sig-id 1000

Step 7 Exit component list submode.

sensor(config-sig-sig-met-com)# exit

Step 8 Insert another signature (named m2) at the end of the list.

sensor(config-sig-sig-met)# component-list insert m2 end

Step 9 Specify the signature ID of the signature on which to match this component.