WO2021024532A1 - 計算機システム及び情報の共有方法 - Google Patents

計算機システム及び情報の共有方法 Download PDF

Info

Publication number
WO2021024532A1
WO2021024532A1 PCT/JP2020/009401 JP2020009401W WO2021024532A1 WO 2021024532 A1 WO2021024532 A1 WO 2021024532A1 JP 2020009401 W JP2020009401 W JP 2020009401W WO 2021024532 A1 WO2021024532 A1 WO 2021024532A1
Authority
WO
WIPO (PCT)
Prior art keywords
connection destination
information
analysis
program
observation
Prior art date
Application number
PCT/JP2020/009401
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 EP20849673.7A priority Critical patent/EP4012588A4/en
Priority to US17/628,250 priority patent/US20220263839A1/en
Publication of WO2021024532A1 publication Critical patent/WO2021024532A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/033Test or assess software

Definitions

  • the present invention relates to a technique for sharing information necessary for countermeasures against cyber attacks, particularly targeted attacks.
  • Malware used for targeted attacks, which is one of cyber attacks, communicates with a server owned by an attacker such as a C2 server.
  • malware intended for remote control for example, Remote Access Upload / Remote Access Tool / Remote Addition Tool
  • Patent Document 1 states that "an execution unit, a recording unit, a detection unit, and a specific unit are provided.
  • the execution unit executes a malicious program in an environment in which connection information used for connection to a terminal is preset.
  • the recording unit records the communication destination of the communication due to the execution of the malicious program.
  • the detection unit detects the communication to the terminal and is performed by using the connection information.
  • the specific unit is the recording unit. From the communication destinations recorded by, the communication destination of the malicious program executed under the environment in which the connection information of the communication detected by the detection unit is set is specified.
  • Patent Document 2 describes "software execution means for executing software in a connection destination information extraction device having a communication function for communicating with an external server via a network and the connection with the network being cut off, and the software. From the communication observation means that observes the connection operation to the external server by the software executed by the execution means and acquires the communication log related to the connection operation, and the communication log acquired by the communication observation means, the connection destination of the software. It is provided with a connection destination information extraction means for extracting information and storing the connection destination information in the connection destination information storage means. "
  • the present invention provides a system and a method for sharing information necessary for a plurality of organizations to take accurate and efficient measures.
  • a typical example of the present invention is as follows. That is, a computer system including at least one computer, wherein the at least one computer has an arithmetic unit, a storage device connected to the arithmetic unit, and a communication device connected to the arithmetic unit, and the computer.
  • the system executes dynamic analysis of the sample of the malicious program involved in the cyber attack, and at least the analysis unit that outputs the analysis result including the connection destination with which the malicious program communicates, and the result of periodic observation of the connection destination.
  • the fluctuation detection unit that detects the fluctuation of the connection destination and outputs the detection result and the information output from the analysis unit and the fluctuation detection unit are stored in a format that can be shared by a plurality of external computers. It has an information sharing unit.
  • a plurality of organizations can share information for realizing accurate and efficient countermeasures. Issues, configurations and effects other than those mentioned above will be clarified by the description of the following examples.
  • FIG. 1 It is a figure which shows an example of the structure of the computer system of Example 1. It is a figure which shows an example of the data structure of the sample information of Example 1. FIG. It is a figure which shows an example of the data structure of the connection destination information of Example 1. FIG. It is a figure which shows an example of the data structure of the analysis result information of Example 1.
  • FIG. It is a flowchart explaining the outline of the process executed by the attack analysis / sharing system of Example 1. It is a flowchart explaining an example of the analysis processing executed by the attack analysis / sharing system of Example 1. It is a flowchart explaining an example of the observation processing executed by the attack analysis / sharing system of Example 1. It is a flowchart explaining an example of the fluctuation detection processing executed by the attack analysis / sharing system of Example 1.
  • FIG. 1 is a diagram showing an example of the configuration of the computer system of the first embodiment.
  • the computer system is composed of an attack analysis / sharing system 100, a plurality of user terminals 101, a shared server 102, a plurality of external user terminals 103, and a plurality of observation agents 104.
  • FIG. 1 there are k user terminals 101, external user terminals 103, and n observation agents 104.
  • the present invention is not limited to the number of user terminals 101, shared server 102, external user terminals 103, and observation agent 104 included in the computer system.
  • the attack analysis / sharing system 100 connects to a plurality of user terminals 101 via the network 105-1. Further, the attack analysis / sharing system 100 connects to the shared server 102, the plurality of external user terminals 103, and the plurality of observation agents 104 via the network 105-2 and the Internet 106.
  • the network 105-1 is, for example, a LAN (Local Area Network), and the network 105-2 is, for example, a WAN (Wide Area Network).
  • the present invention is not limited to the type of network 105. Further, the connection method of the network 105 may be either wired or wireless.
  • the user terminal 101 and the external user terminal 103 are terminals operated by the user, such as a personal computer, a smartphone, and a tablet.
  • the user terminal 101 and the external user terminal 103 have a CPU, a memory, a storage device, and a network interface (not shown).
  • the user terminal 101 is a user terminal connected to the internal network in which the attack analysis / sharing system 100 exists, and the external user terminal 103 is a user terminal connected to an external network different from the internal network.
  • the shared server 102 is a computer that stores information and the like analyzed by the attack analysis / sharing system 100 in a shareable format.
  • the shared server 102 has a CPU, a memory, a storage device, and a network interface (not shown).
  • the observation agent 104 is a computer that monitors the connection destination specified by the attack analysis / sharing system 100.
  • the observation agent 104 has a CPU, memory, storage device, and network interface (not shown).
  • attack analysis / sharing system 100 may have the function of the observation agent 104.
  • the attack analysis / sharing system 100 is a system that provides useful information for taking countermeasures against cyber attacks.
  • the attack analysis / sharing system 100 is composed of at least one computer. In the first embodiment, it is assumed that the attack analysis / sharing system 100 is realized by using one computer.
  • the attack analysis / sharing system 100 has a CPU (Central Processing Unit) 111, a network interface 112, a memory 113, and a storage device 114 as hardware.
  • the hardware is connected to each other via a communication path 115 which is an information transmission medium such as a bus or a cable.
  • the attack analysis / sharing system 100 may be connected to an input / output device 116 for inputting / outputting to the attack analysis / sharing system 100, such as a keyboard, a mouse, a touch panel, a display, and a printer.
  • an input / output device 116 for inputting / outputting to the attack analysis / sharing system 100, such as a keyboard, a mouse, a touch panel, a display, and a printer.
  • the CPU 111 executes a program stored in the memory 113.
  • the CPU 111 executes processing according to a program, it operates as a module (functional unit) that realizes a specific function.
  • the process is described with the program as the subject, it means that the CPU is executing the program.
  • the network interface 112 is an interface for communicating with an external device.
  • the memory 113 stores a program executed by the CPU 111 and information used by the program.
  • the memory 113 is also used as a work area temporarily used by the program.
  • the storage device 114 permanently stores a large amount of data.
  • the storage device 114 is, for example, an HDD (Hard Disk Drive) and an SSD (Solid State Drive).
  • the memory 113 stores the analysis program 120, the information sharing program 121, the observation program 122, the fluctuation detection program 123, the display program 124, the cutoff determination program 125, the observation cycle management program 126, and the report generation program 127.
  • the analysis program 120 is a program executed to analyze a malware sample and output an analysis result including information on the behavior and characteristics of the malware sample.
  • the information sharing program 121 is a program executed to store information in a format that can be used by the user terminal 101 and the external user terminal 103.
  • the observation program 122 is a program executed to control the observation agent 104.
  • the fluctuation detection program 123 is a program executed to detect fluctuations in the connection destination with which the malware sample communicates.
  • the display program 124 is a program executed to display various information such as analysis results of malware samples.
  • the cutoff determination program 125 is a program executed to determine whether or not communication to the connection destination needs to be cut off.
  • the observation cycle management program 126 is a program executed to manage the observation cycle of the connection destination of the observation agent 104.
  • the report generation program 127 is a program executed to generate a report summarizing information on analysis of malware samples and observation of connection destinations.
  • the memory 113 may store a program (not shown) that controls the entire attack analysis / sharing system 100.
  • the analysis program 120 or the like may have a function of controlling the entire attack analysis / sharing system 100.
  • a plurality of programs may be combined into one program, or one program may be divided into a plurality of programs for each function.
  • the storage device 114 stores the sample information 130, the connection destination information 131, and the analysis result information 132.
  • the storage device 114 also includes a sample storage area 140.
  • the sample storage area 140 is a storage area for storing a malware sample.
  • Specimen information 130 is information for managing malware samples.
  • the analysis result information 132 is information for managing the analysis result of the malware sample.
  • the sample information 130 stores the first analysis result, and the analysis result information 132 stores the second and subsequent analysis results.
  • the data structure of the sample information 130 will be described with reference to FIG. 2, and the data structure of the analysis result information 132 will be described with reference to FIG.
  • connection destination information 131 is information for managing the connection destination.
  • the data structure of the connection destination information 131 will be described with reference to FIG.
  • the program stored in the memory 113 may be stored in the storage device 114 or an external device connected via the network interface 112.
  • the CPU 111 acquires the program from the storage device 114 or the external device and loads it into the memory 113.
  • each program may be stored in each computer.
  • the functions realized by each program may be realized by using dedicated hardware.
  • malware sample is simply referred to as a sample.
  • FIG. 2 is a diagram showing an example of the data structure of the sample information 130 of Example 1.
  • the sample information 130 stores an entry composed of the sample ID 201, the analysis date / time 202, the storage location 203, the connection destination 204, and the response 205. There is one entry for one sample.
  • the structure of the entry is an example and is not limited to this. One of the above fields may not be included, or the other field may be included.
  • the sample ID 201 is a field for storing identification information for uniquely identifying the sample to be analyzed. A number is stored in the sample ID 201 of Example 1 as identification information. The sample ID 201 is also used as identification information for identifying the entry of the sample information 130.
  • the analysis date and time 202 is a field for storing the date and time when the sample was analyzed. For example, an entry with sample ID 201 "0" indicates that the sample was analyzed at 14:57:12 on June 6, 2019.
  • the present invention is not limited to the time data format stored in the analysis date and time 202. Any data format such as Unix may be used as long as the time can be determined.
  • the storage location 203 is a field for storing information indicating the storage location of the sample in the sample storage area 140.
  • the file path is stored in the storage location 203 of the first embodiment. For example, it indicates that the sample corresponding to the entry whose sample ID 201 is "0" is stored in "/mal/a.exe".
  • the connection destination 204 is a field for storing information about the connection destination that the sample tried to communicate with.
  • a URL, an address, and the like are stored in the connection destination 204. For example, the sample corresponding to the entry whose sample ID 201 is "0" indicates that it has attempted to communicate with "search.sample.com/” and "192.0.2.1/c2".
  • Response 205 is a field for storing information regarding the response from the connection destination. For example, when a response including the HTTP status code 200 (OK) is detected from the connection destination, "200" is stored in the response 205. If there is no response from the connection destination, that is, if the connection fails, a hyphen is stored in the response 205.
  • FIG. 3 is a diagram showing an example of the data structure of the connection destination information 131 of the first embodiment.
  • the connection destination information 131 stores an entry composed of a connection destination ID 301, a connection destination 302, a sample ID 303, an observation interval 304, a blocking flag 305, and a connection result 306.
  • the structure of the entry is an example and is not limited to this.
  • One of the above fields may not be included, or the other field may be included.
  • a field for storing the identification information of the observation agent 104 that observes the connection destination may be included.
  • connection destination ID 301 is a field for storing identification information for uniquely identifying the connection destination. A number is stored as identification information in the connection destination ID 301 of the first embodiment. The connection destination ID 301 is also used as identification information for identifying the entry of the connection destination information 131.
  • connection destination 302 is a field for storing information about the connection destination to be monitored.
  • a URL, an address, and the like are stored in the connection destination 302.
  • the sample ID 303 is a field stored in the connection destination 302 for storing the identification information of the sample that tried to communicate with the connection destination.
  • the sample ID 303 stores the same value as the value stored in the sample ID 201 of the sample information 130.
  • the sample information 130 and the connection destination information 131 are associated with each other via the sample ID.
  • the observation interval 304 is a field for storing the observation cycle of the connection destination.
  • the observation program 122 instructs the observation agent 104 to observe the connection destination based on the period stored in the observation interval 304. For example, the connection destination corresponding to the entry whose connection destination ID 301 is "0" is observed at a 4-hour cycle.
  • the blocking flag 305 is a field that stores information used for blocking control of communication to the connection destination. Either “ON” or “OFF” is stored in the cutoff flag 305. “ON” is a value indicating that blocking communication to the connection destination is recommended, and “OFF” is a value indicating that blocking communication to the connection destination is not recommended.
  • connection result 306 is a group of fields for storing information regarding communication between the connection destination and the sample.
  • the connection result 306 includes one or more lines composed of the observation date and time 307, the response 308, and the variation 309. There is one row for one observation.
  • the observation date and time 307 is a field that stores the date and time when the observation of the connection destination was performed. For example, the first line of the entry whose connection destination ID 301 is "0" indicates that the observation was made at 14:57:14 on June 6, 2019.
  • the present invention is not limited to the time data format stored at the observation date and time 307. Any data format such as Unix may be used as long as the time can be determined.
  • Response 308 is a field that stores information about the response from the connection destination. For example, when the observation agent 104 detects a response including the HTTP status code 200 (OK) from the connection destination, "200" is stored in the response 308. If no response from the connection destination is observed, that is, if the connection fails, a hyphen is stored in the response 308.
  • Fluctuation 309 is a field for storing the determination result of presence / absence of fluctuation of the connection destination.
  • the fluctuation of the connection destination is a concept including a change in the state of the connection destination itself and a change in the response from the connection destination.
  • the presence or absence of fluctuations in the connection destination is determined based on the comparison result between the previous observation result and the current observation result.
  • FIG. 4 is a diagram showing an example of the data structure of the analysis result information 132 of the first embodiment.
  • the analysis result information 132 stores an entry composed of the sample ID 401, the analysis date and time 402, and the analysis result 403. There is one entry for the analysis result of one sample.
  • the structure of the entry is an example and is not limited to this. One of the above fields may not be included, or the other field may be included.
  • the sample ID 401 is a field for storing the identification information of the sample that has been analyzed.
  • the same value as the value stored in the sample ID 201 of the sample information 130 is stored in the sample ID 401.
  • the sample information 130 and the analysis result information 132 are associated with each other via the sample ID.
  • the analysis date and time 402 is a field for storing the date and time when the sample was analyzed. For example, the first entry indicates that the sample was analyzed at 15:33:42 on June 6, 2019.
  • the present invention is not limited to the time data format stored in the analysis date and time 402. Any data format such as Unix may be used as long as the time can be determined.
  • the analysis result 403 is a field group for storing the analysis result of the sample.
  • the analysis result 403 includes the API call log 404, the generated file 405, and the connection destination 406.
  • the API call log 404 is a field for storing information related to the API call issued by the sample.
  • the API call log 404 of the first entry stores the API "RegOpenKey ()" that the sample called to read the value in the registry.
  • the analysis result 403 may include a field for storing information that can identify the instruction called by the sample, such as a system call and machine language, instead of the API call log 404.
  • the generated file 405 is a field for storing information about the file generated by the sample.
  • the name of the generated file is stored in the generated file 405 of the first embodiment. For example, the sample corresponding to the second entry indicates that it has generated a file with the name "c.scr". If the file is not generated, a hyphen is stored in the generated file 405.
  • the connection destination 406 is a field for storing information about the connection destination that the sample tried to communicate with.
  • the URL, address, and the like are stored in the connection destination 406. For example, the sample corresponding to the first entry indicates an attempted communication to "search.sample.com/" and "192.0.2.1 / c2".
  • FIG. 5 is a flowchart illustrating an outline of the processing executed by the attack analysis / sharing system 100 of the first embodiment.
  • the attack analysis / sharing system 100 periodically executes the processes described below.
  • the attack analysis / sharing system 100 determines whether or not an analysis request has been received from the user terminal 101 or the external user terminal 103 (step S501).
  • the analysis program 120 of the attack analysis / sharing system 100 receives the analysis request before the start of the process, the analysis request is temporarily stored in the memory 113 or the storage device 114.
  • the analysis request includes a sample.
  • the attack analysis / sharing system 100 executes the analysis process (step S502).
  • the attack analysis / sharing system 100 outputs an execution instruction of a process including a sample to the analysis program 120. By executing the analysis process, the attack analysis / sharing system 100 acquires the analysis result including the connection destination to which the malware tried to communicate. The details of the analysis process will be described with reference to FIG.
  • step S503 the attack analysis / sharing system 100 executes an information sharing process (step S503) in order to share the analysis result, and then proceeds to step S504.
  • the attack analysis / sharing system 100 outputs an execution instruction to the information sharing program 121.
  • the attack analysis / sharing system 100 can save the analysis result of the data format that can be handled by the computer such as the user terminal 101 in the shared server 102. The details of the information sharing process will be described with reference to FIG.
  • the execution instruction includes information (reference information) for acquiring updated contents of various information.
  • reference information information for acquiring updated contents of various information.
  • the type of information to be shared and the set of identification information of the entry are included as reference information.
  • the type of information to be shared is one of the connection destination, the observation result, and the analysis result.
  • step S501 If it is determined in step S501 that the analysis request has not been received, or after the process of step S503 is executed, the attack analysis / sharing system 100 executes the observation process using the connection destination information 131 (step S504). ).
  • the attack analysis / sharing system 100 outputs an execution instruction to the observation program 122 based on the observation cycle.
  • the attack analysis / sharing system 100 acquires the observation result from the observation agent 104 by executing the observation process. The details of the observation process will be described with reference to FIG.
  • the attack analysis / sharing system 100 executes the fluctuation detection process using the observation result (step S505).
  • the attack analysis / sharing system 100 outputs an execution instruction to the fluctuation detection program 123.
  • the attack analysis / sharing system 100 detects fluctuations at the connection destination by executing fluctuation detection processing. The details of the fluctuation detection process will be described with reference to FIG.
  • step S506 the attack analysis / sharing system 100 executes an information sharing process (step S506) in order to share the observation result, and then ends a series of processes.
  • the attack analysis / sharing system 100 outputs an execution instruction to the information sharing program 121.
  • the attack analysis / sharing system 100 can save the observation result of the data format that can be handled by the computer such as the user terminal 101 in the shared server 102. The details of the information sharing process will be described with reference to FIG.
  • the execution instruction includes reference information.
  • reference information For example, the type of information to be shared and the set of identification information of the entry are included as reference information.
  • the type of information to be shared is one of the connection destination, the observation result, and the analysis result.
  • FIG. 6 is a flowchart illustrating an example of analysis processing executed by the attack analysis / sharing system 100 of the first embodiment.
  • the analysis program 120 executed by the CPU 111 receives an execution instruction including a sample, the analysis program 120 starts the analysis process described below.
  • the analysis program 120 executes a dynamic analysis of the sample to be analyzed (step S601). Since the dynamic analysis of the sample is a known technique, detailed description thereof will be omitted, but for example, a method using a sandbox can be considered. The present invention is not limited to the method of dynamic analysis.
  • the analysis program 120 stores the sample in the sample storage area 140 (step S602).
  • the analysis program 120 updates the sample information 130 based on the analysis result (step S603).
  • the analysis program 120 adds an entry to the sample information 130 and sets an identification number in the sample ID 201 of the added entry.
  • the analysis program 120 stores the date and time when the dynamic analysis was performed in the analysis date and time 202 of the added entry, and stores the file path of the sample stored in the sample storage area 140 in the storage location 203. Further, the analysis program 120 adds as many lines as the number of detected connection destinations to the connection destination 204 and the response 205, and stores the connection destination and the response in each line.
  • the analysis program 120 updates the connection destination information 131 based on the analysis result (step S604). Specifically, the following processing is executed.
  • the analysis program 120 selects a target connection destination from the detected connection destinations.
  • the analysis program 120 refers to the connection destination information 131 and determines whether or not there is an entry in which the connection destination 302 is the same as the target connection destination.
  • the analysis program 120 adds a line composed of the observation date and time 307, the response 308, and the variation 309 to the connection result 306 of the searched entry, and stores the analysis result in the added line. At this point, variation 309 is blank. After that, the analysis program 120 proceeds to (S604-4).
  • the analysis program 120 When it is determined that there is no entry whose connection destination 302 is the same as the target connection destination, the analysis program 120 adds an entry to the connection destination information 131 and adds an entry to the connection destination ID 301 of the added entry. Set the identification number.
  • the analysis program 120 stores the information of the target connection destination in the connection destination 302 of the added entry, and stores the identification number of the sample in the sample ID 303.
  • the analysis program 120 stores a predetermined observation interval in the observation interval 304 of the added entry, and stores "ON" in the cutoff flag 305.
  • the initial value of the observation interval can be set arbitrarily. Further, "OFF" may be set as the initial value of the cutoff flag 305. However, in consideration of safety, it is desirable that the blocking flag 305 is "ON".
  • the analysis program 120 adds a line composed of the observation date and time 307, the response 308, and the variation 309 to the connection result 306 of the added entry, and stores the analysis result in the added line.
  • the analysis program 120 also stores a hyphen in the added row variation 309. After that, the analysis program 120 proceeds to (S604-4).
  • step S604-4 The analysis program 120 determines whether or not the processing is completed for all the detected connection destinations. If the processing of all the detected connection destinations is not completed, the analysis program 120 returns to (S604-1) and executes the same processing. When the processing of all the detected connection destinations is completed, the analysis program 120 ends the processing of step S604. The above is the description of the process of step S604.
  • the analysis program 120 updates the analysis result information 132 based on the analysis result (step S605), and then ends the analysis process.
  • the analysis program 120 adds an entry to the analysis result information 132, and stores the same identification number as the sample ID 201 in the sample ID 401 of the added entry.
  • the analysis program 120 stores the date and time when the dynamic analysis was performed in the analysis date and time 402 of the added entry. Further, the analysis program 120 stores the values in the API call log 404 of the added entry, the generation file 405, and the connection destination 406 based on the analysis result.
  • connection destination to be monitored is not limited to the connection destination obtained from the analysis result of the sample.
  • the user may directly register the connection destination to be monitored in the connection destination information 131 by referring to CTI (Cyber Threat Intelligence) or various logs.
  • FIG. 7 is a flowchart illustrating an example of the observation process executed by the attack analysis / sharing system 100 of the first embodiment.
  • observation program 122 executed by the CPU 111 When the observation program 122 executed by the CPU 111 receives the execution instruction, it starts the analysis process described below.
  • the observation program 122 acquires a list of connection destinations from the connection destination information 131 (step S701).
  • a list including an entry composed of a connection destination ID 301, a connection destination 302, an observation interval 304, and the latest observation date and time is acquired.
  • the observation program 122 sets the initial value 0 in the variable i (step S702).
  • the variable i is a variable representing the identification number of the connection destination.
  • the observation program 122 executes the processes from step S703 to step S706 to the connection destination whose identification number matches the variable i.
  • the connection destination whose identification number matches the variable i is described as the target connection destination.
  • the observation program 122 determines whether or not to execute the observation of the target connection destination (step S703).
  • the observation program 122 determines whether or not the time when the value of the observation interval 304 is added to the latest observation date and time has passed the current time. When the calculated time has passed the current time, the observation program 122 determines that the observation of the target connection destination is executed.
  • observation program 122 proceeds to step S707.
  • the observation program 122 transmits the observation instruction of the target connection destination to at least one observation agent 104 (step S704).
  • the present invention is not limited to the number of observation agents 104 that transmit observation instructions.
  • An observation agent 104 for observing may be set for each connection destination.
  • step S705 when the observation program 122 receives the observation result of the target connection destination from the observation agent 104 (step S705), the observation program 122 updates the connection destination information 131 based on the observation result (step S706), and then proceeds to step S707. ..
  • the observation program 122 searches for an entry whose connection destination ID 301 matches the identification number of the target connection destination, and the connection result 306 of the searched entry is composed of the observation date and time 307, the response 308, and the variation 309. Add a line.
  • the observation program 122 stores the observation date and time in the observation date and time 307, and stores the value included in the observation result in the response 308. At this point, variation 309 is blank.
  • step S703 When it is determined in step S703 that the observation of the target connection destination is not executed, or after the processing of step S706 is executed, the observation program 122 sets the value obtained by adding 1 to the variable i in the new variable i ( Step S707).
  • the observation program 122 determines whether or not the processing of all the connection destinations has been completed (step S708).
  • the observation program 122 determines whether or not the variable i is larger than the number of entries included in the list. If the variable i is larger than the number of entries included in the list, the observation program 122 determines that the processing of all the connection destinations has been completed.
  • the observation program 122 returns to step S703 and executes the same processing.
  • the observation program 122 ends the observation processing.
  • FIG. 8 is a flowchart illustrating an example of the fluctuation detection process executed by the attack analysis / sharing system 100 of the first embodiment.
  • the fluctuation detection program 123 acquires a list of connection destinations from the connection destination information 131 (step S801). Here, it is assumed that a list including an entry composed of the connection destination ID 301 is acquired.
  • the fluctuation detection program 123 sets the initial value 0 in the variable i (step S802).
  • the variable i is a variable representing the identification number of the connection destination.
  • the variation detection program 123 executes the processes from step S803 to step S805 for the connection destination whose identification number matches the variable i.
  • the connection destination whose identification number matches the variable i is described as the target connection destination.
  • the fluctuation detection program 123 determines whether or not it is necessary to detect fluctuations in the target connection destination (step S803).
  • the fluctuation detection program 123 searches for an entry in which the connection destination ID 301 matches the identification number of the target connection destination, and determines whether or not there is a line in the connection result 306 of the entry in which the fluctuation 309 is blank. judge. If the above line is present, the variation detection program 123 determines that the variation needs to be detected for the target connection destination.
  • step S806 If it is determined that it is not necessary to detect fluctuations in the target connection destination, the fluctuation detection program 123 proceeds to step S806.
  • the fluctuation detection program 123 determines whether or not there is fluctuation in the target connection destination (step S804).
  • the variation detection program 123 compares the response 308 of the line in which the variation 309 is blank with the response 308 of the line immediately before the time series, and determines whether or not there is a response different from the previous time or a change in the status code. To do. If there is a response different from the previous time, or if there is a change in the status code, the variation detection program 123 determines that there is a variation in the connection destination.
  • the present invention is not limited to the method for detecting fluctuations in the connection destination.
  • robots Any process may be used as long as it uses information that can evaluate a change in the state of the connection destination or a change in response, such as the presence or absence of txt or a reaction to ping.
  • the fluctuation detection program 123 stores the determination result in the connection destination information 131 (step S805).
  • the fluctuation detection program 123 searches for a line in which the fluctuation 309 is blank. When it is determined that there is a change in the connection destination, the change detection program 123 sets "Yes" to the change 309 of the searched line. When it is determined that there is no change in the connection destination, the change detection program 123 sets “none” for the change 309 of the searched line.
  • step S803 When it is determined in step S803 that it is not necessary to detect the fluctuation of the target connection destination, or after the processing of step S805 is executed, the fluctuation detection program 123 adds 1 to the variable i to add 1 to the new variable i. (Step S806).
  • the fluctuation detection program 123 determines whether or not the processing of all the connection destinations has been completed (step S807).
  • the fluctuation detection program 123 determines whether or not the variable i is larger than the number of entries included in the list. If the variable i is larger than the number of entries included in the list, the variation detection program 123 determines that the processing of all the connection destinations has been completed.
  • the fluctuation detection program 123 returns to step S803 and executes the same processing.
  • the fluctuation detection program 123 ends the fluctuation detection processing.
  • FIG. 9 is a flowchart illustrating an example of information sharing processing executed by the attack analysis / sharing system 100 of the first embodiment.
  • the information sharing program 121 determines whether or not to share the information of the connection destination (step S901).
  • the information sharing program 121 refers to the reference information and determines whether or not the type of information to be shared is the connection destination.
  • step S904 If it is determined that the connection destination information is not shared, the information sharing program 121 proceeds to step S904.
  • the information sharing program 121 acquires the connection destination information from the connection destination information 131 based on the reference information (step S902), and the connection destination information acquired in a machine-readable format.
  • the information is stored in the shared server 102 (step S903). After that, the information sharing program 121 proceeds to step S904.
  • STIX Structured Threat Intelligence eExpression
  • OpenIOC Open Indicators of Compromise
  • TAXII Trusted Automated eXchange of Indicator Information
  • step S901 When it is determined in step S901 that the connection destination information is not shared, or after the process of step S903 is executed, the information sharing program 121 determines whether or not to share the observation result information (step S904). ).
  • the information sharing program 121 refers to the reference information and determines whether or not the type of information to be shared is an observation result.
  • step S907 If it is determined not to share the observation result information, the information sharing program 121 proceeds to step S907.
  • the information sharing program 121 acquires the observation result information from the connection destination information 131 based on the reference information (step S905), and obtains the observation result in a machine-readable format.
  • the information is stored in the shared server 102 (step S906). After that, the information sharing program 121 proceeds to step S907.
  • step S904 When it is determined in step S904 that the observation result information is not shared, or after the processing of step S906 is executed, the information sharing program 121 determines whether or not to share the analysis result information (step S907). ).
  • the information sharing program 121 ends the information sharing process.
  • the information sharing program 121 acquires the analysis result information from the analysis result information 132 based on the reference information (step S908), and the analysis result acquired in a machine-readable format.
  • the information is stored in the shared server 102 (step S909). After that, the information sharing program 121 ends the information sharing process.
  • information related to a cyber attack is shared by storing the information in the shared server 102, but the present invention is not limited to this.
  • information sharing may be realized by disclosing the URL for accessing various information to the user terminal 101 or the like.
  • the attack analysis / sharing system 100 actively shares information, but the information may be shared when a request from the user is received.
  • the attack analysis / sharing system 100 executes a display process for displaying various information to the user, in addition to the process described with reference to FIG.
  • FIG. 10 is a flowchart illustrating an example of display processing executed by the attack analysis / sharing system 100 of the first embodiment.
  • the display program 124 executed by the CPU 111 receives the display request from the user terminal 101 or the like, the display program 124 starts the display process described below.
  • the display program 124 receives an input for designating a display target from the user (step S1001).
  • the display program 124 displays a top page for designating a display target on a user terminal 101 or the like.
  • the input may include information for narrowing down the information to be displayed.
  • the connection destination, the sample, the period, and the like are included.
  • the display program 124 determines the display target based on the received input (step S1002).
  • the display program 124 acquires the connection destination information 131 and generates display information for displaying the information about the connection destination (step S1003). Further, the display program 124 transmits the generated display information to the user terminal 101 or the like (step S1004). After that, the display program 124 ends the display process.
  • the display program 124 acquires the connection destination information 131 and generates display information for displaying the information related to the observation result (step S1005). Further, the display program 124 transmits the generated display information to the user terminal 101 or the like (step S1006). After that, the display program 124 ends the display process.
  • the display program 124 acquires the analysis result information 132 and generates display information for displaying the information related to the analysis result (step S1007). Further, the display program 124 transmits the generated display information to the user terminal 101 or the like (step S1008). After that, the display program 124 ends the display process.
  • the execution factor of the dynamic analysis may be displayed according to the user's request. Possible factors for executing the dynamic analysis include detection of fluctuations in the connection destination or reception of a user's analysis request. By displaying the above-mentioned information, it can be expected to improve the efficiency of meaning interpretation of the displayed contents of the user.
  • Example 1 has the following features.
  • the attack analysis / sharing system 100 shares information on the connection destination detected by the dynamic analysis of the sample.
  • Dynamic analysis can realize easier and faster analysis than static analysis. Therefore, it is possible to promptly provide useful information for measures to prevent cyber attacks.
  • the defense system (not shown) that protects against cyber attacks can be registered on the blacklist of the connection destination and quickly and automatically defended based on the information. realizable. This makes it possible to realize automatic and quick defense against various threats.
  • the attack analysis / sharing system 100 shares information on the detection result of the fluctuation of the connection destination based on the observation result of the continuous connection destination.
  • the sample or the connection destination can be detected by detecting the activation of the C2 server with which the sample communicates and the change in the infrastructure used by the attacker as the fluctuation of the connection destination.
  • the behavior can be grasped accurately and accurately.
  • the defense system can take accurate and effective measures.
  • it is possible to take measures before the attack starts.
  • the attack analysis / sharing system 100 of the second embodiment provides information used for blocking communication between the sample and the connection destination.
  • Example 2 will be described with a focus on the differences from Example 1.
  • the configuration of the computer system of Example 2 is the same as that of Example 1.
  • the hardware configuration and software configuration of the attack analysis / sharing system 100 of the second embodiment are the same as those of the first embodiment.
  • the data structure of the information held by the attack analysis / sharing system 100 of the second embodiment is the same as that of the first embodiment.
  • the processing executed by the analysis program 120, the information sharing program 121, the observation program 122, the fluctuation detection program 123, and the display program 124 of the second embodiment is the same as that of the first embodiment.
  • the blocking determination program 125 provides information used for blocking control of communication between the sample and the connection destination.
  • FIG. 11 is a flowchart illustrating an example of the communication cutoff necessity determination process executed by the attack analysis / sharing system 100 of the second embodiment.
  • the cutoff determination program 125 executed by the CPU 111 starts the communication cutoff necessity determination process described below when the execution instruction is received or the execution cycle has elapsed. Further, the communication cutoff necessity determination process may be executed after the observation process or the fluctuation detection process.
  • the cutoff determination program 125 acquires a list of connection destinations from the connection destination information 131 (step S1101). Here, it is assumed that a list including an entry composed of the connection destination ID 301 and the connection result 306 is acquired.
  • the blocking determination program 125 sets the initial value 0 in the variable i (step S1102).
  • the variable i is a variable representing the identification number of the connection destination.
  • the cutoff determination program 125 executes the processes from step S1103 to step S1105 for the connection destination whose identification number matches the variable i.
  • the connection destination whose identification number matches the variable i is described as the target connection destination.
  • the cutoff determination program 125 determines whether or not the target connection destination is not operating in the medium to long term (step S1103).
  • the blocking determination program 125 refers to the response 308 of the target connection destination and determines whether or not the state in which there is no response from the target connection destination continues for one month or more. If there is no response from the target connection destination for one month or longer, the cutoff determination program 125 determines that the target connection destination is not operating in the medium term.
  • the above-mentioned determination method is an example and is not limited to this.
  • the cutoff determination program 125 determines that it is necessary to block the communication to the target connection destination, and updates the connection destination information (step S1105). ), Then the process proceeds to step S1106.
  • the blocking determination program 125 sets the blocking flag 305 of the entry corresponding to the target connection destination to "ON".
  • the cutoff determination program 125 determines whether or not the target connection destination is repeatedly alive or dead (step S1004). ..
  • the blocking determination program 125 refers to the response 308 of the target connection destination, and indicates that the state has changed from a response state to a non-response state, or from a non-response state to a response state. Determine if there is one or more pairs of. When one or more of the above-mentioned pairs exist, the blocking determination program 125 determines that repeated life and death have occurred at the target connection destination.
  • the cutoff determination program 125 determines that it is necessary to cut off the communication to the target connection destination, updates the connection destination information (step S1105), and updates the connection destination information. After that, the process proceeds to step S1106.
  • the blocking determination program 125 sets the blocking flag 305 of the entry corresponding to the target connection destination to "ON".
  • the cutoff determination program 125 determines that it is unnecessary to cut off the communication to the target connection destination, updates the connection destination information (step S1105), and updates the connection destination information. After that, the process proceeds to step S1106.
  • the blocking determination program 125 sets the blocking flag 305 of the entry corresponding to the target connection destination to "OFF".
  • step S1106 the blocking determination program 125 sets a value obtained by adding 1 to the variable i in the new variable i (step S1106).
  • the cutoff determination program 125 determines whether or not the processing of all the connection destinations has been completed (step S1107).
  • the blocking determination program 125 determines whether or not the variable i is larger than the number of entries included in the list. If the variable i is larger than the number of entries included in the list, the blocking determination program 125 determines that the processing of all connection destinations has been completed.
  • the blocking determination program 125 returns to step S1103 and executes the same processing.
  • the blocking determination program 125 ends the communication blocking necessity determination processing.
  • the method for determining the necessity of blocking communication to the target connection destination described in FIG. 11 is an example and is not limited to this.
  • the cutoff determination program 125 may determine that it is not necessary to block the communication to the target connection destination.
  • the blocking determination program 125 may determine the necessity of blocking communication to the target connection destination by using not only the observation result but also other information. For example, the blocking determination program 125 confirms the DNS (Domain Name System) information, and when the A / AAAA record indicating that the domain has expired is not assigned, the blocking determination program 125 sends the target connection destination. Judge that it is not necessary to block communication.
  • DNS Domain Name System
  • the information sharing program 121 saves the processing result of the blocking determination program 125 in the sharing server 102 as a part of the observation result.
  • connection destination registered in the blacklist continues to be registered in the blacklist as it is. Therefore, there is a problem that the data capacity of the blacklist becomes large. In order to deal with such a problem, it is necessary for the defense system to determine the necessity of registering the connection destination in the blacklist and suppress the increase in the data capacity of the blacklist.
  • the attack analysis / sharing system 100 determines the necessity of blocking communication to the connection destination based on the observation result of the continuous connection destination, and shares the determination result. This allows the defense system to manage the blacklist based on the determination result. As a result, an increase in the data capacity of the blacklist can be suppressed, and the cost required for managing the blacklist can be suppressed.
  • the attack analysis / sharing system 100 of Example 3 dynamically changes the observation cycle of the connection destination based on the nature of the connection destination and the observation result.
  • the third embodiment will be described with a focus on the differences from the first embodiment.
  • the configuration of the computer system of Example 3 is the same as that of Example 1.
  • the hardware configuration and software configuration of the attack analysis / sharing system 100 of the third embodiment are the same as those of the first embodiment.
  • the data structure of the information held by the attack analysis / sharing system 100 of the third embodiment is the same as that of the first embodiment.
  • the processing executed by the analysis program 120, the information sharing program 121, the observation program 122, the fluctuation detection program 123, and the display program 124 of the third embodiment is the same as that of the first embodiment.
  • FIG. 12 is a flowchart illustrating an example of the observation cycle management process executed by the attack analysis / sharing system 100 of the third embodiment.
  • the observation cycle management program 126 executed by the CPU 111 starts the communication cutoff necessity determination process described below when the execution instruction is received or the execution cycle has elapsed. Further, the observation cycle management process may be executed after the observation process or the fluctuation detection process.
  • the observation cycle management program 126 acquires a list of connection destinations from the connection destination information 131 (step S1201). Here, it is assumed that a list including an entry composed of the connection destination ID 301, the observation interval 304, and the connection result 306 is acquired.
  • the observation cycle management program 126 sets the initial value 0 in the variable i (step S1202).
  • the variable i is a variable representing the identification number of the connection destination.
  • the observation cycle management program 126 executes the processes from step S1203 to step S1205 for the connection destination whose identification number matches the variable i.
  • the connection destination whose identification number matches the variable i is described as the target connection destination.
  • the observation cycle management program 126 determines the observation cycle change policy using the characteristics of the connection destination and the observation result (step S1203). For example, the following processing is executed.
  • the observation cycle management program 126 refers to the response 308 of the target connection destination and determines whether or not the state in which there is no response from the target connection destination continues for a long period of time (for example, three months or more). .. If there is no response from the target connection destination for a long period of time, it is not necessary to observe the connection destination frequently. Therefore, the observation cycle management program 126 determines that the observation cycle is lengthened.
  • the observation cycle management program 126 determines whether or not the connection destination is associated with the domain recently acquired by the attacker. If the above conditions are met, there is a high possibility that the attacker will move to the next attack action such as enabling the C2 server and distributing the content. Therefore, the observation cycle management program 126 determines that the observation cycle is shortened.
  • the observation cycle management program 126 determines that the observation cycle is shortened when a change in the connection destination is detected. This is also because there is a high possibility of moving to the next attack action.
  • observation cycle management program 126 determines that the observation cycle is not changed.
  • the observation cycle management program 126 calculates the observation cycle of the target connection destination based on the determined change policy (step S1204). Specifically, the following processing is executed.
  • the observation cycle management program 126 acquires the observation cycle of the current target connection destination from the list of connection destinations.
  • the observation cycle management program 126 calculates an observation cycle larger than the current observation cycle. For example, the observation cycle management program 126 adds a fixed value to the current observation cycle or multiplies the current observation cycle by a coefficient greater than 1. The above-mentioned process is an example and is not limited to this.
  • the observation cycle management program 126 calculates an observation cycle smaller than the current observation cycle. For example, the observation cycle management program 126 subtracts a fixed value from the current observation cycle or multiplies the current observation cycle by a coefficient less than 1. The above-mentioned process is an example and is not limited to this.
  • the observation cycle management program 126 updates the connection destination information (step S1205).
  • the observation cycle management program 126 stores the observation cycle of the target connection destination calculated in the observation interval 304 of the entry corresponding to the target connection destination.
  • observation cycle management program 126 sets the value obtained by adding 1 to the variable i in the new variable i (step S1206).
  • observation cycle management program 126 determines whether or not the processing of all the connection destinations has been completed (step S1207).
  • the observation cycle management program 126 determines whether or not the variable i is larger than the number of entries included in the list. If the variable i is larger than the number of entries included in the list, the observation cycle management program 126 determines that the processing of all the connection destinations has been completed.
  • observation cycle management program 126 returns to step S1203 and executes the same processing.
  • the observation cycle management program 126 ends the observation cycle management process.
  • the attack analysis / sharing system 100 changes the observation cycle of the connection destination based on the nature of the connection destination and the observation result. By lengthening the observation cycle of the connection destination that does not fluctuate over the long term, the risk of an attacker noticing the observation of the connection destination can be reduced, and the resources required for observation can be reduced. In addition, the accuracy of attack detection can be improved by shortening the observation cycle of the connection destination where the fluctuation of the connection destination is detected.
  • Example 4 executes dynamic analysis of the sample again when a change in the connection destination is detected.
  • Example 4 will be described with a focus on the differences from Example 1.
  • the configuration of the computer system of Example 4 is the same as that of Example 1.
  • the hardware configuration and software configuration of the attack analysis / sharing system 100 of the fourth embodiment are the same as those of the first embodiment.
  • the data structure of the information held by the attack analysis / sharing system 100 of the fourth embodiment is the same as that of the first embodiment.
  • the processing executed by the information sharing program 121, the observation program 122, and the display program 124 of the fourth embodiment is the same as that of the first embodiment.
  • the fluctuation detection program 123 when the fluctuation detection program 123 detects the fluctuation of the connection destination, the fluctuation detection program 123 transmits the execution instruction of the dynamic analysis including the information of the connection destination to the analysis program 120.
  • the analysis program 120 executes a dynamic analysis of the sample when an opportunity other than the reception of the analysis request, specifically, a fluctuation of the connection destination is detected.
  • the analysis process executed when the analysis request is received is the same as that in the first embodiment.
  • FIG. 13 is a flowchart illustrating an example of analysis processing executed by the attack analysis / sharing system 100 of the fourth embodiment.
  • the analysis program 120 executed by the CPU 111 receives the execution instruction of the analysis process from the fluctuation detection program 123, the analysis program 120 starts the analysis process described below.
  • the analysis program 120 identifies the sample to be analyzed (step S1301).
  • the analysis program 120 refers to the connection destination information 131 and searches for an entry in which the identification number included in the execution instruction of the analysis process is stored in the connection destination ID 301.
  • the analysis program 120 acquires the identification number of the sample from the sample ID 303 of the searched entry and registers it in the sample list.
  • the analysis program 120 selects a target sample from the specified samples (step S1302).
  • the analysis program 120 selects an identification number of one sample from the sample list. At this time, the analysis program 120 deletes the identification number of the sample selected from the sample list.
  • the analysis program 120 refers to the sample information 130 and searches for an entry in which the identification number of the target sample is stored in the sample ID 201.
  • the analysis program 120 acquires a target sample from the sample storage area 140 based on the information of the storage location 203 of the searched entry.
  • step S1303 the analysis program 120 executes a dynamic analysis of the target sample.
  • the process of step S1303 is the same as the process of step S601.
  • step S1304 the analysis program 120 updates the analysis result information 132 based on the analysis result (step S1304).
  • the process of step S1304 is the same as the process of step S605.
  • the analysis program 120 determines whether or not a new connection destination has been detected (step S1305).
  • the analysis program 120 searches for an entry in which the identification number of the target sample is stored in the sample ID 201.
  • the analysis program 120 determines whether or not a new connection destination has been detected by comparing the connection destination 406 of the entry added in step S1304 with the connection destination 204 of the searched entry.
  • the analysis program 120 may refer to the connection destination information 131 and determine whether or not an entry corresponding to the connection destination included in the analysis result exists.
  • step S1308 If it is determined that the new connection destination has not been detected, the analysis program 120 proceeds to step S1308.
  • the analysis program 120 updates the sample information 130 based on the analysis result (step S1306).
  • the analysis program 120 refers to the sample information 130 and searches for an entry in which the identification number of the target sample is stored in the sample ID 201.
  • the analysis program 120 adds a line composed of the connection destination 204 and the response 205 to the searched entry, and stores the newly detected connection destination and the response in the line added based on the analysis result.
  • the analysis program 120 updates the connection destination information 131 based on the analysis result (step S1307), and then proceeds to step S1308. Specifically, the following processing is executed.
  • the analysis program 120 adds an entry to the connection destination information 131, and sets an identification number in the connection destination ID 301 of the added entry.
  • the analysis program 120 stores the information of the new connection destination in the connection destination 302 of the added entry, and stores the identification number of the target sample in the sample ID 303.
  • the analysis program 120 stores a predetermined observation interval in the observation interval 304 of the added entry, and stores "ON" in the cutoff flag 305.
  • the analysis program 120 adds a line composed of the observation date and time 307, the response 308, and the variation 309 to the connection result 306 of the added entry, and stores the analysis result in the added line.
  • the analysis program 120 also stores a hyphen in the added row variation 309.
  • step S1305 If it is determined in step S1305 that no new connection destination has been detected, or after the process of step S1307 is executed, the analysis program 120 determines whether or not the process is completed for all the identified samples. Determine (step S1308).
  • the analysis program 120 returns to step S1302 and executes the same processing.
  • the analysis program 120 ends the analysis processing.
  • analysis program 120 may execute the same process when receiving a re-execution request for the analysis request from the user.
  • the information sharing program 121 saves a new analysis result in the sharing server 102.
  • the attack analysis / sharing system 100 continuously observes the connection destination and executes a dynamic analysis of the sample when the fluctuation of the connection destination is detected. This makes it possible to accurately and accurately grasp the behavior of the sample.
  • the attack analysis / sharing system 100 of the fifth embodiment generates various reports and outputs them to the user.
  • Example 5 will be described with a focus on the differences from Example 1.
  • the configuration of the computer system of Example 5 is the same as that of Example 1.
  • the hardware configuration and software configuration of the attack analysis / sharing system 100 of the fifth embodiment are the same as those of the first embodiment.
  • the data structure of the information held by the attack analysis / sharing system 100 of the fifth embodiment is the same as that of the first embodiment.
  • the processing executed by the analysis program 120, the information sharing program 121, the observation program 122, the fluctuation detection program 123, and the display program 124 of the fifth embodiment is the same as that of the first embodiment.
  • Example 5 the report generation program 127 generates a report.
  • FIG. 14 is a flowchart illustrating an example of a report generation process executed by the attack analysis / sharing system 100 of the fifth embodiment.
  • the report generation program 127 executed by the CPU 111 starts the report generation process described below when the execution cycle elapses or when various processes are completed. Here, the process of generating a report for each sample will be described.
  • the report generation program 127 selects a target sample for which a report is to be generated (step S1401).
  • the report generation program 127 acquires the analysis result of the target sample from the analysis result information 132 (step S1402).
  • the report generation program 127 acquires information on the connection destination of the target sample from the sample information 130 (step S1403).
  • the report generation program 127 generates a report on the target sample based on the analysis result of the target sample and the information on the connection destination of the target sample (step S1404).
  • the report generation program 127 transmits the generated report to an external device such as the user terminal 101 (step S1405).
  • the report generation program 127 determines whether or not the processing has been completed for all the samples (step S1406).
  • the report generation program 127 returns to step S1401 and executes the same processing.
  • the report generation program 127 ends the report generation processing.
  • any report may be used as long as it can be generated by using at least one of the sample information 130, the connection destination information 131, and the analysis result information 132.
  • a report on the state transition of a specific connection destination, a report on a sample trying to communicate with a specific connection destination, and the like can be considered.
  • the attack analysis / sharing system 100 automatically generates a report based on the observation result, the analysis result, and the like. This can reduce the cost of generating the report. In addition, the user can reduce the cost required for grasping the behavior of the sample or the connection destination by referring to the report.
  • the present invention is not limited to the above-mentioned examples, and includes various modifications. Further, for example, the above-described embodiment describes the configuration in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to the one including all the described configurations. In addition, a part of the configuration of each embodiment can be added, deleted, or replaced with another configuration.
  • each of the above configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit.
  • the present invention can also be realized by a program code of software that realizes the functions of the examples.
  • a storage medium in which the program code is recorded is provided to the computer, and the processor included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiment, and the program code itself and the storage medium storing the program code itself constitute the present invention.
  • Examples of the storage medium for supplying such a program code include a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, an SSD (Solid State Drive), an optical disk, a magneto-optical disk, a CD-R, and a magnetic tape.
  • Non-volatile memory cards, ROMs, etc. are used.
  • program code that realizes the functions described in this embodiment can be implemented in a wide range of programs or script languages such as assembler, C / C ++, perl, Shell, PHP, Python, and Java (registered trademark).
  • the program code is stored in a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or a CD-R.
  • the processor provided in the computer may read and execute the program code stored in the storage means or the storage medium.
  • control lines and information lines indicate those considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. All configurations may be interconnected.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

