(57)【要約】  取得部（１０）が、正常サンプルデータと非正常サンプルデータとを取得する。モデル生成部（１２０）が、正常サンプルデータを表現する正常モデルを生成する。変更部（１４１）が、非正常サンプルデータの非正常特徴ベクトルを生成し、非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する。検証部（１４２）が、非正常変更ベクトルと正常モデルが類似である場合に、非正常変更ベクトルにより表されるサンプルデータを用いた処理を実行する。そして、検証部（１４２）が、検知装置により異常事象が検知されるかを検証する。検証部（１４２）は、異常事象が検知されないことが検証されると、検知装置によらず異常事象があるかを判定する。検証部（１４２）は、異常事象があると判定した場合に、非正常変更ベクトルにより表されるサンプルデータを検知漏れサンプルデータ（１５４）として記憶部（１５０）に記憶する。
2019073557.tif 000002
【特許請求の範囲】
【請求項１】
各々がシステムの通常事象である複数の正常サンプルデータと、各々が前記システムの異常事象である複数の非正常サンプルデータとを取得する取得部と、
前記複数の正常サンプルデータを表現する正常モデルを生成するモデル生成部と、
前記複数の非正常サンプルデータの非正常サンプルデータ毎に、前記非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成し、前記非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する変更部と、
前記非正常変更ベクトルと前記正常モデルとが類似である場合に、前記非正常変更ベクトルにより表されるサンプルデータを用いた処理を前記システムで実行し、前記システムの異常事象を検知する検知装置により異常事象が検知されるかを検証し、前記検知装置により異常事象が検知されないことが検証されると、前記検知装置によらず前記システムに異常事象があるかを判定し、異常事象があると判定した場合に、前記非正常変更ベクトルにより表されるサンプルデータを前記検知装置の検知漏れサンプルデータとして記憶部に記憶する検証部と
を備えたサンプルデータ生成装置。
【請求項２】
前記モデル生成部は、
前記複数の正常サンプルデータのうち前記検知装置が誤検知する正常サンプルデータを誤検知サンプルデータとして取得し、前記誤検知サンプルデータを表現するモデルを誤検知モデルとして生成し、
前記変更部は、
前記複数の正常サンプルデータと前記複数の非正常サンプルデータとを含む複数の処理サンプルデータの処理サンプルデータ毎に、前記処理サンプルデータの特徴をベクトルで表した処理特徴ベクトルを生成し、前記処理特徴ベクトルの要素を変更して得られる処理変更ベクトルを生成し、
前記検証部は、
前記処理変更ベクトルと前記誤検知モデルとが類似である場合に、前記処理変更ベクトルにより表されるサンプルデータを用いた処理を前記システムで実行し、前記検知装置により異常事象が検知されるかを検証し、前記検知装置により異常事象が検知されることが検証されると、前記検知装置によらず前記システムに異常事象があるかを判定し、異常事象がないと判定した場合に、前記処理変更ベクトルにより表されるサンプルデータを前記検知装置の誤検知サンプルデータとして前記記憶部に記憶する請求項１に記載のサンプルデータ生成装置。
【請求項３】
前記検証部は、
前記非正常変更ベクトルと前記正常モデルとの第１類似度を算出し、前記第１類似度が第１閾値以上の場合に、前記非正常変更ベクトルと前記正常モデルとが類似であると判定する請求項２に記載のサンプルデータ生成装置。
【請求項４】
前記検証部は、
前記処理変更ベクトルと前記誤検知モデルとの第２類似度を算出し、前記第２類似度が第２閾値以上の場合に、前記処理変更ベクトルと前記誤検知モデルとが類似であると判定する請求項２または３に記載のサンプルデータ生成装置。
【請求項５】
前記取得部は、
前記システム以外の他システムから通常事象のサンプルデータを収集し、収集したサンプルデータを前記システムの環境に合わせて修正することにより、前記複数の正常サンプルデータを取得する正常収集部と、
前記システムの通常事象のサンプルデータを生成するサンプル生成ツールと模擬環境とを用いて、前記複数の正常サンプルデータを取得する正常生成部と
を備えた請求項２から４のいずれか１項に記載のサンプルデータ生成装置。
【請求項６】
前記取得部は、
前記システム以外の他システムから異常事象のサンプルデータを収集し、収集したサンプルデータを前記システムの環境に合わせて修正することにより、前記複数の非正常サンプルデータを取得する非正常収集部と、
前記システムの異常事象のサンプルデータを生成する攻撃ツールと模擬環境とを用いて、前記複数の非正常サンプルデータを取得する非正常生成部と
を備えた請求項２から５のいずれか１項に記載のサンプルデータ生成装置。
【請求項７】
前記モデル生成部は、
前記複数の正常サンプルデータの各々を特徴ベクトルに変換する特徴変換部と、
機械学習技術を用いて、前記特徴変換部により変換された特徴ベクトルから前記正常モデルを学習する学習部と
を備えた請求項２から６のいずれか１項に記載のサンプルデータ生成装置。
【請求項８】
前記変更部は、
前記非正常特徴ベクトルの要素ごとに定められた第１変更範囲の範囲内において、前記非正常特徴ベクトルの要素を変更する請求項２から７のいずれか１項に記載のサンプルデータ生成装置。
【請求項９】
前記変更部は、
前記処理特徴ベクトルの要素ごとに定められた第２変更範囲の範囲内において、前記処理特徴ベクトルの要素を変更する請求項２から８のいずれか１項に記載のサンプルデータ生成装置。
【請求項１０】
前記システムは、仮想環境に模擬的に設けられた模擬環境に設けられた請求項２から９のいずれか１項に記載のサンプルデータ生成装置。
【請求項１１】
前記検証部は、
予め定められた前記非正常変更ベクトルの第１制約条件を満たす前記非正常変更ベクトルについてのみ、前記検知装置により異常事象が検知されるかを検証する請求項２から１０のいずれか１項に記載のサンプルデータ生成装置。
【請求項１２】
前記検証部は、
予め定められた前記処理変更ベクトルの第２制約条件を満たす前記処理変更ベクトルについてのみ、前記検知装置により異常事象が検知されるかを検証する請求項２から１１のいずれか１項に記載のサンプルデータ生成装置。
【請求項１３】
前記サンプルデータ生成装置は、
前記誤検知サンプルデータの分類に対する寄与度に基づいて特徴を抽出する特徴選択部を備えた請求項２から１２のいずれか１項に記載のサンプルデータ生成装置。
【請求項１４】
取得部が、各々がシステムの通常事象である複数の正常サンプルデータと、各々が前記システムの異常事象である複数の非正常サンプルデータとを取得し、
モデル生成部が、前記複数の正常サンプルデータを表現する正常モデルを生成し、
変更部が、前記複数の非正常サンプルデータの非正常サンプルデータ毎に、前記非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成し、前記非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成し、
検証部が、前記非正常変更ベクトルと前記正常モデルとが類似である場合に、前記非正常変更ベクトルにより表されるサンプルデータを用いた処理を前記システムで実行し、前記システムの異常事象を検知する検知装置により異常事象が検知されるかを検証し、前記検知装置により異常事象が検知されないことが検証されると、前記検知装置によらず前記システムに異常事象があるかを判定し、異常事象があると判定した場合に、前記非正常変更ベクトルにより表されるサンプルデータを前記検知装置の検知漏れサンプルデータとして記憶部に記憶するサンプルデータ生成方法。
【請求項１５】
各々がシステムの通常事象である複数の正常サンプルデータと、各々が前記システムの異常事象である複数の非正常サンプルデータとを取得する取得処理と、
前記複数の正常サンプルデータを表現する正常モデルを生成するモデル生成処理と、
前記複数の非正常サンプルデータの非正常サンプルデータ毎に、前記非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成し、前記非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する変更処理と、
前記非正常変更ベクトルと前記正常モデルとが類似である場合に、前記非正常変更ベクトルにより表されるサンプルデータを用いた処理を前記システムで実行し、前記システムの異常事象を検知する検知装置により異常事象が検知されるかを検証し、前記検知装置により異常事象が検知されないことが検証されると、前記検知装置によらず前記システムに異常事象があるかを判定し、異常事象があると判定した場合に、前記非正常変更ベクトルにより表されるサンプルデータを前記検知装置の検知漏れサンプルデータとして記憶する検証処理と
をコンピュータに実行させるサンプルデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの異常事象を検知する検知装置のサンプルデータを生成するサンプルデータ生成装置、サンプルデータ生成方法およびサンプルデータ生成プログラムに関する。特に、本発明は、検知装置の検知精度を高精度化するためのサンプルデータを生成するサンプルデータ生成装置、サンプルデータ生成方法およびサンプルデータ生成プログラムに関する。
【背景技術】
【０００２】
故障、攻撃、あるいはその他の異常といった異常事象を検知する検知技術では、誤検知、すなわちＦａｌｓｅ  Ｐｏｓｉｔｉｖｅと、検知漏れ、すなわちＦａｌｓｅ  Ｎｅｇａｔｉｖｅがしばしば発生する。誤検知とは、本来検知すべきではない正常な事象を検知してしまうことである。また、検知漏れとは、本来検知すべき異常事象を検知しないことである。誤検知および検知漏れは、検知技術の設計および評価の際に、十分な数かつ十分なバリエーションの正常な事象および異常事象を用意することができないために発生する。そこで、検知技術の設計および評価の精度を高めるために、検知技術が起こす可能性のある誤検知および検知漏れに関して、十分なサンプルデータを生成する技術が必要である。【０００３】
特許文献１には、マルウェアといった不正プログラムに変異を与え、既存の不正プログラム検知製品では検出できないような不正プログラムのサンプルデータを生成する技術が開示されている。既存の不正プログラム検知製品の具体例は、アンチウィルスソフトウェアである。特許文献１の技術は、生成されたサンプルデータについて、既知の製品で検知されないこと、および、悪意のある機能を維持していることを検査する。そして、特許文献１の技術は、検査にパスしたサンプルデータを使って、不正プログラム検知技術を強化する。【０００４】
特許文献２には、バイナリデータの攻撃データを効率的に作る技術が開示されている。特許文献２の技術は、攻撃データのバイト列を１バイトずつ正常データに近づける。そして、そのバイナリデータをシステムに入力し、システムが異常を起こすバイナリデータを特定する。このように、正常データの特徴を持つ攻撃データが自動生成される。特許文献２の技術は、正常データの特徴を持つ攻撃データを用いることにより、システムの異常を効率よく発見し、システムを強化することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１６−５０７１１５号公報
【特許文献２】特許５９０６８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術は、不正プログラム検知技術における監視対象の正常な状態を考慮していない。攻撃検知技術では、正常なファイルを誤検知しないように、正常なプログラムには含まれないような不正プログラムの特徴をもとに、攻撃検知のルールが定義される。そのため、高度な攻撃者は、正常なプログラムの特徴の範囲で悪意ある処理をする不正なプログラムを作る。しかし、特許文献１の技術では、正常なプログラムの特徴の範囲で悪意ある処理をする不正なプログラムを検知できるように攻撃検知プログラムを強化することはできない。また、特許文献１の技術では、誤検知のサンプルデータは提供されない。【０００７】
特許文献２の技術は、生成された攻撃データが攻撃として成立するかまでは確認しない。そのため、高度な攻撃者は、システムが異常を起こさない正常な範囲のデータによってシステムに不正な処理をさせる入力データを検討する。しかし、特許文献２の技術では、システムが異常を起こさない正常な範囲のデータだけでシステムに不正な処理をさせる入力データを生成できない。また、特許文献２の技術では、誤検知のサンプルデータは提供されない。【０００８】
本発明の目的は、検知装置の設計および評価の精度を高めるために、検知装置が起こす可能性がある検知漏れおよび誤検知に関する十分なサンプルデータを自動的に用意することである。
【課題を解決するための手段】
【０００９】
本発明に係るサンプルデータ生成装置は、
各々がシステムの通常事象である複数の正常サンプルデータと、各々が前記システムの異常事象である複数の非正常サンプルデータとを取得する取得部と、
前記複数の正常サンプルデータを表現する正常モデルを生成するモデル生成部と、
前記複数の非正常サンプルデータの非正常サンプルデータ毎に、前記非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成し、前記非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する変更部と、
前記非正常変更ベクトルと前記正常モデルとが類似である場合に、前記非正常変更ベクトルにより表されるサンプルデータを用いた処理を前記システムで実行し、前記システムの異常事象を検知する検知装置により異常事象が検知されるかを検証し、前記検知装置により異常事象が検知されないことが検証されると、前記検知装置によらず前記システムに異常事象があるかを判定し、異常事象があると判定した場合に、前記非正常変更ベクトルにより表されるサンプルデータを前記検知装置の検知漏れサンプルデータとして記憶部に記憶する検証部とを備えた。
【発明の効果】
【００１０】
本発明に係るサンプルデータ生成装置では、変更部が、非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成し、非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する。検証部が、非正常変更ベクトルと正常モデルとが類似である場合に、非正常変更ベクトルを用いた処理を実行した際に、検知装置により異常事象が検知されるかを検証する。そして、検証部が、検知装置により異常事象が検知されないことが検証されると、検知装置によらずシステムに異常事象があるかを判定する。そして、検証部が、異常事象があると判定した場合に、非正常変更ベクトルにより表されるサンプルデータを検知装置の検知漏れサンプルデータとして記憶部に記憶する。よって、本発明に係るサンプルデータ生成装置によれば、非正常特徴ベクトルの要素を変更しながら、正常モデルに類似し、かつ、検知装置に検知されず、かつ、異常事象であるサンプルデータを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るサンプルデータ生成装置１００の構成図。
【図２】実施の形態１に係る正常サンプル生成部１１０の構成図。
【図３】実施の形態１に係るモデル生成部１２０の構成図。
【図４】実施の形態１に係る非正常サンプル生成部１３０の構成図。
【図５】実施の形態１に係る調整部１４０の構成図。
【図６】実施の形態１に係る取得処理およびモデル生成処理のフロー図。
【図７】実施の形態１に係る正常サンプルデータおよび非正常サンプルデータの母集団を表現する図。
【図８】実施の形態１に係る正常モデルが表現するサンプルデータおよび検知装置が検知するサンプルデータの母集団を表現する図。
【図９】実施の形態１に係る誤検知サンプルデータの母集団を表現する図。
【図１０】実施の形態１に係る誤検知モデルが表現するサンプルデータの母集団を表現する図。
【図１１】実施の形態１に係る検知漏れサンプルデータ生成処理のフロー図。
【図１２】実施の形態１に係る検知漏れ調整処理の詳細フロー図。
【図１３】実施の形態１に係る誤検知サンプルデータ生成処理のフロー図。
【図１４】実施の形態１に係る誤検知調整処理の詳細フロー図。
【図１５】実施の形態１の変形例に係るサンプルデータ生成装置１００の構成図。
【図１６】実施の形態２に係るサンプルデータ生成装置１００ａの構成図。
【図１７】実施の形態２に係る特徴選択処理のフロー図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１３】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１から図５を用いて、本実施の形態に係るサンプルデータ生成装置１００の構成を説明する。
サンプルデータ生成装置１００は、システムの異常事象を検知する検知装置のサンプルデータを生成する。サンプルデータ生成装置１００は、検知装置の検知精度の高精度化を目的としている。サンプルデータ生成装置１００は、検知装置が検知できない異常事象を検知漏れサンプルデータとして生成する。また、サンプルデータ生成装置１００は、検知装置が検知してしまう通常事象を誤検知サンプルデータとして生成する。なお、検知装置が異常事象の検知の対象とするシステムを、対象システムと呼ぶ場合がある。
【００１４】
サンプルデータ生成装置１００は、コンピュータである。サンプルデータ生成装置１００は、プロセッサ９１０を備えるとともに、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０、出力インタフェース９４０、および通信装置９５０といった他のハードウェアを備える。プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１５】
サンプルデータ生成装置１００は、機能要素として、取得部１０と、モデル生成部１２０と、調整部１４０と、記憶部１５０とを備える。取得部は、正常サンプル生成部１１０と、非正常サンプル生成部１３０とを備える。図２に示すように、正常サンプル生成部１１０は、正常収集部１１１と正常生成部１１２を備える。図３に示すように、モデル生成部１２０は、特徴変換部１２１と学習部１２２を備える。図４に示すように、非正常サンプル生成部１３０は、非正常生成部１３１と非正常収集部１３２を備える。図５に示すように、調整部１４０は、変更部１４１と検証部１４２を備える。変更部１４１は、特徴抽出部４１１と特徴修正部４１２を備える。記憶部１５０には、攻撃ツール群１５１と、サンプル生成ツール群１５２と、模擬環境１５３と、検知漏れサンプルデータ１５４と、誤検知サンプルデータ１５５とが記憶される。
取得部１０とモデル生成部１２０と変更部１４１と検証部１４２の機能は、ソフトウェアにより実現される。記憶部１５０は、メモリ９２１に備えられる。
【００１６】
プロセッサ９１０は、サンプルデータ生成プログラムを実行する装置である。サンプルデータ生成プログラムは、取得部１０とモデル生成部１２０と変更部１４１と検証部１４２の機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１７】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１８】
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤである。また、補助記憶装置９２２は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬記憶媒体であってもよい。なお、ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈの略語である。ＤＶＤは、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００１９】
入力インタフェース９３０は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
【００２０】
出力インタフェース９４０は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２１】
通信装置９５０は、ネットワークを介して他の装置と通信する装置である。通信装置９５０は、レシーバとトランスミッタを有する。通信装置９５０は、有線または無線で、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置９５０は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２２】
サンプルデータ生成プログラムは、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。メモリ９２１には、サンプルデータ生成プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ９１０は、ＯＳを実行しながら、サンプルデータ生成プログラムを実行する。サンプルデータ生成プログラムおよびＯＳは、補助記憶装置９２２に記憶されていてもよい。補助記憶装置９２２に記憶されているサンプルデータ生成プログラムおよびＯＳは、メモリ９２１にロードされ、プロセッサ９１０によって実行される。なお、サンプルデータ生成プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２３】
サンプルデータ生成装置１００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、サンプルデータ生成プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、サンプルデータ生成プログラムを実行する装置である。
【００２４】
サンプルデータ生成プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ９２１、補助記憶装置９２２、または、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００２５】
サンプルデータ生成プログラムは、取得部１０とモデル生成部１２０と変更部１４１と検証部１４２の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、サンプルデータ生成方法は、サンプルデータ生成装置１００がサンプルデータ生成プログラムを実行することにより行われる方法である。
サンプルデータ生成プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、サンプルデータ生成プログラムは、プログラムプロダクトとして提供されてもよい。
【００２６】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係るサンプルデータ生成装置１００の各部の動作について説明する。
【００２７】
＜取得処理およびモデル生成処理＞
まず、図６を用いて、本実施の形態に係る取得処理およびモデル生成処理について説明する。
ステップＳ１１１において、取得部１０は、各々がシステムの通常事象である複数の正常サンプルデータを取得する。具体的には、正常サンプル生成部１１０は、対象システムから真に正常なサンプルデータ、すなわち正常サンプルデータを収集する。サンプルデータの具体例は、通信パケット、プロキシログ、システムログ、メール、およびファイルである。サンプルデータに対応するセンサを対象システムに設置することにより、サンプルデータが収集される。この時点では、正常ではないサンプルデータ、すなわち非正常サンプルデータは対象システムに含まれていないものとする。
【００２８】
より詳しく説明する。
正常サンプル生成部１１０の正常収集部１１１が、対象システムから真に正常なサンプルデータを収集する。また、正常収集部１１１は、別の環境から収集した正常サンプルデータを、対象システム用に編集する。すなわち、正常収集部１１１が、対象システム以外の他システムから通常事象のサンプルデータを収集する。そして、正常収集部１１１は、収集したサンプルデータを対象システムの環境に合わせて修正することにより、複数の正常サンプルデータを取得する。別の環境から収集した正常サンプルデータとは、別の環境における通常事象である。例えば、別の環境から収集した正常サンプルデータがログの場合、タイムスタンプ、ＩＰアドレス、ホスト名、およびドメイン名といった情報が、対象システムの環境のログとは異なる可能性がある。そこで、正常収集部１１１は、対象システムから収集したログの情報と整合するように、タイムスタンプ、ＩＰアドレス、ホスト名、およびドメイン名といった情報を修正する。
【００２９】
また、正常サンプル生成部１１０の正常生成部１１２は、正常サンプルデータを収集するのではなく、パラメータに合わせて正常サンプルデータを生成する。正常生成部１１２は、サンプルデータの特徴ベクトルに合わせて正常サンプルデータを生成する。サンプルデータの特徴ベクトルに合わせて正常サンプルデータを生成するツールが、対象システムごとに用意される。すなわち、正常生成部１１２は、システムの通常事象のサンプルデータを生成するサンプル生成ツール群１５２と模擬環境１５３とを用いて、複数の正常サンプルデータを取得する。このツールは、誤検知サンプルデータを自動生成する際にも利用される。
なお、正常サンプル生成部１１０は、組織のシステムに設置したセンサから定期的に送られる正常サンプルデータを収集してもよい。
【００３０】
ステップＳ１１２において、モデル生成部１２０は、複数の正常サンプルデータを表現するモデルを生成する。正常サンプルデータを表現するモデルのことを正常モデルと呼ぶ。モデル生成部１２０は、正常サンプルデータのセットを機械学習といった技術を使って学習することにより、正常モデルを生成する。機械学習を利用する場合、モデル生成部１２０は、サンプルデータが正常サンプルデータかそれ以外かを分類するための１クラス識別器を利用する。モデル生成部１２０は、サンプルデータが正常サンプルデータに近いかどうかを測るために、識別のスコアを識別器から求めることができる識別アルゴリズムを利用する。モデル生成部１２０は、機械学習の前に、サンプルデータの生データを前処理し、既定の特徴を抽出するといった処理をしてもよい。
なお、モデル生成部１２０は、後述する非正常サンプル生成部１３０により生成される非正常サンプルデータのセットを利用してもよい。すなわち、モデル生成部１２０は、正常サンプルデータか非正常なサンプルデータかを分類する２クラス識別器を利用してもよい。２つのセットの大きさに差がある場合は、サンプルデータ数を調整したり、誤答の際のペナルティを調整したりするといった不均衡データに対して良く利用されるアプローチを採用する。
【００３１】
モデル生成部１２０の特徴変換部１２１は、複数の正常サンプルデータの各々を特徴ベクトルに変換する。また、モデル生成部１２０の学習部１２２は、機械学習技術を用いて、特徴変換部１２１により変換された特徴ベクトルから正常モデルを学習する。
具体的には、特徴変換部１２１は、入力されたサンプルデータを処理しやすい形式、すなわち特徴ベクトルに変換する。具体例としてプロキシログの場合について説明する。例えば、一定期間における送信元と送信先の通信に関して、通信の頻度、データサイズ、データに含まれる文字列の頻度といった情報を要素として並べたものが、特徴ベクトルＣ＝（ｃ１、ｃ２、…、ｃｎ）である。収集したサンプルデータをそのままの形で学習できるならば、特徴変換部１２１は必要ない。
学習部１２２は、正常サンプルデータの特徴ベクトルを学習データとして、正常サンプルデータを表現する特徴空間をモデルとして学習する。学習されたモデルを使い、新たに与えられた特徴ベクトルに対して、スコアを計算することができれば、学習の方法は問わない。スコアは、与えられた特徴ベクトルが正常サンプルデータとどれだけ似ているかを表す値、すなわち類似度である。類似度は、正常サンプルデータのモデルに近ければ高い値になり、似てなければ低い値になる。機械学習の分類器の場合、スコアは予測値の確率にあたる。
【００３２】
ステップＳ１１３において、モデル生成部１２０は、複数の正常サンプルデータのうち検知装置が誤検知する正常サンプルデータを誤検知サンプルデータとして取得する。モデル生成部１２０は、既存の検知エンジンを利用して、既存の検知エンジンが誤検知を起こす正常サンプルデータを取得する。モデル生成部１２０は、正常サンプル生成部１１０がステップＳ１１１で取得した正常サンプルデータを、既存の検知エンジンに入力する。そして、モデル生成部１２０は、誤検知を起こす正常サンプルデータを誤検知サンプルデータとして取得する。
【００３３】
ステップＳ１１４において、モデル生成部１２０は、誤検知サンプルデータを表現するモデルを誤検知モデルとして生成する。具体的には、モデル生成部１２０は、誤検知を起こさない正常サンプルデータのセットと誤検知を起こす正常サンプルデータのセットを機械学習といった技術を使って学習する。そして、モデル生成部１２０は、誤検知を起こす正常サンプルデータ、すなわち誤検知サンプルデータを表現するモデルを生成する。誤検知サンプルデータを表現するモデルを誤検知モデルと呼ぶ。
機械学習を利用する場合、モデル生成部１２０は、誤検知を起こさない正常サンプルデータか、誤検知を起こす正常サンプルデータかを分類するための２クラス識別器となる。２つのセットの大きさに差がある場合は、サンプルデータ数を調整したり、誤答の際のペナルティを調整したりするといった不均衡データに対して良く利用されるアプローチを採用する。
本実施の形態では、モデルを生成するための手法として機械学習を取り上げている。機械学習のアルゴリズムは、対象とするシステム、情報、あるいはコストに応じて、適切に選択される。
【００３４】
次に、図７から図１０を用いて、サンプルデータおよびモデルの関係について説明する。
図７において、Ｗの空間は、正常サンプルデータの母集団を表現する。また、Ｂの空間は、非正常サンプルデータの母集団を表現する。
図８において、ＮＭは、正常モデルが表現するサンプルデータの空間である。必ずしも正確に正常サンプルデータを学習できるわけではないため、ＮＭには非正常サンプルデータも多少は含まれる。Ｄの空間は、ある検知装置が検知するサンプルデータの母集団を表現する。Ｂの空間のうち、Ｄに覆われていない部分が検知漏れのサンプルデータとなる。
また、検知装置は、正確に非正常サンプルデータのみを検知するわけではない。よって、Ｄの空間には正常サンプルデータも含まれる。よって、図９において、点線で囲まれたＦＰが誤検知サンプルデータの母集団となる。そして、図１０において、ＦＰＭの空間が、誤検知サンプルデータから生成した誤検知モデルが表現するサンプルデータの空間となる。必ずしも正確に誤検知サンプルデータを学習できるわけではないため、ＦＰＭの空間には誤検知とならない正常サンプルデータ、あるいは非正常サンプルデータも多少は含まれる。
【００３５】
＜検知漏れサンプルデータ生成処理＞
次に、図１１を用いて、検知漏れサンプルデータ生成処理について説明する。
ステップＳ１２１において、取得部１０は、各々が対象システムの異常事象である複数の非正常サンプルデータを取得する。具体的には、非正常サンプル生成部１３０が、非正常サンプルデータを生成する。非正常サンプル生成部１３０は、既存の攻撃生成ツールを用いて、対象システムを攻撃する非正常サンプルデータを生成する。非正常サンプルデータは、対象システムを攻撃する攻撃サンプルデータとも呼ばれる。
ステップＳ１２２において、調整部１４０は、非正常サンプルデータが正常モデルに近くなるように修正する。
ステップＳ１２３において、調整部１４０は、既存の検知装置で検知されない非正常サンプルデータを抽出する。非正常サンプル生成部１３０は、攻撃ツールを利用して、ステップＳ１２２において修正された非正常サンプルデータによる攻撃を実行する。調整部１４０は、この攻撃が既存の検知装置で検知されるかを確認する。調整部１４０は、検知されない非正常サンプルデータのみを抽出する。
ステップＳ１２４において、調整部１４０は、ステップＳ１２３において抽出された非正常サンプルデータが攻撃機能を維持しているかを確認する。なお、検知装置が故障を検知する場合は、調整部は非正常サンプルデータが故障の特徴を維持しているかを確認する。調整部１４０は、攻撃機能を維持している非正常サンプルデータを検知漏れサンプルデータとして抽出する。
【００３６】
図４の非正常サンプル生成部１３０の非正常生成部１３１は、非正常サンプルデータを生成する。非正常生成部１３１は、ステップＳ１２１、ステップＳ１２３、およびステップＳ１２４において利用される。ステップＳ１２３およびステップＳ１２４では、非正常生成部１３１は、非正常サンプルデータの特徴と同じ攻撃を実際に実行する。
非正常生成部１３１は、システムの異常事象のサンプルデータを生成する攻撃ツールと模擬環境とを用いて、複数の非正常サンプルデータを取得する。具体的には、非正常生成部１３１は、攻撃ツール群１５１と模擬環境１５３とを用いて、非正常サンプルデータの特徴と同じ模擬攻撃を実際に実行する。攻撃ツール群１５１は、あらかじめ対象システムごとに個別に用意した攻撃ツールのセットである。模擬環境１５３は、仮想環境で模擬的に用意した対象システムである。模擬環境１５３は、攻撃の実行により実システムに対して悪影響がでないようにするために設けられる。影響が出ないまたは影響が出ても問題が無い場合においては、実環境で攻撃を実行すればよいので模擬環境１５３は必要ない。
攻撃ツール群１５１に含まれる攻撃ツールは、非正常サンプルデータの特徴を操作するためのパラメータを入力として持つプログラムである。パラメータは、エクスプロイトコードを実行する対象、すなわちＩＰアドレス、ポート番号、およびサービスといった情報である。また、パラメータは、例えば、侵入後にインストールする疑似マルウェアの種類、攻撃者のＣ＆Ｃ（ｃｏｍｍａｎｄ  ａｎｄ  ｃｏｎｔｒｏｌ）サーバのＩＰアドレス、通信の暗号化方法、Ｃ＆Ｃ通信の頻度およびサイズ、情報漏えいのためのＰＯＳＴのサイズと頻度といった情報である。
【００３７】
図４の非正常サンプル生成部１３０の非正常収集部１３２は、他システムから異常事象のサンプルデータを収集する。そして、非正常収集部１３２は、収集したサンプルデータを対象システムの環境に合わせて修正することにより、複数の非正常サンプルデータを取得する。具体的には、非正常収集部１３２は、別の環境から収集した非正常サンプルデータを対象システム用に修正する。別の環境から収集した非正常サンプルデータには、攻撃サンプルデータ、故障サンプルデータ、およびその他の異常サンプルデータが含まれる。別の環境から収集した非正常サンプルデータがログの場合、タイムスタンプ、ＩＰアドレス、ホスト名、およびドメイン名といった情報が、対象システムの環境のログとは異なる可能性がある。そこで、非正常収集部１３２は、別の環境から収集した非正常サンプルデータの情報が対象システムと整合するように、タイムスタンプ、ＩＰアドレス、ホスト名、およびドメイン名といった情報を修正する。
【００３８】
図１２を用いて、検知漏れサンプルデータ生成処理のうち検知漏れ調整処理の詳細について説明する。検知漏れ調整処理は、検知漏れサンプルデータ生成処理のうちの調整部１４０の動作である。図５に示すように、調整部１４０は、変更部１４１と検証部１４２を備える。また、変更部１４１は、特徴抽出部４１１と特徴修正部４１２を備える。
【００３９】
ステップＳ２０１からステップＳ２０３において、変更部１４１は、複数の非正常サンプルデータの非正常サンプルデータ毎に、非正常サンプルデータの特徴をベクトルで表した非正常特徴ベクトルを生成する。また、変更部１４１は、非正常特徴ベクトルの要素を変更して得られる非正常変更ベクトルを生成する。
具体的には、ステップＳ２０１において、特徴抽出部４１１は、非正常サンプルデータから特徴ベクトルを生成する。特徴抽出部４１１は、非正常サンプルデータと第１制約条件を受け取る。そして、特徴抽出部４１１は、非正常サンプルデータから特徴ベクトルＣ＝（ｃ１、ｃ２、…、ｃｎ）を生成する。非正常サンプルデータから生成された特徴ベクトルＣは、非正常特徴ベクトルとも呼ばれる。
ステップＳ２０２において、特徴修正部４１２は、特徴ベクトルの要素を変更できるかを確認する。具体的には、特徴ベクトルＣ＝（ｃ１、ｃ２、…、ｃｎ）の各要素がとりうる第１変更範囲（ＬＢｉ≦ｃｉ≦ＵＢｉ）を定義しておく。特徴修正部４１２は、その第１変更範囲の中で得られる非正常特徴ベクトルの全てに対して処理を実行したかを確認する。ＬＢｉとＵＢｉはそれぞれｃｉの下限と上限である。特徴ベクトルの要素を変更できる場合は、処理はステップＳ２０３に進む。
ステップＳ２０３において、特徴修正部４１２は、特徴ベクトルＣの要素を変更し、新たな特徴ベクトルＣ’を生成する。非正常サンプルデータから生成された特徴ベクトルＣを変更して得られた特徴ベクトルＣ’は、非正常変更ベクトルとも呼ばれる。
【００４０】
ステップＳ２０４からステップＳ２０９において、検証部１４２は、非正常変更ベクトルと正常モデルとが類似である場合に、非正常変更ベクトルにより表されるサンプルデータを用いた処理をシステムで実行する。ここでは、システムを模擬した模擬環境で、非正常変更ベクトルにより表されるサンプルデータを用いた処理が実行されてもよい。検証部１４２は、システムの異常事象を検知する検知装置により異常事象が検知されるかを検証する。検知装置により異常事象が検知されないことが検証されると、検証部１４２は、検知装置によらずシステムに異常事象があるかを判定する。検証部１４２は、異常事象があると判定した場合に、非正常変更ベクトルにより表されるサンプルデータを検知装置の検知漏れサンプルデータ１５４として記憶部１５０に記憶する。
なお、検証部１４２は、予め定められた非正常変更ベクトルの第１制約条件を満たす非正常変更ベクトルについてのみ、検知装置により異常事象が検知されるかを検証する。また、検証部１４２は、非正常変更ベクトルと正常モデルとの第１類似度を算出し、第１類似度が第１閾値以上の場合に、非正常変更ベクトルと正常モデルとが類似であると判定する。
【００４１】
具体的には、ステップＳ２０４において、検証部１４２は、特徴ベクトルＣ’が第１制約条件を満たすかを確認する。ここで第１制約条件とは、対象とする攻撃、すなわち非正常サンプルデータを用いた攻撃において必須の条件である。
以下において、プロキシログを使った不審通信検知を例に説明する。特徴ベクトルに以下の要素を含むとする。特徴ベクトルの要素および単位は、環境および対象システムに応じて適切なものに変える。
モデルが微分可能な場合、確率的勾配降下法あるいは最急降下法といった最適解を求めるアルゴリズムを使って要素を更新しても良い。
特徴ベクトルの要素をｃ１，ｃ２とする。
ｃ１：１回あたりのＰｏｓｔのサイズ平均［ｂｙｔｅｓ／ｔｉｍｅ］
ｃ２：Ｐｏｓｔの周期Ｔ［ｓｅｃ］
不審通信は、攻撃者のサーバとのやりとりおよび機密データの送信が目的である。そのため、評価者が、攻撃機能としての必須の条件として、「一定時間Ｐ［ｓｅｃ］当たりのＰｏｓｔサイズが規定の閾値より大きい」、すなわち、「ｃ１×（１／ｃ２）×Ｐ＞θ［ｂｙｔｅ］」を第１制約条件とすることができる。
特徴ベクトルＣ’が第１制約条件を満たす場合は、処理はステップＳ２０５に進む。特徴ベクトルＣ’が第１制約条件を満たさない場合は、処理はステップＳ２０２に戻る。
【００４２】
ステップＳ２０５において、検証部１４２は、第１制約条件を満たす特徴ベクトルＣ’＝（ｃ１＋Δ１、ｃ２＋Δ２、…、ｃｎ＋Δｎ）を得る。検証部１４２は、この特徴ベクトルＣ’について、正常モデルを用いて、スコアＳ（Ｃ’）を算出する。スコアＳ（Ｃ’）は、第１類似度の例である。正常モデルを分類器Ｅとする。算出されたスコアＳ（Ｃ’）が規定の第１閾値以上の場合、検証部１４２は、特徴ベクトルＣ’は正常モデルに近いと判定し、ステップＳ２０６に進む。スコアＳ（Ｃ’）が規定の第１閾値未満の場合、処理はステップＳ２０２に戻る。
【００４３】
ステップＳ２０６において、非正常生成部１３１により、正常モデルに近い特徴ベクトルＣ’に対応する攻撃が実行される。非正常生成部１３１は、攻撃ツール群１５１のうちの対応する攻撃ツールを利用して、正常モデルに近い特徴ベクトルＣ’に対応する攻撃を実行する。実行する際には模擬環境１５３を利用しても良い。攻撃ツールは、特徴ベクトルの各要素を調整可能なパラメータを入力として持つプログラムである。例えば、プロキシログを使った不審通信検知の場合、攻撃ツールは、１回あたりのＰｏｓｔのサイズ平均［ｂｙｔｅｓ／ｔｉｍｅ］、およびＰｏｓｔの周期Ｔ［ｓｅｃ］といった通信の特徴を調整可能である。対象システムにおいて検知したい事象（攻撃、故障、あるいは異常）に合わせて、攻撃ツールはあらかじめ用意される。
【００４４】
ステップＳ２０７において、検証部１４２は、実行された攻撃が検知装置で検知されるかを確認する。検知されれば、処理はステップＳ２０２に戻る。検知されなければ、処理はステップＳ２０８に進む。
【００４５】
ステップＳ２０８において、検証部１４２は、実行された攻撃が攻撃機能を維持しているかを確認する。検証部１４２は、検知装置によらずシステムに異常事象があるかを判定し、異常事象があると判定した場合に、実行された攻撃が攻撃機能を維持していると判定する。攻撃機能の維持の確認方法の例を以下に記載する。攻撃機能の維持の確認方法は、以下の例の方法以外でもよい。
検知装置の対象がログの場合、検証部１４２は、ログを発生させた攻撃が、攻撃の基本機能を行っているかを監視する。ここでの基本機能は、ファイル操作、ユーザ認証、プログラム起動、および外部への情報アップロードといった機能である。基本機能の有無を監視するために、検証部１４２は、Ｓｙｓｌｏｇあるいは通信ログといったログをパージングし、該当の操作に関するログが存在するかを監視する。
検知装置の対象がメールの場合、検証部１４２は、生成された不正メールが基本機能を発揮しているかを確認する。ここでの基本機能は、メールを送りつけられた人物が、誤って不正メールの文面にあるＵＲＬあるいは添付ファイルを実際にクリックしてしまうといった事象である。検証部１４２は、組織の不審メール対応訓練の一環として、不正メールを組織の人間に送り、不正メールの文面にあるＵＲＬあるいは添付ファイルを実際にクリックするかを監視する。添付ファイルには、クリックすると特定のＵＲＬにアクセスするようにプログラムされたスクリプトが記述されている。ドキュメントファイルであると誤認されるように、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）といったドキュメントのアイコンが添付ファイルに利用される。
検知装置の対象が通信の場合、検証部１４２は、生成された攻撃通信が基本機能を行っているかを監視する。ここでの基本機能は、ＲＡＴ（Ｒｅｍｏｔｅ  Ａｄｍｉｎｉｓｔｒａｔｉｏｎ  Ｔｏｏｌ）の操作、Ｃ＆Ｃサーバとのやりとり、およびファイルアップロードといった機能である。
検知装置の対象がファイルの場合、検証部１４２は、生成された不正ファイルが基本機能を行っているかを確認する。ここでの基本機能は、プログラムの実行、ファイルの削除、Ｃ＆Ｃサーバとの通信、およびファイルアップロードといった機能である。
攻撃機能を維持していなければ、処理はステップＳ２０２に戻る。攻撃機能を維持してれば、処理はステップＳ２０９に進む。
【００４６】
ステップＳ２０９において、検証部１４２は、特徴ベクトルＣ’を検知漏れサンプルデータ１５４として記憶部１５０に記憶する。すなわち、検証部１４２は、第１制約条件を満たし、正常モデルにも十分近く、既存の検知装置で検知されず、攻撃機能を維持している検知漏れサンプルデータを記録する。第１制約条件を利用することで、特徴空間上で明らかに攻撃機能を有さないベクトルに対して、処理に時間を要するステップＳ２０５からステップＳ２０９を省略することができる。よって、検知漏れ調整処理の効率を上げることができる。
【００４７】
＜誤検知サンプルデータ生成処理＞
次に、図１３を用いて、誤検知サンプルデータ生成処理について説明する。
図２に示すように、正常サンプル生成部１１０の正常生成部１１２は、サンプル生成ツール群１５２と模擬環境１５３とを用いて、正常サンプルデータを生成する。サンプル生成ツール群１５２は、あらかじめ対象システムごと個別に用意したサンプルデータを生成するためのツールのセットである。サンプル生成ツール群１５２は、攻撃ツール群１５１の攻撃機能を無効化したものに相当する。模擬環境１５３は、上述したように、仮想環境に模擬的に設けられた対象システムである。
【００４８】
ステップＳ１３１において、正常サンプル生成部１１０および非正常サンプル生成部１３０は、それぞれ正常サンプルデータと非正常サンプルデータを用意する。このとき、正常サンプル生成部１１０および非正常サンプル生成部１３０の各々は、正常サンプルデータあるいは非正常サンプルデータを収集しても、新たに生成しても構わない。
ステップＳ１３２において、調整部１４０の変更部１４１は、複数の処理サンプルデータの処理サンプルデータ毎に、処理サンプルデータの特徴をベクトルで表した処理特徴ベクトルを生成する。複数の処理サンプルデータは、複数の正常サンプルデータと複数の非正常サンプルデータとを含む。変更部１４１は、処理特徴ベクトルの要素を変更して得られる処理変更ベクトルを生成する。調整部１４０は、処理サンプルデータが誤検知モデルに近くなるよう修正する。
ステップＳ１３３において、調整部１４０は、既存の検知装置で検知されるサンプルデータを抽出する。正常サンプル生成部１１０は、サンプルデータ生成ツールおよび模擬環境を使って、サンプルデータと同じ特徴を持つ事象を実際に実行する。また、非正常サンプル生成部１３０は、攻撃ツールおよび模擬環境を使って、サンプルデータと同じ特徴を持つ事象を実際に実行する。サンプルデータと同じ特徴を持つ事象には、Ｗｅｂアクセス、ファイル操作、あるいはプログラムの実行といった通常作業を模擬したものが含まれる。調整部１４０は、既存の検知装置で検知されるかを確認し、検知されるサンプルデータのみを抽出する。
ステップＳ１３４において、調整部１４０は、このサンプルデータが攻撃機能を維持しているかを確認する。調整部１４０は、攻撃機能を維持していないサンプルデータのみを誤検知サンプルデータとして抽出する。
【００４９】
図１４を用いて、誤検知サンプルデータ生成処理のうち誤検知調整処理の詳細について説明する。誤検知調整処理は、誤検知サンプルデータ生成処理のうちの調整部１４０の動作である。
ステップＳ３０１において、変更部１４１の特徴抽出部４１１は、処理サンプルデータから特徴ベクトルＣを生成する。処理サンプルデータの各々から得られた特徴ベクトルＣは、処理特徴ベクトルとも呼ばれる。具体的には、特徴抽出部４１１は、ステップＳ１３１で用意されたサンプルデータと第２制約条件を受け取る。そして、特徴抽出部４１１は、そのサンプルデータから特徴ベクトルＣ＝（ｃ１、ｃ２、…、ｃｎ）を生成する。
ステップＳ３０２において、特徴修正部４１２は、特徴ベクトルの要素を変更できるかを確認する。具体的には、特徴ベクトルＣ＝（ｃ１、ｃ２、…、ｃｎ）の各要素がとりうる第２変更範囲（ＬＢｉ≦ｃｉ≦ＵＢｉ）を定義しておく。特徴修正部４１２は、その第２変更範囲の中で得られる処理特徴ベクトルの全てに対して処理を実行したかを確認する。ＬＢｉとＵＢｉはそれぞれｃｉの下限と上限である。特徴ベクトルの要素を変更できる場合は、処理はステップＳ３０３に進む。
ステップＳ３０３において、特徴修正部４１２は、特徴ベクトルＣの要素を変更し、新たな特徴ベクトルＣ’を生成する。
【００５０】
ステップＳ３０４において、検証部１４２は、特徴ベクトルＣ’が第２制約条件を満たすかを確認する。ここで第２制約条件とは、対象とする攻撃、すなわちサンプルデータを用いた攻撃において必須の条件の否定である。
以下において、プロキシログを使った不審通信検知を例に説明する。特徴ベクトルに以下の要素を含むとする。特徴ベクトルの要素および単位は、環境および対象システムに応じて適切なものに変える。
ｃ１：１回あたりのＰｏｓｔのサイズ平均［ｂｙｔｅｓ／ｔｉｍｅ］
ｃ２：Ｐｏｓｔの周期Ｔ［ｓｅｃ］
不審通信は、攻撃者のサーバとのやりとりおよび機密データの送信が目的である。そのため、評価者が、攻撃機能としての必須の条件の否定として、「一定時間Ｐ［ｓｅｃ］当たりのＰｏｓｔサイズが規定の閾値以下」、すなわち、「ｃ１×（１／ｃ２）×Ｐ≦θ［ｂｙｔｅ］」を第２制約条件とすることができる。
特徴ベクトルＣ’が第２制約条件を満たす場合は、処理はステップＳ３０５に進む。特徴ベクトルＣ’が第２制約条件を満たさない場合は、処理はステップＳ３０２に戻る。
【００５１】
ステップＳ３０５からステップＳ３０９において、検証部１４２は、処理変更ベクトルと誤検知モデルとが類似である場合に、処理変更ベクトルにより表されるサンプルデータを用いた処理をシステムで実行する。システムは模擬環境でもよい。検証部１４２は、検知装置により異常事象が検知されるかを検証する。検証部１４２は、検知装置により異常事象が検知されることが検証されると、検知装置によらずシステムに異常事象があるかを判定する。検証部１４２は、異常事象がないと判定した場合に、処理変更ベクトルにより表されるサンプルデータを検知装置の誤検知サンプルデータ１５５として記憶部１５０に記憶する。
なお、検証部１４２は、予め定められた処理変更ベクトルの第２制約条件を満たす処理変更ベクトルについてのみ、検知装置により異常事象が検知されるかを検証する。また、検証部１４２は、処理変更ベクトルと誤検知モデルとの第２類似度を算出し、第２類似度が第２閾値以上の場合に、処理変更ベクトルと誤検知モデルとが類似であると判定する。
【００５２】
ステップＳ３０５において、検証部１４２は、第２制約条件を満たす特徴ベクトルＣ’＝（ｃ１＋Δ１、ｃ２＋Δ２、…、ｃｎ＋Δｎ）を得る。検証部１４２は、この特徴ベクトルＣ’について、誤検知モデルを用いて、スコアＳ（Ｃ’）を算出する。スコアＳ（Ｃ’）は第２類似度の例である。誤検知モデルを分類器Ｅ１とする。誤検知モデルは２クラス分類のため、検証部１４２は、誤検知のクラスにおけるスコアＳ（Ｃ’）を確認する。算出されたスコアＳ（Ｃ’）が規定の第２閾値以上の場合、特徴ベクトルは誤検知モデルと類似と判定し、ステップＳ３０６に進む。スコアＳ（Ｃ’）が規定の第２閾値未満の場合、処理はステップＳ３０２に戻る。
【００５３】
ステップＳ３０６において、サンプル生成ツール群１５２のうち対応するサンプルデータ生成ツールを利用して、誤検知モデルに近い特徴ベクトルＣ’に対応するサンプルデータを実行する。実行する際には模擬環境１５３を利用しても良い。対象システムにおいて検知したい事象（攻撃、故障、異常）に合わせて、サンプルデータ生成ツールはあらかじめ用意される。
【００５４】
ステップＳ３０７において、検証部１４２は、実行されたサンプルデータが既存の検知装置で検知されるかを確認する。検知されなければ、処理はステップＳ３０２に戻る。検知されれば、処理はステップＳ３０８に進む。
ステップＳ３０８において、検証部１４２は、実行されたサンプルデータが攻撃機能を維持しているかを確認する。攻撃機能を維持しているか否かの判定は、ステップＳ２０８と同様である。攻撃機能を維持していれば、処理はステップＳ３０２に戻る。攻撃機能を維持していなければ、処理はステップＳ３０９に進む。
【００５５】
ステップＳ３０９において、検証部１４２は、特徴ベクトルＣ’を誤検知サンプルデータ１５５として記憶部１５０に記憶する。すなわち、検証部１４２は、第２制約条件を満たし、誤検知モデルにも十分近く、既存の検知装置で検知され、攻撃機能を維持していない誤検知サンプルデータを記録する。ここでも、第２制約条件を利用することで、特徴空間上で明らかに攻撃機能を有さないベクトルに対して、処理に時間を要するステップＳ３０５からステップＳ３０９を省略することができる。よって、誤検知調整処理の効率を上げることができる。
【００５６】
＊＊＊他の構成＊＊＊
本実施の形態では、主に、攻撃を検知する攻撃検知装置のサンプルデータを生成する例を説明した。しかし、本実施の形態は、故障を検知する故障検知装置、および、その他の異常を検知する異常検知装置についても適用可能である。
【００５７】
本実施の形態では、サンプルデータ生成装置１００の機能がソフトウェアで実現されるが、変形例として、サンプルデータ生成装置１００の機能がハードウェアで実現されてもよい。
【００５８】
図１５は、本実施の形態の変形例に係るサンプルデータ生成装置１００の構成を示す図である。
サンプルデータ生成装置１００は、電子回路９０９、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０、出力インタフェース９４０および通信装置９５０を備える。
【００５９】
電子回路９０９は、取得部１０とモデル生成部１２０と調整部１４０（変更部１４１と検証部１４２）の機能を実現する専用の電子回路である。
電子回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
サンプルデータ生成装置１００の構成要素の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、サンプルデータ生成装置１００の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
【００６０】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、サンプルデータ生成装置１００において、取得部１０とモデル生成部１２０と変更部１４１と検証部１４２の機能は、プロセッシングサーキットリにより実現される。
【００６１】
サンプルデータ生成装置１００において、取得部１０とモデル生成部１２０と変更部１４１と検証部１４２の「部」を「工程」あるいは「処理」に読み替えてもよい。また、取得処理、モデル生成処理、変更処理、および検証処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
【００６２】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係るサンプルデータ生成装置１００によれば、正常サンプルデータの特徴の範囲内で悪意ある処理をする非正常サンプルデータを生成することができる。よって、検知漏れの少ない高精度に検知装置を強化することができる。
また、本実施の形態に係るサンプルデータ生成装置１００によれば、誤検知サンプルデータを自動生成することができる。よって、誤検知の少ない高精度に検知装置を強化することができる。
以上のように、本実施の形態に係るサンプルデータ生成装置１００によれば、検知装置の設計および評価の精度を高めるために、検知装置が起こす可能性がある検知漏れおよび誤検知に関する十分なサンプルデータを自動的に用意することができる。
【００６３】
実施の形態２．
本実施の形態では、実施の形態１とは異なる点について説明する。なお、実施の形態１と同様の構成には同一の符号を付し、その説明を省略する場合がある。
【００６４】
図１６を用いて、本実施の形態に係るサンプルデータ生成装置１００ａの構成について説明する。サンプルデータ生成装置１００ａは、実施の形態１のサンプルデータ生成装置１００の構成に加え、特徴選択部１６０を備える。
特徴選択部１６０は、誤検知サンプルデータの分類に対する寄与度に基づいて特徴を抽出する。
【００６５】
図１７を用いて、本実施の形態に係る特徴選択部１６０を用いた特徴選択処理について説明する。
ステップＳ１６１において、モデル生成部１２０は、誤検知モデルを生成する。モデル生成部１２０は、誤検知を起こさない正常サンプルデータか、誤検知を起こす正常サンプルデータかを分類するための２クラス識別器を利用する。その際、モデル生成部１２０は、特徴の寄与度が出るアルゴリズムを利用する。
ステップＳ１６２において、特徴選択部１６０は、各クラスに対する各特徴の寄与度を算出する。例えば、Ｒａｎｄｏｍ  Ｆｏｒｅｓｔでは、識別に利用する各特徴の寄与度が算出される。寄与度が大きいほど識別に重要な特徴である。寄与度以外にも、学習済みのモデルの重み係数、オッズ比、あるいは感度分析結果といった情報から、識別に強く影響を与える特徴を推測することができる。
ステップＳ１６３において、特徴選択部１６０は、誤検知を起こす正常サンプルデータのクラスへの分類に対して寄与度の大きな特徴を抽出する。これにより、攻撃（誤検知）への分類に強い影響を持つ特徴を抽出することができる。
【００６６】
特徴選択部１６０により抽出された特徴は、調整部１４０の特徴修正部４１２による修正対象の特徴ベクトルの要素とする。これにより修正する候補を減らし、検知漏れサンプルデータおよび誤検知サンプルデータの生成を効率化することができる。
【００６７】
実施の形態１および２では、サンプルデータ生成装置の各部を独立した機能ブロックとして説明した。しかし、サンプルデータ生成装置の構成は、上述した実施の形態のような構成でなくてもよい。サンプルデータ生成装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
【００６８】
実施の形態１および２のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００６９】
１０  取得部、１００，１００ａ  サンプルデータ生成装置、１１０  正常サンプル生成部、１１１  正常収集部、１１２  正常生成部、１２０  モデル生成部、１２１  特徴変換部、１２２  学習部、１３０  非正常サンプル生成部、１３１  非正常生成部、１３２  非正常収集部、１４０  調整部、１４１  変更部、１４２  検証部、４１１  特徴抽出部、４１２  特徴修正部、１５０  記憶部、１５１  攻撃ツール群、１５２  サンプル生成ツール群、１５３  模擬環境、１５４  検知漏れサンプルデータ、１５５  誤検知サンプルデータ、１６０  特徴選択部、９０９  電子回路、９１０  プロセッサ、９２１  メモリ、９２２  補助記憶装置、９３０  入力インタフェース、９４０  出力インタフェース、９５０  通信装置。
【図１】
2019073557.tif 000003
【図２】
2019073557.tif 000004
【図３】
2019073557.tif 000005
【図４】
2019073557.tif 000006
【図５】
2019073557.tif 000007
【図６】
2019073557.tif 000008
【図７】
2019073557.tif 000009
【図８】
2019073557.tif 000010
【図９】
2019073557.tif 000011
【図１０】
2019073557.tif 000012
【図１１】
2019073557.tif 000013
【図１２】
2019073557.tif 000014
【図１３】
2019073557.tif 000015
【図１４】
2019073557.tif 000016
【図１５】
2019073557.tif 000017
【図１６】
2019073557.tif 000018
【図１７】
2019073557.tif 000019
【国際調査報告】
2019073557.tif 000020
2019073557.tif 000021