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

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

Info

Publication number
JP7065744B2
JP7065744B2 JP2018192170A JP2018192170A JP7065744B2 JP 7065744 B2 JP7065744 B2 JP 7065744B2 JP 2018192170 A JP2018192170 A JP 2018192170A JP 2018192170 A JP2018192170 A JP 2018192170A JP 7065744 B2 JP7065744 B2 JP 7065744B2
Authority
JP
Japan
Prior art keywords
packet
abnormal
packets
procedure
arithmetic device
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
JP2018192170A
Other languages
English (en)
Other versions
JP2020061667A (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 JP2018192170A priority Critical patent/JP7065744B2/ja
Priority to PCT/JP2019/033072 priority patent/WO2020075398A1/ja
Publication of JP2020061667A publication Critical patent/JP2020061667A/ja
Application granted granted Critical
Publication of JP7065744B2 publication Critical patent/JP7065744B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

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

Description

本発明は、ネットワーク装置に関する。
インフラの制御システムにおいてセキュリティ対策を行うにあたり、制御システムの動作が変わる可能性があることから、ネットワークを構成する装置のプログラム変更が困難である。そのため、制御ネットワーク上のパケットを監視することによるセキュリティ対策が必要となる。
このため、制御ネットワークのパケットを監視することによって、不審な通信や乗っ取りプロセスの発生を検出する技術が従来から取り組まれている。しかしながら、制御システムにおける正しい通信を用いてサイバー攻撃が行われた場合、従来技術では攻撃を検出できない。正しい通信による攻撃を防ぐためには、業務としての通信パターンを識別し、正しい通信における不正な業務を検出することが重要である。
本技術分野の背景技術として、特開2018-73247(特許文献1)、特開2007-235879(特許文献2)及び特開2004-312083(特許文献3)がある。
特許文献1(特開2018-73247号公報)には、「制御対象機器から該制御対象機器の状態を示す通知を受信する受信ステップと、制御装置から前記制御対象機器へ送信された制御コマンドを受信する監視ステップと、前記受信ステップによって受信された前記制御対象機器の状態に応じて、前記監視ステップによって受信された制御コマンドの通過を許可するか遮断するかを判定する判定ステップとをコンピュータに実行させること」が開示されている(請求項7参照)。
特許文献2(特開2007-235879号公報)には、「ネットワークからデータを取得して上記ネットワークの通常状態を学習し、上記通常状態から外れる状態を上記ネットワークの異常として検知する異常検知システムと通信する学習能力評価装置において、上記ネットワークからデータを取得して記憶装置に記憶するデータ取得部と、上記データ取得部が取得したデータから上記異常検知システムの学習能力の評価項目に対する検知用データと学習用データとの組を評価用データとして抽出して記憶装置に記憶する評価用データ抽出部と、上記評価用データ抽出部が抽出した評価用データを上記異常検知システムへ通信装置によって送信する評価用データ送信部と、上記評価用データ送信部が評価用データを送信した場合に、上記異常検知システムにより検知された結果である検知結果情報を取得して記憶装置に記憶する検知結果情報取得部と、上記検知結果情報取得部が取得した検知結果情報に基づいて上記評価項目を評価するためのパラメータを処理装置によって算出する分析用データ評価部とを備えることを特徴とする学習能力評価装置」が開示されている(請求項1参照)。
特許文献3(特開2004-312083号公報)には、「ネットワーク上を伝送するトラヒックデータを入力し、学習データ作成装置により作成された学習データと前記トラヒックデータから変数を選択する変数選択手段と、該選択された変数をニューラルネットや決定木等の解析アルゴリズムを用いて解析を行い、パターンを生成する処理手段と、該生成されたパターンを用いて前記解析結果を評価する評価手段とを有し、前記変数選択手段および処理手段、評価手段における処理を1回以上行うことにより、侵入の検知に有効なパターンを生成して異常なトラヒックデータを検知する侵入検知システム」が開示されている(要約参照)。
特開2018-73247号公報 特開2007-235879号公報 特開2004-312083号公報
特許文献1に記載の方法では、制御対象機器の状態に応じた許可ルールの作成に多くの工数を要する課題がある。また、詳細仕様が開示されていないシステムへの適用が困難である。
特許文献2に記載の方法では、検知精度の収束の速さなどの学習能力を評価するが、学習量が多すぎる、いわゆる過学習によって検知精度が低下する場合が考慮されていない。
特許文献3に記載の方法では、トラヒックデータのフォーマットが不明の場合に変数を識別することが考慮されていない。
このため、詳細仕様が開示されていなかったり、仕様書が散逸しているような制御システムにも実用的なセキュリティ監視機能を導入するためには、詳細仕様を前提とせず、誤検知が少ない異常検知を実現する必要があるが、前述したように、既存の技術では解決されていない。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、 パケットを処理するネットワーク装置であって、所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを備え、前記装置からパケットを受信する受信処理部と、前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する推定部と、前記推定部が生成したパラメータを用いて、前記パケットが正常であるか異常であるかを判定する監視部と、前記監視部が異常であると判定したパケットについて、前記推定部の学習によって前記パラメータを更新するか否かを設定する検証指示部とを備え、前記監視部が異常であると判定したパケットについて、前記検証指示部によって前記パラメータを更新することが選択された場合、前記推定部は、学習に使用したパケットを受信後、異常であると判定されたパケットの間のパケットを学習に使用しないことを特徴とする。
本発明の一態様によれば、詳細仕様を前提としない監視方式によって誤検知の少ない異常検知を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のネットワークシステムの構成の一例を示す説明図である。 実施例1の分析装置のハードウェア構成及びプログラム構成の一例を示すブロック図である。 実施例1の分析装置が受信するミラーパケットのフォーマットの一例を示す図である。 実施例1の分析装置及び転送装置の各機能部の関係を示すブロック図である。 実施例1の通信状態管理部が保持するデータ構造の一例を示す図である。 実施例1の学習結果記憶部が保持するデータ構造の一例を示す図である。 実施例1の型ルール記憶部が保持するデータ構造の一例を示す図である。 実施例1の受信処理部が実行する処理の詳細を示すフローチャートである。 実施例1のグループ化部が実行する処理の詳細を示すフローチャートである。 実施例1の型推定部が実行する処理の詳細を示すフローチャートである。 実施例1の監視部が実行する処理の詳細を示すフローチャートである。 実施例1の検証指示部が実行する処理の詳細を示すフローチャートである。 実施例1の異常識別部が実行する処理の詳細を示すフローチャートである。 実施例1の監視部が実行する処理の一部(ステップS1011)の詳細を示すフローチャートである。 実施例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を有する。演算装置200、主記憶装置201、二次記憶装置202、NIF203、及び出力装置204は、システムバス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、及び異常識別部219を実現するためのプログラムを格納する。なお、主記憶装置201には前述した以外のプログラムが格納されてもよい。各プログラムによる処理の詳細は後述する。
受信処理部211は、転送装置101から受信したミラーパケットのデータをメモリに複製し、ミラーパケットのデータをグループ化部213へ渡す。また、受信処理部211は、受信したミラーパケットのデータを監視部217に転送する。
通信状態管理部212は、グループ化部213によってグループ化されたミラーパケットのデータを、グループごとに保存する。
グループ化部213は、ミラーパケットデータを一連の業務によって生成された可能性のあるパケットのグループに分類する。グループ化部213は、パケットを一時的に格納するバッファを有する。
型ルール記憶部214は、型推定部215が変数及び変数の型を推定するための変数の定義の情報を保持する。
型推定部215は、データ内に含まれる変数及び変数の型を推定する。
学習結果記憶部216は、型推定部215が推定した変数及び変数の型の情報を保持する。学習結果記憶部216が保持する情報は、業務による通信かによってパケットデータを分類するために監視部217によって利用される。
監視部217は、学習した正常業務と受信したミラーパケットのデータとを比較して、業務によるものでないパケットを、セキュリティ異常として検出する。
検証指示部218は、異常識別部219により単一の事象に基づくと識別された異常が、セキュリティ異常であるかを判定し、セキュリティ異常でない場合、監視部217により異常と判定されたデータを型推定部215に送信して、型推定結果を更新する。
異常識別部219は、監視部217が検出した異常が同一事象に基づく異常か否か識別する。
演算装置200が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してコミュニケーションサーバ装置1に提供され、非一時的記憶媒体である不揮発性の二次記憶装置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から受信したパケットデータを、一連の業務によって生成された可能性があるグループに所定のアルゴリズムによって分類する。分類後、グループ単位でパケットデータを通信状態管理部212及び型推定部215に出力する。分類に用いる所定のアルゴリズムについては図9を参照して後述する。
通信状態管理部212は、グループ化されたデータを、分類されたグループに従って保持する。通信状態管理部212が保持したデータは、型推定部215及び監視部217によって参照される。
型ルール記憶部214は、型推定部215が変数及び変数の型を推定するための変数の定義の情報を保持する。型ルール記憶部214に保持される情報は、入力装置205から入力される。
型推定部215は、グループ化されたデータを受信し、受信したデータ内に含まれる変数及び変数の型を所定のアルゴリズムによって推定し、推定結果を学習結果記憶部216に保存する。推定に用いる所定のアルゴリズムについては後述する。
学習結果記憶部216は、型推定部215によって学習結果として得られた情報を保持する。学習結果記憶部216に保持される情報は、監視部217が業務による通信と業務によらない通信とを分類するために使用される。
監視部217は、通信状態管理部212からグループ化されたデータを受信し、学習結果記憶部216に保持される情報を参照して、データが業務によるものか判定する。業務によるものでない場合、当該パケットにはセキュリティリスクがあると判定し、出力装置204に異常を出力する。
検証指示部218は、異常識別部219から異常の情報及び識別結果を受信し、受信した異常が実際にセキュリティ異常かセキュリティ異常でないかを所定のアルゴリズムによって判定し、セキュリティ異常でない場合には、異常と判定したデータを型推定部215に送信する。判定に用いる所定のアルゴリズムについては後述する。
異常識別部219は、監視部217が検出した異常が同一事象に基づく異常であるかを所定のアルゴリズムによって識別し、異常の情報及び識別結果を検証指示部218に出力する。識別に用いる所定のアルゴリズムについては後述する。
以上に説明した機能ブロックは、前述したように、演算装置200がプログラムを実行することによって実現されるが、その一部又は全部をハードウェア(例えば、FPGAやASIC)で構成してもよい。
図5は、通信状態管理部212が保持するデータ構造の一例を示す図である。
通信状態管理部212は、グループ化部213によって分類されたグループに従って、データを保持する。図5に示す例では、四つのテーブル500-1~500-4の各々が、4グループのデータを保持している。各行501-1、501-2は、ミラーパケットのデータに相当する。各テーブルの列502-0、502-1、502-2…は、元のパケットデータの各バイト値であり、Timestamp502-3は、ミラーパケットのタイムスタンプであり、例えば、受信処理部211がミラーパケットを受信した時刻である。
図6は、学習結果記憶部216が保持するデータ構造の一例を示す図である。
学習結果記憶部216は、型推定部215が推定した変数及び変数の型を保持する。学習結果記憶部216に保持される情報は、監視部217が業務による通信であるかによってパケットデータを分類するために使用される。図6に示す例では、各行601-1、601-2、…のそれぞれは、一つの変数及び変数の型の情報を示す。ID602-0は変数の識別番号であり、例えば通し番号である。
各列Protocol602-1、SrcIP602-2、DstIP602-3、SrvPort602-4、Length602-5は、検出すべき変数を含むパケットを示すための情報である。Protocol602-1はパケットのプロトコル、SrcIP602-2はパケットの送信元IPアドレス、DstIP602-3はパケットの宛先IPアドレス、SrvPort602-4はsrc.port331、dst.port332のうち小さいほうのポート番号、Length602-5はパケットのサイズを表し、これらの全てが一致するパケットに、検出すべき変数が含まれる可能性がある。
Offset602-6、Size602-7は、パケット中のどの位置に変数が含まれるかを示す情報である。Offset602-6はパケットの先頭からバイト数で数えた変数の位置、Size602-7はバイト数で表した変数の大きさ、Endian602-8は、変数のエンディアンを表す。Type602-8は変数の型を表し、Unix時間(Epoch)、ASCII Int(ASCIIで表現した整数)などの値を取る。変数の型はここで挙げた種類以外でもよい。
図6に示すデータ構造は、型推定部215が一時的なデータ構造として利用する変数リストにも用いられる。
図7は、型ルール記憶部214が保持するデータ構造の一例を示す図である。
型ルール記憶部214は、変数の型名を示すType700-1-1、変数の型の定義を示す関数を示すPointer701-1-2、及びバイト数で表した変数の大きさを示すSize701-1-3を保持する。Pointer701-1-2は、関数へのポインタでなく、独立したプログラムの起動パスでもよい。なお、同じ変数の型でも変数のサイズ毎に異なる型ルールを記憶できるように構成されている。この場合、Pointer701-1-2には異なる関数が定義されても、同じ関数が定義されてもよい。
次に、各部による処理をフローチャートを用いて説明する。
図8は、受信処理部211が実行する処理の詳細を示すフローチャートである。
分析装置100が起動した後、受信処理部211は、転送装置101からミラーパケットの受信を待ち受け(ステップS810)、受信したミラーパケットデータをグループ化部213へ複製する(ステップS820)。そして、受信処理部211は、ステップS810及びステップS820の処理を繰り返す。
受信処理部211は、分析装置100の起動時以外に、この処理を開始してもよい。
図9は、グループ化部213が実行する処理の詳細を説明するフローチャートである。
グループ化部213は、受信処理部211からミラーパケットデータを受け取ると(ステップS910)、受け取ったミラーパケットデータを、所定のアルゴリズムを用いて分類する(ステップS915)。以下、ステップS915における所定のアルゴリズムのいくつかの例を説明する。
一つ目の例として、グループ化部213は、src.port331、dst.port332のうち小さいほうのポート番号であるSrvPortと、protocol322と、SIP323と、DIP324と、パケット長の五つの値の全てが同一かによって、受信したミラーパケットデータを分類してもよい。この例では、同一端末間の同一アプリケーションによる通信であるパケットを分類できる。
二つ目の例としてパケット長及びprotocol322の二つの値が同一かによって、受信したミラーパケットデータを分類してもよい。この例では、同一の命令を含んだパケットを分類できる。
前述した二つの例は、制御システムでは特定のフォーマットに準拠して通信が行われることを利用している。このような分類によって、グループ内のパケットの特定の位置に、同一の命令やパラメータが保存されていることを可能性があるパケットを分類できる。
次に、グループ化部213は、分類されたミラーパケットデータがグループの先頭パケットであるかを、所定のアルゴリズムを用いて判定する(ステップS911)。以下、ステップS911における所定のアルゴリズムのいくつかの例を説明する。
一つ目の例として、所定のデルタ時間を空けて同一の分類がされたパケットを受信した場合に、当該パケットをグループ先頭パケットであると判定する。この例では、一連の業務による継続した通信が行われている場合に、一連の業務のパケットをグループ化できる。
二つ目の例として、flag335にSYNフラグが設定されている場合に、受信したパケットをグループ先頭パケットであると判定する。この例では、一連の業務ごとに通信が切断されるプロトコルにおいて、一連の業務のパケットをグループ化できる。
三つ目の例として、ペイロード350の特定のフィールドの値をグループ化の指標(いわゆる番兵値)として、番兵値が特定の値である場合に、受信したパケットをグループ先頭パケットであると判定する。この例は、ペイロードの定義や意味情報の一部が分かっている場合に効果的である。
その結果、受信したパケットがグループ先頭パケットでない場合、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
一方、受信したパケットがグループ先頭パケットである場合、グループ化部213は、バッファが空であるかを判定する(ステップS912)。その結果、バッファが空である場合、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
一方、バッファが空でない場合、グループ化部213は、バッファに格納されているパケットを型推定部215へ複製し、バッファをクリアする(ステップS913)。さらに、グループ化部213は、受信パケットをバッファに格納する(ステップS914)。
受信パケットをバッファに格納した後、この処理を終了して、次のパケットの受信を待ち受ける。
図10は、型推定部215が実行する処理の詳細を示すフローチャートである。
型推定部215は、グループ化部213からデータを受け取ると(ステップS1010)、グループ先頭パケットを走査し、変数を識別し、変数リストを作成する(ステップS1011)。型推定部215は、変数リストの最初の変数を選択する(ステップS1012)。型推定部215は、選択した変数がグループ内の全パケットに含まれるか否かを判定する(ステップS1013)。ステップS1013にて、選択した変数がグループ内の全パケットに含まれると判定された場合、パケットに含まれる変数の位置及び変数の型が推定されたと判定し、作成された変数リストに含まれる変数情報を学習結果記憶部216に保存し(ステップS1014)、ステップS1015に進む。
ステップS1013にて、選択した変数がグループ内の全パケットに含まれないと判定された場合、型推定部215は、変数リストの次の変数があるか判定する(ステップS1015)。ステップS1015にて、変数リストの全ての変数の処理が完了していると判定された場合、型推定部215は処理を終える。ステップS1015にて、変数リストの次の変数があると判定された場合、型推定部215は変数リストの次の変数を選択し(ステップS1016)、ステップS1013に戻る。
図14は、ステップS1011の詳細を示すフローチャートである。
ステップS1011において、型推定部215は、型ルール記憶部214に格納される最初の型を選択する(ステップS1400)。次に、グループ先頭パケットの先頭から、現在選択中の型のSize602-7バイトを選択する(ステップS1401)。選択している型のPointer701-1-2が示す関数によって、ステップS1401にて選択したバイト列が選択している型の変数であるかを判定し(ステップS1402)、Yesの場合、変数リストに現在の変数の型情報を追加し(ステップS1403)、ステップS1404に進む。
ステップS1402にて、Pointer701-1-2が示す関数は、選択しているバイト列を入力とし、真偽値を返り値とする。ステップS1402にてNoの場合、現在選択中のバイト列がパケットの最後尾であるかを判定する(ステップS1404)。ステップS1404にてYesの場合、現在選択中の型が型ルールの最後の型であるかを判定する(ステップS1406)。ステップS1406にてYesの場合、ステップS1011の処理を終える。ステップS1406にてNoの場合、ステップS1401に戻る。ステップS1404にてNoの場合、パケット中における選択範囲を1バイト後ろにずらし(ステップS1405)、ステップS1402に戻る。
図15は、型推定部215の動作を示す図である。
型推定部215は、ステップS1011によってグループ内の最初のパケットにおいて変数が含まれている可能性のある位置を特定し、ステップS1013によって変数の特定を確定させる。
図11は、監視部217が実行する処理の詳細を示すフローチャートである。
監視部217は、受信処理部211からミラーパケットのデータを受け取ると(ステップS1110)、学習結果記憶部216に格納された情報を用いて、受け取ったデータに含まれるはずの変数が含まれているかを判定する。すなわち、受け取ったミラーパケットがパケットの条件602-1~602-5と一致し、受け取ったミラーパケットの変数の位置の条件602-6~602-7の位置のデータが変数の条件602-8~602-9と一致するかによって、変数に正常な値が保持されているか否か判定する(ステップS1120)。
監視部217は、ステップS1120にて変数が正常でないと判定された場合、出力装置204へ異常を出力して(ステップS1130)、処理を終える。また、監視部217は、ステップS1120にて変数が正常であると判定された場合、処理を終える。
出力装置204へ異常を出力する形態として、異常発生を報知する画面を表示するためのデータを出力したり、警報音を発生したり、HMI105へ通知を出力して、回転警告灯を動作させたりする。
図12は、検証指示部218が実行する処理の詳細を示すフローチャートである。
検証指示部218は、異常識別部219から異常の情報を受け取ると(ステップS1210)、受け取った異常が誤検知か否かを判定する(ステップS1211)。誤検知か否かは、例えば、システム出荷前の運用試験中はセキュリティ異常がないはずのため誤検知と判定し、実際の運用中には全てセキュリティ異常と判定する。また、入力装置205から誤検知であることが入力された場合、誤検知であるとを判定してもよい。
検証指示部218は、ステップS1211にて誤検知と判定された場合、型推定部215へ異常パケットを送信し(ステップS1212)、処理を終える。検証指示部218は、ステップS1211にて誤検知でないと判定された場合、処理を終える。
型推定部215は、検証指示部218が誤検知と判定した異常パケットを学習し、学習結果記憶部216を更新する。このとき、型推定部215は、既に学習に用いたデータに加えて、異常を誤検知したパケットを学習し、既に学習に用いたデータ(すなわち、学習期間に受信したパケット)から異常を誤検知したパケットまでに受信したパケットは学習しない。このため再学習において、過学習による検知精度の低下を抑制できる。
図13は、異常識別部219が実行する処理の詳細を示すフローチャートである。
異常識別部219は、監視部217から異常の情報を受け取ると(ステップ1310)、異常検知の原因となった変数ごとに異常の情報を分類する(ステップS1311)。次に異常識別部219は、受け取った異常と同一の分類をされている異常とを比較し、時系列において所定の関係を満たすか否かを判定する(ステップS1312)。所定の関係として、例えば、タイムスタンプの差が閾値以下である、時系列上連続したパケットによる異常である、などがある。
ステップS1312にて所定の関係を満たすと判定された場合、異常識別部219は、新しい事象に起因する異常ではないと判定し、処理を終える。ステップS1312にて所定の関係を満たさないと判定された場合、異常識別部219は、新しい事象に起因する異常であると判定し、異常の情報を検証指示部218へ渡し、異常の情報を出力装置204へ出力し(ステップS1313)、処理を終える。
図18は、異常識別部219がステップS1311にて異常の情報を分類する際のデータ構造を示す図である。
Variable18-1は、異常検知の原因となった変数の識別番号であり、学習結果記憶部216のID602-0に対応する。Last anomaly time18-2は、当該変数によって検知された最後の異常のタイムスタンプである。
図16は、型ルール記憶部214のPointer701-1-2が示すポインタの処理の一例を示すフローチャートであり、変数の型をUnix時間(1970年1月1日からの経過時間)として定義する例を示す。
受け取ったミラーパケットが、Type602-9がEpochであるパケットの条件602-1~602-5と一致する場合、バイト列をUnix epochを示す整数であると解釈し、パケットのタイムスタンプとの時間差を計算する(ステップS1610)。次に、計算した時間差が所定の閾値より小さいかを判定する(ステップS1620)。所定の閾値は、例えば、1時間としてもよい。ステップS1620にて時間差が閾値より小さいと判定された場合、システムによってタイムスタンプとして保存されているバイト列であるので、真を返す(ステップS1630)。ステップS1620で閾値より大きい場合、システムによってタイムスタンプとして保存されているバイト列ではないので、偽を返す(ステップS1640)。
図17は、型ルール記憶部214のPointer701-1-2が示すポインタの処理の別の一例を示すフローチャートであり、変数の型をASCIIで表現された整数として定義する例を示す。
受け取ったミラーパケットが、Type602-9がAscii_intであるパケットの条件602-1~602-5と一致する場合、バイト列の各バイトの値がASCIIコードで整数(0~9)を示す0x30~0x39の範囲内であるかを判定し(ステップS1710)、各バイトの値が当該範囲内である場合、真を返し(ステップS1720)、各バイトの値が当該範囲内でない場合、偽を返す(ステップS1730)。
実施例1の分析装置100は、ポートミラーリング機能部410を有する転送装置101から送信されるミラーパケットを用いて処理を実行したが、ネットワークタップがネットワーク信号を分岐して取り出し、取り出したパケットを用いて同様の処理を実行してもよい。
図19は、異常識別部219が出力する画面の例を示す図である。
異常識別部219が出力する情報は、異常を識別する番号19-1、異常の情報として、異常と判定された際に用いられた変数の情報である異常情報19-2、異常と判定されたミラーパケットのタイムスタンプを示す時刻19-3、実際にセキュリティ異常であるか、型推定部215による推定結果を確認する操作のための操作領域19-4、及び異常種類毎に時系列に異常発生時刻を示すグラフ19-5を含む。操作領域19-4は、型推定部215による推定結果が異常であることを確認する「異常」ボタン、及び、型推定部215による推定結果が誤検知であり、再学習によって型推定部215による推定結果を更新することを確認する「誤検知」ボタンを含む。操作領域19-4において「誤検知」ボタンが操作された場合、検証指示部218がステップS1211で誤検知と判定する。グラフ19-5の異常の種類は、学習結果記憶部216の各行の情報に対応する。
本例では、画面への出力を例として記載したが、同様の情報をファイルに出力したり、別のプログラムに出力してもよい。
図19に示すように、異常情報19-2と、異常と判定されたパケットのタイムスタンプ19-3と、再学習を指示する操作領域19-4とを含む表示画面を生成するので、異常の情報を見ながら誤検知であるかを指示でき、誤検知の場合には再学習によって、型推定部215による推定結果を更新して、以後のパケットにおける誤検知を抑制できる。
実施例1では、通信プロトコルとしてTCPを例に説明したが、本実施例はTCP以外のプロトコルにも適用可能である。例えば、UDP等のように、データが一定の長さを上限としてパケットに区切られて送受信される通信プロトコルであれば、本発明を適用できる。
また、長さが異なるパケットを一つのクラスタに分類する場合、後のデータを0でパディングしてパケット長を揃えるとよい。
実施例1によれば、通信プロトコル中のペイロードデータの意味情報が未知の場合においても、通信を分析して業務の情報を抽出し、サイバー攻撃などのセキュリティリスクを検知できる。特に、ネットワーク内へのセキュリティソフトのインストールによって、ノードにおいて遅延を生じさせたくない場合でもセキュリティリスクを検知できる。また、セキュリティソフトをインストールした場合には動作検証が必要であるところ、動作検証を必要とせずに、正常業務でない通信を検知できる。
また、型推定部215が、受け取ったミラーパケットがパケットの条件602-1~602-5と一致し、受け取ったミラーパケットの変数の位置の条件602-6~602-7の位置のデータが変数の条件602-8~602-9と一致するかによって、変数に正常な値が保持されているパケットを学習して、学習結果記憶部216に記憶する。このため、パケットに含まれる値に規則性がなくても、値そのもので異常を判定できる。
また、監視部217及び異常識別部219が異常であると判定したパケットを、検証指示部218が誤検知と判定することによって、型推定部215が、異常を誤検知したパケットを学習し、学習結果記憶部216を更新する。このとき、型推定部215は、既に学習に用いたデータに加えて、異常を誤検知したパケットを学習し、既に学習に用いたデータから異常を誤検知したパケットまでに受信したパケットは学習しない。このため、過学習による検知精度の低下を抑制できる。
また、異常識別部219は、パケットが直前に検知された異常パケットと所定の関係を満たす場合、新しい事象に起因する異常ではないと判定し、所定の関係を満たさないと判定された場合、新しい事象に起因する異常であると判定する。このため、同一事象に起因する異常の出力を抑制し、分析装置100の使いやすさを向上できる。
なお、本発明は、通信プロトコル中のフォーマット(例えば、ペイロードデータの意味情報)が既知の場合にも、適用可能である。その場合、セキュリティリスクの検知のために、通信プロトコル中のペイロードデータの意味情報を解釈するためのプログラム設計の工数を削減できる。
<実施例2>
実施例1では、正常な業務による通信の学習と、通信が正常な業務に含まれるか否かの監視とを同一の分析装置100に実装する。実施例2では、学習と監視を異なる装置に実装する例を示す。
以下、実施例1との差異を中心に、実施例2について説明する。なお、実施例1と同一の構成、同一の処理には同一の符号を付し、それらの説明を省略する。
図20は、実施例2のネットワークシステムの構成の一例を示す図である。
実施例2のネットワークシステムは、一つ以上の分析装置100、学習装置2010、監視装置2020、ゲートウェイ102、コンピュータ103、SCADA104、HMI105、PLC106、及びWAN107から構成される制御システムネットワークである。制御システムネットワークを構成する装置は、図示した数に限られず、それぞれ一つ以上含まれていればよい。なお、以下の説明において、同種の装置を纏めて説明する場合には添え字を省略し(例えば、学習装置2010)、同種の装置を別個に説明する場合には添え字を付す(例えば、学習装置2010-1)。
学習装置2010、監視装置2020、ゲートウェイ102、PC103、SCADA104、HMI105、PLC106、及びWAN107は、それぞれ、転送装置101を介して相互に接続される。
図20に示す例では、実施例1における分析装置100-1の代わりに、学習装置2010-1及び監視装置2020-1が転送装置101-2に接続される。また、実施例1における分析装置100-2の代わりに、学習装置2010-2及び監視装置2020-2が転送装置101-3に接続される。
学習装置2010は、転送装置101から受信したミラーパケットを分析し、制御システムにおける業務を抽出する。監視装置2020は、転送装置101から受信したミラーパケットを監視し、業務から外れた通信を検出する。さらに、学習装置2010及び監視装置2020は、転送装置101から受信したミラーパケットから得た情報を可視化するインターフェースを提供する。学習装置2010の詳細は図21を用いて後述し、監視装置2020の詳細は図22を用いて後述する。
図21は、実施例2の学習装置2010のハードウェア構成及びプログラム構成の一例を示すブロック図である。
学習装置2010のハードウェア構成は、実施例1の分析装置100と同一であるため説明を省略する。
学習装置2010の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、型ルール記憶部214、型推定部2100及び学習結果記憶部216を実現するプログラムを格納する。受信処理部211、通信状態管理部212、グループ化部213、型ルール記憶部214、及び学習結果記憶部216は、実施例1と同一であるため、説明を省略する。
学習装置2010の型推定部2100は、グループ化部213によってグループ化されたパケットデータ及び型ルール記憶部214に保存されている型ルールを用いて、業務による通信に含まれる変数の型を推定し、推定結果を出力装置204に出力する。なお、学習装置2010が、学習結果記憶部216を有してもよい。つまり、学習装置2010及び監視装置2020の少なくとも一つが学習結果記憶部216を有すればよい。
図22は、実施例2の監視装置2020のハードウェア構成及びプログラム構成の一例を示すブロック図である。
監視装置2020のハードウェア構成は、実施例1の分析装置100と同一であるため説明を省略する。
監視装置2020の主記憶装置201は、受信処理部211、通信状態管理部212、グループ化部213、型ルール記憶部214、学習結果記憶部216、監視部217、検証指示部218、及び異常識別部219を実現するプログラムを格納する。受信処理部211、通信状態管理部212、グループ化部213、型ルール記憶部214、学習結果記憶部216、監視部217、検証指示部218、及び異常識別部219は、実施例1と同一であるため、説明を省略する。
監視装置2020は、実施例1の分析装置100から型推定部215を取り除き、型推定部215の代わりに入力装置205を経由して推定結果を学習結果記憶部216に保存するものである。
図23は、実施例2の学習装置2010、監視装置2020及び転送装置101の各機能部の関係を示すブロック図である。
実施例2では、処理が重い型推定部2100と、リアルタイムの処理が求められる監視部217、検証指示部218、及び異常識別部219とを、別の装置に実装することによって、システム全体の処理能力を高め、大量の通信に対するセキュリティリスクの検知を実現可能としている。
なお、学習装置2010と監視装置2020とで、受信処理部211、通信状態管理部212、グループ化部213、及び型ルール記憶部214の一部又は全部を共通化し、いずれか一方に実装してもよい。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
100 分析装置
101 転送装置
200 演算装置
201 主記憶装置
202 二次記憶装置
203 NIF
204 出力装置
205 入力装置
211 受信処理部
212 通信状態管理部
213 グループ化部
214 型ルール記憶部
215 型推定部
216 学習結果記憶部
217 監視部
218 検証指示部
219 異常識別部
410 ポートミラーリング機能部
2010 学習装置
2020 監視装置

Claims (15)

  1. パケットを処理するネットワーク装置であって、
    所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを備え、
    前記装置からパケットを受信する受信処理部と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する推定部と、
    前記推定部が生成したパラメータを用いて、前記パケットが正常であるか異常であるかを判定する監視部と、
    前記監視部が異常であると判定したパケットについて、前記推定部の学習によって前記パラメータを更新するか否かを設定する検証指示部とを備え
    前記監視部が異常であると判定したパケットについて、前記検証指示部によって前記パラメータを更新することが選択された場合、前記推定部は、学習に使用したパケットを受信後、異常であると判定されたパケットの間のパケットを学習に使用しないことを特徴とするネットワーク装置。
  2. パケットを処理するネットワーク装置であって、
    所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを備え、
    前記装置からパケットを受信する受信処理部と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する推定部と、
    前記推定部が生成したパラメータを用いて、前記パケットが正常であるか異常であるかを判定する監視部と、
    前記監視部が異常であると判定したパケットについて、前記推定部の学習によって前記パラメータを更新するか否かを設定する検証指示部とを備え、
    前記推定部は、前記受信したパケットに含まれる変数の位置及び型を推定して、前記パケットの特徴量を学習することを特徴とするネットワーク装置。
  3. 請求項2に記載のネットワーク装置であって、
    前記推定部は、複数のパケットが同一の位置に同一の型の変数を含んでいる場合に、当該パケットの変数の型を推定して、前記パケットの特徴量を学習することを特徴とするネットワーク装置。
  4. パケットを処理するネットワーク装置であって、
    所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを備え、
    前記装置からパケットを受信する受信処理部と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する推定部と、
    前記推定部が生成したパラメータを用いて、前記パケットが正常であるか異常であるかを判定する監視部と、
    前記監視部が異常であると判定したパケットについて、前記推定部の学習によって前記パラメータを更新するか否かを設定する検証指示部とを備え、
    前記監視部が異常であると判定したパケットを、異常であると判定されたパラメータごとに分類し、前記分類されたパケット同士が時系列において所定の関係を満たす場合に、同一の事象に起因すると判定する識別部を備えることを特徴とするネットワーク装置。
  5. パケットを処理するネットワーク装置であって、
    所定の手順で処理を実行することによって以下の各機能部を実現する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを備え、
    前記装置からパケットを受信する受信処理部と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する推定部と、
    前記推定部が生成したパラメータを用いて、前記パケットが正常であるか異常であるかを判定する監視部と、
    前記監視部が異常であると判定したパケットについて、前記推定部の学習によって前記パラメータを更新するか否かを設定する検証指示部とを備え、
    前記監視部が異常であると判定したパケットについて、異常の情報と、異常と判定されたパケットのタイムスタンプと、前記パラメータを更新するか否かを指示するインターフェースとを含む表示画面を生成することを特徴とするネットワーク装置。
  6. ネットワーク装置がパケットを処理する方法であって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記方法は、
    前記演算デバイスが、前記装置からパケットを受信し、
    前記演算デバイスが、前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成し、
    前記演算デバイスが、前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、前記パラメータを更新することが選択された場合、前記学習に使用したパケットを取得した期間から異常であると判定されたパケットの間のパケットを学習に使用しないことを特徴とする方法。
  7. ネットワーク装置がパケットを処理する方法であって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記方法は、
    前記演算デバイスが、前記装置からパケットを受信し、
    前記演算デバイスが、前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成し、
    前記演算デバイスが、前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定し、
    前記演算デバイスが、前記受信したパケットに含まれる変数の位置及び型を推定して、前記パケットの特徴量を学習することを特徴とする方法。
  8. 請求項7に記載の方法であって、
    前記演算デバイスは、複数のパケットが同一の位置に同一の型の変数を含んでいる場合に、当該パケットの変数の型を推定して、前記パケットの特徴量を学習することを特徴とする方法。
  9. ネットワーク装置がパケットを処理する方法であって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記方法は、
    前記演算デバイスが、前記装置からパケットを受信し、
    前記演算デバイスが、前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成し、
    前記演算デバイスが、前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定し、
    前記演算デバイスが、前記異常であると判定されたパケットを、異常であると判定されたパラメータごとに分類し、前記分類されたパケット同士が時系列において所定の関係を満たす場合に、同一の事象に起因すると判定することを特徴とする方法。
  10. ネットワーク装置がパケットを処理する方法であって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記方法は、
    前記演算デバイスが、前記装置からパケットを受信し、
    前記演算デバイスが、前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成し、
    前記演算デバイスが、前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定し、
    前記演算デバイスが、前記異常であると判定されたパケットについて、異常の情報と、異常と判定されたパケットのタイムスタンプと、前記パラメータを更新するか否かを指示するインターフェースとを含む表示画面を生成することを特徴とする方法。
  11. ネットワーク装置がパケットを処理するためのプログラムであって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記プログラムは、
    前記装置からパケットを受信する手順と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する手順と、
    前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定する手順と、
    前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定する手順と、
    前記異常であると判定されたパケットについて、前記パラメータを更新することが選択された場合、前記学習に使用したパケットを取得した期間から異常であると判定されたパケットの間のパケットを学習に使用しない手順とを、前記演算デバイスに実行させるためのプログラム。
  12. ネットワーク装置がパケットを処理するためのプログラムであって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記プログラムは、
    前記装置からパケットを受信する手順と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する手順と、
    前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定する手順と、
    前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定する手順と、
    前記受信したパケットに含まれる変数の位置及び型を推定して、前記パケットの特徴量を学習する手順とを、前記演算デバイスに実行させるためのプログラム。
  13. 請求項12に記載のプログラムであって、
    複数のパケットが同一の位置に同一の型の変数を含んでいる場合に、当該パケットの変数の型を推定して、前記パケットの特徴量を学習する手順を、前記演算デバイスに実行させるためのプログラム。
  14. ネットワーク装置がパケットを処理するためのプログラムであって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記プログラムは、
    前記装置からパケットを受信する手順と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する手順と、
    前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定する手順と、
    前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定する手順と、
    前記異常であると判定されたパケットを、異常であると判定されたパラメータごとに分類し、前記分類されたパケット同士が時系列において所定の関係を満たす場合に、同一の事象に起因すると判定する手順とを、前記演算デバイスに実行させるためのプログラム。
  15. ネットワーク装置がパケットを処理するためのプログラムであって、
    前記ネットワーク装置は、所定の手順で処理を実行する演算デバイスと、前記演算デバイスに接続された記憶デバイスと、パケットを送受信する装置と接続されるインターフェースとを有し、
    前記プログラムは、
    前記装置からパケットを受信する手順と、
    前記受信したパケットの特徴量を所定の学習アルゴリズムによって学習し、前記パケットが正常であるか異常であるかを判定するためのパラメータを生成する手順と、
    前記生成されたパラメータを用いて、前記パケットが正常であるか異常であるかを判定する手順と、
    前記異常であると判定されたパケットについて、学習によって前記パラメータを更新するか否かを設定する手順と、
    前記異常であると判定されたパケットについて、異常の情報と、異常と判定されたパケットのタイムスタンプと、前記パラメータを更新するか否かを指示するインターフェースとを含む表示画面を生成する手順とを、前記演算デバイスに実行させるためのプログラム。
JP2018192170A 2018-10-10 2018-10-10 ネットワーク装置、パケットを処理する方法、及びプログラム Active JP7065744B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018192170A JP7065744B2 (ja) 2018-10-10 2018-10-10 ネットワーク装置、パケットを処理する方法、及びプログラム
PCT/JP2019/033072 WO2020075398A1 (ja) 2018-10-10 2019-08-23 ネットワーク装置、パケットを処理する方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018192170A JP7065744B2 (ja) 2018-10-10 2018-10-10 ネットワーク装置、パケットを処理する方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020061667A JP2020061667A (ja) 2020-04-16
JP7065744B2 true JP7065744B2 (ja) 2022-05-12

Family

ID=70164278

Family Applications (1)

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

Country Status (2)

Country Link
JP (1) JP7065744B2 (ja)
WO (1) WO2020075398A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2020477732B2 (en) * 2020-11-19 2024-02-01 Nippon Telegraph And Telephone Corporation Estimation device, estimation method, and estimation program
KR102691125B1 (ko) * 2020-11-24 2024-08-02 고려대학교 산학협력단 무인 이동체 메시지 id 시퀀스 생성을 위한 생성적 적대 신경망 모델과 그 학습 방법
KR102661402B1 (ko) * 2021-12-03 2024-04-29 서울과학기술대학교 산학협력단 인공지능 기반 침입 탐지 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003188893A (ja) 2001-12-19 2003-07-04 Yokogawa Electric Corp 不正アクセス検知装置
JP2011135131A (ja) 2009-12-22 2011-07-07 Panasonic Electric Works Co Ltd ネットワーク異常検知装置及びネットワーク異常検知プログラム
JP2017199250A (ja) 2016-04-28 2017-11-02 株式会社日立製作所 計算機システム、データの分析方法、及び計算機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003188893A (ja) 2001-12-19 2003-07-04 Yokogawa Electric Corp 不正アクセス検知装置
JP2011135131A (ja) 2009-12-22 2011-07-07 Panasonic Electric Works Co Ltd ネットワーク異常検知装置及びネットワーク異常検知プログラム
JP2017199250A (ja) 2016-04-28 2017-11-02 株式会社日立製作所 計算機システム、データの分析方法、及び計算機

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小池 泰輔 Daisuke Koike,第77回(平成27年)全国大会講演論文集(3) ネットワーク セキュリティ,2015年03月17日,487,488

Also Published As

Publication number Publication date
WO2020075398A1 (ja) 2020-04-16
JP2020061667A (ja) 2020-04-16

Similar Documents

Publication Publication Date Title
US11936663B2 (en) System for monitoring and managing datacenters
US11902120B2 (en) Synthetic data for determining health of a network security system
JP6890498B2 (ja) ネットワーク装置、パケットを処理する方法、及びプログラム
JP7065744B2 (ja) ネットワーク装置、パケットを処理する方法、及びプログラム
CN107360145B (zh) 一种多节点蜜罐系统及其数据分析方法
US11797668B2 (en) Sample data generation apparatus, sample data generation method, and computer readable medium
JP6835703B2 (ja) サイバー攻撃検知システム、特徴量選定システム、サイバー攻撃検知方法、及びプログラム
US20200314130A1 (en) Attack detection device, attack detection method, and computer readable medium
JPWO2016208159A1 (ja) 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
JP2020004009A (ja) 異常検知装置、および、異常検知方法
US11496394B2 (en) Internet of things (IoT) device identification on corporate networks via adaptive feature set to balance computational complexity and model bias
US11870693B2 (en) Kernel space based capture using intelligent packet selection paradigm and event output storage determination methodology
JP4559974B2 (ja) 管理装置及び管理方法及びプログラム
CN112291239A (zh) 一种面向scada系统的网络物理模型及其入侵检测方法
KR101383069B1 (ko) 네트워크 이상상태 탐지 장치 및 방법
Fauri et al. Role inference+ anomaly detection= situational awareness in BACnet networks
US20240348625A1 (en) System for monitoring and managing datacenters
Costante et al. Role Inference+ Anomaly Detection= Situational Awareness in BACnet Networks
JP2011060249A (ja) ファイアウォールに対するポリシ情報表示方法、管理装置及びプログラム
WO2021028997A1 (ja) 異常検知装置、異常検知方法、及びコンピュータ読み取り可能な記録媒体
JP2024006797A (ja) 検知プログラム及び検知装置
CN118368133A (zh) 一种idc信息安全管理方法和终端设备
CN117354037A (zh) 一种工控网络用病毒入侵监测系统及其监测方法
TW202001653A (zh) 通信分析裝置、通信分析方法、通信環境分析裝置、通信環境分析方法、及程式
TW201705721A (zh) 網路資料辨識與管理系統及其方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220426

R150 Certificate of patent or registration of utility model

Ref document number: 7065744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150