JP2019185183A - 通信装置保護管理サーバおよび通信装置保護システム - Google Patents

通信装置保護管理サーバおよび通信装置保護システム Download PDF

Info

Publication number
JP2019185183A
JP2019185183A JP2018071812A JP2018071812A JP2019185183A JP 2019185183 A JP2019185183 A JP 2019185183A JP 2018071812 A JP2018071812 A JP 2018071812A JP 2018071812 A JP2018071812 A JP 2018071812A JP 2019185183 A JP2019185183 A JP 2019185183A
Authority
JP
Japan
Prior art keywords
communication data
communication
data
communication device
learning
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.)
Pending
Application number
JP2018071812A
Other languages
English (en)
Inventor
将偉 江川
Shoi Egawa
将偉 江川
忠之 杉森
Tadayuki Sugimori
忠之 杉森
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.)
Sekisui House Ltd
Original Assignee
Sekisui House 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 Sekisui House Ltd filed Critical Sekisui House Ltd
Priority to JP2018071812A priority Critical patent/JP2019185183A/ja
Publication of JP2019185183A publication Critical patent/JP2019185183A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】未知の攻撃データを含む通信データによるサイバー攻撃に対する対策を可能とする。【解決手段】管理サーバ(通信装置保護管理サーバ)100の攻撃判定学習部120は、通信装置に対する正常な通信データ群に含まれる学習用通信データ(通信データ)501および不正な通信データ群に含まれる通信データから、集約装置(通信装置)300に対するコマンドを抜き出して学習データ511を作成する(ステップS11)。攻撃判定学習部120は、この学習データ511を用いて教師ありの学習をさせることで、通信装置に対する通信データが正常か不正かを判定する攻撃判定モデル121を生成する。攻撃判定学習部120は、通信データからコマンドの他に、コマンドのパラメータから学習データを生成してもよい。【選択図】図5

Description