計算機システムは、不正プログラムの検体の動的解析を実行し、不正プログラムが通信する接続先を含む解析結果を出力する解析部と、接続先に対する周期的な観測の結果に基づいて、接続先の変動を検出し、検出の結果を出力する変動検出部と、複数の外部計算機が共有できる形式で、解析部及び変動検出部から出力された情報を記憶する情報共有部と、を備える。

Description

計算機システム及び情報の共有方法 参照による取り込み
 本出願は、2019年8月7日に出願された日本特許出願第2019-145384号の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、サイバー攻撃、特に、標的型攻撃に対する対策に必要な情報を共有するための技術に関する。
 サイバー攻撃及び攻撃に用いられる不正プログラムの高度化及び種別の増加により、企業及び国家にとって重大な脅威となっている。このような状況から不正プログラムを解析し、攻撃の予兆を捕らえ、攻撃に先んじて対策を打つことが重要となってきている。
 サイバー攻撃の一つである標的型攻撃に用いられるマルウェア(不正プログラム)は、C2サーバ等の攻撃者が有するサーバと通信する。例えば、遠隔操作を目的としたマルウェア(例えば、Remote Access Trojan/Remote Access Tool/Remote Administration Tool)が攻撃者のサーバ又は端末とセッションを確立するための通信及び窃取した情報の攻撃者のサーバへのアップロードを行うための通信等が挙げられる。
 上記のような特性から、マルウェアを用いた攻撃に対しては、マルウェアが通信を行う接続先を迅速に特定し、接続先への通信を遮断することが、攻撃を抑制する有効な手段である。これに対して、特許文献1及び特許文献2に記載の技術が知られている。
 特許文献1には、「実行部と、記録部と、検知部と、特定部とを備える。実行部は、端末への接続に用いられる接続情報が予め設定された環境の下、不正プログラムを実行する。記録部は、不正プログラムの実行による通信の通信先を記録する。検知部は、端末への通信であって、接続情報を用いて行われる通信を検知する。特定部は、記録部によって記録された通信先の中から、検知部で検知された通信の接続情報が設定された環境の下で実行された不正プログラムの通信先を特定する。」ことが記載されている。
 特許文献2には、「ネットワークを介して外部サーバと通信を行う通信機能を備え、当該ネットワークとの接続が遮断されている接続先情報抽出装置において、ソフトウェアを実行するソフトウェア実行手段と、前記ソフトウェア実行手段により実行される前記ソフトウェアによる外部サーバへの接続動作を観測し、当該接続動作に関する通信ログを取得する通信観測手段と、前記通信観測手段により取得された通信ログから、前記ソフトウェアの接続先情報を抽出し、当該接続先情報を接続先情報格納手段に格納する接続先情報抽出手段とを備える。」ことが記載されている。
