JP2019110513A - Anomaly detection method, learning method, anomaly detection device, and learning device - Google Patents

Anomaly detection method, learning method, anomaly detection device, and learning device Download PDF

Info

Publication number
JP2019110513A
JP2019110513A JP2018117398A JP2018117398A JP2019110513A JP 2019110513 A JP2019110513 A JP 2019110513A JP 2018117398 A JP2018117398 A JP 2018117398A JP 2018117398 A JP2018117398 A JP 2018117398A JP 2019110513 A JP2019110513 A JP 2019110513A
Authority
JP
Japan
Prior art keywords
learning
packet
abnormality detection
packets
calculated
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018117398A
Other languages
Japanese (ja)
Other versions
JP7082533B2 (en
Inventor
達海 大庭
Tatsumi Oba
達海 大庭
郁 大濱
Iku Ohama
郁 大濱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Corp of America
Original Assignee
Panasonic Intellectual Property Corp of America
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 Panasonic Intellectual Property Corp of America filed Critical Panasonic Intellectual Property Corp of America
Priority to US16/218,975 priority Critical patent/US10785244B2/en
Publication of JP2019110513A publication Critical patent/JP2019110513A/en
Application granted granted Critical
Publication of JP7082533B2 publication Critical patent/JP7082533B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide, for example, an anomaly detection method which allows accurate identification of anomalous packets, or a learning method for learning anomaly detection models for the accurate identification.SOLUTION: An anomaly detection method includes the steps of: extracting, for each of multiple learning packets obtained, all possible combinations of N-grams in a payload included in the learning packet; counting a first number, which is the number of occurrences of each of all the combinations extracted from the packet in the payloads included in the packets obtained; calculating, as anomaly detection models, first probabilities by performing smoothing processing based on the multiple first numbers; and, when a score calculated for each of the multiple packets exceeds a predetermined threshold that is based on the anomaly detection models stored in a memory, outputting an indication that the packet having the score calculated has an anomaly.SELECTED DRAWING: Figure 14

Description

本開示は、学習モデルを用いて複数のパケットにおける異常を検知する異常検知方法および異常検知装置、並びに、当該学習モデルの学習方法および学習装置に関する。   The present disclosure relates to an abnormality detection method and an abnormality detection device for detecting an abnormality in a plurality of packets using a learning model, and a learning method and a learning device for the learning model.

特許文献1では、Nグラムを用いてデータの異常検知を行う方法が開示されている。   Patent Document 1 discloses a method of detecting abnormality of data using N-grams.

特表2009−523270号公報Japanese Patent Publication 2009-523270

本開示は、異常なパケットを、精度よく特定することができる異常検知方法、または、精度よく特定するための異常検知モデルを学習する学習方法などを提供する。   The present disclosure provides an anomaly detection method capable of identifying an abnormal packet with high accuracy, or a learning method of learning an anomaly detection model for identifying the packet with high accuracy.

本開示の一態様に係る異常検知方法は、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知する異常検知装置が実行する異常検知方法であって、前記異常検知装置は、プロセッサおよびメモリを備え、前記メモリは、複数の学習用パケットを用いた学習により生成された異常検知モデルを記憶しており、前記異常検知方法では、前記プロセッサが、前記複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させ、複数のパケットを取得し、取得した複数のパケットのそれぞれについて、当該パケットに対して算出したスコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが以上であることを出力する。   An abnormality detection method according to an aspect of the present disclosure detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. The abnormality detection method executes the abnormality detection device, the abnormality detection device includes a processor and a memory, and the memory stores an abnormality detection model generated by learning using a plurality of learning packets. In the abnormality detection method, the processor acquires the plurality of learning packets, and for each of the acquired plurality of learning packets, a data string constituting a payload included in the learning packet is A (A Is an integer of 1 or more) N (N is an integer of 2 or more) of a plurality of data units obtained by dividing in units of bits Extracting a first combination of N data units in combination order of consecutive ones in the payload, or in the arrangement order of B (B is an integer of 1 or more) skips of the combination; For each of all the first combinations extracted for the plurality of learning packets, a first number, which is the number of times the first combination appears in the plurality of learning packets, is counted, and all the extracted combinations are extracted For each of the first combinations, the smoothing process is performed based on the plurality of first numbers obtained by counting, and the probability is that the first combination appears in the plurality of learning packets. Calculating a plurality of first probabilities and storing the calculated first probabilities in the memory as the abnormality detection model; If a score is calculated for each of a plurality of acquired packets and the acquired packets exceed a predetermined threshold based on the abnormality detection model stored in the memory, the score is calculated. Output that the packet being sent is above.

また、本開示の一態様に係る学習方法は、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知するための異常検知モデルを学習する学習装置が実行する学習方法であって、前記学習装置は、プロセッサおよびメモリを備え、前記学習方法では、前記プロセッサが、複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させる。   In addition, the learning method according to an aspect of the present disclosure detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. A learning device for learning an abnormality detection model to be executed, the learning device including a processor and a memory, in which the processor acquires and acquires a plurality of learning packets Of each of the plurality of learning packets, a plurality of data units obtained by dividing a data string constituting a payload included in the learning packet into A (A is an integer of 1 or more) bits units All possible first combinations of N (N is an integer of 2 or more) data units, in a sequential order of consecutive in the payload, or B (B is an integer of 1 or more) A first combination of N data units in the order of skipping is extracted, and for each of the first combinations extracted for the plurality of learning packets, A plurality of the first obtained by counting the first number which is the number of times the first combination appears in the plurality of learning packets, and counting each of the extracted first combinations. A plurality of first probabilities, which are probabilities of occurrence of the first combination in the plurality of learning packets, are calculated by performing smoothing processing based on the number of 1, and the plurality of calculated first probabilities Are stored in the memory as the abnormality detection model.

なお、これらの全般的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。   Note that these general or specific aspects may be realized by a system, a device, an integrated circuit, a computer program, or a recording medium such as a computer readable CD-ROM, and the system, the device, the integrated circuit, the computer program And any combination of recording media.

本開示における異常検知方法、学習方法、異常検知装置、および、学習装置を用いることで、異常なパケットを精度よく特定することができる。   By using the abnormality detection method, the learning method, the abnormality detection device, and the learning device according to the present disclosure, an abnormal packet can be identified with high accuracy.

図1は、実施の形態に係る異常検知システムの概略図である。FIG. 1 is a schematic view of an abnormality detection system according to the embodiment. 図2は、実施の形態に係る異常検知装置のハードウェア構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of the hardware configuration of the abnormality detection apparatus according to the embodiment. 図3は、本実施の形態における異常検知装置の機能構成の一例を示すブロック図である。FIG. 3 is a block diagram showing an example of a functional configuration of the abnormality detection device according to the present embodiment. 図4Aは、Ethernetフレームの構造を示す図である。FIG. 4A is a diagram showing the structure of an Ethernet frame. 図4Bは、TCPプロトコルのパケット構造の一例を示す図である。FIG. 4B is a diagram showing an example of a packet structure of the TCP protocol. 図5は、異常検知モデルDBが保持する異常検知モデルの例を示す図である。FIG. 5 is a diagram showing an example of the abnormality detection model held by the abnormality detection model DB. 図6は、異常検知モデルDBが保持する異常検知モデルの例を示す図である。FIG. 6 is a diagram showing an example of the abnormality detection model held by the abnormality detection model DB. 図7は、異常検知モデルDBが保持する異常検知モデルの例を示す図である。FIG. 7 is a diagram showing an example of the abnormality detection model held by the abnormality detection model DB. 図8は、異常検知モデルDBが保持する異常検知モデルの例を示す図である。FIG. 8 is a diagram showing an example of the abnormality detection model held by the abnormality detection model DB. 図9は、宛先ポートとアラート閾値とが対応付けられた対応情報を示す図である。FIG. 9 is a diagram showing correspondence information in which a destination port and an alert threshold are associated. 図10は、異常検知装置における動作の概要を示すフローチャートである。FIG. 10 is a flowchart showing an outline of the operation in the abnormality detection device. 図11は、異常検知装置における学習処理の詳細の一例を示すフローチャートである。FIG. 11 is a flowchart showing an example of the details of the learning process in the abnormality detection device. 図12は、アラート閾値決定処理の詳細の一例を示すフローチャートである。FIG. 12 is a flowchart illustrating an example of the alert threshold determination process in detail. 図13は、アラート閾値決定処理の詳細の他の一例を示すフローチャートである。FIG. 13 is a flowchart illustrating another example of details of the alert threshold determination process. 図14は、異常検知装置における検査処理の詳細の一例を示すフローチャートである。FIG. 14 is a flowchart showing an example of the details of inspection processing in the abnormality detection device. 図15は、FTPプロトコルにおいて評価を行った場合の本実施の形態に係る異常検知方法と他の手法とを比較した実験結果を示す図である。FIG. 15 is a diagram showing an experimental result comparing the abnormality detection method according to the present embodiment and another method when evaluation is performed in the FTP protocol. 図16は、TELNETプロトコルにおいて評価を行った場合の本実施の形態に係る異常検知方法と他の手法とを比較した実験結果を示す図である。FIG. 16 is a diagram showing experimental results comparing the anomaly detection method according to the present embodiment and another method when evaluation is performed in the TELNET protocol.

(本発明の基礎となった知見)
[1−1 背景]
近年、制御システム(工場、プラント、重要インフラなど)に対するサイバー攻撃の脅威が高まり、サイバー攻撃による被害が増加傾向にある。上記のような制御システムの被害が増加してきた理由として、下記の事項が指摘される。
(Findings that formed the basis of the present invention)
[1-1 Background]
In recent years, the threat of cyber attacks on control systems (plants, plants, important infrastructure, etc.) has increased, and the damage by cyber attacks has been on the rise. The following points are pointed out as reasons for the increase in damage to control systems as described above.

(1)信頼性や制御の利便性を向上させるために、制御システムを含むシステム間は、相互接続されるようになった。このため、制御システムは、外部にさらされることとなり、サイバーセキュリティの脅威を増加させることに至ったと考えられる。   (1) In order to improve the reliability and the convenience of control, the systems including the control system are interconnected. Therefore, the control system is exposed to the outside, which is considered to have increased the threat of cyber security.

(2)システムの相互接続性、汎用性を上げるために、制御システムの内部ネットワークは、Modbus、EtherCAT、BACnetなどのオープンプロトコルを用いた通信を行うようになった。このため、制御システムは、マルウェアの感染などのような攻撃の可能性を飛躍的に高めることに繋がったと考えられる。   (2) In order to improve system interoperability and versatility, the internal network of the control system has come to communicate using open protocols such as Modbus, EtherCAT, BACnet and the like. Therefore, it is considered that the control system has led to dramatically increasing the possibility of attacks such as malware infection.

(3)制御システムには、セキュリティ対策が施されていない場合が多く、制御システムでは、1つのシステムを何十年にも渡って使用することが多い。このため、このような制御システムでは、使用期間中にOS等のサポートが終了してPC端末にセキュリティパッチの適用が出来ないケース、または、ウィルス対策ソフトを導入できないケースがたびたび見受けられる。   (3) Control systems often do not have security measures in place, and control systems often use one system for many decades. For this reason, in such a control system, there are often found cases where the support of the OS and the like is terminated during the use period and the security patch can not be applied to the PC terminal or cases where anti-virus software can not be introduced.

上記(1)及び(2)については、産業的なメリットが非常に大きいことから、これらの傾向は今後ますます拡大していくものと考えられている。本開示では、上記(3)に示すようにセキュリティ対策の導入や設備の変更が容易ではない制御システムのセキュリティを確保するため、ネットワークレベルでの侵入検知技術に着目する。ネットワーク侵入検知システム(NIDS:Network-based Intrusion Detection System)は、対象とするネットワークをパッシブにモニタリングするシステムであり、設備に直接的な変更を加える必要がない。このため、可用性が重視される制御システムにおいても導入しやすいという利点がある。   With regard to the above (1) and (2), these trends are considered to be further expanded in the future, because the industrial merits are very large. The present disclosure focuses on intrusion detection technology at the network level in order to ensure security of a control system in which the introduction of security measures and the change of equipment are not easy as described in (3) above. A Network Intrusion Detection System (NIDS) is a system that passively monitors a target network, and there is no need to make a direct change to equipment. For this reason, there is an advantage that it is easy to introduce even in a control system where availability is important.

[1−1−1 侵入検知システムの種類と性質]
侵入検知システム(IDS:Intrusion Detection System)は一般にホストベースIDS(HIDS:Host-based Intrusion Detection System)とネットワークベースIDS(NIDS)に分類される。制御システムにおいては、NIDSを利用することが一般的である。制御システムにおいてNIDSの利用が好ましい点として、生産設備に直接手を加えずに済む点が挙げられる。NIDSであれば、監視対象となる制御機器のOS、リソースなどに無関係に導入できる。一方で、ウィルス検知ソフトなどのHIDSでは、ウィルスのスキャン時に端末に大きな負荷がかかり、生産に関わるソフトウェアの処理速度が下がって生産活動への影響が発生する可能性などが存在する。
[1-1-1 Type and nature of intrusion detection system]
Intrusion detection systems (IDS) are generally classified into host-based intrusion detection systems (HIDS) and network-based IDS (NIDS). In control systems, it is common to use NIDS. The preferred use of NIDS in the control system is that it avoids direct manipulation of production equipment. If it is NIDS, it can be introduced regardless of OS, resources, etc. of the control device to be monitored. On the other hand, in HIDS such as virus detection software, a large load is placed on the terminal at the time of virus scanning, and there is a possibility that the processing speed of the software relating to production will be reduced to affect production activity.

またNIDSは更にシグネチャ/ルール方式とアノマリ方式とに大別され、アノマリ方式のNIDSは更にフローベースとペイロードベースとに分類される。シグネチャ/ルール方式のNIDSは、一般によく利用されているものであり、ペイロードに含まれる特定のバイト列のパターンを見つけ出した場合、または、通信量が予め定められた闘値を超えた場合にアラートを発するものである。フローペースのNIDSではパケットのヘッダのみを観測し、当該ネットワークにおけるトラフィックのサイズや周期などのフロー情報に関して定常状態のモデルを生成し、定常状態から逸脱するようなトラフィックを検知した場合にアラートを発する。フローペースのNIDSではパケットのヘッダ情報しか用いないため、暗号化された通信、または、ペイロードを伴わない通信に対しても異常を検知できる。一方で、ペイロードベースのNIDSでは、パケットのペイロード情報を観測し、そのペイロードが通常の通信内容から逸脱していないかどうかを判断する。フローベースの方式ではシステムのメンテナンス、非定常的なファイル転送など、検知したくない状態の変化に対して敏感に反応してしまう恐れがあるが、ペイロードベースの方式はその恐れが少ないし、フロー情報には反映されない巧妙な攻撃を検知できる可能性がある。   The NIDS is further roughly divided into a signature / rule system and an anomaly system, and the anomaly type NIDS is further classified into a flow base and a payload base. The signature / rule NIDS is commonly used and is alerted when it finds a particular byte string pattern contained in the payload, or when the traffic exceeds a predetermined threshold. Emit Flow-based NIDS observes only the packet header, generates a steady-state model for flow information such as traffic size and cycle in the network, and alerts when it detects traffic that deviates from the steady state . Since the flow-based NIDS uses only packet header information, it can detect anomalies even for encrypted communications or communications without payload. On the other hand, payload-based NIDS observes packet payload information and determines whether the payload deviates from normal communication content. The flow-based method may react sensitively to changes in the state that you do not want to detect, such as system maintenance and non-stationary file transfer, but the payload-based method is less likely to It is possible to detect clever attacks that are not reflected in the information.

[1−1−2 本開示の概要と効果]
本開示では新たなペイロードベースの異常検知方法を説明する。本開示の異常検知方法に、ペイロードベースの異常検知技術を採用した理由として、下記の点が挙げられる。
[1-1-2 Summary and effect of the present disclosure]
This disclosure describes a new payload-based anomaly detection method. The following points can be mentioned as reasons for adopting the payload-based anomaly detection technology in the anomaly detection method of the present disclosure.

・制御システムが用いられる環境では多くのオペレーションは自動化されている。しかし、制御システムには、人間による操作時、メンテナンス時、製造物の変更時などには多くの非定常的なオペレーションが入る。フローベースNIDSでは、このような非定常的なオペレーションが多く検知されてしまう恐れがある。一方で、ペイロードベースNIDSでは、オペレーションの内容自体に普遍性があれば誤検知を防ぐことができるという利点がある。   Many operations are automated in environments where control systems are used. However, the control system includes many non-stationary operations during human operation, maintenance, product changes, and the like. In flow-based NIDS, many such non-stationary operations may be detected. On the other hand, payload-based NIDS has the advantage that false detection can be prevented if the contents of the operation itself are universal.

・非常に精巧に作りこまれたマルウェアの場合、フロー情報に現れないような巧妙な攻撃が仕掛けられた場合に、制御システムでは、パケットのペイロードを監視しないとパケットの異常を検知できない恐れがある。   ・ In the case of highly sophisticated malware, if a clever attack that does not appear in the flow information is launched, the control system may not be able to detect packet anomalies without monitoring the packet payload. .

・フローベースのNIDSでは、制御システムが悪意を持った正規のオペレータにより操作される場合の異常、また正規のオペレータにより誤って異常パラメータが入力される場合の異常を、フローとしては正常なものと一致するため検知できない。ペイロードベースNIDSではこのような異常を検知することも可能である。   In the flow-based NIDS, if the control system is operated by a malicious authorized operator, or if an anomaly parameter is erroneously input by the authorized operator, the anomaly is regarded as a normal flow. It can not be detected because it matches. The payload-based NIDS can also detect such an anomaly.

本開示の異常検知方法などでは以下の効果が奏される。   The following effects are exhibited by the abnormality detection method of the present disclosure and the like.

・本開示の異常検知方法は、パケットのペイロードのN−gram情報を利用することで、高い性能(低誤検知率、高検知率)を実現できる。   -The abnormality detection method of this indication can implement | achieve high performance (low false alarm rate, high detection rate) by utilizing N-gram information of the payload of a packet.

・本開示の異常検知方法は、デプロイする環境に応じてチューニングが行う必要性が無く、膨大なネットワーク環境においても自動で異常検知システムを構成するのに適している。   The abnormality detection method according to the present disclosure does not have to be tuned according to the deployment environment, and is suitable for automatically configuring an abnormality detection system even in a vast network environment.

・本開示の異常検知方法は、比較的チューニングの手間が少ない既存手法であるPAYL、ANAGRAMよりも、1999 DARPA IDS Data SetのFTPプロトコル、TEL−NETプロトコルの異常検知性能において優れた性能を発揮することができる。   The anomaly detection method of the present disclosure exhibits superior performance in anomaly detection performance of the FTP protocol of the 1999 DARPA IDS Data Set and the TEL-NET protocol than PAYL and ANAGRAM, which are relatively less time-consuming tuning techniques. be able to.

[1−2 基本的な技術]
本開示の異常検知方法を説明する前に、本開示で用いられている基本的な技術についての説明を行う。
[1-2 Basic technology]
Before describing the anomaly detection method of the present disclosure, the basic technology used in the present disclosure will be described.

[1−2−1 N−gram]
N−gramは与えられた文字、単語などの要素から成る系列データに対し、N個の連続する並びのことである。例えばDNAの塩基配列において、・・・AGCTTCGA・・・という列が与えられた場合、この列に現れる1−gramは・・・、A,G,C,T,T,C,G,A,・・・であり、2−gramは・・・,AG,GC,CT,TT,TC,CG,GA,・・・であり、3−gramは・・・,AGC,GCT,CTT,TTC,TCG,CGA,・・・である。例えば文中に・・・to be or not to be・・・という列が現れたとき、各要素を単語とみなすと、この列に現れる1−gramは・・・,to,be,or,not,to,be,・・・であり、2−gramは・・・,to be,be or,or not,not to,to be,・・・であり、3−gramは・・・,to be or,be or not,or not to,not to be,・・・である。
[1-2-1 N-gram]
An N-gram is N consecutive sequences for sequential data consisting of elements such as given characters and words. For example, given the sequence of ... AGCTTCGA ... in the base sequence of DNA, the 1-gram appearing in this sequence is ..., A, G, C, T, T, C, G, A, ..., 2-gram is ..., AG, GC, CT, TT, TC, CG, GA, ..., 3-gram is ..., AGC, GCT, CTT, TTC, TCG, CGA,. For example, when a sequence of to be or not to be appears in a sentence, if each element is regarded as a word, 1-gram appearing in this sequence is ..., to, be, or, not, to, be, ..., 2-gram is ..., to be, be or, or not, not to, to be, ..., 3-gram is ..., to be or , Be or not, or not to, not to be,.

例えばN−gramを利用すると、単にN−gramの出現回数をベクトル化することで系列データを特徴抽出することができる。ある系列データに対して、それぞれの要素が取り得る値の数をM個、系列データの長さをL個とした場合、この系列データとして考えられるパターンはM通り存在する。しかし、例えば2−gramの出現回数を特徴として用いると、この系列データをM次元のべクトルとして扱うことができるため、扱いやすいデータとなる。N−gramは自然言語処理の分野または生命科学の分野で用いられることが多いが、ペイロード異常検知においても有効なことが過去の研究によって示されている。 For example, using N-grams, feature data of sequence data can be extracted simply by vectorizing the number of occurrences of N-grams. Assuming that the number of possible values of each element is M and the length of the series data is L for a certain series data, there are M L possible patterns for this series data. However, if, for example, the number of occurrences of 2-grams is used as a feature, this series data can be treated as an M 2 -dimensional vector, which makes the data easy to handle. N-grams are often used in the field of natural language processing or in the field of life sciences, but past studies have shown that they are also effective in payload anomaly detection.

[1−2−2 N−gramを用いた系列生成モデル]
上述の通り、N−gramは系列情報を扱う際に有用なモデルである。N−gramを用いると非常にシンプルな系列の生成モデルを構築することができる。N−gramを用いた系列の生成モデルでは、Pr(x|xi−(n−1),...,xi−1)と扱う。すなわち、ある要素が出力される確率は、直前のN−1個の要素だけで決定されると仮定する。もちろんこの仮定はほとんどの場合正しくないが、系列が与えられた場合に、その系列が発生する尤度を得ること等ができる点で便利である。例えばx,x,...,xを対象の系列データとするとき,このデータが生成される確率はPr(x,x,...,x)で表現されるが、2−gramを用いた生成モデルでは、これは下記のように確率の積に分解できる。
[1-2-2 Sequence generation model using N-gram]
As described above, N-gram is a useful model when dealing with sequence information. Using N-grams, it is possible to construct a very simple series generation model. In a generation model of a series using N-gram, it is treated as Pr (x i | x i − (n−1) ,..., X i−1 ). That is, it is assumed that the probability that an element is output is determined only by the immediately preceding N-1 elements. Of course, this assumption is not correct in most cases, but it is convenient in that when given a sequence, it is possible to obtain the likelihood that the sequence will occur. For example, x 1 , x 2 ,. . . , When subjected to the series data x l, the probability that the data is generated Pr (x 1, x 2, ..., x l) is represented, in the model that uses 2-gram , Which can be decomposed into products of probabilities as follows:

Pr(x,x,...,x) (式1)
=Pr(x)・Pr(x|x)・Pr(x|x,x
・・・Pr(xlx,x,...,xl−1) (式2)
=P(x|start)・Pr(x|x)・Pr(x|x
・・・Pr(x|xl−1) (式3)
Pr (x 1 , x 2 , ..., x l ) (Equation 1)
= Pr (x 1 ) · Pr (x 2 | x 1 ) · Pr (x 3 | x 1 , x 2 )
... Pr (xlx 1 , x 2 , ..., x l -1 ) (Equation 2)
= P (x 1 | start) · Pr (x 2 | x 1 ) · Pr (x 3 | x 2 )
... Pr (x l | x l-1 ) (Equation 3)

先頭の要素のみ、先頭にxが出現する確率を利用し、以降の文字が出現する確率は、その直前の要素が出現する確率のみに依存するという性質を用いて確率を算出する。最も単純な手法では、取りうる要素の数をM,2−gram x,xが出現した回数をkxi,xjとすると、次の式4で各項の確率を定める。 Only the beginning of the element, the top use the probability that x 1 appears in, the probability of subsequent characters appear calculates the probability by using the property that depends only on the probability that the element of the immediately preceding appears. In the simplest method, assuming that the number of possible elements is M, and the number of occurrences of 2-gram x i , x j is k xi, x j , the probability of each term is determined by the following equation 4.

Figure 2019110513
Figure 2019110513

本開示の異常検知方法はペイロードに含まれるバイト列のN−gramを用いてモデリングを行ない異常なペイロード列を検知する方法であり、検知性能の高さとチューニングの容易さの点で従来技術に対して優位性がある。   The anomaly detection method of the present disclosure is a method of performing modeling using N-grams of byte sequences included in the payload to detect an abnormal payload sequence, which is superior to the prior art in terms of high detection performance and ease of tuning. Advantage.

[1−3 既存手法]
既存のペイロードベース異常検知方法の紹介を行う。ここで挙げる異常検知方法は、例えばTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)レイヤーのペイロード(図4Aの構造をしたパケットのTCP/UDPペイロード部)を利用して異常検知を行う。しかし勿論、検知対象はTCP/UDP上のプロトコルに限定されるわけではなく、他のプロトコルのペイロードを用いても同様に異常検知を行うことができる。また、各方法は事前の知識を必要としない。すなわち、プロトコル専用のパーサを利用して、ペイロードの特定の要素を抽出する等の操作を行わない。N−gramをペイロードベースの異常検知方法として利用した代表的な先行例として、下記のPAYL、POSEIDON、ANAGRAMが存在する。PAYL、POSEIDONはともにunigramを用いて識別を行う例である。ANAGRAMはN−gram(N=3,5,7など)を用いて識別を行う例である。以下、3つの方法について順に説明する。
[1-3 Existing method]
Introduce existing payload-based anomaly detection methods. The abnormality detection method mentioned here performs abnormality detection using, for example, a payload of a Transmission Control Protocol (TCP) / User Datagram Protocol (UDP) layer (a TCP / UDP payload portion of a packet having a structure of FIG. 4A). However, as a matter of course, the detection target is not limited to the protocol on TCP / UDP, and even if payloads of other protocols are used, abnormality detection can be similarly performed. Also, each method does not require prior knowledge. That is, the parser dedicated to the protocol is not used to perform an operation such as extracting a specific element of the payload. The following PAYL, POSEIDON, and ANAGRAM exist as a typical precedent example using N-gram as a payload-based anomaly detection method. PAYL and POSEIDON are both examples of identification using a unigram. ANAGRAM is an example of performing identification using N-gram (N = 3, 5, 7, etc.). Hereinafter, three methods will be described in order.

[1−3−1 PAYL]
PAYLはペイロード列のunigram情報を用いる手法であり、2004年のKe Wangらによって提案された。PAYLでは異常検知モデルを、パケットの宛先IP、パケットの宛先ポート、パケットペイロード長(1byte単位)でモデルを別々に学習する。学習フェーズでは、学習用のペイロード列全てを256次元のunigramのべクトルに変換し、各次元の平均と標準偏差の情報とを蓄積する。検知フェーズにおいても検査対象となるペイロードを256次元(1byte)のunigramベクトルに変換し、変換されたペクトルと学習時に蓄積した平均ベクトルとの間の簡易化されたマハラノビス距離を異常スコアとして算出する。異常スコアの算出には、下記の式5が用いられる。
[1-3-1 PAYL]
PAYL is a method using unigram information of a payload sequence, and was proposed by Ke Wang et al. In PAYL, an anomaly detection model is learned separately by the packet destination IP, packet destination port, and packet payload length (1 byte unit). In the learning phase, all the payload sequences for learning are converted into 256-dimensional unigram vectors, and the information of the average and standard deviation of each dimension is accumulated. Also in the detection phase, the payload to be inspected is converted into a 256-dimensional (1 byte) unigram vector, and the simplified Mahalanobis distance between the converted vector and the average vector accumulated at learning is calculated as an abnormality score. The following equation 5 is used to calculate the abnormality score.

Figure 2019110513
Figure 2019110513

ナイーブなPAYLの実装においては、ハイパーパラメータ(学習の前段階で人間が定める必要のあるパラメータ)は上式のαしか存在しないため、チューニングの必要性が少ない。また、データの追加学習は容易に可能である。PAYLは、シンプルで優れた識別器であるが、unigramを使うという性質上、並びに関する情報が一切失われてしまい、それが精度の悪化に繋がっていると考えられる。その後、unigramを使うことによる弱点を克服するため、N−gram(N≧2)を用いる手法が様々に考案されている。   In the naive PAYL implementation, the hyperparameters (parameters that need to be determined by humans at the pre-learning stage) are only α in the above equation, so there is less need for tuning. Also, additional learning of data is easily possible. PAYL is a simple and excellent discriminator, but the nature of using unigram results in the loss of any information about the alignment, which is considered to lead to the deterioration of accuracy. Then, in order to overcome the weak point by using unigram, various methods using N-gram (N> = 2) are devised.

つまり、PAYLの問題点は、unigramを使うため識別精度がその後提案された各種手法に比べてやや低い点である。   In other words, the problem with PAYL is that the discrimination accuracy is somewhat lower than the various proposed methods since unigrams are used.

[1−3−2 POSEIDON]
PAYLでは、パケットの役割ごとに異常検知モデルを切り分けたいという意図があったため、パケットのペイロード長ごとにモデルを分割していた。しかし、ペイロード長ではパケットの役割ごとにモデルを切り分けられない場合があると考え、別の情報を用いてモデルの分割を試みた手法が2006年にDamiano Bolzoniらによって提案されたPOSEIDONである。POSEIDONでは、ペイロード間の距離尺度を定め、その距離尺度の下で近いパケット同士をクラスタリングし、そのクラスタ情報をペイロード長の代わりにモデルを分割するための情報として用いた。クラスタリングの手法としては自己組織化マップを用いている。このクラスタ情報をペイロード長の代わりに用いる点を除けばPOSEIDONはPAYLと同一の異常検知手法である。POSEIDONは適切な自己組織化マップを学習できた場合には高い識別精度を発揮する。しかし、自己組織化マップは非常に数多くのハイパーパラメータを持つ。このため、POSEIDONでは、パケットが好ましいクラスタに分かれるようになるために、多くの試行や交差検証法によるチューニングが必要となるため、実用性は乏しい。
[1-3-2 POSEIDON]
In PAYL, the intention was to divide the anomaly detection model according to the role of the packet, so the model was divided according to the payload length of the packet. However, it is POSEIDON proposed by Damiano Bolzoni et al. In 2006 that attempted to divide the model using different information, thinking that the payload length may not be able to separate the model for each role of the packet. In POSE IDON, a distance measure between payloads is defined, near packets are clustered under the distance measure, and the cluster information is used as information for dividing the model instead of the payload length. A self-organizing map is used as a clustering method. POSEIDON is the same anomaly detection method as PAYL except that this cluster information is used instead of the payload length. POSEIDON demonstrates high identification accuracy if it can learn an appropriate self-organizing map. However, self-organizing maps have a very large number of hyperparameters. For this reason, in POSEIDON, in order to divide packets into desirable clusters, it is necessary to perform tuning by many trials and cross verification methods, so the practicality is poor.

つまり、POSEIDONの間題点は、下記の2点である。1点目は、自己組織化マップに多くのハイパーパラメータが存在するため、チューニングが非常に困難である点である。2点目は、自己組織化マップの学習に多くの時間や計算リソースが必要であり、実環境での利用に不向きである点である。   In other words, there are two problems with POSEIDON: The first point is that tuning is very difficult because there are many hyperparameters in the self-organizing map. The second point is that learning a self-organizing map requires a lot of time and computational resources, and is unsuitable for use in a real environment.

[1−3−3 ANAGRAM]
ANAGRAMは、PAYLを改良すべく2006年にKe Wangらによって提案された手法である。PAYLはMimicry Attack(モデルによる検知を回避しようとする攻撃)に対して脆弱であるという問題点が指摘されたが、この問題を回避するため、ANAGRAMではより大きなNに対するN−gramモデリングを行っている。論文中では、各N−gramの出現回数情報も利用するfrequency−basedの手法と、各N−gramが出現したか否かのみを利用するbinary−basedの手法が紹介されている。この2つの手法のうち、学習データのスパース性が高いためBinary−basedのANAGRAMの方が、精度が良いとされている(以降単にANAGRAMと記述した場合はbinary−basedのANAGRAMを指し示すこととする)。N−gram情報は、Nの大きさに対し指数関数的に情報量が増加するため、ANAGRAMではブルームフィルタを使って効率的に学習対象のペイロード中に現れたN−gram情報を保持している。ブルームフィルタは高速に動作し、メモリ利用量も膨大にはならないが、予め対象データに応じてフィルタサイズを決定する必要がある。フィルタサイズが小さすぎれば、これまでに観測していないN−gramを観測したものだと誤る恐れがあり、フィルタサイズが大きければメモリを大量に占有してしまう。またANAGRAMは、その性質上一度でも不正なN−gramを含むパケットを観測してしまうと、以降そのパケットに含まれていたN−gramを全て正常なものだと解釈してしまうため、著しく精度が劣化してしまう。これは例えば学習データ中に暗号化された文字列や、データのバイナリ列のようなランダム性の高いバイト列が含まれている場合に間題となる。ANAGRAM(binary−based)における異常スコアは、下記の式6により算出される。
[1-3-3 ANAGRAM]
ANAGRAM is a method proposed by Ke Wang et al. In 2006 to improve PAYL. PAYL has been pointed out that it is vulnerable to Mimicry Attack (an attack that tries to evade detection by a model), but in order to avoid this problem, NAG gram modeling for larger N is performed in ANAGRAM. There is. In the paper, a frequency-based method that uses the number of occurrences of each N-gram and a binary-based method that uses only whether each N-gram has appeared are introduced. Of these two methods, the accuracy of the binary-based ANAGRAM is considered to be better because the learning data is highly sparse (it will be pointed to the binary-based ANAGRAM when it is simply described as the ANAGRAM) ). As N-gram information increases in an exponential manner with respect to the size of N, in ANAGRAM, the Bloom filter is used to efficiently hold the N-gram information that appears in the payload to be learned. . The Bloom filter operates at high speed, and the memory usage does not become enormous. However, it is necessary to determine the filter size in advance according to the target data. If the filter size is too small, it may be mistaken if it is an observed N-gram that has not been observed so far, and if the filter size is large, a large amount of memory will be occupied. Also, by its nature, NAGRAM interprets the N-gram contained in the packet as a normal one if it observes a packet containing an invalid N-gram even once. Will deteriorate. This is a problem, for example, when the learning data includes an encrypted character string or a highly random byte string such as a binary string of data. The abnormality score in ANAGRAM (binary-based) is calculated by the following equation 6.

Figure 2019110513
Figure 2019110513

一方、ANAGRAM(frequency−based)における異常スコアは、下記の式7により算出される。   On the other hand, the abnormality score in AnaGRAM (frequency-based) is calculated by the following equation 7.

Figure 2019110513
Figure 2019110513

これらの式からもわかるように、ANAGRAMはbinary−based版、frequency−based版ともに非常にシンプルな手法であり、ハイパーパラメータもほとんど存在しないため扱いやすい。 As can be understood from these formulas, both the binary-based version and the frequency-based version are very simple methods, and since there are almost no hyperparameters, ANAGRAM is easy to handle.

つまり、ANAGRAM(frequency−based、binary−based)の問題点は、下記の3点である。1点目は、ANAGRAMでは、頻度に関する情報を落としてしまっているため、不正なパケットやランダム性の高いパケットの影響で正常でないパケットのN−gramを観測してしまった場合に、著しい精度の劣化に繋がる点である。2点目は、N≧4程度の大きなNに対してANAGRAMを用いる場合、ブルームフィルタの利用が不可欠となるため、ブルームフィルタのサイズ設計を行う必要がある点である。3点目は、ANAGRAM(frequency−based)のスコア算出の関数は経験的なものであり、確率論的な妥当性が無い点である。   In other words, the problems with NAGRAM (frequency-based, binary-based) are the following three points. The first point is that since the information on frequency is dropped in ANAGRAM, when the N-gram of an incorrect packet is observed due to the influence of an incorrect packet or a highly random packet, the accuracy is extremely high. It is a point that leads to deterioration. The second point is that when using an ANAGRAM for a large N such as N ≧ 4, the use of the Bloom filter is essential, so it is necessary to design the Bloom filter size. The third point is that the function of calculating NAGRAM (frequency-based) scores is empirical and there is no probabilistic relevance.

以上のことから、本発明者らは、鋭意検討の上、異常なパケットを精度よく特定することができる異常検知方法、学習方法、異常検知装置、および、学習装置を見出すに至った。   From the above, the inventors of the present invention have found out an abnormality detection method, a learning method, an abnormality detection device, and a learning device capable of identifying an abnormal packet with high accuracy, after intensive investigation.

本開示の一態様に係る異常検知方法は、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知する異常検知装置が実行する異常検知方法であって、前記異常検知装置は、プロセッサおよびメモリを備え、前記メモリは、複数の学習用パケットを用いた学習により生成された異常検知モデルを記憶しており、前記異常検知方法では、前記プロセッサが、前記複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させ、複数のパケットを取得し、取得した複数のパケットのそれぞれについて、当該パケットに対して算出したスコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが以上であることを出力する。   An abnormality detection method according to an aspect of the present disclosure detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. The abnormality detection method executes the abnormality detection device, the abnormality detection device includes a processor and a memory, and the memory stores an abnormality detection model generated by learning using a plurality of learning packets. In the abnormality detection method, the processor acquires the plurality of learning packets, and for each of the acquired plurality of learning packets, a data string constituting a payload included in the learning packet is A (A Is an integer of 1 or more) N (N is an integer of 2 or more) of a plurality of data units obtained by dividing in units of bits Extracting a first combination of N data units in combination order of consecutive ones in the payload, or in the arrangement order of B (B is an integer of 1 or more) skips of the combination; For each of all the first combinations extracted for the plurality of learning packets, a first number, which is the number of times the first combination appears in the plurality of learning packets, is counted, and all the extracted combinations are extracted For each of the first combinations, the smoothing process is performed based on the plurality of first numbers obtained by counting, and the probability is that the first combination appears in the plurality of learning packets. Calculating a plurality of first probabilities and storing the calculated first probabilities in the memory as the abnormality detection model; If a score is calculated for each of a plurality of acquired packets and the acquired packets exceed a predetermined threshold based on the abnormality detection model stored in the memory, the score is calculated. Output that the packet being sent is above.

これによれば、ペイロードにおけるデータ単位の並び情報を考慮して異常検知モデルを学習しているため、異常なパケットを精度よく特定することができる。   According to this, since the anomaly detection model is learned in consideration of the alignment information of the data unit in the payload, the anomaly packet can be identified with high accuracy.

また、学習において、スムージング処理を行うことで算出した第1の確率を用いているため、ノイズに対する頑健性を向上させることができる。   Further, in learning, since the first probability calculated by performing the smoothing process is used, the robustness to noise can be improved.

また、前記第1の確率の算出では、前記スムージング処理として、前記第1の数の全てに、正の数を加算することで複数の第2の数を算出し、抽出した前記全ての第1の組み合わせのそれぞれについて算出した前記複数の第2の数に基づいて、前記第1に確率を算出してもよい。   Further, in the calculation of the first probability, as the smoothing processing, a plurality of second numbers are calculated by adding a positive number to all of the first numbers, and all the extracted first numbers are calculated. The first probability may be calculated based on the plurality of second numbers calculated for each of the combinations of.

また、学習において、複数の第1の数の全てに正の数を加算することで算出した複数の第2の数に基づく第1の確率を用いているため、ノイズに対する頑健性を向上させることができる。   In addition, since the first probability based on the plurality of second numbers calculated by adding a positive number to all the plurality of first numbers is used in learning, the robustness to noise is improved. Can.

また、前記抽出では、N−gramを用いることで、前記N個のデータ単位の前記第1の組み合わせを抽出してもよい。   In the extraction, the first combination of the N data units may be extracted by using an N-gram.

また、前記Nは、2または3であってもよい。   Also, the N may be 2 or 3.

また、前記出力では、取得した前記複数のパケットのそれぞれについて、(1)当該パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第2の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第2の組み合わせを抽出し、(2)当該パケットから抽出した前記全ての第2の組み合わせのそれぞれについて、当該第2の組み合わせが、取得した当該パケットが有する前記ペイロードにおいて出現する回数である第3の数をカウントし、(3)当該パケットにおける前記全ての第2の組み合わせのそれぞれについてカウントすることで得られた複数の前記第3の数に基づいて、当該パケットにおいて当該第2の組み合わせが出現する確率である複数の第2の確率を算出し、(4)当該パケットに対して算出した前記複数の第2の確率の対数の総和を前記ペイロードのペイロード長で規定される規定値で除算することでスコアを算出し、(5)当該パケットに対して算出した前記スコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが異常であることを出力してもよい。   Further, in the output, for each of the plurality of acquired packets, (1) a plurality of pieces obtained by dividing a data string constituting a payload included in the packet in A (A is an integer of 1 or more) bits All possible second combinations of N (N is an integer of 2 or more) data units of the data units in the order in which the payloads are consecutive in the payload, or B (B is 1 Extract the second combination of N data units in the order of the above integer) piece-by-piece, and (2) for each of the second combinations extracted from the packet, the second combination , Counting a third number which is the number of times of appearance in the payload of the acquired packet, (3) all the second combinations in the packet Based on a plurality of the third numbers obtained by counting each of the set, a plurality of second probabilities that are probabilities of the occurrence of the second combination in the packet are calculated, (4) The score is calculated by dividing the sum of logarithms of the plurality of second probabilities calculated for the packet by the specified value defined by the payload length of the payload, and (5) the calculated for the packet When the score exceeds a predetermined threshold based on the abnormality detection model stored in the memory, it may be output that the packet for which the score is calculated is abnormal.

これによれば、ペイロードにおけるデータ単位の並び情報を考慮してスコアを算出しているため、異常なパケットを精度よく特定することができる。   According to this, since the score is calculated in consideration of the alignment information of the data unit in the payload, an abnormal packet can be identified with high accuracy.

また、前記メモリは、前記全ての第1の組み合わせのそれぞれにおける前記第1の数に基づく第4の数を前記異常検知モデルとして記憶しており、前記異常検知方法では、前記プロセッサが、さらに、カウントした前記第3の数を用いて、前記異常検知モデルに含まれる前記第4の数を更新してもよい。   Further, the memory stores, as the abnormality detection model, a fourth number based on the first number in each of the first combinations, and in the abnormality detection method, the processor further includes: The fourth number included in the abnormality detection model may be updated using the counted third number.

このため、異常検知モデルを追加学習すること、または、古いデータを削除した異常検知モデルに更新することができる。よって、異常なパケットを精度よく特定することができる。   Therefore, it is possible to additionally learn the anomaly detection model or to update the anomaly detection model from which old data has been deleted. Thus, abnormal packets can be identified with high accuracy.

また、前記異常検知方法では、前記プロセッサが、さらに、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットが有するヘッダに応じて当該学習用パケットを複数のモデルのいずれか1つに分類し、前記複数のモデルのそれぞれについて、(1)さらに、カウントした前記第1の数を用いて、前記複数の学習用パケットのうち当該モデルに分類された複数の学習用パケットにおいて、前記全ての第1の組み合わせのそれぞれが出現する回数である第5の数を算出し、(2)当該モデルに分類された前記複数の学習用パケットから抽出した前記全ての第1の組み合わせのそれぞれについて、算出した前記第5の数の全てに、正の数を加算することで前記複数の第6の数を算出し、(3)抽出した前記全ての第1の組み合わせのそれぞれについて、算出した前記複数の第6の数に基づいて、当該モデルに分類された前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出してもよい。   Further, in the abnormality detection method, the processor further sets, for each of the plurality of acquired learning packets, the learning packet to any one of a plurality of models according to a header of the learning packet. In each of a plurality of learning packets classified into the model among the plurality of learning packets using (1) and further counting the first number for each of the plurality of models. Calculating a fifth number, which is the number of times each of the first combinations appears, and (2) for each of the first combinations extracted from the plurality of learning packets classified into the model, The plurality of sixth numbers are calculated by adding a positive number to all of the calculated fifth numbers, and (3) all the first sets extracted For each set, based on the plurality of calculated sixth numbers, a plurality of first probabilities, which are probabilities of occurrence of the first combination in the plurality of learning packets classified into the model, are calculated You may

また、前記メモリは、前記複数のモデル毎に、前記所定の閾値を記憶しており、前記異常検知方法では、前記プロセッサが、さらに、取得した前記複数のパケットのそれぞれを、当該パケットが有するヘッダに応じて複数のモデルのいずれか1つに分類し、前記出力では、算出した前記スコアが、当該スコアが算出されたパケットが分類されたモデルに対応する前記所定の閾値を超えている場合、当該パケットが異常であることを出力してもよい。   In addition, the memory stores the predetermined threshold for each of the plurality of models, and in the abnormality detection method, the processor further includes a header having each of the plurality of acquired packets. Classified according to one of a plurality of models, and in the output, if the calculated score exceeds the predetermined threshold value corresponding to the model into which the packet for which the score is calculated is classified It may output that the packet is abnormal.

また、前記複数のモデルのそれぞれは、前記パケットの宛先IP、宛先ポート、送信元IP、及びプロトコルの少なくとも1つにより分類されるモデルであってもよい。   Further, each of the plurality of models may be a model classified by at least one of a destination IP, a destination port, a source IP, and a protocol of the packet.

また、前記メモリは、前記複数のモデル毎における、前記全ての第1の組み合わせのそれぞれにおける前記第5の数を前記異常検知モデルとして記憶しており、前記異常検知方法では、前記プロセッサが、さらに、カウントした前記第3の数を用いて、前記異常検知モデルに含まれる前記第5の数を更新してもよい。   Further, the memory stores the fifth number in each of the first combinations in each of the plurality of models as the abnormality detection model, and in the abnormality detection method, the processor further calculates The fifth number included in the abnormality detection model may be updated using the counted third number.

本開示の一態様に係る学習方法は、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知するための異常検知モデルを学習する学習装置が実行する学習方法であって、前記学習装置は、プロセッサおよびメモリを備え、前記学習方法では、前記プロセッサが、複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させる。   A learning method according to an aspect of the present disclosure detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. A learning device for learning an abnormality detection model, wherein the learning device includes a processor and a memory, and in the learning method, the processor acquires a plurality of learning packets and acquires the learning packets. For each of the plurality of learning packets, N of the plurality of data units obtained by dividing the data string constituting the payload included in the learning packet into A (A is an integer of 1 or more) bits N is an all possible first combination of two or more integers of data units, and the arrangement order in which the payloads are consecutive to one another, or B ( (A) extracts a first combination of N data units in the order of 1 or more integers, and the first combination of all the first combinations extracted for the plurality of learning packets A plurality of the first numbers obtained by counting the first number which is the number of times of the combination occurring in the plurality of learning packets and counting each of the extracted first combinations. And performing the smoothing process to calculate a plurality of first probabilities that are probabilities of occurrence of the first combination in the plurality of learning packets, and calculating the plurality of calculated first probabilities as the abnormality. It is stored in the memory as a detection model.

これによれば、ペイロードにおけるデータ単位の並び情報を考慮して異常検知モデルを学習しているため、異常なパケットを精度よく特定することができる。   According to this, since the anomaly detection model is learned in consideration of the alignment information of the data unit in the payload, the anomaly packet can be identified with high accuracy.

また、学習において、複数の第1の数の全てに正の数を加算することで算出した複数の第1の数に基づく第1の確率を用いているため、ノイズに対する頑健性を向上させることができる。   In addition, since the first probability based on the plurality of first numbers calculated by adding a positive number to all the plurality of first numbers is used in learning, the robustness to noise is improved. Can.

なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。   Note that these general or specific aspects may be realized by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer readable CD-ROM, a system, a method, an integrated circuit, a computer program Or it may be realized by any combination of recording media.

以下、本発明の一態様に係る異常検知方法、学習方法、異常検知装置、および、学習装置について、図面を参照しながら具体的に説明する。   Hereinafter, an abnormality detection method, a learning method, an abnormality detection device, and a learning device according to an aspect of the present invention will be specifically described with reference to the drawings.

なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。   Each embodiment described below shows one specific example of the present invention. Numerical values, shapes, materials, components, arrangement positions and connection forms of components, steps, order of steps, and the like shown in the following embodiments are merely examples, and the present invention is not limited thereto. Further, among the components in the following embodiments, components not described in the independent claim indicating the highest concept are described as arbitrary components.

(実施の形態1)
[2−1 異常検知システムの構成]
まず、本実施の形態における異常検知システムの概略構成について説明する。
Embodiment 1
[2-1 Configuration of anomaly detection system]
First, a schematic configuration of the abnormality detection system according to the present embodiment will be described.

図1は、実施の形態に係る異常検知システムの概略図である。   FIG. 1 is a schematic view of an abnormality detection system according to the embodiment.

具体的には、図1において、異常検知システム1は、異常検知装置100、パケット収集装置200、および、外部のネットワーク500に通信接続されている監視対象300を備える。異常検知システム1では、異常検知装置100が監視対象300内での通信、または、監視対象とネットワーク500との間での通信に異常があるか否かを検知する。   Specifically, in FIG. 1, the abnormality detection system 1 includes an abnormality detection apparatus 100, a packet collection apparatus 200, and a monitoring target 300 communicably connected to an external network 500. In the abnormality detection system 1, the abnormality detection apparatus 100 detects whether there is an abnormality in the communication within the monitoring target 300 or the communication between the monitoring target and the network 500.

監視対象300は、異常検知の対象となるシステムである。監視対象300は、例えば、化学プラント、制御システム、車載ネットワークシステムなどである。監視対象300は、ハブ311、312、321、322と、SCADA(Supervisory Control And Data Acquisition)313と、PLC(Programmable Logic Controller)314と、PC(Personal Computer)315、323、324と、ルータ400とを備える制御システムである。   The monitoring target 300 is a system that is a target of abnormality detection. The monitoring target 300 is, for example, a chemical plant, a control system, an in-vehicle network system, or the like. The monitoring target 300 includes hubs 311, 312, 321 and 322, supervisory control and data acquisition (SCADA) 313, programmable logic controller (PLC) 314, personal computer (PC) 315, 323 and 324, and router 400. Control system comprising

ルータ400は、監視対象300と外部のネットワーク500との間において、データの送受信を中継する通信機器である。ルータ400は、受信したデータを解析し、解析した結果に基づいてデータの転送経路を選択するなどのデータの転送制御を行う。   The router 400 is a communication device that relays transmission and reception of data between the monitoring target 300 and the external network 500. The router 400 analyzes the received data and performs data transfer control such as selecting a data transfer path based on the analyzed result.

ハブ311、321は、例えば、スイッチングハブである。ハブ311は、ルータ400、ハブ312、SCADA313、ハブ321、および、パケット収集装置200と通信接続される。ハブ321は、ハブ311、ハブ322、および、パケット収集装置200と通信接続される。ハブ311、321は、受信したデータを接続された機器のうち、受信したデータに含まれる宛先情報に基づく機器に転送する。ハブ311、321は、例えば、受信したデータをコピーし、コピーしたデータを出力するミラーポートを有する。ハブ311、321は、ミラーポートにおいて、パケット収集装置200と接続されている。監視対象300と外部のネットワーク500との間で送受信される複数のパケットは、ハブ311、321のミラーポート経由で抽出され、パケット収集装置200に送信される。   The hubs 311 and 321 are, for example, switching hubs. The hub 311 is communicably connected to the router 400, the hub 312, the SCADA 313, the hub 321, and the packet collection device 200. The hub 321 is communicably connected to the hub 311, the hub 322, and the packet collection device 200. The hubs 311 and 321 transfer the received data to the connected device based on the destination information included in the received data. The hubs 311 and 321 have, for example, a mirror port that copies received data and outputs the copied data. The hubs 311 and 321 are connected to the packet collection device 200 at the mirror port. A plurality of packets transmitted and received between the monitoring target 300 and the external network 500 are extracted via the mirror ports of the hubs 311 and 321 and transmitted to the packet collection device 200.

ハブ312、322は、例えば、スイッチングハブである。ハブ312は、ハブ311、PLC314、および、PC315と通信接続される。ハブ322は、ハブ321およびPC323、324と通信接続される。ハブ312、322は、ハブ311、321と同様に、受信したデータを接続された機器のうち、受信したデータに含まれる宛先情報に基づく機器に転送する。   The hubs 312 and 322 are, for example, switching hubs. The hub 312 is communicably connected to the hub 311, the PLC 314, and the PC 315. The hub 322 is communicably connected to the hub 321 and the PCs 323 and 324. Similar to the hubs 311 and 321, the hubs 312 and 322 transfer the received data to the connected devices based on the destination information included in the received data.

SCADA313は、監視対象300である制御システムのシステム監視、プロセス制御などを行うコンピュータである。   The SCADA 313 is a computer that performs system monitoring, process control, and the like of a control system to be monitored 300.

PLC314は、各種機械を制御するための制御装置である。   The PLC 314 is a control device for controlling various machines.

PC315は、汎用のコンピュータである。   The PC 315 is a general-purpose computer.

パケット収集装置200は、監視対象300のハブ311、321から送信された複数のパケットを受信し、受信した複数のパケットを記憶する装置である。パケット収集装置200は、例えば、サーバである。パケット収集装置200は、例えば1週間などの所定期間にわたって、監視対象300から複数のパケットを受信し、所定期間分の複数のパケットを記憶する。パケット収集装置200は、記憶した複数のパケットを異常検知装置100に送信する。パケット収集装置200は、また、異常検知装置100が異常検知モデルを生成するための複数の学習用パケットを記憶していてもよい。複数の学習用パケットは、異常を有していない、正常なパケットにより構成される。   The packet collection device 200 is a device that receives a plurality of packets transmitted from the hubs 311 and 321 of the monitoring target 300 and stores the plurality of received packets. The packet collection device 200 is, for example, a server. The packet collection device 200 receives a plurality of packets from the monitoring target 300 over a predetermined period such as one week, for example, and stores a plurality of packets for a predetermined period. The packet collection device 200 transmits the stored plurality of packets to the abnormality detection device 100. The packet collection device 200 may also store a plurality of learning packets for the abnormality detection device 100 to generate an abnormality detection model. The plurality of learning packets are composed of normal packets that do not have an abnormality.

[2−2 異常検知装置の構成]
次に、異常検知装置100のハードウェア構成について図2を用いて説明する。
[2-2 Configuration of Abnormality Detection Device]
Next, the hardware configuration of the abnormality detection apparatus 100 will be described with reference to FIG.

図2は、実施の形態に係る異常検知装置のハードウェア構成の一例を示すブロック図である。   FIG. 2 is a block diagram showing an example of the hardware configuration of the abnormality detection apparatus according to the embodiment.

図2に示すように、異常検知装置100は、ハードウェア構成として、CPU(Central Processing Unit)101と、メインメモリ102と、ストレージ103と、通信IF(Interface)104と、入力IF(Interface)105と、ディスプレイ106とを備える。   As shown in FIG. 2, the abnormality detection apparatus 100 includes a CPU (Central Processing Unit) 101, a main memory 102, a storage 103, a communication IF (Interface) 104, and an input IF (Interface) 105 as a hardware configuration. And a display 106.

CPU101は、ストレージ103等に記憶された制御プログラムを実行するプロセッサの一例である。   The CPU 101 is an example of a processor that executes a control program stored in the storage 103 or the like.

メインメモリ102は、CPU101が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域、つまりメモリの一例である。   The main memory 102 is an example of a volatile storage area used as a work area used when the CPU 101 executes a control program, that is, an example of a memory.

ストレージ103は、制御プログラム、コンテンツなどを保持する不揮発性の記憶領域、つまり、メモリの一例である。   The storage 103 is an example of a non-volatile storage area holding a control program, content and the like, that is, a memory.

通信IF104は、通信ネットワークを介してパケット収集装置200と通信する通信インタフェースである。通信IF104は、例えば、有線LANインタフェースである。なお、通信IF104は、無線LANインタフェースであってもよい。また、通信IF104は、LANインタフェースに限らずに、パケット収集装置200との間で通信接続を確立できる通信インタフェースであれば、どのような通信インタフェースであってもよい。   The communication IF 104 is a communication interface that communicates with the packet collection device 200 via a communication network. The communication IF 104 is, for example, a wired LAN interface. The communication IF 104 may be a wireless LAN interface. The communication IF 104 is not limited to the LAN interface, and may be any communication interface as long as it can establish a communication connection with the packet collection device 200.

入力IF105は、例えば、テンキー、キーボード、マウスなどの入力装置である。   The input IF 105 is an input device such as, for example, a ten key, a keyboard, or a mouse.

ディスプレイ106は、CPU101での処理結果を表示する表示装置である。ディスプレイ106は、例えば、液晶ディスプレイ、有機ELディスプレイである。   The display 106 is a display device that displays the processing result of the CPU 101. The display 106 is, for example, a liquid crystal display or an organic EL display.

[2−3 異常検知装置の機能構成]
次に、異常検知装置100の機能構成について、図3を用いて説明する。なお、異常検知装置100は、異常を検知するための異常検知モデルの学習処理も行う学習装置の一例でもある。
[2-3 Functional configuration of abnormality detection device]
Next, the functional configuration of the abnormality detection apparatus 100 will be described with reference to FIG. The abnormality detection apparatus 100 is also an example of a learning apparatus that also performs learning processing of an abnormality detection model for detecting an abnormality.

図3は、本実施の形態における異常検知装置の機能構成の一例を示すブロック図である。   FIG. 3 is a block diagram showing an example of a functional configuration of the abnormality detection device according to the present embodiment.

パケット収集装置200に蓄積されている複数のパケットからなるデータ210は、学習用データ211と検査用データ212とを含む。   Data 210 composed of a plurality of packets accumulated in the packet collection device 200 includes learning data 211 and inspection data 212.

学習用データ211は、取得されたデータ210のうちで、機械学習による異常検知モデルを生成するためのデータである。検査用データ212は、取得されたデータ210のうちで、生成された異常検知モデルを用いて監視対象300から得られたデータ210が異常か否かを判断する異常診断の対象となるデータである。なお、学習用データ211には、正常なデータだけでなく、異常なデータも含む取得された複数のパケットを用いることができる。例えば、学習用データ211は、データ210の始めの所定期間で取得されたデータであり、検査用データ212は、学習用データ211を取得した所定期間より後の期間において取得されたデータとしてもよい。また、検査用データ212は、異常検知モデルを更新するための学習用のデータとして用いられてもよい。   The learning data 211 is data for generating an abnormality detection model by machine learning among the acquired data 210. The inspection data 212 is data to be subjected to abnormality diagnosis to determine whether the data 210 obtained from the monitoring target 300 is abnormal using the generated abnormality detection model among the acquired data 210. . In addition, as the data for learning 211, a plurality of acquired packets including not only normal data but also abnormal data can be used. For example, the learning data 211 may be data acquired in a predetermined period at the beginning of the data 210, and the inspection data 212 may be data acquired in a period after the predetermined period in which the learning data 211 is acquired. . Also, the inspection data 212 may be used as learning data for updating the abnormality detection model.

なお、複数のパケットは、例えば、図4Bに示すような、TCPプロトコルのパケットである。図4Bは、TCPプロトコルのパケット構造の一例を示す図である。TCPプロトコルの構造は、RFC793により規定されている。   The plurality of packets are, for example, packets of the TCP protocol as shown in FIG. 4B. FIG. 4B is a diagram showing an example of a packet structure of the TCP protocol. The structure of the TCP protocol is defined by RFC 793.

異常検知装置100は、取得部110と、検知モデル学習部120と、異常検知モデルDB(Database)130と、入力受付部140と、アラート閾値算出部150と、検知部160と、提示部170とを備える。   The abnormality detection apparatus 100 includes an acquisition unit 110, a detection model learning unit 120, an abnormality detection model DB (Database) 130, an input reception unit 140, an alert threshold calculation unit 150, a detection unit 160, and a presentation unit 170. Equipped with

取得部110は、パケット収集装置200から学習用データ211としての複数のパケットである複数の学習用パケットを取得する。取得部110は、パケット収集装置200から検査用データ212としての複数のパケットを取得してもよい。取得部110は、例えば、CPU101、メインメモリ102、ストレージ103、および、通信IF104などにより実現される。   The acquisition unit 110 acquires a plurality of learning packets, which are a plurality of packets as the learning data 211, from the packet collection device 200. The acquisition unit 110 may acquire a plurality of packets as the inspection data 212 from the packet collection device 200. The acquisition unit 110 is realized by, for example, the CPU 101, the main memory 102, the storage 103, and the communication IF 104.

検知モデル学習部120は、取得部110により取得された複数の学習用パケットを用いて学習処理を行うことで、異常検知モデルを生成する。具体的には、検知モデル学習部120は、取得部110により取得され複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての組み合わせであって、当該ペイロードにおける互いに連続している並び順でのN個のデータ単位の組み合わせを抽出する。ここで、抽出される組み合わせは、第1の組み合わせの一例である。ここで、Aビット単位は、例えば、8ビット単位、つまり、1バイト単位である。なお、Aは、8に限らずに、8以外の他の数値であってもよい。検知モデル学習部120は、N−gramを用いることで、N個のデータ単位の組み合わせを抽出する。ここで、Nは、例えば、2または3である。つまり、検知モデル学習部120は、2−gramまたは3−gramを用いることで、2個のデータ単位の組み合わせ、または、3個のデータ単位の組み合わせを抽出する。なお、検知モデル学習部120は、N−gramのように互いに連続している並び順でのN個のデータ単位の組み合わせに限らずに、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の組み合わせを抽出してもよい。   The detection model learning unit 120 generates an abnormality detection model by performing learning processing using the plurality of learning packets acquired by the acquisition unit 110. Specifically, for each of the plurality of learning packets acquired by the acquiring unit 110, the detection model learning unit 120 sets a data string constituting the payload included in the learning packet to A (A is an integer of 1 or more). All possible combinations of N (N is an integer of 2 or more) data units out of a plurality of data units obtained by dividing into bit units, in the order in which they are consecutive in the payload Extract combinations of N data units of Here, the extracted combination is an example of a first combination. Here, the A-bit unit is, for example, an 8-bit unit, that is, a 1-byte unit. Note that A is not limited to eight, and may be another numerical value other than eight. The detection model learning unit 120 extracts a combination of N data units by using the N-gram. Here, N is, for example, 2 or 3. That is, the detection model learning unit 120 extracts a combination of two data units or a combination of three data units by using 2-gram or 3-gram. In addition, the detection model learning unit 120 is not limited to the combination of N data units in a sequential order such as N-gram, but the arrangement order of B (B is an integer of 1 or more) skips A combination of N data units in may be extracted.

次に、検知モデル学習部120は、取得部110により取得された複数の学習用パケットの複数のペイロードを構成するデータ列から抽出した全ての組み合わせのそれぞれについて、当該組み合わせが当該学習用パケットにおいて出現する回数である第1の数をカウントする。検知モデル学習部120は、抽出した全ての組み合わせのそれぞれについて、カウントすることで得られた複数の第1の数の全てに、正の数を加算することで複数の第2の数を算出する。検知モデル学習部120は、抽出した全ての組み合わせのそれぞれについて算出した複数の第2の数に基づいて、複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出する。   Next, the detection model learning unit 120 causes the combination to appear in the learning packet for each of all the combinations extracted from the data string constituting the plurality of payloads of the plurality of learning packets acquired by the acquiring unit 110. Count the first number which is the number of times The detection model learning unit 120 calculates a plurality of second numbers by adding a positive number to all of the plurality of first numbers obtained by counting for each of all the extracted combinations. . The detection model learning unit 120 determines a plurality of first probabilities that are probabilities that the first combination appears in a plurality of learning packets, based on the plurality of second numbers calculated for each of all the extracted combinations. Calculate

なお、検知モデル学習部120は、複数の第1の数の全てに、正の数を加算することで複数の第2の数を算出し、複数の第2の数に基づいて、複数の第1の確率を算出するとしたが、これに限らない。検知モデル学習部120は、例えば、抽出した全ての組み合わせのそれぞれについて算出した複数の第1の数に基づいて、複数の学習用パケットにおいて当該組み合わせが出現する複数の確率を算出し、算出した複数の確率に正の数を加算することで複数の第1の確率を算出してもよい。   Note that the detection model learning unit 120 calculates a plurality of second numbers by adding a positive number to all of the plurality of first numbers, and generates a plurality of second numbers based on the plurality of second numbers. Although the probability of 1 is calculated, it is not limited thereto. The detection model learning unit 120 calculates a plurality of probabilities in which the combination appears in the plurality of learning packets based on the plurality of first numbers calculated for each of all the extracted combinations, for example. The plurality of first probabilities may be calculated by adding a positive number to the probability of.

検知モデル学習部120は、取得部110により取得された複数の学習用パケットのそれぞれについて、さらに、当該学習用パケットが有するヘッダに応じて当該学習用パケットを複数のモデルのいずれか1つに分類してもよい。検知モデル学習部120は、複数の異常検知モデルを保持または学習しても良い。この場合、検知モデル学習部120は、この複数の異常検知モデルを、例えばパケットのヘッダに含まれる情報である、宛先IP、宛先ポート、送信元IP、及びプロトコルの少なくとも1つの値に応じて切り替えて学習または検査の処理を行う。   The detection model learning unit 120 further classifies the learning packet into any one of a plurality of models according to the header of the learning packet for each of the plurality of learning packets acquired by the acquiring unit 110. You may The detection model learning unit 120 may hold or learn a plurality of abnormality detection models. In this case, the detection model learning unit 120 switches the plurality of abnormality detection models according to at least one value of the destination IP, the destination port, the transmission source IP, and the protocol, which are information included in the header of the packet, for example. Process the learning or examination.

複数の学習用パケットを複数のモデルに分類する場合、検知モデル学習部120は、複数のモデルのそれぞれについて、カウントした第1の数を用いて、複数の学習用パケットのうち当該モデルに分類された複数の学習用パケットにおいて、全ての組み合わせのそれぞれが出現する回数である第5の数を算出してもよい。そして、検知モデル学習部120は、複数のモデルのそれぞれについて、当該モデルに分類された複数の学習用パケットから抽出した全ての組み合わせのそれぞれについて、算出した第5の数の全てに、正の数を加算することで複数の第6の数を算出する。その後、検知モデル学習部120は、複数のモデルのそれぞれについて抽出した全ての組み合わせのそれぞれについて、算出した複数の第6の数に基づいて、当該モデルに分類された複数の学習用パケットにおいて当該組み合わせが出現する確率を第1の確率として算出してもよい。   When classifying a plurality of learning packets into a plurality of models, the detection model learning unit 120 classifies the plurality of learning packets into the model using the first number counted for each of the plurality of models. In the plurality of learning packets, a fifth number may be calculated, which is the number of times each of all the combinations appear. Then, for each of the plurality of models, the detection model learning unit 120 generates a positive number for all of the calculated fifth numbers for each of all the combinations extracted from the plurality of learning packets classified into the model. The plurality of sixth numbers are calculated by adding. After that, the detection model learning unit 120 performs the combination in the plurality of learning packets classified into the model based on the calculated plurality of sixth numbers for each of all the combinations extracted for each of the plurality of models. The probability that C appears may be calculated as the first probability.

検知モデル学習部120は、例えば、CPU101、メインメモリ102、ストレージ103などにより実現される。   The detection model learning unit 120 is realized by, for example, the CPU 101, the main memory 102, the storage 103, and the like.

例えば、検知モデル学習部120は、次のような処理を行うことで学習を実行する。   For example, the detection model learning unit 120 performs learning by performing the following process.

異常検知方法における学習方法では、パケットの宛先IP、宛先ポートごとにモデルを分割することになるため、学習フェーズにおいては、ユニークな(宛先IP、宛先ポート)ペアの数だけモデル

Figure 2019110513
を初期化しておく。各モデルは、ペイロードの2−gramを記録する
Figure 2019110513
を保持しており、その初期値は65536次元の零ベクトルである。その後、学習対象となる全パケットに対し、学習対象のパケットの(宛先IP、宛先ポート)のペアが(ip,Port)の場合、各パケットを、下記の方法で2−gramのベクトル(∈N65536)に変換し、
Figure 2019110513
に加算する。各バケットの2−gramベクトルへの変換法は下記の通りである:パケットのペイロードのバイト列が{X,X,X,...,X}であったとする(Lはペイロード長)。ここで各X(k=1,...,L)∈{0,...,255}である。2−gramを取得する場合、上記バイト列から次の2−gramの列を得る。{X,X,...,XL−1}。この2−gramの列から、次のルールで2−gramベクトルを生成する:
1.空のベクトルy(∈N65536)を準備する。
2.各2−gram Xi+1(i=1,...,L一1)に対して、t=256*X+Xi+1を計算する。(t∈{0,...,65535})
3.全てのi=1,...,L一1に対してy[t]+1を実行する(ここでy[t]はベクトルyのt番目の要素を表す)。
4.パケットの2−gramベクトルへの変換結果yを得る。 In the learning method in the anomaly detection method, since the model is divided for each destination IP and destination port of the packet, in the learning phase, only the number of unique (destination IP, destination port) pairs is used.
Figure 2019110513
Initialize it. Each model records a 2-gram of the payload
Figure 2019110513
And its initial value is a 65536-dimensional zero vector. After that, if the pair of (destination IP, destination port) of the packet to be learned is (ip i , Port j ) for all packets to be learned, each packet is a 2-gram vector ( Convert to ∈ N 65 536 ),
Figure 2019110513
Add to The method of converting each bucket to a 2-gram vector is as follows: the packet payload byte sequence is {X 1 , X 2 , X 3 ,. . . , X L } (where L is the payload length). Where each X k (k = 1,..., L) ∈ {0,. . . , 255}. When obtaining a 2-gram, the next 2-gram string is obtained from the byte string. {X 1 X 2 , X 2 X 3 ,. . . , X L-1 X L }. From this 2-gram column, generate a 2-gram vector according to the following rules:
1. Prepare an empty vector y (∈ N 65536 ).
2. For each 2-gram X i X i + 1 (i = 1,..., L 1 1), calculate t i = 256 * X i + X i +1 . (T i ∈ {0, ..., 65535})
3. All i = 1,. . . , L 1 1 execute y [t i ] +1 (where y [t i ] represents the t i th element of the vector y).
4. The conversion result y of the packet into a 2-gram vector is obtained.

全パケットの学習が完了した段階で、各モデル

Figure 2019110513
は、どの2−gramが何回出現したかを表すベクトル
Figure 2019110513
を保持している。この2−gramが何回出現したかを表すベクトルは、全ての組み合わせのそれぞれについて、カウントされることにより得られた第1の数の一例である。このベクトルを用いて、各2−gramの出現確率を算出する。最も単純に考えると、2−gramのインデックスをk∈{0,1,...,65535}としたとき、2−gram gが出現する確率p(g)は、学習対象バケットに現れた2−gram gの出現回数をxi,j[k]としたとき、下記の式8で表すことができる。式8で表される出現確率は、複数の第1の確率の一例である。 Once all packets have been learned, each model
Figure 2019110513
Is a vector representing which 2-gram has appeared and how many times
Figure 2019110513
Hold A vector indicating how many times this 2-gram has appeared is an example of the first number obtained by being counted for each of all the combinations. The occurrence probability of each 2-gram is calculated using this vector. In the simplest way, the indices of 2-grams are k∈ {0, 1,. . . , When a 65535}, the probability p (g k) that 2-gram g k appears, when the number of occurrences of 2-gram g k appearing in the learning target bucket was x i, j [k], the following Equation 8 of The appearance probability represented by Equation 8 is an example of a plurality of first probabilities.

Figure 2019110513
Figure 2019110513

しかし、この式で確率を表現した場合、学習対象パケットに1度も現れなかった2−gramの確率を0とすることになり、後述するスコアリング手法を用いるとスコアが発散してしまう。この事象を回避するために、既にいくつかの方法が提案されているが、本実施の形態ではスムージング処理の1つであるLaplace smoothingと呼ばれる手法を採用する。Laplace smoothingとは、カテゴリデータをスムージングする手法の1種で、N回の試行の多項分布から得られたデータx=(x,...,x)があるとき、この多項分布のパラメータθ=(θ,...,θ)を下記の式9により推定する手法のことである。 However, when the probability is expressed by this expression, the probability of 2-gram that has never appeared in the learning target packet is set to 0, and the score is diverged when the scoring method described later is used. Several methods have been proposed to avoid this phenomenon, but in this embodiment, a method called Laplace smoothing, which is one of the smoothing processes, is employed. Laplace smoothing is one of the methods for smoothing categorical data, and when there are data x = (x 1 , ..., x d ) obtained from multinomial distribution of N trials, parameters of this multinomial distribution This is a method of estimating θ = (θ 1 ,..., θ d ) according to the following equation 9.

Figure 2019110513
Figure 2019110513

すなわち全てのカテゴリに対し、出現回数xをα回分水増しして式10を適用することに相当する。通常αは1,0.1,0.01などの値を選ぶ。この方法を提案手法に適用すると、下記の式を得る。ここで、αは、加算する正の数の一例である。 That is, this corresponds to applying Equation 10 to the number of occurrences x i by α for each category. Usually, α is selected to be a value such as 1, 0.1 or 0.01. When this method is applied to the proposed method, the following equation is obtained. Here, α is an example of a positive number to be added.

Figure 2019110513
Figure 2019110513

この式により得られたp(g)を2−gram gの出現確率とみなす。つまり、式10により得られた出現確率は、第1の確率の一例である。 P (g k ) obtained by this equation is regarded as the appearance probability of 2-gram g k . That is, the appearance probability obtained by Equation 10 is an example of the first probability.

なお、スムージング処理としては、Laplace smoothingに限らずに、Kneser−Ney smoothingなど他のスムージング処理を行ってもよい。   The smoothing process is not limited to Laplace smoothing, and other smoothing processes such as Kneser-Ney smoothing may be performed.

異常検知モデルDB130は、検知モデル学習部120により生成された、つまり算出された複数の第1の確率を異常検知モデルとして記憶する。異常検知モデルDB130は、全ての第1の組み合わせのそれぞれにおける第1の数に基づく第4の数を異常検知モデルとして記憶していてもよい。なお、異常検知モデルにおいて記憶される第1の数に基づく第4の数は、第1の数であってもよいし、第2の数であってもよいし、第5の数であってもよいし、第6の数であってもよい。   The abnormality detection model DB 130 stores the plurality of first probabilities generated by the detection model learning unit 120, that is, calculated, as an abnormality detection model. The abnormality detection model DB 130 may store, as an abnormality detection model, a fourth number based on the first number in each of all the first combinations. Note that the fourth number based on the first number stored in the abnormality detection model may be the first number, the second number, or the fifth number. It may be a sixth number.

図5〜図8は、異常検知モデルDBが保持する異常検知モデルの例を示す図である。   5-8 is a figure which shows the example of the abnormality detection model which abnormality detection model DB hold | maintains.

図5に示す異常検知モデル131は、モデルID、宛先IP、宛先ポート、N−gram取得対象データ、N−gram出現回数、および、N−gram出現確率の各項目のデータにより構成される。モデルIDは、複数のモデルのそれぞれを識別するための、当該モデルに一意に付与された識別子である。宛先IPは、当該モデルに対応付けられたパケットの宛先IPを示す情報である。宛先ポートは、当該モデルに対応付けられたパケットの宛先ポートを示す情報である。N−gram取得対象データは、当該モデルに対応付けられたN−gram取得の対象となるデータを示す情報であり、例えば各プロトコルのパケットのデータ部を示すペイロードである。N−gram出現回数n〜nは、当該モデルに対応付けられたパケットのN−gramの出現回数、つまり、第6の数の一例である。N−gram出現回数n〜nは、全てのN−gramのそれぞれの出現回数で表されるため、全てのN−gramの数に対応する次元のベクトルデータである。つまり、nは、例えば、[00:51回,01:12回,...,FF:31回]で表される。よって、n(kは、1〜6の整数)は、例えば、[nk1、nk2、・・・、nkL]で表される。N−gram出現確率Pr〜Prは、当該モデルに対応付けられたパケットにおけるN−gramの出現確率、つまり、第1の確率の一例である。N−gram出現確率Pr〜Prも、N−gram出現回数n〜nと同様に、全てのN−gramの数に対応する次元のベクトルデータである。つまり、Prは、例えば、[00:0.1,01:0.02,...,FF:0.06]で表される。よって、Pr(kは、1〜6の整数)は、例えば、{Prk1、Prk2、・・・、PrkL}で表される。このように、異常検知モデル131では、宛先IPおよび宛先ポートの組み合わせに応じて複数のモデルが分類される。 The abnormality detection model 131 illustrated in FIG. 5 includes data of each item of model ID, destination IP, destination port, N-gram acquisition target data, N-gram appearance frequency, and N-gram appearance probability. The model ID is an identifier uniquely assigned to the model for identifying each of the plurality of models. The destination IP is information indicating the destination IP of the packet associated with the model. The destination port is information indicating the destination port of the packet associated with the model. The N-gram acquisition target data is information indicating data to be an N-gram acquisition target associated with the model, and is, for example, a payload indicating a data section of a packet of each protocol. The N-gram appearance frequency n 1 to n 6 is an example of the N-gram appearance frequency of the packet associated with the model, that is, the sixth number. The N-gram appearance frequency n 1 to n 6 is vector data of a dimension corresponding to the number of all N-grams because it is represented by the number of appearances of all N-grams. That is, n 1 is, for example, [00: 51 times, 01: 12 times,. . . , FF: 31 times]. Therefore, n k (k is an integer of 1 to 6) is represented by, for example, [n k1 , n k2 ,..., N kL ]. N-gram probability Pr 1 to PR 6 is the probability of occurrence of N-gram in the packet associated with the model, that is, an example of the first probability. The N-gram appearance probabilities Pr 1 to Pr 6 are also vector data of dimensions corresponding to the number of all N-grams, similarly to the N-gram appearance times n 1 to n 6 . That is, Pr 1 is, for example, [00: 0.1, 01: 0.02,. . . , FF: 0.06]. Therefore, Pr k (k is an integer of 1 to 6) is represented by, for example, {Pr k1 , Pr k2 ,..., Pr kL }. Thus, in the anomaly detection model 131, a plurality of models are classified according to the combination of the destination IP and the destination port.

つまり、検知モデル学習部120は、宛先のIP、宛先ポートごとに学習し、学習した結果を異常検知モデル131として生成する。宛先IP、宛先ポートごとに異常検知モデルを学習する理由は、宛先IP、宛先ポートが同一のバケットには、似た役割を持つパケットが多いからである。   That is, the detection model learning unit 120 learns for each destination IP and destination port, and generates the learning result as the abnormality detection model 131. The reason for learning the anomaly detection model for each destination IP and destination port is that there are many packets having similar roles in buckets having the same destination IP and destination port.

図6に示す異常検知モデル132は、図5で示した異常検知モデル131に、さらに、Sorce IPの項目を加えたモデルである。Sorce IPは、当該モデルに対応付けられたパケットの送信元IPを示す情報である。このように、異常検知モデル132では、宛先IPおよび宛先ポートに加えて送信元IPの組み合わせに応じて複数のモデルが分類される。   The abnormality detection model 132 shown in FIG. 6 is a model obtained by further adding an item of Sorce IP to the abnormality detection model 131 shown in FIG. 5. Sorce IP is information indicating a transmission source IP of a packet associated with the model. Thus, in the anomaly detection model 132, a plurality of models are classified according to the combination of the destination IP and the destination IP in addition to the source IP.

図7に示す異常検知モデル133は、図6で示した異常検知モデル132の宛先ポートの項目を対象プロトコルの項目で置き換えたモデルである。対象プロトコルは、当該モデルに対応付けられたパケットのプロトコルを示す情報である。このように、異常検知モデル133では、宛先IP、送信元IPおよび対象プロトコルの組み合わせに応じて複数のモデルが分類される。   The abnormality detection model 133 shown in FIG. 7 is a model in which the item of the destination port of the abnormality detection model 132 shown in FIG. 6 is replaced with the item of the target protocol. The target protocol is information indicating the protocol of the packet associated with the model. As described above, in the abnormality detection model 133, a plurality of models are classified according to the combination of the destination IP, the transmission source IP, and the target protocol.

図8に示す異常検知モデル134は、図5で示した異常検知モデル131に、さらに、アラート閾値の項目を加えたモデルである。アラート閾値は、後述するが、例えばユーザの入力に応じて決定される閾値であって、パケットの異常を検知するための閾値である。アラート閾値は、パケットにおいて算出されるスコアとの比較対象となる閾値である。このように、異常検知モデル134は、モデルの分類に加えて、パケットの異常を検知するためのアラート閾値が対応付けられていてもよい。   The abnormality detection model 134 shown in FIG. 8 is a model in which an alert threshold item is further added to the abnormality detection model 131 shown in FIG. 5. The alert threshold, which will be described later, is a threshold determined according to, for example, the user's input, and is a threshold for detecting a packet abnormality. The alert threshold is a threshold to be compared with the score calculated in the packet. Thus, the anomaly detection model 134 may be associated with an alert threshold for detecting an anomaly of a packet in addition to the classification of the model.

なお、図8に示す異常検知モデル134のように、モデルの分類にアラート閾値は必ずしも対応付けられていなくてもよい。   As in the abnormality detection model 134 shown in FIG. 8, the alert threshold may not necessarily be associated with the classification of the model.

なお、図5〜図8に示す異常検知モデル131〜134では、モデルの数は6つであるが、6つに限らずに、2以上の6以外の数であってもよい。   In the abnormality detection models 131 to 134 shown in FIGS. 5 to 8, the number of models is six, but the number is not limited to six, and may be a number other than two or more than six.

図9は、宛先ポートとアラート閾値とが対応付けられた対応情報を示す図である。   FIG. 9 is a diagram showing correspondence information in which a destination port and an alert threshold are associated.

図9に示す対応情報135に示すように、アラート閾値は、モデル毎に対応付けられていなくてもよく、宛先ポートごとに対応付けられていてもよい。つまり、異常検知モデル131〜133のいずれか1つと、対応情報135とに応じて、各モデルにアラート閾値が対応付けられてもよい。   As shown in the correspondence information 135 shown in FIG. 9, the alert threshold may not be associated with each model, but may be associated with each destination port. That is, according to any one of the abnormality detection models 131 to 133 and the correspondence information 135, an alert threshold may be associated with each model.

異常検知モデルDB130は、異常検知モデル131〜133のいずれか1つと、対応情報135とをセットで保持していてもよいし、異常検知モデル134のみを保持していてもよい。   The abnormality detection model DB 130 may hold any one of the abnormality detection models 131 to 133 and the correspondence information 135 as a set, or may hold only the abnormality detection model 134.

異常検知モデルDB130は、例えば、ストレージ103などにより実現される。   The abnormality detection model DB 130 is realized by, for example, the storage 103 or the like.

入力受付部140は、ユーザからの入力を受け付ける。入力受付部140は、ユーザから、例えば、監視対象300から得られる複数のパケットのうち、監視対象のIPの範囲、および、ポートの範囲の少なくとも一方と、N−gramを抽出する範囲とを示す入力を受け付ける。ここでN−gramを抽出する範囲とは、例えば、異常検知モデル131〜134においてN−gram取得対象データで示されるパケットの検査の対象とするデータ部のことであり、例えば、各プロトコルに対応するペイロードである。また、入力受付部140は、アラートを発生するためのアラート発生率に関するパラメータの入力を受け付ける。アラート発生率とは、例えば、a個のパケットに1つ、1日にb回など全ての組み合わせが発生する発生率について、当該発生率に基づく通常状態からの乖離が大きいと判断するため、つまり、当該パケットに異常が含まれると判断するための閾値である。ここで、入力受付部140は、上記パラメータを、複数のモデルにそれぞれ対応する複数のパラメータを受け付ける。なお、入力受付部140は、上記パラメータを、複数のモデルに共通する1つのパラメータとして受け付けてもよい。入力受付部140は、アラート閾値を示す入力を受け付けてもよい。アラート閾値は、例えば、後述するスコアについて、当該スコアに基づく通常状態からの乖離が大きいと判断するため、つまり、当該パケットに異常が含まれると判断するための全ての組み合わせの出現確率を基準として決定される閾値である。   The input receiving unit 140 receives an input from the user. The input reception unit 140 indicates, from the user, at least one of the range of the IP to be monitored and the range of the port among a plurality of packets obtained from the monitoring target 300, for example, and a range of extracting the N-gram. Accept input. Here, the range from which the N-gram is extracted refers to, for example, a data unit to be subjected to inspection of a packet indicated by N-gram acquisition target data in the abnormality detection models 131 to 134, and corresponds to each protocol, for example. Payload. Further, the input receiving unit 140 receives input of a parameter related to an alert occurrence rate for generating an alert. The alert occurrence rate is, for example, to determine that the deviation from the normal state based on the occurrence rate is large for the occurrence rate in which all combinations such as one in a packets and b times a day occur. The threshold value is used to determine that the packet contains an abnormality. Here, the input accepting unit 140 accepts a plurality of parameters respectively corresponding to a plurality of models. The input accepting unit 140 may accept the above-described parameter as one parameter common to a plurality of models. The input receiving unit 140 may receive an input indicating an alert threshold. The alert threshold is, for example, a score to be described later, in order to determine that the deviation from the normal state based on the score is large, that is, based on the appearance probability of all combinations for determining that the packet includes an abnormality. It is a threshold to be determined.

入力受付部140は、例えば、CPU101、メインメモリ102、ストレージ103、入力IF105などにより実現される。   The input receiving unit 140 is realized by, for example, the CPU 101, the main memory 102, the storage 103, the input IF 105, and the like.

アラート閾値算出部150は、入力受付部140により受け付けられた、アラート発生率に関するパラメータと、学習用パケットに対して算出されたスコアとに基づいてアラート閾値を算出する。アラート閾値算出部150は、学習用パケットにおいて算出された複数の第1の確率を後述する式12に適用することで、学習用パケットに対するスコアを算出する。アラート閾値算出部150は、例えば、パラメータにより指定されたアラート発生率以下となるように、アラート閾値を算出する。アラート閾値算出部150は、複数のモデルにそれぞれ複数のパラメータが入力された場合には、複数のモデル毎のパラメータに基づいてアラート閾値を算出する。アラート閾値算出部150により算出された複数のモデル毎にアラート閾値は、異常検知モデルDB130の異常検知モデルとして記憶される。アラート閾値算出部150は、例えば、CPU101、メインメモリ102、ストレージ103などにより実現される。   The alert threshold calculation unit 150 calculates an alert threshold based on the parameter related to the alert occurrence rate accepted by the input acceptance unit 140 and the score calculated for the learning packet. The alert threshold calculation unit 150 calculates the score for the learning packet by applying the plurality of first probabilities calculated in the learning packet to Equation 12 described later. The alert threshold calculation unit 150 calculates an alert threshold so as to be, for example, equal to or less than the alert occurrence rate specified by the parameter. The alert threshold calculation unit 150 calculates an alert threshold based on parameters for each of a plurality of models when a plurality of parameters are input to each of a plurality of models. The alert threshold for each of the plurality of models calculated by the alert threshold calculation unit 150 is stored as an abnormality detection model of the abnormality detection model DB 130. The alert threshold calculation unit 150 is realized by, for example, the CPU 101, the main memory 102, the storage 103, and the like.

検知部160は、取得部110により取得された複数のパケットのそれぞれについて、異常があるか否かを検知する。具体的には、検知部160は、取得部110により取得された複数のパケットのそれぞれについて、以下の(1)〜(6)の処理を順に行う。   The detection unit 160 detects whether there is an abnormality in each of the plurality of packets acquired by the acquisition unit 110. Specifically, the detection unit 160 sequentially performs the following processes (1) to (6) for each of the plurality of packets acquired by the acquisition unit 110.

(1)検知部160は、当該パケットに含まれるペイロードを構成するデータ列をAビット単位で区切ることにより得られる複数個のデータ単位のうちN個のデータ単位の取り得る全ての第2の組み合わせであって、当該ペイロードにおける互いに連続している並び順でのN個のデータ単位の組み合わせを抽出する。ここで抽出される組み合わせは、第2の組み合わせの一例である。検知部160は、具体的には、検知モデル学習部120と同様にN−gramを用いることで、N個のデータ単位の組み合わせを抽出する。ここで、Nは、例えば、2または3である。つまり、検知部160は、2−gramまたは3−gramを用いることで、2個のデータ単位の組み合わせ、または、3個のデータ単位の組み合わせを抽出する。なお、検知部160は、N−gramのように互いに連続している並び順でのN個のデータ単位の組み合わせに限らずに、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の組み合わせを抽出してもよい。   (1) The detection unit 160 selects all possible second combinations of N data units among the plurality of data units obtained by dividing the data string making up the payload included in the packet into A bit units. And extract a combination of N data units in consecutive order in the payload. The combination extracted here is an example of a second combination. Specifically, the detection unit 160 extracts a combination of N data units by using an N-gram as in the detection model learning unit 120. Here, N is, for example, 2 or 3. That is, the detection unit 160 extracts a combination of two data units or a combination of three data units by using 2-gram or 3-gram. Note that the detection unit 160 is not limited to the combination of N data units in a sequential order such as N-gram, but may be a sequential order of B (B is an integer of 1 or more) skips. A combination of N data units may be extracted.

(2)検知部160は、当該パケットから抽出した全ての組み合わせのそれぞれについて、当該組み合わせが、取得した当該パケットが有するペイロードにおいて出現する回数である第3の数をカウントする。   (2) The detection unit 160 counts, for each of all combinations extracted from the packet, a third number, which is the number of times the combination appears in the payload of the acquired packet.

(3)検知部160は、当該パケットから抽出した全ての組み合わせのそれぞれについて、カウントすることで得られた複数の第3の数に基づいて、当該パケットにおいて当該組み合わせが出現する確率である複数の第2の確率を算出する。   (3) The detection unit 160 determines a plurality of probability that the combination appears in the packet based on the plurality of third numbers obtained by counting each of all the combinations extracted from the packet. Calculate the second probability.

(4)検知部160は、当該パケットに対して算出した複数の第2の確率の対数の総和をペイロードのペイロード長で規定される規定値で除算することでスコアを算出する。   (4) The detection unit 160 calculates a score by dividing the sum of logarithms of the plurality of second probabilities calculated for the packet by a specified value defined by the payload length of the payload.

(5)検知部160は、当該パケットに対して算出したスコアが、異常検知モデルDB130に記憶されている異常検知モデルに基づく所定の閾値としてのアラート閾値を超えているか否かを判定する。検知部160は、アラート閾値を超えるスコアが算出されたパケットに異常があることを検知し、アラート閾値以下のスコアが算出されたパケットに異常が無いことを検知する。   (5) The detection unit 160 determines whether the score calculated for the packet exceeds an alert threshold as a predetermined threshold based on the abnormality detection model stored in the abnormality detection model DB 130. The detection unit 160 detects that there is an abnormality in the packet in which the score exceeding the alert threshold is calculated, and detects that there is no abnormality in the packet in which the score below the alert threshold is calculated.

なお、検知部160は、検知モデル学習部120と同様に、取得部110において取得された複数のパケットのそれぞれを、当該パケットが有するヘッダに応じて複数のモデルのいずれか1つに分類してもよい。この場合、検知部160は、算出したスコアが、当該スコアが算出されたパケットが分類されたモデルに対応する所定の閾値を超えているか否かを判定してもよい。   As in the detection model learning unit 120, the detection unit 160 classifies each of the plurality of packets acquired by the acquisition unit 110 into any one of a plurality of models according to the header of the packet. It is also good. In this case, the detection unit 160 may determine whether the calculated score exceeds a predetermined threshold value corresponding to the model into which the packet for which the score is calculated is classified.

検知部160は、例えば、CPU101、メインメモリ102、ストレージ103などにより実現される。   The detection unit 160 is realized by, for example, the CPU 101, the main memory 102, the storage 103, and the like.

例えば、検知部160は、次のような処理を行うことで検査を実行する。   For example, the detection unit 160 performs an inspection by performing the following process.

本実施の形態に係る異常検知方法では、検知部160は、PAYLやANAGRAMと同様、検査フェーズでは各パケットに対して異常スコアを算出する。異常スコアの算出対象となる各パケットは、学習フェーズに行った変換法と同様に2−gramのベクトルy(∈N65536)に変換する。変換されたベクトルに対し、次の式を使ってスコアリングを行う。 In the abnormality detection method according to the present embodiment, the detection unit 160 calculates an abnormality score for each packet in the inspection phase, as in PAYL and ANAGRAM. Each packet to be subjected to abnormality score calculation is converted into a 2-gram vector y (∈N 65536 ) in the same manner as the conversion method performed in the learning phase. Score the transformed vector using the following formula.

Figure 2019110513
Figure 2019110513

式11において、L乗根を採るのは、異なる長さのペイロードに対して平等なスコアの比較が行なえるようにするためである。このスコアを直接計算するのは指数演算が入ってしまい負荷が高いため、またスコアが大きなパケットほど異常度が高いパケットとして扱うため、上記score’の負の対数をスコアとして扱うことにする。すなわち、scoreの算出は下記の式12によって行われる。   The reason for taking the L-th power in Equation 11 is to enable equal score comparison to be performed for payloads of different lengths. This score is directly calculated because the load is high due to the addition of an exponentiation operation, and a packet with a larger score is treated as a packet with a higher degree of anomaly, so the negative logarithm of the score 'is treated as a score. That is, calculation of score is performed by the following equation 12.

Figure 2019110513
Figure 2019110513

scoreは値が大きければ大きいほど異常度が高いとみなせる。このスコアリングの仕方はANAGRAM(frequency−based)のものと比較して合理的なものであり、後述の評価結果からもわかるように、ANAGRAM(frequency−based)よりも高い性能を発揮する。   The higher the score, the higher the degree of abnormality. This scoring method is rational as compared to that of ANAGRAM (frequency-based), and exhibits higher performance than ANAGRAM (frequency-based) as can be understood from the evaluation results described later.

提示部170は、検知部160において異常があることを検知されたパケットについて、当該パケットに異常があることを示す情報であるアラートを出力する。なお、提示部170は、算出されたスコアを出力してもよい。提示部170は、スコアを提示する場合、アラートを出力するか否かにかかわらずスコアを出力してもよく、スコアを出力し、アラートを出力しなくてもよい。提示部170は、例えば、ディスプレイ106にアラートを示す画像を表示させることで、ユーザにアラートを提示する。提示部170は、例えば、CPU101、メインメモリ102、ストレージ103、ディスプレイ106などにより実現される。   The presentation unit 170 outputs an alert, which is information indicating that the packet is abnormal, for the packet whose abnormality is detected by the detection unit 160. In addition, the presentation unit 170 may output the calculated score. When presenting the score, the presentation unit 170 may output the score regardless of whether or not the alert is output, and may output the score and may not output the alert. The presentation unit 170 presents an alert to the user, for example, by causing the display 106 to display an image indicating the alert. The presentation unit 170 is realized by, for example, the CPU 101, the main memory 102, the storage 103, the display 106, and the like.

なお、提示部170は、異常検知装置100がスピーカを有している場合には、音によってスピーカからユーザにアラートを提示してもよい。また、提示部170は、アラートを示す情報をスマートフォンなどの情報端末に出力することにより、情報端末にアラートを提示させてもよい。   In addition, the presentation part 170 may present an alert to a user from a speaker by a sound, when the abnormality detection apparatus 100 has a speaker. In addition, the presentation unit 170 may cause the information terminal to present the alert by outputting information indicating the alert to the information terminal such as a smartphone.

[2−4 動作]
次に、異常検知装置100における動作について説明する。
[2-4 Operation]
Next, the operation of the abnormality detection apparatus 100 will be described.

図10は、異常検知装置における動作の概要を示すフローチャートである。   FIG. 10 is a flowchart showing an outline of the operation in the abnormality detection device.

異常検知装置100は、まず、取得部110により取得された学習用データ211である複数の学習用パケットを用いて、学習処理を実行する(S1)。これにより、異常検知装置100では、複数のモデル毎に異常検知モデルが生成される。学習処理の詳細は、後述する。   First, the abnormality detection apparatus 100 executes a learning process using a plurality of learning packets that are learning data 211 acquired by the acquisition unit 110 (S1). Thereby, in the abnormality detection apparatus 100, an abnormality detection model is generated for each of the plurality of models. Details of the learning process will be described later.

次に、異常検知装置100は、アラート閾値決定処理を実行する(S2)。ここれにより、異常検知装置100では、アラート閾値が異常検知モデルのモデル毎に対応付けられる。アラート閾値決定処理の詳細は、後述する。   Next, the abnormality detection apparatus 100 executes alert threshold determination processing (S2). Hereby, in the abnormality detection apparatus 100, the alert threshold is associated with each model of the abnormality detection model. Details of the alert threshold determination process will be described later.

最後に、異常検知装置100は、取得部110により取得された検査用データ212である複数のパケットを用いて、検査処理を実行する(S3)。これにより、異常検知装置100は、複数のパケットのそれぞれについて、異常があるか否かを検知する。検査処理の詳細は、後述する。   Finally, the abnormality detection apparatus 100 executes an inspection process using a plurality of packets that are inspection data 212 acquired by the acquisition unit 110 (S3). Thus, the abnormality detection apparatus 100 detects whether there is an abnormality in each of the plurality of packets. Details of the inspection process will be described later.

次に、学習処理、つまり学習方法の詳細について説明する。   Next, the learning process, that is, the learning method will be described in detail.

図11は、異常検知装置における学習処理の詳細の一例を示すフローチャートである。   FIG. 11 is a flowchart showing an example of the details of the learning process in the abnormality detection device.

まず、異常検知装置100では、入力受付部140が監視対象300から得られる複数のパケットのうち、監視対象のIPの範囲、および、ポートの範囲の少なくとも一方と、N−gramを抽出する範囲とを示す入力を受け付ける(S11)。また、入力受付部140は、このとき、学習用パケットのプロトコルの識別が必要か否かを示す情報の入力をユーザから受け付けてもよい。ステップS11の処理は、一度実行されればよく、学習の度に実行されなくてもよい。   First, in the abnormality detection apparatus 100, of the plurality of packets obtained from the monitoring target 300, the input receiving unit 140 extracts at least one of the range of the monitoring target IP and the range of the port, and the range in which the N-gram is extracted Is accepted (S11). At this time, the input accepting unit 140 may accept input of information indicating whether it is necessary to identify the protocol of the learning packet from the user. The process of step S11 may be performed once and may not be performed each time learning.

次に、取得部110は、学習用データ211である複数の学習用パケットを取得する(S12)。   Next, the acquisition unit 110 acquires a plurality of learning packets that are the learning data 211 (S12).

以下、検知モデル学習部120は、複数の学習用パケットのそれぞれについて、ステップS13〜ステップS20の処理を繰り返す。   Subsequently, the detection model learning unit 120 repeats the processing of steps S13 to S20 for each of the plurality of learning packets.

検知モデル学習部120は、学習を実行するのに、学習用パケットのプロトコルの識別が必要であるか否かを判定する(S13)。検知モデル学習部120は、例えば、ステップS11において入力受付部140がプロトコルの識別が必要であることを示す情報の入力を受け付けていれば、プロトコルの識別が必要であると判定し、そうでなければ、プロトコルの識別が不要であると判定する。検知モデル学習部120は、プロトコルの識別が必要であると判定すれば(S13でYes)、ステップS14に進み、プロトコルの識別が不要である判定すれば(S13でNo)、ステップS15に進む。   The detection model learning unit 120 determines whether it is necessary to identify the protocol of the learning packet in order to execute learning (S13). For example, if the input accepting unit 140 accepts the input of information indicating that the identification of the protocol is required in step S11, the detection model learning unit 120 determines that the identification of the protocol is necessary. For example, it is determined that identification of the protocol is unnecessary. If the detection model learning unit 120 determines that the identification of the protocol is necessary (Yes in S13), the process proceeds to Step S14. If the identification of the protocol is not necessary (No in S13), the process proceeds to Step S15.

検知モデル学習部120は、ステップS14において、処理対象の学習用パケットのヘッダに基づいてプロトコルの識別処理を実行し、ステップS15に進む。   In step S14, the detection model learning unit 120 executes a protocol identification process based on the header of the processing target learning packet, and proceeds to step S15.

検知モデル学習部120は、ステップS15において、処理対象の学習用パケットが該当するモデルを特定する。検知モデル学習部120は、処理対象の学習用パケットのヘッダを読み取ることで得られる、宛先IP、宛先ポート、プロトコル、および送信元IP少なくとも1つに応じたモデルを特定する。ここで、検知モデル学習部120は、ステップS11において受け付けられた監視対象のIPの範囲、および、ポートの範囲の少なくとも一方と、N−gramを抽出する範囲とに応じて、特定するモデルの分類を決定する。   In step S15, the detection model learning unit 120 specifies a model to which the processing target learning packet corresponds. The detection model learning unit 120 specifies a model according to at least one of the destination IP, the destination port, the protocol, and the transmission source IP, which is obtained by reading the header of the processing target learning packet. Here, the detection model learning unit 120 classifies the model to be identified according to at least one of the range of the IP to be monitored received in step S11 and the range of the port and the range for extracting the N-gram. Decide.

検知モデル学習部120は、特定したモデルが既に存在しているか否かを判定する(S16)。つまり、検知モデル学習部120は、特定したモデルに属する学習用パケットが既に存在しているか否かを判定する。検知モデル学習部120は、特定したモデルがまだ存在していないと判定すれば(S16でNo)、ステップS17に進み、特定したモデルが既に存在すると判定すれば(S16でYes)、ステップS18に進む。   The detection model learning unit 120 determines whether the identified model already exists (S16). That is, the detection model learning unit 120 determines whether a learning packet belonging to the specified model already exists. If the detection model learning unit 120 determines that the specified model does not exist yet (No in S16), the process proceeds to step S17, and if it is determined that the specified model already exists (Yes in S16), the process proceeds to step S18. move on.

検知モデル学習部120は、ステップS17において、特定したモデルを新規モデルとして追加し、ステップS18に進む。   In step S17, the detection model learning unit 120 adds the identified model as a new model, and the process proceeds to step S18.

検知モデル学習部120は、ステップS18において、処理対象の学習用パケット中の対象データ部を抽出する。具体的には、検知モデル学習部120は、ステップS11において受け付けられたN−gramを抽出する範囲を示す入力に基づいて特定される対象データ部であって、各モデルに対応付けられた検査の対象となる対象データ部を抽出する。   In step S18, the detection model learning unit 120 extracts the target data portion in the processing target learning packet. Specifically, the detection model learning unit 120 is a target data unit identified based on the input indicating the range for extracting the N-gram received in step S11, and is an examination of the examination associated with each model. Extract the target data part to be the target.

検知モデル学習部120は、処理対象の学習用パケットが属するモデルのN−gram出現回数n〜nをカウントする(S19)。ここで、検知モデル学習部120は、N−gram出現回数n〜nとして、第5の数をカウントし、第5の数から第6の数を算出する。これにより、検知モデル学習部120は、処理対象のパケットにおける学習処理を終了する。 The detection model learning unit 120 counts the N-gram appearance frequency n 1 to n 6 of the model to which the processing target learning packet belongs (S19). Here, the detection model learning unit 120 counts the fifth number as the N-gram appearance frequency n 1 to n 6 , and calculates the sixth number from the fifth number. Thus, the detection model learning unit 120 ends the learning process on the processing target packet.

検知モデル学習部120は、複数の学習用パケットのうち、未学習のパケットが存在するか否かを判定し(S20)、未学習のパケットが存在すれば(S20でYes)、未学習のパケットについてステップS13〜ステップS19の処理を実行する。検知モデル学習部120は、未学習のパケットが存在しなければ(S20でNo)、つまり、全ての学習用パケットについてステップS13〜ステップS19の処理が終了していれば、学習処理を終了する。   The detection model learning unit 120 determines whether an unlearned packet exists among the plurality of learning packets (S20), and if an unlearned packet exists (Yes in S20), the unlearned packet The processing of step S13 to step S19 is executed. The detection model learning unit 120 ends the learning process if the unlearned packet does not exist (No in S20), that is, if the process of steps S13 to S19 is completed for all the learning packets.

なお、取得部110は、複数の学習用パケットを一度に全て取得しなくてもよく、複数回に分けて取得してもよく、例えば、複数の学習用パケットを1つずつ取得してもよい。このように、取得部110が複数回に分けて複数の学習用パケットを取得する場合、異常検知装置100は、ステップS12〜ステップS20を繰り返すこととなる。   Note that the acquiring unit 110 may not acquire all of the plurality of learning packets at one time, may divide it into multiple times, and may acquire multiple learning packets one by one, for example . As described above, when the acquisition unit 110 divides a plurality of times and acquires a plurality of learning packets, the abnormality detection apparatus 100 repeats steps S12 to S20.

次に、アラート閾値決定処理の詳細について説明する。   Next, the details of the alert threshold determination process will be described.

図12は、アラート閾値決定処理の詳細の一例を示すフローチャートである。   FIG. 12 is a flowchart illustrating an example of the alert threshold determination process in detail.

異常検知装置100では、入力受付部140がアラートを発生するためのアラート発生率に関するパラメータの入力を受け付け、受け付けたパラメータを設定する(S21)。   In the abnormality detection apparatus 100, the input receiving unit 140 receives an input of a parameter related to the alert occurrence rate for generating an alert, and sets the received parameter (S21).

次に、アラート閾値算出部150は、学習用パケットにおいて算出された複数の第1の確率を式12に適用することで学習用パケットに対するスコアを算出する(S22)。   Next, the alert threshold calculation unit 150 calculates a score for the learning packet by applying the plurality of first probabilities calculated in the learning packet to Equation 12 (S22).

そして、アラート閾値算出部150は、入力受付部140により受け付けられた、アラート発生率に関するパラメータと、学習用パケットに対して算出されたスコアとに基づいてアラート閾値を算出する(S23)。アラート閾値算出部150は、例えば、パラメータにより指定されたアラート発生率以下となるように、アラート閾値を算出する。   Then, the alert threshold calculation unit 150 calculates an alert threshold based on the parameter related to the alert occurrence rate received by the input receiving unit 140 and the score calculated for the learning packet (S23). The alert threshold calculation unit 150 calculates an alert threshold so as to be, for example, equal to or less than the alert occurrence rate specified by the parameter.

図12の例では、異常検知装置100は、パラメータからアラート閾値を算出するとしたが、次のようにアラート閾値をユーザから直接受け付けてもよい。   Although the abnormality detection apparatus 100 calculates the alert threshold from the parameter in the example of FIG. 12, the alert threshold may be directly received from the user as follows.

図13は、アラート閾値決定処理の詳細の他の一例を示すフローチャートである。   FIG. 13 is a flowchart illustrating another example of details of the alert threshold determination process.

異常検知装置100では、入力受付部140がアラート閾値を示す入力を受け付ける(S21A)。   In the abnormality detection apparatus 100, the input receiving unit 140 receives an input indicating an alert threshold (S21A).

アラート閾値算出部150は、入力受付部140により受け付けられた入力が示すアラート閾値を、アラート閾値として設定する(S22A)。   The alert threshold calculation unit 150 sets an alert threshold indicated by the input received by the input reception unit 140 as an alert threshold (S22A).

次に、検査処理、つまり異常検知方法の詳細について説明する。   Next, the inspection process, that is, the abnormality detection method will be described in detail.

図14は、異常検知装置における検査処理の詳細の一例を示すフローチャートである。   FIG. 14 is a flowchart showing an example of the details of inspection processing in the abnormality detection device.

異常検知装置100では、検知モデル学習部120が異常検知モデルにおける複数のモデルのそれぞれのN−gram出現回数n〜nからN−gram出現確率Pr〜Prを算出する(S31)。 In the abnormality detecting device 100, the detection model learning unit 120 calculates the N-gram probability Pr 1 to PR 6 from each of the N-gram number of occurrences n 1 ~n 6 of a plurality of models in the abnormality detection model (S31).

次に、取得部110は、検査用データ212である複数のパケットを取得する(S32)。   Next, the acquisition unit 110 acquires a plurality of packets that are inspection data 212 (S32).

以下、検知部160は、複数のパケットのそれぞれについて、ステップS33〜ステップS41の処理を繰り返す。   Thereafter, the detection unit 160 repeats the processing of step S33 to step S41 for each of the plurality of packets.

なお、検知部160が実行するステップS33〜ステップS36は、検知モデル学習部120が実行するステップS13〜ステップS16と同様であるので説明を省略する。   In addition, since step S33-step S36 which the detection part 160 performs are the same as step S13-step S16 which the detection model learning part 120 performs, description is abbreviate | omitted.

検知部160は、特定したモデルが既に存在すると判定すれば(S36でYes)、ステップS37に進み、特定したモデルがまだ存在していないと判定すれば(S36でNo)、ステップS41に進む。   If the detection unit 160 determines that the specified model already exists (Yes in S36), the process proceeds to step S37, and if it is determined that the specified model does not exist yet (No in S36), the process proceeds to step S41.

検知部160は、ステップS37において、処理対象のパケット中の対象データ部を抽出する。この処理は、学習処理のステップS18と同様であるので説明を省略する。   In step S37, the detection unit 160 extracts the target data portion in the packet to be processed. Since this process is the same as step S18 of the learning process, the description will be omitted.

検知部160は、処理対象のパケットのスコアを算出する(S38)。具体的には、検知部160は、上述した検知部160の説明における(1)〜(6)の処理を行うことにより、処理対象のパケットのスコアを算出する。   The detection unit 160 calculates the score of the processing target packet (S38). Specifically, the detection unit 160 calculates the score of the processing target packet by performing the processes (1) to (6) in the description of the detection unit 160 described above.

検知部160は、処理対象のパケットに対して算出したスコアが、異常検知モデルDB130に記憶されている異常検知モデルで、当該処理対象のパケットのモデルに対応付けられているアラート閾値を超えているか否かを判定する(S39)。検知部160は、算出したスコアが対応するアラート閾値を超えていれば(S39でYes)、提示部170は、アラートを提示し(S40)、算出したスコアが対応するアラート閾値以下であれば(S39でNo)、ステップS41に進む。   Does the detection unit 160 determine whether the score calculated for the processing target packet exceeds the alert threshold value associated with the processing target packet model in the abnormality detection model stored in the abnormality detection model DB 130? It is determined whether or not it is (S39). The detecting unit 160 presents an alert if the calculated score exceeds the corresponding alert threshold (Yes in S39) (S40), and if the calculated score is less than or equal to the corresponding alert threshold (S40) No), the process proceeds to step S41.

検知部160は、複数のパケットのうち、未検査のパケットが存在するか否かを判定し(S41)、未検査のパケットが存在すれば(S41でYes)、未検査のパケットについてステップS33〜ステップS40の処理を実行する。検知部160は、未検査のパケットが存在しなければ(S41でNo)、つまり、全てのパケットについてステップS33〜ステップS40の処理が終了していれば、検査処理を終了する。   The detection unit 160 determines whether an unchecked packet exists among the plurality of packets (S41), and if an unchecked packet exists (Yes in S41), the unchecked packet is processed in steps S33 to S33. The process of step S40 is performed. If there is no untested packet (No in S41), that is, if the processing in step S33 to step S40 is completed for all the packets, the detection unit 160 ends the inspection process.

なお、取得部110は、複数のパケットを一度に全て取得しなくてもよく、複数回に分けて取得してもよく、例えば、複数のパケットを1つずつ取得してもよい。このように、取得部110が複数回に分けて複数の学習用パケットを取得する場合、異常検知装置100は、ステップS32〜ステップS41を繰り返すこととなる。   Note that the acquiring unit 110 may not acquire a plurality of packets all at once, may divide and acquire the packets a plurality of times, and may acquire a plurality of packets one by one, for example. As described above, when the acquisition unit 110 divides a plurality of times and acquires a plurality of learning packets, the abnormality detection apparatus 100 repeats steps S32 to S41.

[3 効果など]
本実施の形態に係る異常検知方法によれば、パケットに含まれるペイロードのうち、Aビット単位で区切ることにより得られる複数個のデータ単位のうちのN個のデータ単位の当該ペイロードにおける並びを含む当該N個のデータ単位の組み合わせであって、取り得る全ての組み合わせを抽出し、全ての組み合わせのそれぞれが出現する第2の確率を算出し、算出した複数の第2の確率に基づいてスコアを算出する。このように、N個のデータ単位の当該ペイロードにおける並びを含む組み合わせが出現する確率に基づいてスコアを算出するため、並び情報を考慮した精度のよいスコアを算出することができる。
[3 effects etc]
According to the anomaly detection method of the present embodiment, among the payloads included in the packet, the payload includes a sequence of N data units among the plurality of data units obtained by dividing in A bit units in the payload. It is a combination of the N data units, and all possible combinations are extracted, a second probability that each of all the combinations appears is calculated, and a score is calculated based on the calculated plurality of second probabilities. calculate. As described above, since the score is calculated based on the probability that the combination including the arrangement of the N data units in the payload appears, the accurate score can be calculated in consideration of the arrangement information.

また、本実施の形態に係る学習方法によれば、異常検知モデルを追加学習すること、または、古いデータを削除した異常検知モデルに更新することができる。よって、異常なパケットを精度よく特定することができる。   Further, according to the learning method according to the present embodiment, it is possible to additionally learn the anomaly detection model or update the anomaly detection model from which old data has been deleted. Thus, abnormal packets can be identified with high accuracy.

このように、本実施の形態に係る異常検知方法は、既存手法に見られる欠点を克服していると考えられる。まず、PAYLはバイト列の並び情報を無視しているという欠点があったが、本実施の形態に係る異常検知方法はN−gram(N=2、3)の情報を利用することでこの欠点を回避している。また、ANAGRAMは、N−gramの出現回数に関する情報を完全に捨ててしまっていたが、提案手法ではN−gramの出現回数も考慮したモデルを考える。ANAGRAM(frequency−based)は、N−gramの頻度情報を利用してはいたものの、スコアの算出法が経験的な方法であったため、提案手法ではLaplace smoothingの利用と、対数尤度を使った自然なスコアリングを用いてこの間題を回避している。   Thus, the anomaly detection method according to the present embodiment is considered to overcome the drawbacks found in the existing method. First, PAYL has the disadvantage that it ignores the information on the byte sequence, but the anomaly detection method according to the present embodiment uses this information by using N-gram (N = 2, 3) information. Is avoiding. In addition, although ANAGRAM has completely discarded information on the number of occurrences of N-grams, in the proposed method, consider a model in which the number of occurrences of N-grams is also taken into consideration. Although ANAGRAM (frequency-based) used N-gram frequency information, the score calculation method was an empirical method, so the proposed method uses Laplace smoothing and uses log likelihood Natural scoring is used to avoid this problem.

また、本実施の形態に係る異常検知方法は各モデルに関して出現するN−gram(N=2、3)の出現回数を保持しておけば良いため、メモリ効率もよく、ANAGRAMのようにブルームフィルタのサイズの見積りの必要などはない。   In addition, since the abnormality detection method according to the present embodiment only needs to hold the number of appearances of N-gram (N = 2, 3) appearing with respect to each model, memory efficiency is also good, and Bloom filter like ANAGRAM. There is no need to estimate the size of the

また、本実施の形態に係る異常検知方法におけるハイパーパラメータはLaplace smoothingの際に利用される底上げパラメータβのみであり、このパラメータは例えばβ=0.01などに固定してしまっても良く、経験的にこの値を少々変動させたところで、異常検知モデルの性能にほとんど影響を与えないことがわかっている。   Also, the hyper parameter in the abnormality detection method according to the present embodiment is only the raising parameter β used in Laplace smoothing, and this parameter may be fixed to, for example, β = 0.01 or the like. A slight variation of this value has been found to have little effect on the performance of the anomaly detection model.

また、本実施の形態に係る異常検知方法では各モデルにおける2−gramの出現回数ベクトルxさえ記憶しておけば、既に学習したモデルに追加で学習を行うこと(追加学習)や、逆に既にモデルが学習したデータを学習していない状態に戻すこと(忘却)が可能である。特に忘却の機能は他の手法に見られない特徴である。忘却機能を利用することで、常に1ヶ月分のデータのみ学習された状態にしておくことや、通常データとして好ましくないデータが得られた日時のデータを選択的にモデルから忘却させることができる。この性質は異常検知システムを実際に運用していく上で有用な性質である。つまり、検知部160は、カウントした第3の数を用いて、異常検知モデルに含まれる第4の数を更新してもよい。例えば、検知部160は、第4の数に第3の数を追加することで異常検知モデルに学習データを追加することができる。また、新たにカウントすることで得られた第3の数を追加すると共に、過去の所定期間においてカウントした数を異常検知モデルの第4の数から削除することで、異常検知モデルを最新の状態とすることができる。なお、異常検知モデルの第4の数に、新たにカウントした数を追加することなく、当該第4の数から過去の所定期間においてカウントした数を削除してもよい。   In addition, in the anomaly detection method according to the present embodiment, if only the appearance frequency vector x of 2-gram in each model is stored, additional learning is performed on the already learned model (additional learning), and conversely, already. It is possible to return the data learned by the model back to the unlearned state (forgetting). In particular, the function of oblivion is a feature not found in other approaches. By using the forgetting function, it is possible to keep only one month's worth of data learned at all times, or to selectively forget from the model the date / time when unwanted data was obtained as normal data. This property is useful in practical operation of the anomaly detection system. That is, the detection unit 160 may update the fourth number included in the abnormality detection model using the counted third number. For example, the detection unit 160 can add learning data to the abnormality detection model by adding the third number to the fourth number. Moreover, while adding the 3rd number obtained by newly counting and deleting the number counted in the past predetermined period from the 4th number of the abnormality detection model, the latest state of the abnormality detection model It can be done. Note that the number counted in the past predetermined period may be deleted from the fourth number without adding the newly counted number to the fourth number of the abnormality detection model.

(その他)
以上のように、異常検知装置100では、以下の異常検知方法を実行している。
(Others)
As described above, the abnormality detection apparatus 100 executes the following abnormality detection method.

1.unigramを用いるとバイト列の並びに関する情報が完全に失われてしまうため、N−gram(N≧2)を特徴量として用いている。   1. When unigram is used, information on byte string arrangement is completely lost, so N-gram (N ≧ 2) is used as a feature amount.

2.ANAGRAMのようにN−gramの出現頻度に関する情報を完全に落としてしまわずに、N−gramの出現回数の情報を利用する。   2. Information on the number of occurrences of N-grams is used without completely dropping information on the occurrence frequency of N-grams as in ANAGRAM.

3.ANAGRAM(frequency−based)の手法は異常スコアの計算が単純な算出平均を用いる方法であったことに着目し、確率的なモデルを仮定し、より理論的に妥当性のある異常スコアの算出法を利用している。   3. The ANAGRAM (frequency-based) method focuses on the fact that the calculation of the anomaly score is a method using a simple calculation average, assumes a probabilistic model, and calculates an anomaly score that is more theoretically valid. Using

4.実環境ではハイパーパラメータのチューニングを適切に行えるような教師データの入手が困難であるため、ハイパーパラメータが少ないモデルを利用している。   4. In the real environment, it is difficult to obtain teacher data that can properly tune hyperparameters, so models with few hyperparameters are used.

1つ目は明らかに、unigramよりもN−gram(N≧2)の持つリッチな情報を持つことを利用したいためである。これはPAYLの精度がANAGRAMと比較して低い理由がunigramを利用していることが原因だと思われるからである。   The first reason is to obviously use rich information possessed by N-gram (N ≧ 2) rather than unigram. This is because the accuracy of PAYL is lower than that of ANAGRAM because the reason is using unigram.

2つ目に関しても同様で、あるN−gramが何回出現したか、という情報は、あるN−gramが出現したことがあるか、という情報より多くの情報を含んでいるからである。また、ランダム性の高いバイナリ列が多く含まれていると考えられる制御システムネットワークのパケットにおいては、あるN−gramが出現したことがあるかどうかだけで判断してしまっては、たまたまランダムなバイナリ中に含まれたN−gramを正常な列とみなしてしまうおそれがあるからである。   The same applies to the second one, because the information indicating how many times an N-gram has appeared contains more information than the information indicating whether an N-gram has appeared. Also, in a packet of a control system network that is considered to contain many highly random binary strings, if it is determined whether or not a certain N-gram has occurred, random binary This is because the N-gram contained therein may be regarded as a normal string.

この1つ目、2つ目の特性は、frequency−basedのANAGRAMが持つ特性と同一である。しかしANAGRAMの論文中では、frequency−basedのANAGRAMは、binary−basedのANAGRAMに明確に劣ると記述されていた。3つ目の特性に述べたとおりだが、本稿では、frequency−basedのANAGRAMの異常スコアの算出手法に問題があったことを示し、適切な異常スコア算出法の下では、bigram(N=2のときのN−gram)を用いれば、PAYLやANAGRAMを凌ぐ精度となり得る。   The first and second characteristics are identical to the characteristics of frequency-based ANAGRAM. However, in the paper of ANAGRAM, frequency-based ANAGRAM was described as being clearly inferior to binary-based ANAGRAM. As stated in the third characteristic, this paper shows that there was a problem in the method of calculating the anomaly score of the frequency-based NAGRAM, and under the appropriate anomaly score calculation method, the bigram (N = 2 If the N-gram of the time is used, it may be more accurate than PAYL or ANAGRAM.

本実施の形態に係る異常検知方法も、過去のN−gramを用いた手法と同様に、ペイロード列のN−gram情報を特徴として利用する。本実施の形態ではN=2の場合、すなわち2−gramを特徴として利用する。N≧3となるNを使わない理由は、N≧3の場合、各N−gramの情報がスパースになってしまい、出現回数情報の信頼性が落ちてしまうからである(これがANAGRAM(frequency−based)の検知性能が低い一因とされている)が、データが豊富に存在する場合、N=3として本手法を適用しても高い精度を発揮することが期待される。N≧4の場合、現実的な場面ではN−gramデータがスパースになってしまい実用的ではないと考えられる。   The abnormality detection method according to the present embodiment also uses N-gram information of the payload sequence as a feature, as in the method using the past N-gram. In the present embodiment, the case of N = 2, that is, 2-gram is used as a feature. The reason why N ≧ 3 where N N3 is not used is that in the case of NN3, the information of each N-gram becomes sparse, and the reliability of the appearance frequency information drops (this is an ANAGRAM (frequency- However, if the data is abundant, it is expected that high accuracy will be achieved even if N = 3 and this method is applied. In the case of N ≧ 4, in a realistic scene, N-gram data is considered to be sparse and not practical.

アノマリベースの異常検知技術手法の多くは学習フェーズを持ち、学習期間として与えられたデータを使って正常な通信のふるまいを学習する。検査フェーズでは、与えられたパケットが正常であるか異常であるかを、学習フェーズに得られた検知モデルを使って判断することになる。本実施の形態に係る異常検知方法はペイロードベースの手法であるが、ヘッダの情報も利用している。これは提案手法が宛先IPアドレスや宛先ポートに応じて学習/検査に利用する異常検知モデルを変えているためである。例えばHTTPプロトコルとFTPプロトコルでは、観測されるペイロードが全く異なるためである。   Most anomaly-based anomaly detection techniques have a learning phase, and use data provided as a learning period to learn normal communication behavior. In the inspection phase, it is determined using a detection model obtained in the learning phase whether a given packet is normal or abnormal. Although the anomaly detection method according to the present embodiment is a payload-based method, header information is also used. This is because the proposed method changes the anomaly detection model used for learning / inspection according to the destination IP address and destination port. For example, in the HTTP protocol and the FTP protocol, observed payloads are completely different.

[4 変形例]
上記実施の形態に係る異常検知方法において、N−gramを用いた系列生成モデルに従ったスコアリングを行うこともできる。ここでxi,j[X,XT+1]を、そのモデルにおける2−gramX,XT+1の出現回数とする。このときp(XT+1|X)を下記の式により定める。
[4 variations]
In the abnormality detection method according to the above-described embodiment, it is also possible to perform scoring in accordance with a sequence generation model using an N-gram. Here x i, j [X T, X T + 1] and the 2-gramX T, the number of occurrences of X T + 1 in the model. At this time, p (X T + 1 | X T ) is determined by the following equation.

Figure 2019110513
Figure 2019110513

また、p(X)は別途下記の式により定める。ただしstartはデータの開始を意味する記号である。 Further, p (X 1 ) is separately determined by the following equation. However, start is a symbol that means the start of data.

Figure 2019110513
Figure 2019110513

この値を取得するため、学習時にはペイロード中の最初の文字の出現回数をモデルごとに保持しておく必要がある。   In order to acquire this value, it is necessary to hold the number of appearances of the first character in the payload for each model at the time of learning.

また、検査の処理では式4から自然に下記の式15により導出できる。   Further, in the process of inspection, it can be naturally derived from Expression 4 by Expression 15 below.

Figure 2019110513
Figure 2019110513

[5 実験と評価結果]
本実験では、既存手法として挙げたPAYL、ANAGRAM(frequency−based)、ANAGRAM(binary−based)を比較対象として本実施の形態に係る異常検知方法を評価している。ANAGRAM(binary−based)は3−gramを評価対象とし、ANAGRAM(frequency−based)は2−gramと3−gramをともに評価している。本実施の形態に係る異常検知方法としては2−gramを利用している。
[5 Experiment and evaluation result]
In this experiment, the anomaly detection method according to the present embodiment is evaluated, comparing PAYL, an ANAGRAM (frequency-based), and an ANAGRAM (binary-based), which are mentioned as existing methods, as comparison targets. ANAGRAM (binary-based) targets 3-gram as an evaluation target, and ANAGRAM (frequency-based) evaluates both 2-gram and 3-gram. As the abnormality detection method according to the present embodiment, 2-gram is used.

[5−1 実験に用いるデータセットと評価の仕方]
ここでは、データセットとして1999DARPA IDS Data Set(以降DARPA99データセット)を用いている。DARPA99データセットはMIT Lincoln LabsでIDS評価用に収集されたデータセットであり、それぞれのパケットのペイロードを含む全てのネットワークトラフィックがtcpdumpのフォーマットで提供されている。データは3週間の学習用データと、2週間のテスト用データから成っており、学習用データは2週間分の攻撃が含まれて居ないデータと、1週間の攻撃を含むデータから成っている。テスト用データには全ての日付において攻撃が含まれている。また、攻撃データはそれぞれ一連の攻撃をまとめたインスタンスと呼ばれる単位に集約されており、DARPA99データセットでは各攻撃インスタンスが発生した期間や対象IP、対象ポートなどの情報が公開されている。本評価実験において、各手法は学習用データのうち、攻撃データが含まれていない2週間分のデータを用いて学習を行い、2週間分のテスト用データに現れるパケットに対して異常スコアを算出した。また、今回評価した手怯は、N=1,2,3のN−gramを用いているため、平等な評価結果となるようペイロード長が3byte以上のパケットのみを学習とテストの対象とした。
[5-1 Data set used for experiment and evaluation method]
Here, 1999 DARPA IDS Data Set (hereinafter DARPA 99 data set) is used as a data set. The DARPA 99 data set is a data set collected for IDS evaluation at MIT Lincoln Labs, and all network traffic including the payload of each packet is provided in tcpdump format. The data consists of 3 weeks of training data and 2 weeks of testing data, and the training data consists of data without 2 weeks of attacks and data with 1 week of attacks . Test data includes attacks on all dates. In addition, attack data is collected in a unit called an instance that combines a series of attacks, and in the DARPA 99 data set, information such as a time period in which each attack instance has occurred, a target IP, and a target port is disclosed. In this evaluation experiment, each method performs learning using data for 2 weeks not including attack data among learning data, and calculates an abnormality score for a packet appearing in test data for 2 weeks. did. In addition, since the procedure evaluated this time uses N = 1, 2, and 3 N-grams, only packets having a payload length of 3 bytes or more were subjected to learning and testing so as to obtain equal evaluation results.

本実験ではPAYL論文に従って、DARPA99データセットのうち、ペイロードに情報が現れる攻撃インスタンスに絞って、プロトコルごとにインスタンスベースの検知率(縦軸)とパケットベースの誤検知率(横軸)のグラフで各手法を評価する。各手法は各パケットに対して異常スコア(スカラー値)を算出するのみであるため、あるパケットを異常と判定するか正常と判定するかは、定められたスコアの闘値に依存することになる。すなわち定められた闘値を上回る異常スコアのパケットを異常、そうでないパケットを正常と判定する。闘値を大きくすればするほど誤検知率は低下するが、検知率も低下する。逆に闘値を小さくすればするほど検知率は増加するが、誤検知率も増加してしまうというトレードオフの関係にある。   In this experiment, according to PAYL thesis, in the DARPA 99 data set, we narrow down to attack instances where information appears in the payload, and use a graph of instance-based detection rate (vertical axis) and packet-based false alarm rate (horizontal axis) for each protocol. Evaluate each method. Since each method only calculates an anomaly score (scalar value) for each packet, whether a packet is determined to be abnormal or normal depends on a defined score threshold value. . That is, it is determined that a packet with an abnormal score exceeding a predetermined threshold value is abnormal, and a packet that is not is normal. The larger the threshold, the lower the false alarm rate, but the lower the false alarm rate. Conversely, the smaller the threshold, the higher the detection rate, but the higher the false detection rate.

(インスタンスベースの検知率)
ある特定の攻撃インスタンスに含まれるパケット群のうち、1つ以上のパケットを検知した場合にそのインスタンスを検知したものと判定する。インスタンスベースの検知率とは、この判断基準の下で、全インスタンスの中で検知されたインスタンスの割合を示す。
(Instance-based detection rate)
When one or more packets are detected from a packet group included in a specific attack instance, it is determined that the instance is detected. Instance-based detection rate indicates the ratio of detected instances among all instances under this criterion.

(パケットベースの誤検知率)
異常検知モデルが異常と判断したもののうち、攻撃インスタンスに含まれるパケットを除いたものを正常パケットと呼ぶ。パケットベースの誤検知率とは、この正常パケットのうち、誤って異常と判定してしまったパケットの割合である。
(Packet based false alarm rate)
Of those determined as abnormal by the abnormality detection model, those excluding the packet included in the attack instance are called normal packets. The packet-based false alarm rate is the ratio of packets which are erroneously determined to be abnormal among the normal packets.

DARPA99のデータには複数のプロトコルのパケットが含まれているが、それぞれのプロトコルに含まれるパケット数や攻撃インスタンス数には大きなバラつきがあるため、評価用のデータとして使える程度に多くのデータが存在するのは、HTTP、FTP、TELNET、SMTPの4種類程度であると考えられる。本技術は特に制御システムにおける利用を想定しているが、DARPA99のデータには制御システム用のプロトコルのパケットデータが存在しない。そのため、DARPA99のデータの中では比較的制御システム用のプロトコルで見られる制御コマンドに近いと考えられるFTPプロトコルとTELNETプロトコルにおいて評価を行った。   Although DARPA 99 data contains packets of multiple protocols, the number of packets included in each protocol and the number of attack instances vary widely, so there is a large amount of data that can be used as data for evaluation. It is thought that there are about four types of HTTP, FTP, TELNET, and SMTP. Although the present technology is specifically intended for use in a control system, packet data of the protocol for the control system does not exist in the data of DARPA 99. Therefore, we evaluated the FTP protocol and TELNET protocol, which are considered to be relatively close to the control commands found in the protocol for control system, among the data of DARPA 99.

[5−2 実験結果]
図15は、FTPプロトコルにおいて評価を行った場合の本実施の形態に係る異常検知方法と他の手法とを比較した実験結果を示す図である。図16は、TELNETプロトコルにおいて評価を行った場合の本実施の形態に係る異常検知方法と他の手法とを比較した実験結果を示す図である。
[5-2 experimental result]
FIG. 15 is a diagram showing an experimental result comparing the abnormality detection method according to the present embodiment and another method when evaluation is performed in the FTP protocol. FIG. 16 is a diagram showing experimental results comparing the anomaly detection method according to the present embodiment and another method when evaluation is performed in the TELNET protocol.

各手法の結果は右上がりの線となっているが、これは闘値を小さな値に定めたものから大きな値に定めたものまでの変動をプロットしたものである。FTPプロトコルの評価結果が示す通り、提案手法は既存の3−gramを利用したANAGRAM(binary−based、frequency−based)と同等以上の性能を発揮していることがわかる。PAYLや2−gramのANAGRAM(frequency−based)より明らかに良い性能を発揮している。また、TELNETプロトコルの評価結果では、実施の形態に係る異常検知方法は他のどの手法よりも優れた検知性能を発揮している。このことから実施の形態に係る異常検知方法はチューニングの必要性が少ない異常検知手法の中でも比較的良い性能を示すアルゴリズムであることがわかる。   The result of each method is an upward-sloping line, which is a plot of the variation from a small threshold to a large threshold. As the evaluation results of the FTP protocol show, it is understood that the proposed method exhibits performance equivalent to or better than the existing 3-gram-based ANGRAM (binary-based, frequency-based). It clearly performs better than PAYL and 2-gram ANAGRAM (frequency-based). Moreover, in the evaluation result of the TELNET protocol, the anomaly detection method according to the embodiment exhibits superior detection performance than any other method. From this, it can be seen that the anomaly detection method according to the embodiment is an algorithm that exhibits relatively good performance among anomaly detection methods that require less tuning.

なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の異常検知方法、学習方法などを実現するソフトウェアは、次のようなプログラムである。   In the above embodiments, each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component. Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded in a recording medium such as a hard disk or a semiconductor memory. Here, software for realizing the abnormality detection method, the learning method, and the like of each of the above-described embodiments is a program as follows.

すなわち、このプログラムは、コンピュータに、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知する異常検知装置が実行する異常検知方法であって、前記異常検知装置は、プロセッサおよびメモリを備え、前記メモリは、複数の学習用パケットを用いた学習により生成された異常検知モデルを記憶しており、前記異常検知方法では、前記プロセッサが、前記複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させ、複数のパケットを取得し、取得した複数のパケットのそれぞれについて、当該パケットに対して算出したスコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが以上であることを出力する異常検知方法を実行させる。   That is, this program detects whether or not there is an abnormality in the communication within the monitoring target or the communication between the monitoring target and the network to which the monitoring target is connected to the computer. The anomaly detection apparatus includes a processor and a memory, and the memory stores an anomaly detection model generated by learning using a plurality of learning packets, and the anomaly is detected by the anomaly detection method. In the detection method, the processor acquires the plurality of learning packets, and for each of the plurality of acquired learning packets, a data string constituting a payload included in the learning packet is A (A is one or more; Of (N is an integer of 2 or more) of the plurality of data units obtained by dividing in units of bits A first combination of N data units in an arrangement order of consecutive ones in the payload, or in an arrangement order of B (B is an integer of 1 or more) skips, of all the first combinations. The first number which is the number of times the first combination appears in the plurality of learning packets is counted and extracted for each of all the first combinations extracted and extracted for the plurality of learning packets The first combination appears in the plurality of learning packets by performing the smoothing process on the basis of the plurality of first numbers obtained by counting for each of the first combinations described above. Calculating a plurality of first probabilities which are the probability of occurrence and storing the plurality of calculated first probabilities in the memory as the abnormality detection model When a plurality of packets are acquired, and a score calculated for the plurality of packets for each of the plurality of acquired packets exceeds a predetermined threshold based on the abnormality detection model stored in the memory, the score Execute an abnormality detection method that outputs that the calculated packet is greater than or equal to.

また、このプログラムは、コンピュータに、監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知するための異常検知モデルを学習する学習装置が実行する学習方法であって、前記学習装置は、プロセッサおよびメモリを備え、前記学習方法では、前記プロセッサが、複数の学習用パケットを取得し、取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させる学習方法を実行させる。   In addition, this program is an abnormality for detecting whether the computer has an abnormality in communication within the monitoring target or communication between the monitoring target and the network to which the monitoring target is connected. A learning method executed by a learning device for learning a detection model, wherein the learning device includes a processor and a memory, and in the learning method, the processor acquires a plurality of learning packets and acquires the plurality of acquired packets. For each of the learning packets, N (N is a number) of the plurality of data units obtained by dividing the data string constituting the payload included in the learning packet into A (A is an integer of 1 or more) bits. All possible first combinations of two or more integers) of data units, in a sequential order in which the payloads are contiguous, and , B (B is an integer greater than or equal to 1) pieces of first combinations of N data units in the order of skipping, and for each of the first combinations extracted for the plurality of learning packets A plurality of the above obtained by counting a first number which is the number of times the first combination appears in the plurality of learning packets, and counting each of the extracted first combinations. A plurality of first probabilities, which are probabilities of occurrence of the first combination in the plurality of learning packets, are calculated by performing smoothing processing based on the first number, and the plurality of calculated first plurality of first probabilities are calculated. A learning method is executed to store the probability in the memory as the abnormality detection model.

以上、本発明の一つまたは複数の態様に係る異常検知方法、異常検知装置、学習方法、および、学習装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。   The abnormality detection method, the abnormality detection device, the learning method, and the learning device according to one or more aspects of the present invention have been described above based on the embodiments, but the present invention is limited to these embodiments. It is not something to be done. Without departing from the spirit of the present invention, various modifications as may occur to those skilled in the art may be applied to this embodiment, or a configuration constructed by combining components in different embodiments may be one or more of the present invention. It may be included within the scope of the embodiments.

本開示は、異常なパケットを、精度よく特定することができる異常検知方法、または、精度よく特定するための異常検知モデルを学習する学習方法などとして有用である。   The present disclosure is useful as an anomaly detection method capable of identifying an abnormal packet with high accuracy, or as a learning method of learning an anomaly detection model for identifying the packet with high accuracy.

1 異常検知システム
100 異常検知装置
101 CPU
102 メインメモリ
103 ストレージ
104 通信IF
105 入力IF
106 ディスプレイ
110 取得部
120 検知モデル学習部
130 異常検知モデルDB
131〜134 異常検知モデル
135 対応情報
140 入力受付部
150 アラート閾値算出部
160 検知部
170 提示部
200 パケット収集装置
210 データ
211 学習用データ
212 検査用データ
300 監視対象
311、312、321、322 ハブ
313 SCADA
314 PLC
315、323、324 PC
400 ルータ
500 ネットワーク
1 abnormality detection system 100 abnormality detection device 101 CPU
102 Main memory 103 Storage 104 Communication IF
105 Input IF
106 Display 110 Acquisition unit 120 Detection model learning unit 130 Abnormality detection model DB
131 to 134 anomaly detection model 135 correspondence information 140 input acceptance unit 150 alert threshold calculation unit 160 detection unit 170 presentation unit 200 packet collection device 210 data 211 learning data 212 inspection data 300 monitoring targets 311, 312, 321, 322 hub 313 SCADA
314 PLC
315, 323, 324 PC
400 router 500 network

Claims (13)

監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知する異常検知装置が実行する異常検知方法であって、
前記異常検知装置は、プロセッサおよびメモリを備え、
前記メモリは、複数の学習用パケットを用いた学習により生成された異常検知モデルを記憶しており、
前記異常検知方法では、前記プロセッサが、
前記複数の学習用パケットを取得し、
取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、
前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、
抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、
算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させ、
複数のパケットを取得し、
取得した複数のパケットのそれぞれについて、当該パケットに対して算出したスコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが以上であることを出力する
異常検知方法。
An abnormality detection method executed by an abnormality detection apparatus that detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. ,
The anomaly detection device comprises a processor and a memory,
The memory stores an abnormality detection model generated by learning using a plurality of learning packets,
In the abnormality detection method, the processor
Acquire the plurality of learning packets,
Among a plurality of data units obtained by dividing a data string constituting a payload included in the learning packet for each of the acquired plurality of learning packets into A (A is an integer of 1 or more) bits. All possible first combinations of N (N is an integer of 2 or more) data units, in mutually consecutive arrangement order in the payload, or B (B is an integer of 1 or more) Extract the first combination of N data units in the order of the skipping,
A first number, which is the number of times that the first combination appears in the plurality of learning packets, is counted for each of the first combinations extracted for the plurality of learning packets,
The smoothing process is performed based on the plurality of first numbers obtained by counting each of the extracted first combinations, and the first combination is obtained in the plurality of learning packets. Calculate a plurality of first probabilities that are probabilities of appearing,
Storing the plurality of calculated first probabilities in the memory as the abnormality detection model;
Get multiple packets,
For each of the plurality of acquired packets, when the score calculated for the packet exceeds a predetermined threshold based on the abnormality detection model stored in the memory, the packet for which the score is calculated is greater than or equal to An anomaly detection method that outputs
前記第1の確率の算出では、前記スムージング処理として、前記第1の数の全てに、正の数を加算することで複数の第2の数を算出し、抽出した前記全ての第1の組み合わせのそれぞれについて算出した前記複数の第2の数に基づいて、前記第1に確率を算出する
請求項1に記載の異常検知方法。
In the calculation of the first probability, as the smoothing process, a plurality of second numbers are calculated by adding a positive number to all of the first numbers, and the extracted first combinations of all The abnormality detection method according to claim 1, wherein the first probability is calculated based on the plurality of second numbers calculated for each of.
前記抽出では、N−gramを用いることで、前記N個のデータ単位の前記第1の組み合わせを抽出する
請求項1または2に記載の異常検知方法。
The abnormality detection method according to claim 1, wherein the first combination of the N data units is extracted by using an N-gram in the extraction.
前記Nは、2または3である
請求項3に記載の異常検知方法。
The abnormality detection method according to claim 3, wherein the N is 2 or 3.
前記出力では、取得した前記複数のパケットのそれぞれについて、
(1)当該パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第2の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第2の組み合わせを抽出し、
(2)当該パケットから抽出した前記全ての第2の組み合わせのそれぞれについて、当該第2の組み合わせが、取得した当該パケットが有する前記ペイロードにおいて出現する回数である第3の数をカウントし、
(3)当該パケットにおける前記全ての第2の組み合わせのそれぞれについてカウントすることで得られた複数の前記第3の数に基づいて、当該パケットにおいて当該第2の組み合わせが出現する確率である複数の第2の確率を算出し、
(4)当該パケットに対して算出した前記複数の第2の確率の対数の総和を前記ペイロードのペイロード長で規定される規定値で除算することでスコアを算出し、
(5)当該パケットに対して算出した前記スコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが異常であることを出力する
請求項1から4のいずれか1項に記載の異常検知方法。
At the output, for each of the plurality of acquired packets,
(1) N (N is an integer of 2 or more) of a plurality of data units obtained by dividing the data string constituting the payload included in the packet into A (A is an integer of 1 or more) bits All possible second combinations of the data units of N, and N data units in consecutive order in the payload or in order of B (B is an integer of 1 or more) skipping order Extract the second combination of
(2) For each of all the second combinations extracted from the packet, a third number is counted, which is the number of times the second combination appears in the payload of the acquired packet,
(3) A plurality of probability that the second combination appears in the packet, based on the plurality of third numbers obtained by counting each of all the second combinations in the packet Calculate the second probability,
(4) A score is calculated by dividing the sum of logarithms of the plurality of second probabilities calculated for the packet by a specified value defined by the payload length of the payload,
(5) If the score calculated for the packet exceeds a predetermined threshold based on the abnormality detection model stored in the memory, the packet for which the score is calculated is output as being abnormal The abnormality detection method according to any one of claims 1 to 4.
前記メモリは、前記全ての第1の組み合わせのそれぞれにおける前記第1の数に基づく第4の数を前記異常検知モデルとして記憶しており、
前記異常検知方法では、前記プロセッサが、さらに、
カウントした前記第3の数を用いて、前記異常検知モデルに含まれる前記第4の数を更新する
請求項5に記載の異常検知方法。
The memory stores, as the anomaly detection model, a fourth number based on the first number in each of the first combinations.
In the abnormality detection method, the processor further includes:
The abnormality detection method according to claim 5, wherein the fourth number included in the abnormality detection model is updated using the counted third number.
前記異常検知方法では、前記プロセッサが、さらに、
取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットが有するヘッダに応じて当該学習用パケットを複数のモデルのいずれか1つに分類し、
前記複数のモデルのそれぞれについて、
(1)さらに、カウントした前記第1の数を用いて、前記複数の学習用パケットのうち当該モデルに分類された複数の学習用パケットにおいて、前記全ての第1の組み合わせのそれぞれが出現する回数である第5の数を算出し、
(2)当該モデルに分類された前記複数の学習用パケットから抽出した前記全ての第1の組み合わせのそれぞれについて、算出した前記第5の数の全てに、正の数を加算することで前記複数の第6の数を算出し、
(3)抽出した前記全ての第1の組み合わせのそれぞれについて、算出した前記複数の第6の数に基づいて、当該モデルに分類された前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出する
請求項5に記載の異常検知方法。
In the abnormality detection method, the processor further includes:
The learning packet is classified into any one of a plurality of models according to the header of the learning packet for each of the plurality of learning packets acquired,
For each of the plurality of models,
(1) The number of times each of the first combinations appears in a plurality of learning packets classified into the model among the plurality of learning packets using the counted first number Calculate the fifth number, which is
(2) For each of the first combinations extracted from the plurality of learning packets classified into the model, the plurality of fifth combinations calculated by adding a positive number to all of the calculated fifth numbers Calculate the sixth number of
(3) The first combination appears in the plurality of learning packets classified into the model based on the calculated plurality of sixth numbers for each of the extracted first combinations. The abnormality detection method according to claim 5, wherein a plurality of first probabilities that are probabilities are calculated.
前記メモリは、前記複数のモデル毎に、前記所定の閾値を記憶しており、
前記異常検知方法では、前記プロセッサが、さらに、
取得した前記複数のパケットのそれぞれを、当該パケットが有するヘッダに応じて複数のモデルのいずれか1つに分類し、
前記出力では、算出した前記スコアが、当該スコアが算出されたパケットが分類されたモデルに対応する前記所定の閾値を超えている場合、当該パケットが異常であることを出力する
請求項7に記載の異常検知方法。
The memory stores the predetermined threshold for each of the plurality of models.
In the abnormality detection method, the processor further includes:
Classify each of the plurality of acquired packets into any one of a plurality of models according to a header of the packet,
The output indicates that the packet is abnormal if the calculated score exceeds the predetermined threshold corresponding to a model into which the packet for which the score is calculated is classified. Anomaly detection method.
前記複数のモデルのそれぞれは、前記パケットの宛先IP、宛先ポート、送信元IP、及びプロトコルの少なくとも1つにより分類されるモデルである
請求項7または8に記載の異常検知方法。
9. The anomaly detection method according to claim 7, wherein each of the plurality of models is a model classified according to at least one of a destination IP, a destination port, a source IP, and a protocol of the packet.
前記メモリは、前記複数のモデル毎における、前記全ての第1の組み合わせのそれぞれにおける前記第5の数を前記異常検知モデルとして記憶しており、
前記異常検知方法では、前記プロセッサが、さらに、
カウントした前記第3の数を用いて、前記異常検知モデルに含まれる前記第5の数を更新する
請求項7から9のいずれか1項に記載の異常検知方法。
The memory stores, as the abnormality detection model, the fifth number in each of the first combinations for each of the plurality of models.
In the abnormality detection method, the processor further includes:
The abnormality detection method according to any one of claims 7 to 9, wherein the fifth number included in the abnormality detection model is updated using the counted third number.
監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知するための異常検知モデルを学習する学習装置が実行する学習方法であって、
前記学習装置は、プロセッサおよびメモリを備え、
前記学習方法では、前記プロセッサが、
複数の学習用パケットを取得し、
取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、
前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、
抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、
算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させる
学習方法。
A learning device for learning an abnormality detection model for detecting whether there is an abnormality in communication within the monitoring target or communication between the monitoring target and the network to which the monitoring target is connected is executed Learning method, and
The learning device comprises a processor and a memory,
In the learning method, the processor
Get multiple learning packets,
Among a plurality of data units obtained by dividing a data string constituting a payload included in the learning packet for each of the acquired plurality of learning packets into A (A is an integer of 1 or more) bits. All possible first combinations of N (N is an integer of 2 or more) data units, in mutually consecutive arrangement order in the payload, or B (B is an integer of 1 or more) Extract the first combination of N data units in the order of the skipping,
A first number, which is the number of times that the first combination appears in the plurality of learning packets, is counted for each of the first combinations extracted for the plurality of learning packets,
The smoothing process is performed based on the plurality of first numbers obtained by counting each of the extracted first combinations, and the first combination is obtained in the plurality of learning packets. Calculate a plurality of first probabilities that are probabilities of appearing,
A learning method for storing the plurality of calculated first probabilities in the memory as the abnormality detection model.
監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知する異常検知装置であって、
前記異常検知装置は、プロセッサおよびメモリを備え、
前記メモリは、複数の学習用パケットを用いた学習により生成された異常検知モデルを記憶しており、
前記プロセッサは、
前記複数の学習用パケットを取得し、
取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、
前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、
抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、
算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させ、
複数のパケットを取得し、
取得した複数のパケットのそれぞれについて、当該パケットに対して算出したスコアが、前記メモリに記憶されている前記異常検知モデルに基づく所定の閾値を超えている場合、当該スコアが算出されたパケットが以上であることを出力する
異常検知装置。
An abnormality detection device that detects whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected,
The anomaly detection device comprises a processor and a memory,
The memory stores an abnormality detection model generated by learning using a plurality of learning packets,
The processor is
Acquire the plurality of learning packets,
Among a plurality of data units obtained by dividing a data string constituting a payload included in the learning packet for each of the acquired plurality of learning packets into A (A is an integer of 1 or more) bits. All possible first combinations of N (N is an integer of 2 or more) data units, in mutually consecutive arrangement order in the payload, or B (B is an integer of 1 or more) Extract the first combination of N data units in the order of the skipping,
A first number, which is the number of times that the first combination appears in the plurality of learning packets, is counted for each of the first combinations extracted for the plurality of learning packets,
The smoothing process is performed based on the plurality of first numbers obtained by counting each of the extracted first combinations, and the first combination is obtained in the plurality of learning packets. Calculate a plurality of first probabilities that are probabilities of appearing,
Storing the plurality of calculated first probabilities in the memory as the abnormality detection model;
Get multiple packets,
For each of the plurality of acquired packets, when the score calculated for the packet exceeds a predetermined threshold based on the abnormality detection model stored in the memory, the packet for which the score is calculated is greater than or equal to An anomaly detection device that outputs
監視対象内での通信、または、前記監視対象と前記監視対象が接続されているネットワークとの間での通信に異常があるか否かを検知するための異常検知モデルを学習する学習装置であって、
前記学習装置は、プロセッサおよびメモリを備え、
前記プロセッサは、
複数の学習用パケットを取得し、
取得した前記複数の学習用パケットのそれぞれについて、当該学習用パケットに含まれるペイロードを構成するデータ列をA(Aは1以上の整数)ビット単位で区切ることにより得られる複数個のデータ単位のうちのN(Nは2以上の整数)個のデータ単位の取り得る全ての第1の組み合わせであって、当該ペイロードにおける互いに連続している並び順、または、B(Bは1以上の整数)個飛ばしの並び順でのN個のデータ単位の第1の組み合わせを抽出し、
前記複数の学習用パケットについて抽出した前記全ての第1の組み合わせのそれぞれについて、当該第1の組み合わせが前記複数の学習用パケットにおいて出現する回数である第1の数をカウントし、
抽出した前記全ての第1の組み合わせのそれぞれについて、カウントすることで得られた複数の前記第1の数に基づいて、スムージング処理を行うことで前記複数の学習用パケットにおいて当該第1の組み合わせが出現する確率である複数の第1の確率を算出し、
算出した前記複数の第1の確率を前記異常検知モデルとして前記メモリに記憶させる
学習装置。
A learning device for learning an abnormality detection model for detecting whether there is an abnormality in communication within a monitoring target or communication between the monitoring target and a network to which the monitoring target is connected. ,
The learning device comprises a processor and a memory,
The processor is
Get multiple learning packets,
Among a plurality of data units obtained by dividing a data string constituting a payload included in the learning packet for each of the acquired plurality of learning packets into A (A is an integer of 1 or more) bits. All possible first combinations of N (N is an integer of 2 or more) data units, in mutually consecutive arrangement order in the payload, or B (B is an integer of 1 or more) Extract the first combination of N data units in the order of the skipping,
A first number, which is the number of times that the first combination appears in the plurality of learning packets, is counted for each of the first combinations extracted for the plurality of learning packets,
The smoothing process is performed based on the plurality of first numbers obtained by counting each of the extracted first combinations, and the first combination is obtained in the plurality of learning packets. Calculate a plurality of first probabilities that are probabilities of appearing,
A learning device for storing the plurality of calculated first probabilities in the memory as the abnormality detection model.
JP2018117398A 2017-12-15 2018-06-20 Anomaly detection method and anomaly detection device Active JP7082533B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/218,975 US10785244B2 (en) 2017-12-15 2018-12-13 Anomaly detection method, learning method, anomaly detection device, and learning device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762599265P 2017-12-15 2017-12-15
US62/599,265 2017-12-15

Publications (2)

Publication Number Publication Date
JP2019110513A true JP2019110513A (en) 2019-07-04
JP7082533B2 JP7082533B2 (en) 2022-06-08

Family

ID=67180293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018117398A Active JP7082533B2 (en) 2017-12-15 2018-06-20 Anomaly detection method and anomaly detection device

Country Status (1)

Country Link
JP (1) JP7082533B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021153032A1 (en) * 2020-01-31 2021-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Anomaly detection method and anomaly detection device
WO2021255800A1 (en) * 2020-06-15 2021-12-23 日本電信電話株式会社 Packet collecting system, packet integration analysis device, packet collecting method, and program
KR20220056583A (en) * 2020-10-28 2022-05-06 주식회사 케이티 Device, method and computer program for determining quality anomaly score of wireless network
WO2022190198A1 (en) * 2021-03-09 2022-09-15 日本電信電話株式会社 Estimation device, estimation method and program
CN115834453A (en) * 2023-02-14 2023-03-21 浙江德塔森特数据技术有限公司 Protocol detection method of hand-held protocol detection terminal and hand-held protocol detection terminal
JP7258257B1 (en) * 2022-08-08 2023-04-14 三菱電機株式会社 Programmable controller, exception access learning method and program
WO2023112333A1 (en) * 2021-12-17 2023-06-22 日本電信電話株式会社 Estimation device, estimation method, and estimation program
CN116458119A (en) * 2020-11-19 2023-07-18 日本电信电话株式会社 Estimation device, estimation method, and estimation program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014228972A (en) * 2013-05-20 2014-12-08 日本電信電話株式会社 Information processing device, information processing system, information processing method, and learning program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014228972A (en) * 2013-05-20 2014-12-08 日本電信電話株式会社 Information processing device, information processing system, information processing method, and learning program

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021153032A1 (en) * 2020-01-31 2021-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Anomaly detection method and anomaly detection device
WO2021255800A1 (en) * 2020-06-15 2021-12-23 日本電信電話株式会社 Packet collecting system, packet integration analysis device, packet collecting method, and program
JP7396483B2 (en) 2020-06-15 2023-12-12 日本電信電話株式会社 Packet collection system, packet integration analysis device, packet collection method, and program
KR20220056583A (en) * 2020-10-28 2022-05-06 주식회사 케이티 Device, method and computer program for determining quality anomaly score of wireless network
KR102531570B1 (en) 2020-10-28 2023-05-10 주식회사 케이티 Device, method and computer program for determining quality anomaly score of wireless network
CN116458119A (en) * 2020-11-19 2023-07-18 日本电信电话株式会社 Estimation device, estimation method, and estimation program
WO2022190198A1 (en) * 2021-03-09 2022-09-15 日本電信電話株式会社 Estimation device, estimation method and program
WO2023112333A1 (en) * 2021-12-17 2023-06-22 日本電信電話株式会社 Estimation device, estimation method, and estimation program
JP7258257B1 (en) * 2022-08-08 2023-04-14 三菱電機株式会社 Programmable controller, exception access learning method and program
WO2024033972A1 (en) * 2022-08-08 2024-02-15 三菱電機株式会社 Programmable controller, exceptional access learning method, and program
CN115834453A (en) * 2023-02-14 2023-03-21 浙江德塔森特数据技术有限公司 Protocol detection method of hand-held protocol detection terminal and hand-held protocol detection terminal
CN115834453B (en) * 2023-02-14 2023-06-02 浙江德塔森特数据技术有限公司 Protocol detection method of handheld protocol detection terminal and handheld protocol detection terminal

Also Published As

Publication number Publication date
JP7082533B2 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
US10785244B2 (en) Anomaly detection method, learning method, anomaly detection device, and learning device
JP2019110513A (en) Anomaly detection method, learning method, anomaly detection device, and learning device
Anton et al. Anomaly-based intrusion detection in industrial data with SVM and random forests
EP4124975A1 (en) Discovering cyber-attack process model based on analytical attack graphs
US10679135B2 (en) Periodicity analysis on heterogeneous logs
US9507768B2 (en) Cognitive information security using a behavioral recognition system
CN111262722A (en) Safety monitoring method for industrial control system network
EP3948604B1 (en) Computer security
JP6491356B2 (en) Classification method, classification device, and classification program
CN113992349B (en) Malicious traffic identification method, device, equipment and storage medium
CN109660518A (en) Communication data detection method, device and the machine readable storage medium of network
EP3336739B1 (en) A method for classifying attack sources in cyber-attack sensor systems
Ting et al. Compression analytics for classification and anomaly detection within network communication
GB2583892A (en) Adaptive computer security
CN112019497A (en) Word embedding-based multi-stage network attack detection method
Thom et al. Smart recon: Network traffic fingerprinting for IoT device identification
US11477225B2 (en) Pre-emptive computer security
CN107111609A (en) Lexical analyzer for neural language performance identifying system
GB2582609A (en) Pre-emptive computer security
Daneshgadeh et al. An empirical investigation of DDoS and Flash event detection using Shannon entropy, KOAD and SVM combined
US11436320B2 (en) Adaptive computer security
Reddy et al. Network attack detection and classification using ann algorithm
CN116170227A (en) Flow abnormality detection method and device, electronic equipment and storage medium
EP3799367B1 (en) Generation device, generation method, and generation program
US20230188552A1 (en) System and method for autonomously fingerprinting and enumerating internet of thing (iot) devices based on nated ipfix and dns traffic

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220527

R150 Certificate of patent or registration of utility model

Ref document number: 7082533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150