本発明は、安全ではないネットワークに接続された通信装置を保護する通信装置保護管理サーバおよび通信装置保護システムに関する。
情報通信技術の進展にともない、農場や工場、オフィスビル、商業施設、住宅などのフィールドに設置されているセンサやアクチュエータなどのデバイスをネットワークに接続して監視し、制御するIoT(Internet of Things)が普及しつつある。フィールドに設置された集約装置(エッジサーバ)を介して、センサで取得した情報の収集やアクチュエータの制御を管理するエッジコンピューティングという形態も注目されている。集約装置は、デバイスの動作状況をIoTシステムの管理サーバに報告したり、センサが取得したデータを集計して管理サーバに送信したり、管理サーバからの指示を各アクチュエータの指示に翻訳して送信したりする。
デバイスや集約装置という通信装置は、インターネットに接続されるため、DoS(Denial of Service)攻撃や総当たり攻撃、通信装置のプログラムの脆弱性を狙う攻撃などのサイバー攻撃に遭う可能性がある。総当たり攻撃とは、パスワードを変えながらログインを試みるような攻撃であり、パラメータを次々と変えながらサービスにアクセスしようとする攻撃である。
インターネットに接続されたサーバやパソコンにおけるサイバー攻撃への対策としては、ファイアウォールやウィルス対策ソフトウェアが普及している(非特許文献1参照)。
独立行政法人情報処理推進機構, "標的型サイバー攻撃対策," 2014年2月10日, [online], [2018年3月20日検索], インターネット<URL: https://www.ipa.go.jp/security/event/2013/isec-semi/documents/2013videosemi_targeted_cyber_attacks_v1a.pdf>
攻撃者が通信装置に送信する攻撃データは、事前に判明しているものではなく、通知装置の製造者やIoTシステムの運用者にとって未知のものである。このため、送信元のアドレスや通信データに含まれるパラメータを指定してフィルタリングする手法では、攻撃を防ぐことは困難である。
このような背景を鑑みて本発明がなされたのであって、本発明は、未知の攻撃データを含む通信データによるサイバー攻撃に対する対策を可能とする通信装置保護管理サーバおよび通信装置保護システムを提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、通信装置に対する正常な通信データ群に含まれる通信データおよび不正な通信データ群に含まれる通信データから、前記通信装置に対するコマンドおよび前記コマンドのパラメータの何れか1つまたは双方を抜き出して作成した学習データを用いて教師ありの学習をさせることで、前記通信装置に対する通信データが正常か不正かを判定する攻撃判定モデルを生成する攻撃判定学習部を備えることを特徴とする通信装置保護管理サーバとした。
本発明によれば、未知の攻撃データを含む通信データによるサイバー攻撃に対する対策を可能とする通信装置保護管理サーバおよび通信装置保護システムを提供することができる。
第1の実施形態に係る通信装置保護システムの保護対象となる集約装置とデバイスを含むIoTシステムの全体構成を例示する図である。 第1の実施形態に係る管理サーバの全体構成を例示する図である。 第1の実施形態に係る集約装置の全体構成を例示する図である。 第1の実施形態に係るデバイスの全体構成を例示する図である。 第1の実施形態に係る、管理サーバの制御部に含まれる攻撃判定学習部の動作、および、集約装置の通信データ監視部の動作を説明するための図である。 第1の実施形態に係る、通信データのパラメータに含まれるバイナリ列に基づいた攻撃判定モデルにおける学習データを例示する図である。 第1の実施形態の変形例に係る、時間間隔を含む通信データのコマンド列に基づいた攻撃判定モデルに対する学習データを例示する図である。 第1の実施形態の変形例に係るN−タプルのコマンド列に基づいた攻撃判定モデルに対する学習データを例示する図である。 第1の実施形態に係る管理サーバの攻撃判定学習部が実行する攻撃判定モデルの学習処理を示すフローチャートである。 第1の実施形態に係る集約装置の通信データ監視部が実行する通信データ監視処理を示すフローチャートである。 第2の実施形態に係る通信装置保護システムにおける管理サーバの全体構成を示す。 第2の実施形態に係る、集約機能部のプログラムの一部を模式的に示す図である。 第2の実施形態に係るHB適否判定グラフを例示する図である。 第2の実施形態に係る通信データ検査部が実行する通信データ検査処理を示すフローチャートである。 第3の実施形態に係る通信装置保護システムにおける管理サーバの全体構成を示す。 第3の実施形態に係る使用メモリデータベースのデータ構成を例示する図である。 第3の実施形態に係る、不正ポインタ参照の脆弱性がある関数のプログラムを示す。 第3の実施形態に係る、不正ポインタ参照の脆弱性を修正した後の関数のプログラムを示す。 第3の実施形態に係る、バッファ溢れの脆弱性がある関数のプログラムを示す。 第3の実施形態に係る、バッファ溢れの脆弱性を修正した後の関数のプログラムを示す。 第3の実施形態に係る、二重解放脆弱性がある関数のプログラムを示す。 第3の実施形態に係る、二重解放脆弱性を修正した後の関数のプログラムを示す。 第3の実施形態に係る、整数溢れの脆弱性がある関数のプログラムを示す。 第3の実施形態に係る、整数溢れの脆弱性を修正した後の関数のプログラムを示す。 第3の実施形態に係るパッチ生成部が実行する脆弱性検出処理のフローチャートである。 第3の実施形態に係る管理サーバのパッチ生成部が実行する更新プログラム生成処理のフローチャートである。 第3の実施形態に係る集約装置が実行するゲストシステムのシステム更新処理のフローチャートである。 第3の実施形態に係る集約装置の全体構成を例示する図である。 第2の実施形態の変形例に係る、通信データが脆弱性攻撃を含むか否かを検出する集約装置の全体構成を例示する図である。
≪第1の実施形態:IoTシステムおよび通信装置保護システムの全体構成≫
以下に本発明を実施するための形態(実施形態)における通信装置保護システムについて説明する。図1は、第1の実施形態に係る通信装置保護システムの保護対象となる集約装置(通信装置)300X、300Yとデバイス(通信装置)400V〜400Zを含むIoTシステム10の全体構成を例示する図である。
図1には、フィールドエリアネットワーク510Yで接続される集約装置300Yとデバイス400X〜400Zとを含むフィールドシステム、および、フィールドエリアネットワーク510Xで接続される集約装置300Xとデバイス400V〜400Wとを含むフィールドシステムが示されている。IoTシステム10は、ネットワーク500で接続される2つのフィールドシステムと管理サーバ100とを含んで構成される。以下、集約装置やデバイスを個々に区別しない場合には、集約装置300、デバイス400と記す。
ネットワーク500は、インターネットのようなオープンなネットワークであって、図1に示した以外の装置も接続されており、集約装置300やデバイス400に、攻撃データを送信してサイバー攻撃を実行することが可能である。管理サーバ100は、IoTシステム10外の装置と、集約装置300およびデバイス400との通信データを捕捉することができるように、ネットワーク500に接続されている。
通信装置保護システムは、後記する管理サーバ100(後記する図2参照)、集約装置300(後記する図3参照)の通信データ監視部340とルートシステム320、および、デバイス400(後記する図4参照)の通信データ監視部440とルートシステム420を含んで構成される。
≪第1の実施形態:管理サーバの全体構成≫
図2は、第1の実施形態に係る管理サーバ(通信装置保護管理サーバ)100の全体構成を例示する図である。管理サーバ100は、CPU(Central Processing Unit)から構成される制御部110、RAM(Random Access Memory)、ハードディスク、フラッシュメモリ等から構成される記憶部160、NIC(Network Interface Card)から構成される通信部180を含んで構成される。
制御部110に含まれる攻撃判定学習部120(後記する図5参照)は、正常な通信データと攻撃用の(不正な、異常な)通信データとを学習データとして、通信データの正常または不正(異常)を判定する攻撃判定モデル121(後記する図5参照)を生成する。攻撃判定モデル121は、機械学習技術のモデル(機械学習モデル)である。
記憶部160は、通信データ蓄積部161および更新データ鍵162を含む。通信データ蓄積部161は、学習用の通信データ(通信データ群)を記憶している。なお、通信データは、コマンドとパラメータを含んで構成される。更新データ鍵162は、攻撃判定モデル121の攻撃判定パラメータ122(図5参照)を集約装置300やデバイス400に送信する際に、攻撃判定パラメータ122を保護するための暗号鍵(暗号化用の鍵とデジタル署名生成用の鍵)を含む。
≪第1の実施形態:集約装置の全体構成≫
図3は、第1の実施形態に係る集約装置300の全体構成を例示する図である。集約装置300は、ハードウェアとしての制御部(CPU)301、記憶部(RAMやフラッシュメモリ)302および通信部(NIC)303を含む。集約装置300は、論理的には、ゲストシステム310、ルートシステム320およびハイパーバイザ330を含んで構成される。
ゲストシステム310は、ハイパーバイザ330上で動作する仮想マシンであり、集約機能部311および通信データ監視部340を含んで構成される。集約機能部311は、IoTシステム10の集約装置300としての機能を有する。通信データ監視部340は、ゲストシステム310が受信した通信データが、正常か不正かを判断して、正常なら集約機能部311に出力し、不正なら破棄する。
ルートシステム320は、ハイパーバイザ330上で動作する仮想マシンであり、システム更新部321および更新データ鍵322を含んで構成される。システム更新部321は、ゲストシステム310やルートシステム320、ハイパーバイザ330のシステム更新を実行する。更新データ鍵322は、管理サーバ100の更新データ鍵162と対となる暗号処理用の鍵であり、暗号化された攻撃判定パラメータ122(図5参照)を復号したり、デジタル署名を検証したりするための鍵を含む。
ハイパーバイザ330は、仮想マシンとしてのゲストシステム310およびルートシステム320が動作する基盤であり、通信部303が受信した通信データをゲストシステム310に中継する。
≪第1の実施形態:デバイスの全体構成≫
図4は、第1の実施形態に係るデバイス400の全体構成を例示する図である。デバイス400は、ハードウェアとしての制御部(CPU)401、記憶部(RAM、フラッシュメモリなど)402、通信部(NIC)403およびセンサ404を含む。センサ404は、カメラ、温度計や振動測定用のセンサなどである。図4では、センサ404は、デバイス400に内蔵されるように記載されているが、外付けの場合もある。デバイス400は、論理的には、ゲストシステム410、ルートシステム420およびハイパーバイザ430を含んで構成される。
ゲストシステム410は、ハイパーバイザ430上で動作する仮想マシンであり、IoTシステム10のデバイス400としての機能を有するセンサ制御部411を含む。通信データ監視部440、ルートシステム420、システム更新部421、更新データ鍵422およびハイパーバイザ430は、集約装置300の通信データ監視部340、ルートシステム320、システム更新部321、更新データ鍵322およびハイパーバイザ330と、それぞれ同様の構成である。なお、通信データ監視部440は、ゲストシステム410が受信した通信データが、正常ならセンサ制御部411に出力し、不正なら破棄する。
なお、デバイス400がアクチュエータのデバイスである場合には、デバイス400は、センサ404とセンサ制御部411の替わりにアクチュエータとアクチュエータ制御部を備える。
≪第1の実施形態:攻撃判定モデル:コマンド列による判定≫
図5は、第1の実施形態に係る、管理サーバ100の制御部110(図5では不図示)に含まれる攻撃判定学習部120の動作、および、集約装置300の通信データ監視部340の動作を説明するための図である。
学習用通信データ(図5では通信データと記載)501は、通信データ蓄積部161に記憶された、1つ以上の通信データを含む通信データのセット(通信データ群)であり、正常か不正(異常)か予め分類されている。不正な学習用通信データ501は、不正の種別により、さらに脆弱性攻撃、DoS攻撃、総当たり攻撃、その他攻撃の通信データに分類されている。
攻撃判定学習部120は、学習用通信データ501に含まれる通信データそれぞれからコマンド(制御コマンド)を抜き出して、学習データ511を生成する(ステップS11)。例えば、攻撃判定学習部120は、正常な学習用通信データ501の通信データそれぞれからコマンドを抜き出して、コマンド列(C1,C2,C1,C2,C1,C2,・・・)を生成して、さらに正常であることを示すラベルである「正常」を付与して、学習データ511の1行目に示すデータを生成する。「正常」以外のラベルとしては、「脆弱性攻撃」、「DoS攻撃」、「総当たり攻撃」などがある。
攻撃判定学習部120は、時系列の機械学習モデルである攻撃判定モデル121に学習データ511を入力して学習処理を実行する(ステップS12)。時系列の機械学習モデルとして、例えばRNN(Recurrent Neural Network)がある。
攻撃判定学習部120は、学習結果である攻撃判定モデル121の攻撃判定パラメータ122に更新データ鍵162を用いてデジタル署名を付与し、暗号化して、集約装置300に送信する(ステップS13)。
集約装置300のルートシステム320のシステム更新部321(図3参照、図5では不図示)は、更新データ鍵322を用いて受信した攻撃判定パラメータを復号し、デジタル署名を検証した後に、ゲストシステム310の通信データ監視部340に出力する。通信データ監視部340は、出力されたデータを攻撃判定モデル341の攻撃判定パラメータ342として設定する。
通信データ監視部340は、ゲストシステム310が受信した通信データ503から、コマンドを抜き出して判定データ521を生成して(ステップS21)、攻撃判定モデル341に入力し(ステップS22)、正常な通信データか否かの攻撃判定結果522を得る(ステップS23)。攻撃判定結果522が正常ならば、通信データ監視部340は、通信データを集約機能部311に出力する。正常でない(脆弱性攻撃、DoS攻撃、総当たり攻撃など)場合には、通信データを破棄する。
≪第1の実施形態:攻撃判定モデル:パラメータに含まれるバイナリ列による判定≫
図6は、第1の実施形態に係る、通信データのパラメータに含まれるバイナリ列(図6ではバイト列として記載)に基づいた攻撃判定モデルにおける学習データ512を例示する図である。図5では、学習用通信データ(通信データ群)からコマンド列を生成して学習データ511としている。図6は、コマンド列に替わり、1つの通信データに含まれるパラメータをバイナリ列として扱い学習データ512とする。学習データ512には、通信データに含まれるパラメータのバイト列と、正常または異常の種別を示すラベルとが含まれている。
図5に示したコマンド列の場合には、複数の通信データ(通信データ群)から1つのコマンド列の学習データが生成されたが、図6に示したパラメータに含まれるバイナリ列の場合には、学習用通信データに含まれるそれぞれの通信データから学習データが生成される。また、図5のコマンド列の学習モデルは、時系列の学習モデルであったが、図6のバイナリ列の学習モデルとしては、SVM(Support Vector Machine)やNN(Neural Network)などの時系列ではない機械学習モデルを用いてもよいし、バイナリ列に含まれるバイナリ(ビット)の並びを時系列データと見做して時系列の機械学習モデルを用いてもよい。
コマンド列の場合と同様に、学習した結果である攻撃判定パラメータ122(図5参照)は、集約装置300に送信され、判定処理が行われる。判定の基となる判定データは、学習処理と同様に1つの通信データのパラメータに含まれるバイナリ列である。コマンド列による攻撃判定とパラメータのバイナリ列による攻撃判定とは、どちらか一方を用いてもよいし、両方の判定結果を組み合わせて判定してもよい。
図6に示した、1つの通信データから1つの学習データを生成する方法に替わり、1つの学習用通信データからバイナリ列の時系列の学習データが生成されるようにしてもよい。詳しくは、1つの学習用通信データに含まれるそれぞれの通信データからパラメータのバイナリ列を抜き出し、バイナリ列の並びを時系列データ(バイナリ列をある時刻のデータと見做す)として、攻撃判定モデル121に入力して学習するようにしてもよい。
図6に示した学習データ512は、パラメータのバイナリ列のみを学習データとしていた。これに対して、通信データのコマンドとパラメータを組み合わせたデータを学習データとしてもよい。例えば、学習データ512の1行目がコマンド「C3」のパラメータである場合には、(C3,0x34,0x5f,0x8a,0x04,0xc3,・・・,正常)を学習データとしてもよい。
≪第1の実施形態:攻撃判定モデル:コマンド列の変形例≫
図5のコマンド列は、各通信データに含まれるコマンドを通信データの受信した順に抜き出したコマンド列であったが、受信間隔を含めるようにしてもよい。
図7は、第1の実施形態の変形例に係る、時間間隔を含む通信データのコマンド列に基づいた攻撃判定モデルに対する学習データ513を例示する図である。学習データ513の1行目は、最初の通信データのコマンドがC1であり、2.0秒後にコマンドC2を含んだ通信データを受信して、その1.4秒後にコマンドC1を含んだ通信データを受信した場合の学習データである。
図8は、第1の実施形態の変形例に係るN−タプルのコマンド列に基づいた攻撃判定モデルに対する学習データ514を例示する図である。コマンド列全体を1つの学習データとするのではなく、コマンド列から所定の長さの部分コマンド列を抜き出しそれぞれを学習データとする。学習データ511の1行目は、(C1,C2,C1,C2,C1,C2,・・・)というコマンド列の1つの学習データであった。これを、5−タプルとして長さ5のコマンド列(C1,C2,C1,C2,C1)、(C2,C1,C2,C1,C2)を抜き出し、それぞれを学習データとしてもよい。
≪第1の実施形態:管理サーバでの攻撃判定モデルの学習処理≫
図9は、第1の実施形態に係る管理サーバ100の攻撃判定学習部120が実行する攻撃判定モデルの学習処理を示すフローチャートである。
ステップS101において、攻撃判定学習部120は、学習用通信データ501(図5参照)に含まれる通信データそれぞれからコマンドを抜き出して、学習データ511を生成する。
ステップS102において、攻撃判定学習部120は、時系列の機械学習モデルである攻撃判定モデル121に学習データ511を入力して学習処理を実行する。
ステップS103において、攻撃判定学習部120は、学習処理の結果である攻撃判定モデル121の攻撃判定パラメータ122にデジタル署名を付与し、暗号化して、集約装置300に送信する。デジタル署名生成や暗号化には、更新データ鍵162が用いられる。
≪第1の実施形態:集約装置での通信データ監視処理≫
図10は、第1の実施形態に係る集約装置300の通信データ監視部340が実行する通信データ監視処理を示すフローチャートである。
ステップS121において、集約装置300は、攻撃判定学習部120が送信した攻撃判定パラメータを受信し、受信データを検証して、攻撃判定モデル341(図5参照)に攻撃判定パラメータ342を設定する。詳しくは、ゲストシステム310は、受信データをルートシステム320に出力する。次に、ルートシステム320のシステム更新部321は、更新データ鍵322を用いて受信データを復号し、デジタル署名を検証した後に、ゲストシステム310の通信データ監視部340に出力する。通信データ監視部340は、出力されたデータを攻撃判定モデル341の攻撃判定パラメータ342として設定する(図5参照)。なお、システム更新部321が、受信したデータの復号またはデジタル署名の検証に失敗した場合には、管理サーバ100に通知する。
ステップS122において、通信データ監視部340は、ゲストシステム310が受信した通信データごとに、ステップS123〜S129の処理を繰り返す。
ステップS123において、通信データ監視部340は、通信データからコマンドを抜き出し、攻撃判定モデル341に入力して、攻撃か否かを判定する。通信データのパラメータのバイナリ列を学習した機械学習モデルを採用している場合には、通信データ監視部340は、通信データからパラメータのバイナリ列を抜き出し、攻撃判定モデル341に入力して、攻撃か否か、攻撃であればその種別を判定する。
ステップS124において、通信データ監視部340は、ステップS123の判定結果が攻撃であれば(S124→Y)ステップS126に進み、正常であれば(S124→N)ステップS125に進む。
ステップS125において、通信データ監視部340は、通信データを集約機能部311に出力し、ステップS130に進む。
ステップS126において、通信データ監視部340は、攻撃種別がDoS攻撃であれば(S126→DoS攻撃)ステップS127に進み、攻撃種別が総当り攻撃であれば(S126→総当たり攻撃)ステップS128に進み、攻撃種別がその他攻撃であれば(S126→その他攻撃)ステップS129に進む。
ステップS127において、通信データ監視部340は、通信データの送信元から送信される通信データを所定時間フィルタリングして、当該送信元からの通信データを受信しないようにし、ステップS130に進む。
ステップS128において、通信データ監視部340は、通信データのコマンドと同じコマンドを含む通信データを所定時間フィルタリングして、当該コマンドの通信データを受信しないようにし、ステップS130に進む。
ステップS129において、通信データ監視部340は、通信データを破棄し、ステップS130に進む。
ステップS130において、通信データ監視部340は、ステップS123に戻る。
≪第1の実施形態:攻撃判定モデルの特徴≫
コマンド列を基にした攻撃判定モデルは、1以上の長さのコマンド列から攻撃の当否や攻撃種別を判定している。このために、当初正常だが途中から攻撃に変化する通信データ列による攻撃や長い期間に亘って続くような攻撃も判定できる。
パラメータのバイナリ列を基にした攻撃判定モデルを採用することにより、コマンド列だけでは判定できないような、パラメータに攻撃の特徴が現れるような攻撃でも判定できる。また、パラメータのバイナリ列を時系列として扱う攻撃判定モデルを採用することにより、パラメータを変化させながら攻撃するような場合でも、攻撃と判定できるようになる。
通信データ監視部340は、判定された攻撃種別に応じて、送信元を基にフィルタリング、コマンドを基にフィルタリング、および、通信データの廃棄を実行しており、正常な通信データへの影響を抑制しながら、攻撃を防ぐことができる。
以上において、集約装置300における攻撃判定モデルの生成(図5参照)や通信データ監視(図10参照)を説明したが、デバイス400に関しても同様に攻撃判定モデルの生成や通信データの監視が可能である。
≪第1の実施形態:変形例:送信元別の攻撃判定モデル≫
図5に示した学習用通信データ501は、通信データ蓄積部161に記憶された、1つ以上の通信データを含む通信データのセットであり、正常か不正か予め分類されている。通信データの送信元によって、さらに分類されて、1つの学習用通信データ501に含まれる通信データの送信元は同一であるように分類されてもよい。この場合には、通信データ監視部340における判定データ521の生成も送信元ごとに行う。詳しくは、通信データ監視部340は、送信元ごとに攻撃判定モデル341を設けて、ゲストシステム310が通信データを受信したら、判定データ521を生成(ステップS21)して、送信元に対応する攻撃判定モデル341に入力(ステップS22)し、攻撃判定結果522を出力として得る(ステップS23)。
≪第1の実施形態:変形例:集約装置の通信データ監視部≫
集約装置300において、ゲストシステム310の通信データ監視部340が、通信データを攻撃判定モデル341に入力して、攻撃か否かを判定して、攻撃と判定されたならば通信パケットをフィルタリング(破棄)していた。この通信データ監視の処理を、ゲストシステム310ではなく、ハイパーバイザ330で実行してもよい。詳しくは、ハイパーバイザ330が、ゲストシステム310宛ての通信データを、ハイパーバイザ内の攻撃判定モデルに入力して、攻撃か否かを判定して、攻撃と判定されたならば通信パケットをフィルタリング(破棄)するようにしてもよい。
または、ルートシステム320で判定するようにしてもよい。詳しくは、ハイパーバイザ330が、ゲストシステム310宛ての通信データをルートシステム320に送信し、ルートシステム320が自身の攻撃判定モデルに入力して、攻撃か否かを判定し、判定結果をハイパーバイザ330に送信する。ハイパーバイザ330は、攻撃と判定されたならば通信パケットをフィルタリング(破棄)し、正常ならゲストシステム310に送信する。
ステップS127〜S129(図10参照)のフィルタリング処理において、通信データ監視部340が管理サーバ100に攻撃を検知したことを通知するようにしてもよい。
≪第1の実施形態:変形例:管理サーバ≫
管理サーバ100は、IoTシステム10の管理サーバであり、集約装置300やデバイス400の通信装置を保護する通信装置保護システムの管理サーバでもある。IoTシステム10の管理サーバと、通信装置保護システムの管理サーバとを異なるサーバにしてもよい。
≪第1の実施形態:変形例:正常な学習用通信データのみでの学習≫
攻撃判定学習部120は、正常と不正の学習用通信データ501を用いて学習する(図5参照)。正常な学習用通信データのみから攻撃判定モデル121を生成して、不正な通信データを異常として検出するようにしてもよい。このような機械学習モデル(アルゴリズム) として、1クラスSVM、クラスタリング、k近傍法などがある。
≪第2の実施形態≫
第1の実施形態では、学習用通信データは、正常と攻撃種別により、予め分類されて通信データ蓄積部161に格納されていた。これに対して、第2の実施形態の管理サーバでは、未分類の通信データ(通信データ群)を集約装置300のクローン(図11参照)に処理させて、動作が正常か否かを観察することで、正常と攻撃種別とを分類する。
≪第2の実施形態:管理サーバの全体構成≫
図11は、第2の実施形態に係る通信装置保護システムにおける管理サーバ100Aの全体構成を示す。第1の実施形態の管理サーバ100と比較すると、制御部110にクローン130と通信データ検査部140とが加わり、記憶部160にプログラムリポジトリ163とHB適否判定グラフ164とが加わる。なお、HBはHeart Beatの略記である。
クローン130は、集約装置300のクローンである仮想マシンであり、ゲストシステム310の動作をシミュレートする。クローン130は、集約装置300の台数分だけ存在し、それぞれ対応する集約装置300(ゲストシステム310)をシミュレートする。通信データ検査部140は、通信データを処理中のクローン130が送信するHBを受信し、クローン130の処理に異常が発生していないかを監視して、通信データが正常か不正かを判定する。
プログラムリポジトリ163は、通信データを処理する集約機能部311(図3参照)のプログラムを格納している。HB適否判定グラフ164(後記する図13参照)は、HBの受信順序や受信間隔の適否を判定する際に参照される有向グラフである。クローン130から送信されるHBの受信順序や受信間隔が、HB適否判定グラフ164に示される順序や間隔に合致しているなら、クローン130は正常動作しており、処理中の通信データは正常であると判定される。
≪第2の実施形態:HBを用いた通信データ検査≫
図12と図13を参照しながら、通信データをクローン130に処理させ、HBの受信順序や受信間隔を観察することで正常に処理するか否かを判断して、通信データが正常か不正かを判断する手法を説明する。
図12は、第2の実施形態に係る、集約機能部311のプログラムの一部を模式的に示す図である。関数Aと関数Bと関数Cの一部が図示されており、関数Aのループ処理(4〜8行)のなかで、関数Bと、条件によっては関数Cが呼ばれる。2行目と5行目と12行目と17行目とは、HB送信処理を実行するコードであり、送信するHBの識別子(HB識別子)をパラメータとする。クローン130が、通信データを処理する最中にHB送信処理を実行すると、通信データ検査部140が、HB識別子と実行タイミング(実行時刻)を受信する。
図13は、第2の実施形態に係るHB適否判定グラフ164を例示する図である。グラフの各ノードは、HBを表している。ノード間の矢印と矢印に付与された数値とは、それぞれ次に受信する可能性のあるHBと、受信する実行タイミングの間隔(実行タイミングサイクル数)とを示している。例えば、「関数B開始」から出る3つの矢印は、「関数B開始」のHBの次には、「関数Aループ開始1」、「関数C開始」のHBを受信するか、処理が終了することを示している。何れの場合であっても、9実行タイミングサイクルでHBを受信または終了することを示している。
矢印で示されるHB以外のHBを受信した場合、または、矢印に付与された実行タイミングサイクルでHBを受信しない場合には、通信データ検査部140は、処理に異常(不正)が発生した(HB適否判定グラフ164から逸脱)と判断し、処理中の通信データは攻撃データであると判定する。図13では、実行タイミングサイクル数が1つの数値として示されているが、「10〜14」や「12±2」と幅をもった間隔であってもよい。
HB適否判定グラフ164は、プログラム(図12参照)を解析して、処理の流れから生成してもよいし、正常な通信データをクローン130に処理させたときに受信したHBの種別や間隔から生成してもよい。
≪第2の実施形態:通信データ検査処理≫
図14は、第2の実施形態に係る通信データ検査部140が実行する通信データ検査処理を示すフローチャートである。
ステップS201において、通信データ検査部140は、通信データ蓄積部161から集約装置300向けの通信データのセット(学習用通信データ)を取得して、所定の単位時間当たりの通信データ数が所定の閾値以上である期間の長さを測定する。
ステップS202において、通信データ検査部140は、測定した期間の長さが、所定の閾値以上ならば(ステップS202→Y)ステップS203に進み、所定の閾値未満ならば(ステップS202→N)ステップS204に進む。
ステップS203において、通信データ検査部140は、ステップS201で取得した学習用通信データは、DoS攻撃の学習用通信データと判定し、図14の通信データ検査処理を終了する。
ステップS204において、通信データ検査部140は、通信データのセットをクローン130に入力して処理させて、処理結果が正常(コマンド処理が終了して正常な応答を返す。)か、エラー(コマンド処理が終了してエラーの応答を返す。例えば、認証失敗など。)かの処理結果を得る。
ステップS205において、通信データ検査部140は、所定の単位時間当たりの、処理結果がエラーである通信データ数が所定の閾値以上である期間の長さを測定する。
ステップS206において、通信データ検査部140は、測定した期間の長さが、所定の閾値以上ならば(ステップS206→Y)ステップS207に進み、所定の閾値未満ならば(ステップS206→N)ステップS208に進む。
ステップS207において、通信データ検査部140は、ステップS201で取得した学習用通信データは、総当たり攻撃の学習用通信データと判定し、図14の通信データ検査処理を終了する。
ステップS208において、通信データ検査部140は、通信データごとにステップS209〜S212の処理を繰り返す。
ステップS209において、通信データ検査部140は、通信データをクローン130に入力し処理させて、HBを受信する。
ステップS210において、通信データ検査部140は、受信したHBの順序や受信間隔がHB適否判定グラフから逸脱しているか否かを判定する。
ステップS211において、通信データ検査部140は、ステップS210において逸脱と判定すれば(ステップS211→Y)ステップS212に進み、逸脱ではないと判定すれば(ステップS211→N)ステップS213に進む。
ステップS212において、通信データ検査部140は、ステップS201で取得した学習用通信データは、脆弱性攻撃の学習用通信データと判定し、図14の通信データ検査処理を終了する。
ステップS213において、通信データ検査部140は、学習用通信データに含まれる全ての通信データについて、ステップS209〜S212の処理を実行したか判定する。通信データ検査部140は、全て処理済みならステップS214に進み、未処理の通信データがあればステップS209に戻る。
ステップS214において、通信データ検査部140は、ステップS201で取得した学習用通信データは、正常な学習用通信データと判定する。
≪第2の実施形態:通信データ検査処理の特徴≫
第1の実施形態では、学習用通信データの正常や攻撃種別を人手で予め分類することを想定している。これに対して、第2の実施形態では、管理サーバ100Aが、通信データ検査処理を実行することで、学習用通信データを正常か不正(異常)か分類し、さらに、不正ならば攻撃種別を分類することができる。取得した通信データについて管理サーバ100Aが分類して、学習処理を実行することで、大量の学習データを用いて学習することが可能となり、攻撃判定精度を向上させることができる。また、1つの集約装置で攻撃が発生した場合に、この攻撃に用いられた通信データを別の集約装置のクローンで正常か不正かを分類して、学習用通信データとすることで、他の集約装置に対する攻撃を未然に防ぐとことができるようになる。
以上、集約装置300に対する通信データ検査処理について説明したが、デバイス400についても同様に通信データの検査処理が可能である。
≪第3の実施形態≫
第3の実施形態では、第2の実施形態において脆弱性攻撃と判断された通信データを利用して、管理サーバがプログラムの脆弱性を修正するパッチ(更新プログラム、修正プログラム)を生成する。
≪第3の実施形態:管理サーバの全体構成≫
図15は、第3の実施形態に係る通信装置保護システムにおける管理サーバ100Bの全体構成を示す。第2の実施形態の管理サーバ100A(図11参照)と比較すると、制御部110にパッチ生成部150が加わり、記憶部160に使用メモリデータベース(図15では使用メモリDB(Database)と記載)170が加わる。
パッチ生成部150は、通信データ検査処理において脆弱性攻撃(図14のステップS212参照)と判定された通信データをクローン130に処理させて、動作を監視して、不正が発生する箇所を特定することで、ゲストシステム310のプログラム(集約機能部311のプログラム)のなかに存在する脆弱性を検出する。例えば、パッチ生成部150は、脆弱性攻撃の通信データを処理するプログラムのプロセスにアタッチしたプロセス(スタブ)と通信して制御することで、プロセスの処理をプログラムの1ステップ分ずつ進めたり、データ(プログラムの変数)の内容を確認したりしながら、不正(不正なデータ操作)が発生した箇所を特定する。
パッチ生成部150は、不正が発生した箇所の直前に、不正が発生するか否か検査して不正が発生する場合には処理を中断するコードを挿入するパッチ(更新プログラム、修正プログラム)を生成する。パッチ生成部150の動作は、図17A〜図21を参照して後記する。
図16は、第3の実施形態に係る使用メモリデータベース170のデータ構成を例示する図である。使用メモリデータベース170は表形式のデータであって、1つのレコード(行)は、クローン130のプログラムで用いられる変数や配列などのデータ(データが格納される領域)を示し、ポインタ171、サイズ172、種別173の属性(列)を含む。ポインタ171とサイズ172は、データの先頭アドレスとサイズ(長さ)である。種別173は、データのプログラムにおける種別(メモリ領域)であり、「スタック」、「ヒープ」、「スタティック(静的)」および「テキスト(プログラム)」の4つがある。例えば、レコード179は、アドレスが「0012e304(16進表記)」から始まる72バイトのデータ(データの領域)を示す。
使用メモリデータベース170は、プログラムにおいてデータ領域が変更される場合に更新される。例えば、プログラムの開始時にプログラム全体で参照されるデータ(スタティック領域上のグローバル変数)が登録され、関数が呼び出されるタイミングで関数内から参照されるデータ(スタック領域上のローカル変数)が登録され、また、プログラムの実行途中で確保されるデータ(ヒープ領域のバッファ)がその時点で登録される。また、関数の終了やプログラム実行途中でのデータ解放のタイミングで削除される。
≪第3の実施形態:不正検出(不正ポインタ参照)とパッチ生成≫
以下に、パッチ生成部150が実行するパッチ生成処理における、脆弱性の検出手法と修正手法について説明する。図17Aと図17Bとは、第3の実施形態に係るパッチ生成部150の不正ポインタ参照の脆弱性(不正なデータ操作)を検出する手法と修正する手法を説明するための図である。図17Aは、不正ポインタ参照の脆弱性がある関数Dのプログラムを示し、図17Bは、不正ポインタ参照の脆弱性を修正した後の関数Dのプログラムを示す。脆弱性攻撃を含む通信データの処理中に関数Dは、引数D2が指すデータを引数D1が指す領域にstrcpy関数を用いてコピーする(図17Aの2行目参照)が、D1が不正ポインタであり、コピーしようとしてD1がポイントするメモリ領域を参照しようとすると、不正が発生してプログラムが異常終了する。
パッチ生成部150は、ポインタ変数が参照される前に、ポインタが参照する先のメモリ領域が、使用メモリデータベース170において、種別173がスタック、ヒープ、スタティックの何れかである領域を指しているか検査し、指していなければ不正と判断する。
不正と判断された場合には、不正な参照が発生する箇所(図17Aの2行目、図17Bの4行目)の直前に、変数のポインタを検査するコード(図17Bの2行目)と、不正である場合に例外処理を実行するコード(図17Bの3行目)を挿入するパッチを生成する。
≪第3の実施形態:不正検出(バッファ溢れ)とパッチ生成≫
図18Aと図18Bとは、第3の実施形態に係るパッチ生成部150のバッファ溢れ(buffer overflow)の脆弱性(不正なデータ操作)を検出する手法と修正する手法を説明するための図である。図18Aは、バッファ溢れの脆弱性がある関数Eのプログラムを示し、図18Bは、バッファ溢れの脆弱性を修正した後の関数Eのプログラムを示す。脆弱性攻撃を含む通信データの処理中に関数Eは、引数E1が指すデータを変数bufferが指す領域にstrcpy関数を用いてコピーする(図18Aの3行目参照)が、コピー元のE1が示すデータのサイズが、コピー先のbufferのサイズより大きく、コピーするとバッファ溢れが生じ、不正発生の原因となる。
パッチ生成部150は、コピーの前に、コピー元とコピー先の領域のサイズを検査して、コピー元がコピー先より大きい場合には不正と判断する。領域のサイズは、使用メモリデータベース170において、ポインタが指す領域が、種別173がスタック、ヒープ、スタティックの何れかである領域であり、その領域のサイズ172から算出する。例えば、ポインタが「0012e308(16進表示)」である場合、このポインタはレコード179が示す領域の先頭(0バイト目)から4バイト目を指しており、領域のサイズは68バイトとなる。
不正と判断された場合には、不正なコピーが発生する箇所(図18Aの3行目、図18Bの5行目)の直前に、領域のサイズを検査するコード(図18Bの3行目)と、不正である場合に例外処理を実行するコード(図18Bの4行目)を挿入するパッチを生成する。
≪第3の実施形態:不正検出(二重解放)とパッチ生成≫
図19Aと図19Bとは、第3の実施形態に係るパッチ生成部150の二重解放(double-free)の脆弱性(不正なデータ操作)を検出する手法と修正する手法を説明するための図である。図19Aは、二重解放の脆弱性がある関数Fのプログラムを示し、図19Bは、二重解放の脆弱性を修正した後の関数Fのプログラムを示す。脆弱性攻撃を含む通信データの処理中に関数Fは、引数F1が指すポインタが指すメモリ領域を、free関数を用いて解放する(図19Aの2行目参照)が、既に解放済みのメモリ領域を解放すると不正発生の原因となる。
パッチ生成部150は、解放の前に、ポインタが指す領域が解放されていないことを検査し、解放済みの場合には不正と判断する。解放済みか否かは、使用メモリデータベース170において、種別173がヒープであって、ポインタ171が解放対象のポインタに一致するレコードがあれば、解放前(使用中)であり、正常と判断する。このようなレコードがなければ不正と判断する。
不正と判断された場合には、不正な解放が発生する箇所(図19Aの2行目、図19Bの4行目)の直前に、ポインタを検査するコード(図19Bの2行目)と、不正である場合に例外処理を実行するコード(図19Bの3行目)を挿入するパッチを生成する。
≪第3の実施形態:不正検出(整数溢れ)とパッチ生成≫
図20Aと図20Bとは、第3の実施形態に係るパッチ生成部150の整数溢れの脆弱性(不正なデータ操作)を検出する手法と修正する手法を説明するための図である。図20Aは、整数溢れの脆弱性がある関数Gのプログラムを示し、図20Bは、整数溢れの脆弱性を修正した後の関数Gのプログラムを示す。脆弱性攻撃を含む通信データの処理中に関数Gは、引数G1に引数G2を加算して変数xに格納する(図20Aの3行目参照)が、加算の結果が変数xの最大値を超える(整数溢れ)と不正発生の原因となる。
パッチ生成部150は、加算の前に、整数溢れの有無を検査し、溢れが発生する場合には不正と判断する。不正と判断された場合には、整数溢れが発生する箇所(図20Aの3行目、図20Bの5行目)の直前に、整数溢れを検査するコード(図20Bの3行目)と、不正である場合に例外処理を実行するコード(図20Bの4行目)を挿入するパッチを生成する。なお、変数xの最小値を超える場合も同様である。
≪第3の実施形態:不正検出(その他)とパッチ生成≫
その他の脆弱性についても、不正な通信データを処理するプロセスを監視することで、不正が発生する箇所を検出するようにしてもよい。例えば、printf関数などの書式指定出力関数において、書式を指定する変数に書式を指定する文字列("%s"など)が含まれている場合に不正と判断するようにしてもよい。
≪第3の実施形態:脆弱性検出処理≫
図21〜図24を参照して、管理サーバにおける、脆弱性を検出し、検出された脆弱性を修正する更新プログラム(パッチ)を生成して、集約装置に送信する処理と、集約装置における、更新プログラムを受信して、システムを更新する処理とを説明する。
図21は、第3の実施形態に係るパッチ生成部150が実行する脆弱性検出処理のフローチャートである。図21を参照しながら、脆弱性攻撃の通信データを用いて脆弱性を検出する処理を説明する。
ステップS301において、パッチ生成部150は、脆弱性攻撃の通信データをクローン130に入力して、クローン130のプログラム(集約機能部311のプログラム)に通信データの処理を開始させる。
ステップS302において、パッチ生成部150は、クローン130のプログラムを制御して1ステップずつ進めながら、プログラム上のステップ(以下、現ステップまたは現コードとも記す)それぞれに対して、ステップS303〜S314の処理を繰り返す。プログラムを制御する手法として、例えば、パッチ生成部150と通信可能なクローン130上のプロセス(スタブ)をプログラムのプロセスにアタッチして、プログラム上の1ステップずつ進める手法がある。
ステップS303において、パッチ生成部150は、現コードにポインタが含まれ、当該ポインタが不正か否かを判定する。ポインタが不正であるとは、ポインタが、使用メモリデータベース170において、種別173がスタック、ヒープ、スタティックの何れかであるメモリ領域の内部を指していない場合である。例えば、ポインタが0012e306(16進表記)であれば、レコード179で示されるメモリ領域の内部を指しているので正常である。
ステップS304において、パッチ生成部150は、ステップS303の判定において不正なポインタがあれば(ステップS304→Y)ステップS305に進み、なければ(ステップS304→N)ステップS306に進む。
ステップS305において、パッチ生成部150は、現コードに不正ポインタ参照の脆弱性があると判定し、図21の脆弱性検出処理を終了する。
ステップS306において、パッチ生成部150は、現コードがバッファ(メモリ領域)のコピー処理でありバッファ溢れが発生するか否かを判定する。バッファのサイズは、使用メモリデータベース170を参照して算出できる(図18Aと図18Bの説明参照)。なお、コピー元が文字列である場合には、文字列の長さからバッファのサイズを算出する。例えば、文字の型がcharである「"abcd"」の文字列のサイズは終端文字を含めて5バイトである。コピー元のサイズがコピー先より大きい場合にはバッファ溢れが発生すると判定する。
ステップS307において、パッチ生成部150は、ステップS306の判定においてバッファ溢れが発生すれば(ステップS307→Y)ステップS308に進み、なければ(ステップS307→N)ステップS309に進む。
ステップS308において、パッチ生成部150は、現コードにバッファ溢れ(図21ではBOF(buffer overflow)と記載)の脆弱性があると判定し、図21の脆弱性検出処理を終了する。
ステップS309において、パッチ生成部150は、現コードがメモリ解放の処理であり二重解放が発生するか否かを判定する。二重解放か否かは、使用メモリデータベース170のなかで、種別173がヒープであり、ポインタ171がメモリ解放処理の対象となっているポインタに一致するレコードがなければ、二重解放と判定する。
ステップS310において、パッチ生成部150は、ステップS309の判定において二重解放が発生すれば(ステップS310→Y)ステップS311に進み、なければ(ステップS310→N)ステップS312に進む。
ステップS311において、パッチ生成部150は、現コードに二重解放の脆弱性があると判定し、図21の脆弱性検出処理を終了する。
ステップS312において、パッチ生成部150は、現コードが整数演算の処理であり整数溢れが発生するか否かを判定する。整数溢れか否かは、演算の結果が、変数の型の最大値と最小値の間にあるか否かで判定する。
ステップS313において、パッチ生成部150は、ステップS312の判定において整数溢れが発生すれば(ステップS313→Y)ステップS314に進み、なければ(ステップS313→N)ステップS315に進む。
ステップS314において、パッチ生成部150は、現コードに整数溢れの脆弱性があると判定し、図21の脆弱性検出処理を終了する。
ステップS315において、パッチ生成部150は、通信データの処理に係るプログラムの全ステップを実行したか判断し、未処理のステップ(コード)があれば、ステップS303に戻り、全ステップを実行した場合には、脆弱性検査処理を終了する。
≪第3の実施形態:脆弱性検査処理の特徴≫
パッチ生成部150は、脆弱性攻撃を含む通信データをクローン130に処理させて、不正が発生するプログラムの箇所を特定することで、脆弱性のあるプログラムの場所(コード)を特定することができる。
プログラムを解析して、脆弱性を指摘するコード検査ツールが存在している。このような検査ツールは、静的な検査を行うために、変数の値であるポインタが解放済みか否かを判定できない、ポインタが指す文字列の長さが算出できずバッファ溢れが発生するか否かを判定できないといった問題があった。パッチ生成部150は、脆弱性攻撃を含む通信データを処理する過程で検査を行っており、ポインタが解放済みか否かを判定したり、文字列の長さを算出してバッファ溢れが発生するか否かを判定したりできる。このため、従来までの検査ツールでは検出できなかったプログラムの脆弱性のある箇所(コード)を特定することができる。引いては、後記するように、特定した脆弱性を修正するパッチを生成することができるようになる。
≪第3の実施形態:プログラム更新(パッチ)処理≫
図22と図23を参照して、管理サーバと集約装置とで実行されるプログラム更新処理を説明する。図22は、第3の実施形態に係る管理サーバ100Bのパッチ生成部150(図15参照)が実行する更新プログラム(パッチ)生成処理のフローチャートである。図22を参照して、脆弱性検出処理(図21参照)で検出された脆弱性を修正する更新プログラムを生成する処理を説明する。
ステップS331において、パッチ生成部150は、更新プログラムを生成する。詳しくは、パッチ生成部150は、脆弱性検出処理(図21参照)において検出された、プログラム(集約機能部311のプログラム)の不正ポインタ参照、バッファ溢れ、二重解放および整数溢れの脆弱性に対して図17A〜図20Bで説明した修正コードを追加する更新プログラム(パッチ)を生成する。
ステップS332において、パッチ生成部150は、更新プログラムに署名を付与し、暗号化する。署名や暗号化に用いる鍵は、更新データ鍵162に含まれている。
ステップS333において、パッチ生成部150は、署名が付与され暗号化された更新プログラムを集約装置に送信する。
図23は、第3の実施形態に係る集約装置300A(後記する図24参照)が実行するゲストシステム310のシステム更新処理のフローチャートである。図23を参照して、ゲストシステム310の集約機能部311を修正する処理を説明する。
ステップS351において、ゲストシステム310は、管理サーバ100Bが送信した更新プログラムを受信する。
ステップS352において、ゲストシステム310は、更新プログラムをルートシステム320に送信する。
ステップS353において、ルートシステム320のシステム更新部321は、更新プログラムを検査する。詳しくは、システム更新部321は、更新プログラムを復号して、署名を検査する。復号や署名の検証の際には、更新データ鍵322を用いる。
ステップS354において、システム更新部321は、ステップS353の検査に合格(復号できて署名検証に成功)すれば(ステップS354→Y)ステップS356に進み、失敗すれば(ステップS354→N)ステップS355に進む。
ステップS355において、システム更新部321は、検査に失敗したことを管理サーバ100Bに報告する。
ステップS356において、システム更新部321は、ハイパーバイザ330を介してゲストシステム310にシャットダウンを指示する。
ステップS357において、システム更新部321は、ゲストシステム310のシャットダウン後に、更新プログラムを適用して、ゲストシステム310を更新する。詳しくは、記憶部302上の集約機能部311のプログラムを修正して更新する。
ステップS358において、システム更新部321は、ハイパーバイザ330に指示して、ゲストシステム310を起動する。
ステップS359において、システム更新部321は、更新が完了したことを管理サーバ100Bに報告する。
≪第3の実施形態:集約装置の全体構成≫
図24は、第3の実施形態に係る集約装置300Aの全体構成を例示する図である。第1の実施形態の集約装置300(図3参照)と比較すると、ハイパーバイザ330内に使用メモリデータベース350が追加される。使用メモリデータベース350は、使用メモリデータベース170(図15と図16参照)と同様のデータ構成をしており、更新プログラムに含まれるポインタや領域サイズを検査するコードが実行されると参照される。
脆弱性攻撃を含む通信データを受信しても、システム更新後の集約機能部311は、不正(不正なデータ操作)を検出して、例外処理を実行することで、攻撃を未然に防ぐことができる。引いては、集約機能部311が停止したり、不正に操作されたりするなどのサイバー攻撃を防ぐことができる。
以上、集約装置300Aに対するパッチ(更新プログラム)生成とシステム更新について説明したが、デバイス400についても同様に可能である。
≪変形例:集約装置において脆弱性攻撃を含む通信データを検出≫
第2の実施形態では、管理サーバ100Aのクローン130を用いて、脆弱性攻撃を含む通信データを検出していた(図14のステップS208〜S213参照)。この検出を、集約装置で実行してもよい。
図25は、第2の実施形態の変形例に係る、通信データが脆弱性攻撃を含むか否かを検出する集約装置の全体構成を例示する図である。集約装置300(図3参照)と比較すると、ルートシステム320に、通信データ検査部323とHB適否判定グラフ324とが追加されている。通信データ検査部323およびHB適否判定グラフ324は、通信データ検査部140およびHB適否判定グラフ164と同様である。通信データ検査部323は、通信データを処理している集約機能部311が送信するHBをハイパーバイザ330経由で受信して、HBの受信順序や受信間隔がHB適否判定グラフ324から逸脱していないかを監視することで、処理中の通信データが脆弱性攻撃を含むか否か判断する。
以上、集約装置300Bに対する脆弱性攻撃を含む通信データ検出処理について説明したが、デバイス400についても同様に検出処理が可能である。
100,100A,100B 管理サーバ(通信装置保護管理サーバ)
120 攻撃判定学習部
130 クローン(仮想マシン)
140 通信データ検査部
150 パッチ生成部
300,300A,300B 集約装置(通信装置)
340,440 通信データ監視部
400 デバイス(通信装置)

