(57)【要約】【課題】脅威情報の悪性度を高い精度で推定すること。【解決手段】悪性度の推定対象の脅威情報が入力されると、前記脅威情報に関連する関連情報と、前記脅威情報とは異なる他の脅威情報とを収集する収集手段と、前記関連情報に基づいて、前記脅威情報の特徴を表す特徴量を生成する特徴量生成手段と、前記関連情報と前記他の脅威情報とに基づいて、前記脅威情報及び前記他の脅威情報のそれぞれをノード、該ノード間の関連をエッジとするグラフを示すグラフ情報を生成するグラフ情報生成手段と、前記グラフ情報により示されるグラフ上で前記脅威情報と前記他の脅威情報の間にグラフ構造が存在する場合、前記脅威情報の特徴量を用いて、グラフ畳み込みニューラルネットワークにより、前記脅威情報の悪性度を推定する推定手段と、を有することを特徴とする。【選択図】図３
2020135471.tif 000002
【特許請求の範囲】
【請求項１】
悪性度の推定対象の脅威情報が入力されると、前記脅威情報に関連する関連情報と、前記脅威情報とは異なる他の脅威情報とを収集する収集手段と、
前記関連情報に基づいて、前記脅威情報の特徴を表す特徴量を生成する特徴量生成手段と、
前記関連情報と前記他の脅威情報とに基づいて、前記脅威情報及び前記他の脅威情報のそれぞれをノード、該ノード間の関連をエッジとするグラフを示すグラフ情報を生成するグラフ情報生成手段と、
前記グラフ情報により示されるグラフ上で前記脅威情報と前記他の脅威情報の間にグラフ構造が存在する場合、前記脅威情報の特徴量を用いて、グラフ畳み込みニューラルネットワークにより、前記脅威情報の悪性度を推定する推定手段と、
を有することを特徴とする推定装置。
【請求項２】
前記収集手段は、
フローエクスポータ又は／及びフローコレクタから収集可能なフロー観測情報と、オープンソースインテリジェンスを提供するサーバ又はＷｅｂサイトから収集可能な公開情報と、ＤＮＳサーバから収集可能な名前解決情報と、ＷＨＯＩＳサーバ又はＲＤＡＰサーバから収集可能な所有者情報とのうちの少なくとも１つ以上の情報を前記関連情報として収集し、
前記特徴量生成手段は、
収集された前記１つ以上の情報に基づいて、前記特徴量を生成する、ことを特徴とする請求項１に記載の推定装置。
【請求項３】
前記推定手段は、
前記グラフ情報により示されるグラフ上で前記脅威情報と前記他の脅威情報の間にグラフ構造が存在しない場合、前記脅威情報の特徴量を用いて、教師あり学習の手法で学習された所定の学習モデルにより、前記脅威情報の悪性度を推定する、ことを特徴とする請求項１又は２に記載の推定装置。
【請求項４】
前記特徴量には、
前記脅威情報に含まれるドメイン名の文字列の長さと、前記脅威情報に含まれるＵＲＬの文字列の長さと、前記脅威情報に含まれるドメイン名中の数字の割合と、前記脅威情報に含まれるＵＲＬ中の数字の割合と、前記脅威情報に含まれるドメイン名中の子音の割合と、前記脅威情報に含まれるＵＲＬ中の子音の割合と、前記脅威情報に含まれるドメイン名に所定の文字列が含まれるか否かを示す情報と、前記脅威情報に含まれるＵＲＬに所定の文字列が含まれるか否かを示す情報と、前記脅威情報に含まれるＩＰアドレスの国別情報と、前記脅威情報に含まれるＩＰアドレス又はドメイン名を名前解決した場合におけるＡレコード数及びＮＳレコード数と、のうちの少なくとも１つ以上が含まれる、ことを特徴とする請求項１乃至３の何れか一項に記載の推定装置。
【請求項５】
悪性度の推定対象の脅威情報が入力されると、前記脅威情報に関連する関連情報と、前記脅威情報とは異なる他の脅威情報とを収集する収集手順と、
前記関連情報に基づいて、前記脅威情報の特徴を表す特徴量を生成する特徴量生成手順と、
前記関連情報と前記他の脅威情報とに基づいて、前記脅威情報及び前記他の脅威情報のそれぞれをノード、該ノード間の関連をエッジとするグラフを示すグラフ情報を生成するグラフ情報生成手順と、
前記グラフ情報により示されるグラフ上で前記脅威情報と前記他の脅威情報の間にグラフ構造が存在する場合、前記脅威情報の特徴量を用いて、グラフ畳み込みニューラルネットワークにより、前記脅威情報の悪性度を推定する推定手順と、
をコンピュータが実行することを特徴とする推定方法。
【請求項６】
コンピュータを、請求項１乃至４の何れか一項に記載の推定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、推定方法及びプログラムに関する。
【背景技術】
【０００２】
近年、脅威情報（ＣＴＩ：Cyber Threat Intelligence）を活用したセキュリティオペレーションが行われている。脅威情報とは、サイバー攻撃や脅威に関連する攻撃者、攻撃目的、攻撃手法等に関する情報を収集・蓄積し、その分析を行うことで、攻撃検知や対処等のセキュリティオペレーションに活用可能な情報のことである。脅威情報としては、例えば、攻撃者が利用したＩＰ（Internet Protocol）アドレスやドメイン名、ＵＲＬ（Uniform Resource Locator）等のＩｏＣ（Indicator of Compromise）情報、攻撃への対処方法（Course of Action）に関する情報、マルウェアのハッシュ値等が挙げられる。
【０００３】
このような脅威情報の指標の１つとして、悪性度（Maliciousness）が知られており、脅威情報に対する優先度の決定や意思決定の判断等に用いられている。悪性度とは、ドメイン名やＵＲＬ等の脅威情報がサイバー攻撃に使用されている可能性の度合いを示す指標であり、例えば、当該脅威情報が悪性である確率で表される。このため、悪性度が正確である程、迅速かつ正確なセキュリティオペレーション等が実現可能となる。なお、脅威情報の情報源としては、例えば、セキュリティ企業の脅威情報提供サービス、攻撃通信を検知する攻撃検知装置からのアラート情報、オープンソースインテリジェンス（ＯＳＩＮＴ：open-source intelligence）等が挙げられる。
【０００４】
脅威情報の悪性度を算出する従来技術として、脅威情報を「ノード」、互いに関連する脅威情報間の接続を「エッジ」としたグラフを用いて、グラフ分析手法によって悪性度を推定する技術が知られている。例えば、ページランク手法を用いて悪性度を計算する技術（非特許文献１）やグラフ伝播手法によって悪性度を推定する技術（非特許文献２）が知られている。また、２部グラフ上での確率伝搬法を用いて、脅威スコアを算出する技術も知られている（非特許文献３）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Boukhtouta, Amine, et al. "Graph-theoretic characterization of cyber-threat infrastructures." Digital Investigation 14 (2015): S3-S15
【非特許文献２】WANG, Xin, et al. "Poster: An Approach to Verifying Threat Intelligence Based on Graph Propagation." IEEE S&P 2018 Poster
【非特許文献３】風戸雄太, 福田健介, 菅原俊治. "DNS グラフ上でのグラフ分析と脅威スコア伝播による悪性ドメイン特定." コンピュータ ソフトウェア 33.3 (2016): 3_16-3_2
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、脅威情報自体の特徴を利用できないため、悪性度の推定精度が高くない場合があった。
【０００７】
本発明は、上記の点に鑑みてなされたもので、脅威情報の悪性度を高い精度で推定することも目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の実施の形態は、悪性度の推定対象の脅威情報が入力されると、前記脅威情報に関連する関連情報と、前記脅威情報とは異なる他の脅威情報とを収集する収集手段と、前記関連情報に基づいて、前記脅威情報の特徴を表す特徴量を生成する特徴量生成手段と、前記関連情報と前記他の脅威情報とに基づいて、前記脅威情報及び前記他の脅威情報のそれぞれをノード、該ノード間の関連をエッジとするグラフを示すグラフ情報を生成するグラフ情報生成手段と、前記グラフ情報により示されるグラフ上で前記脅威情報と前記他の脅威情報の間にグラフ構造が存在する場合、前記脅威情報の特徴量を用いて、グラフ畳み込みニューラルネットワークにより、前記脅威情報の悪性度を推定する推定手段と、を有することを特徴とする。
【発明の効果】
【０００９】
脅威情報の悪性度を高い精度で推定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における悪性度推定システムの全体構成の一例を示す図である。
【図２】本発明の実施の形態における悪性度推定装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態における悪性度推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、脅威情報の特徴を表す特徴量と、悪性度の推定対象の脅威情報（以降、「対象脅威情報」とも表す。）と他の脅威情報との関連性（グラフ構造）とを用いて、グラフ畳み込みニューラルネットワーク（ＧＣＮ：Graph Convolutional Networks又はGraph Convolutional Neural Networks）によって対象脅威情報の悪性度を推定する。また、本発明の実施の形態では、対象脅威情報が他の脅威情報と関連性がない場合（すなわち、対象脅威情報がグラフ上で単独であり、他の脅威情報との間でグラフ構造を有しない場合）には、特徴量を用いて、教師あり学習で学習した所定のモデルによって対象脅威情報の悪性度を推定する。
【００１２】
そこで、以降の本発明の実施の形態では、各脅威情報の特徴を用いて、対象脅威情報が他の脅威情報との間でグラフ構造を有する場合にはグラフ畳み込みニューラルネットワークによって悪性度を推定し、対象脅威情報が他の脅威情報との間でグラフ構造を有しない場合には教師あり学習で学習した所定のモデルによって悪性度を推定する悪性度推定システム１について説明する。
【００１３】
＜悪性度推定システム１の全体構成＞
まず、本発明の実施の形態における悪性度推定システム１の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における悪性度推定システム１の全体構成の一例を示す図である。
【００１４】
図１に示すように、本発明の実施の形態における悪性度推定システム１には、悪性度推定装置１０と、各種の外部装置２０とが含まれる。悪性度推定装置１０と、各種の外部装置２０とは、任意のネットワーク（例えば、インターネットや社内ＬＡＮ（Local Area Network）等）を介して通信可能に接続される。ここで、外部装置２０としては、例えば、脅威情報管理装置２１、フロー観測情報管理装置２２、攻撃検知装置２３、ＯＳＩＮＴサーバ２４、ＤＮＳサーバ２５、及びＷＨＯＩＳ／ＲＤＡＰサーバ２６等が挙げられる。
【００１５】
悪性度推定装置１０は、対象脅威情報が入力されると、対象脅威情報に関連する情報（以降、「関連情報」とも表す。）や他の脅威情報等を収集した上で、これら対象脅威情報や関連情報、他の脅威情報等を用いて、対象脅威情報の悪性度を推定する。このとき、悪性度推定装置１０は、対象脅威情報の特徴量を生成すると共に、対象脅威情報が他の脅威情報とグラフ構造を有するか否かを判定した上で、この判定結果に応じて、グラフ畳み込みニューラルネットワーク又は教師あり学習で学習した所定のモデルのいずれかによって対象脅威情報の悪性度を推定する。なお、他の脅威情報とは、対象脅威情報以外の脅威情報のことを意味する。
【００１６】
脅威情報管理装置２１は、過去に登録、共有、分析、又は利用（以降、登録、共有、分析、利用をまとめて「利用等」とも表す。）された脅威情報を蓄積・管理するＤＢ（データベース）である。脅威情報管理装置２１には、脅威情報に加えて、この脅威情報の悪性度（過去に推定又は設定された悪性度）と特徴量（過去に生成された特徴量）も蓄積・管理されているものとする。
【００１７】
フロー観測情報管理装置２２は、ネットワーク上に存在するフローエクスポータやフローコレクタ等から収集したフロー観測情報を格納・管理するＤＢである。
【００１８】
攻撃検知装置２３は、ファイアウォールやＩＤＳ（Intrusion Detection System）／ＩＰＳ（Intrusion Prevention System）等のサイバー攻撃を検知・遮断するためのソフトウェア又はネットワーク機器である。
【００１９】
ＯＳＩＮＴサーバ２４は、オープンソースインテリジェンスの公開情報を提供するサーバである。ＯＳＩＮＴサーバ２４は、例えばＷｅｂページ等の形態で、オープンソースインテリジェンスの公開情報を提供する。
【００２０】
ＤＮＳサーバ２５は、ドメイン名とＩＰアドレスとの間の名前解決（又は「アドレス解決」とも称される。）を行うサーバである。
【００２１】
ＷＨＯＩＳ／ＲＤＡＰサーバ２６は、ＩＰアドレスやドメイン名の所有者情報を提供するサーバである。
【００２２】
ここで、図１に示すように、悪性度推定装置１０は、機能部として、入力部１０１と、情報収集部１０２と、特徴量生成部１０３と、グラフ情報生成部１０４と、悪性度計算部１０５と、出力部１０６とを有する。
【００２３】
入力部１０１は、対象脅威情報を入力する。なお、入力部１０１は、予め決められた任意の入力元から対象脅威情報を入力すればよい。例えば、入力部１０１は、メモリ等の記憶装置に格納されている対象脅威情報を入力してもよいし、ネットワークを介して接続された他の装置から受信した対象脅威情報を入力してもよい。
【００２４】
情報収集部１０２は、関連情報や他の脅威情報を収集する。ここで、情報収集部１０２には、ＮＷ情報収集部１１１と、ＯＳＩＮＴ収集部１１２と、脅威情報収集部１１３とが含まれる。
【００２５】
ＮＷ情報収集部１１１は、ネットワークで観測可能な関連情報を収集する。例えば、ＮＷ情報収集部１１１は、フロー観測情報管理装置２２に問い合わせて、対象脅威情報に関連するフロー観測情報を収集する。また、例えば、ＮＷ情報収集部１１１は、ＤＮＳサーバ２５に問い合わせて、対象脅威情報に含まれるドメイン名やＩＰアドレスを名前解決した情報（名前解決結果情報）を収集する。同様に、例えば、ＮＷ情報収集部１１１は、ＷＨＯＩＳ／ＲＤＡＰサーバ２６に問い合わせて、対象脅威情報に含まれるドメイン名やＩＰアドレスの所有者情報を収集する。
【００２６】
なお、例えば、ＮＷ情報収集部１１１は、攻撃検知装置２３に問い合わせて、対象脅威情報に関連するアラート情報を関連情報として収集してもよい。アラート情報も関連情報として収集されることで、例えば、各脅威情報（対象脅威情報及び他の脅威情報）の関連を表すグラフ構造からグラフ情報を生成する際に利用したり、推定された悪性度（つまり、対象脅威情報の悪性度）の根拠情報として利用したりすることが可能となる。
【００２７】
ＯＳＩＮＴ収集部１１２は、オープンソースインテリジェンスの公開情報を収集する。すなわち、ＯＳＩＮＴ収集部１１２は、ＯＳＩＮＴサーバ２４に問い合わせて、対象脅威情報に関連する公開情報を収集する。なお、ＯＳＩＮＴ収集部１１２によって収集される公開情報としては、例えば、ＡＳ（Autonomous System）番号結果を示す情報、ＧｅｏＩＰの検索結果を示す情報、レピュテーションサービスから得られる情報等が挙げられる。
【００２８】
脅威情報収集部１１３は、他の脅威情報を収集する。すなわち、脅威情報収集部１１３は、脅威情報管理装置２１に問い合わせて、過去に利用等された他の脅威情報を収集する。なお、他の脅威情報の関連情報も脅威情報管理装置２１に蓄積・管理されていてもよく、この場合には、脅威情報収集部１１３は、他の脅威情報に加えて、他の脅威情報の関連情報を収集してもよい。
【００２９】
特徴量生成部１０３は、対象脅威情報に含まれるドメイン名やＵＲＬ等と、ＮＷ情報収集部１１１やＯＳＩＮＴ収集部１１２により収集された関連情報とを用いて、対象脅威情報の特徴量を生成する。
【００３０】
グラフ情報生成部１０４は、対象脅威情報と、情報収集部１０２により収集された関連情報及び他の脅威情報とを用いて、各脅威情報（対象脅威情報及び他の脅威情報）の関連を表すグラフ構造からグラフ情報（ノード情報及びグラフ情報）を生成する。
【００３１】
悪性度計算部１０５は、グラフ情報生成部１０４により生成されたグラフ情報を用いて、対象脅威情報が他の脅威情報との間でグラフ構造を有するか否かを判定する。そして、この判定結果に応じて、悪性度計算部１０５は、各脅威情報（対象脅威情報及び他の脅威情報）の特徴量を用いて、グラフ畳み込みニューラルネットワーク又は教師あり学習で学習した所定のモデルのいずれかによって対象脅威情報の悪性度を推定する。ここで、悪性度計算部１０５には、前処理部１２１と、グラフ畳み込み計算部１２２と、教師あり学習計算部１２３とが含まれる。
【００３２】
前処理部１２１は、前処理として、各脅威情報の特徴量のそれぞれを示すデータ（以降、「特徴量データ」とも表す。）の集合を、例えば、教師用集合と、検証用集合と、テスト用集合とに分割する。ここで、教師用集合とは、グラフ畳み込みニューラルネットワークや教師あり学習で学習するモデルの学習に用いられる特徴量データの集合である。また、検証用集合とは、当該学習結果の検証に用いられる特徴量データの集合である。一方で、テスト用集合とは、悪性度の推定に用いられる特徴量データの集合であり、対象脅威情報の特徴量データはテスト用集合に含まれる。
【００３３】
そして、前処理部１２１は、教師用集合から複数の教師データを作成すると共に、検証用集合から複数の検証用データを作成する。また、前処理部１２１は、テスト用集合からテスト用データを作成する。ここで、教師データ及び検証用データとは、グラフ畳み込みニューラルネットワークや教師あり学習で学習するモデルに入力される入力データに対して、悪性度を示すラベルを付与したデータである。このとき、教師データ及び検証用データに含まれるラベルは、教師データ及び検証用データをそれぞれ構成する特徴量データの悪性度から算出されればよい。一方で、テスト用データとは、グラフ畳み込みニューラルネットワークや教師あり学習で学習するモデルに入力される入力データのことである（つまり、テスト用データにはラベルは付与されない）。なお、他の脅威情報の特徴量データと、教師データ及び検証用データにラベルを付与するための悪性度とは、脅威情報管理装置２１に蓄積・管理されているものを用いる。
【００３４】
グラフ畳み込み計算部１２２は、前処理部１２１により作成された入力データ（教師データ、検証用データ及びテスト用データ）と、グラフ情報生成部１０４により生成されたグラフ情報とを用いて、グラフ畳み込みニューラルネットワークによって対象脅威情報の悪性度を計算（推定）する。
【００３５】
教師あり学習計算部１２３は、前処理部１２１により作成された入力データ（教師データ、検証用データ及びテスト用データ）を用いて、教師あり学習の手法によって対象脅威情報の悪性度を計算（推定）する。
【００３６】
出力部１０６は、対象脅威情報と、悪性度計算部１０５により計算（推定）された悪性度とを出力する。なお、出力部１０６は、予め決められた任意の出力先に対象脅威情報と悪性度とを出力すればよい。例えば、出力部１０６は、ディスプレイ等を出力先としてもよいし、メモリ等の記憶装置を出力先としてもよいし、ネットワークを介して接続される他の装置（例えば、脅威情報管理装置２１等）を出力先としてもよい。
【００３７】
＜悪性度推定装置１０のハードウェア構成＞
次に、本発明の実施の形態における悪性度推定装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における悪性度推定装置１０のハードウェア構成の一例を示す図である。
【００３８】
図２に示すように、本発明の実施の形態における悪性度推定装置１０は、ハードウェアとして、入力装置２０１と、表示装置２０２と、外部Ｉ／Ｆ２０３と、ＲＡＭ（Random Access Memory）２０４と、ＲＯＭ（Read Only Memory）２０５と、プロセッサ２０６と、通信Ｉ／Ｆ２０７と、補助記憶装置２０８とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【００３９】
入力装置２０１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置２０２は、例えばディスプレイ等であり、悪性度推定装置１０の処理結果（例えば、推定された悪性度等）を表示する。なお、悪性度推定装置１０は、入力装置２０１及び表示装置２０２の少なくとも一方を有していなくてもよい。
【００４０】
外部Ｉ／Ｆ２０３は、記録媒体２０３ａ等の外部記録媒体とのインタフェースである。悪性度推定装置１０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込み等を行うことができる。記録媒体２０３ａには、悪性度推定装置１０が有する各機能部（例えば、入力部１０１、情報収集部１０２、特徴量生成部１０３、グラフ情報生成部１０４、悪性度計算部１０５及び出力部１０６等）を実現する１以上のプログラム等が記録されていてもよい。
【００４１】
記録媒体２０３ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【００４２】
ＲＡＭ２０４は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ２０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ２０５には、例えば、ＯＳ（Operating System）に関する設定情報や通信ネットワークに関する設定情報等が格納されている。
【００４３】
プロセッサ２０６は、例えばＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等であり、ＲＯＭ２０５や補助記憶装置２０８等からプログラムやデータをＲＡＭ２０４上に読み出して処理を実行する演算装置である。悪性度推定装置１０が有する各機能部は、ＲＯＭ２０５や補助記憶装置２０８等に格納されている１以上のプログラムをＲＡＭ２０４上に読み出してプロセッサ２０６が処理を実行することで実現される。
【００４４】
通信Ｉ／Ｆ２０７は、悪性度推定装置１０を通信ネットワークに接続するためのインタフェースである。悪性度推定装置１０が有する各機能部を実現する１以上のプログラムは、通信Ｉ／Ｆ２０７を介して、所定のサーバ等から取得（ダウンロード）されてもよい。
【００４５】
補助記憶装置２０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置２０８に格納されているプログラムやデータには、例えば、ＯＳ，当該ＯＳ上で各種機能を実現するアプリケーションプログラム、悪性度推定装置１０が有する各機能部を実現する１以上のプログラム等がある。
【００４６】
本発明の実施の形態における悪性度推定装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図２に示す例では、本発明の実施の形態における悪性度推定装置１０が１台の装置（コンピュータ）で実現されている場合を示したが、これに限られない。本発明の実施の形態における悪性度推定装置１０は、複数台の装置（コンピュータ）で実現されていてもよい。また、１台の装置（コンピュータ）には、複数のプロセッサ２０６や複数のメモリ（ＲＡＭ２０４やＲＯＭ２０５、補助記憶装置２０８等）が含まれていてもよい。
【００４７】
＜悪性度推定処理＞
次に、対象脅威情報の悪性度を推定する処理（悪性度推定処理）について、図３を参照しながら説明する。図３は、本発明の実施の形態における悪性度推定処理の一例を示すフローチャートである。
【００４８】
ステップＳ１０１：まず、入力部１０１は、対象脅威情報を入力する。
【００４９】
ステップＳ１０２：次に、情報収集部１０２は、関連情報と他の脅威情報とを収集する。すなわち、情報収集部１０２は、ＮＷ情報収集部１１１によってネットワークで観測可能な関連情報をフロー観測情報管理装置２２や攻撃検知装置２３、ＤＮＳサーバ２５、ＷＨＯＩＳ／ＲＤＡＰサーバ２６等から収集すると共に、ＯＳＩＮＴ収集部１１２によってオープンソースインテリジェンスの公開情報を関連情報としてＯＳＩＮＴサーバ２７から収集する。また、情報収集部１０２は、脅威情報収集部１１３によって他の脅威情報を脅威情報管理装置２１から収集する。
【００５０】
なお、上記のステップＳ１０２で収集された関連情報及び他の脅威情報は、例えば、悪性度推定装置１０の補助記憶装置２０８等に格納される。
【００５１】
ステップＳ１０３：次に、特徴量生成部１０３は、対象脅威情報に含まれるドメイン名やＵＲＬ等と、ＮＷ情報収集部１１１やＯＳＩＮＴ収集部１１２により収集された関連情報とを用いて、対象脅威情報の特徴量を生成する。ここで、特徴量は、例えば、脅威情報の様々な特徴を数値化した値を各要素するベクトルで表される。
【００５２】
脅威情報の特徴としては、一例として、以下に示すものが挙げられる。
【００５３】
・脅威情報に含まれるドメイン名やＵＲＬの文字列の長さ
・脅威情報に含まれるドメイン名やＵＲＬ中の数字の割合
・脅威情報に含まれるドメイン名やＵＲＬ中の子音の割合
・脅威情報に含まれるドメイン名やＵＲＬに所定の特徴的な文字列（例えば、文字列「exe」等）が含まれるか否か
・名前解決結果情報に含まれるＡレコード数やＮＳレコード数
・脅威情報に含まれるＩＰアドレスの国別情報
これらの各特徴を数値化するにあたっては、関連情報が用いられる場合もある。例えば、脅威情報に含まれるＩＰアドレスの国別情報を数値化する際には、ＧｅｏＩＰの検索結果を示す情報等が用いられる。
【００５４】
これにより、例えば、対象脅威情報の各特徴を数値化した値をｘ１，ｘ２，・・・，ｘＮとすれば、これらｘ１，ｘ２，・・・，ｘＮを各要素とするベクトル［ｘ１，ｘ２，・・・，ｘＮ］が対象脅威情報の特徴量として生成される。ここで、Ｎは、予め決められた値であり、脅威情報の特徴数を表す。なお、例えば、ドメイン名やＵＲＬに所定の特徴的な文字列が含まれるか否かを数値化する場合等には、Ｏｎｅ−ｈｏｔ  Ｅｎｃｏｄｅｒ等が用いられればよい。
【００５５】
なお、上記の脅威情報の特徴は一例であって、上記に挙げた特徴以外にも種々の特徴が用いられてもよい。
【００５６】
ステップＳ１０４：次に、グラフ情報生成部１０４は、対象脅威情報と、上記のステップＳ１０２で収集された関連情報及び他の脅威情報とを用いて、各脅威情報（対象脅威情報及び他の脅威情報）の関連を表すグラフ構造からグラフ情報を生成する。ここで、グラフ情報生成部１０４は、各脅威情報（対象脅威情報及び他の脅威情報）をノード、脅威情報（ノード）間の関連をエッジとして、グラフ情報を生成する。なお、他の脅威情報の関連情報は、例えば、上記のステップＳ１０２で脅威情報管理装置２１から収集されてもよいし、本ステップで脅威情報管理装置２１に蓄積・管理されている関連情報を参照又は収集されてもよい。
【００５７】
関連がある脅威情報としては、一例として、以下に示すものが挙げられる。
【００５８】
・同一ドメイン名の正引き結果として得られるＩＰアドレスが含まれる脅威情報同士
例えば、或るドメイン名の正引き結果としてＩＰアドレスＡとＩＰアドレスＢとが得られる場合、ＩＰアドレスＡが含まれる脅威情報Ａと、ＩＰアドレスＢが含まれる脅威情報Ｂとは関連がある脅威情報となる。
【００５９】
・同一ＩＰアドレスを共有しているドメイン名が含まれる脅威情報同士
例えば、ドメイン名Ｃとドメイン名Ｄとが同一のＩＰアドレスを共有している場合、ドメイン名Ｃが含まれる脅威情報Ｃと、ドメイン名Ｄが含まれる脅威情報Ｄとは関連がある脅威情報となる。
【００６０】
・ＷＨＯＩＳ又はＲＤＡＰの問い合わせ結果として得られる企業名やレジスタ名が同じであるドメイン名が含まれる脅威情報同士
例えば、ドメイン名Ｅ及びドメイン名ＦのＷＨＯＩＳ又はＲＤＡＰの問い合わせ結果が同一企業名である場合、ドメイン名Ｅが含まれる脅威情報Ｅと、ドメイン名Ｆが含まれる脅威情報Ｆとは関連がある脅威情報となる。
【００６１】
これにより、各脅威情報をノードとし、関連がある脅威情報のノード間にエッジを有するグラフ構造を得ることができ、グラフ情報生成部１０４は、このグラフ構造を示すグラフ情報を生成することができる。グラフ情報としては、例えば、隣接行列（adjacency matrix）やグラフラプラシアン等が挙げられる。
【００６２】
ステップＳ１０５：次に、悪性度計算部１０５は、上記のステップＳ１０４で作成されたグラフ情報を用いて、対象脅威情報が他の脅威情報との間でグラフ構造を有するか否かを判定する。すなわち、悪性度計算部１０５は、対象脅威情報を示すノードが、他のノード（つまり、他の脅威情報を示すノード）とエッジで接続されているか否かを判定する。
【００６３】
ステップＳ１０５で対象脅威情報が他の脅威情報との間でグラフ構造を有すると判定された場合、悪性度計算部１０５は、ステップＳ１０６に進む。一方で、対象脅威情報が他の脅威情報との間でグラフ構造を有しないと判定された場合（つまり、対象脅威情報を示すノードがグラフ上で単独である場合）、悪性度計算部１０５は、ステップＳ１０８に進む。
【００６４】
ステップＳ１０６：上記のステップＳ１０５で対象脅威情報が他の脅威情報との間でグラフ構造を有すると判定された場合、悪性度計算部１０５は、前処理部１２１により、各脅威情報の特徴量データを、教師用集合と、検証用集合と、テスト用集合とに分割する。ここで、前処理部１２１は、例えば、教師用集合に含まれる特徴量データ数と、検証用集合に含まれる特徴量データ数と、テスト用集合に含まれる特徴量データ数とが、それぞれ予め設定された割合（全特徴量データ数に対する割合）となるように、ランダムに分割すればよい。なお、上述したように、テスト用集合には、対象脅威情報の特徴量データ（すなわち、上記のステップＳ１０４で生成された特徴量を示すデータ）が含まれる。
【００６５】
そして、前処理部１２１は、教師用集合から複数の教師データを作成すると共に、検証用集合から複数の検証用データを作成する。また、前処理部１２１は、テスト用集合からテスト用データを作成する。なお、或る１つの教師データに付与されるラベルの悪性度は、例えば、この教師データを構成する特徴量データの悪性度の平均等とすればよい。検証用データについても同様である。
【００６６】
ステップＳ１０７：次に、悪性度計算部１０５は、グラフ畳み込み計算部１２２により、上記のステップＳ１０６で作成された入力データ（教師データ、検証用データ及びテスト用データ）と、上記のステップＳ１０４で生成されたグラフ情報とを用いて、グラフ畳み込みニューラルネットワークによって対象脅威情報の悪性度を計算（推定）する。グラフ畳み込みニューラルネットワークでは、ｔをグラフ畳みニューラルネットワークの層を示すインデックス、ｔ＝０を入力層、ｔ＝Ｔ−１を出力層として、ｔ＝０，・・・，Ｔ−１に対して、以下の式（１）により悪性度を推定する。
【００６７】
Ｈ（ｔ＋１）＝σ（ＡＨ（ｔ）Ｗ（ｔ））  ・・・（１）
ここで、Ａはグラフ情報、Ｗ（ｔ）はｔ層目のパラメータ（重み）、σは活性化関数である。また、Ｘ＝Ｈ（０）は入力データであり、所定の個数の特徴量データで構成される行列（例えば、所定の個数をＭ、特徴量データがＮ次の横ベクトルとすれば、Ｍ×Ｎ行列）である。なお、活性化関数σとしては、例えば、出力層以外ではＲｅＬＵ等を用いて、出力層では悪性度を出力するｓｏｆｔｍａｘ関数（つまり、悪性度をｐとして、ｐと１−ｐとを出力するｓｏｆｔｍａｘ関数）を用いる。
【００６８】
このとき、グラフ畳み込み計算部１２２は、以下の（１−１）〜（１−３）により悪性度を推定する。
【００６９】
（１−１）まず、グラフ畳み込み計算部１２２は、複数の教師データのそれぞれを入力データとして、グラフ畳み込みニューラルネットワークの各パラメータ（重み）Ｗ（ｔ）を更新する。すなわち、悪性度計算部１０５は、教師データに付与されたラベルと、当該教師データを入力データとした場合のグラフ畳み込みニューラルネットワークの出力結果とを用いて、所定の誤差関数（誤差関数は「目的関数」や「損失関数」等と称されてもよい。）が最小となるように、既知の最適化手法により各パラメータＷ（ｔ）を更新する。
【００７０】
（１−２）次に、グラフ畳み込み計算部１２２は、複数の検証用データのそれぞれを入力データとして、グラフ畳み込みニューラルネットワークの推定精度を検証する。すなわち、悪性度計算部１０５は、検証用データに付与されたラベルと、当該検証用データを入力データとした場合のグラフ畳み込みニューラルネットワークの出力結果とを用いて、既知の検証手法によりグラフ畳み込みニューラルネットワークの推定精度を検証する。なお、例えば、この検証結果、グラフ畳み込みニューラルネットワークの推定精度が十分でない場合には、学習用集合及び検証用集合の割合を変更して、上記のステップＳ１０６から再度実行することが考えられる。
【００７１】
（１−３）最後に、グラフ畳み込み計算部１２２は、テスト用データを入力データとして、グラフ畳み込みニューラルネットワークの出力結果を得る。この出力結果が、対象脅威情報の悪性度の推定結果である。
【００７２】
なお、上記の（１−２）は必ずしも行われなくてもよい。この場合は、上記のステップＳ１０６で検証用データが作成されなくてもよい。
【００７３】
ステップＳ１０８：上記のステップＳ１０５で対象脅威情報が他の脅威情報との間でグラフ構造を有しないと判定された場合、悪性度計算部１０５は、上記のステップＳ１０６と同様に、前処理部１２１により、各脅威情報の特徴量データを、教師用集合と、検証用集合と、テスト用集合とに分割し、複数の教師データと、複数の検証用データと、テスト用データとを作成する。
【００７４】
ただし、例えば、教師用集合に含まれる特徴量データ数と、検証用集合に含まれる特徴量データ数と、テスト用集合に含まれる特徴量データ数との割合が、上記のステップＳ１０５と異なっていてもよい（すなわち、上記のステップＳ１０５と本ステップとで、異なる値が割合として設定されていてもよい）。例えば、教師あり学習の手法で用いるモデルによっては各脅威情報の特徴量データそのものが入力データとなる。このような場合、テスト用集合に含まれる特徴量データ数が「１」となるように割合が設定される。
【００７５】
ステップＳ１０９：次に、悪性度計算部１０５は、教師あり学習計算部１２３により、上記のステップＳ１０８で作成された入力データ（教師データ、検証用データ及びテスト用データ）を用いて、教師あり学習の手法によって対象脅威情報の悪性度を計算（推定）する。
【００７６】
ここで、教師あり学習の手法に用いるモデル（学習モデル）としては任意の学習モデルを用いることができる。例えば、学習モデルとしては、サポートベクターマシンや決定木、アンサンブル学習（バギング、ブースティング）に適用される学習モデル等が挙げられる。
【００７７】
このとき、教師あり学習計算部１２３は、以下の（２−１）〜（２−３）により悪性度を推定する。
【００７８】
（２−１）まず、教師あり学習計算部１２３は、複数の教師データのそれぞれを入力データとして、教師あり学習の手法により学習モデルを学習する。
【００７９】
（２−２）次に、教師あり学習計算部１２３は、複数の検証用データのそれぞれを入力データとして、既知の検証手法により学習モデルの推定精度を検証する。なお、例えば、この検証結果、学習モデルの推定精度が十分でない場合には、学習用集合及び検証用集合の割合を変更して、上記のステップＳ１０８から再度実行することが考えられる。
【００８０】
（２−３）最後に、教師あり学習計算部１２３は、テスト用データを入力データとして、学習モデルの出力結果を得る。この出力結果が、対象脅威情報の悪性度の推定結果である。
【００８１】
なお、上記の（２−２）は必ずしも行われなくてもよい。この場合は、上記のステップＳ１０８で検証用データが作成されなくてもよい。
【００８２】
ステップＳ１１０：ステップＳ１０７又はステップＳ１０９に続いて、出力部１０６は、対象脅威情報と、上記のステップＳ１０７又は上記のステップＳ１０９で推定された悪性度とを出力する。なお、例えば、上記のステップＳ１０７又は上記のステップＳ１０９で推定された悪性度が所定の閾値を超えている場合にのみ、出力部１０６は、本ステップを実行するようにしてよい。
【００８３】
また、例えば、上記のステップＳ１０７又は上記のステップＳ１０９で推定された悪性度が、予め設定された所定の閾値を超えている場合には、出力部１０６は、セキュリティ運用者の端末等に所定の通知を送信してもよい。
【００８４】
更に、出力部１０６は、対象脅威情報及び悪性度に加えて、例えば、対象脅威情報を示すノードを含むグラフや対象脅威情報の特徴量等を出力してもよい。このとき、出力部１０６は、脅威情報を所定の形式（例えば、ＳＴＩＸ（Structured Threat Information Expression）形式等の標準記述形式）で出力してもよい。
【００８５】
＜まとめ＞
以上のように、本発明の実施の形態における悪性度推定装置１０は、様々な関連情報や脅威情報を収集した上で、対象脅威情報が他の脅威情報との間でグラフ構造を有するか否かを判定し、この判定結果に応じて、グラフ畳み込みニューラルネットワーク又は教師あり学習で学習した所定のモデルと、各脅威情報の特徴量とを用いて、対象脅威情報の悪性度を推定する。これにより、対象脅威情報が他の脅威情報との間でグラフ構造を有する場合には、対象脅威情報の特徴と、グラフ構造とを利用して、極めて高い精度で悪性度を推定することが可能となる。一方で、対象脅威情報が他の脅威情報との間でグラフ構造を有しない場合であっても、対象脅威情報の特徴を利用して、高い精度で悪性度を推定することが可能となる。
【００８６】
このため、本発明の実施の形態における悪性度推定装置１０を用いることで、より早期に、かつ、より高い精度で様々なサイバー攻撃を検知及び対処可能となる。また、多数の脅威情報の分析・選別に要する運用者の負担軽減や誤検知の削減による効率的なセキュリティオペレーションも可能となる。
【００８７】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８８】
１        悪性度推定システム
１０      悪性度推定装置
２０      外部装置
２１      脅威情報管理装置
２２      フロー観測情報管理装置
２３      攻撃検知装置
２４      ＯＳＩＮＴサーバ
２５      ＤＮＳサーバ
２６      ＷＨＯＩＳ／ＲＤＡＰサーバ
１０１    入力部
１０２    情報収集部
１０３    特徴量生成部
１０４    グラフ情報生成部
１０５    悪性度計算部
１０６    出力部
１１１    ＮＷ情報収集部
１１２    ＯＳＩＮＴ収集部
１１３    脅威情報収集部
１２１    前処理部
１２２    グラフ畳み込み計算部
１２３    教師あり学習計算部
【図１】
2020135471.tif 000003
【図２】
2020135471.tif 000004
【図３】
2020135471.tif 000005