WO2020105234A1 - 異常検知方法、及び異常検知装置 - Google Patents

異常検知方法、及び異常検知装置

Info

Publication number
WO2020105234A1
WO2020105234A1 PCT/JP2019/031585 JP2019031585W WO2020105234A1 WO 2020105234 A1 WO2020105234 A1 WO 2020105234A1 JP 2019031585 W JP2019031585 W JP 2019031585W WO 2020105234 A1 WO2020105234 A1 WO 2020105234A1
Authority
WO
WIPO (PCT)
Prior art keywords
calculated
distances
packets
packet
detection target
Prior art date
Application number
PCT/JP2019/031585
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 JP2020558090A priority Critical patent/JP7297787B2/ja
Priority to CN201980064730.9A priority patent/CN112789831B/zh
Priority to EP19886211.2A priority patent/EP3886374B1/en
Publication of WO2020105234A1 publication Critical patent/WO2020105234A1/ja
Priority to US17/221,414 priority patent/US11962479B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Definitions

  • the present invention relates to an abnormality detection method and an abnormality detection device for detecting an abnormality in a packet string.
  • Non-Patent Document 1 Conventionally, information processing technology for targeting data used in a network system or the like has been known (for example, see Non-Patent Document 1 and Non-Patent Document 2).
  • an object of the present invention is to provide an anomaly detection method and an anomaly detection device for detecting an anomaly in a packet string.
  • An anomaly detection method calculates a plurality of distances between a plurality of detection target packets for a detection target packet string including a plurality of continuous detection target packets, and calculates the plurality of calculated distances. Is used to extract the feature amount of the detection target packet sequence, and information on the degree of abnormality of the detection target packet sequence is calculated using the extracted feature amount.
  • the abnormality detection device is configured to detect a plurality of distances between a plurality of detection target packets for a detection target packet string including a plurality of continuous detection target packets.
  • a distance calculating unit, a feature amount extracting unit that extracts a feature amount of the detection target packet sequence using the calculated plurality of distances, and a degree of abnormality of the detection target packet sequence using the extracted feature amount And an information calculation unit that calculates information related to.
  • the anomaly detection method and the anomaly detection device it is possible to detect an anomaly in a packet string.
  • FIG. 1 is a block diagram showing the configuration of the abnormality detection device according to the first embodiment.
  • FIG. 2 is a schematic diagram showing an example of profile information.
  • FIG. 3 is a schematic diagram showing a data structure of a packet of the Modbus / TCP protocol.
  • FIG. 4 is a schematic diagram showing a data structure of a packet of the BACnet / IP protocol.
  • FIG. 5 is a schematic diagram showing an example of a reference packet data sequence.
  • FIG. 6 is a schematic diagram showing an example of a state in which the reference packet data distance calculating unit according to the first embodiment cuts out packet data byte by byte.
  • FIG. 7 is a schematic diagram showing an example of how the reference packet data distance calculation unit according to the first embodiment calculates the Levenshtein distance between two character strings.
  • FIG. 8 is a schematic diagram showing an example of how the reference packet data distance calculating unit according to the first embodiment calculates the Levenshtein distance between two byte strings.
  • FIG. 9 is a schematic diagram showing an example of how the reference packet data distance calculating unit according to the first embodiment calculates the reference distance.
  • FIG. 10 is a schematic diagram showing an example of how the reference feature quantity extraction unit according to the first embodiment extracts a reference feature quantity.
  • FIG. 11 is a schematic diagram showing an example of how the detection target packet data distance calculation unit according to the first embodiment calculates a distance.
  • FIG. 12 is a schematic diagram showing an example of how the feature amount extraction unit according to the first embodiment extracts the feature amount from the detection target packet data sequence.
  • FIG. 13 is a schematic diagram showing an example of how the information calculation unit according to the first embodiment calculates the earth movers distance.
  • FIG. 14 is a schematic diagram showing an example of how the information calculation unit according to the first embodiment calculates an abnormality degree of a detection target packet sequence.
  • FIG. 15 is a flowchart of the first reference feature amount extraction processing.
  • FIG. 16 is a flowchart of the first abnormality detection process.
  • FIG. 17 is a block diagram showing the configuration of the abnormality detection device according to the second embodiment.
  • FIG. 18 is a schematic diagram showing an example of how the information calculation unit according to the second embodiment calculates the dynamic time warping distance.
  • FIG. 19 is a flowchart of the second reference feature amount extraction processing.
  • FIG. 20 is a flowchart of the second abnormality detection process.
  • FIG. 21 is a block diagram showing the configuration of the abnormality detection device according to the third embodiment.
  • FIG. 22 is a flowchart of the third reference feature amount extraction processing.
  • FIG. 23
  • the rule-based method and the anomaly method are known as methods for detecting an abnormality in a packet sequence.
  • the rule-based method has a problem that it is difficult to detect anomalies in the packet sequence that are not described in the rules, and the anomaly method has an extreme increase in the amount of data and the number of packets, and an extremely large number of bytes.
  • the anomaly method has an extreme increase in the amount of data and the number of packets, and an extremely large number of bytes.
  • it is difficult to detect an abnormality in the packet sequence if there is no disorder in the sequence.
  • the inventor conducted extensive studies and experiments to solve these problems. Then, the inventor notices that a normal packet sequence including a command for controlling a device has a constant context, and that a packet sequence deviating from the constant context can be detected as an abnormal packet sequence. I found it. As a result, the inventor has come up with the following abnormality detection method and abnormality detection device.
  • An anomaly detection method calculates a plurality of distances between a plurality of detection target packets for a detection target packet string including a plurality of continuous detection target packets, and calculates the plurality of calculated distances. Is used to extract the feature amount of the detection target packet sequence, and information on the degree of abnormality of the detection target packet sequence is calculated using the extracted feature amount.
  • the feature of the context of the detection target packet string can be extracted as the feature amount. Then, by using the extracted feature amount, it is possible to calculate the information related to the abnormality of the detection target packet sequence. As described above, according to the above-described abnormality detection method, it is possible to detect an abnormality in the packet string.
  • the Levenshtein distances between payloads of the plurality of detection target packets may be used to calculate the plurality of distances.
  • the Levenshtein distance between the payloads of the plurality of detection target packets is calculated for each of the detection target packets N (N is an integer of 1 or more) apart in the detection target packet sequence to form a payload. Is calculated in units of M (M is an integer of 1 or more and 16 or less) bits for at least a part of the bit sequence to be detected, and when the plurality of distances are calculated, N detections in the detection target packet sequence are performed.
  • the plurality of distances may be calculated by calculating the distance for each of the target packets.
  • Levenshtein distances between the payloads of the plurality of detection target packets are further for each of the detection target packets L (L is an integer of 1 or more other than N) apart in the detection target packet sequence.
  • the plurality of distances may be calculated by also calculating the distance between each of L detection target packets in the detection target packet sequence. ..
  • the characteristic amount when the characteristic amount is extracted, between the detection target packets belonging to the window for each one or more windows each including W (W is an integer of 2 or more) continuous detection target packets in the detection target packet sequence.
  • W is an integer of 2 or more
  • the appearance distributions of the plurality of distances calculated with respect to may be calculated, and each of the calculated appearance distributions may be extracted as the feature amount.
  • each of the calculated appearance distributions and each of the earth movers distances between each of the plurality of reference appearance distributions stored in advance are calculated and calculated.
  • Information relating to the degree of abnormality may be calculated using a K-nearest neighbor method that uses each of the Earth Mover's distances.
  • each of the distances determined by the warping method between each of the calculated distance sequences and each of the plurality of reference distance sequences stored in advance is calculated.
  • Information regarding the degree of abnormality may be calculated by using each of the calculated distances determined by the warping method.
  • the information on the degree of abnormality may be calculated by applying a global alignment kernel stored in advance to each of the calculated distance sequences. ..
  • the plurality of distances may be calculated by limiting the detection target packets of the same command type among the plurality of detection target packets.
  • each of one or more reference packet strings each including a plurality of continuous reference packets
  • a plurality of reference distances between the plurality of reference packets are calculated, and each of the calculated plurality of reference distances is used.
  • Each of the reference feature quantities of the one or more reference packet sequences is extracted, and when the information related to the degree of abnormality of the detection target packet sequence is calculated, each of the extracted reference feature quantities is also used, Information about the degree of abnormality of the detection target packet sequence may be calculated.
  • the Levenshtein distances between payloads of the plurality of reference packets may be used to calculate each of the plurality of reference distances.
  • the Levenshtein distance between the payloads of the plurality of reference packets is calculated for each of the N (N is an integer of 1 or more) reference packets in each of the one or more reference packet sequences, Is calculated in units of M (M is an integer of 1 or more and 16 or less) bits for at least a part of the bit string constituting the, and the one or more reference packet strings are respectively calculated when calculating the plurality of reference distances.
  • the plurality of reference distances may be calculated by calculating the reference distance for each of the N reference packets apart from each other.
  • Levenshtein distances between the payloads of the plurality of reference packets are further calculated for each of detection target packets separated by L (L is an integer of 1 or more other than N) in each of the 1 or more reference packet sequences. Also, when calculating each of the plurality of reference distances, a reference distance is further calculated for each of the L reference packets apart from each other in each of the one or more reference packet sequences. Then, each of the plurality of reference distances may be calculated.
  • each of one or more reference packet strings each including a plurality of continuous reference packets a plurality of reference distances between the plurality of reference packets are calculated, and each of the calculated plurality of reference distances is used.
  • the reference feature quantities of the one or more reference packet strings are respectively extracted, and the Levenshtein distances between the payloads of the plurality of reference packets are used when calculating the plurality of reference distances.
  • a Levenshtein distance between the payloads of the plurality of reference packets is calculated for each of reference packets separated by N (N is an integer of 1 or more) in each of the one or more reference packet sequences.
  • each of the one or more reference packet strings is extracted by calculating M (M is an integer of 1 or more and 16 or less) bits as a unit for at least a part of the bit string forming the payload.
  • M is an integer of 1 or more and 16 or less bits as a unit for at least a part of the bit string forming the payload.
  • W is an integer of 2 or more
  • Each of the calculated reference distances is extracted as each of the reference feature amounts of the one or more reference packet strings, and the reference of the extracted one or more reference packet strings is extracted.
  • Each of the feature amounts may be stored as each of the plurality of reference appearance distributions stored in advance.
  • each of one or more reference packet strings each including a plurality of continuous reference packets a plurality of reference distances between the plurality of reference packets are calculated, and each of the calculated plurality of reference distances is used.
  • the reference feature quantities of the one or more reference packet strings are respectively extracted, and the Levenshtein distances between the payloads of the plurality of reference packets are used when calculating the plurality of reference distances.
  • a Levenshtein distance between the payloads of the plurality of reference packets is calculated for each of reference packets separated by N (N is an integer of 1 or more) in each of the one or more reference packet sequences.
  • each of the one or more reference packet strings is extracted by calculating M (M is an integer of 1 or more and 16 or less) bits as a unit for at least a part of the bit string forming the payload.
  • M is an integer of 1 or more and 16 or less
  • W is an integer of 2 or more
  • a reference distance sequence composed of distances is calculated, each of the calculated reference distance sequences is extracted as each of the reference feature amounts of the one or more reference packet sequences, and the reference feature amount of the extracted one or more reference packet sequences of the reference feature sequences is extracted.
  • Each may be stored as each of the plurality of reference distance sequences stored in advance.
  • each of one or more reference packet strings each including a plurality of continuous reference packets a plurality of reference distances between the plurality of reference packets are calculated, and each of the calculated plurality of reference distances is used.
  • the reference feature quantities of the one or more reference packet strings are respectively extracted, and the Levenshtein distances between the payloads of the plurality of reference packets are used when calculating the plurality of reference distances.
  • a Levenshtein distance between the payloads of the plurality of reference packets is calculated for each of reference packets separated by N (N is an integer of 1 or more) in each of the one or more reference packet sequences.
  • each of the one or more reference packet strings is extracted by calculating M (M is an integer of 1 or more and 16 or less) bits as a unit for at least a part of the bit string forming the payload.
  • M is an integer of 1 or more and 16 or less
  • W is an integer of 2 or more
  • a reference distance sequence composed of distances is calculated, each of the calculated reference distance sequences is extracted as each of the reference feature amounts of the one or more reference packet sequences, and the reference feature amount of the extracted one or more reference packet sequences of the reference feature sequences is extracted.
  • a global alignment kernel may be calculated using each of them, and the calculated global alignment kernel may be stored as the previously stored global alignment kernel.
  • each of the reference distances may be calculated by limiting between the reference packets of the same command type among the plurality of reference packets.
  • An anomaly detection device calculates a plurality of distances between detection target packet data for a detection target packet string including a plurality of continuous detection target packets and calculates a plurality of distances between the plurality of detection target packets. Section, and a plurality of calculated distances, a feature amount extraction unit that extracts a feature amount of the detection target packet sequence, and a feature amount extraction unit that uses the extracted feature amount to determine the degree of abnormality of the detection target packet sequence.
  • An information calculation unit that calculates information.
  • the feature of the context of the detection target packet string can be extracted as the feature amount. Then, by using the extracted feature amount, it is possible to calculate the information related to the abnormality of the detection target packet sequence. As described above, according to the abnormality detection device, it is possible to detect an abnormality in the packet sequence.
  • a reference packet data distance calculation unit that calculates a plurality of reference distances between the plurality of reference packets, and the calculated plurality of reference distances.
  • a reference feature amount extraction unit that extracts the reference feature amount of each of the one or more reference packet sequences using each of the reference distances, and the information calculation unit further includes each of the extracted reference feature amounts. May also be used to calculate information relating to the degree of abnormality of the detection target packet sequence.
  • This abnormality detection device detects an abnormality in the detection target packet sequence.
  • FIG. 1 is a block diagram showing the configuration of the abnormality detection device 1 according to the first embodiment.
  • the abnormality detection device 1 includes a first profile determination unit 11, a first extraction unit 12, a reference packet data string group storage unit 13, a reference packet data distance calculation unit 14, and a reference.
  • a feature amount extraction unit 15 a reference feature amount storage unit 16, a second profile determination unit 21, a second extraction unit 22, a detection target packet data string storage unit 23, and a detection target packet data distance calculation unit 24.
  • the feature amount extraction unit 25, the feature amount storage unit 26, the information calculation unit 27, and the determination unit 28 are included.
  • the abnormality detection device 1 is realized, for example, by a computer device that includes a memory and a processor that executes a program stored in the memory.
  • the various functions realized by the abnormality detection device 1 are realized by the processor forming the abnormality detection device 1 executing the program stored in the memory forming the abnormality detection device 1.
  • the first profile determination unit 11 acquires a packet string group consisting of normal packet strings, that is, a reference packet string group 10 that is a packet string group that does not include an abnormal packet string.
  • the attribute information (source IP, destination IP, source port, destination port, protocol, etc.) of each packet included in each reference packet sequence constituting the acquired reference packet sequence group 10 is also combined.
  • the applicable profile is determined based on (including.
  • the first profile determination unit 11 may store profile information and determine the corresponding profile based on the stored profile information.
  • FIG. 2 is a schematic diagram showing an example of profile information stored in the first profile determining unit 11.
  • the first profile determining unit 11 stores, for example, the profile information shown in FIG. 2, and determines a profile identified by the profile ID of the line in which the target command matches for each packet.
  • FIG. 3 is a schematic diagram showing a data structure of a packet of the Modbus / TCP protocol.
  • the first profile determination unit 11 determines that the packet whose bit string stored in the Data field shown in FIG. 3 matches the bit string corresponding to the target command is the target command. Is determined to be a matching packet.
  • FIG. 4 is a schematic diagram showing the data structure of a BACnet / IP protocol packet.
  • the first profile determination unit 11 determines that the bit string stored in the APDU Type field and the bit string stored in the Service Choice field shown in FIG. A packet that matches the corresponding bit string is determined to be a packet that matches the target command.
  • the first profile determination unit 11 identifies the protocol of the packet by executing an application having the Deep Packet Inspection function.
  • the profile may be determined for the packet based on the specified protocol.
  • the first extraction unit 12 extracts, for each packet whose profile is determined by the first profile determination unit 11, a bit string stored in the payload field of each packet as packet data.
  • the first extracting unit 12 extracts the bit string stored in the TCP Payload field shown in FIG. 3 as packet data.
  • the first extraction unit 12 extracts the bit string stored in the UDP Payload shown in FIG. 4 as packet data.
  • the first extraction unit 12 When the packet data is extracted from each packet, the first extraction unit 12 outputs, for each reference packet sequence acquired by the first profile determination unit 11, a reference packet data sequence composed of packet data of the same profile.
  • FIG. 5 is a schematic diagram showing an example of a reference packet data string output by the first extracting unit 12.
  • Packet data corresponding to the write command to “turn on the power of the device to be turned on” and packet data corresponding to the write command to “change the temperature setting of the device identified by ID 1 to 27.0 ° C.”
  • the reference packet data sequence group storage unit 13 stores a reference packet data sequence group composed of one or more reference packet data sequences output from the first extraction unit 12.
  • the reference packet data distance calculation unit 14 is configured to, for each of the reference packet data strings stored in the reference packet data string group storage unit 13, a plurality of reference distances between a plurality of reference packet data forming the reference packet data string. To calculate.
  • the inter-reference-packet-data distance calculation unit 14 treats the packet data as a byte string cut out one byte at a time, and calculates the reference distance between the reference packet data by calculating the distance of the byte string between the reference packet data. ..
  • FIG. 6 is a schematic diagram showing an example of how the reference packet data distance calculating unit 14 cuts out packet data byte by byte.
  • the reference packet data distance calculating unit 14 is described as cutting out the packet data 1 byte at a time, but the unit of cutting out is not necessarily limited to the example of 1 byte.
  • the cutout unit may be, for example, a bit string of 1 bit or more and 16 bits or less, and a bit string of any other length.
  • the reference packet data distance calculating unit 14 need not be limited to the example in which the packet data is cut out in continuous bit units.
  • the reference packet data distance calculation unit 14 may cut out a bit string by repeating the process of cutting out x bits and skipping y bits.
  • the reference packet data distance calculation unit 14 calculates the reference distance using the Levenshtein distance between packet data.
  • the Levenshtein distance is a distance that can be defined between two character strings or byte strings.
  • the Levenshtein distance is defined as the minimum number of times required to transform one character string or byte string into another character string or byte string by inserting, deleting, or replacing one character or one byte.
  • FIG. 7 shows an example of how the reference packet data distance calculating unit 14 calculates the Levenshtein distance between two character strings (here, as an example, between the character strings “ELEPHANT” and “RELEVANT”). It is a schematic diagram which shows.
  • the reference packet data distance calculation unit 14 calculates the Levenshtein distance between “ELEPHANT” and “RELEVANT” as “3”.
  • FIG. 8 is a schematic diagram showing an example of how the reference packet data distance calculating unit 14 calculates the Levenshtein distance between two byte strings.
  • the reference packet data distance calculation unit 14 calculates the Levenshtein distance between the byte strings illustrated in FIG. 8 as “3”.
  • the reference packet data distance calculation unit 14 sets a plurality of reference distances between a plurality of reference packet data forming a reference packet data string to N (N is an integer of 1 or more) reference packets. calculate.
  • FIG. 9 is a schematic diagram showing an example of how the inter-reference-packet-data distance calculation unit 14 calculates a plurality of reference distances from a reference packet data string when N is 1.
  • N is 1, but the case is not limited to the case where N is 1.
  • the reference packet data distance calculation unit 14 calculates the reference packet data sequence from the target reference packet data sequence when the reference packet data sequence is composed of eight consecutive reference packet data sets. Seven reference distances are calculated between reference packet data separated by one, that is, between reference packet data strings adjacent to each other.
  • the reference packet data distance calculating unit 14 may calculate the Levenshtein distance as the Levenshtein distance between the packet data for at least a part of the bit string forming the packet data, and does not necessarily form the packet data.
  • the present invention is not limited to the case where all bit strings are targeted.
  • the reference feature quantity extraction unit 15 uses each of the plurality of reference distances calculated by the reference packet data distance calculation unit 14 for each reference packet data string stored in the reference packet data string group storage unit 13. Then, the reference feature amount is extracted. More specifically, the reference feature quantity extraction unit 15 provides continuous W (W is an integer of 2 or more) references for each of the reference packet data strings stored in the reference packet data string group storage unit 13. For each of one or more windows composed of packet data, an appearance distribution of a plurality of reference distances calculated for reference packet data belonging to the window is calculated, and each of the calculated appearance distributions of the reference distances is used as a reference feature amount. Extract.
  • FIG. 10 is a schematic diagram showing an example of how the reference feature quantity extraction unit 15 extracts a reference feature quantity from one reference packet data string.
  • FIG. 10 is a schematic diagram when W is 4 and the reference packet data distance calculation unit 14 calculates a plurality of reference distances shown in FIG. 9 for one reference packet data string. ..
  • the reference distances calculated for the reference packet data belonging to the first window are “1”, “3”, “2”, and “2”. Therefore, the reference feature amount extraction unit 15 calculates the appearance distributions of the plurality of reference distances in the first window with an appearance rate of "1” of "0.25" and an appearance rate of "2" of "0.5”. , And “3” have an appearance rate of “0.25” and “4” have an appearance rate of “0”, which is calculated as an appearance distribution A (see “A” in FIG. 10).
  • the reference distances calculated for the reference packet data belonging to the second window are "3", "2", “2”, and "4".
  • the reference feature amount extraction unit 15 calculates the appearance distributions of the plurality of reference distances in the second window with the appearance rate of “1” being “0”, the appearance rate of “2” being “0.5”, It is calculated as an appearance distribution B (see “B” in FIG. 10) in which the appearance rate of “3” is “0.25” and the appearance rate of “4” is “0.25”.
  • the reference distances calculated for the reference packet data belonging to the third window are "2", "2", "4", and "3".
  • the reference feature amount extraction unit 15 calculates the appearance distributions of the plurality of reference distances in the third window with an appearance rate of "1" of "0", an appearance rate of "2" of "0.25", It is calculated as an appearance distribution C (see “C” in FIG. 10) in which the appearance rate of “3” is “0.5” and the appearance rate of “4” is “0.25”.
  • the reference distances calculated for the reference packet data belonging to the fourth window are "2", "4", "3", and "1".
  • the reference feature quantity extraction unit 15 calculates the appearance distributions of the plurality of reference distances in the fourth window as follows: the appearance rate of "1" is "0.25", the appearance rate of "2" is “0”, It is calculated as an appearance distribution D (see “D” in FIG. 10) in which the appearance rate of “3” is “0.5” and the appearance rate of “4” is “0.25”. Then, the reference feature quantity extraction unit 15 extracts the calculated appearance distribution A, appearance distribution B, appearance distribution C, and appearance distribution D as reference feature quantities.
  • the reference feature amount storage unit 16 stores the reference feature amount extracted by the reference feature amount extraction unit 15.
  • the second profile determination unit 21 acquires the detection target packet sequence 20 that is the abnormality detection target. Then, for each packet included in the acquired detection target packet sequence 20, based on its attribute information (source IP, destination IP, source port, destination port, protocol, etc., including combinations thereof). Determine the applicable profile. The second profile determination unit 21 determines the profile using the same algorithm as the profile determination performed by the first profile determination unit 11.
  • the second extraction unit 22 extracts the bit string stored in the payload field of each packet as packet data for a plurality of packets whose profile is determined by the second profile determination unit 21.
  • the second extraction unit 22 extracts the packet data by the same algorithm as the extraction of the packet data performed by the first extraction unit 12.
  • the second extraction unit 22 When the packet data is extracted, the second extraction unit 22 outputs a detection target packet data string composed of packet data of the same profile.
  • the detection target packet data string storage unit 23 stores the detection target packet data string output from the second extraction unit 22.
  • the detection target packet data distance calculation unit 24 replaces the reference packet with the detection target packet, the reference packet data with the detection target packet data, and the reference.
  • the distance is calculated by the same algorithm as the algorithm in which the packet data string is replaced with the detection target packet data string and the reference distance is replaced with the distance.
  • FIG. 11 is a schematic diagram showing an example of how the detection target packet data distance calculation unit 24 calculates a plurality of distances from the detection target packet data sequence when N is 1.
  • N is 1, but the case is not limited to the case where N is 1.
  • the detection target packet data distance calculation unit 24 determines the target detection target packet data. From the packet data sequence, five distances between the detection target packet data, that is, between the detection target packet data sequences adjacent to each other are calculated.
  • the detection target inter-packet data distance calculation unit 24 may calculate the Levenshtein distance for at least a part of a bit string forming the packet data as the Levenshtein distance between the packet data, and does not necessarily form the packet data.
  • the present invention is not limited to the case where all the bit strings to be processed are targeted.
  • the feature amount extraction unit 25 uses the plurality of distances calculated by the detection target inter-packet data distance calculation unit 24 for the detection target packet data sequence stored in the detection target packet data sequence storage unit 23 to calculate the feature amount. To extract. More specifically, the feature amount extraction unit 25 detects continuous W (W is an integer of 2 or more) detection target packets for the detection target packet data sequence stored in the detection target packet data sequence storage unit 23. The appearance distribution of the plurality of distances calculated for the detection target packet belonging to the window is calculated for each one or more windows of data, and the calculated distribution of the distance appearances is extracted as a feature amount.
  • W is an integer of 2 or more
  • FIG. 12 is a schematic diagram showing an example of how the feature quantity extraction unit 25 extracts a feature quantity from a detection target packet data string.
  • FIG. 12 is a schematic diagram when W is 4 and the detection target packet data distance calculation unit 24 calculates a plurality of distances shown in FIG. 11 for the detection target packet data sequence.
  • the distances calculated for the detection target packet data belonging to the first window are “4”, “2”, “3”, and “1”.
  • the feature amount extraction unit 25 calculates the appearance distribution of a plurality of distances in the first window with the appearance rate of "1" being "0.25", the appearance rate of "2” being “0.25", It is calculated as an appearance distribution X (see “X” in FIG. 12) in which the appearance rate of “3” is “0.25” and the appearance rate of “4” is “0.25”.
  • the distances calculated for the detection target packet data belonging to the second window are "2", "3", “1", and "2".
  • the feature amount extraction unit 25 determines the appearance distribution of a plurality of distances in the second window with an appearance rate of “1” of “0” and an appearance rate of “2” of “0.5” and “3”. Is calculated as an appearance distribution Y (see “Y” in FIG. 12) in which the appearance rate of “” is “0.25” and the appearance rate of “4” is “0”. Then, the feature amount extraction unit 25 extracts the calculated appearance distribution X and appearance distribution Y as feature amounts.
  • the feature amount storage unit 26 stores the feature amount extracted by the feature amount extraction unit 25.
  • the information calculation unit 27 is arranged between each of the reference distance appearance distributions stored in the reference feature amount storage unit 16 as reference feature amounts and each of the distance appearance distributions stored in the feature amount storage unit 26 as feature amounts.
  • Earth Mover's Distance Earth Mover's Distance: hereinafter, also referred to as EMD
  • detection is performed using the K-nearest neighbor method that uses each of the calculated Earth Mover's distances.
  • An abnormality degree indicating the degree of abnormality of the target packet sequence 20 is calculated.
  • the Earth Mover's distance is a distance that can be set between two probability distributions (here, between the appearance distribution of the reference distance and the appearance distribution of the distance).
  • the Earth Mover's distance is the minimum cost required to transform one probability distribution (here, the appearance distribution) into another probability distribution (here, the appearance distribution) by moving the probability component (here, the appearance rate component). Is defined.
  • FIG. 13 is a schematic diagram showing an example of how the information calculation unit 27 calculates the Earth Mover's distance between four appearance distributions (appearance distribution K, appearance distribution L, appearance distribution M, and appearance distribution N).
  • the appearance rate of "0” is “0"
  • the appearance rate of “1” is “0.5”
  • the appearance rate of “2” is "0.25"
  • the appearance rate is "3"
  • the appearance distribution K having the rate of “0.25” has the appearance rate of “0” of “0” and the appearance rate of “1” of “0.25” and “2”.
  • the minimum cost required for conversion into the appearance distribution L is The cost is to move the appearance rate component “0.25” of the appearance rate “0.5” of “1” in the distribution K to the appearance rate of “3” in the appearance distribution L.
  • the information calculation unit 27 calculates the Earth Mover's distance between the appearance distribution K and the appearance distribution L as 0.25 ⁇
  • 0.5. Similarly, the information calculation unit 27 calculates each of the Earth Mover's distances among the four appearance distributions as each of the values shown in the table in FIG.
  • the information calculation unit 27 shows the appearance distribution of the reference distance stored in the reference feature amount storage unit 16 as the reference feature amount and the appearance distribution of the distance stored in the feature amount storage unit 26 as the feature amount.
  • FIG. 7 is a schematic diagram showing an example of how the degree of abnormality of the detection target packet sequence 20 is calculated from each of them.
  • the appearance distributions of the reference distances stored in the reference feature amount storage unit 16 are the appearance distribution A, the appearance distribution B, the appearance distribution C, and the appearance distribution D illustrated in FIG. It is a schematic diagram when the appearance distributions of the stored distances are the appearance distribution X and the appearance distribution Y shown in FIG.
  • the information calculation unit 27 calculates the earth movers distance (hereinafter, also referred to as “EMD_XA”) between the appearance distribution X and the appearance distribution A as “0.5” and appears.
  • the Earth Mover's distance between the distribution X and the appearance distribution B (hereinafter, also referred to as “EMD_XB”) is calculated as “0.25”
  • the Earth Mover's distance between the appearance distribution X and the appearance distribution C (Hereinafter, also referred to as “EMD_XD”) is "0.25".
  • EMD_XA earth movers distance between the appearance distribution X and the appearance distribution A as “0.5” and appears.
  • the Earth Mover's distance between the distribution X and the appearance distribution B (hereinafter, also referred to as “EMD_XB”) is calculated as “0.25”
  • the Earth Mover's distance between the appearance distribution X and the appearance distribution C (hereinafter, also referred to as “EMD_XD”) is "0.25".
  • EMD_XA earth
  • the earth movers distance (hereinafter, also referred to as “EMD_YB”) of is calculated as “0.75”
  • the earth movers distance hereinafter, also referred to as “EMD_YC”
  • the determination unit 28 determines whether or not the detection target packet sequence 20 is abnormal based on the abnormality degree of the detection target packet sequence 20 calculated by the information calculation unit 27. Then, the determination unit 28 outputs the determination result to the outside. For example, the determination unit 28 stores a threshold value, and when the abnormality degree of the detection target packet sequence 20 is equal to or higher than the threshold value, the determination unit 28 determines that the detection target packet sequence 20 is abnormal, and the abnormality degree of the detection target packet sequence 20 is When it is less than the threshold value, it may be determined that the detection target packet sequence 20 is not abnormal.
  • the determination unit 28 stores threshold values that are mutually independent values for each profile that is the determination target of the first profile determination unit 11 and the second profile determination unit 21, and the detection extracted from the detection target packet sequence 20. Depending on the profile of the target packet sequence, the above determination may be performed using a threshold value corresponding to the profile.
  • the abnormality detection device 1 having the above configuration performs the first reference feature amount extraction processing and the first abnormality detection processing. Hereinafter, these processes will be sequentially described with reference to the drawings.
  • the first reference feature amount extraction process is a process of extracting the reference feature amount from the reference packet sequence group 10.
  • the first reference feature quantity extraction process is started, for example, by the user using the abnormality detection device 1 performing an operation to the abnormality detection device 1 to start the first reference feature quantity extraction process.
  • FIG. 15 is a flowchart of the first reference feature quantity extraction processing.
  • the first profile determination unit 11 acquires the reference packet sequence group 10 (step S5).
  • the first profile determination unit 11 selects one unselected reference packet sequence from the reference packet sequences included in the reference packet sequence group 10 (step S10).
  • the unselected reference packet sequence is a reference packet sequence that has not been selected in the past process of step S10 in the loop process formed by the process of step S10 to step S55: Yes process (described later). I mean.
  • the first profile determination unit 11 selects one unselected packet from the packets included in the selected reference packet sequence (step S15).
  • selecting an unselected packet means a packet that has not been selected in the past processing of step S15 in the loop processing formed by the processing of step S15 to step S35: Yes (described later).
  • the first profile determining unit 11 checks whether the profile of the selected packet can be determined using the stored profile information (step S20).
  • step S20 when the profile of the selected packet can be determined using the stored profile information (step S20: Yes), the first profile determination unit 11 uses the stored profile information, The profile of the selected packet is determined (step S30).
  • step S20 when the profile of the selected packet cannot be determined using the stored profile information (step S20: No), the first profile determination unit 11 executes the application having the Deep Packet Inspection function. By executing, the protocol of the selected packet is specified (step S25). Then, the first profile determination unit 11 determines the profile of the selected packet based on the specified protocol (step S30).
  • the first profile determining unit 11 checks whether or not there is an unselected packet among the packets included in the selected reference packet sequence (step S35).
  • step S35 if there is an unselected packet (step S35: Yes), the first reference feature amount extraction process proceeds to the process of step S15 again.
  • step S35 when there is no unselected packet (step S35: No), the first extraction unit 12 receives the payload of each packet for each packet whose profile is determined by the first profile determination unit 11. The bit string stored in the field is extracted as packet data. Then, the first extraction unit 12 extracts a reference packet data string composed of packet data of the same profile (step S40). Then, the reference packet data sequence group storage unit 13 stores the reference packet data sequence extracted by the first extraction unit 12.
  • the reference packet data distance calculation unit 14 calculates a plurality of reference distances between a plurality of reference packet data items forming the reference packet data string (step S45).
  • the reference feature amount extraction unit 15 extracts the appearance distribution of the reference distance as the reference feature amount for each window from the calculated plurality of reference distances (step S50). Then, the reference feature amount storage unit 16 stores the appearance distribution of the reference distance extracted as the reference feature amount by the reference feature amount extraction unit 15.
  • the first profile determination unit 11 checks whether or not there is an unselected reference packet sequence in the acquired reference packet sequence group 10 (step S55).
  • step S55 when there is an unselected reference packet sequence (step S55: Yes), the first reference feature quantity extraction process proceeds to the process of step S10 again.
  • step S55 if there is no unselected reference packet sequence (step S55: No), the first reference feature amount extraction process ends the process.
  • the first abnormality detection processing is processing for detecting an abnormality in the detection target packet string 20.
  • the first abnormality detection process is started, for example, when the user who uses the abnormality detection device 1 performs an operation for starting the first abnormality detection process on the abnormality detection device 1.
  • FIG. 16 is a flowchart of the first abnormality detection process.
  • the second profile determination unit 21 acquires the detection target packet string 20 (step S105).
  • the second profile determination unit 21 selects one unselected packet from the packets included in the acquired detection target packet string 20 (step S115).
  • selecting an unselected packet means a packet that has not been selected in the past processing of step S115 in the loop processing formed by the processing of step S115 to step S135: Yes (described later).
  • the second profile determining unit 21 checks whether the profile of the selected packet can be determined using the stored profile information (step S120).
  • step S120 when the profile of the selected packet can be determined using the stored profile information (step S120: Yes), the second profile determination unit 21 uses the stored profile information to The profile of the selected packet is determined (step S130).
  • step S120 when the profile of the selected packet cannot be determined using the stored profile information (step S120: No), the second profile determination unit 21 executes the application having the Deep Packet Inspection function. By executing, the protocol of the selected packet is specified (step S125). Then, the second profile determination unit 21 determines the profile of the selected packet based on the specified protocol (step S130).
  • the second profile determination unit 21 checks whether or not there is an unselected packet among the packets included in the acquired detection target packet sequence 20 (step S135).
  • step S35 if there is an unselected packet (step S135: Yes), the first abnormality detection process proceeds to the process of step S115 again.
  • step S1335 when there is no unselected packet (step S135: No), the second extraction unit 22 sets the payload of each packet for each packet whose profile is determined by the second profile determination unit 21. The bit string stored in the field is extracted as packet data. Then, the second extraction unit 22 extracts a detection target packet data string composed of packet data of the same profile (step S140). Then, the detection target packet data string storage unit 23 stores the detection target packet data string extracted by the second extraction unit 22.
  • the detection target packet data distance calculation unit 24 calculates a plurality of distances between the plurality of detection target packet data that form the detection target packet data string (step S145).
  • the feature amount extraction unit 25 extracts the appearance distribution of the distance as the feature amount for each window from the calculated plurality of distances (step S150). Then, the feature amount storage unit 26 stores the appearance distribution of the distance extracted as the feature amount by the feature amount extraction unit 25.
  • the information calculation unit 27 divides each of the appearance distribution of the extracted distance and each of the appearance distribution of the reference distance stored as the reference feature amount in the reference feature amount storage unit 16.
  • the earth movers distance between them is calculated (step S155), and the degree of abnormality indicating the degree of abnormality of the detection target packet sequence 20 is calculated using the K-nearest neighbor method that uses each of the calculated earth movers distances (step S155). S160).
  • the determination unit 28 checks whether or not the calculated degree of abnormality is greater than or equal to the stored threshold value (step S165).
  • step S165 when the calculated degree of abnormality is equal to or greater than the stored threshold value (step S165: Yes), the determination unit 28 determines that the detection target packet sequence 20 is abnormal (step S170), A signal indicating that the detection target packet sequence 20 is abnormal is output to the outside.
  • step S165 when the calculated degree of abnormality is not greater than or equal to the stored threshold value (step S165: No), the determination unit 28 determines that the detection target packet sequence 20 is not abnormal (step S175), and the detection target A signal indicating that the packet train 20 is not abnormal is output to the outside.
  • the first abnormality detection process ends when the process of step S170 ends and when the process of step S175 ends.
  • the abnormality detection device 1 having the above-described configuration executes the first reference feature amount extraction processing to extract the context feature of the normal packet sequence as the reference feature amount from the reference packet sequence group 10 including the normal packet sequence. And remember. Then, the abnormality detection device 1 executes the first abnormality detection process to extract the feature of the context of the detection target packet sequence 20 as a feature amount from the detection target packet sequence 20, and the reference stored in the extracted feature amount. An abnormality degree indicating the degree of deviation from the feature amount is calculated, and based on the calculated abnormality degree, it is determined whether or not the detection target packet sequence 20 is abnormal. In this way, the abnormality detection device 1 can detect an abnormality in the detection target packet sequence 20.
  • FIG. 17 is a block diagram showing the configuration of the abnormality detection device 1A according to the second embodiment.
  • the same components as those of the abnormality detection device 1 according to the first embodiment have already been described, and the same reference numerals are given to omit the detailed description thereof. The difference will be mainly described.
  • the reference feature amount extraction unit 15 is changed from the abnormality detection device 1 to the reference feature amount extraction unit 15A, and the reference feature amount storage unit 16 is changed to the reference feature amount storage unit 16A.
  • the feature amount extraction unit 25 is changed to the feature amount extraction unit 25A
  • the feature amount storage unit 26 is changed to the feature amount storage unit 26A
  • the information calculation unit 27 is changed to the information calculation unit 27A
  • the determination unit 28 is changed. Is changed to the determination unit 28A.
  • the reference feature amount extraction unit 15A uses each of the plurality of reference distances calculated by the reference packet data distance calculation unit 14 for each of the reference packet data strings stored in the reference packet data string group storage unit 13. Then, the reference feature amount is extracted. More specifically, the reference feature amount extraction unit 15A, for each of the reference packet data strings stored in the reference packet data string group storage unit 13, has W (W is an integer of 2 or more) continuous references. For each of one or more windows composed of packet data, a reference distance sequence composed of a plurality of reference distances calculated for reference packet data belonging to the window is calculated, and each of the calculated reference distance sequences is used as a reference feature amount. Extract.
  • the reference feature amount storage unit 16A stores the reference feature amount extracted by the reference feature amount extraction unit 15A.
  • the feature amount extraction unit 25A uses the plurality of distances calculated by the detection target packet data distance calculation unit 24 for the detection target packet data string stored in the detection target packet data string storage unit 23 to calculate the feature amount. To extract. More specifically, the feature amount extraction unit 25A, the detection target packet data string stored in the detection target packet data string storage unit 23, W (W is an integer of 2 or more) continuous detection target packets. For each of one or more windows of data, a distance string including a plurality of distances calculated for the detection target packet belonging to the window is calculated, and the calculated distance string is extracted as a feature amount.
  • the feature amount storage unit 26A stores the feature amount extracted by the feature amount extraction unit 25A.
  • the information calculation unit 27A warps between each of the reference distance sequences stored as the reference feature amounts in the reference feature amount storage unit 16A and each of the distance sequences stored as the feature amounts in the feature amount storage unit 26A.
  • Each of the distances defined by the Dynamic Time Warping method (hereinafter also referred to as “Dynamic Time Warping distance” or “DTW distance”) is calculated, and each of the calculated dynamic time warping distances is used. Then, the abnormality degree indicating the degree of abnormality of the detection target packet sequence 20 is calculated.
  • the dynamic time warping distance is a distance that can be set between two time series data (here, between the reference distance column and the distance column).
  • the dynamic time warping distance is (i) when there are two time series data x (the number of elements of x is n: n is an integer of 2 or more) and y (the number of elements of y is m: m is an integer of 2 or more).
  • J) elements are the distances between xi and yj, so as to satisfy the constraint that row elements are n or less and column elements are m or less, from (i, j) elements to (i + 1, j), ( i, j + 1) or (i + 1, j + 1) as the sum of the distances in the route where the sum of the elements on the route is the smallest among the routes that are repeated until reaching the (n, m) element Is defined.
  • the information calculation unit 27A uses the reference distance sequence composed of time series data of “2”, “5”, “4”, and “2” and “2”, “2”, “5”, “1”.
  • the information calculation unit 27A calculates a distance matrix composed of the distances (differences) between the reference distance columns and the distance columns at each time point, as shown in FIG. Then, the information calculation unit 27A in the calculated distance matrix, in order from the position of the distance at the upper left end, "lower 1 square”, “lower 1 square”, “lower right 1 square”, “right 1 square”, “ “Lower right one square” “2" which is the sum of the distances "0", “0", “0", “1” and "1" on the moving route is the sum of the distances on all the moving routes.
  • the information calculation unit 27A includes a reference distance sequence including time series data of “2”, “5”, “4”, and “2” and a reference distance sequence of “2”, “2”, “5”, and “1”.
  • the dynamic time warping distance between the distance sequence consisting of time series data is calculated as “2”.
  • the information calculation unit 27A uses the dynamic time warping distance calculation method described above to calculate the reference distance sequence stored in the reference feature amount storage unit 16A and the distance sequence stored in the feature amount storage unit 26A. The dynamic time warping distances between them are calculated, and the largest value of the calculated dynamic time warping distances is calculated as the abnormality degree of the detection target packet sequence 20.
  • the determination unit 28A determines whether or not the detection target packet sequence 20 is abnormal based on the abnormality degree of the detection target packet sequence 20 calculated by the information calculation unit 27A. Then, the determination unit 28A outputs the determination result to the outside.
  • the determination unit 28A stores, for example, a threshold value, and when the abnormality degree of the detection target packet sequence 20 is equal to or higher than the threshold value, the determination unit 28A determines that the detection target packet sequence 20 is abnormal, and the abnormality degree of the detection target packet sequence 20 is When it is less than the threshold value, it may be determined that the detection target packet sequence 20 is not abnormal.
  • the determination unit 28A stores threshold values that are mutually independent values for each profile that is the determination target of the first profile determination unit 11 and the second profile determination unit 21, and the detection extracted from the detection target packet sequence 20. Depending on the profile of the target packet sequence, the above determination may be performed using a threshold value corresponding to the profile.
  • the abnormality detection device 1A configured as described above includes the second reference feature amount extraction process in which a part of the process is changed from the first reference feature amount extraction process according to the first embodiment, and the first abnormality according to the first embodiment.
  • a second abnormality detection process in which a part of the process is changed from the detection process is performed.
  • FIG. 19 is a flowchart of the second reference feature amount extraction processing.
  • step S205 to the process of step S245 and the process of step S255 are respectively the process to step S5 to the process of step S5 in the first reference feature amount extraction process according to the first embodiment.
  • the process is the same as the process of S45 and the process of step S55 (see FIG. 15 and the like). Therefore, since the processes of step S205 to step S245 and the process of step S255 have already been described, the detailed description thereof will be omitted, and the process of step S250 will be mainly described.
  • the reference feature amount extraction unit 15A extracts, for each window, a reference distance string including the calculated plurality of reference distances as a reference feature amount (step S250). Then, the reference feature amount storage unit 16A stores the reference distance sequence extracted as the reference feature amount by the reference feature amount extraction unit 15A.
  • step S250 When the process of step S250 ends, the second reference feature amount extraction process proceeds to step S255.
  • FIG. 20 is a flowchart of the second abnormality detection process.
  • step S305 to step S345 are respectively the same as the processes of step S105 to step S145 in the first abnormality detection process according to the first embodiment. is there. Further, the processing of step S365 to the processing of step S375 are respectively replaced with the determination unit 28A to the determination unit 28A with respect to the processing of step S165 to the processing of step S175 in the first abnormality detection processing according to the first embodiment.
  • step S365 to step S375 are respectively replaced with the determination unit 28A to the determination unit 28A with respect to the processing of step S165 to the processing of step S175 in the first abnormality detection processing according to the first embodiment.
  • the feature amount extraction unit 25A extracts a distance string including the calculated plurality of distances as a feature amount for each window (step S350). Then, the feature amount storage unit 26A stores the distance string extracted as the feature amount by the feature amount extraction unit 25A.
  • the information calculation unit 27 performs dynamic time warping between each of the extracted distance sequences and each of the reference distance sequences stored as the reference feature amount in the reference feature amount storage unit 16A. Each of the distances is calculated, and the degree of abnormality indicating the degree of abnormality of the detection target packet sequence 20 is calculated using each of the calculated dynamic warping distances (step S355).
  • step S355 When the process of step S355 ends, the second abnormality detection process proceeds to step S365.
  • the abnormality detection device 1A having the above-described configuration executes the second reference feature amount extraction process to extract the context feature of the normal packet sequence as the reference feature amount from the reference packet sequence group 10 including the normal packet sequence. And remember. Then, the abnormality detection device 1A extracts the feature of the context of the detection target packet sequence 20 from the detection target packet sequence 20 as a feature amount by executing the second abnormality detection process, and the extracted feature amount is stored in the reference. An abnormality degree indicating the degree of deviation from the feature amount is calculated, and based on the calculated abnormality degree, it is determined whether or not the detection target packet sequence 20 is abnormal. As described above, according to the abnormality detection device 1A, it is possible to detect the abnormality of the detection target packet sequence 20 as in the case of the abnormality detection device 1 according to the first embodiment.
  • FIG. 21 is a block diagram showing the configuration of the abnormality detection device 1B according to the third embodiment.
  • the same components as those of the abnormality detection device 1A according to the second embodiment have already been described, and the same reference numerals are given to omit the detailed description thereof. The difference will be mainly described.
  • the information calculation unit 27A is changed to the information calculation unit 27B
  • the determination unit 28A is changed to the determination unit 28B
  • the kernel calculation unit 31 is changed from the abnormality detection device 1A.
  • a kernel storage unit 32 is added and configured.
  • the kernel calculation unit 31 calculates a global alignment kernel (Global Alignment Kernel: see Non-Patent Document 3) using each of the reference distance sequences stored as reference feature amounts in the reference feature amount storage unit 16A.
  • the kernel calculation unit 31 for example, uses each of the reference distance sequences stored in the reference feature amount storage unit 16A to cause the one-class SVM (Support Vector Vector Machine), which is a machine learning model, to perform unsupervised learning and to perform global learning.
  • the alignment kernel may be calculated.
  • the kernel storage unit 32 stores the global alignment kernel calculated by the kernel calculation unit 31.
  • the information calculation unit 27B applies the global alignment kernel stored in the kernel storage unit 32 to each of the distance sequences stored as feature amounts in the feature amount storage unit 26A, thereby applying the global alignment kernel to each of the distance sequences.
  • the outlier is calculated as the outlier, and the largest value among the calculated outliers is calculated as the abnormality degree of the detection target packet sequence 20.
  • the determination unit 28B determines whether or not the detection target packet sequence 20 is abnormal based on the abnormality degree of the detection target packet sequence 20 calculated by the information calculation unit 27B. Then, the determination unit 28A outputs the determination result to the outside. For example, the determination unit 28B stores a threshold value, and when the abnormality degree of the detection target packet sequence 20 is equal to or higher than the threshold value, the determination unit 28B determines that the detection target packet sequence 20 is abnormal, and the abnormality degree of the detection target packet sequence 20 is When it is less than the threshold value, it may be determined that the detection target packet sequence 20 is not abnormal.
  • the determination unit 28B stores threshold values that are mutually independent values for each profile that is the determination target of the first profile determination unit 11 and the second profile determination unit 21, and the detection extracted from the detection target packet sequence 20. Depending on the profile of the target packet sequence, the above determination may be performed using a threshold value corresponding to the profile.
  • the abnormality detection device 1B configured as described above includes the third reference feature amount extraction process in which a part of the process is changed from the second reference feature amount extraction process according to the second embodiment, and the second abnormality according to the second embodiment.
  • a third abnormality detection process in which a part of the process is changed from the detection process is performed.
  • FIG. 22 is a flowchart of the third reference feature quantity extraction processing.
  • step S405 to step S455 are respectively the processes of step S205 to step S255 (FIG. 19) in the second reference feature amount extraction process according to the second embodiment. Etc.)). Therefore, since these processes have already been described, detailed description thereof will be omitted, and the process of step S460 will be mainly described.
  • step S455 when there is no unselected reference packet sequence (step S455: No), the kernel calculation unit 31 uses each of the reference distance sequences stored as the reference feature amount in the reference feature amount storage unit 16A. Then, the global alignment kernel is calculated (step S460). Then, the kernel storage unit 32 stores the global alignment kernel calculated by the kernel calculation unit 31.
  • step S460 ends, the third reference feature amount extraction process ends.
  • FIG. 23 is a flowchart of the third abnormality detection process.
  • step S505 to step S550 are the same as the processes of step S305 to step S350 in the second abnormality detection process according to the second embodiment, respectively. .. Further, in the processes of step S565 to step S575, the determination unit 28A is replaced with the determination unit 28B in the processes of steps S365 to S375 in the second abnormality detection process according to the second embodiment, respectively.
  • the process is the same as the process. Therefore, since the processes of steps S505 to S550 and the processes of steps S565 to 5375 have already been described, the detailed description thereof will be omitted and the process of step S555 will be mainly described.
  • step S550 when the distance sequence is extracted as the feature amount, the information calculation unit 27B applies the global alignment kernel stored in the kernel storage unit 32 to each of the extracted distance sequences.
  • the outlier is calculated, and the largest value among the calculated outliers is calculated as the abnormality degree of the detection target packet sequence 20.
  • step S555 When the process of step S555 ends, the third abnormality detection process proceeds to step S565.
  • the abnormality detection device 1B having the above configuration executes the third reference feature amount extraction processing to extract the feature of the context of the normal packet sequence as the reference feature amount from the reference packet sequence group 10 including the normal packet sequence. And remember. Then, the abnormality detection device 1B executes the third abnormality detection process to extract the feature of the context of the detection target packet sequence 20 as the feature amount from the detection target packet sequence 20, and the extracted feature amount is stored in the reference. An abnormality degree indicating the degree of deviation from the feature amount is calculated, and based on the calculated abnormality degree, it is determined whether or not the detection target packet sequence 20 is abnormal. As described above, according to the abnormality detection device 1B, it is possible to detect an abnormality in the detection target packet sequence 20, similarly to the abnormality detection device 1 according to the first embodiment and the abnormality detection device 1A according to the second embodiment. it can.
  • the inter-reference-packet-data distance calculation unit 14 sets a plurality of reference distances between a plurality of reference packet data forming a reference packet data sequence to N reference packets separated from each other. It has been described as an example of the configuration of calculating by. On the other hand, as another example of the configuration, the inter-reference-packet-data distance calculating unit 14 further sets a plurality of reference distances between the plurality of reference packet data forming the reference packet data sequence to L (L is other than N). An example of a configuration is also conceivable in which calculation is performed for each of reference packets that are 1 or more integers apart from each other.
  • the detection target packet data distance calculation unit 24 calculates the distance by the same algorithm as the reference packet data distance calculation unit 14 of the above-described example of the configuration, that is, the detection target packet data string is further calculated.
  • the configuration is such that a plurality of distances between the plurality of detection target packet data that are configured are also calculated for each of the L reference packet distances.
  • the abnormality detection device 1 is an example of a configuration in which the determination unit 29 determines whether the detection target packet sequence 20 is abnormal and outputs the determination result to the outside. ..
  • the information calculation unit 27 calculates the abnormality degree indicating the degree of abnormality of the detection target packet sequence 20 and outputs the calculated abnormality degree to the outside. Configuration examples are also possible. In this case, the abnormality detection device 1 may not have the determination unit 29.
  • the abnormality detection device 1 extracts the reference feature amount by executing the first reference feature amount extraction processing, and stores the extracted reference feature amount in the reference feature amount extraction unit 15. It was an example of the configuration. On the other hand, as an example of another configuration, the abnormality detection device 1 externally acquires the reference feature amount extracted by an external device or the like, and stores the acquired reference feature amount in the reference feature amount storage unit 16 in advance. An example of a pre-configured configuration is also possible. In this case, the abnormality detection device 1 does not need to perform the first reference feature amount extraction processing, and the first profile determination unit 11, the first extraction unit 12, the reference packet data string group storage unit 13, and the reference packet data. The configuration may not include the inter-distance calculation unit 14 and the reference feature amount extraction unit 15.
  • an example of the configuration in which the abnormality detection device 1 is manufactured in a state in which the reference feature amount storage unit 16 stores the reference feature amount in advance can be considered. Also in this case, the abnormality detection device 1 does not need to perform the first reference feature amount extraction processing, and the first profile determination unit 11, the first extraction unit 12, the reference packet data string group storage unit 13, and the reference packet. The inter-data distance calculation unit 14 and the reference feature amount extraction unit 15 may not be included.
  • the abnormality detection device 1B calculates the global alignment kernel by executing the third reference feature amount extraction processing, and stores the calculated global alignment kernel in the kernel storage unit 32.
  • the abnormality detection device 1B externally acquires the global alignment kernel extracted by the external device or the like, and stores the acquired global alignment kernel in the kernel storage unit 32 in advance.
  • An example of the configuration to be set is also possible. In this case, the abnormality detection device 1B does not need to perform the third reference feature amount extraction processing, and the first profile determination unit 11, the first extraction unit 12, the reference packet data string group storage unit 13, and the reference packet data.
  • the distance calculation unit 14, the reference feature amount extraction unit 15A, the reference feature amount storage unit 16A, and the kernel calculation unit 31 may not be included. Further, as another example of the configuration, an example of the configuration in which the abnormality detection device 1B is manufactured in a state in which the kernel storage unit 32 stores the global alignment kernel in advance is also conceivable. Also in this case, the abnormality detection device 1B does not need to perform the third reference feature amount extraction process, and the first profile determination unit 11, the first extraction unit 12, the reference packet data string group storage unit 13, and the reference packet. The configuration may not include the inter-data distance calculation unit 14, the reference feature amount extraction unit 15A, the reference feature amount storage unit 16A, and the kernel calculation unit 31.
  • the information calculation unit 27B applies the global alignment kernel stored in the kernel storage unit 32 to each of the distance sequences stored as the feature amount. Then, the outlier is calculated for each of the distance sequences, and the largest value among the calculated outliers is calculated as the abnormality degree of the detection target packet sequence 20.
  • the information calculation unit 27B calculates and calculates an outlier indicating a binary value indicating whether or not there is an abnormality in each of the distance columns. An example of a configuration in which a signal indicating that the detection target packet sequence 20 is abnormal is output to the outside may be considered when there is at least one outlier that indicates an abnormality. In this case, the abnormality detection device 1B may not include the determination unit 28B.
  • each component of the abnormality detection device 1 may be individually integrated into one chip by a semiconductor device such as an IC (Integrated Circuit), an LSI (Large Scale Integration), or a part or a part thereof. It may be integrated into one chip to include all of them.
  • the method of circuit integration is not limited to LSI, and it may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • an integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, that technology may be used to integrate the functional blocks. The application of biotechnology is possible.
  • the present disclosure can be widely used for systems that use packets.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

