(57)【要約】  セキュリティに関する有用な情報を容易に取得可能な技術を提供する。セキュリティ情報分析装置は、あるセキュリティ事象に関する情報を表すセキュリティ情報を、セキュリティ情報を提供可能な情報提供元から取得する１以上のセキュリティ情報収集部と、入力として受けつけたセキュリティ情報に応じて１以上のセキュリティ情報収集部に関する重みを算出する分析モデルを作成する学習部と、を備える。学習部は、あるセキュリティ事象について予め収集された複数のセキュリティ情報を含む訓練データを用いて、ある１つの訓練データに含まれるセキュリティ情報に応じて、その訓練データに含まれる他のセキュリティ情報を情報提供元から取得することができるセキュリティ情報収集部の重みが大きくなるように、分析モデルを学習する。
2018139458.tif 000002
【特許請求の範囲】
【請求項１】
あるセキュリティ事象に関する情報を表すセキュリティ情報を、前記セキュリティ情報を提供可能な情報提供元から取得する１以上のセキュリティ情報収集手段と、
入力として受けつけた前記セキュリティ情報に応じて１以上の前記セキュリティ情報収集手段に関する重みを算出する分析モデルを作成する学習手段と、を備え、
前記学習手段は、ある前記セキュリティ事象について予め収集された複数の前記セキュリティ情報を含む訓練データを用いて、ある１つの前記訓練データに含まれる前記セキュリティ情報に応じて、その前記訓練データに含まれる他の前記セキュリティ情報を前記情報提供元から取得することができる前記セキュリティ情報収集手段の重みが大きくなるように、前記分析モデルを学習する
セキュリティ情報分析装置。
【請求項２】
前記訓練データに含まれる前記セキュリティ情報は、ある前記セキュリティ事象に関して有用性が判定された前記セキュリティ情報であり、
前記分析モデルは、ある前記セキュリティ情報に含まれる静的な特徴をモデル化可能な第１モデルと、前記セキュリティ情報を取得する過程をモデル化可能な第２モデルと、を含み、各前記セキュリティ情報収集手段について、入力された前記セキュリティ情報と同じ前記訓練データに含まれる他の前記セキュリティ情報を取得可能か否かを反映した重みを算出するよう構成され、
前記学習手段は、ある一つの前記訓練データに含まれる前記セキュリティ情報から、同じ前記訓練データに含まれる他の前記セキュリティ情報を取得可能な前記セキュリティ情報収集手段の重みが大きくなるよう、前記分析モデルに関する学習を実行する
請求項１に記載のセキュリティ情報分析装置。
【請求項３】
前記分析モデルは、
少なくとも１以上の畳み込み層を有する畳み込みニューラルネットワークを用いた前記第１モデルと、
少なくとも１以上の中間層を有し、１以上の前記中間層のうち特定の前記中間層は、ある状態における当該特定の前記中間層からの出力の少なくとも一部を、時系列において当該ある状態よりも後の状態における当該特定の前記中間層に帰還可能に構成される、再帰型ニューラルネットワークを用いた前記第２モデルと、により構成されるニューラルネットワークモデルであり、
前記分析モデルの入力層は、所定数のユニットを含み、各ユニットは、それぞれ前記セキュリティ情報の一部を入力データとして受けつけるよう構成され、
出力層は、１以上の前記セキュリティ情報収集手段及びその組合せと同じ数のユニットを含み、各ユニットは、１以上の前記セキュリティ情報収集手段及びその組合せについて、前記重みを出力するよう構成される、
請求項２に記載のセキュリティ情報分析装置。
【請求項４】
前記学習手段は、
前記訓練データに含まれる前記セキュリティ情報を選択して、当該セキュリティ情報を含むノードである初期ノードを生成し、生成した前記初期ノードを入力ノードとして設定し、
前記入力ノードに含まれる前記セキュリティ情報に応じて前記分析モデルにより算出された前記重みに基づいて前記セキュリティ情報収集手段を選択するか、又は、ランダムに前記セキュリティ情報収集手段を選択することにより、ある前記セキュリティ情報に関する他の前記セキュリティ情報を取得する処理と、取得した前記セキュリティ情報を含むノードである出力ノードを生成し、前記出力ノードを前記入力ノードとして設定する処理と、を繰り返し実行することで、前記初期ノードから、最終的な前記出力ノードに至るグラフを生成し、
前記グラフに含まれる前記ノードについて、前記初期ノードに含まれる前記セキュリティ情報と同じ前記訓練データに含まれる他の前記セキュリティ情報の内、前記初期ノードから、その前記ノードまでの間に取得されていない前記セキュリティ情報の数が少ないほど、大きな値となるような報酬値を算出し、
前記分析モデルについて、ある前記入力ノードに含まれる前記セキュリティ情報と、その前記入力ノードについて選択された前記セキュリティ情報収集手段と、その前記入力ノードに対する前記出力ノードに含まれる前記セキュリティ情報と、前記出力ノードに関して算出された前記報酬値と、を学習用データとして用いる強化学習を実行することで、ある前記訓練データに含まれる前記セキュリティ情報を含む前記初期ノードから、当該訓練データに含まれる他の前記セキュリティ情報を含む最終的な前記出力ノードを生成する過程で選択される一連の前記セキュリティ情報収集手段に関する前記重みが大きくなるよう、前記分析モデルを学習する
請求項３に記載のセキュリティ情報分析装置。
【請求項５】
前記セキュリティ情報収集手段は、更に、前記セキュリティ情報を前記情報提供元から取得するために要するコストを提供し、
前記学習手段は、前記出力ノードに含まれる前記セキュリティ情報を取得した前記セキュリティ情報収集手段から提供された前記コストを反映して、前記報酬値を算出する
請求項４に記載のセキュリティ情報分析装置。
【請求項６】
あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から前記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた前記セキュリティ情報に応じて重みを算出する分析モデルを作成し、
ある前記セキュリティ事象について予め収集された複数の前記セキュリティ情報を含む複数の訓練データを用いて、ある１つの前記訓練データに含まれる前記セキュリティ情報に応じて、その前記訓練データに含まれる他の前記セキュリティ情報を前記情報提供元から取得することができる前記セキュリティ情報収集処理の重みが大きくなるように、前記分析モデルを学習する
セキュリティ情報分析方法。
【請求項７】
あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から前記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた前記セキュリティ情報に応じて重みを算出する分析モデルを作成する処理と、
ある前記セキュリティ事象について予め収集された複数の前記セキュリティ情報を含む複数の訓練データを用いて、ある１つの前記訓練データに含まれる前記セキュリティ情報に応じて、その前記訓練データに含まれる他の前記セキュリティ情報を前記情報提供元から取得することができる前記セキュリティ情報収集処理の重みが大きくなるように、前記分析モデルを学習する処理と、を
コンピュータに実行させるセキュリティ情報分析プログラムが記録された記録媒体。
【請求項８】
あるセキュリティ事象に関する情報を表すセキュリティ情報を、前記セキュリティ情報を提供可能な情報提供元から取得する１以上のセキュリティ情報収集手段と、
入力として受けつけた前記セキュリティ情報に応じて１以上の前記セキュリティ情報収集手段に関する重みを算出する分析モデルを用いて、ある前記セキュリティ情報を前記分析モデルに入力することで算出された前記重みに応じて前記セキュリティ情報収集手段を選択する処理と、選択された前記セキュリティ情報収集手段を用いて他の前記セキュリティ情報を取得する処理と、を繰り返し実行することにより、ある前記セキュリティ情報に関する他の前記セキュリティ情報を取得する評価手段と、
前記評価手段により取得された他の前記セキュリティ情報を含む評価結果を生成する、評価結果提供手段と、を備える
セキュリティ情報評価装置。
【請求項９】
あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から前記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた前記セキュリティ情報に応じた重みを算出する分析モデルを用いて、ある前記セキュリティ情報を入力として前記分析モデルにより算出された前記重みに応じて前記セキュリティ情報収集処理を選択する処理と、選択した前記セキュリティ情報収集処理を用いて他の前記セキュリティ情報を取得する処理と、を繰り返し実行することにより、ある前記セキュリティ情報に関する他の前記セキュリティ情報を取得し、
取得した他の前記セキュリティ情報を含む評価結果を生成する
セキュリティ情報評価方法。
【請求項１０】
請求項１乃至請求項５のいずれかに記載のセキュリティ情報分析装置と、請求項８に記載のセキュリティ情報評価装置と、を含み、
前記セキュリティ情報評価装置は、前記セキュリティ情報分析装置により学習された前記分析モデルを用いて、前記評価結果を生成する
セキュリティ情報分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あるセキュリティ事象に関する有用な情報を収集する技術に関する。
【背景技術】
【０００２】
情報処理装置（例えばコンピュータ等）に対するセキュリティの脅威が社会的な問題となっている。【０００３】
例えば、情報処理装置に不正な命令を与えるサイバー攻撃が生じた場合、セキュリティ担当者（セキュリティに関する情報収集、分析、対策等を実施する者）は、攻撃に用いられたマルウェア（不正なソフトウェア・プログラム等）の名称、通信元及び通信先のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、並びに発生日時などの情報を用いて、サイバー攻撃に関する情報を収集する。この際、セキュリティ担当者は、収集した断片的な情報を用いて、更に関連する情報を検索することで、サイバー攻撃に対処するための有用な情報を検索する。【０００４】
サイバー攻撃への対処に関連して、例えば以下のような技術が開示されている。【０００５】
特許文献１には、ネットワークを介して攻撃を受ける資産に対して割り当てられた資産値と、その攻撃に対して割り当てられた脅威値とから、資産への攻撃に対する応答の価値を判定する技術が開示されている。【０００６】
特許文献２には、評価対象のＷｅｂサイトに直接アクセスすることにより収集した直接情報と、情報提供サイトから取得した、評価対象のＷｅｂサイトのセキュリティ状態に関する情報とを用いて、評価対象のＷｅｂサイトに関するセキュリティ面での評価情報を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０１２−５０３８０５号公報
【特許文献２】特許第５５８０２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
サイバー攻撃等のセキュリティの脅威が増加していることから、セキュリティの脅威に関連する情報（以下「セキュリティ情報」と記載する場合がある）の検索、収集及び分析等に要する時間も増大している。このため、これらの作業に要するセキュリティ担当者の工数（作業負荷）が増大している。また、例えば、収集した膨大な量の情報をセキュリティ担当者等に対してそのまま提示すると、有用な情報を見つけることが困難な場合がある。【０００９】
これに対して、上記特許文献１には、セキュリティポリシーに違反するイベントを検知し、そのイベントに付随するデータを保存することが記載されている。しかしながら、例えば、ポリシーに設定されていない新たな攻撃（アタック）が発生した場合には、適切なデータが保存されるとは限らない。また、サイバー攻撃が多発した場合には、大量のデータが保存される可能性がある。特許文献２に開示された技術を用いた場合、セキュリティ担当者が適切なｗｅｂサイトを選定し、収集した情報を分析する必要がある。上記各文献に開示された技術は、いずれもセキュリティ担当者にとって有用な情報を収集可能であるとは限らない。また、セキュリティ担当者の知識や経験によっては、適切な情報を収集することが困難な場合がある。【００１０】
本開示はこのような事情を鑑みてなされたものである。即ち、本開示は、セキュリティに関する有用な情報を容易に収集可能な技術を提供することを、目的の一つとする。
【課題を解決するための手段】
【００１１】
上記目的を達成すべく、本開示の一態様に係るセキュリティ情報分析装置は、以下のように構成される。即ち、本開示の一態様に係るセキュリティ情報分析装置は、あるセキュリティ事象に関する情報を表すセキュリティ情報を、上記セキュリティ情報を提供可能な情報提供元から取得する１以上のセキュリティ情報収集部と、入力として受けつけた上記セキュリティ情報に応じて１以上の上記セキュリティ情報収集部に関する重みを算出する分析モデルを作成する学習部と、を備える。上記学習部は、ある上記セキュリティ事象について予め収集された複数の上記セキュリティ情報を含む訓練データを用いて、ある１つの上記訓練データに含まれる上記セキュリティ情報に応じて、その訓練データに含まれる他の上記セキュリティ情報を上記情報提供元から取得することができる上記セキュリティ情報収集部の重みが大きくなるように、上記分析モデルを学習するよう構成される。【００１２】
本開示の他の一態様に係るセキュリティ情報の分析方法は、あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から上記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた上記セキュリティ情報に応じて重みを算出する分析モデルを作成し、ある上記セキュリティ事象について予め収集された複数の上記セキュリティ情報を含む複数の訓練データを用いて、ある１つの上記訓練データに含まれる上記セキュリティ情報に応じて、その訓練データに含まれる他の上記セキュリティ情報を上記情報提供元から取得することができる上記セキュリティ情報収集処理の重みが大きくなるように、上記分析モデルを学習するよう構成される。【００１３】
本開示の更に他の一態様に係るセキュリティ情報評価装置は、あるセキュリティ事象に関する情報を表すセキュリティ情報を、上記セキュリティ情報を提供可能な情報提供元から取得する１以上のセキュリティ情報収集部と、入力として受けつけた上記セキュリティ情報に応じて１以上の上記セキュリティ情報収集部に関する重みを算出する分析モデルを用いて、ある上記セキュリティ情報を上記分析モデルに入力することで算出された上記重みに応じて上記セキュリティ情報収集部を選択する処理と、選択された上記セキュリティ情報収集部を用いて他の上記セキュリティ情報を取得する処理と、を繰り返し実行することにより、ある上記セキュリティ情報に関する他の上記セキュリティ情報を取得する評価部と、上記評価部により取得された他の上記セキュリティ情報を含む評価結果を生成する、評価結果提供部と、を備えるよう構成される。【００１４】
本開示の更に他の一態様に係るセキュリティ情報の評価方法は、あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から上記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた上記セキュリティ情報に応じた重みを算出する分析モデルを用いて、ある上記セキュリティ情報を入力として上記分析モデルにより算出された上記重みに応じて上記セキュリティ情報収集処理を選択する処理と、選択した上記セキュリティ情報収集処理を用いて他の上記セキュリティ情報を取得する処理と、を繰り返し実行することにより、ある上記セキュリティ情報に関する他の上記セキュリティ情報を取得し、取得した他の上記セキュリティ情報を含む評価結果を生成するよう構成される。【００１５】
また、同目的は、上記構成を有するセキュリティ情報の分析装置、分析方法、評価措置及び評価方法等をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
【発明の効果】
【００１６】
本開示によれば、セキュリティに関する有用な情報を容易に収集することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本開示の第１実施形態に係るセキュリティ情報分析装置の機能的な構成を例示するブロック図である。
【図２】図２は、本開示の第１実施形態におけるセキュリティ情報評価装置の機能的な構成を例示するブロック図である。
【図３】図３は、本開示の第１実施形態におけるセキュリティ情報分析システムの機能的な構成を例示するブロック図である。
【図４】図４は、本開示の第１実施形態におけるセキュリティ情報分析システムの他の機能的な構成を例示するブロック図である。
【図５】図５は、本開示の第１実施形態における分析モデルの具体的な構成例を示す説明図である。
【図６】図６は、畳み込みニューラルネットワークにおけるフィルタ処理の概要を示す説明図である。
【図７】図７は、本開示の第１実施形態におけるセキュリティ情報分析装置が生成する学習グラフの具体例を示す説明図である。
【図８Ａ】図８Ａは、本開示の第１実施形態における分析モデルの学習過程を例示するフローチャート（１／２）である。
【図８Ｂ】図８Ｂは、本開示の第１実施形態における分析モデルの学習過程を例示するフローチャート（２／２）である。
【図９】図９は、本開示の第１実施形態における分析モデルの学習過程を模式的に示す説明図（その１）である。
【図１０】図１０は、本開示の第１実施形態における分析モデルの学習過程を模式的に示す説明図（その２）である。
【図１１】図１１は、本開示の第１実施形態におけるセキュリティ情報の評価過程を例示するフローチャートである。
【図１２】図１２は、本開示の第１実施形態におけるセキュリティ情報の評価過程を模式的に示す説明図である。
【図１３】図１３は、本開示の第２実施形態におけるセキュリティ情報分析装置の機能的な構成を例示するブロック図である。
【図１４】図１４は、本開示の第２実施形態におけるセキュリティ情報評価装置の機能的な構成を例示するブロック図である。
【図１５】図１５は、本開示に係る各実施形態における装置、システム等を実現可能なハードウェア構成の一例を示す説明図である。
【発明を実施するための形態】
【００１８】
本開示における技術的な検討事項等について詳細に説明する。以下、サイバー攻撃、不正アクセス等を含む、セキュリティ上問題となり得る各種事象（インシデント）を、「セキュリティ事象」（「セキュリティインシデント」）と記載することがある。また、本開示において、セキュリティ情報は特に限定されず、あるセキュリティ事象に関する幅広い情報が含まれ得る。セキュリティ情報の具体例については後述する。
【００１９】
以下、サイバー攻撃等のセキュリティ事象が発生した場合の、セキュリティ担当者の典型的な対応について例示する。
【００２０】
サイバー攻撃等のセキュリティ事象が発生した場合、セキュリティ担当者は、そのセキュリティ事象に関連して早期に得られる情報（例えば、マルウェアの名称、マルウェア本体、マルウェアが実行する通信に関する情報等）からキーワード（検索語）を選択する。
【００２１】
セキュリティ担当者は、選択したキーワードを用いて、セキュリティに関する情報を提供する提供元（以下、情報源と記載する）から、そのキーワードに関する情報を取得する。このような情報源は、典型的には、例えば、通信ネットワークを介して脆弱性情報、サイバー攻撃情報等を収集、提供する情報サイトや、オンラインデータベース等であってよい。セキュリティ担当者は、例えば、情報源において、あるキーワードに関する情報を検索し、その検索結果を新たな情報として取得する。
【００２２】
セキュリティ担当者は、取得した断片的な情報から更なるキーワードを選択し、そのキーワードを用いて更に情報を取得する。セキュリティ担当者は、サイバー攻撃に対するセキュリティ対策についての十分な情報が得られるまで、上記のような処理を繰り返す。セキュリティ担当者は、収集した情報から、知識や経験に基づいて有用な情報を抽出（選択）し、更なる攻撃を防ぐようにセキュリティ対策を実施する。
【００２３】
サイバー攻撃の増大に伴い、セキュリティ情報の収集及び分析に要するセキュリティ担当者の工数が増大するとともに、収集される情報も増加している。また、情報収集及び分析作業を人手により実行する場合、それらの作業を実行するセキュリティ担当者の知識や経験等が、評価結果の精度や作業量に影響する。
【００２４】
このため、セキュリティ担当者の知識や経験等に依存することなく、セキュリティ対策に有用な情報を収集可能な技術を提供することが、本開示における技術的な検討事項の一つである。
【００２５】
本開示に係る技術のある実施形態は、あるセキュリティ事象に関する有用なセキュリティ情報の収集に用いられる分析モデルを作成することができる。分析モデルを用いることにより、例えば、あるセキュリティ事象に関するセキュリティ情報が与えられた際に、他の有用なセキュリティ情報を情報源から取得する処理（以下、情報収集処理と記載する）を適宜選択することができる。
【００２６】
セキュリティ担当者が収集するセキュリティ情報には、ある種の静的な特徴（例えばパターン）を持つデータ（例えば、ＩＰアドレス、ホスト名、マルウェアバイナリのハッシュ値等）が含まれる場合がある。これより、本開示に係る技術のある実施形態において、分析モデルは、セキュリティ情報に含まれるデータの静的な特徴を学習するよう構成される。
【００２７】
また、セキュリティ担当者は、情報収集の段階に応じて、収集する情報を適宜変更することがある。具体例として、同じ種類のセキュリティ情報（例えばＩＰアドレス）に基づいて、他のセキュリティ情報を収集する場合を想定する。セキュリティ事象が発生してから間もない初期の段階では、典型的には、セキュリティ担当者は、例えば、あるセキュリティ情報について容易に収集可能な情報（例えばＩＰアドレスに対するホスト名等）を収集することがある。これに対して、セキュリティ事象に関する分析がある程度実行された段階では、セキュリティ担当者は、同じ種類のセキュリティ情報に関して、例えば、取得が容易ではない情報、又は、取得にコストが要する情報、等を収集することがある。
【００２８】
これより、本開示に係る技術のある実施形態において、分析モデルは、あるセキュリティ事象に関するセキュリティ情報の取得過程（例えば、情報提供元の選択及び情報収集の順序等）を学習するよう構成される。
【００２９】
以下の各実施形態を用いて説明する本開示に係る技術を用いることで、情報収集に要する工数が低減され得る。その理由は、分析モデルを用いることで、あるセキュリティ事象に関するセキュリティ情報が与えられた際に、そのセキュリティ事象に関する他の有用なセキュリティ情報を取得する情報収集処理を、適切に選択できるからである。また、これにより、あるセキュリティ事象の対策について、セキュリティ担当者の観点から有用な情報が提供され得る。その理由は、分析モデルが、セキュリティ担当者等によって予め有用性が判断された訓練データを用いて学習されるからである。
【００３０】
以下、各実施形態を用いて、本開示に係る技術について詳細に説明する。以下の各実施形態（及びその変形例）の構成は例示であり、本開示に係る技術の技術範囲はそれらには限定されない。即ち、以下の各実施形態を構成する構成要素の区分け（例えば、機能的な単位による分割）は、各実施形態を実現可能な一例である。各実施形態を実現する構成は、以下の例示に限定されず、様々な構成が想定される。以下の各実施形態を構成する構成要素は、更に分割されてもよい。また、以下の各実施形態を構成する１以上の構成要素が統合されてもよい。また、各実施形態が１以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、１以上の構成要素が１以上の装置により実現されてもよく、１つの構成要素が複数の装置を用いて実現されてもよい。
【００３１】
＜第１実施形態＞
［構成］
以下、本開示に係る技術を実現可能な第１の実施形態について説明する。以下において説明するシステムの構成要素は、単体の装置（物理的又は仮想的な装置）を用いて構成されてもよく、複数の離間した装置（物理的又は仮想的な装置）を用いて実現されてもよい。システムの構成要素が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組み合わせた通信ネットワークにより通信可能に接続されてもよい。以下において説明するシステム及びその構成要素を実現可能なハードウェア構成については、後述する。
【００３２】
図１は、本実施形態におけるセキュリティ情報分析装置１００の機能的な構成を例示するブロック図である。図２は、本実施形態におけるセキュリティ情報評価装置２００の機能的な構成を例示するブロック図である。図３は、本実施形態におけるセキュリティ情報分析システムの機能的な構成を例示するブロック図である。図４は、本実施形態におけるセキュリティ情報分析システムの他の機能的な構成を例示するブロック図である。
【００３３】
図１乃至図４において、同様の機能を実現可能な構成要素には、同じ参照符号が付されている。以下、各構成要素について説明する。
【００３４】
図１に例示するように、本実施形態におけるセキュリティ情報分析装置１００は、情報収集部１０１、学習部１０２、分析モデル記憶部１０３及び訓練データ供給部１０４を備える。セキュリティ情報分析装置１００を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。また、セキュリティ情報分析装置１００は、各種セキュリティ情報を提供する情報提供元である１以上の情報源１０５と、適切な通信方法を用いて通信可能に接続されている。
【００３５】
情報源１０５は、あるセキュリティ情報に関連する他のセキュリティ情報を提供可能な、セキュリティ情報の提供元である。情報源１０５は、特に制限されることなく、セキュリティに関する情報を提供可能なサービス、サイト、データベース等が幅広く含まれてよい。
【００３６】
一つの具体例として、情報源１０５は、セキュリティに関する情報（脆弱性、サイバー攻撃等）をデータベース等により保有する外部サイトであってもよい。例えば、そのような外部サイトにおいて、あるセキュリティ情報（例えば、ＩＰアドレスやホスト名等）を検索することで、他のセキュリティ情報（例えば、そのＩＰに関する通信を実行するマルウェアの情報等）が得られる。上記に限定されず、情報源１０５は、例えば、Ｗｈｏｉｓサービスであってもよく、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）サービスであってもよい。情報源１０５は、外部のサイトやサービスに限定されず、ローカルにセキュリティ情報を蓄積したデータベースであってもよい。
【００３７】
情報収集部１０１は、情報源１０５から、あるセキュリティ情報に関連する他のセキュリティ情報を取得する。情報収集部１０１は、例えば、１以上の情報源１０５ごとに個別に設けられてもよい。以下、情報収集部１０１を、クローラ（Ｃｒａｗｌｅｒ）と記載する場合がある。クローラ１０１は、例えば、ある情報源１０５において、学習部１０２（後述）から提供されたセキュリティ情報を検索し、その検索結果を他のセキュリティ情報として学習部１０２に提供してもよい。
【００３８】
クローラ１０１は、情報源１０５ごとに適切な方法を用いて、情報収集処理を実行するよう構成される。一つの具体例として、クローラ１０１は、情報源１０５に対して、検索用のリクエスト（例えばクエリ等）を送信し、そのリクエストに対するレスポンスを受信してもよい。他の具体例として、クローラ１０１は、情報源１０５が提供するコンテンツ（テキストデータ等）を取得し、取得したコンテンツの中から適切なセキュリティ情報を検索してもよい。本実施形態においては、情報収集処理の終了（打ち切り）を表す特殊なクローラ１０１（以下、終了処理クローラと記載する）が用意されてもよい。
【００３９】
学習部１０２は、セキュリティ情報の分析に使用可能な分析モデルを生成する。具体的には、学習部１０２は、訓練データ供給部１０４（後述）から提供された訓練データを用いて学習処理を実行することで、分析モデルを生成する。
【００４０】
分析モデルは、あるセキュリティ事象に関するセキュリティ情報を入力として受けつけ、クローラ１０１それぞれについて「重み」を算出可能なモデルである。分析モデルが算出する重み（各クローラ１０１の重み）は、あるクローラ１０１による情報取得処理の有用性（適切性）を表す情報である。本実施形態において、各クローラ１０１による情報取得処理の有用性は、例えば、各クローラ１０１が取得可能なセキュリティ情報の有用性を表す。また、セキュリティ情報の有用性は、例えば、あるセキュリティ事象に関する分析、対策に用いられる情報としての有用性を表す。セキュリティ情報の有用性は、セキュリティ担当者や他のシステム等により判断されてもよい。本実施形態においては、有用性が予め判断されたセキュリティ情報を含む訓練データが、分析モデルの学習（後述）に用いられる。
【００４１】
分析モデルは、各クローラ１０１が取得可能なセキュリティ情報の有用性を反映した重みを算出する。より具体的には、分析モデルは、例えば、入力として与えられたセキュリティ情報を用いて、有用性が高い他のセキュリティ情報を取得可能なクローラ１０１について、比較的大きな重みを算出するように構成される。即ち、あるセキュリティ情報を分析モデルに入力した際に算出される重みが大きいクローラ１０１を選択することで、他の有用なセキュリティ情報を取得可能となることが期待される。このような観点から、分析モデルが出力する重みは、あるセキュリティ情報について、適切なクローラ１０１を選択することが可能な情報（選択情報）であると考えることもできる。
【００４２】
分析モデルは、個別のクローラ１０１に関する重みに限らず、複数のクローラ１０１による組合せ（クローラセットと記載する場合がある）に関する重みを提供するよう構成されてもよい。即ち、分析モデルは、クローラセットを、例えば、仮想的な一つのクローラとして扱うことができる。この場合、あるセキュリティ情報についての情報収集処理を、クローラセットに含まれる各クローラ１０１がそれぞれ実行し、その結果を統合することで、クローラセットによる情報収集処理の結果が得られる。クローラセットによる情報収集処理の結果は、クローラセットに含まれる各クローラ１０１が取得したセキュリティ情報を含む集合である。係る集合は、特に限定されず、和集合であってもよく、積集合であってもよく、排他的論理和の集合であってもよい。以下、説明の都合上、クローラ１０１及びクローラセットをまとめて、単にクローラ１０１と記載する場合がある。分析モデルの具体的な構成及び学習方法については後述する。
【００４３】
分析モデル記憶部１０３は、学習部１０２により生成された分析モデルを記憶する。分析モデル記憶部１０３が分析モデルを記憶する方法は、特に限定されず、適切な方法を採用可能である。分析モデル記憶部１０３は、例えば、メモリ領域に分析モデルを配置してもよく、ファイルやデータベース等に分析モデルを記録してもよい。なお、セキュリティ情報分析装置１００は、分析モデル記憶部１０３に記憶された分析モデルを外部（ユーザ、他のシステム、装置等）に提供してもよい。
【００４４】
訓練データ供給部１０４は、ユーザや他のシステムから提供された訓練データを、学習部１０２に供給する。訓練データは、あるセキュリティ事象に関する対策に有用なセキュリティ情報（即ち、あるセキュリティ事象に関して、有用であると判断されたセキュリティ情報）の集合である。
【００４５】
訓練データを作成又は取得する方法は特に限定されず、適切な方法を採用可能である。具体例として、訓練データは、セキュリティ担当者が過去に収集、蓄積したセキュリティ事象に関するセキュリティ情報（分析済みのセキュリティ情報）を用いて、訓練データが作成されてもよい。他の具体例として、訓練データは、信頼可能な他のシステムから提供されたデータ又は信頼可能な外部のＣＳＩＲＴ（Ｃｏｍｐｕｔｅｒ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃｉｄｅｎｔ  Ｒｅｓｐｏｎｓｅ  Ｔｅａｍ）が作成したレポート等を用いて作成されてもよい。例えば、セキュリティ関係の企業又は組織等が提供する、脆弱性情報、サイバー攻撃情報等から、訓練データを作成することができる。このように作成される訓練データには、セキュリティ担当者又は外部の組織等の知見が反映されていると考えられる。訓練データの具体的な形式及び内容については後述する。
【００４６】
以下、図２を参照して、セキュリティ情報評価装置２００の構成について説明する。
【００４７】
情報収集部１０１は、セキュリティ情報分析装置１００における情報収集部１０１と同様に構成されてよい。この場合、情報収集部１０１は、例えば、ある情報源１０５において、評価部２０１（後述）から提供されたセキュリティ情報であるキーワードを検索し、検索結果をセキュリティ情報として評価部２０１に提供してもよい。
【００４８】
分析モデル記憶部１０３は、セキュリティ情報分析装置１００における分析モデル記憶部１０３と同様に構成されてもよい。分析モデル記憶部１０３には、セキュリティ情報分析装置１００（具体的には、学習部１０２）において生成された分析モデルが記憶される。セキュリティ情報評価装置２００は、セキュリティ情報分析装置１００から、分析モデルをオンライン又はオフラインで取得してもよい。
【００４９】
評価部２０１は、分析モデル記憶部１０３に記憶された分析モデルを用いて、セキュリティ情報供給部２０２（後述）から供給されたセキュリティ情報を分析する。より具体的には、評価部２０１は、セキュリティ情報供給部２０２から供給されたセキュリティ情報を分析モデルに入力として与え、分析モデルが算出するクローラ１０１ごとの重みを取得する。
【００５０】
評価部２０１は、例えば、最も重みが大きいクローラ１０１を用いて、情報源１０５に対して、入力されたセキュリティ情報に関する情報収集処理を実行する。評価部２０１は、その情報収集処理により得られた新たなセキュリティ情報を、分析モデルに対して入力として与えることで、上記処理を繰り返し実行可能である。これにより、評価部２０１は、入力として与えられたセキュリティ事象に関するセキュリティ情報から、そのセキュリティ事象の対策に有用な一連の他のセキュリティ情報を取得することが可能である。評価部２０１は、上記処理により取得した一連のセキュリティ情報を、分析結果として提供してもよい。評価部２０１の具体的な動作については、後述する。
【００５１】
セキュリティ情報供給部２０２は、評価対象のセキュリティ情報を受けつけ、そのセキュリティ情報を評価部２０１に供給する。セキュリティ情報供給部２０２は、例えば、ユーザ、他のシステム等の外部から、訓練データに含まれない、新たに発生したセキュリティ事象に関するセキュリティ情報を受けつけることができる。
【００５２】
評価結果提供部２０３は、あるセキュリティ情報に関して評価部２０１が供給する分析結果を、セキュリティ情報評価装置の外部（例えば、ユーザ、他のシステム等）に、そのセキュリティ情報に関する評価結果として提供する。具体例として、評価結果提供部２０３は、評価結果を、画面に表示してもよく、印刷装置を介して印刷してもよく、記憶媒体に出力してもよく、通信回線を介して送信してもよい。評価結果提供部２０３における評価結果の出力方法は、特に限定されない。
【００５３】
以下、本実施形態における情報分析システムについて説明する。本実施形態においては、例えば、図３に示すように、セキュリティ情報分析装置１００と、セキュリティ情報評価装置２００とを用いて、セキュリティ情報分析システム３００が構成されてもよい。図３に例示するセキュリティ情報分析システム３００において、セキュリティ情報分析装置１００と、セキュリティ情報評価装置２００との間は、適切な通信方法を用いて通信可能に接続されている。
【００５４】
セキュリティ情報分析システム３００におけるセキュリティ情報分析装置１００には、外部（ユーザ、他のシステム等）から、訓練データが供給される。セキュリティ情報分析装置１００は、その訓練データを用いて分析モデルを学習し、学習済みの分析モデルを、セキュリティ情報評価装置２００に提供してもよい。
【００５５】
セキュリティ情報分析システム３００におけるセキュリティ情報評価装置２００には、外部（ユーザ、他のシステム等）から、評価対象のセキュリティ情報が供給される。セキュリティ情報評価装置２００は、学習済みの分析モデルを用いて、供給されたセキュリティ情報に関する評価結果を生成する。セキュリティ情報分析装置１００における学習処理と、セキュリティ情報評価装置２００における分析処理とは、個別に実行されてよい。
【００５６】
本実施形態におけるセキュリティ情報分析システム３００は、図３に例示する構成に限定されない。セキュリティ情報分析システム３００は、例えば、図４に例示するように構成されてもよい。図４は、図１に例示するセキュリティ情報分析装置１００の構成要素と、図２に例示するセキュリティ情報評価装置２００の構成要素と、を統合したシステムの機能的な構成を例示する。なお、図４に例示する構成においても、学習部１０２における学習処理と、評価部２０１における分析処理とは、個別に実行されてよい。なお、本実施形態におけるセキュリティ情報分析装置１００と、セキュリティ情報評価装置２００とは、個別の装置として実現されてもよく、図３又は図４に例示するようなシステムの一部として実現されてもよい。
【００５７】
［分析モデル］
以下、分析モデルの具体的な構成と、訓練データを用いた学習プロセスについて説明する。
【００５８】
図５は、本実施形態における分析モデルの概要を示す説明図である。図５に示す分析モデルは、説明のための具体例であり、分析モデルの構成は、図５に例示する具体例には限定されない。
【００５９】
図５に例示するように、本実施形態における分析モデルは、全体としてニューラルネットワークを用いて構成される。具体的には、分析モデルは、第１モデルと、第２モデルと組み合わせたニューラルネットワークとして構成される。
【００６０】
第１モデルとしては、例えば、セキュリティ情報に含まれるデータの静的な特徴（例えばパターン）を学習可能なモデルが用いられる。例えば、第１モデルは、セキュリティ情報に含まれる、ある種のデータ（例えば、ＩＰアドレス、ホスト名等）を畳み込むことで、類似するデータ（例えば、一部が異なるＩＰアドレス）を、同様の意味を有するデータとして扱えるよう変換することができる。本実施形態においては、第１モデルとして、隣接する中間層に含まれるユニット（ニューラルネットワークを構成するノード）のうち、特定のユニットの間が結合されるよう構成された畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を用いる。
【００６１】
第２モデルとしては、あるセキュリティ事象に関するセキュリティ情報を取得する時系列的な過程を学習可能なモデルが用いられる。第２モデルは、例えば、セキュリティ情報を取得（検索）する順序を学習するよう構成されてもよく、あるセキュリティ情報が得られた状態から、他のセキュリティ情報が得られた状態への遷移の過程を学習するよう構成されてもよい。本実施形態においては、セキュリティ情報を取得する過程を学習可能な第２モデルとして、再帰型ニューラルネットワーク（ＲＮＮ：Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）が用いられる。
【００６２】
以下、第１モデル（ＣＮＮ）について説明する。ＣＮＮは、一般的には、１以上の畳み込み層を含むニューラルネットワークである。ＣＮＮは、畳み込み層に加え、プーリング層を含んでもよい。
【００６３】
畳み込み層は、一般的に、入力されたデータに何からの処理（フィルタ）を実行して、入力されたデータを変換したデータ（マップデータ）を生成するよう構成される。畳み込み層は、入力されたデータにおいてフィルタ処理が実行される位置を変更（スライド）しながら、入力されたデータ全体についてフィルタ処理を実行する。
【００６４】
図６に示す具体例を用いて説明する。図６の具体例の場合、入力データＩは、”５×５”の行列として表すことができ、各フィルタ（フィルタＡ〜フィルタＮ）は”２×２”の行列として表すことができる。なお、フィルタA〜フィルタNは具体例の例示であり、フィルタの個数やサイズはこれに限定されない。
【００６５】
各フィルタは、入力データＩの行列全体をスライドしながら、入力データＩの行列の要素と、各フィルタの行列の要素との間で特定の演算を実行する。具体的には、例えば、入力データＩの行列における”２×２”領域の各要素と、フィルタの各要素との積の和が、マップデータＡの一つの値として計算される。
【００６６】
本実施形態においては、訓練データとしてセキュリティ情報が与えられる。具体的な訓練データの形式は後述するが、セキュリティ情報は、典型的には、テキスト（文字列）データとして与えられることがある。例えば、入力データが１次元データ（例えば文字列）である場合も、ＣＮＮは上記と同様にフィルタ処理を実行可能である。この場合、例えば、１次元データを適切なサイズで分割して並べることで、入力データが２次元データとして扱われてもよい。また、１次元データに対して、１次元のフィルタが適用されてもよい。
【００６７】
フィルタのサイズや、フィルタをスライドする幅（ストライド）は、適宜設定されてよい。本実施形態の場合、訓練データとして与えられるセキュリティ情報のサイズ、性質等に応じて、これらの値が適宜選択される。
【００６８】
例えば、畳み込み層において、あるデータのパターンを抽出可能なフィルタが形成された場合、畳み込み層における演算の結果、具体的な入力データから、特定のパターンの特徴を表すデータ（特徴データ）がマップデータとして得られる。特徴データは、特定のパターンに該当するデータの「意味」又は「カテゴリ」等を表すと考えることもできる。
【００６９】
概念的には、例えば、ＩＰアドレスのパターンを抽出可能なフィルタが形成された場合、畳み込み層による演算により、入力データに含まれる具体的なＩＰアドレスを表す文字列が、ＩＰアドレスのパターン（特徴）を表す特徴データに変換される。換言すると、入力データに含まれる個別具体的なＩＰアドレスの値（文字列）が、ＩＰアドレスのパターン（静的な特徴）を表す特徴データに変換（汎化）されると考えられる。同様に、ある特定の文字列をパターンとして抽出可能なフィルタが形成された場合、入力データに含まれる特定の文字列が、その文字列のパターンを表す特徴データに変換（汎化）される。これにより、文字列としての冗長な情報が圧縮され、文字列の静的な特徴（例えばパターン）が、特徴データとして抽出されると考えられる。
【００７０】
また、上記したように、畳み込み層においては、入力データの全領域についてフィルタが適用される。畳み込み層における処理により、入力データに含まれるデータの位置や、個数等を事前に考慮することなく、入力データから特徴データを抽出することができる。
【００７１】
なお、畳み込み層におけるユニット間の結合パラメータは、訓練データを用いた学習により適切な値に調整されることから、適切な訓練データを用いた学習を実行することで、セキュリティ情報に含まれる各種パターンを抽出可能な第１モデルを形成することが可能である。
【００７２】
プーリング層は、畳み込み層の後に配置され、畳み込み層から出力されたマップデータに含まれる各領域（プーリング領域）について、その領域を表す代表としての値を抽出するよう構成される。ＣＮＮにおいては、一般的に、プーリング層を設けることにより、入力データの次元を削減することができる。また、プーリング層を設けることで、入力データの中で特定のパターンに該当するデータの位置がわずかに変化した場合であっても、その変化による影響を低減可能である。
【００７３】
例えば、入力データにＩＰアドレスを表す特徴データが含まれる場合を想定する。この場合、元のセキュリティ情報においてＩＰアドレスを表す文字列が含まれる位置が若干変化しても、上記のように構成されたプーリング層を用いることにより、ＩＰアドレスを表す特徴データを抽出することができる。
【００７４】
上記のようなプーリング層の処理により、畳み込み層から出力されたマップデータに含まれる特徴的な値を保存しながら、データの次元を削減することができる。なお、プーリング層におけるユニット間の結合パラメータは、訓練データを用いた学習では変化しないように設定されてもよい。
【００７５】
本実施形態において、畳み込み層及びプーリング層の数、各層のユニット数、及びフィルタの構成等は、例えば、訓練データの性質、量等に応じて適宜調整可能である。
【００７６】
上記のように構成されたＣＮＮによる第１モデルは、具体例として、以下のような処理を実現可能である。例えば、第１モデルにより、セキュリティ情報として入力されたＩＰアドレスをマスクし、同一組織のネットワークに含まれるＩＰアドレスを、同一の入力値として扱うことが可能となる。なお、組織ごとのネットマスクは、地域インターネット レジストリ（ＲＩＲ：Ｒｅｇｉｏｎａｌ  Ｉｎｔｅｒｎｅｔ  Ｒｅｇｉｓｔｒｙ）等から、ＩＰアドレスの割当て情報を取得することで生成可能である。また、第１モデルにより、セキュリティ情報として入力されたホスト名から、サブドメインを除去することができる。これにより、例えば、単独のドメイン名を取得した攻撃者が、大量のホストネームを生成した場合でも、それらのホスト名を、同一の攻撃源を表すセキュリティ情報として扱うことが可能となる。また、類似バイナリに対して近似するハッシュ値（文字列等）を生成するハッシュアルゴリズムを用いることより、第１モデルは、類似したバイナリのハッシュ値を、同じ型（パターン）のセキュリティ情報として扱うことが可能である。なお、上記したハッシュアルゴリズムは特に限定されず、周知の技術を採用してよく、一例として、ｓｓｄｅｅｐ、ｉｍｐｈａｓｈ（ｉｍｐｏｒｔ  ｈａｓｈ）等が用いられてもよい。
【００７７】
上記のように構成されたＣＮＮによる第１モデルを用いることで、本実施形態における学習部１０２は、セキュリティ情報に含まれるパターンを学習することが可能である。例えば、ＩＰアドレス”１９２．１６８．０．１”と、”１９２．１６８．１０．２”とは、異なるデータであるが、ともにクラスＣのＩＰアドレスを表すデータである。第１モデルは、このようなデータを、例えば、”１９２．１６８．＊”（”＊”は何らかのデータ）という特徴を表す特徴データに変換することができる。また、第１モデルは、複数のセキュリティ情報に共通して含まれる特定の文字列（例えば、複数のセキュリティ情報に共通に含まれる文字列）を、その文字列を表す特徴データに変換することができる。
【００７８】
以下、図５に例示する第２モデル（ＲＮＮ）について説明する。
【００７９】
ＲＮＮは、一般的に、帰還ループを有する中間層を少なくとも１層以上備えるニューラルネットワークである。ＲＮＮにおいて、帰還ループを有する中間層は、ある状態より前の状態における中間層からの出力を、ある状態における中間層への入力として提供することができる。これにより、ＲＮＮは、ある入力データに関する出力データを計算する際、過去に受けとった入力データの影響を反映することが可能である。
【００８０】
第２モデルは、後述する学習処理において、学習部１０２が訓練データを用いて情報収集処理を繰り返し実行する過程から、あるセキュリティ事象に関するセキュリティ情報を取得する過程を学習する。
【００８１】
例えば、訓練データに、あるセキュリティ事象に関して、端緒となったセキュリティ情報（例えば、マルウェアによる攻撃の兆候を示す通信データ）と、そのセキュリティ事象に関して有用であると判断されたセキュリティ情報（例えば、マルウェア制御サーバのＩＰアドレス）とが含まれることを想定する。
【００８２】
訓練データに含まれるセキュリティ情報は、典型的には、セキュリティ担当者が、端緒となったセキュリティ情報から、有用であると判断されたセキュリティ情報が得られるまで、各種情報源において情報収集処理を繰り返し実行することで取得されたと考えられる。即ち、セキュリティ担当者は、情報収集処理を実行する過程で時系列的に得られたセキュリティ情報を用いて、情報収集処理を繰り返し実行することで、最終的に有用なセキュリティ情報を取得したと考えられる。このようなセキュリティ情報を含む訓練データを用いた学習処理を実行することで、第２モデルは、端緒となったセキュリティ情報から、有用なセキュリティ情報を取得するための情報収集処理の実行過程（適切な情報収集処理の選択及び実行）を学習することができると考えられる。
【００８３】
本実施形態においては、第２モデルとして、例えば、長期短期記憶（ＬＳＴＭ：Ｌｏｎｇ  Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ）を採用したＲＮＮが用いられてもよい。ＬＳＴＭは、中間層のユニットとして、記憶セル、入力ゲート、出力ゲート及び忘却ゲートを有する記憶ユニットを用いる、ＲＮＮの一つの態様であり、周知技術により実現可能である。なお、本実施形態は、これには限定されず、他の形式のＲＮＮを採用してもよい。
【００８４】
第１、第２モデルを用いて構成される分析モデルの入力層には、セキュリティ情報を表すデータが入力される。入力層のユニット数は、セキュリティ情報のサイズや性質に応じて適宜選択してよい。例えば、セキュリティ情報がテキストデータとして与えられる場合、入力層のユニット数は、そのテキストデータから抽出する文字数（一具体例として、１０２４文字等）を設定してもよい。
【００８５】
また、分析モデルの出力層からは、各クローラ１０１についての重みが出力される。出力層のユニット数は、クローラ１０１の数に応じて適切に選択されてよい。本実施形態においては、クローラ１０１の数がＮである場合、出力層は２Ｎ（２のＮ乗）個のユニットにより構成されてもよい。Ｎ個のクローラ１０１から、０個以上Ｎ個以下のクローラ１０１を選択する組合せは２Ｎ個存在することから、出力層の各ユニットは、クローラ１０１及びその組合せのそれぞれについて、重みを出力することができる。例えば、クローラ１０１及びその組合せに識別子を付与し、その識別子ごとに、出力層の各ユニットが割り当てられてもよい。なお、出力層において、情報収集処理の終了（打ち切り）を表すクローラ１０１（終了処理クローラ）に割り当てられたユニットからの出力が最も大きい場合、後述する学習処理、あるいは学習済みの分析モデルを用いた分析（評価）処理における情報収集処理の繰り返しを終了してもよい。
【００８６】
本実施形態は上記限定されず、第１モデルとして、セキュリティ情報の静的な特徴を学習可能な他のモデルを採用してもよい。そのような他のモデルの一例として、例えば、全結合型のニューラルネットワークモデルが用いられてもよい。また、第２モデルとして、セキュリティ情報の取得に関する時系列的な特徴を学習可能な他のモデルが採用されてもよい。そのような他のモデルの一例として、例えば、条件付き確率場（ＣＲＦ：ｃｏｎｄｉｔｉｏｎａｌ  ｒａｎｄｏｍ  ｆｉｅｌｄ）が用いられてもよい。
【００８７】
［訓練データ］
以下、訓練データについて説明する。上記したように、本実施形態においては、あるセキュリティ事象に関する対策に有用なセキュリティ情報を含む訓練データが提供される。以下、説明の便宜上、訓練データが、テキストデータ（文字列データ）として提供されることを想定する。
【００８８】
本実施形態においては、適切な数の訓練データが予め用意される。訓練データの数は、適宜選択してよい。例えば、各種のキュリティ関係の企業、組織等が提供する情報から訓練データを作成することで、数千〜１００万件程度の訓練データを用意することができる。
【００８９】
訓練データには、あるセキュリティ事象に関する１以上のセキュリティ情報が含まれる。典型的には、訓練データには、あるセキュリティ事象に関して端緒となり得るセキュリティ情報（例えば、マルウェア攻撃の兆候を示す情報）と、そのセキュリティ事象に関する対策に有用であると判断されたセキュリティ情報とが含まれる。ある訓練データに含まれるセキュリティ情報を端緒として、情報収集処理を繰り返すことで、同じ訓練データに含まれる他のセキュリティ情報を取得することができれば、そのような情報収集処理の過程で有用なセキュリティ情報が得られたと考えられる。以下、訓練データに含まれる一つのセキュリティ情報を、「サンプル」と記載する場合がある。
【００９０】
サンプルには、セキュリティ情報を表す具体的なデータが含まれる。１つの具体的な形態として、あるサンプルは、セキュリティ情報の「型」を表すデータ（型データ）、セキュリティ情報の「意味」を表すデータ（意味データ）、及び、セキュリティ情報の値を表すデータ（値データ）、を含むよう構成されてもよい。
【００９１】
型データは、セキュリティ情報のカテゴリ、形式等を表すデータである。例えば、あるセキュリティ情報がＩＰアドレスである場合、その内容に応じて、型データには「ＩＰｖ４アドレス」を表す識別子、「ＩＰｖ６アドレス」を表す識別子等が設定されてよい。
【００９２】
意味データは、セキュリティ情報が示す意味を表すデータである。例えば、あるセキュリティ情報がＩＰアドレスである場合、その内容に応じて、意味データには「データの送信元」、「データの送信先」、「監視対象ＩＰアドレス」等を表す識別子が設定されてもよい。
【００９３】
値データは、セキュリティ情報の具値的な値を示すデータである。例えば、あるセキュリティ情報がＩＰアドレスである場合、値データには、具体的なＩＰアドレスの値が設定されてもよい。
【００９４】
上記に限定されず、サンプルには他のデータが更に含まれてもよい。場合によっては、型データと意味データとの少なくとも一方が、サンプルに含まれていなくてもよい。
【００９５】
型データ及び意味データの分類としては、独自の基準に従った分類を採用してもよく、周知の分類を採用してもよい。例えば、型データの一例として、ＯＡＳＩＳ（Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  ｔｈｅ  Ａｄｖａｎｃｅｍｅｎｔ  ｏｆ  Ｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ）において検討されているＳＴＩＸ（Ｓｔｒｕｃｔｕｒｅｄ  Ｔｈｒｅａｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｅＸｐｒｅｓｓｉｏｎ）／ＣｙｂＯＸ（Ｃｙｂｅｒ  Ｏｂｓｅｒｖａｂｌｅ  ｅＸｐｒｅｓｓｉｏｎ）において規定された「ＤａｔａｔｙｐｅＥｎｕｍ」型を採用してもよい。また、意味データの一例として、ＳＴＩＸ／ＣｙｂＯＸにおいて規定された語彙（Ｖｏｃａｂｕｌａｒｉｅｓ）を採用してもよい。
【００９６】
訓練データを表現する形式は、特に限定されず、適切な形式を選択してよい。一つの具体例として、本実施形態における訓練データは、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式を用いて表現される。なお、訓練データを表現する形式として、データを構造的に表現できる他の形式（例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ））等が採用されてもよい。
【００９７】
［分析モデルの学習過程］
上記のように構成された分析モデルの学習について概要を説明する。
【００９８】
本実施形態における学習部１０２は、学習過程をグラフとして表現することが可能である。以下、学習過程を表すグラフを、学習グラフと記載する場合がある。
【００９９】
学習グラフの各ノードは、少なくとも１以上のセキュリティ情報を有する。後述する学習過程において、学習部１０２に入力として供給されるセキュリティ情報を含むノードを、入力ノードと記載する。また、入力ノードのセキュリティ情報について、学習部１０２により選択されたクローラ１０１が情報収集処理を実行することで取得した１以上のセキュリティ情報を含むノードを、出力ノードと記載する。出力ノードは、学習過程の次の段階における入力ノードとして、学習部１０２に入力される。また、ある訓練データに関する学習処理を開始する際に、学習部１０２に最初の入力として供給されるセキュリティ情報を含むノードを、初期ノードと記載する場合がある。入力ノードに含まれるセキュリティ情報を入力セキュリティ情報、出力ノードに含まれるセキュリティ情報を、出力セキュリティ情報と記載する場合がある。
【０１００】
以下、図７に示す説明図を参照して、本実施形態における学習グラフの概要を説明する。なお、図７は、学習グラフの例を概念的に示す説明図であり、本実施形態はこれには限定されない。
【０１０１】
上記したように、訓練データとして、あるセキュリティ事象に関するセキュリティ情報が、学習部１０２に与えられる。学習部１０２は、例えば、与えられたセキュリティ情報を、図７に例示する初期ノードとして扱ってもよい。
【０１０２】
学習部１０２は、分析モデルの学習過程において、ある入力ノードに含まれるセキュリティ情報を入力として、そのセキュリティ情報を用いた情報収集処理を実行するクローラ１０１を選択するための情報（クローラ１０１の重み）を出力する。
【０１０３】
図７に示す具体例の場合、学習部１０２は、例えば、入力ノードに含まれるセキュリティ情報（例えば”Ａ０”）を分析モデルに入力として与える。分析モデルは、与えられたセキュリティ情報に応じた、各クローラ１０１の重みを算出する。分析モデルが算出する出力（重み）に応じて、学習部１０２は、そのセキュリティ情報（”Ａ０”）に関する情報収集処理を実行するクローラ１０１（例えば、”クローラＡ”）を選択する。
【０１０４】
学習部１０２は、選択したクローラ１０１を用いて、情報源１０５において更に情報収集処理を実行し、新たなセキュリティ情報を取得する。図７の場合、学習部１０２が、”クローラＡ”を用いて情報収集処理を実行した結果、新たにセキュリティ情報として”Ｂ０”〜”Ｂ２”が得られたことを示す。
【０１０５】
学習部１０２は、上記処理を学習処理の終了条件が満たされるまで繰り返し実行する。図７の場合、例えば、学習部１０２が、セキュリティ情報”Ｂ０”に対して”クローラＢ”を選択して情報収集処理を実行し、セキュリティ情報”Ｃ０”が得られることを示す。同様に、学習部１０２が、セキュリティ情報”Ｂ１”、”Ｂ２”に対してそれぞれ”クローラＣ”、”クローラＮ”を選択し、これらによる情報収集処理の結果、セキュリティ情報”Ｃ１”〜”Ｃ３”、”Ｃ（ｍ−１）”、”Ｃｍ”が得られることを示す。
【０１０６】
学習部１０２は、上記繰り返しの各段階において取得したセキュリティ情報に応じて、分析モデル（第１モデル及び第２モデル）におけるユニット間の結合パラメータを調整する。図７の場合、例えば、訓練データとして与えられたセキュリティ情報”Ａ０”から、セキュリティ情報”Ｃ０”〜”Ｃｍ”が得られるまでに取得した各セキュリティ情報に応じて、分析モデルのパラメータが調整される。
【０１０７】
以下、分析モデルの学習方法として、強化学習の一つの手法である、Ｑ学習（Ｑ−Ｌｅａｒｎｉｎｇ）の枠組みを用いる方法について説明する。
【０１０８】
強化学習においては、一般的に、学習を実行する学習主体がある状態”ｓ”において選択した行動”ａ”に対して報酬”ｒ”が与えられる。学習主体は、報酬”ｒ”に基づいて選択した行動”ａ”を評価することで、より適切な行動を選択するよう学習を実行する。
【０１０９】
本実施形態においては、セキュリティ情報分析装置１００（特には学習部１０２）が、学習主体に相当する。
【０１１０】
本実施形態において、状態”ｓ”は、学習グラフにおける入力ノード（特には、入力ノードに含まれるセキュリティ情報）を表す。より具体的には、状態”ｓ”には、学習過程のあるタイミングにおける学習グラフ上の入力ノードの位置、内容（入力ノードのセキュリティ情報）、及び、そのタイミングにおいて選択可能なクローラ１０１等が含まれてもよい。
【０１１１】
本実施形態において、行動”ａ”は、ある状態”ｓ”における、クローラ１０１の選択に相当する。換言すると、行動”ａ”は、あるセキュリティ情報について、あるクローラ１０１を選択し、選択したクローラ１０１を用いて情報源１０５において情報収集処理を実行することに相当する。
【０１１２】
本実施形態において、報酬”ｒ”は、ある状態”ｓ”（入力ノード）について、選択した行動”ａ”（クローラ１０１の選択及び情報収集処理の実行）により得られたセキュリティ情報の内容に応じて算出される。例えば、選択したクローラ１０１により、訓練データに含まれるセキュリティ情報（サンプル）のうち、初期ノードから入力ノードまでの間に取得されていないセキュリティ情報が出力ノードとして得られた場合、その行動に関して比較的大きい報酬が設定される。換言すると、本実施形態においては、ある一つの訓練データについて、その訓練データに含まれるセキュリティ情報が、初期ノードから出力ノードまでの間に取得された数に応じて、報酬が設定される。具体的には、ある一つの訓練データに含まれるセキュリティ情報のうち、初期ノードから出力ノードまでの間に取得されたセキュリティ情報の数が多い場合、報酬の値が大きくなる。また、ある一つの訓練データに含まれるセキュリティ情報のうち、初期ノードから出力ノードまでの間に取得されたセキュリティ情報の数が少ない場合、報酬の値が小さくなる。なお、初期ノードに含まれるセキュリティ情報は、初期ノードから出力ノードまでの間に取得された数に含まれてもよく、含まれなくてもよい。
【０１１３】
簡略化した具体例を用いて説明する。仮に、”Ａ”、”Ｂ”、”Ｃ”の３つのセキュリティ情報（サンプル）を含む、一つの訓練データが与えられ、初期ノードとして”Ａ”を含むノードが設定されることを想定する。初期ノードのサンプル”Ａ”に対して、あるクローラ１０１（仮にクローラＸとする）を選択して情報収集処理を実行した結果として、セキュリティ情報”Ｂ”が得られた場合、入力ノードから出力ノードまでの間に、訓練データに含まれるセキュリティ情報が２つ取得される。これに対して、他のクローラ１０１（仮にクローラＹとする）を選択した結果として、セキュリティ情報”Ｄ”が得られた場合、入力ノードから出力ノードまでの間に、訓練データに含まれるセキュリティ情報が１つ取得される。この具体例の場合、クローラＸを選択する行動についてより大きい報酬が設定され、クローラＹを選択する行動についてはより小さい報酬が設定される。なお、本実施形態は上記簡略化した具体例には限定されない。
【０１１４】
本実施形態における訓練データは、あるセキュリティ事象について有用であると判定されたセキュリティ情報を含む。訓練データに含まれる一つのセキュリティ情報から出発して、訓練データに含まれる他のセキュリティ情報を取得可能なクローラ１０１に対して大きい報酬を設定することで、あるセキュリティ事象について有用なセキュリティ情報を取得するクローラ１０１が選択されやすくなる。例えば、上記のような報酬設定の下で、多様な訓練データを用いた学習処理を実行することにより、分析モデルは、訓練データに含まれないセキュリティ事象に関する一つのセキュリティ情報から、他の有用なセキュリティ情報を取得するクローラ１０１を適宜選択可能になると期待される。なお、本実施形態における報酬”ｒ”の具体的な算出方法については後述する。
【０１１５】
以下、Ｑ学習の概要について説明する。あるタイミング”ｔ”における状態を"ｓ（ｔ）”、行動を”ａ（ｔ）”、報酬を”ｒ（ｔ）”と表すと、学習部１０２の学習過程において、以下のような状態、行動、報酬のセットが得られると考えられる。
2018139458.tif 000003
【０１１６】
ここで、”ｓ（ｎ）”は最終的な状態（訓練データに含まれる他のセキュリティ情報が得られた状態）を示す。
【０１１７】
一般的に、強化学習の目的は、最終的に得られる累積報酬を最大化することである。あるタイミング”ｔ”から、”ｔ＝ｎ”までの累積報酬Ｒ（ｔ）は、割引率”γ”を用いて、一般的に以下の式（１）ように表される。
2018139458.tif 000004
【０１１８】
ここで、”γ”は適宜設定可能な係数であり、一般的には０〜１の間の値を適宜選択可能である。
【０１１９】
Ｑ学習においては、ある状態”ｓ”において、行動”ａ”の重み（その行動を選択することの有用性）を表す指標を算出可能な評価関数（行動価値関数：ａｃｔｉｏｎ−ｖａｌｕｅ  ｆｕｎｃｔｉｏｎ）として、以下のような関数を導入する。即ち、一例として、式（２）のように、ある状態”ｓ”において、行動”ａ”を実行した場合に得られる累積報酬の期待値Ｅを算出可能な関数Ｑが行動価値関数として用いられてもよい。
2018139458.tif 000005
【０１２０】
各状態において、選択可能な行動の中で、最も評価関数の出力が高い行動を採用し続けた場合の累積報酬の期待値は、式（３）（最適行動価値関数：Ｑ関数）により算出可能である。
2018139458.tif 000006
【０１２１】
式（３）において、”π”は、行動”ａ”を選択する方策（ｐｏｌｉｃｙ）を表す。”Ｑ＊（ｓ，ａ）”が最大になる行動を選択することで、最終的な累積報酬が最大化される。Ｑ学習においては、各状態”ｓ”において、選択可能な行動”ａ”の中で、最も行動価値関数の値が大きい行動を採用するように、学習が実行される。
【０１２２】
一般的に、Ｂｅｌｌｍａｎ方程式から、ある環境”ｓ”において、行動”ａ”を選択した場合に、報酬”ｒ”が得られ、次の状態が”ｓ’”になる場合、以下の関係式（式（４））が成立する。
2018139458.tif 000007
【０１２３】
これは、状態”ｓ”において行動”ａ”を採用した場合の累積報酬が、行動”ａ”による報酬”ｒ”と、次の状態”ｓ’”における累積報酬の和であることを表す。これより、何らかの方法で、式（４）の性質を満たすＱ関数が得られれば、ある状態”ｓ”において、その関数からの出力が最大になる”ｓ”を選択することで、累積報酬が最大となる行動を選択することができる。
【０１２４】
一般的なＱ学習においては、例えば状態”ｓ”と行動”ａ”との組合せについて、テーブル関数Ｑ（ｓ，ａ）が作成され、式（５）によりＱ（ｓ，ａ）が更新される。式（５）において”α”は適宜設定可能な学習係数であり、典型的には、例えば、１未満の比較的小さな値（例えば、”０．１”等）が設定されてもよい。
2018139458.tif 000008
【０１２５】
状態”ｓ”及びアクションの数が多い場合、全ての状態”ｓ”について、関数Ｑ（ｓ、ａ）の値（Ｑ値）を算出することは困難である。このような場合、例えば、ニューラルネットワークを用いて関数Ｑ（ｓ，ａ）を近似する方法が知られている（例えば、下記参考文献１）。
【０１２６】
本実施形態においては、分析モデル（ニューラルネットワークモデル）を用いて、上記関数Ｑ（ｓ，ａ）を近似する。換言すると、本実施形態においては、分析モデルは、上記関数Ｑ（ｓ，ａ）を近似するように学習される。即ち分析モデルにおけるニューラルネットワークのパラメータを”θ”とすると、分析モデルは、式（６）のような関係を満たすＱ（ｓ，ａ；θ）を出力するよう学習される。
2018139458.tif 000009
【０１２７】
分析モデルは、学習過程において、式（７）で示される２乗誤差Ｌを最小化するよう、学習される。
2018139458.tif 000010
【０１２８】
即ち、ある状態”ｓ”、行動”ａ”、その行動による報酬”ｒ”、及び次の状態”ｓ’”について、学習部１０２は、式（８）により教師信号”ｙ”を算出し、分析モデルの出力Ｑ（ｓ，ａ，；θ）が、教師信号に近づくように分析モデルを構成する各ニューラルネットワークのパラメータを調整する。
2018139458.tif 000011
【０１２９】
分析モデルは、入力として、状態”ｓ”（入力ノードに含まれるセキュリティ情報）を受け付け、クローラ１０１の選択（行動”ａ”）に関するＱ値を算出する。即ち、Ｑ値は、ある状態（セキュリティ情報）に対する、クローラ１０１の重みを表す値として用いられる。
【０１３０】
なお、上記説明した、ニューラルネットワークを用いたＱ学習の一般的な学習アルゴリズムとしては、例えば、下記参考文献１に記載された方法を採用してもよい。
【０１３１】
［参考文献１］
Ｖｏｌｏｄｙｍｙｒ  Ｍｎｉｈ，  Ｋｏｒａｙ  Ｋａｖｕｋｃｕｏｇｌｕ，  Ｄａｖｉｄ  Ｓｉｌｖｅｒ，  Ａｌｅｘ  Ｇｒａｖｅｓ，  Ｉｏａｎｎｉｓ  Ａｎｔｏｎｏｇｌｏｕ，  Ｄａａｎ  Ｗｉｅｒｓｔｒａ，  Ｍａｒｔｉｎ  Ａ．  Ｒｉｅｄｍｉｌｌｅｒ，  ”Ｐｌａｙｉｎｇ  Ａｔａｒｉ  ｗｉｔｈ  Ｄｅｅｐ  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ”，  ［ｏｎｌｉｎｅ］，  ２０１３年１２月１９日、ＣｏＲＲ  （Ｃｏｍｐｕｔｉｎｇ  Ｒｅｓｅａｒｃｈ  Ｒｅｐｏｓｉｔｏｌｙ），  ［２０１７年１月９日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ａｒｘｉｖ．ｏｒｇ／ａｂｓ／１３１２．５６０２＞．
以下、本実施形態における分析モデルの具体的な学習過程について説明する。以下、説明の便宜上、分析モデルの学習方法について具体例を用いて説明するが、本実施形態はこの具体例には限定されない。また、以下においては、信頼可能な企業や外部組織が作成したレポートから、セキュリティ担当者にとって有用であると判断した情報を抽出したデータを訓練データとする。訓練データの数は適切に選択してよく、本実施形態においては、例えば、数千件〜１００万件程度の訓練データを使用することができる。以下、訓練データの訓練データセットと記載する。
【０１３２】
図８Ａ，図８Ｂは、分析モデルの学習過程を説明するフローチャートである。
【０１３３】
学習部１０２は、分析モデルを初期化する（ステップＳ８０１）。学習部１０２は、例えば、分析モデルを構成する第１モデル及び第２モデルについて、それぞれのニューラルネットワークのパラメータを適宜初期化する。１つの具体例として、学習部１０２は、各ニューラルネットワークのパラメータをランダムな値で初期化してもよい。また、１つの具体例として、学習部１０２は、分析モデルからの出力（即ち、Ｑ値の推定値）の初期値が０（ゼロ）となるように、ニューラルネットワークのパラメータを初期化してもよい。
【０１３４】
学習部１０２は、訓練データセットについて、以下の処理を繰り返し実行する。学習部１０２は、以下の処理を、規定の回数、繰り返し実行してもよい。実行回数は、特に限定されず、適宜選択されてよい。なお、学習部１０２は、全訓練データセットについて、以下の処理を繰り返し実行してもよい。
【０１３５】
学習部１０２は、訓練データセットから、一つの訓練データを選択する（ステップＳ８０２）。学習部１０２は、訓練データをランダムに選択してもよい。
【０１３６】
学習部１０２は、選択した訓練データに含まれるセキュリティ情報（サンプル）を選択する（ステップＳ８０３）。学習部１０２は、選択したサンプルを初期ノードとして設定する。初期ノードは、Ｑ学習において、タイミング”ｔ＝０”の初期状態”ｓ（０）”に相当する。初期ノードは、初期状態”ｓ（０）”における入力ノードとして扱われる。
【０１３７】
学習部１０２は、入力ノードを設定（選択）し、その入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行するクローラ１０１を選択する（ステップＳ８０４）。ある訓練データを用いた学習を開始した際、学習部１０２は、初期ノードを入力ノードとして扱い、初期ノードに関する情報収集処理を実行するクローラ１０１を選択する。また、ある訓練データを用いた学習が進行している場合、学習部１０２は、以前のタイミングにおいて生成された出力ノードを、入力ノードとして設定してもよい。なお、学習部１０２によるクローラ１０１の選択は、Ｑ学習における行動”ａ”の選択に相当する。
【０１３８】
以下、クローラ１０１の選択について具体的に説明する。学習部１０２は、例えば、ある確率（”ε”）で、ランダムにクローラ１０１を選択し、確率（”１−ε”）で、分析モデルから出力されるＱ値に基づいて、クローラ１０１を選択してもよい。Ｑ値に基づいてクローラ１０１を選択する場合、学習部１０２は、例えば、分析モデルの出力層において、最も大きいＱ値を出力するユニットが割り当てられたクローラ１０１を選択してもよい。そのような選択は、式（９）により表され得る。式（９）は、あるタイミング”ｔ”において、状態”ｓ”においてＱ値が最も大きくなる行動”ａ”を選択することを表す。
2018139458.tif 000012
【０１３９】
学習の初期段階では、分析モデルのパラメータに適切な値に調整されていないことから、適切なＱ値が出力されないことがあり、Ｑ値を用いた場合に、必ずしも適切なクローラ１０１が選択されない場合がある。このため、学習の初期段階では、クローラ１０１をランダムに選択する確率”ε”に比較的大きな値が設定されてもよい。そして、学習の進行に応じて、徐々にその値が減らされてもよい。
【０１４０】
学習部１０２は、選択したクローラ１０１を用いて、情報源１０５において、入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行し、取得したセキュリティ情報を含む出力ノードを生成する（ステップＳ８０５）。選択されたクローラ１０１は、例えば、入力ノードに含まれるセキュリティ情報をキーワードとして、情報源１０５においてそのキーワードに関する検索処理を実行し、その結果を新たなセキュリティ情報として取得してもよい。学習部１０２は、クローラ１０１により情報源１０５から取得されたセキュリティ情報を含む出力ノードを生成する。出力ノードは、次のタイミングにおける入力ノード（即ち、次のタイミングにおける状態”ｓ”）として扱われる。
【０１４１】
学習部１０２は、ステップＳ８０４におけるクローラ１０１の選択及び情報収集処理に関する報酬を計算する（ステップＳ８０６）。学習部１０２は、一つの具体例として、以下のような方法を用いて報酬を計算してもよい。即ち、学習部１０２は、ステップＳ８０２において選択された一つの訓練データに含まれるセキュリティ情報のうち、初期ノードから、あるタイミングにおける出力ノードまでの各ノードに含まれないセキュリティ情報の総数に１を足した数の逆数を、報酬として算出する。この場合、報酬の最大値は”１”となる。
【０１４２】
簡略化した具体例を用いて説明する。仮に、”Ａ”、”Ｂ”、”Ｃ”の３つのセキュリティ情報（サンプル）を含む、一つの訓練データが与えられ、初期ノードとして”Ａ”を含むノードが設定されることを想定する。初期ノードのサンプル”Ａ”に対して、あるクローラ１０１（仮にクローラＡとする）を選択して情報収集処理を実行した結果として、セキュリティ情報”Ｂ”が得られた場合、入力ノードから出力ノードまでの間に、訓練データに含まれるセキュリティ情報が２つ取得される。入力ノードから出力ノードまでの間に含まれないセキュリティ情報の総数は１（この場合は”Ｃ”のみ）であることから、報酬”ｒ＝１／（１＋１）＝１／２”と計算される。なお、本実施形態は上記簡略化した具体例には限定されない。
【０１４３】
学習部１０２は、ステップＳ８０６において、既に得られているセキュリティ情報と同じ内容のセキュリティ情報が得られた場合、報酬として”−１”を設定してもよい。
【０１４４】
学習部１０２は、終了状態を判定する（ステップＳ８０７）。１つの具体例として、学習部１０２は、ステップＳ８０５において得られた、ある入力ノードに関するセキュリティ情報が、初期ノードからその入力ノードまでの間のノードに既に含まれている場合、次の状態として終了状態を設定してよい。これにより、同じセキュリティ情報が繰り返し取得されることが防がれる。
【０１４５】
また、学習部１０２は、ステップＳ８０６において得られた報酬”ｒ”が”ｒ＝１”となった場合、次の状態として終了状態を設定してよい。ある一つの訓練データに含まれるセキュリティ情報が全て取得された場合に、報酬”ｒ”が最大値（”ｒ＝１”）となっている。
【０１４６】
また、学習部１０２は、ある一つの訓練データについて、クローラ１０１の選択及び情報収集処理を規定された回数繰り返し実行した場合、次の状態として終了状態を設定してもよい。これにより、ある訓練データについて、際限なく情報収集処理が実行されることを防ぐことができる。
【０１４７】
また、学習部１０２は、ステップＳ８０５において生成した出力ノードに関する情報収集処理を実行可能なクローラ１０１が存在しない場合、次の状態として終了状態を設定してもよい。
【０１４８】
学習部１０２は、ある状態”ｓ”の次の状態が終了状態であると判定した場合、終了状態に強制的に遷移する特殊なクローラ１０１（終了処理クローラ）が選択されるよう、分析モデルの出力を調整してもよい。また、学習部１０２は、ある状態”ｓ”の次の状態が終了状態であると判定した場合、終了状態に強制的に遷移する特殊なクローラ１０１が選択されるよう、報酬の値を設定してもよい。これにより、ある状態”ｓ”において、重みが大きいクローラ１０１が終了処理クローラである場合、情報取得処理が終了される。
【０１４９】
上記ステップＳ８０４乃至ステップＳ８０７の処理により、あるタイミング”ｔ”における、状態”ｓ（ｔ）”（入力ノード）と、行動”ａ（ｔ）”（クローラ１０１の選択）と、報酬”ｒ（ｔ）”と、次の状態”ｓ（ｔ＋１）”（出力ノード）と、終了状態の判断結果とが得られる。以下、これらのデータのセットを、遷移データと記載する場合がある。学習部１０２は、ステップＳ８０４乃至Ｓ８０７において求めたこれらの遷移データを、Ｑ学習用のデータとして記憶してもよい。
【０１５０】
上記ステップＳ８０４乃至ステップＳ８０７の処理により、学習部１０２は、ある入力ノードから、出力ノードに至る学習グラフの一部を生成することができる。
【０１５１】
学習部１０２は、Ｑ学習における教師信号”ｙ”を算出する（ステップＳ８０８）。１つの具体例として、学習部１０２は、ステップＳ８０４乃至Ｓ８０７において求めた遷移データ（あるタイミング”ｔ”における状態”ｓ（ｔ）”（入力ノード）、行動”ａ（ｔ）”（選択されたクローラ１０１）、報酬”ｒ（ｔ）”、及び次状態”ｓ（ｔ＋１）”（出力ノード））から、式（１０）を用いて教師信号を算出する。
2018139458.tif 000013
【０１５２】
なお、次の状態”ｓ（ｔ＋１）”が終了状態である場合、既に報酬が決定されており、更なる行動を選択する必要がないことから、学習部１０２は、式（１１）により教師信号を算出してもよい。
2018139458.tif 000014
【０１５３】
式（１０）において、割引率”γ”は適宜定められてよく、典型的には０．９以上、１．０未満の値が用いられてよい。式（１０）における”Ｑ（ｓ（ｔ＋１），ａ（ｔ＋１）；θ）”は、あるタイミングにおける分析モデルに、状態”ｓ（ｔ＋１）”（出力ノード）を入力として与えることで、算出可能である。なお、学習部１０２は、算出した教師信号を、遷移データに関連付けて記憶してもよい。
【０１５４】
学習部１０２は、分析モデルのパラメータを学習する（ステップＳ８０９）。１つの具体例として、学習部１０２は、式（１２）により表される教師信号と、分析モデルからの出力との誤差を、適切な勾配法を用いて最小化してもよい。
2018139458.tif 000015
【０１５５】
なお、勾配法を用いて誤差を最小化する具体的な方法は、特に限定されない。具体的な方法の一例として、例えば、上記参考文献１に記載された方法が用いられてもよい。ステップＳ８０９の処理により、分析モデルを構成する第１モデル及び第２モデルのパラメータが調整される。なお、ＣＮＮ，ＲＮＮのパラメータ調整は、適切な方法（例えば誤差逆伝搬法等）を用いて実現可能であり、特に限定されない。
【０１５６】
学習部１０２は、ステップＳ８０５乃至ステップＳ８０７の結果から、ステップＳ８０３において選択した訓練データに含まれるサンプルを用いた学習過程において、次の状態が終了状態であるか否かを判定する（ステップＳ８１０）。
【０１５７】
次の状態が終了状態ではない場合（ステップＳ８１０においてＮＯ）、学習部１０２は、あるタイミングにおける出力ノードを入力ノードとして扱い、更に情報収集処理を実行可能である。即ち、この場合、学習部１０２は、あるタイミングにおける出力ノードを、次のタイミングにおける入力ノードに設定し（ステップＳ８１１）、ステップＳ８０４から学習過程を続行してよい。
【０１５８】
次の状態が終了状態である場合（ステップＳ８１０においてＹＥＳ），学習部１０２は、ステップＳ８０２において選択した訓練データに、他のセキュリティ情報（サンプル）が含まれるか確認する（ステップ８１２）。
【０１５９】
ステップＳ８１２においてＹＥＳの場合、学習部１０２は、ステップＳ８０２において選択した訓練データに含まれる他のセキュリティ情報を初期ノードとして設定し、ステップＳ８０３から学習過程を続行してよい。
【０１６０】
ステップＳ８１２においてＮＯの場合、ステップＳ８０２において選択された訓練データに含まれる全てのセキュリティ情報（サンプル）について、既に学習過程が実行されている。この場合、学習部１０２は、ステップＳ８０２から学習過程を続行してよい。
【０１６１】
上記説明した学習過程により、分析モデルは、ある訓練データに含まれるセキュリティ情報を入力として受けつけた際、情報収集処理を実行する過程で、同じ訓練データに含まれる他のセキュリティ情報を取得し得るクローラ１０１について、より大きな値を出力するよう学習される。
【０１６２】
これにより、例えば、学習後の分析モデルを用いて、訓練データに含まれないセキュリティ事象に関するセキュリティ情報を始点として、クローラ１０１の選択及び情報収集処理の実行を繰り返すことで、そのセキュリティ情報に関する他の有用なセキュリティ情報を取得可能となることが期待される。
【０１６３】
［学習過程の変形例]
以下、上記説明した学習部１０２における学習過程の変形例について説明する。以下の変形例の場合、上記説明したステップＳ８０２〜ステップＳ８１１のうち、分析モデルのパラメータ調整に関する処理（ステップＳ８０８、Ｓ８０９）以外の処理が予め複数回実行される。これにより、学習部１０２は、Ｑ学習に用いられる遷移データ（状態”ｓ”、行動”ａ”、報酬”ｒ”、次の状態”ｓ’”）を予め複数生成して記憶する。学習部１０２は、例えば、分析モデルを用いずに、ランダムに行動（クローラ１０１の選択及び情報収集処理）を選択することで、遷移データを生成してもよい。上記のように事前に準備された遷移データを、初期遷移データと記載する場合がある。
【０１６４】
学習部１０２は、初期遷移データを学習用遷移データとして記憶する。学習部が記憶する学習用遷移データの数は、特に限定されず、適宜選択してよい。
【０１６５】
学習部１０２は、学習用遷移データを準備した後、上記説明したステップＳ８０１乃至ステップＳ８１１の学習過程を実行する。この際、学習部１０２は、ステップＳ８０４乃至Ｓ８０７において新たな遷移データを求めるたびに、その遷移データを学習用遷移データとして更に記憶してよい。学習用遷移データには上限が設けられてもよく、学習部１０２は、例えば、新たな遷移データが求まるたびに、古い遷移データを削除してもよい。
【０１６６】
学習部１０２は、ステップＳ８０８、Ｓ８０９において、学習用遷移データから１以上の遷移データをランダムに選択して、選択した遷移データを用いて、分析モデルの学習を実行してもよい。学習部１０２は、例えば、複数の学習データの集合（ミニバッチ）を用いてニューラルネットワークを学習する一般的な手法を用いて、ステップＳ８０８及びＳ８０９における分析モデルの学習処理を実行してよい。
【０１６７】
［具体例］
以下、図９〜図１０に示す簡略化した具体例を用いて、上記学習過程について説明する。
【０１６８】
学習部１０２は、複数の訓練データセットから、ある訓練データ（仮に訓練データＸと記載する）を選択する。図９に示す具体例の場合、訓練データＸには３つのセキュリティ情報（ｈｏｓｔｎａｍｅ、ｉｐ−ｄｓｔ、ｍｄ５）が含まれる。
【０１６９】
学習部１０２は、訓練データＸに含まれるセキュリティ情報（サンプル）のうち、一つを選択する。図９に例示する具体例の場合、”ｈｏｓｔｎａｍｅ”が選択される。選択されたセキュリティ情報が、初期ノードとして扱われる。
【０１７０】
学習部１０２は、初期ノードを入力ノードとして選択し、その入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行するクローラ１０１を選択する。この際、学習部１０２は、クローラ１０１をランダムに選択してもよい。また、学習部１０２は、入力ノードを適切な形式（例えばＪＳＯＮ形式）に変換して、このタイミングにおける分析モデルに入力し、分析モデルから出力さる値（重み）が最も大きいクローラ１０１を選択してもよい。図９の場合、ＤＮＳを用いて情報収集処理を実行するクローラ１０１（図９のクローラＡ）が選択される。クローラＡは、ＤＮＳを用いて、入力ノードのホスト名（”ａａａ．ｂｂｂ．ｃｃｃ．ｏｒｇ”）に対応するＩＰアドレス（”１９５．２０８．２２２．３３３”）を取得し、学習部１０２に提供する。学習部１０２は、情報収集処理の結果を用いて、出力ノードを生成する（図９のノード１）。
【０１７１】
学習部１０２は、クローラＡの選択及び情報収集処理に対する報酬を算出する。この場合、訓練データＸに含まれるセキュリティ情報のうち、初期ノードから、出力ノード（ノード１）までの間に含まれないセキュリティ情報の総数は１（”ｍｄ５”）である。よって、学習部１０２は、報酬”ｒ”について、”ｒ＝１／（１＋１）＝１／２”と算出する。なお、図９の場合、学習部１０２は、ノード１の次の状態が終了状態ではないと判定する。
【０１７２】
学習部１０２は、例えば、上記処理により得られた遷移データ（状態”ｓ”（初期ノード）、行動”ａ”（クローラＡ）、報酬”ｒ”（”ｒ＝１／２”）、次の状態”ｓ’”（ノード１））を、学習用遷移データとして記憶してもよい。
【０１７３】
学習部１０２は、ノード１を入力ノードとして、上記と同様の処理を実行する。図９の場合、クローラ１０１として、クローラＢが選択される。クローラＢは、例えば、マルウェア情報を提供する外部サイトにおいて、ノード１に含まれるＩＰアドレスを検索し、検索結果を取得する。図９の場合、検索結果として、マルウェアファイルのハッシュ値（例えば、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）の値）が得られる。学習部１０２は、このような情報収集処理の結果を用いて、出力ノードを生成する（図９のノード２）。
【０１７４】
学習部１０２は、クローラＢの選択及び情報収集処理に対する報酬を算出する。この場合、訓練データＸに含まれるセキュリティ情報のうち、初期ノードから、出力ノード（ノード２）までの間に含まれないセキュリティ情報の総数は０である。よって、学習部１０２は、報酬”ｒ”について、”ｒ＝１／（０＋１）＝１”と算出する。また、報酬ｒが”ｒ＝１”を満たすことから、学習部１０２は、ノード２の次の状態が終了状態であると判定する。
【０１７５】
学習部１０２は、例えば、上記処理により得られた遷移データ（状態”ｓ”（ノード１）、行動”ａ”（クローラＢ）、報酬”ｒ”（”ｒ＝１”）、次の状態”ｓ’”（ノード２））を、学習用遷移データとして記憶してもよい。なお、この際、学習部１０２は、上記学習用遷移データを用いて、教師信号となる値を算出してもよい。また、この際、学習部１０２は、上記学習用遷移データを用いて、式（１０）から教師信号となり得る値を算出し、遷移データに関連付けて記憶してもよい。
【０１７６】
上記のような処理により、学習部１０２は、遷移データを生成することが可能である。また、この過程で、学習部１０２は、学習グラフを生成することが可能である。
【０１７７】
以下、分析ノードのパラメータ更新（図８のステップＳ８０８、Ｓ８０９）について、図１０に示す簡略化した具体例を用いて概要を説明する。図１０の具体例の場合、あるタイミングにおける入力ノード（状態”ｓ”）に、ホスト名（”ａａａ．ｂｂｂ．ｃｃｃ．ｄｄｄ”）が設定されている遷移データを用いて分析モデルのパラメータが調整されることを想定する。
【０１７８】
学習部１０２は、入力ノードに含まれるセキュリティ情報を適切な形式（例えばＪＳＯＮ形式）に変換し、分析モデルに入力する。図１０に示す具体例の場合、ＪＳＯＮ形式に変換されたセキュリティ情報（文字列）の各文字が、分析モデルにおける入力層の各ユニットに入力される。入力層のユニット数よりセキュリティ情報の文字列の方が長い（サイズが大きい）場合、セキュリティ情報の一部を切り捨ててもよい。
【０１７９】
学習部１０２は、分析モデルの出力として、クローラ１０１の重みを表す値を得る。図９の場合、クローラ１０１（総数ｎ個）について、それぞれ重みを表す値（ｑ０〜ｑ（ｎ−１））が得られる。
【０１８０】
学習部１０２は、現状の分析モデルと、遷移データとを用いて、式（１０）から教師信号を算出する（図１０のＱ０〜Ｑ（ｎ−１））。なお、遷移データに関連付けて教師信号が記憶されている場合、学習部１０２は、記憶されているデータを用いてもよい。
【０１８１】
学習部１０２は、教師信号と、分析モデルの出力との２乗誤差を算出し、誤差逆伝搬法（バックプロパゲーション）等を用いて、分析モデルを構成するニューラルネットワークのパラメータを更新する。
【０１８２】
なお、図９に示す具体例においては、説明の便宜上、分析モデルに入力されるセキュリティ情報について、その型（”ｈｏｓｔｎａｍｅ”）と、値（”ｄａａａ．ｂｂｂ．ｃｃｃ．ｏｒｇ”）とが表されているが、更に、セキュリティ情報の意味を表すデータが含まれてもよい。
【０１８３】
［分析モデルを用いた分析処理］
以下、上記のように学習された分析モデルを用いて、セキュリティ情報評価装置２００における評価部２０１が、あるセキュリティ情報に関するセキュリティ情報を分析する過程について説明する。
【０１８４】
図１１は、評価部２０１の動作を例示するフローチャートである。なお、以下の説明においては、セキュリティ情報評価装置２００における分析モデル記憶部１０３に、学習済みの分析モデルが配置されていることを想定する。
【０１８５】
評価部２０１は、例えば、セキュリティ情報供給部２０２から、新たに分析するセキュリティ情報を受けつけ、初期ノードを生成する（ステップＳ１１０１）。初期ノードは、最初の入力ノードとして扱われる。
【０１８６】
評価部２０１は、入力ノードを設定し、入力ノードに含まれるセキュリティ情報を分析モデルに供給する（ステップＳ１１０２）。この際、評価部２０１は、セキュリティ情報を適切な形式に変換してもよい。分析モデルは、入力に応じて、各クローラ１０１について、重みを表す値を算出する。
【０１８７】
評価部２０１は、分析モデルの出力の内、重みが最も大きいクローラ１０１を選択する（ステップＳ１１０３）。ステップＳ１１０３における処理は、上記学習過程において、入力された訓練データに応じてクローラ１０１を選択する処理（ステップＳ８０４）と類似する処理として実装可能である。
【０１８８】
評価部２０１は、選択したクローラ１０１を用いて、入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行することで取得した、新たなセキュリティ情報を含む出力ノードを生成する（ステップＳ１１０４）。この処理は、学習過程におけるステップＳ８０５と類似する処理として実装可能である。
【０１８９】
評価部２０１は、出力ノードの次の状態が、終了状態であるか否かを判定する（ステップＳ１１０５）。
【０１９０】
評価部２０１は、例えば、ステップＳ１１０１において受けつけたセキュリティ情報について、ステップＳ１１０２乃至Ｓ１１０４における処理を規定回数以上実行した場合、ステップＳ１１０４における出力ノードの次の状態を終了状態と判定してもよい。
【０１９１】
また、評価部２０１は、例えば、分析モデルが算出する重みの内、終了状態へ遷移するクローラ１０１（終了処理クローラ）の重みが最も大きい場合、ステップＳ１１０４における出力ノードの次の状態を終了状態と判定してもよい。
【０１９２】
評価部２０１は、出力ノードの次の状態が終了状態ではないと判定した場合（ステップＳ１１０６においてＮＯ）、ステップＳ１１０４において生成された出力ノードを、新たな入力ノードとして設定し、ステップＳ１１０２から処理を続行する。これにより、ステップＳ１１０１において提供されたセキュリティ情報に応じて、情報収集処理が繰り返し実行される。
【０１９３】
評価部２０１は、出力ノードの次の状態が終了状態であると判定した場合（ステップＳ１１０６においてＹＥＳ）、処理を終了する。評価部２０１は、初期ノードから、最終的な出力ノードに至るまでに生成したノードを表す情報を、評価結果提供部２０３に提供してもよい。より具体的には、評価部２０１は、初期ノードから、最終的な出力ノードに至るまでに生成したノードを接続することで、例えば図１２に例示するようなグラフ（評価グラフ）を生成し、評価結果提供部２０３に提供してもよい。なお、評価結果提供部２０３が、評価グラフを生成してもよい。
【０１９４】
上記説明した本実施形態における、セキュリティ情報分析装置１００によれば、上記したような訓練データを用いて学習した分析モデルを用いることで、例えば、訓練データに含まれないようなセキュリティ事象についても、有用なセキュリティ情報を収集することができる。その理由は、分析モデルが、あるセキュリティ事象に関するセキュリティ情報から、他の有用なセキュリティ情報を取得可能な情報収集処理（クローラ１０１）に対して、大きな重みを出力するよう学習されるからである。訓練データには、セキュリティ情報に関する有用性の判断結果（知見）が反映されていると考えられることから、分析モデルの出力には、セキュリティ情報に関する有用性の知見が反映されていると考えられる。
【０１９５】
本実施形態においては、訓練データに含まれるあるセキュリティ情報から、同じ訓練データに含まれる他のセキュリティ情報を取得可能な情報収集処理（クローラ１０１）が選択されやすくなるように、分析モデルが学習される。これにより、あるセキュリティ事象に関して端緒となったセキュリティ情報から、他のセキュリティ情報を取得可能な情報収集処理が次々に選択されるようになる。結果として、分析モデルは、情報収集の過程を学習することが可能となる。
【０１９６】
また、本実施形態においては、大量の訓練データを比較的容易に準備することが可能である。あるセキュリティ事象について、端緒となったセキュリティ情報と、有用性が判断されたセキュリティ情報とは、例えば、セキュリティに関連する企業、団体等が提供するレポート等に基づいて、比較的容易に準備することが可能だからである。
【０１９７】
また、本実施形態においては、セキュリティ情報の静的な特徴を学習可能な第１モデルと、セキュリティ情報の取得過程（動的な特徴）を学習可能な第２モデルとを用いて、分析モデルが構成される。これにより、分析モデルは、セキュリティ情報に含まれるデータのパターンと、情報収集処理の過程とを学習することができる。
【０１９８】
本実施形態におけるセキュリティ情報評価装置２００によれば、例えば、新たなセキュリティ事象が発生し、当初は少数の情報しか得られない場合であっても、上記のように学習された分析モデルを用いることで、そのセキュリティ事象に関する有用な情報を収集することができる。また、セキュリティ情報評価装置２００を用いることで、セキュリティ担当者等の知識及び経験等に依存することなく、有用なセキュリティ情報を収集することが可能となる。
【０１９９】
また、本実施形態におけるセキュリティ情報評価装置２００は、あるセキュリティ情報の評価結果を表す評価グラフを、ユーザに提示することができる。ユーザは、あるセキュリティ事象について、最終的に収集されたセキュリティ情報だけではなく、その収集過程を確認することで、収集されたセキュリティ情報の妥当性を検証することができる。
【０２００】
以上より、本実施形態によれば、あるセキュリティ事象に関する有用なセキュリティ情報を容易に取得することができる。
【０２０１】
＜第１実施形態の変形例＞
以下、上記第１実施形態の変形例について説明する。本変形例の基本的な構成は上記第１実施形態と同様としてよく、情報収集部（クローラ）１０１、学習部１０２及び評価部２０１の機能の一部が拡張されている。
【０２０２】
本実施形態におけるクローラ１０１は、更に、情報源１０５において、あるセキュリティ情報に関する情報収集処理を実行した際、その処理に要したコストを表す値（コスト値）を返すよう構成される。
【０２０３】
情報源１０５に関するコスト値は、例えば、情報源１０５における情報収集処理に要する費用（有償又は無償）、情報収集処理に要する時間、情報収集処理に要する処理負荷、等に応じて適宜定められる。また、コスト値は、情報源１０５に固有の事情（例えば、情報収集処理を実行可能な回数、ある情報源１０５の使用頻度、情報源１０５との間の通信量等）に応じて定められてもよい。
【０２０４】
複数の情報源１０５から類似した情報を取得可能である場合、一般的には、コスト値が小さい情報源を選択することが望ましいと考えられる。また、有用なセキュリティ情報を取得するためには、セキュリティ事象に関する分析（情報収集）の段階に応じた適切なコスト値の情報源１０５を選択することが望ましいと考えられる。例えば、分析の初期段階では、比較的コスト値が小さい情報源１０５が選択される一方、分析が実行された段階では、コスト値が高くても有用性が大きい情報を得られる可能性がある情報源１０５（例えば、有償サービス等）が選択されてもよい。
【０２０５】
本変形例においては、クローラ１０１が出力するコスト値が、分析モデルの学習に反映される。これにより、本変形例における分析モデルは、コスト値も考慮して、各クローラ１０１の重みを表す値を算出することが可能である。
【０２０６】
具体的な態様の一つとして、本実施形態における学習部１０２は、あるクローラ１０１の選択及び情報収集処理に関する報酬を算出する際（図８ＡにおけるステップＳ８０６）、クローラ１０１が返すコスト値を反映した値を算出する。学習部１０２は、例えば、クローラ１０１が返すコスト値に応じて、報酬を割り引いてもよい。学習部１０２は、例えば、コスト値が大きいほど、報酬が小さくなるように、報酬を割り引いてもよい。具体的な報酬の算出方法は特に限定されず、適宜選択してよい。例えば、学習部１０２は、コスト値を特定の値域に正規化し、正規化したコスト値を、上記ステップＳ８０６において算出した報酬値から減算してもよい。
【０２０７】
上記したように、学習部１０２は、ある確率（”ε”）でランダムにクローラ１０１を選択するよう構成される場合がある。この場合、コスト値は比較的大きいものの、有用性が大きい情報を取得可能な（即ち、報酬が大きい）クローラ１０１がランダムに選択される可能性がある。これにより、学習部１０２は、例えば、ある状態において、比較的コスト値が大きいクローラ１０１に対して比較的大きな重みを算出するように、分析モデルを学習することができる。
【０２０８】
本変形例における学習部１０２は、上記説明した強化学習の枠組みにおいて、コスト値を反映した報酬を用いて、分析モデルに関する学習処理を実行する。これにより、本変形例における分析モデルは、クローラ１０１について、情報取得処理に要するコスト（情報源１０５のコスト）を考慮して、重みを表す値を算出することが可能である。
【０２０９】
また、本変形例における評価部２０１は、上記のように学習された分析モデルを用いることで、あるセキュリティ事象に関するセキュリティ情報を収集する際、コストを考慮してクローラ１０１を選択することができる。これにより、本変形例によれば、あるセキュリティ事象に関する有用なセキュリティ情報を、適正なコストで収集可能である。
【０２１０】
＜第２実施形態＞
以下、本開示に係る技術を実現可能な基本的な実施形態である第２実施形態について説明する。
【０２１１】
図１３は、セキュリティ情報分析装置１３００の機能的な構成を例示するブロック図である。セキュリティ情報分析装置１３００は、セキュリティ情報収集部１３０１と、学習部１３０２とを含む。
【０２１２】
セキュリティ情報収集部１３０１は、あるセキュリティ事象に関する情報を表すセキュリティ情報を、情報提供元から取得するよう構成される。セキュリティ情報分析装置１３００は、１以上のセキュリティ情報収集部１３０１を含んでもよい。セキュリティ情報収集部１３０１は、例えば、上記第１実施形態におけるクローラ１０１と同様の機能を実現するよう構成されてもよい。
【０２１３】
学習部１３０２は、セキュリティ事象に関するセキュリティ情報を入力として受けつけ、受けつけたセキュリティ情報に応じて１以上のセキュリティ情報収集部１３０１に関する重みを算出する分析モデルを作成するよう構成される。
【０２１４】
学習部１３０２は、あるセキュリティ事象について予め収集された複数のセキュリティ情報を含む訓練データを用いて、ある１つの訓練データに含まれるセキュリティ情報に応じて、その訓練データに含まれる他のセキュリティ情報を情報提供元から取得することができるセキュリティ情報収集部１３０１の重みが大きくなるように、分析モデルを学習する。このような学習により、ある訓練データに含まれるセキュリティ情報について、同じ訓練データに含まれる他のセキュリティ情報を選択可能なセキュリティ情報収集部１３０１が選択されやすくなる。学習部１３０２は、例えば、上記第１実施形態における学習部１０２と同様の機能を実現するよう構成されてもよい。また、分析モデルは、上記第１実施形態における分析モデルと同様に構成されてもよい。
【０２１５】
上記のような構成を有するセキュリティ情報分析装置１３００は、セキュリティ情報分析装置１００の基本的な実施形態であるとも考えられる。また、上記のように構成されたセキュリティ情報分析装置１３００を使用することで、本開示に係るセキュリティ情報の分析方法を実行可能である。
【０２１６】
例えば、訓練データが、あるセキュリティ事象について有用であると判定されたセキュリティ情報を含む場合を想定する。この場合、そのような訓練データにより学習された分析モデルを用いることで、例えば、あるセキュリティ事象に関する端緒となる情報から、そのセキュリティ事象に関する有用な情報を取得可能なセキュリティ情報収集部１３０１を選択することができると考えられる。よって、セキュリティ情報分析装置１３００を用いることで、あるセキュリティ事象に関する有用なセキュリティ情報を容易に取得することができる。
【０２１７】
図１４は、セキュリティ情報評価装置１４００の機能的な構成を例示するブロック図である。セキュリティ情報評価装置１４００は、セキュリティ情報収集部１４０１と、評価部１４０２と、評価結果提供部１４０３とを含む。
【０２１８】
セキュリティ情報収集部１４０１は、あるセキュリティ事象に関する情報を表すセキュリティ情報を、セキュリティ情報を提供可能な情報提供元から取得するよう構成される。セキュリティ情報収集部１４０１は、例えば、上記第１実施形態におけるクローラ１０１と同様の機能を実現するよう構成されてもよい。
【０２１９】
評価部１４０２は、セキュリティ事象に関するセキュリティ情報を入力として受けつけるよう構成される。評価部１４０２は、入力として受けつけたセキュリティ情報に応じて１以上のセキュリティ情報収集部１４０１に関する重みを算出する分析モデルを用いて、以下の処理を実行するよう構成される。
【０２２０】
即ち、評価部１４０２は、あるセキュリティ情報を分析モデルに入力することで算出された重みに応じてセキュリティ情報収集部１４０１を選択する処理と、選択されたセキュリティ情報収集部１４０１を用いて他のセキュリティ情報を取得する処理と、を繰り返し実行するよう構成される。これにより、評価部１４０２は、あるセキュリティ情報に関する他のセキュリティ情報を収集することができる。
【０２２１】
評価結果提供部１４０３は、あるセキュリティ情報について評価部１４０２により収集された他のセキュリティ情報を含む評価結果を生成するよう構成される。また評価結果提供部１４０３は、あるセキュリティ情報から他のセキュリティ情報を収集する過程を表す情報を含む評価結果を生成するよう構成されてもよい。評価結果は、例えば、上記第１実施形態において例示した評価グラフとして表されてもよい。
【０２２２】
例えば、あるセキュリティ事象について有用であると判定されたセキュリティ情報を含む訓練データを用いて、分析モデルが学習されている場合を想定する。この場合、その分析モデルを用いることで、評価部１４０２は、例えば、訓練データとは異なるセキュリティ事象に関する端緒となる情報から、そのセキュリティ事象に関する有用な情報を取得可能なセキュリティ情報収集部１４０１を選択することができると考えられる。よって、セキュリティ情報評価装置１４００を用いることで、あるセキュリティ事象に関する有用なセキュリティ情報を容易に取得することができる。
【０２２３】
＜ハードウェア及びソフトウェア・プログラム（コンピュータ・プログラム）の構成＞
以下、上記説明した各実施形態及び変形例を実現可能なハードウェア構成について説明する。
【０２２４】
上記各実施形態において説明した各装置及びシステムは、１つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア（処理ロジックを実装した集積回路等）として実現してもよい。
【０２２５】
例えば、各装置及びシステムをハードウェアにより実現する場合、各装置及びシステムの構成要素は、それぞれの機能を提供可能な集積回路（例えば、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等）として実装されてもよい。この場合、例えば、各装置及びシステムの構成要素が有するデータは、ＳｏＣとして統合されたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域やフラッシュメモリ領域に記憶されてもよい。
【０２２６】
また、この場合、各装置及びシステムの構成要素を接続する通信回線としては、周知の通信バスを含む通信ネットワークを採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。各装置及びシステムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法（有線、無線、またはそれらの組み合わせ）により通信可能に接続されていてもよい。
【０２２７】
例えば、各装置及びシステムは、情報収集部（クローラ）１０１、１３０１、１４０１の機能を実現する処理回路（ｐｒｏｃｅｓｓｉｎｇ  ｃｉｒｃｕｉｔｒｙ）及び通信回路、学習部１０２、１３０２の機能を実現する処理回路、分析モデル記憶部１０３を実現する記憶回路、及び、訓練データ供給部１０４の機能を実現する処理回路、等用いて実現されてよい。また、各装置及びシステムは、評価部２０１、１４０２の機能を実現する処理回路、セキュリティ情報供給部２０２の機能を実現可能な処理回路、及び、評価結果提供部２０３、１４０３の機能を実現可能な処理回路、等を用いて実現されてよい。なお、上記回路構成は一つの具体的態様であり、実装においては、様々なバリエーションが想定される。
【０２２８】
また、上述した各装置及びシステムは、図１５に例示するような汎用のハードウェア装置１５００と、ハードウェア装置１５００によって実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、各装置及びシステムは、１以上の適切な数のハードウェア装置１５００及びソフトウェア・プログラムにより構成されてもよい。
【０２２９】
図１５における演算装置１５０１（プロセッサ）は、汎用のＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ等の演算処理装置である。演算装置１５０１は、例えば後述する不揮発性記憶装置１５０３に記憶された各種ソフトウェア・プログラムをメモリ１５０２に読み出し、そのソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記各実施形態における各装置及びシステムの構成要素は、例えば、演算装置１５０１により実行されるソフトウェア・プログラムとして実現可能である。
【０２３０】
例えば、各装置及びシステムは、情報収集部（クローラ）１０１、１３０１、１４０１の機能を実現するプログラム、学習部１０２、１３０２の機能を実現するプログラム、分析モデル記憶部１０３を実現するプログラム、及び、訓練データ供給部１０４の機能を実現するプログラム、等用いて実現されてよい。また、各装置及びシステムは、評価部２０１、１４０２の機能を実現するプログラム、セキュリティ情報供給部２０２の機能を実現可能なプログラム、及び、評価結果提供部２０３、１４０３の機能を実現可能なプログラム、等を用いて実現されてよい。なお、上記プログラム構成は一つの具体的態様であり、実装においては、様々なバリエーションが想定される。
【０２３１】
メモリ１５０２は、演算装置１５０１から参照可能な、ＲＡＭ等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ１５０２は、揮発性のメモリデバイスであってもよい。
【０２３２】
不揮発性記憶装置１５０３は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置１５０３は、各種ソフトウェア・プログラムやデータ等を記憶可能である。上記各装置及びシステムにおいて、分析モデル記憶部１０３は、不揮発性記憶装置１５０３に分析モデルを記憶してもよい。
【０２３３】
ドライブ装置１５０４は、例えば、後述する記録媒体１５０５に対するデータの読み込みや書き込みを処理する装置である。上記各装置及びシステムにおける訓練データ供給部１０４は、例えば、ドライブ装置１５０４を介して、後述する記録媒体１５０５に記憶された訓練データを読み込んでもよい。
【０２３４】
記録媒体１５０５は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記録媒体である。本開示において、記録媒体の種類及び記録方法（フォーマット）は、特に限定されず、適宜選択可能である。
【０２３５】
ネットワークインタフェース１５０６は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続用インタフェース装置等を採用してもよい。例えば、上記各装置及びシステムにおける情報収集部１０１（クローラ１０１）は、ネットワークインタフェース１５０６を介して、情報源１０５に通信可能に接続されてもよい。
【０２３６】
入出力インタフェース１５０７は、外部装置との間の入出力を制御する装置である。外部装置は、例えば、ユーザからの入力を受けつけ可能な入力機器（例えば、キーボード、マウス、タッチパネル等）であってもよい。また、外部装置は、例えばユーザに対して各種出力を提示可能出力機器（例えば、モニタ画面、タッチパネル等）であってもよい。例えば、上記各装置及びシステムにおけるセキュリティ情報供給部２０２は、入出力インタフェース１５０７を介して、ユーザから新たなセキュリティ情報を受けつけてもよい。また、例えば、上記各装置及びシステムにおける評価結果提供部２０３は、入出力インタフェース１５０７を介して、ユーザに評価結果を提供してもよい。
【０２３７】
上述した各実施形態を例に説明した本発明における各装置及びシステムは、例えば、図１５に例示するハードウェア装置１５００に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、ハードウェア装置１５００に対して供給されたソフトウェア・プログラムを、演算装置１５０１が実行することによって、本発明が実現されてもよい。この場合、ハードウェア装置１５００で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
【０２３８】
上述した各実施形態において、上記各図（例えば、図１〜図４、図１３、図１４）に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能（処理）単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【０２３９】
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置１５０３に記憶されてもよい。そして、演算装置１５０１が、それぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ１５０２に読み出してもよい。
【０２４０】
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
【０２４１】
更に、上記各ソフトウェア・プログラムは、記録媒体１５０５に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置１５０４を通じて不揮発性記憶装置１５０３に格納されるよう構成されてもよい。
【０２４２】
なお、上記の場合において、上記各装置及びシステムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具（ツール）を利用してハードウェア装置１５００内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【０２４３】
そして、このような場合において、本発明は、そのようなソフトウェア・プログラムを構成するコード、あるいはコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、記録媒体は、ハードウェア装置１５００と独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
【０２４４】
また、上述した各装置及びシステム、あるいは、当該各装置及びシステムの構成要素は、図１５に例示するハードウェア装置１５００を仮想化した仮想化環境と、仮想化環境において実行される各種ソフトウェア・プログラム（コンピュータ・プログラム）とによって構成されてもよい。この場合、図１５に例示するハードウェア装置１５００の構成要素は、仮想化環境における仮想デバイスとして提供される。なお、この場合も、図１５に例示するハードウェア装置１５００を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【０２４５】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、上記したような実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。
【０２４６】
この出願は、２０１７年１月３０日に出願された日本出願特願２０１７−０１３７８３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２４７】
１００  セキュリティ情報分析装置
１０１  情報収集部
１０２  学習部
１０３  分析モデル記憶部
１０４  訓練データ供給部
１０５  情報源
２００  セキュリティ情報評価装置
２０１  評価部
２０２  セキュリティ情報供給部
２０３  評価結果提供部
１３００  セキュリティ情報分析装置
１３０１  セキュリティ情報収集部
１３０２  学習部
１４００  セキュリティ情報評価装置
１４０１  セキュリティ情報収集部
１４０２  評価部
１４０３  評価結果提供部
【図１】
2018139458.tif 000016
【図２】
2018139458.tif 000017
【図３】
2018139458.tif 000018
【図４】
2018139458.tif 000019
【図５】
2018139458.tif 000020
【図６】
2018139458.tif 000021
【図７】
2018139458.tif 000022
【図８Ａ】
2018139458.tif 000023
【図８Ｂ】
2018139458.tif 000024
【図９】
2018139458.tif 000025
【図１０】
2018139458.tif 000026
【図１１】
2018139458.tif 000027
【図１２】
2018139458.tif 000028
【図１３】
2018139458.tif 000029
【図１４】
2018139458.tif 000030
【図１５】
2018139458.tif 000031
【手続補正書】
【提出日】令和1年7月11日(2019.7.11)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項７
【補正方法】変更
【補正の内容】
【請求項７】
あるセキュリティ事象に関する情報を表すセキュリティ情報を提供する情報提供元から前記セキュリティ情報を取得する処理である１以上のセキュリティ情報収集処理について、入力として受けつけた前記セキュリティ情報に応じて重みを算出する分析モデルを作成する処理と、
ある前記セキュリティ事象について予め収集された複数の前記セキュリティ情報を含む複数の訓練データを用いて、ある１つの前記訓練データに含まれる前記セキュリティ情報に応じて、その前記訓練データに含まれる他の前記セキュリティ情報を前記情報提供元から取得することができる前記セキュリティ情報収集処理の重みが大きくなるように、前記分析モデルを学習する処理と、を
コンピュータに実行させるセキュリティ情報分析プログラム。
【国際調査報告】
2018139458.tif 000032
2018139458.tif 000033
2018139458.tif 000034
2018139458.tif 000035