Claims (5)

  1. 通信装置に対する正常な通信データ群に含まれる通信データおよび不正な通信データ群に含まれる通信データから、前記通信装置に対するコマンドおよび前記コマンドのパラメータの何れか1つまたは双方を抜き出して作成した学習データを用いて教師ありの学習をさせることで、前記通信装置に対する通信データが正常か不正かを判定する攻撃判定モデルを生成する攻撃判定学習部を備える
    ことを特徴とする通信装置保護管理サーバ。
  2. 前記コマンドから作成された学習データは、
    前記正常な通信データ群の通信パケットから時系列のコマンド、および、前記不正な通信データ群の通信パケットから時系列のコマンドを抜き出して作成される
    ことを特徴とする請求項1に記載の通信装置保護管理サーバ。
  3. 前記通信装置保護管理サーバ上で動作する仮想マシンであって、前記通信装置をシミュレートする仮想マシンの上で動作する前記通信データの処理プログラムに、前記通信装置に対する通信データ群を処理させて、前記処理プログラムが送信するハートビートの種別と送信間隔とが、前記正常な通信データ群を処理するときの前記ハートビートの種別と送信間隔と異なる場合に、前記処理プログラムが処理する通信データ群を不正と判断する通信データ検査部を備え、
    前記攻撃判定学習部は、前記通信データ検査部が不正と判断した通信データ群から前記学習データを作成する
    ことを特徴とする請求項1または請求項2に記載の通信装置保護管理サーバ。
  4. 前記通信装置保護管理サーバ上で動作する仮想マシンであって、前記通信装置をシミュレートする仮想マシンの上で動作する前記通信データの処理プログラムに、前記不正な通信データ群に含まれる通信データの処理を1ステップずつ実行させて、所定の不正なデータ操作を実行するステップを検出し、検出されたステップの直前に、前記不正なデータ操作の対象となるデータを検出して例外処理を実行するコードを前記処理プログラムに挿入する修正プログラムを生成するパッチ生成部を備える
    ことを特徴とする請求項1〜3の何れか1項に記載の通信装置保護管理サーバ。
  5. 通信装置と通信装置保護管理サーバから構成される通信装置保護システムであって、
    前記通信装置保護管理サーバは、
    前記通信装置に対する正常な通信データ群に含まれる通信データおよび不正な通信データ群に含まれる通信データから、前記通信装置に対するコマンドおよび前記コマンドのパラメータの何れか1つまたは双方を抜き出して作成した学習データを用いて教師ありの学習をさせることで、前記通信装置に対する通信データが正常か不正かを判定する攻撃判定モデルを生成して、前記攻撃判定モデルのパラメータを前記通信装置に送信する攻撃判定学習部を備え、
    前記通信装置は、
    前記攻撃判定モデルのパラメータを自身の攻撃判定モデルに設定して、自身が受信した通信データを前記自身の攻撃判定モデルが不正と判定した場合には、当該通信データを破棄する、または、当該通信データを送信した通信装置からの通信データを破棄する通信データ監視部を備える
    ことを特徴とする通信装置保護システム。
