WO2020090077A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法及び情報処理プログラム Download PDFInfo
- Publication number
- WO2020090077A1 WO2020090077A1 PCT/JP2018/040641 JP2018040641W WO2020090077A1 WO 2020090077 A1 WO2020090077 A1 WO 2020090077A1 JP 2018040641 W JP2018040641 W JP 2018040641W WO 2020090077 A1 WO2020090077 A1 WO 2020090077A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tree
- attack
- invasion
- path
- attack tree
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Definitions
- the present invention relates to evaluation of attack trees.
- Non-Patent Document 1 and Non-Patent Document 2 a technique for automatically generating such an attack tree will be referred to as an attack tree automatic generation technique.
- the attack tree automatic generation technique the exhaustiveness of the attack tree does not depend on the creativity and experience of a person, because the attack tree generation process does not require human intervention. In the present technology, it is inferred whether or not a given attack target succeeds, based on preliminarily prepared knowledge and inference rules.
- Non-Patent Document 3 the attack tree is evaluated using the form proof.
- the attack tree is generated in a certain model (Transition system model).
- the completeness and soundness of the attack tree is guaranteed in the model.
- the model is created by a person, variations in the model may occur due to differences in experience and knowledge.
- the conventional technique has a problem that the comprehensiveness of the generated attack tree remains questionable.
- the present invention mainly aims to solve such problems. Specifically, the present invention mainly aims to enhance the exhaustiveness of the attack tree.
- the information processing apparatus is A first attack tree acquisition unit that acquires an attack tree for an information system as a first attack tree based on inference using predicate logic; Using the network configuration information indicating the network configuration of the information system and the invasion procedure information indicating the invasion procedure expected in the invasion of the information system, the invasion route to the information system is covered and the information system is displayed.
- a second attack tree generation unit that generates an attack tree that reflects the invasion procedure of as a second attack tree, It has a tree comparison unit that compares the first attack tree and the second attack tree.
- the completeness of the first attack tree is evaluated. can do. For this reason, the evaluation result can be fed back to the procedure for generating the first attack tree, and the completeness of the first attack tree can be improved.
- FIG. 3 is a diagram showing a hardware configuration example of the exhaustiveness evaluation apparatus according to the first embodiment.
- FIG. 3 is a diagram showing a functional configuration example of the comprehensiveness evaluation apparatus according to the first embodiment.
- 3 is a flowchart showing an operation example of the exhaustiveness evaluation apparatus according to the first embodiment.
- FIG. 4 is a diagram showing an example of a tree representing an inference process according to the first embodiment.
- FIG. 3 is a diagram showing an internal configuration example of a gold tree generation unit according to the first embodiment.
- FIG. 6 is a flowchart showing an operation example of the gold tree generation unit according to the first embodiment.
- 1 is a diagram showing an example of a network configuration of a control system according to the first embodiment.
- FIG. 3 is a diagram showing an internal configuration example of a tree comparison unit according to the first embodiment.
- 3 is a flowchart showing an operation example of a tree comparison unit according to the first embodiment.
- FIG. 4 is a diagram showing pseudo code for realizing the comparison operation according to the first embodiment.
- FIG. 9 is a diagram showing an internal configuration example of a tree comparison unit according to the second embodiment.
- FIG. 9 is a flowchart showing an operation example of a tree comparison unit according to the second embodiment.
- FIG. 8 is a diagram showing an example of a failure tree according to the second embodiment.
- FIG. 9 is a diagram showing pseudo code for realizing the comparison operation according to the second embodiment.
- FIG. 3 is a diagram showing an example of an evaluation tree including AND nodes and OR nodes according to the first embodiment.
- FIG. 1 shows a hardware configuration example of an exhaustiveness evaluation apparatus 100 according to this embodiment.
- the completeness evaluation device 100 corresponds to an information processing device.
- the operation performed by the exhaustiveness evaluation apparatus 100 corresponds to an information processing method and an information processing program.
- the comprehensiveness evaluation device 100 is a computer.
- the completeness evaluation apparatus 100 includes, as hardware, a processor 901, a main storage device 902, an auxiliary storage device 903, a communication device 904, a keyboard 905, a mouse 906, and a display 907.
- the auxiliary storage device 903 stores a program that implements the functions of an evaluation tree generation unit 101, a gold tree generation unit 102, and a tree comparison unit 103, which will be described later with reference to FIG.
- the program is loaded from the auxiliary storage device 903 to the main storage device 902.
- the processor 901 executes the program and causes the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103, which will be described later, to operate.
- the main storage device 902 or the auxiliary storage device 903 stores data used for the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103. Further, the main storage device 902 or the auxiliary storage device 903 stores data indicating the processing results of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103.
- the communication device 904 is connected to the Internet via, for example, a LAN (Local Area Network).
- the keyboard 905 and the mouse 906 are used by the user of the exhaustiveness evaluation apparatus 100 to input various instructions to the exhaustiveness evaluation apparatus 100.
- the display 907 is used to display various information to the user of the exhaustiveness evaluation apparatus 100.
- FIG. 2 shows a functional configuration example of the exhaustiveness evaluation apparatus 100 according to the present embodiment.
- the exhaustiveness evaluation apparatus 100 includes an evaluation tree generation unit 101, a gold tree generation unit 102, and a tree comparison unit 103.
- the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103 are realized by a program, for example. Then, the program is executed by the processor 901.
- FIG. 2 schematically illustrates a state in which the processor 901 is executing a program that realizes the functions of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103.
- the evaluation tree generation unit 101 generates an attack tree for an attack target information system based on inference using a predicate logic such as Prolog.
- the attack tree generated by the evaluation tree generator 101 is called an evaluation tree.
- the evaluation tree generation unit 101 generates an evaluation tree using the technique of Non-Patent Document 1 or Non-Patent Document 2, for example.
- the evaluation tree includes a plurality of attack paths (hereinafter, also simply referred to as paths) including a plurality of attack steps.
- the evaluation tree corresponds to the first attack tree. Therefore, the evaluation tree generation unit 101 corresponds to the first attack tree acquisition unit.
- the process performed by the evaluation tree generation unit 101 corresponds to the first attack tree acquisition process.
- the gold tree generation unit 102 generates an attack tree that covers the invasion route to the information system that is the attack target and reflects the invasion procedure to the information system.
- the attack tree generated by the gold tree generation unit 102 is called a gold tree. Similar to the evaluation tree, the gold tree includes a plurality of attack paths including a plurality of attack steps.
- the gold tree corresponds to the second attack tree. Therefore, the gold tree generation unit 102 corresponds to the second attack tree generation unit.
- the processing performed by the gold tree generation unit 102 corresponds to the second attack tree generation processing.
- the tree comparison unit 103 compares the evaluation tree with the gold tree. When the plurality of attack steps included in the specific attack path included in the gold tree are not included in the evaluation tree in the same order as the gold tree, the tree comparison unit 103 outputs the specific attack path to the display 907. ..
- the process performed by the tree comparison unit 103 corresponds to the tree comparison process.
- Data used by the evaluation tree generation unit 101 and the gold tree generation unit 102 to generate an attack tree include system knowledge 104, attack knowledge 105, an initial invasion template 106, an invasion procedure template 107, and an invasion procedure conversion table 108.
- the system knowledge 104, attack knowledge 105, initial invasion template 106, invasion procedure template 107, and invasion procedure conversion table 108 are stored in the main storage device 902 or the auxiliary storage device 903.
- the processor 901 When the processor 901 operates as the evaluation tree generator 101 and the gold tree generator 102, the processor 901 reads out the system knowledge 104, attack knowledge 105, initial invasion template 106, invasion procedure template 107, and invasion procedure conversion table 108. Details of the system knowledge 104, attack knowledge 105, initial invasion template 106, invasion procedure template 107, and invasion procedure conversion table 108 will be described later.
- FIG. 3 shows an operation example of the exhaustiveness evaluation apparatus 100 according to the present embodiment. An operation example of the exhaustiveness evaluation apparatus 100 according to the present embodiment will be described with reference to FIG.
- the evaluation tree generation unit 101 generates an evaluation tree.
- the evaluation tree generator 101 generates an evaluation tree on the basis of inference using a predicate logic such as Prolog. As described above, the evaluation tree generation unit 101 generates an evaluation tree using the technique of Non-Patent Document 1 or Non-Patent Document 2, for example.
- the inference process is output as a log from the inference-based attack tree generation technology. In Prolog, backward inference is performed in which a recursive procedure searches for whether a given proposition (attack target) is satisfied.
- the inference process log is a log that describes successful rules and failed rules in backward inference.
- the comprehensiveness evaluation apparatus 100 is prepared in advance with knowledge representing the information system of the attack target (network configuration, vulnerable portion, precondition of attacker), and inference rules.
- system knowledge 104 shown in FIG. 2 is prepared in the exhaustiveness evaluation apparatus 100 as knowledge representing the information system of the attack target.
- the knowledge of the network configuration of the attacked information system in the system knowledge 104 indicates the network configuration of the information system. Therefore, the knowledge corresponds to the network configuration information.
- the attack knowledge 105, the initial invasion template 106, and the invasion procedure template 107 shown in FIG. 2 are prepared in the exhaustiveness evaluation apparatus 100.
- the initial invasion template 106 and the invasion procedure template 107 show the invasion procedure in an attack.
- the initial invasion template 106 and the invasion procedure template 107 correspond to the invasion procedure information.
- the evaluation tree generation unit 101 uses the above-mentioned knowledge and inference rules to derive all cases (attack paths) in which the attack target is established by backward inference. .. Then, the evaluation tree generating unit 101 generates an evaluation tree by connecting all attack paths.
- FIG. 4 shows an example of the attack knowledge 105.
- FIG. 5 shows an example of the system knowledge 104. 4 and 5 are written according to the Prolog notation method, the notation method is not limited to the method shown in FIGS. 4 and 5.
- the attack knowledge 105 and the system knowledge 104 are input to the evaluation tree generation unit 101 and, for example, the question “manipulateProg (a, c) (attacker a can rewrite the program of the machine c)” is asked,
- the inference process can be represented by a tree as shown in FIG.
- FIG. 6 the description of the process of failure of inference is stopped when the goal written in the body part fails for the first time.
- True pass (c, p3) True)
- Any attacker a can rewrite the program of the machine c” (manipulateProg (a, c) True).
- step S102 the gold tree generation unit 102 generates a gold tree. More specifically, the Gold Tree generation unit 102 exhaustively lists the intrusion routes of the network from the system knowledge 104. Then, the gold tree generation unit 102 uses the initial invasion template 106 and the invasion procedure template 107 to generate an invasion route to the information system and generate a gold tree in which the invasion procedure to the information system is reflected.
- step S103 the tree comparison unit 103 compares the evaluation tree and the gold tree and extracts the difference.
- FIG. 8 shows an internal configuration example of the gold tree generation unit 102.
- the Gold Tree generation unit 102 is composed of a network coverage unit 1021 and a template application unit 1022.
- the gold tree generation unit 102 also generates a gold tree using the system knowledge 104, the initial invasion template 106, and the invasion procedure template 107.
- FIG. 9 shows an operation example of the gold tree generation unit 102.
- the network coverage unit 1021 extracts information of the information system of the attack target (network configuration, vulnerable portion, precondition of attacker) from the system knowledge 104.
- the system knowledge 104 is configured in a mechanically readable format, such as an XML format, for the evaluation tree generation unit 101 to derive an attack path on an inference basis.
- the network coverage unit 1021 extracts information about all machines existing in the attack target information system.
- the network coverage unit 1021 enumerates all invasion routes that do not include duplication to the relevant machine that can be taken when a certain machine in the information system is targeted for attack.
- the system knowledge 104 includes information on the network configuration of the information system.
- the network coverage unit 1021 can extract a logically and physically consistent intrusion route using the network configuration of the information system.
- FIG. 10 shows a simplified network configuration of the control system as an example of the network configuration of the information system.
- the controller C that controls the control device is connected to the control network and the maintenance network.
- a maintenance computer B that maintains the controller C is connected to the maintenance network.
- a controller C and a display computer A for displaying the control network are connected to the control network.
- the display computer A, the maintenance computer B, and the controller C are also simply referred to as A, B, and C, respectively.
- A, B, C is the machine list.
- the attack target machine is the controller C, all possible invasion routes to the controller C without considering the network configuration are “C, CB, CBA, CA, CAB”.
- the network coverage unit 1021 collects the extracted invasion routes and generates a tree that covers the invasion routes.
- a tree covering the invasion routes in consideration of the network configuration is as shown in FIG.
- an attacker directly operates each node to invade a parent node regardless of the hierarchical position of each node (regardless of whether each node is a terminal node or an intermediate node). I assume that. Note that, in FIG. 11, for the sake of convenience, the nodes of the enterprise network are arranged below the display computer A.
- step S1024 the template application unit 1022 uses the initial invasion template 106 and the invasion procedure template 107 to generate a tree in which the invasion procedure is reflected.
- FIG. 12 shows an example of the initial invasion template 106.
- the initial invasion there are possible procedures such as login with a stolen password and malware infection via USB memory.
- FIG. 13 shows an example of the initial invasion template 106 in which specific procedures are described.
- FIG. 14 shows an example of the invasion procedure template 107.
- the invasion procedure template 107 is a table in which the invasion procedures are listed for each machine type. The steps of invasion are execution of arbitrary programs by buffer overflow, remote desktop connection with stolen password, etc.
- FIG. 15 shows an example of the invasion procedure template 107 in which specific procedures are described.
- the procedures described in the invasion procedure template 107 and the initial invasion template 106 can be extracted from a formalized public database such as Reference 1, Reference 2 and used.
- FIG. 17 shows a tree in which a specific procedure is described.
- FIG. 18 shows an example of a tree in which the description of FIG. 17 is changed to a machine-readable description.
- FIG. 18 corresponds to a gold tree.
- Reference 1 MITER, ATT & CK, https: // attack. mitre. org / wiki / Main_Page Reference 2: CAPEC, http: // capec. mitre. org / index. html
- the gold tree generation unit 102 uses the evaluation tree. Generate a gold tree by designating only the machines listed in the node at the top of as the attack target.
- the invasion procedure template 107 and the initial invasion template 106 may be commonly used for all machines.
- the invasion procedure template 107 and the initial invasion template 106 may be prepared for each type of machine such as a normal PC (Personal Computer), a server, and a controller. Further, the invasion procedure template 107 and the initial invasion template 106 may be prepared for each version of the OS (Operating System) or application program installed in the machine.
- FIG. 19 shows an internal configuration example of the tree comparison unit 103.
- the tree comparison unit 103 includes a path extraction unit 1031 and a path comparison unit 1032.
- the tree comparison unit 103 also refers to the invasion procedure conversion table 108.
- FIG. 20 shows an operation example of the tree comparison unit 103.
- the path extraction unit 1031 extracts a path from the gold tree.
- the path extraction unit 1031 extracts a path by tracing the parent node from the leaf node of the Gold Tree to the root node.
- the following 10 paths are extracted from the Gold Tree in FIG. Note that, in the following, a part of the notation in FIG. 18 is omitted.
- the path extraction unit 1031 extracts a path from the evaluation tree.
- the path extraction unit 1031 extracts a path by tracing the parent node from the leaf node of the evaluation tree to the root node.
- the evaluation tree may include AND nodes.
- the path extracting unit 1031 extracts paths in the order of all combinations for child nodes (AND condition) connected to the AND node. For example, in the example of FIG. 28, the following six paths are extracted.
- the path extracting unit 1031 recursively finds a path from each node toward the terminal node, and changes the way of connecting the path with the parent node according to the relationship with the parent node (whether it is OR or AND).
- ControllerC, _) E) localControl (_, machineB, passwordB) ⁇ control (_, machineB, _) ⁇ manipulateProgram (machineB, controllerC, tool) ⁇ manipulateProgram (_, controller) _ F) usbMalwareRun (_, machineB, _) ⁇ malwareInfection (_, machineB, _) ⁇ control (_, machineB, _) ⁇ manipulateProgram (machineB, controllerC, rule) _proto, controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (protocol), controller (proto), controller (protocol), controller (proto), controller (protocol), controller (proto), controller (protocol), controller (proto), controller (protocol), controller (proto), controller (protocol), controller (proto), controller (protocol),
- step S1033 the path comparison unit 1032 compares the paths extracted from each of the gold tree and the evaluation tree. Then, the path comparison unit 1032 extracts from the evaluation tree a path that always includes an attack step in the paths of the Gold tree.
- the attack step of the attack path extracted from the Gold Tree is represented by gStep (members are a, nf, nt, i, s).
- the attack step gStep is the subject gStep.
- s is the invasion procedure gStep. a by using the supplementary information gStep. i using the attack source node gStep. nf to the attack destination node gStep. It means attacking nt.
- gStep. a is malEmailClick.
- gStep. nf is x.
- gStep. nt is m1.
- gStep. i is ""(don't care).
- gStep. s is ""(don't care).
- the attack step of the attack path extracted from the evaluation tree is represented as aStep (members are a, nf, nt, i, invasion procedure s).
- the attack step aStep is the main aStep.
- s is the invasion procedure aStep. a by using the supplementary information aStep. i using the attack source node aStep.
- nf to the attack destination node aStep. It means attacking nt.
- aStep. a is remExp.
- aStep. s is a.
- vStep. nf is x.
- aStep. nt is m1.
- aStep. i is vul1.
- Multiple invasion procedures (or conditions) in one attack step such as "access (x, m1,, _), clickMalEmail (a, x, m1, _), control (a, x, _, _)" ) May be included.
- Such attack steps are treated as a set of invasion procedures regardless of the number of elements.
- Each attack path extracted from the Gold Tree is an ordered list whose elements are attack steps (invasion procedures).
- Each attack path extracted from the evaluation tree is an ordered list whose elements are attack steps (a set of invasion procedures).
- the path comparison unit 1032 compares the attack path of the Gold tree with the attack path of the evaluation tree as follows.
- the path comparison unit 1032 picks up the attack paths extracted from the gold tree one by one, and further picks up the attack paths extracted from the evaluation tree one by one. Next, the path comparison unit 1032 searches the evaluation tree for an attack path that includes all the elements (invasion procedures) included in the attack path of the Gold Tree in order. Each element of the attack path of the evaluation tree is represented by a set of invasion procedures. Therefore, the path comparison unit 1032 determines whether or not the invasion procedure of the attack step of the Gold Tree is included in the set of invasion procedures of the evaluation tree.
- the invasion procedure conversion table 108 is prepared so as to obtain the correspondence relationship of.
- Each invasion technique is previously associated with an attack technique identifier such as CAPEC or ATT & CK.
- attack technique identifier such as CAPEC or ATT & CK.
- the invasion procedure conversion table 108 in addition to the corresponding attack signature, subject, supplemental information, attack source node, attack destination node, the corresponding identifier (CAPEC or ATT & CK) is described.
- the path comparing unit 1032 compares the attack path of the Gold tree with the attack path of the evaluation tree, and the attack path of the evaluation tree corresponding to the attack path of the Gold tree is output in a dictionary format. Such a comparison operation of the path comparison unit 1032 is referred to as a matched AttackPathDict.
- FIG. 23 shows pseudo code (compare Attack Paths) that implements the comparison operation of the path comparison unit 1032.
- Each entry (gPath) that is an empty set ( ⁇ ) in the matched AttackPathDict is the difference (attack path included in the gold tree but not included in the evaluation tree) to be obtained.
- step S1034 the path comparison unit 1032 outputs the evaluation result. For example, when there are uncovered paths in the evaluation tree, the path comparison unit 1032 displays the uncovered paths in the evaluation tree on the display 907.
- the user of the comprehensiveness evaluation apparatus 100 can revise the system knowledge 104, attack knowledge 105, etc. by analyzing the path displayed on the display 907, and can improve the comprehensiveness of the evaluation path.
- the completeness of the evaluation tree can be evaluated. Further, in the present embodiment, it is possible to extract a path that is not covered by the evaluation tree and present the extracted path to the user of the coverage evaluation apparatus 100. Therefore, the user can feed back the presented contents to the evaluation tree generation procedure, and as a result, the completeness of the evaluation tree can be improved.
- Embodiment 2 when a path that is not covered by the evaluation tree is extracted, the extracted path is only presented to the user. In the present embodiment, a configuration will be described that indicates the reason why, when a path that is not covered by the evaluation tree is extracted, the path is not covered by the evaluation tree.
- FIG. 24 shows an internal configuration example of the tree comparison unit 103 according to this embodiment.
- a failure tree generation unit 1033 is added as compared with the configuration of FIG.
- the failure tree generation unit 1033 generates an attack tree including an element for which inference has failed in inference using predicate logic for the information system. That is, the failure tree generation unit 1033 generates an attack tree composed of paths for which the inference has failed in the generation of the evaluation tree by the evaluation tree generation unit 101.
- the attack tree generated by the failure tree generator 1033 is called a failure tree. Similar to the evaluation tree, the failure tree includes a plurality of attack paths including a plurality of attack steps.
- the failure tree generation unit 1033 corresponds to the failure tree acquisition unit.
- the path extraction unit 1031 also extracts paths from the failure tree.
- the path comparison unit 1032 compares the evaluation tree and the gold tree, and also compares the gold tree and the failure tree. Then, when a plurality of attack steps included in the specific attack path included in the gold tree are not included in the evaluation tree or the failure tree in the same order as the gold tree, the path comparison unit 1032 determines the specific attack path.
- the attack path is output to the display 907. Further, the path comparison unit 1032 outputs to the display 907 a message notifying that it is presumed that there is a defect in the inference using the predicate logic, that is, the system knowledge 104, the attack knowledge 105, and the like.
- the path comparison unit 1032 determines that a plurality of attack steps included in a specific attack path included in the gold tree are not included in the evaluation tree in the same order as the gold tree but are included in the failure tree. Also outputs the specific attack path to the display 907. Furthermore, the path comparison unit 1032 outputs a message to the display 907 notifying that it is estimated that there is no defect in the inference using the predicate logic, that is, the system knowledge 104, the attack knowledge 105, and the like.
- FIG. 25 shows an operation example of the tree comparison unit 103 according to the present embodiment.
- the failure tree generation unit 1033 generates a failure tree.
- the failure tree generation unit 1033 can be realized by modifying the processing of the evaluation tree generation unit 101.
- the evaluation tree generation unit 101 uses system knowledge 104, attack knowledge 105, and the like to derive all cases (attack paths) in which an attack target is established by backward inference.
- the evaluation tree generation unit 101 can extract the attack tree of FIG. 7 through the inference process of FIG. 6 by using the attack knowledge 105 and the system knowledge 104 described in FIGS. 4 and 5.
- the inference process of FIG. 6 includes a process of inference failure. Therefore, the failure tree generation unit 1033 can obtain the failure tree by selecting only the paths for which the inference has failed.
- the evaluation tree generation unit 101 divides the inference process for each inference process that is True. Further, the evaluation tree generation unit 101 excludes the inference process of Fail. By doing so, the evaluation tree generator 101 generates an evaluation tree.
- the failure tree generation unit 1033 does not divide the inference process for each inference process that is True, but divides the inference process for each inference process that is Fail. Then, the failure tree generation unit 1033 eliminates the inference process that is True.
- FIG. 26 shows an example of a failure tree in which only the failure paths are picked up from the tree of FIG. 6 and shaped. The failure tree generation unit 1033 ends the process when it is first determined that the pickup of the failed path has failed (the condition is False). When the evaluation tree of FIG. 7 and the failure tree of FIG. 26 are combined, the tree of FIG. 6 is formed, and it can be seen that the evaluation tree and the failure tree are complementary.
- steps S2032 and S2033 the path extraction unit 1031 extracts a path from the gold tree and the evaluation tree. Since steps S2032 and S2033 are the same as steps S1031 and S1032 described in the first embodiment, detailed description thereof will be omitted.
- step S2034 the path extraction unit 1031 extracts a path from the failure tree. Since the process of step S2034 is also the same as steps S2032 and S2033, detailed description thereof will be omitted.
- step S2035 the path comparison unit 1032 compares the paths extracted from each of the gold tree and the evaluation tree. Then, the path comparison unit 1032 uses the comparison procedure shown in FIG. 23 to acquire matchedAttackPathDict as the comparison result.
- step S2036 the path comparison unit 1032 compares the paths extracted from each of the gold tree and the failure tree by the same method.
- the procedure of step S2036 is basically the same as that of step S2035.
- the difference is that the attack path of the failure tree that partially matches the attack path of the gold tree and the attack path of the gold tree may be compared.
- the attack step of the attack path of the failure tree is represented by fStep (members are a, nf, nt, i, s).
- the path comparison unit 1032 compares the attack path of the gold tree with the attack path of the failure tree, and the attack path of the failure tree corresponding to the attack path of the gold tree is output in a dictionary format.
- Such a comparison operation of the path comparison unit 1032 is referred to as matchedFailedAttackPathDict.
- FIG. 27 shows pseudo code (compareFailedPaths) that implements the comparison operation of the path comparison unit 1032.
- step S2037 the path comparison unit 1032 generates an evaluation result using the matchedattackPathDict and the matchedFailedAttackPathDict.
- the path comparison unit 1032 obtains two types of information from the matched AttackPathDict.
- the first information is information on attack paths that cover the gold tree in the evaluation tree.
- the information on this attack path is the information (COVERED_ATTACK_PATH_SET) of the attack path (aPath) of the evaluation tree defined for each entry (gPath) that is not an empty set ( ⁇ ) in the matched AttackPathDict.
- This set is defined as a set of pairs ((gPath, aPath)) of the attack path of the Gold tree and the attack path of the corresponding evaluation tree.
- a plurality of pairs of the evaluation trees are included in the set ((((gPath1, aPath1), (gPath1, aPath2), (gPath1, aPath3). ) ⁇ ).
- the second information is information about attack paths not covered by the evaluation tree.
- the information on this attack path is the information on the set (UNCOVERED_PATH_SET) of each entry (gPath) which is an empty set ( ⁇ ) in the matched AttackPathDict.
- the inference rules and prerequisites required for automatic generation of attack trees may include attack paths that do not need to be covered, but they must be covered due to a mistake in setting the inference rules and prerequisites.
- the path may be missing.
- One kind of information can be obtained from the matchedFailedAttackPathDict.
- the information obtained from the matchedFailedAttackPathDict is the information on the attack path that covers the Gold tree in the failure tree halfway.
- This attack path information is information on a set (COVERED_FAILED_PATH_SET) of attack paths (fPath) of the failure tree defined for each entry (gPath) that is not an empty set ( ⁇ ) in the matchedFailedAttackPathDict.
- This set is defined as a set of pairs ((gPath, fPath)) of the attack path of the Gold tree and the attack path of the corresponding failure tree.
- a plurality of pairs of failure trees are included in the set (((gPath1, fPath1), (gPath1, fPath2), (gPath1, fPath3). ) ⁇ ).
- UNCOVERED_PATH_SET is included in COVERED_FAILED_PATH_SET
- the gPath becomes the basis (failure of derivation) of the last invasion procedure (condition) in the corresponding fPath.
- This set of pairs of gPath and fPath is called NORMAL_UNCOVERED_PATH_SET.
- UNCOVERED_PATH_SET If gPath included in UNCOVERED_PATH_SET is not included in COVERED_FAILED_PATH_SET, it is expected that there is some defect in the prerequisite knowledge or inference rules given to the inference engine. This set of gPaths is called ABNORMAL_UNCOVERED_PATH_SET.
- the path comparison unit 1032 outputs the evaluation result to the display 907. Specifically, the path comparison unit 1032 displays NORMAL_UNCOVERED_PATH_SET and ABNORAML_UNCOVERED_PATH_SET as the evaluation result. For NORMAL_UNCOVERED_PATH_SET, the path comparison unit 1032 also displays the reason for failure if the reason for failure exists. Regarding ABNORAML_UNCOVERED_PATH_SET, the path comparison unit 1032 can indicate to the user that the relevant path may be missing from the evaluation tree because the system knowledge 104, attack knowledge 105, etc. are defective.
- the evaluation tree generator 101 is supposed to generate an evaluation tree.
- a device external to the exhaustiveness evaluation apparatus 100 may generate an evaluation tree by a method similar to that of the evaluation tree generation unit 101.
- the exhaustiveness evaluation apparatus 100 is provided with a configuration (evaluation tree acquisition unit) that acquires an evaluation tree generated externally.
- the evaluation tree acquisition unit corresponds to the first attack tree acquisition unit.
- the failure tree generator 1033 is supposed to generate a failure tree.
- a device external to the exhaustiveness evaluation apparatus 100 may generate a failure tree by a method similar to that of the failure tree generation unit 1033.
- the exhaustiveness evaluation apparatus 100 is provided with a configuration (failure tree acquisition unit) for acquiring a failure tree generated externally.
- the processor 901 shown in FIG. 1 is an IC (Integrated Circuit) that performs processing.
- the processor 901 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
- the main storage device 902 illustrated in FIG. 1 is a RAM (Random Access Memory).
- the auxiliary storage device 903 illustrated in FIG. 1 is a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), or the like.
- the communication device 904 illustrated in FIG. 1 is an electronic circuit that executes a communication process of data.
- the communication device 904 is, for example, a communication chip or a NIC (Network Interface Card).
- An OS is also stored in the auxiliary storage device 903. Then, at least part of the OS is loaded into the main storage device 902 and executed by the processor 901.
- the processor 901 executes a program that realizes the functions of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103 while executing at least a part of the OS.
- the processor 901 executes the OS, task management, memory management, file management, communication control, etc. are performed. Further, at least one of information, data, signal value, and variable value indicating the processing result of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103 is stored in the main storage device 902, the auxiliary storage device 903, the processor.
- the program that realizes the functions of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103 is a portable recording medium such as a magnetic disk, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD. It may be stored in the medium.
- the “part” of the evaluation tree generation unit 101, the gold tree generation unit 102, and the tree comparison unit 103 may be replaced with “circuit” or “process” or “procedure” or “processing”.
- the exhaustiveness evaluation apparatus 100 may be realized by a processing circuit.
- the processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
- the evaluation tree generation unit 101, the Gold tree generation unit 102, and the tree comparison unit 103 are each realized as a part of the processing circuit.
- the superordinate concept of the processor and the processing circuit is referred to as "processing circuit”. That is, each of the processor and the processing circuit is a specific example of “processing circuit”.
- 100 exhaustiveness evaluation device 101 evaluation tree generation unit, 102 gold tree generation unit, 103 tree comparison unit, 104 system knowledge, 105 attack knowledge, 106 initial invasion template, 107 invasion procedure template, 108 invasion procedure conversion table, 901 processor, 902 main storage device, 903 auxiliary storage device, 904 communication device, 905 keyboard, 906 mouse, 907 display, 1021 network coverage unit, 1022 template application unit, 1031 path extraction unit, 1032 path comparison unit, 1033 failure tree generation unit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
評価ツリー生成部(101)が、述語論理を用いた推論に基づく、情報システムについてのアタックツリーを評価ツリーとして生成する。ゴールドツリー生成部(102)が、情報システムのネットワーク構成が示されるネットワーク構成情報と情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映されるゴールドツリーを生成する。ツリー比較部(103)は、評価ツリーとゴールドツリーとを比較する。
Description
本発明は、アタックツリーの評価に関する。
近年、機密情報又は個人情報の漏えい事件、ランサムウェアによる被害等により、情報資産を取り扱うエンタープライズにおけるセキュリティの重要性が増している。また、制御システムのネットワーク化に伴い、発電プラント、ガスプラント等の重要インフラストラクチャーへのサイバー攻撃が脅威となりつつある。これらサイバー攻撃は、国家の安全保障を揺るがす重大な懸念事項となっている。重要インフラストラクチャーに対する攻撃の代表事例としてイランの原子力発電施設で起きたStuxnetが挙げられる。本事例では、USBメモリ経由で制御システムを操作する内部ネットワークのマシンがマルウェアに感染し、さらに遠心分離装置を制御するプログラムが改ざんされ、同装置の不正動作により濃縮ウランの製造に影響が出たと言われている。遠心分離装置などはインターネットに接続されていなかった(air-gapped)が、攻撃経路の1つとして、内部のスタッフが利用するUSBメモリがあったことが報告されている。このことから、あらかじめ様々な脅威を想定してセキュリティを向上させる必要があることがわかる。
セキュリティを向上させるためには、まず、攻撃目標に対する脅威とそのリスクを明確にするセキュリティ分析が重要である。セキュリティ分析では、攻撃目標に対する脅威をリストアップする。次に、発生頻度が高く重大な影響を持つ脅威に対して高いリスク値を割り当てる。そして、高いリスク値が割り当てられた脅威に優先的に適切な対策を実施していく。
脅威をリストアップする際に、リストアップ漏れがあっては意味が無い。そのため、アタックツリーなどのツールを用いて、攻撃目標への侵攻手順を系統的に抽出することが行われる。
従来、アタックツリーの作成は人の手で行われていた。そのため作成されたアタックツリーの質は、作成者の創造力、経験、スキルに依存していた。作成時にミスが混入する可能性もあり、作成されたアタックツリーの網羅性については常に疑問視されていた。
そこで、Prologなどの述語論理の推論エンジンを利用して、攻撃目標に対する侵攻手順を、与えられた前提知識をもとに推論し、推論過程からアタックツリーを自動生成する技術が考えられている(例えば、非特許文献1及び非特許文献2)。以降、このようなアタックツリーを自動生成する技術をアタックツリー自動生成技術と呼ぶ。アタックツリー自動生成技術によれば、アタックツリーの生成過程において人手を介さないため、アタックツリーの網羅性は人の創造性及び経験に依存しない。本技術では、事前に用意した前提知識と推論ルールをもとに、与えられた攻撃目標が成功するかを推論する。全ての組合せを試し、成功した推論過程のみをもとにアタックツリーを生成する。アタックツリーの作成に人の手を介さないため、作成者の能力やミスによる影響を受けにくい。
しかし、アタックツリー自動生成技術においても、推論エンジンに与える知識や推論ルールは人手で用意する必要がある。このため、アタックツリー自動生成技術を用いて生成されたアタックツリーについても網羅性の根拠を強く主張することができない。
また、非特許文献3の技術では、形式証明を利用してアタックツリーを評価する。アタックツリーはあるモデル(Transition system model)の中で生成される。アタックツリーの網羅性及び健全性は当該モデルの中で保証される。しかし、当該モデルは人が作成するため、経験及び知識の差異によるモデルのばらつきが発生し得る。また、モデルの作成に人為的ミスが入る可能性が高い。そのため、モデルの中で保証された網羅性や健全性には疑問が残る。
脅威をリストアップする際に、リストアップ漏れがあっては意味が無い。そのため、アタックツリーなどのツールを用いて、攻撃目標への侵攻手順を系統的に抽出することが行われる。
従来、アタックツリーの作成は人の手で行われていた。そのため作成されたアタックツリーの質は、作成者の創造力、経験、スキルに依存していた。作成時にミスが混入する可能性もあり、作成されたアタックツリーの網羅性については常に疑問視されていた。
そこで、Prologなどの述語論理の推論エンジンを利用して、攻撃目標に対する侵攻手順を、与えられた前提知識をもとに推論し、推論過程からアタックツリーを自動生成する技術が考えられている(例えば、非特許文献1及び非特許文献2)。以降、このようなアタックツリーを自動生成する技術をアタックツリー自動生成技術と呼ぶ。アタックツリー自動生成技術によれば、アタックツリーの生成過程において人手を介さないため、アタックツリーの網羅性は人の創造性及び経験に依存しない。本技術では、事前に用意した前提知識と推論ルールをもとに、与えられた攻撃目標が成功するかを推論する。全ての組合せを試し、成功した推論過程のみをもとにアタックツリーを生成する。アタックツリーの作成に人の手を介さないため、作成者の能力やミスによる影響を受けにくい。
しかし、アタックツリー自動生成技術においても、推論エンジンに与える知識や推論ルールは人手で用意する必要がある。このため、アタックツリー自動生成技術を用いて生成されたアタックツリーについても網羅性の根拠を強く主張することができない。
また、非特許文献3の技術では、形式証明を利用してアタックツリーを評価する。アタックツリーはあるモデル(Transition system model)の中で生成される。アタックツリーの網羅性及び健全性は当該モデルの中で保証される。しかし、当該モデルは人が作成するため、経験及び知識の差異によるモデルのばらつきが発生し得る。また、モデルの作成に人為的ミスが入る可能性が高い。そのため、モデルの中で保証された網羅性や健全性には疑問が残る。
Xinming Ou,Sudhakar Govindavajhala,Andrew W. Appel,MulVAL:A Logic-based Network Security Analyzer, Proceeding SSYM ’05 Proceedings of the 14th conference on USENIX Security Symposium-Volume 14
浅井健志、島邉遼佑、河内清人、サイバー攻撃対策の選定に向けたアタックツリーの自動生成、SCIS2018 暗号と情報セキュリティシンポジウム、1C1-1
Maxime Audinot, Sophie Pinchinat,Barbara Kordy, Is my attack tree correct? Extended version, CoRR abs/1706.08507 (2017)
このように、従来の技術では、生成されたアタックツリーの網羅性に疑問が残るという課題がある。
本発明は、このような課題を解決することを主な目的とする。具体的には、本発明は、アタックツリーの網羅性を高めることを主な目的とする。
本発明は、このような課題を解決することを主な目的とする。具体的には、本発明は、アタックツリーの網羅性を高めることを主な目的とする。
本発明に係る情報処理装置は、
述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得部と、
前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成部と、
前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較部とを有する。
述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得部と、
前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成部と、
前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較部とを有する。
本発明では、第1のアタックツリーを、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映される第2のアタックツリーと比較するため、第1のアタックツリーの網羅性を評価することができる。このため、評価結果を第1のアタックツリーの生成手順にフィードバックすることが可能になり、第1のアタックツリーの網羅性を高めることができる。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る網羅性評価装置100のハードウェア構成例を示す。
網羅性評価装置100は、情報処理装置に相当する。また、網羅性評価装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
***構成の説明***
図1は、本実施の形態に係る網羅性評価装置100のハードウェア構成例を示す。
網羅性評価装置100は、情報処理装置に相当する。また、網羅性評価装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
本実施の形態に係る網羅性評価装置100は、コンピュータである。
網羅性評価装置100は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903、通信デバイス904、キーボード905、マウス906及びディスプレイ907を備える。
補助記憶装置903には、図2を用いて後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムが記憶されている。当該プログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901が当該プログラムを実行して、後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の動作を行う。
主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103に用いられるデータが格納される。また、主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理結果を示すデータが格納される。
通信デバイス904は、例えばLAN(Local Area Network)を介してインターネットに接続されている。
キーボード905及びマウス906は、網羅性評価装置100のユーザが網羅性評価装置100に各種指示を入力するのに用いられる。
ディスプレイ907は、網羅性評価装置100のユーザに各種情報を表示するのに用いられる。
網羅性評価装置100は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903、通信デバイス904、キーボード905、マウス906及びディスプレイ907を備える。
補助記憶装置903には、図2を用いて後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムが記憶されている。当該プログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901が当該プログラムを実行して、後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の動作を行う。
主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103に用いられるデータが格納される。また、主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理結果を示すデータが格納される。
通信デバイス904は、例えばLAN(Local Area Network)を介してインターネットに接続されている。
キーボード905及びマウス906は、網羅性評価装置100のユーザが網羅性評価装置100に各種指示を入力するのに用いられる。
ディスプレイ907は、網羅性評価装置100のユーザに各種情報を表示するのに用いられる。
図2は、本実施の形態に係る網羅性評価装置100の機能構成例を示す。
網羅性評価装置100は、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103を有する。
前述したように、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、例えばプログラムで実現される。そして、当該プログラムはプロセッサ901で実行される。
図2では、プロセッサ901が評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行している状態を模式的に表している。
前述したように、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、例えばプログラムで実現される。そして、当該プログラムはプロセッサ901で実行される。
図2では、プロセッサ901が評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行している状態を模式的に表している。
評価ツリー生成部101は、Prologなどの述語論理を用いた推論に基づき、攻撃対象の情報システムについてのアタックツリーを生成する。評価ツリー生成部101が生成するアタックツリーを評価ツリーという。評価ツリー生成部101は、例えば、非特許文献1又は非特許文献2の技術を用いて評価ツリーを生成する。評価ツリーには、複数の攻撃ステップが含まれる攻撃パス(以下、単にパスともいう)が複数含まれる。
なお、評価ツリーは第1のアタックツリーに相当する。このため、評価ツリー生成部101は第1のアタックツリー取得部に相当する。また、評価ツリー生成部101により行われる処理は、第1のアタックツリー取得処理に相当する。
なお、評価ツリーは第1のアタックツリーに相当する。このため、評価ツリー生成部101は第1のアタックツリー取得部に相当する。また、評価ツリー生成部101により行われる処理は、第1のアタックツリー取得処理に相当する。
ゴールドツリー生成部102は、攻撃対象の情報システムへの侵攻経路が網羅され当該情報システムへの侵攻手順が反映されるアタックツリーを生成する。ゴールドツリー生成部102が生成するアタックツリーをゴールドツリーという。ゴールドツリーには、評価ツリー同様、複数の攻撃ステップが含まれる攻撃パスが複数含まれる。
ゴールドツリーは第2のアタックツリーに相当する。このため、ゴールドツリー生成部102は第2のアタックツリー生成部に相当する。また、ゴールドツリー生成部102により行われる処理は、第2のアタックツリー生成処理に相当する。
ゴールドツリーは第2のアタックツリーに相当する。このため、ゴールドツリー生成部102は第2のアタックツリー生成部に相当する。また、ゴールドツリー生成部102により行われる処理は、第2のアタックツリー生成処理に相当する。
ツリー比較部103は、評価ツリーとゴールドツリーとを比較する。ツリー比較部103は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリーに含まれていない場合に、当該特定の攻撃パスをディスプレイ907に出力する。
ツリー比較部103により行われる処理はツリー比較処理に相当する。
ツリー比較部103により行われる処理はツリー比較処理に相当する。
また、評価ツリー生成部101及びゴールドツリー生成部102がアタックツリーの生成に用いるデータとして、システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108がある。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108は、主記憶装置902又は補助記憶装置903に格納されている。プロセッサ901が評価ツリー生成部101及びゴールドツリー生成部102として動作する際に、プロセッサ901は、システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108を読み出す。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108の詳細は、後述する。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108は、主記憶装置902又は補助記憶装置903に格納されている。プロセッサ901が評価ツリー生成部101及びゴールドツリー生成部102として動作する際に、プロセッサ901は、システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108を読み出す。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108の詳細は、後述する。
図3は、本実施の形態に係る網羅性評価装置100の動作例を示す。
図3を参照して、本実施の形態に係る網羅性評価装置100の動作例を説明する。
図3を参照して、本実施の形態に係る網羅性評価装置100の動作例を説明する。
ステップS101において、評価ツリー生成部101は、評価ツリーを生成する。
評価ツリー生成部101は、Prologなどの述語論理を用いた推論ベースで評価ツリーを生成する。前述したように、評価ツリー生成部101は、例えば、非特許文献1又は非特許文献2の技術を用いて評価ツリーを生成する。
推論ベースのアタックツリー生成技術からは、推論過程がログとして出力される。Prologでは、与えられた命題(攻撃目標)が成立するか否かを再帰手続きによって探索する後ろ向き推論が行われる。推論過程のログとは、後ろ向き推論の中で、成功したルール、失敗したルールを記述したログである。
網羅性評価装置100には、攻撃対象の情報システムを表現した知識(ネットワーク構成、脆弱性のある箇所、攻撃者の前提条件)、推論ルールが予め用意されている。
具体的には、攻撃対象の情報システムを表現した知識として、図2に示すシステム知識104が網羅性評価装置100に用意されている。
システム知識104内の攻撃対象の情報システムのネットワーク構成についての知識には、情報システムのネットワーク構成が示されている。このため、当該知識は、ネットワーク構成情報に相当する。
また、推論ルールとして、図2に示す攻撃知識105、初期侵攻テンプレート106及び侵攻手順テンプレート107が網羅性評価装置100に用意されている。
また、初期侵攻テンプレート106及び侵攻手順テンプレート107には、攻撃における侵攻手順が示されている。このため、初期侵攻テンプレート106及び侵攻手順テンプレート107は、侵攻手順情報に相当する。
評価ツリー生成部101に攻撃目標が入力されると、評価ツリー生成部101は、前述の知識、推論ルールを利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。そして、評価ツリー生成部101は、全ての攻撃パスをつなげることで評価ツリーを生成する。
評価ツリー生成部101は、Prologなどの述語論理を用いた推論ベースで評価ツリーを生成する。前述したように、評価ツリー生成部101は、例えば、非特許文献1又は非特許文献2の技術を用いて評価ツリーを生成する。
推論ベースのアタックツリー生成技術からは、推論過程がログとして出力される。Prologでは、与えられた命題(攻撃目標)が成立するか否かを再帰手続きによって探索する後ろ向き推論が行われる。推論過程のログとは、後ろ向き推論の中で、成功したルール、失敗したルールを記述したログである。
網羅性評価装置100には、攻撃対象の情報システムを表現した知識(ネットワーク構成、脆弱性のある箇所、攻撃者の前提条件)、推論ルールが予め用意されている。
具体的には、攻撃対象の情報システムを表現した知識として、図2に示すシステム知識104が網羅性評価装置100に用意されている。
システム知識104内の攻撃対象の情報システムのネットワーク構成についての知識には、情報システムのネットワーク構成が示されている。このため、当該知識は、ネットワーク構成情報に相当する。
また、推論ルールとして、図2に示す攻撃知識105、初期侵攻テンプレート106及び侵攻手順テンプレート107が網羅性評価装置100に用意されている。
また、初期侵攻テンプレート106及び侵攻手順テンプレート107には、攻撃における侵攻手順が示されている。このため、初期侵攻テンプレート106及び侵攻手順テンプレート107は、侵攻手順情報に相当する。
評価ツリー生成部101に攻撃目標が入力されると、評価ツリー生成部101は、前述の知識、推論ルールを利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。そして、評価ツリー生成部101は、全ての攻撃パスをつなげることで評価ツリーを生成する。
図4と図5を参照して、アタックツリーの生成に必要な知識とルールを説明する。
図4は、攻撃知識105の例を示す。図5は、システム知識104の例を示す。
図4及び図5は、Prologの表記方法に従って表記されているが、表記方法は図4及び図5に示す方法に限らない。
攻撃知識105とシステム知識104を評価ツリー生成部101に入力し、例えば、「manipulateProg(a,c)(攻撃者aはマシンcのプログラムを書き換えることができる)」という質問をした場合、Prologの推論過程は図6のようなツリーで表現することができる。図6では、推論失敗の過程の記載は、ボディ部に書かれたゴールが初めて失敗する段階で止めている。
「manipulateProg(a,c)」が真となる(成立する)場合は、再帰手続きによって探索する後ろ向き推論が行われる。図6のツリーから推論が成功したパスのみを選び出すと図7のツリーが得られる。このような手順を経て評価ツリーが生成される。
図7のツリーの場合、2つの攻撃パスが推論されている。1つ目のパスは、図7の左下のノードから延びるパスである。つまり、1つ目のパスは、「攻撃者aがパスワードp1を盗み」(stealPass(a,p1)=True)、「攻撃者aがマシンm1のパスワードp1を持ち」(hasPass(a,p1)=True pass(m1,p1)=True)、「マシンm1とマシンcのネットワークアドレスが同じで、攻撃者aは物理的にマシンm1をコントロールすることができ」(network(m1,net1)=True network(c,net1)=True physicallyControllable(a,m1)=True)、「マシンm1からマシンcに物理的にアクセスでき、マシンm1に遠隔操作ツールがあり、マシンm1は攻撃者がコントロールすることができ」(accessible(m1,c)=True hasRemoteTool(m1)=True controllable(a,m1)=True)、「攻撃者aが遠隔にあるマシンm1からマシンcをコントロールでき」(remoteControllable(a,M,c)=True (M=m1))、「攻撃者aがマシンcをコントロールでき」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
2つ目のパスは、図7の右下のノードから延びるパスである。つまり、2つ目のパスは、「攻撃者aがパスワードp3を盗み」(stealPass(a,p3)=True)、「攻撃者aがマシンcのパスワードp3を持ち」(hasPass(a,p3)=True pass(c,p3)=True)、「攻撃者aは物理的にマシンcをコントロールすることができ」(physicallyControllable(a,c)=True)、「攻撃者aはマシンcをコントロールすることができ」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
図4は、攻撃知識105の例を示す。図5は、システム知識104の例を示す。
図4及び図5は、Prologの表記方法に従って表記されているが、表記方法は図4及び図5に示す方法に限らない。
攻撃知識105とシステム知識104を評価ツリー生成部101に入力し、例えば、「manipulateProg(a,c)(攻撃者aはマシンcのプログラムを書き換えることができる)」という質問をした場合、Prologの推論過程は図6のようなツリーで表現することができる。図6では、推論失敗の過程の記載は、ボディ部に書かれたゴールが初めて失敗する段階で止めている。
「manipulateProg(a,c)」が真となる(成立する)場合は、再帰手続きによって探索する後ろ向き推論が行われる。図6のツリーから推論が成功したパスのみを選び出すと図7のツリーが得られる。このような手順を経て評価ツリーが生成される。
図7のツリーの場合、2つの攻撃パスが推論されている。1つ目のパスは、図7の左下のノードから延びるパスである。つまり、1つ目のパスは、「攻撃者aがパスワードp1を盗み」(stealPass(a,p1)=True)、「攻撃者aがマシンm1のパスワードp1を持ち」(hasPass(a,p1)=True pass(m1,p1)=True)、「マシンm1とマシンcのネットワークアドレスが同じで、攻撃者aは物理的にマシンm1をコントロールすることができ」(network(m1,net1)=True network(c,net1)=True physicallyControllable(a,m1)=True)、「マシンm1からマシンcに物理的にアクセスでき、マシンm1に遠隔操作ツールがあり、マシンm1は攻撃者がコントロールすることができ」(accessible(m1,c)=True hasRemoteTool(m1)=True controllable(a,m1)=True)、「攻撃者aが遠隔にあるマシンm1からマシンcをコントロールでき」(remoteControllable(a,M,c)=True (M=m1))、「攻撃者aがマシンcをコントロールでき」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
2つ目のパスは、図7の右下のノードから延びるパスである。つまり、2つ目のパスは、「攻撃者aがパスワードp3を盗み」(stealPass(a,p3)=True)、「攻撃者aがマシンcのパスワードp3を持ち」(hasPass(a,p3)=True pass(c,p3)=True)、「攻撃者aは物理的にマシンcをコントロールすることができ」(physicallyControllable(a,c)=True)、「攻撃者aはマシンcをコントロールすることができ」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
次に、ステップS102において、ゴールドツリー生成部102がゴールドツリーを生成する。
より具体的には、ゴールドツリー生成部102は、システム知識104から、総当たり的にネットワークの侵入経路をリストアップする。そして、ゴールドツリー生成部102は、初期侵攻テンプレート106と侵攻手順テンプレート107とを利用して、情報システムへの侵攻経路が網羅され、情報システムへの侵攻手順が反映されるゴールドツリーを生成する。
より具体的には、ゴールドツリー生成部102は、システム知識104から、総当たり的にネットワークの侵入経路をリストアップする。そして、ゴールドツリー生成部102は、初期侵攻テンプレート106と侵攻手順テンプレート107とを利用して、情報システムへの侵攻経路が網羅され、情報システムへの侵攻手順が反映されるゴールドツリーを生成する。
最後に、ステップS103において、ツリー比較部103が、評価ツリーとゴールドツリーを比較し、差分を抽出する。
図8は、ゴールドツリー生成部102の内部構成例を示す。
図8に示すように、ゴールドツリー生成部102は、ネットワーク網羅部1021及びテンプレート適用部1022から構成されている。また、ゴールドツリー生成部102は、システム知識104、初期侵攻テンプレート106及び侵攻手順テンプレート107を用いて、ゴールドツリーを生成する。
図8に示すように、ゴールドツリー生成部102は、ネットワーク網羅部1021及びテンプレート適用部1022から構成されている。また、ゴールドツリー生成部102は、システム知識104、初期侵攻テンプレート106及び侵攻手順テンプレート107を用いて、ゴールドツリーを生成する。
図9は、ゴールドツリー生成部102の動作例を示す。
まず、ステップS1021において、ネットワーク網羅部1021は、システム知識104から、攻撃対象の情報システムの情報(ネットワーク構成、脆弱性のある箇所、攻撃者の前提条件)を抽出する。システム知識104は、評価ツリー生成部101が推論ベースで攻撃パスを導出するために、例えばXML形式などの機械的に読み取り可能な形式で構成されている。ネットワーク網羅部1021は、攻撃対象の情報システムに存在する全てのマシンについての情報を抽出する。
次に、ステップS1022において、ネットワーク網羅部1021は、情報システム内のあるマシンを攻撃対象としたときに取り得る、当該マシンンまでの重複を含まない全ての侵攻経路を列挙する。システム知識104には情報システムのネットワーク構成の情報が含まれる。ネットワーク網羅部1021は、情報システムのネットワーク構成を用いて、論理的及び物理的に矛盾のない侵攻経路を抽出することができる。
図10は、情報システムのネットワーク構成の一例として、簡略化した制御システムのネットワーク構成を示す。
図10の制御システムでは、制御機器を制御するコントローラCが制御ネットワークと保守ネットワークに接続されている。コントローラCを保守する保守計算機Bが保守ネットワークに接続されている。コントローラC及び制御ネットワークを監視する表示用の表示計算機Aが制御ネットワークに接続されている。以下、表示計算機A、保守計算機B及びコントローラCをそれぞれ単に、A、B、Cとも表記する。
図10の例では、「A、B、C」がマシンリストである。攻撃対象のマシンをコントローラCとした場合、ネットワーク構成を考慮しない、コントローラCまでの重複を含まない取り得る全ての侵攻経路は、「C、CB、CBA、CA、CAB」となる。理論的な経路の数は「1+2P1+2P2」である(Pは順列を意味する)。上記「C、CB、CBA、CA、CAB」のうち、単体の「C」は、攻撃者がコントローラCを直接操作して攻撃することを意味する。「CB」は、攻撃者が保守計算機Bを直接操作しコントローラCに侵攻しコントローラCを攻撃することを意味する。「CBA」は、攻撃者が表示計算機Aを直接操作し保守計算機Bに侵攻しさらにコントローラCに侵攻しコントローラCを攻撃することを意味する。「CA」及び「CAB」についても同様である。
ネットワーク構成を考慮し、論理的及び物理的に明らかに矛盾のある経路を除去すると、侵攻経路の組合せは「C、CB、CA」となる。
図10の制御システムでは、制御機器を制御するコントローラCが制御ネットワークと保守ネットワークに接続されている。コントローラCを保守する保守計算機Bが保守ネットワークに接続されている。コントローラC及び制御ネットワークを監視する表示用の表示計算機Aが制御ネットワークに接続されている。以下、表示計算機A、保守計算機B及びコントローラCをそれぞれ単に、A、B、Cとも表記する。
図10の例では、「A、B、C」がマシンリストである。攻撃対象のマシンをコントローラCとした場合、ネットワーク構成を考慮しない、コントローラCまでの重複を含まない取り得る全ての侵攻経路は、「C、CB、CBA、CA、CAB」となる。理論的な経路の数は「1+2P1+2P2」である(Pは順列を意味する)。上記「C、CB、CBA、CA、CAB」のうち、単体の「C」は、攻撃者がコントローラCを直接操作して攻撃することを意味する。「CB」は、攻撃者が保守計算機Bを直接操作しコントローラCに侵攻しコントローラCを攻撃することを意味する。「CBA」は、攻撃者が表示計算機Aを直接操作し保守計算機Bに侵攻しさらにコントローラCに侵攻しコントローラCを攻撃することを意味する。「CA」及び「CAB」についても同様である。
ネットワーク構成を考慮し、論理的及び物理的に明らかに矛盾のある経路を除去すると、侵攻経路の組合せは「C、CB、CA」となる。
次に、ステップS1023において、ネットワーク網羅部1021が、抽出した侵攻経路をまとめ、侵攻経路を網羅したツリーを生成する。
図10の制御システムの場合、ネットワーク構成を考慮した侵攻経路を網羅したツリーは図11に示すようになる。本実施の形態では、各ノードの階層上の位置づけにかかわらず(各ノードが末端ノードであるか中間ノードであるかにかかわらず)、攻撃者が各ノードを直接操作して親ノードに侵攻すること想定する。なお、図11では、便宜上、表示計算機Aの下には、エンタープライズネットワークのノードを配置している。
図10の制御システムの場合、ネットワーク構成を考慮した侵攻経路を網羅したツリーは図11に示すようになる。本実施の形態では、各ノードの階層上の位置づけにかかわらず(各ノードが末端ノードであるか中間ノードであるかにかかわらず)、攻撃者が各ノードを直接操作して親ノードに侵攻すること想定する。なお、図11では、便宜上、表示計算機Aの下には、エンタープライズネットワークのノードを配置している。
次に、ステップS1024において、テンプレート適用部1022が、初期侵攻テンプレート106及び侵攻手順テンプレート107を利用し、侵攻手順を反映させたツリーを生成する。
図12は、初期侵攻テンプレート106の例を示す。初期侵攻では、盗んだパスワードによるログイン、USBメモリ経由のマルウェア感染等の手順が考えられる。具体的な手順が記された初期侵攻テンプレート106の例を図13に示す。
図14は、侵攻手順テンプレート107の例を示す。侵攻手順テンプレート107は、マシンタイプごとに侵攻手順が列挙されたテーブルである。バッファーオバーフローによる任意のプログラムの実行、盗んだパスワードによるリモートデスクトップ接続等の手順が侵攻の手順である。2つのマシンの間に複数のネットワークが存在する場合は、マシンタイプに加え、ネットワークタイプごとに侵攻手順テンプレート107に侵攻手順を列挙してもよい。具体的な手順が記された侵攻手順テンプレート107の例を図15に示す。
侵攻手順テンプレート107及び初期侵攻テンプレート106に記載する手順は、参考文献1、参考文献2等の形式化された公開データベースから抽出して利用することができる。
図11のツリーに図13の初期侵攻テンプレート106及び図15の侵攻手順テンプレート107を適用した後のツリーを図16に示す。
また、図17に具体的な手順が記されたツリーを示す。また、図18は、図17の記載をマシンリーダブルな記載に変更したツリーの例を示す。図18では、「表示計算機A」は「Machine A」と表記し、「保守計算機B」は「Machine B」と表記している。
なお、図18が、ゴールドツリーに該当する。
参考文献1:MITER、 ATT&CK、 https://attack.mitre.org/wiki/Main_Page
参考文献2:CAPEC、 http://capec.mitre.org/index.html
図12は、初期侵攻テンプレート106の例を示す。初期侵攻では、盗んだパスワードによるログイン、USBメモリ経由のマルウェア感染等の手順が考えられる。具体的な手順が記された初期侵攻テンプレート106の例を図13に示す。
図14は、侵攻手順テンプレート107の例を示す。侵攻手順テンプレート107は、マシンタイプごとに侵攻手順が列挙されたテーブルである。バッファーオバーフローによる任意のプログラムの実行、盗んだパスワードによるリモートデスクトップ接続等の手順が侵攻の手順である。2つのマシンの間に複数のネットワークが存在する場合は、マシンタイプに加え、ネットワークタイプごとに侵攻手順テンプレート107に侵攻手順を列挙してもよい。具体的な手順が記された侵攻手順テンプレート107の例を図15に示す。
侵攻手順テンプレート107及び初期侵攻テンプレート106に記載する手順は、参考文献1、参考文献2等の形式化された公開データベースから抽出して利用することができる。
図11のツリーに図13の初期侵攻テンプレート106及び図15の侵攻手順テンプレート107を適用した後のツリーを図16に示す。
また、図17に具体的な手順が記されたツリーを示す。また、図18は、図17の記載をマシンリーダブルな記載に変更したツリーの例を示す。図18では、「表示計算機A」は「Machine A」と表記し、「保守計算機B」は「Machine B」と表記している。
なお、図18が、ゴールドツリーに該当する。
参考文献1:MITER、 ATT&CK、 https://attack.mitre.org/wiki/Main_Page
参考文献2:CAPEC、 http://capec.mitre.org/index.html
なお、制御システム内の全てのノードを攻撃対象に指定し、ノードごとにゴールドツリーを生成することもできるが、非効率的なため、本実施の形態では、ゴールドツリー生成部102は、評価ツリーのトップにあるノードに記載されているマシンのみを攻撃対象に指定してゴールドツリーを生成する。
侵攻手順テンプレート107及び初期侵攻テンプレート106は、全てのマシンに共通に用いられてもよい。また、侵攻手順テンプレート107及び初期侵攻テンプレート106は、通常のPC(Personal Computer)、サーバ、コントローラなどマシンのタイプごとに用意してもよい。更に、侵攻手順テンプレート107及び初期侵攻テンプレート106を、マシンにインストールされているOS(Operating System)又はアプリケーションプログラムのバージョンごとに用意してもよい。
侵攻手順テンプレート107及び初期侵攻テンプレート106は、全てのマシンに共通に用いられてもよい。また、侵攻手順テンプレート107及び初期侵攻テンプレート106は、通常のPC(Personal Computer)、サーバ、コントローラなどマシンのタイプごとに用意してもよい。更に、侵攻手順テンプレート107及び初期侵攻テンプレート106を、マシンにインストールされているOS(Operating System)又はアプリケーションプログラムのバージョンごとに用意してもよい。
図19は、ツリー比較部103の内部構成例を示す。
図19に示すように、ツリー比較部103は、パス抽出部1031及びパス比較部1032で構成される。また、ツリー比較部103は、侵攻手順変換テーブル108を参照する。
図19に示すように、ツリー比較部103は、パス抽出部1031及びパス比較部1032で構成される。また、ツリー比較部103は、侵攻手順変換テーブル108を参照する。
図20は、ツリー比較部103の動作例を示す。
まず、ステップS1031において、パス抽出部1031は、ゴールドツリーからパスを抽出する。パス抽出部1031は、ゴールドツリーのリーフノードからルートノードまで親ノードをたどることでパスを抽出する。図18のゴールドツリーからは、以下の10個のパスが抽出される。なお、以下では、図18の一部の表記が省略されている。
1)remoteLogin(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
2)remoteExploit(_,machineA,vul1)⇒manipulateProgram(machineA,controllerC,tool)
3)remoteExploit(_,machineA,Vul2)⇒manipulateProgram(machineA,controllerC,tool)
4)localControl(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
5)usbMalwareRun(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)
6)maliciousEmailClick(_,machineA)⇒manipulateProgram(machineA,controllerC,tool)
7)usbMalwareRun(_,machineB)⇒manipulateProgram(machineB,controllerC,tool)
8)localControl(_,machineB,passwordB)⇒manipulateProgram(machineB,controllerC,tool)
9)changeProgram(_,controllerC,usb)
10)localControl(_,controllerC,passwordC)
まず、ステップS1031において、パス抽出部1031は、ゴールドツリーからパスを抽出する。パス抽出部1031は、ゴールドツリーのリーフノードからルートノードまで親ノードをたどることでパスを抽出する。図18のゴールドツリーからは、以下の10個のパスが抽出される。なお、以下では、図18の一部の表記が省略されている。
1)remoteLogin(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
2)remoteExploit(_,machineA,vul1)⇒manipulateProgram(machineA,controllerC,tool)
3)remoteExploit(_,machineA,Vul2)⇒manipulateProgram(machineA,controllerC,tool)
4)localControl(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
5)usbMalwareRun(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)
6)maliciousEmailClick(_,machineA)⇒manipulateProgram(machineA,controllerC,tool)
7)usbMalwareRun(_,machineB)⇒manipulateProgram(machineB,controllerC,tool)
8)localControl(_,machineB,passwordB)⇒manipulateProgram(machineB,controllerC,tool)
9)changeProgram(_,controllerC,usb)
10)localControl(_,controllerC,passwordC)
次に、ステップS1032において、パス抽出部1031は、評価ツリーからパスを抽出する。パス抽出部1031は、評価ツリーのリーフノードからルートノードまで親ノードをたどることでパスを抽出する。なお、本実施の形態に係る評価ツリーはORノードのみで構成されているが、評価ツリーにANDノードが含まれることがありうる。この場合は、パス抽出部1031はANDノードに繋がる子ノード(ANDの条件)については、全ての組合せの順番のパスを抽出する。例えば、図28の例においては、以下6個のパスが抽出される。パス抽出部1031は、各ノードから末端ノードに向かうパスを再帰的に求め、親ノードとの関係(ORなのかANDなのか)に応じて、親ノードとのパスの連結の仕方を変える要領で、全パスを抽出していく。
1)A→B→D→C
2)A→B→E→F→G→C
3)A→B→E→G→F→C
4)A→C→B→D
5)A→C→B→E→F→G
6)A→C→B→E→G→F
図10の制御システムに対して、評価ツリー生成部101により図21に示す評価ツリーが生成されたとする。ゴールドツリーとの比較を容易にするために、図21の記載を図18の記載形式に変更したツリーを図22に示す。図22の評価ツリーからは、以下の7つのパスが抽出される。なお、以下では、図22の一部の表記が省略されている。また、攻撃が成功するための細かな条件やルールについても記載を省略している。
A)remoteExploit(_,machineA,vul1)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,Tool)⇒manipulateProgram(_,controllerC,_)
B)remoteLogin(_,machineA,passwordA)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
C)usbMalwareRun(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
D)maliciousEmailClick(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
E)localControl(_,machineB,passwordB)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
F)usbMalwareRun(_,machineB,_)⇒malwareInfection(_,machineB,_)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
G)changeProgram(_,controllerC,usb)⇒manipulateProgram(_,controllerC,_)
1)A→B→D→C
2)A→B→E→F→G→C
3)A→B→E→G→F→C
4)A→C→B→D
5)A→C→B→E→F→G
6)A→C→B→E→G→F
図10の制御システムに対して、評価ツリー生成部101により図21に示す評価ツリーが生成されたとする。ゴールドツリーとの比較を容易にするために、図21の記載を図18の記載形式に変更したツリーを図22に示す。図22の評価ツリーからは、以下の7つのパスが抽出される。なお、以下では、図22の一部の表記が省略されている。また、攻撃が成功するための細かな条件やルールについても記載を省略している。
A)remoteExploit(_,machineA,vul1)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,Tool)⇒manipulateProgram(_,controllerC,_)
B)remoteLogin(_,machineA,passwordA)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
C)usbMalwareRun(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
D)maliciousEmailClick(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
E)localControl(_,machineB,passwordB)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
F)usbMalwareRun(_,machineB,_)⇒malwareInfection(_,machineB,_)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
G)changeProgram(_,controllerC,usb)⇒manipulateProgram(_,controllerC,_)
ステップS1033において、パス比較部1032が、ゴールドツリーと評価ツリーのそれぞれから抽出したパスを比較する。そして、パス比較部1032は、ゴールドツリーのパス中にある攻撃ステップを必ず含むパスを評価ツリーから抽出する。
説明のために、ゴールドツリーから抽出される攻撃パスの攻撃ステップをgStep(メンバーはa,nf,nt,i,s)と表す。攻撃ステップgStepは、主体gStep.sが、侵攻手順gStep.aを利用し、補足情報gStep.iを使って、攻撃元ノードgStep.nfから攻撃先ノードgStep.ntを攻撃することを意味する。
malEmailClick(m1,x, , )の場合は、gStep.aがmalEmailClickである。gStep.nfはxである。gStep.ntはm1である。gStep.iは「 」(ドントケア)である。gStep.sは「 」(ドントケア)である。
同様に、評価ツリーから抽出される攻撃パスの攻撃ステップをaStep(メンバーはa,nf,nt,i,侵攻手順s)と表す。攻撃ステップaStepは、主体aStep.sが、侵攻手順aStep.aを利用し、補足情報aStep.iを使って、攻撃元ノードaStep.nfから攻撃先ノードaStep.ntを攻撃することを意味する。
remExp(a,x,m1,vul1)の場合は、aStep.aがremExpである。aStep.sはaである。vStep.nfはxである。aStep.ntはm1である。aStep.iはvul1である。
「access(x,m1, , _)、clickMalEmaill(a,x,m1, _)、control(a,x, _, _)」のように1つの攻撃ステップの中に複数の侵攻手順(もしくは条件)が含まれている場合がある。このような攻撃ステップは、要素の数に関係なく、侵攻手順の集合として扱う。
ゴールドツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順)が要素となる順序リストである。評価ツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順の集合)が要素となる順序リストである。パス比較部1032は、以下のように、ゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較する。
説明のために、ゴールドツリーから抽出される攻撃パスの攻撃ステップをgStep(メンバーはa,nf,nt,i,s)と表す。攻撃ステップgStepは、主体gStep.sが、侵攻手順gStep.aを利用し、補足情報gStep.iを使って、攻撃元ノードgStep.nfから攻撃先ノードgStep.ntを攻撃することを意味する。
malEmailClick(m1,x, , )の場合は、gStep.aがmalEmailClickである。gStep.nfはxである。gStep.ntはm1である。gStep.iは「 」(ドントケア)である。gStep.sは「 」(ドントケア)である。
同様に、評価ツリーから抽出される攻撃パスの攻撃ステップをaStep(メンバーはa,nf,nt,i,侵攻手順s)と表す。攻撃ステップaStepは、主体aStep.sが、侵攻手順aStep.aを利用し、補足情報aStep.iを使って、攻撃元ノードaStep.nfから攻撃先ノードaStep.ntを攻撃することを意味する。
remExp(a,x,m1,vul1)の場合は、aStep.aがremExpである。aStep.sはaである。vStep.nfはxである。aStep.ntはm1である。aStep.iはvul1である。
「access(x,m1, , _)、clickMalEmaill(a,x,m1, _)、control(a,x, _, _)」のように1つの攻撃ステップの中に複数の侵攻手順(もしくは条件)が含まれている場合がある。このような攻撃ステップは、要素の数に関係なく、侵攻手順の集合として扱う。
ゴールドツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順)が要素となる順序リストである。評価ツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順の集合)が要素となる順序リストである。パス比較部1032は、以下のように、ゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較する。
パス比較部1032は、ゴールドツリーから抽出した攻撃パスを1つずつピックアップし、さらに評価ツリーから抽出した攻撃パスを1つずつピックアップする。
次に、パス比較部1032は、ゴールドツリーの攻撃パスに含まれるすべての要素(侵攻手順)を順序通り含む攻撃パスを評価ツリーから探す。評価ツリーの攻撃パスの各要素は侵攻手順の集合で表現されている。このため、パス比較部1032は、ゴールドツリーの攻撃ステップの侵攻手順が評価ツリーの侵攻手順の集合に含まれるか否かを判定する。
次に、パス比較部1032は、ゴールドツリーの攻撃パスに含まれるすべての要素(侵攻手順)を順序通り含む攻撃パスを評価ツリーから探す。評価ツリーの攻撃パスの各要素は侵攻手順の集合で表現されている。このため、パス比較部1032は、ゴールドツリーの攻撃ステップの侵攻手順が評価ツリーの侵攻手順の集合に含まれるか否かを判定する。
ゴールドツリーと評価ツリーに利用されている侵攻手順(侵入手口および侵攻手口)の形式が異なる場合(例えば、malEmailClick(x,m1)とclickMalEmaill(a,x,m1))のために、侵攻手順間の対応関係が得られるように侵攻手順変換テーブル108が用意されている。
それぞれの侵攻手口には、あらかじめCAPECやATT&CKなどの攻撃手口の識別子を紐づけておく。
侵攻手順変換テーブル108には、対応する攻撃手口名、主体、補足情報、攻撃元ノード、攻撃先ノードに加え、対応する識別子(CAPECまたはATT&CK)が記載される。
パス比較部1032がゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較することで、ゴールドツリーの攻撃パスに対応する評価ツリーの攻撃パスが辞書形式で出力される。このようなパス比較部1032の比較動作をmatchedAttackPathDictという。
それぞれの侵攻手口には、あらかじめCAPECやATT&CKなどの攻撃手口の識別子を紐づけておく。
侵攻手順変換テーブル108には、対応する攻撃手口名、主体、補足情報、攻撃元ノード、攻撃先ノードに加え、対応する識別子(CAPECまたはATT&CK)が記載される。
パス比較部1032がゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較することで、ゴールドツリーの攻撃パスに対応する評価ツリーの攻撃パスが辞書形式で出力される。このようなパス比較部1032の比較動作をmatchedAttackPathDictという。
図23に、パス比較部1032の比較動作を実現する疑似コード(compareAttackPaths)を示す。
matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)が求めたい差分(ゴールドツリーに含まれるが評価ツリーに含まれない攻撃パス)である。
matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)が求めたい差分(ゴールドツリーに含まれるが評価ツリーに含まれない攻撃パス)である。
最後に、ステップS1034において、パス比較部1032は、評価結果を出力する。
例えば、評価ツリーにおいて網羅できていないパスが存在する場合は、パス比較部1032は、評価ツリーにおいて網羅できていないパスをディスプレイ907に表示する。網羅性評価装置100のユーザは、ディスプレイ907に表示されたパスを解析して、システム知識104、攻撃知識105等を改訂することができ、評価パスの網羅性を向上させることができる。
例えば、評価ツリーにおいて網羅できていないパスが存在する場合は、パス比較部1032は、評価ツリーにおいて網羅できていないパスをディスプレイ907に表示する。網羅性評価装置100のユーザは、ディスプレイ907に表示されたパスを解析して、システム知識104、攻撃知識105等を改訂することができ、評価パスの網羅性を向上させることができる。
***実施の形態の効果の説明***
本実施の形態では、評価ツリーを、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映されるゴールドツリーと比較するため、評価ツリーの網羅性を評価することができる。また、本実施の形態では、評価ツリーで網羅できていないパスを抽出し、抽出したパスを網羅性評価装置100のユーザに提示することができる。このため、ユーザは、提示された内容を評価ツリーの生成手順にフィードバックすることができ、この結果、評価ツリーの網羅性を高めることができる。
本実施の形態では、評価ツリーを、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映されるゴールドツリーと比較するため、評価ツリーの網羅性を評価することができる。また、本実施の形態では、評価ツリーで網羅できていないパスを抽出し、抽出したパスを網羅性評価装置100のユーザに提示することができる。このため、ユーザは、提示された内容を評価ツリーの生成手順にフィードバックすることができ、この結果、評価ツリーの網羅性を高めることができる。
実施の形態2.
実施の形態1では、評価ツリーで網羅できていないパスが抽出された場合に、抽出されたパスをユーザに提示するのみである。本実施の形態では、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由を示す構成を説明する。
実施の形態1では、評価ツリーで網羅できていないパスが抽出された場合に、抽出されたパスをユーザに提示するのみである。本実施の形態では、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由を示す構成を説明する。
***構成の説明***
本実施の形態でも、網羅性評価装置100のハードウェア構成例は図1に示す通りである。また、網羅性評価装置100の機能構成例は図2に示す通りである。
本実施の形態では、ツリー比較部103の内部構成例が実施の形態1と異なる。
図24は、本実施の形態に係るツリー比較部103の内部構成例を示す。
本実施の形態でも、網羅性評価装置100のハードウェア構成例は図1に示す通りである。また、網羅性評価装置100の機能構成例は図2に示す通りである。
本実施の形態では、ツリー比較部103の内部構成例が実施の形態1と異なる。
図24は、本実施の形態に係るツリー比較部103の内部構成例を示す。
図24では、図19の構成と比較して、失敗ツリー生成部1033が追加されている。
失敗ツリー生成部1033は、情報システムについての述語論理を用いた推論において推論に失敗した要素が含まれるアタックツリーを生成する。つまり、失敗ツリー生成部1033は、評価ツリー生成部101による評価ツリーの生成において推論に失敗したパスで構成されるアタックツリーを生成する。失敗ツリー生成部1033が生成するアタックツリーは失敗ツリーという。失敗ツリーには、評価ツリー同様、複数の攻撃ステップが含まれる攻撃パスが複数含まれる。
失敗ツリー生成部1033は、失敗ツリー取得部に相当する。
失敗ツリー生成部1033は、情報システムについての述語論理を用いた推論において推論に失敗した要素が含まれるアタックツリーを生成する。つまり、失敗ツリー生成部1033は、評価ツリー生成部101による評価ツリーの生成において推論に失敗したパスで構成されるアタックツリーを生成する。失敗ツリー生成部1033が生成するアタックツリーは失敗ツリーという。失敗ツリーには、評価ツリー同様、複数の攻撃ステップが含まれる攻撃パスが複数含まれる。
失敗ツリー生成部1033は、失敗ツリー取得部に相当する。
本実施の形態では、パス抽出部1031は、失敗ツリーからもパスを抽出する。
また、本実施の形態では、パス比較部1032は、評価ツリーとゴールドツリーを比較するとともに、ゴールドツリーと失敗ツリーも比較する。
そして、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリー及び失敗ツリーのいずれにも含まれていない場合に、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥があることが推定される旨を通知するメッセージをディスプレイ907に出力する。
また、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリーには含まれていないが失敗ツリーには含まれている場合にも、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥がないことが推定される旨を通知するメッセージをディスプレイ907に出力する。
また、本実施の形態では、パス比較部1032は、評価ツリーとゴールドツリーを比較するとともに、ゴールドツリーと失敗ツリーも比較する。
そして、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリー及び失敗ツリーのいずれにも含まれていない場合に、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥があることが推定される旨を通知するメッセージをディスプレイ907に出力する。
また、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリーには含まれていないが失敗ツリーには含まれている場合にも、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥がないことが推定される旨を通知するメッセージをディスプレイ907に出力する。
***動作の説明***
図25は、本実施の形態に係るツリー比較部103の動作例を示す。
図25は、本実施の形態に係るツリー比較部103の動作例を示す。
まず、ステップS2031において、失敗ツリー生成部1033が、失敗ツリーを生成する。
評価ツリー生成部101の処理を修正することで、失敗ツリー生成部1033を実現することができる。評価ツリー生成部101では、システム知識104、攻撃知識105等を利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。評価ツリー生成部101は、図4と図5に記載した攻撃知識105及びシステム知識104を利用すると、図6の推論過程を経て、図7のアタックツリーを抽出することができる。ここで、図6の推論過程には推論失敗の過程も含まれている。このため、失敗ツリー生成部1033は、推論が失敗したパスのみを選び出すと、失敗ツリーを得ることができる。具体的には、評価ツリー生成部101は、Trueである推論過程ごとに推論過程の分割を行う。また、評価ツリー生成部101は、Failである推論過程は排除する。このようにすることで、評価ツリー生成部101は、評価ツリーを生成する。一方、失敗ツリー生成部1033は、Trueである推論過程ごとに推論過程の分割を行うのではなく、Failである推論過程ごとに推論過程の分割を行う。そして、失敗ツリー生成部1033は、Trueである推論過程を排除する。
図6のツリーから失敗のパスだけをピックアップして整形した失敗ツリーの例を図26に示す。失敗ツリー生成部1033は、失敗のパスのピックアップは最初に失敗(条件がFalseになる)が判明した時点で処理を終了する。図7の評価ツリーと図26の失敗ツリーを合わせると図6のツリーができ、評価ツリーと失敗ツリーは相補的であることがわかる。
評価ツリー生成部101の処理を修正することで、失敗ツリー生成部1033を実現することができる。評価ツリー生成部101では、システム知識104、攻撃知識105等を利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。評価ツリー生成部101は、図4と図5に記載した攻撃知識105及びシステム知識104を利用すると、図6の推論過程を経て、図7のアタックツリーを抽出することができる。ここで、図6の推論過程には推論失敗の過程も含まれている。このため、失敗ツリー生成部1033は、推論が失敗したパスのみを選び出すと、失敗ツリーを得ることができる。具体的には、評価ツリー生成部101は、Trueである推論過程ごとに推論過程の分割を行う。また、評価ツリー生成部101は、Failである推論過程は排除する。このようにすることで、評価ツリー生成部101は、評価ツリーを生成する。一方、失敗ツリー生成部1033は、Trueである推論過程ごとに推論過程の分割を行うのではなく、Failである推論過程ごとに推論過程の分割を行う。そして、失敗ツリー生成部1033は、Trueである推論過程を排除する。
図6のツリーから失敗のパスだけをピックアップして整形した失敗ツリーの例を図26に示す。失敗ツリー生成部1033は、失敗のパスのピックアップは最初に失敗(条件がFalseになる)が判明した時点で処理を終了する。図7の評価ツリーと図26の失敗ツリーを合わせると図6のツリーができ、評価ツリーと失敗ツリーは相補的であることがわかる。
ステップS2032及びS2033において、パス抽出部1031が、ゴールドツリーと評価ツリーからパスを抽出する。ステップS2032及びS2033は、実施の形態1で説明したステップS1031及びS1032と同じであるため、詳細な説明を省略する。
次に、ステップS2034において、パス抽出部1031が、失敗ツリーからパスを抽出する。ステップS2034の処理もステップS2032及びS2033と同等であるため、詳細な説明は省略する。
次に、ステップS2035において、パス比較部1032が、ゴールドツリーと評価ツリーのそれぞれから抽出したパスを比較する。そして、パス比較部1032は、図23に示す比較手順を利用し、比較結果としてmatchedAttackPathDictを取得する。
次に、ステップS2036において、パス比較部1032は、同様の方法で、ゴールドツリーと失敗ツリーのそれぞれから抽出したパスを比較する。ステップS2036の手順は基本的にはステップS2035と同様である。しかし、ステップS2036では、ゴールドツリーの攻撃パスに途中までマッチする失敗ツリーの攻撃パスと、ゴールドツリーの当該攻撃パスとの比較でもよいという点が異なる。失敗ツリーの攻撃パスの攻撃ステップをfStep(メンバーはa,nf,nt,i,s)と表す。パス比較部1032がゴールドツリーの攻撃パスと失敗ツリーの攻撃パスとを比較することで、ゴールドツリーの攻撃パスに対応する失敗ツリーの攻撃パスが辞書形式で出力される。このようなパス比較部1032の比較動作をmatchedFailedAttackPathDictという。
図27に、パス比較部1032の比較動作を実現する疑似コード(compareFailedPaths)を示す。
図27に、パス比較部1032の比較動作を実現する疑似コード(compareFailedPaths)を示す。
ステップS2037において、パス比較部1032は、matchedAttackPathDictおよびmatchedFailedAttackPathDictを利用して評価結果を生成する。パス比較部1032は、matchedAttackPathDictから2種類の情報を得る。
1つ目の情報は、評価ツリーにおけるゴールドツリーをカバーする攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された評価ツリーの攻撃パス(aPath)の集合(COVERED_ATTACK_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する評価ツリーの攻撃パスとのペア((gPath,aPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに評価ツリーの複数の攻撃パスが対応する場合は、評価ツリーの複数のペアが集合に含まれる({(gPath1,aPath1),(gPath1,aPath2),(gPath1,aPath3)})。
2つ目の情報は、評価ツリーではカバーしていない攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)の集合(UNCOVERED_PATH_SET)の情報である。アタックツリー自動生成に必要な推論ルールや前提知識において、本来カバーしなくてもよい攻撃パスが含まれている可能性もあるが、推論ルールや前提知識の設定ミスによって本来カバーしなくてはならないパスが抜けている可能性もある。
matchedFailedAttackPathDictからは1種類の情報を得ることができる。matchedFailedAttackPathDictから得られる情報は、失敗ツリーにおけるゴールドツリーを途中までカバーする攻撃パスの情報である。この攻撃パスの情報は、matchedFailedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された失敗ツリーの攻撃パス(fPath)の集合(COVERED_FAILED_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する失敗ツリーの攻撃パスとのペア((gPath,fPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに失敗ツリーの複数の攻撃パスが対応する場合は、失敗ツリーの複数のペアが集合に含まれる({(gPath1,fPath1),(gPath1,fPath2),(gPath1,fPath3)})。
ここで、UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていれば、当該gPathは、対応するfPathにおける最後の侵攻手順(条件)が失敗した根拠(導出失敗の条件)となる。このgPathとfPathのペアの集合をNORMAL_UNCOVERED_PATH_SETという。
UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていなければ、推論エンジンに与える前提知識又は推論ルールに何かしらの不具合があることが予想される。このgPathの集合をABNORMAL_UNCOVERED_PATH_SETという。
1つ目の情報は、評価ツリーにおけるゴールドツリーをカバーする攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された評価ツリーの攻撃パス(aPath)の集合(COVERED_ATTACK_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する評価ツリーの攻撃パスとのペア((gPath,aPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに評価ツリーの複数の攻撃パスが対応する場合は、評価ツリーの複数のペアが集合に含まれる({(gPath1,aPath1),(gPath1,aPath2),(gPath1,aPath3)})。
2つ目の情報は、評価ツリーではカバーしていない攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)の集合(UNCOVERED_PATH_SET)の情報である。アタックツリー自動生成に必要な推論ルールや前提知識において、本来カバーしなくてもよい攻撃パスが含まれている可能性もあるが、推論ルールや前提知識の設定ミスによって本来カバーしなくてはならないパスが抜けている可能性もある。
matchedFailedAttackPathDictからは1種類の情報を得ることができる。matchedFailedAttackPathDictから得られる情報は、失敗ツリーにおけるゴールドツリーを途中までカバーする攻撃パスの情報である。この攻撃パスの情報は、matchedFailedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された失敗ツリーの攻撃パス(fPath)の集合(COVERED_FAILED_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する失敗ツリーの攻撃パスとのペア((gPath,fPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに失敗ツリーの複数の攻撃パスが対応する場合は、失敗ツリーの複数のペアが集合に含まれる({(gPath1,fPath1),(gPath1,fPath2),(gPath1,fPath3)})。
ここで、UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていれば、当該gPathは、対応するfPathにおける最後の侵攻手順(条件)が失敗した根拠(導出失敗の条件)となる。このgPathとfPathのペアの集合をNORMAL_UNCOVERED_PATH_SETという。
UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていなければ、推論エンジンに与える前提知識又は推論ルールに何かしらの不具合があることが予想される。このgPathの集合をABNORMAL_UNCOVERED_PATH_SETという。
最後に、ステップS2038において、パス比較部1032は、評価結果をディスプレイ907に出力する。
具体的には、パス比較部1032は、評価結果として、NORMAL_UNCOVERED_PATH_SETとABNORAML_UNCOVERED_PATH_SETを表示する。NORMAL_UNCOVERED_PATH_SETについては、パス比較部1032は、失敗の根拠が存在する場合は失敗の根拠も表示する。ABNORAML_UNCOVERED_PATH_SETについては、パス比較部1032は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
具体的には、パス比較部1032は、評価結果として、NORMAL_UNCOVERED_PATH_SETとABNORAML_UNCOVERED_PATH_SETを表示する。NORMAL_UNCOVERED_PATH_SETについては、パス比較部1032は、失敗の根拠が存在する場合は失敗の根拠も表示する。ABNORAML_UNCOVERED_PATH_SETについては、パス比較部1032は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
***実施の形態の効果の説明***
本実施の形態によれば、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由をユーザに示すことができる。つまり、PATH_PAIR_SET2に含まれるパスについては、システム知識104、攻撃知識105等に欠陥がなく、適正に評価ツリーから除外されていることをユーザに示すことができる。一方、UNCOVERED_PATH_SETが存在する場合は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
本実施の形態によれば、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由をユーザに示すことができる。つまり、PATH_PAIR_SET2に含まれるパスについては、システム知識104、攻撃知識105等に欠陥がなく、適正に評価ツリーから除外されていることをユーザに示すことができる。一方、UNCOVERED_PATH_SETが存在する場合は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
***その他***
実施の形態1では、評価ツリー生成部101が評価ツリーを生成することになっている。これに代えて、網羅性評価装置100の外部の機器が、評価ツリー生成部101と同様の手法で評価ツリーを生成するようにしてもよい。この場合は、網羅性評価装置100には、外部で生成された評価ツリーを取得する構成(評価ツリー取得部)が設けられる。評価ツリー取得部は、第1のアタックツリー取得部に相当する。
実施の形態1では、評価ツリー生成部101が評価ツリーを生成することになっている。これに代えて、網羅性評価装置100の外部の機器が、評価ツリー生成部101と同様の手法で評価ツリーを生成するようにしてもよい。この場合は、網羅性評価装置100には、外部で生成された評価ツリーを取得する構成(評価ツリー取得部)が設けられる。評価ツリー取得部は、第1のアタックツリー取得部に相当する。
また、実施の形態2では、失敗ツリー生成部1033が失敗ツリーを生成することになっている。これに代えて、網羅性評価装置100の外部の機器が、失敗ツリー生成部1033と同様の手法で失敗ツリーを生成するようにしてもよい。この場合は、網羅性評価装置100には、外部で生成された失敗ツリーを取得する構成(失敗ツリー取得部)が設けられる。
以上、本発明の実施の形態について説明したが、これら2つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
***ハードウェア構成の説明***
最後に、網羅性評価装置100のハードウェア構成の補足説明を行う。
図1に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図1に示す主記憶装置902は、RAM(Random Access Memory)である。
図1に示す補助記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図1に示す通信デバイス904は、データの通信処理を実行する電子回路である。
通信デバイス904は、例えば、通信チップ又はNIC(Network Interface Card)である。
最後に、網羅性評価装置100のハードウェア構成の補足説明を行う。
図1に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図1に示す主記憶装置902は、RAM(Random Access Memory)である。
図1に示す補助記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図1に示す通信デバイス904は、データの通信処理を実行する電子回路である。
通信デバイス904は、例えば、通信チップ又はNIC(Network Interface Card)である。
また、補助記憶装置903には、OSも記憶されている。
そして、OSの少なくとも一部が主記憶装置902にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。
そして、OSの少なくとも一部が主記憶装置902にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、網羅性評価装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
また、網羅性評価装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
この場合は、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
100 網羅性評価装置、101 評価ツリー生成部、102 ゴールドツリー生成部、103 ツリー比較部、104 システム知識、105 攻撃知識、106 初期侵攻テンプレート、107 侵攻手順テンプレート、108 侵攻手順変換テーブル、901 プロセッサ、902 主記憶装置、903 補助記憶装置、904 通信デバイス、905 キーボード、906 マウス、907 ディスプレイ、1021 ネットワーク網羅部、1022 テンプレート適用部、1031 パス抽出部、1032 パス比較部、1033 失敗ツリー生成部。
Claims (9)
- 述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得部と、
前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成部と、
前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較部とを有する情報処理装置。 - 前記第1のアタックツリー取得部は、
複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第1のアタックツリーとして取得し、
前記第2のアタックツリー生成部は、
複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第2のアタックツリーとして生成し、
前記ツリー比較部は、
前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリーに含まれていない場合に、前記特定の攻撃パスを出力する請求項1に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記情報システムについての前記述語論理を用いた推論において推論に失敗した要素が含まれるアタックツリーを失敗ツリーとして取得する失敗ツリー取得部を有し、
前記ツリー比較部は、
前記第2のアタックツリーと、前記第1のアタックツリー及び前記失敗ツリーとを比較する請求項1に記載の情報処理装置。 - 前記第1のアタックツリー取得部は、
複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第1のアタックツリーとして取得し、
前記第2のアタックツリー生成部は、
複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第2のアタックツリーとして生成し、
前記失敗ツリー取得部は、
複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記失敗ツリーとして取得し、
前記ツリー比較部は、
前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリー及び前記失敗ツリーのいずれにも含まれていない場合に、前記特定の攻撃パスを出力する請求項3に記載の情報処理装置。 - 前記ツリー比較部は、
前記述語論理を用いた推論の前提に欠陥があることが推定される旨を通知するメッセージを出力する請求項4に記載の情報処理装置。 - 前記ツリー比較部は、
前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリーには含まれていないが前記失敗ツリーには含まれている場合に、前記特定の攻撃パスを出力する請求項3に記載の情報処理装置。 - 前記ツリー比較部は、
前記述語論理を用いた推論の前提に欠陥がないことが推定される旨を通知するメッセージを出力する請求項6に記載の情報処理装置。 - コンピュータが、述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得し、
前記コンピュータが、前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成し、
前記コンピュータが、前記第1のアタックツリーと前記第2のアタックツリーとを比較する情報処理方法。 - 述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得処理と、
前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成処理と、
前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較処理とをコンピュータに実行させる情報処理プログラム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020554703A JP6847326B2 (ja) | 2018-11-01 | 2018-11-01 | 情報処理装置、情報処理方法及び情報処理プログラム |
| PCT/JP2018/040641 WO2020090077A1 (ja) | 2018-11-01 | 2018-11-01 | 情報処理装置、情報処理方法及び情報処理プログラム |
| TW108107785A TW202018566A (zh) | 2018-11-01 | 2019-03-08 | 資訊處理裝置、資訊處理方法及資訊處理程式產品 |
| US17/199,894 US20210224397A1 (en) | 2018-11-01 | 2021-03-12 | Information processing device, information processing method, and computer readable medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2018/040641 WO2020090077A1 (ja) | 2018-11-01 | 2018-11-01 | 情報処理装置、情報処理方法及び情報処理プログラム |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/199,894 Continuation US20210224397A1 (en) | 2018-11-01 | 2021-03-12 | Information processing device, information processing method, and computer readable medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020090077A1 true WO2020090077A1 (ja) | 2020-05-07 |
Family
ID=70462960
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2018/040641 Ceased WO2020090077A1 (ja) | 2018-11-01 | 2018-11-01 | 情報処理装置、情報処理方法及び情報処理プログラム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20210224397A1 (ja) |
| JP (1) | JP6847326B2 (ja) |
| TW (1) | TW202018566A (ja) |
| WO (1) | WO2020090077A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2022038680A1 (ja) * | 2020-08-18 | 2022-02-24 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119561769B (zh) * | 2024-12-05 | 2025-11-25 | 广州大学 | 基于逻辑攻击图与密码评估的企业网络弱口令评估方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060021034A1 (en) * | 2004-07-22 | 2006-01-26 | Cook Chad L | Techniques for modeling changes in network security |
| US20100325412A1 (en) * | 2007-10-10 | 2010-12-23 | Telefonaktiebolaget Lm | Apparatus for reconfiguration of a technical system based on security analysis and a corresponding technical decision support system and computer program product |
| JP2018527672A (ja) * | 2015-08-21 | 2018-09-20 | ルネサス・エレクトロニクス・ヨーロッパ・リミテッドRenesas Electronics Europe Limited | 設計支援システム |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7194769B2 (en) * | 2003-12-11 | 2007-03-20 | Massachusetts Institute Of Technology | Network security planning architecture |
| US9292695B1 (en) * | 2013-04-10 | 2016-03-22 | Gabriel Bassett | System and method for cyber security analysis and human behavior prediction |
| WO2015128896A1 (ja) * | 2014-02-26 | 2015-09-03 | 三菱電機株式会社 | 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム |
| US10574675B2 (en) * | 2014-12-05 | 2020-02-25 | T-Mobile Usa, Inc. | Similarity search for discovering multiple vector attacks |
| US9894090B2 (en) * | 2015-07-14 | 2018-02-13 | Sap Se | Penetration test attack tree generator |
| US10193906B2 (en) * | 2015-12-09 | 2019-01-29 | Checkpoint Software Technologies Ltd. | Method and system for detecting and remediating polymorphic attacks across an enterprise |
-
2018
- 2018-11-01 WO PCT/JP2018/040641 patent/WO2020090077A1/ja not_active Ceased
- 2018-11-01 JP JP2020554703A patent/JP6847326B2/ja not_active Expired - Fee Related
-
2019
- 2019-03-08 TW TW108107785A patent/TW202018566A/zh unknown
-
2021
- 2021-03-12 US US17/199,894 patent/US20210224397A1/en not_active Abandoned
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060021034A1 (en) * | 2004-07-22 | 2006-01-26 | Cook Chad L | Techniques for modeling changes in network security |
| US20100325412A1 (en) * | 2007-10-10 | 2010-12-23 | Telefonaktiebolaget Lm | Apparatus for reconfiguration of a technical system based on security analysis and a corresponding technical decision support system and computer program product |
| JP2018527672A (ja) * | 2015-08-21 | 2018-09-20 | ルネサス・エレクトロニクス・ヨーロッパ・リミテッドRenesas Electronics Europe Limited | 設計支援システム |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2022038680A1 (ja) * | 2020-08-18 | 2022-02-24 | ||
| JP7175427B2 (ja) | 2020-08-18 | 2022-11-18 | 三菱電機株式会社 | 攻撃手段評価装置、攻撃手段評価方法、および、攻撃手段評価プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6847326B2 (ja) | 2021-03-24 |
| TW202018566A (zh) | 2020-05-16 |
| US20210224397A1 (en) | 2021-07-22 |
| JPWO2020090077A1 (ja) | 2021-02-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023053101A1 (en) | Systems and methods for malicious code neutralization in execution environments | |
| Shahriar et al. | Information-theoretic detection of SQL injection attacks | |
| US20130133075A1 (en) | Fixing security vulnerability in a source code | |
| US9703974B1 (en) | Coordinated file system security via rules | |
| CN118509176A (zh) | 促进工业数据验证的系统和与工业数据验证相关联的方法 | |
| Sebastian et al. | A study & review on code obfuscation | |
| BRPI0815605B1 (pt) | Método para a comunicação de dados usando um dispositivo de computação; método para gerar uma segunda versão de um componente de comunicação de dados usando um dispositivo de computação; método para comunicação de dados usando um dispositivo de computação; método para a criação de um certificado usando um dispositivo de computação; e método para usar um certificado utilizando um dispositivo de computação | |
| US20030135758A1 (en) | System and method for detecting network events | |
| Gittins et al. | Malware persistence mechanisms | |
| CN106815229A (zh) | 数据库虚拟补丁防护方法 | |
| CN111183620B (zh) | 入侵调查 | |
| CN119397533A (zh) | 恶意脚本的检测方法、装置、设备及存储介质 | |
| JP6847326B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
| Xiong et al. | Generic, efficient, and effective deobfuscation and semantic-aware attack detection for PowerShell scripts | |
| CN113366474A (zh) | 用于通过将计算机程序的控制流表示为数据来混淆计算机程序的系统、方法和存储介质 | |
| CN120915615B (zh) | 信息安全测试与取证平台 | |
| JP7315023B2 (ja) | ルール生成装置およびルール生成プログラム | |
| US20080027866A1 (en) | System and method for authenticating file content | |
| CN111787001A (zh) | 网络安全信息的处理方法、装置、电子设备和存储介质 | |
| CN111902816A (zh) | 恶意程序检测 | |
| JP2011150716A (ja) | 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法 | |
| Lemmou et al. | Inside gandcrab ransomware | |
| CN113760294B (zh) | 应用软件加密部署方法和系统 | |
| CN117828595A (zh) | 一种攻击程序通过杀毒软件检测的方法和装置 | |
| CN114357391B (zh) | 数据加、解密方法及计算机存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18938973 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2020554703 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18938973 Country of ref document: EP Kind code of ref document: A1 |