Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation
Guide That Contains This Content
[+] Expand All
[-] Collapse All

    Understanding Custom Attack Objects

    You can create custom attack objects to detect new attacks or customize predefined attack objects to meet the unique needs of your network.

    To configure a custom attack object, you specify a unique name for it and then specify additional information, such as a general description and keywords, which can make it easier for you to locate and maintain the attack object.

    Certain properties in the attack object definitions are common to all types of attacks, such as attack name, description, severity level, service or application binding, time binding, recommended action, and protocol or port binding. Some fields are specific to an attack type and are available only for that specific attack definition.

    Note: IDP feature is enabled by default, no license is required. Custom attacks and custom attack groups in IDP policies can also be configured and installed even when a valid license and signature database are not installed on the device.

    This topic includes the following sections:

    Attack Name

    Specify an alphanumeric name for the object. You might want to include the protocol the attack uses in the attack name.

    Severity

    Specifies the brutality of the attack on your network. Severity categories, in order of increasing brutality, are info, warning, minor, major, critical (see Unresolved xref). Critical attacks are the most dangerous—typically these attacks attempt to crash your server or gain control of your network. Informational attacks are the least dangerous, and typically are used by network administrators to discover holes in their own security systems.

    Service and Application Bindings

    The service or application binding field specifies the service that the attack uses to enter your network.

    Note: Specify either the service or the protocol binding in a custom attack. In case you specify both, the service binding takes precedence.

    • Any—Specify any if you are unsure of the correct service and want to match the signature in all services. Because some attacks use multiple services to attack your network, you might want to select the Any service binding to detect the attack regardless of which service the attack chooses for a connection.
    • Service—Most attacks use a specific service to attack your network. You can select the specific service used to perpetrate the attack as the service binding. Table 1 displays supported services and default ports associated with the services.

      Table 1: Supported Services for Service Bindings

      Service

      Description

      Default Port

      AIM

      AOL Instant Messenger. America Online Internet service provider (ISP) provides Internet, chat, and instant messaging applications.

      TCP/5190

      BGP

      Border Gateway Protocol

      TCP/179

      Chargen

      Character Generator Protocol is a UDP- or TCP-based debugging and measurement tool.

      TCP/19, UDP/19

      DHCP

      Dynamic Host Configuration Protocol allocates network addresses and delivers configuration parameters from server to hosts.

      UDP/67, UDP/68

      Discard

      Discard protocol is an Application Layer protocol that describes a process for discarding TCP or UDP data sent to port 9.

      TCP/9, UDP/9

      DNS

      Domain Name System translates domain names into IP addresses.

      TCP/53, UDP/53

      Echo

      Echo

      TCP/7, UDP/7

      Finger

      Finger is a UNIX program that provides information about users.

      TCP/79, UDP/79

      FTP

      File Transfer Protocol (FTP) allows the sending and receiving of files between machines.

      TCP/21, UDP/21

      Gnutella

      Gnutella is a public domain file sharing protocol that operates over a distributed network.

      TCP/6346

      Gopher

      Gopher organizes and displays Internet servers' contents as a hierarchically structured list of files.

      TCP/70

      H225RAS

      H.225.0/RAS (Registration, Admission, and Status)

      UDP/1718, UDP/1719

      HTTP

      HyperText Transfer Protocol is the underlying protocol used by the World Wide Web (WWW).

      TCP/80, TCP/81, TCP/88, TCP/3128, TCP/7001 (Weblogic), TCP/8000, TCP/8001, TCP/8100 (JRun), TCP/8200 (JRun), TCP/8080, TCP/8888 (Oracle-9i), TCP/9080 (Websphere), UDP/80

      ICMP

      Internet Control Message Protocol

      IDENT

      Identification protocol is a TCP/IP Application Layer protocol used for TCP client authentication.

      TCP/113

      IKE

      Internet Key Exchange protocol (IKE) is a protocol to obtain authenticated keying material for use with ISAKMP.

      UDP/500

      IMAP

      Internet Message Access Protocol is used for retrieving messages.

      TCP/143, UDP/143

      IRC

      Internet Relay Chat (IRC) allows people connected to the Internet to join live discussions.

      TCP/6667

      LDAP

      Lightweight Directory Access Protocol is a set of protocols used to access information directories.

      TCP/389

      lpr

      Line Printer Daemon protocol is a TCP-based protocol used for printing applications.

      TCP/515

      MSN

      Microsoft Network Messenger is a utility that allows you to send instant messages and talk online.

      TCP/1863

      MSRPC

      Microsoft Remote Procedure Call

      TCP/135, UDP/135

      MSSQL

      Microsoft SQL is a proprietary database server tool that allows for the creation, access, modification, and protection of data.

      TCP/1433, TCP/3306

      MYSQL

      MySQL is a database management system available for both Linux and Windows.

      TCP/3306

      NBDS

      NetBIOS Datagram Service application, published by IBM, provides connectionless (datagram) applications to PCs connected with a broadcast medium to locate resources, initiate sessions, and terminate sessions. It is unreliable and the packets are not sequenced.

      UDP/137 (NBName), UDP/138 (NBDS)

      NFS

      Network File System uses UDP to allow network users to access shared files stored on computers of different types. SUN RPC is a building block of NFS.

      TCP/2049, UDP/2049

      nntp

      Network News Transport Protocol is a protocol used to post, distribute, and retrieve USENET messages.

      TCP/119

      NTP

      Network Time Protocol provides a way for computers to synchronize to a time reference.

      UDP/123

      POP3

      Post Office Protocol is used for retrieving e-mail.

      UDP/110, TCP/110

      Portmapper

      Service that runs on nodes on the Internet to map an ONC RPC program number to the network address of the server that listens for the program number.

      TCP/111, UDP/111

      RADIUS

      Remote Authentication Dial-In User Service application is a server program used for authentication and accounting purposes.

      UDP/1812, UDP/1813

      rexec

      Rexec

      TCP/512

      rlogin

      RLOGIN starts a terminal session on a remote host.

      TCP/513

      rsh

      RSH executes a shell command on a remote host.

      TCP/514

      rtsp

      Real-Time Streaming Protocol (RTSP) is for streaming media applications

      TCP/554

      SIP

      Session Initiation Protocol (SIP) is an Application-Layer control protocol for creating, modifying, and terminating sessions.

      TCP/5060, UDP/5060

      SMB

      Server Message Block (SMB) over IP is a protocol that allows you to read and write files to a server on a network.

      TCP/139, TCP/445

      SMTP

      Simple Mail Transfer Protocol is used to send messages between servers.

      TCP/25, UDP/25

      SNMP

      Simple Network Management Protocol is a set of protocols for managing complex networks.

      TCP/161, UDP/161

      SNMPTRAP

      SNMP trap

      TCP/162, UDP/162

      SQLMON

      SQL monitor (Microsoft)

      UDP/1434

      SSH

      SSH is a program to log into another computer over a network through strong authentication and secure communications on a channel that is not secure.

      TCP/22, UDP/22

      SSL

      Secure Sockets Layer

      TCP/443, TCP/80

      syslog

      Syslog is a UNIX program that sends messages to the system logger.

      UDP/514

      Telnet

      Telnet is a UNIX program that provides a standard method of interfacing terminal routers and terminal-oriented processes to each other.

      TCP/23, UDP/23

      TNS

      Transparent Network Substrate

      TCP/1521, TCP/1522, TCP/1523, TCP/1524, TCP/1525, TCP/1526, TCP/1527, TCP/1528, TCP/1529, TCP/1530, TCP/2481, TCP/1810, TCP/7778

      TFTP

      Trivial File Transfer Protocol

      UDP/69

      VNC

      Virtual Network Computing facilitates viewing and interacting with another computer or mobile router connected to the Internet.

      TCP/5800, TCP/5900

      Whois

      Network Directory Application Protocol is a way to look up domain names.

      TCP/43

      YMSG

      Yahoo! Messenger is a utility that allows you to check when others are online, send instant messages, and talk online.

      TCP/5050

    Protocol and Port Bindings

    Protocol or port bindings allow you to specify the protocol that an attack uses to enter your network. You can specify the name of the network protocol, or the protocol number.

    Note: Specify either the service or the protocol binding in a custom attack. In case you specify both, the service binding takes precedence.

    • IP—You can specify any of the supported network layer protocols using protocol numbers. Table 2 lists protocol numbers for different protocols.

      Table 2: Supported Protocols and Protocol Numbers

      Protocol Name

      Protocol Number

      IGMP

      2

      IP-IP

      4

      EGP

      8

      PUP

      12

      TP

      29

      IPV6

      41

      ROUTING

      43

      FRAGMENT

      44

      RSVP

      46

      GRE

      47

      ESP

      50

      AH

      51

      ICMPV6

      58

      NONE

      59

      DSTOPTS

      60

      MTP

      92

      ENCAP

      98

      PIM

      103

      COMP

      108

      RAW

      255

    • ICMP, TCP, and UDP—Attacks that do not use a specific service might use specific ports to attack your network. Some TCP and UDP attacks use standard ports to enter your network and establish a connection.
    • RPC—The remote procedure call (RPC) protocol is used by distributed processing applications to handle interaction between processes remotely. When a client makes a remote procedure call to an RPC server, the server replies with a remote program; each remote program uses a different program number. To detect attacks that use RPC, configure the service binding as RPC and specify the RPC program ID.

    Table 3 displays sample formats for key protocols.

    Table 3: Sample Formats for Protocols

    Protocol Name

    Protocol Number

    Description

    ICMP

    <Port>ICMP</Port>

    Specify the protocol name.

    IP

    <Port>IP/protocol-number</Port>

    Specify the Network Layer protocol number.

    RPC

    <Port>RPC/program-number</Port>

    Specify the RPC program number.

    TCP or UDP

    • <Port>TCP </Port>
    • <Port>TCP/port </Port>
    • <Port>TCP/minport-maxport </Port>

    Specifying the port is optional for TCP and UDP protocols. For example, you can specify either of the following:

    • <Port>UDP</Port>
    • <Port>UDP/10</Port>
    • <Port>UDP/10-100</Port>

    Time Bindings

    Use time bindings to configure the time attributes for the custom attack object. Time attributes control how the attack object identifies attacks that repeat for a certain number of times. By configuring the scope and count of an attack, you can detect a sequence of the same attacks over a period of time (one minute) across sessions.

    Scope

    Specify the scope within which the count of an attack occurs:

    • Source—Specify this option to detect attacks from the source address for the specified number of times, regardless of the destination address. This means that for a given attack, a threshold value is maintained for each attack from the source address. The destination address is ignored. For example, anomalies are detected from two different pairs (ip-a, ip-b) and (ip-a, ip-c) that have the same source address ip-a but different destination addresses ip-b and ip-c. Then the number of matches for ip-a increments to 2. Suppose the threshold value or count is also set to 2, then the signature triggers the attack event.
    • Destination—Specify this option to detect attacks sent to the destination address for the specified number of times, regardless of the source address. This means that for a given attack, a threshold value is maintained for each attack from the destination address. The source address is ignored. For example, if anomalies are detected from two different pairs (ip-a, ip-b) and (ip-c, ip-b) that have the same destination address ip-b but different source addresses ip-a and ip-c. Then the number of matches for ip-b increments to 2. Suppose the threshold value or count is also set to 2, then the signature triggers the attack event.
    • Peer—Specify this option to detect attacks between source and destination IP addresses of the sessions for the specified number of times. This means that the threshold value is applicable for a pair of source and destination addresses. Suppose anomalies are detected from two different source and destination pairs (ip-a, ip-b) and (ip-a, ip-c). Then the number of matches for each pair is set to 1, even though both pairs have a common source address.

    Count

    Count or threshold value specifies the number of times that the attack object must detect an attack within the specified scope before the device considers the attack object to match the attack. If you bind the attack object to multiple ports and the attack object detects that attack on different ports, each attack on each port is counted as a separate occurrence. For example, when the attack object detects an attack on TCP/80 and then on TCP/8080, the count is two.

    Once the count match is reached, each attack that matches the criteria causes the attack count to increase by one. This count cycle lasts for a duration of 60 seconds, after which the cycle repeats.

    Attack Properties (Signature Attacks)

    Signature attack objects use a stateful attack signature (a pattern that always exists within a specific section of the attack) to detect known attacks. They also include the protocol or service used to perpetrate the attack and the context in which the attack occurs. The following properties are specific to signature attacks, and you can configure them when configuring signature attack:

    Note: Attack context, flow type, and direction are mandatory fields for the signature attack definition.

    Attack Context

    An attack context defines the location of the signature. If you know the service and the specific service context, specify that service and then specify the appropriate service contexts. If you know the service, but are unsure of the specific service context, specify one of the following general contexts:

    • first-data-packet—Specify this context to detect the attack in only the first data packet.
    • first-packet—Specify this context to detect the attack in only the first packet of a stream. When the flow direction for the attack object is set to any, the device checks the first packet of both the server-to-client and the client-to-server flows. If you know that the attack signature appears in the first packet of a session, choosing first packet instead of packet reduces the amount of traffic the device needs to monitor, which improves performance.
    • packet—Specify this context to match the attack pattern within a packet. When you select this option, you must also specify the service binding to define the service header options . Although not required, specifying these additional parameters improves the accuracy of the attack object and thereby improves performance.
    • line—Specify this context to detect a pattern match within a specific line within your network traffic.
    • normalized-stream—Specify this context to detect the attack in an entire normalized stream. The normalized stream is one of the multiple ways of sending information. In this stream the information in the packet is normalized before a match is performed. Suppose www.yahoo.com/sports is the same as www.yahoo.com/s%70orts. The normalized form to represent both of these URLs might be www.yahoo.com/sports. Choose normalized stream instead of stream, unless you want to detect some pattern in its exact form. For example, if you want to detect the exact pattern www.yahoo.com/s%70orts, then select stream.
    • normalized-stream256—Specify this context to detect the attack in only the first 256 bytes of a normalized stream.
    • normalized-stream1k—Specify this context to detect the attack in only the first 1024 bytes of a normalized stream.
    • normalized-stream-8k—Specify this context to detect the attack in only the first 8192 bytes of a normalized stream.
    • stream—Specify this context to reassemble packets and extract the data to search for a pattern match. However, the device cannot recognize packet boundaries for stream contexts, so data for multiple packets is combined. Specify this option only when no other context option contains the attack.
    • stream256—Specify this context to reassemble packets and search for a pattern match within the first 256 bytes of a traffic stream. When the flow direction is set to any, the device checks the first 256 bytes of both the server-to-client and client-to-server flows. If you know that the attack signature will appear in the first 256 bytes of a session, choosing stream256 instead of stream reduces the amount of traffic that the device must monitor and cache, thereby improving performance.
    • stream1k—Specify this context to reassemble packets and search for a pattern match within the first 1024 bytes of a traffic stream. When the flow direction is set to any, the device checks the first 1024 bytes of both the server-to-client and client-to-server flows. If you know that the attack signature will appear in the first 1024 bytes of a session, choosing stream1024 instead of stream reduces the amount of traffic that the device must monitor and cache, thereby improving performance.
    • stream8k—Specify this context to reassemble packets and search for a pattern match within the first 8192 bytes of a traffic stream. When the flow direction is set to any, the device checks the first 8192 bytes of both the server-to-client and client-to-server flows. If you know that the attack signature will appear in the first 8192 bytes of a session, choosing stream8192 instead of stream reduces the amount of traffic that the device must monitor and cache, thereby improving performance.

    Attack Direction

    You can specify the connection direction of the attack. Using a single direction (instead of Any) improves performance, reduces false positives, and increases detection accuracy.

    • Client to server (detects the attack only in client-to-server traffic)
    • Server to client (detects the attack only in server-to-client traffic)
    • Any (detects the attack in either direction)

    Attack Pattern

    Attack patterns are signatures of the attacks you want to detect. A signature is a pattern that always exists within an attack; if the attack is present, so is the signature. To create the attack pattern, you must first analyze the attack to detect a pattern (such as a segment of code, a URL, or a value in a packet header), then create a syntactical expression that represents that pattern. You can also negate a pattern. Negating a pattern means that the attack is considered matched if the pattern defined in the attack does not match the specified pattern.

    Note: Pattern negation is supported for packet, line, and application based contexts only and not for stream and normalized stream contexts.

    Protocol-Specific Parameters

    Specifies certain values and options existing within packet headers. These parameters are different for different protocols. In a custom attack definition, you can specify fields for only one of the following protocols—TCP, UDP, or ICMP. Although, you can define IP protocol fields with TCP or UDP in a custom attack definition.

    Note: Header parameters can be defined only for attack objects that use a packet or first packet context. If you specified a line, stream, stream 256, or a service context you cannot specify header parameters.

    If you are unsure of the options or flag settings for the malicious packet, leave all fields blank and Intrusion Detection and Prevention (IDP) attempts to match the signature for all header contents.

    Table 4 displays fields and flags that you can set for attacks that use the IP protocol.

    Table 4: IP Protocol Fields and Flags

    Field

    Description

    Type of Service

    Specify a value for the service type. Common service types are:

    • 0000 Default
    • 0001 Minimize Cost
    • 0002 Maximize Reliability
    • 0003 Maximize Throughput
    • 0004 Minimize Delay
    • 0005 Maximize Security

    Total Length

    Specify a value for the number of bytes in the packet, including all header fields and the data payload.

    ID

    Specify a value for the unique value used by the destination system to reassemble a fragmented packet.

    Time to Live

    Specify an integer value in the range of 0–255 for the time-to-live (TTL) value of the packet. This value represents the number of devices the packet can traverse. Each router that processes the packet decrements the TTL by 1; when the TTL reaches 0, the packet is discarded.

    Protocol

    Specify a value for the protocol used.

    Source

    Enter the source address of the attacking device.

    Destination

    Enter the destination address of the attack target.

    Reserved Bit

    This bit is not used.

    More Fragments

    When set (1), this option indicates that the packet contains more fragments. When unset (0), it indicates that no more fragments remain.

    Don’t Fragment

    When set (1), this option indicates that the packet cannot be fragmented for transmission.

    Table 5 displays packet header fields and flags that you can set for attacks that use the TCP protocol.

    Table 5: TCP Header Fields and Flags

    Field

    Description

    Source Port

    Specify a value for the port number on the attacking device.

    Destination Port

    Specify a value for the port number of the attack target.

    Sequence Number

    Specify a value for the sequence number of the packet. This number identifies the location of the data in relation to the entire data sequence.

    ACK Number

    Specify a value for the ACK number of the packet. This number identifies the next sequence number; the ACK flag must be set to activate this field.

    Header Length

    Specify a value for the number of bytes in the TCP header.

    Data Length

    Specify a value for the number of bytes in the data payload. For SYN, ACK, and FIN packets, this field should be empty.

    Window Size

    Specify a value for the number of bytes in the TCP window size.

    Urgent Pointer

    Specify a value for the urgent pointer. The value indicates that the data in the packet is urgent; the URG flag must be set to activate this field.

    URG

    When set, the urgent flag indicates that the packet data is urgent.

    ACK

    When set, the acknowledgment flag acknowledges receipt of a packet.

    PSH

    When set, the push flag indicates that the receiver should push all data in the current sequence to the destination application (identified by the port number) without waiting for the remaining packets in the sequence.

    RST

    When set, the reset flag resets the TCP connection, discarding all packets in an existing sequence.

    SYN

    When set, the SYN flag indicates a request for a new session.

    FIN

    When set, the final flag indicates that the packet transfer is complete and the connection can be closed.

    R1

    This reserved bit (1 of 2) is not used.

    R2

    This reserved bit (2 of 2) is not used.

    Table 6 displays packet header fields and flags that you can set for attacks that use the UDP protocol.

    Table 6: UDP Header Fields and Flags

    Field

    Description

    Source Port

    Specify a value for the port number on the attacking device.

    Destination Port

    Specify a value for the port number of the attack target.

    Data Length

    Specify a value for the number of bytes in the data payload.

    Table 7 displays packet header fields and flags that you can set for attacks that use the ICMP protocol.

    Table 7: ICMP Header Fields and Flags

    Field

    Description

    ICMP Type

    Specify a value for the primary code that identifies the function of the request or reply packet.

    ICMP Code

    Specify a value for the secondary code that identifies the function of the request or reply packet within a given type.

    Sequence Number

    Specify a value for the sequence number of the packet. This number identifies the location of the request or reply packet in relation to the entire sequence.

    ICMP ID

    Specify a value for the identification number. The identification number is a unique value used by the destination system to associate request and reply packets.

    Data Length

    Specify a value for the number of bytes in the data payload.

    Sample Signature Attack Definition

    The following is a sample signature attack definition:

    <Entry>
    <Name>sample-sig</Name>
    <Severity>Major</Severity>
    <Attacks><Attack>
    <TimeBinding><Count>2</Count>
    <Scope>dst</Scope></TimeBinding>
    <Application>FTP</Application>
    <Type>signature</Type>
    <Context>packet</Context>
    <Negate>true</Negate>
    <Flow>Control</Flow>
    <Direction>any</Direction>
    <Headers><Protocol><Name>ip</Name>
    <Field><Name>ttl</Name>
    <Match>==</Match><Value>128</Value></Field>
    </Protocol><Name>tcp</Name>
    <Field><Name><Match>&lt;</Match>
    <value>1500</Value>
    </Field></Protocol></Headers>
    </Attack></Attacks>
    </Entry>

    Attack Properties (Protocol Anomaly Attacks)

    A protocol anomaly attack object detects unknown or sophisticated attacks that violate protocol specifications (RFCs and common RFC extensions). You cannot create new protocol anomalies, but you can configure a new attack object that controls how your device handles a predefined protocol anomaly when detected.

    Note: The service or application binding is a mandatory field for protocol anomaly attacks.

    The following properties are specific to protocol anomaly attacks. Both attack direction and test condition are mandatory fields for configuring anomaly attack definitions.

    Attack Direction

    Attack direction allows you to specify the connection direction of an attack. Using a single direction (instead of Any) improves performance, reduces false positives, and increases detection accuracy:

    • Client to server (detects the attack only in client-to-server traffic)
    • Server to client (detects the attack only in server-to-client traffic)
    • Any (detects the attack in either direction)

    Test Condition

    Test condition is a condition to be matched for an anomaly attack. Juniper Networks supports certain predefined test conditions. In the following example, the condition is a message that is too long. If the size of the message is longer than the preconfigured value for this test condition, the attack is matched.

    <Attacks>
    <Attack>
    <Type>anomaly</Type>
    ...
    <Test>MESSAGE_TOO_LONG</Test>
    <Value>yes</Value>
    ...
    </Attack>
    </Attacks>

    Sample Protocol Anomaly Attack Definition

    The following is a sample protocol anomaly attack definition:

    <Entry>
    <Name>sample-anomaly</Name>
    <Severity>Info</Severity>
    <Attacks><Attack>
    <TimeBinding><Count>2</Count>
    <Scope>peer</Scope></TimeBinding>
    <Application>TCP</Application>
    <Type>anomaly</Type>
    <Test>OPTIONS_UNSUPPORTED</Test>
    <Direction>any</Direction>
    </Attack></Attacks>
    </Entry>

    Attack Properties (Compound or Chain Attacks)

    A compound or chain attack object detects attacks that use multiple methods to exploit a vulnerability. This object combines multiple signatures and/or protocol anomalies into a single attack object, forcing traffic to match a pattern of combined signatures and anomalies within the compound attack object before traffic is identified as an attack. By combining and even specifying the order in which signatures or anomalies must match, you can be very specific about the events that need to take place before the device identifies traffic as an attack.

    You must specify a minimum of 2 members (attacks) in a compound attack. You can specify up to 32 members in compound attack. Members can be either signature or anomaly attacks.

    The following properties are specific to compound attacks:

    Scope

    Scope allows you to specify if the attack is matched within a session or across transactions in a session. If the specified service supports multiple transactions within a single session, you can also specify whether the match should occur over a single session or can be made across multiple transactions within a session:

    • Specify session to allow multiple matches for the object within the same session.
    • Specify transaction to match the object across multiple transactions that occur within the same session.

    Order

    Use ordered match to create a compound attack object that must match each member signature or protocol anomaly in the order you specify. If you do not specify an ordered match, the compound attack object still must match all members, but the attack pattern or protocol anomalies can appear in the attack in random order.

    Reset

    Specifies that a new log is generated each time an attack is detected within the same session. If this field is set to no then the attack is logged only once for a session.

    Expression (Boolean expression)

    Using the boolean expression field disables the ordered match function. The boolean expression field makes use of the member name or member index properties. The following three boolean operators are supported along with parenthesis, which helps determine precedence:

    • or—If either of the member name patterns match, the expression matches.
    • and—If both of the member name patterns match, the expression matches. It does not matter which order the members appear in.
    • oand (ordered and)—If both of the member name patterns match, and if they appear in the same order as specified in the boolean expression, the expression matches.

    Suppose you have created five signature members, labelled s1-s5. Suppose you know that the attack always contains the pattern s1, followed by either s2 or s3. You also know that the attack always contains s4 and s5, but their positions in the attack can vary. In this case, you might create the following boolean expression: ((s1 oand s2) or (s1 oand s3)) and (s4 and s5)

    Note: You can either define an ordered match or an expression (not both) in a custom attack definition.

    Member Index

    Member Index is specified in chain attacks to identify a member (attack) uniquely. In the following example, member index is used to identify the members m01 and m02 in the defined expression:

    <Expression>m02 AND m01</Expression>
    <Order>no</Order>
    <Reset>no</Reset>
    <ScopeOption/>
    <Members>
    <Attack>
    <Member>m01</Member>
    <Type>Signature</Type>
    ...
    <Pattern><!CDATA[.*/getlatestversion]]></Pattern>
    <Regex/>
    </Attack>
    <Attack><Member>m02</Member>
    <Type>Signature</Type>
    ...
    <Pattern><!CDATA[\[Skype\'.*]]></Pattern>
    <Regex/>
    </Attack>
    <Attack>

    Note: When defining the expression, you must specify the member index for all members.

    Sample Compound Attack Definition

    The following is a sample compound attack definition:

    <Entry>
    <Name>sample-chain</Name>
    <Severity>Critical</Severity>
    <Attacks><Attack>
    <Application>HTTP</Application>
    <Type>Chain</Type>
    <Order>yes</Order>
    <Reset>yes</Reset>
    <Members><Attack>
    <Type>Signature</Type>
    <Context>packet</Context>
    <Pattern><![CDATA[Unknown[]></Pattern>
    <Flow>Control</Flow>
    <Direction>cts</Direction>
    </Attack><Attack>
    <Type>anomaly</Type>
    <Test>CHUNK_LENGTH_OVERFLOW</Test>
    <Direction>any</Direction>
    </Attack></Members>
    </Attack></Attacks>
    </Entry>

    Published: 2012-06-29