JP2018071812A 2018-04-03 2018-04-03 通信装置保護管理サーバおよび通信装置保護システム Pending JP2019185183A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018071812A JP2019185183A (ja) 2018-04-03 2018-04-03 通信装置保護管理サーバおよび通信装置保護システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018071812A JP2019185183A (ja) 2018-04-03 2018-04-03 通信装置保護管理サーバおよび通信装置保護システム

Publications (1)

Publication Number Publication Date
JP2019185183A true JP2019185183A (ja) 2019-10-24

Family

ID=68341177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018071812A Pending JP2019185183A (ja) 2018-04-03 2018-04-03 通信装置保護管理サーバおよび通信装置保護システム

Country Status (1)

Country Link
JP (1) JP2019185183A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102120214B1 (ko) * 2019-11-15 2020-06-08 (주)유엠로직스 앙상블 기계학습 기법을 이용한 사이버 표적공격 탐지 시스템 및 그 탐지 방법
JP2021082948A (ja) * 2019-11-19 2021-05-27 エヌ・ティ・ティ・コミュニケーションズ株式会社 閾値出力装置、閾値出力方法および閾値出力プログラム
JP2021117773A (ja) * 2020-01-27 2021-08-10 富士通株式会社 情報処理装置、分析用データ生成プログラム及び方法
JP7391313B2 (ja) 2020-02-25 2023-12-05 エフ・1・セキュリティ・インコーポレイテッド 人工知能マシンラーニング行為ベースウェブプロトコル分析によるウェブ攻撃検知および遮断システムおよび方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263661A1 (en) * 2007-04-23 2008-10-23 Mitsubishi Electric Corporation Detecting anomalies in signaling flows
JP2010198054A (ja) * 2009-02-23 2010-09-09 National Institute Of Information & Communication Technology コンピュータ検査システム、コンピュータ検査方法
US20110030059A1 (en) * 2009-07-30 2011-02-03 Greenwald Lloyd G Method for testing the security posture of a system
JP2011258019A (ja) * 2010-06-09 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 異常検知装置、異常検知プログラムおよび異常検知方法
JP2016173782A (ja) * 2015-03-18 2016-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 故障予測システム、故障予測方法、故障予測装置、学習装置、故障予測プログラム及び学習プログラム
WO2017094377A1 (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 分類方法、分類装置および分類プログラム
WO2017221667A1 (ja) * 2016-06-20 2017-12-28 日本電信電話株式会社 悪性通信ログ検出装置、悪性通信ログ検出方法、悪性通信ログ検出プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263661A1 (en) * 2007-04-23 2008-10-23 Mitsubishi Electric Corporation Detecting anomalies in signaling flows
JP2008306706A (ja) * 2007-04-23 2008-12-18 Mitsubishi Electric Information Technology Centre Europa Bv シグナリングフローの異常を検知する方法及び装置
JP2010198054A (ja) * 2009-02-23 2010-09-09 National Institute Of Information & Communication Technology コンピュータ検査システム、コンピュータ検査方法
US20110030059A1 (en) * 2009-07-30 2011-02-03 Greenwald Lloyd G Method for testing the security posture of a system
JP2011258019A (ja) * 2010-06-09 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 異常検知装置、異常検知プログラムおよび異常検知方法
JP2016173782A (ja) * 2015-03-18 2016-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 故障予測システム、故障予測方法、故障予測装置、学習装置、故障予測プログラム及び学習プログラム
WO2017094377A1 (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 分類方法、分類装置および分類プログラム
WO2017221667A1 (ja) * 2016-06-20 2017-12-28 日本電信電話株式会社 悪性通信ログ検出装置、悪性通信ログ検出方法、悪性通信ログ検出プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
三村 守,大坪 雄平,田中 英彦: "プロキシのログからの機械学習によるRATの検知方式 Detecting RAT Activity in Proxy Server Logs with", CSS2015 コンピュータセキュリティシンポジウム2015 論文集 合同開催 マルウェア対策研究人, vol. 2015, no. 3, JPN6020009530, 14 October 2015 (2015-10-14), JP, pages 528 - 535, ISSN: 0004681942 *
木内 舞 KIUCHI MAI, 小野田 崇 ONODA TAKASHI: "監視制御通信におけるシーケンスを考慮した侵入検知 Intrusion Detection in Control Systems using Seque", 電気学会論文誌C IEEJ TRANSACTIONS ON ELECTRONICS, INFORMATION AND SYSTEMS, vol. 132, no. 1, JPN6019000498, 2012, JP, pages 14 - 20, ISSN: 0004816074 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102120214B1 (ko) * 2019-11-15 2020-06-08 (주)유엠로직스 앙상블 기계학습 기법을 이용한 사이버 표적공격 탐지 시스템 및 그 탐지 방법
JP2021082948A (ja) * 2019-11-19 2021-05-27 エヌ・ティ・ティ・コミュニケーションズ株式会社 閾値出力装置、閾値出力方法および閾値出力プログラム
JP7311402B2 (ja) 2019-11-19 2023-07-19 エヌ・ティ・ティ・コミュニケーションズ株式会社 閾値出力装置、閾値出力方法および閾値出力プログラム
JP2021117773A (ja) * 2020-01-27 2021-08-10 富士通株式会社 情報処理装置、分析用データ生成プログラム及び方法
JP7393642B2 (ja) 2020-01-27 2023-12-07 富士通株式会社 情報処理装置、分析用データ生成プログラム及び方法
JP7391313B2 (ja) 2020-02-25 2023-12-05 エフ・1・セキュリティ・インコーポレイテッド 人工知能マシンラーニング行為ベースウェブプロトコル分析によるウェブ攻撃検知および遮断システムおよび方法

Similar Documents

Publication Publication Date Title
US10110619B2 (en) Method and product for providing a predictive security product and evaluating existing security products
US7603715B2 (en) Containment of worms
JP2019185183A (ja) 通信装置保護管理サーバおよび通信装置保護システム
JP6557774B2 (ja) プロセストレースを用いたグラフベースの侵入検知
KR101137128B1 (ko) 웜 봉쇄 방법
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
US20080256631A1 (en) Renewable integrity rooted system
Said et al. Detection of mirai by syntactic and behavioral analysis
US10482251B1 (en) Using integrity reports to detect network instrusion
WO2021214429A1 (en) Analytics processing circuitry for mitigating attacks against computing systems
US20210084061A1 (en) Bio-inspired agile cyber-security assurance framework
Obeidat et al. Smart approach for botnet detection based on Network Traffic analysis
Said et al. Detection of mirai by syntactic and semantic analysis
Murthy et al. Hybrid intelligent intrusion detection system using bayesian and genetic algorithm (baga): comparitive study
WO2021214430A1 (en) Moderator system for a security analytics framework
Colombo et al. Towards a Comprehensive Solution for Secure Cryptographic Protocol Execution based on Runtime Verification.
CN106096402A (zh) 一种信息拦截方法及装置
Pan et al. Efficient and Transparent Method for Large-Scale TLS Traffic Analysis of Browsers and Analogous Programs
Wang et al. Incorporating Gradients to Rules: Towards Lightweight, Adaptive Provenance-based Intrusion Detection
Cho Replay-based Worm Detection System
Skormin et al. Towards fully automatic defense mechanism for a computer network emulating active immune response

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220704