WO2022195848A1 - 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法 - Google Patents

分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法 Download PDF

Info

Publication number
WO2022195848A1
WO2022195848A1 PCT/JP2021/011367 JP2021011367W WO2022195848A1 WO 2022195848 A1 WO2022195848 A1 WO 2022195848A1 JP 2021011367 W JP2021011367 W JP 2021011367W WO 2022195848 A1 WO2022195848 A1 WO 2022195848A1
Authority
WO
WIPO (PCT)
Prior art keywords
analysis
data
nodes
indicating
graph structure
Prior art date
Application number
PCT/JP2021/011367
Other languages
English (en)
French (fr)
Inventor
純平 上村
和彦 磯山
純明 榮
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US18/281,235 priority Critical patent/US20240160746A1/en
Priority to PCT/JP2021/011367 priority patent/WO2022195848A1/ja
Priority to JP2023506665A priority patent/JPWO2022195848A1/ja
Publication of WO2022195848A1 publication Critical patent/WO2022195848A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to an analysis condition generation device, an analysis system, an analysis condition generation program, an analysis program, an analysis condition generation method, and an analysis method.
  • Vulnerability diagnosis is a method of comprehensively understanding the vulnerabilities inherent in the system and the lack of security functions based on the definitions of known vulnerabilities such as SQL injection and cross-site request forgery.
  • Penetration testing is a method of analyzing whether an attack on a system based on an attack scenario created in advance will achieve the purpose of the attack, and grasping the feasibility of damage to the system.
  • Patent Document 1 information for evaluating the vulnerability of an evaluation target system is generated based on the standards and specifications used by the evaluation target system and public vulnerability information. Techniques are disclosed.
  • Patent Document 2 a list of threats due to attacks on software processing and vulnerability descriptions, which are descriptions of processing that is vulnerable to threats, is obtained as a threat list, and from the software processing flow , discloses a technique for determining vulnerable locations included in a threat list.
  • Patent Document 1 evaluates vulnerabilities in the standards and specifications used by the evaluation target system.
  • Patent Document 1 since Patent Document 1 is not a technology aimed at security risk analysis that focuses on the handling of data in the target system, it detects vulnerabilities that are not defined and vulnerabilities other than the standards and specifications used by the target system. cannot be evaluated.
  • CWE Common Weakness Enumeration
  • a wide variety of vulnerability types are layered and abstracted. Therefore, when applying the CWE to a software processing flow to determine a vulnerable location, it is necessary to embody it for each software processing flow. Therefore, if a system is to be comprehensively analyzed, a huge number of specific rules will be required, and the problem of increased cost and time cannot be solved.
  • the purpose of the present invention is to solve the above problems, and to automatically generate security risk analysis conditions in the data flow of the system to be analyzed.
  • the analysis condition generation device of the present invention describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in an analysis target system and one or more edges indicating events related to the nodes. Using the ontology, generating graph structure data indicating the relationship between the nodes and the edges from natural sentences, and generating analysis conditions for analyzing the security risk of the system to be analyzed based on the graph structure data.
  • An analysis condition generator is provided.
  • the analysis system of the present invention has an ontology that describes the relationship between one or more nodes related to a data flow graph that indicates the flow of data in an analysis target system and one or more edges that indicate events related to the nodes.
  • a structure information generating unit for generating graph structure data indicating the relationship between the nodes and the edges from natural sentences using a structure information generating unit; Analyzing security risks in the system to be analyzed based on an abstraction processing unit that converts an identifier into an abstract identifier, and an analysis condition generated from the graph structure data in which the unique identifier is converted into the abstract identifier. and an analysis processing unit.
  • the analysis condition generation program of the present invention describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in an analysis target system and one or more edges indicating events related to the nodes.
  • a data flow graph indicating the flow of data in an analysis target system
  • edges indicating events related to the nodes.
  • the analysis program of the present invention creates an ontology describing the relationship between one or more nodes relating to a data flow graph indicating the flow of data in an analysis target system and one or more edges indicating events related to the nodes. generating graph structure data indicating the relationship between the nodes and the edges from a natural sentence using the abstraction rule; converting the unique identifier into an identifier; and analyzing a security risk in the analysis target system based on analysis conditions generated from the graph structure data in which the unique identifier is converted into the abstract identifier.
  • the analysis condition generation method of the present invention describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in an analysis target system and one or more edges indicating events related to the nodes.
  • a data flow graph indicating the flow of data in an analysis target system
  • edges indicating events related to the nodes.
  • the analysis method of the present invention creates an ontology that describes the relationship between one or more nodes relating to a data flow graph indicating the flow of data in an analysis target system and one or more edges indicating events related to the nodes. generating graph structure data indicating the relationship between the nodes and the edges from a natural sentence using the abstraction rule; converting into an identifier; and analyzing the security risk in the analysis target system based on analysis conditions generated from the graph structure data in which the unique identifier has been converted into the abstract identifier.
  • FIG. 1 is an explanatory diagram of the data flow in the analysis target system according to the first embodiment.
  • FIG. 2 is a diagram showing an operation form of an analysis system according to a modification of the first embodiment.
  • FIG. 3 is a block diagram showing the hardware configuration of the analysis condition generation device according to the first embodiment.
  • FIG. 4 is a functional block diagram showing the functional configuration of the analysis condition generation device according to the first embodiment.
  • FIG. 5A is a diagram illustrating an ontology description according to the first embodiment.
  • FIG. 5B is a diagram illustrating an ontology according to the first embodiment.
  • FIG. 6 is a flowchart showing the flow of analysis condition generation processing according to the first embodiment.
  • FIG. 7A is a diagram showing an example of a natural sentence according to the first embodiment; FIG.
  • FIG. 7B is an explanatory diagram of structuring processing according to the first embodiment.
  • FIG. 8 is an explanatory diagram of abstraction processing according to the first embodiment.
  • FIG. 9 is a flowchart showing the flow of analysis processing according to the first embodiment.
  • FIG. 10 is a functional block diagram showing the functional configuration of analysis condition generation processing according to the modification of the first embodiment.
  • FIG. 11 is a diagram showing an operation form of an analysis system according to the second embodiment.
  • FIG. 12 is a functional block diagram showing the functional configuration of the analysis condition generation device according to the second embodiment.
  • FIG. 13 is a functional block diagram showing the functional configuration of the analysis device according to the second embodiment.
  • FIG. 14 is a sequence diagram showing the flow of analysis processing in the analysis system according to the second embodiment.
  • FIG. 15 is a diagram showing the configuration of an analysis condition generation device according to the third embodiment.
  • FIG. 16 is a diagram showing the configuration of an analysis system according to the fourth embodiment.
  • Vulnerability diagnosis is a method of comprehensively understanding the vulnerabilities inherent in the system and the lack of security functions based on the definitions of known vulnerabilities such as SQL injection and cross-site request forgery.
  • Penetration testing is a method of analyzing whether an attack on a system based on an attack scenario created in advance will achieve the purpose of the attack, and grasping the feasibility of damage to the system.
  • a technique for generating information for evaluating the vulnerability of an evaluation target system based on the standards and specifications used by the evaluation target system and public vulnerability information. .
  • a list of threats caused by attacks on software processing and vulnerability descriptions which are descriptions of processing that is vulnerable to threats, is obtained as a threat list, and from the software processing flow, Techniques for determining vulnerable locations have been disclosed.
  • the technology for generating information for evaluating the vulnerability of the evaluation target system as described above vulnerabilities in the standards and specifications used by the evaluation target system are evaluated.
  • the technology that generates information for evaluating the vulnerability of the target system, which is the evaluation target, as described above is not a technology for security risk analysis that focuses on the handling of data in the target system. It is not possible to evaluate vulnerabilities that are not specified and vulnerabilities that are not in accordance with the standards and specifications used by the target system.
  • the vulnerability descriptions included in the threat list are obtained from the CWE.
  • CWE a wide variety of vulnerability types are layered and abstracted. Therefore, when applying the CWE to a software processing flow to determine a vulnerable location, it is necessary to embody it for each software processing flow. Therefore, if a system is to be comprehensively analyzed, a huge number of specific rules will be required, and the problem of increased cost and time cannot be solved.
  • the purpose of this embodiment is to automatically generate security risk analysis conditions in the data flow of the system to be analyzed.
  • the analysis condition generator includes one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more nodes indicating events related to the nodes.
  • Using an ontology that describes the relationship with edges generate graph structure data that shows the relationship between nodes and edges from natural sentences, and analyze the security risk of the analysis target system based on the graph structure data.
  • An analysis condition generator is provided for generating analysis conditions.
  • FIG. 1 An analysis system including an analysis condition generation device for analyzing security risks of a system that provides services via a network will be described.
  • FIG. 1 is an explanatory diagram of data paths in an authentication system 3A, which is an example of an analysis target system.
  • the authentication system 3A corresponds to, for example, a system that provides an authentication service that authenticates users using existing face authentication technology.
  • the authentication system 3A includes a user information acquisition module 31, a client server 32, a server 33, and a DB (Data Base) 34.
  • the user information acquisition module 31, client server 32, server 33, and DB 34 are connected to each other via a network different from the network 7 (see FIG. 2).
  • an ID reader capable of reading user information including a user's face image from an IC chip or the like built into the card, a camera for capturing a face image of a user passing through a gate as user information, or the like is used. be able to.
  • the user information acquired by the user information acquisition module 31 is transmitted to the client server 32 .
  • the path of data including user information acquired by the user information acquisition module 31 will be described as an example of the path of information exchanged in the authentication system 3A.
  • the data includes a "FFFF.jpg” file showing the face image of the user, and data with extensions ".config”, “.log”, “.tmp”, “.dat”, and ".dump". Take files as an example.
  • FIG. 1 the exchange of data between the user information acquisition module 31, the client server 32, the server 33, and the DB 34 is indicated by solid arrows. Also, the access to files and file generation by programs operating in the client server 32, server 33, and DB 34 are indicated by dashed arrows. Further, communication with an IP (Internet Protocol) address outside the authentication system 3A in the server 33 and DB 34 is indicated by a dashed line.
  • IP Internet Protocol
  • the client server 32 acquires the user information read by the user information acquisition module 31 (for example, "FFFF.jpg" and various setting information related to the user).
  • the client server 32 generates a data file containing a file identifier for uniquely identifying the data file based on the acquired user information.
  • the client server 32 generates a data file whose extension is ".log", ".tmp”, or the like.
  • a data file with an extension of “.log” corresponds to log data of a program operating on the client server 32 .
  • the client server 32 also creates a temporary data file with the extension ".tmp" containing the image "FFFF.jpg”.
  • the client server 32 reads a data file whose extension is ".config”.
  • a data file with an extension of ".config” corresponds to a setting file containing setting parameter data such as the IP address of the server 33, and contains a file identifier for uniquely identifying the file. .
  • the server 33 receives user information from the client server 32 .
  • the server 33 generates a data file containing a file identifier for uniquely identifying the data file based on the received user information.
  • the server 33 generates, for example, data files with extensions such as ".log” and ".dump".
  • a data file with an extension of “.log” corresponds to log data of a program operating on the server 33 .
  • the server 33 generates a data file with the extension “.dump” indicating that a program running on the server 33 has failed.
  • the server 33 reads a data file whose extension is ".config”.
  • a data file with an extension of ".config” corresponds to a setting file containing setting parameter data such as the IP address of the DB 34, for example, and contains a file identifier for uniquely identifying the file. Furthermore, the server 33 communicates with an SNS (Social Networking Service) implemented in an information resource designated by an IP address outside the authentication system 3A.
  • SNS Social Networking Service
  • the DB 34 receives and stores user information from the server 33. Also, the DB 34 generates a data file containing a file identifier for uniquely identifying the data file based on the received user information.
  • the DB 34 generates, for example, data files with extensions such as ".log” and ".data".
  • a data file with an extension of “.log” corresponds to log data of a program operating in the DB 34 .
  • the DB 34 also creates a data file with an extension of ".dat” containing some data.
  • the DB 34 reads a data file whose extension is ".config”.
  • a data file with an extension of ".config” corresponds to a setting file containing setting parameter data such as the storage location of data in the DB 34, and contains a file identifier for uniquely identifying the file.
  • the authentication system 3A various data are generated and exchanged by the operation of the program.
  • the data generated or exchanged by the operation of the programs running on the authentication system 3A are not necessarily used for the authentication services provided by the authentication system 3A.
  • data including personal information such as user information may be exposed to IPs outside the authentication system 3A, such as SNS.
  • IPs outside the authentication system 3A such as SNS.
  • a state in which data including personal information may be exposed to an IP outside the authentication system 3A is not desirable from the viewpoint of security.
  • a data file with an extension of ".dump” is a file generated for cause analysis when a failure occurs in program operation during system development. Therefore, creating a data file with the extension ".dump" in the production environment of the authentication system 3A is not desirable from the viewpoint of security.
  • Information related to data generated or exchanged by the operation of the program operating in the authentication system 3A as described above can be obtained as follows.
  • an authentication program executed in the authentication system 3A acquires a system call called when using the resources (storage medium, memory, etc.) of each host terminal, or takes a snapshot of the authentication system 3A during execution of the authentication program.
  • a system call and a snapshot of the authentication system 3A are information generated by the operation of a program (authentication program here) operating in the authentication system 3A.
  • system calls and snapshots of the authentication system 3A correspond to history information regarding the operation history of programs operating in the authentication system 3A.
  • snapshots of the system to be analyzed such as system calls and the authentication system 3A, may be referred to as "history information”.
  • the analysis device 2 acquires history information from the authentication system 3A and generates a data flow graph expressing the history information in a graph structure. Then, using the generated data flow graph, the analysis device 2 analyzes the security risk in the route of data exchanged in the authentication system 3A.
  • FIG. 2 is a diagram showing an operation mode of the analysis system 1000.
  • an analysis condition generation device 1 As shown in FIG. 2, in the analysis system 1000, an analysis condition generation device 1, an analysis device 2, and a host terminal included in an authentication system 3A are connected via a network 7.
  • FIG. 1 As shown in FIG. 2, in the analysis system 1000, an analysis condition generation device 1, an analysis device 2, and a host terminal included in an authentication system 3A are connected via a network 7.
  • the analysis condition generation device 1 generates analysis conditions for the analysis device 2 to analyze whether there is a security risk.
  • the analysis device 2 acquires history information from the authentication system 3A and analyzes whether there is a security risk in the data route exchanged in the authentication system 3A.
  • the analysis device 2 corresponds to an information processing device such as a server installed with a program for analyzing whether there is a security risk in the data path exchanged in the analysis target system.
  • the system to be analyzed in this embodiment corresponds to a system connected to the analysis apparatus 2 via the network 7, such as the authentication system 3A.
  • the analysis apparatus 2 includes a history information collection unit 210 that collects history information from the analysis target system, a generation unit 220 that generates a data flow graph indicating the route of data exchanged in the analysis target system based on the history information, and an analysis and an analysis unit 230 that executes analysis processing for analyzing whether or not there is a security risk in the data flow graph based on conditions.
  • the authentication system 3A includes a user information acquisition module 31, a client server 32, a server 33, and a DB 34 as host terminals.
  • FIG. 3 is a block diagram showing the hardware configuration of the information processing device.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • storage medium 14 a storage medium 14
  • I/F interface
  • the CPU 11 is computing means and controls the operation of the entire information processing apparatus.
  • the ROM 12 is a read-only non-volatile storage medium and stores programs such as firmware.
  • the RAM 13 is a volatile storage medium from which information can be read and written at high speed, and is used as a working area when the CPU 11 processes information.
  • the storage medium 14 is a readable/writable non-volatile storage medium such as an HDD (Hard Disk Drive), and stores an OS (Operating System), various control programs, application programs, and the like.
  • the I/F 15 connects and controls the bus 16 and various hardware and networks.
  • the input unit 17 is an input device such as a keyboard and a mouse for the user to input information to the information processing device.
  • the display unit 18 is a display device such as an LCD (Liquid Crystal Display) for the user to check the state of the information processing device. Note that the input unit 17 and the display unit 18 can be omitted.
  • the CPU 11 performs calculations according to programs stored in the ROM 12 and programs loaded from the storage medium 14 to the RAM 13, thereby configuring the software control unit of the information processing apparatus.
  • the combination of the software control unit configured as described above and hardware configures a functional block that realizes the function of the controller 100 (see FIG. 4) of the analysis condition generation apparatus 1 according to the present embodiment. be.
  • the functions of the history information collecting unit 210, the generating unit 220, and the analyzing unit 230 of the analysis device 2 can be performed by a program stored in the ROM 12 of the analysis device 2 or loaded from the storage medium 14 of the analysis device 2 to the RAM 13 of the analysis device 2. It is realized by a combination of a software control unit configured by the CPU 11 of the analysis device 2 performing calculations according to the program written and hardware included in the analysis device 2 .
  • FIG. 4 is a functional block diagram showing the functional configuration of the analysis condition generation device 1.
  • the analysis condition generation device 1 has a controller 100 that controls the operation of the analysis condition generation device 1 as a whole, and a network I/F 101 that inputs and outputs information to the controller 100 .
  • the controller 100 Based on the information acquired via the network I/F 101, the controller 100 generates analysis conditions for analyzing security risks in the authentication system 3A.
  • the controller 100 is configured by installing a dedicated software program in an information processing device such as the analysis condition generation device 1 .
  • the controller 100 has an analysis condition generation unit 110 and a storage unit 120.
  • the analysis condition generation unit 110 analyzes security risks from information indicating security risks related to information security such as Common Vulnerabilities and Exposures (CVE) and Common Weakness Enumeration (CWE). to generate analysis conditions for A CVE is a list of vulnerability information given a unique identification number for the purpose of easily comparing vulnerability information across vendors. Also, CWE is an index that categorizes a vulnerability to which area it applies, and corresponds to supplementary information of CVE. In the following explanation, CVE, CWE, AAR (After Action Report), and textual information indicating security risks related to information security such as security risk analysis reports by security vendors and experts will be referred to as "vulnerability information”. Sometimes.
  • the analysis condition generation unit 110 generates analysis conditions by performing natural language processing on vulnerability information.
  • the natural language processing performed by the analysis condition generation unit 110 includes a named entity extraction process, a relationship extraction process, a normalization process, and a template filling process.
  • the named entity recognition (NER) process is a process of extracting named entities from natural sentences.
  • Natural sentences are character information such as spoken words and written words that people use in their daily lives, and correspond to unstructured character information.
  • CVE and CWE are examples of character information indicating security risks related to information security.
  • the Relation Extraction (RE) process is a process of extracting relationships between named entities extracted by the NER process.
  • the normalization step is a step of removing noise contained in named entities by performing processes such as word division, character types, spelling, and spelling variations.
  • the Template Filling process is a process of applying named entities and relationships between named entities to the structure described in the template.
  • the analysis condition generator 110 of this embodiment performs natural language processing using an ontology as a template. Details of the analysis condition generation process and the ontology performed in the analysis condition generation unit 110 will be described later.
  • the analysis condition generation unit 110 has a structural information extraction unit 111 and an abstraction processing unit 112 .
  • the structure information extraction unit 111 performs structuring processing for extracting graph structure data in which named entities are graph-structured from natural sentences such as vulnerability information.
  • the abstraction processing unit 112 performs an abstraction process of converting a named entity included in the graph structure data into an abstract representation. Details of the structuring process and the abstraction process will be described later.
  • the storage unit 120 is a storage area that stores vulnerability information, ontology, and the like. With the configuration described above, the analysis condition generation device 1 generates analysis conditions for analyzing the security risk of the analysis target system.
  • the analysis device 2 analyzes security risks in a data flow graph that shows the flow of data in the analysis target system.
  • a data flow graph corresponds to history information of a system to be analyzed that is graph-structured with nodes indicating the entity of data and edges indicating events related to the nodes. Therefore, the analysis conditions for analyzing the security risk in the data flow graph are also graph-structured information, a query language (Gremlin (registered trademark), Cypher (registered trademark), SPARQL) query expression for the graph, or graph query realization. It must be a program etc. for
  • OpenIoC Indicator of Compromise
  • STIX Structured Threat Information Expression
  • OpenIoC and STIX are information that defines known vulnerabilities and threats, it is only possible to analyze whether the system to be analyzed is exposed to the vulnerabilities and threats defined in OpenIoC and STIX. . In other words, it is not possible to evaluate security risks that have mutated from known vulnerabilities and threats.
  • an abstract structure that follows the rules of the data flow in the system to be analyzed is extracted as graph structure data from natural sentences indicating known vulnerabilities and threats.
  • FIG. 5A is a diagram illustrating an ontology description according to this embodiment.
  • FIG. 5B is a diagram illustrating an ontology according to this embodiment.
  • FIG. 6 is a flowchart showing the flow of analysis condition generation processing according to this embodiment.
  • FIG. 7A is a diagram showing an example of a natural sentence according to this embodiment.
  • FIG. 7B is an explanatory diagram of the structuring process according to this embodiment.
  • FIG. 8 is an explanatory diagram of abstraction processing according to the present embodiment.
  • an "ontology” is a "vocabulary” used to describe certain knowledge, the "meaning” of that vocabulary, and the “relationship between words and meanings” by describing the relationships between concepts using semantic links. is defined as a clear specification so that it can be shared with other computers.
  • the (has a) link is a semantic link that indicates the relationship between the whole and the part. Therefore, when the relationship between two concepts is described using a (has a) link, unlike the (is a) link, the lower concept does not necessarily inherit the attributes of the higher concept. In other words, while the relationship ⁇ If you are a ⁇ rabbit'', you must have ⁇ long ears'', it does not necessarily hold that ⁇ If you have ⁇ long ears,'' you are a ⁇ rabbit''. .
  • the semantic link indicating the relationship between the whole and the part includes a (part of) link.
  • the ontology uses natural language vocabularies that indicate concepts, or simple predicates such as "is a" and "has a” that indicate events between concepts, to divide nodes that indicate superordinate concepts and subordinate concepts.
  • Graph structure is created by connecting the nodes with the nodes indicating superordinate concepts and edges indicating events related to the nodes indicating subordinate concepts, and information describing the relationships between nodes in a form that can be interpreted by a computer. Equivalent to.
  • FIG. 5A shows information described in the ontology as “(Process)-(execute)->(Process)”, “(Process)-(read/write)->(File)”, “(Process) -(has a)->(execution authority)", “(File)-(has a)->(authority)", . . . are exemplified.
  • an ontology is constructed by an operator who operates the analysis condition generation device 1.
  • An operator who operates the analysis condition generation apparatus 1 builds an ontology used when generating analysis conditions based on, for example, a data flow graph showing the flow of data in the system to be analyzed (for example, the authentication system 3A).
  • vulnerability information may include information that is not included in the data flow graph acquired from the analysis target system.
  • Vulnerability information contains the description "configuration file XX including password read by process AA”
  • data flow graph obtained from the analysis target system contains information of "file XX read by process AA”
  • the operator who operates the analysis condition generation device 1 may create an ontology by adding "is a setting file” and "contains a password" as attributes of a node indicating "file XX”.
  • the ontology in this case is described, for example, as "(config file)-(is a)->(File)-(has a)->(password)".
  • FIG. 5B is a diagram showing the ontology description of FIG. 5A by a graph structure. As shown in FIG. 5B, in the description of the ontology, nodes indicating superordinate concepts and nodes indicating subordinate concepts are connected by edges indicating events related to nodes indicating superordinate concepts and nodes indicating subordinate concepts. It can be represented as graph-structured data.
  • FIG. 5A For example, the description (“(Process)-(execute)->(Process)” in FIG. 5A) showing the relationship in which one process executes another process is shown in FIG. It can be expressed as graph structure data in which the concept node "(execute)" is an edge and the end point of the arrow "(Process)” is a superordinate concept node.
  • the ontology has abstract identifiers indicating node types and edge types. Abstraction identifiers indicating types of nodes include, for example, “(Process)”, “(Registry)”, “(File)”, “(IP, Port)”, and “(Actor)”.
  • (Process) is an abstract identifier of a node that indicates a process, for example, based on the file information in the header part or a predetermined extension (for example, a file with the extension ".exe”).
  • “(Registry)” and “(File)” are, for example, OS setting information and document file storage location information, that is, abstract identifiers of nodes indicating data stores.
  • “(IP, Port)” is an abstract identifier of a node indicating a communication socket such as an IP address or port number.
  • (Actor) is an abstract identifier of a node indicating an external actor, which is an element other than a process, a data store, and a communication socket among nodes defined by an operator who operates the analysis condition generation device 1.
  • An operator who operates the analysis condition generation device 1 defines, for example, an external attacker appearing in CWE or CVE as a node, and describes the relationship with the node representing the process, data store, and communication socket described above in the ontology. may In this case, the relationships between nodes representing external attackers and nodes representing processes, data stores, and communication sockets are expressed as edges.
  • the ontology used to generate analysis conditions can identify that the node type is any element other than processes, data stores, and communication sockets, and It corresponds to graph structure data in which the concepts of nodes and edges are abstracted to the extent that edges do not contain named entities.
  • the state in which the concepts of nodes and edges are abstracted to the extent that no named entity is included is, for example, a node such as “xxx ⁇ cmd.exe” or “yyy ⁇ Explorer.exe” that has “xxx This corresponds to becoming a node that does not contain a unique character string such as " ⁇ cmd” or "yyy ⁇ Explorer". "xxx ⁇ cmd” and "yyy ⁇ Explorer" correspond to unique identifiers unique to each node and capable of uniquely identifying each node.
  • an attribute indicating the authority to execute the process may be added to the node indicating the process.
  • "(Process)-(has a)->(execution authority)” is a description indicating that the process of the node at the starting point of the arrow has an attribute indicating execution authority (see FIG. 5A).
  • a node having "(Process)" as an abstraction identifier is given process execution authority.
  • an attribute indicating the access authority to the data stored in the data store may be added to the node indicating the data store.
  • “(File)-(has a)->(access authority)” is a description indicating a relationship in which a certain file has an attribute indicating access authority (see FIG. 5A).
  • a node having "(File)" as an abstract identifier is given process execution authority.
  • a (is a) link or (has a) link is used to indicate that a node having an abstract identifier of "(File)" contains an attribute indicating that it is a configuration file and a password.
  • An ontology may be constructed including an attribute, an attribute indicating that it is a binary file, an attribute indicating that it is a temporary file, an attribute indicating that it is serialized program information, or the like.
  • the analysis condition generation device 1 uses the ontology to perform natural language processing on vulnerability information, thereby extracting graph structure data that applies to the relationship between concepts defined in the ontology, and extracting security risk information. Generate analysis conditions for analyzing
  • step S11 the analysis condition generation unit 110 acquires the ontology and natural sentences stored in the storage unit 120.
  • FIG. 7A shows JVNDB-2015-0061XX defined in JVN (Japan Vulnerability Notes), which is a type of CWE, as an example of a natural sentence input to the analysis condition generation unit 110 .
  • the natural sentences in FIG. 7A include the following (1) to (6): "There are multiple vulnerabilities in XXXX Solution Center, and an attacker can execute arbitrary code with 'SYSTEM authority' It contains character information indicating (1) When the XXXX Solution Center is started, a process “LSCTaskService” that operates with “SYSTEM authority” is created. (2) The process “LSCTaskService” uses “55555 port” to execute “HTTP daemon”. (3) “LSCController.dll” contains many unsafe methods ( 4) Among them, “RunInstaller” is designed to execute arbitrary code placed in the "%APPDATA% ⁇ LSC ⁇ Local Store” directory. (5) The "%APPDATA% ⁇ LSC ⁇ Local Store” directory. is created for all users who can log in to the system, users can write to this directory even if they do not have system administrator privileges. (6) Exploiting this vulnerability By doing so, general users can execute arbitrary code with "SYSTEM authority”
  • step S12 the structural information extraction unit 111 performs structuring processing based on the ontology and natural sentences input to the analysis condition generation unit 110. Specifically, the structure information extraction unit 111 extracts graph structure data that fits the relationship between concepts defined in the ontology from the natural sentence shown in FIG. 7A.
  • FIG. 7B shows an example of graph structure data extracted from the natural sentence shown in FIG. 7A by the structuring process.
  • FIG. 7B shows the concept of nodes and edges to the extent that the types of nodes can be identified as any of elements other than processes, data stores, and communication sockets, and nodes and edges do not include named entities.
  • 7B illustrates graph structure data extracted from the natural sentence shown in FIG. 7A by structuring processing when an abstracted ontology is used. The structuring process extracts graph structure data (see FIG. 7B) indicating the security risks (1) to (6) above from the natural sentence shown in FIG. 7A.
  • step S13 the abstraction processing unit 112 performs an abstraction process of abstracting the named entity contained in the graph structure data extracted by the structure information extraction unit 111.
  • the graph structure data shown in FIG. 7B is subjected to abstraction processing by the abstraction processing unit 112, so that the natural sentences (1) to (6) in FIG. (6 ⁇ ) shows abstracted graph structure data.
  • (1 ⁇ ) When the XXXX Solution Center is started, a process “Parent Process” that operates with “Admin authority” is created. (3 ⁇ ) “File” contains a method (4 ⁇ ) By executing the method in the “File” module, the process “Parent Process” is transferred to the “Program Directory” It is designed to execute any code that is placed. (5 ⁇ ) Since the access authority to “Program Directory” is “Non-Admin authority”, “Actor2” who does not have administrator authority of the system also It is possible to write to this directory. (6 ⁇ ) By exploiting this vulnerability, even “Actor1” who does not have system administrator privileges can execute arbitrary code with “Admin privileges”.
  • the abstraction processing unit 112 converts unique identifiers related to nodes and edges included in the graph structure data into abstract identifiers.
  • the abstraction processing unit 112 converts unique identifiers for nodes and edges into abstract identifiers according to, for example, the node type and the edge type.
  • the abstraction processing unit 112 can identify that the node type is any element other than a process, a data store, or a communication socket, and the graph structure data can be identified to the extent that the node and edge do not include a named entity.
  • Abstract the notion of contained nodes and edges.
  • the abstraction processing unit 112 performs the abstraction processing in a format that allows identification of each of the plurality of nodes.
  • the abstraction processing unit 112 identifies the type of each node based on the node extension and header information, and converts the unique identifier "AYj3A" into the abstract identifier "Process” and the unique identifier "xni4G” into the abstract identifier. In “File”, convert the unique identifier "BNWjf" to the abstract identifier "Directory”.
  • the abstraction processing unit 112 assigns a plurality of nodes such as an abstraction identifier “Process1” and an abstraction identifier “Process2”. may be abstracted in identifiable form.
  • the abstraction processing unit 112 converts the unique identifier of the node of the lower concept process into the abstract identifier "Parent Process”, and converts the unique identifier of the node of the higher concept process into the abstract identifier "Child Process". It shows the result of performing abstraction processing to convert to .
  • a node whose node type is a file and has a unique identifier "Tanaka” indicating the owner of the file, and a node whose type is a process and a unique identifier "Tanaka” indicating the process executor. Yamada” is included.
  • the abstraction processing unit 112 converts the unique identifier “Tanaka” into an abstract identifier “Admin” indicating an administrator, and converts the unique identifier “Yamada” into an abstract identifier “Non- Admin”.
  • the abstraction processing unit 112 assigns a plurality of nodes such as an abstract identifier “Admin1” and an abstract identifier “Admin2” , may be abstracted in an identifiable form.
  • the graph structure data includes a node whose node type is a communication socket and has a unique identifier "8.8.8.8” that indicates an IP address.
  • the abstraction processing unit 112 converts the unique identifier "8.8.8.8” indicating the IP address to "Global IP” (or "Local IP”) or the like. to abstract.
  • the abstraction processing unit 112 sets each IP address so that it can be distinguished.
  • a plurality of nodes may be abstracted in a form that can be individually identified, such as "Local IP 1" and "Local IP 2".
  • the graph structure data includes a node whose node type is a communication socket and has a unique identifier "647X" that indicates a port number.
  • the abstraction processing unit 112 abstracts the unique identifier “647X” indicating the port number included in the node of the communication socket into an abstraction identifier “****” indicating an arbitrary port number.
  • the abstraction processing unit 112 uses ports 0 to 1023 reserved for use by well-known services and protocols among TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) port numbers ( For so-called well-known-ports, abstraction processing may be performed while leaving specific numerical values.
  • the graph structure data abstracted by the abstraction processing unit 112 is graph structure data less abstracted than the ontology input in step S11, and is graph structure data extracted in step S12. corresponds to abstracted graph structure data.
  • step S14 the analysis condition generator 110 performs post-processing on the graph structure data.
  • the analysis condition generation unit 110 performs processing for editing abstracted graph structure data and security risk analysis in the analysis target system according to rules preset by the operator of the analysis condition generation device 1, for example. In doing so, post-processing is performed to manage meaningless graph-structured data separately from graph-structured data used for security risk analysis. Note that step S14 may be omitted.
  • the analysis condition generation unit 110 is abstracted in step S13 so that graph structure data can be output as analysis conditions in a format such as DOT language or JavaScript (registered trademark) Object Notation (JSON) consisting of nodes and edges.
  • the post-processing of step S14 may be performed on the graph structure data obtained.
  • the analysis condition generation unit 110 may output the analysis conditions in a graph search language.
  • the analysis condition generator 110 performs post-processing to express the graph structure data abstracted in step S13 in a search language such as Cypher or Gremlin. Since search languages such as Cypher and Gremlin are in text format, they can be edited by the operator of the analysis condition generation apparatus 1 using an editor. Alternatively, an editor that visualizes data expressed in a search language such as Cypher or Gremlin as a graph may be created so that the operator of the analysis condition generating apparatus 1 can edit and correct the data more intuitively.
  • the analysis condition generation unit 110 outputs the graph structure data post-processed in step S14 to the analysis device 2 as analysis conditions used for security risk analysis.
  • FIG. 9 is a flowchart showing the flow of analysis processing in the analysis device 2. As shown in FIG.
  • step S21 the generation unit 220 generates a data flow graph based on the history information of the authentication system 3A collected by the history information collection unit 210.
  • step S22 the analysis unit 230 determines whether or not the data flow graph generated in step S21 includes a graph structure that matches the analysis conditions acquired from the analysis condition generation device 1.
  • the analysis conditions output from the analysis condition generation device 1 to the analysis device 2 are graph structure data.
  • step S21 If the data flow graph generated in step S21 includes a graph structure that matches the graph structure data output from the analysis condition generation device 1 to the analysis device 2 (step S22/Y), the analysis unit 230 determines in step S23 that there is a risk in the data path indicated by the data flow graph generated in step S21.
  • step S21 If the data flow graph generated in step S21 does not include a graph structure that matches the graph structure data output from the analysis condition generation device 1 to the analysis device 2 (step S22/N), the analysis unit 230 determines in step S23 that there is no risk in the data path indicated by the data flow graph generated in step S21.
  • the analysis conditions output from the analysis condition generation device 1 to the analysis device 2 correspond to graph structure data in which unique concepts included in vulnerability information are abstracted. Therefore, in step S22, the analysis unit 230 determines whether or not there is a security risk based on the vulnerabilities defined in the CVE and CWE and the variation data of the vulnerabilities.
  • step S25 the analysis unit 230 outputs the result of analyzing whether or not there is a security risk, and ends this process.
  • the analysis device 2 may cause the display unit 18 to display the analysis result output in step S25.
  • the structure that follows the rules of the data flow in the system to be analyzed is extracted as graph structure data from natural sentences indicating known vulnerabilities and threats, and is output as analysis conditions.
  • the rules of the data flow is expressed as an ontology, it is possible to extract the structure according to the rules of the data flow defined in the ontology from the specific information indicating known vulnerabilities and threats.
  • the ontology is constructed by the operator of the analytical condition generator 1 . Therefore, by constructing an ontology that abstracts the rules of data flow in the analysis target system, we generate analysis conditions that enable analysis of security risks that have mutated from known vulnerabilities and threats.
  • the analysis device 2 it is possible to analyze security risks using analysis conditions in which elements extracted from vulnerability information are abstracted. Therefore, if the data flow graph of the analysis target system contains variation data (variant data) of the graph structure data that indicates information defined as having a security risk in the vulnerability information, it is not included in the data flow graph of the analysis target system. It is possible to obtain an analysis result that there is a security risk with respect to the mutation data that is stored.
  • the CVE and CWE in the first embodiment are information published on the Internet, and are updated daily based on information provided by vendors.
  • the analysis condition generation device 1 of this modified example automatically updates vulnerability information such as CVE and CWE to generate analysis conditions.
  • FIG. 10 is a functional block diagram showing the functional configuration of the analytical condition generating device 1 according to the modified example of the first embodiment. 10, the same components as in FIG. 4 are denoted by the same reference numerals, and overlapping descriptions are omitted.
  • the analysis condition generation device 1 has an analysis condition generation unit 110, a storage unit 120, and an update unit .
  • the analysis condition generation unit 110 and the storage unit 120 are the same as those in FIG. 4, so descriptions thereof are omitted.
  • the update unit 130 acquires vulnerability information via the network 7 and updates the vulnerability information stored in the storage unit 120. Further, the update unit 130 acquires information indicating the vulnerability of the analysis target system defined by the operator of the analysis device 2 based on the result of the analysis processing in the analysis device 2 via the network 7, and stores the information in the storage unit 120. Stored vulnerability information may be updated.
  • the latest CVE and CWE published on the Internet and the analysis results of the analysis device 2 are acquired, and the vulnerability information stored in the analysis condition generation device 1 is updated.
  • the analysis condition generation device 1 can generate analysis conditions after reflecting the latest vulnerability information regarding the analysis target system.
  • Second Embodiment> In the first embodiment, a mode has been described in which graph structure data extracted using an ontology is abstracted in the analysis condition generation device 1 and then transmitted to the analysis device 2 .
  • the second embodiment differs from the first embodiment in that the analysis condition generation device 1 extracts graph structure data from natural sentences using an ontology, and the analysis processing device 4 abstracts the graph structure data.
  • a second embodiment of the present invention will be described below with reference to FIGS. 11 to 14. FIG. In the description of the second embodiment, the same reference numerals are given to the same elements as in the first embodiment, and overlapping descriptions are omitted.
  • FIG. 11 is a diagram showing an operation form of the analysis system 2000 according to the second embodiment.
  • an analysis system 2000 is configured by connecting an analysis condition generation device 1 and an analysis processing device 4 via a network 7 .
  • the analysis condition generation device 1 generates analysis conditions for analyzing security risks during analysis processing.
  • the analysis condition generation device 1 is an example of the first device of this embodiment.
  • the analysis processing device 4 Based on the analysis conditions generated by the analysis condition generation device 1, the analysis processing device 4 analyzes the security risks in the data flow graph showing the data flow of the analysis target system.
  • the analysis processing device 4 is an example of the second device of this embodiment.
  • FIG. 12 is a functional block diagram showing the functional configuration of the analysis condition generation device 1 according to this embodiment.
  • the analysis condition generation device 1 has a structure information extraction unit 111 and a storage unit 120.
  • the update unit 130 may be provided in addition to the above elements.
  • the structure information extraction unit 111, the storage unit 120, and the update unit 130 are the same as those shown in FIG. 4 or 10, so description thereof will be omitted.
  • FIG. 13 is a functional block diagram showing the functional configuration of the analysis processing device 4 according to this embodiment.
  • the analysis processing device 4 has a controller 400 that controls the operation of the entire analysis processing device 4 and a network I/F 401 that inputs and outputs information to the controller 400 .
  • Elements included in the analysis processing device 4 shown in FIG. It is realized by a combination of a software control section configured by the CPU 11 of the processing device 4 performing calculations and hardware included in the analysis processing device 4 .
  • the controller 400 has a graph analysis engine 410, an abstraction rule DB 420, and a storage unit 430, and analyzes security risks in the analysis target system based on information acquired via the network I/F 101.
  • the controller 400 is configured by installing a dedicated software program in the analysis processing device 4 .
  • the graph analysis engine 410 has an abstraction processing section 411 and an analysis processing section 412 .
  • the abstraction processing unit 411 performs an abstraction process of converting the named entity contained in the graph structure data acquired via the network I/F 101 into an abstract representation based on the abstraction rules stored in the abstraction rule DB 420. conduct.
  • the abstraction processing unit 411 may perform the abstraction processing by natural language processing.
  • the analysis processing unit 412 analyzes the security risk in the analysis target system based on the graph structure data after the abstraction processing.
  • the abstraction processing performed by the abstraction processing unit 411 is the same as the abstraction processing performed by the abstraction processing unit 112 of the first embodiment (see FIGS. 7B and 8).
  • the analysis processing performed by the analysis processing unit 412 is the same as the analysis processing performed by the analysis unit 230 of the first embodiment (see FIG. 9).
  • the abstraction rule DB 420 corresponds to a storage area for storing abstraction rules, which are rules for abstracting graph structure data when the abstraction processing unit 411 performs abstraction processing.
  • the abstraction rule DB 420 stores, for example, the following abstraction rules.
  • the abstraction rule DB 420 stores, for example, information for converting unique identifiers related to nodes and edges into abstract identifiers corresponding to node types and edge types.
  • the abstraction processing unit 112 can identify that the node type is any of the elements other than processes, data stores, and communication sockets, and the graph can be divided to the extent that the nodes and edges do not include named entities.
  • the concept of nodes and edges contained in structural data can be abstracted.
  • the type of each node is identified based on the node extension and header information.
  • An abstraction rule for converting a unique identifier "BNWjf" into an abstraction identifier "Directory” is stored in the abstraction identifier "File".
  • a node whose type is process and has a unique identifier "AYj3A” a node whose type is file and has a unique identifier "xni4G”
  • a node whose type is directory. and contains a node with unique identifier "BNWjf”.
  • the abstraction processing unit 411 uses the abstraction identifier “Process1” and the abstraction identifier “Process2” as the abstraction rule. As such, multiple nodes can be abstracted in an identifiable form.
  • the unique identifier “Tanaka” is converted into an abstract identifier “Admin” indicating an administrator
  • the unique identifier “Yamada” is converted into an abstract identifier indicating a non-administrator.
  • An abstraction rule that converts to a certain "Non-Admin" is stored.
  • a node whose node type is file and has a unique identifier "Tanaka” indicating the owner of the file
  • the abstraction processing unit 411 converts the unique identifier “Tanaka” into the abstract identifier “Admin” indicating the administrator, and the unique identifier “Yamada” indicating the non-administrator according to the abstraction rule. It can be converted to "Non-Admin” which is an abstract identifier.
  • an abstraction rule when the graph structure data contains a plurality of nodes having unique identifiers indicating user names, for example, abstract identifiers "Admin1”, abstract identifiers "Admin2”, and so on. may store an abstraction of the nodes of each in an identifiable form.
  • the unique identifier "8.8.8.8” indicating the IP address is set to "Global IP” (or "Local IP”).
  • the graph structure data includes a node whose node type is communication socket and has a unique identifier “8.8.8.8” indicating an IP address.
  • the abstraction processing unit 411 can abstract the unique identifier "8.8.8.8” indicating the IP address as "Global IP” (or “Local IP”) based on the abstraction rule. can.
  • the IP address of the unique identifier of each node is set to, for example, " It is also possible to store an abstraction in a form that allows each node to be identified, such as "Local IP 1" and "Local IP 2".
  • the abstraction rule DB 420 also stores, for example, abstraction rules for abstracting the port number included in the node of the communication socket, such as "****" indicating an arbitrary port number.
  • abstraction rules for abstracting the port number included in the node of the communication socket, such as "****" indicating an arbitrary port number.
  • the graph structure data includes a node whose node type is communication socket and whose port number is "647X”.
  • the abstraction processing unit 411 abstracts the port number "647X" included in the node of the communication socket to "****” or the like indicating an arbitrary port number.
  • ports 0 to 1023 reserved for use by well-known services and protocols are You may memorize what leaves a numerical value.
  • the abstraction processing unit 411 performs abstraction processing in a format that allows identification of each of the plurality of nodes.
  • FIG. 14 is a sequence diagram showing the flow of analysis processing in the analysis system 2000. As shown in FIG.
  • an ontology is constructed by an operator who operates the analysis condition generation device 1.
  • An operator who operates the analysis condition generation apparatus 1 builds an ontology used when generating analysis conditions based on, for example, a data flow graph showing the flow of data in the system to be analyzed (for example, the authentication system 3A).
  • the operator who operates the analysis condition generation device 1 may construct the ontology by referring to the vulnerability information.
  • step S31 the structural information extraction unit 111 acquires the ontology (see FIG. 5B) and the natural sentence (see FIG. 7A) stored in the storage unit 120. Subsequently, in step S32, the structural information extraction unit 111 performs structuring processing based on the ontology and the natural sentence acquired in step S31. Specifically, in the structuring process, the structure information extraction unit 111 extracts graph structure data (see FIG. 7B) that applies to the relationship between concepts defined in the ontology from natural sentences.
  • step S33 the structure information extraction unit 111 outputs the graph structure data extracted from the natural sentence in step S32 to the analysis processing device 4.
  • step S34 the abstraction processing unit 411 abstracts the graph structure data received from the analysis condition generation device 1. Specifically, the abstraction processing unit 411 converts unique identifiers for nodes and edges included in the graph structure data into abstract identifiers according to the abstraction rules stored in the abstraction rule DB (see FIG. 8). . In step S34, the abstraction processing unit 411 can identify that the type of the node is any of the elements other than the process, data store, and communication socket, and to the extent that the node and edge do not include the named entity It abstracts the concept of nodes and edges contained in graph structure data.
  • the graph structure data abstracted by the abstraction processing unit 112 is graph structure data that is less abstracted than the ontology input to the analysis condition generation device 1 in step S31, and the structure data in step S32. This corresponds to graph structure data abstracted from the graph structure data extracted by the information extraction unit 111 .
  • step S35 the graph analysis engine 410 performs post-processing on the graph structure data.
  • the graph analysis engine 410 performs, for example, a process of editing abstracted graph structure data according to a rule preset by the operator of the analysis processing device 4, and a security risk analysis in the analysis target system.
  • a process of managing meaningless graph-structured data separately from graph-structured data used for security risk analysis is performed as post-processing. Note that step S35 may be omitted.
  • the graph analysis engine 410 postulates the graph structure data abstracted in step S34 so that the graph structure data can be used as analysis conditions in a format such as DOT language or JSON consisting of nodes and edges. processing may be performed. Also, the graph analysis engine 410 may output analysis conditions in a graph search language. In this case, the graph analysis engine 410 performs post-processing to express the graph structure data abstracted in step S34 in a search language such as cypher or gremlin. Since search languages such as cypher and gremlin are in text format, they can be edited by the operator of the analysis processing device 4 using an editor. Alternatively, an editor that visualizes data expressed in a search language such as cypher or gremlin as a graph may be created so that the operator of the analysis processing device 4 can edit and correct the data more intuitively.
  • search languages such as cypher and gremlin are in text format, they can be edited by the operator of the analysis processing device 4 using an
  • step S36 the analysis processing unit 412 determines whether or not the data flow graph includes a graph structure that matches the analysis conditions.
  • the process performed by the analysis processing unit 412 in step S36 corresponds to steps S22 to S24 in the flowchart of FIG.
  • the data flow graph for which the analysis processing unit 412 analyzes the security risk in step S36 may be generated by the analysis processing device 4 acquiring history information of the system to be analyzed.
  • history information of the system to be analyzed is inputted to an information processing device (not shown) connected to the analysis processing device 4 to create a data flow graph and transmit it to the analysis processing device 4 . good too.
  • step S37 the analysis processing unit 412 outputs the analysis result of step S36, and ends this process. Note that the analysis processing unit 412 may cause the display unit 18 to display the analysis result output in step S37.
  • the structure that follows the rules of the data flow in the system to be analyzed is extracted as graph structure data from natural sentences indicating known vulnerabilities and threats, and is output as analysis conditions.
  • the rules of the data flow is expressed as an ontology, it is possible to extract the structure according to the rules of the data flow defined in the ontology from the specific information indicating known vulnerabilities and threats.
  • the ontology is constructed by the operator of the analytical condition generator 1 . Therefore, by constructing an ontology that abstracts the rules of data flow in the analysis target system, we generate analysis conditions that enable analysis of security risks that have mutated from known vulnerabilities and threats.
  • the analysis processing device 4 it is possible to analyze security risks using analysis conditions in which elements extracted from vulnerability information are abstracted. Therefore, if the data flow graph of the analysis target system contains variation data (variant data) of the graph structure data that indicates information defined as having a security risk in the vulnerability information, it is not included in the data flow graph of the analysis target system. It is possible to obtain an analysis result that there is a security risk with respect to the mutation data that is stored.
  • the analysis condition generation device 1 and the analysis processing device 4 can distribute the process of generating the analysis conditions used for security risk analysis. By doing so, it is possible to suppress an increase in the processing load on the analysis condition generating apparatus 1 due to natural language processing.
  • FIG. 15 is a block diagram illustrating a schematic configuration of an analysis condition generation device 1A according to the third embodiment of the invention. As shown in FIG. 15, the analysis condition generator 1A includes an analysis condition generator 110A.
  • the analysis condition generation unit 110A uses an ontology that describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more edges indicating events related to the nodes. Then, graph structure data indicating the relationship between nodes and edges is generated from natural sentences, and analysis conditions for analyzing the security risk of the analysis target system are generated based on the graph structure data.
  • the analysis condition generation device 1A according to the third embodiment may perform the operation of the analysis condition generation device 1 according to the first embodiment.
  • the description of the first embodiment can also be applied to the third embodiment.
  • 3rd Embodiment is not limited to the above example.
  • FIG. 16 is a block diagram illustrating a schematic configuration of an analysis system 2000A according to the fourth embodiment of the invention.
  • the analysis system 2000A includes a structural information extraction section 111A, an abstraction processing section 411A, and an analysis processing section 412A.
  • the structural information extraction unit 111A uses an ontology describing the relationship between one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more edges indicating events related to the nodes.
  • Graph structure data indicating the relationship between nodes and edges is extracted from natural sentences.
  • the abstraction processing unit 411A converts unique identifiers related to nodes and edges included in graph structure data into abstract identifiers based on abstraction rules.
  • the analysis processing unit 412A analyzes security risks in the analysis target system based on the analysis conditions generated from the graph structure data in which the unique identifier is converted to the abstract identifier.
  • the analysis system 2000A according to the fourth embodiment may perform the operation of the analysis system 2000 according to the second embodiment.
  • the description of the second embodiment can also be applied to the fourth embodiment.
  • 4th Embodiment is not limited to the above example.
  • the steps in the processing described in this specification do not necessarily have to be executed in chronological order according to the order described in the flowcharts and sequence diagrams.
  • the steps in the process may be performed in an order different from that described in the flowcharts and sequence diagrams, or may be performed in parallel.
  • some of the steps in the process may be deleted and additional steps may be added to the process.
  • an apparatus may be provided that includes the components of the analysis condition generation apparatus 1 described in this specification (for example, elements corresponding to the units included in the analysis condition generation unit 110).
  • a method may also be provided that includes the processing of the above components, and a program may be provided for causing a processor to execute the processing of the above components.
  • a non-transitory computer readable medium recording the program may be provided.
  • such devices, modules, methods, programs, and computer-readable non-transitory recording media are also included in the present invention.
  • the ontology is having an abstraction identifier indicating the type of the node and the type of the edge;
  • the type of the node includes a process related to the data flow graph, a data store, a communication socket, and an external actor other than the process, the data store, and the communication socket.
  • the analysis condition generation device according to appendix 1.
  • the analysis condition generation unit is a structural information extraction unit that extracts the graph structure data from the natural sentence based on the ontology; an abstraction processing unit that converts unique identifiers related to the nodes and edges included in the graph structure data into the abstract identifiers based on the ontology;
  • the analysis condition generation device according to appendix 2.
  • a node indicating the process has an attribute indicating execution authority of the process;
  • a node indicating the data store has an attribute indicating an access right to the data store,
  • the analysis condition generation device according to appendix 2 or 3.
  • Appendix 5 An updating unit that updates the natural sentence, The analysis condition generation device according to any one of Appendices 1 to 4.
  • the analysis condition generation unit is generating the graph structure data by performing natural language processing using the ontology on the natural sentence;
  • the analysis condition generation device according to any one of appendices 1 to 5.
  • Appendix 8 Using an ontology that describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more edges indicating events related to the nodes, the above from natural sentences a structure information extraction unit that extracts graph structure data indicating the relationship between nodes and the edges; an abstraction processing unit that converts unique identifiers related to the nodes and edges included in the graph structure data into abstract identifiers based on an abstraction rule; an analysis processing unit that analyzes security risks in the analysis target system based on analysis conditions generated from the graph structure data in which the unique identifier is converted to the abstract identifier; analysis system.
  • the abstract identifier is an identifier indicating the type of the node and the type of the edge;
  • the type of the node is a process associated with the dataflow graph, a data store, a communication socket, and external actors other than the process, the data store and the communication socket;
  • the abstraction rule is: information for converting the unique identifier into the abstract identifier according to the type of the node and the type of the edge;
  • the analysis system according to Appendix 8.
  • a node indicating the process has an attribute indicating execution authority of the process;
  • a node indicating the data store has an attribute indicating an access right to the data store, Analytical system according to Appendix 9.
  • the first device is Having an updating unit that updates the natural sentence, The analysis system according to Appendix 11.
  • the structural information extraction unit generates the graph structure data by performing natural language processing on the natural sentence using the ontology. 13.
  • the analysis system according to any one of Appendices 8 to 12.
  • Appendix 16 Using an ontology that describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more edges indicating events related to the nodes, the above from natural sentences extracting graph structure data indicating relationships between nodes and said edges; converting unique identifiers for the nodes and edges included in the graph structure data into abstract identifiers based on an abstraction rule; analyzing a security risk in the analysis target system based on analysis conditions generated from the graph structure data in which the unique identifier is converted to the abstract identifier; analysis program.
  • Appendix 18 Using an ontology that describes the relationship between one or more nodes related to a data flow graph indicating the flow of data in the analysis target system and one or more edges indicating events related to the nodes, the above from natural sentences extracting graph structure data indicating relationships between nodes and said edges; converting unique identifiers for the nodes and edges included in the graph structure data into abstract identifiers based on an abstraction rule; analyzing security risks in the analysis target system based on analysis conditions generated from the graph structure data in which the unique identifier is converted to the abstract identifier; Analysis method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Machine Translation (AREA)

Abstract

【課題】分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成する。 【解決手段】分析条件生成装置1Aは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文からノードとエッジとの関係性を示すグラフ構造データを生成し、グラフ構造データに基づいて分析対象システムのセキュリティリスクを分析するための分析条件を生成する。

Description

分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法
 本発明は、分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法に関する。
 近年、ネットワークに接続されるシステムのセキュリティ強化が望まれており、システムのセキュリティリスクを分析するために、脆弱性診断、ペネトレーションテストといったサービスが提供されている。
 脆弱性診断は、SQLインジェクション、クロスサイトリクエストフォージェリ等の既知の脆弱性の定義に基づいて、システムに内在する脆弱性やセキュリティ機能の不足を網羅的に把握する手法である。ペネトレーションテストは、予め作成した攻撃シナリオに基づいたシステムへの攻撃により、攻撃目的が達成されてしまうかどうかを分析し、システムに対する被害の実現性を把握する手法である。
 例えば、特許文献1には、評価ターゲットとなる対象システムが使用する規格、及び仕様と、公開脆弱性情報とを基点として、評価ターゲットとなる対象システムの脆弱性を評価するための情報を生成する技術が開示されている。
 また、例えば、特許文献2には、ソフトウェアの処理に対する攻撃による脅威と、脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、ソフトウェアの処理フローから、脅威一覧に含まれる脆弱性箇所を判定する技術が開示されている。
特開2019-192101号公報 再表2019/142335号公報
 脆弱性診断は、システム全体を網羅的に検証できる一方で、定義されていない脆弱性等を把握することが困難である。また、ペネトレーションテストは、システムに対する具体的な侵入方法等を検証できる一方で、システムを網羅的に分析しようとすると、コストや時間が増大するという問題がある。このような問題に対して、対象システム内のデータの取り扱いに注目したセキュリティリスク分析が行われている。
 特許文献1に開示されている技術では、評価ターゲットとなる対象システムが使用する規格及び仕様における脆弱性が評価される。つまり、特許文献1は、対象システム内のデータの取り扱いに注目したセキュリティリスク分析を目的とした技術ではないため、定義されていない脆弱性や、対象システムが使用する規格及び仕様以外の脆弱性を評価することができない。
 また、特許文献2に開示されている技術では、脅威一覧に含まれる脆弱性記述は、CWE(Common Weakness Enumeration)から取得される。CWEは、多種多様な脆弱性の種類が階層化かつ抽象化されているため、ソフトウェアの処理フローに当てはめて脆弱性箇所を判定するにあたり、ソフトウェアの処理フロー毎に具体化する必要がある。したがって、システムを網羅的に分析しようとすると、膨大な具体化の規則が必要となるため、コストや時間が増大するという問題を解決することができない。
 本発明の目的は、上記課題を解決するためになされたものであり、分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成することを目的とする。
 本発明の分析条件生成装置は、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成する分析条件生成部を備える。
 本発明の分析システムは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成する構造情報生成部と、抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換する抽象化処理部と、前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析する分析処理部と、を備える。
 本発明の分析条件生成プログラムは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することをプロセッサに実行させる。
 本発明の分析プログラムは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成することと、抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象識別子に変換することと、前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、をプロセッサに実行させる。
 本発明の分析条件生成方法は、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することを備える。
 本発明の分析方法は、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成することと、抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象識別子に変換することと、前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、を備える。
 本発明によれば、分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成することができる。なお、本発明により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。
図1は、第1の実施形態に係る分析対象システムにおけるデータの流れの説明図である。 図2は、第1の実施形態の変形例に係る分析システムの運用形態を示す図である。 図3は、第1の実施形態に係る分析条件生成装置のハードウェア構成を示すブロック図である。 図4は、第1の実施形態に係る分析条件生成装置の機能構成を示す機能ブロック図である。 図5Aは、第1の実施形態に係るオントロジーの記述を例示した図である。 図5Bは、第1の実施形態に係るオントロジーを例示した図である。 図6は、第1の実施形態に係る分析条件生成処理の流れを示すフローチャートである。 図7Aは、第1の実施形態に係る自然文の一例を示す図である。 図7Bは、第1の実施形態に係る構造化処理の説明図である。 図8は、第1の実施形態に係る抽象化処理の説明図である。 図9は、第1の実施形態に係る分析処理の流れを示すフローチャートである。 図10は、第1の実施形態の変形例に係る分析条件生成処理の機能構成を示す機能ブロック図である。 図11は、第2の実施形態に係る分析システムの運用形態を示す図である。 図12は、第2の実施形態に係る分析条件生成装置の機能構成を示す機能ブロック図である。 図13は、第2の実施形態に係る分析装置の機能構成を示す機能ブロック図である。 図14は、第2の実施形態に係る分析システムにおける分析処理の流れを示すシーケンス図である。 図15は、第3の実施形態に係る分析条件生成装置の構成を示す図である。 図16は、第4の実施形態に係る分析システムの構成を示す図である。
 以下、添付の図面を参照して本発明の実施形態を詳細に説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の又は対応する符号を付することにより重複した説明が省略され得る。
 以下に説明される各実施形態は、本発明を実現可能な構成の一例に過ぎない。以下の各実施形態は、本発明が適用される装置の構成や各種の条件に応じて適宜に修正又は変更することが可能である。以下の各実施形態に含まれる要素の組合せの全てが本発明を実現するに必須であるとは限られず、要素の一部を適宜に省略することが可能である。したがって、本発明の範囲は、以下の各実施形態に記載される構成によって限定されるものではない。相互に矛盾のない限りにおいて、実施形態内に記載された複数の構成を組み合わせた構成も採用可能である。
 説明は、以下の順序で行われる。
 1.本発明の実施形態の概要
 2.第1の実施形態
  2.1.分析対象システムにおけるデータの流れ
  2.2.分析システムの運用形態
  2.3.情報処理装置のハードウェア構成
  2.4.分析条件生成装置の機能構成
  2.5.分析条件生成処理の流れ
  2.6.分析処理の流れ
 3.第1の実施形態の変形例
  3.1.分析条件生成装置の機能構成
 4.第2の実施形態
  4.1.分析システムの運用形態
  4.2.分析条件生成装置の機能構成
  4.3.分析処理装置の機能構成
  4.4.分析処理の流れ
 5.第3の実施形態
 6.第4の実施形態
 7.その他の実施形態
<1.本発明の実施形態の概要>
 まず、本発明の実施形態の概要を説明する。
(1)技術的課題
 近年、ネットワークに接続されるシステムのセキュリティ強化が望まれており、システムのセキュリティリスクを分析するために、脆弱性診断、ペネトレーションテストといったサービスが提供されている。
 脆弱性診断は、SQLインジェクション、クロスサイトリクエストフォージェリ等の既知の脆弱性の定義に基づいて、システムに内在する脆弱性やセキュリティ機能の不足を網羅的に把握する手法である。ペネトレーションテストは、予め作成した攻撃シナリオに基づいたシステムへの攻撃により、攻撃目的が達成されてしまうかどうかを分析し、システムに対する被害の実現性を把握する手法である。
 例えば、評価ターゲットとなる対象システムが使用する規格、及び仕様と、公開脆弱性情報とを基点として、評価ターゲットとなる対象システムの脆弱性を評価するための情報を生成する技術が開示されている。
 また、例えば、ソフトウェアの処理に対する攻撃による脅威と、脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、ソフトウェアの処理フローから、脅威一覧に含まれる脆弱性箇所を判定する技術が開示されている。
 脆弱性診断は、システム全体を網羅的に検証できる一方で、定義されていない脆弱性等を把握することが困難である。また、ペネトレーションテストは、システムに対する具体的な侵入方法等を検証できる一方で、システムを網羅的に分析しようとすると、コストや時間が増大するという問題がある。このような問題に対して、対象システム内のデータの取り扱いに注目したセキュリティリスク分析が行われている。
 上述したような評価ターゲットとなる対象システムの脆弱性を評価するための情報を生成する技術では、評価ターゲットとなる対象システムが使用する規格及び仕様における脆弱性が評価される。つまり、上述したような評価ターゲットとなる対象システムの脆弱性を評価するための情報を生成する技術は、対象システム内のデータの取り扱いに注目したセキュリティリスク分析を目的とした技術ではないため、定義されていない脆弱性や、対象システムが使用する規格及び仕様以外の脆弱性を評価することができない。
 また、上述したようなソフトウェアの処理フローから、脅威一覧に含まれる脆弱性箇所を判定する技術では、脅威一覧に含まれる脆弱性記述は、CWEから取得される。CWEは、多種多様な脆弱性の種類が階層化かつ抽象化されているため、ソフトウェアの処理フローに当てはめて脆弱性箇所を判定するにあたり、ソフトウェアの処理フロー毎に具体化する必要がある。したがって、システムを網羅的に分析しようとすると、膨大な具体化の規則が必要となるため、コストや時間が増大するという問題を解決することができない。
 以上の事情に鑑み、本実施形態では、分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成することを目的とする。
(2)技術的特徴
 本発明の実施形態では、分析条件生成装置が、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文からノードとエッジとの関係性を示すグラフ構造データを生成し、グラフ構造データに基づいて分析対象システムのセキュリティリスクを分析するための分析条件を生成する分析条件生成部を備える。
 これにより、分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成することが可能となる。なお、上述した技術的特徴は本発明の実施形態の具体的な一例であり、当然ながら、本発明の実施形態は上述した技術的特徴に限定されない。
<2.第1の実施形態>
 以下、図1から図8を参照して、本発明の第1の実施形態について説明する。本実施形態においては、ネットワークを介してサービス等を提供するシステムを対象としてセキュリティリスクを分析するための分析条件生成装置を含む分析システムについて説明する。
<2.1.分析対象システムにおけるデータの流れ>
 まず、図1を参照して、分析対象システムにおけるデータの経路について説明する。図1は、分析対象システムの一例である認証システム3Aにおけるデータの経路の説明図である。認証システム3Aは、例えば、既存の顔認証技術によってユーザを認証する認証サービスを提供するシステムに相当する。
 認証システム3Aは、ユーザ情報取得モジュール31、クライアントサーバ32、サーバ33、及びDB(Data Base)34を含む。ユーザ情報取得モジュール31、クライアントサーバ32、サーバ33、及びDB34は、それぞれ、ネットワーク7(図2参照)とは異なるネットワークを介して互いに接続されている。
 ユーザ情報取得モジュール31としては、カードに内蔵されたICチップ等からユーザの顔画像を含むユーザ情報を読み取り可能なIDリーダ、ユーザ情報としてゲートを通過するユーザの顔画像を撮像するカメラ等を用いることができる。ユーザ情報取得モジュール31によって取得されたユーザ情報は、クライアントサーバ32に送信される。本実施形態では、認証システム3Aにおいてやり取りされる情報の経路として、ユーザ情報取得モジュール31が取得したユーザ情報を含むデータの経路を例に説明を行う。また、データとしては、ユーザの顔画像を示す“FFFF.jpg”ファイルや、拡張子が“.config”、“.log”、“.tmp”、“.dat”、“.dump”であるデータファイルを例に取り上げる。
 なお、図1では、ユーザ情報取得モジュール31、クライアントサーバ32、サーバ33、及びDB34におけるデータのやり取りを実線の矢印で示している。また、クライアントサーバ32、サーバ33、及びDB34において動作するプログラムによるファイルへのアクセス及びファイル生成を破線の矢印で示している。さらに、サーバ33及びDB34における認証システム3A外のIP(Internet Protocol)アドレスとの通信を一点鎖線で示している。
 クライアントサーバ32は、ユーザ情報取得モジュール31によって読み取られたユーザ情報(例えば、“FFFF.jpg”や、ユーザに関する各種の設定情報等)を取得する。クライアントサーバ32は、取得したユーザ情報に基づいて、データファイルを一意に識別するためのファイル識別子を含むデータファイルを生成する。このとき、クライアントサーバ32は、例えば、拡張子が“.log”、“.tmp”等であるデータファイルを生成する。拡張子が“.log”であるデータファイルは、クライアントサーバ32において動作するプログラムのログデータに相当する。また、クライアントサーバ32は、“FFFF.jpg”の画像を含む、拡張子が“.tmp”である一時的なデータファイルを生成する。また、クライアントサーバ32は、拡張子が“.config”であるデータファイルを読み込む。拡張子が“.config”であるデータファイルは、例えば、サーバ33のIPアドレス等の設定パラメータのデータが含まれる設定ファイルに相当し、ファイルを一意に識別するためのファイル識別子が含まれている。
 サーバ33は、クライアントサーバ32からユーザ情報を受信する。サーバ33は、受信したユーザ情報に基づいて、データファイルを一意に識別するためのファイル識別子を含むデータファイルを生成する。サーバ33は、例えば、拡張子が“.log”、“.dump”等であるデータファイルを生成する。拡張子が“.log”であるデータファイルは、サーバ33において動作するプログラムのログデータに相当する。また、サーバ33は、サーバ33において動作するプログラムに異常が発生したことを示す、拡張子が“.dump”であるデータファイルを生成する。また、サーバ33は、拡張子が“.config”であるデータファイルを読み込む。拡張子が“.config”であるデータファイルは、例えば、DB34のIPアドレス等の設定パラメータのデータが含まれる設定ファイルに相当し、ファイルを一意に識別するためのファイル識別子が含まれている。さらに、サーバ33は、認証システム3Aの外部のIPアドレスで指定される情報資源において実現されているSNS(Social Networking Service)と通信を行っている。
 DB34は、サーバ33からユーザ情報を受信して記憶する。また、DB34は、受信したユーザ情報に基づいて、データファイルを一意に識別するためのファイル識別子を含むデータファイルを生成する。DB34は、例えば、拡張子が“.log”、“.data”等であるデータファイルを生成する。拡張子が“.log”であるデータファイルは、DB34において動作するプログラムのログデータに相当する。また、DB34は、何等かのデータが含まれる、拡張子が“.dat”であるデータファイルを生成する。また、DB34は拡張子が“.config”であるデータファイルを読み込む。拡張子が“.config”であるデータファイルは、例えば、DB34のデータの保存位置などの設定パラメータのデータが含まれる設定ファイルに相当し、ファイルを一意に識別するためのファイル識別子が含まれている。
 このように、認証システム3Aにおいては、プログラムが動作することにより、様々なデータが生成されてやり取りされる。しかしながら、認証システム3Aで動作するプログラムの動作によって生成される又はやり取りされるデータは、必ずしも認証システム3Aによって提供される認証サービスに用いられるとは限らない。また、認証システム3Aにおいて生成される又はやり取りされるデータに関して、セキュリティリスクがあると考えられるものもある。
 例えば、認証システム3Aでやり取りされるデータの経路において、SNS等、認証システム3A外部のIPに向けてユーザ情報のような個人情報を含むデータが晒されている可能性がある。認証システム3A外部のIPに個人情報を含むデータが晒されている可能性があるような状態は、セキュリティの観点から望ましくない。また、拡張子が“.tmp”である一時的なデータファイルが同一のディレクトリ内に所定時間以上残ってしまうようなデータの滞留もセキュリティの観点から望ましいとは言えない。さらに、拡張子が“.dump”であるデータファイルは、システムの開発中にプログラムの動作に障害が発生した際に原因解析のために生成されるファイルである。ゆえに、認証システム3Aの本番環境において拡張子が“.dump”であるデータファイルが作成されることは、セキュリティの観点から望ましいとは言えない。
 上述したような、認証システム3Aで動作するプログラムの動作によって生成される又はやり取りされるデータに関連する情報は、以下のようにして得ることができる。例えば、認証システム3Aにおいて実行される認証プログラムが、各ホスト端末の資源(記憶媒体、メモリ等)を利用する際に呼び出されるシステムコールの取得や、認証プログラムの実行中に認証システム3Aをスナップショットすることによって得ることできる。システムコールや認証システム3Aのスナップショットは、認証システム3Aにおいて動作するプログラム(ここでは、認証プログラム)が動作することによって生成される情報である。換言すると、システムコールや認証システム3Aのスナップショットは、認証システム3Aにおいて動作するプログラムの動作履歴に関する履歴情報に相当する。以後、システムコールや認証システム3A等の分析対象システムのスナップショットのことを「履歴情報」と称することがある。
 本実施形態では、分析装置2が、履歴情報を認証システム3Aから取得して、履歴情報をグラフ構造で表現したデータフローグラフを生成する。そして、分析装置2は、生成したデータフローグラフを用いて、認証システム3Aにおいてやり取りされるデータの経路におけるセキュリティリスクを分析する。
<2.2.分析システムの運用形態>
 続いて、図2を参照して分析システム1000の運用形態について説明する。図2は、分析システム1000の運用形態を示す図である。図2に示すように、分析システム1000は、分析条件生成装置1、分析装置2、及び認証システム3Aに含まれるホスト端末が、ネットワーク7を介して接続されている。
 分析条件生成装置1は、分析装置2がセキュリティリスクの有無を分析するための分析条件を生成する。
 分析装置2は、履歴情報を認証システム3Aから取得して、認証システム3Aにおいてやり取りされるデータの経路におけるセキュリティリスクの有無を分析する。分析装置2は、分析対象システムでやり取りされるデータの経路におけるセキュリティリスクの有無を分析するプログラムがインストールされたサーバ等の情報処理装置に相当する。また、本実施形態の分析対象システムとは、例えば、認証システム3A等、分析装置2にネットワーク7を介して接続されているシステムに相当する。
 分析装置2は、分析対象システムから履歴情報を収集する履歴情報収集部210と、履歴情報に基づいて分析対象システムにおいてやり取りされるデータの経路を示すデータフローグラフを生成する生成部220と、分析条件に基づいて、データフローグラフにおけるセキュリティリスクの有無を分析する分析処理を実行する分析部230とを有する。
 認証システム3Aは、ホスト端末として、ユーザ情報取得モジュール31、クライアントサーバ32、サーバ33、及びDB34を含む。
<2.3.情報処理装置のハードウェア構成>
 続いて、図3を参照して、本実施形態に係る分析条件生成装置1及び分析装置2や、認証システム3Aに含まれるホスト端末等の情報処理装置のハードウェア構成について説明する。図3は、情報処理装置のハードウェア構成を示すブロック図である。
 情報処理装置は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、記憶媒体14、及びインタフェース(I/F)15がバス16を介して相互に接続されている。また、I/F15には、入力部17、表示部18及びネットワーク7が接続されている。
 CPU11は、演算手段であり、情報処理装置全体の動作を制御する。ROM12は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。RAM13は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU11が情報を処理する際の作業領域として用いられる。記憶媒体14は、HDD(Hard Disk Drive)等の情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納されている。
 I/F15は、バス16と各種のハードウェアやネットワーク等とを接続し制御する。入力部17は、ユーザが情報処理装置に情報を入力するためのキーボードやマウス等の入力装置である。表示部18は、ユーザが情報処理装置の状態を確認するためのLCD(Liquid Crystal Display)等の表示装置である。なお、入力部17や表示部18は、省略可能である。
 このようなハードウェア構成において、ROM12に格納されたプログラムや、記憶媒体14からRAM13にロードされたプログラムに従ってCPU11が演算を行うことにより、情報処理装置のソフトウェア制御部が構成される。そして、以上のようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る分析条件生成装置1のコントローラ100(図4参照)の機能を実現する機能ブロックが構成される。また、分析装置2の履歴情報収集部210、生成部220及び分析部230の機能は、分析装置2のROM12に格納されたプログラムや、分析装置2の記憶媒体14から分析装置2のRAM13にロードされたプログラムに従って、分析装置2のCPU11が演算を行って構成されるソフトウェア制御部と、分析装置2に含まれるハードウェアとの組み合わせによって実現される。
<2.4.分析条件生成装置の機能構成>
 続いて、図4を参照して、分析条件生成装置1の機能構成について説明する。図4は、分析条件生成装置1の機能構成を示す機能ブロック図である。図4に示すように、分析条件生成装置1は、分析条件生成装置1全体の動作を制御するコントローラ100と、コントローラ100に情報を入出力するネットワークI/F101と、を有する。
 コントローラ100は、ネットワークI/F101を介して取得した情報に基づいて、認証システム3Aにおけるセキュリティリスクを分析するための分析条件の生成等を行う。コントローラ100は、専用のソフトウェア・プログラムが分析条件生成装置1等の情報処理装置にインストールされることによって構成されている。
 図4に示すように、コントローラ100は、分析条件生成部110と、記憶部120とを有する。分析条件生成部110は、共通脆弱性識別子(Common Vulnerabilities and Exposures:CVE)や共通脆弱性タイプ一覧(Common Weakness Enumeration:CWE)等の情報セキュリティに関するセキュリティリスクを示す情報から、セキュリティリスクを分析するための分析条件を生成する。CVEとは、ベンダを跨いだ脆弱性情報の比較を容易に行う目的で、脆弱性情報にユニークな識別番号を付与し、リスト化したものである。また、CWEとは、脆弱性について、どのような領域に当てはまるかを分類した指標であり、CVEの補足情報に相当するものである。以後の説明において、CVE、CWE、AAR(After Action Report)、及びセキュリティベンダや専門家によるセキュリティリスクの分析レポート等の情報セキュリティに関するセキュリティリスクを示す文字情報のことを、「脆弱性情報」と称することがある。
 具体的に、分析条件生成部110は、脆弱性情報に対して自然言語処理を行って分析条件を生成する。分析条件生成部110が行う自然言語処理には、固有表現抽出工程、関係抽出工程、正規化工程、及びTemplate Filling工程が含まれている。
 固有表現抽出(Named Entity Recognition:NER)工程は、自然文から、固有表現(Named Entity)を抽出する工程である。自然文とは、話し言葉や書き言葉等のヒトが日常生活で用いる文字情報であり、かつ構造化されていない文字情報に相当する。例えば、CVEやCWEは、情報セキュリティに関するセキュリティリスクを示す文字情報の一例である。
 関係抽出(Relation Extraction:RE)工程は、NER工程によって抽出された固有表現間の関係性を抽出する工程である。正規化工程は、単語の分割、文字種やつづり、表記ゆれの吸収等の処理を行うことにより、固有表現に含まれるノイズを除去する工程である。Template Filling工程は、固有表現や固有表現間の関係性をテンプレートに記述された構造に当てはめる工程である。本実施形態の分析条件生成部110は、テンプレートとして、オントロジーを用いて自然言語処理を行う。分析条件生成部110において行われる分析条件生成処理やオントロジーの詳細については、後述する。
 分析条件生成部110は、構造情報抽出部111と、抽象化処理部112とを有する。構造情報抽出部111は、脆弱性情報等の自然文から、固有表現がグラフ構造化されたグラフ構造データを抽出する構造化処理を行う。抽象化処理部112は、グラフ構造データに含まれる固有表現を抽象表現に変換する抽象化処理を行う。構造化処理及び抽象化処理の詳細については、後述する。
 記憶部120は、脆弱性情報や、オントロジー等を記憶する記憶領域である。以上説明したような構成により、分析条件生成装置1は、分析対象システムのセキュリティリスクを分析するための分析条件を生成する。
 本実施形態において、分析装置2は、分析対象システムのデータの流れを示すデータフローグラフにおけるセキュリティリスクを分析する。データフローグラフは、データの実体を示すノードと、ノードに関連するイベントを示すエッジとによりグラフ構造化された分析対象システムの履歴情報に相当する。したがって、データフローグラフにおけるセキュリティリスクを分析するための分析条件もグラフ構造化された情報、グラフに関する問い合わせ言語(Gremlin(登録商標),Cypher(登録商標),SPARQL)の検索式、又はグラフ問い合わせ実現するためのプログラム等でなければならない。
 また、OpenIoC(Indicator of Compromise)やSTIX(Structured Threat Information eXpression)等に定義された脅威情報から自動で分析条件を生成してデータフローグラフにおけるセキュリティリスクを分析することも可能である。しかしながら、OpenIoCやSTIXは、既知の脆弱性や脅威を定義した情報であるため、分析対象システムがOpenIoCやSTIXに定義されている脆弱性や脅威そのものに晒されていることしか分析することができない。つまり、既知の脆弱性や脅威から変異したようなセキュリティリスクを評価することができない。
 このような問題に対して、本実施形態では、既知の脆弱性や脅威を示す自然文から、分析対象システムにおけるデータの流れの規則に従った抽象的な構造をグラフ構造データとして抽出し、既知の脆弱性や脅威から変異したようなセキュリティリスクを分析可能な分析条件を生成する。
<2.5.分析条件生成処理の流れ>
 続いて、図5Aから図8を参照して、セキュリティリスクを分析するための分析条件を生成する分析条件生成処理の詳細について説明する。図5Aは、本実施形態に係るオントロジーの記述を例示した図である。図5Bは、本実施形態に係るオントロジーを例示した図である。図6は、本実施形態に係る分析条件生成処理の流れを示すフローチャートである。図7Aは、本実施形態に係る自然文の一例を示す図である。図7Bは、本実施形態に係る構造化処理の説明図である。図8は、本実施形態に係る抽象化処理の説明図である。
 まず、本実施形態に係るオントロジーについて説明する。「オントロジー」とは、意味リンクを用いて概念間の関係を記述することにより、ある知識を記述するときに用いる“語彙”やその語彙の“意味”、さらに“言葉と意味との関係性”を、他のコンピュータとも共有できるように明確な仕様として定義したものである。
 例えば、“生物”、“ウサギ”、“長い耳”という3つの語彙の関係性を記述したオントロジーについて考察する。まず、“ウサギ”と“生物”との関係性について考察する。「“ウサギ”であれば必ず“生物”である」一方で、「“生物”であれば、必ず“ウサギ”である」とは限らない。この場合、オントロジーでは、“ウサギ”は“生物”であるということを示す関係性を、(is a)リンクという意味リンクを用いて“(ウサギ)‐(is a)‐>(生物)”と記述する。(is a)リンクの矢印の始点である“(ウサギ)”が下位概念であり、矢印の終点である“(生物)”が上位概念である。(is a)リンクを用いて2つの概念間の関係性を記述した場合、下位概念は例外を指定しない限り、上位概念の属性を継承する。
 続いて、“ウサギ”と“長い耳”との関係性について考察する。この場合、「“ウサギ”には“長い耳”が生えている」、「“ウサギ”には“長い耳”がある」、「“ウサギ”の“長い耳”が垂れている」といったように、ヒトが考える“ウサギ”と“長い耳”との関係性には差異が生じ得る。上述したように、オントロジーとは、意味リンクを用いて概念間の関係を明確な仕様として定義したものである。ここで、「“ウサギ”は“長い耳”を持っている」ことをコンピュータが“ウサギ”と“長い耳”との関係性であるとして明確に解釈することができるようにする場合、オントロジーでは、(has a)リンクという意味リンクを用いて“(ウサギ)‐(has a)‐>(長い耳)”と記述する。このようにオントロジーを記述することで、どのコンピュータにおいても、“ウサギ”と“長い耳”との関係性が「“ウサギ”は“長い耳”を持っている」ことであると解釈することができる。
 また、(has a)リンクは、全体と部分との関係を示す意味リンクである。したがって、(has a)リンクを用いて2つの概念間の関係性を記述した場合、(is a)リンクとは異なり、下位概念が上位概念の属性を継承するとは限らない。つまり、「“ウサギ”であれば必ず“長い耳”を持っている」関係は成立する一方で、「“長い耳”を持っていれば“ウサギ”である」という関係が成立するとは限らない。なお、全体と部分との関係を示す意味リンクとして、(has a)リンクの他に、(part of)リンク等がある。
 このように、オントロジーは、概念を示す自然言語による語彙、又は、概念間のイベントを示す“is a”や“has a”等の簡潔な述語を用いて、上位概念を示すノードと下位概念を示すノードとの間を、上位概念を示すノードや下位概念を示すノードに関連するイベントを示すエッジで結ぶことによりグラフ構造化し、ノード間の関係性をコンピュータが解釈可能な形式に記述した情報に相当する。
 続いて、図5A及び図5Bを参照して、本実施形態におけるオントロジーの構築例について説明する。図5Aには、オントロジーに記述されている情報として、“(Process)‐(execute)‐>(Process)”、“(Process)‐(read/write)‐>(File)”、“(Process)‐(has a)‐>(実行権限)”、“(File)‐(has a)‐>(権限)”、・・・が例示されている。
 本実施形態において、オントロジーは、分析条件生成装置1を操作するオペレータにより構築される。分析条件生成装置1を操作するオペレータは、例えば、分析対象システム(例えば、認証システム3A)におけるデータの流れを示すデータフローグラフに基づいて、分析条件を生成する際に用いるオントロジーを構築する。
 なお、オントロジーを構築する際に、分析条件生成装置1を操作するオペレータは、脆弱性情報を参照してオントロジーを構築するようにしてもよい。例えば、分析対象システムから取得したデータフローグラフには含まれていない情報が、脆弱性情報には含まれている場合がある。“プロセスAAが読み込むパスワードを含む設定ファイルXX”という記述が脆弱性情報に含まれており、分析対象システムから取得したデータフローグラフには“プロセスAAが読み込むファイルXX”の情報が含まれていると仮定する。
 この場合、分析条件生成装置1を操作するオペレータは、“ファイルXX”を示すノードの属性として、“設定ファイルである”、及び“パスワードを含む”ことを付加してオントロジーを作成してもよい。この場合のオントロジーは、例えば、“(config file)‐(is a)‐>(File)‐(has a)‐>(password)”のように記述される。
 “(Process)‐(execute)‐>(Process)”は、あるプロセスが、別のあるプロセスを実行することを示す記述である。また、“(Process)‐(read/write)‐>(File)”は、あるプロセスがあるファイルを読み出し/書き込みすることを示す記述である。また、“(Process)‐(has a)‐>(実行権限)”は、あるプロセスが実行権限を示す属性を持っていることを示す記述である。また、“(File)‐(has a)‐>(アクセス権限)”は、あるファイルがアクセス権限を示す属性を持っていることを示す記述である。
 図5Bは、図5Aのオントロジーの記述をグラフ構造によって示した図である。図5Bに示すように、オントロジーの記述は、上位概念を示すノードと下位概念を示すノードとの間が、上位概念を示すノードや下位概念を示すノードに関連するイベントを示すエッジで結ばれたグラフ構造データとして表すことができる。
 例えば、あるプロセスが、別のあるプロセスを実行する関係性を示す記述(“(Process)‐(execute)‐>(Process)”:図5A)は、矢印の始点の“(Process)”を下位概念のノード、“(execute)”をエッジ、矢印の終点の“(Process)”を上位概念のノードとしたグラフ構造データとして表わすことができる。
 図5A及び図5Bに示すように、オントロジーは、ノードの種別やエッジの種別を示す抽象化識別子を有している。ノードの種別を示す抽象化識別子には、例えば、“(Process)”、“(Registry)”、“(File)”、“(IP,Port)”、及び“(Actor)”が挙げられる。
 “(Process)”は、例えば、ヘッダ部分のファイル情報や所定の拡張子(例えば、拡張子“.exe”であるファイル)に基づいて、プロセスを示すノードの抽象化識別子である。また、“(Registry)”や“(File)”は、例えば、OSの設定情報や文書ファイルの格納先情報、つまりデータストアを示すノードの抽象化識別子である。また、“(IP,Port)”は、IPアドレスやポート番号等の通信ソケットを示すノードの抽象化識別子である。
 また、“(Actor)”は、分析条件生成装置1を操作するオペレータにより定義されるノードのうち、プロセス、データストア、及び通信ソケット以外の要素である、外部アクターを示すノードの抽象化識別子である。分析条件生成装置1を操作するオペレータは、例えば、CWEやCVEに現れる外部の攻撃者等をノードとして定義し、上述したプロセス、データストア、及び通信ソケットを示すノードとの関係をオントロジーに記述してもよい。この場合、外部の攻撃者を示すノードと、プロセス、データストア、及び通信ソケットを示すノードとの関係は、エッジとして表現される。
 このように、本実施形態において、分析条件を生成するために用いられるオントロジーは、ノードの種別がプロセス、データストア、及び通信ソケット以外の要素のいずれかであることを識別でき、かつ、ノード及びエッジが固有表現を含まない程度に、ノード及びエッジの概念が抽象化されたグラフ構造データに相当する。本実施形態において、固有表現を含まない程度にノード及びエッジの概念が抽象化された状態とは、例えば、“xxx¥cmd.exe”や“yyy¥Explorer.exe”等のノードが、“xxx¥cmd”や“yyy¥Explorer”等のユニークな文字列を含まないノードになることに相当する。“xxx¥cmd”や“yyy¥Explorer”は、各ノードに固有であり、かつ各ノードをユニークに識別可能な固有識別子に相当する。
 したがって、本実施形態では、固有表現を含まない程度にノード及びエッジの概念が抽象化されたオントロジーを用い、自然文に対して自然言語処理を行うことにより、オントロジーに定義された概念間の関係に当てはまるグラフ構造データを抽出することができる。なお、分析条件生成装置1のオペレータは、オントロジーの構築に際し、ノード及びエッジの概念をどの程度抽象化するかを任意に設定することができる。
 また、分析条件を生成するために用いるオントロジーを構築するに際し、プロセスを示すノードに、プロセスの実行権限を示す属性を付与してもよい。例えば、“(Process)‐(has a)‐>(実行権限)”は、矢印の始点のノードのプロセスが実行権限を示す属性を持っていることを示す記述である(図5A参照)。つまり、このオントロジーを用いて自然文に対して自然言語処理を行うことにより、抽象化識別子として“(Process)”を有するノードに、プロセスの実行権限が付加される。
 さらに、分析条件を生成するために用いるオントロジーを構築するに際し、データストアを示すノードに、そのデータストアに記憶されているデータへのアクセス権限を示す属性を付与してもよい。例えば、“(File)‐(has a)‐>(アクセス権限)”は、あるファイルがアクセス権限を示す属性を持っている関係性を示す記述である(図5A参照)。つまり、このオントロジーを用いて自然文に対して自然言語処理を行うことにより、抽象化識別子として“(File)”を有するノードに、プロセスの実行権限が付加される。
 このほかにも、例えば、(is a)リンクや(has a)リンクを用いて、“(File)”の抽象化識別子を有するノードが設定ファイルであることを示す属性、パスワードを含むことを示す属性、バイナリファイルであることを示す属性、一時ファイルであることを示す属性、又はプログラム情報をシリアライズしたものであることを示す属性等を含んで、オントロジーを構築してもよい。
 続いて、図6を参照して、本実施形態における分析条件生成処理の流れについて説明する。本実施形態に係る分析条件生成装置1では、オントロジーを用いて脆弱性情報に対して自然言語処理を行うことにより、オントロジーに定義された概念間の関係に当てはまるグラフ構造データを抽出し、セキュリティリスクを分析するための分析条件を生成する。
 まず、ステップS11において、分析条件生成部110は、記憶部120に記憶されているオントロジー及び自然文を取得する。図7Aには、分析条件生成部110に入力される自然文の例として、CWEの一種であるJVN(Japan Vulnerability Notes)に定義されているJVNDB-2015-0061XXを示している。
 図7Aの自然文には、以下(1)から(6)に示す「XXXX Solution Centerには複数の脆弱性が存在し、攻撃者による“SYSTEM権限”での任意のコード実行が可能であることを示す文字情報」が含まれている。
 (1)XXXX Solution Centerを起動すると、“SYSTEM権限”で動作するプロセス“LSCTaskService”が作成されること
 (2)プロセス“LSCTaskService”は、“55555番ポート”を使って“HTTP daemon”を実行することで、“GETリクエスト”や“POSTリクエスト”による“LSCController.dll”モジュール内のメソッドの実行を実現すること
 (3)“LSCController.dll”には安全ではないメソッドが多数含まれていること
 (4)そのうち、“RunInstaller”は、“%APPDATA%¥LSC¥Local Store”ディレクトリに置かれた任意のコードを実行するよう設計されていること
 (5)“%APPDATA%¥LSC¥Local Store”ディレクトリは、システムにログイン可能な全てのユーザに対して作成されるため、ユーザは、システムの管理者権限を持たなくても、このディレクトリへの書込みを行うことができること
 (6)この脆弱性を悪用することで、一般ユーザは“SYSTEM権限”で任意のコードを実行すること
 ステップS12において、構造情報抽出部111は、分析条件生成部110に入力されたオントロジーと自然文とに基づいて構造化処理を行う。具体的に、構造情報抽出部111は、図7Aに示す自然文から、オントロジーに定義されている概念間の関係に当てはまるグラフ構造データを抽出する。図7Bには、構造化処理によって図7Aに示す自然文から抽出されたグラフ構造データの一例を示している。
 上述したように、分析条件生成装置1のオペレータは、オントロジーの構築に際し、ノード及びエッジの概念をどの程度抽象化するかを任意に設定することができる。図7Bには、ノードの種別がプロセス、データストア、及び通信ソケット以外の要素のいずれかであることを識別でき、かつ、ノード及びエッジが固有表現を含まない程度に、ノード及びエッジの概念が抽象化されたオントロジーを用いた場合において、構造化処理によって図7Aに示す自然文から抽出されたグラフ構造データを例示している。構造化処理によって、図7Aに示す自然文から、上述の(1)から(6)のセキュリティリスクを示すグラフ構造データ(図7B参照)が抽出される。
 続いて、ステップS13において、抽象化処理部112は、構造情報抽出部111によって抽出されたグラフ構造データに含まれる固有表現を抽象化する抽象化処理を行う。
 図8には、図7Bに示すグラフ構造データに対して、抽象化処理部112が抽象化処理を行うことにより、図7Aの(1)から(6)の自然文を、それぞれ(1α)~(6α)に示すように抽象化したグラフ構造データを示している。
 (1α)XXXX Solution Centerを起動すると、“Admin権限”で動作するプロセス“Parent Process”が作成されること
 (2α)プロセス“Parent Process”は、“Actor1”からの実行命令により、“File”モジュール内のメソッドの実行を実現すること
 (3α)“File”にはメソッドが含まれていること
 (4α)“File”モジュール内のメソッドの実行により、プロセス“Parent Process”は、“Program Directory”に置かれた任意のコードを実行するよう設計されていること
 (5α)“Program Directory”へのアクセス権限は“Non-Admin権限”であるため、システムの管理者権限を持たない“Actor2”も、このディレクトリへの書込みを行うことができること
 (6α)この脆弱性を悪用することで、システムの管理者権限を持たない“Actor1”も“Admin権限”で任意のコードを実行すること
 具体的に、抽象化処理部112は、グラフ構造データに含まれるノード及びエッジに関する固有識別子を、抽象化識別子に変換する。抽象化処理部112は、例えば、ノードの種別及びエッジの種別に応じて、ノード及びエッジに関する固有識別子を抽象化識別子に変換する。抽象化処理部112は、ノードの種別がプロセス、データストア、及び通信ソケット以外の要素のいずれかであることを識別でき、かつ、ノード及びエッジが固有表現を含まない程度に、グラフ構造データに含まれるノード及びエッジの概念を抽象化する。さらに、抽象化処理部112は、抽象化した場合に種別が同じノードが複数含まれるような場合に、複数のノードそれぞれを識別可能な形式で抽象化処理を行う。
 例えば、グラフ構造データに、ノードの種別がプロセスであり、固有識別子“AYj3A”を持つノードと、ノードの種別がファイルであり、固有識別子“xni4G”を持つノードと、ノードの種別がディレクトリであり、固有識別子“BNWjf”を持つノードとが含まれていると仮定する。抽象化処理部112は、ノードの拡張子やヘッダ情報に基づいて、それぞれのノードの種別を識別し、固有識別子“AYj3A”を抽象化識別子“Process”に、固有識別子“xni4G”を抽象化識別子“File”に、固有識別子“BNWjf”を抽象化識別子“Directory”に変換する。なお、グラフ構造データに、ノードの種別が同じノードが複数含まれている場合、抽象化処理部112は、例えば、抽象化識別子“Process1”、抽象化識別子“Process2”のように、複数のノードをそれぞれ識別可能な形式で抽象化するようにしてもよい。図8には、抽象化処理部112が、下位概念のプロセスのノードの固有識別子を抽象化識別子“Parent Process”に変換し、上位概念のプロセスのノードの固有識別子を抽象化識別子“Child Process”に変換するように抽象化処理を行った結果を示している。
 また、例えば、グラフ構造データに、ノードの種別がファイルであり、ファイルの所有者を示す固有識別子“Tanaka”を持つノードと、ノードの種別がプロセスであり、プロセスの実行者を示す固有識別子“Yamada”を持つノードとが含まれていると仮定する。抽象化処理部112は、固有識別子“Tanaka”を、管理者を示す抽象化識別子である“Admin”に変換し、固有識別子“Yamada”を、非管理者を示す抽象化識別子である“Non-Admin”に変換する。なお、グラフ構造データに、ユーザを示す固有識別子を持つノードが複数含まれている場合、抽象化処理部112は、例えば、抽象化識別子“Admin1”、抽象化識別子“Admin2”のように、複数のノードをそれぞれ識別可能な形式で抽象化するようにしてもよい。
 また、例えば、グラフ構造データに、ノードの種別が通信ソケットであり、IPアドレスを示す固有識別子“8.8.8.8”を持つノードが含まれていると仮定する。抽象化処理部112は、通信ソケットのノードに含まれるIPアドレスに基づいて、IPアドレスを示す固有識別子“8.8.8.8”を“Global IP”(又は“Local IP”)等のように、抽象化する。なお、グラフ構造データに、ノードの種別が通信ソケットであり、かつIPアドレスを示す固有識別子を持つノードが複数含まれている場合、抽象化処理部112は、それぞれのIPアドレスの区別がつくように、例えば、“Local IP 1”、“Local IP 2”のように、複数のノードをそれぞれ識別可能な形式で抽象化するようにしてもよい。
 また、例えば、グラフ構造データに、ノードの種別が通信ソケットであり、ポート番号を示す固有識別子“647X”を持つノードが含まれていると仮定する。抽象化処理部112は、通信ソケットのノードに含まれるポート番号を示す固有識別子“647X”を、任意のポート番号を示す抽象化識別子“****”に抽象化する。なお、抽象化処理部112は、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)のポート番号のうち、著名なサービスやプロトコルが利用するために予約されている0番から1023番のポート(いわゆるwell-known-port)については、具体的な数値を残して抽象化処理を行ってもよい。
 このように、抽象化処理部112によって抽象化されたグラフ構造データは、ステップS11で入力されたオントロジーよりは抽象化されていないグラフ構造データであり、かつステップS12で抽出されたグラフ構造データよりは抽象化されているグラフ構造データに相当する。
 図6に戻ってステップS14から説明を続ける。ステップS14において、分析条件生成部110は、グラフ構造データに対して後処理を行う。本実施形態において、分析条件生成部110は、例えば、分析条件生成装置1のオペレータにより予め設定されたルールに従って、抽象化されたグラフ構造データを編集する処理や、分析対象システムにおいてセキュリティリスク分析を行うに際し、意味を成さないグラフ構造データを、セキュリティリスク分析に用いるグラフ構造データとは区別して管理する処理を後処理として行う。なお、ステップS14は省略することもできる。
 例えば、分析条件生成部110は、分析条件としてDOT言語やノードとエッジとから成るJavaScript(登録商標) Object Notation(JSON)等の形式によってグラフ構造データを出力できるように、ステップS13において抽象化されたグラフ構造データに対してステップS14の後処理を行ってもよい。また、分析条件生成部110は、分析条件の出力形式をグラフ検索言語としてもよい。この場合、分析条件生成部110は、ステップS13において抽象化されたグラフ構造データを、CypherやGremlin等の検索言語で表現する後処理を行う。CypherやGremlin等の検索言語はテキスト形式であるため、分析条件生成装置1のオペレータがエディタを用いて編集することができる。また、CypherやGremlin等の検索言語によって表現されたデータをグラフとして可視化するエディタを作成し、分析条件生成装置1のオペレータがより直感的に編集修正するようにしてもよい。
 続いて、分析条件生成部110は、ステップS14において後処理した後のグラフ構造データをセキュリティリスク分析に用いる分析条件として分析装置2に対して出力する。
<2.6.分析処理の流れ>
 続いて、図9を参照して、分析装置2における分析処理の流れについて説明する。図9は、分析装置2における分析処理の流れを示すフローチャートである。
 生成部220は、ステップS21において、履歴情報収集部210が収集した認証システム3Aの履歴情報に基づいてデータフローグラフを生成する。
 続いて、分析部230は、ステップS22において、ステップS21で生成されたデータフローグラフに、分析条件生成装置1から取得した分析条件に合致するグラフ構造が含まれているか否かを判定する。ここでは、分析条件生成装置1から分析装置2に対して出力された分析条件がグラフ構造データであると仮定する。
 分析条件生成装置1から分析装置2に対して出力されたグラフ構造データに合致するグラフ構造が、ステップS21で生成されたデータフローグラフに含まれている場合(ステップS22/Y)、分析部230は、ステップS23において、ステップS21で生成されたデータフローグラフによって示されるデータの経路にリスクがあると判定する。
 分析条件生成装置1から分析装置2に対して出力されたグラフ構造データに合致するグラフ構造が、ステップS21で生成されたデータフローグラフに含まれていない場合(ステップS22/N)、分析部230は、ステップS23において、ステップS21で生成されたデータフローグラフによって示されるデータの経路にリスクがないと判定する。
 分析条件生成装置1から分析装置2に対して出力された分析条件は、脆弱性情報に含まれる固有概念が抽象化されたグラフ構造データに相当する。したがって、ステップS22において、分析部230は、CVEやCWEに定義されている脆弱性、及び脆弱性の変異データに基づいて、セキュリティリスクの有無を判定する。
 そして、分析部230は、ステップS25において、セキュリティリスクの有無を分析した結果を出力し、本処理を終了する。なお、分析装置2は、ステップS25で出力した分析結果を表示部18に表示させてもよい。
 以上説明したように、本実施形態では、既知の脆弱性や脅威を示す自然文から分析対象システムにおけるデータの流れの規則に従った構造をグラフ構造データとして抽出し、分析条件として出力する。このとき、データの流れの規則をオントロジーとして表現することにより、既知の脆弱性や脅威を示す具体的な情報からオントロジーに定義されたデータの流れの規則に従った構造を抜き出すことができる。また、本実施形態において、オントロジーは、分析条件生成装置1のオペレータにより構築される。ゆえに、分析対象システムにおけるデータの流れの規則を抽象化したオントロジーを構築することにより、既知の脆弱性や脅威から変異したセキュリティリスクを分析可能な分析条件を生成する。
 したがって、分析装置2において、脆弱性情報から抽出された要素が抽象化された分析条件を用いてセキュリティリスクを分析することが可能となる。ゆえに、脆弱性情報においてセキュリティリスクがあると定義されている情報を示すグラフ構造データの変異データ(バリアントデータ)が分析対象システムのデータフローグラフに含まれる場合、分析対象システムのデータフローグラフに含まれる変異データに関してセキュリティリスクがあるという分析結果を得ることが可能となる。
<3.第1の実施形態の変形例>
 第1の実施形態におけるCVEやCWEは、インターネット上で公開されている情報であり、ベンダから提供される情報に基づいて日々更新されている。本変形例の分析条件生成装置1は、CVEやCWE等の脆弱性情報を自動的に更新して分析条件を生成する。
<3.1.分析条件生成装置の機能構成>
 図10を参照して、本変形例に係る分析条件生成装置1の機能構成について説明する。図10は、第1の実施形態の変形例に係る分析条件生成装置1の機能構成を示す機能ブロック図である。なお、図10において図4と同じ構成には同じ符号を付し、重複する説明を省略する。
 図10に示すように、本変形例に係る分析条件生成装置1は、分析条件生成部110、記憶部120、及び更新部130を有する。分析条件生成部110及び記憶部120は、図4と同様であるため、説明を省略する。
 更新部130は、ネットワーク7を介して脆弱性情報を取得し、記憶部120に記憶されている脆弱性情報を更新する。また、更新部130は、分析装置2における分析処理の結果に基づいて、分析装置2のオペレータが定義した分析対象システムの脆弱性を示す情報を、ネットワーク7を介して取得し、記憶部120に記憶されている脆弱性情報を更新してもよい。
 本変形例では、インターネット上で公開される最新のCVEやCWE、更に分析装置2の分析結果を取得して、分析条件生成装置1に記憶されている脆弱性情報を更新する。このようにすることにより、分析条件生成装置1は、分析対象システムに関する最新の脆弱性情報を反映させた上で分析条件を生成することが可能となる。
<4.第2の実施形態>
 第1の実施形態では、オントロジーを用いて抽出されたグラフ構造データを、分析条件生成装置1において抽象化してから分析装置2に送信する態様について説明を行った。第2の実施形態は、分析条件生成装置1において、自然文からオントロジーを用いてグラフ構造データを抽出し、分析処理装置4においてグラフ構造データを抽象化する点で第1の実施形態と異なる。以下、図11から図14を参照して、本発明の第2の実施形態について説明する。なお、第2の実施形態の説明において、第1の実施形態と同じ要素には同じ符号を付し、重複する説明を省略する。
<4.1.分析システムの運用形態>
 まず、図11を参照して、第2の実施形態に係る分析システム2000の運用形態について説明する。図11は、第2の実施形態に係る分析システム2000の運用形態を示す図である。図11に示すように、分析システム2000は、分析条件生成装置1、及び分析処理装置4がネットワーク7を介して接続されて構成されている。
 分析条件生成装置1は、分析処理に際し、セキュリティリスクを分析するための分析条件を生成する。分析条件生成装置1は、本実施形態の第1装置の一例である。
 分析処理装置4は、分析条件生成装置1が生成した分析条件に基づいて、分析対象システムのデータの流れを示すデータフローグラフにおけるセキュリティリスクを分析する。分析処理装置4は、本実施形態の第2装置の一例である。
<4.2.分析条件生成装置の機能構成>
 続いて、図12を参照して、本実施形態に係る分析条件生成装置1の機能構成について説明する。図12は、本実施形態に係る分析条件生成装置1の機能構成を示す機能ブロック図である。
 図10に示すように、本変形例に係る分析条件生成装置1は、構造情報抽出部111、記憶部120を有する。なお、以上の要素以外に、更新部130を備えていてもよい。構造情報抽出部111、記憶部120及び更新部130は、図4又は図10と同じであるため、説明を省略する。
<4.3.分析処理装置の機能構成>
 続いて、図13を参照して、本実施形態に係る分析処理装置4の機能構成について説明する。図13は、本実施形態に係る分析処理装置4の機能構成を示す機能ブロック図である。図13に示すように、分析処理装置4は、分析処理装置4全体の動作を制御するコントローラ400と、コントローラ400に情報を入出力するネットワークI/F401と、を有する。図13に示す分析処理装置4に含まれる要素は、分析処理装置4のROM12に格納されたプログラムや、分析処理装置4の記憶媒体14から分析処理装置4のRAM13にロードされたプログラムに従って、分析処理装置4のCPU11が演算を行って構成されるソフトウェア制御部と、分析処理装置4に含まれるハードウェアとの組み合わせによって実現される。
 コントローラ400は、グラフ分析エンジン410と、抽象化ルールDB420と、記憶部430と、を有し、ネットワークI/F101を介して取得した情報に基づいて、分析対象システムにおけるセキュリティリスクを分析する。コントローラ400は、専用のソフトウェア・プログラムが分析処理装置4にインストールされることによって構成されている。
 図13に示すように、グラフ分析エンジン410は、抽象化処理部411と、分析処理部412とを有する。抽象化処理部411は、ネットワークI/F101を介して取得したグラフ構造データに含まれる固有表現を、抽象化ルールDB420に記憶されている抽象化ルールに基づいて抽象表現に変換する抽象化処理を行う。なお、抽象化処理部411は、自然言語処理により抽象化処理を行ってもよい。分析処理部412は、抽象化処理後のグラフ構造データに基づいて、分析対象システムにおけるセキュリティリスクを分析する。抽象化処理部411が行う抽象化処理は、第1の実施形態の抽象化処理部112が行う抽象化処理(図7B及び図8参照)と同じである。また、分析処理部412が行う分析処理は、第1の実施形態の分析部230が行う分析処理(図9参照)と同じである。
 抽象化ルールDB420は、抽象化処理部411が抽象化処理を行うに際し、グラフ構造データを抽象化するルールである抽象化ルールを記憶する記憶領域に相当する。抽象化ルールDB420には、例えば、以下のような抽象化ルールが記憶されている。
 抽象化ルールDB420には、例えば、ノード及びエッジに関する固有識別子を、ノードの種別及びエッジの種別に応じた抽象化識別子に変換するための情報が記憶されている。これにより、抽象化処理部112は、ノードの種別がプロセス、データストア、及び通信ソケット以外の要素のいずれかであることを識別でき、かつ、ノード及びエッジが固有表現を含まない程度に、グラフ構造データに含まれるノード及びエッジの概念を抽象化することができる。
 抽象化ルールDB420には、例えば、ノードの拡張子やヘッダ情報に基づいて、それぞれのノードの種別を識別し、固有識別子“AYj3A”を抽象化識別子“Process”に、固有識別子“xni4G”を抽象化識別子“File”に、固有識別子“BNWjf”を抽象化識別子“Directory”に変換する抽象化ルールが記憶されている。ここで、グラフ構造データに、ノードの種別がプロセスであり、固有識別子“AYj3A”を持つノードと、ノードの種別がファイルであり、固有識別子“xni4G”を持つノードと、ノードの種別がディレクトリであり、固有識別子“BNWjf”を持つノードとが含まれていると仮定する。この場合、抽象化処理部411は、抽象化ルールにより、グラフ構造データに、ノードの種別が同じノードが複数含まれている場合、例えば、抽象化識別子“Process1”、抽象化識別子“Process2”のように、複数のノードをそれぞれ識別可能な形式で抽象化することができる。
 また、抽象化ルールDB420には、例えば、固有識別子“Tanaka”を、管理者を示す抽象化識別子である“Admin”に変換し、固有識別子“Yamada”を、非管理者を示す抽象化識別子である“Non-Admin”に変換する抽象化ルールが記憶されている。ここで、グラフ構造データに、ノードの種別がファイルであり、ファイルの所有者を示す固有識別子“Tanaka”を持つノードと、ノードの種別がプロセスであり、プロセスの実行者を示す固有識別子“Yamada”を持つノードとが含まれていると仮定する。この場合、抽象化処理部411は、抽象化ルールにより、固有識別子“Tanaka”を、管理者を示す抽象化識別子である“Admin”に変換し、固有識別子“Yamada”を、非管理者を示す抽象化識別子である“Non-Admin”に変換することができる。なお、抽象化ルールとして、グラフ構造データに、ユーザ名を示す固有識別子を持つノードが複数含まれている場合に、例えば、抽象化識別子“Admin1”、抽象化識別子“Admin2”のように、複数のノードをそれぞれ識別可能な形式で抽象化するものを記憶してもよい。
 また、抽象化ルールDB420には、例えば、通信ソケットのノードに含まれるIPアドレスに基づいて、IPアドレスを示す固有識別子“8.8.8.8”を“Global IP”(又は“Local IP”)等のように、抽象化する抽象化ルールが記憶されている。ここで、グラフ構造データに、ノードの種別が通信ソケットであり、IPアドレスを示す固有識別子“8.8.8.8”を持つノードが含まれていると仮定する。抽象化処理部411は、抽象化ルールに基づいて、IPアドレスを示す固有識別子“8.8.8.8”を“Global IP”(又は“Local IP”)等のように抽象化することができる。なお、抽象化ルールとして、グラフ構造データに、IPアドレスを示す固有識別子を持つノードが複数含まれている場合、抽象化ルールに基づいて、それぞれのノードの固有識別子のIPアドレスを、例えば、“Local IP 1”、“Local IP 2”のように、複数のノードをそれぞれ識別可能な形式で抽象化するものを記憶してもよい。
 また、抽象化ルールDB420には、例えば、通信ソケットのノードに含まれるポート番号を、任意のポート番号を示す“****”等のように抽象化する抽象化ルールが記憶されている。ここで、グラフ構造データに、ノードの種別が通信ソケットであり、ポート番号“647X”を持つノードが含まれていると仮定する。抽象化処理部411は、通信ソケットのノードに含まれるポート番号“647X”を、任意のポート番号を示す“****”等のように抽象化する。なお、抽象化ルールとして、TCPやUDPのポート番号のうち、著名なサービスやプロトコルが利用するために予約されている0番から1023番のポート(いわゆるwell-known-port)については、具体的な数値を残すものを記憶してもよい。
 このように、抽象化処理部411は、種別が同じノードが複数含まれるような場合に、複数のノードをそれぞれ識別可能な形式で抽象化処理を行う。
<4.4.分析処理の流れ>
 続いて、図14を参照して、分析システム2000における分析処理の流れについて説明する。図14は、分析システム2000における分析処理の流れを示すシーケンス図である。
 本実施形態において、オントロジーは、分析条件生成装置1を操作するオペレータにより構築される。分析条件生成装置1を操作するオペレータは、例えば、分析対象システム(例えば、認証システム3A)におけるデータの流れを示すデータフローグラフに基づいて、分析条件を生成する際に用いるオントロジーを構築する。なお、オントロジーを構築する際に、分析条件生成装置1を操作するオペレータは、脆弱性情報を参照してオントロジーを構築するようにしてもよい。
 まず、ステップS31において、構造情報抽出部111は、記憶部120に記憶されているオントロジー(図5B参照)及び自然文(図7A参照)を取得する。続いて、ステップS32において、構造情報抽出部111は、ステップS31で取得したオントロジーと自然文とに基づいて構造化処理を行う。具体的に、構造情報抽出部111は、構造化処理において、自然文から、オントロジーに定義されている概念間の関係に当てはまるグラフ構造データ(図7B参照)を抽出する。
 続いて、構造情報抽出部111は、ステップS33において、ステップS32で自然文から抽出したグラフ構造データを分析処理装置4に出力する。
 ステップS34において、抽象化処理部411は、分析条件生成装置1から受信したグラフ構造データを抽象化する。具体的に、抽象化処理部411は、抽象化ルールDBに記憶されている抽象化ルールに従って、グラフ構造データに含まれるノード及びエッジに関する固有識別子を、抽象化識別子に変換する(図8参照)。ステップS34において、抽象化処理部411は、ノードの種別がプロセス、データストア、及び通信ソケット以外の要素のいずれかであることを識別でき、かつ、ノード及びエッジが固有表現を含まない程度に、グラフ構造データに含まれるノード及びエッジの概念を抽象化する。
 このように、抽象化処理部112によって抽象化されたグラフ構造データは、ステップS31で分析条件生成装置1に入力されたオントロジーよりは抽象化されていないグラフ構造データであり、かつステップS32で構造情報抽出部111によって抽出されたグラフ構造データよりは抽象化されたグラフ構造データに相当する。
 ステップS35において、グラフ分析エンジン410は、グラフ構造データに対して後処理を行う。本実施形態において、グラフ分析エンジン410は、例えば、分析処理装置4のオペレータにより予め設定されたルールに従って、抽象化されたグラフ構造データを編集する処理や、分析対象システムにおいてセキュリティリスク分析を行うに際し、意味を成さないグラフ構造データを、セキュリティリスク分析に用いるグラフ構造データとは区別して管理する処理を後処理として行う。なお、ステップS35は省略することもできる。
 例えば、グラフ分析エンジン410は、分析条件としてDOT言語やノードとエッジとから成るJSON等の形式によってグラフ構造データを用いることができるように、ステップS34において抽象化されたグラフ構造データに対して後処理を行ってもよい。また、グラフ分析エンジン410は、分析条件の出力形式をグラフ検索言語としてもよい。この場合、グラフ分析エンジン410は、ステップS34において抽象化されたグラフ構造データを、cypherやgremlin等の検索言語で表現する後処理を行う。cypherやgremlin等の検索言語はテキスト形式であるため、分析処理装置4のオペレータがエディタを用いて編集することができる。また、cypherやgremlin等の検索言語によって表現されたデータをグラフとして可視化するエディタを作成し、分析処理装置4のオペレータがより直感的に編集修正するようにしてもよい。
 ステップS36において、分析処理部412は、データフローグラフに分析条件に合致するグラフ構造が含まれているか否かを判定する。ステップS36において、分析処理部412が行う工程は、図9のフローチャートのステップS22からステップS24に相当する。
 ステップS36において分析処理部412がセキュリティリスクを分析するデータフローグラフは、分析処理装置4が分析対象のシステムの履歴情報を取得して生成してもよい。また、これ以外に、分析処理装置4に接続されている不図示の情報処理装置に分析対象のシステムの履歴情報を入力してデータフローグラフを作成させ、分析処理装置4に送信するようにしてもよい。
 ステップS37において、分析処理部412は、ステップS36の分析結果を出力し、本処理を終了する。なお、分析処理部412は、ステップS37で出力した分析結果を表示部18に表示させてもよい。
 以上説明したように、本実施形態では、既知の脆弱性や脅威を示す自然文から分析対象システムにおけるデータの流れの規則に従った構造をグラフ構造データとして抽出し、分析条件として出力する。このとき、データの流れの規則をオントロジーとして表現することにより、既知の脆弱性や脅威を示す具体的な情報からオントロジーに定義されたデータの流れの規則に従った構造を抜き出すことができる。また、本実施形態において、オントロジーは、分析条件生成装置1のオペレータにより構築される。ゆえに、分析対象システムにおけるデータの流れの規則を抽象化したオントロジーを構築することにより、既知の脆弱性や脅威から変異したセキュリティリスクを分析可能な分析条件を生成する。
 したがって、分析処理装置4において、脆弱性情報から抽出された要素が抽象化された分析条件を用いてセキュリティリスクを分析することが可能となる。ゆえに、脆弱性情報においてセキュリティリスクがあると定義されている情報を示すグラフ構造データの変異データ(バリアントデータ)が分析対象システムのデータフローグラフに含まれる場合、分析対象システムのデータフローグラフに含まれる変異データに関してセキュリティリスクがあるという分析結果を得ることが可能となる。
 また、本実施形態では、分析条件生成装置1と分析処理装置4とにおいて、セキュリティリスクの分析に用いる分析条件を生成する処理を分散して行うことができる。このようにすることにより、自然言語処理による分析条件生成装置1への処理負荷の増大を抑制することが可能となる。
<5.第3の実施形態>
 次いで、図15を参照して、本発明の第3の実施形態を説明する。上述した第1の実施形態は具体的な実施形態であるが、第3の実施形態はより一般化された実施形態である。以下の第3の実施形態によれば、第1の実施形態と同様の技術的効果が奏される。
 図15は、本発明の第3の実施形態に係る分析条件生成装置1Aの概略的な構成を例示するブロック図である。図15に示すように、分析条件生成装置1Aは、分析条件生成部110Aを備える。
 分析条件生成部110Aは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文からノードとエッジとの関係性を示すグラフ構造データを生成し、グラフ構造データに基づいて分析対象システムのセキュリティリスクを分析するための分析条件を生成する。
 -第1の実施形態との関係
 一例として、第3の実施形態に係る分析条件生成装置1Aが、第1の実施形態に係る分析条件生成装置1の動作を実行してもよい。以上の場合、第1の実施形態についての説明が第3の実施形態にも適用可能である。なお、第3の実施形態は以上の例に限定されるものではない。
<6.第4の実施形態>
 次いで、図16を参照して、本発明の第4の実施形態を説明する。上述した第2の実施形態は具体的な実施形態であるが、第4の実施形態はより一般化された実施形態である。以下の第4の実施形態によれば、第2の実施形態と同様の技術的効果が奏される。
 図16は、本発明の第4の実施形態に係る分析システム2000Aの概略的な構成を例示するブロック図である。図16に示すように、分析システム2000Aは、構造情報抽出部111Aと、抽象化処理部411Aと、分析処理部412Aとを備える。
 構造情報抽出部111Aは、分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文からノードとエッジとの関係性を示すグラフ構造データを抽出する。
 抽象化処理部411Aは、抽象化ルールに基づいて、グラフ構造データに含まれるノード及びエッジに関する固有識別子を抽象化識別子に変換する。
 分析処理部412Aは、固有識別子が抽象化識別子に変換されたグラフ構造データから生成された分析条件に基づいて、分析対象システムにおけるセキュリティリスクを分析する。
 -第2の実施形態との関係
 一例として、第4の実施形態に係る分析システム2000Aが、第2の実施形態に係る分析システム2000の動作を実行してもよい。以上の場合、第2の実施形態についての説明が第4の実施形態にも適用可能である。なお、第4の実施形態は以上の例に限定されるものではない。
<7.その他の実施形態>
 以上、本発明の実施形態を説明したが、本発明はこれらの実施形態に限定されるものではない。これらの実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
 例えば、本明細書に記載されている処理におけるステップは、必ずしもフローチャートやシーケンス図に記載された順序に沿って時系列に実行されなくてよい。例えば、処理におけるステップは、フローチャートやシーケンス図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、処理におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
 また、本明細書において説明した分析条件生成装置1の構成要素(例えば、分析条件生成部110に含まれる各部に相当する要素)を備える装置が提供されてもよい。また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体(Non-transitory computer readable medium)が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
 上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成する分析条件生成部を備える、
 分析条件生成装置。
(付記2)
 前記オントロジーは、
 前記ノードの種別及び前記エッジの種別を示す抽象化識別子を有し、
 前記ノードの種別は、前記データフローグラフに関するプロセスと、データストアと、通信ソケットと、前記プロセス、前記データストア及び前記通信ソケット以外の外部アクターと、を含む、
 付記1に記載の分析条件生成装置。
(付記3)
 前記分析条件生成部は、
 前記オントロジーに基づいて前記自然文から前記グラフ構造データを抽出する構造情報抽出部と、
 前記オントロジーに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を前記抽象化識別子に変換する抽象化処理部と、を備える、
 付記2に記載の分析条件生成装置。
(付記4)
 前記ノードのうち、前記プロセスを示すノードは、前記プロセスの実行権限を示す属性を有し、
 前記ノードのうち、前記データストアを示すノードは、前記データストアのアクセス権限を示す属性を有する、
 付記2又は3に記載の分析条件生成装置。
(付記5)
 前記自然文を更新する更新部を備える、
 付記1から4のいずれか1項に記載の分析条件生成装置。
(付記6)
 前記分析条件生成部は、
 前記自然文に対して前記オントロジーを用いた自然言語処理を行うことにより、前記グラフ構造データを生成する、
 付記1から5のいずれか1項に記載の分析条件生成装置。
(付記7)
 前記自然文は、前記分析対象システムに関するセキュリティリスクを示す文字情報である、
 付記1から6のいずれか1項に記載の分析条件生成装置。
(付記8)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出する構造情報抽出部と、
 抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換する抽象化処理部と、
 前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析する分析処理部と、を備える、
 分析システム。
(付記9)
 前記抽象化識別子は、
 前記ノードの種別及び前記エッジの種別を示す識別子であり、
 前記ノードの種別は、
 前記データフローグラフに関するプロセスと、データストアと、通信ソケットと、前記プロセス、前記データストア及び前記通信ソケット以外の外部アクターと、を含み、
 前記抽象化ルールは、
 前記固有識別子を、前記ノードの種別及び前記エッジの種別に応じた前記抽象化識別子に変換するための情報である、
 付記8に記載の分析システム。
(付記10)
 前記ノードのうち、前記プロセスを示すノードは、前記プロセスの実行権限を示す属性を有し、
 前記ノードのうち、前記データストアを示すノードは、前記データストアのアクセス権限を示す属性を有する、
 付記9に記載の分析システム。
(付記11)
 前記構造情報抽出部を有する第1装置と、
 前記抽象化処理部と前記分析処理部とを有し、前記第1装置とは異なる第2装置とを備える、
 付記8から10のいずれか1項に記載の分析システム。
(付記12)
 前記第1装置は、
 前記自然文を更新する更新部を有する、
 付記11に記載の分析システム。
(付記13)
 前記構造情報抽出部は、前記自然文に対して前記オントロジーを用いた自然言語処理を行うことにより、前記グラフ構造データを生成する、
 付記8から12のいずれか1項に記載の分析システム。
(付記14)
 前記自然文は、前記分析対象システムに関するセキュリティリスクを示す文字情報である、
 付記8から13のいずれか1項に記載の分析システム。
(付記15)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することをプロセッサに実行させる、
 分析条件生成プログラム。
(付記16)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出することと、
 抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換することと、
 前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、をプロセッサに実行させる、
 分析プログラム。
(付記17)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することを備える、
 分析条件生成方法。
(付記18)
 分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出することと、
 抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換することと、
 前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、を備える、
 分析方法。
 分析対象のシステムのデータの流れにおけるセキュリティリスクの分析条件を自動的に生成する。
1、1A 分析条件生成装置
2 分析装置
3A 認証システム
4 分析処理装置
110、110A 分析条件生成部
111、111A 構造情報抽出部
112 抽象化処理部
130 更新部
210 履歴情報収集部
220 生成部
230 分析部
411、411A 抽象化処理部
412、412A 分析処理部
420 抽象化ルールDB
1000、2000、2000A 分析システム

 

Claims (18)

  1.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成する分析条件生成部を備える、
     分析条件生成装置。
  2.  前記オントロジーは、
     前記ノードの種別及び前記エッジの種別を示す抽象化識別子を有し、
     前記ノードの種別は、前記データフローグラフに関するプロセスと、データストアと、通信ソケットと、前記プロセス、前記データストア及び前記通信ソケット以外の外部アクターと、を含む、
     請求項1に記載の分析条件生成装置。
  3.  前記分析条件生成部は、
     前記オントロジーに基づいて前記自然文から前記グラフ構造データを抽出する構造情報抽出部と、
     前記オントロジーに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を前記抽象化識別子に変換する抽象化処理部と、を備える、
     請求項2に記載の分析条件生成装置。
  4.  前記ノードのうち、前記プロセスを示すノードは、前記プロセスの実行権限を示す属性を有し、
     前記ノードのうち、前記データストアを示すノードは、前記データストアのアクセス権限を示す属性を有する、
     請求項2又は3に記載の分析条件生成装置。
  5.  前記自然文を更新する更新部を備える、
     請求項1から4のいずれか1項に記載の分析条件生成装置。
  6.  前記分析条件生成部は、
     前記自然文に対して前記オントロジーを用いた自然言語処理を行うことにより、前記グラフ構造データを生成する、
     請求項1から5のいずれか1項に記載の分析条件生成装置。
  7.  前記自然文は、前記分析対象システムに関するセキュリティリスクを示す文字情報である、
     請求項1から6のいずれか1項に記載の分析条件生成装置。
  8.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出する構造情報抽出部と、
     抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換する抽象化処理部と、
     前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析する分析処理部と、を備える、
     分析システム。
  9.  前記抽象化識別子は、
     前記ノードの種別及び前記エッジの種別を示す識別子であり、
     前記ノードの種別は、
     前記データフローグラフに関するプロセスと、データストアと、通信ソケットと、前記プロセス、前記データストア及び前記通信ソケット以外の外部アクターと、を含み、
     前記抽象化ルールは、
     前記固有識別子を、前記ノードの種別及び前記エッジの種別に応じた前記抽象化識別子に変換するための情報である、
     請求項8に記載の分析システム。
  10.  前記ノードのうち、前記プロセスを示すノードは、前記プロセスの実行権限を示す属性を有し、
     前記ノードのうち、前記データストアを示すノードは、前記データストアのアクセス権限を示す属性を有する、
     請求項9に記載の分析システム。
  11.  前記構造情報抽出部を有する第1装置と、
     前記抽象化処理部と前記分析処理部とを有し、前記第1装置とは異なる第2装置とを備える、
     請求項8から10のいずれか1項に記載の分析システム。
  12.  前記第1装置は、
     前記自然文を更新する更新部を有する、
     請求項11に記載の分析システム。
  13.  前記構造情報抽出部は、前記自然文に対して前記オントロジーを用いた自然言語処理を行うことにより、前記グラフ構造データを抽出する、
     請求項8から12のいずれか1項に記載の分析システム。
  14.  前記自然文は、前記分析対象システムに関するセキュリティリスクを示す文字情報である、
     請求項8から13のいずれか1項に記載の分析システム。
  15.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することをプロセッサに実行させる、
     分析条件生成プログラム。
  16.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出することと、
     抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換することと、
     前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、をプロセッサに実行させる、
     分析プログラム。
  17.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを生成し、前記グラフ構造データに基づいて前記分析対象システムのセキュリティリスクを分析するための分析条件を生成することを備える、
     分析条件生成方法。
  18.  分析対象システムにおけるデータの流れを示すデータフローグラフに関する1つ以上のノードと、前記ノードに関連するイベントを示す1つ以上のエッジとの関係性が記述されたオントロジーを用いて、自然文から前記ノードと前記エッジとの関係性を示すグラフ構造データを抽出することと、
     抽象化ルールに基づいて、前記グラフ構造データに含まれる前記ノード及び前記エッジに関する固有識別子を抽象化識別子に変換することと、
     前記固有識別子が前記抽象化識別子に変換された前記グラフ構造データから生成された分析条件に基づいて、前記分析対象システムにおけるセキュリティリスクを分析することと、を備える、
     分析方法。
PCT/JP2021/011367 2021-03-19 2021-03-19 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法 WO2022195848A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/281,235 US20240160746A1 (en) 2021-03-19 2021-03-19 Analysis condition generating apparatus, analysis system, analysis condition generating program, analysis program, analysis condition generating method, and analysis method
PCT/JP2021/011367 WO2022195848A1 (ja) 2021-03-19 2021-03-19 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法
JP2023506665A JPWO2022195848A1 (ja) 2021-03-19 2021-03-19

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/011367 WO2022195848A1 (ja) 2021-03-19 2021-03-19 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法

Publications (1)

Publication Number Publication Date
WO2022195848A1 true WO2022195848A1 (ja) 2022-09-22

Family

ID=83320276

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/011367 WO2022195848A1 (ja) 2021-03-19 2021-03-19 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法

Country Status (3)

Country Link
US (1) US20240160746A1 (ja)
JP (1) JPWO2022195848A1 (ja)
WO (1) WO2022195848A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112493A1 (ja) * 2021-12-17 2023-06-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 脅威情報展開システム、脅威情報展開方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007109721A2 (en) * 2006-03-21 2007-09-27 21St Century Technologies, Inc. Tactical and strategic attack detection and prediction
JP2018005690A (ja) * 2016-07-05 2018-01-11 富士ゼロックス株式会社 情報処理装置及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007109721A2 (en) * 2006-03-21 2007-09-27 21St Century Technologies, Inc. Tactical and strategic attack detection and prediction
JP2018005690A (ja) * 2016-07-05 2018-01-11 富士ゼロックス株式会社 情報処理装置及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023112493A1 (ja) * 2021-12-17 2023-06-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 脅威情報展開システム、脅威情報展開方法およびプログラム

Also Published As

Publication number Publication date
US20240160746A1 (en) 2024-05-16
JPWO2022195848A1 (ja) 2022-09-22

Similar Documents

Publication Publication Date Title
JP7159202B2 (ja) 公開されている科学研究のためにブロックチェーンを形成するコンピュータ実装方法、システムおよびコンピュータ・プログラム製品(公開科学研究のためのブロックチェーン)
US11086619B2 (en) Code analytics and publication platform
US10135936B1 (en) Systems and methods for web analytics testing and web development
JP2023506168A (ja) システム・イベントの自動意味論的モデリング
Tiefenau et al. Security, availability, and multiple information sources: Exploring update behavior of system administrators
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
US20210385251A1 (en) System and methods for integrating datasets and automating transformation workflows using a distributed computational graph
US11144672B2 (en) Enterprise risk, security and compliance automation systems and methods
Baset et al. Usable declarative configuration specification and validation for applications, systems, and cloud
US20210136121A1 (en) System and method for creation and implementation of data processing workflows using a distributed computational graph
US11372922B1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for expanded entity and activity mapping within a network computing environment
US20190342324A1 (en) Computer vulnerability assessment and remediation
US20220191250A1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for autonomous cybersecurity within a network computing environment
Hansch et al. Deriving impact-driven security requirements and monitoring measures for industrial IoT
US10121150B2 (en) Compliance as a service for an organization
WO2022195848A1 (ja) 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法
Mayer et al. A quantitative study on the re-executability of publicly shared scientific workflows
CN108228312A (zh) 通过解释器执行代码的系统和方法
US11783049B2 (en) Automated code analysis tool
US9819559B2 (en) Integrated solution for application data layer coverage discovery and gap analysis
Munea et al. Design and implementation of fuzzing framework based on IoT applications
US11347623B1 (en) Automated defect type based logging integration within source code
Baror et al. Functional Architectural Design of a Digital Forensic Readiness Cybercrime Language as a Service
CA2876464A1 (en) Application decomposition using data obtained from external tools for use in threat modeling
Maidl et al. Model-based threat modeling for cyber-physical systems: a computer-aided approach

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: 21931595

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023506665

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18281235

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: 21931595

Country of ref document: EP

Kind code of ref document: A1