特開2014-85772号公報 特開2014-179025号公報
 近年の標的型攻撃では、攻撃を隠蔽し、また、解析を回避するために、マルウェア及びC2サーバ間の通信の頻度が少なくなり、また、通信時間も短くなっている。そのため、迅速な接続先の特定が困難な場合がある。また、特許文献1及び特許文献2に記載の技術では、接続先の状態変化等に合わせた対策をとることができない。例えば、攻撃者によって接続先であるC2サーバ又はドメインが放棄された場合、接続先への通信の遮断は不用になる。
 したがって、正確かつ効率的な対策に必要な情報を取得する必要がある。
 従来は、企業等の組織が、検体の検出機構及び動的解析機構を用意し、攻撃者からマルウェアが送信されたことを検出し、当該マルウェアの解析を行って、対策をとっていた。しかし、サイバー攻撃は組織化しているため、個人、一企業、及び一国家ではサイバー攻撃に対する防御が困難になってきている。また、組織が検出できる検体にも限りがあるため、様々な脅威に対する有効な対策をとることが困難である。
 したがって、複数の組織が協力して様々な脅威に対する防御を実現するための情報を共有するシステムが求められている。
 本発明は、複数の組織が正確かつ効率的な対策をとるために必要な情報を共有するシステム及び方法を提供する。
 本発明の代表的な一例は、以下の通りである。すなわち、少なくとも一つの計算機を備える計算機システムであって、前記少なくとも一つの計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信装置を有し、前記計算機システムは、サイバー攻撃に関わる不正プログラムの検体の動的解析を実行し、少なくとも前記不正プログラムが通信する接続先を含む解析結果を出力する解析部と、前記接続先に対する周期的な観測の結果に基づいて、前記接続先の変動を検出し、前記検出の結果を出力する変動検出部と、複数の外部計算機が共有できる形式で、前記解析部及び前記変動検出部から出力された情報を記憶する情報共有部と、を備える。
 本発明によれば、複数の組織が正確かつ効率的な対策を実現するための情報を共有できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の計算機システムの構成の一例を示す図である。 実施例1の検体情報のデータ構造の一例を示す図である。 実施例1の接続先情報のデータ構造の一例を示す図である。 実施例1の解析結果情報のデータ構造の一例を示す図である。 実施例1の攻撃解析/共有システムが実行する処理の概要を説明するフローチャートである。 実施例1の攻撃解析/共有システムが実行する解析処理の一例を説明するフローチャートである。 実施例1の攻撃解析/共有システムが実行する観測処理の一例を説明するフローチャートである。 実施例1の攻撃解析/共有システムが実行する変動検出処理の一例を説明するフローチャートである。 実施例1の攻撃解析/共有システムが実行する情報共有処理の一例を説明するフローチャートである。 実施例1の攻撃解析/共有システムが実行する表示処理の一例を説明するフローチャートである。 実施例2の攻撃解析/共有システムが実行する通信遮断要否判定処理の一例を説明するフローチャートである。 実施例3の攻撃解析/共有システムが実行する観測周期管理処理の一例を説明するフローチャートである。 実施例4の攻撃解析/共有システムが実行する解析処理の一例を説明するフローチャートである。 実施例5の攻撃解析/共有システムが実行するレポート生成処理の一例を説明するフローチャートである。
 以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
 以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
 本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
 図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
 図1は、実施例1の計算機システムの構成の一例を示す図である。
 計算機システムは、攻撃解析/共有システム100、複数のユーザ端末101、共有サーバ102、複数の外部ユーザ端末103、及び複数の観測エージェント104から構成される。図1では、ユーザ端末101はk台であり、外部ユーザ端末103であり、観測エージェント104はn台である。なお、本発明は、計算機システムに含まれるユーザ端末101、共有サーバ102、外部ユーザ端末103、及び観測エージェント104の数に限定されない。
 攻撃解析/共有システム100は、ネットワーク105-1を介して複数のユーザ端末101と接続する。また、攻撃解析/共有システム100は、ネットワーク105-2及びインターネット106を介して、共有サーバ102、複数の外部ユーザ端末103、及び複数の観測エージェント104と接続する。
 ネットワーク105-1は、例えば、LAN(Local Area Network)であり、また、ネットワーク105-2は、例えば、WAN(Wide Area Network)である。なお、本発明は、ネットワーク105の種別に限定されない。また、ネットワーク105の接続方式は有線及び無線のいずれでもよい。
 ユーザ端末101及び外部ユーザ端末103は、ユーザが操作する端末であり、例えば、パーソナルコンピュータ、スマートフォン、及びタブレット等である。ユーザ端末101及び外部ユーザ端末103は、図示しない、CPU、メモリ、記憶装置、及びネットワークインタフェースを有する。ユーザ端末101は、攻撃解析/共有システム100が存在する内部ネットワークに接続されるユーザ端末であり、外部ユーザ端末103は、内部ネットワークとは異なる外部ネットワークに接続されるユーザ端末である。
 共有サーバ102は、攻撃解析/共有システム100によって解析された情報等を共有可能な形式で保存する計算機である。共有サーバ102は、図示しない、CPU、メモリ、記憶装置、及びネットワークインタフェースを有する。
 観測エージェント104は、攻撃解析/共有システム100によって指定された接続先の監視を行う計算機である。観測エージェント104は、図示しない、CPU、メモリ、記憶装置、及びネットワークインタフェースを有する。
 なお、攻撃解析/共有システム100が、観測エージェント104の機能を有してもよい。
 攻撃解析/共有システム100は、サイバー攻撃に対する対策をとるために有用な情報を提供するシステムである。攻撃解析/共有システム100は、少なくとも一つの計算機から構成される。実施例1では、一つの計算機を用いて攻撃解析/共有システム100を実現するものとする。攻撃解析/共有システム100は、ハードウェアとして、CPU(Central Processing Unit)111、ネットワークインタフェース112、メモリ113、及び記憶装置114を有する。各ハードウェアは、バス又はケーブル等の情報伝達媒体である通信路115を介して互いに接続される。
 なお、攻撃解析/共有システム100は、キーボード、マウス、タッチパネル、ディスプレイ、及びプリンタ等、攻撃解析/共有システム100に対する入出力を行うための入出力装置116と接続されてもよい。
 CPU111は、メモリ113に格納されるプログラムを実行する。CPU111がプログラムにしたがって処理を実行することによって、特定の機能を実現するモジュール(機能部)として動作する。以下の説明では、プログラムを主語に処理を説明する場合、CPUが当該プログラムを実行していることを表す。
 ネットワークインタフェース112は外部装置と通信するためのインタフェースである。
 メモリ113は、CPU111が実行するプログラム及びプログラムが使用する情報を格納する。また、メモリ113は、プログラムが一時的に使用するワークエリアとしても用いられる。
 記憶装置114は、大量のデータを永続的に格納する。記憶装置114は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)である。
 ここで、実施例1のメモリ113に格納されるプログラム及び記憶装置114に格納される情報について説明する。
 メモリ113は、解析プログラム120、情報共有プログラム121、観測プログラム122、変動検出プログラム123、表示プログラム124、遮断判定プログラム125、観測周期管理プログラム126、及びレポート生成プログラム127を格納する。
 解析プログラム120は、マルウェア検体を解析し、マルウェア検体の挙動及び特性等に関する情報を含む解析結果を出力するために実行されるプログラムである。情報共有プログラム121は、ユーザ端末101及び外部ユーザ端末103が利用可能な形式で、情報を記憶するために実行されるプログラムである。観測プログラム122は、観測エージェント104を制御するために実行されるプログラムである。変動検出プログラム123は、マルウェア検体が通信を行う接続先の変動を検出するために実行されるプログラムである。表示プログラム124は、マルウェア検体の解析結果等、各種情報を表示するために実行されるプログラムである。
 遮断判定プログラム125は、接続先への通信の遮断の要否を判定するために実行されるプログラムである。観測周期管理プログラム126は、観測エージェント104の接続先の観測周期を管理するために実行されるプログラムである。レポート生成プログラム127は、マルウェア検体の解析及び接続先の観測等に関する情報をまとめたレポートを生成するために実行されるプログラムである。
 遮断判定プログラム125、観測周期管理プログラム126、及びレポート生成プログラム127の詳細については実施例1以降の実施例にて説明する。
 なお、メモリ113には、図示しない、攻撃解析/共有システム100全体を制御するプログラムが格納されてもよい。また、解析プログラム120等が攻撃解析/共有システム100全体を制御する機能を有してもよい。なお、計算機が有する各プログラムについては、複数のプログラムを一つのプログラムにまとめてもよいし、一つのプログラムを機能毎に複数のプログラムに分けてもよい。
 記憶装置114は、検体情報130、接続先情報131、及び解析結果情報132を格納する。また、記憶装置114は、検体保存領域140を含む。
 検体保存領域140は、マルウェア検体を保存するための記憶領域である。
 検体情報130はマルウェア検体を管理するための情報である。解析結果情報132はマルウェア検体の解析結果を管理するための情報である。検体情報130には初回の解析結果が格納され、解析結果情報132には2回目以降の解析結果が格納される。検体情報130のデータ構造は図2を用いて説明し、解析結果情報132のデータ構造は図4を用いて説明する。
 接続先情報131は、接続先を管理するための情報である。接続先情報131のデータ構造は図3を用いて説明する。
 なお、メモリ113に格納されるプログラムは、記憶装置114又はネットワークインタフェース112を介して接続される外部装置に格納されてもよい。この場合、CPU111が、記憶装置114又は外部装置からプログラムを取得し、メモリ113にロードする。
 なお、複数の計算機を用いて攻撃解析/共有システム100を実現する場合、各計算機に異なるプログラムを格納してもよい。なお、各プログラムによって実現される機能は、専用のハードウェアを用いて実現してもよい。
 以下の説明では、マルウェア検体を、単に、検体と記載する。
 図2は、実施例1の検体情報130のデータ構造の一例を示す図である。
 検体情報130は、検体ID201、解析日時202、保存場所203、接続先204、及び応答205から構成されるエントリを格納する。一つの検体に対して一つのエントリが存在する。なお、エントリの構造は一例であって、これに限定されない。前述のフィールドのうちいずれかのフィールドを含まなくてもよいし、他のフィールドを含んでもよい。
 検体ID201は、解析対象の検体を一意に識別するための識別情報を格納するフィールドである。実施例1の検体ID201には数字が識別情報として格納される。また、検体ID201は、検体情報130のエントリを識別するための識別情報としても用いられる。
 解析日時202は、検体の解析が行われた日時を格納するフィールドである。例えば、検体ID201が「0」のエントリは、2019年6月6日の14時57分12秒に、検体の解析が行われたことを表す。本発明は、解析日時202に格納される時刻のデータ形式に限定されない。Unixtime等、時刻が判別できるデータ形式であれば、どのようなデータ形式を用いてもよい。
 保存場所203は、検体保存領域140における検体の保存場所を示す情報を格納するフィールドである。実施例1の保存場所203にはファイルパスが格納される。例えば、検体ID201が「0」のエントリに対応する検体は「/mal/a.exe」に格納されていることを示す。
 接続先204は、検体が通信を試みた接続先に関する情報を格納するフィールドである。接続先204にはURL及びアドレス等が格納される。例えば、検体ID201が「0」のエントリに対応する検体は、「search.example.com/」及び「192.0.2.1/c2」への通信を試みたことを表す。
 応答205は、接続先からの応答に関する情報を格納するフィールドである。例えば、接続先からHTTPステータスコード200(OK)を含む応答が検出された場合、応答205には「200」が格納される。なお、接続先からの応答がなかった場合、すなわち、接続が失敗した場合、応答205にはハイフンが格納される。
 図3は、実施例1の接続先情報131のデータ構造の一例を示す図である。
 接続先情報131は、接続先ID301、接続先302、検体ID303、観測間隔304、遮断フラグ305、接続結果306から構成されるエントリを格納する。一つの接続先に対して一つのエントリが存在する。なお、エントリの構造は一例であって、これに限定されない。前述のフィールドのうちいずれかのフィールドを含まなくてもよいし、他のフィールドを含んでもよい。例えば、接続先の観測を行う観測エージェント104の識別情報を格納するフィールドが含まれてもよい。
 接続先ID301は、接続先を一意に識別するための識別情報を格納するフィールドである。実施例1の接続先ID301には数字が識別情報として格納される。また、接続先ID301は、接続先情報131のエントリを識別するための識別情報としても用いられる。
 接続先302は、監視対象の接続先に関する情報を格納するフィールドである。接続先302にはURL及びアドレス等が格納される。
 検体ID303は、接続先302に格納される接続先への通信を試みた検体の識別情報を格納するフィールドである。検体ID303には、検体情報130の検体ID201に格納される値と同一の値が格納される。検体情報130及び接続先情報131は、検体IDを介して紐付けられる。
 観測間隔304は、接続先の観測周期を格納するフィールドである。観測プログラム122は、観測間隔304に格納される周期に基づいて、観測エージェント104に接続先の観測を指示する。例えば、接続先ID301が「0」であるエントリに対応する接続先に対しては4時間周期で観測が行われる。
 遮断フラグ305は、接続先への通信の遮断制御に用いる情報を格納するフィールドである。遮断フラグ305には「ON」及び「OFF」のいずれかが格納される。「ON」は接続先への通信の遮断が推奨されることを表す値であり、「OFF」は接続先への通信の遮断が推奨されないことを表す値である。
 接続結果306は、接続先及び検体の間の通信に関する情報を格納するフィールド群である。接続結果306には、観測日時307、応答308、及び変動309から構成される行が一つ以上含まれる。一つの観測結果に対して一つの行が存在する。
 観測日時307は、接続先の観測が行われた日時を格納するフィールドである。例えば、接続先ID301が「0」のエントリの一番目の行は、2019年6月6日の14時57分14秒に、観測が行われたことを表す。本発明は、観測日時307に格納される時刻のデータ形式に限定されない。Unixtime等、時刻が判別できるデータ形式であれば、どのようなデータ形式を用いてもよい。
 応答308は、接続先からの応答に関する情報を格納するフィールドである。例えば、観測エージェント104によって、接続先からHTTPステータスコード200(OK)を含む応答が検出された場合、応答308には「200」が格納される。なお、接続先からの応答が観測されなかった場合、すなわち、接続が失敗した場合、応答308にはハイフンが格納される。
 変動309は、接続先の変動の有無の判定結果を格納するフィールドである。接続先の変動とは、接続先そのものの状態の変化及び接続先からの応答の変化を含む概念である。本実施例では、前回の観測結果と今回の観測結果との比較結果に基づいて、接続先の変動の有無が判定される。
 変動309には、「あり」、「なし」、及びハイフンのいずれかが格納される。「あり」は接続先の変動があることを表し、「なし」は接続先の変動がないことを表す。ハイフンは接続先の変動が判定されていないことを示す。具体的には、初回の観測の場合、比較する観測結果が存在しないため、初回の観測結果に対応する行の変動309にはハイフンが格納される。
 図4は、実施例1の解析結果情報132のデータ構造の一例を示す図である。
 解析結果情報132は、検体ID401、解析日時402、及び解析結果403から構成されるエントリを格納する。一つの検体の解析結果に対して一つのエントリが存在する。なお、エントリの構造は一例であって、これに限定されない。前述のフィールドのうちいずれかのフィールドを含まなくてもよいし、他のフィールドを含んでもよい。
 検体ID401は、解析が行われた検体の識別情報を格納するフィールドである。検体ID401には、検体ID401には、検体情報130の検体ID201に格納される値と同一の値が格納される。検体情報130及び解析結果情報132は、検体IDを介して紐付けられる。
 解析日時402は、検体の解析が行われた日時を格納するフィールドである。例えば、一番目のエントリは、2019年6月6日の15時33分42秒に、検体の解析が行われたことを表す。本発明は、解析日時402に格納される時刻のデータ形式に限定されない。Unixtime等、時刻が判別できるデータ形式であれば、どのようなデータ形式を用いてもよい。
 解析結果403は、検体の解析結果を格納するフィールド群である。解析結果403は、APIコールログ404、生成ファイル405、及び接続先406を含む。
 APIコールログ404は、検体が発行したAPI呼出に関する情報を格納するフィールドである。例えば、一番目のエントリのAPIコールログ404には、検体がレジストリの値を読み取るために呼び出したAPI、「RegOpenKey()」が格納される。なお、解析結果403は、APIコールログ404の代わりに、システムコール及び機械語等、検体が呼び出した命令を識別できる情報を格納するフィールドを含んでもよい。
 生成ファイル405は、検体が生成したファイルに関する情報を格納するフィールドである。実施例1の生成ファイル405には、生成されたファイルの名称が格納される。例えば、二番目のエントリに対応する検体は、名称が「c.scr」であるファイルを生成したことを表す。なお、ファイルが生成されなかった場合、生成ファイル405にはハイフンが格納される。
 接続先406は、検体が通信を試みた接続先に関する情報を格納するフィールドである。接続先406にはURL及びアドレス等が格納される。例えば、一番目のエントリに対応する検体は、「search.example.com/」及び「192.0.2.1/c2」への通信を試みたことを表す。
 次に、攻撃解析/共有システム100が実行する処理について説明する。
 図5は、実施例1の攻撃解析/共有システム100が実行する処理の概要を説明するフローチャートである。
 攻撃解析/共有システム100は、周期的に、以下で説明する処理を実行する。
 攻撃解析/共有システム100は、ユーザ端末101又は外部ユーザ端末103から解析依頼を受信したか否かを判定する(ステップS501)。攻撃解析/共有システム100の解析プログラム120は、処理の開始前の解析依頼を受信した場合、当該解析依頼をメモリ113又は記憶装置114に一時的に蓄積する。なお、解析依頼には検体が含まれる。
 解析依頼を受信していないと判定された場合、攻撃解析/共有システム100はステップS504に進む。
 解析依頼を受信したと判定された場合、攻撃解析/共有システム100は、解析処理を実行する(ステップS502)。
 具体的には、攻撃解析/共有システム100は、検体を含む処理の実行指示を解析プログラム120に出力する。攻撃解析/共有システム100は、解析処理を実行することによって、マルウェアが通信を試みた接続先を含む解析結果を取得する。解析処理の詳細は図6を用いて説明する。
 次に、攻撃解析/共有システム100は、解析結果を共有するために、情報共有処理を実行し(ステップS503)、その後、ステップS504に進む。
 具体的には、攻撃解析/共有システム100は、実行指示を情報共有プログラム121に出力する。攻撃解析/共有システム100は、情報共有処理を実行することによって、ユーザ端末101等の計算機が扱うことができるデータ形式の解析結果を共有サーバ102に保存できる。情報共有処理の詳細は図9を用いて説明する。
 なお、実行指示には、各種情報の更新内容を取得するための情報(参照情報)が含まれる。例えば、共有対象の情報の種別及びエントリの識別情報の組が参照情報として含まれる。共有対象の情報の種別は、接続先、観測結果、及び解析結果のいずれかである。
 ステップS501において解析依頼を受信していないと判定された場合、又はステップS503の処理が実行された後、攻撃解析/共有システム100は、接続先情報131を用いて観測処理を実行する(ステップS504)。
 具体的には、攻撃解析/共有システム100は、観測周期に基づいて、実行指示を観測プログラム122に出力する。攻撃解析/共有システム100は、観測処理を実行することによって、観測エージェント104から観測結果を取得する。観測処理の詳細は図7を用いて説明する。
 次に、攻撃解析/共有システム100は、観測結果を用いて変動検出処理を実行する(ステップS505)。
 具体的には、攻撃解析/共有システム100は、実行指示を変動検出プログラム123に出力する。攻撃解析/共有システム100は、変動検出処理を実行することによって接続先の変動を検出する。変動検出処理の詳細は図8を用いて説明する。
 次に、攻撃解析/共有システム100は、観測結果を共有するために、情報共有処理を実行し(ステップS506)、その後、一連の処理を終了する。
 具体的には、攻撃解析/共有システム100は、実行指示を情報共有プログラム121に出力する。攻撃解析/共有システム100は、情報共有処理を実行することによって、ユーザ端末101等の計算機が扱うことができるデータ形式の観測結果を共有サーバ102に保存できる。情報共有処理の詳細は図9を用いて説明する。
 なお、実行指示には、参照情報が含まれる。例えば、共有対象の情報の種別及びエントリの識別情報の組が参照情報として含まれる。共有対象の情報の種別は、接続先、観測結果、及び解析結果のいずれかである。
 図6は、実施例1の攻撃解析/共有システム100が実行する解析処理の一例を説明するフローチャートである。
 CPU111によって実行される解析プログラム120は、検体を含む実行指示を受け付けた場合、以下で説明する解析処理を開始する。
 解析プログラム120は、解析対象の検体の動的解析を実行する(ステップS601)。検体の動的解析は、公知の技術であるため詳細な説明は省略するが、例えば、サンドボックスを用いる方法が考えられる。なお、本発明は動的解析の手法に限定されない。
 次に、解析プログラム120は、検体保存領域140に検体を格納する(ステップS602)。
 次に、解析プログラム120は、解析結果に基づいて検体情報130を更新する(ステップS603)。
 具体的には、解析プログラム120は、検体情報130にエントリを追加し、追加されたエントリの検体ID201に識別番号を設定する。解析プログラム120は、追加されたエントリの解析日時202に動的解析が行われた日時を格納し、保存場所203に検体保存領域140に保存された検体のファイルパスを格納する。また、解析プログラム120は、接続先204及び応答205に検出された接続先の数だけ行を追加し、各行に接続先及び応答を格納する。
 次に、解析プログラム120は、解析結果に基づいて接続先情報131を更新する(ステップS604)。具体的には、以下のような処理が実行される。
 (S604-1)解析プログラム120は、検出された接続先の中からターゲット接続先を選択する。解析プログラム120は、接続先情報131を参照し、接続先302がターゲット接続先と同一であるエントリが存在するか否かを判定する。
 (S604-2)接続先302がターゲット接続先と同一であるエントリが存在すると判定された場合、解析プログラム120は、当該エントリの検体ID303に検体の識別情報を格納する。
 解析プログラム120は、検索されたエントリの接続結果306に観測日時307、応答308、及び変動309から構成される行を追加し、追加された行に解析結果を格納する。この時点では変動309は空欄である。その後、解析プログラム120は(S604-4)に進む。
 (S604-3)接続先302がターゲット接続先と同一であるエントリが存在しないと判定された場合、解析プログラム120は、接続先情報131にエントリを追加し、追加されたエントリの接続先ID301に識別番号を設定する。解析プログラム120は、追加されたエントリの接続先302にターゲット接続先の情報を格納し、検体ID303に検体の識別番号を格納する。解析プログラム120は、追加されたエントリの観測間隔304に所定の観測間隔を格納し、遮断フラグ305に「ON」を格納する。なお、観測間隔の初期値は任意に設定できる。また、遮断フラグ305の初期値として「OFF」を設定してもよい。ただし、安全性を考慮した場合、遮断フラグ305は「ON」が望ましい。
 解析プログラム120は、追加されたエントリの接続結果306に観測日時307、応答308、及び変動309から構成される行を追加し、追加された行に解析結果を格納する。また、解析プログラム120は、追加された行の変動309にハイフンを格納する。その後、解析プログラム120は(S604-4)に進む。
 (S604-4)解析プログラム120は、検出されたすべての接続先について処理が完了したか否かを判定する。検出されたすべての接続先の処理が完了していない場合、解析プログラム120は、(S604-1)に戻り、同様の処理を実行する。検出されたすべての接続先の処理が完了した場合、解析プログラム120はステップS604の処理を終了する。以上がステップS604の処理の説明である。
 次に、解析プログラム120は、解析結果に基づいて解析結果情報132を更新し(ステップS605)、その後、解析処理を終了する。
 具体的には、解析プログラム120は、解析結果情報132にエントリを追加し、追加されたエントリの検体ID401に検体ID201と同一の識別番号を格納する。解析プログラム120は、追加されたエントリの解析日時402に動的解析が行われた日時を格納する。また、解析プログラム120は、解析結果に基づいて、追加されたエントリのAPIコールログ404、生成ファイル405、及び接続先406に値を格納する。
 なお、監視対象の接続先は、検体の解析結果から取得された接続先に限定されない。例えば、ユーザが、CTI(Cyber Threat Intelligence)又は各種ログを参照して、直接、接続先情報131に監視する接続先を登録してもよい。
 図7は、実施例1の攻撃解析/共有システム100が実行する観測処理の一例を説明するフローチャートである。
 CPU111によって実行される観測プログラム122は、実行指示を受け付けた場合、以下で説明する解析処理を開始する。
 観測プログラム122は、接続先情報131から接続先の一覧を取得する(ステップS701)。ここでは、接続先ID301、接続先302、観測間隔304、及び最新の観測日時から構成されるエントリを含む一覧が取得されるものとする。
 次に、観測プログラム122は、変数iに初期値0を設定する(ステップS702)。ここで、変数iは接続先の識別番号を表す変数である。観測プログラム122は、識別番号が変数iに一致する接続先に対してステップS703からステップS706までの処理を実行する。以下の説明では、識別番号が変数iに一致する接続先をターゲット接続先と記載する。
 次に、観測プログラム122は、ターゲット接続先の観測を実行するか否かを判定する(ステップS703)。
 具体的には、観測プログラム122は、最新の観測日時に観測間隔304の値を追加した時刻が現時刻を経過しているか否かを判定する。算出された時刻が現時刻を経過している場合、観測プログラム122は、ターゲット接続先の観測を実行すると判定する。
 ターゲット接続先の観測を実行しないと判定された場合、観測プログラム122はステップS707に進む。
 ターゲット接続先の観測を実行すると判定された場合、観測プログラム122は、少なくとも一つの観測エージェント104にターゲット接続先の観測指示を送信する(ステップS704)。
 本発明は、観測指示を送信する観測エージェント104の数に限定されない。なお、接続先ごとに、観測を行う観測エージェント104が設定されていてもよい。
 次に、観測プログラム122は、観測エージェント104からターゲット接続先の観測結果を受信した場合(ステップS705)、観測結果に基づいて接続先情報131を更新し(ステップS706)、その後、ステップS707に進む。
 具体的には、観測プログラム122は、接続先ID301がターゲット接続先の識別番号と一致するエントリを検索し、検索されたエントリの接続結果306に観測日時307、応答308、及び変動309から構成される行を追加する。観測プログラム122は、観測日時307に観測日時を格納し、応答308に観測結果に含まれる値を格納する。この時点では変動309は空欄である。
 ステップS703においてターゲット接続先の観測を実行しないと判定された場合、又はステップS706の処理が実行された後、観測プログラム122は、変数iに1を加算した値を新たな変数iに設定する(ステップS707)。
 次に、観測プログラム122は、すべての接続先の処理が完了したか否かを判定する(ステップS708)。
 具体的には、観測プログラム122は、変数iが一覧に含まれるエントリの数より大きいか否かを判定する。変数iが一覧に含まれるエントリの数より大きい場合、観測プログラム122は、すべての接続先の処理が完了したと判定する。
 すべての接続先の処理が完了していないと判定された場合、観測プログラム122は、ステップS703に戻り、同様の処理を実行する。
 すべての接続先の処理が完了したと判定された場合、観測プログラム122は観測処理を終了する。
 図8は、実施例1の攻撃解析/共有システム100が実行する変動検出処理の一例を説明するフローチャートである。
 CPU111によって実行される変動検出プログラム123は、実行指示を受け付けた場合、以下で説明する変動検出処理を開始する。
 変動検出プログラム123は、接続先情報131から接続先の一覧を取得する(ステップS801)。ここでは、接続先ID301から構成されるエントリを含む一覧が取得されるものとする。
 次に、変動検出プログラム123は、変数iに初期値0を設定する(ステップS802)。ここで、変数iは接続先の識別番号を表す変数である。変動検出プログラム123は、識別番号が変数iに一致する接続先に対してステップS803からステップS805までの処理を実行する。以下の説明では、識別番号が変数iに一致する接続先をターゲット接続先と記載する。
 次に、変動検出プログラム123は、ターゲット接続先について変動を検出する必要があるか否かを判定する(ステップS803)。
 具体的には、変動検出プログラム123は、接続先ID301がターゲット接続先の識別番号と一致するエントリを検索し、当該エントリの接続結果306に変動309が空欄である行が存在するか否かを判定する。前述の行が存在する場合、変動検出プログラム123は、ターゲット接続先について変動を検出する必要があると判定する。
 ターゲット接続先について変動を検出する必要がないと判定された場合、変動検出プログラム123はステップS806に進む。
 ターゲット接続先について変動を検出する必要があると判定された場合、変動検出プログラム123は、ターゲット接続先の変動の有無を判定する(ステップS804)。
 例えば、変動検出プログラム123は、変動309が空欄である行の応答308と、時系列が一つ前の行の応答308とを比較し、前回と異なる応答又はステータスコードの変化の有無等を判定する。前回と異なる応答があった場合、又は、ステータスコードに変化があった場合、変動検出プログラム123は、接続先の変動があると判定する。
 なお、本発明は、接続先の変動の検出方法に限定されない。例えば、robots.txtの有無又はpingへの反応等、接続先の状態変化又は応答の変化を評価できる情報を用いる処理であればどのような処理でもよい。
 次に、変動検出プログラム123は、接続先情報131に判定結果を格納する(ステップS805)。
 具体的には、変動検出プログラム123は、変動309が空欄である行を検索する。接続先の変動があると判定された場合、変動検出プログラム123は、検索された行の変動309に「あり」を設定する。接続先の変動がないと判定された場合、変動検出プログラム123は、検索された行の変動309に「なし」を設定する。
 ステップS803においてターゲット接続先について変動を検出する必要がないと判定された場合、又はステップS805の処理が実行された後、変動検出プログラム123は、変数iに1を加算した値を新たな変数iに設定する(ステップS806)。
 次に、変動検出プログラム123は、すべての接続先の処理が完了したか否かを判定する(ステップS807)。
 具体的には、変動検出プログラム123は、変数iが一覧に含まれるエントリの数より大きいか否かを判定する。変数iが一覧に含まれるエントリの数より大きい場合、変動検出プログラム123は、すべての接続先の処理が完了したと判定する。
 すべての接続先の処理が完了していないと判定された場合、変動検出プログラム123は、ステップS803に戻り、同様の処理を実行する。
 すべての接続先の処理が完了したと判定された場合、変動検出プログラム123は変動検出処理を終了する。
 図9は、実施例1の攻撃解析/共有システム100が実行する情報共有処理の一例を説明するフローチャートである。
 CPU111によって実行される情報共有プログラム121は、実行指示を受け付けた場合、以下で説明する情報共有処理を開始する。
 情報共有プログラム121は、接続先の情報を共有するか否かを判定する(ステップS901)。
 具体的には、情報共有プログラム121は、参照情報を参照して、共有対象の情報の種別が接続先であるか否かを判定する。
 接続先の情報を共有しないと判定された場合、情報共有プログラム121はステップS904に進む。
 接続先の情報を共有すると判定された場合、情報共有プログラム121は、参照情報に基づいて接続先情報131から接続先の情報を取得し(ステップS902)、機械可読なフォーマットで取得した接続先の情報を共有サーバ102に保存する(ステップS903)。その後、情報共有プログラム121はステップS904に進む。
 使用するフォーマットとしては、サイバー攻撃の記述方式として定まっているフォーマットである、STIX(Structured Threat Intelligence eXpression)又はOpenIOC(Open Indicators of Compromise)を用いることが考えられる。これらのフォーマットを用いることによって、情報を汎用的に活用することが期待できる。なお、本発明は、使用するフォーマットの形式に限定されない。例えば、特定のファイル形式で情報を共有サーバ102に保存してもよい。
 また、共有サーバ102への情報保存には、TAXII(Trusted Automatyed eXchange of Indicator Information)等のプロトコルを利用する。
 ステップS901において接続先の情報を共有しないと判定された場合、又は、ステップS903の処理が実行された後、情報共有プログラム121は、観測結果の情報を共有するか否かを判定する(ステップS904)。
 具体的には、情報共有プログラム121は、参照情報を参照して、共有対象の情報の種別が観測結果であるか否かを判定する。
 観測結果の情報を共有しないと判定された場合、情報共有プログラム121はステップS907に進む。
 観測結果の情報を共有すると判定された場合、情報共有プログラム121は、参照情報に基づいて接続先情報131から観測結果の情報を取得し(ステップS905)、機械可読なフォーマットで取得した観測結果の情報を共有サーバ102に保存する(ステップS906)。その後、情報共有プログラム121はステップS907に進む。
 ステップS904において観測結果の情報を共有しないと判定された場合、又は、ステップS906の処理が実行された後、情報共有プログラム121は、解析結果の情報を共有するか否かを判定する(ステップS907)。
 解析結果の情報を共有しないと判定された場合、情報共有プログラム121は情報共有処理を終了する。
 解析結果の情報を共有すると判定された場合、情報共有プログラム121は、参照情報に基づいて解析結果情報132から解析結果の情報を取得し(ステップS908)、機械可読なフォーマットで取得した解析結果の情報を共有サーバ102に保存する(ステップS909)。その後、情報共有プログラム121は情報共有処理を終了する。
 実施例1では、共有サーバ102に情報を保存することによって、サイバー攻撃に関する情報の共有を実現しているが、これに限定されない。例えば、各種情報へアクセスするためのURLをユーザ端末101等に公開することによって、情報の共有を実現してもよい。
 実施例1では、攻撃解析/共有システム100が能動的に情報の共有を行っているが、ユーザからの要求を受け付けた場合に、情報を共有するようにしてもよい。
 攻撃解析/共有システム100は、図5で説明した処理とは別に、ユーザに対して各種情報を表示するための表示処理を実行する。図10は、実施例1の攻撃解析/共有システム100が実行する表示処理の一例を説明するフローチャートである。
 CPU111によって実行される表示プログラム124は、ユーザ端末101等から表示要求を受信した場合、以下で説明する表示処理を開始する。
 表示プログラム124は、ユーザから表示対象を指定する入力を受け付ける(ステップS1001)。
 例えば、表示プログラム124は、ユーザ端末101等に、表示対象を指定するためのトップページを表示する。なお、入力には、表示する情報を絞り込むための情報が含まれてもよい。例えば、接続先、検体、及び期間等が含まれる。
 表示プログラム124は、受け付けた入力に基づいて表示対象を判別する(ステップS1002)。
 表示対象が接続先であると判定された場合、表示プログラム124は、接続先情報131を取得して、接続先に関する情報を表示するための表示情報を生成する(ステップS1003)。さらに、表示プログラム124は、生成された表示情報をユーザ端末101等に送信する(ステップS1004)。その後、表示プログラム124は表示処理を終了する。
 表示対象が観測結果であると判定された場合、表示プログラム124は、接続先情報131を取得して、観測結果に関する情報を表示するための表示情報を生成する(ステップS1005)。さらに、表示プログラム124は、生成された表示情報をユーザ端末101等に送信する(ステップS1006)。その後、表示プログラム124は表示処理を終了する。
 表示対象が解析結果であると判定された場合、表示プログラム124は、解析結果情報132を取得して、解析結果に関する情報を表示するための表示情報を生成する(ステップS1007)。さらに、表示プログラム124は、生成された表示情報をユーザ端末101等に送信する(ステップS1008)。その後、表示プログラム124は表示処理を終了する。
 なお、ユーザの要求に応じて、動的解析の実行要因等を表示してもよい。動的解析の実行要因としては、接続先の変動の検出又はユーザの解析要求の受信等が考えられる。前述のような情報を表示することによって、ユーザの表示内容の意味解釈の効率を向上させることが期待できる。
 以上で説明したように、実施例1は以下のような特徴を有する。
 (1)攻撃解析/共有システム100は、検体の動的解析によって検出された接続先に関する情報を共有する。
 動的解析は静的解析より容易かつ迅速な解析を実現できる。したがって、サイバー攻撃を防ぐための対策に有用な情報を迅速に提供することができる。また、情報は機械可読なフォーマットで共有されるため、サイバー攻撃の防御を行う防御システム(図示省略)は、当該情報に基づいて、接続先のブラックリストへの登録、迅速かつ自動的な防御を実現できる。これによって、様々な脅威に対する自動的かつ迅速な防御を実現できる。
 (2)攻撃解析/共有システム100は、継続的な接続先の観測結果に基づく接続先の変動の検出結果に関する情報を共有する。
 継続的な接続先の観測結果に基づいて、検体が通信するC2サーバの活性化の契機、及び攻撃者が使用するインフラの変化等を接続先の変動として検出することによって、検体又は接続先の挙動を正確かつ精度よく把握することができる。これらの情報を用いることによって、防御システムは、正確かつ効果的な対策をとることができる。また、攻撃者の攻撃開始の予兆として利用することによって、攻撃の開始前に対策をとることができる。
 このように、実施例1によれば、様々な脅威に対する高度かつ迅速な集団防御を実現可能な情報を共有することができる。
 実施例2の攻撃解析/共有システム100は、検体と接続先との間の通信の遮断制御に用いる情報を提供する。以下、実施例1との差異を中心に実施例2について説明する。
 実施例2の計算機システムの構成は実施例1と同一である。実施例2の攻撃解析/共有システム100のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例2の攻撃解析/共有システム100が保持する情報のデータ構造は実施例1と同一である。また、実施例2の解析プログラム120、情報共有プログラム121、観測プログラム122、変動検出プログラム123、及び表示プログラム124が実行する処理は、実施例1と同一である。
 実施例2では、遮断判定プログラム125が検体と接続先との間の通信の遮断制御に用いる情報を提供する。図11は、実施例2の攻撃解析/共有システム100が実行する通信遮断要否判定処理の一例を説明するフローチャートである。
 CPU111によって実行される遮断判定プログラム125は、実行指示を受け付けた場合、又は、実行周期が経過した場合、以下で説明する通信遮断要否判定処理を開始する。また、観測処理又は変動検出処理の後に通信遮断要否判定処理が実行されてもよい。
 遮断判定プログラム125は、接続先情報131から接続先の一覧を取得する(ステップS1101)。ここでは、接続先ID301及び接続結果306から構成されるエントリを含む一覧が取得されるものとする。
 次に、遮断判定プログラム125は、変数iに初期値0を設定する(ステップS1102)。ここで、変数iは接続先の識別番号を表す変数である。遮断判定プログラム125は、識別番号が変数iに一致する接続先に対してステップS1103からステップS1105までの処理を実行する。以下の説明では、識別番号が変数iに一致する接続先をターゲット接続先と記載する。
 次に、遮断判定プログラム125は、中長期的に、ターゲット接続先が稼働していない状態であるか否かを判定する(ステップS1103)。
 例えば、遮断判定プログラム125は、ターゲット接続先の応答308を参照して、ターゲット接続先からの応答がない状態が一ヶ月以上継続しているか否かを判定する。ターゲット接続先からの応答がない状態が一ヶ月以上継続している場合、遮断判定プログラム125は、中期的に、ターゲット接続先が稼働していない状態であると判定する。なお、前述の判定方法は一例であってこれに限定されない。
 中長期的に、ターゲット接続先が稼働していない状態でないと判定された場合、遮断判定プログラム125は、ターゲット接続先への通信の遮断は必要と判定し、接続先情報を更新し(ステップS1105)、その後、ステップS1106に進む。
 具体的には、遮断判定プログラム125は、ターゲット接続先に対応するエントリの遮断フラグ305に「ON」を設定する。
 中長期的に、ターゲット接続先が稼働していない状態であると判定された場合、遮断判定プログラム125は、ターゲット接続先において、生死の繰り返しが発生しているか否かを判定する(ステップS1004)。
 例えば、遮断判定プログラム125は、ターゲット接続先の応答308を参照して、応答があった状態から応答がなかった状態、又は応答がなかった状態から応答があった状態へ変化したことを示す行のペアが一つ以上存在するか否かを判定する。前述のペアが一つ以上存在する場合、遮断判定プログラム125は、ターゲット接続先において、生死の繰り返しが発生していると判定する。
 ターゲット接続先において、生死の繰り返しが発生していないと判定された場合、遮断判定プログラム125は、ターゲット接続先への通信の遮断は必要と判定し、接続先情報を更新し(ステップS1105)、その後、ステップS1106に進む。
 具体的には、遮断判定プログラム125は、ターゲット接続先に対応するエントリの遮断フラグ305に「ON」を設定する。
 ターゲット接続先において、生死の繰り返しが発生していると判定された場合、遮断判定プログラム125は、ターゲット接続先への通信の遮断は不要と判定し、接続先情報を更新し(ステップS1105)、その後、ステップS1106に進む。
 具体的には、遮断判定プログラム125は、ターゲット接続先に対応するエントリの遮断フラグ305に「OFF」を設定する。
 ステップS1106では、遮断判定プログラム125は、変数iに1を加算した値を新たな変数iに設定する(ステップS1106)。
 次に、遮断判定プログラム125は、すべての接続先の処理が完了したか否かを判定する(ステップS1107)。
 具体的には、遮断判定プログラム125は、変数iが一覧に含まれるエントリの数より大きいか否かを判定する。変数iが一覧に含まれるエントリの数より大きい場合、遮断判定プログラム125は、すべての接続先の処理が完了したと判定する。
 すべての接続先の処理が完了していないと判定された場合、遮断判定プログラム125は、ステップS1103に戻り、同様の処理を実行する。
 すべての接続先の処理が完了したと判定された場合、遮断判定プログラム125は、通信遮断要否判定処理を終了する。
 なお、図11で説明した、ターゲット接続先への通信の遮断の要否の判定方法は、一例であって、これに限定されない。例えば、接続先情報131に、ターゲット接続先がシンクホール化したことを示す情報が含まれる場合、遮断判定プログラム125は、ターゲット接続先への通信の遮断は不要と判定するようにしてもよい。
 遮断判定プログラム125は、観測結果だけでなく、他の情報を用いて、ターゲット接続先への通信の遮断の要否を判定してもよい。例えば、遮断判定プログラム125は、DNS(Domain Name System)情報を確認し、ドメインが失効していることを示すA/AAAAレコードが割り当てられていない場合、遮断判定プログラム125は、ターゲット接続先への通信の遮断が不要であると判定する。
 情報共有プログラム121は、観測結果の一部として、遮断判定プログラム125の処理結果を共有サーバ102に保存する。
 従来は、ブラックリストに登録された接続先は、そのまま、ブラックリストに登録され続ける。そのため、ブラックリストのデータ容量が大きくなるという問題があった。このような問題に対応するために、防御システムがブラックリストへの接続先の登録の要否を判定し、ブラックリストのデータ容量の増大を抑制する必要があった。
 実施例2によれば、攻撃解析/共有システム100は、継続的な接続先の観測結果に基づいて、接続先への通信の遮断の要否を判定し、当該判定結果を共有する。これによって、防御システムは、判定結果に基づいて、ブラックリストを管理できる。これによって、ブラックリストのデータ容量の増大を抑制し、また、ブラックリストの管理に要するコストを抑制することができる。
 実施例3の攻撃解析/共有システム100は、接続先の性質及び観測結果に基づいて、接続先の観測周期を動的に変更する。以下、実施例1との差異を中心に実施例3について説明する。
 実施例3の計算機システムの構成は実施例1と同一である。実施例3の攻撃解析/共有システム100のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例3の攻撃解析/共有システム100が保持する情報のデータ構造は実施例1と同一である。また、実施例3の解析プログラム120、情報共有プログラム121、観測プログラム122、変動検出プログラム123、及び表示プログラム124が実行する処理は、実施例1と同一である。
 実施例3では、観測周期管理プログラム126が各接続先の観測周期を動的に変更する。図12は、実施例3の攻撃解析/共有システム100が実行する観測周期管理処理の一例を説明するフローチャートである。
 CPU111によって実行される観測周期管理プログラム126は、実行指示を受け付けた場合、又は、実行周期が経過した場合、以下で説明する通信遮断要否判定処理を開始する。また、観測処理又は変動検出処理の後に観測周期管理処理が実行されてもよい。
 観測周期管理プログラム126は、接続先情報131から接続先の一覧を取得する(ステップS1201)。ここでは、接続先ID301、観測間隔304、及び接続結果306から構成されるエントリを含む一覧が取得されるものとする。
 次に、観測周期管理プログラム126は、変数iに初期値0を設定する(ステップS1202)。ここで、変数iは接続先の識別番号を表す変数である。観測周期管理プログラム126は、識別番号が変数iに一致する接続先に対してステップS1203からステップS1205までの処理を実行する。以下の説明では、識別番号が変数iに一致する接続先をターゲット接続先と記載する。
 次に、観測周期管理プログラム126は、接続先の特性及び観測結果を用いて、観測周期の変更方針を決定する(ステップS1203)。例えば、以下のような処理が実行される。
 (1)観測周期管理プログラム126は、ターゲット接続先の応答308を参照して、ターゲット接続先からの応答がない状態が長期的に(例えば、三ヶ月以上)継続しているか否かを判定する。ターゲット接続先からの応答がない状態が長期的に継続している場合、接続先を頻繁に観測する必要がない。そのため、観測周期管理プログラム126は、観測周期を長くすると判定する。
 (2)観測周期管理プログラム126は、接続先が攻撃者によって最近取得されたドメインに関連付けられているか否かを判定する。前述の条件を満たす場合、攻撃者によるC2サーバの有効化及びコンテンツの配信等、次の攻撃アクションに移行する可能性が高い。そのため、観測周期管理プログラム126は、観測周期を短くすると判定する。
 (3)観測周期管理プログラム126は、接続先の変動が検出された場合、観測周期を短くすると判定する。これも、次の攻撃アクションに移行する可能性が高いためである。
 なお、いずれの条件にも合致しない場合、観測周期管理プログラム126は、観測周期を変更しないと判定する。
 以上がステップS1203の処理の説明である。
 次に、観測周期管理プログラム126は、決定された変更方針に基づいて、ターゲット接続先の観測周期を算出する(ステップS1204)。具体的には、以下のような処理が実行される。
 観測周期管理プログラム126は、接続先の一覧から現在のターゲット接続先の観測周期を取得する。
 観測周期を長くすると判定された場合、観測周期管理プログラム126は、現在の観測周期より大きい観測周期を算出する。例えば、観測周期管理プログラム126は、現在の観測周期に固定値を加算し、又は、現在の観測周期に1より大きい係数を乗算する。なお、前述した処理は一例であってこれに限定されない。
 観測周期を短くすると判定された場合、観測周期管理プログラム126は、現在の観測周期より小さい観測周期を算出する。例えば、観測周期管理プログラム126は、現在の観測周期から固定値を減算し、又は、現在の観測周期に1より小さい係数を乗算する。なお、前述した処理は一例であってこれに限定されない。
 以上がステップS1204の処理の説明である。
 次に、観測周期管理プログラム126は、接続先情報を更新する(ステップS1205)。
 具体的には、観測周期管理プログラム126は、ターゲット接続先に対応するエントリの観測間隔304に算出されたターゲット接続先の観測周期を格納する。
 次に、観測周期管理プログラム126は、変数iに1を加算した値を新たな変数iに設定する(ステップS1206)。
 次に、観測周期管理プログラム126は、すべての接続先の処理が完了したか否かを判定する(ステップS1207)。
 具体的には、観測周期管理プログラム126は、変数iが一覧に含まれるエントリの数より大きいか否かを判定する。変数iが一覧に含まれるエントリの数より大きい場合、観測周期管理プログラム126は、すべての接続先の処理が完了したと判定する。
 すべての接続先の処理が完了していないと判定された場合、観測周期管理プログラム126は、ステップS1203に戻り、同様の処理を実行する。
 すべての接続先の処理が完了したと判定された場合、観測周期管理プログラム126は、観測周期管理処理を終了する。
 実施例3によれば、攻撃解析/共有システム100は、接続先の性質及び観測結果に基づいて接続先の観測周期を変更する。長期的に変動がない接続先の観測周期を長くすることによって、攻撃者が接続先の観測を気づくリスクを低減し、また、観測に要するリソースを削減できる。また、接続先の変動が検出された接続先の観測周期を短くすることによって、攻撃の検出精度を高めることができる。
 実施例4の攻撃解析/共有システム100は、接続先の変動が検出された場合、再度、検体の動的解析を実行する。以下、実施例1との差異を中心に実施例4について説明する。
 実施例4の計算機システムの構成は実施例1と同一である。実施例4の攻撃解析/共有システム100のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例4の攻撃解析/共有システム100が保持する情報のデータ構造は実施例1と同一である。また、実施例4の情報共有プログラム121、観測プログラム122、及び表示プログラム124が実行する処理は、実施例1と同一である。
 実施例4では、変動検出プログラム123が、接続先の変動が検出された場合、接続先の情報を含む動的解析の実行指示を解析プログラム120に送信する。
 実施例4では、解析プログラム120は、解析依頼の受信以外の契機、具体的には、接続先の変動が検出された場合、検体の動的解析を実行する。なお、解析依頼の受信を契機に実行される解析処理は実施例1と同一である。図13は、実施例4の攻撃解析/共有システム100が実行する解析処理の一例を説明するフローチャートである。
 CPU111によって実行される解析プログラム120は、変動検出プログラム123から解析処理の実行指示を受信した場合、以下で説明する解析処理を開始する。
 解析プログラム120は、解析対象の検体を特定する(ステップS1301)。
 具体的には、解析プログラム120は、接続先情報131を参照し、接続先ID301に解析処理の実行指示に含まれる識別番号が格納されるエントリを検索する。解析プログラム120は、検索されたエントリの検体ID303から検体の識別番号を取得し、検体リストに登録する。
 次に、解析プログラム120は、特定された検体の中からターゲット検体を選択する(ステップS1302)。
 具体的には、解析プログラム120は、検体リストから一つの検体の識別番号を選択する。このとき、解析プログラム120は、検体リストから選択された検体の識別番号を削除する。解析プログラム120は、検体情報130を参照し、検体ID201にターゲット検体の識別番号が格納されるエントリを検索する。解析プログラム120は、検索されたエントリの保存場所203の情報に基づいて、検体保存領域140からターゲット検体を取得する。
 次に、解析プログラム120は、ターゲット検体の動的解析を実行する(ステップS1303)。ステップS1303の処理はステップS601の処理と同一である。
 次に、解析プログラム120は、解析結果に基づいて解析結果情報132を更新する(ステップS1304)。ステップS1304の処理はステップS605の処理と同一である。
 次に、解析プログラム120は、新規接続先が検出されたか否かを判定する(ステップS1305)。
 例えば、解析プログラム120は、検体ID201にターゲット検体の識別番号が格納されるエントリを検索する。解析プログラム120は、ステップS1304において追加されたエントリの接続先406と、検索されたエントリの接続先204とを比較することによって、新規接続先が検出されたか否かを判定する。
 なお、前述の判定方法は一例であってこれに限定されない。例えば、解析プログラム120は、接続先情報131を参照し、解析結果に含まれる接続先に対応するエントリが存在するか否かを判定してもよい。
 新規接続先が検出されていないと判定された場合、解析プログラム120はステップS1308に進む。
 新規接続先が検出されたと判定された場合、解析プログラム120は、解析結果に基づいて検体情報130を更新する(ステップS1306)。
 具体的には、解析プログラム120は、検体情報130を参照し、検体ID201にターゲット検体の識別番号が格納されるエントリを検索する。解析プログラム120は、検索されたエントリに、接続先204及び応答205から構成される行を追加し、解析結果に基づいて追加された行に新たに検出された接続先及び応答を格納する。
 次に、解析プログラム120は、解析結果に基づいて接続先情報131を更新し(ステップS1307)、その後、ステップS1308に進む。具体的には、以下のような処理が実行される。
 解析プログラム120は、接続先情報131にエントリを追加し、追加されたエントリの接続先ID301に識別番号を設定する。解析プログラム120は、追加されたエントリの接続先302に新規接続先の情報を格納し、検体ID303にターゲット検体の識別番号を格納する。解析プログラム120は、追加されたエントリの観測間隔304に所定の観測間隔を格納し、遮断フラグ305に「ON」を格納する。
 解析プログラム120は、追加されたエントリの接続結果306に観測日時307、応答308、及び変動309から構成される行を追加し、追加された行に解析結果を格納する。また、解析プログラム120は、追加された行の変動309にハイフンを格納する。
 以上がステップS1307の処理の説明である。
 ステップS1305において、新規接続先が検出されていないと判定された場合、又は、ステップS1307の処理が実行された後、解析プログラム120は、すべての特定された検体について処理が完了したか否かを判定する(ステップS1308)。
 すべての特定された検体について処理が完了していないと判定された場合、解析プログラム120は、ステップS1302に戻り、同様の処理を実行する。
 すべての特定された検体について処理が完了したと判定された場合、解析プログラム120は解析処理を終了する。
 なお、解析プログラム120は、ユーザから解析要求の再実行要求を受け付けた場合に、同様の処理を実行してもよい。
 情報共有プログラム121は、新たな解析結果を共有サーバ102に保存する。
 近年、マルウェアと連係して動作するC2サーバは攻撃時にのみ稼働するものが多い。そのため、マルウェアの挙動を正確に把握するためには、C2サーバの稼働時にマルウェアの動的解析を行う必要がある。
 実施例4によれば、攻撃解析/共有システム100は、接続先を継続的に観測し、接続先の変動の検出を契機に検体の動的解析を実行する。これによって、検体の挙動を正確かつ精度よく把握することができる。
 実施例5の攻撃解析/共有システム100は、各種レポートを生成し、ユーザに出力する。以下、実施例1との差異を中心に実施例5について説明する。
 実施例5の計算機システムの構成は実施例1と同一である。実施例5の攻撃解析/共有システム100のハードウェア構成及びソフトウェア構成は実施例1と同一である。実施例5の攻撃解析/共有システム100が保持する情報のデータ構造は実施例1と同一である。また、実施例5の解析プログラム120、情報共有プログラム121、観測プログラム122、変動検出プログラム123、及び表示プログラム124が実行する処理は、実施例1と同一である。
 実施例5では、レポート生成プログラム127がレポートを生成する。図14は、実施例5の攻撃解析/共有システム100が実行するレポート生成処理の一例を説明するフローチャートである。
 CPU111によって実行されるレポート生成プログラム127は、実行周期を経過した場合、又は、各種処理が終了した場合、以下で説明するレポート生成処理を開始する。ここでは、検体単位のレポートの生成処理について説明する。
 レポート生成プログラム127は、レポートの生成対象となるターゲット検体を選択する(ステップS1401)。
 次に、レポート生成プログラム127は、解析結果情報132から、ターゲット検体の解析結果を取得する(ステップS1402)。
 次に、レポート生成プログラム127は、検体情報130から、ターゲット検体の接続先に関する情報を取得する(ステップS1403)。
 次に、レポート生成プログラム127は、ターゲット検体の解析結果及びターゲット検体の接続先に関する情報に基づいて、ターゲット検体に関するレポートを生成する(ステップS1404)。
 次に、レポート生成プログラム127は、ユーザ端末101等の外部装置に生成されたレポートを送信する(ステップS1405)。
 次に、レポート生成プログラム127は、すべての検体について処理が完了したか否かを判定する(ステップS1406)。
 すべての検体について処理が完了していないと判定された場合、レポート生成プログラム127は、ステップS1401に戻り、同様の処理を実行する。
 すべての検体について処理が完了したと判定された場合、レポート生成プログラム127はレポート生成処理を終了する。
 なお、検体単位のレポートの生成処理について説明したが、これに限定されない。検体情報130、接続先情報131、及び解析結果情報132の少なくともいずれかを用いて生成可能なレポートであれば、どのようなレポートでもよい。例えば、特定の接続先の状態遷移に関するレポート、特定の接続先に通信を試みる検体に関するレポート等が考えられる。
 実施例5によれば、攻撃解析/共有システム100が、観測結果及び解析結果等に基づいて、自動でレポートを生成する。これによって、レポートの生成に要するコストを削減できる。また、ユーザは、レポートを参照することによって、検体又は接続先の挙動の把握に要するコストを削減できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (8)

  1.  少なくとも一つの計算機を備える計算機システムであって、
     前記少なくとも一つの計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信装置を有し、
     前記計算機システムは、
     サイバー攻撃に関わる不正プログラムの検体の動的解析を実行し、少なくとも前記不正プログラムが通信する接続先を含む解析結果を出力する解析部と、
     前記接続先に対する周期的な観測の結果に基づいて、前記接続先の変動を検出し、前記検出の結果を出力する変動検出部と、
     複数の外部計算機が共有できる形式で、前記解析部及び前記変動検出部から出力された情報を記憶する情報共有部と、
     を備えることを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記接続先の観測を行うエージェントに周期的に前記接続先の観測を指示し、前記エージェントから取得した前記接続先の観測結果を出力する観測部と、
     前記観測部から出力された情報に基づいて、前記接続先への通信の遮断が必要か否かを判定し、当該判定の結果を出力する遮断判定部と、を備え、
     前記情報共有部は、前記複数の外部計算機が共有できる形式で、前記観測部及び前記遮断判定部から出力される情報を記憶することを特徴とする計算機システム。
  3.  請求項2に記載の計算機システムであって、
     前記観測部は、前記接続先に対して設定された観測周期に基づいて、前記エージェントに前記接続先の観測を指示し、
     前記計算機システムは、前記観測部から出力された情報に基づいて、前記観測周期を変更する観測周期管理部を備えることを特徴とする計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記解析部は、
     前記変動検出部から出力される情報に基づいて、前記接続先と通信する前記不正プログラムの検体の動的解析の再実行が必要か否かを判定し、
     前記接続先と通信する前記不正プログラムの検体の動的解析の再実行が必要であると判定された場合、当該不正プログラムの検体の動的解析を実行して、前記解析結果を出力し、
     前記情報共有部は、前記複数の外部計算機が共有できる形式で、前記解析部から新たに出力された情報を記憶することを特徴とする計算機システム。
  5.  計算機システムが実行する、サイバー攻撃に関わる不正プログラムを用いたサイバー攻撃を防御するために用いる情報の共有方法であって、
     前記計算機システムは、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続される通信装置を有する、少なくとも一つの計算機を含み、
     前記情報の共有方法は、
     前記少なくとも一つの計算機が、前記不正プログラムの検体の動的解析を実行し、少なくとも前記不正プログラムが通信する接続先を含む解析結果を出力する第1のステップと、
     前記少なくとも一つの計算機が、前記接続先に対する周期的な観測の結果に基づいて、前記接続先の変動を検出し、前記検出の結果を出力する第2のステップと、
     前記少なくとも一つの計算機が、複数の外部計算機が共有できる形式で、前記解析結果及び前記検出の結果を記憶する第3のステップと、
     を含むことを特徴とする情報の共有方法。
  6.  請求項5に記載の情報の共有方法であって、
     前記少なくとも一つの計算機が、前記接続先の観測を行うエージェントに周期的に前記接続先の観測を指示し、前記エージェントから取得した前記接続先の観測結果を出力する第4のステップと、
     前記少なくとも一つの計算機が、前記接続先の観測結果に基づいて、前記接続先への通信の遮断が必要か否かを判定し、当該判定の結果を出力する第5のステップと、を含み、
     前記第3のステップは、前記少なくとも一つの計算機が、前記複数の外部計算機が共有できる形式で、前記接続先の観測結果及び前記判定の結果を記憶するステップを含むことを特徴とする情報の共有方法。
  7.  請求項6に記載の情報の共有方法であって、
     前記第4のステップは、前記少なくとも一つの計算機が、前記接続先に対して設定された観測周期に基づいて、前記エージェントに前記接続先の観測を指示するステップを含み、
     前記情報の共有方法は、前記少なくとも一つの計算機が、前記接続先の観測結果に基づいて、前記観測周期を変更するステップを含むことを特徴とする情報の共有方法。
  8.  請求項5に記載の情報の共有方法であって、
     前記少なくとも一つの計算機が、前記検出の結果に基づいて、前記接続先と通信する前記不正プログラムの検体の動的解析の再実行が必要か否かを判定するステップと、
     前記接続先と通信する前記不正プログラムの検体の動的解析の再実行が必要であると判定された場合、前記少なくとも一つの計算機が、当該不正プログラムの検体の動的解析を実行して、前記解析結果を出力するステップと、を含み、
     前記第3のステップは、前記少なくとも一つの計算機が、前記複数の外部計算機が共有できる形式で、新たに出力された前記解析結果を記憶するステップを含むことを特徴とする情報の共有方法。