異常検知方法は、連続する複数の検知対象パケットからなる検知対象パケット列に対して、複数の検知対象パケット間の複数の距離を算出し、算出した複数の距離を用いて、検知対象パケット列の特徴量を抽出し、抽出した特徴量を用いて、検知対象パケット列の異常の度合いに係る情報を算出する。

Description

異常検知方法、及び異常検知装置
 本発明は、パケット列の異常を検知する異常検知方法、及び異常検知装置に関する。
 従来、ネットワークシステム等で利用されるデータを対象として行う情報処理技術が知られている(例えば、非特許文献1、非特許文献2参照)。
Ye, N. (2000, June). A markov chain model of temporal behavior for anomaly detection. In Proceedings of the 2000 IEEE Systems, Man, and Cybernetics Information Assurance and Security Workshop (Vol. 166, p. 169). West Point, NY. Otey, M. E., Ghoting, A., & Parthasarathy, S. (2006). Fast distributed outlier detection in mixed-attribute data sets. Data mining and knowledge discovery, 12(2-3), 203-228 Cuturi, M., Vert, J. P., Birkenes, O., & Matsui, T. (2007, April). A kernel for time series based on global alignments. In Acoustics, Speech and Signal Processing, 2007. ICASSP 2007. IEEE International Conference on (Vol. 2, pp. II-413). IEEE.
 ネットワークシステム等で利用されるパケット列の異常を検知することが望まれる。
 そこで、本発明は、パケット列の異常を検知する異常検知方法、及び異常検知装置を提供することを目的とする。
 本開示の一態様に係る異常検知方法は、連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出し、算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出し、抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する。
 また、本開示の一態様に係る異常検知装置は、連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出する検知対象パケットデータ間距離算出部と、算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出する特徴量抽出部と、抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する情報算出部と、を備える。
 本開示の一態様に係る異常検知方法、及び異常検知装置によると、パケット列の異常を検知することができる。
