JP6890498B2 - ネットワーク装置、パケットを処理する方法、及びプログラム - Google Patents

ネットワーク装置、パケットを処理する方法、及びプログラム Download PDF

Info

Publication number
JP6890498B2
JP6890498B2 JP2017151552A JP2017151552A JP6890498B2 JP 6890498 B2 JP6890498 B2 JP 6890498B2 JP 2017151552 A JP2017151552 A JP 2017151552A JP 2017151552 A JP2017151552 A JP 2017151552A JP 6890498 B2 JP6890498 B2 JP 6890498B2
Authority
JP
Japan
Prior art keywords
packet
value
packets
unit
vector value
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.)
Active
Application number
JP2017151552A
Other languages
English (en)
Other versions
JP2019033312A5 (ja
JP2019033312A (ja
Inventor
直輝 谷田
直輝 谷田
和 三村
和 三村
雄次 對馬
雄次 對馬
松原 大典
大典 松原
勝史 今
勝史 今
大橋 哲也
哲也 大橋
浩行 三喜田
浩行 三喜田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017151552A priority Critical patent/JP6890498B2/ja
Priority to US15/919,249 priority patent/US20190044913A1/en
Publication of JP2019033312A publication Critical patent/JP2019033312A/ja
Publication of JP2019033312A5 publication Critical patent/JP2019033312A5/ja
Application granted granted Critical
Publication of JP6890498B2 publication Critical patent/JP6890498B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク装置に関する。
インフラの制御システムにおいてセキュリティ対策を行うにあたり、制御システムの動作が変わる可能性があることから、ネットワークを構成する装置のプログラム変更が困難である。そのため、制御ネットワーク上のパケットを監視することによるセキュリティ対策が必要となる。
このため、制御ネットワークのパケットを監視することによって、不審な通信や乗っ取りプロセスの発生を検出する技術が従来から取り組まれている。しかしながら、制御システムにおける正しい通信を用いてサイバー攻撃が行われた場合、従来技術では攻撃を検出できない。正しい通信による攻撃を防ぐためには、業務としての通信パターンを識別し、正しい通信における不正な業務を検出することが重要である。
本技術分野の背景技術として、国際公開第2016/20660号(特許文献1)がある。特許文献1には、コンピュータシステムに対するサイバー脅威を検出する方法が開示されている。この方法は、処理装置によって実行されるように構成されており、コンピュータシステムに関連する第1エンティティに関連する入力データを受信し、前記受信した入力データの特性を表すメトリックを入力データから導出し、一つ以上のモデルを使用してメトリックを解析し、分析されたメトリックと第1エンティティの正常な動作モデルに従って、サイバー脅威の可能性を示すサイバー脅威リスクパラメータを決定する。また、コンピュータ読取可能媒体、コンピュータプログラム、及び脅威検出システムも開示されている。
国際公開第2016/20660号
特許文献1に記載の方法では、ネットワークパケットデータを含む複数の測定基準から正常な挙動のモデルとサイバー脅威のリスクを分析するが、ネットワークパケットのフォーマットによって定められる情報の意味(例えば、どのフィールドに何のデータが書かれているか)が未知である場合に、ネットワークパケットデータから業務に関する情報を抽出して分析できない課題がある。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、パケットを処理するネットワーク装置であって、所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信するパケット転送装置と接続されるインターフェースとを備え、前記パケット転送装置からパケットを受信する受信処理部と、前記受信したパケットの各バイトの値であるスカラ値を、所定のベクトル化アルゴリズムによってベクトル値に変換するベクトル化部と、前記受信したパケットが所定のパケットであるかに基づいて、一連の業務のパケットであるかを判定して、前記受信したパケットを分類するグループ化部と、前記一連の業務のパケットの変化によって、正常業務でない通信が発生したことを判定する監視部と、前記ベクトル化部によってベクトル値に変換されたデータを画像として表示するための表示データを生成する画像化部とを備え、前記画像化部は、前記変換されたベクトル値が3次元ベクトル値である場合、当該3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、前記変換されたベクトル値が3次元ベクトル値でない場合、当該ベクトル値を3次元ベクトル値に変換し、前記変換された3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、パケットの先頭からのバイト数を横軸にして、1パケットを縦軸の1行として表示する画像データを生成する。
本発明の一態様によれば、通信情報を正確に分析でき、業務の情報を抽出できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のネットワークシステムの構成の一例を示す説明図である。 実施例1の分析装置のハードウェア構成及びプログラム構成の一例を示すブロック図である。 実施例1の分析装置が受信するミラーパケットのフォーマットの一例を示す図である。 実施例1の分析装置及び転送装置各機能部の関係を示すブロック図である。 実施例1の通信状態管理部が保持するデータ構造の一例を示す図である。 実施例1の通信状態管理部が保持するデータ構造の一例を示す図である。 実施例1のベクトル化ルールが保持するデータ構造の一例を示す図である。 実施例1の受信処理部が実行する処理の詳細を示すフローチャートである。 実施例1のグループ化部が実行する処理の詳細を示すフローチャートである。 実施例1のベクトル化部が実行する処理の詳細を示すフローチャートである。 実施例1の画像化部が実行する処理の詳細を示すフローチャートである。 実施例1の画像化部が出力する画面の例を示す図である。 実施例1の機械学習部が実行する処理の詳細を示すフローチャートである。 実施例1の監視部が実行する処理の詳細を示すフローチャートである。 実施例2のネットワークシステムの構成の一例を示す説明図である。 実施例2の学習装置のハードウェア構成及びプログラム構成の一例を示すブロック図である。 実施例2の監視装置のハードウェア構成及びプログラム構成の一例を示すブロック図である。 実施例2の学習装置、監視装置及び転送装置各機能部の関係を示すブロック図である。
以下、添付図面を参照して本発明の実施例を説明する。各実施例は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成には同一の参照符号が付されている。
<実施例1>
実施例1では、本発明の基本的な一例について説明する。図1は、実施例1のネットワークシステムの構成の一例を示す図である。
実施例1のネットワークシステムは、一つ以上の分析装置100、転送装置101、ゲートウェイ102、コンピュータ103、SCADA104、HMI105、PLC106、及びWAN107から構成される制御システムネットワークである。制御システムネットワークを構成する装置は、図示した数に限られず、それぞれ一つ以上含まれていればよい。なお、以下の説明において、同種の装置を纏めて説明する場合には添え字を省略し(例えば、転送装置101)、同種の装置を別個に説明する場合には添え字を付す(例えば、転送装置101−1)。
分析装置100、ゲートウェイ102、PC103、SCADA104、HMI105、PLC106、及びWAN107は、それぞれ、転送装置101を介して相互に接続される。
図1に示す例では、WAN107及びPC103は転送装置101−1に接続し、GW102−1は転送装置101−1及び転送装置101−2に接続し、分析装置100−1、SCADA104、及びHMI105は転送装置101−2に接続し、GW102−2は転送装置101−2及び転送装置101−3に接続し、分析装置100−1、PLC106−1、及びPLC106−2は転送装置101−3に接続する。
転送装置101は、例えばスイッチやルータ等の装置であり、接続されている装置から送信されるパケットを他の装置に転送する。また、転送装置101は、受信したパケットを複製し、ミラーパケットを生成する機能を有する。転送装置101は、生成したミラーパケットを分析装置100に送信する。ゲートウェイ102は、ファイアウォール、スイッチ、ルータ、パケット中継機能を備えたサーバ等であり、接続されている装置から送信されるパケットを他の装置に転送する際に、設定されたルールに基づいてパケットの転送を遮断する機能を有する。PC103は、一般的なオフィス用途のサーバ、ワークステーション、パーソナルコンピュータ等である。
SCADA(Supervisory Control And Data Acquisition)104は、制御システムにおけるシステム管理やプロセス制御を行うコンピュータである。HMI(Human Machine Interface)105は、SCADAの情報を人が閲覧するための機能を提供するコンピュータである。PLC(Programmable Logic Controller)106は、制御システムにおける産業機械等を制御するための機能を有するコンピュータである。WAN107は、外部のネットワークである。
分析装置100は、転送装置101から受信したミラーパケットを分析し、制御システムにおける業務を抽出する。業務とは、「制御コマンドの送信から当該コマンドによる制御が終了する(例えば、制御結果の返信)までの一連のデータのやりとり」や「特定の機器に対する継続的な死活確認のためのデータのやり取り」のように、制御システムの運用において意味を成す一連のデータのやりとりである。また、分析装置100は、転送装置101から受信したミラーパケットを監視し、業務から外れた通信を検出する。さらに、分析装置100は、転送装置101から受信したミラーパケットから得た情報を可視化するインターフェースを提供する。分析装置100は、転送装置101と別に設けたが、転送装置101に内蔵されてもよい。また、1台の分析装置100が、複数の転送装置101に接続されてもよい。実施例2で後述するように、分析装置100を複数の装置に分けて構成しもてよい。分析装置100の詳細は図2を用いて後述する。
図2は、実施例1の分析装置100のハードウェア構成及びプログラム構成の一例を示すブロック図である。
分析装置100は、ハードウェア構成として、演算装置200、主記憶装置201、二次記憶装置202、NIF203、出力装置204、及び入力装置205を有する。演算装置200、主記憶装置201、二次記憶装置202、NIF203、出力装置204、及び入力装置205、システムバス206を介して互いに接続される。なお、各構成は、直接接続されてもよいし、複数に分かれたバスを介して接続されてもよい。
演算装置200は、主記憶装置201に格納されるプログラムを実行する、例えば、CPU、GPU等である。演算装置200がプログラムを実行することによって分析装置100が有する機能が実現される。以下では、機能部を主語にして処理を説明する場合、演算装置200が当該機能部を実現するプログラムを実行していることを示す。
主記憶装置201は、演算装置200が実行するプログラム及び当該プログラムの実行に必要なデータを格納する。主記憶装置201は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、演算装置200が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。また、主記憶装置201は、各プログラムが使用するワークエリア及びバッファ等の記憶領域を有する。主記憶装置201に格納されるプログラムについては後述する。
二次記憶装置202は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置で構成され、演算装置200が実行するプログラム及びデータを格納する。主記憶装置201に格納されるプログラム及びデータは二次記憶装置202に格納されてもよい。この場合、演算装置200が、二次記憶装置202からプログラム及びデータを読み出し、主記憶装置201上に当該プログラム及びデータをロードする。
NIF203は、所定のプロトコルに従って、他の装置との通信を制御するインターフェースである。本実施例の分析装置100は、転送装置101に接続するためのNIF203を有する。NIF203は、転送装置101から受信したミラーパケットを、後述する受信処理部211に出力する。
出力装置204は、分析装置100の処理結果等を出力するインターフェースである。例えば、処理結果を表示するディスプレイ、タッチパネル等が考えられる。なお、出力装置204として、他の装置に処理結果を送信するNIFが実装されてもよい。なお、出力装置204は、出力機能として実現してもよく、様々な実装方法でよい。
入力装置205は、分析装置100の制御やパラメータを指定するための入力インターフェースである。例えば、キーボード、マウス、タッチパネルなどの入力デバイスである。なお、入力装置205として、他の装置から入力を受信するNIFが実装されてもよい。なお、入力装置205は、入力機能として実現してもよく、様々な実装方法でもよい。
次に、主記憶装置201に格納されるプログラムの概要を説明する。本実施例の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、機械学習部215、学習結果記憶部216、画像化部217、監視部218を実現するためのプログラムを格納する。なお、主記憶装置201には前述した以外のプログラムが格納されてもよい。各プログラムによる処理の詳細は後述する。
受信処理部211は、転送装置101から受信したミラーパケットのデータをメモリに複製し、ミラーパケットのデータをグループ化部213へ渡す。
通信状態管理部212は、グループ化部213によってグループ化され、ベクトル化部214によってベクトル化されたミラーパケットのデータを、グループごとにベクトル値列として保存する。
グループ化部213は、ミラーパケットデータを一連の業務によって生成された可能性のあるパケットのグループに分類する。グループ化部213は、パケットを一時的に格納するバッファを有する。なお、本実施例の分析装置100では、グループ化部213は、受信処理部211が受信したパケットをグループに分類したが、ベクトル化部214がベクトル値化した後に、パケットをグループ化してもよい。
ベクトル化部214は、グループ化部213によってグループ化されたパケットデータをベクトル化する。グループ化部213からパケットデータを受け取った時点では、パケットデータは、スカラ値である各バイト値の列で表現されている。パケットのプロトコルヘッダの意味情報や時間情報などの、データ列そのものには含まれない情報を、各バイトのスカラ値に付加して、各バイトのデータをベクトル値化し、パケットデータをベクトル値の配列にする。このベクトル化により、従来パケットデータそのものを分析するだけでは得られなかった情報を抽出することを可能にする。
機械学習部215は、グループ化部213によってグループ化され、ベクトル化部214によってベクトル化されたパケットデータを用いて、機械学習によって業務による通信を学習し、パケットを分類するためのパラメータを算出する。
学習結果記憶部216は、機械学習部215が学習した、パケットデータを分類するためのパラメータを保持する。学習結果記憶部216が保持するパラメータは、監視部218が、業務による通信かによってパケットデータを分類するために利用する。
画像化部217は、グループ化部213によってグループ化され、ベクトル化部214によってベクトル化されたミラーパケットのデータから画像データを生成するための機能である。これにより、学習中のデータや監視中のデータを可視化して、パケットの傾向や、セキュリティリスクの発生を知ることが可能になる。
監視部218は、学習した正常業務と受信したミラーパケットデータとを比較して、業務によるものでないパケットを、セキュリティリスクとして検出する。
ベクトル化ルール219は、二次記憶装置202又は主記憶装置201に格納されており、ベクトル化部214によってスカラ値をベクトル値化するためのルールを保持する。ルールは設計時にハードコーディングされても、入力装置205から入力されるものでもよい。
演算装置200が実行するプログラムは、リムーバブルメディア(CD−ROM、フラッシュメモリなど)又はネットワークを介して分析装置100に提供され、非一時的記憶媒体である不揮発性の二次記憶装置202に格納される。このため、分析装置100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
分析装置100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
図3は、実施例1の分析装置100が受信するミラーパケットのフォーマットの一例を示す図である。
パケット300は、MACヘッダ310、IPヘッダ320、TCPヘッダ330、TCPオプションヘッダ340、及びペイロード360を含む。
MACヘッダ310は、DMAC311、SMAC312、TPID313、TCI314、及びType315を含む。DMAC311は、宛先MACアドレスを表す。SMAC312は、送信元MACアドレスを表す。TPID313は、タグ付きフレームであること及びタグの種類を表す。TCI314は、タグの情報を表す。Type315は、MACフレームのタイプを表す。
TCI314は、さらに、PCP316、CFI317、及びVID318を含む。PCP316は優先度を表す。CFI317はMACアドレスが正規フォームであるか否かを表す。VID318はVLANのIDを表す。なお、VLANが使用されていないネットワークの場合、TPID313及びTCI314は存在しない。この場合、分析装置100はVIDが「0」であるものとして処理を行う。
IPヘッダ320は、IP length321、protocol322、SIP323、及びDIP324を含む。IP length321は、MACヘッダ310を除くパケット長を表す。protocol322は、プロトコル番号を表す。SIP323は、送信元IPアドレスを表す。DIP324は、宛先IPアドレスを表す。
TCPヘッダ330は、src.port331、dst.port332、SEQ333、ACK334、flag335、tcp hlen336、及びwin_size337を含む。src.port331は、送信元ポート番号を表す。dst.port332は、宛先ポート番号を表す。SEQ333は、送信シーケンス番号を表す。ACK334は、受信シーケンス番号を表す。flag335は、TCPフラグ番号を表す。tcp hlen336は、TCPのヘッダ長を表す。win_size337は、対向装置へ通知する 広告ウィンドウサイズを表す。
TCPオプションヘッダ340は、0又は複数のオプションを含む。例えば、option kind341、option length342、及びオプション情報343等のオプションが含まれる。option kind341は、オプション種別を表す。option length342は、オプション長を表す。オプション情報343は、オプションの種類に応じた情報を表す。
例えば、MSS(Maximum Segment Size)オプションは、TCP通信を開始するときに自装置が受信可能なMSSサイズを対向装置に通知するために用いられる。SACK(Selective ACKnowledgement)オプションは、TCP通信を開始するときに、自装置がSACKオプションに対応可能であることを対向装置に通知するために用いられる。SACKオプションは、さらに、通信中にパケットの廃棄が検出されたときに部分的に受信できたデータ箇所を対向装置に通知するために用いられる。タイムスタンプオプションは、通信中の自装置の受信時刻を対向装置に通知するために用いられる。ウィンドウスケールオプションは、win_size337によって通知される値を右シフトするビット数を対向装置に通知して対向装置に通知可能な広告ウィンドウサイズの最大値を大きくするために用いられる。このように、TCPオプションヘッダ340は、通信開始時及び通信中に自装置の対応可能な機能及び情報を対向装置に伝えるために用いられる。
図4は、実施例1の分析装置100及び転送装置101の各機能部の関係を示すブロック図である。転送装置101は、三つ以上のNIF411−1、411−2、411−3を有し、また、ポートミラーリング機能部410を含む。
ポートミラーリング機能部410は、NIF411−1から受信したパケットをNIF411−2に転送し、受信したパケットと同一のミラーパケットをNIF411−3から分析装置100に送信する。また、ポートミラーリング機能部410は、NIF411−2から受信したパケットをNIF411−1に転送し、受信したパケットと同一のミラーパケットをNIF411−3から分析装置100に送信する。
NIF203は、転送装置101から受信したミラーパケットを受信処理部211に出力する。
受信処理部211は、NIF203からの入力を監視しており、パケットが入力されるとグループ化部213に出力する。
グループ化部213は、受信処理部211から受信したパケットデータを、所定のアルゴリズムによって、一連の業務によって生成された可能性があるグループに分類する。分類後、グループ単位でパケットデータをベクトル化部214に出力する。所定のアルゴリズムについては後述する。
ベクトル化部214は、グループ化部213から受信した、グループ化されたパケットデータを、ベクトル化ルール219に記載される方法に従って、ベクトル化して、ベクトル値列を生成する。ベクトル化部214は、ベクトル化したデータを通信状態管理部212及び画像化部217へ出力する。
通信状態管理部212は、生成されたベクトル値列を、分類されたグループに従って保持する。通信状態管理部212が保持したデータ(ベクトル値列)は、機械学習部215及び監視部218によって参照される。
機械学習部215は、通信状態管理部212からグループ化されたベクトル値列を受信し、業務による通信を学習し、学習結果を学習結果記憶部216に格納する。
学習結果記憶部216は、機械学習部215によって学習結果として得られたパラメータを保持する。学習結果記憶部216が保持するパラメータは、監視部218が業務による通信と業務によらない通信とを分類するために使用される。
画像化部217は、グループ化部213によってグループ化され、ベクトル化部214によってベクトル化されたミラーパケットのデータ(ベクトル値列)を画像データに変換する。ベクトル値が3次元ベクトルでない場合、3次元ベクトルに変換して、RGBデータに変換するとよい。
監視部218は、通信状態管理部212からグループ化されたベクトル値列を受信し、学習結果記憶部216が保持するパラメータを参照して、ベクトル値列が業務によるものか判定する。業務によるものでない場合、当該パケットにはセキュリティリスクがあると判定し、出力装置204に異常を出力する。
ベクトル化ルール219は、ベクトル化部214がバイト値をベクトル化するためのルールを保持する。ルールは、ルールは設計時にハードコーディングされても、入力装置205から入力されるものでもよい。
以上に説明した機能ブロックは、前述したように、演算装置200がプログラムを実行することによって実現されるが、その一部又は全部をハードウェア(例えば、FPGA)で構成してもよい。
図5は、通信状態管理部212が保持するデータ構造の一例を示す図である。
通信状態管理部212は、グループ化部213により分類されたグループに従って、ベクトル化部214によってベクトル化されたデータを保持する。図5に記載した例では、四つのテーブル500−1〜500−4が、4グループのデータを保持している。各行501−1、501−2は、ミラーパケットのデータに相当する。各テーブルの列502−0、502−1、502−2…は、元のパケットデータの各バイト値に相当する。図5では、各バイト値が、3次元のベクトル値に変換されて保持されている。なお、図5に記載した例では、ベクトル値列をグループ毎のテーブル形式で保持するが、他の形式でベクトル値列を保持してもよい。
図6は、学習結果記憶部216が保持するデータ構造の一例を示す図である。
学習結果記憶部216は、機械学習部215が学習したパラメータを、業務による通信であるかによってパケットデータを分類するために、保持する。図6に記載した例では、各行601−1、601−2、… 601−mは、ベクトル化部214によるパケットデータの分類を示し、m種類に分類されている。また、V1〜Vx 602−1〜602−xは、各分類における各ベクトル値の「重心」を示す。図5に示す通信状態管理部212に保持されているパケットデータは、パケット長が1500バイトであるため、図6におけるxは1500である。さらに、farthest603は、各分類における「重心」から最も遠い「距離」を示す。「重心」及び「距離」については後述する。なお、図6に記載した例では、重心及び距離をテーブル形式で保持するが、他の形式で重心及び距離を保持してもよい。
図7は、ベクトル化ルール219が保持するデータ構造の一例を示す図である。
ベクトル化ルール219は、ベクトル化部214がパケットデータの各バイトの値をベクトル値列に変換するためのルールを保持する。
ベクトル化ルール219の各行には、パケットデータのバイト値をベクトル値へ変換するためのルールが定義されており、複数のルールが保持可能となっている。ルール#1 701−1を適用後、ルール#2 701−2を適用、と順に、定義されているだけのルールが適用される。なお、最先に適用されるルールが適用された時点で、以後のルールを適用しないようにしてもよい。
ベクトル化ルール219の各ルールは、フィルタ条件開始位置702−1、フィルタ条件終了位置702−2、フィルタ条件値702−3、適用範囲開始位置702−4、適用範囲終了位置702−5、及びベクトル化関数702−6を含む。
ベクトル化ルール219の各ルールは、パケットデータの先頭から、フィルタ条件開始位置702−1のバイト数とフィルタ条件終了位置702−2のバイト数との間の数値が、フィルタ条件値702−3に一致する場合、パケットデータの先頭から、適用範囲開始位置702−4のバイト数と適用範囲終了位置702−5のバイト数との間の数値にベクトル化関数702−6を適用するものとして定義される。
具体的には、ルール#1 701−1は、フィルタ条件開始位置702−1及びフィルタ条件終了位置702−2に定義されているバイトの数値がフィルタ条件値702−3、である場合、すなわち、1から10バイト目の値が80である場合、適用範囲開始位置702−4及び適用範囲終了位置702−5に定義されている30から70バイト目の値に、ベクトル化関数F(x)を適用するものである。ここでF(x)を、元のバイト値xを引数とするF(x)=(x,0,x^2)と定義すると、特定のバイトの数値の変換量を大きくし、当該バイトの数値を強くした次元を持つベクトルを生成できる。これは、例えば、フィルタ条件に特定のプロトコルであることを定義して、その場合に、特定のベクトル成分を強くすることによって、特定のプロトコルであるという情報を埋め込むことができる。
また、ルール#2 701−2は、フィルタ条件開始位置702−1及びフィルタ条件終了位置702−2に定義されているバイトの数値がフィルタ条件値702−3、である場合、すなわち、4から20バイト目の値が22である場合、適用範囲開始位置702−4及び適用範囲終了位置702−5に定義されている80から90バイト目の値に、ベクトル化関数G(x)を適用するものである。ここでG(x)を、G(x)=(0,0,0)と定義すると、特定のバイトの数値に意味を持たせない次元を持つベクトルを生成できる。これは、例えば、ある条件では、特定のバイト数の数値が意味を持たないという情報を埋め込むことができる。
このように、ベクトル化部214では、ベクトル化ルール219に定義されたルールを用いることによって、パケットの各バイトの値からパケットを解析するために有用な意味が付加されたベクトルを生成する。
なお、例示したように、ベクトル化関数は、元のバイト値を含んでも、含まなくてもよい。また、ある位置(フィルタ条件範囲)のバイト値によって、他の位置(フィルタ適用範囲)のバイト値が制御されてもよい。さらに、例示では、パケットの各バイト値に対応して三次元のベクトルを生成したが、他の次元のベクトルを生成してもよい。
また、ベクトル化ルールを、ベクトル化関数で定義したが、関数を用いず、予め定めた対応表など、他の形式で定義されたルールを用いてスカラ値をベクトル値に変換してもよい。
次に、各部による処理をフローチャートを用いて説明する。図8は、受信処理部211が実行する処理の詳細を示すフローチャートである。
受信処理部211は、分析装置100が起動した後、転送装置101からミラーパケットの受信を待ち受け(ステップS810)、受信したミラーパケットデータをグループ化部へ複製する(ステップS820)。そして、受信処理部211は、ステップS810及びステップS820の処理を繰り返す。
受信処理部211は、分析装置100の起動時以外に、この処理を開始してもよい。
図9は、グループ化部213が実行する処理の詳細を説明するフローチャートである。
グループ化部213は、受信処理部211からミラーパケットデータを受け取ると(ステップS910)、受け取ったミラーパケットデータを、所定のアルゴリズムを用いて分類する(ステップS915)。以下、ステップS915における所定のアルゴリズムのいくつかの例を説明する。
一つ目の例として、グループ化部213は、src.port331、dst.port332のうち小さいほうのポート番号であるservice.port及び、protocol322、SIP323、DIP324の四つの値が同一性かによって、受信したミラーパケットデータを分類してもよい。この例では、同一端末間の同一アプリケーションによる通信であるパケットを分類できる。
二つ目の例としてパケット長及びprotocol322の二つの値が同一かによって、受信したミラーパケットデータを分類してもよい。この例では、同一の命令を含んだパケットを分類できる。
次に、グループ化部213は、分類されたミラーパケットデータがグループの先頭パケットであるかを、所定のアルゴリズムを用いて判定する(ステップS911)。以下、ステップS911における所定のアルゴリズムのいくつかの例を説明する。
一つ目の例として、所定のデルタ時間を空けて同一の分類がされたパケットを受信した場合に、当該パケットをグループ先頭パケットであると判定する。この例では、一連の業務による継続した通信が行われている場合に、一連の業務のパケットをグループ化できる。
二つ目の例として、flag335にSYNフラグが設定されている場合に、受信したパケットをグループ先頭パケットであると判定する。この例では、一連の業務ごとに通信が切断されるプロトコルにおいて、一連の業務のパケットをグループ化できる。
三つ目の例として、ペイロード350の特定のフィールドの値をグループ化の指標(いわゆる番兵値)として、番兵値が特定の値である場合に、受信したパケットをグループ先頭パケットであると判定する。この例は、ペイロードの定義や意味情報の一部が分かっている場合に効果的である。
その結果、受信したパケットがグループ先頭パケットでない場合、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
一方、受信したパケットがグループ先頭パケットである場合、グループ化部213は、バッファが空であるかを判定する(ステップS912)。その結果、バッファが空である場合、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
一方、バッファが空でない場合、グループ化部213は、バッファに格納されているパケットをベクトル化部214へ複製し、バッファをクリアする(ステップS913)。さらに、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
受信パケットをバッファに格納した後、この処理を終了して、次のパケットの受信を待ち受ける。
図10は、ベクトル化部214が実行する処理の詳細を示すフローチャートである。
ベクトル化部214は、グループ化部213からデータを受け取ると(ステップS1010)、ベクトル化ルール219に記載されたルールに従って、データをベクトル化する(ステップS1020)。そして、ベクトル化部214は、ベクトル化したデータを通信状態管理部212へ送り、処理を終了する(ステップS1030)。
図11は、画像化部217が実行する処理の詳細を示すフローチャートである。
画像化部217は、ベクトル化部214からデータを受け取ると(ステップS1110)、受け取ったデータが3次元ベクトル列か否かを判定する(ステップS1120)。
画像化部217は、ステップS1120で3次元ベクトル列であると判定した場合、ステップS1130に進む。一方、画像化部217は、3次元ベクトル列でないと判定した場合、所定のアルゴリズムによって各ベクトル値を3次元ベクトルに変換し(ステップS1140)、ステップ1130へ進む。
所定のアルゴリズムは、例えば、n次元ベクトルでn>3の場合、nを3で除した剰余(n mod 3)で各次元を分類して、分類された次元の値を加算することによって、n次元ベクトルを3次元ベクトルに変換する。例えば、5次元ベクトル(11,22,33,44,55)は、3次元ベクトル(55,77,33)に変換される。
一方、画像化部217は、ステップS1120で3次元ベクトル列であると判定した場合、3次元ベクトルの各次元の値が画像のRGB値を示すものとして、BMP形式の画像データに変換する(ステップS1130)。RGBの代わりに、他の色空間を用いてもよい。BMP形式の代わりに、GIFやPNGといった他の形式の画像データに変換してもよい。
画像化部217は、画像データを出力装置204に出力し(ステップS1150)、処理を終える。
図12は、画像化部217が出力する画面の例を示す図である。
図12に示す画面では、一つのグループに分類されたベクトル値が、パケットの先頭からのバイト数を横軸にして、パケットの各バイトを色の濃さで表示し、1行(縦1ドット)につき1パケットの情報が表示される。すなわち、縦軸はパケットを表す。なお、1バイトの情報を所定数のドット(例えば、4ドット)で表示してもよく、所定バイトの情報を1ドットで表示してもよい。
図12に示す画面では、長さが揃ったパケットが分類されているが、長さが異なるパケットが分類されている場合は、0でパディングしてパケット長を揃えるとよい。
このように、パケットを表示することによって、縦方向の色の変化によって、該当部分はパケットごとに値が同じか異なるかが分かる。
図13は、機械学習部215が実行する処理の詳細を示すフローチャートである。
機械学習部215は、通信状態管理部212からデータを受け取ると(ステップS1210)、機械学習により、ベクトルデータを分類する(ステップS1220)。
機械学習の一例として、以下に説明する方法を採用できる。通信状態管理部212に保持されているグループ化されたベクトル値列ごとの距離を求める。距離は、ベクトル値列の先頭から順にユークリッド距離を求めることによってスカラ値列を作り、スカラ値列がn個の場合、各スカラ値の二乗の和のn乗根を求めることによって算出する。各グループ化されたベクトル値ごとの距離が求まった後、階層クラスタ分析として一般に知られる方法によって、各ベクトル値を複数個のクラスタに分割する。生成されるクラスタの数mは、機械学習の開始時に入力装置205から入力しても、設計時にハードコーディングしても、機械学習の過程で自動的に生成してもよい。生成されたm個のクラスタが、業務として分類された通信となるため、mの値は、分析装置100が対象とするシステムにおいて、システムの操作者が業務の種類として把握している数に近く設定するとよい。
クラスタへの分割後、各クラスタの重心を求める。重心は、各クラスタに含まれるベクトル値列の全てのベクトル値の幾何学的な重心を求めることによって、ベクトル値として求める。
また、各クラスタの各ベクトル値と重心との距離を求め、各クラスタにおける最も遠い距離を求める。
機械学習部215は、学習結果として、各クラスタの重心と、各クラスタにおけるもっとも遠い距離とを、学習結果記憶部216に保存し、処理を終了する(ステップS1230)。
なお、階層クラスタ分析による機械学習の一例を説明したが、新たに受信したパケットと従来のパケットとで傾向が異なるかを判定可能な学習ができれば、他の機械学習の方法でもよい。
図14は、監視部218が実行する処理の詳細を示すフローチャートである。
監視部218は、通信状態管理部212からデータを受け取ると(ステップS1310)、学習結果記憶部216に格納された情報を用いて、ベクトル化されたデータを分類する(ステップS1320)。学習結果記憶部216に格納されたm個の重心と、ベクトル化されたデータとの距離を求め、もっとも近いクラスタに分類する。
監視部218は、学習結果記憶部216に格納された情報を用いてベクトル化されたデータの分類結果が学習時の分類と一致するかを判定する(ステップS1330)。分類されたクラスタの重心との距離が、最も遠い距離であるfarthest603より遠い場合、監視部218が受け取ったデータは当該クラスタに分類すべきものではなく、学習時の分類と一致しないと判定する。
監視部218は、ステップS1330にて、一致すると判定した場合、処理を終了する。一方、監視部218は、一致しないと判定した場合、監視部218が受け取ったデータはいずれのクラスタにも分類されないので、正常業務でない通信が発生したと判定し、異常を検知した旨を出力装置204へ出力し、処理を終了する(ステップS1340)。出力装置204へ以上を出力する形態として、異常発生を報知する画面を表示するためのデータを出力したり、警報音を発生したり、HMI105へ通知を出力して、回転警告灯を動作させたりする。
実施例1の分析装置100は、ポートミラーリング機能部410を有する転送装置101から送信されるミラーパケットを用いて処理を実行したが、ネットワークタップがネットワーク信号を分岐して取り出し、取り出したパケットを用いて同様の処理を実行してもよい。
実施例1では、通信プロトコルとしてTCPを例に説明したが、本実施例はTCP以外のプロトコルにも適用可能である。例えば、UDP等のように、データが一定の長さを上限としてパケットに区切られて送受信される通信プロトコルであれば、本発明を適用できる。
また、長さが異なるパケットを一つのクラスタに分類する場合、後のデータを0でパディングしてパケット長を揃えるとよい。
実施例1によれば、通信プロトコル中のペイロードデータの意味情報が未知の場合においても、通信を分析して業務の情報を抽出し、サイバー攻撃などのセキュリティリスクを検知できる。特に、ネットワーク内へのセキュリティソフトのインストールによって、ノードにおいて遅延を生じさせたくない場合でもセキュリティリスクを検知できる。また、セキュリティソフトをインストールした場合には動作検証が必要であるところ、動作検証を必要とせずに、正常業務でない通信を検知できる。
なお、本発明は、通信プロトコル中のフォーマット(例えば、ペイロードデータの意味情報)が既知の場合にも、適用可能である。その場合、セキュリティリスクの検知のために、通信プロトコル中のペイロードデータの意味情報を解釈するためのプログラム設計の工数を削減できる。
<実施例2>
実施例1では、正常な業務による通信の学習と、通信が正常な業務に含まれるか否かの監視とを同一の分析装置100に実装する。実施例2では、学習と監視を異なる装置に実装する例を示す。
以下、実施例1との差異を中心に、実施例2について説明する。なお、実施例1と同一の構成、同一の処理には同一の符号を付し、それらの説明を省略する。
図15は、実施例2のネットワークシステムの構成の一例を示す図である。
実施例2のネットワークシステムは、一つ以上の転送装置101、学習装置1410、監視装置1420、ゲートウェイ102、コンピュータ103、SCADA104、HMI105、PLC106、及びWAN107から構成される制御システムネットワークである。制御システムネットワークを構成する装置は、図示した数に限られず、それぞれ一つ以上含まれていればよい。なお、以下の説明において、同種の装置を纏めて説明する場合には添え字を省略し(例えば、学習装置1410)、同種の装置を別個に説明する場合には添え字を付す(例えば、学習装置1410−1)。
学習装置1410、監視装置1420、ゲートウェイ102、PC103、SCADA104、HMI105、PLC106、及びWAN107は、それぞれ、転送装置101を介して相互に接続される。
図15に示す例では、実施例1における分析装置100−1の代わりに、学習装置1410−1及び監視装置1420−1が転送装置101−2に接続される。また、実施例1における分析装置100−2の代わりに、学習装置1410−2及び監視装置1420−2が転送装置101−3に接続される。
学習装置1410は、転送装置101から受信したミラーパケットを分析し、制御システムにおける業務を抽出する。監視装置1420は、転送装置101から受信したミラーパケットを監視し、業務から外れた通信を検出する。さらに、学習装置1410及び監視装置1420は、転送装置101から受信したミラーパケットから得た情報を可視化するインターフェースを提供する。学習装置1410の詳細は図16を用いて後述し、監視装置1420の詳細は図17を用いて後述する。
図16は、実施例2の学習装置1410のハードウェア構成及びプログラム構成の一例を示すブロック図である。
学習装置1410のハードウェア構成は、実施例1の分析装置100と同一であるため説明を省略する。
学習装置1410の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、機械学習部1710、画像化部217を実現するプログラムを格納する。受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、及び画像化部217は、実施例1と同一であるため、説明を省略する。
ベクトル化ルール219は、二次記憶装置202又は主記憶装置201に格納されており、ベクトル化部214によってスカラ値をベクトル値化するためのルールを保持する。ベクトル化ルール219は、実施例1と同一であるため、説明を省略する。
学習装置1410の機械学習部1710は、グループ化部213によってグループ化され、ベクトル化部214によってベクトル化されたパケットデータを用いて、機械学習によって業務による通信を学習し、パケットを分類するためのパラメータを算出し、算出したパラメータを、出力装置204に出力する。なお、学習装置1410が、学習結果記憶部216を有してもよい。つまり、学習結果記憶部216は、学習装置1410か監視装置1420のいずれかが有すればよい。
図17は、実施例2の監視装置1420のハードウェア構成及びプログラム構成の一例を示すブロック図である。
監視装置1420のハードウェア構成は、実施例1の分析装置100と同一であるため説明を省略する。
監視装置1420の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、学習結果記憶部216、画像化部217、監視部218を実現するプログラムを格納する。受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、学習結果記憶部216、画像化部217、及び監視部218は、実施例1と同一であるため、説明を省略する。
ベクトル化ルール219は、二次記憶装置202又は主記憶装置201に格納されており、ベクトル化部214によってスカラ値をベクトル値化するためのルールを保持する。ベクトル化ルール219は、実施例1と同一であるため、説明を省略する。
つまり、監視装置1420は、実施例1の分析装置100から機械学習部215を取り除いたものである。
図18は、実施例2の学習装置1410、監視装置1420及び転送装置101の各機能部の関係を示すブロック図である。
実施例2では、処理が重い機械学習部1710と、リアルタイムの処理が求められる監視部218とを、別の装置に実装することによって、システム全体の処理能力を高め、大量の通信に対するセキュリティリスクの検知を実現可能としている。
なお、学習装置1410と監視装置1420とで、受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、画像化部217及びベクトル化ルール219の一部又は全部を共通化し、いずれか一方に実装してもよい。
<実施例3>
実施例1では、正常な業務による通信の学習と、通信が正常な業務に含まれるか否かの監視とを同一の分析装置100に実装する。実施例3では、学習機能も監視機能も有さず、ベクトル値化したパケットのデータを画像で表示する装置の例を示す。
以下、実施例1との差異を中心に、実施例3について説明する。なお、実施例1と同一の構成、同一の処理には同一の符号を付し、それらの説明を省略する。
実施例3の分析装置100は、ハードウェア構成として、演算装置200、主記憶装置201、二次記憶装置202、NIF203、出力装置204、及び入力装置205を有する。演算装置200、主記憶装置201、二次記憶装置202、NIF203、出力装置204、及び入力装置205は、システムバス206を介して互いに接続される。なお、各構成は、直接接続されてもよいし、複数に分かれたバスを介して接続されてもよい。
実施例3の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、ベクトル化部214、画像化部217を実現するためのプログラムを格納する。なお、主記憶装置201には前述した以外のプログラムが格納されてもよい。各プログラムによる処理の詳細は前述した実施例1と同じである。
ベクトル化ルール219は、二次記憶装置202又は主記憶装置201に格納されており、ベクトル化部214によってスカラ値をベクトル値化するためのルールを保持する。ベクトル化ルール219は、実施例1と同一であるため、説明を省略する。
以上に説明したように、本発明の実施例では、ベクトル化部214が、受信したパケットの各バイトの値であるスカラ値を、所定のベクトル化アルゴリズムによってベクトル値に変換するので、ネットワークパケットの各フィールドのデータが示す意味が未知であっても、通信情報を正確に分析でき、業務の情報を抽出できる。
また、機械学習部215が、ベクトル値化されたパケットのデータを所定の学習アルゴリズムによって学習し、前記パケットが正常であることを判定するためのパラメータを生成し、監視部218が、機械学習部215が生成したパラメータを用いて、ベクトル値に変換されたパケットが正常であるか否かを判定するので、正常ではない業務のパケットを検出でき、セキュリティリスクを検出できる。
また、グループ化部213が、所定のグループ化アルゴリズムによって、前記受信したパケットを分類するので、ネットワークパケットの各フィールドのデータが示す意味が未知である場合でも、業務の種類に従ってパケットを分類できる。また、様々な振る舞いのパケットを分類して、パケットの傾向が見やすく、異常が検出しやすくパケットを分類できる。
また、グループ化部213が、SYNパケットを目印にしてパケットを分類するので、TCPプロトコルにおいて、SYNパケットは新たなセッションを確立するために用いられるものであるところ、業務単位毎にセッションを張り直す業務において、一連の業務に容易に分類できる。
また、グループ化部213が、パケットのタイムスタンプの間隔によってパケットを分類するので、同種のパケット転送される時間の差が大きければ、業務の切れ目であると判断でき、該時間差によって一連の業務を的確に分類できる。
また、グループ化部213は、所定のフィールドの値によってパケットを分類するので、特定の業務において特定のフィールドの値が分かっている場合に、的確に業務を分類できる。
また、ベクトル化部214が、受信したパケットの第1のフィールドの値が所定の条件を満たす場合に、当該条件に対応する所定のルール(例えば、ベクトル化関数)を適用してスカラ値をベクトル値に変換するので、特定のフィールドの値によって、複数のベクトル化関数を切り替えて適用でき、パケットを的確に分類できる。
また、ベクトル化部214が、第1のフィールド(例えば、ヘッダのフィールド)の値が所定の条件を満たす場合に、当該条件に対応する所定のルールを適用して第1のフィールドと異なる第2のフィールド(例えば、ペイロードのフィールド)のスカラ値をベクトル値に変換するので、あるフィールドの値が、別なフィールドの意味を示す場合に適切な情報を付加できる。例えば、ヘッダのフィールドには、ペイロードの位置や意味を定義しているものがあることから、ヘッダの情報を使用してペイロードに関する情報を付加できる。
また、画像化部217が、ベクトル値に変換されたデータを画像として表示するための表示データを生成するので、ネットワークシステム内を転送されるパケットの傾向を人が見て分かりやすく、異常が検出しやすく表示できる。また、セキュリティリスクの検出が容易になる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
100 分析装置
101 転送装置
203 NIF
204 出力装置
205 入力装置
211 受信処理部
212 通信状態管理部
213 グループ化部
214 ベクトル化部
215 機械学習部
216 学習結果記憶部
217 画像化部
218 監視部
219 ベクトル化ルール
410 ポートミラーリング機能部
1410 学習装置
1420 監視装置

Claims (14)

  1. パケットを処理するネットワーク装置であって、
    所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信するパケット転送装置と接続されるインターフェースとを備え、
    前記パケット転送装置からパケットを受信する受信処理部と、
    前記受信したパケットの各バイトの値であるスカラ値を、所定のベクトル化アルゴリズムによってベクトル値に変換するベクトル化部と、
    前記受信したパケットが所定のパケットであるかに基づいて、一連の業務のパケットであるかを判定して、前記受信したパケットを分類するグループ化部と、
    前記一連の業務のパケットの変化によって、正常業務でない通信が発生したことを判定する監視部と、
    前記ベクトル化部によってベクトル値に変換されたデータを画像として表示するための表示データを生成する画像化部とを備え、
    前記画像化部は、
    前記変換されたベクトル値が3次元ベクトル値である場合、当該3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、
    前記変換されたベクトル値が3次元ベクトル値でない場合、当該ベクトル値を3次元ベクトル値に変換し、前記変換された3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、
    パケットの先頭からのバイト数を横軸にして、1パケットを縦軸の1行として表示する画像データを生成することを特徴とするネットワーク装置。
  2. 請求項1に記載のネットワーク装置であって、
    前記一連の業務のパケットは、制御システムの運用において意味を成す一連のデータのやりとりのパケットであることを特徴とするネットワーク装置。
  3. 請求項1に記載のネットワーク装置であって、
    前記ベクトル値に変換されたパケットのデータを所定の学習アルゴリズムによって学習し、前記パケットが正常であることを判定するためのパラメータを生成する学習部を備え、
    前記監視部は、前記学習部が生成したパラメータを用いて、前記ベクトル値への変換元であるパケットが正常であるか否かを判定することを特徴とするネットワーク装置。
  4. 請求項1に記載のネットワーク装置であって、
    前記ベクトル値に変換されたパケットのデータを、前記分類されたグループに従って格納する状態管理部とを備えることを特徴とするネットワーク装置。
  5. 請求項4に記載のネットワーク装置であって、
    前記グループ化部は、前記所定のパケットとしてSYNパケットを用いてパケットを分類することを特徴とするネットワーク装置。
  6. 請求項4に記載のネットワーク装置であって、
    前記グループ化部は、前記所定のパケットとして前記受信したパケットのタイムスタンプの間隔が所定のデルタ時間であるパケットを用いてパケットを分類することを特徴とするネットワーク装置。
  7. 請求項4に記載のネットワーク装置であって、
    前記グループ化部は、前記所定のパケットとして所定のフィールドの値が所定の値であるパケットを用いてパケットを分類することを特徴とするネットワーク装置。
  8. 請求項1に記載のネットワーク装置であって、
    前記ベクトル化部は、前記受信したパケットの第1のフィールドの値が所定の条件を満たす場合に、当該条件に対応する所定のルールを適用してスカラ値をベクトル値に変換することを特徴とするネットワーク装置。
  9. 請求項8に記載のネットワーク装置であって、
    前記ベクトル化部は、前記第1のフィールドの値が所定の条件を満たす場合に、当該条件に対応する所定のルールを適用して前記第1のフィールドと異なる第2のフィールドのスカラ値をベクトル値に変換することを特徴とするネットワーク装置。
  10. 請求項9に記載のネットワーク装置であって、
    前記第1のフィールドはパケットヘッダに含まれ、前記第2のフィールドはペイロードに含まれることを特徴とするネットワーク装置。
  11. ネットワーク装置がパケットを処理する方法であって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信するパケット転送装置と接続されるインターフェースとを有し、
    前記方法は、
    前記演算デバイスが、前記パケット転送装置からパケットを受信し、
    前記演算デバイスが、前記受信したパケットの各バイトの値であるスカラ値を、所定のベクトル化アルゴリズムによってベクトル値に変換し、
    前記受信したパケットが所定のパケットであるかに基づいて、一連の業務のパケットであるかを判定して、前記受信したパケットを分類し、
    一連の業務のパケットの変化によって、正常業務でない通信が発生したことを判定し、
    前記変換されたベクトル値が3次元ベクトル値である場合、当該3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、
    前記変換されたベクトル値が3次元ベクトル値でない場合、当該ベクトル値を3次元ベクトル値に変換し、前記変換された3次元ベクトルの値が画像のRGB値を示すように画像データに変換し、
    パケットの先頭からのバイト数を横軸にして、1パケットを縦軸の1行として表示する画像データを生成することを特徴とする方法。
  12. 請求項11に記載の方法であって、
    前記一連の業務のパケットは、制御システムの運用において意味を成す一連のデータのやりとりのパケットであることを特徴とする方法。
  13. ネットワーク装置がパケットを処理するためのプログラムであって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信するパケット転送装置と接続されるインターフェースとを有し、
    前記プログラムは、
    前記パケット転送装置からパケットを受信する手順と、
    前記受信したパケットの各バイトの値であるスカラ値を、所定のベクトル化アルゴリズムによってベクトル値に変換する手順と、
    前記受信したパケットが所定のパケットであるかに基づいて、一連の業務のパケットであるかを判定して、前記受信したパケットを分類する手順と、
    一連の業務のパケットの変化によって、正常業務でない通信が発生したことを判定する手順と、
    前記変換されたベクトル値が3次元ベクトル値である場合、当該3次元ベクトルの値が画像のRGB値を示すように画像データに変換する手順と、
    前記変換されたベクトル値が3次元ベクトル値でない場合、当該ベクトル値を3次元ベクトル値に変換し、前記変換された3次元ベクトルの値が画像のRGB値を示すように画像データに変換する手順と、
    パケットの先頭からのバイト数を横軸にして、1パケットを縦軸の1行として表示する画像データを生成する手順とを、前記演算デバイスに実行させるためのプログラム。
  14. 請求項13に記載のプログラムであって、
    前記一連の業務のパケットは、制御システムの運用において意味を成す一連のデータのやりとりのパケットであることを特徴とするプログラム。
JP2017151552A 2017-08-04 2017-08-04 ネットワーク装置、パケットを処理する方法、及びプログラム Active JP6890498B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017151552A JP6890498B2 (ja) 2017-08-04 2017-08-04 ネットワーク装置、パケットを処理する方法、及びプログラム
US15/919,249 US20190044913A1 (en) 2017-08-04 2018-03-13 Network apparatus, method of processing packets, and storage medium having program stored thereon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017151552A JP6890498B2 (ja) 2017-08-04 2017-08-04 ネットワーク装置、パケットを処理する方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2019033312A JP2019033312A (ja) 2019-02-28
JP2019033312A5 JP2019033312A5 (ja) 2020-02-27
JP6890498B2 true JP6890498B2 (ja) 2021-06-18

Family

ID=65230062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017151552A Active JP6890498B2 (ja) 2017-08-04 2017-08-04 ネットワーク装置、パケットを処理する方法、及びプログラム

Country Status (2)

Country Link
US (1) US20190044913A1 (ja)
JP (1) JP6890498B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11621970B2 (en) * 2019-09-13 2023-04-04 Is5 Communications, Inc. Machine learning based intrusion detection system for mission critical systems
KR102291869B1 (ko) 2019-12-31 2021-08-19 아주대학교산학협력단 비정상 트래픽 패턴의 탐지 방법 및 장치
US11558255B2 (en) 2020-01-15 2023-01-17 Vmware, Inc. Logical network health check in software-defined networking (SDN) environments
US11909653B2 (en) * 2020-01-15 2024-02-20 Vmware, Inc. Self-learning packet flow monitoring in software-defined networking environments
JP7444287B2 (ja) * 2020-11-19 2024-03-06 日本電信電話株式会社 推定装置、推定方法、および、推定プログラム
EP4307637A1 (en) * 2021-03-09 2024-01-17 Nippon Telegraph And Telephone Corporation Estimation device, estimation method and program

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691168B1 (en) * 1998-12-31 2004-02-10 Pmc-Sierra Method and apparatus for high-speed network rule processing
JP2004312064A (ja) * 2003-02-21 2004-11-04 Intelligent Cosmos Research Institute ネットワーク異常検出装置、ネットワーク異常検出方法およびネットワーク異常検出プログラム
TWI350679B (en) * 2006-04-03 2011-10-11 Realtek Semiconductor Corp Frequency offset correction for an ultrawideband communication system
US8792491B2 (en) * 2010-08-12 2014-07-29 Citrix Systems, Inc. Systems and methods for multi-level quality of service classification in an intermediary device
JP5502703B2 (ja) * 2010-11-10 2014-05-28 日本電信電話株式会社 フロー分類方法、システム、およびプログラム
US8997227B1 (en) * 2012-02-27 2015-03-31 Amazon Technologies, Inc. Attack traffic signature generation using statistical pattern recognition
US9386030B2 (en) * 2012-09-18 2016-07-05 Vencore Labs, Inc. System and method for correlating historical attacks with diverse indicators to generate indicator profiles for detecting and predicting future network attacks
US9406016B2 (en) * 2012-10-23 2016-08-02 Icf International Method and apparatus for monitoring network traffic
US9699064B2 (en) * 2015-07-20 2017-07-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and an apparatus for network state re-construction in software defined networking
US10341241B2 (en) * 2016-11-10 2019-07-02 Hughes Network Systems, Llc History-based classification of traffic into QoS class with self-update

Also Published As

Publication number Publication date
JP2019033312A (ja) 2019-02-28
US20190044913A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
JP6890498B2 (ja) ネットワーク装置、パケットを処理する方法、及びプログラム
US10523540B2 (en) Display method of exchanging messages among users in a group
US7827531B2 (en) Software testing techniques for stack-based environments
US8270306B2 (en) Fault management apparatus and method for identifying cause of fault in communication network
US20080181136A1 (en) Medium having recorded therein network configuration verification program, network configuration verification method, and network configuration verification apparatus
KR102199054B1 (ko) 직렬 포트 기반 사이버 보안 취약점 점검 장치 및 그 방법
US20200169476A1 (en) System and method for generating a network diagram
JP6835703B2 (ja) サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム
Vollmer et al. Autonomic intelligent cyber-sensor to support industrial control network awareness
JP2019033312A5 (ja)
JP2019149681A (ja) トラフィック異常検知装置、トラフィック異常検知方法、及びトラフィック異常検知プログラム
CN114330544A (zh) 一种业务流量异常检测模型建立方法及异常检测方法
US20220191113A1 (en) Method and apparatus for monitoring abnormal iot device
JP7065744B2 (ja) ネットワーク装置、パケットを処理する方法、及びプログラム
JP7086230B2 (ja) プロトコルに依存しない異常検出
CN114363212B (zh) 一种设备检测方法、装置、设备和存储介质
Sestito et al. A general optimization-based approach to the detection of real-time Ethernet traffic events
Guo et al. FullSight: A feasible intelligent and collaborative framework for service function chains failure detection
CN113507398B (zh) 网络拓扑状态检测方法、装置、计算设备及存储介质
JP6801673B2 (ja) 表示制御装置、表示制御方法、及び、表示制御プログラム
JP5645738B2 (ja) ネットワーク管理装置及びネットワーク管理方法及びプログラム
JP7298701B2 (ja) 分析システム、方法およびプログラム
CN114741699A (zh) 结合自注意力机制的模糊测试漏洞挖掘系统
JP6866271B2 (ja) 異常検知装置、異常検知方法、及びプログラム
Mukund et al. Improving false alarm rate in intrusion detection systems using Hadoop

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210525

R150 Certificate of patent or registration of utility model

Ref document number: 6890498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150