PCT/JP2020/009401 2019-08-07 2020-03-05 計算機システム及び情報の共有方法 WO2021024532A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20849673.7A EP4012588A4 (en) 2019-08-07 2020-03-05 COMPUTER SYSTEM AND METHOD FOR SHARING INFORMATION
US17/628,250 US20220263839A1 (en) 2019-08-07 2020-03-05 Computer system and method for sharing information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019145384A JP7297249B2 (ja) 2019-08-07 2019-08-07 計算機システム及び情報の共有方法
JP2019-145384 2019-08-07

Publications (1)

Publication Number Publication Date
WO2021024532A1 true WO2021024532A1 (ja) 2021-02-11

Family

ID=74503417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/009401 WO2021024532A1 (ja) 2019-08-07 2020-03-05 計算機システム及び情報の共有方法

Country Status (4)

Country Link
US (1) US20220263839A1 (ja)
EP (1) EP4012588A4 (ja)
JP (1) JP7297249B2 (ja)
WO (1) WO2021024532A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023282148A1 (ja) * 2021-07-09 2023-01-12 株式会社日立製作所 情報管理システム、情報管理方法、及び情報共有システム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322408B1 (ko) * 2020-12-07 2021-11-05 주식회사 샌즈랩 서버 자원을 이용한 악성 코드 탐지 및 치료가 가능한 사물 인터넷 장치 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085772A (ja) 2012-10-22 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 不正プログラム実行システム、不正プログラム実行方法及び不正プログラム実行プログラム
JP2014179025A (ja) 2013-03-15 2014-09-25 Ntt Communications Corp 接続先情報抽出装置、接続先情報抽出方法、及び接続先情報抽出プログラム
WO2016132992A1 (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 ブラックリスト生成装置、ブラックリスト生成システム、ブラックリスト生成方法及びブラックリスト生成プログラム
WO2016140037A1 (ja) * 2015-03-05 2016-09-09 日本電信電話株式会社 通信先対応関係収集装置、通信先対応関係収集方法及び通信先対応関係収集プログラム
WO2016140038A1 (ja) * 2015-03-05 2016-09-09 日本電信電話株式会社 通信先悪性度算出装置、通信先悪性度算出方法及び通信先悪性度算出プログラム
JP2019145384A (ja) 2018-02-22 2019-08-29 株式会社小糸製作所 照明器具および車両用灯具

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085772A (ja) 2012-10-22 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> 不正プログラム実行システム、不正プログラム実行方法及び不正プログラム実行プログラム
JP2014179025A (ja) 2013-03-15 2014-09-25 Ntt Communications Corp 接続先情報抽出装置、接続先情報抽出方法、及び接続先情報抽出プログラム
WO2016132992A1 (ja) * 2015-02-20 2016-08-25 日本電信電話株式会社 ブラックリスト生成装置、ブラックリスト生成システム、ブラックリスト生成方法及びブラックリスト生成プログラム
WO2016140037A1 (ja) * 2015-03-05 2016-09-09 日本電信電話株式会社 通信先対応関係収集装置、通信先対応関係収集方法及び通信先対応関係収集プログラム
WO2016140038A1 (ja) * 2015-03-05 2016-09-09 日本電信電話株式会社 通信先悪性度算出装置、通信先悪性度算出方法及び通信先悪性度算出プログラム
JP2019145384A (ja) 2018-02-22 2019-08-29 株式会社小糸製作所 照明器具および車両用灯具

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023282148A1 (ja) * 2021-07-09 2023-01-12 株式会社日立製作所 情報管理システム、情報管理方法、及び情報共有システム

Also Published As

Publication number Publication date
JP2021026597A (ja) 2021-02-22
EP4012588A4 (en) 2023-08-16
US20220263839A1 (en) 2022-08-18
EP4012588A1 (en) 2022-06-15
JP7297249B2 (ja) 2023-06-26

Similar Documents

Publication Publication Date Title
US20210084066A1 (en) Identifying automated response actions based on asset classification
US11429625B2 (en) Query engine for remote endpoint information retrieval
US10326792B2 (en) Virus intrusion route identification device, virus intrusion route identification method, and program
US10735455B2 (en) System for anonymously detecting and blocking threats within a telecommunications network
US10447709B2 (en) Methods and systems for integrating reconnaissance with security assessments for computing networks
US8347396B2 (en) Protect sensitive content for human-only consumption
US9202048B2 (en) Method and system for discrete stateful behavioral analysis
US8307434B2 (en) Method and system for discrete stateful behavioral analysis
WO2021024532A1 (ja) 計算機システム及び情報の共有方法
US9292341B2 (en) RPC acceleration based on previously memorized flows
WO2017019717A1 (en) Dynamic attachment delivery in emails for advanced malicious content filtering
US10951645B2 (en) System and method for prevention of threat
CN111800490A (zh) 获取网络行为数据的方法、装置及终端设备
US9471404B1 (en) Enriching API registry using big data analytics
US11675900B2 (en) Generating suggested courses of actions for incidents based on previous incident handling
JP6531601B2 (ja) 診断プログラム、診断方法および診断装置
US10735440B2 (en) Communication destination determination device, communication destination determination method, and recording medium
JP2019192265A (ja) 情報処理装置、情報処理方法、およびプログラム
US11863583B2 (en) Generating action recommendations for courses of action used for incident response
RU2752241C2 (ru) Способ и система для выявления вредоносной активности предопределенного типа в локальной сети
US10250625B2 (en) Information processing device, communication history analysis method, and medium
Inns The evolution and application of SIEM systems
US20130254893A1 (en) Apparatus and method for removing malicious code
JP6900328B2 (ja) 攻撃種別判定装置、攻撃種別判定方法、及びプログラム
US20210173924A1 (en) Automated Cybersecurity Threat Detection with Aggregation and Analysis

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020849673

Country of ref document: EP

Effective date: 20220307