WO2006090781A1 - フィルタリングルール分析方法及びシステム - Google Patents

フィルタリングルール分析方法及びシステム Download PDF

Info

Publication number
WO2006090781A1
WO2006090781A1 PCT/JP2006/303277 JP2006303277W WO2006090781A1 WO 2006090781 A1 WO2006090781 A1 WO 2006090781A1 JP 2006303277 W JP2006303277 W JP 2006303277W WO 2006090781 A1 WO2006090781 A1 WO 2006090781A1
Authority
WO
WIPO (PCT)
Prior art keywords
rule
rules
matrix
attribute
data
Prior art date
Application number
PCT/JP2006/303277
Other languages
English (en)
French (fr)
Inventor
Katsushi Matsuda
Original Assignee
Nec Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nec Corporation filed Critical Nec Corporation
Priority to US11/885,050 priority Critical patent/US7792775B2/en
Priority to JP2007504771A priority patent/JP4662080B2/ja
Publication of WO2006090781A1 publication Critical patent/WO2006090781A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management

Definitions

  • the present invention relates to a filtering rule analysis method and system for analyzing packet filtering rules.
  • a firewall is a network device or software installed in a gateway or router that connects an external network and an internal network, that is, a network to be protected.
  • a firewall protects the internal network from unauthorized access by inspecting packets that flow through the network and passing or blocking the packets.
  • the processing performed at the firewall is generally called packet filtering.
  • the firewall inspects packets based on a set of rules based on packet attributes (for example, source address and port, destination address and port, protocol type, etc.).
  • firewall permits the passage of packets based on a set of rules, such as “Allow the passage of packets with a specific protocol that is suitable for a specific port of the address of a public server on the company's network”.
  • a set of rules is called a policy.
  • Japanese Patent Application Laid-Open No. 2000-174808 describes a technique for increasing the packet filtering processing efficiency of a firewall by changing the order between policy rules.
  • the operation method of the data packet filter described in Japanese Patent Application Laid-Open No. 2000-174808 is based on the packet filtering rule, in which a rule that frequently matches an incoming packet moves forward in the rule order. This increases the processing efficiency.
  • a rule is paired with another rule and a check is made to see if the rule collides with that pair. Collision is the change of the meaning of a rule by exchanging one rule with another.
  • Japanese Patent Application Laid-Open No. 2003-333084 describes a method for determining where to add a new rule when adding a rule to a firewall policy.
  • the new rule is compared with the existing rule in order, and if there is a rule in the existing rule that includes some or all of the new rule, the new rule is inserted immediately before the existing rule.
  • the algorithm for checking the rule inclusion relation is as follows. First, select a new rule. Then select existing rules one by one. In the selected rules, interface verification, protocol verification, chain verification, address verification, and port verification were performed. If so, select the next existing rule and do the same collation. If there is a match, match the action, and if the action matches, insert it immediately before the selected existing rule. If the actions do not match, the user is prompted to decide whether or not to insert.
  • Japanese Patent Laid-Open No. 2003-333084 uses a technique that is almost the same as the step of determining the intersection of the field of a rule pair described in Japanese Patent Laid-Open No. 2000-174808. Yes.
  • this Japanese Laid-Open Patent Publication No. 2003-333084 information on effective time is added to a rule, the rule set is scanned at a certain time interval, and if the effective time matches or exceeds the current time, the rule is deleted. It is also described to do. This technology makes it possible to delete rules as appropriate!
  • Patent Document 1 Japanese Patent Laid-Open No. 2000-174808
  • Patent Document 2 JP 2003-330884 A
  • Non-Patent Literature 1 Juntaka Okagi, Katsushi Matsuda, Takashi Ogawa, “Policy Language SCCML for Security Operation Management”, Information Processing Society of Japan Research Report, Vol. 2004, No. 129, pp. 89-94
  • the identity of packet filtering processing in each device can be determined when there are a plurality of network devices performing packet filtering processing.
  • the purpose of the present invention is to support the management of firewall filtering rules, to understand the relationship between rules, what packets are allowed to pass and what packets are blocked, and the overall rules
  • Another object of the present invention is to provide a filtering rule analysis method and system capable of optimizing a rule set in a complicated rule set.
  • Another object of the present invention is to provide a filtering rule analysis method and system capable of performing packet filtering processing at high speed.
  • Still another object of the present invention is to provide a filtering rule analysis method and system capable of determining the identity of packet filtering processing in a plurality of devices. Means for solving the problem
  • a filtering rule analysis method is a rule used for packet filtering processing, the step of storing a set of rules with priorities set therein, and the rule as an application condition for each rule.
  • a blank indicating the correspondence between the minimum area specified by the start and end points of the attribute range of the packet described in And a spatial data generation stage for generating spatial data including priority information.
  • an integrable rule specifying stage for specifying a combination of rules that can be integrated, and a rule belonging to the stored rule set, wherein the rule is included in the possible integrated rule specifying stage.
  • a rule integration stage that integrates rules that form the specified combination.
  • the spatial data generation step may include a step of deleting the data of the minimal area associated with only the default rule from the generated spatial data! ⁇ .
  • Such a configuration can reduce the data in the minimal area and make it easier to understand the relationship between the rules.
  • memory consumption can be reduced.
  • the filtering rule analysis system is a rule used for packet filtering processing, which is a rule storage means for storing a set of rules set with priorities, and an application condition for each rule. Spatial data indicating the correspondence between the minimum area specified by the start and end points of the attribute range of the packet described in the rule and the rule, and generating spatial data including priority information And a spatial data generation means.
  • the filtering rule analysis system of the present invention further uses the spatial data generated by the spatial data generation means to analyze the overlap of attribute ranges described as application conditions of each rule.
  • An analysis means may be provided.
  • the overlap analysis means analyzes the overlap of the attribute ranges described as the application conditions of each rule, so that the relationship between rules can be grasped in the management of filtering rules.
  • Such overlap analysis means can be used for the range power of an attribute described in one rule, a state included in a range of attributes described in another rule having a higher priority than the one rule, or a partially overlapping state The structure which detects this may be sufficient.
  • Such a configuration detects rules that will be hidden by higher priority rules, The relationship between rules can be grasped.
  • the filtering rule analysis system of the present invention uses the packet attribute input means for inputting packet attributes and the spatial data generated by the spatial data generation means to which minimum region the packet attribute corresponds. And check whether the packet with the input attribute is allowed to pass by the packet filtering process by checking the operation according to the rule corresponding to the minimum area where the attribute of the packet corresponds. And a pass test means. According to such a configuration, it is possible to easily understand what packets are allowed to pass and what packets are blocked!
  • the rule storage means stores a plurality of sets of rules
  • the spatial data generation means power The starting point of the attribute range of the packet described in the rule as the application condition of each rule and Extract all the rule forces included in the set of multiple rules, and generate spatial data for each set of rules using the start and end points. Equipped with an identity analysis means that determines whether or not the packet filtering process based on each set of rules is the same process by determining whether or not the action of the rule in the corresponding minimal area matches. It may be a different configuration. According to such a configuration, it is possible to determine the identity of packet filtering processing in a plurality of devices.
  • the identity analysis means may be configured to output the range of the minimum area when it is determined that the rule operations in the corresponding minimum area do not match between a plurality of spatial data.
  • the rule deletion means deletes rules that are unnecessary, so that the set of rules can be optimized.
  • the packet filtering process is affected. It may be configured with a rule correction means to correct the rule so as to eliminate the unreasonable area.
  • the set of rules can be optimized by modifying the rules by the rule modifying means.
  • the rule correction means identifies an area that overlaps with the attribute range described as the application condition of another rule having higher priority from the attribute range described as the application condition of one rule, and in that area.
  • the rule correction means divides a rule in which a part of the attribute range described as the application condition has a higher priority and overlaps with the attribute range described as the application condition of other rules for each minimal area. However, it is a configuration that deletes the rule that overlaps the attribute range described as the application condition of other rules with higher priority among the multiple rules obtained by dividing.
  • the system of the present invention refers to the attributes of a plurality of buckets actually subjected to packet filtering processing, and for each minimal area, counts the number of packets that contain the attribute in the minimal area
  • a rule creation means for sorting the minimal areas in order of the number of packets counted, and creating a new rule based on a part or all of the minimal areas and a rule corresponding to the minimal area. It may be a configuration with it! /. According to such a configuration, the rule creating means sorts the minimum areas in descending order of the number of packets counted, and based on a part or all of the minimum areas and the rules corresponding to the minimum areas. Then create a new rule. Therefore, a new rule is created according to the packet that is actually targeted for the packet filtering process, so that the packet filtering process can be performed at high speed.
  • the rule creating means selects a predetermined number of minimal areas in the descending order of the number of packets counted from the sorted minimal areas, and based on the minimal areas and the rules corresponding to the minimal areas! You can create a new rule and add it to the set of rules that already existed! /.
  • the rule creation means is configured to identify a rule and delete such a rule from a set of rules to which a newly created rule is added, even if the rule is deleted without affecting the packet filtering process. Also good. According to such a configuration, a set of rules can be optimized.
  • the rule creation means Select all areas in order, create a new rule based on the selected minimal area and the rule corresponding to the minimal area, and create a new set of rules based only on the created rule. There may be.
  • a rule-making means is provided, and the rule-making means is an adjacent minimum area, and the minimum areas in which the difference in the number of packets counted by the frequency analysis means is within a predetermined range are combined to form one minimum area. Let's create a new rule after combining the minimum region with the region.
  • the filtering rule analysis system of the present invention includes an integrable rule specifying means for specifying a combination of rules that can be integrated, and a rule belonging to the rule set stored in the rule storage means, It may be configured with a rule integration means that integrates rules that form a specified combination! / ⁇ . According to such a configuration, the rules can be integrated. By integrating rules, the number of rules can be reduced, making it easier for administrators to understand the rules.
  • the integrable rule identification means is a combination of the number of minimal regions corresponding to one of the two rules that operate in common and not the default rule, and the number of minimal regions corresponding to the other rule.
  • the combination of two rules is considered as a candidate for a combination of rules that can be integrated when the number of the minimum regions corresponding to the region determined by is determined, and the minimum region corresponding to the region determined by the two rules forming the candidate combination
  • Each of the minimum region forces 2 including the vertices of the region determined by the two rules 2 In the case of dealing with any difference, it may be configured so that the combination of two rules can be integrated. Or, the ability to identify integrable rules Identifies the combination of rules that can be integrated, and the rule integration means integrates the rules that form the specified combination. The configuration may be repeated until no combination can be identified.
  • the spatial data generation means may be configured to delete the data of the minimal area associated with only the default rule from the generated spatial data. According to such a configuration, the data in the minimal area can be reduced, and the relationship between the rules can be easily understood. In addition, since the number of minimum regions can be reduced, memory consumption can be reduced.
  • the spatial data generation means Using the value obtained by subtracting the specified value of the start point of the attribute range of the packet described in the rule as the applicable condition of the rule and the value obtained by adding a predetermined value to the value of the end point of the attribute range, A configuration may be adopted in which a minimum region specified by the start point and end point of a range of packet attributes described in a rule is defined as a rule application condition.
  • firewall filtering rules Understanding the relationship between rules and the rules of what packets are allowed to pass and what packets are blocked The whole can be grasped easily.
  • a set of rules can be optimized in accordance with a complicated set of rules, packet filtering processing can be performed at high speed, and packet filtering processing in a plurality of devices can be identical. Sex can be judged.
  • FIG. 1 is a block diagram showing a configuration of a filtering rule analysis system according to a first embodiment of this invention.
  • FIG. 2 is a flowchart showing an example of matrix spatial data creation processing by the matrixing unit.
  • FIG. 3 is a flowchart showing an example of processing by an overlap analysis unit.
  • FIG. 4 is a flowchart showing an example of processing by an overlap analysis unit.
  • FIG. 5 is a diagram showing an example of a rule set.
  • FIG. 6 is a schematic diagram showing a rule set in a two-dimensional plane.
  • FIG. 7 is a schematic diagram showing matrix data in a two-dimensional plane.
  • FIG. 8 is a diagram showing an example of a description format of matrix data.
  • FIG. 9 is a diagram showing an example of rule data.
  • FIG. 10 is a diagram showing an example of matrix data.
  • FIG. 11 is a diagram showing an example of an analysis result by an overlap analysis unit.
  • FIG. 12 is a schematic diagram showing each rule data in a two-dimensional plane.
  • FIG. 13 is a diagram showing an example of an analysis result by an overlap analysis unit.
  • FIG. 14 is a block diagram showing a configuration of a filtering rule analysis system according to the second exemplary embodiment of the present invention.
  • FIG. 15 is a flowchart showing an example of test processing by a passing test unit.
  • FIG. 17 is a schematic diagram showing a two-dimensional space around a test packet.
  • FIG. 18 is a diagram showing an example of a test processing result by a passing test unit.
  • FIG. 19 is a block diagram showing a configuration of a filtering rule analysis system according to a third exemplary embodiment of the present invention.
  • FIG. 20 is a flowchart showing an example of processing in a passing test unit.
  • FIG. 21 is a diagram showing an example of a network configuration.
  • FIG. 22 is a diagram showing an example of a rule set.
  • FIG. 23 is a diagram showing an example of matrix data in which a list of rules is added.
  • FIG. 24 is a diagram showing an example of a test processing result by a passing test unit.
  • FIG. 25A shows a rule set and a test packet.
  • FIG. 25B is a diagram showing a rule set and a test packet.
  • FIG. 26 is a block diagram showing a filtering rule analysis system of the fourth exemplary embodiment of the present invention.
  • FIG. 27 is a flowchart showing an example of matrix spatial data creation processing by the matrixing unit.
  • FIG. 28 is a flowchart showing an example of processing by the identity analysis unit.
  • FIG. 29 is a diagram showing an example of a network configuration.
  • FIG. 30 is a diagram showing an example of a rule set.
  • FIG. 31 is a diagram showing an example of an analysis result by the identity analysis unit.
  • FIG. 32 is a diagram showing an example of a rule set.
  • FIG. 33 is a diagram showing an example of an analysis result by the identity analysis unit.
  • FIG. 34 is a block diagram showing a filtering rule analysis system according to a fifth embodiment of the present invention.
  • FIG. 35 is a flowchart showing an example of processing progress of rule deletion and rule correction by a rule deletion unit.
  • FIG. 36 is a flow chart showing an example of a process progress of rule deletion and rule correction by the rule deletion unit.
  • FIG. 37 is a flow chart showing an example of a process progress of rule deletion and rule correction by the rule deletion unit.
  • FIG. 38 is a diagram showing a determination example by a rule deletion unit.
  • FIG. 39 is a diagram showing a specific example of reduction.
  • FIG. 40 is a diagram showing a specific example of reduction.
  • FIG. 41A is a diagram showing an example when reduction is possible.
  • FIG. 41B is a diagram showing an example when reduction is impossible.
  • FIG. 42 is a diagram showing an example when reduction is impossible.
  • FIG. 43 is a diagram showing a situation where the remaining area is viewed from the infinity direction and the infinity direction of each axis when the remaining area is in a rectangular state.
  • FIG. 44 is a diagram showing a situation in which the remaining area is viewed from the infinity direction and the infinity direction of each axis when the remaining area is not rectangular.
  • FIG. 45 is an explanatory diagram schematically showing, in a two-dimensional space, a case in which it is determined whether or not a rule can be reduced and the rule is reduced.
  • FIG. 46 is a diagram schematically showing, in a three-dimensional space, a case in which it is determined whether or not a rule can be reduced and the rule is reduced.
  • FIG. 47 is a diagram showing an example of a rule set.
  • FIG. 48 is a schematic diagram showing a rule set in a two-dimensional space.
  • FIG. 49 is a schematic diagram showing a change in the rule set accompanying the processing of the rule deletion unit.
  • FIG. 50 is a schematic diagram showing changes in the rule set accompanying the processing of the rule deletion unit.
  • FIG. 51 is a schematic diagram showing a change in the rule set accompanying the processing of the rule deletion unit.
  • FIG. 52 is a diagram showing an example of a processing result by a rule deletion unit.
  • FIG. 53 is a schematic diagram showing an example of performing reduction by increasing rules.
  • FIG. 54 is a block diagram showing a filtering rule analysis system of the sixth exemplary embodiment of the present invention.
  • FIG. 55 is a flowchart showing an example of processing by a frequency analysis unit.
  • FIG. 56 is a flowchart showing an example of a new rule set creation process by the rule entry part.
  • FIG. 57 is a flowchart showing another example of a new rule set creation process by the rule entry part.
  • FIG. 58 is a schematic diagram showing an example of combining matrix data.
  • FIG. 59 is a diagram showing an example of a rule set.
  • FIG. 60 is a diagram showing an example of a packet history.
  • FIG. 61 is a schematic diagram showing a matrix data in a two-dimensional plane.
  • FIG. 62 is a diagram showing an example of matrix data obtained by processing of a frequency analysis unit.
  • FIG. 63 is a diagram showing changes in the rule set copied to the buffer.
  • FIG. 64 is a diagram showing an example of a newly generated rule set.
  • FIG. 65 is a flow chart showing an example of the operation of a matrixing unit in the filtering rule analysis system of the seventh exemplary embodiment of the present invention.
  • FIG. 66 is a diagram showing an example of matrix data to be deleted.
  • FIG. 67 is a block diagram showing a filtering rule analysis system according to an eighth embodiment of the present invention.
  • FIG. 68 is a flowchart showing an example of the process of rule integration by the rule integration unit
  • FIG. 69 is a flowchart showing an example of processing progress of processing for obtaining integration candidates.
  • FIG. 70 is a flowchart showing an example of processing progress of processing for confirming whether or not a combination of rules as integration candidates can be integrated.
  • FIG. 71A is a diagram showing an example of rule data.
  • FIG. 71B is a diagram showing an example of rule data.
  • FIG. 72 is an explanatory diagram showing a comparison between Mq and Ma + Mb.
  • FIG. 74A is a diagram showing a packet on the boundary of the rule area.
  • FIG. 74B shows a packet on the boundary of the rule area.
  • FIG. 75A Matrix when the boundary value is the value that represents the starting point of each rule attribute and the value obtained by subtracting the predetermined value and the value that represents the ending point of each rule attribute It is explanatory drawing which shows the example of.
  • FIG. 75B Matrix when the boundary value is a value obtained by subtracting a predetermined value representing the starting point of each attribute of the rule and a value obtained by adding a predetermined value to the value representing the ending point of each attribute of the rule It is explanatory drawing which shows the example of.
  • firewall packet filtering rule and the router access control rule are similar rules, they may be collectively referred to as packet filtering rules. It may be noted.
  • the filtering rule analysis system according to the first embodiment of the present invention shown in FIG.
  • the analysis system 100 includes a rule storage unit 110, a matrix space storage unit 120, a matrix forming unit 130, and an overlap analysis unit 140.
  • Input device 920 inputs rule set 910 representing an arbitrary set of filtering rules in a unique format description to rule analysis system 100.
  • the description in a unique format may be a description in a common format that does not depend on various network devices, rather than a description that depends on a specific network device, for example, a specific firewall or a specific router.
  • the description in the original format may be, for example, a description format in which a rule description format for a specific network device is adopted as a unified description format.
  • a case where the rule set 910 is described in a common format without depending on various network devices will be described as an example.
  • the rule analysis system 100 includes a rule storage unit 110, a matrix space storage unit 120, a matrixing unit 130, and an overlap analysis unit 140.
  • the rule storage unit 110 stores a set of filtering rules input by the input device 920, that is, a set of rules described in a unique format.
  • the matrix space storage unit 120 stores the rules as multidimensional matrix space data. The matrix space data will be described later.
  • the matrixing unit 130 converts the rules described in a unique format into matrix space data and stores them in the matrix space storage unit 120.
  • the overlap analysis unit 140 analyzes rule overlap with reference to matrix spatial data.
  • the output device 930 outputs a result analyzed by the rule analysis system 100.
  • the matrix forming unit 130 and the overlap analyzing unit 140 are realized by, for example, a CPU (Central Processing Unit) or an MPU (Micro Processing Unit) that operates according to a program.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • the rule storage unit 110 and the matrix space storage unit 120 are realized by a storage device, for example.
  • the output device 930 is realized by, for example, a display device.
  • the input device 920 converts a rule set described in a format dependent on various network devices into a rule set 910 described in a format independent of the network device and outputs the rule conversion system (not shown) ) Realized by interface.
  • the rule conversion system (not shown) described here is connected to various network devices and collects rules described in a format depending on the devices from the various network devices. Then, the rule conversion system stores knowledge about the description specifications of the rules in various security devices and the format information of the rules included in the rule set 910. Generate a rule of the form The rule conversion system outputs the set of rules generated in this way as a rule set 9 10. For example, a subroutine that allows the rule conversion system to collect rules and a subroutine that causes the rule conversion system to generate rules in a unique format from the collected rules are prepared in advance for each network device, for example.
  • a filtering rule is an IF—THEN rule that generally has both a conditional part and an execution part.
  • condition part the range using the source (source) address, source port, destination (destination) address, destination port, and protocol that are the attributes of the packet is described as a condition.
  • a condition such as “the destination port range is 0 to 80 and the protocol range is TCP” is described.
  • the combination of attributes described as conditions is arbitrary, and packets that satisfy the entire range of attributes described in the conditions are subject to application of the rule that includes the condition part.
  • the condition part shall indicate the entire range for the attribute that is not described.
  • the condition part shall indicate the entire range for the attribute that is not described.
  • the range of attributes described in a rule as a rule application condition is described as a condition to which the rule is applied when determining whether a packet is allowed to pass or not. Is included in the range of each attribute described as the rule application condition, This indicates that the rule can be applied when determining whether to pass or not.
  • THEN part describe whether or not to allow the passage of packets that match the condition part.
  • Such a rule is described in order.
  • This is a rule set of packet filtering.
  • Each rule has an order (sometimes referred to as priority).
  • a network device that performs knot filtering compares the rule condition part of the rule set with the attribute of that packet in turn.
  • processing is performed according to the action of the execution part of the rule.
  • a default rule is a rule that is executed when a packet does not match any of the other rules except the default rule.
  • the default rule is the rule with the widest condition part that matches any packet, and its format may not be in IF-THEN format.
  • Default rules are generally ordered at the beginning or end of the rule set. In the present embodiment, it is assumed that the order of default rules is last. Even if the rule conversion system (not shown), the power of network equipment, and the collected rule set are converted into a rule set 910 with a unique description, each rule included in the rule set 910 Keep the order of the rules in the original network device!
  • the input device 920 may convert the description format of the set of rules so that the computer (specifically, the rule analysis system 100) can handle and easily convert it.
  • the matrix forming unit 130 has five types of attributes used in the condition part of the rule, that is, a source address, a source port, and a destination keyword. Create a 5D space around the dress, destination port, and protocol.
  • the matrixing unit 130 creates a minimal region formed by the intersection of the start point and end point of the attribute range of each rule when each rule is arranged in the five-dimensional space. Such a minimal region is called a matrix.
  • the matrix unit 130 creates matrix space data representing the relationship between each rule and matrix, and the relationship between each matrix and rule.
  • there are five commonly used attributes namely, source address, source port, destination address, destination port, and a five-dimensional space using the protocol.
  • the number of attributes is not limited to five. It does not matter.
  • a rule represents a 5D region in the 5D space.
  • FIG. 2 is a flowchart showing an example of matrix space data creation processing by the matrix forming unit 130.
  • the expression “remaining” means “there are elements in a set of elements that do not have a check indicating selection”. Means.
  • the check is information indicating that an element has been selected.
  • the expression "select one” means "select one element of the elements in the set and check that element at the same time”. The process of determining whether or not there is any remaining element is performed, and when it is determined that the element remains, the process of selecting one of the remaining elements continues.
  • step S101 matrix forming section 130 determines whether any of the attributes (for example, five types of attributes) used in the rule condition portion remains. If any attribute remains, the matrix forming unit 130 selects one attribute from the attributes in step S102, and in step S103, all the rules stored in the rule storage unit 110 are selected. From the condition part, the start point and end point relating to the attribute selected in step S102 are collected. Here, the generic name of the start point and the end point is called a boundary point. Next, in step S104, the matrix forming unit 130 sorts the boundary points collected in step S103.
  • the attributes for example, five types of attributes
  • step S104 the process proceeds to step S101 again.
  • the matrix forming unit 130 performs a series of processes of steps S102 to S104 for all attributes. When sorting of boundary points is completed for all attributes, no attribute remains in step S101, so the process proceeds to step S105.
  • the matrix forming unit 130 creates information (matrix data) of a minimal area formed by two adjacent boundary points of all attributes (each axis). In the case of a 5D space with each axis corresponding to each of the 5 types of attributes, this minimal area is also a 5D area.
  • the minimal region formed by two adjacent boundary points on each axis is called a matrix as described above.
  • the matrix forming unit 130 creates matrix information, that is, matrix data, by describing attribute ranges, that is, pairs of adjacent boundary points for each attribute.
  • the matrix forming unit 130 performs the following steps S106 to S108 in order for all the rules recorded in the rule storage unit 110.
  • the matrix forming unit 130 determines whether or not there are any remaining rules in step S106, and if there are any remaining rules, in step 107, the matrixing unit 130 selects one rule according to the order from the remaining rules.
  • a rule is selected, and in step S108, a matrix constituting the rule selected in step S107 is listed, and the rule selected in step S107 is associated with the matrix. Since the rule describes the range and action of each attribute, in step S108, a list of matrix names may be added to the description. Such a description is called rule data.
  • the matrix constituting the rule is each matrix included in the attribute range indicated by the condition part of the rule.
  • the matrix forming unit 130 associates each matrix constituting the rule selected in step S107 with the rule. Since the matrix data describes the range of each attribute as in the case of each rule, the rule name may be stored in the matrix data.
  • the process shifts to step S106 again, and as described above, the matrix forming unit 130 performs the series of processes of steps S107 to S108 for all the rules. Are performed in the order of each rule in the rule set stored in the rule storage unit 110. Therefore, one matrix (matrix If there are two or more rules that can be stored in (data), the rule names stored in the matrix data maintain the order of the rules.
  • the rule order in the rule set is ⁇ Rl, R2, R3, R4 ⁇ , and R2 and R4 are related to a certain matrix.
  • the matrix data of the matrix will not be in the order of ⁇ R4, R2 ⁇ , the power of adding the list of rule names in the order of ⁇ R2, R4 ⁇ .
  • the matrix space data creation processing ends.
  • the matrix forming unit 130 generates rule data (that is, rule data to which a matrix name is added) and matrix data (that is, rule data to which a rule name is added) created by the matrix spatial data creation process shown in FIG. ) Is stored in the matrix space storage unit 120.
  • the whole set of rule data and matrix data is collectively called matrix spatial data.
  • overlap analysis section 140 refers to the matrix space data stored in matrix space storage section 120 and determines the overlap between rules. The result is found and the result is output using the output device 930.
  • 3 and 4 are flowcharts showing an example of processing by the overlap analyzer 140.
  • the overlap analysis unit 140 performs the processing from step S202 onward for all the rules, and when all the rules are completed, the rule remains and the rules remain! / ,! The process is terminated.
  • the processing in the overlap analysis unit 140 will be described in detail.
  • the overlap analysis unit 140 performs the processing from step S202 onward in step S201, and determines whether there are any remaining rules. Such rules remain!
  • the overlap analysis unit 140 selects one rule from the rules (rule data) stored in the matrix space storage unit 120 in ascending order.
  • “in ascending order” means that the rules are defined in the order of rules!
  • A be the rule selected in step S202.
  • overlap analyzer 140 determines whether rule A is a default rule. If rule A is a default rule, processing ends.
  • the order of default rules is the rule included in the rule set. It is going to be the last. Therefore, when the last rule is selected in step S202, the process branches to “yes” in step S203, and the process ends. Therefore, since it is not possible to branch to the “No” side in Step S201, the processing in Step S201 may not actually be performed.
  • step S203 if rule A is not the default rule, overlap analyzer 140 lists the matrices that make up rule A in step S204. In the rule data of rule A, since the matrix constituting rule A is described as a list, overlap analyzer 140 may refer to the rule data in step S204.
  • step S205 the overlap analysis unit 140 examines the list of rules added to the matrix data of the matrix that constitutes rule A, and uses all the matrix data of the matrix that constitutes rule A as the head. Determine whether the rule is other than rule A. If the first rule is other than rule A even in the case of all the matrix data constituting the rule A! /, The process proceeds to step S207.
  • step S206 the overlap analysis unit 140 determines whether the rule A is the first rule in only a part of all the matrix data of the matrix that constitutes the rule A or the matrix that constitutes the rule A. Determine whether rule A is the first rule in all matrix data. If rule A is the first rule in only a part of the matrix data of the matrix constituting rule A, the process proceeds to step S209. When rule A is the first rule in all matrix data of the matrix that constitutes rule A, the process proceeds to step S201, and the above-described process is repeated.
  • step S205 If branching to the “Yes” side in step S205, that is, if all the matrix data of the matrix that constitutes rule A is misaligned, the top rule is other than rule A, the overlap analyzer 140 lists the first rule other than rule A in step S207 of FIG. Let B be the set of rules listed in step S207. B is a set of one or more rules. After step S207, the overlap analysis unit 140, in step S208, uses the output device 930 to indicate that “rule A is rule set B by C "It is oncealed” is output. “Concealed” means that a rule has a higher priority than that rule and is completely hidden by other rules (this rule is not limited to one).
  • Step S208 After outputting the analysis result “Rule A is Concealed by Rule Set B” in Step S208, the process proceeds to Step S201, and the processes after Step S201 are repeated.
  • step S206 When branching to the “Yes” side in step S206, that is, when rule A is the first rule in only part of all matrix data of the matrix that constitutes rule A, overlap analyzer 140 Lists the first rule other than rule A in step S209 of FIG. Let C be the set of rules listed in step S209. Subsequently, in step S210, the overlap analysis unit 140 performs processing after step S211 among the rules included in the rule set C! /, Na! /, Whether the rules remain! / Determine whether or not. If no such rule remains in rule set C, the process proceeds to step S201, and the processes after step S201 are repeated.
  • overlap analysis unit 140 selects one rule from the remaining rules in step S211.
  • the rule selected in step S2 11 is defined as rule D.
  • the overlap analyzer 140 collects a matrix common to the rules A and D in step S212. Since rule D is a rule that precedes rule A, the overlap analysis unit 140, among the matrices that make up rule A, rule D is listed before rule A in the matrix data! List the matrix!
  • step S213 the overlap analyzer 140 identifies an area composed of the matrix collected in step S212. Let this region be E. Note that the matrix collected in step S212 is not a matrix with rule D as the first rule, because it is a force that may be inside rule power rule D, which is higher in order than rule D.
  • the overlap analyzer 140 outputs the output in step S214. Using the force device 930, output that “the range (area) E of rule A is overlapped by rule D”. “Overlapped” means that a certain area is hidden by another rule with higher priority than the rule itself (this rule is not limited to one). After outputting the analysis result that “the range E of rule A is Overlapped by rule D” in step S214, the process proceeds to step S201, and the process of step S201 is repeated.
  • the output device 930 outputs the analysis result according to the overlap analysis unit 140 in step S 208 or step S 214 as described above.
  • the output mode of the analysis result is not particularly limited.
  • the output device 930 may be realized by a display device, and the analysis result may be displayed and output.
  • the output device 930 can be realized by the CPU and the analysis results can be output as a file.
  • processing procedure in the matrix forming unit 130 shown in FIG. 2 and the processing procedure in the overlap analysis unit 140 shown in FIGS. 3 and 4 show an example of the processing procedure.
  • the processing procedure in the matrix forming unit 130 and the processing procedure in the overlap analysis unit 140 are not limited to those shown in these figures. Use other procedures to obtain similar results as above.
  • the filtering rules included in the rule set 910 include, for example, various network devices that do not have a description dependent on a specific network device (such as a specific firewall or a specific router). It may be described in a common format without depending on.
  • a specific network device such as a specific firewall or a specific router.
  • a rule description format for a specific network device may be adopted as a unified description format, and filtering rules may be described in that format.
  • the description format depending on the network device can be converted into each filtering rule included in the rule set 910 by simple one-to-one grammatical replacement. It is assumed that each rule included in the rule set 910 retains the rule order in the original network device.
  • the order of the default rules in the rule set 910 is the last even if the order of the default rules in the original network device is the first or last.
  • the condition part of the default rule is all Each attribute's maximum area (maximum range) shall be indicated.
  • the input device 920 inputs the rule set 910 to the rule analysis system 100 and stores the rule set in the rule storage unit 110.
  • the input device 920 may convert the description format of the input rule set so that it can be easily handled by the computer (specifically, the rule analysis system 100).
  • the input device 920 converts the input rule set into a rule set represented by a data structure as illustrated in FIG. 5 and stores the rule set in the rule storage unit 110.
  • the data structure illustrated in FIG. 5 is an example, and the data structure may be converted into a set of rules represented by another data structure.
  • FIG. 5 shows a set of eight rule (R1-R8) forces.
  • Each rule consists of the start point of the first attribute, the end point of the first attribute, the start point of the second attribute, the end point of the second attribute, up to the start point of the nth attribute and the end point of the nth attribute. Described, and finally the action is described.
  • the starting point and ending point after the third attribute are “omitted”.
  • the start point and end point of the first attribute are 3, 5 respectively
  • the start point and end point of the second attribute are 5, 7 respectively.
  • the source address and the destination address are represented by IP (Internet Protocol) addresses. Therefore, the source address and the destination address are 0. 0. 0. 0. 0 to 255. 255. 255. 255. 255. Expressed as the start and end points in the IP address space.
  • the range of the source port and destination port is represented by the start point and end point within the range of 0 to 65535.
  • the protocol is expressed in the range of TCP only, UDP (User Datagram Protocol) only, or TCP and UDP.
  • the range of all attributes is expressed as an integer range of 0 to m. Light up.
  • IP address space and protocol are expressed as one-dimensional line segments (or points) having the same total order as ports, although they are expressed differently in the filtering rules, they are in the integer range of 0 to m described above. Even the explanations presented can be easily applied to IP address spaces and protocols. For example, if TCP is 0 and UDP is 1, “TCP only” can be expressed by setting the start point and end point to 0, and the range “TCP and UDP” is 0 for the start point and end. It can be expressed by setting the point to 1.
  • data describing a rule is rule data
  • the data shown in FIG. 5 corresponds to the rule data.
  • the rule data shown in Fig. 5 it is assumed that there is no starting point and ending point after the third attribute that is "omitted", and the two attributes (first attribute and second attribute) of the rule data shown in Fig. 5 This can be expressed in space as shown in Fig. 6.
  • the X axis horizontal axis
  • the Y axis corresponds to the second attribute.
  • the range defined by the first and second attributes in the condition part of each rule is represented by a rectangle. If the rule action is A, which means “permit”, the rectangle is shown in white.
  • the pattern is inside the rectangle, specifically many It is shown with a pattern in which dots are drawn.
  • the rectangles with the lower rule priority are drawn on the lower layer, and the rectangles with the higher rule priority are drawn on the upper layer.
  • the range defined by two attributes is represented in two dimensions. If there are five attributes indicated by the condition part of the force rule, it is represented as a five-dimensional space.
  • the matrix forming unit 130 refers to the rule data stored in the rule storage unit 110, creates matrix space data, and records it in the matrix space storage unit 120.
  • a specific example of processing by the matrix forming unit 130 will be described below with reference to FIGS. 2 and 5 to 10.
  • FIGS. 2 and 5 to 10 In the case of the rule data shown in FIG. 5, there are n attributes up to the nth attribute including the part omitted, but in the following explanation, explanation will be made using the first two attributes. You can repeat the same process for any number of attributes! /.
  • step S101 the matrix forming unit 130 moves to step S102 because two attributes remain, and selects the first attribute (first attribute).
  • step S103 the first attribute selected from all the rules R1 to R8 (see FIG. 5) is opened. Collect start and end points.
  • step S104 the matrix forming unit 130 deletes the overlapping boundary points among these boundary points, and sorts the boundary points thereon. As a result, a value of 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15 can be obtained for the first attribute.
  • Matrixi performs the same processing (steps S101 to S104) for the second attribute. As a result, for the second attribute, 0, 1, 3, 4, 5, 7, 8, 10, 11, 12, and 13 are obtained. If the processing is completed for the second genus and the process proceeds to step S 101, the process proceeds to step S 105 because no other attributes remain.
  • step S105 the matrix forming unit 130 determines a minimum region (matrix) defined by a range between two adjacent boundary points of a certain attribute and a range between two adjacent boundary points of another attribute. Create The matrix forming unit 130 creates all possible matrices by changing two adjacent boundary points in each attribute. For example, if boundary points are obtained for each axis (each attribute) as shown in Fig. 6, 130 matrices as shown in Fig. 7 are created.
  • Fig. 8 shows an example of a description format of matrix data.
  • M001 to M130 there are 1st to 130th matrices, M001 to M130, respectively.
  • Each matrix status is expressed by listing and describing pairs of start points and end points of each attribute in the same way as rule data.
  • the matrix M001 is a region in which the first attribute force is in the range of 1 to 1 and the second attribute is in the range of 0 to 1.
  • the third and subsequent attributes are omitted! /.
  • data describing a matrix is called matrix data.
  • the data shown in Fig. 8 corresponds to matrix data.
  • matrix forming section 130 performs the processing of steps S106 to S108 in order for all rule data stored in rule storage section 110.
  • the process moves to step S107.
  • the matrix forming unit 130 selects the first rule R1.
  • the process proceeds to step S108, and the matrix constituting the rule R1 is changed. Enumerate.
  • R1 is composed of two matrix forces, M056 and M057. Note that M056 is a matrix adjacent to M053 shown in FIG. 7, and M057 is a matrix adjacent to one more.
  • the matrix forming unit 130 adds these two matrices M056 and M057 to the end of the rule data of R1, as shown in the underlined part of the first line in FIG. Further, the matrix forming unit 130 adds the rule (here, R1) selected at the end of the matrix data of the two matrices M056 and M057.
  • R1 the rule selected at the end of the matrix data of the two matrices M056 and M057.
  • step S108 When the process of step S108 ends, the process returns to step S106, and the same process is performed for all the remaining rules. As a result, a list of matrices is added to the rule data as shown in FIG. 9, and a list of rules is added to the matrix data as shown in FIG. As already explained, the entire set of rule data and matrix data is collectively referred to as matrix space data.
  • the matrix forming unit 130 records the matrix space data in the matrix space storage unit 120 and ends the process.
  • step S105 rules are selected one by one in ascending order, that is, in the order of the rules, and a matrix list configured in the rule data is added.
  • the default rule is composed of all matrix cards, it is only necessary to add data indicating that the matrix is composed of all matrices to the rule data of the default rule.
  • data “ALL” is added as data indicating that all matrix cameras are configured.
  • the matrixing unit 130 unconditionally adds a default rule at the end of the rules related to the matrix data.
  • FIG. Overlap analysis is to examine the overlap of condition parts between two rules.
  • packet filtering rules are examined in order of priority, and if a rule (condition part) that matches the attributes of a packet is found, the action is performed according to the action described in the execution part of the rule. Therefore, it takes precedence over that rule A rule with a lower rank is not checked against the attribute of the packet.
  • Overlapping analysis detects such rules.
  • the overlap analysis unit 140 sequentially checks the rule data of the matrix space data stored in the matrix space storage unit 120 in the order of high priority and force.
  • the rule data of matrix spatial data created based on the rule set shown in Fig. 5 is as shown in Fig. 9.
  • the process proceeds to step S202.
  • the overlap analyzer 140 first selects the rule R1. Since the rule selected in step S202 is rule A, rule R1 is rule A here.
  • step S203 overlap analyzer 140 checks whether rule A is a default rule.
  • the process branches to the “No” side here and proceeds to step S204.
  • step S204 the overlap analyzer 140 lists the matrices constituting the rule A. The matrix that composes rule A can be immediately identified by referring to the part after the action part of the rule data. Here, matrices M056 and M057 are listed.
  • step S205 the overlap analysis unit 140 checks the first rule of the enumerated matrix and determines whether all the first rules are other than rule A! /.
  • the enumerated matrices are M0 56 and M057, and the overlap analyzer 140 examines the list of rules associated with these matrices.
  • the list of rules associated with the matrix M056 can be seen as R1, R2 and R8 when referring to the matrix data in Fig. 10 (see the underlined part on line 11 in Fig. 10).
  • the first rule associated with this matrix is R1.
  • the first rule in the rule related to M057 is R1.
  • the process branches to “NO” in step S205, and the process proceeds to step S206.
  • the top rules of both M056 and M057 were examined here. However, if M056 is examined, the top rule becomes rule A, and all the top rules are checked. There is no need to look into M057 because the rule can only be rule A.
  • step S206 the overlap analyzer 140 examines the leading rule in the same manner as in step S205, and if any of the matrix data of the matrix that constitutes rule A has a leading rule other than A, If there is, the process proceeds to step S209. If the selected rule is R1, it is determined in step S206 that all of the matrices M056 and MO 557 that make up rule A! Processing branches to “No” and returns to step S201.
  • the force for checking the leading rules of both M 056 and M 057 is actually not necessary to check the matrix checked in step S205 again.
  • the determination process in step S205 and the determination process in step S206 may be performed simultaneously by using a force flag or the like that has been determined in step S206.
  • the overlap analysis unit 140 After the processing of the first rule (R1) is completed, the overlap analysis unit 140 performs the same processing for the next rule. In the example shown in Fig. 9, the R2 to R8 rules remain because the processing of R1 is completed. Therefore, the overlap analysis unit 140 determines that the rule remains in step S201, and proceeds to step S202. In step S202, the overlap analyzer 140 selects rule R2 and sets rule R2 as rule A. Since R2 is not a default rule, in step S203, the process branches to the “,, e” side and proceeds to step S204. In step S204, the overlap analysis unit 140 lists matrices that constitute rule A (R2 here). Referring to FIG.
  • the matrix constituting rule A is 30 matrices: M042, M043, M044, abbreviation, Ml10, Ml11.
  • the overlap analyzer 140 examines the first rule of the 30 matrices described above. For example, the leading rule for M042 is R2, and the leading rule for M056 is R1. In step S205, if all the first rules are A! /, It is judged as “ha! /,” So if A is R2, the process branches to “No” and moves to step S206. To do. In step S206, the first rule of the matrices M056 and M057 is R1, so out of the 30 matrices, the first rule of the two matrices is other than A.
  • step S 206 the process branches to the “Yes” side and proceeds to step S 209.
  • steps S210 to S214 for rule R1 included in rule set C is as follows.
  • the overlap analysis unit 140 determines that the rule set and rule R1 remain in step S210, and selects one rule from rule set C in step S211.
  • the rule selected in step S211 is defined as rule D. In this example, it will be Le Nore R1 force Lenore D.
  • the overlap analysis cell collects matrices common to the rule A (here, R2) and the rule D (here, R1). Of the 30 matrices that make up rule R2, the matrix that contains rule R1 in the rule list in the matrix data is the common matrix for rules A and D.
  • step S202 If it is determined that there is a rule in step S201! /, Is selected !, the process proceeds to step S202, and the overlap analyzer 140 selects one rule in order. To do. If the rule selected in step S202 is R3 or R4, the determination results in steps S205 and S206 are both “no”, and the process returns to step S201 again. If the rule selected in step S202 is R5 or R6, the determination result in step S206 is “Yes”, so the processing from step S209 is executed. As a result, as in the case where R2 is selected in step S203, an analysis result that “the range E of rule A is Overlapped by rule D” is output.
  • step S202 A case will be described where the rule selected in step S202 is R7. As shown in FIG. 6, rule R7 is a rule hidden in rule R2. If rule A is rule R7, the process proceeds to step S204 after step S203.
  • step S204 the overlap analysis unit 140 lists matrices that constitute rule A (R7 here). There are four matrices that make up rule A: M083, M084, M096, and M097. Overlapping analysis unit 140 examines the top rules of these four matrices in step S205. The top rules of these four matrices are all R2 and are all different from rule A (ie R7). Accordingly, in step S205, the process branches to the “Yes” side and proceeds to step S207.
  • the overlap analysis unit 140 outputs the analysis result “Rule A is Concealed by the rule set B” using the output device 930.
  • step S202 overlap analyzer 140 selects the last remaining R8. Since R8 is the default rule, the process branches to “Yes” in step S203, and the process ends.
  • step S204 Since the default rule, that is, the last rule is always partially or completely hidden by other rules, the processing after step S204 is not performed for the default rule. However, for more detailed overlap analysis, the default rule may be processed in step S204, and the analysis result for the default rule may be output in step 208 or step S214. In this case, the judgment process in step S2 03 must be performed.
  • the output mode of the analysis result is not particularly limited.
  • the analysis result may be displayed and output, output as a voice, or output as a file.
  • the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the analysis result may be output in the other system. In this case, the analysis result can be notified to a user of another system connected to the rule analysis system 100 via a communication network.
  • FIG. 11 shows a display example of the analysis result when the output device 930 is a display device and the analysis result is displayed and output.
  • the analysis results may be displayed together after the processing by the overlap analysis unit 140 is completed.
  • the analysis results recorded in the temporary storage device may be output together.
  • FIG. 13 shows a display example of the analysis result when the overlap analysis is performed on the rule data schematically represented as shown in FIG.
  • “R5 is Concealed by R3 and R4” and more detailed “R3 (5, 7, 7, 10, abbreviated ) Is also displayed as an analysis result such as “Concealed”.
  • R3 is Concealed by R3 and R4
  • R3 5, 7, 7, 10, abbreviated
  • the filtering rule analysis system According to this filtering rule analysis system, the relationship between rules can be grasped no matter how complicated the filtering rules are. The reason is that the matrixing unit 130 converts the rules into matrix spatial data, and the overlap analysis unit 140 comprehensively investigates the matrix that constitutes an arbitrary rule, so that the overlapping relationship between rules, particularly certain rules. This is because it is analyzed that a rule is completely hidden by another rule, or that a rule is partially hidden by another rule. According to this system, Even for filtering rules, the relationship between each rule can be understood. The reason is that the rule can be converted to matrix space data with any number of attributes, and the ability to analyze the overlapping relationship between rules using a matrix rather than analyzing by attribute.
  • FIG. 14 showing the filtering rule analysis system of the second embodiment, the same components as those in the first embodiment are denoted by the same reference numerals as those in FIG. Omitted.
  • the filtering rule analysis system of the second embodiment is the same as that shown in FIG. 1, except that in the rule analysis system 100, a pass test unit 150 is provided instead of the overlap analysis unit. It is different from the one shown in 1.
  • the filtering rule analysis system of this embodiment includes a test input device 940.
  • the test input device 940 inputs, to the rule analysis system 100, data for testing what kind of packets the rule set 910 allows as a whole rule and what kinds of packets are prohibited. Is provided to do.
  • the data for testing is represented by, for example, packet attributes.
  • the test input device 940 is realized by an input device such as a keyboard, for example.
  • the passing test unit 150 permits any packet to pass in the packet filtering process based on the rule set based on the data input by the test input device 940 and the matrix spatial data, and what packet Test whether it is prohibited from passing.
  • the passing test unit 150 is realized by a CPU that operates according to a program, for example.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • the output device 930 outputs the test result from the passage test unit 150.
  • a user of the rule analysis system 100 inputs a packet or a range of packets to the rule analysis system 100 using the test input device 940 in order to test what packets the rule set 910 passes.
  • the packet or packet range input here is an attribute of a packet that is not an actual packet.
  • a packet includes a payload that is the contents of the packet, in addition to the source address, source port, destination address, destination port, and protocol that are packet attributes. Since packet filtering generally refers only to the attribute part of the packet without referring to the payload part, the test data given to the test input device 940 need only be the attribute of the packet. Normally, a packet flowing through a network has a certain value for all of the above packet attributes.
  • the test input device 940 inputs such packet attributes to the rule analysis system 100.
  • the test input device 940 also inputs to the rule analysis system 100 the attributes of a packet expressed as a certain range with a certain value. If some or all of the attributes are expressed as a range, and if five attributes are represented, in a five-dimensional space, the region has a dimension of five dimensions or less. For example, if a range is specified for only one attribute, it is represented as a one-dimensional area (ie, a line). About two attributes If only a range is specified, it is represented as a two-dimensional region (ie, a plane).
  • the test input device 940 inputs a test packet to the passage test unit 150.
  • FIG. 15 is a flowchart showing an example of test processing by the passing test unit 150.
  • Pass test unit 150 starts test processing when a test packet is input via test input device 940.
  • the pass test unit 150 spans a plurality of matrices of matrix space data stored in the region of the test packet, that is, the region force matrix attributed by the attribute input as the test packet. It is determined whether or not. This determination process may be performed as follows. For each attribute, the pass test unit 150 fits between adjacent boundary points among the boundary points determined in step S104 (see Fig. 2), which are the start point and end point force specifying the range of the test packet attribute.
  • test packet area can be within one matrix area. judge. In any attribute, if the start point and end point that specify the range of the test packet attribute do not fall between adjacent boundary points, the test packet area is also applied to multiple matrices. judge.
  • step S301 if the test packet area falls within one matrix area, the process proceeds to step S302. If the test packet area spans multiple matrixes, the process proceeds to step S302. Control goes to step S304.
  • step S302 the pass test unit 150 identifies a matrix including the test packet.
  • F be the matrix identified in step S302.
  • pass test section 150 The first rule in the matrix data is identified with reference to the matrix data of the matrix F, and further, in step S303, the action in the rule data of the first rule is referred to, and the content indicated by the action is output to the output device. Output from 930 and end the process.
  • passage test section 150 lists a plurality of matrix statuses including test packets, that is, a plurality of matrices in which test packet regions exist.
  • G be the set of matrices.
  • the passing test unit 150 identifies an action for each matrix included in the set G. The operation for specifying this action may be performed in the same manner as in step S303. That is, the pass test unit 150 may refer to the matrix data for each matrix included in the set G, identify the first rule in the matrix data, and refer to the action in the rule data of the first rule. Yes.
  • the pass test unit 150 identifies the actions for each matrix, classifies the matrices included in the set G for each action, integrates the matrices classified by the same action in Step S305, Find the overlap area with the test packet area. The process of integrating the matrix and finding the overlap area with the test packet is also performed for each action. Thereafter, in step S306, the pass test unit 150 outputs the obtained overlapping area for each action from the output device 930, and ends the process.
  • the output mode in steps S303 and S306 is not particularly limited.
  • it may be displayed on the output device 930 realized by a display device, or may be output as a file.
  • processing procedure of the pass test unit 150 shown in FIG. 15 is merely an example. Other processing procedures can be employed to obtain similar results.
  • rule set 910 is a set of rules to be examined as to what kind of packet passage is permitted and what kind of packet passage is prohibited as a whole rule.
  • the operations until the rule set 910 is input to the rule analysis system 100 and stored as matrix space data in the matrix space storage unit 120 are the same as those in the first embodiment, and thus the description thereof is omitted.
  • matrix space storage section 120 stores matrix space data from which the rule collective power illustrated in FIG. 5 is also derived.
  • the test input device 940 inputs the test packet T1 to the rule analysis system 100.
  • the description format of the test packet is the same as the initial value of the matrix data (see Fig. 8), and is a format that lists and describes the pairs of the start point and end point of each attribute.
  • the test input device 940 sends the test packet to the passage test unit 150.
  • Pass test unit 150 operates according to the flowchart shown in FIG. 15, and starts processing when a test packet is input via test input device 940.
  • the pass test unit 150 determines whether or not the input region of the test packet T1 has a strength over a plurality of matrixes. Whether the test packet area spans multiple matrices is determined by specifying the boundary value of each attribute created and sorted by the matrixing unit 130 in step S104 shown in FIG. 2 and the range of the test packet attribute. Judgment can be made by comparing the point and the end point. For example, in the case of the rule set shown in FIG. 5, the sorted boundary values of the first attribute are 0, 1, 3, 4, 5, 7,. The range of the first attribute of test packet T1 is 4-5.
  • 4-5 are areas of one matrix. This comparison is performed for all attributes, and if all the attributes of the test packet T1 are within one matrix area, it is determined that the area of the test packet is within one matrix area. For example, it may be determined that the area of the test packet spans multiple matrixes.
  • the passing test unit 150 determines that the test packet T1 is contained in one matrix by such a determination method, and as a result, in step S301, the process branches to the “ ⁇ ”side.
  • FIG. 16 is a schematic diagram representing the matrix data derived from the rule set power shown in FIG. 5 in a two-dimensional space, assuming that only the second attribute is described in the rule set shown in FIG. is there.
  • FIG. 16 also shows a test packet T1 and the like. Note that only the second attribute is described in the test packet.
  • the area of the test packet is represented by a rounded rectangle for convenience in FIG.
  • step S301 It is determined in step S301 that the test packet T1 is within one matrix.
  • the pass test unit 150 specifies a matrix including the test packet T1 in step S302.
  • the pass test unit 150 should specify a matrix that includes the range of each attribute of the test packet!
  • the matrix including test packet T1 is M057, that is, the matrix adjacent to M053 shown in FIG. Therefore, M057 force matrix F is obtained.
  • the passing test unit 150 refers to the matrix data of the matrix F (M057) and identifies the first rule in the matrix data.
  • the passing test unit 150 is assumed to receive the test packet T2 via the test input device 940.
  • step S301 If it is determined in step S301 that the area of test packet ⁇ 2 extends over a plurality of packets, passage test unit 150 proceeds to step S304 and lists a plurality of matrices including the test packets.
  • the pass test unit 150 enumerates all the matrixes that each attribute includes a part of each attribute of the test packet.
  • G be the set of matrices listed in step S304.
  • FIG. 17 is a schematic diagram showing the two-dimensional space around test packet ⁇ 2. In this example, the test packet ⁇ 2 is again applied to the matrices ⁇ 058 to ⁇ 060, ⁇ 071 to ⁇ 073, and ⁇ 084 to ⁇ 086 shown in FIG.
  • the passing test unit 150 identifies an action for each matrix included in the set G.
  • the operation for specifying the action for each matrix may be performed in the same manner as the operation for specifying the action of the matrix F in step S303.
  • the matrix where the action is A (allows passage) is shown in white, and the matrix where the action is D (not allowed to pass) is given a pattern (pattern with many points drawn). As shown.
  • the passing test unit 150 creates a region by integrating M058, M059, M071, M072, M084, and M085, which are matrices whose actions are A, that is, a matrix that permits passage. This area can be expressed as (5, 8, 5, 10, omitted). Similarly, the passage test unit 150 integrates M060, M073, and M086, which are matrices whose actions are D, that is, matrices that do not allow passage, to create a region. This region can be expressed as (8, 9, 5, 1 0, omitted). The passing test unit 150 obtains an overlapping area with the test packet T2 for each of the two areas.
  • the area where the action is A (5, 8, 5, 10, omitted) and the overlap area of T2 is calculated as (6, 8, 6, 9, omitted).
  • the area where the action is D (8, 9, 5, 10, omitted) and the overlap area of T2 is calculated as (8, 9, 6, 9, omitted).
  • the pass test unit 150 outputs the obtained overlap area from the output device 930 for each action in step S306. That is, the passage test unit 150 outputs a region where passage is permitted and a region where passage is not permitted, among the regions of the test packet T2.
  • the output result of the processing result by the passage test unit 150 is not particularly limited.
  • display output, audio output, or a file may be output.
  • the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the test result may be output in the other system. In this case, the test result can be notified to a user of another system connected to the rule analysis system 100 via a communication network.
  • Fig. 18 shows a display example of the analysis result when the output device 930 is a display device and the test result is displayed and output.
  • FIG. 18 shows a display example of the result when the test packets Tl and T2 are input as test packets.
  • test results are sequentially output in steps S303 and S306.
  • the test results are displayed together. But ⁇ .
  • the output device 930 may collectively output the test results recorded in the temporary storage device.
  • FIG. 19 showing the filtering rule analysis system of the third embodiment, the same components as those in the second embodiment are denoted by the same reference numerals as those in FIG. Omitted.
  • a reference numeral different from that of the second embodiment is assigned to the pass test unit.
  • the filtering rule analysis system of the third exemplary embodiment includes a pass test unit 151.
  • a plurality of rule sets that is, a rule set corresponding to each of a plurality of network devices
  • the matrix forming unit 130 creates a plurality of rule collective force matrix space data and stores the data in the matrix space storage unit 120.
  • the operation of the matrix forming unit 130 is the same as that in the first embodiment.
  • the matrix space storage unit 120 stores matrix space data in which a plurality of rule collective forces are also created.
  • the pass test unit 151 passes what packets and what packets pass as a plurality of rule sets as a whole, in other words, as a plurality of network devices as a whole. Test whether it will not pass.
  • the passing test unit 151 is realized by, for example, a CPU that operates according to a program.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • the filtering rule analysis system of this embodiment will be described.
  • a plurality (two or more) of rule sets are input to the input device 920.
  • the operation from creating the matrix space data to storing it in the matrix space storage unit 120 is the same as in the first embodiment and the first embodiment. This is the same as in the second embodiment.
  • the matrix forming unit 130 creates matrix space data so that this order is maintained in each matrix space data created based on each rule set. For example, suppose a packet is sent to two firewalls in turn.
  • the rule set corresponding to the first firewall is R100
  • the rule set corresponding to the next firewall is R200.
  • R100 is the first rule set and R200 is the second rule set
  • the order is set in advance, and the rule sets R1 00 and R200 set in this way are input to the input device 920. Is done.
  • the matrix forming unit 130 creates matrix space data from the rule sets R100 and R200 so that the order of the rule sets R100 and R200 is maintained as it is.
  • the matrixing unit 130 determines the order of the rule data in the rule set R100 so that the order of the rules included in the rule set R100 is maintained.
  • the rule data of the default rule is the last rule data in the rule set R100.
  • the order of the rule data in the rule set R200 is determined so that the order of the rules included in the rule set R200 is maintained.
  • the rule data of the default rule is the last rule data in the rule set R200.
  • the order is determined so that each rule data of the rule set R200 follows the rule data of the rule set R100. For example, suppose that the rule power of R100 is R12, R13, R13 is the default rule, the rule power of R200 is R21, R22, and R22 is the default rule.
  • the matrixing unit 130 determines the order of the rule data as Rll, R12, R13, R21, R22 and generates matrix space data.
  • matrixing unit 130 creates matrix spatial data.
  • the range of the attribute added to the rule set R200 is the entire range that the attribute can take.
  • the matrix forming unit 130 adds an attribute that is not in a rule set but is in another rule set to the rule set.
  • rule set a set of rules belonging to the same rule set in a list of rules added to matrix data is referred to as a rule set.
  • FIG. 20 shows an example of processing in the pass test unit 151.
  • the same processing as the processing by the passage test unit 150 in the second embodiment is denoted by the same reference numerals as those in FIG. 15, and detailed description thereof is omitted.
  • the process of step S309 (FIG. 20) is performed instead of step S303 (FIG. 15) in the second embodiment.
  • step S305 FIG. 15
  • step S310 (FIG. 20) is performed instead of step S310 (FIG. 20) is performed instead of step S310 (FIG. 20) is performed.
  • the pass test unit 151 determines whether or not the area of the test packet extends over a plurality of matrices in step S301, and within one matrix area. If it falls within the range, the process proceeds to step S302, and the matrix F including the test packet is specified. In step S309 following step S302, the passage test unit 151 identifies an action of the matrix F, and outputs the content indicated by the action to the output device 930. However, the processing power for specifying the action of the matrix F is different from step S303 (see FIG. 15) in the second embodiment. In the present embodiment, the passage test unit 151 identifies the action of the matrix F as follows.
  • the pass test unit 151 refers to the matrix data of the matrix F and specifies the first rule in the matrix data. This first rule is also the first rule in the first rule set.
  • the passing test unit 151 refers to the action in the rule data of this first rule, and when the action is A, that is, “permit passing”. In this case, the first rule in the next rule set is specified from the list added to the matrix data.
  • the passing test unit 151 refers to the action in the rule data of the first rule, and when the action is A, further identifies the first rule in the next rule set in the list added to the matrix data.
  • the pass test unit 151 determines that the action of the matrix F is D. On the other hand, if the first rule in the last rule set is identified in the list added to the matrix data, and the action in the rule data for that rule is A, the pass test unit 151 Is A.
  • the test unit 151 outputs the action of the first rule of the next rule set in the rule data. In this example, the action of R21 is output. If there are three or more rule sets, as long as the first rule in the second and subsequent rule sets is “Allow pass”, the pass test unit 151 searches for the first rule in the next rule set and takes action If D is D ("Do not allow passage”), exit and output its action. When the first rule of all rule sets is “permit passage”, the passage test unit 151 outputs “permit passage”. Here, it is assumed that the action of the first rule R11 is A. When the action of the force R11 is D, the passing test unit 151 outputs “not allowed to pass” as it is.
  • step S301 If it is determined in step S301 that the test packet extends over a plurality of matrices, the process proceeds to step S304, and the passing test unit 151 lists a plurality of matrices including the test packet. Let this set of matrices be a set G.
  • the pass test unit 151 specifies an action for each matrix included in the set G, and classifies the matrix included in the set G for each action. Then, the passing test unit 150 integrates the matrices classified by the same action, and obtains an overlapping area between the integrated area and the test packet area. However, when specifying an action for each matrix included in set G, as in step S309, Identify the actions for each matrix. That is, when specifying an action of a certain matrix included in the set G, the pass test unit 151 performs the following process.
  • the pass test unit 151 refers to the matrix data of the matrix and identifies the first rule in the matrix data. This first rule is also the first rule in the first rule set.
  • the passing test unit 151 refers to the action in the rule data of the first rule. If the action is A, the passing test unit 151 also identifies the middle force of the list in which the first rule in the next rule set is added to the matrix data.
  • the passing test unit 151 refers to the action in the rule data of the first rule, and if the action is A, further identifies the first rule in the next rule set in the list added to the matrix data.
  • the passage test unit 151 determines that the action of the matrix F is D. . On the other hand, if the first rule in the last rule set is identified in the list added to the matrix data, and the action in the rule data for that rule is A, the pass test unit 151 Determine that the action is A.
  • the pass test unit 151 outputs the obtained overlap area from the output device 930 for each action.
  • processing procedure of the pass test unit 151 shown in FIG. 20 is merely an example. Other processing procedures can be employed to obtain similar results.
  • the router 820 and the firewall 830 in the network configuration as shown in FIG.
  • an external network 810 such as the Internet
  • a router 820, a firewall 830, and a PC (personal computer) 840 are connected in this order.
  • a packet sent from the external network 810 to the PC 840 does not reach the PC 840 unless it passes through the router 820 and further through the firewall 830.
  • the router 820 is set with the rule set R100 (rules R11 to R13) shown in FIG. Let's say.
  • each rule is described in a format that does not depend on the network device.
  • each rule is schematically illustrated as a two-dimensional space. Note that FIG. 22 also shows the area of test packet T3, which will be described later!
  • Each rule set RIOO, R200 shown in FIG. 22 is input from the input device 920 and stored in the rule storage unit 110.
  • the input device 920 receives, for example, the rules output by a rule conversion system (not shown) that collects rules from the router 820 and the firewall 830 and converts the rules into rules with a description in a unique format. It may be done.
  • the matrix forming unit 130 creates matrix space data from the rule sets R100 and R200 stored in the rule storage unit 110, and stores the generated matrix space storage data in the matrix space storage unit 120. At this time, the matrix forming unit 130 determines the order of the rules as Rll, R12, R13, R21, R22 and creates matrix space data. Therefore, in the list of rules to be added to the matrix data, the rule belonging to R100 is described first, followed by the rule belonging to R200. An example of matrix data with a list of rules added in this way is shown in Fig. 23. If the schematic diagram of the rule is expressed based on the created matrix space data, it is a schematic diagram in which the two schematic diagrams shown in FIG. 22 are superimposed.
  • the passing test unit 151 inputs a test packet T3 via the test input device 940.
  • the area of test packet ⁇ 3 does not span multiple matrices. Therefore, after the determination in step S301 (see FIG. 20), the process proceeds to step S302.
  • the pass test unit 151 specifies in step S302 that the matrix including the test packet is MT01 (see FIG. 23). That is, the passing test unit 151 sets MT01 as the matrix F.
  • the pass test unit 151 identifies the first rule in the matrix data of the matrix F (MT01).
  • This top rule is R12 ( Figure 23) MT01)
  • passing test unit 151 refers to the action in R12 rule data. Since this action is A (“allow passage”), the passage test unit 151 searches for the first rule of the next rule set in the matrix data of matrix F (MT01).
  • the first rule is R22 (see MT01 in Figure 23).
  • the passing test unit 151 refers to the action in the rule data of R22. This action is D (“Do not allow passage!”).
  • the passage test unit 151 determines that the action of the matrix F is D, that is, “does not allow passage”, and outputs “does not allow passage” to the output device. At this time, it is also possible to output which rule set based packet filtering is allowed to pass, and which rule set based packet filtering is not allowed to pass.
  • the action of the first rule in the first rule set is A
  • the first action in the next rule set is D. It is possible to output that packet filtering based on the rule set R200 is not allowed to pass.
  • test packet T3 does not reach the PC 440.
  • the router 820 which is the R100 packet filtering device, which is the first rule set
  • the test packet T3 is allowed to pass, but the firewall, which is the R200 packet filtering device, which is the second rule set.
  • the passage test unit 151 specifies that the matrix including the test packet is MT02 (see FIG. 23). That is, the pass test unit 151 sets MT02 as the matrix F.
  • the passing test unit 151 specifies the first rule in the matrix data of the matrix F (MT02). As shown in FIG. 23, the first rule is R11, and the passing test unit 151 refers to the action in the rule data of R11. Since this action is D, the passage test unit 151 ends the processing for specifying the action, and outputs “not allowed to pass”.
  • the pass test unit 151 receives the test packet. Specify that the containing matrix is MT03 (see Figure 23). That is, MT03 is Matritus F.
  • the passing test unit 151 specifies the first rule in the matrix data of the matrix F (M T03). As shown in Figure 23, the first rule is R12, and R12's action is A. Therefore, the passing test unit 151 searches for the first rule in the next rule set. The first rule is R21, and R21's action is also A. Since the next rule set does not exist, the passing test unit 151 ends the process of specifying the action at this time, and outputs “permit passing”.
  • the output mode of the processing result (test result) by the passing test unit 151 is not particularly limited, and may be, for example, display output or audio output, or may be output as a file. Further, the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the test result may be output in the other system. In this case, the test result can be notified to a user of another system connected to the rule analysis system 100 via a communication network.
  • Fig. 24 shows a display example of the analysis results when the output device 930 is a display device and the test results are displayed and output. In steps S309 and S306, the test result to be output is recorded in a temporary storage device (not shown), and then the output device 930 outputs the test result recorded in the temporary storage device. .
  • step S302 After step S301 in the flowchart shown in FIG. Next, a specific example in the case of performing matrix integration by moving from step S301 to step S310 will be described.
  • T4 (l, 4, 1, 4, omitted) is input as a test packet.
  • ⁇ 4 is schematically represented as shown in Fig. 25 ⁇ .
  • test packet ⁇ 4 is assumed to straddle nine matrices ⁇ 001 to ⁇ 009.
  • the pass test unit 151 lists each matrix of ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ 0 01 to ⁇ 009 in step S304.
  • the set of matrices is set G.
  • step S310 the pass test unit 151 performs the operation for each matrix included in the set G. Identify Chillon.
  • the pass test unit 151 uses the rule set R200, the root of the rule set R200, and the action of MOOl, M002, M004, M007, M008 is D. Based on the Nore 11 of the Nore Nore Set R100! / Furthermore, the action of M005, M006 is identified as D, and based on the Rule R21 of the Rule Set R200, MOO 3, M009 Identify the action as A.
  • the passing test unit 151 integrates the matrices classified by the same action.
  • MOOl, M002, M004 to M006, M007, and M008 are integrated, but these matrix regions are not rectangular as shown in FIG. 25B, but are convex.
  • the maximum rectangular area is obtained by MOOl, M002, M004, M005, M007, and M008. Therefore, this maximum rectangular area is represented by enumerating pairs of start and end points of each attribute. This region is represented as (1, 3, 1, 4, omitted).
  • the maximum rectangular area is specified, and the area is represented by a pair of start point and end point of each attribute.
  • the remaining area is M006, and this M006 area may be represented by a pair of start and end points for each attribute.
  • This region is represented as (3, 4, 2, 3, abbreviated). Therefore, the results of the action D matrix integration are (1, 3, 1, 4, omitted) and (3, 4, 2, 3, omitted).
  • the pass test unit 151 uses a pair of the start point and end point of each attribute for each distant area, here, for each matrix. If you represent an area,
  • step S306 the pass test unit 151 obtains an overlap area with the test packet for each area of each action, and outputs the obtained overlap area together with the action.
  • any complicated filtering can be performed. Whether it is a rule or a filtering rule with a large number of attributes, it is possible to grasp what kind of packet passes through a plurality of packet filtering devices as a whole. The reason is to create a plurality of rule collective power matrix space data and test whether the test packet does not pass through based on the matrix space data.
  • FIG. 26 showing the filtering rule analysis system of the fourth embodiment, the same components as those in the first embodiment are denoted by the same reference numerals as those in FIG. Omitted.
  • the filtering rule analysis system of the second embodiment is the same as that shown in FIG. 1, except that in the rule analysis system 100, an identity analysis unit 160 is provided instead of the overlap analysis unit. This is different from the one shown in Fig. 1.
  • a reference numeral different from that of the first embodiment is given to the matrixing unit. To do.
  • the matrixing unit 131 creates matrix space data by the number of the plurality of rule sets. That is, the matrixing unit 131 creates matrix space data for each rule set, and creates all matrix space data corresponding to each rule set. Create matrix data using boundary points.
  • the identity analysis unit 160 analyzes whether or not the packet filtering operation based on each rule set has the same operation.
  • the identity analyzer 160 is realized by a CPU that operates according to a program, for example. This program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • a plurality of rule sets are stored in the rule storage unit 110, but the input device 920 inputs a plurality of rule sets to the rule analysis system 100. Then, each rule set is stored in the rule storage unit 110, respectively.
  • FIG. 27 shows an example of matrix space data creation processing by the matrixing unit 131.
  • the processing in steps S101 to S104 shown in FIG. 27 is the same as the processing in steps S101 to S104 (see FIG. 2) in the first embodiment.
  • step S103 the start and end points related to the attribute selected in step S102 are collected from the condition parts of all the rules included in one rule set.
  • the matrix forming unit 131 relates to the attribute selected in step S102 from the condition parts of all rules stored in the rule storage unit 110 and included in all rule sets in step S103. Collect start and end points.
  • the matrixing unit 131 sorts the boundary points (start point and end point) collected from all the rules included in the entire rule set. If there are overlapping boundary points, that is, boundary points with the same value, leave only one boundary point with the same value, and delete other boundary points with the same value.
  • the fourth embodiment is the same as the first embodiment.
  • step S111 the matrixing unit 131 creates matrix data for each rule set stored in the rule storage unit 110.
  • the process of creating matrix data corresponding to one rule set is the same as that in step S105 (see FIG. 2) in the first embodiment.
  • the boundary points sorted in step S104 are used when creating matrix data. Note that in step S 111 shown in FIG. 27, it is described as “create two sets”! /, But even if the number of rule sets stored in rule storage unit 110 is three or more, Matrix data is created for each rule set.
  • matrix forming section 131 creates matrix space data for each rule set in steps S 112 and 113.
  • the processing is terminated.
  • the number of rule sets stored in the rule storage unit 110 is three or more As described above, matrix data is created for each rule set.
  • the processes of steps S106 to S108 may be repeatedly executed.
  • the number of rule data included in each matrix space data may be different.
  • S included in each matrix space data
  • the number of matrix data to be shared is common. The reason for this is that boundary points (attribute start and end points) are collected from all rule sets, the boundary points are sorted, and any matrix data is created using the boundary points obtained from this sort result. It is also the power that is.
  • the identity analysis unit 160 checks whether or not the plurality of rule sets recorded in the rule storage unit 110 are rule sets having the same meaning. In other words, the identity analysis unit 160 analyzes whether or not the packet filtering operation based on each rule set becomes the same operation.
  • FIG. 28 shows an example of processing by the identity analysis unit 160. Since there is matrix space data corresponding to each rule set, there are multiple sets of matrix space data. Here, an example will be described in which there are two sets of matrix space data that correspond to each of the two rule sets. Even if the number of rule data contained in the two sets of matrix space data is different, the number of matrix data is the same. The following explanation is based on the matrix in the first set of matrix spatial data.
  • the identity analysis unit 160 performs loop processing shown in steps S401 to S403 while sequentially selecting all matrix data in the first set of matrix space data as a reference.
  • step S401 the identity analysis unit 160 determines whether or not the unselected matrix data remains in the reference matrix space data. If all matrix data has been checked, that is, if all matrix data has been selected, the process proceeds to step S404, and if unselected matrix data remains, identity analysis is performed. In step S402, the unit 160 selects one unselected matrix data in the reference matrix space data.
  • the identity analysis unit 160 selects a matrix corresponding to the selected first set of matrix data. Select the middle force of the second set of matrix spatial data. In other words, the identity analysis unit 160 selects matrix data common to the first set of matrix data selected as the pair of boundary point forces in each attribute, and also selects the intermediate force of the second set of matrix space data.
  • identity analysis unit 160 checks the action of the first rule in the two selected matrix data, and if the action is different, records it in a nota (not shown). At this time, if the identity analysis unit 160 records the information that can identify two matrix data with different actions of the top rule V, in the buffer.
  • the identity analysis unit 160 Should be recorded as “M013” in the nota.
  • step S403 the process proceeds to step S401. If unselected matrix data remains in the reference matrix space data, the processes in and after step S402 are repeated.
  • step S404 determines in step S404 that no node data remains. Determine whether matrix information is recorded in the buffer. If no matrix information is recorded, the identity analysis unit 160 outputs that in step S406, the two rule sets recorded in the rule storage unit 110 are rule sets having the same meaning. Output from device 930. If the matrix information is recorded in step S404, the identity analyzer 160 determines that the meanings of the two sets of rules are different in step S405, that is, the two sets of rules are different. Output from the output device 930 that the packet filtering operation is different. At this time, the identity analysis unit 160 records in the buffer. Matrix information that is recorded and the action of the first rule is different is also output device
  • processing procedure of the matrix forming unit 131 shown in FIG. 27 is merely an example. Other procedures can be employed to obtain similar results.
  • the processing procedure of the identity analyzer 160 shown in FIG. 28 is just an example. Other procedures can be employed to obtain similar results. In the above example, the operation when there are two rule sets has been described, but the operation when there are any number of rule sets of two or more is the same.
  • the router 820 and the firewall 830 included in the network configuration shown in FIG. 21 have the same packet filtering operation, or two networks provided between the external network 810 and the PCs 860 and 880 as shown in FIG.
  • An example of analyzing the identity of packet filtering operations of the firewalls 8 50 and 870 will be described.
  • the rule set R300 (rules R31 to R33) and the rule set R400 (rules R41 to R45) shown in FIG. 30 are set as filtering rules in the norator 820 and the firewall 830 shown in FIG. 21, respectively. It shall be.
  • each of the rule sets R300 and R400 shown in FIG. 30 is input from the input device 920 and stored in the rule storage unit 110.
  • the input device 920 collects rules from the router 820 and the firewall 830 shown in FIG. 21, or collects rules such as the firewalls 850 and 870 shown in FIG. It is only necessary to input a rule output by a rule conversion system (not shown) that converts s into rules of a unique format description.
  • the same rule can be used. In this case, the identity can be verified by collating the rule character string.
  • the rule configuration may differ depending on the person who created the rule and the time when the rule was created. Even a single rule can be written in multiple ways, and multiple rules can have the same meaning as a single rule, and the sameness cannot be easily verified simply by matching rule strings. .
  • the filtering rule analysis system of this embodiment verifies the identity in such a case.
  • step S10 7 start points and end points (boundary points) are collected from all the rules included in the two sets of rule sets R300 and R440.
  • step S104 the boundary points are sorted to create matrix space data. In the first embodiment, boundary points are collected only from one rule set.
  • the first set of matrix space data consists of three rule data (R31 to R33) and 30 matrices. Contains data.
  • the second set of matrix spatial data includes 5 rule data (R41 to R45) and 30 matrix data.
  • the boundary points in the first dimension (first attribute) are (0, 1, 2, 4, 7, 8), and there are five minimal regions that can be formed by two adjacent boundary points.
  • identity analysis section 160 After matrix forming section 131 records two sets of matrix space data in matrix space storage section 120, identity analysis section 160 performs analysis using the two sets of matrix space data. Each matrix spatial data that also created the two sets of rule collective power shown in Fig. 30 contains 30 matrix data. Therefore, the flow chart shown in FIG. 28 is repeated, and the crepe of steps S401 to S403 is repeated 30 times until the sameness analysis 160160.
  • the matrix space data corresponding to the first rule set R300 is used as a reference will be described as an example.
  • step S401 the identity analysis unit 160 determines whether or not the unselected matrix data remains in the reference matrix space data.
  • the process branches to the “Yes” side, and the identity analyzer 160 determines that the matrix data in step S402. Select one of them.
  • the identity analysis unit 160 selects the first matrix data (0, 1, 0, 1, abbreviation, R33). Continuing! /, Step S403 [koo! /, The identity analysis unit 160 selects data corresponding to the matrix data as the second set of matrix space data power.
  • the data corresponding to the matrix data is matrix data that is common to the first set of matrix data selected as the boundary point force paired in each attribute.
  • the matrix data selected here is the first matrix data in the second set in this case, and is (0, 1, 0, 1, omitted, R45).
  • the identity analysis unit 160 refers to the rule data of the first rule in the selected matrix data and examines the action of the first rule.
  • the identity analysis unit 160 refers to the rule data of the first rules R33 and R45 and checks the action.
  • the identity analyzer 160 since the action is D, the identity analyzer 160 does not record the first matrix in the nota. If the actions are different, the identity analyzer 160 records information that can identify two pieces of matrix data having different actions of the first rule in the buffer.
  • the identity analysis unit 160 performs this process by selecting all matrix data in the matrix space data as a reference in order.
  • step S404 identity analyzer 160 determines whether or not matrix information is recorded in the buffer.
  • steps S401 to S403 are repeated using two sets of matrix space data created based on the rule set illustrated in FIG. 30, nothing is recorded in the noffer. Therefore, the process proceeds to step S406, and the identity analysis unit 160 outputs from the output device 930 that the two rule sets R300 and R400 are rule sets having the same meaning.
  • the output form of the processing result by the identity analysis unit 160 is not particularly limited, and may be, for example, display output or audio output, or may be output as a file. Good.
  • the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the identity analysis result may be output in the other system. In this case, the identity analysis result can be notified to a user of another system connected to the rule analysis system 100 via a communication network.
  • Fig. 31 shows a display example of the analysis result when the output device 930 is a display device and the identity analysis result is displayed and output.
  • step S405 and S406 the identity analysis result to be output is recorded in a temporary storage device (not shown), and then the identity analysis result recorded in the temporary storage device is output. May be output.
  • a rule set R800 (R81 to R83) and a rule set R900 (R91 to R95) shown in FIG. 32 are stored in the rule storage unit 110, and a matrix created by the matrixing unit 131 based on the two sets of rule sets R800 and R900. It is assumed that the trick space data is stored in the matrix space storage unit 120.
  • rules are described in the same manner as in FIG. 30, and a schematic diagram of the rules is also shown.
  • the matrix spatial data corresponding to the rule set R800 is used as a reference.
  • Identity analysis section 160 selects sequential matrix data for the matrix spatial data force corresponding to rule set R800, and repeats the processing of steps S401 to S403.
  • identity analyzer 160 uses the matrix space data of rule set R800. If the matrix data (2, 3, 1, 2, abbreviation, R82, R83) is selected, in the next step S403, the matrix space data power of the rule set R900 is also (2, 3, 1, 2, abbreviation, R 95) Select the matrix data.
  • the identity analysis unit 160 refers to the rule data of the first rule in the selected matrix data and examines the action of the first rule. Here, the action is investigated by referring to the rule data of the first rules R82 and R95.
  • the action is A in the rule data of the first rule R92, and the action is D in the rule data of R95. Accordingly, since the actions are different, the identity analysis unit 160 uses the information of this matrix and the information of the action, for example, “first set (2, 3, 1, 2, abbreviation, A)”, second set (2, 3 , 1, 2, abbreviation, D) "and so on.
  • step S405 for example, the identity analysis unit 160 indicates that the filtering operation based on the rule sets R800 and R900 is different, the matrix information recorded in the buffer, and the action is A in either rule set.
  • the output device 930 outputs which rule set indicates that the action is D.
  • Figure 33 shows an example of the output result.
  • the filtering rule analysis system of the fourth embodiment whether or not a plurality of packet filtering devices are set with any complicated filtering rule, whether or not these filtering devices perform exactly the same filtering process. You can know. The reason is that the filtering process realized by each rule set is compared in matrix units regardless of the rules and checks whether the actions are the same.
  • FIG. 34 showing the filtering rule analysis system of the fifth embodiment, the same components as those in the first embodiment are denoted by the same reference numerals as those in FIG. Omitted.
  • Filtering rule analysis of the fifth embodiment The system is the same as that shown in FIG. 1, but is different from that shown in FIG. 1 in that a rule deletion unit 170 is provided in place of the overlap analysis unit in the rule analysis system 100. ing.
  • the rule deletion unit 170 refers to the matrix space data and deletes a rule that is stored in the rule storage unit 110 and is determined to be deleteable from the rules in the rule set.
  • the rule deleting unit 170 corrects the description of the rule.
  • the rule deletion unit 170 is realized by a CPU that operates according to a program, for example.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • FIG. 35 to FIG. 37 show examples of rule deletion and rule correction processing procedures by the rule deletion unit 170.
  • the rule deletion unit 170 first copies the rule set stored in the rule storage unit 110 to a buffer (not shown) in step S501, and then copies the rule set in the rule set copied to the buffer. Among these, the loop processing of steps S502 to S506 is advanced for all the rules other than the default rule. In this loop process, the rule deletion unit 170 determines whether or not an unselected rule remains among the rules other than the default rule in the rule set copied to the buffer in step S502. If such a rule remains, in step S503, rule exception IJ removal unit 170 selects a rule other than the default rule in descending order, that is, a rule with a lower priority. Select one in order. Let I be the rule selected in step S503.
  • step S504 the rule deletion unit 170 selects a matrix in which the first rule is not rule I among the matrix data corresponding to the matrix constituting rule I. Enumerate data.
  • J be the set of matrix data listed in step S504.
  • step S505 the rule enhancement IJ removal unit 170 determines whether or not the matrix data set J matches the matrix data set corresponding to the matrix constituting rule I! . If the two sets match, the process proceeds to step S506.
  • the set of matrix data J and the set of matrix data corresponding to the matrix that constitutes rule I match, which means that the first rule in all matrix data of matrix that constitute rule I Is other than rule I, meaning that the same rule I as ⁇ Concealed '' described in the first embodiment is completely hidden by one or more other rules with higher priority .
  • the rule deleting unit 170 deletes the rule I in a cereal state that is completely hidden by other rules.
  • the process without deleting rule I moves to step S502.
  • the conceded rule is deleted from the rule set copied to the buffer.
  • step S502 when the process branches to "No", that is, when it is determined that there is no unselected rule among the rules other than the default rule, the rule deleting unit 170 determines in step S507. , Resets the check attached to each rule in the rule set stored in the nota.
  • “check” refers to information indicating selected. If the rule processing after step S502 is performed and all rules other than the default rule are selected, each rule is checked. In step S507, the check is reset, that is, all are removed. become.
  • the rule enhancement IJ removal unit 170 performs loop processing starting from step S508 and returning to step S508 again for all the rules that have not been deleted from the buffer, except for the default rule (see Fig. 36). ).
  • the rule deletion unit 170 determines whether or not an unselected rule remains among rules other than the default rule in the rule set stored in the buffer. If such rules remain, in step S509, rule deletion unit 170 selects rules other than the default rule that are not selected in descending order, that is, the rule priority is low. Select one in order.
  • K be the rule selected in step S509.
  • the rule deleting unit 170 lists rules satisfying the following three conditions in step S510.
  • the first condition is “a rule that is completely included in the matrix that constitutes rule power rule K and has a higher priority than rule K!
  • rule power is a rule that is completely included in the matrix that constitutes rule K”
  • the range indicated by the attribute indicated by the entire matrix data corresponding to the rule corresponds to rule K. This means that the entire matrix data is within the attribute range indicated.
  • the second condition is a condition that “all the matrix data corresponding to the rule must be the first rule itself! /”.
  • the third condition is that the rule action is the same as the rule K action.
  • the rule deletion unit 170 lists rules that satisfy all of the first to third conditions. Let L be the set of rules listed in step S510.
  • the rule deleting unit 170 proceeds with the loop processing of steps S511 to S514 for all the rules included in the rule set L.
  • the rule deletion unit 170 first determines whether or not an unselected rule remains among the rules included in the rule set L in step S511. If an unselected rule remains, rule deletion unit 170 selects one unselected rule in rule set L in step S512. Let M be the rule selected in step S512. Subsequently, the rule deletion unit 170 has a priority between the rule K and the rule M, and the attribute indicated by the attribute described in the condition part has an attribute described in the condition part of the rule M. Search for rules that partially overlap the range shown.
  • step S513 [Koo! / ⁇ , each matrix that constitutes Nore ⁇ ⁇ than ⁇ ! / ⁇ , Norr ⁇ . It is determined whether or not the priority order is one lower and the rule action matches the rule ⁇ ⁇ ⁇ ⁇ ⁇ action. In other words, whether or not the action of the rule next to rule ⁇ matches the action of rule ⁇ ⁇ is determined in the rule list of all matrix data of each matrix constituting rule ⁇ . Note that the rule that is one priority lower than rule ⁇ may differ depending on the matrix.
  • step S513 If it is determined in step S513 that they match, the rule deletion unit 170 determines in step S514 that Rule M is deleted from the rules recorded in the buffer. If it is determined in step S 513 that! / ⁇ matches! / ⁇ , then the process proceeds to step S 511 as it is.
  • FIG. 38 is a schematic explanatory diagram showing a determination example in step S513.
  • a rule with an action A is shown in a white area
  • a rule with an action D is shown in an area with a pattern in which a number of points are drawn.
  • the priority is a rule between rule K and rule M, and the range indicated by the attribute described in the condition part is the range indicated by the attribute described in the condition part of rule M. It is shown that Rl and R2 exist as rules that overlap even partly. At this time, in each matrix constituting the rule M, the rule having a lower priority than the rule M is R1. Rule M has action A and rule R1 has action D. Accordingly, the rule deleting unit 170 determines that the actions do not match and branches to “NO” in step S513, and proceeds to step S511 without deleting the rule M. In Example 2 shown in FIG.
  • the priority is a rule between rule K and rule M, and the range indicated by the attribute described in the condition part is the range indicated by the attribute described in the condition part of rule M. It is shown that Rl and R2 exist as rules that overlap even partly. At this time, in each matrix that constitutes rule M, the rule that has one lower priority than rule M is R1. Rule M has action A and rule R1 has action A. Accordingly, the rule deletion unit 170 determines that the actions match, and branches to “Yes” in step S513. In step S514, the rule deletion unit 170 is deleted.
  • the priority is a rule between rule K and rule M, and the range indicated by the attribute described in the condition part is the range indicated by the attribute described in the condition part of rule M.
  • R1 to R3 exist as rules that partially overlap.
  • the rule that is one priority lower than rule M is R1 or R2.
  • the action of rule M is A, and the actions of rules Rl and R2 are also A.
  • the rule deleting unit 170 determines that the actions match and branches to “Yes” in step S513, and deletes the rule M in step S514.
  • the priority is a rule between rule K and rule M, and the range indicated by the attribute described in the condition part is the range indicated by the attribute described in the condition part of rule M. It shows that R1 ⁇ R3 exists as a rule that overlaps even partly.
  • rule deletion unit 170 proceeds to step S511 without deleting the rule M.
  • step S511 If the loop processing after step S511 is completed for all rules in rule set L, the process branches to “NO” in step S511, and the process proceeds to step S508.
  • step S508 By this loop processing starting from step S508 and returning to step S508, rules that are determined to be unnecessary due to the presence of a rule having a lower priority than itself are deleted from the buffer.
  • step S508 If it is determined in step S508 that there is no unselected rule among the rules other than the default rule in the rule set stored in the buffer, the process proceeds to step S515.
  • step S515 the rule enhancement IJ removal unit 170 resets the check attached to each rule in the rule set stored in the buffer! /. This process is the same as step S507.
  • the rule enhancement IJ removal unit 170 performs loop processing starting from step S516 and returning to step S516 again for all the rules that have not been deleted from the buffer, except for the default rule (see Fig. 37). ).
  • the rule deletion unit 170 first determines in step S516 whether any unselected rules remain among the rules other than the default rules in the rule set stored in the buffer. To do. If such a rule remains, in step S517, the rule deletion unit 170 selects a rule other than the default rule that has not been selected in descending order, that is, in descending order of rule priority. Select one. Let N be the rule selected in step S517.
  • step S5108 the rule exception IJ removal unit 170 determines whether or not there is a rule other than rule N as the first rule in the matrix data of the matrix constituting rule N. . Without such matrix data If so, the process moves to step S516. If such matrix data exists in step S518, rule deleting unit 170 lists the matrix data and proceeds to step S519.
  • step S519 whether or not the area represented by the matrix data of the matrix constituting rule N and in which the rule other than rule N is the first rule can be reduced for a certain dimension O), that is, Check whether rule N can be reduced in a certain dimension O. If the image cannot be reduced, the process proceeds to step S516. If the image can be reduced, the process proceeds to step S520.
  • FIG. 39 is an explanatory diagram showing a specific example of reduction.
  • FIG. 39 schematically shows the rules Rl and R2. Assume that priority is higher than R1 direction 2 as shown in Example 390A.
  • the range of the first attribute indicated by the condition part of rule R1 is “7 to 10”, and the range of the second attribute is “2 to 7”.
  • the range of the first attribute indicated by the condition part of rule R2 is “1-8”, and the range of the second attribute is “3-6”.
  • the rule R1 is applied first to the packet that falls within the range of the attribute indicated by the hatched portion in the graph 390B, and the rule R2 is not applied. Therefore, by changing the range of the first attribute of rule R2 from “1-8” to “1-7”, as shown in Example 390C, it is not necessary to be applied in rule R2. Area can be eliminated.
  • This modification of the attribute range corresponds to “reduction”.
  • the first attribute corresponds to dimension O, and rule R2 is reduced for the first attribute. Even if such reduction is performed, the meaning of the rules R 1 and R 2 as a whole does not change. In other words, the packet filtering operation does not change.
  • FIG. 40 is also an explanatory diagram showing a specific example of reduction.
  • the first attribute force is also schematically shown as a matrix represented by the range of each attribute up to the third attribute.
  • R71 has a higher priority direction 3 ⁇ 472.
  • the ranges indicated by the attributes of the condition parts of the rules R71 and R72 partially overlap.
  • R72 is shown with a pattern in which a large number of points are drawn in the range indicated by the attribute of the condition part of rule R72 that overlaps the range indicated by the attribute of the condition part of rule R72. .
  • the area with this pattern overlaps with rule R71, and rule R71 has a higher priority, so rule R72 is not applied to packets that fall into this area. Therefore, among the attributes indicated by the condition part of rule R71, R72 can be reduced by narrowing the range of the first attribute, that is, the attribute corresponding to the X axis shown in FIG.
  • the rectangular state means a state where the range of each attribute is represented by a pair of start point and end point. That is, the rectangular state means a state in which the range of each attribute can be expressed as (Al, A2, Bl, B2, CI, C2, D1, D2, El, E2, ⁇ ).
  • FIG. 41A shows a state where the image can be reduced
  • FIG. 41B shows a case where the image cannot be reduced.
  • Rule R 52 shown in Figure 41A has a part of its area (7, 9, 3, 10, omitted) hidden by R51, and the area excluding this part (1, 7, 3, 10, omitted) Is in a rectangular state. That is, it can be represented by a pair of start and end points (1, 7, 3, 10).
  • the range of the second attribute in the area (1, 7, 3, 10, omitted) matches the range of the second attribute 3 to L0 specified in the original rule. It should be noted that even after the third attribute, they are consistent with each other. In this case, it is possible to reduce the rule R52 for the first attribute. Specifically, it is possible to reduce the R52 area to (1, 7, 3, 10, omitted).
  • Rule R62 shown in Fig. 41B is a force in which a part of the area (7, 9, 3, 8, omitted) is hidden by R61.
  • the area of R62 excluding this part is not rectangular. That is, it cannot be represented by a pair of start and end points (Al, A2, Bl, B2, ...;). In the example shown in Figure 41B, rule R62 cannot be reduced.
  • the overlapping area force of the rules R71 and R72 shown in FIG. 40 is assumed to be the area 250 shown in FIG.
  • the first rule in the matrix data of the matrix indicated by the white area is R72.
  • the first rule in the matrix data of the matrix indicated by the area with the pattern is R71.
  • the area excluding the overlapping area 250 with the attribute range of other rules is not in a rectangular state. That is, it cannot be expressed by a pair of start and end points (Al, A2, Bl, B2,). Therefore, in the example shown in FIG. 42, rule R72 cannot be reduced.
  • the overlapping area with the attribute ranges of the other rules in the attribute range indicated by the condition part of the rule 72 is in a rectangular state. That is, the attribute range can be expressed in the form of (Al, A2, Bl, B2,). Therefore, in the example shown in (c) of FIG. 40, R72 can be reduced.
  • FIG. 43 is an explanatory diagram showing a situation where the remaining area is viewed from the infinity direction and the infinity direction of each axis when the remaining area is in a rectangular state.
  • the remaining area is represented as (1, 3, 1, 4, 1, 4). As shown in Fig. 43, it is rectangular when viewed from either direction.
  • FIG. 44 is an explanatory diagram showing a situation in which the remaining area is viewed from the infinity direction and the infinity direction of each axis when the remaining area is not rectangular.
  • the remaining region cannot be represented by a sequence of start point and end point pairs. For example, (1, 3, 1, 4, 1, 4), (3, 4, 1, 2 , 1, 4) and (3, 4, 2, 4, 1, 2) I can't forget.
  • the remaining area is viewed from the infinite directions of the X axis, the Y axis, and the Z axis, the rectangular state is not obtained.
  • step S519 when examining whether or not the rule N can be reduced with respect to a certain dimension O, for example, the following may be examined.
  • the rule deletion unit 170 is the matrix data of the matrix that constitutes the rule N, and the area other than the attribute corresponding to the dimension O in the area represented by the matrix data in which the rule other than the rule N is the first rule, that is, the overlapping area. All the attributes are originally specified in rule N, and it should be checked whether there is a range that matches the range of the other attributes. If such an area exists, the rule can be reduced by narrowing the attribute range corresponding to dimension O to eliminate the area.
  • each attribute is opened even if it is included in the condition part of the reduced rule. Must be described as a combination of start and end points.
  • the two attributes are in a rectangular state. In other words, under the assumption that the axes corresponding to the two attributes, such as the X-axis and Y-axis described above, are orthogonal to each other, the two extracted attributes form a rectangle.
  • step S520 the rule enhancement ij removal unit 170 modifies, that is, reduces the rule N so as to narrow the attribute range in the rule N. Then, the rule deletion unit 170 replaces the rule N originally stored in the buffer with the corrected rule.
  • FIG. 45 is an explanatory diagram schematically showing a case in which the rule deletion unit 170 determines whether or not a rule can be reduced and reduces the rule in a two-dimensional space. In Fig. 45, the overlapping parts of the rules are indicated by diagonal lines. The rule deletion unit 170 determines an overlapping part (the hatched part shown in FIG. 45) with another rule in the rule N.
  • FIG. 46 is an explanatory diagram schematically showing, in a three-dimensional space, a case in which it is determined whether or not the rule deletion unit 170 force rule can be reduced and the rule is reduced.
  • Fig. 46 is an explanatory diagram schematically showing, in a three-dimensional space, a case in which it is determined whether or not the rule deletion unit 170 force rule can be reduced and the rule is reduced.
  • the overlapping part of the rule is represented by adding a pattern depicting many points.
  • the rule deletion unit 170 determines an overlapping part with another rule in this rule. In this overlap, all attributes other than those corresponding to the X axis, here each attribute corresponding to the Y axis and Z axis, match the attribute range originally specified in rule N. Therefore, the rule deletion unit 170 determines that reduction is possible.
  • rule N is modified by narrowing the attribute range corresponding to the X axis so as to eliminate the matrix shown with a pattern.
  • the rules schematically shown in the lower part of FIG. 46 will be described.
  • the rule deletion unit 170 determines that the reduction is not possible, and proceeds to step S516 without performing the reduction process of step S520.
  • step S516 If it is determined in step S516 that there is no unselected rule among the rules other than the default rule in the rule set stored in the buffer, and the process branches to "No" In step S521, the rule deletion unit 170 outputs from the output device 930 the contents of the buffer, specifically, the rule set, deleted rule information, and reduced rule information.
  • the processing procedure of the rule deletion unit 170 shown in FIGS. 35 to 37 is merely an example, and other processing procedures can be adopted to obtain the same result.
  • the operation has been described by taking as an example the case where one rule set exists, but two or more arbitrary rule sets may exist as in the third embodiment. Then, rules may be deleted or reduced for each rule set.
  • FIG. 48 is an explanatory diagram schematically showing the rule set shown in FIG. 47 in a two-dimensional space.
  • step S501 the rule deletion unit 170 copies the rule set stored in the rule storage unit 110 to the buffer, and in each of the eight rules other than the default rule R9 (see FIG. 47). If there are unselected ones, the process proceeds to step S503 after step S502, and unselected rules are selected one by one in descending order. That is, in the loop process starting from step S502, each time the process moves to step S503, rules are selected one by one in the order of R8, R7,..., R1. Let the rule selected in step S503 be I.
  • step S503 When the rule deletion unit 170 first moves to step S503 and selects a rule, rule 8 is selected, so rule R8 becomes rule I.
  • step S504 the rule deletion unit 170 lists matrix data whose first rule is not rule R8 among the matrix data corresponding to the matrix constituting rule I (R8). In the matrix data corresponding to each matrix composing rule 8, the first rule is R6 or R7. Accordingly, the rule exception IJ removal unit 170 branches to “Yes” in step S505, and deletes rule 1 (here, R8) in step S506.
  • step S503 When the process proceeds again to step S503 and the rule deleting unit 170 selects the rule R7, there is a matrix data corresponding to the matrix constituting the rule R7 that has the leading rule force 3 ⁇ 47. Accordingly, the rule deletion unit 170 branches to “NO” in step S505, and proceeds to step S502. The same applies when the process proceeds to step S503 again and rule R6 is selected.
  • step S503 When the process proceeds to step S503 again and the step deletion unit 170 selects rule R5, the first rule is set in all matrix data corresponding to the matrix constituting rule R5. Rules other than R5, specifically R3. Accordingly, the rule deletion unit 170 branches to “Yes” in step S505 as in the case of selecting R8, and deletes R5 in step S506. Thereafter, when R4 to R1 are selected in step S503, the rule deletion unit 170 branches to “NO” in step S505 as in the case of selecting R7, and proceeds to step S502. After selecting R1, when the process proceeds again to step S502, no rules remain, so the process proceeds to step S507. Then, the rule deletion unit 170 resets the check of the rule that has not been deleted.
  • step S508 the rule deletion unit 170 proceeds to step S508 if an unselected rule remains among the six rules other than the default rule R9 among the seven rules included in the rule set. Move to S509. Every time you move to step S509, the rule is deleted ⁇ 170 ⁇ , and its 6th chance is deleted. Jl concealment [here, ly, R7, R6, R4, R3, ... jl concealment], 1 Select one by one. Let K be the rule selected in step S509. When the process first proceeds to step S509 and a rule is selected, the rule deletion unit 170 selects rule R7, so rule R7 becomes rule K.
  • step S510 the rule deletion unit 170 determines that the first condition “the rule is completely included in the matrix constituting the rule power rule K”, “the rule for all the matrix data corresponding to the rule. List the rules that satisfy the second condition, “I am the first rule,” and the third condition, “The action of the rule is the same as the action of rule K”.
  • rule R7 is rule K
  • the rules that satisfy the first condition are Rl and R2. Of these, R2 does not satisfy the second condition.
  • R1 also satisfies the second condition and the third condition. Therefore, in this case, the rule deletion unit 170 selects R1. Therefore, the rule set L listed in step S510 includes only rule R1.
  • step S511 when the rule deletion unit 170 makes the determination in step S511, the rule R1 remains unselected in the rule set L, so the process branches to the "Yes" side, and in step S512 Select one rule R1 from the rule set L. Selected in step S 512 Let the rule be M.
  • the rule exception IJ divider 170 is a rule between the rule K (here R7) and the rule M (here R1), and the attribute described in the condition part. Search for a rule that overlaps at least partially with the range indicated by the attribute described in the condition part of rule M. In this case, R2 is searched.
  • the rule exception IJ excluding unit 170 determines whether or not the action of the rule one lower in priority than the rule M matches the action of the rule M in each matrix constituting the rule M. .
  • the rule that has one lower priority than rule M is R2
  • the priority is one higher than rule M.
  • the lowest rule is R7 (see Figure 49).
  • the actions of rules R2 and R7 are both identical to the action of rule M (R1). Accordingly, the rule deletion unit 170 branches to “Yes” in step S513, deletes rule R1 in step S514, and proceeds to step S511. Since no unselected rule remains in the rule set L, the process branches to “NO” in step S511 and proceeds to step S508.
  • the node deletion unit 170 selects R6 in step S509 and sets R6 as the rule K.
  • the rule enhancement IJ removal unit 170 sets the first condition that “the rule is completely included in the matrix constituting the rule force rule K”, “all the matrix data corresponding to the rule. Satisfy the second condition that the rule itself becomes the first rule! / ⁇ and the third condition that the rule action is the same as the rule K action. Enumerate rules. If rule R6 is rule K, the rules that satisfy the first condition are R3 and R4. Of these, R4 does not satisfy the second condition. R3 also satisfies the second condition and the third condition. Therefore, the rule set L enumerated in step S510 includes only rule R3.
  • step S5 At 12! /, One rule R3 is selected from the rule set L.
  • the rule exception IJ divider 170 is a rule whose priority is between rule K (here R6) and rule M (here R3), and is described in the condition part.
  • the range indicated by the attribute is a rule A rule that partially overlaps with the range indicated by the attribute described in the condition part of M is searched. In this case, R4 is searched.
  • the rule deletion unit 170 determines whether or not the action of the rule having a lower priority than the rule M matches the action of the rule M in each matrix constituting the rule M.
  • the rule that has one lower priority than rule M is R4 (see Figure 49).
  • the action of rule R4 does not match the action of rule R3. Therefore, the rule deletion unit 170 branches to the “No” side in step S513, and proceeds to step S511 without deleting the rule M (R3). Since an unselected rule remains in rule set L! /, Na! /, The process branches to the “,” side of step S511 and proceeds to step S508.
  • step S509 the rule deletion unit 170 selects the rule R4 in step S509 and sets R4 as rule K, "the rule power is a rule completely included in the matrix constituting the rule K".
  • the second condition that the rule itself is the first rule in all matrix data corresponding to the rule, and the rule action is the same as the rule K action.
  • the rule set L obtained by the process of step S510 is an empty set.
  • the rule deleting unit 170 determines that there is no rule remaining in the rule set L, branches to the “, ⁇ ” side, and proceeds to step S508 again. Thereafter, the operation when R3 and R2 are selected in step S509 is the same as the operation when R4 is selected. Since R1 has been deleted, R1 is not selected in step S509.
  • step S508 If rule R2 is selected as rule K and then the process proceeds to step S508 again, there is no unselected rule, so the processing of the rule deletion unit 170 proceeds to step S515.
  • step S515 reset the check of the rules that were not deleted in the step 508.
  • FIG. 50 schematically shows the rule set (R2 to R4, R6, R7, R9) stored in the buffer at the end of step S515. After step S515, the process proceeds to step S516.
  • step S516 the rule deletion unit 170 selects “Yes” if there remains an unselected rule among the five rules other than the default rule R9 among the rules included in this rule set. Branches to step S517.
  • step S517 the rule enhancement IJ removal unit 170 selects the five rules in descending order, here, R7, R6, R4, R3, R2 one by one. Let N be the rule selected in step S517. First, when the process proceeds to step S517 and a rule is selected, rule R7 is selected, so rule R7 becomes rule N. Next, in step S518, the rule deletion unit 170 determines whether or not there is a rule other than rule N as the first rule in the matrix data of the matrix constituting rule N (here, R7)! / Determine. Since some of the matrix data of rule R7 has Rl, R2, and R6 as the first rule, the process branches to “Yes” in step S518 and proceeds to step S519.
  • rule deleting unit 170 determines whether rule N can be reduced for a certain dimension (attribute).
  • the rule deletion unit 170 corresponds to a certain dimension O in the matrix data of the matrix that constitutes the rule N and the area represented by the matrix data in which the rule other than the rule N is the first rule, that is, the overlapping area. All attributes other than the attribute are originally specified in rule N, and it is sufficient to check whether there is a range that matches the range of the attribute! Given such a range, rule N can be reduced for dimension O. Focus on the area (7, 8, 3, 11, abbreviated) of the matrix data that constitutes rule N (R7), where rule R6 other than rule N is the first rule! / To do.
  • step S519 the rule deleting unit 170 determines that R7 can be reduced with respect to the first attribute, branches to the “Yes” side, and proceeds to step S520.
  • step S520 the rule deletion unit 170 changes the range of the first attribute of the rule R7 from the original “1-8” to “1-7” so as to eliminate the above-mentioned area (7, 8, 3, 11, omitted). “Correct. As a result, rule R7 is reduced for the first attribute. afterwards, The process proceeds to step S516.
  • step S517 when R6 is selected in step S517, the determination in step S518 branches to the “yes” side. However, the matrix data of the matrix that constitutes rule R6, and rules other than rule R6 are the first rule! / There is no range where the attribute matches the attribute range originally specified in rule R6. Therefore, the process branches to “NO” in step S519, and proceeds to step S516 without reducing R6. Next, the operation when R4 is selected in step S517 is the same as when R6 is selected.
  • step S517 when the rule deletion unit 170 selects R3 in step S517, in the matrix data of the matrix constituting rule N (here, R3), a rule other than rule N is the first rule. There is nothing. Therefore, in step S518, the process branches to the “No” side and proceeds to step S516 without reducing R3. Next, the operation when R2 is selected in step S517 is the same as when R3 is selected.
  • a rule set (R2, R3, R4, R6, R7, R9) at the time when the above processing is completed is schematically shown in FIG.
  • step S516 If the process proceeds to step S516 after R2 is selected, no rule remains, so rule deletion unit 170 branches to the "No" side of step S516 and stores it in the buffer in step S521.
  • the set of rules that have been deleted, information on deleted rules, and information on reduced rules are output from the output device 930, and the process ends.
  • FIG. 52 shows a display example when the output device 930 is a display device and displays and outputs a set of rules stored in the buffer, deleted rule information, and reduced rule information.
  • the output result of the processing result by the rule deletion unit 170 that is, the rule set remaining in the buffer, the information of the deleted rule, and the information of the reduced rule is not particularly limited. May be output as a file. Further, the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the processing result by the rule deletion unit 170 may be output in the other system. In this case, the rule analysis system 100 is connected via a communication network. The processing result can be notified to the user of another system to be continued.
  • rule R2 is not deleted as shown in FIG. 51 and FIG.
  • R2 should be deleted for the same reason rule R1 was deleted.
  • R2 cannot be deleted by the processing procedure of the rule deletion unit 170 shown in FIGS.
  • the loop processing starting from step S508 and returning to step S508 is repeated until there is no rule that can be deleted, or if branching to the “No” side in step S516, the processing is repeated from step S502, and the rule The processing after step S502 may be repeated until no deletion or correction is performed. In this way, if the processing by the rule deletion unit 170 is repeated, the remaining rules such as R2 shown in FIG. 51 can be easily deleted.
  • the filtering rule analysis system of the fifth exemplary embodiment it is possible to delete unnecessary rules and modify redundant rules, no matter how complicated the filtering rules are. The reason is that by converting the rules into matrix spatial data and exhaustively examining the matrix that makes up any rule, you can remove a rule that is completely hidden by another rule, This is because a partially hidden rule is corrected.
  • the number of rules does not change.
  • Figure 50 shows the pre-reduction rules
  • Figure 51 shows the post-reduction rules.
  • the number of rules is 6 and the number of rules does not change before and after R7 reduction.
  • the rule excluding unit 170 divides the rules for each matrix constituting a rule, generates a plurality of rules, and deletes the rules that are hidden by other rules. Similar results may be obtained.
  • FIG. 53 is an explanatory diagram showing an example of this case. In the rule R3, a part of the area is hidden by the rules Rl and R2 having higher priority. The range of each attribute in the overlapping area of R3 and R1 does not match the range of attributes originally specified in R3.
  • the rule deletion unit 170 may divide the rule R3 for each matrix constituting the rule R3.
  • rule R3 consists of nine matrices. Therefore, the rule deletion unit 170 performs nine rules from rule R3. Create a tool. Of these nine rules, one rule is hidden by R1, and another rule is hidden by R2. The rule excluding unit 170 may delete a rule hidden by another rule from among the divided rules. Then, rule R3 is reduced to eliminate the overlapping area with rules Rl and R2 in the area of rule R3. However, since rule R3 is divided to create nine rules, and then two rules are deleted, seven rules remain as rules that were originally R3. Therefore, this reduction method increases the number of rules.
  • FIG. 54 showing the filtering rule analysis system of the sixth embodiment, the same components as those in the first embodiment are denoted by the same reference numerals as those in FIG. Omitted.
  • the filtering rule analysis system of the sixth embodiment is the same as that shown in FIG. 1, except that in the rule analysis system 100, a frequency analysis unit 180 and a rule input unit 190 are provided instead of the overlap analysis unit. However, it differs from that of the first embodiment.
  • the rule analysis system 100 also receives a packet history 950.
  • the packet history 950 is a packet that has been subject to packet filtering processing within the network system that is actually performing packet filtering processing, in other words, packets that have actually arrived at a device that performs packet filtering processing within the network system. It is the history information about. However, if this packet history 950 (packet history information) contains information on the attributes of each packet that was actually subject to packet filtering processing, information on the payload portion of each packet is sufficient. It does not have to be included. The packet history 950 should contain information about a certain amount of packets that were actually subject to packet filtering.
  • the frequency analysis unit 180 receives the packet history 950, and refers to the attribute of the packet actually subjected to the packet filtering process. Then, the frequency analysis unit 180 adds packet frequency information indicating the number of packets included in the attribute range of the matrix data to the generated matrix data. [0209] Rule making section 190 creates a rule corresponding to the packet actually subjected to the packet filtering process based on the matrix data to which the frequency information is added. And
  • a new rule set is created using the rules.
  • the frequency analysis unit 180 and the rule display unit 190 are, for example, CPs that operate according to a program.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • the frequency analysis unit 180 After the matrix space data is stored in the matrix space storage unit 120, the frequency analysis unit 180 sequentially receives information on each packet included in the packet history 950. The frequency analysis unit 180 examines each packet included in the packet history 950, specifically, one attribute of each packet, and adds frequency information to the matrix data. FIG. 55 shows an example of processing by the frequency analysis unit 180. First, the frequency analysis unit 180 adds the initial value of the frequency information to all matrix data included in the matrix space data recorded in the matrix space storage unit 120 in step S601. Here, the frequency analysis unit 180 may add “0” as the initial value of the frequency information to the end of all matrix data.
  • the frequency analysis unit 180 repeatedly selects one packet from the packet history 950 and repeats the series of processes in steps S602 to S605, and all the packets included in the packet history 950 are processed. This series of processing is performed.
  • step S602 the frequency analysis unit 180 determines whether or not the unselected packet remains in the packet history 950. If packets remain, the frequency analysis unit 180 selects an unselected packet in the packet history 950 in step S603.
  • Step PK is the packet selected in S603.
  • the frequency analysis unit 180 selects the matrix including the packet PK, that is, the matrix data including the attribute of the packet PK within the range of the attribute, as the center of the matrix spatial data. Selected in step S604 The selected matrix data is used as MTR.
  • step S605 the frequency analysis unit 180 adds 1 to the frequency information of the selected matrix data MTR, and proceeds to step S602. On the other hand, if it is determined in step S602 that no packet remains, the frequency analysis unit 180 ends the process.
  • the frequency information indicates the power of how many packets are included in each matrix, in other words, how many packets have attributes within the range of each matrix data attribute. Is added to the end of the matrix data.
  • the rule generation unit 190 next creates a new rule set.
  • two different methods are shown as a method for creating a new rule set by the ruler 190. These methods are illustrated in FIGS. 56 and 57, respectively.
  • the rule forming unit 190 is not limited to the two types of methods, and the rule forming unit 190 may create the rule set by other methods.
  • FIG. 56 shows an example of a new rule set creation process by the rule entry unit 190.
  • the node 190 copies the rule set stored in the node 110 in step S701 to a notifier (not shown).
  • T be the rule set copied to the buffer in step S701.
  • the rule forming unit 190 sorts the matrix data stored in the matrix space storage unit 120 in descending order of the frequency information value, and then in step S703, sets the initial value of the variable U.
  • the variable U is a variable used for extracting matrix data up to a predetermined rank from matrix data sorted in descending order of frequency information values.
  • Rule making section 190 repeats the loop processing of steps S704 to S707 when the value of variable U is less than or equal to a predetermined set value.
  • This predetermined set value is a value indicating the above-mentioned predetermined order, and is set as a value less than the total number of matrix data. This set value is set in advance by the user of the rule analysis system 100 or the rule analysis system 100.
  • the norelay unit 190 first determines in step S704 whether or not the variable U is equal to or less than a predetermined set value.
  • variable U If U is less than or equal to the set value, in step S705, rule making unit 190 selects the middle U-th matrix data of the matrix data sorted in step S702, and converts the matrix data into a rule format.
  • V be the rule obtained by the conversion in step S705.
  • Matrix data is described in the format (area, rule list, frequency).
  • a rule is described in the form of (area, action).
  • step S705 the ruler 190 extracts the area of the matrix data, that is, the range of each attribute, and adds the action of the first rule in the rule list after that area, thereby adding the rule V. Should be created. Subsequently, in step S706, the rule entry unit 190 inserts the rule V as the U-th rule of the rule set T, and sequentially shifts the order of each rule after the U-th one by one before the insertion. Next, calculate the rule U ⁇ ⁇ 190 ⁇ , step S 707 [KOO! /, And the variable U [force 1]!
  • step S708 unnecessary rules are deleted from the rules included in the original rule set ⁇ , that is, the rule set that has been copied in step S701.
  • the conditions for deleting rules that exist from the time of copying in step S701 are the following conditions. In other words, for the rule (R-original) that exists from the time of copying in step S701, a new rule is created from the matrix data of all matrices that make up R-original, and all the newly created rules are saved. R—originaU is also inserted as a rule with high priority, and it is excluded on condition that it is inserted.
  • the rule section 190 determines whether or not each rule satisfies the copy power in step S701, and deletes the rule that satisfies the delete condition. Then, the rule section 190 is in step 709.
  • the rule set T from which unnecessary rules are deleted in step S708 is output from the output device 930.
  • FIG. 57 shows another example of a new rule set creation process by the ruler 190.
  • the same number of rules as the total number of matrix data are created.
  • processing such as copying a rule set (step S701) and deleting a rule (step S708) as in the method shown in FIG. 56 is not performed.
  • the rule forming unit 190 sorts the matrix data stored in the matrix space storage unit 120 in descending order of the frequency information value. This process is the same as step S702 in FIG.
  • the node node 190 prepares a rule set W that is an empty set in step S802.
  • step S803 the rule generator 190 creates new rules by converting each matrix data in the order of the sorting result in step S801, that is, in descending order of the frequency information value, and creates the rules in the order of creation. Add to rule set W.
  • the process for creating a new rule is the same as the process for creating rule V in step S705 of FIG.
  • the ruler 190 outputs the rule set W from the output device 902 in step S804.
  • processing procedure of the frequency analysis unit 180 shown in FIG. 55 is merely an example. Other procedures can be employed to obtain similar results.
  • the processing procedure of the rule generator 190 shown in FIGS. 56 and 57 is merely an example. Other procedures can be employed to achieve similar results.
  • Rule forming section 190 may obtain the same result as the processing procedure shown in FIG. 56 or 57 by a processing procedure different from that in FIG. 56 or FIG.
  • step S705 and step S803 rules are formed in units of matrix data.
  • step S705 and step S803 rules are formed in units of matrix data.
  • step S705 and step S803 rules are formed in units of matrix data.
  • step S705 and step S803 rules are formed in units of matrix data.
  • the process of creating a rule from the combined matrix is the same as the process of creating rule V in step S705.
  • the first condition is that the matrices are adjacent to each other, and each attribute of the matrix obtained by combining can be represented by a pair of boundary points.
  • the second condition is that the frequency information values of the matrix data to be combined are close. That is, the difference between the maximum value and the minimum value of the frequency information of each matrix data to be combined is not more than a predetermined threshold value.
  • the third condition is the first rule of each matrix data to be combined
  • each attribute is represented by a pair of boundary points. Can do.
  • each attribute can be represented by a pair of 0 and 2, and a pair of 1 and 2. Therefore, the first condition is satisfied for matrices 1 and 2. If the difference between the frequency information values of the matrix data of the matrices 1 and 2 is less than the predetermined threshold, the second condition is also satisfied. If the actions of the first rule of the matrix data of matrix 1 and 2 are common, the third condition is also satisfied.
  • the rule section 190 may combine the matrix data of the matrices 1 and 2 and create a rule based on the matrix data force obtained by the combination.
  • Matrix 3 shown in FIG. 58 does not satisfy the third condition because it is not adjacent to matrix 1 or 2 or matrix 4. Therefore, it cannot be combined with Matrix 1, 2 or Matrix 4.
  • the matrix 4 shown in FIG. 58 cannot be combined with the matrix 1, 2 or the matrix 3.
  • the number of rules finally created may be limited, and matrix data may be combined within that range to create rules.
  • FIG. 59 shows a schematic diagram of each rule.
  • the frequency analysis unit 180 inputs the packet history illustrated in FIG.
  • the packet history includes information on the attributes of packets that are actually subject to packet filtering.
  • this attribute information indicates the value of each attribute itself, and does not indicate the range of each attribute such as the first attribute.
  • FIG. 60 the values of the first attribute and the second attribute are shown.
  • FIG. 61 is a schematic diagram showing a matrix data two-dimensional plane created based on the rule set shown in FIG.
  • the created matrix data corresponds to nine matrices M1 to M9 shown in FIG.
  • the frequency analysis unit 180 executes the process shown in FIG. 55 using the generated nine matrix data and the input packet history (see FIG. 60). An example of the matrix data obtained as a result is shown in FIG.
  • the frequency analysis unit 180 adds frequency information to the end of each matrix data as shown by the underline in FIG.
  • step S701 in Fig. 56 the rule input unit 190 copies the rule set to the buffer. Then, the rule forming unit 190 sorts the matrix data based on the frequency information shown in the underlined portion in FIG. 62, and ranks each matrix data in step S702 in FIG. Figure 62 also shows this ranking. In this example, it is assumed that the setting value used in the determination in step S704 is 2.
  • FIG. 63 shows the change of the rule set T copied to the buffer.
  • the rule set is in the state R701 shown in FIG.
  • variable U The value of variable U is 1 when the process proceeds to step S704 for the first time. Therefore, since the variable U is less than or equal to the set value 2, the process branches to “Yes” in step S704, and the ruler 190 is a matrix whose rank is 1 (value of variable U) in step S705.
  • Task data power also generates rule V.
  • the rule forming unit 190 inserts the rule V as the first rule into the rule set T, and in step S706, shifts each rule after the first before insertion one by one.
  • the state of rule set T at this time is state R702 shown in FIG.
  • the ruler 190 adds 1 to the variable U and sets the value of U to 2.
  • step S704 when the process proceeds to step S704, the value of the variable U is 2, which is less than the set value 2. Then, the process branches to the “Yes” side of Step S704, and the ruler 190 generates a rule V for the matrix data force with the rank of 2 (value of variable U) in Step S705.
  • step S706 the ruler 190 inserts this rule V into the rule set T as the second rule, and shifts each rule after the first one before insertion.
  • the state of rule set T at this time is state R703 shown in FIG.
  • the noise ratio 190 adds 1 to the variable U and sets the value of U to 3.
  • step S708 the node 190 determines whether or not to delete the rules Rl and R2 (see FIG. 59) existing from the copy in step S701, and the rule determined to be deleted from the rule set T. delete. Matrix data power of all matrices that make up R1 A new rule is created, and all the newly created rules have a higher priority than R1 and are not inserted as rules. Is not deleted. Similarly, R2 is not deleted. Therefore, in this example, the rule is not deleted in step S703!
  • the data created based on the matrix data M5 having a large frequency information value in the matrix data M5 is inserted as a rule with higher priority than the rule R1.
  • a new rule is created from the matrix data M5 of all the matrices constituting the rule R1, and the rule has a higher priority than R1 and is inserted as a rule.
  • the whole matrix is a single matrix.
  • the ruling unit 190 determines to delete R1 in step S708, and deletes R1.
  • the rule created and inserted based on the matrix data M5 is the same rule as the original R1.
  • step S701 even when there are a plurality of matrices constituting the force rule indicating that the area of the matrix data M5 and the area of the rule R1 are the same, the above-mentioned “when copying in step S701” is performed.
  • a new rule has been created and the matrix data power of all the matrices that make up the rule R— or iginal If all the newly created rules are inserted as rules with higher priority than R-originaU, the rule R_original is deleted if the above conditions are satisfied.
  • Rule forming section 190 outputs rule set T from output device 930 after step S708.
  • the ruler 190 outputs the rule set T in the state R703 shown in FIG.
  • the processing procedure shown in FIG. 56 includes the processing of step S708.
  • the rule deletion unit 170 in the fifth embodiment deletes the C oncealed rule. You may perform the process similar to the process to perform.
  • rule forming section 190 sorts each matrix data shown in FIG. 62 in step S801. The order of each matrix data in this sort result is as shown in FIG.
  • the second rule R2 (0, 3, 4, 7, abbreviation, D) is created from the second matrix data M7 and added to the rule set W.
  • the rule section 190 creates a ninth rule R9 from the ninth matrix data and adds it to the rule set W.
  • Figure 64 shows the rule set W obtained as a result.
  • the node relay 190 outputs the node set W shown in FIG.
  • the processing result of the rule input section 190 that is, the output mode of the created rule set is not particularly limited, and may be a display output or an audio output, or may be output as a file.
  • the output device 930 may be provided in another system connected to the rule analysis system 100 via a communication network, and the rule set may be output in the other system. In this case, the rule set can be notified to the user of another system connected to the rule analysis system 100 via the communication network.
  • the filtering process can be speeded up no matter how complicated the filtering rule is.
  • the reason is that the rules are transformed into matrix spatial data and those matrices are extracted from the packet history.
  • By sorting the matrix in order of frequency packets with the same attributes as packets arriving in the past to many network devices that perform packet filtering processing can be matched with high priority rules. This is the power to create a new rule set by modifying the rule set or recreating each rule so that it can be done.
  • a filtering rule analysis system according to a seventh embodiment of this invention will be described.
  • the operation of the force matrixing unit 130 having the same configuration as the filtering rule analysis system of the first embodiment shown in FIG. 1 is different.
  • the filtering rule analysis system according to the seventh embodiment will be described below with reference to FIG.
  • the constituent elements other than the matrix forming unit 130 are the same as those in the first embodiment, and a description thereof will be omitted.
  • the matrix forming unit 130 has the ability to execute the processing of step S101 to step S108 as in the first embodiment. From the created matrix space data, a default rule is generated as a rule list. More specifically, the process of deleting the matrix data to which only the rule name of the default rule is added is also executed.
  • the seventh embodiment differs from the first embodiment in that such matrix data deletion processing is performed.
  • FIG. 65 shows an example of the operation of the matrix forming unit 130 in the seventh embodiment.
  • the matrix ⁇ ⁇ creates matrix space data using the rule set stored in the record.
  • the processing in steps S101 to S108 for creating matrix space data is the same as the processing in steps S101 to S108 (see FIG. 2) described in the first embodiment. If it is determined in step S106 that the rule remains, the process branches to the “,,” side of step S 106, and the matrix forming unit 130 leaves the rule in step S 109.
  • the matrix data to which only the default rule is added as a rule list is deleted from the matrix data created until it is determined that it is not.
  • the rule list added to the matrix data M001 is ⁇ Rl, R7, R8 ⁇ , and the matrix data MO
  • the rule list added to 02 is ⁇ R8 ⁇
  • the rule list added to the matrix data M003 is ⁇ R6, R8 ⁇
  • the rule name of the default rule is R8, Since only the default rule is added as the rule list and the matrix data is M002, the matrix forming unit 130 deletes the matrix data M002 from the matrix data created until it is determined that no rule remains. . If there is another matrix data to which only the default rule is added as the rule list, the matrix forming unit 130 also deletes the matrix data.
  • the matrix forming unit 130 stores the matrix space data obtained as a result of the processing from steps S101 to S109 shown in FIG. 65 in the matrix space storage unit 120.
  • the overlap analysis unit 140 refers to the matrix space data stored in the matrix space storage unit 120 and finds an overlap between the rules. The result is output using the output device 930. Since the processing of the overlap analysis unit 140 is the same as that of the first embodiment, description thereof is omitted.
  • the operation of the filtering rule analysis system of the seventh exemplary embodiment will be described using a specific example.
  • a description will be given assuming that the rule set shown in FIG. 5 exemplified in the first embodiment is stored in the rule storage unit 110.
  • the matrix forming unit 130 executes the processing of steps S101 to S108 for the rule set shown in FIG. 5, the rule data shown in FIG. 9 and the matrix data shown in FIG. Is generated.
  • the matrix forming unit 130 in the present embodiment deletes matrix data in which only the default rule is added as a rule list in step S109.
  • FIG. 66 shows an example of matrix data to be deleted.
  • the matrix data to which only the default rule (here, R8) is added as the rule list is M001, M013, M014, M130, and the like.
  • the matrix section 130 refers to the rule list of each matrix data and deletes these matrix data in which only the default rule is added. Note that the matrix data shown in Fig. 66 is a part of the entire matrix data. Shown in Figure 66! /, Not really! /.
  • the filtering rule analysis system of the seventh embodiment it is possible to grasp the relationship between rules even in a rule set having many complicated filtering rules.
  • the reason is that the generated matrix data force also deletes the matrix data related only to the default rules that are not related to grasping the relationship between rules, so even if many rules are included in the rule set, the number of matrix data It is the power that can reduce Since the number of matrix data can be reduced, the memory consumption of the computer can be reduced.
  • step S109 is added to the matrix space data creation process in the first embodiment.
  • the operation of the matrix forming unit 130 is the same as that of the first embodiment, but also in the fifth embodiment and the sixth embodiment.
  • the matrix forming unit 130 may execute the process of step S109 as shown in FIG. 65 in the matrix space data creation process.
  • the matrix forming unit 130 may add the process of step S109 in FIG. 65 to the matrix space data creation process.
  • the pass test unit 150 does not delete all the matrix data of the matrix including the test packet before the processing of step S301 (see FIG. 15).
  • the pass test unit 150 may perform the processing from step S301 (see FIG. 15) onward.
  • the passing test unit 150 targets the remaining matrix data without being deleted. Then, the processing after step S301 (see Fig. 15) can be executed. Then, the pass test unit 150 may indicate whether the packet passes or does not pass according to the action of the default rule in the area where the matrix data does not remain in the test packet. For example, for matrix data that remains without being deleted Then, the processing after step S301 is executed, and “If it is in the area of (6, 8, 6, 9, omitted)”, “If it is in the area of (8, 9, 6, 9, omitted), it passes. ”Is not displayed”.
  • the pass test unit 150 displays, for example, “other area” in the test packet where the matrix data does not remain, and when the default rule action is “A”, “other area” is displayed. If the default rule action is “D”, you can display "Go to other areas! Don't pass".
  • the passing test unit 150 displays "the test packet passes” etc. if the action of the default rule is "A” If the default rule action is "D”, display "Test packet does not pass”, etc.
  • the matrix forming unit 130 may add the process of step S109 shown in FIG. 65 to the matrix space data creation process.
  • the processing of step S109 is performed in the matrix space data creation processing in the third embodiment.
  • the matrix forming unit 130 deletes the matrix data in which only the default rules of the plurality of rule sets used for creating the matrix spatial data are added to the rule list.
  • a plurality of rule sets used for creating matrix space data are rule sets RIOO and R200 shown in FIG.
  • the default rule for rule set R1 00 is R13
  • the default rule for rule set R200 is R22. Therefore, in this example, the matrix forming unit 130 may delete the matrix data to which only R13 and R22 2 are added as the rule list.
  • the pass test unit 151 when the process of step S109 is added, the pass test unit 151 (see Fig. 19) performs the processing of the matrix including the test packet before the process of step S301 (see Fig. 20). It is determined whether all the matrix data is left without being deleted, only a part of it is deleted and part of it is left, or whether it is all deleted. If it is determined that all the matrix data of the matrix including the test packet remains without being deleted, the pass test unit 151 may execute the processing from step S301 (see FIG. 20) onward. [0250] On the other hand, when it is determined that only a part of the matrix data of the matrix including the test packet has been deleted and a part remains, the passing test unit 151 targets the remaining matrix data without being deleted.
  • the processing after step S301 may be executed to display the matrix data area as shown in FIG.
  • the passing test unit 151 refers to the default rule action of each rule set in the order of the rule set. If the action of the default rule is “A”, refer to the action of the next default rule. If the default rule action is "D”, the passing test unit 151 stops the reference of the default rule action at that time, and "cannot pass other areas in the test packet. ”Etc. may be displayed. When the default rule of the last rule set is referenced, the passing test unit 151 displays “If the default rule action is“ A ”,“ passes through other areas in the test packet ”, etc. If the action of the default rule is "D”, display "Do not pass through other areas in the test packet.”
  • the passing test unit 151 refers to the action of the default rule of each rule set in the order of the rule set. If the default rule action is "A”, refer to the next default rule action. If the default rule action is "D”, the passing test unit 151 may stop referring to the default rule action at that time, and display "Test packet does not pass.” . When the default rule of the last rule set is referenced, the passing test unit 151 displays “If the default rule action is“ A ”,“ Test packet passes ”, etc., and the action of the default rule is“ If “D”, “test packet does not pass.” Etc. may be displayed.
  • the matrix forming unit 131 may add the process of step S109 of Fig. 65 to the matrix space data creation process.
  • the process of creating matrix space data corresponding to one rule set for example, the process of steps S 112 and S 113 shown in FIG. Repeat the 108 Norape process.
  • the matrix forming unit 131 may perform the same process as step S109 shown in FIG.
  • step S109 When the process of step S109 is added in the fourth embodiment, the matrix data corresponding to the selected first set of matrix data is also selected in step S403, and the second set of matrix spatial data forces is also selected. There are cases where it is not possible. This is because part of the matrix data has also been deleted from the second set of matrix spatial data forces due to the addition of step S109.
  • the identity determination unit 160 refers to the default rule action of the rule set corresponding to the second set of matrix space data, and can check whether the action is the same as the action of the first rule of the selected first set of matrix data. That's fine. The processing after determining whether these two actions are the same is the same as step S403.
  • step S401 A part of the matrix data in the reference matrix space data may be deleted by the processing in step S109. Therefore, if it is determined in step S401 that no rule remains, the identity analysis unit 160 uses the matrix data of the second set of matrix space data that has not yet been selected as a reference to perform steps S401 to S401. Repeat the process of S403. However, since the matrix data of the first set of matrix spatial data corresponding to the matrix data of the second set of matrix spatial data that has not been selected has already been deleted by the processing of step S109, In step S403, the action of the default rule of the rule set corresponding to the first set of matrix space data is referred to and it is checked whether the action is the same as the action of the first rule of the selected second set of matrix data.
  • the filtering rule analysis system of the eighth embodiment is the same as that shown in FIG. 1, except that the rule analysis system 100 includes a rule integration unit instead of the overlap analysis unit. It is different from the ones.
  • the rule integration unit 200 refers to the matrix space data, and integrates the rules that are stored in the rule storage unit 110 and are determined to be integratable among the rules in the rule set.
  • the rule integration unit 200 is realized by a CPU that operates according to a program, for example.
  • the program is stored in, for example, a program storage device (not shown) provided in the rule analysis system 100.
  • FIGS. 68 to 70 show examples of processing procedures for rule integration by the rule integration unit 200.
  • the rule integration unit 200 first obtains a combination of rules that may be integrated, that is, integration candidates in step S910, and then in step S920. In step S910, it is confirmed whether or not the combination of rules that are candidates for integration can be integrated. Then, in step S930, the rule integration unit 200 integrates a combination of rules that can be integrated, and corrects the rule set.
  • Fig. 69 shows an example of a processing procedure of processing for obtaining an integration candidate in step S910.
  • the rule integration unit 200 first refers to the rule data stored in the matrix space storage unit 120 in step S911! All combinations of rules (rule data) that satisfy the predetermined condition are extracted.
  • the combination of rules extracted here is a combination of two rules.
  • This predetermined condition is that the rule data of the default rule is included! /, N! /, And the action of the two rule data is common. That is, in step S911, the rule integration unit 200 extracts all combinations of two rules that are rules other than the default rule and have a common action.
  • step S912 the rule integration unit 200 determines whether or not the combination still remains selected in step S913 from the combinations extracted in step S911. If it is determined that an unselected combination remains, the process proceeds to step S913. If it is determined that no unselected combination remains, the process for obtaining a combination that is a candidate for integration ends. .
  • step S913 the rule integration unit 200 selects one of the unselected combinations. That is, the rule integration unit 200 selects two rules (rule data) that constitute one combination among unselected combinations.
  • the two rules selected in step S913 are called Ra and Rb, respectively.
  • the rules Ra and Rb are not default rules, and the actions of the rules Ra and Rb are the same.
  • step S914 the rule integration unit 200 counts the number of matrixes constituting the rule Ra.
  • the rule data a list of matrices is recorded at the end. Therefore, in order to count the number of matrices constituting an arbitrary rule, the number of matrix names in the matrix list recorded in the rule data may be counted.
  • Ma be the number of matrices constituting rule Ra, that is, the number of matrices counted in step S914.
  • step S915 the rule integration unit 200 counts the number of matrices constituting the rule Rb in the same manner as in step S914.
  • Mb be the number of matrices composing rule Rb, that is, the number of matrices counted in step S915.
  • the rule integration unit 200 virtually creates the minimum multidimensional cube Q that can be formed by the rule Ra and the rule Rb, and determines the number of matrices that constitute the minimum multidimensional cube Q.
  • the minimum multidimensional cube Q that can be formed by the rule Ra and the rule Rb is selected as the start point of each attribute by selecting the start point having the smaller value from the start points of the corresponding attributes of the rules Ra and Rb.
  • the end point with the larger value among the corresponding attribute end points of rules Ra and Rb is selected as the end point of each attribute, the region defined by the start point and end point selected for each attribute That is.
  • the start point with the smaller value from the start points of the first attributes of rules Ra and Rb as the start point of the first attribute As the end point of one attribute, select the end point with the larger value among the end points of the first attribute of rules Ra and Rb. Select the start point and end point after the second attribute in the same way.
  • the region defined by the start point and end point of each attribute selected in this way is the minimum multidimensional cube.
  • minimum multidimensional cube is used, but the minimum multidimensional cube Q is not necessarily a cube in a strict sense (a cube existing in a three-dimensional space).
  • the minimum multidimensional cube Q is a two-dimensional area. For example, if there are four or more attributes of rules Ra and Rb, the minimum multidimensional cube Q is an area of four or more dimensions.
  • the matrix that forms the minimum multidimensional cube Q is a matrix that overlaps the region of the minimum multidimensional cube Q.
  • the number of matrices constituting the minimum multidimensional cube Q can be calculated using the boundary points obtained by the matrix forming unit 130.
  • the rule integration unit 200 obtains the number of areas (ranges) obtained as a result of dividing the range from the start point force to the end point of the attribute of the minimum multidimensional cube Q by the boundary point for each attribute, and found for each attribute. By calculating the product of the numbers, the number of matrices composing the minimum multidimensional cube Q can be obtained.
  • a specific example is shown below. Here, it is assumed that there are two types of attributes described in each rule data, and each rule data describes the start and end points of the first and second attributes.
  • the boundary points on the X-axis are 0, 10, 40, 60, 80, 100, and the boundary on the Y-axis (corresponding to the second genus) ⁇ ; force SO, 10, 20 , 50, 70, 80, 90, 10 0. It is assumed that Nore Nore's Nore data power (10, 60, 20, 90, omitted) and Nore Rb rule data (40, 80, 50, 100, omitted). Then, the range of the minimum multidimensional cube Q is (10, 80, 20, 100).
  • the number of regions obtained as a result of dividing the range from the start point “10” to the end point “80” of the first attribute of the smallest multidimensional cube Q by the boundary points 10, 40, 60, 80 on the X axis is , Three. Specifically, it is three in the range of 10-40, the range of 40-60, and the range of 60-80.
  • the number of regions obtained is 5.
  • the number of matrices obtained in step S916, that is, the number of matrices constituting the minimum multidimensional cube Q is defined as Mq.
  • step S912 the combination power of the rules that are not stored in the buffer and stored in the buffer when it is determined that there is an unselected combination left!
  • a combination of rules, that is, an integration candidate A combination of rule data stored in the matrix space storage unit 120 is stored as an integration candidate in the buffer.
  • step S930 the rules included in the rule set stored in the rule storage unit 110 are integrated.
  • FIG. 70 shows an example of a processing procedure for confirming whether or not integration is possible with respect to a combination of rules set as integration candidates, which is shown as step S920 in FIG. 68.
  • the rule integration unit 200 determines that there is an unselected combination remaining in step S912. Specifically, the rule integration unit 200 determines whether integration is possible for the combination of rules that are candidates for integration. Start the process to confirm. First, in step S921, the rule integration unit 200 determines whether or not a combination remains selected from the combination of rules stored in the buffer in step S922 described later. If no unselected combination remains in the buffer, the process ends. If the unselected combination remains in the buffer, the rule integration unit 200 moves to step S922.
  • step S922 the rule integration unit 200 is still selected from the buffer! Select a combination of / rules. The rules that make up the selected combination Ra and Rb.
  • the rule integration unit 200 determines whether or not all vertex powers of the minimum multidimensional cube Q that can be generated by the rule Ra and the rule Rb are related to the rule Ra or the rule Rb.
  • the vertex is a point determined by a combination of the start point or end point of each attribute. Therefore, the vertex of the minimum multidimensional cube Q is a point determined by the combination of the start point or end point of each attribute that defines the minimum multidimensional cube Q.
  • the start point of the first attribute, the second attribute The point determined by the combination of the end point of, the start point of the third attribute, etc. is the vertex.
  • vertex is related to rule Ra or rule Rb” means that the rule list of the matrix data of the vertex matrix including the vertex includes the description of rule Ra or rule Rb! /. Therefore, "all vertex powers of the minimum multidimensional cube Q that can be created by rule Ra and rule Rb are related to rule Ra or rule Rb" means that each vertex matrix including individual vertices of that minimum multidimensional cube Q This means that the rule list of the matrix data contains the description of rule Ra or rule Rb.
  • the vertex matrix of the minimum multidimensional cube Q is a matrix including the vertices of the minimum multidimensional cube Q among the matrices constituting the minimum multidimensional cube Q.
  • the rule integration unit 200 determines the rule list of the matrix data of all vertex matrices of the minimum multidimensional cube Q. To see if it contains a description of rule Ra or rule Rb! If the rule list of the matrix data of all vertex matrices of the minimum multidimensional cube Q contains a description of rule Ra or rule Rb, then all vertices of Q are related to rule Ra or rule Rb. . If neither rule Ra nor rule Rb is described in the matrix data rule list of any vertex matrix, it is not relevant.
  • the rule integration unit 200 identifies the vertex matrix of the minimum multidimensional cube Q by identifying the matrix including the vertices of the minimum multidimensional cube Q from among the matrices constituting the minimum multidimensional cube Q, Good.
  • the starting point of each attribute of minimum multidimensional cube Q is the start of the corresponding attribute of rule Ra.
  • the point or the starting point of the corresponding attribute of rule Rb is the deviation.
  • the end point of each attribute of the minimum multidimensional cube Q is either the end point of the corresponding attribute of rule Ra or the end point of the corresponding attribute of rule Rb.
  • step S923 the rule integration unit 200 records the combination of rules selected in step S922 in a buffer (not shown). This buffer is different from the buffer that records the combination in step S910, more specifically in step S918. At least, the recording area where the combination is recorded in step S918 and the recording area where the combination is recorded in step S923 may be different. In the following description, the buffer that records the combination in step S923 is referred to as a rule integration buffer.
  • step S923 the process proceeds to step S921.
  • step S922 if it is determined that the vertex force rule Ra or rule Rb of the smallest multidimensional solid Q that can be created by rule Ra and rule Rb is not related, record the combination of step S923. The process proceeds to step S921.
  • each combination stored in the rule integration buffer can be integrated into a rule. It shows two confirmed rules.
  • the rule integration unit 200 determines that no unselected combination remains in step S921 shown in Fig. 70, and then confirms in step S930 that the rules can be integrated. For each combination, the two rules stored in the rule storage unit 110 are integrated. In this step S930, the rule integration unit 200 may perform the following processing.
  • the rule integration unit 200 refers to each combination stored in the rule integration buffer after step S920, identifies the two rules indicated by each combination, and also identifies the central force of the rule set stored in the rule storage unit 110. To do. And part 2 Integrate two rules for each set of rules.
  • the rules identified by the combination of rules stored in the rule integration buffer after step S920, and the rules specified in the rule set stored in the rule storage unit 110 are identified as Ra, Rb.
  • the rules identified by the combination of rules stored in the rule integration buffer after step S920, and the rules specified in the rule set stored in the rule storage unit 110 are identified as Ra, Rb.
  • the rule integration unit 200 identifies the rules Ra and Rb that can be integrated as the center of the rule set stored in the rule storage unit 110, and then uses the rule Ra as the starting point of each attribute of the new rule. Select the start point of the corresponding attribute of rule Rb and the start point of the corresponding attribute of rule Rb, whichever has the smaller value, and use the end of the corresponding attribute of rule Ra as the end point of each attribute of the new rule. By selecting the end point with the larger value among the end points of the corresponding attribute of point and rule Rb, the start point and end point of each attribute of the new rule, that is, the rule integrating Ra and Rb can be defined. That's fine.
  • the rule integration unit 200 may use the same values as the start point and end point of the new rule.
  • the rule integration unit 200 may determine an action common to the rules Ra and Rb as an action of a new rule, that is, a rule integrating Ra and Rb.
  • the nozzles Ra and Rb forces S to be integrated are (20, 90, 50, 120, A) and (90, 140, 50, 120, A), respectively.
  • the rule integration unit 200 uses the start point “20” of the first attribute of the rule Ra and the start point “90” of the first attribute of the rule Rb as the start point of the first attribute of the new rule that integrates Ra and Rb.
  • the starting point “20” with the smaller value is selected as the starting point for the first attribute of the new rule.
  • the rule integration unit 200 has a larger value between the end point “90” of the first attribute of the rule Ra and the end point “1 40” of the first attribute of the rule Rb as the end point of the first attribute of the new rule.
  • the rule integration unit 200 sets the same value as the start point of the new rule. Good.
  • the start points of the second attributes of Ra and Rb are both “50”
  • the end points of the second attributes of Ra and Rb are both “120”. Therefore, in this example, the rule integration unit 200 sets the start point and end point of the second attribute of the new rule to “50” and “120”, respectively.
  • the rule integration unit 200 adds a new action “A” common to Ra and Rb. Rule action. Therefore, in this example, the rule integration unit 200 uses (20, 140, 50, 120, A) and !! NONONORE as the new NORE that integrates the rules Ra and Rb. It is stored in 110 and added to the rule set.
  • rule integration unit 200 deletes the two rules to be integrated from the rule set stored in rule storage unit 110. That is, when integrating two rules in step S930, the rule integration unit 200 creates a process for deleting the two rules to be integrated from the rule set and a new rule that integrates the two rules. Performs processing to be added to the rule set. The rule integration unit 200 performs such processing for each group of rules Ra and Rb that can be integrated.
  • a combination of two rules that can be integrated is selected, and the two rules are integrated to create a new rule.
  • Rc may be created by integrating the two rules Ra and Rb, and then a new rule that integrates Rc with other rules may be created by performing the processing from step S910 onward.
  • the matrix spatial data must be modified in addition to the modification of the rule set.
  • the matrix forming unit 130 may create new matrix spatial data using the rule set to which the integrated rules are added, and then perform the processing from step S910 again.
  • the rule integration unit 200 is repeated until it becomes impossible to specify a combination of rules that can be integrated. In other words, if the combination is not recorded in the buffer when branching to the “No” side in Step S912, or if the combination is recorded in the noffer when branching to the “No” side in Step S921 Finally, if you repeat the integration process.
  • the matrix space data and the rule set stored in the rule storage unit 110 after the rule integration are matched to form a matrix.
  • the unit 130 may create new matrix spatial data using the rule set to which the integrated rules are added.
  • the filtering rule analysis system of the eighth embodiment Even for filtering rules, two rules that can be integrated can be integrated. The reason is that the rule force matrix space data is generated, and the number of matrices that make up the two rules that satisfy the given condition and the number of matrices that make up the smallest multidimensional cube that can be formed by the two rules are compared to find the integration candidate. This is because it is possible to determine whether or not the integration candidates can be integrated by determining whether they are related to all vertex force rules Ra or rule Rb of the minimum multidimensional cube Q.
  • the number of rules can be reduced, making it easier for administrators to understand the rules.
  • the administrator may confirm the integrated rules and determine the order of the rules.
  • the method for determining the order of the rules after integration is not limited to the method in which the administrator confirms and determines the rules.
  • the filtering rule analysis system of the eighth exemplary embodiment Since the operation until the rule set 910 is input and stored in the matrix space storage unit 120 as matrix space data is the same as that of the first embodiment, the description thereof is omitted. It is assumed that the matrix space storage unit 120 stores the rule data illustrated in FIG. 71B as the rule data included in the matrix space data.
  • 71A is a schematic diagram showing each rule created by the rule data illustrated in FIG. 71B and each matrix created in the matrix forming unit 130. FIG. Note that the numbers indicated by arrows in FIG. 71B represent the number of matrices constituting each rule.
  • the rule integration unit 200 refers to the rule data illustrated in FIG. 71B, and is a combination of two rules (rule data) that are rules other than the default rule and have a common action. Are all extracted.
  • the rule integration unit 200 includes (R2, R3), (R2, R4), (R2, R5), (R2, R6), (R3, R4), (R3, R5), (R3, R6) ), (R4, R5), (R4, R6), and 10 combinations of (R5, R6) are extracted. Both of these combinations have the same “A” action.
  • the action of rule R1 shown in FIG. 71B is “D”, and the only other rule whose action is “D” is only the default rule R7. Therefore, in this example, combinations including R1 are not extracted.
  • Fig. 72 shows a comparison between Mq and Ma + Mb in each of the above 10 combinations.
  • M (Ra + Rb) indicates the number of matrices constituting the minimum multidimensional cube Q that can be formed by the rule Ra and the rule Rb.
  • the equal sign is! /
  • the notation of M (R2), etc., to the right of the inequality sign indicates the number of matrices that make up each rule.
  • M (R2) represents the number of matrices that make up rule R2.
  • the two rules that the number of matrices Mq that make up the minimum multidimensional cube Q that can be formed by two rules are equal to the sum of the numbers of matrices that make up each of the two rules Ma + Mb
  • the combination of is only the combination of rule R3 and rule R5. Therefore, if the rule integration unit 200 determines in step S912 that no combination remains in step S912, only the combination of rule R3 and rule R5 is recorded in the buffer!
  • the reference rule R4 and R6 have the same range of the second attribute, and the area indicated by rule R4 and rule R6 The area shown is not separated. For this reason, the combination of rule R4 and rule R6 is also recorded in the buffer and can be considered to be powerful.In this embodiment, the combination of rule R4 and rule R6 is excluded from the integration candidates, and Not recorded.
  • the rule analysis system 100 may include the rule deletion unit 170 (see FIG. 34) as in the fifth embodiment, and may execute the reduction described in the fifth embodiment. Then, thereafter, the rule integration unit 200 may execute the processing after step S910.
  • the combination of rule R4 and rule R6 is also determined as “Yes” in step S917, and the combination of rule R4 and rule R6 is also recorded in the buffer.
  • the combination of rule R3 and rule R5 It is assumed that it is recorded in a nota.
  • the rule integration unit 200 determines that the combination of rule R3 and rule R5 remains in step S921, and in step S922, the smallest multidimensional cube that can be formed by rule R3 and rule R5. Determine whether all vertices of Q are related to rule R3 or rule R5. In this example, all the vertex powers of the smallest multidimensional cube Q that can be created by rule R3 and rule R5 are related to rule R3 or rule R5. Therefore, in step S923, rule integration unit 200 determines whether rule R3 and rule R5 Record the combination in the rule integration buffer. In this example, there are no unselected combinations due to the above processing, so in step S921, the processing branches to the “No” side, and whether or not the combination of rules as integration candidates can be integrated. The process of confirming is completed.
  • step S922 The reason for performing the determination in step S922 as described above will be described.
  • the decision in step S922 is that the number of matrices that overlap the two rules and the number of matrices that make up the minimum multidimensional cube Q that can be formed by the two rules are unrelated to the two rules by chance. This is to eliminate such a case.
  • Figure 7 3 shows the case where the number of matrices that overlap two rules matches the number of matrices that are irrelevant to the two rules among the matrices that make up the minimum multidimensional cube Q that can be formed by two rules. An example is shown. In the example shown in Fig. 73, the number of matrices where two rules overlap is two.
  • step S917 the number of matrices that are irrelevant to the two rules in the matrix that constitutes the minimum multidimensional cube Q is two.
  • step S917 it is determined as “ha”, but the rules cannot be integrated!
  • step S923 only combinations that are “Yes” in the determination in step S922 are recorded in step S923, and combinations of two rules that cannot be integrated as illustrated in FIG. 73 are recorded in step S923. Is preventing.
  • step S 920 shown in Fig. 68, if you branch to step S921! And then branch to the “ ⁇ ! In addition to deleting rules R3 and R5 from the rule set that has been registered, add new rules that integrate rules R3 and R5.
  • step S911 the combination of rules may be extracted with reference to the rule set stored in the rule storage unit 110.
  • the matrix space data stored in the matrix space storage unit 120 may be referred to in the process of obtaining the number of matrices shown in steps S914 to S916 and step S922.
  • the matrix forming unit 130 may perform the process of step S109 described in the seventh embodiment on the matrix space data creation process. That is, the matrix forming unit 130 may perform the same operation as the matrix forming unit 130 described in the seventh embodiment.
  • the start point and end point of each attribute of the rule have been described as boundary points. If the start point and end point are the boundary points, the packet attributes on the boundary of the rule area are positioned on the boundaries of the plurality of matrices.
  • 74A and 74B are explanatory diagrams showing packets on the boundary of the rule area. As shown in FIG. 74A, it is assumed that a packet having both the first attribute and the second attribute “2” exists on the boundary between the rule R1 and the rule R2. When defining a matrix with the start point and end point as boundary points, packets whose first and second attributes are both "2" are located on the boundary between the matrix that constitutes rule R1 and the matrix that constitutes rule R2. Will do.
  • Packets in which each attribute is represented by only one value should not exist on the matrix boundary and should be contained within only one matrix boundary. Therefore, a value obtained by subtracting a predetermined value from the value representing the starting point of each attribute of the rule, which does not use the starting point and ending point of each rule attribute as a boundary point, and the ending point of each rule attribute.
  • the boundary point may be a value obtained by adding a predetermined value to the value representing. If the boundary point is defined in this way, a packet in which each attribute is indicated by only one value, as in the packet shown in FIG. 74A, is included within the boundary of only one matrix.
  • FIG. 74B shows such a state.
  • the predetermined value is set to 0.
  • “1.5” is obtained by subtracting this predetermined value from the start point “2” of the first attribute of rule Rl.
  • “4” is added to the end point “4” of the first attribute of rule R1.
  • the boundary point is 5 "etc.
  • the predetermined value 0.5 is subtracted from the start point “2” of the second attribute of rule R1, and “0.5” is added to the end point “3” of the second attribute of rule R1.
  • “3.5” is the boundary point.
  • 74B is defined by the boundary points “1.5” and “4.5” of the first attribute and the boundary points “1.5” and “3.5” of the second attribute. Is a matrix. Thus, by defining the boundary point, the packet having the attribute value “2” shown in FIG. 74A exists inside the boundary of the matrix Mx.
  • the value that represents the starting point of each attribute of the rule is subtracted from the value obtained by subtracting a predetermined value and the value that represents the ending point of each attribute of the rule.
  • a value obtained by adding a constant value is used as a boundary point.
  • the matrixing unit 1 30 when the boundary points are determined as described above, the matrixing unit 1 30 (or the matrixing unit 131) performs step S103 (see FIG. 2, FIG. 27, FIG. 65, etc.). Then, the start point and the end point relating to the attribute selected in the immediately preceding step S102 are collected from the condition portions of all the rules stored in the rule storage unit 110. Then, the matrix forming unit 130 (or the matrix forming unit 131) sets a boundary point between a value obtained by subtracting a predetermined value from the collected start point and a value obtained by adding the predetermined value to the collected end point, respectively. In step S104, the boundary points may be sorted and the overlapping boundary points may be deleted.
  • the predetermined value used in the above subtraction or addition may be determined as follows! A given value for an attribute is less than the minimum difference between two different values for that attribute. For example, if the attribute is an IP address (source address or destination address), the address is represented as "www.XXX. Yyy.zzz" etc. Since this address is represented by 32 bits of data It can also be expressed as an integer. Therefore, the minimum difference between two values with different addresses is “1”. Therefore, when each address is an integer represented by 32 bits, a predetermined value is defined as a value less than 1 (for example, 0.5), and the address starting point force represented by a 32-bit integer is also the predetermined value. Then, the boundary point can be obtained by adding the predetermined value to the address end point represented by a 32-bit integer.
  • the port number is an integer from 0 to 65535. Therefore, the attribute is port number (source port Or the destination port), the minimum value of the difference between two different port numbers is also "1". Therefore, when the attribute is a port number, a predetermined value is defined as a value less than 1 (for example, 0.5), the starting point force is also subtracted from the predetermined value, and the predetermined value is added to the end point to create a boundary. If you ask for a point.
  • the protocol as an attribute is converted into a numerical value in advance. Therefore, a value that is less than the minimum value difference corresponding to different protocols may be set as a predetermined value. For example, when TCP is set to “0” and UDP is set to “1”, the minimum value difference corresponding to each protocol is 1. Therefore, the boundary value may be obtained by setting the predetermined value as a value less than 1 (for example, 0.5), subtracting the predetermined value from the start point, and adding the predetermined value to the end point.
  • 1 for example, 0.5
  • a value obtained by subtracting a predetermined value from the start point value and a value obtained by adding the predetermined value to the end point are used as boundary points, and the boundary points are sorted to remove overlapping boundary points.
  • the matrix can be created by executing the processing of step S105 (see Fig. 1 etc.) using the boundary points. That is, the matrixing unit 130 (or the matrixing unit 131) uses the boundary points to create matrix data formed by two adjacent boundary points of all attributes. After that, the matrixing unit 130 (or the matrixing unit 131) may create matrix space data by the processing of step S106 to step S108.
  • the rule data included in the matrix space data is generated by adding a list of matrices constituting the rule to the rule data stored in the rule storage unit 110. Therefore, the attribute of the rule data included in the matrix space data is the same as the attribute of the rule data originally stored in the rule storage unit 110, and a value obtained by subtracting a predetermined value from the start point or a predetermined value at the end point. The value added is not described.
  • the matrix data included in the matrix space data is a value obtained by subtracting a predetermined value from the value representing the starting point of each attribute of the rule and a value obtained by adding the predetermined value to a value representing the end point of each attribute of the rule. And a boundary point, and is generated using the boundary point. Therefore, in the matrix data included in the matrix space data, the boundary point force obtained as described above is described as the start point and end point of each attribute. That is, the starting point and ending point of each attribute in the matrix data are originally stored in the rule storage unit 110. The start point and end point of each attribute in the data do not match.
  • the matrix space is defined by using the value obtained by subtracting the predetermined value representing the starting point of each attribute of the rule and the value obtained by adding the predetermined value to the value representing the ending point of each attribute of the rule.
  • the “matrix that composes the rule” means the following set of matrices. That is, the “matrix composing the rule” means a set of matrices that overlaps at least a part of the attribute range indicated by the condition part of the range power rule of each attribute of the matrix.
  • Fig. 75A and Fig. 75B show a boundary point between a value obtained by subtracting a predetermined value representing the starting point of each attribute of the rule and a value obtained by adding the predetermined value to the value representing the end point of each attribute of the rule.
  • An example of the matrix is shown below.
  • the start point and end point of the first attribute of rule R1 are 2 and 4, respectively, and the start point and end point of the first attribute of rule R2 are 1 and 2, respectively.
  • the predetermined value is 0.5.
  • Sorting the boundary points of the first attribute obtained from rules Rl and R2 yields 0.5, 1. 5, 2.5, and 4.5. If the boundary points of the second attribute obtained from rules Rl and R2 are sorted and duplicated boundary points are deleted, 1.5 and 3.5 are obtained. Therefore, the boundary points 0.5, 1, 5, 2, 5, 4.5 of the first attribute and the boundary points 1.5, 3.5 of the second attribute as shown by the broken line in FIG. Three matrices are obtained.
  • the overlap analysis unit 140 when the overlap analysis unit 140 outputs the range of each attribute in the matrix E, the overlap analysis unit 140 adds the value added to the predetermined value to the start point of each attribute in the matrix data of the matrix E or the end point of each attribute. A value obtained by subtracting a predetermined value is output. That is, in step S103, a predetermined value is subtracted, or a value before adding the predetermined value, in other words, a value that matches any start point or any end point described in the rule data is output.
  • the minimum multidimensional cube Q described in the eighth embodiment is determined by rules (rule data) that are not matrix data. Since each vertex of the minimum multidimensional cube Q is determined by the combination of the start point and end point of each attribute described in the rule data, each vertex of the minimum multidimensional cube Q is added with a predetermined value in step S103. The boundary point force with or is not specified. The region of the minimum multidimensional cube Q is included in the region of the entire matrix that forms the minimum multidimensional cube Q.
  • the notifier may be a part of the storage area of the rule storage unit 110 or the matrix space storage unit 120, or the rule storage.
  • a storage device other than the unit 110 and the matrix space storage unit 120 may be used.
  • the matrix forming units 130 and 131 correspond to spatial data creating means.
  • Matrix spatial data corresponds to spatial data.
  • Rule ruler 190 corresponds to a rule creation means.
  • the rule integration unit 200 corresponds to an integrable rule specifying unit and a rule integration unit.
  • the present invention can be applied to rule setting management of network devices and software that perform packet filtering.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

 ネットワーク機器に設定されたパケットフィルタリング処理のルールを分析するフィルタリングルール分析システムは、優先順位が設定されたルールの集合を記憶するルール記憶部と、各ルールの適用条件としてそのルール内に記述されるパケットの属性の範囲の開始点及び終了点によって特定される極小領域とそのルールとの対応関係を示し優先順位の情報を含むマトリックス空間データを生成するマトリックス化部と、マトリックス空間データを参照してルールの重なりを分析する重なり分析部と、を備える。

Description

明 細 書
フィルタリングルール分析方法及びシステム
技術分野
[0001] 本発明は、パケットフィルタリングのルールを分析するフィルタリングルール分析方 法及びシステムに関する。
背景技術
[0002] 企業ゃ糸且織において、その運用するネットワークのセキュリティに対する関心が高ま つてきている。
[0003] 自社のネットワークを防御する方法の一つとして、ファイアウォールを用いる方法が ある。ファイアウォールは、外部ネットワークと、内部ネットワークすなわち防御すべき ネットワークとを接続するゲートウェイまたはルータに搭載されるネットワーク機器また はソフトウェアである。ファイアウォールは、ネットワークを流れるパケットを検査し、そ のパケットを通過させたり、遮断したりすることによって、不正なアクセス等から内部ネ ットワークを防御する。ファイアウォールで行われる処理を、一般に、パケットフィルタリ ングという。ファイアウォールは、パケット属性 (例えば、送信元アドレスやポート、送信 先アドレスやポート、プロトコルの種類等)を条件にしたルールの集合に基づいて、パ ケットの検査を行う。ファイアウォールは、例えば、「自社ネットワークの公開サーバの アドレスの特定のポートに向力う特定のプロトコルを持つパケットの通過は許可する」 等のルールの集合に基づいて、パケットの通過を許可するか否かの検査を行う。ル ールの集合は、ポリシーと呼ばれる。現在では、一般的なファイアウォールにおける ポリシーのルール数は数十力 数百に及び、し力も各ルールの条件は複雑であるた め、セキュリティの専門家ですらポリシー全体としてどうなつているのかを理解すること は難しくなつてきて 、る。したがってファイアウォールにおけるポリシーを最適な形で 維持、管理することは、ネットワークセキュリティを維持する上で大きな課題である。
[0004] 現在、ファイアウォールのポリシーがどうなつているのかの把握は、ポリシーを一覧 表示する GUI (Graphical User Interface)を実現するソフトウェアを使用して、専 門家が人手で行なって 、る。ポリシーのルールが最適な集合になって 、るのかを判 断したり、ポリシーのルールが最適な集合になって ヽな 、場合にそれを最適なルー ル集合に整形したりする等のポリシー管理についても、人手でおこなつているのが実 情である。
[0005] 特開 2000— 174808号公報には、ポリシーのルール間の順序を変えることでファ ィァウォールのパケットフィルタリング処理効率を上げる技術が記載されて 、る。特開 2000— 174808号公報に記載のデータパケットフィルタの動作方法は、パケットフィ ルタリングのルールにお 、て、着信パケットに頻繁にマッチするルールほどルール順 序の前方に移動することによって、パケットフィルタリングの処理効率を上げるもので ある。この方法では、あるルールと別のルールをペアとし、そのペアでルールが衝突 するかどうかをチェックする。衝突とは、あるルールと別のルールを互いに入れ替える ことによってルール全体の意味が変わることである。具体的には、アクションが異なり 、かつ、プロトコル、ソースアドレス、ソースポート、デスティネーションアドレス、デステ イネーシヨンポートのいずれかに交わり、すなわちフィールドの交わりがあること力 ル ールの衝突である。この方法では、全てのペアについて衝突か衝突でないかをチヱ ックし、衝突データを示す衝突テーブル生成する。ルールが受信パケットにマッチし た回数をマッチカウントと呼ぶことにして、最後に、各ルールのマッチカウントに基づ いて、マッチカウントの高いルールを前方に移動する。このとき、ルールの順序を入 れ替えてもポリシー全体としては変化しな 、、すなわちルール同士が衝突しな ヽと ヽ う制約の元で、ルールの順序を入れ替える。このアルゴリズムには、バブルソート等の ソーティングアルゴリズムが用いられる。
[0006] 特開 2003— 333084号公報には、ファイアウォールのポリシーにルールを追加す る際に、どこに新しいルールを追加挿入するかを決定する方法が記載されている。こ の方法では、新しいルールと既存のルールを順に比較し、新しいルールを一部また は全て含むようなルールが既存ルールにあった場合、その既存ルールの直前にその 新しいルールを挿入する。ルールの包含関係をチェックするアルゴリズムは、以下の ようになものである。まず、新しいルールを選択する。そして、既存のルールを順に一 つずつ選択する。選択したルール同士で、インタフェースの照合、プロトコルの照合、 チェインの照合、アドレスの照合、ポートの照合を行い、いずれかで不一致があった 場合は、次の既存のルールを選択し、同様の照合を行う。一致している場合には、ァ クシヨンの照合を行い、アクションが一致した場合には、選択した既存のルールの直 前に挿入する。アクションが一致しない場合には、挿入するカゝ否かの判断をユーザに 促す。
[0007] 特開 2003— 333084号公報に記載された方法では、特開 2000— 174808号公 報に記載されているルールのペアのフィールドの交わりを判定するステップとほぼ同 様の技術を用いている。この特開 2003— 333084号公報には、ルールに有効時刻 という情報を加え、ある一定時間ごとにルール集合を走査し、有効時刻が現時刻と一 致または超えて 、る場合はそのルールを削除することも記載されて 、る。この技術に より、古 、ルールを適宜消去できるようになって!/、る。
[0008] 岡城純孝、松田勝志、小川隆ー、「セキュリティ運用管理のためのポリシー言語 SC CML」、情報処理学会研究報告、 Vol. 2004, No. 129, pp. 89— 94には 、様々なセキュリティ機器の設定情報を統一的に表現可能なポリシー言語である SC CML (security Connguration coordinator Markup Language)【こつ ヽ飞 記載されている。
特許文献 1:特開 2000— 174808号公報
特許文献 2:特開 2003 - 333084号公報
非特許文献 1 :岡城純孝、松田勝志、小川隆ー、「セキュリティ運用管理のためのポリ シー言語 SCCML」、情報処理学会研究報告、 Vol. 2004, No. 129, pp. 89 - 94
発明の開示
発明が解決しょうとする課題
[0009] 特開 2000— 174808号公報に記載の方法は、ルールの入れ替えを行い、フィルタ リング処理の高速化を実現している。し力しながらこの方法は、ポリシーとして結局ど うなって!/、るのかを知りた ヽと!、う管理者の要求や、ポリシーが最適な形になって 、る 力どうかを知りた 、と 、う管理者の要求や、ポリシーを最適な形にした 、と 、う管理者 の要求には応えることができず、その上、アルゴリズム的にルールの入れ替えができ な!、ルール集合の場合、すなわち任意の 2つのルール間で衝突が起こるようなルー ル集合の場合、フィルタリング処理の高速ィ匕を行うこともできな 、。
[0010] 特開 2003— 333084号公報に記載の方法は、新たに追加するルールをどこに揷 入するかの決定を行って 、るだけなので、ポリシーとして結局どうなつて 、るのかを知 りた!/ヽと 、う管理者の要求や、ポリシーが最適な形になって 、るかどうかを知りた!/、と V、う管理者の要求や、ポリシーを最適な形にした 、と 、う管理者の要求には応えられ ない。またこの方法では、有効時刻が設定されているルール集合で、現時刻以前の 有効時刻を持つルールを削除しては 、るが、有効時刻の設定がな 、一般的なバケツ トフィルタリングにおいては不要になったルールを削除してルールを最適な形にした V、と 、う管理者の要求には応えられな 、。
[0011] パケットフィルタリングのルールを検証する際には、パケットフィルタリング処理を行う ネットワーク機器が複数存在する場合に、各機器におけるパケットフィルタリング処理 の同一性を判断できることが好ましい。
[0012] 本発明の目的は、ファイアウォールのフィルタリングルールの管理を支援し、ルール 間の関係の把握や、どのようなパケットが通過を許可されどのようなパケットが遮断さ れるのかと 、うルール全体すなわちポリシーの把握を容易にすることができる、フィル タリングルール分析方法及びシステムを提供することにある。
[0013] 本発明の別の目的は、複雑になったルールの集合においてそのルールの集合を 最適化することができるフィルタリングルール分析方法及びシステムを提供することに ある。
[0014] 本発明の別の目的は、パケットフィルタリング処理を高速に行うことができるフィルタ リングルール分析方法及びシステムを提供することにある。
[0015] 本発明のさらに別の目的は、複数の機器におけるパケットフィルタリング処理の同 一性を判断できるフィルタリングルール分析方法及びシステムを提供することにある。 課題を解決するための手段
[0016] 本発明によれば、フィルタリングルール分析方法は、パケットフィルタリング処理に 用いられるルールであって、優先順位が設定されたルールの集合を記憶する段階と 、各ルールの適用条件としてそのルール内に記述されるパケットの属性の範囲の開 始点及び終了点によって特定される極小領域とそのルールとの対応関係を示す空 間データであって、優先順位の情報を含む空間データを生成する空間データ生成 段階と、を有する。
[0017] 本発明のフィルタリングルール分析方法においては、統合可能なルールの組み合 わせを特定する統合可能ルール特定段階と、記憶されたルール集合に属するルー ルであって、可能統合ルール特定段階にお!、て特定された組み合わせをなすルー ル同士を統合するルール統合段階と、を備えていてもよい。そのように構成すること で、ルール同士を統合することができ、ルール同士を統合することにより、ルールの 数を減少させることができ、管理者にルールを理解させやすくすることができる。
[0018] 空間データ生成段階には、生成した空間データのうち、デフォルトルールのみに対 応付けられた極小領域のデータを削除する段階を設けるようにしてもよ!ヽ。そのように 構成することにより、極小領域のデータを少なくすることができ、各ルール間の関係を 把握しやすくすることができる。また、極小領域の数を減少させることができるので、メ モリ消費を低減することができる。
[0019] 本発明によれば、フィルタリングルール分析システムは、パケットフィルタリング処理 に用いられるルールであって、優先順位が設定されたルールの集合を記憶するルー ル記憶手段と、各ルールの適用条件としてそのルール内に記述されるパケットの属 性の範囲の開始点及び終了点によって特定される極小領域とそのルールとの対応 関係を示す空間データであって、優先順位の情報を含む空間データを生成する空 間データ生成手段と、を備える。
[0020] 本発明のフィルタリングルール分析システムは、さらに、空間データ生成手段によつ て生成された空間データを用いて、各ルールの適用条件として記述された属性の範 囲の重なりを分析する重なり分析手段を備えていてもよい。この構成では、重なり分 析手段が、各ルールの適用条件として記述された属性の範囲の重なりを分析するの で、フィルタリングルールの管理において、ルール間の関係を把握することができるよ うになる。このような重なり分析手段は、一のルールに記述された属性の範囲力 そ の一のルールよりも優先順位が高い他のルールに記述された属性の範囲に含まれる 状態または一部重複する状態を検出する構成であってもよい。そのような構成により 、より優先順位の高いルールによって隠されることになるルールが検出されるので、 ルール間の関係を把握することができる。
[0021] 本発明のフィルタリングルール分析システムは、パケットの属性を入力するパケット 属性入力手段と、空間データ生成手段によって生成された空間データを用いて、パ ケットの属性がどの極小領域に該当するかを判定し、パケットの属性が該当する極小 領域に対応するルールに応じた動作を確認することによって、入力された属性を有 するパケットがパケットフィルタリング処理で通過を許可されるか否かを判定する通過 テスト手段と、を備えた構成であってもよい。このような構成によれば、どのようなパケ ットが通過を許可され、どのようなパケットが遮断されるのかと!/、うルール全体の把握 を容易に行うことができる。
[0022] 本発明のシステムでは、ルール記憶手段は、ルールの集合を複数組記憶し、空間 データ生成手段力 各ルールの適用条件としてルール内に記述されるパケットの属 性の範囲の開始点及び終了点を、複数組のルールの集合に含まれる全てのルール 力 抽出し、その開始点及び終了点を用いて、ルールの集合ごとに空間データを生 成し、複数の空間データ同士の間で対応する極小領域におけるルールの動作が一 致する力否かを判定することによって、各ルールの集合に基づくパケットフィルタリン グ処理が同一の処理になる力否かを判定する同一性分析手段を備えた構成であつ てもよい。このような構成によれば、複数の機器におけるパケットフィルタリング処理の 同一性を判断できる。同一性分析手段は、複数の空間データ同士の間で対応する 極小領域におけるルールの動作が一致しな 、と判定した場合に、極小領域の範囲を 出力する構成であってもよ ヽ。
[0023] 本発明のシステムでは、空間データ生成手段によって生成された空間データを参 照して、削除したとしてもパケットフィルタリング処理に影響を及ぼさな 、ルールを特 定し、ルールを削除するルール削除手段を備えた構成としてもよい。このような構成 では、ルール削除手段が不要なルールを削除するので、ルールの集合を最適化す ることができる。空間データ生成手段によって生成された空間データを参照して、各 ルールの適用条件としてルール内に記述される属性の範囲によって特定される領域 のうち、存在しな ヽとしてもパケットフィルタリング処理に影響を及ぼさな ヽ領域を排除 するようにルールを修正するルール修正手段を備えた構成としてもょ ヽ。このような構 成によれば、ルール修正手段によるルールの修正によって、ルールの集合を最適化 することができる。ルール修正手段は、一のルールの適用条件として記述された属性 の範囲のうち、より優先度が高い他のルールの適用条件として記述された属性の範 囲と重なる領域を特定し、その領域における一の属性以外の全属性の範囲が、一の ルールの適用条件として元々記述されていた属性の範囲と一致する場合に、一のル ールにおける一の属性の範囲を狭めるように修正する構成であってもよい。あるいは ルール修正手段は、適用条件として記述された属性の範囲の一部が、より優先度が 高 、他のルールの適用条件として記述された属性の範囲と重なるルールを、極小領 域ごとに分割し、分割して得られた複数のルールのうち、より優先度が高い他のルー ルの適用条件として記述された属性の範囲と重なるルールを削除する構成であって ちょい。
[0024] 本発明のシステムは、実際にパケットフィルタリング処理対象となった複数のバケツ トの属性を参照して、各極小領域ごとに、極小領域に属性が含まれるパケットの数を カウントする頻度分析手段と、カウントされたパケット数が多 、順に極小領域をソート し、極小領域の一部または全部と、その極小領域に対応するルールとに基づいて新 たなルールを作成するルール作成手段とを備えた構成であってもよ!/、。このような構 成によれば、ルール作成手段は、カウントされたパケット数が多い順に極小領域をソ ートし、その極小領域の一部または全部と、その極小領域に対応するルールとに基 づいて新たなルールを作成する。したがって、実際にパケットフィルタリング処理対象 となったパケットに即したルールが新たに作成されるので、パケットフィルタリング処理 を高速ィ匕することができる。
[0025] ルール作成手段は、ソートした極小領域のうち、カウントされたパケット数が多い順 に所定数の極小領域を選択し、その極小領域と、その極小領域に対応するルールと に基づ!/、て新たなルールを作成して、元々存在して!/、たルールの集合に追カ卩しても よい。あるいはルール作成手段は、新たに作成したルールを追加したルールの集合 のうち、削除したとしてもパケットフィルタリング処理に影響を及ぼさな 、ルールを特 定し、そのようなルールを削除する構成であってもよい。このような構成によれば、ル ールの集合を最適化することができる。さらにルール作成手段は、ソートした極小領 域を全て順番に選択し、選択した極小領域と、その極小領域に対応するルールと〖こ 基づいて、新たなルールを作成し、作成したルールのみによって新たなルールの集 合を作成する構成であってもよい。さらにはルールイ匕手段を設け、ルール化手段が、 隣接する極小領域であって、頻度分析手段によってカウントされたパケットの数の差 が所定範囲内である極小領域同士を結合して、 1つの極小領域とし、極小領域の結 合後に新たなルールを作成するようにしてもょ 、。
[0026] 本発明のフィルタリングルール分析システムは、統合可能なルールの組み合わせを 特定する統合可能ルール特定手段と、ルール記憶手段に記憶されたルール集合に 属するルールであって、統合可能ルール特定手段によって特定された組み合わせを なすルール同士を統合するルール統合手段とを備えた構成であってもよ!/ヽ。このよう な構成によれば、ルール同士を統合することができる。ルール同士を統合することに より、ルールの数を減少させることができ、管理者にルールを理解させやすくすること ができる。統合可能ルール特定手段は、動作が共通しデフォルトルールでない 2つ のルールのうちの一方のルールに対応する極小領域の数と他方のルールに対応す る極小領域の数との和力 2つのルールによって定まる領域に対応する極小領域の 数と一致するときに、 2つのルールの組み合わせを統合可能なルールの組み合わせ の候補とし、候補とした組み合わせをなす 2つのルールによって定まる領域に対応す る極小領域のうち、 2つのルールによって定まる領域の頂点を含む各極小領域力 2
Figure imgf000010_0001
、ずれかに対応する場合に、 2つのルールの組み合わせを統合可能 なルールの組み合わせとする構成であってもよ 、。あるいは統合可能ルール特定手 段力 統合可能なルールの組み合わせを特定し、ルール統合手段が、特定された組 み合わせをなすルール同士を統合することを、統合可能ルール特定手段が統合可 能なルールの組み合わせを特定できなくなるまで繰り返す構成であってもよい。
[0027] 本発明にお 、て空間データ生成手段は、生成した空間データのうち、デフオルトル ールのみに対応付けられた極小領域のデータを削除する構成であってもよ 、。この ような構成によれば、極小領域のデータを少なくすることができ、各ルール間の関係 を把握しやすくすることができる。その上、極小領域の数を減少させることができるの で、メモリ消費を低減することができる。あるいは空間データ生成手段は、各ルール の適用条件としてルール内に記述されるパケットの属性の範囲の開始点の値力 所 定値を減算した値と、属性の範囲の終了点の値に所定値を加算した値とを用いて、 各ルールの適用条件としてルール内に記述されるパケットの属性の範囲の開始点及 び終了点によって特定される極小領域を定める構成であってもよい。
[0028] 本発明によれば、ファイアウォールのフィルタリングルールの管理にお!、て、ルール 間の関係の把握や、どのようなパケットが通過を許可され、どのようなパケットが遮断 されるのかというルール全体の把握を容易に行うことができる。本発明によれば、複 雑になったルールの集合にぉ 、てルールの集合を最適化することができ、パケットフ ィルタリング処理を高速ィ匕することができ、複数の機器におけるパケットフィルタリング 処理の同一性を判断することができる。 図面の簡単な説明
[0029] [図 1]本発明の第 1の実施形態のフィルタリングルール分析システムの構成を示すブ ロック図である。
[図 2]マトリックス化部によるマトリックス空間データ作成処理の例を示すフローチヤ一 トである。
[図 3]重なり分析部による処理の例を示すフローチャートである。
[図 4]重なり分析部による処理の例を示すフローチャートである。
[図 5]ルール集合の例を示す図である。
[図 6]ルール集合を 2次元平面で表わした模式図である。
[図 7]マトリックスデータを 2次元平面で表わした模式図である。
[図 8]マトリックスのデータの記述形式の例を示す図である。
[図 9]ルールデータの例を示す図である。
[図 10]マトリックスデータの例を示す図である。
[図 11]重なり分析部による分析結果の例を示す図である。
[図 12]各ルールデータを 2次元平面で表わした模式図である。
[図 13]重なり分析部による分析結果の例を示す図である。
[図 14]本発明の第 2の実施形態のフィルタリングルール分析システムの構成を示すブ ロック図である。 [図 15]通過テスト部によるテスト処理の例を示すフローチャートである。
[図 16]ルール集合力 導出されたマトリックスデータを 2次元平面で表わした模式図 である。
[図 17]テストパケットの周辺の 2次元空間を示す模式図である。
[図 18]通過テスト部によるテスト処理結果の例を示す図である。
[図 19]本発明の第 3の実施形態のフィルタリングルール分析システムの構成を示すブ ロック図である。
[図 20]通過テスト部における処理の例を示すフローチャートである。
[図 21]ネットワーク構成の例を示す図である。
[図 22]ルール集合の例を示す図である。
[図 23]ルールのリストが追記されたマトリックスデータの例を示す図である。
[図 24]通過テスト部によるテスト処理結果の例を示す図である。
[図 25A]ルール集合及びテストパケットを示す図である。
[図 25B]ルール集合及びテストパケットを示す図である。
[図 26]本発明の第 4の実施形態のフィルタリングルール分析システムを示すブロック 図である。
[図 27]マトリックス化部によるマトリックス空間データ作成処理の例を示すフローチヤ ートである。
[図 28]同一性分析部による処理の例を示すフローチャートである。
[図 29]ネットワーク構成の例を示す図である。
[図 30]ルール集合の例を示す図である。
圆 31]同一性分析部による分析結果の例を示す図である。
[図 32]ルール集合の例を示す図である。
圆 33]同一性分析部による分析結果の例を示す図である。
[図 34]本発明の第 5の実施形態のフィルタリングルール分析システムを示すブロック 図である。
[図 35]ルール削除部によるルール削除やルール修正の処理経過の例を示すフロー チャートである。 [図 36]ルール削除部によるルール削除やルール修正の処理経過の例を示すフロー チャートである。
[図 37]ルール削除部によるルール削除やルール修正の処理経過の例を示すフロー チャートである。
[図 38]ルール削除部による判定例を示す図である。
[図 39]縮小の具体例を示す図である。
[図 40]縮小の具体例を示す図である。
[図 41A]縮小可能な場合の例を示す図である。
[図 41B]縮小不可能な場合の例を示す図である。
[図 42]縮小不可能な場合の例を示す図である。
[図 43]残り領域が矩形状態である場合に、各軸の無限大方向及び無限小方向から 残り領域を見た状況を示す図である。
[図 44]残り領域が矩形状態でない場合に、各軸の無限大方向及び無限小方向から 残り領域を見た状況を示す図である。
[図 45]ルール削除部力 ルールを縮小できるかどうかを判定し、ルールを縮小する場 合を 2次元空間で模式的に示した説明図である。
[図 46]ルール削除部力 ルールを縮小できるかどうかを判定し、ルールを縮小する場 合を 3次元空間で模式的に示した図である。
[図 47]ルール集合の例を示す図である。
[図 48]ルール集合を 2次元空間で示した模式図である。
[図 49]ルール削除部の処理に伴うルール集合の変化を示す模式図である。
[図 50]ルール削除部の処理に伴うルール集合の変化を示す模式図である。
[図 51]ルール削除部の処理に伴うルール集合の変化を示す模式図である。
[図 52]ルール削除部による処理結果の例を示す図である。
[図 53]ルールを増加させて縮小を行う場合の例を示す模式図である。
[図 54]本発明の第 6の実施形態のフィルタリングルール分析システムを示すブロック 図である。
[図 55]頻度分析部による処理の例を示すフローチャートである。 [図 56]ルールイ匕部による新たなルール集合作成処理の一例を示すフローチャートで ある。
[図 57]ルールイ匕部による新たなルール集合作成処理の他の例を示すフローチャート である。
[図 58]マトリックスデータの結合の例を示す模式図である。
[図 59]ルール集合の例を示す図である。
[図 60]パケット履歴の例を示す図である。
[図 61]マトリックスデータ 2次元平面で表わした模式図である。
[図 62]頻度分析部の処理によって得られるマトリックスデータの例を示す図である。
[図 63]バッファにコピーされたルール集合の変化を示す図である。
[図 64]新たに生成されたルール集合の例を示す図である。
[図 65]本発明の第 7の実施形態のフィルタリングルール分析システムにおけるマトリツ タス化部の動作の例を示すフローチャートである。
[図 66]削除されるマトリックスデータの例を示す図である。
[図 67]本発明の第 8の実施形態のフィルタリングルール分析システムを示すブロック 図である。
[図 68]ルール統合部によるルール統合の処理経過の例を示すフローチャートである
[図 69]統合候補を求める処理の処理経過の例を示すフローチャートである。
[図 70]統合候補としたルールの組み合わせに対して統合可能であるか否かを確認す る処理の処理経過の例を示すフローチャートである。
[図 71A]ルールデータの例を示す図である。
[図 71B]ルールデータの例を示す図である。
[図 72]Mqと Ma + Mbとの比較を示す説明図である。
[図 73]2つのルールが重なっている部分のマトリックス数と、 2個のルールでできる最 小多次元立方体 Qを構成するマトリックスのうち、 2つのルールと無関係なマトリックス 数が一致する場合の例を示す説明図である。
[図 74A]ルールの領域の境界上のパケットを示す図である。 [図 74B]ルールの領域の境界上のパケットを示す図である。
[図 75A]ルールの各属性の開始点を表わす値力 所定値を減算した値と、ルールの 各属性の終了点を表わす値に所定値を加算した値とを境界点とした場合のマトリック スの例を示す説明図である。
[図 75B]ルールの各属性の開始点を表わす値力 所定値を減算した値と、ルールの 各属性の終了点を表わす値に所定値を加算した値とを境界点とした場合のマトリック スの例を示す説明図である。
符号の説明
[0030] 100 ルール記憶部
120 マトリックス空間記憶部
130, 131 マトリックスィ匕咅
140 重なり分析部
150, 151 通過テスト部
160 同一性分析部
170 ノレ一ノレ削除咅
180 頻度分析部
190 ノレ一ノレィ匕咅
200 ルール統合部
920 入力装置
930 出力装置
940 テスト入力装置
発明を実施するための最良の形態
[0031] 次に、本発明を実施の形態について図面を参照して説明する。なお、以下の説明 にお 、て、ファイアウォールのパケットフィルタリングルールとルータのアクセス制御ル ールは、同様のルールであるので、両者を併せてパケットフィルタリングルールと記す ことがあり、これらを単にルールと記す場合もある。
[0032] 第 1の実施形態:
図 1に示す本発明の第 1の実施形態のフィルタリングルール分析システムは、ルー ル分析システム 100と、入力装置 920と、出力装置 930とを備えている。ルール分析 システム 100は、ルール記憶部 110と、マトリックス空間記憶部 120と、マトリックス化 部 130と、重なり分析部 140とを備える。
[0033] 入力装置 920は、任意のフィルタリングルールの集合を独自の形式の記述で表わ したルール集合 910をルール分析システム 100に入力する。ここで、独自の形式の 記述は、特定のネットワーク機器、例えば特定のファイアウォールや特定のルータ等 に依存した記述ではなぐ各種ネットワーク機器に依存しな 、共通の形式の記述であ つてもよい。独自の形式の記述は、例えば、特定のネットワーク機器におけるルール の記述形式を、統一的に用いる記述形式として採用し、その形式で表わした記述で あってもよい。以下の説明では、ルール集合 910が、各種ネットワーク機器に依存し な 、共通の形式で記述されて 、る場合を例にして説明する。
[0034] ルール分析システム 100は、ルール記憶部 110と、マトリックス空間記憶部 120と、 マトリックス化部 130と、重なり分析部 140とを備える。ルール記憶部 110は、入力装 置 920によって入力されたフィルタリングルールの集合すなわち独自の形式で記述さ れたルールの集合を記憶する。マトリックス空間記憶部 120は、ルールを多次元のマ トリックス空間データとして記憶する。マトリックス空間データについては、後述する。 マトリックス化部 130は、独自の形式で記述されたルールをマトリックス空間データに 変換し、マトリックス空間記憶部 120に記憶させる。重なり分析部 140は、マトリックス 空間データを参照してルールの重なりを分析する。
[0035] 出力装置 930は、ルール分析システム 100によって分析される結果を出力する。
[0036] マトリックス化部 130及び重なり分析部 140は、例えば、プログラムに従って動作す る CPU (Central Processing Unit)や MPU (Micro Processing Unit)によつ て実現される。なお、プログラムは、例えば、ルール分析システム 100が備えるプログ ラム記憶装置 (不図示)に記憶される。ルール記憶部 110及びマトリックス空間記憶 部 120は、例えば、記憶装置によって実現される。出力装置 930は、例えば、デイス プレイ装置によって実現される。入力装置 920は、例えば、各種ネットワーク機器に 依存する形式で記述されたルールの集合を、ネットワーク機器に依存しな 、形式で 記述されたルール集合 910に変換して出力するルール変換システム (不図示)とのィ ンタフ ースによって実現される。
[0037] なお、ここで述べたルール変換システム (不図示)は、各種ネットワーク機器に接続 され、その各種ネットワーク機器から、機器に依存する形式で記述されたルールを収 集する。そして、ルール変換システムは、各種セキュリティ機器におけるルールの記 述仕様に関する知識と、ルール集合 910に含まれるルールのフォーマット情報とを記 憶し、これらの知識を参照して、収集したルールから、独自の形式のルールを生成す る。ルール変換システムは、このようにして生成されたルールの集合を、ルール集合 9 10として出力する。なお、ルール変換システムにルールを収集させるサブルーチン や、収集したルールから独自の形式のルールをルール変換システムに生成させるサ ブルーチンは、例えば、各種ネットワーク機器ごとに予め用意される。
[0038] 次に、入力装置 920が入力するルール集合 910に含まれるルールについて説明 する。フィルタリングルールは、一般に条件部分と実行部分力もなる IF— THENルー ルである。条件部分 (IF部)には、パケットの属性であるソース (発信元)アドレス、ソー スポート、デスティネーション(あて先)アドレス、デスティネーションポート、プロトコノレ を用いた範囲が条件として記述される。例えば、「デスティネーションポートの範囲が 0番〜 80番で、プロトコルの範囲が TCPである。」等の条件が記述される。条件として 記述される属性の組み合わせは任意であり、条件に記述された属性の範囲すベてを 満たすパケットが、その条件部分を含むルールの適用対象となる。ルールの条件部 分に記述されていない属性がある場合、条件部分は、その記述されていない属性に 関しては全ての範囲を示しているものとする。例えば、上記の「デスティネーションポ ートの範囲が 0番〜 80番で、プロトコルの範囲が TCPである。」という条件の例では、 デスティネーションポートとプロトコル以外の属性に関しては、全ての範囲を示してい るものとする。すなわち、この条件の下では、パケットのデスティネーションポートが 0 〜80の範囲であり、かつ、プロトコルが TCP (Transmission Control Protocol) であるパケット全てが条件に合致するパケットとなる。すなわち、ルールの適用条件と してルール内に記述された属性の範囲とは、パケットの通過許可または不許可の判 定をする際にそのルールが適用される条件として記述され、パケットの各属性がそれ ぞれ、ルールの適用条件として記述された各属性の範囲に含まれるならば、そのパ ケットに関する通過許可または不許可の判定時にそのルールが適用され得ることを 示すものである。実行部分 (THEN部)には、条件部分に合致したパケットの通過を 許可する力許可しな 、か (アクションと呼ぶ。)を記述する。
[0039] このようなルールが順に記述されたもの力 パケットフィルタリングのルール集合で ある。各ルールには、順番 (優先順位と記す場合もある。)が定められている。ノ ケット フィルタリングを行うネットワーク機器は、あるパケットが到達すると、ルール集合のル ールの条件部分を順にそのパケットの属性と比較する。そして、そのパケットの属性と 合致したルールが見つかると、そのルールの実行部分のアクションに応じた処理を行 う。特別なルールにデフォルトルールがある。デフォルトルールは、パケットがデフォ ルトルールを除くその他のルールの何れにも合致しない場合に実行されるルールで ある。すなわち、デフォルトルールは、どのようなパケットでも合致する最も広い条件 部分を持つルールであり、その書式は IF— THEN形式になっていないこともある。こ れは、デフォルトルールであることが認識できれば、 IF部分は必要ないためのである 。デフォルトルールは、一般にルール集合の先頭または最後尾に順序付けられる。 本実施の形態では、デフォルトルールの順番は最後であるものとする。なお、前述の ルール変換システム (不図示せず)力 ネットワーク機器力 収集したルールの集合 を独自の形式の記述のルール集合 910に変換した場合であっても、ルール集合 91 0に含まれる各ルールは、元のネットワーク機器におけるルールの順番を保持して!/ヽ るちのとする。
[0040] 次に、図 1に示したフィルタリングルール分析システムの動作を説明する。入力装置
920は、ルール集合 910をルール分析システム 100に入力して、そのルールの集合 をルール記憶部 110に記憶させる。ここでは説明を単純ィ匕するため、 1つのネットヮ ーク機器のルールの集合であって、機器に依存しない独自の形式の記述で表わされ たルールの集合が入力されてルール記憶部 110に記憶されるものとする。なお、入 力装置 920は、ルールの集合の記述形式を、コンピュータ(具体的にはルール分析 システム 100)が扱 、やす 、ように変換してもよ 、。
[0041] ルール分析システム 100においてマトリックス化部 130は、ルールの条件部分で用 いられる 5種類の属性、すなわちソースアドレス、ソースポート、デスティネーションァ ドレス、デスティネーションポート、プロトコルのそれぞれを軸とする 5次元空間を作る 。マトリックス化部 130は、その 5次元空間の中に各ルールを配置した場合における 各ルールの属性の範囲の開始点と終了点の交差でできる極小領域を作る。このよう な極小領域のことをマトリックスと呼ぶ。さらに、マトリックス化部 130は、各ルールとマ トリックスの関係、各マトリックスとルールの関係を表わしたマトリックス空間データを作 る。ここでは、一般的に用いられる 5つの属性、すなわちソースアドレス、ソースポート 、デスティネーションアドレス、デスティネーションポート、プロトコルを用いて 5次元空 間としている力 属性の数は 5に限られるものではなぐいくつであっても構わない。 5 次元空間の場合、あるルールは、その 5次元空間内のある 5次元領域を表わすことと なる。
[0042] 図 2は、マトリックス化部 130によるマトリックス空間データ作成処理の例を示すフロ 一チャートである。なお、図 2およびそれ以降に示すフローチャートにおいて、「残つ ている」という表現は、「ある要素の集合に含まれる要素のうち、選択済みを表わすチ エックが付いていない要素がある」ということを意味する。ここで、チェックとは、要素が 選択済みであることを示す情報である。なお、図 2およびそれ以降に示す各種フロー チャートにおいて、「1つ選ぶ」という表現は、「集合に含まれる要素のうち 1つの要素 を選ぶと同時にその要素にチェックをつける」ことを意味する。何らかの要素が残って いる力否かの判定処理が行われ、要素が残っていると判定された場合に、残ってい る要素から 1つ選ぶ処理が続く。
[0043] マトリックス化部 130は、ステップ S101において、ルールの条件部分で用いられる 属性 (例えば 5種類の属性)のいずれかが残っている力否かを判定する。いずれかの 属性が残っているならば、マトリックス化部 130は、ステップ S102において、その属 性の中から一つの属性を選び、ステップ S103において、ルール記憶部 110に記憶 されている全てのルールの条件部分から、ステップ S 102で選択した属性に関する開 始点と終了点を収集する。ここでは、開始点と終了点の総称を境界点と呼ぶ。次に、 マトリックス化部 130は、ステップ S104において、ステップ S 103で収集した境界点を ソートする。このときマトリックス化部 130は、収集した境界点の中に重複する境界点、 すなわち同じ値を持つ境界点がある場合には、同じ値を持つ境界点のうち一つだけ を残し、同じ値を持つ他の境界点については削除して、ソート処理を行う。ステップ S 104の後、再びステップ S 101に移行する。マトリックス化部 130は、ステップ S102〜 S 104の一連の処理を全ての属性につ!、て行う。全ての属性につ!、て境界点のソー トが完了すると、ステップ S101において、属性が残っていない状態となるので、次に 、ステップ S 105に処理が移行する。
[0044] ステップ S105では、マトリックス化部 130は、全ての属性(各軸)の隣り合う 2つの境 界点でできる極小領域の情報 (マトリックスデータ)を作成する。 5種類の各属性に対 応する各軸を有する 5次元空間の場合、この極小領域も 5次元領域となる。各軸の隣 り合う 2つの境界点でできる極小領域を、上述したようにマトリックスと呼んでいる。マト リックス化部 130は、属性の範囲、すなわち隣り合う境界点のペアを各属性ごとに記 述することによって、マトリックスの情報すなわちマトリックスデータを作成する。
[0045] ステップ S105の後、マトリックス化部 130は、ルール記憶部 110に記録されている ルール全てについて順に、以下のステップ S106〜S108の処理を行う。まず、マトリ ックス化部 130は、ステップ S 106において、ルールが残っているか否かを判定し、残 つているルールがあるならば、ステップ 107において、残っているルールの中から順 番に従って一つのルールを選び、ステップ S108において、ステップ S107で選んだ ルールを構成するマトリックスを列挙し、ステップ S 107で選んだルールと、そのマトリ ッタスとを関係付ける。ルールには、各属性の範囲とアクションが記述されているので 、ステップ S108では、その記述にマトリックス名のリストをカ卩えればよい。このような記 述のことをルールデータと呼ぶ。なお、ルールを構成するマトリックスとは、ルールの 条件部分が示す属性の範囲に含まれる各マトリックスである。またステップ S 108では 、マトリックス化部 130は、ステップ S 107で選んだルールを構成するマトリックスそれ ぞれについて、そのルールと関係付ける。マトリックスデータには、各ルールと同様に 、各属性の範囲が記述されているので、マトリックスデータにルール名をカ卩えればよ い。ステップ S108の後、再びステップ S106に処理が移行することによって、上述し たように、マトリックス化部 130は、ステップ S107〜S 108の一連の処理を全てのルー ルについて行うが、この一連の処理は、ルール記憶部 110に記憶されたルール集合 における各ルールの順番通りに行われる。したがって、一つのマトリックス(マトリックス データ)にカ卩えられるルールが 2つ以上ある場合、マトリックスデータにカ卩えられるル ール名は、ルールの順番を維持する。例えば、ルール集合におけるルールの順番が {Rl、 R2、 R3、 R4}となっており、あるマトリックスに R2と R4が関係付けられるとする 。この場合、そのマトリックスのマトリックスデータには、 {R2、 R4}という順でルール名 のリストが加えられていく力 {R4、R2}という順になることはない。全てのルールにつ いて、ステップ S 107, S 108の処理が完了すると、ステップ S 106において、ルール が残っていない状態となるので、この場合、マトリックス空間データ作成処理が終了 する。
[0046] マトリックス化部 130は、図 2に示すマトリックス空間データ作成処理によって作成し たルールデータ(すなわち、マトリックス名が追加されたルールデータ)とマトリックス データ(すなわち、ルール名が追加されたルールデータ)をマトリックス空間記憶部 1 20に記憶させる。ルールデータとマトリックスデータの全集合を総称してマトリックス 空間データと呼ぶ。
[0047] マトリックス化部 130がマトリックス空間データをマトリックス空間記憶部 120に記憶 させた後、重なり分析部 140は、マトリックス空間記憶部 120に記憶されたマトリックス 空間データを参照し、ルール間の重なりを見つけだし、その結果を出力装置 930を 用いて出力する。図 3及び図 4は、重なり分析部 140による処理の例を示すフローチ ヤートである。重なり分析部 140は、全てのルールについてステップ S202以降の処 理を行 、、全てのルールにつ!、て処理が完了してルールが残って!/、な!/、状態になつ た場合に、処理を終了する。以下、重なり分析部 140での処理を詳しく説明する。
[0048] まず、重なり分析部 140は、ステップ S201において、ステップ S202以降の処理を 行って 、な 、ルールが残って 、るか否かを判定する。そのようなルールが残って!/、る 場合には、重なり分析部 140は、マトリックス空間記憶部 120に記憶されたルール (ル ールデータ)から、昇順に一つルールを選ぶ。ここで、「昇順に」とは、予め定められ て!、るルールの順番通りにと!/、う意味である。ステップ S202で選択するルールを Aと する。重なり分析部 140は、ステップ S203において、ルール Aがデフォルトルールで あるか否かを判定し、ルール Aがデフォルトルールである場合、処理を終了する。本 実施の形態では、デフォルトルールの順番は、ルール集合に含まれるルールのうち 最後であるとしている。したがって、ステップ S202で最後のルールを選択すると、ス テツプ S203で「はい」の側に分岐することとなって、処理が終了する。そのため、ステ ップ S201で「いいえ」の側に分岐することはありえないので、実際には、ステップ S20 1の処理は行わなくてもよい。
[0049] ステップ S203にお!/、てルール Aがデフォルトルールでな!、場合、重なり分析部 14 0は、ステップ S 204において、ルール Aを構成するマトリックスを列挙する。ルール A のルールデータには、ルール Aを構成するマトリックスがリストとして記載されているた め、重なり分析部 140は、ステップ S204においてルールデータを参照すればよい。 次に、重なり分析部 140は、ステップ S205において、ルール Aを構成するマトリックス のマトリックスデータに加えられたルールのリストを調べ、ルール Aを構成するマトリツ タスの全てのマトリックスデータにぉ 、て、先頭ルールがルール A以外であるか否か を判定する。ルール Aを構成するマトリックスの全てのマトリックスデータの!/、ずれに おいても、先頭ルールがルール A以外であるならば、処理はステップ S207に移行す る。ステップ S205において先頭ルールがルール Aであるマトリックスデータが 1つで もあった場合、処理はステップ S 206に移行する。ステップ S206では、重なり分析部 140は、ルール Aを構成するマトリックスの全てのマトリックスデータのうちの一部のみ でルール Aが先頭ルールになっているの力、あるいは、ルール Aを構成するマトリック スの全てのマトリックスデータでルール Aが先頭ルールになっているのかを判定する 。ルール Aを構成するマトリックスの全てのマトリックスデータのうちの一部のみでルー ル Aが先頭ルールになっている場合、処理はステップ S209に移行する。ルール Aを 構成するマトリックスの全てのマトリックスデータでルール Aが先頭ルールになってい る場合、処理はステップ S201に移行し、上述した処理が繰り返されることとなる。
[0050] ステップ S205において「はい」側に分岐した場合、すなわちルール Aを構成するマ トリックスの全てのマトリックスデータの 、ずれにお 、ても先頭ルールがルール A以外 であった場合、重なり分析部 140は、図 4のステップ S207において、そのルール A以 外の先頭ルールを列挙する。ステップ S207で列挙されるルールの集合を Bとする。 Bは、 1つ以上のルールの集合である。ステップ S207の後、重なり分析部 140は、ス テツプ S208において、出力装置 930によって、「ルール Aはルール集合 Bによって C oncealedである」旨を出力する。「Concealed」とは、あるルール力 そのルールより 優先順位の高 、他のルール(このルールは 1つとは限らな 、)によって完全に隠され ている状態であることを意味する。すなわち、あるルール力 そのルールより優先順位 の高い他のルールに完全に隠され、どのようなパケットが送られてきたとしても、より優 先順位の高 、他のルールが発火し (適用され)、隠されたルール自身は発火すること がない(適用されない)ということを意味する。ステップ S208で「ルール Aはルール集 合 Bによって Concealedである」という分析結果を出力した後には、処理はステップ S 201に移行し、ステップ S 201以降の処理が繰り返される。
[0051] ステップ S206において「はい」側に分岐した場合、すなわちルール Aを構成するマ トリックスの全てのマトリックスデータのうちの一部のみでルール Aが先頭ルールにな つている場合、重なり分析部 140は、図 4のステップ S209において、そのルール A以 外の先頭ルールを列挙する。ステップ S209で列挙されるルールの集合を Cとする。 続いて、重なり分析部 140は、ステップ S210において、ルール集合 Cに含まれるル ールのうち、ステップ S211以降の処理が行われて!/、な!/、ルールが残って!/、るか否か を判定する。ルール集合 Cにそのようなルールが残っていなければ、処理はステップ S201に移行し、ステップ S201以降の処理が繰り返される。一方、ステップ S210に おいてルール集合 Cにそのようなルールが残っているならば、重なり分析部 140は、 ステップ S211において、残っているルールの中からルールを一つ選ぶ。ステップ S2 11で選んだルールをルール Dとする。その後、重なり分析部 140は、ステップ S212 において、ルール Aとルール Dに共通のマトリックスを収集する。ルール Dは、ルール Aより順番が先のルールであるので、重なり分析部 140は、ルール Aを構成するマトリ ックスのうち、マトリックスデータにおいてルール Dがルール Aより先にリストアップされ て!、るマトリックスを列挙すればよ!、。
[0052] 次に重なり分析部 140は、ステップ S213において、ステップ S212で収集したマトリ ッタスで構成される領域を特定する。この領域を Eとする。なお、ステップ S212で収 集するマトリックスが、ルール Dを先頭ルールとするマトリックスでないのは、ルール D よりも順番が上位のルール力 ルール Dの内部にある可能性がある力 である。ステ ップ S 213で領域 Eを特定した後、重なり分析部 140は、ステップ S214において、出 力装置 930を用いて、「ルール Dによって、ルール Aの範囲(領域) Eが Overlapped である」旨を出力する。「Overlapped」とは、あるルールがそのルール自身よりも優先 順位の高い他のルール(このルールは 1つとは限らない)によって、一部分の領域が 隠されている状態であることを意味する。ステップ S214で、「ルール Dによって、ルー ル Aの範囲 Eが Overlappedである」という分析結果を出力した後には、処理はステツ プ S201に移行し、ステップ S201移行の処理が繰り返される。
[0053] 出力装置 930は、上述したようにステップ S 208あるいはステップ S214において、 重なり分析部 140にしたがって分析結果の出力を行う。分析結果の出力態様は、特 に限定されない。例えば、ディスプレイ装置によって出力装置 930を実現して、分析 結果を表示出力してもよい。あるいは、 CPUによって出力装置 930を実現して、分析 結果をファイルとして出力してもよ 、。
[0054] なお、図 2に示すマトリックス化部 130での処理手順や、図 3及び図 4に示す重なり 分析部 140での処理手順は、処理手順の一例を示すものである。マトリックス化部 13 0での処理手順や重なり分析部 140での処理手順は、これらの図に示されたものに 限定されな ヽ。他の処理手順によって上述と同様の結果を得てもょ ヽ。
[0055] 次に、具体例を用いて、第 1の実施の形態における動作を説明する。
[0056] 既に説明したように、ルール集合 910 (図 1参照)に含まれるフィルタリングルールは 、例えば、特定のネットワーク機器 (特定のファイアウォールや特定のルータ等)に依 存した記述ではなぐ各種ネットワーク機器に依存しな 、共通の形式で記述されて ヽ てもよい。このような共通な形式として、上述したポリシー言語 SCCMLがある。あるい は、特定のネットワーク機器におけるルールの記述形式を、統一的に用いる記述形 式として採用し、その形式でフィルタリングルールが記述されていてもよい。いずれの 場合であっても、ネットワーク機器に依存した記述形式から、簡単な 1対 1の文法上の 置換によって、ルール集合 910に含まれる各フィルタリングルールに変換することが できる。ルール集合 910に含まれる各ルールは、元のネットワーク機器におけるルー ルの順番を保持しているものとする。ただし、元のネットワーク機器におけるデフオル トルールの順番が最初であっても最後であっても、ルール集合 910におけるデフオル トルールの順番は最後であるものとする。デフォルトルールの条件部分は、すべての 属性の最大領域 (最大範囲)をそれぞれ示して ヽるものとする。
[0057] 入力装置 920は、ルール集合 910をルール分析システム 100に入力し、ルールの 集合をルール記憶部 110に記憶させる。既に説明したように、入力装置 920は、入 力したルールの集合の記述形式を、コンピュータ (具体的にはルール分析システム 1 00)が扱いやすいように変換してもよい。本例では、入力装置 920は、入力したルー ルの集合を、図 5に例示するようなデータ構造で表わされるルールの集合に変換し、 そのルールの集合をルール記憶部 110に記憶させるものとする。ただし、図 5に例示 するデータ構造は、例示であり、他のデータ構造で表わされるルールの集合に変換 してちよい。
[0058] 図 5に例示するルール記述の形式すなわちルールのデータ構造にっ 、て説明す る。図 5は、 8個のルール (R1〜R8)力 なるルールの集合を示している。それぞれ のルールは、第 1属性の開始点、第 1属性の終了点、第 2属性の開始点、第 2属性の 終了点というように、第 n属性の開始点、第 n属性の終了点まで記述され、最後にァク シヨンが記述される。ただし、図 5に示す例では、第 3属性以降の開始点と終了点に ついては「中略」としている。例えば、ルール 1 (R1)は、第 1属性の開始点、終了点は それぞれ 3, 5であり、同様に、第 2属性の開始点、終了点はそれぞれ 5, 7である。よ つて、 R1では、第 1属性が 3〜5の範囲であり、第 2属性が 5〜7の範囲である場合に 、 Dというアクションを実行することを意味する。なお、ルール中に記載された Dは、「 Deny」の略であり、通過を許可しないというアクションを示す。ルール中に記載された Aは、「Allow」の略であり、通過を許可するというアクションを示す。
[0059] 実際のフィルタリングルールの条件部分が示す属性のうち、ソースアドレスやデステ イネーシヨンアドレスは、 IP (Internet Protocol)アドレスで表わされており、したが つてソースアドレス及びデスティネーションアドレスは、 0. 0. 0. 0〜255. 255. 255 . 255という範囲内すなわち IPアドレス空間内における開始点及び終了点として表わ される。ソースポートやデスティネーションポートの範囲は、 0〜65535という範囲内 における開始点及び終了点で表わされる。プロトコルは、 TCPのみ、 UDP (User D atagram Protocol)のみ、または、 TCP及び UDPという範囲で表わされる。ここで は単純化のために、全ての属性の範囲を、 0〜mという整数の範囲として表わして説 明する。 IPアドレス空間やプロトコルは、フィルタリングルール上での表現は違うもの の、ポートと同様な全順序をもつ一次元線分 (あるいは点)として表わされるため、上 述の 0〜mという整数の範囲で表わした説明であっても、この説明を IPアドレス空間 やプロトコルに容易に適用することが可能である。例えば、 TCPを 0、 UDPを 1とすれ ば、「TCPのみ」は、開始点及び終了点を 0にすることで表わすことができ、「TCP及 び UDP」という範囲は開始点を 0、終了点を 1とすることで表わすことができる。
[0060] 上述したようにルールを記述したデータがルールデータであり、図 5に示すデータ がルールデータに該当する。図 5に示すルールデータにおいて「中略」とした第 3属 性以降の開始点及び終了点がないものとし、図 5に示すルールデータの 2つの属性( 第 1属性及び第 2属性)について 2次元空間で表わすと、図 6に示すようになる。図 6 において X軸 (横軸)は第 1属性に対応し、 Y軸 (縦軸)は第 2属性に対応する。各ル ールの条件部分における第 1属性及び第 2属性によって定まる範囲を矩形で表わし ている。ルールのアクションが「通過を許可」を意味する Aの場合は、その矩形を白色 で表わし、アクションが「通過を禁止」を意味する Dの場合は、矩形内に模様、具体的 には多数の点を描画した模様を付して表わしている。図 6では、ルールの優先順位 が低い矩形が下層になり、ルールの優先順位が高い矩形ほど上層になるように、重 ねて描画している。図 6では、 2つの属性によって定まる範囲を 2次元で表わしている 力 ルールの条件部分が示す属性が 5個ある場合には、 5次元空間として表わされる ことになる。
[0061] マトリックス化部 130は、ルール記憶部 110によって記憶されるルールデータを参 照し、マトリックス空間データを作成し、マトリックス空間記憶部 120に記録する。マトリ ックス化部 130による処理の具体例を、図 2及び図 5〜図 10を用いて以下に説明す る。図 5に示すルールデータの場合、「中略」とした部分も含めて第 n属性までの n個 の属性があるが、以下の説明では、最初の 2つの属性を用いて説明する。属性の数 は何個であっても同様の処理を繰り返せばよ!/、。
[0062] マトリックス化部 130は、最初にステップ S101 (図 2参照)に移行したときに、属性が 2つ残っているのでステップ S 102に移行し、最初の属性 (第 1属性)を選択する。続く 、ステップ S103では、全てのルール R1〜R8 (図 5参照)から、選択した第 1属性の開 始点及び終了点を収集する。図 5に示すルールデータの場合、マトリックス化部 130 ίま、: R1力ら 3と 5を、: R2力ら 2と 8を、: R3力ら 11と 13を、: R4力ら 5と 9を、: R5力ら 1と 7を 、 R6力ら 10と 14を、 R7力ら 4と 7を、 R8力ら 0と 15を、それぞれ収集する。次のステツ プ S104では、マトリックス化部 130は、これらの境界点のうち、重複する境界点を削 除し、その上で境界点をソートする。この結果、第 1属性については、 0、 1、 2、 3、 4、 5、 7、 8、 9、 10、 11、 13、 14、 15という値力得られる。マトリックスィ匕咅 は、同様 の処理 (ステップ S101〜S104)を第 2属性についても行う。この結果、第 2属性につ ヽては、 0、 1、 3、 4、 5、 7、 8、 10、 11、 12、 13と!ヽぅ値力得られる。第 2属'性につ!ヽ て処理が完了してステップ S 101に移行した場合、他の属性が残っていないため、ス テツプ S 105に移行する。
[0063] ステップ S105では、マトリックス化部 130は、ある属性の隣り合う 2つの境界点の間 の範囲と、別の属性の隣り合う 2つの境界点の間の範囲によって定められる極小領域 (マトリックス)を作成する。マトリックス化部 130は、各属性おける隣り合う 2つの境界 点を変化させることにより、作成し得るマトリックスを全て作成する。例えば、図 6に示 すように各軸 (各属性)ごとに境界点が得られている場合には、図 7に示すような 130 個のマトリックスを作成する。
[0064] マトリックスのデータの記述形式の例を図 8に示す。本例では、 1番目から 130番目 までのマトリックスがあり、それぞれ M001〜M 130とする。そして、それぞれのマトリツ タスは、ルールデータと同様に、各属性の開始点と終了点のペアの列挙して記述す ることにより表わされる。例えば、マトリックス M001は、第 1属性力^〜 1の範囲で、第 2属性が 0〜1の範囲の領域である。図 8に示す例では 3つ目以降の属性については 省略して!/、る。上述したようにマトリックスを記述したデータをマトリックスデータと呼ぶ 力 図 8に示すデータがマトリックスデータに該当する。
[0065] 次に、マトリックス化部 130は、ルール記憶部 110に記憶されているルールデータ 全てについて、順に、ステップ S106〜S108の処理を行う。まず、最初にステップ S1 06に移行したときにはルールが全て残っているため、ステップ S 107に移行する。最 初にステップ S107に移行したときには、マトリックス化部 130は、最初のルール R1を 選択する。そして、ステップ S108に移行し、そのルール R1を構成するマトリックスを 列挙する。 R1は、図 7からも明らかなように、 M056と M057の 2つのマトリックス力ら 構成されている。なお、 M056は、図 7に示す M053の 3つ隣りのマトリックスであり、 M057は、さらにその一つ隣りのマトリックスである。マトリックス化部 130は、図 9の 1 行目の下線部分に示すように、 R1のルールデータの最後にこれら 2つのマトリックス M056, M057を追記する。さらにマトリックス化部 130は、それら 2つのマトリックス M 056, M057のマトリックスデータの最後に選択したルール(ここでは R1)を追記する 。 ί列免 ίま、、 Μ056のマトリックスデータ【こ関して ίま、 Μ056= (3、 4、 5、 7、後略)【こ対 して「R1」を追記し、 M056= (3、 4、 5、 7、中略、 R1)とする。 M057のマトリックスデ ータに関しても同様である。
[0066] ステップ S108の処理が終了すると、ステップ S106に処理が戻り、残りのルール全 てについて同様の処理が行われる。その結果、ルールデータには、図 9に示すように 、マトリックスのリストが追記され、マトリックスデータには、図 10に示すように、ルール のリストが追記される。なお、既に説明したように、ルールデータとマトリックスデータの 全集合を総称してマトリックス空間データと呼ぶ。マトリックス化部 130は、マトリックス 空間データをマトリックス空間記憶部 120に記録して、処理を終了する。
[0067] 図 2に示すフローチャートでは、ステップ S105の後、昇順に、すなわちルールの順 番通りに、ルールを 1つずつ選び、ルールデータに構成しているマトリックスのリストを 追加する。ただし、デフォルトルールは全てのマトリックスカゝら構成されるため、デフォ ルトルールのルールデータには、全てのマトリックスから構成されることを示すデータ を追加するだけでもよい。図 9に示す例では、全てのマトリックスカゝら構成されることを 示すデータとして、「ALL」というデータを追記している。マトリックス化部 130は、マト リックスデータに関係付けられるルールの最後には、無条件でデフォルトルールを追 カロしてちょい。
[0068] 次に、重なり分析部 140による処理の具体例を、図 3〜図 4及び図 11〜図 13を用 いて説明する。重なり分析とは、 2つのルール間の条件部分の重なりを調べることで ある。パケットフィルタリングでは、ルールを優先順位の高い方力 順に調べ、あるパ ケットの属性が合致するルール (条件部分)が見つかると、そのルールの実行部分に 記載されているアクションに従って動作が行われる。そのため、そのルールより優先 順位の低いルールは、上記のパケットの属性と照合されない。すなわち、同じパケット の属性に合致するような条件部分を有するルールが 2つある場合、フィルタリング処 理においては、優先順位の低い方のルールは意味をなさない。重なり分析では、こ のようなルールを検出する。
[0069] 重なり分析部 140は、マトリックス空間記憶部 120に記憶されているマトリックス空間 データのルールデータを優先順位の高 、方力も順に調べる。図 5に示すルール集合 に基づいて作成されたマトリックス空間データのルールデータは図 9に示す通りであ る。最初にステップ S201に移行したときにはルールデータは全て残っているので、ス テツプ S202に移行する。最初にステップ S202に移行したときには、重なり分析部 14 0は、まず、ルール R1を選択する。ステップ S202で選択されたルールをルール Aと するので、ここではルール R1をルール Aとする。
[0070] 次に、重なり分析部 140は、ステップ S203において、ルール Aがデフォルトルール かどうかを調べる。図 9に示すルールデータでは、デフォルトルールは R8であるため 、ここでは処理は「いいえ」の側に分岐してステップ S204に移行する。重なり分析部 1 40は、ステップ S204では、ルール Aを構成するマトリックスを列挙する。ルール Aを 構成するマトリックスは、ルールデータのアクション部分の後を参照すれば、即時に判 別することができる。ここではマトリックス M056, M057が列挙される。次のステップ S 205では、重なり分析部 140は、列挙したマトリックスの先頭ルールを調べ、先頭ル ールが全てルール A以外になって!/、るか否かを判定する。列挙したマトリックスは M0 56と M057であり、重なり分析部 140は、これらのマトリックスに関係付けられたルー ルのリストを調べる。例えばマトリックス M056に関係付けられたルールのリストは、図 10のマトリックスデータを参照すると R1と R2と R8であることが分かる(図 10の 11行目 の下線部参照)。そしてこのマトリックスに関係付けられた先頭ルールは、 R1である。 また同様に、 M057に関係付けられたルールにおける先頭ルールも R1である。すな わち、マトリックス M056, M057に関係付けられたルールの先頭ルールは全て Rl ( ルール A)であるため、ステップ S205では「いいえ」の側に処理が分岐し、ステップ S 206に移行する。なお、ここでは説明のために M056と M057双方の先頭ルールを 調べたが、実際には、 M056を調べれば先頭ルールがルール Aとなり、全ての先頭 ルールがルール A以外になることはないため、 M057に関して調べる必要はない。
[0071] ステップ S206においても、重なり分析部 140は、ステップ S205と同様に先頭ルー ルを調べ、ルール Aを構成するマトリックスのマトリックスデータのうち、 1つでも先頭ル ールが A以外のものがあれば、ステップ S209に移行する。選択したルールが R1の 場合は、ステップ S206における判定で、ルール Aを構成するマトリックス M056, MO 557の全てにお!、て先頭ルールがルール Aとなるため、ステップ S 206にお!/、て「 ヽ いえ」の側に処理が分岐してステップ S201に戻る。ここでは説明のために、再度、 M 056を M057双方の先頭ルールをチェックした力 実際には、ステップ S205で調べ たマトリックスに関して再度調べる必要はない。図 3に示すフローチャートではステツ プ S205の判定の後に、ステップ S206の判定を行っている力 フラグ等を用いること によってステップ S205の判定処理とステップ S206の判定処理とを同時に行ってもよ い。
[0072] 1つ目のルール (R1)の処理が済むと、重なり分析部 140は、次のルールに関して も同様の処理を行う。図 9に示す例では、 R1の処理が終わったため、 R2〜R8のル ールが残っている。従って、重なり分析部 140は、ステップ S201において、ルールが 残っていると判定し、ステップ S202に移行する。ステップ S202では、重なり分析部 1 40は、ルール R2を選択し、ルール R2をルール Aとする。 R2はデフォルトルールで はな 、ため、ステップ S203では「 、 、え」の側に処理が分岐してステップ S204に移 行する。ステップ S204において、重なり分析部 140は、ルール A (ここでは R2)を構 成するマトリックスを列挙する。図 9を参照すると、ルール Aを構成するマトリックスは、 M042、 M043、 M044、中略、 Ml 10、 Ml 11の 30個のマトリックスである。次に、ス テツプ S205において、重なり分析部 140は、上述の 30個のマトリックスの先頭ルー ルを調べる。例えば、 M042の先頭ルールは R2で、 M056の先頭ルールは R1であ る。ステップ S 205では全ての先頭ルールが Aでな!/、場合に「は!/、」と判断されるため 、 Aが R2の場合は「いいえ」の側に処理が分岐してステップ S206に移行する。ステツ プ S206では、マトリックス M056と M057の先頭ルールが R1であるため、 30個のマ トリックスのうち、 2個のマトリックスの先頭ルールが A以外となる。そのため、ステップ S 206では処理は「はい」の側に分岐し、ステップ S209に移行する。 [0073] ステップ S209では、重なり分析部 140は、 30個のマトリックスにおける先頭ルール のうち、ルール Aでない先頭ルールを列挙する。ステップ S202で選択したルールが R2の場合、先頭ルールが R2 (=A)でないルールは R1となる。ステップ S209で列 挙されるルールの集合を Cとする。本例ではルール集合 Cに含まれるルールは、 R1 だけであるが、ルール集合 Cに含まれる複数のルールが含まれることもある。重なり分 析部 140は、ルール集合 Cに含まれる全てのルールに対して、続くステップ S210〜 S214の処理を行う。本例では、 C= {R1 }が成立し、ルール集合 Cにルール R1のみ が含まれているので、ステップ S210〜S214の一連の処理は、 R1について 1回だけ 行われる。そして、ステップ S214の後、再度ステップ S210に移行したときには、ルー ル集合 Cにルールが残って!/、な!/、状態になるので、処理はステップ S 201に移行す る。
[0074] ルール集合 Cに含まれるルール R1に対するステップ S210〜S214の処理は、以 下のようになる。まず、重なり分析部 140は、ステップ S210においてルール集合 こ ルール R1が残っていると判定し、ステップ S211〖こおいて、ルール集合 Cからルール を一つ選択する。ステップ S 211で選択したルールをルール Dとする。本例では、ル 一ノレ R1力 レーノレ Dとなる。次に、重なり分析咅 は、ステップ S212にお!/、て、ノレ ール A (ここでは R2)とルール D (ここでは R1)に共通なマトリックスを収集する。ルー ル R2を構成する 30個のマトリックスのうち、マトリックスデータにおいてルール R1が ルールリストに入っているマトリックスが、ルール Aとルール Dに共通のマトリックスであ る。本例では、 M056と M057の 2つのマトリックス力 ルール Aとルール Dに共通の マトリックスである。重なり分析部 140は、ステップ S212で収集したマトリックスで構成 される領域の範囲を特定する。この範囲を Eとする。マトリックスデータによると、 M05 6の領域は、 (3, 4, 5, 7,後略)であり、 M057の領域は、 (4, 5, 5, 7,後略)である 。従って、重なり分析部 140は、この 2つのマトリックスで構成される領域の範囲 Eが E = (3, 5, 5, 7,後略)であると特定する。続いて、重なり分析部 140は、ステップ S21 4において、「ルール D (ここでは R1)によって、ルール A (ここでは R2)の範囲 Eが Ov erlappedである」という分析結果を、出力装置 930を用いて出力し、ステップ S210に 移行する。既に説明したように、ルール集合 Cには R1だけし力含まれていな力つたの で、ステップ S210の判定結果は「いいえ」となり、処理はステップ S201に移行する。
[0075] ステップ S201にお!/、て、選択されて!、な 、ルールがあると判定された場合、処理 はステップ S202に移行し、重なり分析部 140は、順番通りにルールを 1つ選択する。 ステップ S202で選択するルールが R3または R4である場合、ステップ S205, S206 における判定結果はいずれも「いいえ」となるので、処理は、再度、ステップ S 201に 移行する。ステップ S 202で選択するルールが R5または R6である場合、ステップ S2 06における判定結果は「はい」となるので、ステップ S209以降の処理が実行される。 この結果、ステップ S203で R2を選択した場合と同様に、「ルール Dによって、ルール Aの範囲 Eが Overlappedである」という分析結果が出力される。
[0076] ステップ S202で選択するルールが R7である場合について説明する。図 6に示すよ うにルール R7は、ルール R2に隠されているルールである。ルール Aがルール R7で ある場合、ステップ S203の後、処理はステップ S 204に移行する。ステップ S204で は、重なり分析部 140は、ルール A (ここでは R7)を構成するマトリックスを列挙する。 ルール Aを構成するマトリックスは、 M083, M084, M096, M097の 4個である。重 なり分析部 140は、ステップ S205において、これら 4個のマトリックスの先頭ルールを 調べる。これら 4つのマトリックスの先頭ルールは、いずれも R2であり、全てルール A ( すなわち R7)とは異なっている。従って、ステップ S205では処理は「はい」側に分岐 し、ステップ S207【こ移行する。ステップ S207【こお!ヽて、重なり分析咅 140ίま、ノレ一 ル Αを構成する全マトリックスの先頭ルールを列挙する。このルールの集合を Bとする 。ルール Aが R7である場合、ルール Aを構成するマトリックスの先頭ルールは全て R 2である。従って、ルール集合 Bにはルール R2だけが含まれ、 B= {R2}となる。次に 、重なり分析部 140は、ステップ S208において、「ルール Aはルール集合 Bによって Concealedである」 t 、う分析結果を、出力装置 930を用いて出力する。
[0077] 続いて、処理はステップ S 201を経てステップ S202に移行し、ステップ S202にお いて、重なり分析部 140は、最後に残っている R8を選択する。 R8はデフォルトルー ルであるので、ステップ S203では「はい」側に処理が分岐し、処理が終了する。
[0078] 図 3及び図 4に示すフローチャートでは、昇順にルールを一つずつ選んで、そのル ールを完全に隠してしまう他のルールの集合がある力、あるいは、そのルールを一部 隠してしまう他のルールの集合があるかを分析している。先頭ルールは、最も優先順 位が高いので、他のルールに一部または全部が隠されることがない。従って、ステツ プ S202において先頭ルールを選択せず、最初にステップ S202に移行したときに2 番目のルールを選択して、以降、ステップ S 202では順番通りにルールを 1つ選択し ていってもよい。この場合、先頭ルールに関する処理を行わずに済むので、処理の 高速化を図れる。デフォルトルールすなわち最後尾のルールは、必ず他のルールに 一部または全部隠されることになるので、デフォルトルールに関してはステップ S204 以降の処理を行わないようにしている。しかし、より詳細な重なり分析のために、デフ オルトルールに関してもステップ S204の処理を行 、、ステップ 208またはステップ S2 14でデフォルトルールについての分析結果を出力してもよい。この場合、ステップ S2 03の判定処理を行わなければょ 、。
[0079] 分析結果の出力態様は、特に限定されるものではない。例えば、分析結果を表示 出力してもよいし、音声出力してもよいし、あるいはファイルとして出力してもよい。ま た、ルール分析システム 100と通信ネットワークを介して接続される別システムに出力 装置 930を設け、その別システムにおいて分析結果を出力してもよい。この場合、ル ール分析システム 100と通信ネットワークを介して接続される別システムの利用者に 分析結果を知らせることができる。出力装置 930がディスプレイ装置であり、分析結 果を表示出力する場合の分析結果の表示例を、図 11に示す。
[0080] 上記では、ステップ S208, S214において分析結果を順次出力する場合を説明し たが、重なり分析部 140による処理が完了した後に、分析結果をまとめて表示しても よ ヽ。この場合、重なり分析咅 140ίま、ステップ S208, S214にお!/、て、「ノレ一ノレ D よって、ルール Aの範囲 Eが Overlappedである」等の分析結果を一時記憶装置(不 図示)に記録しておけばよい。そして、重なり分析部 140による処理すなわち図 3,図 4に示す処理が完了した後、一時記憶装置に記録された分析結果を出力装置 930 力 Sまとめて出力してもよい。
[0081] 図 12に示すように模式的に表わされるルールデータを対象にして、重なり分析を行 つた場合の分析結果の表示例を図 13に示す。図 13に示す例では、「R5が R3と R4 によって Concealed」であるだけでなぐより詳細に「R3によって(5, 7, 7, 10,後略 )の領域が Concealed」等の分析結果も表示している。このように、 Concealedとなる 領域についてより詳細な分析結果を出力する場合には、ステップ S207の処理を、ス テツプ S209〜S213と同様に行えばよい。
[0082] 第 1の実施形態のフィルタリングルール分析システムの利点を説明する。このフィル タリングルール分析システムによれば、どれほど複雑なフィルタリングルールであって も、各ルール間の関係を把握することができる。その理由は、マトリックス化部 130が 、ルールをマトリックス空間データに変換し、重なり分析部 140が、任意のルールを構 成するマトリックスを網羅的に調査することでルール間の重なり関係、特にあるルール が別のルールによって完全に隠された関係であることや、あるルールが別のルール によって一部隠された関係であること分析するからである。このシステムによれば、条
Figure imgf000034_0001
、フィルタリングルールであっても、各ルール間の関係 を把握することができる。その理由は、任意の数の属性であってもルールをマトリック ス空間データに変換でき、ルール間の重なり関係を、属性別で分析するのではなぐ マトリックスを用いて分析する力 である。
[0083] 第 2の実施形態:
次に本発明の第 2の実施形態のフィルタリングルール分析システムを説明する。第 2の実施形態のフィルタリングルール分析システムを示す図 14においては、第 1の実 施形態におけるものと同様の構成要素については、図 1におけるものと同一の参照 符号を付し、重複する説明を省略する。第 2の実施形態のフィルタリングルール分析 システムは、図 1に示すものと同様のものであるが、ルール分析システム 100におい て重なり分析部の代わりに通過テスト部 150が設けられている点で、図 1に示したもの と異なっている。さらに、本実施形態のフィルタリングルール分析システムは、テスト入 力装置 940を備えている。
[0084] テスト入力装置 940は、ルール集合 910がルール全体として、どのようなパケットの 通過を許可し、どのようなパケットの通過を禁止するのかをテストするためのデータを ルール分析システム 100に入力するために設けられている。テストするためのデータ は、例えば、パケットの属性で表わされている。テスト入力装置 940は、例えば、キー ボード等の入力装置によって実現される。 [0085] 通過テスト部 150は、テスト入力装置 940が入力したデータとマトリックス空間デー タとに基づいて、ルール集合に基づくパケットフィルタリング処理において、どのような パケットの通過を許可し、どのようなパケットの通過を禁止するのかをテストする。通過 テスト部 150は、例えば、プログラムに従って動作する CPUによって実現される。プロ グラムは、例えば、ルール分析システム 100が備えるプログラム記憶装置 (不図示)に 記憶される。本実施形態において、出力装置 930は、通過テスト部 150によるテスト 結果を出力する。
[0086] 次に、第 2の実施形態のフィルタリングルール分析システムの動作について説明す る。なお、第 1の実施形態のシステムにおけるものと同様の動作については、詳細な 説明を省略する。マトリックス空間記憶部 120にマトリックス空間データが記憶される までの入力装置 920及びマトリックス化部 130での動作は、第 1の実施形態と同様で ある。
[0087] ルール分析システム 100の利用者は、ルール集合 910がどのようなパケットを通過 させるのかをテストする目的で、テスト入力装置 940を用いて、パケットまたはパケット の範囲をルール分析システム 100に入力する。ここで入力するパケットまたはパケット の範囲とは、実際のパケットではなぐパケットの属性である。一般にパケットは、パケ ットの属性であるソースアドレス、ソースポート、デスティネーションアドレス、デスティ ネーシヨンポート、プロトコルの他に、パケットの内容であるペイロードを含んでいる。 パケットフィルタリングは、一般にペイロード部分は参照せずにパケットの属性部分の みを参照するため、テスト入力装置 940に与えるテストデータはパケットの属性のみ で十分である。通常、ネットワークを流れるパケットでは、上述のパケットの属性全て がある特定の値を持っている。すなわち、 5個の属性の 5次元空間で表わすと、ある 点となる。テスト入力装置 940は、このようなパケットの属性をルール分析システム 10 0に入力する。テスト入力装置 940は、ある特定の値ではなぐある範囲として表わさ れたパケットの属性についてもルール分析システム 100に入力する。一部または全 部の属性がある範囲として表わされた場合、 5個の属性を表わすと、 5次元空間では 、 5次元以下の次元の領域となる。例えば、ある 1つの属性についてのみ範囲を指定 した場合は、 1次元の領域 (すなわち、線)として表わされる。ある 2つの属性について のみ範囲を指定した場合は、 2次元の領域 (すなわち、平面)として表わされる。ある 3 つの属性についてのみ範囲を指定した場合は、 3次元の領域 (すなわち、立体)とし て表わされる。同様に、ある 4つ、または 5つの属性についてのみ範囲を指定した場 合には、それぞれ 4次元、または 5次元の領域として表わされる。以下、パケットの範 囲も含めたパケットの属性をテストパケットと呼ぶ。テスト入力装置 940は、通過テスト 部 150にテストパケットを入力する。
[0088] 通過テスト部 150は、入力されたテストパケットがルール集合 910のルール集合で 通過が許可されるのか許可されないのかをテストする。図 15は、この通過テスト部 15 0によるテスト処理の例を示すフローチャートである。通過テスト部 150は、テスト入力 装置 940を介してテストパケットを入力すると、テスト処理を開始する。まず、通過テス ト部 150は、ステップ S301において、テストパケットの領域、すなわちテストパケットと して入力された属性が示す領域力 マトリックス空間記憶部 120によって記憶される マトリックス空間データの複数のマトリックスにまたがっているか否かを判定する。この 判定処理は、以下のように行えばよい。通過テスト部 150は、各属性ごとに、テストパ ケットの属性の範囲を指定する開始点及び終了点力 ステップ S104 (図 2参照)で決 定された境界点のうち隣りあう境界点の間に収まっているか否かを判定する。この場 合、開始点及び終了点が、隣り合う境界点と合致する場合も、隣りあう境界点の間に 収まっていると判定するものとする。そして、全ての属性に関して、テストパケットの属 性の範囲を指定する開始点及び終了点が、隣り合う境界点の間に収まっていれば、 テストパケットの領域が 1つのマトリックスの領域内に収まると判定する。いずれかの属 性において、テストパケットの属性の範囲を指定する開始点及び終了点が、隣り合う 境界点の間に収まっていなければ、テストパケットの領域が複数のマトリックスにまた 力 Sつていると判定する。
[0089] ステップ S301においてテストパケットの領域がある 1つのマトリックスの領域内に収 まる場合には、処理はステップ S302に移行し、テストパケットの領域が複数のマトリツ タスにまたがる場合には、処理はステップ S304に移行する。
[0090] ステップ S302において、通過テスト部 150は、テストパケットを含むマトリックスを特 定する。ステップ S302で特定したマトリックスを Fとする。続いて、通過テスト部 150は 、マトリックス Fのマトリックスデータを参照してそのマトリックスデータにおける先頭ル ールを特定し、さらに、ステップ S303において、その先頭ルールのルールデータに おけるアクションを参照し、そのアクションが示す内容を、出力装置 930から出力して 、処理を終了する。
[0091] 一方、ステップ S304では、通過テスト部 150は、テストパケットを含む複数のマトリツ タス、すなわち、テストパケットの領域がまたがって存在している複数のマトリックスを 列挙する。このマトリックスの集合を Gとする。通過テスト部 150は、集合 Gに含まれる 各マトリックスごとに、アクションを特定する。このアクションを特定する動作は、ステツ プ S303と同様に行えばよい。すなわち、通過テスト部 150は、集合 Gに含まれる各マ トリックスごとに、マトリックスデータを参照してそのマトリックスデータにおける先頭ル ールを特定し、その先頭ルールのルールデータにおけるアクションを参照すればよ い。通過テスト部 150は、マトリックスごとにアクションを特定した上で、集合 Gに含ま れるマトリックスをアクションごとに分類し、ステップ S305において、同一のアクション によって分類されたマトリックスを統合し、統合された領域とテストパケットの領域との 重なり領域を求める。マトリックスを統合してテストパケットとの重なり領域を求める処 理も、アクションごとに行う。その後、通過テスト部 150は、ステップ S306において、 求めた重なり領域をアクションごとに出力装置 930から出力し、処理を終了する。
[0092] 本実施形態において、ステップ S303, S306における出力態様は、特に限定され るものではない。例えば、ディスプレイ装置によって実現された出力装置 930に表示 出力させてもよいし、あるいは、ファイルとして出力してもよい。
[0093] なお、図 15に示した通過テスト部 150の処理手順は、単なる一例である。同様の結 果を得るために他の処理手順を採用することも可能である。
[0094] 次に、具体例を用いて、第 2の実施形態のフィルタリングルール分析システムにお ける動作を説明する。ここでは、ルール集合 910は、ルール全体として、どのようなパ ケットの通過を許可し、どのようなパケットの通過を禁止するのかを調べる対象となる ルールの集合であるとする。ルール集合 910がルール分析システム 100に入力され 、マトリックス空間データとしてマトリックス空間記憶部 120に記憶されるまでの動作は 、第 1の実施形態の場合と同様であるので説明を省略する。 [0095] マトリックス空間記憶部 120は、図 5に例示したルール集合力も導出されたマトリック ス空間データを記憶しているものとする。ここで、テスト入力装置 940がテストパケット T1をルール分析システム 100に入力したとする。テストパケットの記述形式は、マトリ ックスデータの初期値(図 8参照)と同様であり、各属性の開始点と終了点のペアの列 挙して記述する形式であるものとする。テストパケット T1は、 Tl = (4, 5, 5, 6,後略) であるとする。テスト入力装置 940は、テストパケットを通過テスト部 150に送る。
[0096] 通過テスト部 150は、図 15に示すフローチャートに従って動作し、テスト入力装置 9 40を介してテストパケットが入力されると処理を開始する。通過テスト部 150は、まず 、ステップ S301において、入力された上記のテストパケット T1の領域が複数のマトリ ッタスにまたがつている力否かを判定する。テストパケットの領域が複数のマトリックス にまたがっているかどうかは、図 2に示すステップ S104においてマトリックス化部 130 により作成されソートされた各属性の境界値と、テストパケットの属性の範囲を指定す る開始点及び終了点とを比較することによって判断することができる。例えば、図 5に 示すルール集合の場合、 1つ目の属性のソートされた境界値は、 0, 1, 3, 4, 5, 7, …(以下、略)である。テストパケット T1の 1つ目の属性の範囲は、 4〜5である。マトリ ックスは 2つの隣り合う境界値で定められるため、 4〜5は 1つのマトリックスの領域で ある。この比較を全ての属性について行い、テストパケット T1の全ての属性について 1つのマトリックス領域内であるならば、テストパケットの領域がある 1つのマトリックスの 領域内に収まっていると判定し、そうでなければ、テストパケットの領域が複数のマトリ ッタスにまたがっていると判定すればよい。通過テスト部 150は、このような判定方法 により、テストパケット T1がーつのマトリックスに収まっていると判定し、その結果、ステ ップ S 301では処理は「 、え」の側に分岐する。
[0097] 図 16は、図 5に示すルール集合において第 2属性までしか記述されていないものと して、図 5に示すルール集合力 導出されたマトリックスデータを 2次元空間に表わし た模式図である。図 16では、テストパケット T1等も示している。なお、テストパケットに おいても第 2属性までしか記述されていないものとする。テストパケットの領域は、図 1 6では便宜的に角丸四角形で表わしている。
[0098] テストパケット T1がーつのマトリックスに収まっているとステップ S301において判定 したのち、通過テスト部 150は、ステップ S302において、テストパケット T1を含むマト リックスを特定する。このとき、通過テスト部 150は、テストパケットの各属性の範囲を 包含して!/、るマトリックスを特定すればょ 、。ステップ S302で特定したマトリックスを F とする。本例では、図 16に示すように、テストパケット T1を含むマトリックスは、 M057 すなわち図 16に示す M053の 4つ隣りのマトリックスである。従って、 M057力マトリツ タス Fとなる。
[0099] 次のステップ S303において、通過テスト部 150は、マトリックス F (M057)のマトリツ タスデータを参照して、そのマトリックスデータにおける先頭ルールを特定する。マトリ ックス Fのマトリックスデータは、 M057= (4、 5、 5、 7、中略、 Rl、 R2、 R8)である。 従って、先頭ルールは R1である。さら〖こ、通過テスト部 150は、その先頭ルール R1 のルールデータにおけるアクションを参照して、そのアクションが示す内容を出力装 置 930力も出力する。 R1のルールデータは、 Rl = (3、 5、 5、 7、中略、 D、 M056、 M057)であるから、アクションは D (通過を許可しない)であることが分かる。従って、 テストパケット T1に関しては通過を許可しな 、旨を出力装置 930から出力する。
[0100] 次に、マトリックスをまたぐようなテストパケットが入力された場合の動作を説明する。
通過テスト部 150は、テスト入力装置 940を介してテストパケット T2が入力されたとす る。ここで、テストパケット T2は、 T2= (6、 9、 6、 9、後略)であるとする。なお、テスト パケット Τ2が第 2属性までしかないものとして 2次元空間に Τ2を表わすと、 Τ2は、図 16に示すように表わされる。
[0101] テストパケット Τ2の領域が複数のパケットにまたがっているとステップ S301で判定 すると、通過テスト部 150は、ステップ S304に移行して、テストパケットを含む複数の マトリックスを列挙する。ここで通過テスト部 150は、各属性がいずれもテストパケット の各属性の一部を含んで 、るマトリックスを全て列挙すればょ 、。ステップ S304で列 挙されたマトリックスの集合を Gとする。図 17は、テストパケット Τ2の周辺の二次元空 間を示す模式図である。本例では、テストパケット Τ2は、図 17に示す Μ058〜Μ06 0、 Μ071〜Μ073、及び Μ084〜Μ086の各マトリックスにまた力 ^つて!/ヽる。従って 、これらのマトリックスの集合が集合 Gとなる。すなわち、 G= {M058、 M059、 M060 、 M071、 M072、 M073、 M084、 M085、 M086}である。 [0102] 次のステップ S305では、通過テスト部 150は、集合 Gに含まれる各マトリックスごと にアクションを特定する。マトリックスごとのアクションを特定する動作は、ステップ S30 3においてマトリックス Fのアクションを特定する動作と同様に行えばよい。図 17では、 アクションが A (通過を許可する)であるマトリックスを白色領域で示し、アクションが D ( 通過を許可しな ヽ)であるマトリックスには模様 (多数の点を描画した模様)を付して 示している。通過テスト部 150は、アクションが Aであるマトリックスすなわち通過を許 可するマトリックスである M058, M059, M071, M072, M084, M085を統合して 、領域を作成する。この領域は、(5, 8, 5, 10,後略)と表わせる。同様に、通過テス ト部 150は、アクションが Dであるマトリックスすなわち通過を許可しないマトリックスで ある M060, M073, M086を統合して、領域を作成する。この領域は、 (8, 9, 5, 1 0,後略)と表わせる。通過テスト部 150は、この 2つの領域それぞれについて、テスト パケット T2との重なり領域を求める。アクションが Aである領域(5, 8, 5, 10,後略)と T2との重なり領域は、(6、 8、 6、 9、後略)と求められる。アクションが Dである領域(8 , 9, 5, 10,後略)と T2との重なり領域は、(8、 9、 6、 9、後略)と求められる。次に、 通過テスト部 150は、ステップ S306において、求めた重なり領域をアクションごとに 出力装置 930から出力する。すなわち、通過テスト部 150は、テストパケット T2の領 域のうち、通過が許可される領域と、通過が許可されない領域をそれぞれ出力する。
[0103] 通過テスト部 150による処理結果すなわちテスト結果の出力態様は、特に限定され るものではない。例えば、表示出力や音声出力であってもよいし、あるいはファイルと して出力してもよい。また、ルール分析システム 100と通信ネットワークを介して接続 される別システムに出力装置 930を設け、その別システムにおいてテスト結果を出力 してもよい。この場合、ルール分析システム 100と通信ネットワークを介して接続され る別システムの利用者にテスト結果を知らせることができる。出力装置 930がディスプ レイ装置であり、テスト結果を表示出力する場合の分析結果の表示例を図 18に示す 。なお図 18では、テストパケットとして上記のテストパケット Tl, T2が入力された場合 の結果の表示例を示して 、る。
[0104] 上記の例では、ステップ S303, S306において、テスト結果を順次出力する場合を 示したが、通過テスト部 150による処理が完了した後に、テスト結果をまとめて表示し てもよ ヽ。この場合、通過テスト咅 150ίま、ステップ S303, S306【こお!ヽてテスト結果 を一時記憶装置 (不図示)に記録しておけばよい。通過テスト部 150による図 15に示 す処理が完了した後、一時記憶装置に記録されたテスト結果を出力装置 930がまと めて出力してもよい。
[0105] 第 2の実施形態のフィルタリングルール分析システムの利点について説明する。第 2の実施形態のフィルタリングルール分析システムによれば、どのような複雑なフィル タリングルールであっても、また属性数が多いフィルタリングルールであっても、ルー ル全体でどのようなパケットが通過するかどうかを把握することができる。その理由は 、任意のテストパケットを入力することで、ルール全体としてそのテストパケットが通過 する力しな 、かをテストするためである。
[0106] 第 3の実施形態:
次に本発明の第 3の実施形態のフィルタリングルール分析システムを説明する。第 3の実施形態のフィルタリングルール分析システムを示す図 19においては、第 2の実 施形態におけるものと同様の構成要素については、図 14におけるものと同一の参照 符号を付し、重複する説明を省略する。ただし、第 3の実施形態のフィルタリング分析 ツールでは、通過テスト部の動作は第 2の実施形態の場合と異なるので、通過テスト 部に対して第 2の実施形態の場合と異なる参照符号を付与するものとする。
[0107] 第 3の実施形態のフィルタリングルール分析システムは、通過テスト部 151を備えて いる。このフィルタリングルール分析システムでは、ルール集合として、複数のルール の集合、すなわち複数のネットワーク機器それぞれに対応するルール集合)が入力 装置 920からルール分析システム 100に入力される。マトリックス化部 130は、複数の ルール集合力 マトリックス空間データを作成し、マトリックス空間記憶部 120に記憶 させる。マトリックス化部 130の動作は、第 1の実施形態の場合と同様である。マトリツ タス空間記憶部 120は、複数のルール集合力も作成されたマトリックス空間データを 記憶する。通過テスト部 151は、このマトリックス空間データとテストパケットとに基づ いて、複数のルール集合全体として、換言すれば、複数のネットワーク機器全体とし て、どのようなパケットを通過させ、どのようなパケットを通過させないのかをテストする 。通過テスト部 151は、例えば、プログラムに従って動作する CPUによって実現され る。なお、プログラムは、例えば、ルール分析システム 100が備えるプログラム記憶装 置 (不図示)に記憶される。
次に、本実施形態のフィルタリングルール分析システムの動作について説明する。 本実施形態では、上述したように、入力装置 920には、複数(2つ以上)のルール集 合が入力される。入力装置 920がルール分析システム 100に入力するルール集合が 複数であったとしても、マトリックス空間データを作成して、マトリックス空間記憶部 12 0に記憶させるまでの動作は、第 1の実施形態及び第 2の実施形態の場合と同様で ある。ただし、複数のルール集合には順番が設定されているものとする。そして、マト リックス化部 130は、各ルール集合に基づいて作成された各マトリックス空間データ においてもこの順番が維持されるように、マトリックス空間データを作成する。例えば、 パケットが順番に 2つのファイアウォールに流されるとする。そして、最初のファイアゥ オールに対応するルール集合を R100、次のファイアフォールに対応するルール集 合を R200とする。この場合、 R100が最初のルール集合であり、 R200が 2番目のル ール集合であると予め順番が設定され、そのように順番が設定されたルール集合 R1 00、 R200が入力装置 920に入力される。マトリックス化部 130は、ルール集合 R100 , R200の順番がそのまま維持されるように、ルール集合 R100, R200力らマトリック ス空間データを作成する。このとき、ルール集合 R100に含まれる各ルールの順番が 維持されるように、マトリックス化部 130は、ルール集合 R100のルールデータの順番 を定める。ただし、デフォルトルールのルールデータは、ルール集合 R100のルール データにおける最後のものとする。同様に、ルール集合 R200に含まれる各ルールの 順番が維持されるように、ルール集合 R200のルールデータの順番を定める。このと きも、デフォルトルールのルールデータは、ルール集合 R200のルールデータにおけ る最後のものとする。さらに、ルール集合 R100のルールデータの後に、ルール集合 R200の各ルールデータが続くように順番を定める。例えば、 R100のルール力 、 R12、 R13とあり、 R13がデフォルトルールであって、 R200のルール力 R21、 R22 とあり、 R22がデフォルトルールであるとする。この場合、マトリックス化部 130は、ル ールデータの順番を、 Rl l, R12, R13, R21, R22と定めてマトリックス空間データ を生成する。 [0109] ルール集合 R100のルールの条件部分に示される属性が 5種類で、ルール集合 R 200のルールの条件部分に示される属性力 種類である場合、ルール集合 R100に あってルール集合 R200にはない属性がルール集合 R200のルールの条件部に示 されているものとして、マトリックス化部 130はマトリックス空間データを作成する。この 場合、ルール集合 R200に追加する属性の範囲は、その属性のとり得る全範囲とす る。このように、複数のルール集合において属性の種類が異なる場合、マトリックス化 部 130は、あるルール集合にはないが他のルール集合にはある属性を、そのルール 集合に追加する。
[0110] 以下の説明において、マトリックスデータに追記されるルールのリストのうち、同じル ール集合に属するルールの組をルールセットと呼ぶ。
[0111] 図 20は、通過テスト部 151における処理の一例を示している。第 2の実施形態にお ける通過テスト部 150による処理と同じ処理に関しては、図 15におけるものと同一の 参照符号を付して、その詳細な説明を省略する。本実施の形態では、第 2の実施の 形態におけるステップ S303 (図 15)の代わりに、ステップ S309 (図 20)の処理を行う 。また第 2の実施形態におけるステップ S305 (図 15)の代わりに、ステップ S310 (図 20)の処理を行う。
[0112] 通過テスト部 151は、第 2の実施形態の場合と同様に、ステップ S301において、テ ストパケットの領域が複数のマトリックスにまたがっているか否かを判定し、 1つのマトリ ッタスの領域内に収まる場合には、ステップ S302に移行して、テストパケットを含むマ トリックス Fを特定する。ステップ S302の次のステップ S309では、通過テスト部 151 は、マトリックス Fのアクションを特定し、そのアクションが示す内容を、出力装置 930 力も出力する。ただし、マトリックス Fのアクションを特定する処理力 第 2の実施形態 におけるステップ S303 (図 15参照)とは異なる。本実施の形態では、通過テスト部 15 1は、以下のようにマトリックス Fのアクションを特定する。
[0113] まず、通過テスト部 151は、マトリックス Fのマトリックスデータを参照してそのマトリツ タスデータにおける先頭ルールを特定する。この先頭ルールは、 1番目のルールセッ トにおける先頭ルールでもある。通過テスト部 151は、この先頭ルールのルールデー タにおけるアクションを参照し、アクションが A、すなわち「通過を許可する」である場 合には、次のルールセットにおける先頭ルールをマトリックスデータに追記されたリス トの中から特定する。通過テスト部 151は、この先頭ルールのルールデータにおける アクションを参照し、アクションが Aである場合には、さらに次のルールセットにおける 先頭ルールをマトリックスデータに追記されたリストの中力 特定する。このような動作 を繰り返し、ルールデータにおけるアクションが D、すなわち「通過を許可しない」とな るものがあった場合には、通過テスト部 151は、マトリックス Fのアクションが Dであると 定める。一方、最後のルールセットにおける先頭ルールをマトリックスデータに追記さ れたリストの中力 特定し、そのルールのルールデータにおけるアクションが Aであつ た場合には、通過テスト部 151は、マトリックス Fのアクションが Aであると定める。
[0114] 例えば、マトリックス Fのマトリックスデータに追記されているルールが(Rl l、 R13、 R21、 R22)であり、 Rl lのアクションが A (「通過を許可する」)である場合は、通過テ スト部 151は、ルールデータ中の次のルールセットの先頭ルールのアクションを出力 する。この例では、 R21のアクションが出力される。ルール集合が 3個以上あった場 合は、 2個目以降のルールセットの先頭ルールが「通過を許可する」である限り、通過 テスト部 151は、次のルールセットの先頭ルールを探し、アクションが D (「通過を許可 しない」)である場合はそこで終了して、そのアクションを出力する。全てのルールセッ トの先頭ルールが「通過を許可する」の場合は、通過テスト部 151は、「通過を許可す る」を出力する。ここでは、先頭ルール R11のアクションが Aであるものとして説明した 力 R11のアクションが Dである場合には、通過テスト部 151は、そのまま「通過を許 可しない」旨を出力する。
[0115] ステップ S301においてテストパケットが複数のマトリックスにまたがっていると判定し た場合にはステップ S304に移行し、通過テスト部 151は、テストパケットを含む複数 のマトリックスを列挙する。このマトリックスの集合を集合 Gとする。
[0116] 次のステップ S310では、通過テスト部 151は、集合 Gに含まれる各マトリックスごと にアクションを特定し、集合 Gに含まれるマトリックスをアクションごとに分類する。そし て、通過テスト部 150は、同一のアクションによって分類されたマトリックスを統合し、 統合された領域とテストパケットの領域との重なり領域を求める。ただし、集合 Gに含 まれる各マトリックスごとにアクションを特定する場合には、ステップ S309と同様に、 各マトリックスのアクションを特定する。すなわち、集合 Gに含まれるあるマトリックスの アクションを特定する場合には、通過テスト部 151は、以下のように処理を行う。
[0117] まず、通過テスト部 151は、マトリックスのマトリックスデータを参照してそのマトリック スデータにおける先頭ルールを特定する。この先頭ルールは、 1番目のルールセット における先頭ルールでもある。通過テスト部 151は、この先頭ルールのルールデータ におけるアクションを参照し、アクションが Aである場合には、次のルールセットにおけ る先頭ルールをマトリックスデータに追記されたリストの中力も特定する。通過テスト部 151は、この先頭ルールのルールデータにおけるアクションを参照し、アクションが A である場合には、さらに次のルールセットにおける先頭ルールをマトリックスデータに 追記されたリストの中力 特定する。このような動作を繰り返し、ルールデータにおけ るアクションが D、すなわち「通過を許可しない」となるものがあった場合には、通過テ スト部 151は、マトリックス Fのアクションが Dであると定める。一方、最後のルールセッ トにおける先頭ルールをマトリックスデータに追記されたリストの中力 特定し、そのル ールのルールデータにおけるアクションが Aであった場合には、通過テスト部 151は 、マトリックス Fのアクションが Aであると定める。
[0118] 次のステップ S306では、通過テスト部 151は、求めた重なり領域をアクションごとに 出力装置 930から出力する
なお、図 20に示す通過テスト部 151の処理手順は、単なる一例である。同様の結 果を得るために他の処理手順を採用することも可能である。
[0119] 次に、具体例を用いて、第 3の実施形態のフィルタリングルール分析システムの動 作を説明する。ここでは、図 21に示すようなネットワーク構成におけるルータ 820及 びファイアウォール 830が、ルータ 820及びファイアウォール 830全体としてどのよう なパケットを通過させ、どのようなパケットを通過させないのかをテストするものとする。 図 21に示すネットワーク構成では、例えばインターネットなどの外部ネットワーク 810 、ルータ 820、ファイアウォール 830、 PC (パーソナルコンピュータ) 840力 この順に 接続されている。外部ネットワーク 810から PC840に送られるパケットは、ルータ 820 を通過し、さらにファイアウォール 830を通過しないと、 PC840に到達しない。ルータ 820には、図 22に示すルール集合 R100 (ルール R11〜R13)が設定されているも のとする。同様に、ファイアウォール 830には、図 22〖こ示すルール集合 R200 (ルー ル R21, R22)が設定されているものとする。ただし図 22では、各ルールを、ネットヮ ーク機器に依存しない形式で記述している。図 22では、各ルール集合ごとに、各ル 一ルを模式的に 2次元空間として図示している。なお、図 22は、後述するテストパケ ット T3の領域も示して!/、る。
[0120] 図 22に示す各ルール集合 RIOO, R200が入力装置 920から入力され、ルール記 憶部 110に記憶されているものとする。なお、入力装置 920には、例えば、ルータ 82 0やファイアウォール 830からルールを収集し、そのルールを独自の形式の記述のル ールに変換するルール変換システム(不図示)が出力したルールが入力されて ヽても よい。
[0121] マトリックス化部 130は、ルール記憶部 110によって記憶されている各ルール集合 R100, R200からマトリックス空間データを作成し、生成したマトリックス空間記憶デ ータをマトリックス空間記憶部 120に記憶させる。このとき、マトリックス化部 130は、ル ールの順番を Rl l, R12, R13, R21, R22と定めてマトリックス空間データを作成す る。従って、マトリックスデータに追記されるルールのリストにおいて、最初に R100に 属するルールが先に記述され、その後に R200に属するルールが記述される。このよ うにルールのリストが追記されたマトリックスデータの例を図 23に示す。なお、作成さ れたマトリックス空間データに基づいてルールの模式図を表わすとすると、図 22に示 す 2つの模式図を重ねた模式図となる。
[0122] 続いて、通過テスト部 151は、テスト入力装置 940を介してテストパケット T3を入力 したとする。テストパケット T3は、 T3= (4、 6、 4、 5、後略)であるものとする。本例に おいて、テストパケット Τ3の領域は、複数のマトリックスにまたがらない。従って、ステ ップ S301 (図 20参照)の判定の後、処理はステップ S302に移行する。本例では、通 過テスト部 151は、ステップ S302において、テストパケットを含むマトリックスが MT01 (図 23参照)であると特定する。すなわち、通過テスト部 151は、 MT01をマトリックス Fとする。
[0123] 続いてステップ S309において、通過テスト部 151は、マトリックス F (MT01)のマトリ ックスデータにおける先頭ルールを特定する。この先頭ルールは R12であり(図 23の MT01を参照)、通過テスト部 151は、 R12のルールデータにおけるアクションを参照 する。このアクションは A (「通過を許可する」)なので、通過テスト部 151は、マトリック ス F (MT01)のマトリックスデータにおける次のルールセットの先頭ルールを探す。こ の先頭ルールは R22である(図 23の MT01を参照)。通過テスト部 151は、 R22のル ールデータにおけるアクションを参照する。このアクションは D (「通過を許可しな!、」 ) である。よって、通過テスト部 151は、マトリックス Fのアクションが Dすなわち「通過を 許可しない」であると定め、「通過を許可しない」旨を出力装置に出力する。このとき、 どのルール集合に基づくパケットフィルタリングで通過を許可され、どのルール集合 に基づくパケットフィルタリングで通過を許可されな力つたかかについても出力してよ い。本例では、最初のルールセットの先頭ルールのアクションは Aであり、次のルー ルセットの先頭アクションが Dであったので、最初のルール集合 R100に基づくバケツ トフィルタリングでは通過を許可され、 2番目のルール集合 R200に基づくパケットフィ ルタリングでは通過が許可されな 、ことを出力してもよ 、。
[0124] この結果、テストパケット T3は、 PC440までは到達しないことがわかる。 1つ目のル ール集合である R100のパケットフィルタリング機器であるルータ 820では、テストパケ ット T3は通過を許可されるが、 2つ目のルール集合である R200のパケットフィルタリ ング機器であるファイアウォール 830では、通過を許可されな 、ことが分かる。
[0125] 入力されたテストパケットが、例えば、(3、 4、 2、 3、後略)であるとする。この場合も 処理はステップ S301 (図 20参照)の後、ステップ S 302に移行する。本例では、通過 テスト部 151は、テストパケットを含むマトリックスが MT02 (図 23参照)であると特定 する。すなわち、通過テスト部 151は、 MT02をマトリックス Fとする。この後のステップ S309において、通過テスト部 151は、マトリックス F (MT02)のマトリックスデータに おける先頭ルールを特定する。図 23に示すように、この先頭ルールは R11であり、通 過テスト部 151は、 R11のルールデータにおけるアクションを参照する。このァクショ ンは Dであるので、通過テスト部 151は、そこでアクションを特定する処理を終了して 、「通過を許可しない」旨を出力する。
[0126] 入力されたテストパケットが、例えば、(4、 7、 1、 2、後略)であるとする。この場合も 、処理はステップ S 302に移行し、この例では、通過テスト部 151は、テストパケットを 含むマトリックスが MT03 (図 23参照)であると特定する。すなわち、 MT03をマトリツ タス Fとする。この後のステップ S309において、通過テスト部 151は、マトリックス F (M T03)のマトリックスデータにおける先頭ルールを特定する。図 23に示すようにこの先 頭ルールは R12であり、 R12のアクションは Aである。そのため、通過テスト部 151は 、次のルールセットにおける先頭ルールを探す。この先頭ルールは R21であり、 R21 のアクションも Aである。次のルールセットは存在しないので、通過テスト部 151は、こ の時点でアクションを特定する処理を終了して、「通過を許可する」旨を出力する。
[0127] 通過テスト部 151による処理結果 (テスト結果)の出力態様は、特に限定されるもの ではなぐ例えば、表示出力や音声出力であってもよいし、あるいはファイルとして出 力してもよい。また、ルール分析システム 100と通信ネットワークを介して接続される 別システムに出力装置 930を設け、その別システムにおいてテスト結果を出力しても よい。この場合、ルール分析システム 100と通信ネットワークを介して接続される別シ ステムの利用者にテスト結果を知らせることができる。出力装置 930がディスプレイ装 置であり、テスト結果を表示出力する場合の分析結果の表示例を図 24に示す。なお 、ステップ S309, S306では、出力すべきテスト結果を一時記憶装置 (不図示)に記 録しておいて、その後、一時記憶装置に記録されたテスト結果を出力装置 930が出 力してちょい。
[0128] 以上の説明は、図 20に示すフローチャートのステップ S301の後に、ステップ S302 に移行する場合のものである。次に、ステップ S301からステップ S310に移行して、 マトリックスの統合を行う場合の具体例を示す。テストパケットとして T4= (l, 4, 1, 4 ,後略)を入力したとする。図 22と同様に Τ4を模式的に表わすと、図 25Αに示すよう になる。テストパケット Τ4を入力した場合、 Τ4の領域は、複数のマトリックスにまたが る。従って、図 20に示すステップ S301の判定の後、処理は、ステップ S304に移行 する。図 25Βに示すように、テストパケット Τ4は、 9個のマトリックス Μ001〜Μ009に またがつているとする。この場合、通過テスト部 151は、ステップ S304において、 Μ0 01〜Μ009の各マトリックスを列挙する。そして、このマトリックスの集合が集合 Gとな る。
[0129] ステップ S310では、通過テスト部 151は、集合 Gに含まれる各マトリックスごとにァク シヨンを特定する。本例では、図 25Bに示すように、通過テスト部 151は、ルール集合 R200のノレ一ノレ R22【こ基づ!/ヽて、 MOOl, M002, M004, M007, M008のァクシ ヨンは Dであると特定し、ノレ一ノレ集合 R100のノレ一ノレ 11に基づ!/ヽて、 M005, M006 のアクションは Dであると特定し、ルール集合 R200のルール R21に基づいて、 MOO 3, M009のアクションは Aであると特定する。通過テスト部 151は、同一のアクション によって分類されたマトリックスを統合する。本例では、 MOOl, M002, M004〜M 006, M007, M008が統合されることになるが、これらのマトリックスの領域は図 25B に示すように矩形とはならず、凸形となる。この場合、各属性の開始点及び終了点の ペアを列挙することによって統合された領域を表わすことはできない。そこで、同一ァ クシヨンのマトリックスを統合する際には、まず、統合すべき領域内における最大矩形 領域を特定し、その領域を各属性の開始点及び終了点のペアを列挙することによつ て表わす。本例では、 MOOl, M002, M004, M005, M007, M008によって最 大矩形領域が得られる。よって、この最大矩形領域を各属性の開始点及び終了点の ペアを列挙することによって表わす。この領域は、(1, 3, 1, 4,後略)と表わされる。 また、統合すべき領域内における残りの領域に関しても、最大矩形領域と特定し、そ の領域を各属性の開始点及び終了点のペアで表わすことを繰り返す。本例では、残 りの領域は M006であり、この M006の領域を各属性の開始点及び終了点のペアで 表わせばよい。この領域は、(3, 4, 2, 3,後略)と表わされる。よって、アクション Dの マトリックスの統合結果は、 (1, 3, 1, 4,後略)及び(3, 4, 2, 3,後略)となる。
[0130] アクション Aのマトリックス M003と M009は離れて存在しているので、通過テスト部 151は、離れて存在している領域、ここではマトリックスごとに、各属性の開始点及び 終了点のペアで領域を表わせばょ 、。
[0131] そして、通過テスト部 151は、ステップ S306において、各アクションの各領域ごとに 、テストパケットとの重なり領域を求め、求めた重なり領域をアクションとともに出力す る。
[0132] 第 3の実施形態のフィルタリングルール分析システムの利点について説明する。第 3の実施形態のフィルタリングルール分析システムによれば、複数のパケットフィルタ リング機器によってフィルタリングを行うような環境で、どのような複雑なフィルタリング ルールであっても、また、属性数が多いフィルタリングルールであっても、複数のパケ ットフィルタリング機器全体でどのようなパケットが通過するかどうかを把握することが できる。その理由は、複数のルール集合力 マトリックス空間データを作成し、そのマ トリックス空間データに基づいてテストパケットが通過する力しないかをテストするため である。
[0133] 第 4の実施形態:
次に本発明の第 4の実施形態のフィルタリングルール分析システムを説明する。第 4の実施形態のフィルタリングルール分析システムを示す図 26においては、第 1の実 施形態におけるものと同様の構成要素については、図 1におけるものと同一の参照 符号を付し、重複する説明を省略する。第 2の実施形態のフィルタリングルール分析 システムは、図 1に示すものと同様のものであるが、ルール分析システム 100におい て重なり分析部の代わりに同一性分析部 160が設けられて 、る点で、図 1に示したも のと異なっている。第 4の実施形態のフィルタリング分析ツールでは、マトリクス化部の 動作は第 1の実施形態の場合と異なるので、マトリクス化部に対して第 1の実施形態 の場合と異なる参照符号を付与するものとする。
[0134] この実施形態では、ルール記憶部 110に複数のルール集合が記憶されて 、るもの とする。マトリックス化部 131は、その複数のルール集合の数だけマトリックス空間デ ータを作成する。すなわち、マトリックス化部 131は、各ルール集合ごとに、それぞれ マトリックス空間データを作成するとともに、各ルール集合に対応する各マトリックス空 間データを作成する際に、各ルール集合カゝら得られる全ての境界点を用いてマトリツ タスデータを作成する。
[0135] 同一性分析部 160は、各ルール集合に基づくパケットフィルタリング動作が同一の 動作になる力否かについて分析する。同一性分析部 160は、例えば、プログラムに 従って動作する CPUによって実現される。このプログラムは、例えば、ルール分析シ ステム 100が備えるプログラム記憶装置 (不図示)に記憶される。
[0136] 次に、本実施形態のフィルタリングルール分析システムの動作について説明する。
既に述べたようにこの実施形態では、ルール記憶部 110に複数のルール集合が記 憶されるが、入力装置 920は、複数のルール集合をルール分析システム 100に入力 し、各ルール集合をそれぞれルール記憶部 110に記憶させればょ 、。
[0137] 図 27は、マトリックス化部 131によるマトリックス空間データ作成処理の例を示して いる。図 27に示すステップ S101〜S104の処理は、第 1の実施形態におけるステツ プ S101〜S104 (図 2参照)の処理と同様である。ただし、第 1の実施形態では、ステ ップ S103において、 1つのルール集合に含まれる全てのルールの条件部分から、ス テツプ S102で選択した属性に関する開始点及び終了点を収集して 、た。この第 4の 実施形態では、マトリックス化部 131は、ステップ S 103において、ルール記憶部 110 に記憶されて 、る全ルール集合に含まれる全てのルールの条件部分から、ステップ S102で選択した属性に関する開始点と終了点を収集する。そして、マトリックス化部 131は、ステップ S104において、全ルール集合に含まれる全てのルールから収集し た境界点(開始点及び終了点)をソートする。なお、境界点の中に重複する境界点、 すなわち同じ値を持つ境界点がある場合、同じ値を持つ境界点のうち一つだけを残 し、同じ値を持つ他の境界点については削除する点に関しては、第 4の実施形態は 、第 1の実施形態と同様である。
[0138] ステップ S101において、属性が残っていないと判定された場合、処理は、ステップ S111に移行する。ステップ S 111では、マトリックス化部 131は、ルール記憶部 110 に記憶されて 、る各ルール集合ごとにマトリックスデータを作成する。一つのルール 集合に対応するマトリックスデータを作成する処理は、第 1の実施形態におけるステツ プ S105 (図 2参照)と同様である。ただし、第 4の実施形態では、マトリックスデータ作 成の際に、ステップ S104でソートした境界点を用いる。なお、図 27に示すステップ S 111では、「2組作る」と記載して!/、るが、ルール記憶部 110に記憶されて!、るルール 集合の数が 3つ以上であっても、各ルール集合ごとにマトリックスデータを作成する。
[0139] 続いて、マトリックス化部 131は、ステップ S 112, 113において、各ルール集合ごと にマトリックス空間データを作成する。図 27に示した例では、 2組目のルール集合に ついてマトリックス空間データを作成した後に処理を終了している力 ルール記憶部 110に記憶されているルール集合の数が 3つ以上である場合も、上述したように、各 ルール集合ごとにマトリックスデータが作成される。なお、ステップ S112, 113に示し た 1つのルール集合に対応するマトリックス空間データを作成する処理では、第 1の 実施形態と同様に、ステップ S106〜S108 (図 2参照)の処理を繰り返し実行すれば よい。
[0140] 各ルール集合と 1対 1に対応するマトリックス空間データが複数組作成された場合、 各マトリックス空間データに含まれるルールデータの数が異なることはある力 S、各マトリ ックス空間データに含まれるマトリックスデータの数は共通である。この理由は、全て のルール集合から境界点(属性の開始点及び終了点)を収集してその境界点をソー トし、いずれのマトリックスデータもこのソート結果により得られる境界点を用いて作成 している力もである。
[0141] 同一性分析部 160は、ルール記憶部 110に記録されている複数のルール集合が 同じ意味を持つルール集合であるかどうかを検査する。換言すれば、同一性分析部 160は、各ルール集合に基づくパケットフィルタリング動作が同一の動作になるか否 かについて分析する。
[0142] 図 28は、同一性分析部 160による処理の例を示している。各ルール集合ごとに対 応するマトリックス空間データが存在するので、マトリックス空間データは複数組存在 することになる。ここでは、 2つのルール集合とそれぞれ 1対 1に対応する 2組のマトリ ックス空間データが存在する場合を例にして説明する。この 2組のマトリックス空間デ ータに含まれるルールデータ数が異なっていても、マトリックスデータの数は同数であ る。以下の説明では、 1組目のマトリックス空間データにおけるマトリックスを基準に説 明する。
[0143] 同一性分析部 160は、基準とする 1組目のマトリックス空間データにおける全てのマ トリックスデータを順次選択しながら、ステップ S401〜S403に示すループ処理を行 う。まず、同一性分析部 160は、ステップ S401において、基準とするマトリックス空間 データにおいて未選択のマトリックスデータが残っている力否かを判定する。マトリツ タスデータ全てについてチェックが済んでいる場合、すなわち全てのマトリックスデー タが選択済みである場合には、処理はステップ S404に移行し、未選択のマトリックス データが残っている場合には、同一性分析部 160は、ステップ S402において、基準 とするマトリックス空間データにおける未選択のマトリックスデータを 1つ選択する。
[0144] 次に、同一性分析部 160は、選択した 1組目のマトリックスデータに対応するマトリク スデータを 2組目のマトリックス空間データの中力 選択する。すなわち、同一性分析 部 160は、各属性においてペアとなる境界点力 選択した 1組目のマトリックスデータ と共通のマトリックスデータを、 2組目のマトリックス空間データの中力も選択する。同 一性分析部 160は、ステップ S403において、選択した 2つのマトリックスデータにお ける先頭ルールのアクションを調べ、アクションが異なっているならば、ノ ッファ(不図 示)に記録する。このとき同一性分析部 160は、先頭ルールのアクションが異なって V、る 2つのマトリックスデータを特定できる情報をバッファに記録すればょ 、。例えば 、各マトリックス空間データにおける 13番目のマトリックスデータを M013として識別し て!、て、 2つのマトリックス空間データからそれぞれ選択した M013の先頭ルールの アクションが異なっている場合には、同一性分析部 160は、ノ ッファに「M013」と記 録すればよい。あるいは、選択した各マトリックスデータの最後尾に、先頭ルールのァ クシヨンを追記したものをバッファに記録してもよい。例えば、「1組目 M013= (14, 15, 0, 1, 中略, D)、 2組目 M013= (14, 15, 0, 1, 中略, A)」等の形式でバッ ファに記録してもよい。なお、 2つのマトリックスデータの先頭ルールのアクションが共 通であれば、同一性分析部 160は、ノ ッファに対する記録は行わない。
[0145] ステップ S403の後、処理はステップ S401に移行する。基準とするマトリックス空間 データにおいて未選択のマトリックスデータが残っているならば、ステップ S402以降 の処理が繰り返される。
[0146] ステップ S401において「いいえ」の側に分岐した場合、すなわち基準とするマトリツ タス空間データにおいて未選択のマトリックスデータが残っていない場合には、同一 性分析部 160は、ステップ S404において、ノ ッファにマトリックスの情報が記録され ているかどうかを判定する。ここでマトリックスの情報が記録されていなければ、同一 性分析部 160は、ステップ S406において、ルール記憶部 110に記録されている 2組 のルール集合が同じ意味を持つルール集合であることを、出力装置 930から出力す る。ステップ S404においてマトリックスの情報が記録されている場合には、同一性分 析部 160は、ステップ S405において、 2組のルール集合の持つ意味に差異があるこ と、すなわち、 2組のルール集合それぞれに基づくパケットフィルタリング動作が異な ることを、出力装置 930から出力する。このとき、同一性分析部 160は、バッファに記 録され、かつ先頭ルールのアクションが異なっているマトリックスの情報も、出力装置
930から出力する。さらに、異なっているアクションをそれぞれ表示するようにしてもよ い。
[0147] なお、図 27に示すマトリックス化部 131の処理手順は、単なる一例である。同様の 結果を得るために他の処理手順を採用することも可能である。図 28に示す同一性分 析部 160の処理手順も、単なる一例である。同様の結果を得るために他の手順を採 用することも可能である。上記の例では、ルール集合が 2組の場合の動作の説明を 行ったが、 2組以上の任意の数のルール集合が存在する場合の動作も同様である。
[0148] 次に、具体例を用いて、第 4の実施形態のフィルタリングルール分析システムの動 作を説明する。ここでは、図 21に示すようなネットワーク構成に含まれるルータ 820と ファイアウォール 830のパケットフィルタリング動作の同一性、または、図 29に示すよ うな外部ネットワーク 810と PC860, 880との間に設けられる 2つのファイアウォール 8 50, 870のパケットフィルタリング動作の同一性を分析する場合を例にして説明する 。なお、このとき、図 21に示すノレータ 820、ファイアウォーノレ 830には、それぞれ図 30 に示すルール集合 R300 (ルール R31〜R33)、ルール集合 R400 (ルール R41〜R 45)がフィルタリングルールとして設定されているものとする。図 29に示す各ファイア ク才ーノレ 850, 870【こ ίま、それぞれ図 30【こ示すノレ一ノレ集合 R300 (ノレ一ノレ R31〜: R3 3)、ルール集合 R400 (ルール R41〜R45)が設定されているものとする。図 30では 、図 22と同様にルールを記述し、ルールの模式図も図示している。
[0149] 図 30に示す各ルール集合 R300, R400が入力装置 920から入力され、ルール記 憶部 110に記憶されているものとする。なお、入力装置 920には、例えば、図 21に示 すルータ 820やファイアウォール 830からルールを収集し、あるいは、図 29に示すフ アイァウォール 850, 870カゝらルールを収集し、それらのルールを独自の形式の記述 のルールに変換するルール変換システム(不図示)が出力したルールが入力されれ ばよい。
[0150] 図 21に示すネットワーク構成の場合、ルータ 820とファイアウォール 830〖こ全く同じ 処理を行うフィルタリングルールを設定することで、多重に防御し、セキュリティを頑健 にしているものとする。このような構成は多段防御と呼ばれている。一方、図 29のネッ トワーク構成の場合、全く同じ環境を複数用意することで、 PCの負荷を分散させてい るものとする。このような構成は多重化と呼ばれる。いずれの場合にも、フィルタリング 処理では同じ処理をしなければならない。本例では、このようなフィルタリング処理の 同一性を検査する。
[0151] 図 29に例示する構成では、ファイアウォール 850とファイアウォール 870として同一 機種 (あるいは同一ソフトウェア)のファイアウォールが用いられて 、た場合は、ルー ルも同じものが使える。この場合には、ルール文字列の照合で同一性を検証できる。 しかし、同一機種(あるいは同一ソフトウェア)のファイアウォールであっても、ルール を作成した人やルールの作成時期によって、ルール構成が異なる場合がある。ある 1 つのルールであっても、複数の書き方がある上、複数のルールで 1つのルールと同じ 意味を持たせることもあり、ルール文字列の照合だけでは同一性が簡単には検証で きない。本実施形態のフィルタリングルール分析システムは、このような場合の同一性 の検証を行う。
[0152] マトリックス化部 131がルール集合 R300及び R400に対応するマトリックス空間デ ータを 2組作り、マトリックス空間記憶部 120に記録するまでの処理は、第 1の実施形 態とほぼ同様である。第 4の実施形態が第 1の実施形態と異なる点は、ステップ S10 7において、 2組のルール集合 R300, R440に含まれる全てのルールから開始点及 び終了点 (境界点)を収集し、ステップ S104において、その境界点をソートして、マト リックス空間データを作る点である。第 1の実施形態では、 1つのルール集合からしか 境界点を収集していない。
[0153] 図 30に例示する 2組のルール集合 R300, R400からマトリックス空間データを作成 した場合、 1組目のマトリックス空間データは、 3個のルールデータ(R31〜R33)と、 30個のマトリックスデータを含む。 2組目のマトリックス空間データは、 5個のルールデ ータ (R41〜R45)と、 30個のマトリックスデータを含む。 1次元目(第 1属性)における 境界点は(0、 1、 2、 4、 7、 8)であり、隣接する 2つ境界点で出来る極小領域は 5個で ある。 2次元目(第 2属性)における境界点は(0、 1、 2、 3、 4、 5、 7)であり、隣接する 2つ境界点で出来る極小領域は 6個である。そのため、マトリックスデータの数は、 5 X 6 = 30となる。なお、ここでは説明を簡単にするため、第 3属性以降については無 視している。
[0154] マトリックス化部 131が 2組のマトリックス空間データをマトリックス空間記憶部 120に 記録した後、同一性分析部 160は、その 2組のマトリックス空間データを用いて分析 を行う。図 30に示す 2組のルール集合力も作成した各マトリックス空間データは、そ れぞれ 30個のマトリックスデータを含んでいる。そのため、図 28に示すフローチヤ一 1 ^こお ヽて、同一'性分析咅 160ίま、ステップ S401〜S403のノレープを 30回繰り返す 。以下、 1組目のルール集合 R300に対応するマトリックス空間データを基準とする場 合を例に挙げて説明する。
[0155] 同一性分析部 160は、ステップ S401において、基準とするマトリックス空間データ において未選択のマトリックスデータが残っている力否かを判定する。最初にステツ プ S401に移行した場合、 30個のマトリックスデータが残っているため、ステップ S40 1では「はい」側に分岐して、同一性分析部 160は、ステップ S402において、そのマ トリックスデータのうちの 1つを選択する。同一性分析部 160は、例えば、先頭のマトリ ックスデータ(0、 1、 0、 1、中略、 R33)を選択する。続!/、てステップ S403【こお!/、て、 同一性分析部 160は、そのマトリックスデータに対応するデータを、 2組目のマトリック ス空間データ力 選択する。ここでマトリックスデータに対応するデータとは、各属性 においてペアとなる境界点力 選択した 1組目のマトリックスデータと共通であるマトリ ックスデータのことである。ここで選択されるマトリックスデータは、この場合は 2組目に おける先頭のマトリックスデータとなり、(0、 1、 0、 1、中略、 R45)である。同一性分析 部 160は、選択したマトリックスデータにおける先頭ルールのルールデータを参照し て、先頭ルールのアクションを調べる。ここでは、同一性分析部 160は、先頭ルール R33と R45のルールデータを参照して、アクションを調べる。先頭ルール R33と R45 のルールデータにおいて、アクションはいずれも Dであるから、同一性分析部 160は 、先頭のマトリックスに関しては、ノ ッファに記録しない。アクションが異なっている場 合には、同一性分析部 160は、先頭ルールのアクションが異なっている 2つのマトリツ タスデータを特定できる情報をバッファに記録する。同一性分析部 160は、この処理 を、基準とするマトリックス空間データにおける全てのマトリックスデータを順に選択し て行う。 [0156] その後、ステップ S404において、同一性分析部 160は、バッファにマトリックスの情 報が記録されているかどうかを判定する。図 30に例示するルール集合に基づいて作 成した 2組のマトリックス空間データを用いて、ステップ S401〜S403の処理を繰り返 した場合、ノ ッファには何も記録されない。そのため、処理はステップ S406に移行し 、同一性分析部 160は、 2組のルール集合 R300, R400が同じ意味を持つルール 集合であることを、出力装置 930から出力する。
[0157] 同一性分析部 160による処理結果すなわち同一性分析結果の出力態様は、特に 限定されるものではなぐ例えば表示出力や音声出力であってもよいし、あるいはファ ィルとして出力してもよい。また、ルール分析システム 100と通信ネットワークを介して 接続される別システムに出力装置 930を設け、その別システムにおいて同一性分析 結果を出力してもよい。この場合、ルール分析システム 100と通信ネットワークを介し て接続される別システムの利用者に同一性分析結果を知らせることができる。出力装 置 930がディスプレイ装置であり、同一性分析結果を表示出力する場合の分析結果 の表示例を図 31に示す。
[0158] なお、ステップ S405, S406では、出力すべき同一性分析結果を一時記憶装置( 不図示)に記録しておいて、その後、一時記憶装置に記録された同一性分析結果を 出力装置 930が出力してもよい。
[0159] 上記の具体例は、 2組のルール集合が同じ意味を持つルール集合であることを出 力する場合に関するものである。そこで以下に、 2組のルール集合が異なる意味を持 つルール集合であることを出力する場合の例を示す。図 32に示すルール集合 R800 (R81〜R83)及びルール集合 R900 (R91〜R95)がルール記憶部 110に記憶され 、この 2組のルール集合 R800, R900に基づいてマトリックス化部 131が作成したマ トリックス空間データがマトリックス空間記憶部 120に記憶されているものとする。なお 、図 32では、図 30と同様にルールを記述し、ルールの模式図も図示している。ここで はルール集合 R800に対応するマトリックス空間データを基準としているとする。
[0160] 同一性分析部 160は、ルール集合 R800に対応するマトリックス空間データ力も順 次マトリックスデータを選択し、ステップ S401〜S403の処理を繰り返す。同一性分 析部 160は、ステップ S402においてルール集合 R800のマトリックス空間データから (2, 3, 1, 2, 中略, R82, R83)というマトリックスデータを選択した場合、次のステツ プ S403では、ルール集合 R900のマトリックス空間データ力も(2, 3, 1, 2, 中略, R 95)というマトリックスデータを選択する。同一性分析部 160は、選択したマトリックス データにおける先頭ルールのルールデータを参照して、先頭ルールのアクションを 調べる。ここでは、先頭ルール R82と R95のルールデータを参照して、アクションを調 ベる。先頭ルール R92のルールデータではアクションは Aであり、 R95のルールデー タではアクションは Dである。従ってアクションが異なるので、同一性分析部 160は、こ のマトリックスの情報やアクションの情報を、例えば「1組目(2, 3, 1, 2,中略、 A)、 2 組目(2, 3, 1, 2, 中略、 D)」等の形式でバッファに記録する。
[0161] 各マトリックスデータについて、ステップ S401〜S403に示したループ処理が完了 して、処理がステップ S404に移行した場合、ノ ッファは上記のように記録されている 。この場合、同一性分析部 160は、ステップ S405において、例えば、ルール集合 R8 00, R900に基づくフィルタリング動作が異なること、バッファに記録していたマトリック スの情報、どちらのルール集合でアクションが Aとなり、どちらのルール集合でァクショ ンが Dとなっているか等を、出力装置 930から出力する。この出力結果の例を、図 33 に示す。
[0162] 次に、第 4の実施形態のフィルタリングルール分析システムの利点について説明す る。第 4の実施形態のフィルタリングルール分析システムによれば、複数のパケットフ ィルタリング機器がどのような複雑なフィルタリングルールで設定されて 、ても、それら のフィルタリング機器が全く同一のフィルタリング処理を行うかどうかを知ることができ る。その理由は、それぞれのルール集合で実現するフィルタリング処理をルールとは 無関係にマトリックス単位で比較して同じアクションかどうかをチェックするからである
[0163] 第 5の実施形態:
次に本発明の第 5の実施形態のフィルタリングルール分析システムを説明する。第 5の実施形態のフィルタリングルール分析システムを示す図 34においては、第 1の実 施形態におけるものと同様の構成要素については、図 1におけるものと同一の参照 符号を付し、重複する説明を省略する。第 5の実施形態のフィルタリングルール分析 システムは、図 1に示すものと同様のものであるが、ルール分析システム 100におい て重なり分析部の代わりにルール削除部 170が設けられて 、る点で、図 1に示したも のと異なっている。ルール削除部 170は、マトリックス空間データを参照して、ルール 記憶部 110に記憶されて 、るルール集合内のルールのうち、削除可能と判定される ルールを削除する。ルール削除部 170は、ルールの条件部分に記述されている属 性の範囲が冗長に記述されて 、ると判定した場合に、そのルールの記述を修正する 。ルール削除部 170は、例えば、プログラムに従って動作する CPUによって実現され る。なお、プログラムは、例えば、ルール分析システム 100が備えるプログラム記憶装 置 (不図示)に記憶される。
[0164] 次に、本実施形態のフィルタリングルール分析システムの動作について説明する。
なお、第 1の実施形態と同様の動作については、その詳細な説明を省略する。マトリ ックス空間記憶部 120にマトリックス空間データが記憶されるまでの入力装置 920、 マトリックス化部 130の動作は、第 1の実施形態の場合と同様である。
[0165] マトリックス化部 130がマトリックス空間データをマトリックス空間記憶部 120に記憶 させた後、ルール削除部 170は、上記のルール削除処理及びルールの修正処理を 実行する。図 35〜図 37は、ルール削除部 170によるルール削除やルール修正の処 理手順の例を示している。
[0166] ルール削除部 170は、まず、ステップ S501において、ルール記憶部 110に記憶さ れているルール集合をバッファ(不図示)にコピーし、次に、バッファにコピーしたルー ル集合中のルールのうち、デフォルトルール以外の全てのルールに対してステップ S 502〜S506のループ処理を進める。このループ処理においてルール削除部 170は 、ステップ S502において、バッファにコピーされたルール集合中のデフォルトルール 以外のルールのうち、未選択のルールが残っているか否かを判定する。そのようなル ールが残っているならば、ルール肖 IJ除部 170は、ステップ S503において、デフォルト ルール以外のルールであって未選択のルールを降順に、すなわちルールの優先順 位が低いものから順に、 1つ選択する。ステップ S 503で選択されるルールを Iとする。 次に、ルール削除部 170は、ステップ S504において、ルール Iを構成するマトリックス に対応するマトリックスデータのうち、先頭ルールがルール Iとなっていないマトリックス データを列挙する。ステップ S 504で列挙されるマトリックスデータの集合を Jとする。 続いて、ルール肖 IJ除部 170は、ステップ S505において、マトリックスデータの集合 Jと 、ルール Iを構成するマトリックスに対応するマトリックスデータの集合とがー致して!/ヽ るか否かを判定する。この 2つの集合が一致しているならば、処理はステップ S506に 移行する。ここで、マトリックスデータの集合 Jと、ルール Iを構成するマトリックスに対応 するマトリックスデータの集合とがー致して 、ると 、うことは、ルール Iを構成するマトリ ッタスのマトリックスデータ全てにおいて先頭ルールがルール I以外であり、第 1の実 施の形態で説明した「Concealed」と同じぐルール Iが別の優先度の高い 1つ以上 のルールによって完全に隠されていることを意味している。ステップ S506に移行した 場合、ルール削除部 170は、他のルールによって完全に隠されることになる Conceal edな状態のルール Iを削除する。一方、ステップ S505において 2つのルール集合が 一致していなければ、ルール Iを削除することなぐ処理はステップ S502に移行する 。このステップ S502〜S506のループ処理によって、バッファにコピーされたルール 集合内から Concealedなルールが削除される。
[0167] ステップ S502において、処理が「いいえ」側に分岐した場合、すなわちデフォルト ルール以外のルールのうち、未選択のルールが残っていないと判定した場合、ルー ル削除部 170は、ステップ S507において、ノ ッファに記憶されているルール集合内 の各ルールに付けられたチェックをリセットする。ここでチェックとは、選択済みを表わ す情報のことである。ステップ S502以降のルール処理を行い、デフォルトルール以 外の全ルールを選択すると、その各ルールにチェックが付けられた状態になるので、 ステップ S507では、そのチェックがリセット、すなわち全て取り去されることになる。
[0168] 次に、ルール肖 IJ除部 170は、バッファから削除されなかったルールのうち、デフオル トルール以外の全てのルールに対して、ステップ S508から始まり再びステップ S508 に戻るループ処理(図 36参照)を進める。ルール削除部 170は、まず、ステップ S50 8において、バッファに記憶されているルール集合中のデフォルトルール以外のルー ルのうち、未選択のルールが残っているか否かを判定する。そのようなルールが残つ ているならば、ルール削除部 170は、ステップ S509において、デフォルトルール以 外のルールであって未選択のルールを降順に、すなわちルールの優先順位が低!ヽ ものから順に、 1つ選択する。ステップ S509で選択されるルールを Kとする。次に、ル ール削除部 170は、ステップ S510において、以下の 3つの条件を満足するルールを 列挙する。第 1の条件は、「ルール力 ルール Kを構成するマトリックスに完全に含ま れるルールであって、ルール Kより優先順位の高!、ルールであること」 t 、う条件であ る。ここで、「ルール力 ルール Kを構成するマトリックスに完全に含まれるルールであ る」とは、換言すると、「ルールに対応する各マトリックスデータ全体が示す属性が示 す範囲が、ルール Kに対応する各マトリックスデータ全体が示す属性の範囲に収まつ ている」という状態を意味する。第 2の条件は、「ルールに対応する各マトリックスデー タ全てにぉ 、て、そのルール自身が先頭ルールになって!/、ること」 t\、う条件である。 第 3の条件は、 「ルールのアクションがルール Kのアクションと同一であること」という条 件である。ルール削除部 170は、第 1から第 3の条件を全て満足するルールを列挙 する。ステップ S510で列挙されたルールの集合を Lとする。
続いて、ルール削除部 170は、ルール集合 Lに含まれる全てのルールに対してス テツプ S511〜S514のループ処理を進める。このループ処理においてルール削除 部 170は、まず、ステップ S511において、ルール集合 Lに含まれるルールのうち未 選択のルールが残っているか否かを判定する。未選択のルールが残っていれば、ル ール削除部 170は、ステップ S512〖こおいて、ルール集合 L中の未選択のルールを 1 つ選択する。ステップ S 512で選択されるルールを Mとする。続いて、ルール削除部 1 70は、優先順位がルール Kとルール Mとの間のルールであって、条件部分に記述さ れた属性の示す範囲がルール Mの条件部分に記述された属性が示す範囲と一部で も重複するルールを検索する。そして、そのようなルールがあった場合、ルール削除 咅 170ίま、ステップ S513【こお!/ヽて、ノレ一ノレ Μを構成する各マトリックス【こお!/ヽて、ノレ ール Μよりも優先順位が 1っ低 、ルールのアクションと、ルール Μのアクションとがー 致しているカゝ否かを判定する。換言すると、ルール Μを構成する各マトリックスの全マ トリックスデータのルールリストにぉ 、て、ルール Μの次のルールのアクションとルー ル Μのアクションとがー致しているか否かが判定される。なお、ルール Μよりも優先順 位が 1つ低いルールは、マトリックスによって異なる場合がある。ステップ S513で、一 致していると判定した場合には、ルール削除部 170は、ステップ S514において、ノ ッファに記録されて 、るルールの中からルール Mを削除する。ステップ S 513にお!/ヽ て一致して!/ヽな ヽと判定された場合には、処理はそのままステップ S511に移行する ここで、 2次元空間に模式的に表わしたルールを用いて、ステップ S513の判定例 を説明する。図 38は、ステップ S513における判定例を示す模式的説明図である。図 38では、アクションが Aのルールを白色領域で示し、アクションが Dのルールについ ては、多数の点を描画した模様を付した領域で示している。図 38に示す例 1では、 優先順位がルール Kとルール Mとの間のルールであって、条件部分に記述された属 性の示す範囲がルール Mの条件部分に記述された属性が示す範囲と一部でも重複 するルールとして、 Rl, R2が存在することを示している。このとき、ルール Mを構成 する各マトリックスにおいて、ルール Mよりも優先順位が 1つ低いルールは、 R1である 。ルール Mのアクションは Aであり、ルール R1のアクションは Dである。従って、ルー ル削除部 170は、アクションが一致しないと判定してステップ S513では「いいえ」の 側に分岐し、ルール Mを削除せずにステップ S511に移行する。図 38に示す例 2で は、優先順位がルール Kとルール Mとの間のルールであって、条件部分に記述され た属性の示す範囲がルール Mの条件部分に記述された属性が示す範囲と一部でも 重複するルールとして、 Rl, R2が存在することを示している。このとき、ルール Mを 構成する各マトリックスにおいて、ルール Mよりも優先順位が 1つ低いルールは、 R1 である。ルール Mのアクションは Aであり、ルール R1のアクションも Aである。従って、 ルール削除部 170は、アクションが一致すると判定してステップ S513では「はい」の 側に分岐し、ステップ S514において、ルール Mを削除する。図 38に示す例 3では、 優先順位がルール Kとルール Mとの間のルールであって、条件部分に記述された属 性の示す範囲がルール Mの条件部分に記述された属性が示す範囲と一部でも重複 するルールとして、 R1〜R3が存在することを示している。このとき、ルール Mを構成 する各マトリックスにおいて、ルール Mよりも優先順位が 1つ低いルールは、 R1また は R2である。ルール Mのアクションは Aであり、ルール Rl, R2のアクションも Aである 。従って、ルール削除部 170は、アクションが一致すると判定してステップステップ S5 13では「はい」の側に分岐し、ステップ S 514において、ルール Mを削除する。図 38 に示す例 4では、優先順位がルール Kとルール Mとの間のルールであって、条件部 分に記述された属性の示す範囲がルール Mの条件部分に記述された属性が示す範 囲と一部でも重複するルールとして、 R1〜R3が存在することを示している。このとき、 ルール Mを構成する各マトリックスにおいて、ルール Mよりも優先順位が 1つ低いル ールは、 R1または R2である。ルール Mのアクションは Aであり、 R2のアクションは D である。従って、ルール Aを構成する一部のマトリックスでは、アクションが一致しない 。よって、ルール削除部 170は、ルール Mを削除せずにステップ S511に移行する。
[0171] ルール集合 Lの全ルールについてステップ S511以降のループ処理が終了したな らば、ステップ S511で「いいえ」の側に分岐し、処理はステップ S 508に移行する。こ のステップ S508から始まりステップ S508に戻るループ処理によって、自身より優先 順位の低いルールの存在により不要と判断されるルールが、バッファ内から削除され ることになる。
[0172] ステップ S508において、バッファに記憶されているルール集合中のデフォルトルー ル以外のルールのうち、未選択のルールが残っていないと判定した場合、処理はス テツプ S515に移行する。ステップ S515では、ルール肖 IJ除部 170は、バッファに記憶 されて!/、るルール集合内の各ルールに付けられたチェックをリセットする。この処理は 、ステップ S507と同様のものである。
[0173] 次に、ルール肖 IJ除部 170は、バッファから削除されなかったルールのうち、デフオル トルール以外の全てのルールに対して、ステップ S516から始まり再びステップ S516 に戻るループ処理(図 37参照)を進める。このループ処理においてルール削除部 17 0は、まず、ステップ S516において、バッファに記憶されているルール集合中のデフ オルトルール以外のルールのうち、未選択のルールが残って 、るか否かを判定する。 そのようなルールが残っているならば、ルール削除部 170は、ステップ S517におい て、デフォルトルール以外のルールであって未選択のルールを降順に、すなわちル ールの優先順位が低いものから順に、 1つ選択する。ステップ S517で選択されるル ールを Nとする。次に、ルール肖 IJ除部 170は、ステップ S518において、ルール Nを 構成するマトリックスのマトリックスデータにおいて、ルール N以外のルールが先頭ル ールとなって 、るものがあるか否かを判定する。そのようなマトリックスデータがなけれ ば、処理はステップ S516に移行する。ステップ S518においてそのようなマトリックス データが存在すれば、ルール削除部 170は、そのマトリックスデータを列挙して、ステ ップ S519に移行する。
[0174] ステップ S519では、ルール Nを構成するマトリックスのマトリックスデータであって、 ルール N以外のルールが先頭ルールとなっているマトリックスデータが表わす領域を ある次元 O)について縮小できるか否力、すなわちルール Nをある次元 Oについて縮 小できる力否かを調べる。縮小できない場合には、処理はステップ S516に移行し、 縮小できる場合には、処理はステップ S520に移行する。
[0175] ここで、縮小について説明する。次元 Oは、ルールの条件部分に記述されるいずれ かの属性を意味する。ルール Nを次元 Oについて縮小するとは、次元 Oが示す属性 の範囲を狭めることにより、ルール Nの条件部分の属性を変更することである。以下 に、具体例を示す。図 39は、縮小の具体例を示す説明図である。図 39では、ルール Rl, R2を模式的に示している。例 390Aに示すように、 R1方力 2よりも優先順位が 高いものとする。ルール R1の条件部分が示す第 1属性の範囲は「7〜10」であり、第 2属性の範囲は「2〜7」である。同様に、ルール R2の条件部分が示す第 1属性の範 囲は「1〜8」であり、第 2属性の範囲は「3〜6」である。この場合、グラフ 390Bにおい て斜線部で示した属性の範囲に当てはまるパケットに対しては、ルール R1が先に適 用され、ルール R2に関しては適用されることがない。そこで、ルール R2の第 1属性の 範囲を「1〜8」から、「1〜7」に狭めるように修正することで、例 390Cに示すように、 ルール R2中の適用されることがない不要な領域をなくすことができる。このような属性 の範囲の修正が、「縮小」に該当する。本例では、第 1属性が次元 Oに該当し、第 1属 性についてルール R2を縮小していることになる。このような縮小を行っても、ルール R 1, R2全体としての意味は変わらない。すなわちパケットフィルタリングの動作は変わ らない。
[0176] 図 39では、 2次元空間で表わした模式図を用いて説明したが、属性の数が 3っ以 上であっても、同様に縮小処理を行える。図 40も縮小の具体例を示す説明図である 。図 40では、第 1属性力も第 3属性までの各属性の範囲によって表わされるマトリック スを模式的に示している。図 40において(a)〖こ示す 2つのルール R72, R71があった とする。ここでは、 R71の優先順位の方力 ¾72よりも高いものとする。そして、(b)に示 すように、各ルール R71, R72の条件部分の属性が示す範囲は一部において重なつ ているものとする。(c)では、ルール R72の条件部分の属性が示す範囲のうち、ルー ル R1の条件部分の属性が示す範囲と重なる範囲に、多数の点を描画した模様を付 して R72を示している。この模様を付した領域は、ルール R71と重複し、ルール R71 の方が優先順位が高いため、この領域に当てはまるパケットに対しては、ルール R72 が適用されることはない。よって、ルール R71の条件部分が示す属性のうち、第 1属 性すなわち図 40に示す X軸に対応する属性の範囲を狭めることにより、 R72を縮小 することができる。
[0177] なお、図 39、図 40では、それぞれ、 2次元空間、 3次元空間における模式図を用い て説明した。属性の種類が、ソースアドレス、ソースポート、デスティネーションァドレ ス、デスティネーションポート、プロトコルの 5種類である場合、ルールの条件部分の 属性が示す範囲は、 5次元空間の範囲となる。以下、説明を簡単にするため、 2次元 空間や 3次元空間における範囲で説明する。
[0178] 次に、縮小可能な場合と縮小不可能な場合とを比較して説明する。あるルールの 条件部分が示す属性の範囲のうち、他のルールの属性の範囲との重複領域を除い た領域が、矩形状態になっていれば、そのルールは縮小可能である。ここで、矩形状 態とは、各属性の範囲が、開始点及び終了点のペアによって表わされる状態を意味 する。すなわち、矩形状態とは、各属性の範囲が、(Al, A2, Bl, B2, CI, C2, D 1, D2, El, E2, · · ·)のように表わすことができる状態を意味する。図 41Aは縮小可 能な状態を示し、図 41Bは縮小不可能な場合を示している。図 41Aに示すルール R 52は、その領域の一部(7、 9、 3、 10、後略)を R51により隠されており、この部分を 除いた領域(1、 7、 3、 10、後略)は矩形状態になっている。すなわち、 (1, 7, 3, 10 )という開始点及び終了点のペアによって表わすことができる。この場合、領域(1、 7 、 3、 10、後略)における第 2属性の範囲は、元々のルールで指定されていた第 2属 性の範囲 3〜: L0と一致して 、る。なお第 3属性以降にぉ 、ても一致して 、るものとす る。この場合、第 1属性についてルール R52を縮小することが可能であり、具体的に は R52の領域を(1、 7、 3、 10、後略)に縮小することが可能である。ここでは、第 1属 性の範囲を 1〜9から 1〜7に修正している。図 41Bに示すルール R62は、その領域 の一部(7、 9、 3、 8、後略)が R61により隠されている力 この部分を除いた R62の領 域は矩形状態になっていない。すなわち、(Al, A2, Bl, B2,…;)という開始点及び 終了点のペアによって表わすことができない。図 41Bに示す例では、ルール R62を 縮小することができない。
[0179] 図 40で示したルール R71, R72の重複領域力 図 42に示す領域 250であるとする 。図 42において、白色領域で示したマトリックスのマトリックスデータにおける先頭ル ールは R72である。一方、模様を付した領域によって示したマトリックスのマトリックス データにおける先頭ルールは R71である。ルール 72の条件部分が示す属性の範囲 のうち、他のルールの属性の範囲との重複領域 250を除いた領域は、矩形状態にな つていない。すなわち、 (Al, A2, Bl, B2, ···)という開始点及び終了点のペアによ つて表わすことができない。よって、図 42に示す例では、ルール R72を縮小すること ができない。一方、図 40において(c)で示した例では、ルール 72の条件部分が示す 属性の範囲のうち、他のルールの属性の範囲との重複領域は矩形状態となっている 。すなわち、(Al, A2, Bl, B2, ···)という形式で属性の範囲を表わすことができる。 よって、図 40の(c)に示す例では、 R72を縮小可能である。
[0180] あるルールの条件部分が示す属性の範囲のうち、他のルールの属性の範囲との重 複領域を除いた領域を残り領域と呼ぶことにする。この残り領域が矩形状態である場 合、各軸の無限大方向及び無限小方向から残り領域を見た場合、全て矩形状態とな る。図 43は、残り領域が矩形状態である場合に、各軸の無限大方向及び無限小方 向から残り領域を見た状況を示す説明図である。図 43に示す例では、残り領域が(1 , 3, 1, 4, 1, 4)と表わされる。図 43に示すように、いずれの方向から見ても、矩形状 態になっている。例えば、 Y軸及び Z軸 (あるいは、 X軸及び Y軸、 X軸及び Z軸)に対 応する 2つの属性の範囲が開始点及び終了点のペアで表わせる状態になっている。 図 44は、残り領域が矩形状態でない場合に、各軸の無限大方向及び無限小方向か ら残り領域を見た状況を示す説明図である。図 44に示す例では、残り領域が開始点 及び終了点のペアの並びによつて表わすことができず、例えば(1, 3, 1, 4, 1, 4)、 (3, 4, 1, 2, 1, 4)及び(3, 4, 2, 4, 1, 2)という領域の組み合わせでなければ表 わすことができない。この場合、図 44に示すように、 X軸、 Y軸、 Z軸それぞれの無限 大方向から残り領域を見た場合、矩形状態とはならない。
[0181] ステップ S519において、ルール Nをある次元 Oについて縮小できるか否かを調べ る場合、例えば、以下のように調べればよい。ルール削除部 170は、ルール Nを構成 するマトリックスのマトリックスデータであって、ルール N以外のルールが先頭ルールと なっているマトリックスデータが表わす領域すなわち重複領域において、次元 Oに対 応する属性以外の全属性が元々ルール Nで指定されて 、た属性の範囲と一致して いる範囲が存在するかを調べればよい。そのような領域が存在するならば、その領域 をなくすように次元 Oに対応する属性の範囲を狭め、ルールを縮小することができる。
[0182] なお、フィルタリングルールは、全ての属性 (次元)につ 、て開始点と終了点の組み 合わせで条件を記述するため、縮小後のルールの条件部分にぉ 、ても各属性は開 始点と終了点の組み合わせで記述されなければならない。このとき、縮小後のルー ルの条件部分に含まれる属性の中から任意の 2つの属性を取り出した場合、その 2 つの属性は矩形状態になっている。言い換えれば、その 2つの属性に対応する軸、 例えば前述の X軸、 Y軸等が互いに直交するという仮定のもとでは、取り出された 2つ の属性は矩形をなすことになる。
[0183] ステップ S520において、ルール肖 ij除部 170は、ルール Nにおける属性の範囲を狭 めるようにそのルール Nを修正すなわち縮小する。そして、ルール削除部 170は、元 々バッファに記憶されていたルール Nと、修正したルールとを入れ替える。図 45は、 ルール削除部 170が、ルールを縮小できるかどうかを判定し、ルールを縮小する場 合を 2次元空間で模式的に示した説明図である。図 45では、ルールの重複部分を斜 線で示している。ルール削除部 170は、ルール Nにおける他のルールとの重複部分 (図 45に示す斜線部分)を判定する。この重複分には、 X軸に対応する属性以外の 全属性、ここでは Y軸に対応する属性力 元々ルール Nで指定されていた属性の範 囲と一致している部分が含まれる。すなわち、図 45に示す右側 2列分のマトリックスに おいて、 Y軸に対応する範囲は、元々ルール Nで指定されていた範囲と一致する。 従って、ルール削除部 170は、縮小可能と判定し、図 45に示す右側 2列分のマトリツ タスをなくすように、 X軸に対応する属性の範囲を狭めて、ルール Nを修正する。 [0184] 図 46は、ルール削除部 170力 ルールを縮小できるかどうかを判定し、ルールを縮 小する場合を 3次元空間で模式的に示した説明図である。図 46では、多数の点を描 画した模様を付すことによってルールの重複部分を表わしている。まず、図 46の上 段に模式的に示したルールについて説明する。ルール削除部 170は、このルールに おける他のルールとの重複部分を判定する。この重複部分では、 X軸に対応する属 性以外の全属性、ここでは Y軸、 Z軸に対応する各属性が、元々ルール Nで指定され ていた属性の範囲と一致している。従って、ルール削除部 170は、縮小可能と判定 する。そして、図 46の上段において、模様を付して示したマトリックスをなくすように、 X軸に対応する属性の範囲を狭めて、ルール Nを修正する。次に、図 46の下段に模 式的に示したルールについて説明する。この場合、重複部分において、 X軸に対応 する属性以外の全属性、ここでは Y軸、 Z軸に対応する各属性力 元々ルール Nで 指定されていた属性の範囲と一致しているような領域は存在しない。従って、ルール 削除部 170は、縮小不可能と判定し、ステップ S520の縮小処理を行わずにステップ S516に移行する。
[0185] 図 37に示すステップ S516から始まってステップ S516に戻るループ処理を繰り返 すことにより、 Overlappedなルールのうち、縮小可能なルールがバッファにおいて入 れ替えられる。
[0186] ステップ S516において、バッファに記憶されているルール集合中のデフォルトルー ル以外のルールのうち、未選択のルールが残っていないと判定されて、「いいえ」の 側に処理が分岐した場合、ルール削除部 170は、ステップ S521において、バッファ の内容、具体的にはルールの集合や、削除したルールの情報、縮小したルールの情 報を出力装置 930から出力する。
[0187] なお、図 35から図 37に示すルール削除部 170の処理手順は単なる一例であり、同 様の結果を得るために他の処理手順を採用することも可能である。ここでは、ルール 集合が 1組存在する場合を例に動作の説明を行ったが、第 3の実施形態のように、 2 組以上の任意のルール集合が存在していてもよい。そして、複数の各ルール集合に ついて、ルールの削除や縮小を行ってもよい。
[0188] 次に、具体例を用いて、第 5の実施形態のフィルタリングルール分析システムの動 作を説明する。ここでは、ルール集合として、図 47に示す R1〜R9からなるルール集 合が入力されてルール記憶部 110に記憶され、このルール集合に基づいてマトリック ス空間データが作成され、マトリックス空間記憶部 120に記憶されているものとする。 マトリックス空間データをマトリックス空間記憶部 120に記憶するまでの処理は、第 1 の実施形態と同様である。図 48は、図 47に示すルール集合を 2次元空間に模式的 に示した説明図である。
[0189] ルール削除部 170の処理について図 47及び図 48に例示したルール集合を用い て説明する。まず、ルール削除部 170は、ステップ S501において、ルール記憶部 11 0に記憶されているルール集合をバッファにコピーし、デフォルトルールである R9 (図 47参照)以外の 8個の各ルールの中に未選択のものがあれば、ステップ S502の後 ステップ S503に移行し、未選択のルールを降順に 1つずつ選択する。すなわち、ス テツプ S502から始まるループ処理では、ステップ S503に処理が移行する度に、 R8 , R7, · ··, R1の順にルールが 1つずつ選択される。ステップ S503で選択されたルー ルを Iとする。ルール削除部 170が最初にステップ S 503に移行してルールを選択し た場合、ルール 8を選択するので、ルール R8がルール Iとなる。ステップ S504では、 ルール削除部 170は、ルール I (R8)を構成するマトリックスに対応するマトリックスデ ータのうち、先頭ルールがルール R8となっていないマトリックスデータを列挙する。ル ール 8を構成する各マトリックスに対応するマトリックスデータでは、いずれも先頭ルー ルが R6または R7となっている。従って、ルール肖 IJ除部 170は、ステップ S505におい て「はい」の側に分岐し、ステップ S506において、ルール 1 (ここでは R8)を削除する
[0190] 再びステップ S503に移行してルール削除部 170がルール R7を選択した場合、ル ール R7を構成するマトリックスに対応するマトリックスデータには、先頭ルール力 ¾7 になるものが存在する。従って、ルール削除部 170は、ステップ S505では「いいえ」 の側に分岐し、ステップ S502〖こ移行する。再びステップ S503に移行してルール R6 を選択した場合も同様である。
[0191] 再びステップ S503に移行してステップ削除部 170がルール R5を選択した場合、ル ール R5を構成するマトリックスに対応する全てのマトリックスデータで、先頭ルールが R5以外のルール、具体的には R3になっている。従って、ルール削除部 170は、 R8 選択時と同様にステップ S505で「はい」の側に分岐し、ステップ S506において R5を 削除する。以降、ステップ S503で、 R4〜R1を選択した場合には、ルール削除部 17 0は、 R7選択時と同様にステップ S505で「いいえ」の側に分岐し、ステップ S502に 移行する。 R1を選択後、再びステップ S502に移行したときには、ルールが残ってい ないので、処理はステップ S507に移行する。そして、ルール削除部 170は、削除さ れなかったルールのチェックをリセットする。ここまでの処理において、ルール R8, R5 が削除され、ルール R1〜R4, R6, R7, R9が残っている。このルール集合(R1〜R 4, R6, R7, R9)を模式的に表わすと、図 49に示すようになる。ステップ S507の後、 処理はステップ S508に移行する。
[0192] ルール削除部 170は、ステップ S508において、このルール集合に含まれる 7個の ルールのうち、デフォルトルール R9以外の 6個のルールの中に未選択のものが残つ ていれば、ステップ S509に移行する。ステップ S509に移行するごとに、ルール削除 咅 170ίま、その 6偶のノレ一ノレを降 jl匿【こ、ここで ίま R7, R6, R4, R3, · ··の jl匿【こ、 1つ ずつ選択する。ステップ S 509で選択されたルールを Kとする。最初にステップ S509 に移行してルールを選択した場合、ルール削除部 170はルール R7を選択するので 、ルール R7がルール Kとなる。次に、ステップ S510において、ルール削除部 170は 、「ルール力 ルール Kを構成するマトリックスに完全に含まれるルールである」という 第 1の条件、「ルールに対応する各マトリックスデータ全てにおいて、そのルール自身 が先頭ルールになっていること」という第 2の条件、及び「ルールのアクションがルー ル Kのアクションと同一であること」という第 3の条件を満足するルールを列挙する。ル ール R7がルール Kであるとき、第 1の条件を満たすルールは、 Rl, R2である。このう ち、 R2は第 2の条件を満足しない。 R1は、第 2の条件及び第 3の条件も満足する。従 つて、この場合、ルール削除部 170は、 R1を選択する。よって、ステップ S510で列 挙されたルールの集合 Lには、ルール R1のみが含まれることになる。
[0193] 次に、ルール削除部 170がステップ S511の判定を行った場合、ルール集合 L内に ルール R1が選択されずに残っているので、「はい」の側に分岐して、ステップ S512 において、ルール集合 Lからルール R1を 1つ選択する。ステップ S 512で選択された ルールを Mとする。次のステップ S513において、ルール肖 IJ除部 170は、優先順位が ルール K (ここでは R7)と、ルール M (ここでは R1)との間のルールであって、条件部 分に記述された属性の示す範囲がルール Mの条件部分に記述された属性が示す範 囲と一部でも重複するルールを検索する。この場合、 R2が検索される。そして、ルー ル肖 IJ除部 170は、ルール Mを構成する各マトリックスにおいて、ルール Mよりも優先 順位が 1つ低いルールのアクションと、ルール Mのアクションとがー致しているか否か を判定する。ここでは、ルール M (R1)を構成する各マトリックスのうち、一部のマトリツ タスでは、ルール Mより優先度が 1つ低いルールは R2であり、残りのマトリックスでは 、ルール Mより優先度が 1つい低いルールは R7である(図 49参照)。そして、ルール R2, R7のアクションは、いずれもルール M (R1)のアクションと一致する。従って、ル ール削除部 170は、ステップ S513で「はい」の側に分岐し、ステップ S514において ルール R1を削除し、ステップ S511〖こ移行する。ルール集合 L内には未選択のルー ルが残っていないので、処理は、ステップ S511では「いいえ」の側に分岐し、ステツ プ S 508に移行する。
[0194] 次に、ノレ一ノレ削除部 170は、ステップ S509において R6を選択し、 R6をルール Kと する。次に、ステップ S510において、ルール肖 IJ除部 170は、「ルール力 ルール Kを 構成するマトリックスに完全に含まれるルールである」という第 1の条件、「ルールに対 応する各マトリックスデータ全てにぉ 、て、そのルール自身が先頭ルールになって!/ヽ ること」という第 2の条件、及び「ルールのアクションがルール Kのアクションと同一であ ること」という第 3の条件を満足するルールを列挙する。ルール R6がルール Kである 場合、第 1の条件を満たすルールは、 R3, R4である。このうち、 R4は第 2の条件を満 足しない。 R3は、第 2の条件及び第 3の条件も満足する。よって、ステップ S510で列 挙されたルールの集合 Lには、ルール R3のみが含まれる。
[0195] 次に、ルール削除部 170がステップ S511の判定を行った場合、ルール集合 L内に ルール R3が選択されずに残っているので、処理は「はい」の側に分岐し、ステップ S5 12にお!/、てルール集合 Lからルール R3が 1つ選択される。次のステップ S 513にお いて、ルール肖 IJ除部 170は、優先順位がルール K (ここでは R6)とルール M (ここで は R3)との間のルールであって、条件部分に記述された属性の示す範囲がルール Mの条件部分に記述された属性が示す範囲と一部でも重複するルールを検索する。 この場合、 R4が検索される。そして、ルール削除部 170は、ルール Mを構成する各 マトリックスにおいて、ルール Mよりも優先順位が 1つ低いルールのアクションと、ルー ル Mのアクションとがー致しているか否かを判定する。ここでは、ルール M (R3)を構 成する各マトリックスのうち、一部のマトリックスでは、ルール Mより優先度が 1つ低い ルールは R4となる(図 49参照)。そして、ルール R4のアクションはルール R3のァクシ ヨンと一致しない。従って、ルール削除部 170は、ステップ S513における「いいえ」の 側に分岐して、ルール M (R3)を削除せずに、ステップ S511に移行する。ルール集 合 L内には未選択のルールが残って!/、な!/、ので、処理はステップ S511の「 、え」 の側に分岐し、ステップ S 508に移行する。
[0196] 続いてルール削除部 170がステップ S 509においてルール R4を選択して、 R4をル ール Kとした場合、「ルール力 ルール Kを構成するマトリックスに完全に含まれるル ールである」という第 1の条件、「ルールに対応する各マトリックスデータ全てにおいて 、そのルール自身が先頭ルールになっていること」という第 2の条件、及び「ルールの アクションがルール Kのアクションと同一であること」という第 3の条件を満足するルー ルは存在しない。よって、ステップ S510の処理によって得られるルールの集合 Lは空 集合である。従って、ステップ S511では、ルール削除部 170は、ルール集合 Lにル ールは残って 、な 、と判定して「 、 、え」の側に分岐し、再びステップ S508に移行す る。以降、ステップ S509で R3, R2が選択された場合の動作は、 R4が選択された場 合の動作と同様である。なお、 R1は削除済みであるので、ステップ S509で R1が選 択されることはない。
[0197] ルール R2をルール Kとして選択した後、再度ステップ S 508に移行した場合、未選 択のルールは残って 、な 、ので、ルール削除部 170の処理はステップ S515に移行 する。ノレ一ノレ肖 IJ除咅 170 ίま、ステップ S515にお!/ヽて、ステップ S 508力ら始まるノレ一 プ処理で削除されなかったルールのチェックをリセットする。ステップ S515終了時に おいて、バッファに記憶されているルール集合 (R2〜R4, R6, R7, R9)を模式的に 表わすと、図 50に示すようになる。ステップ S515の後、処理はステップ S516に移行 する。 [0198] ルール削除部 170は、ステップ S516において、このルール集合に含まれるルール のうち、デフォルトルール R9以外の 5個のルールの中に未選択のものが残っていれ ば、「はい」の側に分岐して、ステップ S517に移行する。ステップ S517に移行するご とに、ルール肖 IJ除部 170は、その 5個のルールを降順に、ここでは、 R7, R6, R4, R 3, R2の順に 1つずつ選択する。ステップ S 517で選択されたルールを Nとする。最初 にステップ S517に移行してルールが選択された場合、ルール R7が選択されるので 、ルール R7がルール Nとなる。次に、ルール削除部 170は、ステップ S518において 、ルール N (ここでは R7)を構成するマトリックスのマトリックスデータにおいて、ルール N以外のルールが先頭ルールとなって!/、るものがあるか否かを判定する。ルール R7 のマトリックスデータの中には、 Rl, R2, R6を先頭ルールとするものがあるので、処 理は、ステップ S518では「はい」の側に分岐し、ステップ S519に移行する。
[0199] ステップ S519では、ルール削除部 170は、ルール Nをある次元(属性)について縮 小できるカゝ否かを判定する。例えば、ルール削除部 170は、ルール Nを構成するマト リックスのマトリックスデータであって、ルール N以外のルールが先頭ルールとなって いるマトリックスデータが表わす領域すなわち重複領域において、ある次元 Oに対応 する属性以外の全属性が元々ルール Nで指定されて 、た属性の範囲と一致して!/ヽ る範囲が存在するかを調べればよい。そのような範囲があれば、次元 Oについてル ール Nを縮小できる。ルール N (R7)を構成するマトリックスのマトリックスデータであつ て、ルール N以外のルール R6が先頭ルールとなって!/、るマトリックスデータが表わす 領域(7, 8, 3, 11,後略)に着目する。この領域における第 2属性の範囲は、 3〜11 であり、元々 R7において第 2属性の範囲として指定されていた 3〜: L 1と一致する。同 様に、第 3属性以降に関しても一致しているものとする。すると、第 1属性以外の全て の属性に関して領域(7, 8, 3, 11,後略)の範囲と、元々 R7において指定されてい た範囲は全て一致する。よって、ステップ S519において、ルール削除部 170は、 R7 を第 1属性について縮小可能であると判定し、「はい」の側に分岐してステップ S520 に移行する。ステップ S520では、ルール削除部 170は、上記の領域(7, 8, 3, 11, 後略)をなくすように、ルール R7の第 1属性の範囲を元々の" 1〜8 "から" 1〜7 "に修 正する。この結果、ルール R7は、第 1属性について縮小されることになる。その後、 処理はステップ S516に移行する。
[0200] 次に、ステップ S 517で R6を選択した場合、ステップ S518の判定では「はい」側に 分岐することになる。し力し、ルール R6を構成するマトリックスのマトリックスデータで あって、ルール R6以外のルールが先頭ルールとなって!/、るマトリックスデータが表わ す領域、すなわち重複領域において、ある属性以外の全属性が元々ルール R6で指 定されていた属性の範囲と一致しているような範囲は存在しない。したがって、処理 は、ステップ S519において「いいえ」側に分岐し、 R6を縮小せずにステップ S516に 移行することになる。次に、ステップ S517で R4が選択された場合の動作は、 R6が選 択された時と同様である。
[0201] 次に、ステップ S517においてルール削除部 170が R3を選択した場合、ルール N ( ここでは R3)を構成するマトリックスのマトリックスデータにおいて、ルール N以外のル ールが先頭ルールとなっているものはない。したがって、ステップ S518では処理は「 いいえ」側に分岐し、 R3を縮小せずにステップ S516に移行する。次に、ステップ S5 17で R2が選択された場合の動作は、 R3が選択された時と同様である。以上の処理 が終了した時点におけるルール集合 (R2, R3, R4, R6, R7, R9)を模式的に示す と、図 51に示すようになる。
[0202] R2が選択された後、処理がステップ S516に移行した場合、ルールは残っていない ので、ルール削除部 170は、ステップ S516の「いいえ」側に分岐し、ステップ S521 において、バッファに記憶されているルールの集合や、削除したルールの情報、縮小 したルールの情報を出力装置 930から出力し、処理を終了する。出力装置 930がデ イスプレイ装置であり、バッファに記憶されているルールの集合や、削除したルール の情報、縮小したルールの情報を表示出力する場合の表示例を図 52に示す。
[0203] ルール削除部 170による処理結果、すなわちバッファに残っているルール集合、削 除したルールの情報、縮小したルールの情報の出力態様は、特に限定されるもので はなぐ表示出力や音声出力であってもよいし、あるいはファイルとして出力してもよ い。また、ルール分析システム 100と通信ネットワークを介して接続される別システム に出力装置 930を設け、その別システムにおいてルール削除部 170による処理結果 を出力してもよい。この場合、ルール分析システム 100と通信ネットワークを介して接 続される別システムの利用者に処理結果を知らせることができる。
[0204] 上記の例では、図 51と図 52に示すようにルール R2は削除されない。本来は、ルー ル R1が削除されたのと同じ理由で R2も削除されるべきである。図 35〜図 37に示す ルール削除部 170の処理手順では R2は削除できない。しかし、ステップ S508から 始まりステップ S508に戻るループ処理を、削除可能なルールが存在しなくなるまで 繰り返したり、ステップ S516で「いいえ」側に分岐した場合に、再度ステップ S502か ら処理をやり直し、ルールの削除や修正が行われなくなるまで、ステップ S502以降 の処理を繰り返してもよい。このように、ルール削除部 170による処理を繰り返せば、 図 51に示す R2のように残ったルールを容易に削除できる。
[0205] 次に、第 5の実施形態のフィルタリングルール分析システムの利点について説明す る。第 5の実施形態のフィルタリングルール分析システムによれば、どれほど複雑なフ ィルタリングルールであっても、不要なルールの削除や冗長なルールの修正ができる 。その理由は、ルールをマトリックス空間データに変換して、任意のルールを構成す るマトリックスを網羅的に調査することで、別のルールによって完全に隠されたルール を削除したり、別のルールによって一部隠されたルールを修正するからである。
[0206] 第 5の実施形態における上述した縮小方法では、ルールの数は変わらな 、。例え ば、図 50は縮小前のルールを示し、図 51は縮小後のルールを示している力 いず れもルールの数は 6個であり、 R7の縮小前後でルールの数は変わっていない。ルー ル肖除部 170は、 1つのルールを構成するマトリックスごとにそのルールを分割して、 複数のルールを生成し、他のルールに隠されることになるルールを削除することによ つて、縮小と同様の結果を得てもよい。図 53は、この場合の例を示す説明図である。 ルール R3は、一部の領域を、より優先度の高いルール Rl, R2によって隠されている 。 R3と R1との重複領域における各属性の範囲は、元々 R3で指定されていた属性の 範囲と一致しない。よって、既に説明した縮小方法では、 R3と R1との重複領域をなく すように R3を縮小することはできない。同様に、 R3と R2との重複領域をなくすように R3を縮小することはできない。そこで、ルール削除部 170は、ルール R3を構成する マトリックスごとにルール R3を分割してもよい。図 53に示す例では、ルール R3は 9個 のマトリックスから構成される。よって、ルール削除部 170は、ルール R3から 9個のル ールを作成する。この 9個のルールのうち、 1つのルールは R1によって隠され、別の 1つのルールは R2によって隠される。ルール肖除部 170は、分割したルールのうち、 他のルールによって隠されるルールを削除すればよい。すると、ルール R3の領域の うちルール Rl, R2との重複領域をなくすようにルール R3を縮小したことになる。ただ し、ルール R3を分割して 9個のルールを作成し、そこから 2個のルールを削除してい るので、元々 R3であったルールとして 7個のルールが残る。従って、この縮小方法で は、ルールの数は増加する。
[0207] 第 6の実施形態:
次に本発明の第 6の実施形態のフィルタリングルール分析システムを説明する。第 6の実施形態のフィルタリングルール分析システムを示す図 54においては、第 1の実 施形態におけるものと同様の構成要素については、図 1におけるものと同一の参照 符号を付し、重複する説明を省略する。第 6の実施形態のフィルタリングルール分析 システムは、図 1に示すものと同様のものであるが、ルール分析システム 100におい て重なり分析部の代わりに頻度分析部 180とルールイ匕部 190とが設けられている点 で、第 1の実施形態のものと異なっている。ルール分析システム 100には、パケット履 歴 950も入力されるようになっている。パケット履歴 950は、実際にパケットフィルタリ ング処理を実行しているネットワークシステム内でパケットフィルタリング処理の対象と なったパケット、換言すれば、ネットワークシステム内においてパケットフィルタリング 処理を行う機器に実際に到達したパケットについての履歴情報である。ただし、この パケット履歴 950 (パケットの履歴情報)には、実際にパケットフィルタリング処理の対 象となった各パケットの属性の情報が含まれていればよぐ各パケットのペイロード部 分の情報については含まれていなくてもよい。パケット履歴 950には、実際にパケット フィルタリング処理の対象となった一定量分のパケットの情報が含まれて 、ればよ ヽ
[0208] 頻度分析部 180は、パケット履歴 950が入力され、実際にパケットフィルタリング処 理の対象となったパケットの属性を参照する。そして、頻度分析部 180は、生成済み のマトリックスデータに対し、マトリックスデータの属性の範囲に含まれるパケットの数 を示すパケットの頻度の情報を付加する。 [0209] ルール化部 190は、頻度の情報が付加されマトリックスデータに基づいて、実際に パケットフィルタリング処理の対象となったパケットに応じたルールを作成する。そして
、そのルールを用いて、新たなルール集合を作成する。
[0210] 頻度分析部 180及びルールイ匕部 190は、例えば、プログラムに従って動作する CP
Uによって実現される。なお、プログラムは、例えば、ルール分析システム 100が備え るプログラム記憶装置 (不図示)に記憶される。
[0211] 次に、第 6の実施形態のフィルタリングルール分析システムの動作について説明す る。なお、第 1の実施形態と同様の動作については、その詳細な説明を省略する。マ トリックス空間記憶部 120にマトリックス空間データが記憶されるまでの入力装置 920 、マトリックス化部 130の動作は、第 1の実施形態の場合と同様である。
[0212] マトリックス空間記憶部 120にマトリックス空間データが記憶された後、頻度分析部 180は、パケット履歴 950に含まれる各パケットの情報を順に入力される。頻度分析 部 180は、パケット履歴 950に含まれる各パケット、具体的には各パケットの属性を 1 つずつ調べ、マトリックスデータに頻度情報を付加する。図 55は、頻度分析部 180に よる処理の一例を示している。まず、頻度分析部 180は、ステップ S601〖こおいて、マ トリックス空間記憶部 120に記録されているマトリックス空間データに含まれる全ての マトリックスデータに対して、頻度情報の初期値を付加する。ここでは、頻度分析部 1 80は、全てのマトリックスデータの最後尾に、頻度情報の初期値として" 0"を追加す ればよい。
[0213] 次に、頻度分析部 180は、パケット履歴 950から 1つずつパケットを選択してステツ プ S602〜S605の一連の処理を行うことを繰り返し、パケット履歴 950に含まれる全 てのパケットに対してこの一連の処理を行う。
[0214] 頻度分析部 180は、ステップ S602において、パケット履歴 950に未選択のパケット が残っている力否かを判定する。パケットが残っている場合、頻度分析部 180は、ス テツプ S603において、パケット履歴 950の中力も未選択のパケットを選択する。ステ ップ S603で選択したパケットを PKとする。頻度分析部 180は、ステップ S604におい て、パケット PKを含むマトリックス、すなわち属性の範囲内にパケット PKの属性を含 むマトリックスデータをマトリックス空間データの中力 選択する。ステップ S604で選 択したマトリックスデータを MTRとする。そして、頻度分析部 180は、ステップ S605 において、選択したマトリックスデータ MTRの頻度情報に 1を加算し、ステップ S602 に移行する。一方、ステップ S602において、パケットが残っていないと判定した場合 、頻度分析部 180は処理を終了する。
[0215] 以上の処理によって、各マトリックスにどれだけのパケットが含まれるの力、換言する と、各マトリックスデータの属性の範囲内に属性が含まれるパケットがどれだけ存在す るのかが、頻度情報としてマトリックスデータの最後尾に付加されることになる。
[0216] 頻度分析部 180によってマトリックスデータに頻度情報が付加されると、次にルール 化部 190が新たなルール集合を作成する。ルール化部 190による新たなルール集 合の作成処理方法として、ここでは 2種類の異なる方法を示す。これらの方法は、図 5 6及び図 57にそれぞれ示されている。ただし、ルール化部 190による処理は、この 2 種類の方法に限定されるものではなぐルール化部 190は、他の方法によってルー ル集合を作成してもよい。
[0217] 図 56は、ルールイ匕部 190による新たなルール集合作成処理の一例を示している。
この方法では、まず、ノレ一ノレィ匕咅 190は、ステップ S701において、ノレ一ノレ記'隐咅 11 0に記憶されているルール集合を、ノ ッファ(不図示)にコピーする。ステップ S701で バッファにコピーされたルール集合を Tとする。続いて、ルール化部 190は、ステップ S702において、マトリックス空間記憶部 120に記憶されているマトリックスデータを、 頻度情報の値の大きい順にソートし、次に、ステップ S703において、変数 Uの初期 値を 1に設定する。変数 Uは、頻度情報の値の大きい順にソートされたマトリックスデ ータのうち、所定順位までのマトリックスデータを抽出するために用いる変数である。 ルール化部 190は、変数 Uの値が予め定められた設定値以下である場合、ステップ S704〜S707のループ処理を繰り返す。この予め定められた設定値は、上記の所 定順位を示す値であり、マトリックスデータの総数未満の値として定められる。この設 定値は、ルール分析システム 100の利用者またはルール分析システム 100によって 予め設定される。
[0218] ステップ S704〜S707のノレープ処理において、ノレ一ノレィ匕部 190は、まずステップ S 704において、変数 Uが予め定められた設定値以下であるか否かを判定する。変数 Uが設定値以下であれば、ルール化部 190は、ステップ S705において、ステップ S7 02でソートしたマトリックスデータの中力 U番目のマトリックスデータを選択し、その マトリックスデータをルールの形式に変換する。ステップ S705での変換によって得ら れるルールを Vとする。マトリックスデータは、(領域、ルールリスト、頻度)という形式で 記述されている。ルールは、(領域、アクション)という形式で記述される。従って、ステ ップ S705では、ルール化部 190は、マトリックスデータの領域すなわち各属性の範 囲の部分を抽出し、その領域の後に、ルールリストの先頭ルールのアクションを追加 することによって、ルール Vを作成すればよい。続いて、ルールイ匕部 190は、ステップ S706において、ルール集合 Tの U番目のルールとしてルール Vを挿入し、挿入前に U番目以降であった各ルールの順位を順次 1つずつ後ろにずらす。次に、ルールイ匕 咅 190ίま、ステップ S 707【こお!/、て、変数 U【こ 1を力!]算し、ステップ S704【こ移行する
[0219] ステップ S704において変数 Uが設定を超えている場合、すなわちステップ S704で 「いいえ」の側に分岐した場合、処理は、ステップ S708に移行する。ステップ S708で は、元のルール集合 Τ、すなわちステップ S701でコピーした状態のルール集合丁に 含まれるルールのうち、不要なルールが削除される。ステップ S701でのコピー時から 存在するルールの削除条件は、以下の条件である。すなわち、ステップ S701でのコ ピー時から存在するルール(R— original)は、 R— originalを構成する全マトリックス のマトリックスデータカゝら新たなルールが作成され、その新たに作成された全ルール が R— originaUりも優先順位の高 、ルールとして挿入されて 、ることを条件に、肖 ij 除される。ルールイ匕部 190は、それぞれルールについてステップ S701でのコピー時 力 上記の削除条件を満たして 、るかを判定し、削除条件を満たして 、るルールを 削除する。そして、ルールイ匕部 190は、ステップ 709において。ステップ S708で不要 なルールが削除されたルール集合 Tを出力装置 930から出力する。
[0220] 図 57は、ルール化部 190による新たなルール集合作成処理の他の例を示している 。図 57に示す方法では、マトリックスデータの総数と同数のルールを作成する。図 57 に示す方法では、図 56に示す方法のようなルール集合のコピー (ステップ S701)や ルールの削除 (ステップ S708)等の処理は行わない。図 57に示す方法では、まず、 ステップ S801において、ルール化部 190は、マトリックス空間記憶部 120に記憶され ているマトリックスデータを、頻度情報の値の大きい順にソートする。この処理は、図 5 6のステップ S702と同様である。次に、ノレ一ノレィ匕咅 190は、ステップ S802において 、空集合であるルール集合 Wを準備する。次に、ルール化部 190は、ステップ S803 において、ステップ S801におけるソート結果の順に、すなわち頻度情報の値の大き い順に、各マトリックスデータを変換して新たなルールを作成し、そのルールを作成 順にルール集合 Wに追加する。ステップ S803において、新たなルールを作成する 処理は、図 56のステップ S705においてルール Vを作成する処理と同様である。全て のマトリックスデータに基づ 、てルールを作成し、作成した各ルールをルール集合 W に追加した後、ルール化部 190は、ステップ S804において、ルール集合 Wを出力 装置 902から出力する。
[0221] なお、図 55に示す頻度分析部 180の処理手順は、単なる一例である。同様の結果 を得るために他の処理手順を採用することも可能である。図 56や図 57に示すルール 化部 190の処理手順も、単なる一例である。同様の結果を得るために他の処理手順 を採用することも可能である。ルール化部 190は、図 56や図 57とは異なる処理手順 によって、図 56や図 57に示す処理手順と同様の結果を得てもよい。
[0222] 図 55や図 57に示すノレ一ノレィ匕咅 の処理では、ステップ S705やステップ S803 に示すように、マトリックスデータ単位にルール化を行っている。ルール化を行う前に 、互いに隣接するマトリックスのマトリックスデータであって、頻度情報の値が近い複 数のマトリックスデータを結合して、新たなマトリックスデータを作成し、そのマトリック スデータからルールを作成してもよ 、。結合後のマトリックスからルールを作成する処 理は、ステップ S 705においてルール Vを作成する処理と同様である。マトリックスデ ータを結合する場合、例えば、以下の 3つの条件を満たしていることを条件に結合す ればよい。第 1の条件は、マトリックス同士が隣接していて、結合によって得られるマト リックスの各属性を境界点のペアによって表わせることである。第 2の条件は、結合し ようとする各マトリックスデータの頻度情報の値が近いことである。すなわち、結合しよ うとする各マトリックスデータの頻度情報の最大値と最小値との差が所定の閾値以下 であることである。第 3の条件は、結合しょうとする各マトリックスデータの先頭ルール のアクションが共通であることである。
[0223] 例えば、図 58に示すような 2次元のマトリックスの場合、マトリックス 1, 2は隣接して いて、マトリックス 1, 2のマトリックスデータを結合した場合、各属性は境界点のペア によって表わすことができる。この例では、各属性は、 0及び 2というペア、及び 1及び 2というペアで表わすことができる。従って、マトリックス 1, 2に関しては第 1の条件を 満たす。マトリックス 1, 2の各マトリックスデータの頻度情報の値の差が所定の閾値以 下であれば、第 2の条件も満たす。マトリックス 1, 2のマトリックスデータの先頭ルール のアクションが共通であれば、第 3の条件も満たす。この 3つの条件が全て満たされて いれば、ルールイ匕部 190は、マトリックス 1, 2のマトリックスデータを結合し、その結合 により得られたマトリックスデータ力もルールを作成してもよい。なお、図 58に示すマト リックス 3は、マトリックス 1, 2や、マトリックス 4と隣接していないので、第 3の条件を満 たさない。従って、マトリックス 1, 2や、マトリックス 4と結合することはできない。同様に 、図 58に示すマトリックス 4も、マトリックス 1, 2や、マトリックス 3と結合することはできな い。
[0224] 本実施形態では、最終的に作成されるルールの数を制限してその範囲でマトリック スデータを結合してルールを作成してもよ 、。
[0225] 次に、具体例を用いて、第 6の実施形態のフィルタリングルール分析システムの動 作を説明する。ここでは、ルール集合 910 (図 54参照)として、図 59に例示するルー ル Rl, R2からなるルール集合が入力され、ルール記憶部 110に記憶されているもの とする。そのルール集合に基づいてマトリックス空間データが作成され、マトリックス空 間記憶部 120に記憶されているものとする。マトリックス空間データをマトリックス空間 記憶部 120に記憶するまでの処理は、第 1の実施形態の場合と同様である。なお、 図 59では、各ルールの模式図も示している。本例では、頻度分析部 180は、図 60に 例示するパケット履歴を入力するものとする。パケット履歴には、実際にパケットフィル タリング処理の対象となったパケットの属性の情報が含まれる。従って、この属性の情 報は、各属性の値そのものを示し、例えば第 1属性等の各属性の範囲を示すわけで はない。図 60に示す例では、第 1属性、第 2属性の値そのものを示している。本例で は、このようなパケットの情報が H1〜H1000までの 1000個あるものとする。 [0226] 図 61は、図 59に示すルール集合に基づいて作成されたマトリックスデータ 2次元 平面で表わした模式図である。作成されたマトリックスデータは、図 61に示す Ml〜 M9の 9個のマトリックスに対応する。頻度分析部 180は、作成された 9個のマトリック スデータと、入力するパケット履歴(図 60参照)とを用いて、図 55に示す処理を実行 する。その結果得られるマトリックスデータの例を図 62に示す。図 55に示す処理にお いて、頻度分析部 180は、図 62において下線で示すように、各マトリックスデータの 最後尾に頻度情報を付加する。
[0227] ルールイ匕部 190は、図 56のステップ S 701において、ルール集合をバッファにコピ 一する。そして、ルール化部 190は、図 62の下線部に示す頻度情報に基づいてマト リックスデータをソートし、図 56のステップ S702において、各マトリックスデータに順 位を付ける。図 62では、この順位も示している。本例では、ステップ S704の判定で 用いる設定値が 2であるものとする。
[0228] 図 63は、バッファにコピーされたルール集合 Tの変化を示している。ステップ S701 でコピーされたときには、ルール集合丁は、図 63に示す状態 R701となっている。
[0229] 最初に処理がステップ S704に移行したときの変数 Uの値は 1である。従って、変数 Uは、設定値 2以下であるので、ステップ S704において処理は「はい」の側に分岐し 、ルール化部 190は、ステップ S705において、順位が 1 (変数 Uの値)であるマトリツ タスデータ力もルール Vを生成する。順位が 1位であるマトリックスデータ、すなわち頻 度情報の値が最も大きいマトリックスデータは、この場合、図 62に示す M4である。こ のマトリックスデータ M4に基づいてルール Vを作成すると、ルール V= (0、 3、 1、 4、 中略、 D)となる。このルール Vは、マトリックスデータ M4力も領域すなわち各属性の 範囲)の情報(0, 3, 1, 4, · ··)を抽出し、先頭ルール R2のアクション D (図 59参照) を追カ卩したすることによって作成したものである。次に、ルール化部 190は、ルール V を 1番目のルールとしてルール集合 Tに挿入し、ステップ S706において、挿入前に 1 番目以降であった各ルールを 1つずつ後ろにずらす。このときのルール集合 Tの状 態は、図 63に示す状態 R702となる。続いて、ルール化部 190は、ステップ S707に おいて、変数 Uに 1を加算し Uの値を 2とする。
[0230] 次にステップ S 704に移行したとき、変数 Uの値は 2であり、設定値 2以下であるの で、処理はステップ S704の「はい」側に分岐し、ルール化部 190は、ステップ S705 にお 、て順位が 2 (変数 Uの値)であるマトリックスデータ力もルール Vを生成する。順 位が 2位であるマトリックスデータ、すなわち頻度情報の値が 2番目に大きいマトリック スデータは、図 62に示す M7である。このマトリックスデータ M7に基づいてルール V を作成すると、ルール V= (0, 3, 4, 7, 中略, D)となる。ルール化部 190は、ステツ プ S706において、このルール Vを 2番目のルールとしてルール集合 Tに挿入し、揷 入前に 2番目以降であった各ルールを 1つずつ後ろにずらす。このときのルール集合 Tの状態は、図 63に示す状態 R703となる。ノレ一ノレィ匕咅 190は、ステップ S707にお いて、変数 Uに 1を加算し Uの値を 3とする。
[0231] 次にステップ S 704に移行したとき、変数 Uの値は 3であり、設定値 2を超えているの で、処理はステップ S 708に移行する。ステップ S708において、ノレ一ノレィ匕咅 190は、 ステップ S701でのコピー時から存在するルール Rl, R2 (図 59参照)を削除するか どうかを判定し、削除すると判定されたルールをルール集合 Tから削除する。 R1を構 成する全マトリックスのマトリックスデータ力 新たなルールが作成され、その新たに作 成された全ルールが R1よりも優先順位の高 、ルールとして挿入されて 、るわけでな いので、 R1は削除されない。同様に、 R2も削除されない。よって、本例では、ステツ プ S703ではルールは削除されな!、。
[0232] ここで、マトリックスデータ M5における頻度情報の値が大きぐマトリックスデータ M 5に基づ!/、て作成したデータをルール R1より優先順位の高 、ルールとして挿入して いたと仮定する。すると、ルール R1を構成する全マトリックスのマトリックスデータ M5 から新たなルールを作成し、そのルールを R1より優先順位の高 、ルールとして挿入 していることになる。ここでは、全マトリックスは 1つのマトリックスである。この場合、ル 一ル化部 190は、ステップ S708において R1を削除すると判定し、 R1を削除する。こ の場合、マトリックスデータ M5に基づいて作成され挿入されたルールは、元から存在 する R1と同一のルールである。この説明では、マトリックスデータ M5の領域と、ルー ル R1の領域とが同一である場合を示した力 ルールを構成するマトリックスが複数あ る場合でも、同様に、上記の「ステップ S701でのコピー時から存在するルール R— or iginalを構成する全マトリックスのマトリックスデータ力 新たなルールが作成され、そ の新たに作成された全ルールが R—originaUりも優先順位の高いルールとして揷 入されて!、る」と!、う条件を満たして 、れば、ルール R_originalを削除する。
[0233] ルール化部 190は、ステップ S708の後、ルール集合 Tを出力装置 930から出力す る。本例では、ルール化部 190は、図 63に示す状態 R703のルール集合 Tを出力す る。
[0234] 上述した説明では、図 56に示す処理手順にステップ S708の処理を含めているが 、ステップ S708の処理の代わりに、第 5の実施形態におけるルール削除部 170が C oncealedなルールを削除する処理と同様の処理を行ってもよい。
[0235] ルール化部 190は、図 56に示す処理ではなく図 57に示す処理を実行する場合、 ステップ S801において、図 62に示す各マトリックスデータをソートする。このソート結 果における各マトリックスデータの順番は、図 62に示す通りである。ルールイ匕部 190 は、ステップ S803において、 1番目のマトリックスデータ M4から 1番目のルール R1 = (0、 3、 1、 4、中略、 D)を作成し、ルール集合 Wに追加し、同様に、 2番目のマトリ ックスデータ M7から 2番目のルール R2= (0, 3, 4, 7, 中略, D)を作成し、ルール 集合 Wに追加する。以下同様に、ルールイ匕部 190は、 9番目のマトリックスデータから 9番目のルール R9を作成し、ルール集合 Wに追加する。この結果得られるルール集 合 Wを図 64に示す。ステップ S804において、ノレ一ノレィ匕咅 190は、図 64に示すノレ一 ル集合 Wを出力装置 930から出力する。
[0236] ルールイ匕部 190による処理結果、すなわち作成されたルール集合の出力態様は、 特に限定されるものではなぐ表示出力や音声出力であってもよいし、あるいはフアイ ルとして出力してもよい。また、ルール分析システム 100と通信ネットワークを介して接 続される別システムに出力装置 930を設け、その別システムにおいてルール集合を 出力してもよい。この場合、ルール分析システム 100と通信ネットワークを介して接続 される別システムの利用者にルール集合を知らせることができる。
[0237] 次に、第 6の実施形態のフィルタリングルール分析システムの利点について説明す る。第 6の実施形態にフィルタリングルール分析システムよれば、どれほど複雑なフィ ルタリングルールであっても、フィルタリング処理を高速化することができる。その理由 は、ルールをマトリックス空間データに変換して、パケット履歴からそれらのマトリックス の頻度を計算し、頻度順にマトリックスを並び変えることで、パケットフィルタリング処 理を行う数多くネットワーク機器に過去において到着しているパケットと同様の属性の パケットを優先順位の高 、ルールでマッチさせることができるように、ルール集合を修 正したり、各ルールを作成し直したりして、新しいルール集合を作成している力 であ る。
[0238] 第 7の実施形態:
次に本発明の第 7の実施形態のフィルタリングルール分析システムを説明する。こ のフィルタリングルール分析システムは、図 1に示した第 1の実施形態のフィルタリン グルール分析システムと同様の構成である力 マトリックス化部 130の動作が異なつ ている。以下、第 7の実施形態のフィルタリングルール分析システムについて、図 1を 参照して説明する。なお、マトリックス化部 130以外の各構成要素については第 1の 実施形態の場合と同様であるので、説明を省略する。
[0239] 本実施形態では、マトリックス化部 130は、第 1の実施形態の場合と同様にステップ S101〜ステップ S108の処理を実行する力 作成したマトリックス空間データの中か ら、ルールリストとしてデフォルトルール、より具体的にはデフォルトルールのルール 名のみが追加されているマトリックスデータを削除する処理も実行する。このようなマト リックスデータの削除処理を行う点で、第 7の実施形態は第 1の実施形態と異なって いる。
[0240] 図 65は、第 7の実施の形態におけるマトリックス化部 130の動作の一例を示してい る。マトリックスィ匕咅 は、ステップ S101〜S108に示すように、ノレ一ノレ記'隐咅 に記憶されているルール集合を用いて、マトリックス空間データを作成する。マトリック ス空間データを作成するステップ S101〜S108の処理は、第 1の実施形態で説明し たステップ S101〜S108 (図 2参照)と同様の処理である。そして、ステップ S106に お 、てルールが残って 、な 、と判定した場合、処理はステップ S 106の「 、 、え」側 に分岐し、マトリックス化部 130は、ステップ S 109において、ルールが残っていないと 判定するまでに作成したマトリックスデータの中から、ルールリストとしてデフオルトル ールのみが追加されているマトリックスデータを削除する。例えば、マトリックスデータ M001に追加されているルールリストが {Rl、 R7、 R8}であり、マトリックスデータ MO 02に追カロされて!、るルールリストが {R8 }であり、マトリックスデータ M003に追加され ているルールリストが {R6、 R8}であるとし、デフォルトルールのルール名が R8である とすると、ルールリストとしてデフォルトルールのみが追加されて 、るマトリックスデータ は M002であるので、マトリックス化部 130は、ルールが残っていないと判定するまで に作成したマトリックスデータの中から、マトリックスデータ M002を削除する。ルール リストとしてデフォルトルールのみが追加されているマトリックスデータが他にも存在す れば、マトリックス化部 130はそのマットリックスデータも削除する。
[0241] マトリックス化部 130は、図 65に示すステップ S101〜S109までの処理の結果得ら れたマトリックス空間データをマトリックス空間記憶部 120に記憶させる。マトリックス化 部 130がマトリックス空間データをマトリックス空間記憶部 120に記憶させた後、重な り分析部 140は、マトリックス空間記憶部 120に記憶されたマトリックス空間データを 参照し、ルール間の重なりを見つけだし、その結果を出力装置 930を用いて出力す る。この重なり分析部 140の処理は、第 1の実施形態の場合と同様であるので説明を 省略する。
[0242] 次に具体例を用いて、第 7の実施形態のフィルタリングルール分析システムの動作 を説明する。第 1の実施形態で例示した図 5に示すルール集合がルール記憶部 110 に記憶されているものとして説明する。第 1の実施形態で例示したように、図 5に示す ルール集合に対してマトリックス化部 130がステップ S101〜S108の処理を実行する ことにより、図 9に示すルールデータ及び図 10に示すマトリックスデータが生成される 。本実施形態におけるマトリックス化部 130は、ステップ S 106でルールが残っていな いと判定した場合、ステップ S109において、ルールリストとしてデフォルトルールのみ が追加されているマトリックスデータを削除する。
[0243] 図 66は、削除されるマトリックスデータの例を示している。図 66に例示するマトリック スデータの中で、ルールリストとしてデフォルトルール(ここでは R8)のみが追加され ているマ卜リックスデータは、 M001, M013, M014, M130等である。マ卜リックスィ匕 部 130は、各マトリックスデータのルールリストを参照し、デフォルトルールのみが追 カロされているこれらのマトリックスデータを削除する。なお、図 66に示したマトリックス データは、マトリックスデータ全体の一部であり、削除されるマトリックスデータを全て 図 66に示して!/、るわけではな!/、。
[0244] 次に、第 7の実施形態のフィルタリングルール分析システムの利点について説明す る。第 7の実施形態のフィルタリングルール分析システムによれば、複雑なフィルタリ ングルールが多数あるルール集合であっても、各ルール間の関係を把握することが できる。その理由は、生成したマトリックスデータ力もルール間の関係を把握すること に無関係なデフォルトルールにのみ関係するマトリックスデータを削除するので、多 数のルールがルール集合に含まれていてもマトリックスデータの数を少なくすることが できる力 である。マトリックスデータの数を減少させることができるので、コンピュータ のメモリ消費を低減することができる。
[0245] 第 7の実施形態では、第 1の実施形態におけるマトリックス空間データ作成処理に ステップ S 109の処理を追加した場合を示した。上述の第 5の実施形態及び第 6の実 施形態において、マトリックス化部 130の動作は第 1の実施形態と同様であると説明 したが、第 5の実施形態及び第 6の実施形態においても、マトリックス化部 130は、マ トリックス空間データ作成処理において図 65に示すようにステップ S 109の処理を実 行してもよい。第 2の実施形態においても、マトリックス化部 130は、マトリックス空間 データ作成処理に図 65のステップ S 109の処理を追カ卩してもよい。ただしこの場合、 通過テスト部 150 (図 14参照)は、ステップ S301 (図 15参照)の処理の前に、テスト パケットを含むマトリックスのマトリックスデータが全て削除されずに残っている力、一 部だけ削除されて 、て一部は残って!/、る力、あるいは全て削除されて 、るかを判定 する。テストパケットを含むマトリックスのマトリックスデータが全て削除されずに残って いると判定した場合、通過テスト部 150は、そのままステップ S301 (図 15参照)以降 の処理を実行すればよい。
[0246] テストパケットを含むマトリックスのマトリックスデータのうち一部だけ削除されていて 一部は残っていると判定した場合、通過テスト部 150は、削除されずに残っているマ トリックスデータを対象にしてステップ S301 (図 15参照)以降の処理を実行すればよ い。そして、通過テスト部 150は、テストパケットのうち、マトリックスデータが残ってい な 、領域にっ 、ては、デフォルトルールのアクションに応じてパケットが通るか通らな いかを表示すればよい。例えば、削除されずに残っているマトリックスデータを対象に してステップ S301以降の処理が実行されて、「(6, 8, 6, 9,後略)の領域ならば通り ます。」、「(8, 9, 6, 9,後略)の領域ならば通りません。」という表示が行われたとす る。この場合、通過テスト部 150は、テストパケットのうち、マトリックスデータが残って いない領域については、例えば「その他の領域」等と表示して、デフォルトルールの アクションが" A"の場合「その他の領域については通ります。」と表示し、デフオルトル ールのアクションが" D"の場合、「その他の領域につ!、ては通りません」と表示すれ ばよい。
[0247] テストパケットを含むマトリックスのマトリックスデータが全て削除されていると判定し た場合、通過テスト部 150は、デフォルトルールのアクションが" A"ならば「テストパケ ットは通ります」等と表示し、デフォルトルールのアクションが" D"ならば「テストパケット は通りません」等と表示すればょ 、。
[0248] 第 3の実施形態においても、マトリックス化部 130は、マトリックス空間データ作成処 理に図 65に示すステップ S109の処理を追加してもよい。ただし、第 3の実施形態で は、図 23に例示するように、ルールリストとして複数のルール集合のルールが追加さ れるので、第 3の実施形態でのマトリックス空間データ作成処理にステップ S 109の処 理を追加する場合、マトリックス化部 130は、マトリックス空間データ作成に用いた複 数のルール集合それぞれのデフォルトルールのみがルールリストに追加されている マトリックスデータを削除する。例えば、マトリックス空間データ作成に用いた複数の ルール集合が図 22に示すルール集合 RIOO, R200であったとする。ルール集合 R1 00のデフォルトルールは R13であり、ルール集合 R200のデフォルトルールは R22 である。従って、本例の場合、マトリックス化部 130は、ルールリストとして R13及び R2 2のみが追加されたマトリックスデータを削除すればよい。
[0249] 第 3の実施形態で、ステップ S 109の処理を追加した場合、通過テスト部 151 (図 19 参照)は、ステップ S301 (図 20参照)の処理の前に、テストパケットを含むマトリックス のマトリックスデータが全て削除されずに残っている力、一部だけ削除されていて一 部は残っている力、あるいは全て削除されているかを判定する。テストパケットを含む マトリックスのマトリックスデータが全て削除されずに残っていると判定した場合、通過 テスト部 151は、そのままステップ S301 (図 20参照)以降の処理を実行すればよい。 [0250] 一方、テストパケットを含むマトリックスのマトリックスデータのうち一部だけ削除され ていて一部は残っていると判定した場合、通過テスト部 151は、削除されずに残って いるマトリックスデータを対象にしてステップ S301 (図 20参照)以降の処理を実行し て、そのマトリックスデータの領域に関して、図 24に例示するような表示を行えばよい 。そして、テストパケットのうち、マトリックスデータが残っていない領域については、通 過テスト部 151は、ルール集合の順番に各ルール集合のデフォルトルールのァクショ ンを参照していく。デフォルトルールのアクションが" A"である場合には、次のデフォ ルトルールのアクションを参照する。デフォルトルールのアクションが" D"となった場 合には、通過テスト部 151は、その時点でデフォルトルールのアクションの参照を停 止して、「テストパケット内の他の領域については通りません。」等の表示を行えばよ い。最後のルール集合のデフォルトルールを参照した場合、通過テスト部 151は、そ のデフォルトルールのアクションが" A"ならば「テストパケット内の他の領域について は通ります。」等と表示し、そのデフォルトルールのアクションが" D"ならば「テストパケ ット内の他の領域にっ 、ては通りません。」等と表示すればょ 、。
[0251] テストパケットを含むマトリックスのマトリックスデータが全て削除されていると判定し た場合、通過テスト部 151は、ルール集合の順番に各ルール集合のデフォルトルー ルのアクションを参照していく。デフォルトルールのアクションが" A"である場合には、 次のデフォルトルールのアクションを参照する。デフォルトルールのアクションが" D" となった場合には、通過テスト部 151は、その時点でデフォルトルールのアクションの 参照を停止して、「テストパケットは通りません。」等と表示すればよい。最後のルール 集合のデフォルトルールを参照した場合、通過テスト部 151は、そのデフォルトルー ルのアクションが" A"ならば「テストパケットは通ります。」等と表示し、そのデフォルト ルールのアクションが" D"ならば「テストパケットは通りません。」等と表示すればよい。
[0252] 第 4の実施形態においても、マトリックス化部 131は、マトリックス空間データ作成処 理に図 65のステップ S109の処理を追加してもよい。第 4の実施形態では、 1つのル ール集合に対応するマトリックス空間データを作成する処理、例えば、図 27に示すス テツプ S 112, S 113の処理【こお!ヽて、ステップ S106〜S 108のノレープ処理を繰り返 す。この 1つのルール集合に対応するマトリックス空間データを作成する処理の最後 に、マトリックス化部 131は、図 65に示すステップ S109と同様の処理を実行すればよ い。
[0253] 第 4の実施形態においてステップ S109の処理を追カ卩した場合、ステップ S403に ぉ 、て、選択した 1組目のマトリックスデータに対応するマトリックスデータを 2組目の マトリックス空間データ力も選択できない場合がある。これは、ステップ S 109の処理を 追加したことにより、 2組目のマトリックス空間データ力もマトリックスデータの一部が削 除されているためである。この場合、同一性判定部 160は、 2組目のマトリックス空間 データに対応するルール集合のデフォルトルールのアクションを参照し、選択した 1 組目のマトリックスデータの先頭ルールのアクションと同一かどうかを調べればよい。 この 2つのアクションが同一かどうかを判定した後の処理はステップ S403と同様であ る。基準とするマトリックス空間データにおけるマトリックスデータの一部がステップ S1 09の処理によって削除される場合もある。したがって、ステップ S401においてルー ルが残っていないと判定したならば、同一性分析部 160は、 2組目のマトリックス空間 データのマトリックスデータのうち未だ選択されていないものを基準として、ステップ S 401〜S403の処理を繰り返す。ただし、 2組目のマトリックス空間データのマトリック スデータのうち未だ選択されていないものに対応する 1組目のマトリックス空間データ のマトリックスデータは、ステップ S109の処理により削除されていることになるので、ス テツプ S403では、 1組目のマトリックス空間データに対応するルール集合のデフオル トルールのアクションを参照し、選択した 2組目のマトリックスデータの先頭ルールの アクションと同一かどうかを調べればよい。
[0254] 第 8の実施形態:
次に本発明の第 8の実施形態のフィルタリングルール分析システムを説明する。第 8の実施形態のフィルタリングルール分析システムを示す図 67においては、第 1の実 施形態におけるものと同様の構成要素については、図 1におけるものと同一の参照 符号を付し、重複する説明を省略する。第 8の実施形態のフィルタリングルール分析 システムは、図 1に示すものと同様のものであるが、ルール分析システム 100におい て重なり分析部の代わりにルール統合部を備える点で、第 1の実施形態のものと異な つている。 [0255] ルール統合部 200は、マトリックス空間データを参照して、ルール記憶部 110に記 憶されて 、るルール集合内のルールのうち、統合可能と判定されるルールを統合す る。ルール統合部 200は、例えば、プログラムに従って動作する CPUによって実現さ れる。なお、プログラムは、例えば、ルール分析システム 100が備えるプログラム記憶 装置 (不図示)に記憶される。
[0256] 次に、第 8の実施形態のフィルタリングルール分析システムの動作について説明す る。なお、第 1の実施形態と同様の動作については、その詳細な説明を省略する。マ トリックス空間記憶部 120にマトリックス空間データが記憶されるまでの入力装置 920 、マトリックス化部 130の動作は、第 1の実施形態の場合と同様である。
[0257] このフィルタリングルール分析システムでは、マトリックス化部 130がマトリックス空間 データをマトリックス空間記憶部 120に記憶させた後、ルール統合部 200は、ルール を統合する処理を実行する。図 68〜図 70は、ルール統合部 200によるルール統合 の処理手順の例を示して 、る。
[0258] 図 68〖こ示すよう〖こ、ルール統合部 200は、まず、ステップ S910において、統合で きる可能性のあるルールの組み合わせ、すなわち統合候補を求め、次に、ステップ S 920において。ステップ S910で統合候補としたルールの組み合わせに対して、統合 可能であるか否かを確認する。そして、ルール統合部 200は、ステップ S930におい て、統合可能であるルールの組み合わせを統合し、ルール集合を修正する。
[0259] 図 69は、ステップ S910の統合候補を求める処理の処理手順の例を示している。統 合できる可能性のあるルールの組み合わせ、すなわち統合候補を求めるときに、ル ール統合部 200は、ステップ S911において、まずマトリックス空間記憶部 120に記憶 されて!/、るルールデータを参照して、所定の条件を満たすルール (ルールデータ)の 組み合わせを全て抽出する。ただし、ここで抽出するルールの組み合わせは、いず れも 2つのルールの組み合わせである。この所定の条件とは、デフォルトルールのル ールデータを含んで!/、な!/、こと、及び 2つのルールデータのアクションが共通である ことである。すなわち、ルール統合部 200は、ステップ S911で、デフォルトルール以 外のルールであって、アクションが共通である 2つのルールの組み合わせを全て抽出 する。 [0260] 続いて、ルール統合部 200は、ステップ S912において、ステップ S911で抽出した 組み合わせのうち、未だステップ S 913で選択されて 、な 、組み合わせが残って 、る か否かを判定する。未選択の組み合わせが残っていると判定された場合、処理はス テツプ S913に移行し、未選択の組み合わせが残っていないと判定された場合には、 統合候補となる組み合わせを求める処理は終了する。
[0261] ステップ S913〖こおいてルール統合部 200は、未選択の組み合わせのうちの一つ の組み合わせを選択する。すなわち、ルール統合部 200は、未選択の組み合わせの うちの一つの組み合わせを構成する 2つのルール(ルールデータ)を選択する。ステ ップ S 913で選択されるこの 2つのルールをそれぞれ Ra, Rbとする。ルール Ra, Rb は、いずれもデフォルトルールではなぐまた、ルール Ra, Rbのアクションは共通であ る。
[0262] 次に、ルール統合部 200は、ステップ S914において、ルール Raを構成するマトリツ タスの数をカウントする。ルールデータには、マトリックスのリストが最後尾に記録され ている。従って、任意のルールを構成するマトリックス数をカウントするには、そのルー ルデータに記録されているマトリックスのリスト内のマトリックス名の数をカウントすれば よい。ルール Raを構成するマトリックスの数、すなわちステップ S914でカウントされる マトリックスの数を Maとする。ルール統合部 200は、ステップ S915において、ステツ プ S914と同様に、ルール Rbを構成するマトリックスの数をカウントする。ルール Rbを 構成するマトリックスの数、すなわちステップ S915でカウントされるマトリックスの数を Mbとする。
[0263] 次に、ルール統合部 200は、ステップ S916において、ルール Raとルール Rbとによ つてできる最小多次元立方体 Qを仮想的に作り、最小多次元立方体 Qを構成するマ トリックスの数を求める。ここで、ルール Raとルール Rbとによってできる最小多次元立 方体 Qとは、各属性の開始点としてルール Ra, Rbの対応する属性の開始点のうち値 の小さい方の開始点を選択し、各属性の終了点としてルール Ra, Rbの対応する属 性の終了点のうち値の大きい方の終了点を選択した場合に、各属性ごとに選択した 開始点及び終了点によって定められる領域のことである。例えば、第 1属性の開始点 としてルール Ra, Rbの第 1属性の開始点のうち値の小さい方の開始点を選択し、第 1属性の終了点としてルール Ra, Rbの第 1属性の終了点のうち値の大きい方の終了 点を選択する。第 2属性以降の開始点及び終了点についても同様に選択していく。 このように選択された各属性の開始点及び終了点によって定められる領域が、最小 多次元立方体となる。なお、ここでは、便宜上「最小多次元立方体」と記すが、最小 多次元立方体 Qは、厳密な意味での立方体(3次元空間内に存在する立方体)とは 限らない。例えば、ルール Ra, Rbの属性がそれぞれ 2つしかなければ、最小多次元 立方体 Qは 2次元の領域となる。例えば、ルール Ra, Rbの属性がそれぞれ 4つ以上 存在すれば、最小多次元立方体 Qは 4次元以上の空間の領域となる。
最小多次元立方体 Qを構成するマトリックスとは、最小多次元立方体 Qの領域と重 なるマトリックスのことである。最小多次元立方体 Qを構成するマトリックスの数は、マト リックス化部 130が求めた境界点を用いて算出することができる。ルール統合部 200 は、最小多次元立方体 Qの属性の開始点力 終了点までの範囲を境界点で分割し た結果得られる領域 (範囲)の数を各属性ごとに求め、属性ごとに求めたその数の積 を計算することにより、最小多次元立方体 Qを構成するマトリックスの数を求めること ができる。以下に、具体例を示す。ここでは、各ルールデータに記述されている属性 は 2種類であり、各ルールデータには第 1属性及び第 2属性の開始点及び終了点が 記述されているものとする。 X軸(第 1属性に対応)上の境界点が 0, 10, 40, 60, 80 , 100であり、 Y軸(第 2属'性に対応)上の境界^;力 SO, 10, 20, 50, 70, 80, 90, 10 0であるとする。ノレ一ノレ Raのノレ一ノレデータ力 ( 10, 60, 20, 90,後略)であり、ノレ一 ル Rbのルールデータが(40, 80, 50, 100,後略)であるとする。すると、最小多次 元立方体 Qの範囲は、(10, 80, 20, 100)となる。最小多次元立方体 Qの第 1属性 の開始点" 10"から終了点" 80"までの範囲を、 X軸上の境界点 10, 40, 60, 80で分 割した結果得られる領域の数は、 3個である。具体的には、 10〜40の範囲、 40〜60 の範囲、及び 60〜80の範囲の 3個である。最小多次元立方体 Qの第 2属性の開始 点" 20,,力も終了点" 100,,までの範囲を、 Y軸上の境界点 20, 50, 70, 80, 90, 10 0で分割した結果得られる領域の数は、 5個である。具体的には、 20〜50の範囲、 5 0〜70の範囲、 70〜80の範囲、 80〜90の範囲、及び 90〜: L00の範囲の 5個である 。従って、本例における最小多次元立方体 Qを構成するマトリックス数は、 3 X 5 = 15 個と求められる。以下、ステップ S916で求めるマトリックス数、すなわち最小多次元 立方体 Qを構成するマトリックス数を Mqとする。
[0265] Mqを求めた後、ノレ一ノレ統合部 200は、ステップ S917において、ステップ S914で 求めた Maとステップ S915で求めた Mbとの和が、ステップ S916で求めた Mqと等し いか否かを判定する。 Maと Mbとの和が Mqであるならば、すなわち Ma + Mb = Mq が成立するならば、ルール統合部 200は、ステップ S918において、ステップ S913で 選択したルール Ra, Rbの組み合わせをバッファ(不図示)に記憶させる。ステップ S9 18の後、ステップ S912以降の処理を繰り返す。ステップ S917において Maと Mbと の和が Mqでないならば、すなわち Ma + Mb = Mqが成立しないならば、ルール統合 部 200は、ステップ S918に移行せず、ステップ S912以降の処理を繰り返す。
[0266] ステップ S912にお!/、て、未選択の組み合わせが残って ヽな 、と判定した時点にお V、てバッファに記憶されて!、るルールの組み合わせ力 統合できる可能性のあるル ールの組み合わせ、すなわち統合候補である。バッファには、マトリックス空間記憶部 120に記憶されていたルールデータの組み合わせが統合候補として記憶されること になる。ただしステップ S930 (図 68参照)では、ルール記憶部 110に記憶されている ルール集合に含まれるルール同士を統合する。
[0267] 図 70は、図 68においてステップ S920として示した、統合候補としたルールの組み 合わせに対して統合可能であるか否かを確認する処理の処理手順の例を示している 。ルール統合部 200は、ステップ S910の後、具体的には、ステップ S912で未選択 の組み合わせが残って 、な 、と判定した後、統合候補としたルールの組み合わせに 対して統合可能であるか否かを確認する処理を開始する。ルール統合部 200は、ま ず、ステップ S921において、バッファに記憶されているルールの組み合わせのうち、 後述のステップ S922で選択されて 、な 、組み合わせが残って 、るか否かを判定す る。未選択の組み合わせがバッファに残っていなければ、処理を終了する。未選択 の組み合わせがバッファに残っていれば、ルール統合部 200は、ステップ S922〖こ移 行する。
[0268] ステップ S922では、ルール統合部 200は、バッファから未だ選択されて 、な!/ヽル ールの組み合わせを選択する。ここで選択された組み合わせを構成するルールをル ール Ra, Rbとする。ルール統合部 200は、ステップ S922において、ルール Raとル ール Rbとによってできる最小多次元立方体 Qの全ての頂点力 ルール Raまたはル ール Rbに関係する力否かを判定する。ここで、頂点とは、各属性の開始点または終 了点の組み合わせにより決定される点である。従って、最小多次元立方体 Qの頂点 は、最小多次元立方体 Qを定める各属性の開始点または終了点の組み合わせによ つて決定される点であり、例えば、第 1属性の開始点、第 2属性の終了点、第 3属性 の開始点、…等の組み合わせによって決定される点等が頂点となる。上記の「頂点が 、ルール Raまたはルール Rbに関係する」とは、頂点を含む頂点マトリックスのマトリツ タスデータのルールリストにルール Raまたはルール Rbの記述が含まれて!/、ることを 意味する。従って、「ルール Raとルール Rbとによってできる最小多次元立方体 Qの 全ての頂点力 ルール Raまたはルール Rbに関係する」とは、その最小多次元立方 体 Qの個々の頂点を含む各頂点マトリックスのマトリックスデータのルールリストにル ール Raまたはルール Rbの記述が含まれていることを意味する。すなわち、最小多次 元立方体 Qの個々の頂点を含む各頂点マトリックス力 ルール Raを構成するマトリツ タスまたはルール Rbを構成するマトリックスであると 、うことである。最小多次元立方 体 Qの頂点マトリックスとは、最小多次元立方体 Qを構成するマトリックスのうち、最小 多次元立方体 Qの頂点を含むマトリックスのことである。
最小多次元立方体 Qの全ての頂点力 ルール Raまたはルール Rbに関係するか否 かを判定する場合には、ルール統合部 200は、最小多次元立方体 Qの全ての頂点 マトリックスのマトリックスデータのルールリストにルール Raまたはルール Rbの記述が 含まれて 、るか否かを判定すればよ!、。最小多次元立方体 Qの全ての頂点マトリック スのマトリックスデータのルールリストにルール Raまたはルール Rbの記述が含まれて いれば、 Qの全ての頂点が、ルール Raまたはルール Rbに関係することとなる。いず れかの頂点マトリックスのマトリックスデータのルールリストに、ルール Raとルール Rb のいずれの記述もなければ、関係しないことになる。ルール統合部 200は、最小多次 元立方体 Qを構成する各マトリックスの中から、最小多次元立方体 Qの頂点を含むマ トリックスを特定することによって、最小多次元立方体 Qの頂点マトリックスを特定すれ ばよい。 [0270] なお、最小多次元立方体 Qの全ての頂点力 ルール Raまたはルール Rbに関係す る場合には、最小多次元立方体 Qの個々の属性の開始点は、ルール Raの対応する 属性の開始点またはルール Rbの対応する属性の開始点の 、ずれかになる。最小多 次元立方体 Qの個々の属性の終了点は、ルール Raの対応する属性の終了点または ルール Rbの対応する属性の終了点のいずれかになる。
[0271] ステップ S922において、ルール Raとルール Rbとによってできる最小多次元立方 体 Qの全ての頂点力 ルール Raまたはルール Rbに関係すると判定された場合、処 理はステップ S923に移行する。ステップ S923においてルール統合部 200は、ステ ップ S922で選択したルールの組み合わせをバッファ(不図示)に記録する。このバッ ファは、ステップ S910、より具体的にはステップ S918において組み合わせを記録す るバッファとは異なるバッファである。少なくとも、ステップ S918で組み合わせを記録 する記録領域と、ステップ S923で組み合わせを記録する記録領域が異なって ヽれ ばよい。以下の説明において、ステップ S923で組み合わせを記録するバッファのこ とをルール統合用バッファと呼ぶ。ステップ S923の後、処理はステップ S921に移行 する。ステップ S922において、ルール Raとルール Rbとによってできる最小多次元立 方体 Qの全ての頂点力 ルール Raまたはルール Rbに関係しな 、と判定した場合に は、ステップ S923の組み合わせの記録を行うことなぐ処理はステップ S921に移行 する。
[0272] ステップ S921にお!/、て未選択の組み合わせが残って ヽな 、と判定した時点にお いて、ルール統合用バッファに記憶されている各組み合わせは、それぞれ、ルール 統合可能であると確認された 2つのルールを表わしている。
[0273] ルール統合部 200は、ステップ S920の後、図 70に示すステップ S 921で未選択の 組み合わせが残っていないと判定した後、ステップ S930において、ルールの統合が 可能であると確認した各組み合わせごとに、ルール記憶部 110に記憶されて 、る 2つ のルールを統合する。このステップ S930において、ルール統合部 200は、以下の処 理を実行すればよい。ルール統合部 200は、ステップ S920後にルール統合用バッ ファに記憶されて 、る各組み合わせを参照し、各組み合わせが示す 2つのルールを 、ルール記憶部 110に記憶されているルール集合の中力も特定する。そして、その 2 つのルールの組ごとに、 2つのルールを統合する。以下の説明では、ステップ S920 後にルール統合用バッファに記憶されている各組み合わせが表わしているルールで あって、ルール記憶部 110に記憶されているルール集合の中力 特定されたルール を Ra, Rbとする。
[0274] ルール統合部 200は、統合可能なルール Ra, Rbをルール記憶部 110に記憶され ているルール集合の中力 特定した後、新たなルールの各属性の開始点として、ル ール Raの対応する属性の開始点とルール Rbの対応する属性の開始点のうち値の 小さい方の開始点を選択し、新たなルールの各属性の終了点として、ルール Raの対 応する属性の終了点とルール Rbの対応する属性の終了点のうち値の大きい方の終 了点を選択して、新たなルール、すなわち Raと Rbを統合したルールの各属性の開 始点及び終了点を定めればよい。ルール Ra, Rbの対応する属性の開始点同士や 終了点同士の値が等しいときには、ルール統合部 200は、その等しい値を新たなル ールの開始点や終了点とすればよい。ルール統合部 200は、ルール Ra, Rbに共通 のアクションを、新たなルール、すなわち Raと Rbを統合したルールのアクションとして 定めればよい。
[0275] ί列えば、、統合対象となるノレ一ノレ Ra, Rb力 Sそれぞれ(20, 90, 50, 120, A)、 (90, 140, 50, 120, A)であるとする。ルール統合部 200は、 Ra, Rbを統合した新たな ルールの第 1属性の開始点として、ルール Raの第 1属性の開始点 "20"とルール Rb の第 1属性の開始点" 90"のうち値が小さい方の開始点" 20"を選択し、新たなルー ルの第 1属性の開始点とする。ルール統合部 200は、新たなルールの第 1属性の終 了点として、ルール Raの第 1属性の終了点" 90"とルール Rbの第 1属性の終了点" 1 40"のうち値が大きい方の終了点" 140"を選択し、新たなルールの第 1属性の終了 点とする。上述のように、ルール Ra, Rbの対応する属性の開始点同士や終了点同 士の値が等しいときには、ルール統合部 200は、その等しい値を新たなルールの開 始点ゃ終了点とすればよい。本例では、 Ra, Rbの第 2属性の開始点はともに" 50" であり、 Ra, Rbの第 2属性の終了点はともに" 120"である。従って、本例では、ルー ル統合部 200は、新たなルールの第 2属性の開始点、終了点をそれぞれ" 50", "12 0"とする。本例では、ルール統合部 200は、 Ra, Rbに共通のアクション" A"を、新た なルールのアクションとする。従って、本例の場合、ルール統合部 200は、ルール Ra , Rbを統合した新たなノレ一ノレとして、 (20, 140, 50, 120, A)と! ヽぅノレーノレを、ノレ一 ル記憶部 110に記憶されて 、るルール集合に追加する。
[0276] ルール統合部 200は、ステップ S930において、統合対象とした 2つのルールをル ール記憶部 110に記憶されているルール集合から削除する。すなわち、ルール統合 部 200は、ステップ S930で 2つのルールを統合する場合、統合対象となる 2つのル ールをルール集合から削除する処理と、その 2つのルールを統合した新たなルール を作成しルール集合に追加する処理とを行う。ルール統合部 200は、このような処理 を、統合可能なルール Ra, Rbの組ごとに行う。
[0277] 上記の説明では、統合可能な 2個のルールの組み合わせを選び出し、その 2個の ルールを統合して新たなルールを作成している。この処理を繰り返すことで、 3個以 上のルールを統合することも可能である。例えば、まず、 2つのルール Ra, Rbを統合 して Rcを作成し、その後、ステップ S910以降の処理を行って Rcと他のルールとを統 合した新たなルールを作成してもよい。なおこの場合、ルール集合の修正だけでは なぐマトリックス空間データの修正も行わなければならない。例えば、マトリックス化 部 130が、統合されたルールが追加されたルール集合を用いて、新たにマトリックス 空間データを作成し、その後、再びステップ S910以降の処理を行えばよい。このよう に、統合処理を繰り返す場合、ルール統合部 200が統合可能なルールの組み合わ せを特定できなくなるまで繰り返す。すなわち、ステップ S912で「いいえ」側に分岐し たときにバッファに組み合わせが記録されていない場合、あるいはステップ S921で「 いいえ」側に分岐したときにノ ッファに組み合わせが記録されて ヽな 、場合に、統合 処理の繰り返しを終了すればょ 、。
[0278] 上記のように統合処理を繰り返さない場合であっても、マトリックス空間データと、ル ール統合後にルール記憶部 110に記憶されて 、るルール集合との整合をとるために 、マトリックス化部 130が、統合されたルールが追加されたルール集合を用いて、新 たにマトリックス空間データを作成してもよい。
[0279] 次に、第 8の実施形態のフィルタリングルール分析システムの利点について説明す る。第 8の実施形態のフィルタリングルール分析システムによれば、どのような複雑な フィルタリングルールであっても、統合可能な 2つのルールを統合することができる。 その理由は、ルール力 マトリックス空間データを生成し、所定の条件をみたす 2つの ルールを構成するマトリックス数及びその 2つのルールでできる最小多次元立方体を 構成するマトリックス数を比較して統合候補を求め、その統合候補に関して、最小多 次元立方体 Qの全ての頂点力 ルール Raまたはルール Rbに関係するか否かを判定 して統合可能かどうかを調べることができるからである。
[0280] ルールを統合すれば、ルールの数を減少させることができ、管理者にルールを理 解させやすくすることができる。新たなルールの順位を定める場合には、例えば、管 理者が統合後のルールを確認して、そのルールの順位を決定すればよい。ただし、 統合後のルールの順位決定方法は、管理者が確認して決定する方法に限定されな い。
[0281] 次に、具体例を用いて、第 8の実施形態のフィルタリングルール分析システムの動 作を説明する。ルール集合 910が入力され、マトリックス空間データとしてマトリックス 空間記憶部 120に記憶されるまでの動作は、第 1の実施形態と同様であるので説明 を省略する。マトリックス空間記憶部 120は、マトリックス空間データに含まれるルール データとして、図 71Bに例示するルールデータを記憶しているものとする。図 71Aは 、図 71Bに例示するルールデータが示す各ルール及びマトリックス化部 130に作成 された各マトリックスを表わす模式図である。なお、図 71Bにおいて矢印で示した数 は、各ルールを構成するマトリックスの数を表わして 、る。
[0282] ルール統合部 200は、ステップ S911において、図 71Bに例示するルールデータを 参照して、デフォルトルール以外のルールであって、アクションが共通である 2つのル ール (ルールデータ)の組み合わせを全て抽出する。本例では、ルール統合部 200 は、 (R2, R3)、 (R2, R4)、 (R2, R5)、 (R2, R6)、(R3, R4)、(R3, R5)、(R3, R6)、 (R4, R5)、 (R4, R6)、(R5, R6)の 10種類の組み合わせを抽出する。これら の組み合わせは、いずれもアクションが" A"で共通する。なお、図 71Bに示すルール R1のアクションは" D"であり、アクションが" D"となる他のルールはデフォルトルール R7しかない。よって、本例では、 R1を含む組み合わせは抽出されない。
[0283] 以降、ルール統合部 200は、各組あわせを構成するルールデータを選択して、 Ma , Mb, Mqを求め、 Ma + Mb = Mqであるならば、選択したルールデータの組み合わ せをバッファに記録する処理、すなわちステップ S912以降の処理を繰り返す。ステツ プ S912において組み合わせが残っていなければ、統合候補を求める処理が終了す る。
[0284] 図 72は、上記の 10種類の各組み合わせにおける Mqと、 Ma + Mbとを比較して示 している。図 72において、 M (Ra+Rb)は、ルール Raとルール Rbとによってできる最 小多次元立方体 Qを構成するマトリックスの数を示している。例えば、 "M (R2+R3) = 36"は、ルール R2, R3でできる最小多次元立方体 Qを構成するマトリックスの数 が 36個であることを示して 、る。等号ある!/、は不等号の右側に示した M (R2)等の記 載は、各ルールを構成するマトリックス数を表わしている。例えば、 M (R2)は、ルー ル R2を構成するマトリックス数を表わしている。図 72に示すように、 2つのルールによ つてできる最小多次元立方体 Qを構成するマトリックス数 Mqと、 2つのルールそれぞ れを構成するマトリックス数の和 Ma + Mbとが等しくなる 2つのルールの組み合わせ は、ルール R3とルール R5の組み合わせのみである。従って、ステップ S912におい てルール統合部 200が、ステップ S912において、組み合わせが残っていないと判定 した場合、バッファにはルール R3とルール R5の組み合わせのみが記録されて!、るこ とになる。
[0285] ルール R4とルール R6との組み合わせに着目すると、図 71A,図 71Bに示すように 、参照ルール R4, R6は、第 2属性の範囲が一致し、ルール R4が示す領域とルール R6が示す領域とが分離されていない。そのため、ルール R4とルール R6の組み合わ せもバッファに記録されてし力るべきと考えることもできる力 本実施形態では、ルー ル R4とルール R6の組み合わせは、統合候補から除外され、ノ ッファに記録されない 。本実施形態において、ルール分析システム 100が、第 5の実施形態と同様にルー ル削除部 170 (図 34参照)を備え、第 5の実施形態で説明した縮小を実行してもよい 。そして、その後、ルール統合部 200が、ステップ S910以降の処理を実行してもよい 。その場合には、縮小の結果、ルール R4とルール R6との組み合わせに関してもステ ップ S917で「はい」と判定され、ルール R4とルール R6との組み合わせもバッファに 記録されることになる。ただし、ここでは、ルール R3とルール R5の組み合わせのみが ノ ッファに記録されたものとして説明する。
[0286] ルール統合部 200は、ステップ S921にお!/、て、ルール R3とルール R5の組み合わ せが残っていると判定し、ステップ S922において、ルール R3とルール R5とによって できる最小多次元立方体 Qの全ての頂点力 ルール R3またはルール R5に関係する か否かを判定する。本例の場合、ルール R3とルール R5とによってできる最小多次元 立方体 Qの全ての頂点力 ルール R3またはルール R5に関係するので、ルール統合 部 200は、ステップ S923において、ルール R3とルール R5との組み合わせをルール 統合用バッファに記録する。本例では、以上の処理によって、未選択の組み合わせ が存在しなくなるので、ステップ S921において処理は「いいえ」の側に分岐し、統合 候補としたルールの組み合わせに対して統合可能であるか否かを確認する処理が 終了する。
[0287] 上記のようにステップ S922の判定を行う理由について説明する。ステップ S922の 判定を行うのは、 2つのルールが重なっている部分のマトリックス数と、 2個のルール でできる最小多次元立方体 Qを構成するマトリックスのうち、 2つのルールと無関係な マトリックス数が偶然一致する場合があり、そのような場合を排除するためである。図 7 3は、 2つのルールが重なっている部分のマトリックス数と、 2個のルールでできる最小 多次元立方体 Qを構成するマトリックスのうち、 2つのルールと無関係なマトリックス数 がー致する場合の例を示している。図 73に示す例では、 2つのルールが重なってい る部分のマトリックス数は 2個である。また、最小多次元立方体 Qを構成するマトリック スのうち、 2つのルールと無関係なマトリックス数も 2個である。このような場合、ステツ プ S917 (図 69参照)では「は 、」と判定されるが、ルールを統合することはできな!、。 本実施形態では、ステップ S922の判定で「はい」となる組み合わせのみをステップ S 923において記録するようにして、図 73に例示するような統合できない 2つのルール の組み合わせがステップ S923において記録されることを防止している。
[0288] 図 68に示すステップ S 920の後、ステップ S921にお!/、て「 ヽ!、え」側に分岐した場 合、ノレ一ノレ統合咅 200ίま、ステップ S930【こお!ヽて、ノレ一ノレ記'隐咅 10【こ記'隐されて いるルール集合に対してルール R3, R5の削除を行うとともに、ルール R3, R5を統 合した新たなルールを追加する。 [0289] 以上では、ステップ S911 (図 69参照)においてルールの組み合わせを抽出する際 、マトリックス空間記憶部 120に記憶されて 、るルールデータを参照してルールの組 み合わせを抽出する場合を説明した。この代わりに、ステップ S911においてルール の組み合わせを抽出する場合、ルール記憶部 110に記憶されて 、るルール集合を 参照してルールの組み合わせを抽出してもよい。この場合、ステップ S914〜ステップ S916、ステップ S922に示すマトリックス数を求める処理等で、マトリックス空間記憶 部 120に記憶されているマトリックス空間データを参照してもよい。
[0290] 上述の説明では、マトリックス化部 130の動作は第 1の実施形態と同様であると説 明した。し力しながらマトリックス化部 130は、マトリックス空間データ作成処理に、第 7 の実施形態で説明したステップ S 109の処理を行ってもよい。すなわち、マトリックス 化部 130は、第 7の実施形態で示したマトリックス化部 130と同様の動作を行ってもよ い。
[0291] 上記の各実施形態では、ルールの各属性の開始点及び終了点を境界点として説 明した。開始点及び終了点を境界点とすると、ルールの領域の境界上のパケットの 属性が複数のマトリックスの境界上に位置することになる。図 74A、図 74Bは、ルー ルの領域の境界上のパケットを示す説明図である。図 74Aに示すように、ルール R1 とルール R2の境界上に、第 1属性及び第 2属性がともに" 2"であるパケットが存在す るとする。開始点及び終了点を境界点としてマトリックスを定める場合、第 1属性及び 第 2属性がともに" 2"であるパケットは、ルール R1を構成するマトリックスとルール R2 を構成するマトリックスとの境界上に位置することになる。各属性が 1つの値のみで示 されるパケットは、マトリックスの境界上に存在することがないようにし、ただ 1つのマト リックスの境界の内側に含まれるようにすることが好ましい。そこで、ルールの各属性 の開始点及び終了点を境界点とするのではなぐルールの各属性の開始点を表わ す値カゝら所定値を減算した値と、ルールの各属性の終了点を表わす値に所定値を 加算した値とを境界点としてもよい。そのように境界点を定めれば、図 74Aに示すパ ケットのように、各属性が 1つの値のみで示されるパケットは、ただ 1つのマトリックスの 境界の内部に含まれる。
[0292] 図 74Bは、そのような状態を示している。図 74Bに示す例では、例えば所定値を 0. 5として、ルール Rlの第 1属性の開始点" 2"からこの所定値を減算した" 1. 5"、ルー ル R1の第 1属性の終了点" 4"にこの所定値を加算した" 4. 5"等を境界点としている 。また、ルール R1の第 2属性の開始点" 2"から所定値 0. 5を減算した" 1. 5"、ルー ル R1の第 2属性の終了点" 3"に所定値 0. 5を加算した" 3. 5"を境界点としている。 図 74Bに示すマトリックス Mxは、このような第 1属性の境界点" 1. 5", "4. 5"、及び 第 2の属性の境界点" 1. 5", "3. 5"によって規定されるマトリックスである。このように 、境界点を定めることにより、図 74Aに示す各属性の値が" 2"のパケットは、マトリック ス Mxの境界の内部に存在することになる。
[0293] 以下、上述した各実施形態の変形例として、上述のように、ルールの各属性の開始 点を表わす値力 所定値を減算した値とルールの各属性の終了点を表わす値に所 定値を加算した値とを境界点とする場合について説明する。
[0294] 上述の各実施形態において、上記のように境界点を定める場合、マトリックス化部 1 30 (あるいはマトリックス化部 131)は、ステップ S103 (図 2、図 27、図 65等を参照)に おいて、ルール記憶部 110に記憶されている全てのルールの条件部分から、直前の ステップ S102で選択した属性に関する開始点及び終了点を収集する。そして、マト リックス化部 130 (あるいはマトリックス化部 131)は、収集した開始点から所定値を減 算した値、及び収集した終了点に所定値を加算した値をそれぞれ境界点し、次のス テツプ S104において、その境界点をソートし、重複する境界点を削除すればよい。
[0295] 上記の減算や加算で用いる所定値は、以下のように定めればよ!、。ある属性に対 応する所定値は、その属性の相異なる 2つの値の差の最小値未満の値であればょ 、 。例えば、属性が IPアドレス(ソースアドレスやデスティネーションアドレス)である場合 、そのアドレスは、 "www. XXX. yyy. zzz"等のように表わされる力 このアドレスは 3 2ビットのデータで表わされるので、整数で表わすこともできる。よって、アドレスの相 異なる 2つの値の差の最小値は" 1"となる。従って、各アドレスを 32ビットで表わされ る整数としたときに、所定値を 1未満の値 (例えば 0. 5など)として定め、 32ビットの整 数で表わされるアドレス開始点力もその所定値を減算し、また、 32ビットの整数で表 わされるアドレス終了点にその所定値を加算して境界点を求めればよい。
[0296] ポート番号は、 0〜65535の整数である。従って、属性がポート番号(ソースポート やデスティネーションポート)である場合、ポート番号の相異なる 2つの値の差の最小 値も" 1"となる。よって、属性がポート番号である場合、所定値を 1未満の値 (例えば 0 . 5など)として定め、開始点力もその所定値を減算し、また、終了点にその所定値を 加算して境界点を求めればょ 、。
[0297] 属性となるプロトコルは、予め数値に変換される。よって、相異なるプロトコルに対応 する値の差の最小値未満の値を所定とすればよい。例えば、 TCPを" 0"、 UDPを" 1 "とする場合、各プロトコルに対応する値の差の最小値は 1である。よって、所定値を 1 未満の値 (例えば 0. 5など)として定め、開始点からその所定値を減算し、また、終了 点にその所定値を加算して境界点を求めればよい。
[0298] 各属性ごとに、開始点カゝら所定値を減算した値、終了点に所定値を加算した値を それぞれ境界点とし、その境界点をソートして重複する境界点を削除した後に、その 境界点を用いてステップ S105 (図 1等参照)の処理を実行してマトリックスを作成す ればよい。すなわち、マトリックス化部 130 (あるいはマトリックス化部 131)は、その境 界点を用いて、全ての属性の隣り合う 2つの境界点でできるマトリックスデータを作成 する。そして、その後、マトリックス化部 130 (あるいはマトリックス化部 131)は、ステツ プ S 106〜ステップ S 108の処理によりマトリックス空間データを作成すればよい。た だし、マトリックス空間データに含まれるルールデータは、ルール記憶部 110に記憶 されるルールデータに、ルールを構成するマトリックスのリストが追加されることにより 生成される。従って、マトリックス空間データに含まれるルールデータの属性は、元々 、ルール記憶部 110に記憶されていたルールデータの属性と同一であり、開始点か ら所定値を減算した値や、終了点に所定値を加算した値が記述されるわけではない
[0299] 一方、マトリックス空間データに含まれるマトリックスデータは、ルールの各属性の開 始点を表わす値力 所定値を減算した値とルールの各属性の終了点を表わす値に 所定値を加算した値とを境界点とし、その境界点を用いて生成される。従って、マトリ ックス空間データに含まれるマトリックスデータでは、上記のように求められた境界点 力 各属性の開始点、終了点として記述される。すなわち、マトリックスデータにおけ る各属性の開始点、終了点は、元々、ルール記憶部 110に記憶されていたルールデ ータにおける各属性の開始点、終了点とは一致しない。
[0300] このように、ルールの各属性の開始点を表わす値力 所定値を減算した値とルール の各属性の終了点を表わす値に所定値を加算した値とを境界点としてマトリックス空 間データを作成した場合には、「ルールを構成するマトリックス」とは、以下のようなマ トリックスの集合を意味するものとする。すなわち、「ルールを構成するマトリックス」と は、マトリックスのそれぞれの属性の範囲力 ルールの条件部分が示す属性の範囲 の少なくとも一部と重複しているマトリックスの集合のことを意味する。
[0301] 図 75A,図 75Bは、ルールの各属性の開始点を表わす値力 所定値を減算した値 と、ルールの各属性の終了点を表わす値に所定値を加算した値とを境界点とした場 合のマトリックスの例を示す。図 75Aに示すように、ルール R1の第 1属性の開始点、 終了点がそれぞれ 2, 4であり、ルール R2の第 1属性の開始点、終了点がそれぞれ 1 , 2であるとする。所定値を 0. 5とする。すると、ルール Rl, R2から求められる第 1属 性の境界点は、 1. 5 ( = 2-0. 5)、 4. 5 (=4 + 0. 5)、 0. 5 (= 1— 0. 5)、 2. 5 ( = 2 + 0. 5)となる。ルール Rl, R2から求められる第 2属性の境界点は、 1. 5 ( = 2-0. 5)、 3. 5 ( = 3 + 0. 5)、 1. 5 ( = 2-0. 5)、 3. 5 ( = 3 + 0. 5)となる。
[0302] ルール Rl, R2から求められる第 1属性の境界点をソートすると、 0. 5, 1. 5, 2. 5, 4. 5となる。また、ルール Rl, R2から求められる第 2属性の境界点をソートし、また、 重複する境界点を削除すると、 1. 5, 3. 5となる。よって、この第 1属性の境界点 0. 5 , 1, 5, 2, 5, 4. 5、及び第 2属性の境界点 1. 5, 3. 5によって、図 75Bに破線で示 すような 3つのマトリックスが得られる。
[0303] ルールの各属性の開始点を表わす値力 所定値を減算した値とルールの各属性 の終了点を表わす値に所定値を加算した値とを境界点としてマトリックス空間データ を作成した場合、マトリックスデータに含まれる各属性の開始点や終了点を表示する ときには、所定値を加算したり、減算したりした結果を表示する。例えば、図 4に示す ステップ S214のように、重なり分析結果として、あるルール Dによってあるルール Aの マトリックス Eの範囲が Overlappedであると出力する場合がある。この場合、重なり分 析部 140は、マトリックス Eにおける各属性の範囲を出力する際、マトリックス Eのマトリ ックスデータにおける各属性の開始点に所定値に加算した値や、各属性の終了点か ら所定値を減算した値を出力する。すなわち、ステップ S103で所定値を減算したり、 所定値を加算する前の値、言い換えれば、ルールデータに記述されているいずれか の開始点やいずれかの終了点に合致する値を出力する。
[0304] 第 8の実施形態で説明した最小多次元立方体 Qは、マトリックスデータではなぐル ール (ルールデータ)によって定められる。最小多次元立方体 Qの各頂点は、ルール データに記述される各属性の開始点や終了点の組み合わせによって定められるの で、最小多次元立方体 Qの各頂点は、ステップ S 103で所定値の加算や減算を行つ た境界点力 特定されるわけではない。また、最小多次元立方体 Qの領域は、最小 多次元立方体 Qを構成するマトリックス全体の領域に包含されることになる。
[0305] 以上説明した本発明の好ま 、実施の形態にぉ 、て、ノ ッファは、ルール記憶部 1 10やマトリックス空間記憶部 120の記憶領域の一部であってもよ 、し、ルール記憶部 110やマトリックス空間記憶部 120とは別の記憶装置であってもよい。マトリックス化部 130, 131は、空間データ作成手段に相当する。マトリックス空間データは、空間デ ータに相当する。ルールイ匕部 190は、ルール作成手段に相当する。また、ルール統 合部 200は、統合可能ルール特定手段及びルール統合手段に相当する。
産業上の利用可能性
[0306] 本発明は、パケットフィルタリングを行うネットワーク機器やソフトウェアのルール設定 管理に適用することができる。

Claims

請求の範囲
[1] パケットフィルタリング処理に用いられるルールであって、優先順位が設定されたル ールの集合を記憶する段階と、
各ルールの適用条件として当該ルール内に記述されるパケットの属性の範囲の開 始点及び終了点によって特定される極小領域と当該ルールとの対応関係を示す空 間データであって、前記優先順位の情報を含む前記空間データを生成する空間デ ータ生成段階と、
を有するフィルタリングルール分析方法。
[2] 統合可能なルールの組み合わせを特定する統合可能ルール特定段階と、
前記記憶されたルール集合に属するルールであって、前記可能統合ルール特定 段階において特定された組み合わせをなすルール同士を統合するルール統合段階 と、
を有する、請求項 1に記載の方法。
[3] 前記統合可能ルール特定段階は、
動作が共通しデフォルトルールでない 2つのルールのうちの一方のルールに対応 する極小領域の数と前記 2つのルールのうちの他方のルールに対応する極小領域 の数との和力 前記 2つのルールによって定まる領域に対応する極小領域の数と一 致するときに、前記 2つのルールの組み合わせを統合可能なルールの組み合わせの 候補とする段階と、
前記候補とした組み合わせをなす 2つのルールによって定まる領域に対応する極 小領域のうち、前記 2つのルールによって定まる領域の頂点を含む各極小領域が、 前記 2つのルールの!/、ずれかに対応する場合に、前記 2つのルールの組み合わせ を統合可能なルールの組み合わせとする段階と、
を有する、請求項 2に記載の方法。
[4] 前記統合可能ルール特定段階と前記ルール統合段階とを、前記統合可能ルール 特定段階において統合可能なルールの組み合わせを特定できなくなるまで繰り返す 、請求項 2または 3に記載の方法。
[5] 前記空間データ生成段階は、生成した空間データのうち、デフォルトルールのみに 対応付けられた極小領域のデータを削除する段階を有する、請求項 1乃至 4のうちの いずれか 1項に記載の方法。
[6] 前記空間データ生成手段は、各ルールの適用条件としてルール内に記述されるパ ケットの属性の範囲の開始点の値力 所定値を減算した値と、前記属性の範囲の終 了点の値に所定値を加算した値とを用いて、各ルールの適用条件として当該ルール 内に記述されるパケットの属性の範囲の開始点及び終了点によって特定される極小 領域を定める段階を備える、請求項 1乃至 5のいずれ力 1項に記載の方法。
[7] パケットフィルタリング処理に用いられるルールであって、優先順位が設定されたル ールの集合を記憶するルール記憶手段と、
各ルールの適用条件として当該ルール内に記述されるパケットの属性の範囲の開 始点及び終了点によって特定される極小領域と当該ルールとの対応関係を示す空 間データであって、前記優先順位の情報を含む前記空間データを生成する空間デ ータ生成手段と、
を備えるフィルタリングルール分析システム。
[8] 前記空間データ生成手段によって生成された空間データを用いて、各ルールの適 用条件として記述された属性の範囲の重なりを分析する重なり分析手段をさらに備え る請求項 7に記載のシステム。
[9] 前記重なり分析手段は、一のルールに記述された属性の範囲力 前記一のルール よりも優先順位が高い他のルールに記述された属性の範囲に含まれる状態または一 部重複する状態を検出する、請求項 8に記載のシステム。
[10] パケットの属性を入力するパケット属性入力手段と、
前記空間データ生成手段によって生成された空間データを用いて、前記パケットの 属性がどの極小領域に該当するかを判定し、前記パケットの属性が該当する極小領 域に対応するルールに応じた動作を確認することによって、入力された属性を有する パケットがパケットフィルタリング処理で通過を許可されるか否かを判定する通過テス ト手段と、
をさらに備える請求項 7に記載のシステム。
[11] 前記パケット属性入力手段は、パケットの属性として、開始点及び終了点によって 表わされるパケットの属性の範囲を入力し、
前記通過テスト手段は、前記パケットの属性の範囲がどの極小領域に該当するの かを判定する、
請求項 10に記載のシステム。
[12] 前記ルール記憶手段は、ルールの集合を複数組記憶し、
前記空間データ生成手段は、各ルールの適用条件として当該ルール内に記述さ れるパケットの属性の範囲の開始点及び終了点を、前記複数組のルールの集合に 含まれる全てのルール力 抽出し、前記開始点及び終了点を用いて、ルールの集合 ごとに前記空間データを生成し、
さらに、複数の空間データ同士の間で対応する極小領域におけるルールの動作が 一致する力否かを判定することによって、各ルールの集合に基づくパケットフィルタリ ング処理が同一の処理になる力否かを判定する同一性分析手段を備える、請求項 7 に記載のシステム。
[13] 前記同一性分析手段は、複数の空間データ同士の間で対応する極小領域におけ るルールの動作が一致しな 、と判定した場合に、前記極小領域の範囲を出力する、 請求項 12に記載のシステム。
[14] 前記空間データ生成手段によって生成された前記空間データを参照して、削除し たとしてもパケットフィルタリング処理に影響を及ぼさな 、ルールを特定し、前記特定 したルールを削除するルール削除手段をさらに備える、請求項 7に記載のシステム。
[15] 前記空間データ生成手段によって生成された前記空間データを参照して、各ルー ルの適用条件としてルール内に記述される属性の範囲によって特定される領域のう ち、存在しな ヽとしてもパケットフィルタリング処理に影響を及ぼさな ヽ領域を排除す るように当該ルールを修正するルール修正手段をさらに備える、請求項 7に記載のシ ステム。
[16] 前記ルール修正手段は、一のルールの適用条件として記述された属性の範囲のう ち、より優先度が高い他のルールの適用条件として記述された属性の範囲と重なる 領域を特定し、当該領域における一の属性以外の全属性の範囲が、前記一のルー ルの適用条件として元々記述されていた属性の範囲と一致する場合に、前記一のル ールにおける前記一の属性の範囲を狭めるように修正する、請求項 15に記載のシス テム。
[17] 前記ルール修正手段は、適用条件として記述された属性の範囲の一部が、より優 先度が高い他のルールの適用条件として記述された属性の範囲と重なるルールを、 前記極小領域ごとに分割し、分割して得られた複数のルールのうち、より優先度が高 い他のルールの適用条件として記述された属性の範囲と重なるルールを削除する、 請求項 15に記載のシステム。
[18] 実際にパケットフィルタリング処理対象となった複数のパケットの属性を参照して、 前記各極小領域ごとに、当該極小領域に属性が含まれるパケットの数をカウントする 頻度分析手段と、
カウントされたパケット数が多 、順に前記極小領域をソートし、前記極小領域の一 部または全部と、当該極小領域に対応するルールとに基づ 、て新たなルールを作成 するルール作成手段と、
をさらに有する請求項 7に記載のシステム。
[19] 前記ルール作成手段は、ソートした極小領域のうち、カウントされたパケット数が多 い順に所定数の極小領域を選択し、当該極小領域と、当該極小領域に対応するル ールとに基づ 、て新たなルールを作成して、元々存在して!/、たルールの集合に追カロ する、請求項 18に記載のシステム。
[20] 前記ルール作成手段は、新たに作成したルールを追加したルールの集合のうち、 削除したとしてもパケットフィルタリング処理に影響を及ぼさな 、ルールを特定し、当 該ルールを削除する、請求項 19に記載のシステム。
[21] 前記ルール作成手段は、ソートした極小領域を全て順番に選択し、選択した極小 領域と、当該極小領域に対応するルールとに基づいて、新たなルールを作成し、作 成したルールのみによって新たなルールの集合を作成する、請求項 18に記載のシ ステム。
[22] 前記ルール化手段は、隣接する極小領域であって、前記頻度分析手段によって力 ゥントされたパケットの数の差が所定範囲内である極小領域同士を結合して、 1つの 極小領域とし、当該極小領域の結合後に新たなルールを作成する、請求項 18乃至 21のいずれ力 1項に記載のシステム。
[23] 統合可能なルールの組み合わせを特定する統合可能ルール特定手段と、
前記ルール記憶手段に記憶されたルール集合に属するルールであって、前記統 合可能ルール特定手段によって特定された組み合わせをなすルール同士を統合す るルール統合手段と、
をさらに有する、請求項 7に記載のシステム。
[24] 前記統合可能ルール特定手段は、動作が共通しデフォルトルールでない 2つのル ールのうちの一方のルールに対応する極小領域の数と前記 2つのルールのうちの他 方のルールに対応する極小領域の数との和力 前記 2つのルールによって定まる領 域に対応する極小領域の数と一致するときに、前記 2つのルールの組み合わせを統 合可能なルールの組み合わせの候補とし、候補とした組み合わせをなす 2つのルー ルによって定まる領域に対応する極小領域のうち、前記 2つのルールによって定まる 領域の頂点を含む各極小領域が、前記 2つのルールのいずれかに対応する場合に 、前記 2つのルールの組み合わせを統合可能なルールの組み合わせとする、請求項 23に記載のシステム。
[25] 前記統合可能ルール特定手段が、統合可能なルールの組み合わせを特定し、前 記ルール統合手段力 特定された組み合わせをなすルール同士を統合することを、 前記統合可能ルール特定手段が統合可能なルールの組み合わせを特定できなくな るまで繰り返す、請求項 23または 24に記載のシステム。
[26] 前記空間データ生成手段は、生成した空間データのうち、デフォルトルールのみに 対応付けられた極小領域のデータを削除する、請求項 7乃至 25のいずれか 1項に記 載のシステム。
[27] 前記空間データ生成手段は、各ルールの適用条件として当該ルール内に記述さ れるパケットの属性の範囲の開始点の値力 所定値を減算した値と、前記属性の範 囲の終了点の値に所定値を加算した値とを用いて、各ルールの適用条件として当該 ルール内に記述されるパケットの属性の範囲の開始点及び終了点によって特定され る極小領域を定める、請求項 7乃至 26の 、ずれか 1項に記載のシステム。
[28] パケットフィルタリング処理に用いられるルールであって、優先順位が設定されたル ールの集合を記憶するルール記憶領域を備えたコンピュータに、
各ルールの適用条件として当該ルール内に記述されるパケットの属性の範囲の開 始点及び終了点によって特定される極小領域と当該ルールとの対応関係を示す空 間データであって、前記優先順位の情報を含む前記空間データを生成する処理 を実行させるプログラム。
[29] 前記コンピュータに、
統合可能なルールの組み合わせを特定する統合可能ルール特定処理、及び ルール記憶手段に記憶されたルール集合に属するルールであって、統合可能ル ール特定手段によって特定された組み合わせをなすルール同士を統合するルール 統合処理
をさらに実行させる請求項 28に記載のプログラム。
[30] 前記コンピュータに、前記統合可能ルール特定処理において、
動作が共通しデフォルトルールでない 2つのルールのうちの一方のルールに対応 する極小領域の数と前記 2つのルールのうちの他方のルールに対応する極小領域 の数との和力 前記 2つのルールによって定まる領域に対応する極小領域の数と一 致するときに、前記 2つのルールの組み合わせを統合可能なルールの組み合わせの 候補とする処理、及び
前記候補とした組み合わせをなす 2つのルールによって定まる領域に対応する極 小領域のうち、前記 2つのルールによって定まる領域の頂点を含む各極小領域が、 前記 2つのルールの!/、ずれかに対応する場合に、前記 2つのルールの組み合わせ を統合可能なルールの組み合わせとする処理
を実行させる請求項 29に記載のプログラム。
[31] 前記コンピュータに、前記統合可能ルール特定処理及び前記ルール統合処理を、 統合可能なルールの組み合わせを特定できなくなるまで繰り返す処理を実行させる 請求項 29または 30に記載のプログラム。
[32] 前記コンピュータに、前記空間データのうち、デフォルトルールのみに対応付けら れた極小領域のデータを削除する極小領域削除処理を実行させる、請求項 28乃至 31のいずれ力 1項に記載のプログラム。 前記コンピュータに、各ルールの適用条件としてルール内に記述されるパケットの 属性の範囲の開始点の値力 所定値を減算した値と、前記属性の範囲の終了点の 値に所定値を加算した値とを用 ヽて、各ルールの適用条件として当該ルール内に記 述されるパケットの属性の範囲の開始点及び終了点によって特定される極小領域を 定める処理、を実行させる請求項 28乃至 32の 、ずれ力 1項に記載のプログラム。
PCT/JP2006/303277 2005-02-24 2006-02-23 フィルタリングルール分析方法及びシステム WO2006090781A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/885,050 US7792775B2 (en) 2005-02-24 2006-02-23 Filtering rule analysis method and system
JP2007504771A JP4662080B2 (ja) 2005-02-24 2006-02-23 フィルタリングルール分析方法及びシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005048295 2005-02-24
JP2005-048295 2005-02-24
JP2005-314683 2005-10-28
JP2005314683 2005-10-28

Publications (1)

Publication Number Publication Date
WO2006090781A1 true WO2006090781A1 (ja) 2006-08-31

Family

ID=36927419

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/303277 WO2006090781A1 (ja) 2005-02-24 2006-02-23 フィルタリングルール分析方法及びシステム

Country Status (3)

Country Link
US (1) US7792775B2 (ja)
JP (1) JP4662080B2 (ja)
WO (1) WO2006090781A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104585A (ja) * 2007-08-08 2009-05-14 Mitsubishi Electric R & D Centre Europe Bv 電子デバイスにおけるセキュリティルールの衝突を管理するオンラインの方法、コンピュータプログラム、及びセキュリティルールの衝突を管理することが可能な電子デバイス
JP2009105879A (ja) * 2007-08-08 2009-05-14 Mitsubishi Electric R & D Centre Europe Bv 電子デバイスにおけるセキュリティルールの衝突を管理する方法、コンピュータプログラム、及びセキュリティルールの衝突を管理することが可能な電子デバイス
JP2009217392A (ja) * 2008-03-07 2009-09-24 Nec Corp メッセージ監視システムおよびメッセージフィルタの最適化方法
JP2011060249A (ja) * 2009-09-15 2011-03-24 Kddi Corp ファイアウォールに対するポリシ情報表示方法、管理装置及びプログラム
JP2015508538A (ja) * 2012-12-03 2015-03-19 ▲ホア▼▲ウェイ▼技術有限公司 ポリシー処理方法およびネットワークデバイス
JP2021010098A (ja) * 2019-07-01 2021-01-28 富士通株式会社 探索プログラム、探索方法、および、情報処理装置
JP2021516017A (ja) * 2018-03-14 2021-06-24 サフラン・エアクラフト・エンジンズ 産業機器のリモートメンテナンスのためのセキュアなリモートメンテナンス装置および方法
JPWO2020184597A1 (ja) * 2019-03-14 2021-11-25 日本電気株式会社 ルール統合装置、ルール統合方法及びプログラム
US11323417B2 (en) 2018-03-01 2022-05-03 Fujitsu Limited Network management apparatus, network management method, and non-transitory computer-readable storage medium

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987149B2 (en) * 2006-03-10 2011-07-26 Trilogy Intellectual Property Holdings, Inc. Configuration mapping using a multi-dimensional rule space and rule consolidation
US7685271B1 (en) * 2006-03-30 2010-03-23 Symantec Corporation Distributed platform for testing filtering rules
US20080051989A1 (en) * 2006-08-25 2008-02-28 Microsoft Corporation Filtering of data layered on mapping applications
US7953895B1 (en) * 2007-03-07 2011-05-31 Juniper Networks, Inc. Application identification
US20080232359A1 (en) * 2007-03-23 2008-09-25 Taeho Kim Fast packet filtering algorithm
US8020191B2 (en) * 2007-06-19 2011-09-13 International Business Machines Corporation Method and system for determining policy similarities
US20090097418A1 (en) * 2007-10-11 2009-04-16 Alterpoint, Inc. System and method for network service path analysis
US8468113B2 (en) * 2009-05-18 2013-06-18 Tufin Software Technologies Ltd. Method and system for management of security rule set
US8458766B2 (en) * 2009-05-18 2013-06-04 Tufin Software Technologies Ltd. Method and system for management of security rule set
US8407789B1 (en) * 2009-11-16 2013-03-26 Symantec Corporation Method and system for dynamically optimizing multiple filter/stage security systems
JP4861539B1 (ja) * 2010-06-02 2012-01-25 パナソニック株式会社 通信制御装置およびパケットフィルタリング方法
US8914841B2 (en) 2010-11-24 2014-12-16 Tufin Software Technologies Ltd. Method and system for mapping between connectivity requests and a security rule set
US8955151B2 (en) * 2011-04-30 2015-02-10 Vmware, Inc. Dynamic management of groups for entitlement and provisioning of computer resources
US8909584B2 (en) 2011-09-29 2014-12-09 International Business Machines Corporation Minimizing rule sets in a rule management system
JPWO2013172309A1 (ja) * 2012-05-14 2016-01-12 日本電気株式会社 ルール発見システムと方法と装置並びにプログラム
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US8769679B1 (en) * 2012-12-17 2014-07-01 International Business Machines Corporation Tuning of data loss prevention signature effectiveness
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US9276904B2 (en) 2014-02-20 2016-03-01 Nicira, Inc. Specifying point of enforcement in a firewall rule
FR3019417B1 (fr) * 2014-03-26 2017-07-07 Bull Sas Procede de traitement d'un message dans un dispositif d'interconnexion
US9667596B2 (en) 2014-06-04 2017-05-30 Bank Of America Corporation Firewall policy comparison
US9391955B2 (en) * 2014-06-04 2016-07-12 Bank Of America Corporation Firewall policy converter
US9734450B2 (en) 2014-06-05 2017-08-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Data loss prevention to remove false positives
EP3035274A1 (en) * 2014-12-17 2016-06-22 Tata Consultancy Services Limited Interpretation of a dataset
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US9680706B2 (en) 2015-06-30 2017-06-13 Nicira, Inc. Federated firewall management for moving workload across data centers
WO2017105452A1 (en) * 2015-12-17 2017-06-22 Hewlett Packard Enterprise Development Lp Reduced orthogonal network policy set selection
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
US10594573B2 (en) * 2016-01-08 2020-03-17 Secureworks Corp. Systems and methods for rule quality estimation
US10187270B2 (en) * 2016-01-15 2019-01-22 Cisco Technology, Inc. Approach to visualize current and historical access policy of a group based policy
US10348685B2 (en) * 2016-04-29 2019-07-09 Nicira, Inc. Priority allocation for distributed service rules
US10135727B2 (en) 2016-04-29 2018-11-20 Nicira, Inc. Address grouping for distributed service rules
US11171920B2 (en) 2016-05-01 2021-11-09 Nicira, Inc. Publication of firewall configuration
US11425095B2 (en) 2016-05-01 2022-08-23 Nicira, Inc. Fast ordering of firewall sections and rules
US11258761B2 (en) 2016-06-29 2022-02-22 Nicira, Inc. Self-service firewall configuration
US11082400B2 (en) 2016-06-29 2021-08-03 Nicira, Inc. Firewall configuration versioning
KR102424186B1 (ko) * 2016-08-18 2022-07-21 삼성에스디에스 주식회사 룰 병합 방법 및 장치
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
US10715554B2 (en) * 2018-09-26 2020-07-14 EMC IP Holding Company LLC Translating existing security policies enforced in upper layers into new security policies enforced in lower layers
US11310202B2 (en) 2019-03-13 2022-04-19 Vmware, Inc. Sharing of firewall rules among multiple workloads in a hypervisor
US11539622B2 (en) * 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152573A (ja) * 1993-11-29 1995-06-16 Atr Tsushin Syst Kenkyusho:Kk 最適ルール作成装置
JP2004287810A (ja) * 2003-03-20 2004-10-14 Nec Corp 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム
JP2004320267A (ja) * 2003-04-15 2004-11-11 Nec Software Chubu Ltd 障害通報装置および障害通報方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3736173B2 (ja) * 1998-05-19 2006-01-18 株式会社日立製作所 ネットワーク管理システム
CA2287689C (en) 1998-12-03 2003-09-30 P. Krishnan Adaptive re-ordering of data packet filter rules
JP2001175672A (ja) 1999-12-17 2001-06-29 Ricoh Co Ltd 情報フィルタリングシステム、その方法及びその方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US6807576B1 (en) * 2000-09-08 2004-10-19 International Business Machines Corporation Method and system for determining and graphically representing frame classification rule relationships
US7003562B2 (en) * 2001-03-27 2006-02-21 Redseal Systems, Inc. Method and apparatus for network wide policy-based analysis of configurations of devices
JP4410432B2 (ja) * 2001-05-09 2010-02-03 株式会社日立製作所 フロー検索方法
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
JP2003333084A (ja) 2002-05-09 2003-11-21 Matsushita Electric Ind Co Ltd パケットフィルタリングルール設定方法
JP2004139177A (ja) 2002-10-15 2004-05-13 Sony Corp 情報検査方法及び装置、並びにプログラム
US7685271B1 (en) * 2006-03-30 2010-03-23 Symantec Corporation Distributed platform for testing filtering rules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152573A (ja) * 1993-11-29 1995-06-16 Atr Tsushin Syst Kenkyusho:Kk 最適ルール作成装置
JP2004287810A (ja) * 2003-03-20 2004-10-14 Nec Corp 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム
JP2004320267A (ja) * 2003-04-15 2004-11-11 Nec Software Chubu Ltd 障害通報装置および障害通報方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104585A (ja) * 2007-08-08 2009-05-14 Mitsubishi Electric R & D Centre Europe Bv 電子デバイスにおけるセキュリティルールの衝突を管理するオンラインの方法、コンピュータプログラム、及びセキュリティルールの衝突を管理することが可能な電子デバイス
JP2009105879A (ja) * 2007-08-08 2009-05-14 Mitsubishi Electric R & D Centre Europe Bv 電子デバイスにおけるセキュリティルールの衝突を管理する方法、コンピュータプログラム、及びセキュリティルールの衝突を管理することが可能な電子デバイス
JP2009217392A (ja) * 2008-03-07 2009-09-24 Nec Corp メッセージ監視システムおよびメッセージフィルタの最適化方法
JP2011060249A (ja) * 2009-09-15 2011-03-24 Kddi Corp ファイアウォールに対するポリシ情報表示方法、管理装置及びプログラム
US10225150B2 (en) 2012-12-03 2019-03-05 Huawei Technologies Co., Ltd. Policy processing method and network device
US9461888B2 (en) 2012-12-03 2016-10-04 Huawei Technologies Co., Ltd. Policy processing method and network device
JP2015508538A (ja) * 2012-12-03 2015-03-19 ▲ホア▼▲ウェイ▼技術有限公司 ポリシー処理方法およびネットワークデバイス
US11323417B2 (en) 2018-03-01 2022-05-03 Fujitsu Limited Network management apparatus, network management method, and non-transitory computer-readable storage medium
JP2021516017A (ja) * 2018-03-14 2021-06-24 サフラン・エアクラフト・エンジンズ 産業機器のリモートメンテナンスのためのセキュアなリモートメンテナンス装置および方法
JP7466452B2 (ja) 2018-03-14 2024-04-12 サフラン・エアクラフト・エンジンズ 産業機器のリモートメンテナンスのためのセキュアなリモートメンテナンス装置および方法
JPWO2020184597A1 (ja) * 2019-03-14 2021-11-25 日本電気株式会社 ルール統合装置、ルール統合方法及びプログラム
JP7156498B2 (ja) 2019-03-14 2022-10-19 日本電気株式会社 ルール統合装置、ルール統合方法及びプログラム
US11977839B2 (en) 2019-03-14 2024-05-07 Nec Corporation Rule integration device, rule integration method, and storage medium storing program
JP2021010098A (ja) * 2019-07-01 2021-01-28 富士通株式会社 探索プログラム、探索方法、および、情報処理装置
JP7326930B2 (ja) 2019-07-01 2023-08-16 富士通株式会社 探索プログラム、探索方法、および、情報処理装置

Also Published As

Publication number Publication date
JPWO2006090781A1 (ja) 2008-08-07
US7792775B2 (en) 2010-09-07
US20080215518A1 (en) 2008-09-04
JP4662080B2 (ja) 2011-03-30

Similar Documents

Publication Publication Date Title
WO2006090781A1 (ja) フィルタリングルール分析方法及びシステム
US7603445B1 (en) Managing and changing device settings
US6772223B1 (en) Configurable classification interface for networking devices supporting multiple action packet handling rules
US8005945B2 (en) Aggregating policy criteria parameters into ranges for efficient network analysis
US7505463B2 (en) Rule set conflict resolution
US8370808B2 (en) Apparatus and a method for generating a test case
US8238357B2 (en) VLAN communication inspection system, method and program
US20030182582A1 (en) Network security simulation system
CN109286511B (zh) 数据处理的方法及装置
WO2010056267A1 (en) Method and system for classifying date packets
CN106656591A (zh) 一种软件定义网络中多应用间的规则冲突检测与消除方法
Zhang et al. Verification and synthesis of firewalls using SAT and QBF
Capretta et al. Formal correctness of conflict detection for firewalls
CN1897564B (zh) 基于递归流分类算法的策略路由匹配方法
Zhang et al. Analysis of security of split manufacturing using machine learning
KR102340901B1 (ko) 방화벽 정책 시각화 방법 및 그 장치
US7546281B2 (en) Reduction of ternary rules with common priority and actions
JP5718166B2 (ja) 設計検証方法及びプログラム
EP2710767B1 (en) Method and system for determining network-wide interactions between forwarding elements in a network
Majhi et al. Placement of security devices in cloud data centre network: analysis and implementation
Cabasino et al. Identification of unbounded Petri nets from their coverability graph
Yin et al. Detection of conflicts caused by a combinations of filters based on spatial relationships
Romain et al. A specification method for analyzing fine grained network security mechanism configurations
US11184282B1 (en) Packet forwarding in a network device
JP7326930B2 (ja) 探索プログラム、探索方法、および、情報処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2007504771

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11885050

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06714417

Country of ref document: EP

Kind code of ref document: A1