WO2018146757A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
WO2018146757A1
WO2018146757A1 PCT/JP2017/004636 JP2017004636W WO2018146757A1 WO 2018146757 A1 WO2018146757 A1 WO 2018146757A1 JP 2017004636 W JP2017004636 W JP 2017004636W WO 2018146757 A1 WO2018146757 A1 WO 2018146757A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
determination unit
update
normal
current
Prior art date
Application number
PCT/JP2017/004636
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 JP2018566696A priority Critical patent/JP6523582B2/ja
Priority to PCT/JP2017/004636 priority patent/WO2018146757A1/ja
Priority to US16/470,053 priority patent/US20200104503A1/en
Publication of WO2018146757A1 publication Critical patent/WO2018146757A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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 program update.
  • Patent Document 1 discloses an intrusion prevention system that detects intrusion and abnormality in an industrial control system.
  • the industrial control system When the industrial control system is subjected to a cyber attack, the industrial control system behaves illegally due to unauthorized access. For this reason, the intrusion prevention system of Patent Document 1 detects intrusion and abnormality in the industrial control system by monitoring network communication and measuring control system behavior (parameters).
  • the monitoring module monitors the contents of a memory that stores program code, hardware configuration, software configuration, etc., thereby controlling or adjusting the operation state of the unit, hardware expansion state, program state Etc. are monitored.
  • the monitoring module detects an unauthorized operation as a result of monitoring.
  • the maintenance work by the maintenance terminal device can perform more processes than the normal terminal device, such as updating the control program.
  • communication packet data for updating the control program can be transmitted from the maintenance terminal device to the controller. If the worker performs maintenance work using the maintenance terminal device without noticing that the maintenance terminal device is infected with a virus, communication packet data altered by the virus is transmitted. As a result, the legitimate program is updated to an illegal program by the communication packet data altered by the virus, and an abnormality occurs in the maintenance target device.
  • Patent Document 1 and Patent Document 2 a program updated by communication packet data transmitted from a program update management apparatus that manages program updates such as the above-described maintenance terminal apparatus is not inspected. For this reason, in the techniques of Patent Literature 1 and Patent Literature 2, when the program update management device is infected with a virus, the program is prevented from being illegally updated by communication packet data transmitted from the program update management device. There is a problem that cannot be done.
  • the main purpose of the present invention is to solve the above problems. Specifically, the main purpose is to prevent the program from being illegally updated by communication packet data transmitted from the program update management device.
  • An information processing apparatus includes: A receiving unit for receiving communication packet data used for updating a current program, transmitted from a program update management device that manages program updates; A program acquisition unit for acquiring an update program of the current program as a packet update program using the communication packet data; A normal accuracy determination unit that analyzes a difference between the current program and the packet update program and determines a probability that the packet update program is a normal update program of the current program;
  • FIG. 3 is a diagram illustrating an example of a system configuration according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a normal work determination device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration example of a normal work determination device according to the first embodiment.
  • 5 is a flowchart illustrating an operation example of a normal work determination device according to the first embodiment.
  • 5 is a flowchart illustrating an operation example of a reception unit and a control program construction unit according to the first embodiment.
  • 5 is a flowchart showing an operation example of a past program storage unit according to the first embodiment.
  • 5 is a flowchart illustrating an operation example of a difference determination unit according to the first embodiment.
  • FIG. 1 is a diagram illustrating an example of a system configuration according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a normal work determination device according to the first embodiment.
  • FIG. 3 is a diagram
  • FIG. 3 is a diagram illustrating an example of normal accuracy criteria according to the first embodiment.
  • 5 is a flowchart illustrating an operation example of a difference determination unit according to the first embodiment.
  • FIG. 5 is a diagram illustrating a functional configuration example of a normal work determination device according to a second embodiment.
  • 10 is a flowchart showing an operation example of a maintenance work schedule DB according to the second embodiment. The figure which shows the example of the maintenance construction schedule table which concerns on Embodiment 2.
  • FIG. 9 is a flowchart illustrating an operation example of a scheduled work determination unit according to the second embodiment.
  • FIG. *** Explanation of configuration *** FIG. 1 shows a system configuration example according to the present embodiment.
  • the system according to the present embodiment includes a normal work determination device 100, a maintenance terminal device 101, a plurality of controllers 102, and a packet capture 103.
  • the normal work determination device 100 corresponds to an information processing device.
  • the operations performed by the normal work determination device 100 correspond to an information processing method and an information processing program. Details of the normal work determination device 100 will be described later.
  • the maintenance terminal device 101 manages the update of the control program executed by the controller 102.
  • the maintenance terminal device 101 corresponds to a program update management device.
  • the maintenance terminal device 101 transmits the communication packet data 107 to the controller 102.
  • the communication packet data 107 includes data that is used for updating the control program and data that is not used for updating the control program. Details of the communication packet data 107 will be described later.
  • a plurality of controllers 102 are maintenance target devices. Each controller 102 receives communication packet data 107 from the maintenance terminal device 101. When each controller 102 receives the communication packet data 107 used for updating the control program, the controller 102 updates the control program using the received communication packet data 107. Each controller 102 may install the updated control program in another device.
  • the packet capture 103 collects the communication packet data 107 transmitted from the maintenance terminal apparatus 101 to the controller 102 and transmits the collected communication packet data 107 to the normal work determination apparatus 100.
  • the packet capture 103 is realized by an abnormality detection system using a white list, for example.
  • the normal operation determination device 100 also updates the current program using the communication packet data 107 to obtain a packet update program.
  • the communication packet data 107 includes at least a time stamp, controller information, and an instruction command.
  • the time stamp indicates the generation time of the communication packet data 107.
  • the controller information indicates the controller 102 that is the destination of the communication packet data 107.
  • the instruction command is an instruction to the controller 102 indicated by the controller information.
  • the communication packet data 107 used for updating the control program includes program data.
  • the program data is a partial program obtained by dividing the packet update program. That is, a packet update program can be obtained by combining a plurality of program data.
  • the controller 102 transmits a plurality of communication packet data 107.
  • the packet capture 103 collects the plurality of communication packet data 107 transmitted from the maintenance terminal device 101 and transmits the collected plurality of communication packet data 107 to the normal work determination device 100.
  • the normal operation determination apparatus 100 receives a plurality of communication packet data 107 from the packet capture 103, extracts a plurality of program data from the plurality of communication packet data 107, and obtains a packet update program by combining the extracted plurality of program data.
  • the communication packet data 107 includes data other than the time stamp, controller information, command command, and program data, but the description is omitted because it is not directly related to the present embodiment.
  • the packet capture 103 may transmit the communication packet data 107 to the normal operation determination device 100 as it is. Further, the packet capture 103 extracts only the time stamp, controller information, command command, and program data from the communication packet data 107, and transmits only the extracted time stamp, controller information, command command, and program data to the normal work determination device 100. May be. Hereinafter, an example will be described in which the packet capture 103 transmits the communication packet data 107 to the normal operation determination apparatus 100 as it is.
  • FIG. 2 shows a hardware configuration example of the normal work determination device 100 according to the present embodiment.
  • the normal work determination device 100 is a computer.
  • the normal work determination device 100 includes a processor 201, a memory 202, a communication interface 203, an auxiliary storage device 204, and an input / output interface 205 as hardware.
  • the processor 201, the memory 202, the communication interface 203, the auxiliary storage device 204, and the input / output interface 205 are connected by a system bus.
  • the auxiliary storage device 204 stores a program that realizes functions of the control program construction unit 104, the difference determination unit 106, and the reception unit 115, which will be described later with reference to FIG.
  • the program is loaded into the memory 202. Then, the program is read from the memory 202 to the processor 201 and executed by the processor 201. When the processor 201 executes the program, operations of a control program construction unit 104, a difference determination unit 106, and a reception unit 115 described later are performed.
  • the communication interface 203 is used for communicating with the packet capture 103.
  • the input / output interface 205 is used for the user of the normal work determination apparatus 100 to input various data and to present the various data to the user of the normal work determination apparatus 100.
  • FIG. 3 shows a functional configuration example of the normal work determination device 100 according to the present embodiment.
  • the normal work determination device 100 includes a control program construction unit 104, a past program storage unit 105, a difference determination unit 106, and a reception unit 115.
  • the receiving unit 115 receives the communication packet data 107 transmitted from the maintenance terminal device 101 from the packet capture 103.
  • the process performed by the reception unit 115 corresponds to a reception process.
  • the control program construction unit 104 updates the current program using the communication packet data 107 and acquires an update program for the current program as the packet update program 109. That is, the control program construction unit 104 extracts a plurality of program data from the plurality of communication packet data 107, and generates a packet update program 109 by combining the extracted plurality of program data. Further, the control program construction unit 104 extracts a time stamp included in the communication packet data 107 as time information 108. Further, the control program construction unit 104 extracts controller information from the communication packet data 107 as controller information 114. Then, the control program construction unit 104 outputs the time information 108, the packet update program 109, and the controller information 114 to the difference determination unit 106.
  • control program construction unit 104 stores the time information 108, the packet update program 109, and the controller information 114 in the past program storage unit 105.
  • the control program construction unit 104 corresponds to a program acquisition unit. Further, the process performed by the control program construction unit 104 corresponds to a program acquisition process.
  • the past program storage unit 105 stores the current program 110 and a control program before the current program 110. Note that the current program 110 and control programs before the current program 110 are collectively referred to as past programs.
  • the past program storage unit 105 is realized by the memory 202 or the auxiliary storage device 204.
  • the difference determination unit 106 receives the time information 108, the packet update program 109, and the controller information 114 from the control program construction unit 104. Further, the difference determination unit 106 reads out the current program 110 from the past program storage unit 105. The current program 110 that the difference determination unit 106 reads from the past program storage unit 105 is a control program of the previous version (before update) of the packet update program 109 received from the control program construction unit 104. Then, the difference determination unit 106 analyzes the difference between the current program 110 and the packet update program 109 to determine the probability that the packet update program 109 is a normal update program of the current program 110.
  • the difference determination unit 106 changes the value of the difference between the current program 110 and the packet update program 109 (for example, the number of changed lines) and the current program 110 and the packet update program 109. And the degree of change of the value in the parameter is analyzed to determine the probability that the packet update program 109 is a normal update program of the current program 110. Further, the difference determination unit 106 may analyze only the amount of difference between the current program 110 and the packet update program 109 to determine the probability that the packet update program 109 is a normal update program of the current program 110. Then, the difference determination unit 106 outputs a determination result 111.
  • the determination result 111 includes a change state 112 and a normal accuracy 113.
  • the change state 112 is a difference between the current program 110 and the packet update program 109.
  • the normality accuracy 113 is the accuracy determined by the difference determination unit 106 and that the packet update program 109 is a normal update program of the current program 110.
  • the difference determination unit 106 outputs the determination result 111 to a prescribed terminal device (not shown).
  • the difference determination unit 106 may store the determination result 111 in the auxiliary storage device 204 together with the output of the determination result 111 to the terminal device. Further, the difference determination unit 106 may store the determination result 111 in the auxiliary storage device 204 without outputting the determination result 111 to the terminal device.
  • the difference determination unit 106 may output the determination result 111 to a display device that is the input / output interface 205.
  • the difference determination unit 106 corresponds to a normal accuracy determination unit.
  • the process performed by the difference determination unit 106 corresponds to a normal accuracy determination process.
  • control program construction unit 104 the difference determination unit 106, and the reception unit 115 are realized by programs.
  • the processor 201 executes the program and operates as the control program construction unit 104, the difference determination unit 106, and the reception unit 115.
  • FIG. 3 schematically illustrates a state in which the processor 201 is executing a program that implements the functions of the control program construction unit 104, the difference determination unit 106, and the reception unit 115.
  • FIG. 4 shows an outline of the operation of the normal work determination apparatus 100.
  • FIG. 5 shows operations of the reception unit 115 and the control program construction unit 104 (details of S301 and S302 in FIG. 4).
  • FIG. 6 shows the operation of the past program storage unit 105 (details of S303 and S305 in FIG. 4).
  • FIG. 7 shows the operation of the difference determination unit 106 (details of S304 in FIG. 4).
  • the receiving unit 115 receives the communication packet data 107 from the packet capture 103 (step S301). In addition, the reception unit 115 outputs the communication packet data 107 to the control program construction unit 104.
  • control program construction unit 104 acquires the packet update program 109 using the communication packet data 107 (step S302). In addition, the control program construction unit 104 transfers the packet update program 109, time information 108 and controller information 114 to the difference determination unit 106.
  • the difference determination unit 106 reads the current program 110 from the past program storage unit 105 (step S303).
  • the difference determination unit 106 extracts the difference between the packet update program 109 and the current program 110, and determines the normal accuracy (step S304). Then, the difference determination unit 106 outputs a determination result 111.
  • control program construction unit 104 stores the packet update program 109 as the current program 110 in the past program storage unit 105 (step S305).
  • the maintenance terminal device 101 divides the packet update program into a plurality of partial programs, and stores the plurality of partial programs in the plurality of communication packet data 107 as program data. Then, the maintenance terminal device 101 transmits a plurality of communication packet data 107 to the controller 102.
  • the packet capture 103 is connected to a network connecting the maintenance terminal device 101 and the controller 102, collects communication packet data 107 transmitted from the maintenance terminal device 101 to the controller 102, and normalizes the collected communication packet data 107. It transmits to the work determination apparatus 100.
  • the maintenance terminal device 101 transmits the communication packet data 107 not including the program data to the controller 102 before transmitting the first communication packet data 107 including the program data.
  • the maintenance terminal apparatus 101 transmits the communication packet data 107 not including program data to the controller 102 after transmitting the last communication packet data 107 including program data. For this reason, after receiving communication packet data 107 not including program data, receiving unit 115 receives a plurality of communication packet data 107 including program data, and then receives communication packet data 107 not including program data. .
  • the receiving unit 115 receives the communication packet data 107 from the packet capture 103 (step S401).
  • the receiving unit 115 outputs the received communication packet data 107 to the control program construction unit 104.
  • the control program construction unit 104 decomposes the communication packet data 107 received this time (hereinafter referred to as the current communication packet data 107). That is, the control program construction unit 104 decomposes the current communication packet data 107 into time stamps, controller information, command commands, and the like. Then, the control program construction unit 104 determines whether or not program data is included in the communication packet data 107 (step S402). If the current communication packet data 107 includes program data (YES in step S402), the communication packet data 107 is stored in the communication packet data 107 received previously (hereinafter referred to as the previous communication packet data 107). It is determined whether it is included (step S403).
  • the control program construction unit 104 If the previous communication packet data 107 does not include program data (NO in step S403), the control program construction unit 104 generates time information 108 from the time stamp included in the current communication packet data 107. Specifically, a time stamp included in the current communication packet data 107 is extracted as time information 108. Next, the control program construction unit 104 stores the program data and controller information 114 included in the current communication packet data 107 and the time information 108 generated in step S404 in a temporary storage area in association with each other. (Step S405).
  • the temporary storage area is, for example, a register in the memory 202 or the processor 201.
  • step S403 when program data is included in the previous communication packet data 107 (YES in step S403), the time information 108 has already been generated, and therefore the control program construction unit 104 omits step S404 and omits the current communication packet.
  • Program data included in the data 107 is stored in a temporary storage area (step S405).
  • the control program construction unit 104 stores the program data included in the current communication packet data 107 in the temporary storage area in association with the program data included in the previous communication packet data 107.
  • control program construction unit 104 determines whether or not the previous communication packet data 107 includes program data. (Step S406).
  • control program construction unit 104 ends the process.
  • the control program construction unit 104 reads a plurality of program data, time information 108, and controller information 114 from the temporary storage area (step S406). S407). Then, the control program construction unit 104 generates a packet update program 109 from the plurality of read program data (step S408). Thereafter, the control program construction unit 104 outputs the generated packet update program 109, time information 108, and controller information 114 to the difference determination unit 106 (step S409).
  • the past program storage unit 105 receives a read request from the difference determination unit 106 (step S501).
  • the read request includes time information 108 and controller information 114.
  • the past program storage unit 105 extracts the current program 110 corresponding to the controller information 114 from the past program based on the read request, and outputs the extracted current program 110 to the difference determination unit 106 (step S502). ). More specifically, the past program storage unit 105 is associated with the same controller information 114 as the controller information 114 included in the read request, and is a time before the time indicated by the time information 108 included in the read request. The past program associated with the time information 108 indicating the latest time is extracted as the current program 110. Then, the past program storage unit 105 outputs the extracted current program 110 to the difference determination unit 106.
  • the past program storage unit 105 receives a storage request from the control program construction unit 104 (step S503).
  • the storage request includes time information 108, a packet update program 109, and controller information 114.
  • the past program storage unit 105 stores the time information 108, the packet update program 109, and the controller information 114 included in the storage request in association with each other (step S504).
  • the difference determination unit 106 receives the time information 108, the packet update program 109, the controller information 114, and the current program 110 (step S601). Specifically, the difference determination unit 106 receives the time information 108, the packet update program 109, and the controller information 114 from the control program construction unit 104, and generates a read request using the time information 108 and the controller information 114. Then, the difference determination unit 106 outputs the generated read request to the past program storage unit 105 and receives the current program 110 from the past program storage unit 105.
  • the difference determination unit 106 extracts a difference between the packet update program 109 and the current program 110, and generates a change state 112 representing the extracted difference (step S602).
  • the difference determination unit 106 obtains the normality accuracy 113 using the change state 112 generated in step S602 (step S603).
  • the difference determination unit 106 uses a normal accuracy criterion 701 shown in FIG. Specifically, the difference determination unit 106 lowers the normality accuracy 113 as the number of lines changed from the current program 110 among the lines included in the packet update program 109 increases. When there are few changes in the row, the difference determination unit 106 extracts parameters whose values have changed between the current program 110 and the packet update program 109, and the packet update program 109 in the extracted parameters It is determined whether the degree of change with the current program 110 is large.
  • the difference determination unit 106 sets the normal accuracy 113 to “low”. Note that the higher the normality accuracy 113, the higher the possibility that the packet update program 109 is a normal update program of the current program 110. In other words, the lower the normality accuracy 113, the higher the possibility that the packet update program 109 is an unauthorized program.
  • the difference determination unit 106 outputs the change state 112 and the normality accuracy 113 as the determination result 111 (step S604).
  • FIG. 9 illustrates details of step S600 of FIG. Hereinafter, description will be made using the normal accuracy criterion 701 in FIG.
  • the difference determination unit 106 counts lines that have changed between the current program 110 and the packet update program 109 (step S801). Specifically, the difference determination unit 106 sets, as the change state 112, the number a of rows deleted from the current program 110 in the packet update program 109, the number b of rows added in the packet update program 109, and the packet update program 109. The number of rows c in which the parameter value has been changed is counted.
  • the difference determination unit 106 calculates the rate at which the program has been rewritten (step S802). Specifically, the difference determination unit 106 calculates what percentage of the number of lines of the current program 110 (a + b + c / number of lines of the current program 110) the total number of changed lines (a + b + c) counted in step S801.
  • the difference determination unit 106 determines whether or not the ratio calculated in step S802 is equal to or less than a threshold value (step S803).
  • step S802 If the ratio calculated in step S802 exceeds the threshold value (NO in step S803), the difference determination unit 106 sets the normal accuracy 113 to “low” (step S808).
  • step S803 when the ratio calculated in step S802 is equal to or smaller than the threshold (YES in step S803), the difference determination unit 106 extracts the parameter value before the change from the current program 110, and updates the parameter value after the change by packet. Extracted from the program 109 (step S804). The difference determination unit 106 performs the process of step S804 for each parameter whose value has been changed.
  • the difference determination unit 106 calculates the rate of increase / decrease of the parameter value for each parameter (step S805). For example, a change in which the value of the parameter increases by 15 from 10 to 25, for example, is expressed as an increase in the value of the parameter from value X to value Y by A. That is, the increase amount of the parameter value is expressed as A and expressed as “X ⁇ Y: A increase”. Further, when the parameter is decreased from the value X to the value Y by A, it is expressed as “X ⁇ Y: A decrease”. The difference determination unit 106 calculates how much of the range of values that can be set for the parameter is the absolute value of the increase / decrease in the parameter value (hereinafter referred to as
  • the difference determination unit 106 uses the controller information 114 to calculate the maximum value (MAX) and the minimum value (MIN) of the corresponding parameter from the parameter setting value data indicating the range of values that can be set for each parameter. To get. Then, the difference determination unit 106 calculates
  • the difference determination unit 106 compares the rate of increase / decrease of the value obtained in step S805 with a threshold for each parameter (step S806). If the rate of increase / decrease of the values for all parameters is equal to or less than the threshold (YES in step S806), the difference determination unit 106 sets the normal accuracy 113 to “high” (step S807). On the other hand, if at least one value increase / decrease rate exceeds the threshold (NO in step S806), the difference determination unit 106 sets the normal accuracy 113 to “low” (step S808).
  • the difference determination unit 106 outputs the change state 112 and the normal accuracy 113 as the determination result 111 (step S604). If the normality accuracy 113 is set to “high”, the difference determination unit 106 instructs the control program construction unit 104 to store the packet update program 109 in the past program storage unit 105.
  • the control program construction unit 104 outputs a storage request including the time information 108, the packet update program 109, and the controller information 114 to the past program storage unit 105 in accordance with an instruction from the difference determination unit 106.
  • the past program storage unit 105 stores the time information 108, the packet update program 109, and the controller information 114 in accordance with step S503 and step S504 in FIG.
  • the difference determination unit 106 instructs the control program construction unit 104 to store the packet update program 109 in a storage area other than the past program storage unit 105.
  • the control program construction unit 104 stores, for example, the time information 108, the packet update program 109, and the controller information 114 in an external storage area for quarantine in accordance with an instruction from the difference determination unit 106.
  • the control program construction unit 104 stores the time information 108, the packet update program 109, and the controller information 114 in the past program storage unit 105 or an external storage area.
  • the past program storage unit 105 may store the time information 108, the packet update program 109, and the controller information 114 in the past program storage unit 105 in parallel with step S409 of FIG. .
  • the normal operation determination device 100 extracts the difference between the packet update program 109 and the current program 110, and the probability that the packet update program 109 is a normal update packet of the current program 110. Determine. Therefore, according to the present embodiment, it is possible to prevent the current program 110 from being illegally updated by the communication packet data 107 transmitted from the maintenance terminal device 101.
  • the communication packet data 107 is transmitted from the maintenance terminal device 101 infected with a virus to the controller 102, and the current program 110 of the controller 102 is prevented from being updated by an unauthorized packet update program 109. can do.
  • Embodiment 2 the difference determination unit 106 determines the normality accuracy 113 only from the change state 112. In the present embodiment, the difference determination unit 106 determines the normality accuracy 113 based on the change state 112 and the update schedule of the current program 110. In the present embodiment, differences from the first embodiment will be mainly described. Note that matters not described in the present embodiment are the same as those in the first embodiment.
  • FIG. 10 shows a functional configuration example of the normal work determination device 100 according to the present embodiment.
  • a scheduled work determination unit 901 and a maintenance work schedule DB 902 are added as compared with the configuration of FIG.
  • the difference determination unit 106 does not output the determination result 111, but instead outputs the time information 108, the change state 112, and the normal accuracy 113 to the scheduled work determination unit 901.
  • the difference determination unit 106 and the scheduled work determination unit 901 correspond to a normal accuracy determination unit.
  • the configuration other than the scheduled work determination unit 901 and the maintenance work schedule DB 902 is the same as that shown in FIG.
  • the scheduled work determination unit 901 receives the time information 108, the change state 112, and the normal accuracy 113 from the difference determination unit 106. Further, the scheduled work determination unit 901 outputs the time information 108 to the maintenance work schedule DB 902. The scheduled work determination unit 901 receives schedule information 903 from the maintenance work schedule DB 902. The schedule information 903 indicates a schedule of maintenance work or construction work for the controller 102 of the current program 110. The scheduled work determination unit 901 determines whether or not the maintenance work or construction work schedule indicated in the schedule information 903 matches the change state 112. Then, the scheduled work determination unit 901 changes the normal accuracy 113 if necessary as a result of the determination.
  • the scheduled work determination unit 901 changes the normal accuracy 113 to “low”.
  • the normality accuracy 113 received from the difference determination unit 106 is “low”
  • the scheduled work determination unit 901 changes the normality accuracy 113 to “high”.
  • the scheduled work determination unit 901 is realized by a program, like the control program construction unit 104, the difference determination unit 106, and the reception unit 115.
  • the maintenance work schedule DB 902 manages a maintenance work schedule table.
  • the maintenance work schedule table describes the maintenance work and the work schedule.
  • the maintenance work schedule DB 902 receives the time information 108 from the scheduled work determination unit 901, and extracts a maintenance work or a work work schedule corresponding to the received time information 108 from the maintenance work schedule table. Then, the maintenance work schedule DB 902 returns schedule information 903 indicating the extracted maintenance work or work schedule to the scheduled work determination unit 901.
  • the maintenance work schedule DB 902 is realized by the memory 202 or the auxiliary storage device 204.
  • the difference determination unit 106 determines the normal accuracy 113
  • the difference determination unit 106 outputs the time information 108, the change state 112, and the normal accuracy 113 to the scheduled work determination unit 901.
  • a procedure after the difference determination unit 106 outputs the time information 108, the change state 112, and the normal accuracy 113 to the scheduled work determination unit 901 will be described.
  • FIG. 11 shows the operation of the maintenance work schedule DB 902.
  • FIG. 12 shows an example of a maintenance work schedule table managed by the maintenance work schedule DB 902.
  • FIG. 13 shows the operation of the scheduled work determination unit 901. The operations of the scheduled work determination unit 901 and the maintenance work schedule DB 902 will be described below with reference to FIGS.
  • the scheduled work determination unit 901 receives time information 108, a change state 112, and a normal accuracy 113 from the difference determination unit 106 (step S ⁇ b> 1201). Next, the scheduled work determination unit 901 outputs the time information 108 to the maintenance work schedule DB 902 (step S1202).
  • the maintenance work schedule DB 902 receives the time information 108 from the scheduled work determination unit 901 (step S1001). Then, the maintenance work schedule DB 902 searches the maintenance work schedule table 1101 for a schedule near the time indicated by the time information 108 received from the scheduled work determination unit 901 (step S1002). For example, when the time indicated by the time information 108 is “2017/02/21 11:00” as indicated by reference numeral 904 in FIG. 10, the maintenance work schedule DB 902 stores the year, month and day of the maintenance work schedule table 1101. With reference to the start time and end time columns, a row indicated by reference numeral 905 in FIG. 12 is extracted as a schedule close to “2017/02/21 11:00”.
  • the maintenance work schedule DB 902 outputs the schedule information 903 indicating the schedule to the scheduled work determination unit 901 (Ste S1004).
  • the maintenance work schedule table 1101 includes an identifier of the maintenance terminal device 101, an identifier of the controller 102 to be maintained (eg, controller name, IP (Internet Protocol) address, MAC (Media Access Control)). ) Address, host name).
  • the maintenance work schedule table 1101 may include a maintenance tool name used by the maintenance terminal apparatus 101 and a command name (OS command or maintenance tool command) used for maintenance by the maintenance terminal apparatus 101.
  • the maintenance work schedule table 1101 may include a menu of maintenance tools in the maintenance terminal apparatus 101, a maintenance worker who uses the maintenance terminal apparatus 101, and account information (user name, etc.) used for maintenance in the maintenance terminal apparatus 101. .
  • the scheduled work determination unit 901 sets the normal accuracy 113 to “low” when the schedule information 903 is not received from the maintenance work schedule DB 902 (NO in step S1203) (step S1206). If the normal accuracy 113 acquired from the difference determination unit 106 is already “low”, the scheduled work determination unit 901 does not need to update the normal accuracy 113. On the other hand, when the schedule information 903 is received from the maintenance work schedule DB 902 (YES in step S1203), the scheduled work determination unit 901 indicates information indicating the change status 112 related to the controller information 114 or the change status in the received schedule information 903. It is determined whether information that can be estimated by 112 is described (step S1204).
  • the schedule information 903 describes “addition of a device connected to the controller”, “removal of a device connected to the controller”, “parameter change”, “addition of functions to the control program”, etc.
  • the determination unit 901 determines that information suggesting the change state 112 or information that can be estimated from the change state 112 is described in the schedule information 903.
  • the scheduled work determination unit 901 includes information described in the schedule information 903. And the change state 112 are compared. Then, the scheduled work determination unit 901 determines whether or not the change state 112 is a planned change state (step S1205). That is, the scheduled work determination unit 901 determines whether or not an update from the current program 110 to the packet update program 109 is scheduled in the maintenance work or the construction work indicated in the schedule information 903.
  • the scheduled work determination unit 901 sets the normality accuracy 113 to “high” (step S1206).
  • the normal accuracy 113 acquired from the difference determination unit 106 is already “high”
  • the scheduled work determination unit 901 does not need to update the normal accuracy 113.
  • the change state 112 is not the planned change state (YES in step S1205)
  • the scheduled work determination unit 901 sets the normal accuracy 113 to “low” (step S1206). If the normal accuracy 113 acquired from the difference determination unit 106 is already “low”, the scheduled work determination unit 901 does not need to update the normal accuracy 113.
  • the scheduled work determination unit 901 determines whether or not the normality accuracy 113 output from the difference determination unit 106 is “high”. (Step S1207). If the normal accuracy 113 output from the difference determination unit 106 is “high” (YES in step S1207), the scheduled work determination unit 901 sets the normal accuracy 113 to “low” (step S1206). If the normality accuracy 113 output from the difference determination unit 106 is not “high” (NO in step S1207), the scheduled work determination unit 901 performs step S1209.
  • the scheduled work determination unit 901 outputs the change state 112 and the normal accuracy 113 as the determination result 111 (step S1209).
  • the scheduled work determination unit 901 refers to the schedule information 903 to determine the correctness of the normality accuracy determined by the difference determination unit 106. Therefore, according to the present embodiment, it is possible to determine whether or not the packet update program 109 is a valid update program with higher accuracy. Further, according to the present embodiment, it can be determined whether the worker is performing the correct work at the correct time, and an unauthorized operation by the worker can also be detected.
  • the normal accuracy determination criterion can be generated by the operator of the normal operation determination apparatus 100 by examining the update status of past control programs. For example, the operator sets deletion, addition of a line, change of a parameter value, replacement of a parameter, and the like as an update mode as a result of the investigation of the update status of the past control program. Then, the operator may set a weighting factor for each update mode based on the occurrence probability as a criterion for determining the normal accuracy. Further, the operator may set the normal value of the increase / decrease amount of the number of lines and the normal value of the increase / decrease amount of the parameter value as the determination criterion of the normality accuracy based on the past update status of the control program.
  • program data may be included in only one communication packet data without being divided into a plurality of communication packet data.
  • the normal accuracy 113 is only “high” and “low”, but the normal accuracy 113 may have three or more stages.
  • the difference determination unit 106 and the scheduled work determination unit 901 may output the determination result 111 to a tablet terminal used by a worker who performs maintenance work or a tablet terminal used by a worker who performs construction work.
  • Embodiment 3 when a security device installed in the industrial control system detects an attack on the industrial control system, an attack detection alert is transmitted to the normal work determination device 100.
  • the normal work determination device 100 refers to the maintenance work schedule DB 902 to determine whether the cause of the attack detection alert is due to maintenance work on the industrial control system or an attack.
  • processing by maintenance work may be detected as an attack activity (false detection).
  • the normal work determination device 100 reduces such erroneous detection.
  • the industrial control system is a protection target system.
  • the hardware configuration of the normal operation determination apparatus 100 according to the present embodiment is as shown in FIG. Further, the functional configuration of the normal work determination apparatus 100 according to the present embodiment is as shown in FIG. However, the receiving unit 115 of the normal work determination device 100 receives an attack detection alert from a security device (not shown) (eg, an intrusion detection device or a log analysis device) not shown.
  • the security device detects attacks on the plurality of controllers 102, the plurality of devices included in the industrial control system, the plurality of terminals, the plurality of computers, and the entire industrial control system.
  • An intrusion detection device which is an example of a security device, detects a communication abnormality in an industrial control system network.
  • a log analysis device which is an example of a security device, collects an event log of each controller 102, each device, each terminal, and each computer, a log of a communication device, an alert log such as an intrusion detection device and anti-virus software.
  • the log analysis device analyzes each collected log individually.
  • the log analyzer can also analyze a plurality of logs in relation to each other.
  • the log analysis device detects the occurrence of a suspicious event through such log analysis.
  • the security device detects an attack on the industrial control system, the security device transmits an attack detection alert notifying that the attack on the industrial control system has been detected to the normal operation determination device 100.
  • the security device transmits an attack detection alert to the normal operation determination device 100 as the communication packet data 107.
  • the security device may notify the normal operation determination device 100 of an attack detection alert in a file format.
  • the security device transmits an attack detection alert as communication packet data 107 to the normal work determination device 100.
  • the attacks detected by the security device are, for example, virus infection, service denial attack, and the like.
  • the attack detection alert includes, for example, the following components. Each of the following components indicates an attribute of the detected attack. ⁇ Attack detection time (or time (period) when the attack ended from the time when the attack started) ⁇ Identifier of the attacked controller, device, terminal, etc. (eg IP address, controller name, device name, terminal name, etc.) ⁇ Identifier of the attacked controller, device, terminal, etc.
  • Information to notify the situation when an attack is detected is, for example, the command used for the attack (may include an argument)
  • the account name used for the attack may be included in the “information for notifying the situation when the attack is detected”.
  • the “information for notifying the situation when an attack is detected” may include the name of the account for which login was attempted.
  • the above-described “contents of attack” and “information for notifying the situation when an attack is detected” are merely examples, and are different for each security device.
  • receiving section 115 outputs the received attack detection alert to scheduled work determination section 901.
  • the scheduled work determination unit 901 interprets the attack detection alert and extracts the above components from the attack detection alert. Also, the scheduled work determination unit 901 searches the maintenance work schedule DB 902 using the attack detection time, the identifier of the controller that received the attack, and the like as search keys. The search method is the same as that shown in the second embodiment.
  • the maintenance work schedule DB 902 describes maintenance work schedules for the industrial control system. When the corresponding schedule information 903 is retrieved from the maintenance work schedule DB 902, the scheduled work determination unit 901 determines that the cause of the occurrence of the attack detection alert is due to the maintenance work.
  • the scheduled work determination unit 901 determines that the cause of occurrence of the attack detection alert is not a maintenance work but an attack.
  • the scheduled work determination unit 901 outputs the determination result to the outside as the determination result 111.
  • the change state 112 is not set in the determination result 111.
  • the scheduled work determination unit 901 determines that the cause of the attack detection alert is an attack, the scheduled work determination unit 901 sets the normal accuracy 113 of the determination result 111 to “low”.
  • the scheduled work determination unit 901 sets the normality accuracy 113 of the determination result 111 to “high”.
  • the scheduled work determination unit 901 may omit the time information 108 and the normality accuracy 113 and output the determination result 111 including only information indicating “maintenance” or “attack” as the cause of the attack detection alert. Good.
  • the determination result 111 is output, for example, to the terminal device of the monitor who monitors the attack detection alert of the security device. If the normal work determination device 100 and the monitor's terminal device are different devices, the scheduled work determination unit 901 includes the determination result 111 in the notification packet and transmits it to the monitor's terminal device. If the normal work determination device 100 is the terminal device of the monitor, the scheduled work determination unit 901 displays the determination result 111 on the display device, for example.
  • the scheduled work determination unit 901 may perform a search using the identifier of the attacked controller or the like instead of the identifier of the attacked controller or the like in the search of the maintenance work schedule DB 902.
  • the scheduled work determination unit 901 refers to “information for notifying the situation when an attack is detected” included in the attack detection alert when the corresponding schedule information 903 is searched, and causes the attack detection alert It may be determined whether is a maintenance work or an attack.
  • the schedule information 903 describes the command used in the maintenance work
  • the attack detection alert describes the command used for the attack as “information for notifying the situation when the attack is detected”. It shall be.
  • the scheduled work determination unit 901 compares the command described in the schedule information 903 with the command described in the attack detection alert. When these commands match, the scheduled work determination unit 901 determines that the attack detection alert has been issued due to the command used in the maintenance work, and the cause of the attack detection alert is the maintenance work. judge.
  • the scheduled work determination unit 901 determines that a command not scheduled in the maintenance work has been executed, and determines that the cause of the attack detection alert is an attack.
  • the schedule information 903 describes the name of the program used in the maintenance work (or the name of the tool or the menu name), and the attack detection alert includes “information for notifying the situation when an attack is detected”.
  • the name of the program used for the attack (or the name of the tool or the menu name) is described.
  • the scheduled work determination unit 901 includes the program name (or tool name or menu name) described in the schedule information 903 and the program name (or tool name or menu) described in the attack detection alert. Name).
  • the scheduled work determination unit 901 determines that the cause of the attack detection alert is maintenance work. On the other hand, if these program names (or tool names or menu names) do not match, it is determined that the cause of the attack detection alert is an attack. Also, the schedule information 903 describes the account name used for maintenance work, and the attack detection alert describes the account name used for the attack as “information for notifying the situation when an attack is detected” It is assumed that In this case, the scheduled work determination unit 901 compares the account name described in the schedule information 903 with the account name described in the attack detection alert. If these account names match, the scheduled work determination unit 901 determines that the cause of the attack detection alert is maintenance work.
  • the schedule information 903 describes the name of the file (or the name of the repository) that is referenced (read / updated, etc.) in the maintenance work, and “notifies the situation when an attack is detected” is displayed in the attack detection alert. It is assumed that the name of the file operated by the attacker (or the name of the repository) is described as “information”. In this case, the scheduled work determination unit 901 compares the file name (or repository name) described in the schedule information 903 with the file name (or repository name) described in the attack detection alert. .
  • the scheduled work determination unit 901 determines that the cause of the attack detection alert is maintenance work. On the other hand, if the file names (or repository names) do not match, it is determined that the cause of the attack detection alert is an attack. Similarly, when the “information for notifying the situation when an attack is detected” of the attack detection alert is not extracted as the schedule information 903, the scheduled work determination unit 901 determines that the cause of the attack detection alert is an attack. .
  • the attacker may be a person who operates the maintenance terminal device 101, malware that operates on another terminal device that remotely operates the maintenance terminal device 101, malware that operates on the maintenance terminal device 101, etc. do not do.
  • the scheduled work determination unit 901 refers to the maintenance work schedule DB 902 to determine the cause of an attack detection alert of a security device such as an intrusion detection device or a log analysis device. For this reason, there is an effect that the monitor who monitors the attack detection alert of the security device does not need to investigate the cause of the attack detection alert.
  • the monitor When the attack detection alert is due to erroneous detection due to maintenance, the monitor only needs to confirm the determination result 111 of the scheduled work determination unit 901, and the burden on the monitor can be reduced.
  • the processor 201 is an integrated circuit (IC) that performs processing.
  • the processor 201 is, for example, a CPU (Central Processing Unit) or a DSP (Digital Signal Processor).
  • the memory 202 is, for example, a RAM (Random Access Memory).
  • the auxiliary storage device 204 is, for example, a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
  • the communication interface 203 includes a receiver that receives data and a transmitter that transmits data.
  • the communication interface 203 is, for example, a communication chip or a NIC (Network Interface Card).
  • the input / output interface 205 is, for example, a keyboard, a mouse, or a display device.
  • the auxiliary storage device 204 also stores an OS (Operating System). Then, at least a part of the OS is executed by the processor 201.
  • the processor 201 executes a program that realizes the functions of the control program construction unit 104, the difference determination unit 106, the reception unit 115, and the scheduled work determination unit 901 while executing at least a part of the OS.
  • the processor 201 executes the OS, task management, memory management, file management, communication control, and the like are performed.
  • at least one of information, data, a signal value, and a variable value indicating processing results of the control program construction unit 104, the difference determination unit 106, the reception unit 115, and the scheduled work determination unit 901 is stored in the memory 202 and the auxiliary storage device 204.
  • programs that realize the functions of the control program construction unit 104, the difference determination unit 106, the reception unit 115, and the scheduled work determination unit 901 are a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD, and the like It may be stored in a portable storage medium.
  • “part” of the control program construction unit 104, the difference determination unit 106, the reception unit 115, and the scheduled work determination unit 901 may be read as “circuit”, “process”, “procedure”, or “processing”.
  • the normal operation determination apparatus 100 may be realized by an electronic circuit such as a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
  • the control program construction unit 104, the difference determination unit 106, the reception unit 115, and the scheduled work determination unit 901 are each realized as part of an electronic circuit.
  • the processor and the electronic circuit are also collectively referred to as a processing circuit.
  • 100 normal operation determination device 101 maintenance terminal device, 102 controller, 103 packet capture, 104 control program construction unit, 105 past program storage unit, 106 difference determination unit, 107 communication packet data, 108 time information, 109 packet update program, 110 Current program, 111 judgment result, 112 change status, 113 normal accuracy, 114 controller information, 115 receiving unit, 201 processor, 202 memory, 203 communication interface, 204 auxiliary storage device, 205 input / output interface, 701 normal accuracy standard, 901 schedule Work determination unit, 902 maintenance work schedule DB, 903 schedule information, 1101 maintenance work schedule table.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

受信部(115)は、保守端末装置(101)から送信される、現行プログラム(110)の更新に用いられる通信パケットデータ(107)を受信する。制御プログラム構築部(104)は、通信パケットデータ(107)を用いて現行プログラム(110)の更新プログラムをパケット更新プログラム(109)として取得する。差分判定部(106)は、現行プログラム(110)とパケット更新プログラム(109)との差分を解析して、パケット更新プログラム(109)が現行プログラム(110)の正常な更新プログラムである確度を判定する。

Description

情報処理装置、情報処理方法及び情報処理プログラム
 本発明は、プログラムの更新に関する。
 近年では、ウイルス又は悪意のある不正ソフトウェア(マルウェア)によるサイバー攻撃が増加している。例えば、重要なインフラストラクチャを構成するプラント又は工場に対する、ウイルス又は不正ソフトウェアによるサイバー攻撃が増加している。
 例えば、特許文献1では、産業制御システムへの侵入及び異常を検知する侵入防止システムが開示されている。産業制御システムがサイバー攻撃を受けると、不正なアクセスによって、産業制御システムが不正な挙動を起こす。このため、特許文献1の侵入防止システムは、ネットワーク通信の監視と、制御システム挙動(パラメータ)の測定を行うことで、産業制御システムへの侵入及び異常を検知する。
 特許文献2では、監視モジュールが、プログラムコードやハードウェア構成、ソフトウェア構成などを保存するメモリの内容を監視することで、制御又は調節を行うユニットの動作状態、ハードウェアの拡張状態、プログラムの状態等を監視する。そして、監視モジュールは、監視の結果、不正な操作を検出する。
特開2014-179074号公報 特表2016-505183号公報
 保守端末装置による保守作業では、制御プログラムの更新など、通常の端末装置と比べて多くの処理が可能である。例えば、保守端末装置から、制御プログラムを更新するための通信パケットデータをコントローラに送信することも可能である。作業員が、保守端末装置がウイルスに感染していることに気付かずに保守端末装置を用いて保守作業を行うと、ウイルスにより改ざんされた通信パケットデータが送信される。この結果、ウイルスにより改ざんされた通信パケットデータによって、正規プログラムが不正なプログラムに更新されてしまい、保守対象機器に異常が発生する。
 しかしながら、特許文献1及び特許文献2のいずれにおいても、前述の保守端末装置のようなプログラムの更新を管理するプログラム更新管理装置から送信される通信パケットデータによって更新されるプログラムは検査されない。このため、特許文献1及び特許文献2の技術では、プログラム更新管理装置がウイルスに感染した場合に、プログラム更新管理装置から送信される通信パケットデータによってプログラムが不正に更新されることを防止することができないという課題がある。
 本発明は、上記のような課題を解決することを主な目的の一つとしている。具体的には、プログラム更新管理装置から送信される通信パケットデータによってプログラムが不正に更新されることを防止することを主な目的とする。
 本発明に係る情報処理装置は、
 プログラムの更新を管理するプログラム更新管理装置から送信される、現行プログラムの更新に用いられる通信パケットデータを受信する受信部と、
 前記通信パケットデータを用いて前記現行プログラムの更新プログラムをパケット更新プログラムとして取得するプログラム取得部と、
 前記現行プログラムと前記パケット更新プログラムとの差分を解析して、前記パケット更新プログラムが前記現行プログラムの正常な更新プログラムである確度を判定する正常確度判定部とを有する。
 本発明によれば、プログラム更新管理装置から送信される通信パケットデータによってプログラムが不正に更新されることを防止することができる。
実施の形態1に係るシステム構成例を示す図。 実施の形態1に係る正常作業判定装置のハードウェア構成例を示す図。 実施の形態1に係る正常作業判定装置の機能構成例を示す図。 実施の形態1に係る正常作業判定装置の動作例を示すフローチャート。 実施の形態1に係る受信部及び制御プログラム構築部の動作例を示すフローチャート。 実施の形態1に係る過去プログラム記憶部の動作例を示すフローチャート。 実施の形態1に係る差分判定部の動作例を示すフローチャート。 実施の形態1に係る正常確度基準の例を示す図。 実施の形態1に係る差分判定部の動作例を示すフローチャート。 実施の形態2に係る正常作業判定装置の機能構成例を示す図。 実施の形態2に係る保守工事予定DBの動作例を示すフローチャート。 実施の形態2に係る保守工事予定テーブルの例を示す図。 実施の形態2に係る予定作業判定部の動作例を示すフローチャート。
 以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
 実施の形態1.
***構成の説明***
 図1は、本実施の形態に係るシステム構成例を示す。
 図1に示すように、本実施の形態に係るシステムは、正常作業判定装置100、保守端末装置101、複数のコントローラ102及びパケットキャプチャ103で構成される。
 正常作業判定装置100は、情報処理装置に相当する。また、正常作業判定装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。正常作業判定装置100の詳細は後述する。
 保守端末装置101は、コントローラ102で実行される制御プログラムの更新を管理する。保守端末装置101は、プログラム更新管理装置に相当する。保守端末装置101は、通信パケットデータ107をコントローラ102に送信する。
 通信パケットデータ107には、制御プログラムの更新に用いられるものと、制御プログラムの更新に用いられないものとがある。なお、通信パケットデータ107の詳細は後述する。
 コントローラ102は、保守対象機器であり、複数存在する。各コントローラ102は、保守端末装置101から通信パケットデータ107を受信する。そして、各コントローラ102は、制御プログラムの更新に用いられる通信パケットデータ107を受信した場合は、受信した通信パケットデータ107を用いて制御プログラムを更新する。また、各コントローラ102は、更新後の制御プログラムを他の機器にインストールしてもよい。
 なお、以下では、通信パケットデータ107を用いた更新が行われる前の制御プログラムを現行プログラムという。また、通信パケットデータ107を用いた更新により得られる制御プログラムをパケット更新プログラムという。
 パケットキャプチャ103は、保守端末装置101からコントローラ102に送信される通信パケットデータ107を収集し、収集した通信パケットデータ107を正常作業判定装置100に送信する。パケットキャプチャ103は、例えば、ホワイトリストを用いる異常検知システムによって実現される。
 なお、後述するように、正常作業判定装置100も、通信パケットデータ107を用いて現行プログラムを更新して、パケット更新プログラムを取得する。
 ここで、通信パケットデータ107の詳細を説明する。図1に示すように、通信パケットデータ107には、少なくとも、タイムスタンプ、コントローラ情報、命令コマンドが含まれる。
 タイムスタンプは、通信パケットデータ107の生成時刻を示す。コントローラ情報は、通信パケットデータ107の宛先のコントローラ102を示す。命令コマンドは、コントローラ情報に示されるコントローラ102への命令である。通信パケットデータ107が制御プログラムの更新に用いられる場合には、命令コマンドには、後述するプログラムデータからパケット更新プログラムを生成するための命令文が記述されている。
 制御プログラムの更新に用いられる通信パケットデータ107には、プログラムデータが含まれる。プログラムデータは、パケット更新プログラムを分割して得られる部分プログラムである。つまり、複数のプログラムデータを組み合わせることにより、パケット更新プログラムが得られる。
 コントローラ102は、複数の通信パケットデータ107を送信する。パケットキャプチャ103は、保守端末装置101から送信された複数の通信パケットデータ107を収集し、収集した複数の通信パケットデータ107を正常作業判定装置100に送信する。正常作業判定装置100は、複数の通信パケットデータ107をパケットキャプチャ103から受信し、複数の通信パケットデータ107から複数のプログラムデータを抽出し、抽出した複数のプログラムデータを組み合わせてパケット更新プログラムを得る。
 なお、通信パケットデータ107には、タイムスタンプ、コントローラ情報、命令コマンド、プログラムデータ以外のデータも含まれているが、本実施の形態に直接関係しないので、説明を省略する。
 また、パケットキャプチャ103は、通信パケットデータ107をそのまま正常作業判定装置100に送信してもよい。また、パケットキャプチャ103は、通信パケットデータ107からタイムスタンプ、コントローラ情報、命令コマンド、プログラムデータのみを抽出し、抽出したタイムスタンプ、コントローラ情報、命令コマンド、プログラムデータのみを正常作業判定装置100に送信してもよい。以下では、パケットキャプチャ103は、通信パケットデータ107をそのまま正常作業判定装置100に送信する例を説明する。
 図2は、本実施の形態に係る正常作業判定装置100のハードウェア構成例を示す。
 正常作業判定装置100は、コンピュータである。
 図2に示すように、正常作業判定装置100は、ハードウェアとして、プロセッサ201、メモリ202、通信インタフェース203、補助記憶装置204及び入出力インタフェース205を備える。
 プロセッサ201、メモリ202、通信インタフェース203、補助記憶装置204及び入出力インタフェース205はシステムバスで接続されている。
 補助記憶装置204には、図3を参照して後述する制御プログラム構築部104、差分判定部106及び受信部115の機能を実現するプログラムが記憶されている。当該プログラムは、メモリ202にロードされる。そして、当該プログラムはメモリ202からプロセッサ201に読み出され、プロセッサ201により実行される。
 プロセッサ201がプログラムを実行することで、後述する制御プログラム構築部104、差分判定部106及び受信部115の動作が行われる。
 通信インタフェース203は、パケットキャプチャ103と通信するために用いられる。
 入出力インタフェース205は、正常作業判定装置100のユーザが各種データを入力するため及び正常作業判定装置100のユーザに各種データを提示するために用いられる。
 図3は、本実施の形態に係る正常作業判定装置100の機能構成例を示す。
 図3に示すように、正常作業判定装置100は、制御プログラム構築部104、過去プログラム記憶部105、差分判定部106及び受信部115で構成される。
 受信部115は、パケットキャプチャ103から、保守端末装置101から送信された通信パケットデータ107を受信する。
 受信部115により行われる処理は、受信処理に相当する。
 制御プログラム構築部104は、通信パケットデータ107を用いて現行プログラムを更新し、現行プログラムの更新プログラムをパケット更新プログラム109として取得する。つまり、制御プログラム構築部104は、複数の通信パケットデータ107から複数のプログラムデータを抽出し、抽出した複数のプログラムデータを組み合わせて、パケット更新プログラム109を生成する。
 また、制御プログラム構築部104は、通信パケットデータ107に含まれるタイムスタンプを時刻情報108として抽出する。また、制御プログラム構築部104は、通信パケットデータ107からコントローラ情報をコントローラ情報114として抽出する。
 そして、制御プログラム構築部104は、時刻情報108、パケット更新プログラム109及びコントローラ情報114を差分判定部106に出力する。
 また、制御プログラム構築部104は、時刻情報108、パケット更新プログラム109及びコントローラ情報114を過去プログラム記憶部105に格納する。
 制御プログラム構築部104は、プログラム取得部に相当する。また、制御プログラム構築部104により行われる処理は、プログラム取得処理に相当する。
 過去プログラム記憶部105は、現行プログラム110及び現行プログラム110より以前の制御プログラムを記憶する。なお、現行プログラム110及び現行プログラム110より以前の制御プログラムを、まとめて過去プログラムともいう。
 過去プログラム記憶部105は、メモリ202又は補助記憶装置204により実現される。
 差分判定部106は、制御プログラム構築部104から時刻情報108、パケット更新プログラム109及びコントローラ情報114を受信する。また、差分判定部106は、過去プログラム記憶部105から現行プログラム110を読み出す。差分判定部106が過去プログラム記憶部105から読み出す現行プログラム110は、制御プログラム構築部104から受信したパケット更新プログラム109の一つ前のバージョン(更新前)の制御プログラムである。
 そして、差分判定部106は、現行プログラム110とパケット更新プログラム109との差分を解析して、パケット更新プログラム109が現行プログラム110の正常な更新プログラムである確度を判定する。
 より具体的には、差分判定部106は、現行プログラム110とパケット更新プログラム109との差分の量(例えば、変更のあった行数)と、現行プログラム110とパケット更新プログラム109とで値が変更になっているパラメータにおける値の変更度合いとを解析して、パケット更新プログラム109が現行プログラム110の正常な更新プログラムである確度を判定する。
 また、差分判定部106は、現行プログラム110とパケット更新プログラム109との差分の量のみを解析して、パケット更新プログラム109が現行プログラム110の正常な更新プログラムである確度を判定してもよい。
 そして、差分判定部106は、判定結果111を出力する。判定結果111には、変更状態112と正常確度113が含まれる。変更状態112は、現行プログラム110とパケット更新プログラム109との差分である。正常確度113は、差分判定部106が判定した、パケット更新プログラム109が現行プログラム110の正常な更新プログラムである確度である。
 差分判定部106は、例えば、判定結果111を規定の端末装置(不図示)に出力する。また、差分判定部106は、判定結果111の端末装置への出力とともに、判定結果111を補助記憶装置204に格納してもよい。また、差分判定部106は、判定結果111を端末装置に出力せずに、判定結果111を補助記憶装置204に格納してもよい。また、差分判定部106は、判定結果111を入出力インタフェース205であるディスプレイ装置に出力してもよい。
 差分判定部106は、正常確度判定部に相当する。また、差分判定部106で行われる処理は、正常確度判定処理に相当する。
 前述したように、制御プログラム構築部104、差分判定部106及び受信部115はプログラムで実現される。そして、プロセッサ201が当該プログラムを実行して、制御プログラム構築部104、差分判定部106及び受信部115として動作する。
 図3では、プロセッサ201が制御プログラム構築部104、差分判定部106及び受信部115の機能を実現するプログラムを実行している状態を模式的に表している。
***動作の説明***
 次に、本実施の形態に係る正常作業判定装置100の動作を説明する。
 図4は、正常作業判定装置100の動作の概要を示す。
 図5は、受信部115及び制御プログラム構築部104の動作(図4のS301及びS302の詳細)を示す。
 図6は、過去プログラム記憶部105の動作(図4のS303及びS305の詳細)を示す。
 図7は、差分判定部106の動作(図4のS304の詳細)を示す。
 最初に、図4を用いて、正常作業判定装置100の動作の概要を説明する。
 先ず、受信部115が、パケットキャプチャ103から通信パケットデータ107を受信する(ステップS301)。
 また、受信部115は、通信パケットデータ107を制御プログラム構築部104に出力する。
 次に、制御プログラム構築部104が、通信パケットデータ107を用いてパケット更新プログラム109を取得する(ステップS302)。
 また、制御プログラム構築部104は、パケット更新プログラム109、時刻情報108及びコントローラ情報114を差分判定部106に転送する。
 次に、差分判定部106が、過去プログラム記憶部105から現行プログラム110を読み出す(ステップS303)。
 次に、差分判定部106が、パケット更新プログラム109と現行プログラム110との差分を抽出し、正常確度を判定する(ステップS304)。
 そして、差分判定部106は、判定結果111を出力する。
 差分判定部106により判定された正常確度が規定値以上であれば、制御プログラム構築部104がパケット更新プログラム109を現行プログラム110として過去プログラム記憶部105に格納する(ステップS305)。
 次に、図5を用いて、受信部115及び制御プログラム構築部104の動作を説明する。
 なお、前述したように、保守端末装置101は、パケット更新プログラムを複数の部分プログラムに分割し、複数の部分プログラムをプログラムデータとして複数の通信パケットデータ107に格納する。そして、保守端末装置101は、複数の通信パケットデータ107をコントローラ102に送信する。パケットキャプチャ103は、保守端末装置101とコントローラ102とを接続するネットワークに接続されており、保守端末装置101からコントローラ102に送信された通信パケットデータ107を収集し、収集した通信パケットデータ107を正常作業判定装置100に送信する。
 なお、以下では、保守端末装置101は、プログラムデータを含む最初の通信パケットデータ107を送信する前に、プログラムデータを含まない通信パケットデータ107をコントローラ102に送信するものとする。また、保守端末装置101は、プログラムデータを含む最後の通信パケットデータ107を送信した後に、プログラムデータを含まない通信パケットデータ107をコントローラ102に送信するものとする。
 このため、受信部115は、プログラムデータを含まない通信パケットデータ107を受信した後、プログラムデータを含む複数の通信パケットデータ107を受信し、その後、プログラムデータを含まない通信パケットデータ107を受信する。
 受信部115は、パケットキャプチャ103から通信パケットデータ107を受信する(ステップS401)。受信部115は、受信した通信パケットデータ107を制御プログラム構築部104に出力する。
 次に、制御プログラム構築部104は、今回受信された通信パケットデータ107(以下、今回の通信パケットデータ107という)を分解する。つまり、制御プログラム構築部104は、今回の通信パケットデータ107を、タイムスタンプ、コントローラ情報、命令コマンド等に分解する。そして、制御プログラム構築部104は、通信パケットデータ107にプログラムデータが含まれるか否かを判定する(ステップS402)。
 今回の通信パケットデータ107にプログラムデータが含まれる場合(ステップS402でYES)は、通信パケットデータ107は、前回受信された通信パケットデータ107(以下、前回の通信パケットデータ107という)にプログラムデータが含まれるか否かを判定する(ステップS403)。
 前回の通信パケットデータ107にプログラムデータが含まれない場合(ステップS403でNO)は、制御プログラム構築部104は、今回の通信パケットデータ107に含まれるタイムスタンプから時刻情報108を生成する。具体的には、今回の通信パケットデータ107に含まれるタイムスタンプを時刻情報108として抽出する。
 次に、制御プログラム構築部104は、今回の通信パケットデータ107に含まれるプログラムデータ及びコントローラ情報114と、ステップS404で生成された時刻情報108とを、相互に対応付けて一時記憶領域に保存する(ステップS405)。一時記憶領域は、例えば、メモリ202又はプロセッサ201内のレジスタである。
 一方、前回の通信パケットデータ107にプログラムデータが含まれる場合(ステップS403でYES)は、既に時刻情報108は生成済みなので、制御プログラム構築部104は、ステップS404を省略して、今回の通信パケットデータ107に含まれるプログラムデータを一時記憶領域に保存する(ステップS405)。具体的には、制御プログラム構築部104は、前回の通信パケットデータ107に含まれるプログラムデータと対応付けて今回の通信パケットデータ107に含まれるプログラムデータを一時記憶領域に保存する。
 ステップS402において今回の通信パケットデータ107にプログラムデータが含まれない場合(ステップS402でNO)は、制御プログラム構築部104は、前回の通信パケットデータ107にプログラムデータが含まれるか否かを判定する(ステップS406)。
 前回の通信パケットデータ107にプログラムデータが含まれない場合(ステップS406でNO)は、制御プログラム構築部104は、処理を終了する。
 一方、前回の通信パケットデータ107にプログラムデータが含まれる場合(ステップS406でYES)は、制御プログラム構築部104は、一時記憶領域から複数のプログラムデータ、時刻情報108及びコントローラ情報114を読み出す(ステップS407)。
 そして、制御プログラム構築部104は、読み出した複数のプログラムデータからパケット更新プログラム109を生成する(ステップS408)。
 その後、制御プログラム構築部104は、生成したパケット更新プログラム109と時刻情報108とコントローラ情報114とを差分判定部106に出力する(ステップS409)。
 次に、図6を用いて、過去プログラム記憶部105の動作を説明する。
 先ず、過去プログラム記憶部105は、差分判定部106から読み出し要求を受信する(ステップS501)。
 読み出し要求には、時刻情報108及びコントローラ情報114が含まれる。
 次に、過去プログラム記憶部105は、読み出し要求に基づき、過去プログラムの中から、コントローラ情報114に対応する現行プログラム110を抽出し、抽出した現行プログラム110を差分判定部106に出力する(ステップS502)。
 より具体的には、過去プログラム記憶部105は、読み出し要求に含まれるコントローラ情報114と同じコントローラ情報114に対応付けられており、読み出し要求に含まれる時刻情報108に示される時刻以前の時刻であって最も新しい時刻が示されている時刻情報108と対応付けられている過去プログラムを、現行プログラム110として抽出する。そして、過去プログラム記憶部105は、抽出した現行プログラム110を差分判定部106に出力する。
 また、過去プログラム記憶部105は、制御プログラム構築部104から格納要求を受信する(ステップS503)。
 格納要求には、時刻情報108、パケット更新プログラム109及びコントローラ情報114が含まれる。
 次に、過去プログラム記憶部105は、格納要求に含まれる時刻情報108、パケット更新プログラム109及びコントローラ情報114を、相互に対応付けて記憶する(ステップS504)。
 次に、図7を用いて、差分判定部106の動作を説明する。
 差分判定部106は、時刻情報108、パケット更新プログラム109、コントローラ情報114及び現行プログラム110を受信する(ステップS601)。
 具体的には、差分判定部106は、制御プログラム構築部104から、時刻情報108、パケット更新プログラム109及びコントローラ情報114を受信し、時刻情報108及びコントローラ情報114を用いて読み出し要求を生成する。そして、差分判定部106は、生成した読み出し要求を過去プログラム記憶部105に出力し、過去プログラム記憶部105から現行プログラム110を受信する。
 次に、差分判定部106は、パケット更新プログラム109と現行プログラム110との差分を抽出し、抽出した差分を表す変更状態112を生成する(ステップS602)。
 次に、差分判定部106は、ステップS602で生成した変更状態112を用いて正常確度113を求める(ステップS603)。本実施の形態では、差分判定部106は、図8に示す正常確度基準701を用いる。
 具体的には、差分判定部106は、パケット更新プログラム109に含まれる行のうち、現行プログラム110から変更になっている行が多いほど正常確度113を低くする。また、行での変更が少なかったときには、差分判定部106は、現行プログラム110とパケット更新プログラム109との間で値が変更になっているパラメータを抽出し、抽出したパラメータにおけるパケット更新プログラム109と現行プログラム110との間の変更の度合いが大きいか否かを判定する。抽出したパラメータにおけるパケット更新プログラム109と現行プログラム110との間の変更の度合いが大きい場合には、差分判定部106は正常確度113を「低」とする。
 なお、正常確度113が高い程、パケット更新プログラム109が現行プログラム110の正常な更新プログラムである可能性が高い。換言すると、正常確度113が低い程、パケット更新プログラム109が不正なプログラムである可能性が高い。
 最後に、差分判定部106は、判定結果111として、変更状態112及び正常確度113を出力する(ステップS604)。
 図9は、図7のステップS600の詳細を説明する。
 以下では、図8の正常確度基準701を用いて説明を行う。
 先ず、差分判定部106は、現行プログラム110とパケット更新プログラム109との間で変更のあった行を計数する(ステップS801)。
 具体的には、差分判定部106は、変更状態112として、パケット更新プログラム109において現行プログラム110から削除されている行数a、パケット更新プログラム109で追加されている行数b、パケット更新プログラム109においてパラメータの値が変更になっている行数cを計数する。
 次に、差分判定部106は、プログラムが書き換えられた割合を算出する(ステップS802)。
 具体的には、差分判定部106は、ステップS801で計数された変更行の合計(a+b+c)が現行プログラム110の行数の何割にあたるか(a+b+c/現行プログラム110の行数)を計算する。
 次に、差分判定部106は、ステップS802で算出した割合が閾値以下であるか否かを判定する(ステップS803)。
 ステップS802で算出した割合が閾値を超えている場合(ステップS803でNO)は、差分判定部106は正常確度113を「低」に設定する(ステップS808)。
 一方、ステップS802で算出した割合が閾値以下の場合(ステップS803でYES)は、差分判定部106は、変更前のパラメータの値を現行プログラム110から抽出し、変更後のパラメータの値をパケット更新プログラム109から抽出する(ステップS804)。差分判定部106は、ステップS804の処理を、値が変更になっているパラメータの各々に対して行う。
 次に、差分判定部106は、パラメータごとに、パラメータの値の増減の割合を算出する(ステップS805)。例えばパラメータの値が10から25に15増加するなどの変化を、ここではパラメータの値が値Xから値YにA増加したと表記する。つまり、パラメータ値の増加量をAと表記し、「X→Y:A増加」と表記する。また、パラメータが値Xから値YにA減少した場合は、「X→Y:A減少」と表記する。差分判定部106は、パラメータの値の増減の絶対値(以下、|A|という)が、パラメータに設定可能な値の幅の何割にあたるかを算出する。具体的には、差分判定部106は、コントローラ情報114を用いてパラメータごとに設定可能な値の幅が示されるパラメータ設定値データから、対応するパラメータの最大値(MAX)と最小値(MIN)を取得する。そして、差分判定部106は、|A|/|MAX-MIN|を算出する。
 次に、差分判定部106は、パラメータごとに、ステップS805で得られた値の増減の割合を閾値と比較する(ステップS806)。
 そして、全てのパラメータについて値の増減の割合が閾値以下であれば(ステップS806でYES)、差分判定部106は、正常確度113を「高」に設定する(ステップS807)。
 一方、一つでも値の増減の割合が閾値を超えていれば(ステップS806でNO)、差分判定部106は正常確度113を「低」に設定する(ステップS808)。
 その後、図7に示すように、差分判定部106は、判定結果111として、変更状態112及び正常確度113を出力する(ステップS604)。
 なお、差分判定部106は、正常確度113を「高」と設定した場合は、制御プログラム構築部104にパケット更新プログラム109の過去プログラム記憶部105への格納を指示する。制御プログラム構築部104は、差分判定部106からの指示に従い、時刻情報108、パケット更新プログラム109及びコントローラ情報114を含む格納要求を過去プログラム記憶部105に出力する。過去プログラム記憶部105では、図6のステップS503とステップS504に従い、時刻情報108、パケット更新プログラム109及びコントローラ情報114を記憶する。また、差分判定部106は、正常確度113を「低」と設定した場合は、制御プログラム構築部104にパケット更新プログラム109の過去プログラム記憶部105以外の記憶領域への格納を指示する。制御プログラム構築部104は、差分判定部106からの指示に従い、例えば、時刻情報108、パケット更新プログラム109及びコントローラ情報114を検疫用の外部の記憶領域に格納する。
 なお、ここでは、差分判定部106により正常確度113が生成された後に、制御プログラム構築部104が、時刻情報108、パケット更新プログラム109及びコントローラ情報114を過去プログラム記憶部105又は外部の記憶領域に格納することとしたが、過去プログラム記憶部105は、図5のステップS409と並行して、時刻情報108、パケット更新プログラム109及びコントローラ情報114を過去プログラム記憶部105に格納するようにしてもよい。
***実施の形態の効果の説明***
 以上のように、本実施の形態では、正常作業判定装置100は、パケット更新プログラム109と現行プログラム110との差分を抽出して、パケット更新プログラム109が現行プログラム110の正常な更新パケットである確度を判定する。このため、本実施の形態によれば、保守端末装置101から送信される通信パケットデータ107によって現行プログラム110が不正に更新されることを防止することができる。特に、本実施の形態によれば、ウイルスに感染した保守端末装置101から通信パケットデータ107がコントローラ102に送信され、コントローラ102の現行プログラム110が不正なパケット更新プログラム109で更新される事態を防止することができる。
実施の形態2.
 以上の実施の形態1では、差分判定部106は、変更状態112のみで正常確度113を判定している。本実施の形態では、差分判定部106は、変更状態112と、現行プログラム110の更新予定とに基づき、正常確度113を決定する。
 本実施の形態では、主に実施の形態1との差異を説明する。
 なお、本実施の形態で説明していない事項は、実施の形態1と同様である。
***構成の説明***
 本実施の形態に係るシステム構成例は、図1に示すものと同じである。
 また、本実施の形態に係る正常作業判定装置100のハードウェア構成例は図2に示すものと同じである。
 図10は、本実施の形態に係る正常作業判定装置100の機能構成例を示す。
 図10では、図3の構成と比較して、予定作業判定部901と保守工事予定DB902とが追加されている。また、本実施の形態では、差分判定部106は、判定結果111を出力せずに、代わりに、時刻情報108、変更状態112及び正常確度113を予定作業判定部901に出力する。なお、本実施の形態では、差分判定部106及び予定作業判定部901が正常確度判定部に相当する。
 予定作業判定部901及び保守工事予定DB902以外の構成は、図3に示したものと同じであるため、説明を省略する。
 予定作業判定部901は、差分判定部106から、時刻情報108、変更状態112、正常確度113を受信する。また、予定作業判定部901は、時刻情報108を保守工事予定DB902に出力する。そして、予定作業判定部901は、保守工事予定DB902から予定情報903を受信する。予定情報903には、現行プログラム110のコントローラ102についての保守作業又は工事作業の予定が示される。予定作業判定部901は、予定情報903に示される保守作業又は工事作業の予定と変更状態112とが合致するか否かを判定する。そして、予定作業判定部901は、判定の結果、必要であれば、正常確度113を変更する。例えば、差分判定部106から受信した正常確度113が「高」である場合に、予定情報903に示される保守作業又は工事作業で現行プログラム110からパケット更新プログラム109への更新が行われていない可能性が高い場合は、予定作業判定部901は正常確度113を「低」に変更する。一方、差分判定部106から受信した正常確度113が「低」である場合に、予定情報903に示される保守作業又は工事作業で現行プログラム110からパケット更新プログラム109への更新が行われた可能性が高い場合は、予定作業判定部901は正常確度113を「高」に変更する。
 予定作業判定部901は、制御プログラム構築部104、差分判定部106及び受信部115と同様、プログラムで実現される。
 保守工事予定DB902は、保守工事予定テーブルを管理する。保守工事予定テーブルには、保守作業及び工事作業の予定が記述される。保守工事予定DB902は、予定作業判定部901から時刻情報108を受信し、受信した時刻情報108に対応する保守作業又は工事作業の予定を保守工事予定テーブルから抽出する。そして、保守工事予定DB902は、抽出した保守作業又は工事作業の予定が示される予定情報903を予定作業判定部901に返す。
 保守工事予定DB902は、メモリ202又は補助記憶装置204により実現される。
***動作の説明***
 次に、本実施の形態に係る正常作業判定装置100の動作を説明する。
 差分判定部106が正常確度113を判定するまでの手順は実施の形態1に示したものと同じであるため、差分判定部106が正常確度113を判定するまでの手順の説明は省略する。
 本実施の形態では、差分判定部106は、正常確度113を判定すると、時刻情報108、変更状態112及び正常確度113を予定作業判定部901に出力する。
 以降では、差分判定部106が予定作業判定部901に時刻情報108、変更状態112及び正常確度113を予定作業判定部901に出力した後の手順を説明する。
 図11は、保守工事予定DB902の動作を示す。図12は、保守工事予定DB902が管理する保守工事予定テーブルの例を示す。図13は、予定作業判定部901の動作を示す。
 以下に、図11~図13を用いて、予定作業判定部901及び保守工事予定DB902の動作を説明する。
 図13に示すように、予定作業判定部901は、差分判定部106から時刻情報108、変更状態112及び正常確度113を受信する(ステップS1201)。
 次に、予定作業判定部901は、時刻情報108を保守工事予定DB902へ出力する(ステップS1202)。
 保守工事予定DB902では、図11に示すように、予定作業判定部901から時刻情報108を受信する(ステップS1001)。
 そして、保守工事予定DB902は、予定作業判定部901から受信した時刻情報108に示される時刻付近の予定を保守工事予定テーブル1101において検索する(ステップS1002)。
 例えば、時刻情報108に示される時刻が図10の符号904のように「2017/02/21 11:00」である場合は、保守工事予定DB902は、保守工事予定テーブル1101の年、月日、開始時刻、終了時刻の列を参照し、「2017/02/21 11:00」に近い予定として、図12の符号905で示す行を抽出する。
 このように、時刻情報108に示される時刻付近の予定があった場合(ステップS1003でYES)は、保守工事予定DB902は、当該予定が示される予定情報903を予定作業判定部901に出力する(ステップS1004)。
 なお、図11では図示していないが、保守工事予定テーブル1101は、保守端末装置101の識別子、保守対象のコントローラ102の識別子(例:コントローラ名、IP(Internet Protocol)アドレス、MAC(Media Access Control)アドレス、ホスト名)を含んでいてもよい。また、保守工事予定テーブル1101は、保守端末装置101が使用する保守ツール名、保守端末装置101で保守に使用するコマンド名(OSコマンドや、保守ツールのコマンド)を含んでいてもよい。更に、保守工事予定テーブル1101は、保守端末装置101における保守ツールのメニュー、保守端末装置101を使用する保守作業者、保守端末装置101において保守で使用するアカウント情報(ユーザ名など)を含んでもよい。
 予定作業判定部901は、図13に示すように、保守工事予定DB902から予定情報903を受信しない場合(ステップS1203でNO)は、正常確度113を「低」に設定する(ステップS1206)。なお、差分判定部106から取得した正常確度113が既に「低」である場合は、予定作業判定部901は正常確度113を更新する必要はない。
 一方、保守工事予定DB902から予定情報903を受信した場合(ステップS1203でYES)は、予定作業判定部901は、受信した予定情報903に、コントローラ情報114に関する変更状態112を示唆する情報又は変更状態112が推定できる情報が記述されているか否かを判定する(ステップS1204)。例えば、予定情報903に「コントローラと接続する機器の追加」、「コントローラと接続する機器の撤去」、「パラメータ変更」、「制御プログラムへの機能の追加」等が記述されていれば、予定作業判定部901は、変更状態112を示唆する情報又は変更状態112が推定できる情報が予定情報903に記述されていると判定する。
 予定情報903に、変更状態112を示唆する情報又は変更状態112が推定できる情報が記述されている場合(ステップS1204でYES)は、予定作業判定部901は、予定情報903に記述されている情報と、変更状態112とを比較する。そして、予定作業判定部901は、変更状態112が、予定されていた変更状態であるか否かを判定する(ステップS1205)。つまり、予定作業判定部901は、予定情報903に示される保守作業又は工事作業で現行プログラム110からパケット更新プログラム109への更新が予定されていたか否かを判定する。
 変更状態112が、予定されていた変更状態である場合(ステップS1205でYES)、すなわち、予定情報903に示される保守作業又は工事作業で現行プログラム110からパケット更新プログラム109への更新が予定されていたと推定できる場合は、予定作業判定部901は、正常確度113を「高」に設定する(ステップS1206)。なお、差分判定部106から取得した正常確度113が既に「高」である場合は、予定作業判定部901は正常確度113を更新する必要はない。
 一方、変更状態112が、予定されていた変更状態でない場合(ステップS1205でYES)は、予定作業判定部901は、正常確度113を「低」に設定する(ステップS1206)。なお、差分判定部106から取得した正常確度113が既に「低」である場合は、予定作業判定部901は正常確度113を更新する必要はない。
 また、予定情報903から変更状態112が推定できない場合(ステップS1204でNO)は、予定作業判定部901は、差分判定部106から出力された正常確度113が「高」であるか否かを判定する(ステップS1207)。差分判定部106から出力された正常確度113が「高」である場合(ステップS1207でYES)は、予定作業判定部901は、正常確度113を「低」に設定する(ステップS1206)。差分判定部106から出力された正常確度113が「高」でない場合(ステップS1207でNO)は、予定作業判定部901は、ステップS1209を行う。
 正常確度113が確定すると、予定作業判定部901は、判定結果111として、変更状態112及び正常確度113を出力する(ステップS1209)。
***実施の形態の効果の説明***
 以上のように、本実施の形態では、予定作業判定部901が予定情報903を参照して差分判定部106で判定した正常確度の正当性を判定する。このため、本実施の形態によれば、より高精度にパケット更新プログラム109が正当な更新プログラムであるか否かを判定することが可能である。また、本実施の形態によれば、作業員が正しい時間に正しい作業を行っているかを判定することができ、作業員による不正な操作も検知することができる。
 なお、正常確度の判定基準は、正常作業判定装置100のオペレータが、過去の制御プログラムの更新状況を調査して生成することができる。例えば、オペレータは、過去の制御プログラムの更新状況の調査の結果、更新態様として、行の削除、行の追加、パラメータの値の変更、パラメータの置き換え等を設定する。そして、オペレータは、正常確度の判定基準に、発生確率に基づいて更新態様ごとに重み係数を設定してもよい。また、オペレータは、過去の制御プログラムの更新状況に基づき、正常確度の判定基準に、行数増減量の正常値及びパラメータの値の増減量の正常値を設定してもよい。
 また、プログラムデータは複数の通信パケットデータに分割されずに、1つの通信パケットデータのみに含まれていてもよい。
 また、実施の形態1及び実施の形態2では、正常確度113は「高」と「低」のみであるが、正常確度113の段階を3段階以上としてもよい。
 また、差分判定部106及び予定作業判定部901は、判定結果111を、保守作業を行う作業員が利用するタブレット端末又は工事作業を行う作業員が利用するタブレット端末に出力してもよい。
実施の形態3.
 本実施の形態では、産業制御システムに設置されたセキュリティ機器が産業制御システムへの攻撃を検知した場合に、攻撃検知アラートを正常作業判定装置100に送信する。正常作業判定装置100は、保守工事予定DB902を参照して、攻撃検知アラートの原因が産業制御システムに対する保守作業によるものなのか、攻撃によるものなのかを判定する。セキュリティ機器の攻撃の検知方法によっては、保守作業による処理を、攻撃活動であると検知してしまうこと(誤検知)がある。本実施の形態では、正常作業判定装置100は、このような誤検知を低減させる。
 なお、産業制御システムは、保護対象システムである。
 本実施の形態に係る正常作業判定装置100のハードウェア構成は図1に示す通りである。また、本実施の形態に係る正常作業判定装置100の機能構成は図10に示す通りである。しかしながら、正常作業判定装置100の受信部115は、図示していないセキュリティ機器(例:侵入検知装置、ログ分析装置)から、攻撃検知アラートを受信する。
 セキュリティ機器は、複数のコントローラ102、産業制御システムに含まれる複数の機器、複数の端末、複数の計算機及び産業制御システム全体に対する攻撃を検知する。セキュリティ機器の一例である侵入検知装置は、産業制御システムのネットワークにおける通信の異常を検知する。また、セキュリティ機器の一例であるログ分析装置は、各コントローラ102、各機器、各端末、各計算機のイベントログ、通信機器のログ、侵入検知装置やアンチウイルスソフトウエアなどのアラートログを収集する。また、ログ分析装置は、収集したログの各々を個別に分析する。更に、ログ分析装置は、複数のログを相互に関係づけて分析することも可能である。ログ分析装置は、このようなログの分析を介して、不審な事象の発生を検知する。
 セキュリティ機器は、産業制御システムへの攻撃を検知した場合に、産業制御システムへの攻撃が検知されたことを通知する攻撃検知アラートを正常作業判定装置100に送信する。セキュリティ機器は、通信パケットデータ107として、攻撃検知アラートを正常作業判定装置100に送信する。なお、セキュリティ機器は、ファイル形式で攻撃検知アラートを正常作業判定装置100に通知してもよい。
 なお、本実施の形態では、セキュリティ機器は、通信パケットデータ107として攻撃検知アラートを正常作業判定装置100に送信するものとする。
 セキュリティ機器が検知する攻撃は、例えば、ウイルス感染、サービス妨害攻撃等である。
 攻撃検知アラートは、例えば、以下の構成要素からなる。以下の構成要素の各々は、検知された攻撃の属性を示す。
 ・攻撃検知時刻(又は、攻撃が開始された時刻から攻撃が終了した時刻(期間))
 ・攻撃を受けたコントローラ、機器、端末等の識別子(例:IPアドレス、コントローラ名、機器名、端末名等)
 ・攻撃を行ったコントローラ、機器、端末等の識別子(例:IPアドレス、コントローラ名、機器名、端末名等)
 ・攻撃の内容(例:アラート識別子や攻撃名称を示す文字列で表現される)
 ・攻撃が検知された際の状況を通知する情報
 上記の「攻撃を検知した際の状況を通知する情報」は、例えば、攻撃に使用されたコマンド(引数を含んでもよい)、攻撃者が操作しようとしたファイルの名称又はレポジトリの名称、攻撃に使用されたプログラムの名称又はツールの名称、当該プログラム又はツールにおけるメニュー名、攻撃に関連するプロセスの名称又はやサービスの名称である。また、「攻撃が検知された際の状況を通知する情報」に、攻撃に使用されたアカウント名が含まれていてもよい。また、不正なログインの試行が検知された場合は、「攻撃が検知された際の状況を通知する情報」に、ログインが試行されたたアカウント名が含まれていてもよい。
 なお、上記の「攻撃の内容」や「攻撃が検知された際の状況を通知する情報」の例示は一例であり、セキュリティ機器ごとに異なる。
 本実施の形態では、受信部115は、受信した攻撃検知アラートを予定作業判定部901に出力する。
 予定作業判定部901は、攻撃検知アラートを解釈し、攻撃検知アラートから上記の構成要素を抽出する。
 また、予定作業判定部901は、攻撃検知時刻、攻撃を受けたコントローラ等の識別子を検索キーとして保守工事予定DB902を検索する。検索方法は、実施の形態2に示したものと同じである。保守工事予定DB902には、産業制御システムに対する保守作業の予定が記述されている。
 保守工事予定DB902から、該当する予定情報903が検索された場合は、予定作業判定部901は、攻撃検知アラートの発生原因は、保守作業によるものと判定する。該当する予定情報903が検索されない場合は、予定作業判定部901は、攻撃検知アラートの発生原因は保守作業ではなく、攻撃によるものと判定する。
 予定作業判定部901は、この判定結果を、判定結果111として外部に出力する。このとき、判定結果111には、変更状態112は設定されない。また、予定作業判定部901は、攻撃検知アラートの原因が攻撃であると判定した場合は、判定結果111の正常確度113を「低」に設定する。一方、攻撃検知アラートの原因が保守作業であると判定した場合は、予定作業判定部901は、判定結果111の正常確度113を「高」に設定する。また、予定作業判定部901は、時刻情報108と正常確度113を省略して、攻撃検知アラートの原因として「保守」又は「攻撃」を示す情報のみで構成される判定結果111を出力してもよい。
 本実施の形態では、判定結果111は、例えば、セキュリティ機器の攻撃検知アラートを監視している監視員の端末装置に出力される。正常作業判定装置100と監視員の端末装置とが別装置であれば、予定作業判定部901は、判定結果111を通知パケットに含ませて監視員の端末装置に送信する。正常作業判定装置100が監視員の端末装置であれば、予定作業判定部901は、例えば、判定結果111を表示装置に表示する。
 また、予定作業判定部901は、保守工事予定DB902の検索においては、攻撃を受けたコントローラ等の識別子の代わりに、攻撃を行ったコントローラ等の識別子を用いて検索を行ってもよい。
 また、予定作業判定部901は、該当する予定情報903が検索された場合に、攻撃検知アラートに含まれる「攻撃を検知した際の状況を通知する情報」を参照して、攻撃検知アラートの原因が保守作業であるのか攻撃であるのかを判定してもよい。
 例えば、予定情報903に、保守作業で使用されるコマンドが記載されており、攻撃検知アラートに、「攻撃を検知した際の状況を通知する情報」として、攻撃に使用されたコマンドが記載されているものとする。この場合に、予定作業判定部901は、予定情報903に記載されているコマンドと、攻撃検知アラートに記載されているコマンドとを比較する。そして、これらのコマンドが一致した場合に、予定作業判定部901は、保守作業で使用されたコマンドが原因で攻撃検知アラートが発行されたと判定して、攻撃検知アラートの原因は保守作業であると判定する。一方、これらのコマンドが一致しなければ、予定作業判定部901は、保守作業で予定されていないコマンドが実行されたと判定し、攻撃検知アラートの原因は攻撃であると判定する。
 また、予定情報903に、保守作業で使用されるプログラムの名称(又はツールの名称又はメニュー名)が記載されており、攻撃検知アラートに、「攻撃を検知した際の状況を通知する情報」として、攻撃に使用されたプログラムの名称(又はツールの名称又はメニュー名)が記載されているものとする。この場合に、予定作業判定部901は、予定情報903に記載されているプログラムの名称(又はツールの名称又はメニュー名)と攻撃検知アラートに記載されているプログラムの名称(又はツールの名称又はメニュー名)とを比較する。そして、これらのプログラムの名称(又はツールの名称又はメニュー名)が一致した場合は、予定作業判定部901は、攻撃検知アラートの原因は保守作業であると判定する。一方、これらのプログラムの名称(又はツールの名称又はメニュー名)が一致しなければ、攻撃検知アラートの原因は攻撃であると判定する。
 また、予定情報903に、保守作業で使用されるアカウント名が記載されており、攻撃検知アラートに、「攻撃を検知した際の状況を通知する情報」として、攻撃に使用されたアカウント名が記載されているものとする。この場合に、予定作業判定部901は、予定情報903に記載されているアカウント名と攻撃検知アラートに記載されているアカウント名とを比較する。そして、これらのアカウント名が一致した場合は、予定作業判定部901は、攻撃検知アラートの原因は保守作業であると判定する。一方、これらのアカウント名が一致しなければ、攻撃検知アラートの原因は攻撃であると判定する。
 また、予定情報903に、保守作業で参照(読み出し/更新など)されるファイルの名称(又はレポジトリの名称)が記載されており、攻撃検知アラートに、「攻撃を検知した際の状況を通知する情報」として、攻撃者が操作したファイルの名称(又はレポジトリの名称)が記載されているものとする。この場合に、予定作業判定部901は、予定情報903に記載されているファイルの名称(又はレポジトリの名称)と攻撃検知アラートに記載されているファイルの名称(又はレポジトリの名称)とを比較する。そして、これらのファイルの名称(又はレポジトリの名称)が一致した場合は、予定作業判定部901は、攻撃検知アラートの原因は保守作業であると判定する。一方、ファイルの名称(又はレポジトリの名称)が一致しなければ、攻撃検知アラートの原因は攻撃であると判定する。
 同様に、攻撃検知アラートの「攻撃を検知した際の状況を通知する情報」が、予定情報903として抽出されない場合は、予定作業判定部901は、攻撃検知アラートの原因は攻撃であると判定する。
 なお、攻撃者は、保守端末装置101を操作する人間、保守端末装置101を遠隔で操作する他の端末装置で動作するマルウェア、保守端末装置101で動作するマルウェアなどが考えられるが、ここでは特定しない。
***実施の形態の効果の説明***
 以上のように、本実施の形態では、予定作業判定部901は、保守工事予定DB902を参照し、侵入検知装置やログ分析装置などのセキュリティ機器の攻撃検知アラートの原因を判定する。このため、セキュリティ機器の攻撃検知アラートを監視している監視員が、攻撃検知アラートの原因を自ら調査する必要がないという効果がある。そして、攻撃検知アラートが保守に起因する誤検知による場合は、監視員は、予定作業判定部901の判定結果111を確認するだけで足り、監視員の負担を低減することができる。
 以上、本発明の実施の形態について説明したが、これらの実施の形態を組み合わせて実施しても構わない。
 あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
 あるいは、これらの実施の形態を部分的に組み合わせて実施しても構わない。
 なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
***ハードウェア構成の説明***
 最後に、正常作業判定装置100のハードウェア構成の補足説明を行う。
 プロセッサ201は、プロセッシングを行うIC(Integrated Circuit)である。
 プロセッサ201は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)である。
 メモリ202は、例えば、RAM(Random Access Memory)である。
 補助記憶装置204は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
 通信インタフェース203は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
 通信インタフェース203は、例えば、通信チップ又はNIC(Network Interface Card)である。
 入出力インタフェース205は、例えばキーボード、マウス、ディスプレイ装置である。
 また、補助記憶装置204には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がプロセッサ201により実行される。
 プロセッサ201はOSの少なくとも一部を実行しながら、制御プログラム構築部104、差分判定部106、受信部115及び予定作業判定部901の機能を実現するプログラムを実行する。
 プロセッサ201がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
 また、制御プログラム構築部104、差分判定部106、受信部115及び予定作業判定部901の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ202、補助記憶装置204、プロセッサ201内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
 また、制御プログラム構築部104、差分判定部106、受信部115及び予定作業判定部901の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
 また、制御プログラム構築部104、差分判定部106、受信部115及び予定作業判定部901の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
 また、正常作業判定装置100は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)といった電子回路により実現されてもよい。
 この場合は、制御プログラム構築部104、差分判定部106、受信部115及び予定作業判定部901は、それぞれ電子回路の一部として実現される。
 なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
 100 正常作業判定装置、101 保守端末装置、102 コントローラ、103 パケットキャプチャ、104 制御プログラム構築部、105 過去プログラム記憶部、106 差分判定部、107 通信パケットデータ、108 時刻情報、109 パケット更新プログラム、110 現行プログラム、111 判定結果、112 変更状態、113 正常確度、114 コントローラ情報、115 受信部、201 プロセッサ、202 メモリ、203 通信インタフェース、204 補助記憶装置、205 入出力インタフェース、701 正常確度基準、901 予定作業判定部、902 保守工事予定DB、903 予定情報、1101 保守工事予定テーブル。

Claims (8)

  1.  プログラムの更新を管理するプログラム更新管理装置から送信される、現行プログラムの更新に用いられる通信パケットデータを受信する受信部と、
     前記通信パケットデータを用いて前記現行プログラムの更新プログラムをパケット更新プログラムとして取得するプログラム取得部と、
     前記現行プログラムと前記パケット更新プログラムとの差分を解析して、前記パケット更新プログラムが前記現行プログラムの正常な更新プログラムである確度を判定する正常確度判定部とを有する情報処理装置。
  2.  前記正常確度判定部は、
     前記現行プログラムと前記パケット更新プログラムとの差分の量を解析して、前記確度を判定する請求項1に記載の情報処理装置。
  3.  前記正常確度判定部は、
     前記現行プログラムと前記パケット更新プログラムとの差分の量と、前記現行プログラムと前記パケット更新プログラムとで値が変更になっているパラメータにおける値の変更度合いとを解析して、前記確度を判定する請求項1に記載の情報処理装置。
  4.  前記正常確度判定部は、
     前記現行プログラムの更新予定と、前記現行プログラムと前記パケット更新プログラムとの差分とを解析して、前記確度を判定する請求項1に記載の情報処理装置。
  5.  前記正常確度判定部は、
     前記差分及び前記確度のうちの少なくともいずれかを規定の端末装置に出力する請求項1に記載の情報処理装置。
  6.  前記正常確度判定部は、
     保護対象システムへの攻撃が検知されたことを通知する攻撃検知アラートに示される攻撃の属性と、前記保護対象システムに対する保守作業の予定とを照合して、前記攻撃検知アラートが前記保護対象システムに対する保守作業により発生したか前記保護対象システムに対する攻撃により発生したかを判定する請求項1に記載の情報処理装置。
  7.  コンピュータが、プログラムの更新を管理するプログラム更新管理装置から送信される、現行プログラムの更新に用いられる通信パケットデータを受信し、
     前記コンピュータが、前記通信パケットデータを用いて前記現行プログラムの更新プログラムをパケット更新プログラムとして取得し、
     前記コンピュータが、前記現行プログラムと前記パケット更新プログラムとの差分を解析して、前記パケット更新プログラムが前記現行プログラムの正常な更新プログラムである確度を判定する情報処理方法。
  8.  プログラムの更新を管理するプログラム更新管理装置から送信される、現行プログラムの更新に用いられる通信パケットデータを受信する受信処理と、
     前記通信パケットデータを用いて前記現行プログラムの更新プログラムをパケット更新プログラムとして取得するプログラム取得処理と、
     前記現行プログラムと前記パケット更新プログラムとの差分を解析して、前記パケット更新プログラムが前記現行プログラムの正常な更新プログラムである確度を判定する正常確度判定処理とをコンピュータに実行させる情報処理プログラム。
PCT/JP2017/004636 2017-02-08 2017-02-08 情報処理装置、情報処理方法及び情報処理プログラム WO2018146757A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018566696A JP6523582B2 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法及び情報処理プログラム
PCT/JP2017/004636 WO2018146757A1 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法及び情報処理プログラム
US16/470,053 US20200104503A1 (en) 2017-02-08 2017-02-08 Information processing apparatus, information processing method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/004636 WO2018146757A1 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
WO2018146757A1 true WO2018146757A1 (ja) 2018-08-16

Family

ID=63107993

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/004636 WO2018146757A1 (ja) 2017-02-08 2017-02-08 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (3)

Country Link
US (1) US20200104503A1 (ja)
JP (1) JP6523582B2 (ja)
WO (1) WO2018146757A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021005337A (ja) * 2019-06-27 2021-01-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
WO2024009741A1 (ja) * 2022-07-05 2024-01-11 パナソニックIpマネジメント株式会社 セキュリティ監視装置、セキュリティ監視方法、および、プログラム
JP7446142B2 (ja) 2020-03-31 2024-03-08 三菱電機株式会社 サイバーセキュリティ監査システム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11050785B2 (en) * 2018-08-25 2021-06-29 Mcafee, Llc Cooperative mitigation of distributed denial of service attacks originating in local networks
US11228501B2 (en) * 2019-06-11 2022-01-18 At&T Intellectual Property I, L.P. Apparatus and method for object classification based on imagery
US11323890B2 (en) 2019-07-10 2022-05-03 At&T Intellectual Property I, L.P. Integrated mobility network planning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318607A (ja) * 2001-04-18 2002-10-31 Omron Corp リニューアル設計支援方法及びシステム並びにそれに用いられる仮想設備
JP2004326337A (ja) * 2003-04-23 2004-11-18 Mitsubishi Electric Corp コード解析プログラム、コード解析自動化プログラム及び自動コード解析システム
JP2012212380A (ja) * 2011-03-31 2012-11-01 Internatl Business Mach Corp <Ibm> ソフトウエア更新を適用した情報処理装置を検査するシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318607A (ja) * 2001-04-18 2002-10-31 Omron Corp リニューアル設計支援方法及びシステム並びにそれに用いられる仮想設備
JP2004326337A (ja) * 2003-04-23 2004-11-18 Mitsubishi Electric Corp コード解析プログラム、コード解析自動化プログラム及び自動コード解析システム
JP2012212380A (ja) * 2011-03-31 2012-11-01 Internatl Business Mach Corp <Ibm> ソフトウエア更新を適用した情報処理装置を検査するシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021005337A (ja) * 2019-06-27 2021-01-14 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP7289739B2 (ja) 2019-06-27 2023-06-12 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP7446142B2 (ja) 2020-03-31 2024-03-08 三菱電機株式会社 サイバーセキュリティ監査システム
WO2024009741A1 (ja) * 2022-07-05 2024-01-11 パナソニックIpマネジメント株式会社 セキュリティ監視装置、セキュリティ監視方法、および、プログラム

Also Published As

Publication number Publication date
JP6523582B2 (ja) 2019-06-05
US20200104503A1 (en) 2020-04-02
JPWO2018146757A1 (ja) 2019-06-27

Similar Documents

Publication Publication Date Title
WO2018146757A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US9853994B2 (en) Attack analysis system, cooperation apparatus, attack analysis cooperation method, and program
EP3373179B1 (en) Information processing device, information processing method, and information processing program
EP3502943B1 (en) Method and system for generating cognitive security intelligence for detecting and preventing malwares
US10133866B1 (en) System and method for triggering analysis of an object for malware in response to modification of that object
US9794270B2 (en) Data security and integrity by remote attestation
CA2545916C (en) Apparatus method and medium for detecting payload anomaly using n-gram distribution of normal data
US8621624B2 (en) Apparatus and method for preventing anomaly of application program
US20160248788A1 (en) Monitoring apparatus and method
US20170185785A1 (en) System, method and apparatus for detecting vulnerabilities in electronic devices
US10972490B2 (en) Specifying system, specifying device, and specifying method
US20160373447A1 (en) Unauthorized access detecting system and unauthorized access detecting method
JP6058246B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP6067195B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP2019186686A (ja) ネットワーク監視装置,ネットワーク監視プログラム及びネットワーク監視方法
JP2010211453A (ja) ファイル改竄チェック方法および装置
WO2015178002A1 (ja) 情報処理装置、情報処理システム及び通信履歴解析方法
JP2015055960A (ja) 監視装置及び情報処理システム及び監視方法及びプログラム
CN112261006B (zh) 一种用于发现威胁行为间依赖关系的挖掘方法、终端及存储介质
JP6760884B2 (ja) 生成システム、生成方法及び生成プログラム
KR102156600B1 (ko) 네트워크에서 수집된 패킷과 엔드포인트 컴퓨팅 장치의 프로세스 간의 연관관계를 생성하는 시스템 및 방법
US20230412631A1 (en) Methods and systems for system vulnerability determination and utilization for threat mitigation
KR20110032449A (ko) 행위기반 탐지 장치 및 방법
JP2005234849A (ja) 監視装置及び監視方法及びプログラム
JP2007226365A (ja) ウィルス検出システム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018566696

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17895719

Country of ref document: EP

Kind code of ref document: A1