Information processing device, information processing system, information processing method, and program
The use of trained artificial intelligence for CPE estimation simplifies the process by iteratively refining queries, addressing the complexity and accuracy issues of existing methods, achieving a 94.3% estimation accuracy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- MITSUBISHI HEAVY IND LTD
- Filing Date
- 2025-01-10
- Publication Date
- 2026-07-23
Smart Images

Figure 2026121200000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an information processing apparatus, an information processing system, an information processing method, and a program.
Background Art
[0002] In recent years, the threat of attacks by malicious persons using software vulnerabilities has been increasing, and there is a growing need to collect software vulnerability information and implement appropriate security measures to address such threats. When collecting vulnerability information for specific software, it is possible to efficiently collect vulnerability information by using CPE (Common Platform Enumeration), which is information for associating software with vulnerability information. This CPE is generally managed in a CPE dictionary.
[0003] For example, Patent Document 1 discloses a technique for estimating a CPE from a CPE dictionary based on a score calculated using similarity and co-occurrence degree, etc., when estimating a CPE from basic information of target software (for example, developer, product name, etc.).
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, in the technique disclosed in Patent Document 1, since a score is calculated using similarity and co-occurrence degree, etc., when estimating a CPE, it is necessary to prepare a co-occurrence DB and a vulnerability DB in advance, and the implementation is not easy. Also, since a score is calculated using similarity and co-occurrence degree, etc., a complex calculation logic is required. Therefore, there is a need for a technology that can estimate CPE without requiring prior preparation such as co-occurrence databases and vulnerability databases, and without requiring complex calculation logic.
[0006] This disclosure is made to solve the above-mentioned problems and aims to provide an information processing device, information processing system, information processing method, and program that are easy to implement and can estimate CPE concisely. [Means for solving the problem]
[0007] The information processing device relating to this disclosure is an information processing device that estimates the CPE (Common Platform Enumeration) of target software using trained artificial intelligence, and comprises an inquiry unit that creates a query to be input to the trained artificial intelligence based on the basic information of the target software, and inputs the query to the trained artificial intelligence to perform the query, The system includes a determination unit that determines whether the CPE candidate output from the trained artificial intelligence in response to the query is registered in the CPE dictionary, and a requery unit that, if the CPE candidate is not registered in the CPE dictionary, creates the query again to be input to the trained artificial intelligence, and inputs the query again to the trained artificial intelligence to perform a requery.
[0008] The information processing method relating to this disclosure is an information processing method for estimating the Common Platform Enumeration (CPE) of target software using a trained artificial intelligence, comprising the steps of: creating a query to be input to the trained artificial intelligence based on basic information of the target software; inputting the query to the trained artificial intelligence and performing the query; determining whether the CPE candidate output by the trained artificial intelligence in response to the query is registered in a CPE dictionary; and, if the CPE candidate is not registered in the CPE dictionary, creating the query again to be input to the trained artificial intelligence; inputting the query again to the trained artificial intelligence and performing the query again.
[0009] The program relating to this disclosure causes a computer in an information processing device that estimates the Common Platform Enumeration (CPE) of target software using a trained artificial intelligence to execute the following steps: create a query to be input to the trained artificial intelligence based on basic information of the target software, input the query to the trained artificial intelligence and perform the query; determine whether the CPE candidate output by the trained artificial intelligence in response to the query is registered in the CPE dictionary; and if the CPE candidate is not registered in the CPE dictionary, create the query again to be input to the trained artificial intelligence, input the query again and perform the query again. [Effects of the Invention]
[0010] According to the information processing device, information processing system, information processing method, and program of this disclosure, CPE can be estimated simply using easily implementable technology. [Brief explanation of the drawing]
[0011] [Figure 1] This is a schematic diagram of an information processing system according to an embodiment of the present disclosure. [Figure 2] This figure shows the functional configuration of an information processing device provided in an information processing system according to an embodiment of this disclosure. [Figure 3] This is a flowchart showing an example of the processing method of the information processing device according to the present disclosure. [Figure 4] This is an explanatory diagram illustrating the naming conventions used in CPE (Certified Professional Education). [Figure 5] This is an explanatory diagram illustrating a query in the processing of an information processing method of an information processing apparatus according to an embodiment of this disclosure. [Figure 6] This is a first flowchart showing an example of the requerying process of the information processing method of the information processing apparatus according to the embodiment of this disclosure. [Figure 7] This is a second flowchart showing an example of the requerying process of the information processing method of the information processing apparatus according to the embodiment of this disclosure. [Figure 8]It is a first explanatory diagram for explaining a re-inquiry in the process of the information processing method of the information processing apparatus according to an embodiment of the present disclosure. [Figure 9] It is a second explanatory diagram for explaining a re-inquiry in the process of the information processing method of the information processing apparatus according to an embodiment of the present disclosure. [Figure 10] It is a third explanatory diagram for explaining a re-inquiry in the process of the information processing method of the information processing apparatus according to an embodiment of the present disclosure. [Figure 11] It is a diagram showing an example of the hardware configuration of a computer included in the information processing apparatus according to each embodiment of the present disclosure.
Mode for Carrying Out the Invention
[0012] Hereinafter, each embodiment of the present disclosure will be described with reference to the drawings. In all the drawings, the same or corresponding components are denoted by the same reference numerals, and common descriptions are omitted.
[0013] <Embodiment> Hereinafter, the information processing system 1 according to the embodiment of the present disclosure will be described with reference to FIGS. 1 to 2.
[0014] (Overall Configuration) FIG. 1 is a schematic diagram of an information processing system according to an embodiment of the present disclosure. As shown in FIG. 1, the information processing system 1 according to the present embodiment includes a learned artificial intelligence α, an information processing apparatus 10 that estimates the CPE (Common Platform Enumeration) of target software using the learned artificial intelligence α, and a CPE dictionary 20 in which the CPE is registered. CPE is one of the components of the technology specification SCAP (Security Content Automation Protocol) promoted by the US government. Even now, the specification is continuously improved and the latest information is continuously published. As will be described later using FIG. 4, by including a plurality of components as information in the CPE based on the naming rules defined in the specification, it is used for linking software and vulnerability information.
[0015] The learned artificial intelligence (also referred to as generative AI (Artificial Intelligence)) α is a generative AI model recorded in a locally installed storage device. For example, it may be optimized (learned) using pre-prepared input information and output results as teacher data. When the learned artificial intelligence α thus created receives a query (also referred to as a prompt) as input information, it can output a CPE candidate as an output result. In addition, every time the learned artificial intelligence α outputs a new output result for new input information, it sequentially performs optimization (learning). Note that the artificial intelligence α may be a neural network having a multi-layer structure. Also, the learned artificial intelligence α may be installed via a network such as the Internet.
[0016] The CPE dictionary 20 is a locally installed SQL server that stores the latest CPE. Note that the CPE dictionary 20 may be a server other than an SQL server. Also, the CPE dictionary 20 may be a server installed via a network such as the Internet. ]>
[0017] When basic information I of target software is input as input information, the information processing apparatus 10 makes a query to the learned artificial intelligence α and refers to the CPE dictionary 20 regarding the CPE candidate output as an answer to the query from the learned artificial intelligence α, thereby estimating the CPE of the target software. The information processing apparatus 10 outputs the estimated CPE or a result indicating that the CPE could not be estimated as an estimation result O.
[0018] (Configuration of the information processing apparatus of the information processing system according to the embodiment) FIG. 2 is a diagram showing a functional configuration of an information processing apparatus included in the information processing system according to an embodiment of the present disclosure. As shown in FIG. 2, the information processing apparatus 10 according to the embodiment of the present disclosure includes a query unit 11, a determination unit 12, a re-query unit 13, and a storage unit 14.
[0019] The inquiry unit 11 is configured to create an inquiry Q (Q0) to be input to the trained artificial intelligence α based on the basic information I of the target software input to the information processing device 10, and to input the inquiry to the trained artificial intelligence α to perform the inquiry.
[0020] The determination unit 12 is configured to determine whether the CPE candidate output by the trained artificial intelligence α in response to the inquiry Q is registered in the CPE dictionary 20. The determination unit 12 estimates a CPE candidate output from the trained artificial intelligence α as a CPE if it is registered in the CPE dictionary 20, and outputs the estimated CPE as the estimation result O. On the other hand, if the CPE candidate output from the trained artificial intelligence α is not registered in the CPE dictionary 20 even after repeating the query more than the maximum number of requeries, the process of estimating the target software's CPE is terminated, and a result indicating that the CPE could not be estimated is output as the estimation result O.
[0021] The re-querying unit 13 is configured to create a second query Q(Q1~Q8) to input to the trained artificial intelligence α if the CPE candidate is not registered in the CPE dictionary 20, and to input the second query Q(Q1~Q8) to the trained artificial intelligence α and re-query.
[0022] The memory unit 14 stores various types of information necessary for processing by the information processing device 10.
[0023] (Processing flow of the information processing method of the information processing device according to the embodiment) The following describes the processing flow of the information processing method by the information processing device 10 according to the embodiment of this disclosure, with reference to Figures 1 to 5. Figure 3 is a flowchart showing an example of the processing of an information processing method for an information processing apparatus according to the present disclosure.
[0024] In this embodiment, the process shown in Figure 3 is started, for example, when the basic information I of the target software is input to the information processing device 10. Note that the process shown in Figure 3 may be started at a time other than when the basic information I of the target software is input to the information processing device 10. For example, the basic information I of the target software may be stored in advance in the storage unit 14 of the information processing device 10, and the information processing device 10 may start the process shown in Figure 3 when it receives a command to start processing from an external source. Alternatively, the process may be started at a predetermined time based on the judgment of the information processing device 10 itself.
[0025] When the process shown in Figure 3 is started, the inquiry unit 11 creates an inquiry Q (Q0) to be input to the trained artificial intelligence α based on the basic information I of the target software input to the information processing device 10, and inputs the inquiry Q0 to the trained artificial intelligence α to perform the inquiry (step S101).
[0026] Figure 4 is an explanatory diagram illustrating the naming conventions in CPE. Note that while Figure 4 shows the naming conventions for version 2.3 of CPE, other versions of CPE may also be used. As shown in Figure 4, CPE includes multiple components that represent software, as defined by the naming convention. Basic information I of the target software includes at least one of the following components that make up the CPE: the library name necessary to identify the vendor element and the product element, the version information necessary to identify the version element, and the official website necessary to identify the product element.
[0027] In this embodiment, we will describe the case where the basic information I of the target software is the library name, version information, and official website. However, as mentioned above, the basic information I of the target software only needs to include at least one of the library name, version information, and official website. Basically, the library name and version information are essential basic information for the target software, and including the official website can improve the accuracy of the CPE estimation results by approximately 2%. Furthermore, when identifying only the vendor and product elements of CPE, the library name is the only required information.
[0028] Figure 5 is an explanatory diagram illustrating queries in the information processing method of an information processing device. As shown in Figure 5, the inquiry unit 11 creates an inquiry Q(Q0) to be input to the trained artificial intelligence α based on the basic information I of the target software input to the information processing device 10, and then inputs the inquiry Q0 to the trained artificial intelligence α to perform the inquiry. In the example shown in Figure 5, the content of inquiry Q0, P1, includes the library name Boost, version 1.69.0, and the official website https: / / www.boost.org / as basic information about the target software. Furthermore, page P2 of the content of inquiry Q0 specifies CPE version 2.3 as the output format. Note that the query Q0 shown in Figure 5 is just an example; the specific information and output format of the basic information I of the target software may be specified with other values, and the query may also be written in a different format.
[0029] When the above query Q0 is input to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate. The determination unit 12 determines whether the CPE candidate output by the trained artificial intelligence α in response to query Q0 is registered in the CPE dictionary 20 (step S102). Specifically, the determination unit 12 uses an SQL statement to refer to the CPE dictionary 20, which is an SQL server, and determines that the CPE candidate is registered in the CPE dictionary 20 if it matches any of the data recorded in the CPE dictionary 20.
[0030] If the determination unit 12 determines that a CPE candidate output from the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S102), the determination unit 12 estimates the CPE candidate as a CPE and outputs the estimated CPE as the estimation result O (step S103). This completes the processing flow of the information processing method of the information processing device 10.
[0031] On the other hand, if the determination unit 12 determines that the CPE candidate output from the trained artificial intelligence α is not registered in the CPE dictionary 20 (NO in step S102), the determination unit 12 determines whether the number of requeries by the requery unit 13 to the trained artificial intelligence α is equal to or greater than a predetermined upper limit of requeries (step S104). In this embodiment, the case where the predetermined maximum number of requeries is 30 is described, but the predetermined maximum number of requeries may be a number other than 30. The number of requeries performed by the requery unit 13 used for determination, and a predetermined upper limit on the number of requeries, may be stored, for example, in the storage unit 14.
[0032] If the determination unit 12 determines that the number of requeries by the requery unit 13 is equal to or greater than a predetermined upper limit of requeries (YES in step S104), the determination unit 12 outputs a result indicating that the CPE could not be estimated as estimation result O (step S105). This completes the processing flow of the information processing method of the information processing device 10.
[0033] On the other hand, if the determination unit 12 determines that the number of requeries by the requery unit 13 is less than a predetermined upper limit of requeries (NO in step S104), the processing flow of the information processing method of the information processing device 10 proceeds to the next step S106.
[0034] If the CPE candidate is not registered in the CPE dictionary 20 (NO in step S102), the re-querying unit 13 creates a second query Q (Q1-Q8) to input to the trained artificial intelligence α, and inputs this second query Q (Q1-Q8) to the trained artificial intelligence α for a re-query (step S106). At this time, the number of re-queries by the re-querying unit 13 stored in the memory unit 14 is incremented by 1. Details of the subsequent inquiries Q(Q1-Q8) and the subsequent inquiries by the re-inquiry unit 13 will be described later.
[0035] When the above inquiries Q (Q1~Q8) are input again to the trained artificial intelligence α, new CPE candidates are output from the trained artificial intelligence α, and the process from step S102 described above is repeated. The above process is repeated, and finally, the determination unit 12 outputs the estimated CPE as estimation result O (step S103), or outputs a result indicating that the CPE could not be estimated as estimation result O (step S105), thereby ending the processing flow of the information processing method of the information processing device 10.
[0036] (Specific processing of requeries) The details of the process in step 106, which is performed by the re-querying unit 13, will be specifically explained below using Figures 6 to 10. Figure 6 is a first flowchart showing an example of the requerying process of the information processing method of the information processing apparatus according to the present disclosure. Figure 7 is a second flowchart showing an example of the requerying process of the information processing method of the information processing apparatus according to the present disclosure. Figure 8 is a first explanatory diagram illustrating a requery in the processing of an information processing method of an information processing apparatus according to an embodiment of this disclosure. Figure 9 is a second explanatory diagram illustrating a requery in the processing of an information processing method of an information processing apparatus according to an embodiment of this disclosure. Figure 10 is a third explanatory diagram illustrating a requery in the processing of an information processing method of an information processing apparatus according to an embodiment of this disclosure.
[0037] As shown in Figure 6, when the process of step 106 is started, the re-query unit 13 determines whether the CPE candidates output from the trained artificial intelligence α, obtained as a result of the previous query or the previous re-query (step S101 or step S106), conform to a predetermined rule (step S110). For example, the naming convention format for CPEs, as shown in Figure 4, may be stored in the memory unit 14 beforehand, and a CPE candidate may be determined to conform to the predetermined rule by comparing it with the CPE candidate output from the trained artificial intelligence α.
[0038] If it is determined that the CPE candidate output by the trained artificial intelligence α does not conform to the predetermined rules (NO in step S110), the re-querying unit 13 creates a new query Q1 to input to the trained artificial intelligence α, and inputs this query Q1 to the trained artificial intelligence α to perform a re-query (step S111). The second query Q1 created in step S111, as shown in Figure 8, includes a notification to the trained artificial intelligence α that the format of the CPE is invalid, causing the trained artificial intelligence α to output a CPE candidate that conforms to the prescribed rules and to learn this process. Note that the second query Q1 shown in Figure 8 is just an example and may be written in other formats. When the query Q1 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as an answer to the query Q1 again, and the process from step S102 described above is repeated.
[0039] On the other hand, if it is determined that the CPE candidate output by the trained artificial intelligence α conforms to a predetermined rule (YES in step S110), the re-query unit 13 extracts the constituent elements (vendor element, product element, and version element) from the CPE candidate. Next, the re-query unit 13 refers to the CPE dictionary 20 and determines whether there is any CPE data registered in the CPE dictionary 20 that has elements that perfectly match the combination of constituent elements (vendor element, product element, and version element) extracted from the CPE candidate (step S113).
[0040] If it is determined that CPE data with elements that perfectly match the combination of components (vendor element, product element, and version element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S113), the re-query unit 13 creates a new query Q2 to input to the trained artificial intelligence α, and inputs this query Q2 to the trained artificial intelligence α to perform a re-query (step S114).
[0041] The second query Q2 created in step S114, as shown in Figure 8, includes a notification to the trained artificial intelligence α that while CPE data matching the combination of components (vendor element, product element, and version element) extracted from the CPE candidate is registered in the CPE dictionary 20, no CPE data that perfectly matches the CPE candidate is registered in the CPE dictionary 20. It also includes a notification to the CPE dictionary 20 of CPE data (CPE candidates 1 to 6 listed in the second query Q2 in Figure 8) that match the combination of components (vendor element, product element, and version element) of the CPE candidate, as candidates.
[0042] This causes the trained artificial intelligence α to output CPE candidates from the CPE data registered in the CPE dictionary 20, and also trains the AI to perform this process. Note that the second query Q2 shown in Figure 8 is just an example and may be written in other formats. When the second query Q2 is input to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as an answer to the second query Q2, and the process from step S102 described above is repeated.
[0043] On the other hand, if it is determined that no CPE data with elements that perfectly match the combination of components (vendor elements, product elements, and version elements) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (NO in step S113), the re-query unit 13 refers to the CPE dictionary 20 and determines whether any CPE data with elements that match a part of the components A (vendor elements and product elements) among the components (vendor elements, product elements, and version elements) extracted from the CPE candidates is registered in the CPE dictionary 20 (step S116).
[0044] If it is determined that CPE data having elements that match some of the components A (vendor elements and product elements) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S116), the re-query unit 13 creates a new query Q3 to input to the trained artificial intelligence α, and inputs this query Q3 to the trained artificial intelligence α to perform a re-query (step S117).
[0045] The second query Q3 created in step S117, as shown in Figure 8, includes a notification to the trained artificial intelligence α that CPE data with elements matching some of the components A (vendor elements and product elements) extracted from the CPE candidates are registered in the CPE dictionary 20, but no CPE data that perfectly matches the CPE candidates is registered in the CPE dictionary 20. It also includes a notification to the CPE dictionary 20 of CPE data (CPE candidates 1 to 7 listed in the second query Q3 in Figure 8) that match the CPE candidates and some of the components A (vendor elements and product elements), and presents these as candidates.
[0046] This causes the trained artificial intelligence α to output CPE candidates from the CPE data registered in the CPE dictionary 20, and also trains the AI to perform this process. Note that the second query Q3 shown in Figure 8 is just an example and may be written in other formats. When the second inquiry Q3 is input to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as the answer to the second inquiry Q3, and the process from step S102 described above is repeated. In this embodiment, elements that match a portion of the components extracted from the CPE candidates (for example, a portion of component A (vendor element and product element)) may be elements that result in a larger number of CPE candidates being output by the trained artificial intelligence α when the trained artificial intelligence α is requeried based on the matching elements, compared to elements that perfectly match a combination of components extracted from the CPE candidates (for example, vendor element, product element, and version element). By doing so, the likelihood of the trained artificial intelligence α outputting an appropriate CPE candidate from the CPE data registered in the CPE dictionary 20 when requeriing is increased, and the process can be trained. This improves the accuracy of the process by which the information processing device 10 estimates the CPE of the target software.
[0047] On the other hand, if it is determined that no CPE data having elements that match a part A (vendor element and product element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (NO in step S116), the re-query unit 13 refers to the CPE dictionary 20 and determines whether any CPE data having elements that match a part B (product element and version element) of the components (vendor element, product element, and version element) extracted from the CPE candidates is registered in the CPE dictionary 20 (step S119).
[0048] If it is determined that CPE data having elements that match some of the components B (product element and version element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S119), the re-query unit 13 creates a new query Q4 to input to the trained artificial intelligence α, and inputs this query Q4 to the trained artificial intelligence α to perform a re-query (step S120).
[0049] The second query Q4 created in step S120, as shown in Figure 8, includes a notification to the trained artificial intelligence α that CPE data with elements matching some of the components B (product elements and version elements) extracted from the CPE candidate are registered in the CPE dictionary 20, but no CPE data that perfectly matches the CPE candidate is registered in the CPE dictionary 20. It also includes a notification to the CPE dictionary 20 of CPE data (CPE candidate 1 described in the second query Q4 in Figure 8) that matches the CPE candidate and some of the components B (product elements and version elements).
[0050] This causes the trained artificial intelligence α to output CPE candidates from the CPE data registered in the CPE dictionary 20, and also trains the AI to perform this process. Note that the second query Q4 shown in Figure 8 is just an example and may be written in other formats. When the query Q4 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as the answer to the query Q4 again, and the process from step S102 described above is repeated.
[0051] On the other hand, if it is determined that no CPE data having elements that match a part B (product element and version element) of the components extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (NO in step S119), then, as shown in Figure 7, the re-query unit 13 refers to the CPE dictionary 20 and determines whether any CPE data having elements that match a part C (product element) of the components extracted from the CPE candidates (vendor element, product element, and version element) is registered in the CPE dictionary 20 (step S122).
[0052] If it is determined that CPE data having elements that match some of the components C (product elements) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S122), then the re-query unit 13 next determines whether a predetermined number of CPE data having elements that match some of the components C (product elements) extracted from the CPE candidates is registered in the CPE dictionary 20 (step S123). In this embodiment, the case where the predetermined number is 30 will be described, but the predetermined number may be a number other than 30.
[0053] If it is determined that the number of CPE data entries in the CPE dictionary 20 that have elements matching a part C (product element) extracted from the CPE candidates output by the trained artificial intelligence α exceeds a predetermined number (NO in step S123), the re-query unit 13 creates a new query Q5 to input to the trained artificial intelligence α, and inputs this query Q5 to the trained artificial intelligence α to perform a re-query (step S124).
[0054] The second query Q5 created in step S124, as shown in Figure 9, includes a notification to the trained artificial intelligence α that CPE data having elements that match some of the components C (product elements) extracted from the CPE candidates are registered in the CPE dictionary 20, but no CPE data that perfectly matches the CPE candidates is registered in the CPE dictionary 20. It also includes a notification of the CPE data registered in the CPE dictionary 20 that match the CPE candidates and some of the components C (product elements) (CPE candidates 1 to 20 as described in the second query Q5 in Figure 9) as candidate information.
[0055] This allows the trained artificial intelligence α to output CPE candidates from the CPE data registered in the CPE dictionary 20, and to train the AI to perform this process. In particular, when CPE data that has elements matching some of the components C (product elements) extracted from the CPE candidates is notified to the trained artificial intelligence α and a re-query is made, it is highly likely that the trained artificial intelligence α will output appropriate CPE candidates with modified product elements. Therefore, the accuracy of the process by which the information processing device 10 estimates the CPE of the target software can be improved. Note that the re-query Q5 shown in Figure 9 is just an example and may be written in other formats. When the query Q5 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as the answer to the query Q5 again, and the process from step S102 described above is repeated.
[0056] On the other hand, if it is determined that a predetermined number of CPE data entries with elements matching some of the components C (product elements) extracted from the CPE candidates output by the trained artificial intelligence α are registered in the CPE dictionary 20 (YES in step S123), the re-query unit 13 creates a new query Q6 to input to the trained artificial intelligence α, and inputs this query Q6 to the trained artificial intelligence α to perform a re-query (step S125).
[0057] The second query Q6 created in step S125, as shown in Figure 9, includes a notification to the trained artificial intelligence α that CPE data with elements matching some of the components C (product elements) extracted from the CPE candidate are registered in the CPE dictionary 20, but no CPE data that perfectly matches the CPE candidate is registered in the CPE dictionary 20. It also includes information on combinations of elements (combinations of vendor elements and version elements) that are different from the matching elements (product elements) among the elements of the CPE data registered in the CPE dictionary 20 (such as combination candidates 1 to 16 shown in the second query Q6 in Figure 9), as information on combination candidates.
[0058] This allows the trained artificial intelligence α to output CPE candidates by narrowing down the combinations of elements that are different from matching elements (product elements) from the CPE data registered in the CPE dictionary 20, and also trains the artificial intelligence to perform this process. Therefore, the accuracy of the process by which the information processing device 10 estimates the CPE of the target software can be improved. Note that the follow-up inquiry Q6 shown in Figure 9 is just one example, and may be written in other formats. When the query Q6 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as an answer to the query Q6 again, and the process from step S102 described above is repeated.
[0059] On the other hand, in the process of step 122, if it is determined that no CPE data having an element matching a part C (product element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (NO in step S122), then the re-query unit 13 next determines whether any CPE data having an element matching a part D (vendor element) extracted from the CPE candidates is registered in the CPE dictionary 20 (step S127).
[0060] If it is determined that CPE data having elements that match a part D (vendor element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (YES in step S127), the re-query unit 13 creates a new query Q7 to input to the trained artificial intelligence α, and inputs this query Q7 to the trained artificial intelligence α to perform a re-query (step S128).
[0061] The second query Q7 created in step S128, as shown in Figure 10, includes a notification to the trained artificial intelligence α that CPE data containing elements matching some of the components D (vendor elements) extracted from the CPE candidates are registered in the CPE dictionary 20, but CPE data containing elements matching some of the components C (product elements) extracted from the CPE candidates are not registered in the CPE dictionary 20.
[0062] This causes the trained artificial intelligence α to output CPE candidates with some of its components C (product elements) changed, and also trains it to perform this process. Note that the repeated query Q7 shown in Figure 10 is just an example and may be written in other formats. When the query Q7 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as an answer to the query Q7 again, and the process from step S102 described above is repeated.
[0063] On the other hand, if it is determined that no CPE data having elements that match a part D (vendor element) extracted from the CPE candidates output by the trained artificial intelligence α is registered in the CPE dictionary 20 (NO in step S127), the re-query unit 13 creates a new query Q8 to input to the trained artificial intelligence α, and inputs this query Q8 to the trained artificial intelligence α to perform a re-query (step S129). In other words, in step S127, the re-query unit 13 performs a re-query if no CPE data having elements that match predetermined elements (product elements and vendor elements) included in the components extracted from the CPE candidates output from the trained artificial intelligence α is registered in the CPE dictionary 20.
[0064] The second query Q8 created in step S129, as shown in Figure 10, includes a notification to the trained artificial intelligence α that no CPE data having elements that match one or both of the components D (vendor element) and C (product element) extracted from the CPE candidates is registered in the CPE dictionary 20.
[0065] This causes the trained artificial intelligence α to output CPE candidates in which both a portion of the components D (vendor element) and a portion of the components C (product element) have been changed, and also trains the AI to perform this process. Note that the repeated query Q8 shown in Figure 10 is just an example and may be written in other formats. When the query Q8 is input again to the trained artificial intelligence α, the trained artificial intelligence α outputs a CPE candidate as an answer to the query Q8 again, and the process from step S102 described above is repeated.
[0066] As explained above, in the requery processing of step 106 by the requery unit 13, one of the requeries Q1 to Q8 exemplified in Figures 8 to 10 is created and input to the trained artificial intelligence α, thereby performing the requery.
[0067] (Effects and Benefits) As described above, the information processing device 10 that estimates the Common Platform Enumeration (CPE) of target software using a trained artificial intelligence α according to this embodiment comprises: an inquiry unit 11 that creates an inquiry Q0 to be input to the trained artificial intelligence α based on the basic information of the target software and inputs the inquiry Q0 to the trained artificial intelligence α and performs the inquiry; a determination unit 12 that determines whether the CPE candidate output from the trained artificial intelligence α in response to the inquiry Q0 is registered in the CPE dictionary; and a re-inquiry unit 13 that, if the CPE candidate is not registered in the CPE dictionary, creates the aforementioned inquiries Q1 to Q8 to be input to the trained artificial intelligence α and inputs the aforementioned inquiries Q1 to Q8 to the trained artificial intelligence α and performs the re-inquiry.
[0068] Thus, the information processing device 10 according to this embodiment utilizes the trained artificial intelligence α when estimating the CPE of the target software, enabling appropriate processing according to the situation without requiring complex calculation logic. Furthermore, the trained artificial intelligence α can take advantage of the fact that its processing becomes more efficient and accurate as it undergoes repeated training. Furthermore, if the CPE candidate output by the trained artificial intelligence α in response to the first query Q0 is not registered in the CPE dictionary, the accuracy of CPE estimation can be improved by inputting queries Q1 to Q8 again to the trained artificial intelligence α and performing a re-query. When the accuracy results were actually calculated experimentally, the accuracy of CPE estimation was 53.5% when the re-querying logic was not introduced, but when the re-querying process in step S106 shown in Figure 2 (specifically, the re-querying logic of this embodiment explained using Figures 6 to 10) was introduced, the accuracy of CPE estimation was improved to 94.3%, demonstrating an effective result. Furthermore, according to the information processing device 10 of this embodiment, CPE can be estimated simply using easily implementable technology.
[0069] <Hardware Configuration> Figure 11 shows an example of the computer hardware configuration of an information processing device 10 according to one embodiment of the present disclosure. As shown in Figure 11, the computer 900 includes a processor 901, a main memory 902, an auxiliary memory 903, and an interface 904.
[0070] Each of the information processing devices 10 according to the above embodiments is implemented in a computer 900. The operation of each processing unit described above is stored in the auxiliary memory device 903 in the form of a program. The processor 901 reads the program from the auxiliary memory device 903, loads it into the main memory device 902, and executes the above processing according to the program. The processor 901 also allocates memory areas in the main memory device 902 corresponding to each of the above-described memory units according to the program.
[0071] The program may be for implementing some of the functions that the computer 900 is to perform. For example, the program may perform functions in combination with other programs already stored in the auxiliary memory device 903, or in combination with other programs implemented in other devices. In other embodiments, the computer 900 may be equipped with a custom LSI (Large Scale Integrated Circuit) such as a PLD (Programmable Logic Device) in addition to or instead of the above configuration. Examples of PLDs include PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), and FPGA (Field Programmable Gate Array). In this case, some or all of the functions implemented by the processor 901 may be implemented by the integrated circuit.
[0072] Examples of the auxiliary memory device 903 include magnetic disks, magneto-optical disks, optical disks, semiconductor memory, etc. The auxiliary memory device 903 may be an internal medium directly connected to the bus of the computer 900, or it may be an external storage device 910 connected to the computer 900 via an interface 904 or a communication line. Furthermore, if this program is distributed to the computer 900 via a communication line, the computer 900 that receives the distribution may expand the program into the main memory 902 and execute the above processing. In at least one embodiment, the auxiliary memory device 903 is a tangible storage medium that is not temporary.
[0073] Furthermore, the program may be intended to implement some of the functions described above. Furthermore, the program may be a so-called differential file (differential program) that implements the aforementioned functions in combination with other programs already stored in the auxiliary memory device 903.
[0074] <Variation> In the embodiment described above, the case where the basic information I of the target software is the library name, version information, and official website was explained. Here, as a variation of the embodiment, the basic information I of the target software to be input to the trained artificial intelligence α may consist of only one or two of the following: library name, version information, and official website. By doing so, it is possible to estimate the CPE of the target software from minimal information.
[0075] Furthermore, the above-described embodiment explains the case in which the trained artificial intelligence α and the CPE dictionary 20 are installed separately from the information processing device 10. Here, as a modification of the embodiment, the information processing device 10 may be configured to have a trained artificial intelligence α. Alternatively, as another modification of the embodiment, the information processing device 10 may be configured to have a CPE dictionary 20. By doing so, the processing speed of the information processing device 10 can be improved, and implementation can be made even easier.
[0076] Furthermore, while the above-described embodiment explained the case in which the subsequent queries Q1 to Q8 are created in the predetermined priority order shown in Figures 6 to 7, the priority order in which the subsequent queries are created may be any priority order other than that exemplified in Figures 6 to 7. Also, while the above-described embodiment explained the case in which there are eight patterns of subsequent queries (Q1 to Q8), there may be a number of patterns other than eight. Moreover, the subsequent queries may be written in a format and content other than the format of the subsequent queries Q1 to Q8 exemplified in Figures 8 to 10. In this way, by appropriately adjusting the format, content, or pattern of the subsequent queries input to the trained artificial intelligence α, the CPE candidate estimation process by the information processing device 10 can be changed to a desired process. For example, by including more detailed information in the subsequent queries, the accuracy can be improved by limiting the processing.
[0077] Furthermore, in the above-described embodiment, we explained the case in which, when the number of requeries by the requery unit 13 is determined to be equal to or greater than a predetermined upper limit of requeries, the determination unit 12 outputs a result indicating that the CPE could not be estimated as the estimation result O. Here, as a modification of the embodiment, if the number of requeries by the requery unit 13 is determined to be equal to or greater than a predetermined upper limit of requeries, the last CPE candidate output from the trained artificial intelligence α may be output as the estimation result O. Alternatively, the last CPE candidate output from the trained artificial intelligence α may be output as the estimation result O along with a result indicating that the CPE could not be estimated. By doing so, this information can be used as reference when considering changes to the basic information I of the target software, for example, in order to continue attempting to estimate CPE.
[0078] <Other Embodiments> While several embodiments of this disclosure have been described above, these embodiments are presented as examples only and are not intended to limit the scope of this disclosure. These embodiments can be implemented in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of this disclosure. These embodiments and their variations are included within the scope and spirit of the disclosure.
[0079] <Note> The information processing apparatus, information processing system, information processing method, and program described in each embodiment can be understood, for example, as follows:
[0080] (1) According to the first embodiment, the information processing device 10 that estimates the CPE (Common Platform Enumeration) of target software using a trained artificial intelligence α comprises: an inquiry unit 11 that creates an inquiry Q(Q0) to be input to the trained artificial intelligence α based on the basic information I of the target software and inputs the inquiry Q(Q0) to the trained artificial intelligence α and queries it; a determination unit 12 that determines whether the CPE candidate output from the trained artificial intelligence α in response to the inquiry Q is registered in the CPE dictionary 20; and a re-inquiry unit 13 that, if the CPE candidate is not registered in the CPE dictionary 20, creates a second inquiry Q(Q1~Q8) to be input to the trained artificial intelligence α and inputs the second inquiry Q(Q1~Q8) to the trained artificial intelligence α and queries it again.
[0081] Thus, the information processing device 10 according to this embodiment utilizes the trained artificial intelligence α when estimating the CPE of the target software, enabling appropriate processing according to the situation without requiring complex calculation logic. Furthermore, the trained artificial intelligence α can take advantage of the fact that its processing becomes more efficient and accurate as it undergoes repeated training. Furthermore, if the CPE candidate output by the trained artificial intelligence α in response to the first query Q0 is not registered in the CPE dictionary, the accuracy of CPE estimation can be improved by inputting queries Q1 to Q8 again into the trained artificial intelligence α and performing a re-query. Furthermore, according to the information processing device 10 of this embodiment, CPE can be estimated simply using easily implementable technology.
[0082] (2) According to the second embodiment, in the information processing device 10 according to the first embodiment, the basic information I of the target software includes at least one of the following: library name, version, and official website.
[0083] By doing so, it is possible to estimate the CPE of the target software from minimal information.
[0084] (3) According to the third embodiment, in the information processing device 10 according to the first or second embodiment, if the number of requeries by the requery unit 13 exceeds the maximum number of requeries, the process of estimating the CPE of the target software is terminated.
[0085] In this way, the process by which the information processing device 10 estimates the CPE of the target software avoids a situation where requeries are repeated indefinitely and the process never terminates, while also ensuring a sufficient number of requeries to allow for a certain degree of trial and error.
[0086] (4) According to the fourth embodiment, in the information processing device 10 according to any one of the first to third embodiments, the requery unit 13 requeries the trained artificial intelligence α if the CPE candidate does not conform to a predetermined rule.
[0087] By doing so, the trained artificial intelligence α is instructed to notify it that the format of the CPE is invalid, thereby causing the trained artificial intelligence α to output CPE candidates that conform to the predetermined rules and to learn this process. This improves the accuracy of the process by which the information processing device 10 estimates the CPE of the target software.
[0088] (5) According to the fifth embodiment, in the information processing device 10 according to any one of the first to fourth embodiments, the requery unit 13 requeries the trained artificial intelligence α if CPE data having elements that perfectly match the combination of components extracted from the CPE candidates is registered in the CPE dictionary 20.
[0089] In this way, the trained artificial intelligence α can output CPE candidates from the CPE data registered in the CPE dictionary 20, and can also be trained to perform this process. This improves the accuracy of the information processing device 10's process of estimating the CPE of the target software.
[0090] (6) According to the sixth embodiment, in the information processing device 10 according to any one embodiment from the first to fifth, the requerying unit 13 requeries the trained artificial intelligence α if no CPE data having elements that perfectly match a combination of components (e.g., vendor elements, product elements, and version elements) extracted from the CPE candidate is registered in the CPE dictionary 20, but CPE data having elements that match some of the components (e.g., vendor elements and product elements) extracted from the CPE candidate is registered in the CPE dictionary 20.
[0091] In this way, the trained artificial intelligence α can output CPE candidates from the CPE data registered in the CPE dictionary 20, and can also be trained to perform this process. This improves the accuracy of the information processing device 10's process of estimating the CPE of the target software.
[0092] (7) According to the seventh aspect, in the information processing device 10 according to the sixth aspect, the elements that match a part of the components extracted from the CPE candidates are elements that result in a larger number of CPE candidates being output by the trained artificial intelligence when the trained artificial intelligence is requeried based on the matching elements than the elements that perfectly match a combination of components extracted from the CPE candidates.
[0093] By doing so, when a re-query is performed, the likelihood of the trained artificial intelligence α reliably outputting an appropriate CPE candidate from the CPE data registered in the CPE dictionary 20 is increased, and the process can be trained. This improves the accuracy of the process by which the information processing device 10 estimates the CPE of the target software.
[0094] (8) According to the eighth aspect, in the information processing device 10 according to the sixth aspect, if a predetermined number of CPE data having elements that match a part of the components extracted from the CPE candidate (e.g., product elements) are registered in the CPE dictionary 20, the requerying unit 13 requeries the trained artificial intelligence α based on combinations of elements (e.g., vendor elements and version elements) that are different from the matching elements (e.g., product elements) among the elements of the registered CPE data.
[0095] In this way, the trained artificial intelligence α can output CPE candidates from the CPE data registered in the CPE dictionary 20, not only from matching elements (for example, product elements) but also from combinations of elements different from those matching elements (combinations of vendor elements and version elements), thereby allowing the AI to learn this process. This improves the accuracy of the information processing device 10's process of estimating the CPE of the target software.
[0096] (9) According to the ninth aspect, in the information processing device 10 according to the sixth aspect, if the number of CPE data having elements that match a part of the components extracted from the CPE candidates (for example, product elements) does not exceed a predetermined number in the CPE dictionary 20, the trained artificial intelligence α is requeried based on the registered CPE data.
[0097] In this way, CPE data that has elements matching some of the components extracted from the CPE candidates (for example, product elements) and is registered in the CPE dictionary 20 is notified to the trained artificial intelligence α, and when it is queried again, the likelihood of the trained artificial intelligence α outputting an appropriate CPE candidate is increased, and the process can be trained. As a result, the accuracy of the process by which the information processing device 10 estimates the CPE of the target software can be improved.
[0098] (10) According to the tenth embodiment, in the information processing device 10 according to any one embodiment from the first to the ninth, the requerying unit 13 requeries the trained artificial intelligence α if no CPE data having elements that match predetermined elements (e.g., vendor elements and product elements) included in the components extracted from the CPE candidates is registered in the CPE dictionary 20.
[0099] In this way, the trained artificial intelligence α can be made to output CPE candidates with predetermined elements (e.g., vendor elements and product elements) changed, and can also be trained to perform this process. This improves the accuracy of the information processing device 10's process of estimating the CPE of the target software.
[0100] (11) According to the eleventh aspect, the information processing system 1 comprises an information processing device 10 according to any one of the first to tenth aspects, the trained artificial intelligence α, and the CPE dictionary 20.
[0101] In this way, the information processing system 1 according to this embodiment can apply the processing by the information processing device 10 according to this embodiment to estimate the CPE of the target software.
[0102] (12) According to the twelfth aspect, the information processing method is an information processing method for estimating the CPE (Common Platform Enumeration) of target software using a trained artificial intelligence α, comprising the steps of: creating an inquiry Q(Q0) to be input to the trained artificial intelligence α based on basic information I of the target software; inputting the inquiry Q(Q0) to the trained artificial intelligence α and querying it; determining whether the CPE candidate output from the trained artificial intelligence α in response to the inquiry Q is registered in the CPE dictionary 20; and, if the CPE candidate is not registered in the CPE dictionary 20, creating a second inquiry Q(Q1~Q8) to be input to the trained artificial intelligence α; inputting the second inquiry Q(Q1~Q8) to the trained artificial intelligence α and querying it again.
[0103] Thus, the information processing method according to this embodiment utilizes a trained artificial intelligence α when estimating the CPE of the target software, enabling appropriate processing according to the situation without requiring complex calculation logic. Furthermore, the trained artificial intelligence α can take advantage of the fact that its processing becomes more efficient and accurate as it undergoes repeated training. Furthermore, if the CPE candidate output by the trained artificial intelligence α in response to the first query Q0 is not registered in the CPE dictionary, the accuracy of CPE estimation can be improved by inputting queries Q1 to Q8 again into the trained artificial intelligence α and performing a re-query. Furthermore, according to the information processing method of this embodiment, CPE can be estimated simply using easily implementable techniques.
[0104] (13) According to the 13th aspect, the program causes the computer 900 of the information processing device 10, which estimates the CPE (Common Platform Enumeration) of the target software using a trained artificial intelligence α, to execute the following steps: create an inquiry Q(Q0) to be input to the trained artificial intelligence α based on the basic information I of the target software, and input the inquiry Q(Q0) to the trained artificial intelligence α to perform the query; determine whether the CPE candidate output by the trained artificial intelligence α in response to the inquiry Q is registered in the CPE dictionary 20; and if the CPE candidate is not registered in the CPE dictionary 20, create a second inquiry Q(Q1~Q8) to be input to the trained artificial intelligence α, and input the second inquiry Q(Q1~Q8) to the trained artificial intelligence α to perform the query again.
[0105] Thus, the program according to this embodiment utilizes the trained artificial intelligence α when estimating the CPE of the target software, enabling appropriate processing according to the situation without requiring complex computational logic. Furthermore, the trained artificial intelligence α can take advantage of the fact that its processing becomes more efficient and accurate as it undergoes repeated training. Furthermore, if the CPE candidate output by the trained artificial intelligence α in response to the first query Q0 is not registered in the CPE dictionary, the accuracy of CPE estimation can be improved by inputting queries Q1 to Q8 again into the trained artificial intelligence α and performing a re-query. Furthermore, according to the program of this embodiment, CPE can be estimated concisely using easily implementable techniques. [Explanation of Symbols]
[0106] 1. Information Processing System 10 Information Processing Devices 11. Inquiry Department 12 Judgment section 13. Re-inquiry section 14 Storage section 20 CPE Dictionary 900 Computers 901 Processor 902 Main storage 903 Auxiliary storage device 904 Interface 910 External storage device I. Input Information (Basic Information about the Target Software) O Estimation result α Pre-trained artificial intelligence (generative AI) Some of the components extracted from CPE candidates A-D Q0 Inquiry Q1-Q8: Further inquiries Pages 1-2: Contents of the inquiry
Claims
1. An information processing device that estimates the CPE (Common Platform Enumeration) of target software using a trained artificial intelligence, A query unit that creates a query to be input to the trained artificial intelligence based on the basic information of the target software, and inputs the query to the trained artificial intelligence to perform the query, A determination unit that determines whether the CPE candidates output from the trained artificial intelligence in response to the aforementioned query are registered in the CPE dictionary, If the CPE candidate is not registered in the CPE dictionary, the re-querying unit creates the query again to be input to the trained artificial intelligence, inputs the query again to the trained artificial intelligence, and performs a re-query. An information processing device equipped with the following features.
2. The basic information of the aforementioned target software includes at least one of the following: library name, version, and official website. The information processing apparatus according to claim 1.
3. If the number of requeries by the requerying unit exceeds the maximum number of requeries, the process of estimating the CPE of the target software is terminated. The information processing apparatus according to claim 1 or claim 2.
4. The re-querying unit re-queries the trained artificial intelligence if the CPE candidate does not conform to the predetermined rules. The information processing apparatus according to claim 1 or claim 2.
5. The re-querying unit re-queries the trained artificial intelligence if CPE data having elements that perfectly match the combination of components extracted from the CPE candidates is registered in the CPE dictionary. The information processing apparatus according to claim 1 or claim 2.
6. The re-querying unit re-queries the trained artificial intelligence if no CPE data with elements that perfectly match the combination of components extracted from the CPE candidates is registered in the CPE dictionary, but CPE data with elements that match some of the components extracted from the CPE candidates is registered in the CPE dictionary. The information processing apparatus according to claim 1 or claim 2.
7. An element that matches a portion of the components extracted from the CPE candidates is an element that results in a greater number of CPE candidates being output by the trained artificial intelligence when the trained artificial intelligence is requeried based on the matching element than an element that perfectly matches a combination of components extracted from the CPE candidates. The information processing apparatus according to claim 6.
8. The re-querying unit, when a predetermined number of CPE data entries in the CPE dictionary have elements that match some of the components extracted from the CPE candidates, re-queries the trained artificial intelligence based on combinations of elements in the registered CPE data that are different from the matching elements. The information processing apparatus according to claim 6.
9. The re-querying unit, if the number of CPE data entries in the CPE dictionary that have elements matching some of the components extracted from the CPE candidates does not exceed a predetermined number, re-queries the trained artificial intelligence based on the registered CPE data. The information processing apparatus according to claim 6.
10. The re-querying unit re-queries the trained artificial intelligence if no CPE data having an element that matches a predetermined element included in the components extracted from the CPE candidates is registered in the CPE dictionary. The information processing apparatus according to claim 1 or claim 2.
11. An information processing apparatus according to claim 1 or claim 2, The aforementioned trained artificial intelligence, The aforementioned CPE dictionary and, An information processing system equipped with the following features.
12. An information processing method for estimating the Common Platform Energization (CPE) of target software using a trained artificial intelligence, The steps include creating a query to be input to the trained artificial intelligence based on the basic information of the target software, and inputting the query to the trained artificial intelligence to perform the query, The steps include: determining whether the CPE candidates output by the trained artificial intelligence in response to the aforementioned query are registered in the CPE dictionary; If the CPE candidate is not registered in the CPE dictionary, the steps include creating a new query to input into the trained artificial intelligence, inputting the new query into the trained artificial intelligence, and performing a new query. An information processing method comprising the following:
13. An information processing computer that uses trained artificial intelligence to estimate the CPE (Common Platform Enumeration) of target software, The steps include creating a query to be input to the trained artificial intelligence based on the basic information of the target software, and inputting the query to the trained artificial intelligence to perform the query, The steps include: determining whether the CPE candidates output by the trained artificial intelligence in response to the aforementioned query are registered in the CPE dictionary; If the CPE candidate is not registered in the CPE dictionary, the steps include creating a new query to input into the trained artificial intelligence, inputting the new query into the trained artificial intelligence, and performing a new query. A program that executes the command.