図1は、実施の形態1に係る異常検知装置の構成を示すブロック図である。 図2は、プロファイル情報の一例を示す模式図である。 図3は、Modbus/TCPプロトコルのパケットのデータ構造を示す模式図である。 図4は、BACnet/IPプロトコルのパケットのデータ構造を示す模式図である。 図5は、リファレンスパケットデータ列の一例を示す模式図である。 図6は、実施の形態1に係るリファレンスパケットデータ間距離算出部がパケットデータを1バイトずつ切り出す様子の一例を示す模式図である。 図7は、実施の形態1に係るリファレンスパケットデータ間距離算出部が2つの文字列間のレーベンシュタイン距離を算出する様子の一例を示す模式図である。 図8は、実施の形態1に係るリファレンスパケットデータ間距離算出部が2つのバイト列間のレーベンシュタイン距離を算出する様子の一例を示す模式図である。 図9は、実施の形態1に係るリファレンスパケットデータ間距離算出部がリファレンス距離を算出する様子の一例を示す模式図である。 図10は、実施の形態1に係るリファレンス特徴量抽出部がリファレンス特徴量を抽出する様子の一例を示す模式図である。 図11は、実施の形態1に係る検知対象パケットデータ間距離算出部が距離を算出する様子の一例を示す模式図である。 図12は、実施の形態1に係る特徴量抽出部が検知対象パケットデータ列から、特徴量を抽出する様子の一例を示す模式図である。 図13は、実施の形態1に係る情報算出部がアースムーバーズ距離を算出する様子の一例を示す模式図である。 図14は、実施の形態1に係る情報算出部が検知対象パケット列の異常度を算出する様子の一例を示す模式図である。 図15は、第1リファレンス特徴量抽出処理のフローチャートである。 図16は、第1異常検知処理のフローチャートである。 図17は、実施の形態2に係る異常検知装置の構成を示すブロック図である。 図18は、実施の形態2に係る情報算出部がダイナミックタイムワーピング距離を算出する様子の一例を示す模式図である。 図19は、第2リファレンス特徴量抽出処理のフローチャートである。 図20は、第2異常検知処理のフローチャートである。 図21は、実施の形態3に係る異常検知装置の構成を示すブロック図である。 図22は、第3リファレンス特徴量抽出処理のフローチャートである。 図23は、第3異常検知処理のフローチャートである。
 (本発明の一態様を得るに至った経緯)
 従来、ICS(Industrial Control System)におけるサイバー攻撃の事例が増加傾向にある。ICSでは、機器を制御する正常なフォーマットのコマンド列が深刻な攻撃となり得るため、悪意のある攻撃者によって生成された異常なパケット列であっても、パケット単体で見ると、正常なものとほとんど区別できない。
 従来、パケット列の異常を検知する方法として、ルールベース方式とアノマリ方式とが知られている。しかしながら、ルールベース方式には、ルールで記載されていないパケット列の異常を検知することが困難であるという問題があり、アノマリ方式には、極端なデータ量やパケット数の増加や、極端なバイト列の乱れがなければ、パケット列の異常を検知することが困難であるという問題がある。
 そこで、発明者は、これら問題を解決すべく、鋭意検討、実験を重ねた。そして、発明者は、機器を制御するコマンドを含む正常なパケット列が、一定のコンテクストを有していることに着目し、一定のコンテクストから逸脱するパケット列を、異常なパケット列として検知できることを見出した。その結果、発明者は、下記異常検知方法、及び異常検知装置に想到した。
 本開示の一態様に係る異常検知方法は、連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出し、算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出し、抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する。
 上記異常検知方法によると、検知対象パケット列のコンテクストの特徴を特徴量として抽出することができる。そして、抽出した特徴量を用いて、検知対象パケット列の異常に係る情報を算出することができる。このように、上記異常検知方法によると、パケット列の異常を検知することができる。
 また、前記複数の距離を算出する際に、前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離を利用して前記複数の距離を算出するとしてもよい。
 また、前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離は、前記検知対象パケット列におけるN(Nは1以上の整数)個離れた検知対象パケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、前記複数の距離を算出する際に、前記検知対象パケット列におけるN個離れた検知対象パケット間のそれぞれに対して距離を算出することで、前記複数の距離を算出するとしてもよい。
 また、前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離は、さらに、前記検知対象パケット列におけるL(LはN以外の1以上の整数)個離れた検知対象パケット間のそれぞれに対しても算出され、前記複数の距離を算出する際に、前記検知対象パケット列におけるL個離れた検知対象パケット間のそれぞれに対しても距離を算出することで、前記複数の距離を算出するとしてもよい。
 また、前記特徴量を抽出する際に、前記検知対象パケット列において連続するW(Wは2以上の整数)個の検知対象パケットからなる1以上のウインドウ毎に、当該ウインドウに属する検知対象パケット間に対して算出した前記複数の距離の出現分布を算出し、算出した前記出現分布のそれぞれを、前記特徴量として抽出するとしてもよい。
 また、前記異常の度合いに係る情報を算出する際に、算出した前記出現分布のそれぞれと、予め記憶する複数のリファレンス出現分布のそれぞれとの間のアースムーバーズ距離のそれぞれを算出し、算出した前記アースムーバーズ距離のそれぞれを利用するK近傍法を利用して、前記異常の度合いに係る情報を算出するとしてもよい。
 また、前記特徴量を抽出する際に、前記検知対象パケット列において連続するW(Wは1以上の整数)個の検知対象パケットからなる1以上のウインドウ毎に、当該ウインドウに属する検知対象パケット間に対して算出した前記複数の距離からなる距離列を算出し、算出した前記距離列のそれぞれを前記特徴量として抽出するとしてもよい。
 また、前記異常の度合いに係る情報を算出する際に、算出した前記距離列のそれぞれと、予め記憶する複数のリファレンス距離列のそれぞれとの間の、ワーピング法により定められる距離のそれぞれを算出し、算出した前記ワーピング法により定められる距離のそれぞれを利用して、前記異常の度合いに係る情報を算出するとしてもよい。
 また、前記異常の度合いに係る情報を算出する際に、算出した前記距離列のそれぞれに対して予め記憶するグローバルアラインメントカーネルを適用することで、前記異常の度合いに係る情報を算出するとしてもよい。
 また、前記複数の距離を算出する際に、前記複数の検知対象パケットのうち、同一のコマンド種別の検知対象パケット間に限定して、前記複数の距離を算出するとしてもよい。
 また、連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、前記検知対象パケット列の異常の度合いに係る情報を算出する際に、さらに、抽出した前記リファレンス特徴量のそれぞれをも用いて、前記検知対象パケット列の異常の度合いに係る情報を算出するとしてもよい。
 また、前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出するとしてもよい。
 また、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、前記複数のリファレンス距離をそれぞれ算出する際に、前記1以上のリファレンスパケット列のそれぞれにおけるN個離れたリファレンスパケット間のそれぞれに対してリファレンス距離を算出することで、前記複数のリファレンス距離をそれぞれ算出するとしてもよい。
 また、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、さらに、前記1以上のリファレンスパケット列のそれぞれにおけるL(LはN以外の1以上の整数)個離れた検知対象パケット間のそれぞれに対しても算出され、前記複数のリファレンス距離のそれぞれを算出する際に、さらに、前記1以上のリファレンスパケット列のそれぞれにおけるL個離れたリファレンスパケット間のそれぞれに対してもリファレンス距離を算出することで、前記複数のリファレンス距離をそれぞれ算出するとしてもよい。
 また、連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記複数のリファレンス距離の出現分布を算出し、算出した前記リファレンス距離の出現分布のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを、前記予め記憶する複数のリファレンス出現分布のそれぞれとして記憶するとしてもよい。
 また、連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記リファレンス距離からなるリファレンス距離列を算出し、算出したリファレンス距離列のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを、前記予め記憶する複数のリファレンス距離列のそれぞれとして記憶するとしてもよい。
 また、連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記リファレンス距離からなるリファレンス距離列を算出し、算出したリファレンス距離列のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを用いて、グローバルアラインメントカーネルを算出し、算出した前記グローバルアラインメントカーネルを、前記予め記憶するグローバルアラインメントカーネルとして記憶するとしてもよい。
 また、前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのうち、同一のコマンド種別のリファレンスパケット間に限定して、前記リファレンス距離のそれぞれを算出するとしてもよい。
 本開示の一態様に係る異常検知装置は、連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出する検知対象パケットデータ間距離算出部と、算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出する特徴量抽出部と、抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する情報算出部と、を備える。
 上記異常検知装置によると、検知対象パケット列のコンテクストの特徴を特徴量として抽出することができる。そして、抽出した特徴量を用いて、検知対象パケット列の異常に係る情報を算出することができる。このように、上記異常検知装置によると、パケット列の異常を検知することができる。
 また、連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出するリファレンスパケットデータ間距離算出部と、算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出するリファレンス特徴量抽出部と、を備え、前記情報算出部は、さらに、抽出した前記リファレンス特徴量のそれぞれをも用いて、前記検知対象パケット列の異常の度合いに係る情報を算出するとしてもよい。
 以下、本開示の一態様に係る異常検知方法、及び異常検知装置の具体例について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本開示を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
 (実施の形態1)
 以下、実施の形態1に係る異常検知装置について説明する。この異常検知装置は、検知対象パケット列の異常を検知する。
 [1-1.構成]
 図1は、実施の形態1に係る異常検知装置1の構成を示すブロック図である。
 図1に示されるように、異常検知装置1は、第1プロファイル決定部11と、第1抽出部12と、リファレンスパケットデータ列群記憶部13と、リファレンスパケットデータ間距離算出部14と、リファレンス特徴量抽出部15と、リファレンス特徴量記憶部16と、第2プロファイル決定部21と、第2抽出部22と、検知対象パケットデータ列記憶部23と、検知対象パケットデータ間距離算出部24と、特徴量抽出部25と、特徴量記憶部26と、情報算出部27と、判定部28とを含んで構成される。
 異常検知装置1は、例えば、メモリと、メモリに記憶されたプログラムを実行するプロセッサとを含むコンピュータ装置によって実現される。この場合、異常検知装置1によって実現される各種機能は、異常検知装置1を構成するメモリに記憶されたプログラムを、異常検知装置1を構成するプロセッサが実行することにより実現される。
 第1プロファイル決定部11は、正常なパケット列からなるパケット列群、すなわち、異常なパケット列を含まないパケット列群であるリファレンスパケット列群10を取得する。そして、取得したリファレンスパケット列群10を構成する各リファレンスパケット列に含まれる各パケットに対して、その属性情報(送信元IP、宛先IP、送信元ポート、宛先ポート、プロトコル等。それらの組み合わせも含む。)に基づいて、該当するプロファイルを決定する。第1プロファイル決定部11は、例えば、プロファイル情報を記憶し、記憶するプロファイル情報に基づいて該当するプロファイルを決定するとしてもよい。
 図2は、第1プロファイル決定部11が記憶するプロファイル情報の一例を示す模式図である。
 第1プロファイル決定部11は、例えば、図2に示されるプロファイル情報を記憶し、各パケットに対して、対象コマンドが一致する行のプロファイルIDで識別されるプロファイルを決定する。
 図3は、Modbus/TCPプロトコルのパケットのデータ構造を示す模式図である。
 第1プロファイル決定部11は、例えば、パケットがModbus/TCPプロトコルである場合には、図3に示されるDataフィールドに格納されるビット列が、対象コマンドに対応するビット列と一致するパケットを、対象コマンドが一致するパケットであると判定する。
 図4は、BACnet/IPプロトコルのパケットのデータ構造を示す模式図である。
 第1プロファイル決定部11は、例えば、パケットがBACnet/IPプロトコルである場合には、図4に示されるAPDU Typeフィールドに格納されるビット列、及びService Choiceフィールドに格納されるビット列が、対象コマンドに対応するビット列と一致するパケットを、対象コマンドが一致するパケットであると判定する。
 第1プロファイル決定部11は、例えば、プロファイルの決定対象とするパケットが、記憶するプロファイル情報に該当しない場合には、Deep Packet Inspection機能を備えるアプリケーションを実行することで、そのパケットのプロトコルを特定し、特定したプロトコルに基づいて、そのパケットに対してプロファイルを決定するとしてもよい。
 再び、図1に戻って、異常検知装置1の説明を続ける。
 第1抽出部12は、第1プロファイル決定部11によりプロファイルを決定された各パケットに対して、各パケットのペイロードフィールドに格納されるビット列をパケットデータとして抽出する。
 第1抽出部12は、例えば、抽出対象とするパケットが、Modbus/TCPプロトコルである場合には、図3に示されるTCP Payloadフィールドに格納されるビット列をパケットデータとして抽出する。
 第1抽出部12は、例えば、抽出対象とするパケットが、BACnet/IPプロトコルである場合には、図4に示されるUDP Payloadに格納されるビット列をパケットデータとして抽出する。
 第1抽出部12は、各パケットからパケットデータを抽出すると、第1プロファイル決定部11により取得されたリファレンスパケット列毎に、同一プロファイルのパケットデータからなるリファレンスパケットデータ列を出力する。
 図5は、第1抽出部12により出力されるリファレンスパケットデータ列の一例を示す模式図である。
 第1抽出部12は、例えば、図5に示される、「ID=1で識別される機器の電源をオンする」旨のwriteコマンドに対応するパケットデータと、「ID=2で識別される機器の電源をオンする」旨のwriteコマンドに対応するパケットデータと、「ID=3で識別される機器の電源をオンする」旨のwriteコマンドに対応するパケットデータと、「ID=4で識別される機器の電源をオンする」旨のwriteコマンドに対応するパケットデータと、「ID=1で識別される機器の温度設定を27.0℃に変更する」旨のwriteコマンドに対応するパケットデータと、「ID=1で識別される機器の風量設定を強に変更する」旨のwriteコマンドに対応するパケットデータと、「ID=2で識別される機器の温度設定を27.0℃に変更する」旨のwriteコマンドに対応するパケットデータと、「ID=2で識別される機器の風量設定を強に変更する」旨のwriteコマンドに対応するパケットデータとが順に並んで構成されるリファレンスパケットデータ列を出力する。
 再び、図1に戻って、異常検知装置1の説明を続ける。
 リファレンスパケットデータ列群記憶部13は、第1抽出部12から出力された1以上のリファレンスパケットデータ列からなるリファレンスパケットデータ列群を記憶する。
 リファレンスパケットデータ間距離算出部14は、リファレンスパケットデータ列群記憶部13に記憶されるリファレンスパケットデータ列のそれぞれに対して、リファレンスパケットデータ列を構成する複数のリファレンスパケットデータ間の複数のリファレンス距離を算出する。
 リファレンスパケットデータ間距離算出部14は、パケットデータを、1バイトずつ切り出したバイト列として取り扱い、リファレンスパケットデータ間のリファレンス距離の算出を、リファレンスパケットデータ間におけるバイト列の距離を算出することで行う。
 図6は、リファレンスパケットデータ間距離算出部14が、パケットデータを1バイトずつ切り出す様子の一例を示す模式図である。
 なお、ここでは、リファレンスパケットデータ間距離算出部14は、パケットデータを、1バイトずつ切り出すとして説明するが、切り出す単位としては、必ずしも1バイトの例に限定される必要はない。切り出す単位は、例えば、1ビット以上16ビット以下の任意の長さのビット列であってもよいし、他の任意の長さのビット列であってもよい。また、リファレンスパケットデータ間距離算出部14は、パケットデータを、連続したビット単位で切り出す例に限定される必要はない。例えば、リファレンスパケットデータ間距離算出部14は、xビット切り出してyビットスキップしてという処理を繰り返すことでビット列を切り出すとしてもよい。
 再び図1に戻って、異常検知装置1の説明を続ける。
 リファレンスパケットデータ間距離算出部14は、パケットデータ間のレーベンシュタイン距離を利用してリファレンス距離を算出する。
 レーベンシュタイン距離は、2つの文字列又はバイト列間に定めることができる距離である。レーベンシュタイン距離は、1文字又は1バイトの挿入、削除、置換によって、一方の文字列又はバイト列を他方の文字列又はバイト列に変形するのに必要な最小回数として定義される。
 図7は、リファレンスパケットデータ間距離算出部14が、2つの文字列間(ここでは、一例として、“ELEPHANT”と“RELEVANT”との文字列間)のレーベンシュタイン距離を算出する様子の一例を示す模式図である。
 図7に示されるように、“ELEPHANT”を“RELEVANT”に変形するのに必要な、挿入、削除、置換の最小回数は3である。このため、リファレンスパケットデータ間距離算出部14は、“ELEPHANT”と“RELEVANT”とのレーベンシュタイン距離を「3」と算出する。
 図8は、リファレンスパケットデータ間距離算出部14が、2つのバイト列間のレーベンシュタイン距離を算出する様子の一例を示す模式図である。
 図8に示されるように、一方のバイト列を他方のバイト列に変形するのに必要な、挿入、削除、置換の最小回数は3である。このため、リファレンスパケットデータ間距離算出部14は、図8に図示されるバイト列間のレーベンシュタイン距離を「3」と算出する。
 リファレンスパケットデータ間距離算出部14は、リファレンスパケットデータ列を構成する複数のリファレンスパケットデータ間の複数のリファレンス距離を、N(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出する。
 図9は、Nが1である場合において、リファレンスパケットデータ間距離算出部14が、リファレンスパケットデータ列から複数のリファレンス距離を算出する様子の一例を示す模式図である。ここでは、Nは1であるとして説明するが、必ずしもNが1である場合に限定されない。
 図9に示されるように、リファレンスパケットデータ間距離算出部14は、対象とするリファレンスパケットデータ列が8個の連続するリファレンスパケットデータにより構成される場合には、対象とするリファレンスパケットデータ列から、1離れたリファレンスパケットデータ間、すなわち、互いに隣接するリファレンスパケットデータ列間の7個のリファレンス距離を算出する。
 なお、リファレンスパケットデータ間距離算出部14は、パケットデータ間のレーベンシュタイン距離として、パケットデータを構成するビット列の少なくとも一部を対象としてレーベンシュタイン距離を算出すればよく、必ずしも、パケットデータを構成するビット列の全てを対象とする場合に限定されない。
 再び図1に戻って、異常検知装置1の説明を続ける。
 リファレンス特徴量抽出部15は、リファレンスパケットデータ列群記憶部13に記憶されるリファレンスパケットデータ列のそれぞれに対して、リファレンスパケットデータ間距離算出部14により算出された複数のリファレンス距離のそれぞれを用いて、リファレンス特徴量をそれぞれ抽出する。より具体的には、リファレンス特徴量抽出部15は、リファレンスパケットデータ列群記憶部13に記憶されるリファレンスパケットデータ列のそれぞれに対して、連続するW(Wは2以上の整数)個のリファレンスパケットデータからなる1以上のウインドウ毎に、そのウインドウに属するリファレンスパケットデータについて算出された複数のリファレンス距離の出現分布を算出し、算出したリファレンス距離の出現分布のそれぞれを、リファレンス特徴量のそれぞれとして抽出する。
 図10は、リファレンス特徴量抽出部15が、1のリファレンスパケットデータ列から、リファレンス特徴量を抽出する様子の一例を示す模式図である。図10は、Wが4であり、リファレンスパケットデータ間距離算出部14が、1のリファレンスパケットデータ列に対して、図9に示される複数のリファレンス距離を算出した場合の模式図となっている。
 図10に示されるように、第1のウインドウに属するリファレンスパケットデータについて算出されたリファレンス距離は、「1」、「3」、「2」、「2」である。このため、リファレンス特徴量抽出部15は、第1のウインドウにおける、複数のリファレンス距離の出現分布を、「1」の出現率が「0.25」、「2」の出現率が「0.5」、「3」の出現率が「0.25」、「4」の出現率が「0」となる出現分布A(図10中の「A」参照)として算出する。また、第2のウインドウに属するリファレンスパケットデータについて算出されたリファレンス距離は、「3」、「2」、「2」、「4」である。このため、リファレンス特徴量抽出部15は、第2のウインドウにおける、複数のリファレンス距離の出現分布を、「1」の出現率が「0」、「2」の出現率が「0.5」、「3」の出現率が「0.25」、「4」の出現率が「0.25」となる出現分布B(図10中の「B」参照)として算出する。また、第3のウインドウに属するリファレンスパケットデータについて算出されたリファレンス距離は、「2」、「2」、「4」、「3」である。このため、リファレンス特徴量抽出部15は、第3のウインドウにおける、複数のリファレンス距離の出現分布を、「1」の出現率が「0」、「2」の出現率が「0.25」、「3」の出現率が「0.5」、「4」の出現率が「0.25」となる出現分布C(図10中の「C」参照)として算出する。また、第4のウインドウに属するリファレンスパケットデータについて算出されたリファレンス距離は、「2」、「4」、「3」、「1」である。このため、リファレンス特徴量抽出部15は、第4のウインドウにおける、複数のリファレンス距離の出現分布を、「1」の出現率が「0.25」、「2」の出現率が「0」、「3」の出現率が「0.5」、「4」の出現率が「0.25」となる出現分布D(図10中の「D」参照)として算出する。そして、リファレンス特徴量抽出部15は、算出した出現分布Aと出現分布Bと出現分布Cと出現分布Dとを、リファレンス特徴量として抽出する。
 再び図1に戻って、異常検知装置1の説明を続ける。
 リファレンス特徴量記憶部16は、リファレンス特徴量抽出部15によって抽出されたリファレンス特徴量を記憶する。
 第2プロファイル決定部21は、異常の検知対象となる検知対象パケット列20を取得する。そして、取得した検知対象パケット列20に含まれる各パケットに対して、その属性情報(送信元IP、宛先IP、送信元ポート、宛先ポート、プロトコル等。それらの組み合わせも含む。)に基づいて、該当するプロファイルを決定する。第2プロファイル決定部21は、第1プロファイル決定部11が行うプロファイルの決定と同様のアルゴリズムでプロファイルの決定を行う。
 第2抽出部22は、第2プロファイル決定部21によりプロファイルを決定された複数のパケットに対して、各パケットのペイロードフィールドに格納されるビット列をパケットデータとして抽出する。第2抽出部22は、第1抽出部12が行うパケットデータの抽出と同様のアルゴリズムでパケットデータの抽出を行う。
 第2抽出部22は、パケットデータを抽出すると、同一プロファイルのパケットデータからなる検知対象パケットデータ列を出力する。
 検知対象パケットデータ列記憶部23は、第2抽出部22から出力された検知対象パケットデータ列を記憶する。
 検知対象パケットデータ間距離算出部24は、検知対象パケットデータ列記憶部23に記憶される検知対象パケットデータ列に対して、検知対象パケットデータ列を構成する複数の検知対象パケットデータ間の複数の距離を算出する。
 検知対象パケットデータ間距離算出部24は、リファレンスパケットデータ間距離算出部14が行うリファレンス距離の算出に対して、リファレンスパケットを検知対象パケットに読み替え、リファレンスパケットデータを検知対象パケットデータに読み替え、リファレンスパケットデータ列を検知対象パケットデータ列に読み替え、リファレンス距離を距離に読み替えたアルゴリズムと同様のアルゴリズムで、距離の算出を行う。
 図11は、Nが1である場合において、検知対象パケットデータ間距離算出部24が、検知対象パケットデータ列から複数の距離を算出する様子の一例を示す模式図である。ここでは、Nは1であるとして説明するが、必ずしもNが1である場合に限定されない。
 図11に示されるように、検知対象パケットデータ間距離算出部24は、対象とする検知対象パケットデータ列が6個の連続する検知対象パケットデータにより構成される場合には、対象とする検知対象パケットデータ列から、1離れた検知対象パケットデータ間、すなわち、互いに隣接する検知対象パケットデータ列間の5個の距離を算出する。
 なお、検知対象パケットデータ間距離算出部24は、パケットデータ間のレーベンシュタイン距離として、パケットデータを構成するビット列の少なくとも一部を対象としてレーベンシュタイン距離を算出すればよく、必ずしも、パケットデータを構成するビット列の全てを対象とする場合に限定されない。
 再び図1に戻って、異常検知装置1の説明を続ける。
 特徴量抽出部25は、検知対象パケットデータ列記憶部23に記憶される検知対象パケットデータ列に対して、検知対象パケットデータ間距離算出部24により算出された複数の距離を用いて、特徴量を抽出する。より具体的には、特徴量抽出部25は、検知対象パケットデータ列記憶部23に記憶される検知対象パケットデータ列に対して、連続するW(Wは2以上の整数)個の検知対象パケットデータからなる1以上のウインドウ毎に、そのウインドウに属する検知対象パケットについて算出された複数の距離の出現分布を算出し、算出した距離の出現分布を、特徴量として抽出する。
 図12は、特徴量抽出部25が、検知対象パケットデータ列から、特徴量を抽出する様子の一例を示す模式図である。図12は、Wが4であり、検知対象パケットデータ間距離算出部24が、検知対象パケットデータ列に対して、図11に示される複数の距離を算出した場合の模式図となっている。
 図12に示されるように、第1のウインドウに属する検知対象パケットデータについて算出された距離は、「4」、「2」、「3」、「1」である。このため、特徴量抽出部25は、第1のウインドウにおける、複数の距離の出現分布を、「1」の出現率が「0.25」、「2」の出現率が「0.25」、「3」の出現率が「0.25」、「4」の出現率が「0.25」となる出現分布X(図12中の「X」参照)として算出する。また、第2のウインドウに属する検知対象パケットデータについて算出された距離は、「2」、「3」、「1」、「2」である。このため、特徴量抽出部25は、第2のウインドウにおける、複数の距離の出現分布を、「1」の出現率が「0」、「2」の出現率が「0.5」、「3」の出現率が「0.25」、「4」の出現率が「0」となる出現分布Y(図12中の「Y」参照)として算出する。そして、特徴量抽出部25は、算出した出現分布Xと出現分布Yとを、特徴量として抽出する。
 再び図1に戻って、異常検知装置1の説明を続ける。
 特徴量記憶部26は、特徴量抽出部25によって抽出された特徴量を記憶する。
 情報算出部27は、リファレンス特徴量記憶部16にリファレンス特徴量として記憶されるリファレンス距離の出現分布のそれぞれと、特徴量記憶部26に特徴量として記憶される距離の出現分布のそれぞれとの間のアースムーバーズ距離(Earth Mover’s Distance:以下、アースムーバーズ距離のことを、EMDとも表記する。)を算出し、算出したアースムーバーズ距離のそれぞれを利用するK近傍法を利用して、検知対象パケット列20の異常の度合い示す異常度を算出する。
 アースムーバーズ距離は、2つの確率分布間(ここでは、リファレンス距離の出現分布と、距離の出現分布との間)に定めることができる距離である。アースムーバーズ距離は、一方の確率分布(ここでは出現分布)を、確率成分(ここでは出現率成分)の移動によって他方の確率分布(ここでは出現分布)に変形するのに必要な最小コストとして定義される。
 図13は、情報算出部27が、4つの出現分布(出現分布K、出現分布L、出現分布M、出現分布N)間のアースムーバーズ距離を算出する様子の一例を示す模式図である。
 図13に示されるように、「0」の出現率が「0」、「1」の出現率が「0.5」、「2」の出現率が「0.25」、「3」の出現率が「0.25」となる出現分布K(図13中の「K」参照)を、「0」の出現率が「0」、「1」の出現率が「0.25」、「2」の出現率が「0.25」、「3」の出現率が「0.5」となる出現分布L(図13中の「L」参照)に変換するのに必要な最小コストは、出現分布Kにおける「1」の出現率「0.5」のうちの出現率成分「0.25」を、出現分布Lのおける「3」の出現率へ移動させるコストとなる。このため、情報算出部27は、出現分布Kと出現分布Lとの間のアースムーバーズ距離を、0.25×|1-3|=0.5と算出する。同様にして、情報算出部27は、4つの出現分布間のアースムーバーズ距離のそれぞれを、図13中の表で示される値のそれぞれと算出する。
 図14は、情報算出部27が、リファレンス特徴量記憶部16にリファレンス特徴量として記憶されるリファレンス距離の出現分布のそれぞれと、特徴量記憶部26に特徴量として記憶される距離の出現分布のそれぞれとから、検知対象パケット列20の異常度を算出する様子の一例を示す模式図である。図14は、リファレンス特徴量記憶部16に記憶されるリファレンス距離の出現分布が、図10に示される出現分布A、出現分布B、出現分布C、出現分布Dであり、特徴量記憶部26に記憶される距離の出現分布が、図12に示される出現分布X、出現分布Yである場合の模式図となっている。
 図14に示されるように、情報算出部27は、出現分布Xと出現分布Aとの間のアースムーバーズ距離(以下、「EMD_XA」とも称する。)を「0.5」と算出し、出現分布Xと出現分布Bとの間のアースムーバーズ距離(以下、「EMD_XB」とも称する。)を「0.25」と算出し、出現分布Xと出現分布Cとの間のアースムーバーズ距離(以下、「EMD_XC」とも称する。)を「0.5」と算出し、出現分布Xと出現分布Dとの間のアースムーバーズ距離(以下、「EMD_XD」とも称する。)を「0.25」と算出する。そして、情報算出部27は、EMD_XA、EMD_XB、EMD_XC、EMD_XDに対してK=1となるK近傍法を適用して、出現分布Xの異常度を、「0.25」と算出する。同様に、情報算出部27は、出現分布Yと出現分布Aとの間のアースムーバーズ距離(以下、「EMD_YA」とも称する。)を0と算出し、出現分布Yと出現分布Bとの間のアースムーバーズ距離(以下、「EMD_YB」とも称する。)を「0.75」と算出し、出現分布Yと出現分布Cとの間のアースムーバーズ距離(以下、「EMD_YC」とも称する。)を「1.0」と算出し、出現分布Yと出現分布Dとの間のアースムーバーズ距離(以下、「EMD_YD」とも称する。)を「0.75」と算出する。そして、情報算出部27は、EMD_YA、EMD_YB、EMD_YC、EMD_YDに対してK=1となるK近傍法を適用して、出現分布Yの異常度を、「0」と算出する。そして、情報算出部27は、出現分布Xの異常度「0.25」と、出現分布Yの異常度「0」とのうちの最も大きい値「0.25」を、検知対象パケット列20の異常度として算出する。
 再び図1に戻って、異常検知装置1の説明を続ける。
 判定部28は、情報算出部27により算出された、検知対象パケット列20の異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。そして、判定部28は、判定結果を外部に出力する。判定部28は、例えば、閾値を記憶し、検知対象パケット列20の異常度が閾値以上である場合に、検知対象パケット列20が異常であると判定し、検知対象パケット列20の異常度が閾値未満である場合に、検知対象パケット列20が異常でないと判定してもよい。また、判定部28は、第1プロファイル決定部11及び第2プロファイル決定部21の決定対象となるプロファイル毎に、互いに独立した値となる閾値を記憶し、検知対象パケット列20から抽出された検知対象パケット列のプロファイルに応じて、そのプロファイルに対応する閾値を用いて上記判定を行うとしてもよい。
 [1-2.動作]
 上記構成の異常検知装置1は、第1リファレンス特徴量抽出処理と、第1異常検知処理とを行う。以下、これらの処理について、図面を用いて順に説明する。
 まず、第1リファレンス特徴量抽出処理について説明する。
 第1リファレンス特徴量抽出処理は、リファレンスパケット列群10から、リファレンス特徴量を抽出する処理である。第1リファレンス特徴量抽出処理は、例えば、異常検知装置1を利用するユーザが、異常検知装置1に対して、第1リファレンス特徴量抽出処理を開始させる旨の操作を行うことで開始される。
 図15は、第1リファレンス特徴量抽出処理のフローチャートである。
 第1リファレンス特徴量抽出処理が開始されると、第1プロファイル決定部11は、リファレンスパケット列群10を取得する(ステップS5)。
 第1プロファイル決定部11は、リファレンスパケット列群10を取得すると、リファレンスパケット列群10に含まれるリファレンスパケット列の中から、未選択のリファレンスパケット列を1つ選択する(ステップS10)。ここで、未選択のリファレンスパケット列とは、ステップS10の処理~ステップS55:Yesの処理(後述)で形成されるループ処理において、過去のステップS10の処理で選択されたことのないリファレンスパケット列のことをいう。
 第1プロファイル決定部11は、未選択のリファレンスパケット列を1つ選択すると、選択したリファレンスパケット列に含まれるパケットの中から、未選択のパケットを1つ選択する(ステップS15)。ここで、未選択のパケットを選択するとは、ステップS15の処理~ステップS35:Yesの処理(後述)で形成されるループ処理において、過去のステップS15の処理で選択されたことのないパケットのことをいう。
 第1プロファイル決定部11は、1のパケットを選択すると、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができるか否かを調べる(ステップS20)。
 ステップS20の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができる場合に(ステップS20:Yes)、第1プロファイル決定部11は、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定する(ステップS30)。
 ステップS20の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができない場合に(ステップS20:No)、第1プロファイル決定部11は、Deep Packet Inspection機能を備えるアプリケーションを実行することで、選択したパケットのプロトコルを特定する(ステップS25)。そして、第1プロファイル決定部11は、特定したプロトコルに基づいて、選択したパケットのプロファイルを決定する(ステップS30)。
 第1プロファイル決定部11は、選択したパケットのプロファイルを決定すると、選択したリファレンスパケット列に含まれるパケットの中に、未選択のパケットがあるか否かを調べる(ステップS35)。
 ステップS35の処理において、未選択のパケットがある場合に(ステップS35:Yes)、第1リファレンス特徴量抽出処理は、再びステップS15の処理に進む。
 ステップS35の処理において、未選択のパケットがない場合に(ステップS35:No)、第1抽出部12は、第1プロファイル決定部11によりプロファイルを決定された各パケットに対して、各パケットのペイロードフィールドに格納されるビット列をパケットデータとして抽出する。そして第1抽出部12は、同一プロファイルのパケットデータからなるリファレンスパケットデータ列を抽出する(ステップS40)。そして、リファレンスパケットデータ列群記憶部13は、第1抽出部12によって抽出されたリファレンスパケットデータ列を記憶する。
 リファレンスパケットデータ列が抽出されると、リファレンスパケットデータ間距離算出部14は、リファレンスパケットデータ列を構成する複数のリファレンスパケットデータ間の複数のリファレンス距離を算出する(ステップS45)。
 複数のリファレンス距離が算出されると、リファレンス特徴量抽出部15は、算出された複数のリファレンス距離から、ウインドウ毎に、リファレンス距離の出現分布をリファレンス特徴量として抽出する(ステップS50)。そして、リファレンス特徴量記憶部16は、リファレンス特徴量抽出部15によってリファレンス特徴量として抽出されたリファレンス距離の出現分布を記憶する。
 リファレンス距離の出現分布が抽出されると、第1プロファイル決定部11は、取得したリファレンスパケット列群10の中に、未選択のリファレンスパケット列があるか否かを調べる(ステップS55)。
 ステップS55の処理において、未選択のリファレンスパケット列がある場合に(ステップS55:Yes)、第1リファレンス特徴量抽出処理は、再びステップS10の処理に進む。
 ステップS55の処理において、未選択のリファレンスパケット列がない場合に(ステップS55:No)、第1リファレンス特徴量抽出処理は、その処理を終了する。
 次に、第1異常検知処理について説明する。
 第1異常検知処理は、検知対象パケット列20の異常を検知する処理である。第1異常検知処理は、例えば、異常検知装置1を利用するユーザが、異常検知装置1に対して、第1異常検知処理を開始する旨の操作を行うことで開始される。
 図16は、第1異常検知処理のフローチャートである。
 第1異常検知処理が開始されると、第2プロファイル決定部21は、検知対象パケット列20を取得する(ステップS105)。
 第2プロファイル決定部21は、検知対象パケット列20を取得すると、取得した検知対象パケット列20に含まれるパケットの中から、未選択のパケットを1つ選択する(ステップS115)。ここで、未選択のパケットを選択するとは、ステップS115の処理~ステップS135:Yesの処理(後述)で形成されるループ処理において、過去のステップS115の処理で選択されたことのないパケットのことをいう。
 第2プロファイル決定部21は、1のパケットを選択すると、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができるか否かを調べる(ステップS120)。
 ステップS120の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができる場合に(ステップS120:Yes)、第2プロファイル決定部21は、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定する(ステップS130)。
 ステップS120の処理において、記憶するプロファイル情報を用いて、選択したパケットのプロファイルを決定することができない場合に(ステップS120:No)、第2プロファイル決定部21は、Deep Packet Inspection機能を備えるアプリケーションを実行することで、選択したパケットのプロトコルを特定する(ステップS125)。そして、第2プロファイル決定部21は、特定したプロトコルに基づいて、選択したパケットのプロファイルを決定する(ステップS130)。
 第2プロファイル決定部21は、選択したパケットのプロファイルを決定すると、取得した検知対象パケット列20に含まれるパケットの中に、未選択のパケットがあるか否かを調べる(ステップS135)。
 ステップS35の処理において、未選択のパケットがある場合に(ステップS135:Yes)、第1異常検知処理は、再びステップS115の処理に進む。
 ステップS135の処理において、未選択のパケットがない場合に(ステップS135:No)、第2抽出部22は、第2プロファイル決定部21によりプロファイルを決定された各パケットに対して、各パケットのペイロードフィールドに格納されるビット列をパケットデータとして抽出する。そして第2抽出部22は、同一プロファイルのパケットデータからなる検知対象パケットデータ列を抽出する(ステップS140)。そして、検知対象パケットデータ列記憶部23は、第2抽出部22によって抽出された検知対象パケットデータ列を記憶する。
 検知対象パケットデータ列が抽出されると、検知対象パケットデータ間距離算出部24は、検知対象パケットデータ列を構成する複数の検知対象パケットデータ間の複数の距離を算出する(ステップS145)。
 複数の距離が算出されると、特徴量抽出部25は、算出された複数の距離から、ウインドウ毎に、距離の出現分布を特徴量として抽出する(ステップS150)。そして、特徴量記憶部26は、特徴量抽出部25によって特徴量として抽出された距離の出現分布を記憶する。
 距離の出現分布が抽出されると、情報算出部27は、抽出された距離の出現分布のそれぞれと、リファレンス特徴量記憶部16にリファレンス特徴量として記憶されるリファレンス距離の出現分布のそれぞれとの間のアースムーバーズ距離を算出し(ステップS155)、算出したアースムーバーズ距離のそれぞれを利用するK近傍法を利用して、検知対象パケット列20の異常の度合い示す異常度を算出する(ステップS160)。
 異常度が算出されると、判定部28は、算出された異常度が、記憶する閾値以上であるか否かを調べる(ステップS165)。
 ステップS165の処理において、算出された異常度が、記憶する閾値以上である場合に(ステップS165:Yes)、判定部28は、検知対象パケット列20が異常であると判定し(ステップS170)、検知対象パケット列20が異常である旨の信号を外部に出力する。
 ステップS165の処理において、算出された異常度が、記憶する閾値以上でない場合に(ステップS165:No)、判定部28は、検知対象パケット列20が異常でないと判定し(ステップS175)、検知対象パケット列20が異常でない旨の信号を外部に出力する。
 ステップS170の処理が終了した場合、及びステップS175の処理が終了した場合に第1異常検知処理は、その処理を終了する。
 [1-3.考察]
 上記構成の異常検知装置1は、第1リファレンス特徴量抽出処理を実行することで、正常なパケット列からなるリファレンスパケット列群10から、正常なパケット列のコンテクストの特徴を、レファレンス特徴量として抽出して記憶する。そして、異常検知装置1は、第1異常検知処理を実行することで、検知対象パケット列20から、検知対象パケット列20のコンテクストの特徴を特徴量として抽出し、抽出した特徴量が記憶するレファレンス特徴量から逸脱している度合いを示す異常度を算出し、算出した異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。このように、異常検知装置1によると、検知対象パケット列20の異常を検知することができる。
 (実施の形態2)
 以下、実施の形態1に係る異常検知装置1から、その構成の一部が変更された実施の形態2に係る異常検知装置について説明する。
 [2-1.構成]
 図17は、実施の形態2に係る異常検知装置1Aの構成を示すブロック図である。以下では、異常検知装置1Aについて、実施の形態1に係る異常検知装置1と同様の構成要素については、既に説明済みであるとして同じ符号を振ってその詳細な説明を省略し、異常検知装置1との相違点を中心に説明する。
 図17に示されるように、異常検知装置1Aは、異常検知装置1から、リファレンス特徴量抽出部15がリファレンス特徴量抽出部15Aに変更され、リファレンス特徴量記憶部16がリファレンス特徴量記憶部16Aに変更され、特徴量抽出部25が特徴量抽出部25Aに変更され、特徴量記憶部26が特徴量記憶部26Aに変更され、情報算出部27が情報算出部27Aに変更され、判定部28が判定部28Aに変更されて構成される。
 リファレンス特徴量抽出部15Aは、リファレンスパケットデータ列群記憶部13に記憶されるリファレンスパケットデータ列のそれぞれに対して、リファレンスパケットデータ間距離算出部14により算出された複数のリファレンス距離のそれぞれを用いて、リファレンス特徴量をそれぞれ抽出する。より具体的には、リファレンス特徴量抽出部15Aは、リファレンスパケットデータ列群記憶部13に記憶されるリファレンスパケットデータ列のそれぞれに対して、連続するW(Wは2以上の整数)個のリファレンスパケットデータからなる1以上のウインドウ毎に、そのウインドウに属するリファレンスパケットデータについて算出された複数のリファレンス距離からなるリファレンス距離列を算出し、算出したリファレンス距離列のそれぞれを、リファレンス特徴量のそれぞれとして抽出する。
 リファレンス特徴量記憶部16Aは、リファレンス特徴量抽出部15Aによって抽出されたリファレンス特徴量を記憶する。
 特徴量抽出部25Aは、検知対象パケットデータ列記憶部23に記憶される検知対象パケットデータ列に対して、検知対象パケットデータ間距離算出部24により算出された複数の距離を用いて、特徴量を抽出する。より具体的には、特徴量抽出部25Aは、検知対象パケットデータ列記憶部23に記憶される検知対象パケットデータ列に対して、連続するW(Wは2以上の整数)個の検知対象パケットデータからなる1以上のウインドウ毎に、そのウインドウに属する検知対象パケットについて算出された複数の距離からなる距離列を算出し、算出した距離列を、特徴量として抽出する。
 特徴量記憶部26Aは、特徴量抽出部25Aによって抽出された特徴量を記憶する。
 情報算出部27Aは、リファレンス特徴量記憶部16Aにリファレンス特徴量として記憶されるリファレンス距離列のそれぞれと、特徴量記憶部26Aに特徴量として記憶される距離列のそれぞれとの間の、ワーピング(Dynamic Time Warping)法により定められる距離(以下、「ダイナミックタイムワーピング(Dynamic Time Warping)距離」、又は「DTW距離」とも称する。)のそれぞれを算出し、算出したダイナミックタイムワーピング距離のそれぞれを利用して、検知対象パケット列20の異常の度合い示す異常度を算出する。
 ダイナミックタイムワーピング距離は、2つの時系列データ間(ここでは、リファレンス距離列と、距離列との間)に定めることができる距離である。ダイナミックタイムワーピング距離は、2つの時系列データx(xの要素数はn:nは2以上の整数)、y(yの要素数はm:mは2以上の整数)があるとき、(i、j)要素がxiとyj間の距離となる行列において、行要素がn以下、列要素がm以下となる制約を満たすように、(i、j)要素から、(i+1、j)、(i、j+1)又は(i+1、j+1)のいずれかの要素への移動を(n、m)要素に到達するまで繰り返す経路のうち、経路上の要素の和が最小となる経路における距離の和として定義される。
 図18は、情報算出部27Aが、「2」、「5」、「4」、「2」の時系列データからなるリファレンス距離列と、「2」、「2」、「5」、「1」の時系列データからなる距離列との間のダイナミックタイムワーピング距離を算出する様子の一例を示す模式図である。
 情報算出部27Aは、図18に示される、リファレンス距離列と距離列との各時点の値の距離(差分)からなる距離行列を算出する。そして、情報算出部27Aは、算出した距離行列において、左上端の距離の位置から、順に、「下1マス」、「下1マス」、「右下1マス」、「右1マス」、「右下1マス」移動する経路上の各距離「0」、「0」、「0」、「1」、「1」の和である「2」が、全ての移動経路上の各距離の和のうちで最小になることを算出する。そして、情報算出部27Aは、「2」、「5」、「4」、「2」の時系列データからなるリファレンス距離列と、「2」、「2」、「5」、「1」の時系列データからなる距離列との間のダイナミックタイムワーピング距離を「2」と算出する。
 情報算出部27Aは、上記ダイナミックタイムワーピング距離の算出方法を用いて、リファレンス特徴量記憶部16Aに記憶されるリファレンス距離列のそれぞれと、特徴量記憶部26Aに記憶される距離列のそれぞれとの間のダイナミックタイムワーピング距離をそれぞれ算出し、算出したダイナミックタイムワーピング距離のうちの最も大きい値を、検知対象パケット列20の異常度として算出する。
 判定部28Aは、情報算出部27Aにより算出された、検知対象パケット列20の異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。そして、判定部28Aは、判定結果を外部に出力する。判定部28Aは、例えば、閾値を記憶し、検知対象パケット列20の異常度が閾値以上である場合に、検知対象パケット列20が異常であると判定し、検知対象パケット列20の異常度が閾値未満である場合に、検知対象パケット列20が異常でないと判定してもよい。また、判定部28Aは、第1プロファイル決定部11及び第2プロファイル決定部21の決定対象となるプロファイル毎に、互いに独立した値となる閾値を記憶し、検知対象パケット列20から抽出された検知対象パケット列のプロファイルに応じて、そのプロファイルに対応する閾値を用いて上記判定を行うとしてもよい。
 [2-2.動作]
 上記構成の異常検知装置1Aは、実施の形態1に係る第1リファレンス特徴量抽出処理からその処理の一部が変更された第2リファレンス特徴量抽出処理と、実施の形態1に係る第1異常検知処理からその処理の一部が変更された第2異常検知処理とを行う。以下、これらの処理について、図面を用いて順に説明する。
 まず、第2リファレンス特徴量抽出処理について説明する。
 図19は、第2リファレンス特徴量抽出処理のフローチャートである。
 図19に示される各処理のうち、ステップS205の処理~ステップS245の処理、及びステップS255の処理は、それぞれ、実施の形態1に係る第1リファレンス特徴量抽出処理における、ステップS5の処理~ステップS45の処理、及びステップS55の処理(図15等参照)と同様の処理である。このため、ステップS205の処理~ステップS245の処理、及びステップS255の処理は既に説明であるとしてその詳細な説明を省略し、ステップS250の処理を中心に説明する。
 ステップS245の処理において、複数のリファレンス距離が算出されると、リファレンス特徴量抽出部15Aは、ウインドウ毎に、算出された複数のリファレンス距離からなるリファレンス距離列をリファレンス特徴量として抽出する(ステップS250)。そして、リファレンス特徴量記憶部16Aは、リファレンス特徴量抽出部15Aによってリファレンス特徴量として抽出されたリファレンス距離列を記憶する。
 ステップS250の処理が終了すると、第2リファレンス特徴量抽出処理は、ステップS255の処理に進む。
 次に、第2異常検知処理について説明する。
 図20は、第2異常検知処理のフローチャートである。
 図20に示される各処理のうち、ステップS305の処理~ステップS345の処理は、それぞれ、実施の形態1に係る第1異常検知処理における、ステップS105の処理~ステップS145の処理と同様の処理である。また、ステップS365の処理~ステップS375の処理は、それぞれ、実施の形態1に係る第1異常検知処理における、ステップS165の処理~ステップS175の処理に対して、判定部28を判定部28Aに読み替えた処理と同様の処理である。このため、ステップS305の処理~ステップS345の処理、及び、ステップS365の処理~ステップS375の処理は既に説明であるとしてその詳細な説明を省略し、ステップS350の処理~ステップS355の処理を中心に説明する。
 ステップS345の処理において、複数の距離が算出されると、特徴量抽出部25Aは、ウインドウ毎に、算出された複数の距離からなる距離列を特徴量として抽出する(ステップS350)。そして、特徴量記憶部26Aは、特徴量抽出部25Aによって特徴量として抽出された距離列を記憶する。
 距離列が抽出されると、情報算出部27は、抽出された距離列のそれぞれと、リファレンス特徴量記憶部16Aにリファレンス特徴量として記憶されるリファレンス距離列のそれぞれとの間の、ダイナミックタイムワーピング距離のそれぞれを算出し、算出したダイナミックワーピング距離のそれぞれを利用して、検知対象パケット列20の異常の度合い示す異常度を算出する(ステップS355)。
 ステップS355の処理が終了すると、第2異常検知処理は、ステップS365の処理に進む。
 [2-3.考察]
 上記構成の異常検知装置1Aは、第2リファレンス特徴量抽出処理を実行することで、正常なパケット列からなるリファレンスパケット列群10から、正常なパケット列のコンテクストの特徴を、レファレンス特徴量として抽出して記憶する。そして、異常検知装置1Aは、第2異常検知処理を実行することで、検知対象パケット列20から、検知対象パケット列20のコンテクストの特徴を特徴量として抽出し、抽出した特徴量が記憶するレファレンス特徴量から逸脱している度合いを示す異常度を算出し、算出した異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。このように、異常検知装置1Aによると、実施の形態1に係る異常検知装置1と同様に、検知対象パケット列20の異常を検知することができる。
 (実施の形態3)
 以下、実施の形態2に係る異常検知装置1Aから、その構成の一部が変更された実施の形態3に係る異常検知装置について説明する。
 [3-1.構成]
 図21は、実施の形態3に係る異常検知装置1Bの構成を示すブロック図である。以下では、異常検知装置1Bについて、実施の形態2に係る異常検知装置1Aと同様の構成要素については、既に説明済みであるとして同じ符号を振ってその詳細な説明を省略し、異常検知装置1Aとの相違点を中心に説明する。
 図20に示されるように、異常検知装置1Bは、異常検知装置1Aから、情報算出部27Aが情報算出部27Bに変更され、判定部28Aが判定部28Bに変更され、カーネル算出部31と、カーネル記憶部32とが追加されて構成される。
 カーネル算出部31は、リファレンス特徴量記憶部16Aにリファレンス特徴量として記憶されるリファレンス距離列のそれぞれを用いて、グローバルアラインメントカーネル(Global Alignment Kernel:非特許文献3参照)を算出する。カーネル算出部31は、例えば、リファレンス特徴量記憶部16Aに記憶されるリファレンス距離列のそれぞれを用いて、機械学習モデルであるone-class SVM(Support Vector Machine)に教師なし学習をさせて、グローバルアラインメントカーネルを算出するとしてもよい。
 カーネル記憶部32は、カーネル算出部31によって算出されたグローバルアラインメントカーネルを記憶する。
 情報算出部27Bは、特徴量記憶部26Aに、特徴量として記憶される距離列のそれぞれに対して、カーネル記憶部32に記憶されるグローバルアラインメントカーネルを適用することで、距離列のそれぞれに対して外れ値を算出し、算出した外れ値のうちの最も大きい値を、検知対象パケット列20の異常度として算出する。
 判定部28Bは、情報算出部27Bにより算出された、検知対象パケット列20の異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。そして、判定部28Aは、判定結果を外部に出力する。判定部28Bは、例えば、閾値を記憶し、検知対象パケット列20の異常度が閾値以上である場合に、検知対象パケット列20が異常であると判定し、検知対象パケット列20の異常度が閾値未満である場合に、検知対象パケット列20が異常でないと判定してもよい。また、判定部28Bは、第1プロファイル決定部11及び第2プロファイル決定部21の決定対象となるプロファイル毎に、互いに独立した値となる閾値を記憶し、検知対象パケット列20から抽出された検知対象パケット列のプロファイルに応じて、そのプロファイルに対応する閾値を用いて上記判定を行うとしてもよい。
 [3-2.動作]
 上記構成の異常検知装置1Bは、実施の形態2に係る第2リファレンス特徴量抽出処理からその処理の一部が変更された第3リファレンス特徴量抽出処理と、実施の形態2に係る第2異常検知処理からその処理の一部が変更された第3異常検知処理とを行う。以下、これらの処理について、図面を用いて順に説明する。
 まず、第3リファレンス特徴量抽出処理について説明する。
 図22は、第3リファレンス特徴量抽出処理のフローチャートである。
 図22に示される各処理のうち、ステップS405の処理~ステップS455の処理は、それぞれ、実施の形態2に係る第2リファレンス特徴量抽出処理における、ステップS205の処理~ステップS255の処理(図19等参照)と同様の処理である。このため、これらの処理は既に説明であるとしてその詳細な説明を省略し、ステップS460の処理を中心に説明する。
 ステップS455の処理において、未選択のリファレンスパケット列がない場合に(ステップS455:No)、カーネル算出部31は、リファレンス特徴量記憶部16Aにリファレンス特徴量として記憶されるリファレンス距離列のそれぞれを用いて、グローバルアラインメントカーネルを算出する(ステップS460)。そして、カーネル記憶部32は、カーネル算出部31によって算出されたグローバルアラインメントカーネルを記憶する。
 ステップS460の処理が終了すると、第3リファレンス特徴量抽出処理は、その処理を終了する。
 次に、第3異常検知処理について説明する。
 図23は、第3異常検知処理のフローチャートである。
 図23に示される各処理のうち、ステップS505の処理~ステップS550の処理は、それぞれ、実施の形態2係る第2異常検知処理における、ステップS305の処理~ステップS350の処理と同様の処理である。また、ステップS565の処理~ステップS575の処理は、それぞれ、実施の形態2係る第2異常検知処理における、ステップS365の処理~ステップS375の処理に対して、判定部28Aを判定部28Bに読み替えた処理と同様の処理である。このため、ステップS505の処理~ステップS550の処理、及び、ステップS565の処理~ステップ5375の処理は既に説明であるとしてその詳細な説明を省略し、ステップS555の処理を中心に説明する。
 ステップS550の処理において、距離列が特徴量として抽出されると、情報算出部27Bは、抽出された距離列のそれぞれに対して、カーネル記憶部32に記憶されるグローバルアラインメントカーネルを適用することで外れ値を算出し、算出した外れ値のうちの最も大きい値を、検知対象パケット列20の異常度として算出する。
 ステップS555の処理が終了すると、第3異常検知処理は、ステップS565の処理に進む。
 [3-3.考察]
 上記構成の異常検知装置1Bは、第3リファレンス特徴量抽出処理を実行することで、正常なパケット列からなるリファレンスパケット列群10から、正常なパケット列のコンテクストの特徴を、レファレンス特徴量として抽出して記憶する。そして、異常検知装置1Bは、第3異常検知処理を実行することで、検知対象パケット列20から、検知対象パケット列20のコンテクストの特徴を特徴量として抽出し、抽出した特徴量が記憶するレファレンス特徴量から逸脱している度合いを示す異常度を算出し、算出した異常度に基づいて、検知対象パケット列20が異常であるか否かを判定する。このように、異常検知装置1Bによると、実施の形態1に係る異常検知装置1、及び、実施の形態2に係る異常検知装置1Aと同様に、検知対象パケット列20の異常を検知することができる。
 (補足)
 以上のように、本出願において開示する技術の例示として、実施の形態1~実施の形態3について説明した。しかしながら本開示による技術は、これらに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。
 以下に、本開示における変形例の一例について列記する。
 (1)実施の形態1において、リファレンスパケットデータ間距離算出部14は、リファレンスパケットデータ列を構成する複数のリファレンスパケットデータ間の複数のリファレンス距離を、N個離れたリファレンスパケット間のそれぞれに対して算出する構成の例であるとして説明した。これに対して、他の構成の例として、リファレンスパケットデータ間距離算出部14は、さらに、リファレンスパケットデータ列を構成する複数のリファレンスパケットデータ間の複数のリファレンス距離を、L(LはN以外の1以上の整数)個離れたリファレンスパケット間のそれぞれに対しても算出する構成の例も考えらえる。この場合、検知対象パケットデータ間距離算出部24は、上記他の構成の例のリファレンスパケットデータ間距離算出部14と同様のアルゴリズムで距離を算出する構成、すなわち、さらに、検知対象パケットデータ列を構成する複数の検知対象パケットデータ間の複数の距離を、L個離れたリファレンスパケット間のそれぞれに対しても算出する構成となる。
 (2)実施の形態1において、異常検知装置1は、判定部29が、検知対象パケット列20が異常であるか否かを判定し、その判定結果を外部に出力する構成の例であった。これに対して、他の構成の例として、異常検知装置1は、情報算出部27が、検知対象パケット列20の異常の度合いを示す異常度を算出し、算出した異常度を外部に出力する構成の例も考えられる。この場合、異常検知装置1は、判定部29を含まない構成であっても構わない。
 (3)実施の形態1において、異常検知装置1は、第1リファレンス特徴量抽出処理を実行することで、リファレンス特徴量を抽出し、抽出したリファレンス特徴量を、リファレンス特徴量抽出部15で記憶する構成の例であった。これに対して、他の構成の例として、異常検知装置1は、外部装置等で抽出されたリファレンス特徴量を外部から取得し、取得したリファレンス特徴量を、予めリファレンス特徴量記憶部16で記憶しておく構成の例も考えられる。この場合、異常検知装置1は、第1リファレンス特徴量抽出処理を行う必要はなく、第1プロファイル決定部11と、第1抽出部12と、リファレンスパケットデータ列群記憶部13と、リファレンスパケットデータ間距離算出部14と、リファレンス特徴量抽出部15とを含まない構成であっても構わない。また、他の構成の例として、異常検知装置1は、リファレンス特徴量記憶部16が予めリファレンス特徴量を記憶している状態で製造される構成の例も考えられる。この場合も、異常検知装置1は、第1リファレンス特徴量抽出処理を行う必要はなく、第1プロファイル決定部11と、第1抽出部12と、リファレンスパケットデータ列群記憶部13と、リファレンスパケットデータ間距離算出部14と、リファレンス特徴量抽出部15とを含まない構成であっても構わない。
 (4)実施の形態3において、異常検知装置1Bは、第3リファレンス特徴量抽出処理を実行することで、グローバルアラインメントカーネルを算出し、算出したグローバルアラインメントカーネルを、カーネル記憶部32で記憶する構成の例であった。これに対して、他の構成の例として、異常検知装置1Bは、外部装置等で抽出されたグローバルアラインメントカーネルを外部から取得し、取得したグローバルアラインメントカーネルを、予めカーネル記憶部32で記憶しておく構成の例も考えられる。この場合、異常検知装置1Bは、第3リファレンス特徴量抽出処理を行う必要はなく、第1プロファイル決定部11と、第1抽出部12と、リファレンスパケットデータ列群記憶部13と、リファレンスパケットデータ間距離算出部14と、リファレンス特徴量抽出部15Aと、リファレンス特徴量記憶部16Aと、カーネル算出部31とを含まない構成であっても構わない。また、他の構成の例として、異常検知装置1Bは、カーネル記憶部32が予めグローバルアラインメントカーネルを記憶している状態で製造される構成の例も考えられる。この場合も、異常検知装置1Bは、第3リファレンス特徴量抽出処理を行う必要はなく、第1プロファイル決定部11と、第1抽出部12と、リファレンスパケットデータ列群記憶部13と、リファレンスパケットデータ間距離算出部14と、リファレンス特徴量抽出部15Aと、リファレンス特徴量記憶部16Aと、カーネル算出部31とを含まない構成であっても構わない。
 (5)実施の形態3において、異常検知装置1Bは、情報算出部27Bが、特徴量として記憶される距離列のそれぞれに対して、カーネル記憶部32に記憶されるグローバルアラインメントカーネルを適用することで、距離列のそれぞれに対して外れ値を算出し、算出した外れ値のうちの最も大きい値を、検知対象パケット列20の異常度として算出する構成の例であった。これに対して、他の構成の例として、異常検知装置1Bは、情報算出部27Bが、距離列のそれぞれに対して、異常であるか否かの2値を示す外れ値を算出し、算出した外れ値の中に1つでも異常である旨の値を示す外れ値が存在する場合に、外部に、検知対象パケット列20が異常である旨の信号を出力する構成の例も考えられる。この場合、異常検知装置1Bは、判定部28Bを含まない構成であっても構わない。
 (6)実施の形態1において、異常検知装置1における各構成要素は、IC(Integrated Circuit)、LSI(Large Scale Integration)等の半導体装置により個別に1チップ化されてもよいし、一部又は全部を含むように1チップ化されてもよい。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。更には、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
 本開示は、パケットを利用するシステムに広く利用可能である。
 1、1A、1B 異常検知装置
 10 リファレンスパケットデータ列群
 11 第1プロファイル決定部
 12 第1抽出部
 13 リファレンスパケットデータ列群記憶部
 14 リファレンスパケットデータ間距離算出部
 15、15A リファレンス特徴量抽出部
 16、16A リファレンス特徴量記憶部
 20 検知対象パケット列
 21 第2プロファイル決定部
 22 第2抽出部
 23 検知対象パケットデータ列記憶部
 24 検知対象パケットデータ間距離算出部
 25、25A 特徴量抽出部
 26、26A 特徴量記憶部
 27、27A、27B 情報算出部
 28、28A、28B 判定部

Claims (20)

  1.  連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出し、
     算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出し、
     抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する
     異常検知方法。
  2.  前記複数の距離を算出する際に、前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離を利用して前記複数の距離を算出する
     請求項1に記載の異常検知方法。
  3.  前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離は、前記検知対象パケット列におけるN(Nは1以上の整数)個離れた検知対象パケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、
     前記複数の距離を算出する際に、前記検知対象パケット列におけるN個離れた検知対象パケット間のそれぞれに対して距離を算出することで、前記複数の距離を算出する
     請求項2に記載の異常検知方法。
  4.  前記複数の検知対象パケットのペイロード間のレーベンシュタイン距離は、さらに、前記検知対象パケット列におけるL(LはN以外の1以上の整数)個離れた検知対象パケット間のそれぞれに対しても算出され、
     前記複数の距離を算出する際に、前記検知対象パケット列におけるL個離れた検知対象パケット間のそれぞれに対しても距離を算出することで、前記複数の距離を算出する
     請求項3に記載の異常検知方法。
  5.  前記特徴量を抽出する際に、前記検知対象パケット列において連続するW(Wは2以上の整数)個の検知対象パケットからなる1以上のウインドウ毎に、当該ウインドウに属する検知対象パケット間に対して算出した前記複数の距離の出現分布を算出し、算出した前記出現分布のそれぞれを、前記特徴量として抽出する
     請求項3又は4に記載の異常検知方法。
  6.  前記異常の度合いに係る情報を算出する際に、算出した前記出現分布のそれぞれと、予め記憶する複数のリファレンス出現分布のそれぞれとの間のアースムーバーズ距離のそれぞれを算出し、算出した前記アースムーバーズ距離のそれぞれを利用するK近傍法を利用して、前記異常の度合いに係る情報を算出する
     請求項5に記載の異常検知方法。
  7.  前記特徴量を抽出する際に、前記検知対象パケット列において連続するW(Wは1以上の整数)個の検知対象パケットからなる1以上のウインドウ毎に、当該ウインドウに属する検知対象パケット間に対して算出した前記複数の距離からなる距離列を算出し、算出した前記距離列のそれぞれを前記特徴量として抽出する
     請求項3又は4に記載の異常検知方法。
  8.  前記異常の度合いに係る情報を算出する際に、算出した前記距離列のそれぞれと、予め記憶する複数のリファレンス距離列のそれぞれとの間の、ワーピング法により定められる距離のそれぞれを算出し、算出した前記ワーピング法により定められる距離のそれぞれを利用して、前記異常の度合いに係る情報を算出する
     請求項7に記載の異常検知方法。
  9.  前記異常の度合いに係る情報を算出する際に、算出した前記距離列のそれぞれに対して予め記憶するグローバルアラインメントカーネルを適用することで、前記異常の度合いに係る情報を算出する
     請求項7に記載の異常検知方法。
  10.  前記複数の距離を算出する際に、前記複数の検知対象パケットのうち、同一のコマンド種別の検知対象パケット間に限定して、前記複数の距離を算出する
     請求項1~9のいずれか1項に記載の異常検知方法。
  11.  連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、
     算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、
     前記検知対象パケット列の異常の度合いに係る情報を算出する際に、さらに、抽出した前記リファレンス特徴量のそれぞれをも用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する
     請求項1~10のいずれか1項に記載の異常検知方法。
  12.  前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出する
     請求項11に記載の異常検知方法。
  13.  前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、
     前記複数のリファレンス距離をそれぞれ算出する際に、前記1以上のリファレンスパケット列のそれぞれにおけるN個離れたリファレンスパケット間のそれぞれに対してリファレンス距離を算出することで、前記複数のリファレンス距離をそれぞれ算出する
     請求項12に記載の異常検知方法。
  14.  前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、さらに、前記1以上のリファレンスパケット列のそれぞれにおけるL(LはN以外の1以上の整数)個離れた検知対象パケット間のそれぞれに対しても算出され、
     前記複数のリファレンス距離のそれぞれを算出する際に、さらに、前記1以上のリファレンスパケット列のそれぞれにおけるL個離れたリファレンスパケット間のそれぞれに対してもリファレンス距離を算出することで、前記複数のリファレンス距離をそれぞれ算出する
     請求項13に記載の異常検知方法。
  15.  連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、
     算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、
     前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、
     前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、
     前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記複数のリファレンス距離の出現分布を算出し、算出した前記リファレンス距離の出現分布のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを、前記予め記憶する複数のリファレンス出現分布のそれぞれとして記憶する
     請求項6に記載の異常検知方法。
  16.  連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、
     算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、
     前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、
     前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、
     前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記リファレンス距離からなるリファレンス距離列を算出し、算出したリファレンス距離列のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、
     抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを、前記予め記憶する複数のリファレンス距離列のそれぞれとして記憶する
     請求項8に記載の異常検知方法。
  17.  連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出し、
     算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出し、
     前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離を利用して前記複数のリファレンス距離をそれぞれ算出し、
     前記複数のリファレンスパケットのペイロード間のレーベンシュタイン距離は、前記1以上のリファレンスパケット列のそれぞれにおけるN(Nは1以上の整数)個離れたリファレンスパケット間のそれぞれに対して算出され、ペイロードを構成するビット列の少なくとも一部を対象として、M(Mは、1以上16以下の整数)ビットを単位として算出され、
     前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出する際に、前記1以上のリファレンスパケット列のそれぞれにおいて連続するW(Wは2以上の整数)個のリファレンスパケットからなる1以上のウインドウ毎に、当該ウインドウに属するリファレンスパケット間に対して算出した前記リファレンス距離からなるリファレンス距離列を算出し、算出したリファレンス距離列のそれぞれを、前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれとして抽出し、
     抽出した前記1以上のリファレンスパケット列のリファレンス特徴量のそれぞれを用いて、グローバルアラインメントカーネルを算出し、算出した前記グローバルアラインメントカーネルを、前記予め記憶するグローバルアラインメントカーネルとして記憶する
     請求項9に記載の異常検知方法。
  18.  前記複数のリファレンス距離をそれぞれ算出する際に、前記複数のリファレンスパケットのうち、同一のコマンド種別のリファレンスパケット間に限定して、前記リファレンス距離のそれぞれを算出する
     請求項11~17のいずれか1項に記載の異常検知方法。
  19.  連続する複数の検知対象パケットからなる検知対象パケット列に対して、当該複数の検知対象パケット間の複数の距離を算出する検知対象パケットデータ間距離算出部と、
     算出した前記複数の距離を用いて、前記検知対象パケット列の特徴量を抽出する特徴量抽出部と、
     抽出した前記特徴量を用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する情報算出部と、を備える
     異常検知装置。
  20.  連続する複数のリファレンスパケットからなる1以上のリファレンスパケット列のそれぞれに対して、当該複数のリファレンスパケット間の複数のリファレンス距離をそれぞれ算出するリファレンスパケットデータ間距離算出部と、
     算出した前記複数のリファレンス距離のそれぞれを用いて、前記1以上のリファレンスパケット列のリファレンス特徴量をそれぞれ抽出するリファレンス特徴量抽出部と、を備え、
     前記情報算出部は、さらに、抽出した前記リファレンス特徴量のそれぞれをも用いて、前記検知対象パケット列の異常の度合いに係る情報を算出する
     請求項19に記載の異常検知装置。
PCT/JP2019/031585 2018-11-21 2019-08-09 異常検知方法、及び異常検知装置 WO2020105234A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020558090A JP7297787B2 (ja) 2018-11-21 2019-08-09 異常検知方法、及び異常検知装置
CN201980064730.9A CN112789831B (zh) 2018-11-21 2019-08-09 异常检测方法以及异常检测装置
EP19886211.2A EP3886374B1 (en) 2018-11-21 2019-08-09 Abnormality detection method and abnormality detection device
US17/221,414 US11962479B2 (en) 2018-11-21 2021-04-02 Abnormality detection method and abnormality detection device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862770375P 2018-11-21 2018-11-21
US62/770,375 2018-11-21
JP2019081275 2019-04-22
JP2019-081275 2019-04-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/221,414 Continuation US11962479B2 (en) 2018-11-21 2021-04-02 Abnormality detection method and abnormality detection device

Publications (1)

Publication Number Publication Date
WO2020105234A1 true WO2020105234A1 (ja) 2020-05-28

Family

ID=70773498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/031585 WO2020105234A1 (ja) 2018-11-21 2019-08-09 異常検知方法、及び異常検知装置

Country Status (5)

Country Link
US (1) US11962479B2 (ja)
EP (1) EP3886374B1 (ja)
JP (1) JP7297787B2 (ja)
CN (1) CN112789831B (ja)
WO (1) WO2020105234A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095265A (zh) * 2021-11-24 2022-02-25 中国南方电网有限责任公司超高压输电公司昆明局 Icmp隐蔽隧道检测方法、装置及计算机设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3126832B1 (fr) * 2021-09-07 2024-03-22 Nano Corp Procede et système de surveillance et gestion du trafic de données
CN114760103B (zh) * 2022-03-21 2023-10-31 广州大学 一种工业控制系统异常检测系统、方法、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017212617A (ja) * 2016-05-26 2017-11-30 株式会社日立製作所 ネットワーク装置、キュー制御方法、及び計算機システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800608B2 (en) * 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
EP2432188B1 (en) * 2005-12-13 2016-04-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
JP2009075010A (ja) * 2007-09-21 2009-04-09 Denso It Laboratory Inc 経路長算出装置、経路長算出方法、経路長算出プログラム及び車両用空調装置ならびに移動物体搭載機器の制御装置
CN106415507B (zh) * 2014-06-06 2019-05-21 日本电信电话株式会社 日志分析装置、攻击检测装置、攻击检测方法以及程序
KR20170060280A (ko) * 2015-11-24 2017-06-01 한국전자통신연구원 탐지 규칙 자동 생성 장치 및 방법
JP6839963B2 (ja) * 2016-01-08 2021-03-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 異常検知方法、異常検知装置及び異常検知システム
CN106650440A (zh) * 2016-10-18 2017-05-10 西南科技大学 一种融合多检测结果的恶意程序检测方法
CN107707545B (zh) * 2017-09-29 2021-06-04 深信服科技股份有限公司 一种异常网页访问片段检测方法、装置、设备及存储介质
US10374803B2 (en) * 2017-10-06 2019-08-06 Stealthpath, Inc. Methods for internet communication security
US10630567B1 (en) * 2018-02-05 2020-04-21 Illuminate Technologies, Llc Methods, systems and computer readable media for monitoring communications networks using cross-correlation of packet flows
US10659379B2 (en) * 2018-05-08 2020-05-19 Chicago Mercantile Exchange Inc. Enforcement of latency determinism across a computer network
US11233744B2 (en) * 2019-11-28 2022-01-25 Hewlett Packard Enterprise Development Lp Real-time network application visibility classifier of encrypted traffic based on feature engineering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017212617A (ja) * 2016-05-26 2017-11-30 株式会社日立製作所 ネットワーク装置、キュー制御方法、及び計算機システム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CUTURI, M.VERT, J. P.BIRKENES, O.MATSUI, T.: "A kernel for time series based on global alignments. In Acoustics, Speech and Signal Processing, 2007. ICASSP 2007", IEEE INTERNATIONAL CONFERENCE ON, vol. 2, April 2007 (2007-04-01), pages II-413
OOUCHIDA, KATSUYA ET AL.: "Controlling Misdetection of Improper Packet Sequences Based on Probability Distribution Models", PROCEEDINGS OF THE 2001 ENGINEERING SCIENCES SOCIETY CONFERENCE OF IEICE : SEPTEMBER 18 - 21, 2001, THE UNIVERSITY OF ELECTRO-COMMUNICATIONS, TOKYO, CHOUFU, JAPAN, 29 August 2001 (2001-08-29), pages 160, XP009521318, ISSN: 1349-1369 *
OTEY, M. E.GHOTING, A.PARTHASARATHY, S.: "Fast distributed outlier detection in mixed-attribute data sets", DATA MINING AND KNOWLEDGE DISCOVERY, vol. 12, no. 2-3, 2006, pages 203 - 228, XP055546548, DOI: 10.1007/s10618-005-0014-6
See also references of EP3886374A4
TAMURA, KENSUKE ET AL.: "Towards Anomaly Detection with Flow Regularity in Industrial Control Systems", SCIS 2018 (2018 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY); 23-26/01/2018, 26 December 2008 (2008-12-26), pages 1 - 8, XP009521319 *
YE, N.: "A markov chain model of temporal behavior for anomaly detection", IEEE SYSTEMS, MAN, AND CYBERNETICS INFORMATION ASSURANCE AND SECURITY WORKSHOP, vol. 166, June 2000 (2000-06-01), pages 169

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095265A (zh) * 2021-11-24 2022-02-25 中国南方电网有限责任公司超高压输电公司昆明局 Icmp隐蔽隧道检测方法、装置及计算机设备
CN114095265B (zh) * 2021-11-24 2024-04-05 中国南方电网有限责任公司超高压输电公司昆明局 Icmp隐蔽隧道检测方法、装置及计算机设备

Also Published As

Publication number Publication date
JPWO2020105234A1 (ja) 2021-10-07
EP3886374A4 (en) 2021-12-29
US20210226862A1 (en) 2021-07-22
US11962479B2 (en) 2024-04-16
JP7297787B2 (ja) 2023-06-26
EP3886374B1 (en) 2024-05-22
EP3886374A1 (en) 2021-09-29
CN112789831B (zh) 2023-05-02
CN112789831A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
WO2020105234A1 (ja) 異常検知方法、及び異常検知装置
US20080109431A1 (en) String Machining System And Program Therefor
US20080046423A1 (en) Method and system for multi-character multi-pattern pattern matching
US8793251B2 (en) Input partitioning and minimization for automaton implementations of capturing group regular expressions
CN109753797B (zh) 针对流式图的密集子图检测方法及系统
CN103154884A (zh) 模式检测
US10050987B1 (en) Real-time anomaly detection in a network using state transitions
CN103377259A (zh) 一种多模式字符串匹配方法和装置
US20180268141A1 (en) Identifying signatures for data sets
JP2019102960A (ja) サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム
JP4635147B2 (ja) パターンマッチング装置、その形成方法、それを用いたネットワーク不正侵入検知装置の動作方法、およびそれを用いた侵入防止システムの動作方法
Yang et al. PiDFA: A practical multi-stride regular expression matching engine based on FPGA
WO2021153032A1 (ja) 異常検知方法、及び異常検知装置
EP2838032B1 (en) Method, server and terminal device for selectively removing nondeterminism of nondeterministic finite automata
JP6541903B2 (ja) 攻撃・異常検知装置、攻撃・異常検知方法、および攻撃・異常検知プログラム
Kouzinopoulos et al. A performance evaluation of the preprocessing phase of multiple keyword matching algorithms
JP6096084B2 (ja) トラヒック走査装置及び方法
Estrada-Vargas et al. Stepwise identification of automated discrete manufacturing systems
Chayapathi Survey and comparison of string matching algorithms
WO2015173860A1 (ja) 時系列データ処理装置及び時系列データ処理プログラム
US20170358355A1 (en) Connection for quick search of regular expressions in data
CN113691639B (zh) 端口标识解析的方法、装置、设备及存储介质
Zhou et al. Research of multi-pattern matching algorithm based on characteristic value
CN110321463B (zh) 一种字符串匹配方法、系统、存储介质及装置
Baek et al. Packet Damage-Resistant Analysis Using a Data Mining Mechanism in Wireless Sensor Networks

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020558090

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019886211

Country of ref document: EP

Effective date: 20210621