Evaluating a data transmission is disclosed. In various embodiments evaluating the data transmission may include transforming a parameter associated with the data transmission into an augmented parameter wherein the augmented parameter represents a plurality of binned parameters. The augmented parameter is matched to a scaled parameterized rule set wherein the scaled parameterized rule set references the augmented parameter. The scaled parameterized rule set is applied to the data transmission.
|
7. A method for parameterizing a set of rules comprising:
electronically processing, using a processor, a value associated with a port and a protocol by dividing the value by a scaling factor and shifting the value;
returning an augmented value, wherein the augmented value corresponds to a plurality of values that have been grouped together to decrease a number of unique values in a parameterized rule set; and
expressing the parameterized rule set in terms of the augmented value.
1. A method of evaluating an electronic data transmission comprising:
transforming, using an electronic processor, a parameter associated with the electronic data transmission into an augmented parameter, wherein the augmented parameter represents a plurality of parameters that have been grouped together to decrease a number of unique parameters in a scaled parameterized rule set, wherein transforming the parameter includes dividing the parameter by a scaling factor and shifting the parameter;
matching the augmented parameter to the scaled parameterized rule set, wherein the scaled parameterized rule set references the augmented parameter; and
applying the scaled parameterized rule set to the electronic data transmission.
15. A non-transitory computer readable storage medium having embodied thereon computer instructions which when executed by a computer cause the computer to perform a method comprising:
transforming a parameter associated with the data transmission into an augmented parameter wherein the augmented parameter represents a plurality of parameters that have been grouped together to decrease a number of unique parameters in a scaled parameterized rule set, wherein transforming the parameter includes dividing the parameter by a scaling factor and shifting the parameter;
matching the augmented parameter to the scaled parameterized rule set wherein the scaled parameterized rule set references the augmented parameter; and
applying the scaled parameterized rule set to the data transmission.
10. A system for evaluating a data transmission comprising:
an interface configured to intercept the transmission;
a processor configured to:
transform a parameter associated with the data transmission into an augmented parameter wherein the augmented parameter represents a plurality of parameters that have been grouped together to decrease a number of unique parameters in a scaled parameterized rule set, wherein transforming the parameter includes dividing the parameter by a scaling factor and shifting the parameter;
match the augmented parameter to the scaled parameterized rule set wherein the scaled parameterized rule set references the augmented parameter; and
apply the scaled parameterized rule set to the data transmission; and
a memory coupled with the processor and configured to provide the processor with instructions.
2. The method as recited in
3. The method as recited in
8. The method as recited in
9. The method as recited in
11. The system as recited in
12. The system as recited in
|
Security applications such as intrusion detection systems (IDS) or intrusion prevention systems (IPS) utilize scanning parameterization. Scanning parameterization involves using certain information such as port and protocol information for a network flow to identify the specific scanning parameters and subset of signatures that should be applied to the flow. If an application simply scans every flow for every possible signature, it will have slow performance. If the application is able to apply only a small subset of signatures to a given flow using the most appropriate scanning algorithm, performance can be improved. Scanning parameters specified for a typical TCP/IP based IDS/IPS system may include the amount of the flow to scan; the offsets within the flow's stream and/or packets that should be scrutinized for signatures; the subset of general purpose signatures that should be searched for; and the scanning algorithm that should be used on each flow.
Scanning parameterization is typically done using the protocol tuple: {source port, destination port, protocol}. Given a set of rules that specify scanning parameters and refer to “S” number of unique source ports and “D” number of unique destination ports, parameterization may result in up to S×D number of parameterized rule sets for a complete set of protcols. As the number of source ports and destination ports increases, a large number of parameterized rule sets may be generated, requiring additional system storage resources. Other transmission data may also be used to parameterize rules and rules may specify more than one protocol, also resulting in many parameterized rule sets. A solution for scanning parameterization resulting in fewer parameterized rule sets would be useful.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
As described in various embodiments below, binning the parameters used to parameterize a set of rules avoids the proliferation of a large number of rule sets after scanning parameterization and requires less system storage resources. Additionally, providing exceptions to the binning for critical parameters and avoiding binning unreferenced parameters at run time reduces unnecessary application of irrelevant parameterized rule sets.
System 100 includes packet sniffing module 102 that monitors packets from data flows. System 100 may be remotely located or installed locally in a manner that enables it to sample data flows. In the example shown, packet sniffing module 102 stores data such as copies of packets from data flows in database 104. In other embodiments, secondary storage or copying is not required. The packets are directed to scanning module 106. Scanning module 106 scans data flows, initiating a security action such as generating an alert or calling another application if a threat is detected. Policy store 108 is a database that stores rules and other information used for scanning.
When a packet is received by system 200, packet sniffing module 202 captures data from the packet. Scanning module 206 evaluates parameters in the captured data to determine the set of signatures that need to be run against the packet. For the purpose of illustration, a system where source and destination ports numbers are the parameters that are evaluated for each packet is described in detail. In various other embodiments, other parameters are evaluated. Typically, this parameterization check will be done at the start of a TCP flow and only done once for the flow, since all of the packets in the flow will have the same parameterization. Although this could be used for each packet in a flow, or possibly for each protocol state within a flow as well.
Parameterizing a set of rules results in a “parameter table.” Each line in the parameter table represents a “rule set” that is the result of combining rules from the original set of rules. Each rule set applies scanning parameters that are derived from one or more of the original rules. For example, a rule set may apply signatures from two or three rules that apply to a given flow and may use a scan distance that matches the longest scan distance among the applicable rules. For a given flow, only one rule set from the parameter table need be applied. Thus, determining which rules to apply is simply a matter of locating the flow in the parameter table.
Rule 1 specifies that a network transmission from any source port to a destination port 1020 is to be scanned for the signature “abcdefg.” The scan distance represents how much of the network transmission is to be scanned. In this case, the first 20 bytes are scanned for “abcdefg.” The other rules specify other signature scans that are performed against network transmissions that match the source port and destination port criteria specified in those rules.
Each parameterized rule set in the parameter table represents a combination of one or more original rules and may specify more than one signature to be applied. The scan distance specified is the greatest scan distance specified in an original rule included in each parameterized rule set. In some cases, the minimum value of all possible original rules is chosen or the intersection of a field across all possible original rules. The parameterized rule sets may be sorted or indexed by source port and destination port, making them easier to search. The parameterized rule set that applies to each tuple can be efficiently found by searching. However, as the number of source port and/or destination port numbers increases, the number of parameterized rule sets also increases. If there are N unique source ports and N unique destination ports referred to in the initial rules, then N2 parameterized rule sets would result, leading to a large parameter table that would require a large amount of memory.
In this example, if a parameter in a network transmission indicates that a rule set should be invoked, then the network transmission is scanned for one or more threat signatures associated with the parameter. For every threat signature, a rule may specify a scan distance, which determines the number of bytes in a network transmission to be scanned. If multiple signature scans are performed, then the longest scan distance is scanned. For example, in the case of rule set 4, signatures “bletch” and “argh” are scanned if a network transmission has a source port of 25 and a destination port of 80. The “argh” signature has a scan distance of 70 bytes, but the longer scan distance of 100 bytes corresponding to the “bletch” signature is used.
A potential disadvantage of binning parameters is that certain packets that have distinguishable unbinned parameters may have the same binned parameters. A signature that would only need to be applied to designated packets having a certain set of unique parameters may be applied to other packets that have parameters that are binned with the parameters of the designated packets. A bin scaling factor is provided so that a desirable compromise can be reached between larger bins and fewer parameterized rules and smaller bins and fewer unnecessary signatures applied. The bin scaling factor controls the number of original parameters that are binned together into a single binned parameter.
In addition, certain port numbers that are expected to occur very often in packets as a source or destination port are excluded from the binning process so that unnecessary signatures are not applied to the large number of packets that include those ports. Such designated “critical source ports” may be excluded from binning. Typically, these ports include well-known TCP/UDP/etc ports that are expected to have high levels of network traffic (e.g. port 80 (HTTP), port 25 (SMTP), port 21 (FTP), port 23 (TELNET), etc). Likewise, a set of “critical destination ports” are also excluded.
In
Critical source port 25 and critical destination port 80 are excluded from the binning because they are well known ports that are commonly used and subject to large amounts traffic. It is desirable to avoid unnecessary application of inappropriate binned rules to traffic on such ports. Since the critical ports are not binned, rules intended for packets received on other ports in a bin are not unnecessarily applied to packets received on the critical ports that would otherwise be scaled into the same bin.
Packets received on registered (1023-49,151), or dynamic (49,152-65,535) ports that receive fewer network transmissions, on the other hand, are good candidates for binning and translation.
The original network transmission evaluation rules in table 304 include only 3 unique source port numbers and 3 unique destination port numbers after binning. This results in 9 parameterized rule sets instead of 20 parameterized rule sets as was shown in
Next, the destination port is processed in a similar manner. At 407, a bitmap or other data structure is updated to indicate that the particular destination port is referenced by one or more signatures. At 408, the destination port is looked up in a list of critical ports to determine whether it is a critical destination port. If the destination port is found in the list of critical ports, then the destination port integer is not changed and control is transferred to 412. If the destination port is not found in the list of critical source ports, then control is transferred to 410 and the destination port is divided by a scaling factor, SF, and a baseline number, BN is added to it. If, for example, BN=100000, then this will yield a value between 100000 and 165535, depending on the scaling factor. At 412, the possibly-augmented source and destination ports are output along with the updated source and destination bitmaps.
The compilation process is applied to all of the original rules in the system to yield augmented rules that reference augmented source ports and augmented destination ports. The source and destination bitmap tables that are updated list each original source port and each original destination port that is referenced by the original rules. The original ports are binned according to the scaling factor SF and the critical ports are omitted from the binning process. If SF is large, then the process will bin many different original ports together into a few augmented ports. The augmented rules will reference relatively few unique augmented ports and a reasonable number of scaled, parameterized rule sets will result when the augmented rules are parameterized.
The process starts at 500. At 502, the port is looked up in list of critical ports. The list is implemented in a bit map or other appropriate data structure. If the port is found, then the port number is not changed and control is transferred to 510. If the port is not found then at 504 the port is looked up in the source or destination port bitmap or other data structure created at compile time to keep track of source or destination ports referenced by one or more signatures. If the port is not found, that indicates that the port is not referenced by any signatures. Control is then transferred to 506 and the port is replaced by a wildcard value such as FFFFFFFF to indicate that there are no strict matches of the port to a port referenced by a signature and control is transferred to 510. If the port is referenced by a signature, then control is transferred to 508 and the port number is augmented by dividing by the scaling factor used during compilation and adding the baseline number used during compilation to the integer result. Control is then transferred to 510. In 510, augmented port is returned.
Once the source and destination ports for the new flow have been possibly transformed into augmented source and destination ports or wildcard values, the scanning engine can search a scaled, parameterized table of rule sets to determine the appropriate scanning policy.
When source and destination port numbers are augmented as described above with scaled, parameterized rules, the scanning policy for each new flow is determined in an efficient manner. Critical ports are not grouped together with other ports, ensuring that they are processed separately for high speed. Ports that are not specifically referenced in a signature set are not scaled along with referenced ports at run time. This improves performance because the engine can exclude such unreferenced ports from scanning rather than scaling and grouping them with other explicitly referenced ports. Only wildcarded rules applying to any ports need be applied to such ports. Low bandwidth ports that are referenced are scaled, and their policies are combined as appropriate.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6529508, | Feb 01 1999 | Ericsson AB | Methods and apparatus for packet classification with multiple answer sets |
6715084, | Mar 26 2002 | Intellectual Ventures II LLC | Firewall system and method via feedback from broad-scope monitoring for intrusion detection |
6775657, | Dec 22 1999 | Cisco Technology, Inc.; Cisco Technology, Inc | Multilayered intrusion detection system and method |
6987468, | Oct 29 2004 | Microsoft Technology Licensing, LLC | Lossless adaptive encoding and decoding of integer data |
6990591, | Nov 18 1999 | SECUREWORKS HOLDINGS, INC ; SECUREWORKS, INC | Method and system for remotely configuring and monitoring a communication device |
7015837, | Oct 29 2004 | Microsoft Technology Licensing, LLC | Lossless adaptive encoding and decoding of integer data |
7151790, | Sep 28 2001 | Her Majesty the Queen in right of Canada, as represented by the Minister of Industry | Automatic signal extraction and analysis from time-frequency representation |
7305708, | Apr 14 2003 | Cisco Technology, Inc | Methods and systems for intrusion detection |
7333923, | Sep 29 1999 | NEC Corporation | Degree of outlier calculation device, and probability density estimation device and forgetful histogram calculation device for use therein |
7580585, | Oct 29 2004 | Microsoft Technology Licensing, LLC | Lossless adaptive Golomb/Rice encoding and decoding of integer data using backward-adaptive rules |
20030014377, | |||
20030182580, | |||
20030188191, | |||
20040221178, | |||
20050235360, | |||
20050273857, | |||
20060051039, | |||
20060053123, | |||
20060092053, | |||
20060103556, | |||
20060191010, | |||
20070192867, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 24 2005 | Symantec Corporation | (assignment on the face of the patent) | / | |||
Jun 14 2005 | NACHENBERG, CAREY | Symantec Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 016549 | /0213 | |
Sep 05 2009 | Symantec Corporation | Symantec Corporation | ADDRESS CHANGE OF ASSIGNEE | 025848 | /0564 | |
Nov 04 2019 | Symantec Corporation | CA, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051144 | /0918 |
Date | Maintenance Fee Events |
Sep 29 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 21 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 05 2022 | REM: Maintenance Fee Reminder Mailed. |
May 22 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 19 2014 | 4 years fee payment window open |
Oct 19 2014 | 6 months grace period start (w surcharge) |
Apr 19 2015 | patent expiry (for year 4) |
Apr 19 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 19 2018 | 8 years fee payment window open |
Oct 19 2018 | 6 months grace period start (w surcharge) |
Apr 19 2019 | patent expiry (for year 8) |
Apr 19 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 19 2022 | 12 years fee payment window open |
Oct 19 2022 | 6 months grace period start (w surcharge) |
Apr 19 2023 | patent expiry (for year 12) |
Apr 19 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |