(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-05
(45)【発行日】2022-12-13
(54)【発明の名称】セキュリティ情報分析装置、システム、方法およびプログラム
(51)【国際特許分類】
G06F 16/951 20190101AFI20221206BHJP
G06F 21/57 20130101ALI20221206BHJP
G06F 21/55 20130101ALI20221206BHJP
【FI】
G06F16/951
G06F21/57 370
G06F21/55
(21)【出願番号】P 2020567331
(86)(22)【出願日】2019-01-25
(86)【国際出願番号】 JP2019002448
(87)【国際公開番号】W WO2020152845
(87)【国際公開日】2020-07-30
【審査請求日】2021-07-06
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】川北 将
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】国際公開第2018/139458(WO,A1)
【文献】国際公開第2018/211827(WO,A1)
【文献】国際公開第2017/221858(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/57
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御手段と、
得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報を記憶する簡約化情報記憶手段とを備え、
前記制御手段は、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が前記簡約化情報で定義された組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更する
ことを特徴とするセキュリティ情報分析装置。
【請求項2】
入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成する学習部を備え、
前記学習部は、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習する
請求項1記載のセキュリティ情報分析装置。
【請求項3】
制御手段は、探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが経路に含まれている場合、当該組合せを経路から削除する
請求項1または請求項2記載のセキュリティ情報分析装置。
【請求項4】
制御手段は、情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せが経路に含まれている場合、当該第二の組合せを前記第一の組合せに置換する
請求項1から請求項3のうちのいずれか1項に記載のセキュリティ情報分析装置。
【請求項5】
制御手段は、可換な探索手段として定義されている組合せが経路に含まれている場合、当該組合せの部分を辞書順にソートする
請求項1から請求項4のうちのいずれか1項に記載のセキュリティ情報分析装置。
【請求項6】
制御手段は、経路に含まれる重複した探索手段の組合せの一方を削除する
請求項1から請求項5のうちのいずれか1項に記載のセキュリティ情報分析装置。
【請求項7】
制御手段は、可換な探索手段として定義されている組合せが経路に含まれている場合、当該組合せの部分を辞書順にソートし、ソートされた経路に探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが含まれている場合、当該組合せを経路から削除し、前記組合せが削除された経路に情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せが含まれている場合、当該第二の組合せを前記第一の組合せに置換し、置換後の経路に含まれる重複した探索手段の組合せの一方を削除する
請求項1から請求項6のうちのいずれか1項に記載のセキュリティ情報分析装置。
【請求項8】
請求項1から請求項7のうちのいずれか1項に記載のセキュリティ
情報分析装置と、
セキュリティ情報を分析モデルに適用して算出された重みに応じて探索手段を選択する処理、および、選択された探索手段を用いて他のセキュリティ情報を取得する処理を繰り返す評価手段と、
取得されたセキュリティ情報に基づいて経路を生成する評価結果提供手段とを備えた
ことを特徴とするセキュリティ情報分析システム。
【請求項9】
コンピュータが、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、
前記コンピュータが、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返し、
前記コンピュータが、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された当該組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更する
ことを特徴とするセキュリティ情報分析方法。
【請求項10】
コンピュータが、入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成し、
前記コンピュータが、前記分析モデルの作成において、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習する
請求項9記載のセキュリティ情報分析方法。
【請求項11】
コンピュータに、
入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御処理を実行させ、
前記制御処理で、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された当該組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更させる
ためのセキュリティ情報分析プログラム。
【請求項12】
コンピュータに、
入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成する学習処理を実行させ、
前記学習処理で、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習させる
請求項11記載のセキュリティ情報分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、あるセキュリティ事象に関する有用な情報を分析するセキュリティ情報分析装置、セキュリティ情報分析システム、セキュリティ情報分析方法およびセキュリティ情報分析プログラムに関する。
【背景技術】
【0002】
情報処理装置(コンピュータ等)や産業機械装置(IoT(Internet of Things)機器等)に対するセキュリティの脅威が社会的な問題になっている。
【0003】
情報処理装置に不正な命令を与えるサイバー攻撃が生じた場合、セキュリティ担当者(セキュリティに関する情報収集、分析、対策等を実施する者)は、例えば、攻撃に用いられたマルウェア(不正なソフトウェアやプログラム等)の名称、通信元及び通信先のIP(Internet Protocol)アドレス、並びに発生日時などの情報を用いて、サイバー攻撃に関する情報を収集する。この際、セキュリティ担当者は、収集した断片的な情報を用いて、更に関連する情報を検索することで、サイバー攻撃に対処するための有用な情報を検索する。
【0004】
サイバー攻撃への対処に関連して、例えば以下のような技術が開示されている。
【0005】
特許文献1には、ネットワークを介して攻撃を受ける資産に対して割り当てられた資産値と、その攻撃に対して割り当てられた脅威値とから、資産への攻撃に対する応答の価値を判定する技術が開示されている。
【0006】
特許文献2には、評価対象のWebサイトに直接アクセスすることにより収集した直接情報と、情報提供サイトから取得した、評価対象のWebサイトのセキュリティ状態に関する情報とを用いて、評価対象のWebサイトに関するセキュリティ面での評価情報を生成する技術が開示されている。
【0007】
また、特許文献3には、セキュリティに関する有用な情報を容易に収集できるセキュリティ情報分析装置が開示されている。特許文献3に開示されたセキュリティ情報分析装置は、訓練データに含まれる他のセキュリティ情報を情報提供元から取得できるセキュリティ情報収集部の重みが大きくなるように、分析モデルを学習する。
【0008】
なお、非特許文献1には、ニューラルネットワークを用いたQ学習のアルゴリズムが開示されている。
【先行技術文献】
【特許文献】
【0009】
【文献】特表2012-503805号公報
【文献】特許第5580261号公報
【文献】国際公開第2018/139458号
【非特許文献】
【0010】
【文献】Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin A. Riedmiller, ”Playing Atari with Deep Reinforcement Learning”, [online], 2013年12月19日、CoRR (Computing Research Repositoly), [2019年1月21日検索]、インターネット<URL:http://arxiv.org/abs/1312.5602>.
【発明の概要】
【発明が解決しようとする課題】
【0011】
サイバー攻撃等のセキュリティの脅威が増加していることから、セキュリティの脅威に関連する情報(以下、単に「セキュリティ情報」と記載することもある。)の検索、収集及び分析等に要する時間も増大している。このため、これらの作業に要するセキュリティ担当者の工数(作業負荷)も、また増大している。
【0012】
また、収集した膨大な量の情報を、セキュリティ対策を施す担当者に対してそのまま提示すると、有用な脅威情報を発見できず、対策へ活用することが困難な場合がある。
【0013】
特許文献1には、セキュリティポリシーに違反するイベントを検知し、そのイベントに付随するデータを保存することが記載されている。しかし、例えば、ポリシーに設定されていない新たな攻撃(アタック)が発生した場合、適切なデータが保存されるとは限らない。また、サイバー攻撃が多発した場合には、大量のデータが保存される可能性がある。また、特許文献2に開示された技術を用いた場合、セキュリティ担当者が適切なwebサイトを選定し、収集した情報を分析する必要がある。
【0014】
特許文献1および特許文献2に開示された各技術は、いずれもセキュリティ担当者にとって有用な情報を収集可能であるとは限らない。また、セキュリティ担当者の知識や経験によっては、適切な情報を収集することが困難な場合がある。
【0015】
これに対し、特許文献3に記載された技術では、脅威情報の一部から別の脅威情報を提示する探索手段の存在を考慮する。探索手段は数多くあるため、脅威情報に対してどのような探索手段をどの順番で適用すれば有用な脅威情報のみを抽出できるかは、分析を担うセキュリティ担当者の経験に依存する。
【0016】
このような状況を考慮すると、有用な脅威情報を抽出したセキュリティ担当者が脅威情報と脅威情報に対して適用した探索手段の組を機械学習によって学習し、学習結果に基づき、新たな脅威情報に対する有用な脅威情報を抽出する自動分析方法が考えられる。
【0017】
一般に、機械学習は大量のデータを対象として、長い時間をかけて行われる。一方、探索手段は数多く、有用性の変化が早いため、迅速な学習が求められる。
【0018】
特許文献3に記載された技術を用いることで、有用な脅威情報を機械学習によって抽出することが可能である。ただし、特許文献3に記載された技術を用いる場合、探索手段の種類が増加すると、学習にかかる時間も増大し、迅速な学習が困難になることも想定される。
【0019】
そこで、本発明は、セキュリティに関する有用な情報を効率的に収集できるセキュリティ情報分析装置、セキュリティ情報分析システム、セキュリティ情報分析方法およびセキュリティ情報分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明によるセキュリティ情報分析装置は、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元からセキュリティ情報の探索を行う探索手段に対し、セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御手段と、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報を記憶する簡約化情報記憶手段とを備え、制御手段が、セキュリティ情報に対する一連の探索に利用する探索手段の経路が簡約化情報で定義された組合せを含む場合、そのセキュリティ情報の探索をその簡約化情報が示す方法に応じた探索に変更することを特徴とする。
【0021】
本発明によるセキュリティ情報分析システムは、上記セキュリティ情報分析装置と、セキュリティ情報を分析モデルに適用して算出された重みに応じて探索手段を選択する処理、および、選択された探索手段を用いて他のセキュリティ情報を取得する処理を繰り返す評価手段と、取得されたセキュリティ情報に基づいて経路を生成する評価結果提供手段とを備えたことを特徴とする。
【0022】
本発明によるセキュリティ情報分析方法は、コンピュータが、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元からセキュリティ情報の探索を行う探索手段に対し、セキュリティ情報を入力して新たなセキュリティ情報を取得し、コンピュータが、取得したセキュリティ情報を探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返し、コンピュータが、セキュリティ情報に対する一連の探索に利用する探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された組合せを含む場合、そのセキュリティ情報の探索を簡約化情報が示す方法に応じた探索に変更することを特徴とする。
【0023】
本発明によるセキュリティ情報分析プログラムは、コンピュータに、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元からセキュリティ情報の探索を行う探索手段に対し、セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御処理を実行させ、制御処理で、セキュリティ情報に対する一連の探索に利用する探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された組合せを含む場合、そのセキュリティ情報の探索を簡約化情報が示す方法に応じた探索に変更させることを特徴とする。
【発明の効果】
【0024】
本発明によれば、セキュリティに関する有用な情報を効率的に収集できる。
【図面の簡単な説明】
【0025】
【
図1】セキュリティ情報分析装置の機能的な構成例を示すブロック図である。
【
図2】セキュリティ情報評価装置の機能的な構成例を示すブロック図である。
【
図3】セキュリティ情報分析システムの機能的な構成例を示すブロック図である。
【
図4】セキュリティ情報分析システムの他の機能的な構成例を示すブロック図である。
【
図7】簡約化情報を定義したテーブルの例を示す説明図である。
【
図8】学習グラフの例を概念的に示す説明図である。
【
図9】分析モデルの学習過程の例を示す説明図である。
【
図10】学習グラフと訓練データとの関係の例を示す説明図である。
【
図11】探索手段による情報収集処理を抑制する処理の例を示す説明図である。
【
図12】学習部および簡約化情報記憶部の具体的な構成の一例を示すブロック図である。
【
図13】セキュリティ情報分析装置の動作例を示すフローチャートである。
【
図14】評価部の動作例を示すフローチャートである。
【
図15】生成された評価グラフの例を示す説明図である。
【
図16】評価の具体的な処理の例を示す説明図である。
【
図17】汎用のハードウェア装置を用いた構成例を示す説明図である。
【
図18】本発明によるセキュリティ情報分析装置の概要を示すブロック図である。
【
図19】本発明によるセキュリティ情報分析システムの概要を示すブロック図である。
【発明を実施するための形態】
【0026】
本開示における技術的な検討事項等について詳細に説明する。以下、サイバー攻撃、不正アクセス等を含む、セキュリティ上問題となり得る各種事象(インシデント)を、「セキュリティ事象」(「セキュリティインシデント」)と記載することがある。また、本開示において、セキュリティ情報は特に限定されず、あるセキュリティ事象に関する幅広い情報が含まれ得る。セキュリティ情報の具体例については後述する。
【0027】
以下、サイバー攻撃等のセキュリティ事象が発生した場合の、セキュリティ担当者の典型的な対応について例示する。
【0028】
サイバー攻撃等のセキュリティ事象が発生した場合、セキュリティ担当者は、そのセキュリティ事象に関連して早期に得られる情報(例えば、マルウェアの名称、マルウェア本体、マルウェアが実行する通信に関する情報等)からキーワード(検索語)を選択する。
【0029】
セキュリティ担当者は、選択したキーワードを用いて、セキュリティに関する情報を提供する提供元(以下、情報源と記載する。)から、そのキーワードに関する情報を取得する。このような情報源は、典型的には、例えば、通信ネットワークを介して脆弱性情報、サイバー攻撃情報等を収集、提供する情報サイトや、オンラインデータベース等であってよい。セキュリティ担当者は、例えば、情報源において、あるキーワードに関する情報を検索し、その検索結果を新たな情報として取得する。
【0030】
セキュリティ担当者は、取得した断片的な情報から更なるキーワードを選択し、そのキーワードを用いて更に情報を取得する。セキュリティ担当者は、サイバー攻撃に対するセキュリティ対策についての十分な情報が得られるまで、上記のような処理を繰り返す。セキュリティ担当者は、収集した情報から、知識や経験に基づいて有用な情報を抽出(選択)し、更なる攻撃を防ぐようにセキュリティ対策を実施する。
【0031】
サイバー攻撃の増大に伴い、セキュリティ情報の収集及び分析に要するセキュリティ担当者の工数が増大するとともに、収集される情報も増加している。また、情報収集及び分析作業を人手により実行する場合、それらの作業を実行するセキュリティ担当者の知識や経験等が、評価結果の精度や作業量に影響する。
【0032】
このため、セキュリティ担当者の知識や経験等に依存することなく、セキュリティ対策に有用な情報を収集可能な技術を提供することが、本開示における技術的な検討事項の一つである。
【0033】
本開示に係る技術のある実施形態は、あるセキュリティ事象に関する有用なセキュリティ情報の収集に用いられる分析モデルを作成することができる。分析モデルを用いることにより、例えば、あるセキュリティ事象に関するセキュリティ情報が与えられた際に、他の有用なセキュリティ情報を情報源から取得する処理(以下、情報収集処理と記載する)を適宜選択することができる。
【0034】
セキュリティ担当者が収集するセキュリティ情報には、ある種の静的な特徴(例えばパターン)を持つデータ(例えば、IP(Internet Protocol )アドレス、ホスト名、マルウェアバイナリのハッシュ値等)が含まれる場合がある。これより、本開示に係る技術のある実施形態において、分析モデルは、セキュリティ情報に含まれるデータの静的な特徴を学習するよう構成される。
【0035】
また、セキュリティ担当者は、情報収集の段階に応じて、収集する情報を適宜変更することがある。具体例として、同じ種類のセキュリティ情報(例えばIPアドレス)に基づいて、他のセキュリティ情報を収集する場合を想定する。セキュリティ事象が発生してから間もない初期の段階では、典型的には、セキュリティ担当者は、例えば、あるセキュリティ情報について容易に収集可能な情報(例えばIPアドレスに対するホスト名等)を収集することがある。これに対して、セキュリティ事象に関する分析がある程度実行された段階では、セキュリティ担当者は、同じ種類のセキュリティ情報に関して、例えば、取得が容易ではない情報、又は、取得にコストが要する情報、等を収集することがある。
【0036】
これより、本開示に係る技術のある実施形態において、分析モデルは、あるセキュリティ事象に関するセキュリティ情報の取得過程(例えば、情報提供元の選択及び情報収集の順序等)を学習するよう構成される。
【0037】
以下の各実施形態を用いて説明する本開示に係る技術を用いることで、情報収集に要する工数が低減され得る。その理由は、分析モデルを用いることで、あるセキュリティ事象に関するセキュリティ情報が与えられた際に、そのセキュリティ事象に関する他の有用なセキュリティ情報を取得する情報収集処理を、適切に選択できるからである。
【0038】
また、これにより、あるセキュリティ事象の対策について、セキュリティ担当者の観点から有用な情報が提供され得る。その理由は、分析モデルが、セキュリティ担当者等によって予め有用性が判断された訓練データを用いて学習されるからである。
【0039】
さらに、本実施形態では、情報収集に要する工数をより低減させることを目的とする。ここで、脅威情報の一部から別の脅威情報を提示する探索手段は独立したサービスやプロトコルであるが、入力および出力するデータの種類や値に個々の性質が存在する。
【0040】
そのため、例えば、任意の脅威情報に対し、ある探索手段が脅威情報を探索したあとで、別の探索手段がさらに脅威情報を探索した場合に、新たな脅威情報が得られないことがある。この探索は、有用な脅威情報の獲得に貢献しないことが明らかである。探索手段の間の性質を勘案すると、このような状況が生じるか否かは、探索手段による探索の前に判断することが可能である。
【0041】
また、任意の脅威情報に対して複数の探索手段による探索が行われる場合、探索の順序がいかなる組み合わせであっても、最終的な出力として得られる脅威情報が変化しない場合がある。この探索は、1つ以上の組み合わせに対して行なっても効果的に学習効果が得られない。このような状況も、探索手段による探索の前に判断することが可能である。
【0042】
このような想定のもと、本実施形態では、予め定義された探索手段の性質から、探索手段による探索順序を好適にスケジューリングすることで学習に要する時間を低減させる。
【0043】
以下、各実施形態を用いて、本開示に係る技術について詳細に説明する。以下の各実施形態(及びその変形例)の構成は例示であり、本開示に係る技術の技術範囲はそれらには限定されない。すなわち、以下の各実施形態を構成する構成要素の区分け(例えば、機能的な単位による分割)は、各実施形態を実現可能な一例である。各実施形態を実現する構成は、以下の例示に限定されず、様々な構成が想定される。
【0044】
以下の各実施形態を構成する構成要素は、更に分割されてもよい。また、以下の各実施形態を構成する1以上の構成要素が統合されてもよい。また、各実施形態が1以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、1以上の構成要素が1以上の装置により実現されてもよく、1つの構成要素が複数の装置を用いて実現されてもよい。
【0045】
以下、本開示に係る技術を実現可能な実施形態について説明する。以下で説明するシステムの構成要素は、単体の装置(物理的または仮想的な装置)を用いて構成されてもよく、複数の離間した装置(物理的または仮想的な装置)を用いて実現されてもよい。システムの構成要素が複数の装置により構成される場合、各装置の間は有線、無線、又はそれらを適切に組み合わせた通信ネットワークにより通信可能に接続されてもよい。以下において説明するシステム及びその構成要素を実現可能なハードウェア構成については、後述する。
【0046】
図1は、本実施形態におけるセキュリティ情報分析装置100の機能的な構成を例示するブロック図である。
図2は、本実施形態におけるセキュリティ情報評価装置200の機能的な構成を例示するブロック図である。
図3は、本実施形態におけるセキュリティ情報分析システム300の機能的な構成を例示するブロック図である。
図4は、本実施形態におけるセキュリティ情報分析システム400の他の機能的な構成を例示するブロック図である。
【0047】
図1から
図4において、同様の機能を実現可能な構成要素には、同じ参照符号が付されている。以下、各構成要素について説明する。
【0048】
図1に例示するように、本実施形態におけるセキュリティ情報分析装置100は、情報収集部101と、学習部102と、分析モデル記憶部103と、訓練データ供給部104と、簡約化情報記憶部106とを備えている。セキュリティ情報分析装置100を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。また、セキュリティ情報分析装置100は、各種セキュリティ情報を提供する情報提供元である1以上の情報源105と、適切な通信方法を用いて通信可能に接続されている。
【0049】
情報源105は、あるセキュリティ情報に関連する他のセキュリティ情報を提供可能な、セキュリティ情報の提供元である。情報源105は、特に制限されることなく、セキュリティに関する情報を提供可能なサービス、サイト、データベース等が幅広く含まれてよい。
【0050】
一つの具体例として、情報源105は、セキュリティに関する情報(脆弱性、サイバー攻撃等)をデータベース等により保有する外部サイトであってもよい。例えば、そのような外部サイトにおいて、あるセキュリティ情報(例えば、IPアドレスやホスト名等)を検索することで、他のセキュリティ情報(例えば、そのIPに関する通信を実行するマルウェアの情報等)が得られる。
【0051】
上記に限定されず、情報源105は、例えば、Whoisサービスであってもよく、DNS(Domain Name System)サービスであってもよい。情報源105は、外部のサイトやサービスに限定されず、ローカルにセキュリティ情報を蓄積したデータベースであってもよい。
【0052】
情報収集部101は、入力された情報を受け付けて、あるセキュリティ情報に関連する他のセキュリティ情報を情報源105から取得(探索)する。情報収集部101は、例えば、1以上の情報源105ごとに個別に設けられてもよく、情報源105ごとに探索する機能をまとめて備えていてもよい。以下、情報収集部を、クローラ(Crawler)101と記載する場合がある。クローラ101は、例えば、ある情報源105において、学習部102(後述)から提供されたセキュリティ情報を検索し、その検索結果を他のセキュリティ情報として学習部102に提供してもよい。このように、クローラ101は、各種セキュリティ情報を探索することから、情報収集部101またはクローラ101のことを、探索手段と言うことができる。
【0053】
クローラ101は、情報源105ごとに適切な方法を用いて、情報収集処理を実行するよう構成される。一つの具体例として、クローラ101は、情報源105に対して、検索用のリクエスト(例えばクエリ等)を送信し、そのリクエストに対するレスポンスを受信してもよい。他の具体例として、クローラ101は、情報源105が提供するコンテンツ(テキストデータ等)を取得し、取得したコンテンツの中から適切なセキュリティ情報を検索してもよい。本実施形態においては、情報収集処理の終了(打ち切り)を表す特殊なクローラ101(以下、終了処理クローラと記載する)が用意されてもよい。
【0054】
学習部102は、セキュリティ情報の分析に使用可能な分析モデルを生成する。具体的には、学習部102は、訓練データ供給部104(後述)から提供された訓練データを用いて学習処理を実行することで、分析モデルを生成する。
【0055】
分析モデルは、あるセキュリティ事象に関するセキュリティ情報を入力として受けつけ、クローラ101それぞれについて「重み」を算出可能なモデルである。分析モデルが算出する重み(各クローラ101の重み)は、あるクローラ101による情報取得処理の有用性(適切性)を表す情報である。本実施形態において、各クローラ101による情報取得処理の有用性は、例えば、各クローラ101が取得可能なセキュリティ情報の有用性を表す。
【0056】
また、セキュリティ情報の有用性は、例えば、あるセキュリティ事象に関する分析、対策に用いられる情報としての有用性を表す。セキュリティ情報の有用性は、セキュリティ担当者や他のシステム等により判断されてもよい。本実施形態においては、有用性が予め判断されたセキュリティ情報を含む訓練データが、分析モデルの学習(後述)に用いられる。
【0057】
分析モデルは、各クローラ101が取得可能なセキュリティ情報の有用性を反映した重みを算出する。より具体的には、分析モデルは、例えば、入力として与えられたセキュリティ情報を用いて、有用性が高い他のセキュリティ情報を取得可能なクローラ101について、他のクローラ101よりも比較的大きな重みを算出するように構成される。
【0058】
即ち、あるセキュリティ情報を分析モデルに入力した際に算出される重みが大きいクローラ101を選択することで、他の有用なセキュリティ情報を取得可能となることが期待される。このような観点から、分析モデルが出力する重みは、あるセキュリティ情報について、適切なクローラ101を選択することが可能な情報(選択情報)であると考えることもできる。
【0059】
分析モデルは、個別のクローラ101に関する重みに限らず、複数のクローラ101による組合せ(クローラセットと記載する場合がある)に関する重みを提供するよう構成されてもよい。即ち、分析モデルは、クローラセットを、例えば、仮想的な一つのクローラとして扱うことができる。この場合、あるセキュリティ情報についての情報収集処理を、クローラセットに含まれる各クローラ101がそれぞれ実行し、その結果を統合することで、クローラセットによる情報収集処理の結果が得られる。
【0060】
クローラセットによる情報収集処理の結果は、クローラセットに含まれる各クローラ101が取得したセキュリティ情報を含む集合である。係る集合は、特に限定されず、和集合であってもよく、積集合であってもよく、排他的論理和の集合であってもよい。以下、説明の都合上、クローラ101及びクローラセットをまとめて、単にクローラ101と記載する場合がある。
【0061】
分析モデルの構成は任意である。分析モデルは、例えば、ニューラルネットワークとして構成されていてもよい。この場合、分析モデルの入力層には、セキュリティ情報を表わす情報が入力され、出力層から、各クローラ101についての重みが出力される。この場合、学習部102は、例えば、特許文献3に記載されたような第1モデルと第2モデルとを組み合わせたニューラルネットネットワークを学習してもよい。学習部102による具体的な学習方法については後述する。
【0062】
分析モデル記憶部103は、学習部102により生成された分析モデルを記憶する。分析モデル記憶部103が分析モデルを記憶する方法は、特に限定されず、適切な方法を採用可能である。分析モデル記憶部103は、例えば、メモリ領域に分析モデルを配置してもよく、ファイルやデータベース等に分析モデルを記録してもよい。なお、セキュリティ情報分析装置100は、分析モデル記憶部103に記憶された分析モデルを外部(ユーザ、他のシステム、装置等)に提供してもよい。
【0063】
訓練データ供給部104は、ユーザや他のシステムから提供された訓練データを、学習部102に供給する。訓練データは、あるセキュリティ事象に関する対策に有用なセキュリティ情報(即ち、あるセキュリティ事象に関して、有用であると判断されたセキュリティ情報)の集合である。
【0064】
訓練データを作成又は取得する方法は特に限定されず、適切な方法を採用可能である。具体例として、訓練データは、セキュリティ担当者が過去に収集、蓄積したセキュリティ事象に関するセキュリティ情報(分析済みのセキュリティ情報)を用いて、訓練データが作成されてもよい。他の具体例として、訓練データは、信頼可能な他のシステムから提供されたデータ又は信頼可能な外部のCSIRT(Computer Security Incident Response Team)が作成したレポート等を用いて作成されてもよい。
【0065】
例えば、セキュリティ関係の企業又は組織等が提供する、脆弱性情報、サイバー攻撃情報等から、訓練データを作成することができる。このように作成される訓練データには、セキュリティ担当者又は外部の組織等の知見が反映されていると考えられる。訓練データの具体的な形式及び内容については後述する。
【0066】
簡約化情報記憶部106は、得られるセキュリティ情報が増加しない探索手段(クローラ101)の組合せを簡約化する方法を定義した情報(以下、簡約化情報と記す。)を記憶する。簡約化情報は、探索手段の性質を定義した情報と言える。
【0067】
図5は、探索手段の定義例を示す説明図である。
図5では、2つの探索手段の関係を例示している。なお、セキュリティ情報を対象、探索手段を射とする圏Cを想定した場合、探索とは、写像f:A→(A,B)をa∈A,b∈Bに適用することであると言えるため、
図5では、各探索手段による情報収集処理を示す写像をfおよびgで示している。
【0068】
図5では、4種類の定義例を示している。第一の定義例は、バイナリからsha(Secure Hash Algorithm )256ハッシュを得る情報収集処理fと、sha256ハッシュからバイナリを得る情報収集処理gとの関係を示している(
図5(1)参照)。例えば、fは、sha256sumコマンドに基づく処理であり、gは、レインボーテーブルに基づく処理である。
【0069】
この場合、バイナリに対してfを実行することによりsha256が得られ、sha256に対してgを実行することによりバイナリが得られることになる。すなわち、fを実行して得られる情報に基づいてgを実行しても、新しい情報は得られないと言える。ここで、単位元をεで表し、連続する情報収集処理の関係を演算子○で表すと、f○g=εが成り立つ。これは、得られるセキュリティ情報が増加しない情報収集処理の組合せであることから、f○g=εという簡約化情報が定義される。
【0070】
第二の定義例は、ホストネームの冪集合からIPv4アドレスの冪集合を得る情報収集処理fと、IPv4アドレスの冪集合からホストネームの冪集合を得る情報収集処理gとの関係を示している(
図5(2)参照)。例えば、fは、DNS正引き(A)に基づく処理であり、gは、DNS逆引き(PTR)に基づく処理である。
【0071】
この場合、ホストネームの冪集合に対してfを実行することによりIPv4アドレスの冪集合が得られ、IPv4アドレスの冪集合に対してgを実行することによりホストネームの冪集合が得られることになる。すなわち、fを実行して得られる情報に基づいてgを実行しても、新しい情報は得られないと言える。
【0072】
第三の定義例は、バイナリからマルウェアのバイナリを得る情報収集処理fと、マルウェアのバイナリからバイナリを得る情報収集処理gとの関係を示している(
図5(3)参照)。例えば、fは、オンラインスキャンサービスのAPIを利用した処理であり、gは、何も処理をしない処理が想定される。
【0073】
この場合、バイナリに対してfを実行することによりマルウェアのバイナリが得られる。マルウェアのバイナリに対してgを実行しても(付加情報等が付与されることを除き)、バイナリが得られるだけである。すなわち、fを実行して得られる情報に基づいてgを実行しても、新しい情報は得られないと言える。
【0074】
第四の定義例は、マルウェアのバイナリからC2(Command and Control Server)になっているIPv4アドレスの冪集合を得る情報収集処理fと、上記IPv4アドレスの冪集合からマルウェアのバイナリを得る情報収集処理gとの関係を示している(
図5(4)参照)。例えば、fは、動的解析に基づく処理であり、gは、オンラインスキャンサービスのAPIを利用した処理である。
【0075】
この場合、マルウェアのバイナリに対してfを実行することによりIPv4アドレスの冪集合が得られ、IPv4アドレスの冪集合に対してgを実行することによりマルウェアのバイナリが得られることになる。すなわち、fを実行して得られる情報に基づいてgを実行しても、新しい情報は得られないと言える。
【0076】
なお、
図5では、2つの探索手段の関係を例示したが、探索手段の関係は3つ以上であってもよい。
図6は、探索手段の他の定義例を示す説明図である。
【0077】
図6に示す定義例は、バイナリからSHA256ハッシュを得る情報収集処理f、SHA256ハッシュからマルウェアのバイナリを得る情報収集処理g、マルウェアのバイナリからSHA256ハッシュを得る情報収集処理f、および、SHA256ハッシュからバイナリを得る情報収集処理hとの関係を示している。例えば、fは、sha256sumコマンドに基づく処理であり、gは、オンラインスキャンサービスのAPIを利用した処理であり、hは、レインボーテーブルに基づく処理である。なお、情報収集処理mは、何も処理を行わないことを示すものとする。
【0078】
例えば、上記オンラインスキャンサービスにより、バイナリからマルウェアのバイナリを得る情報収集処理kが行われるものとすると、f○g=kが成り立つ。また、マルウェアのバイナリに対してバイナリを得るためには、情報収集処理を必要としない。すなわち、h○f=mが成り立つ。この場合、得られるセキュリティ情報が増加しない情報収集処理を簡約化できる組合せであることから、f○g=kおよびh○f=mという簡約化情報が定義される。
【0079】
本実施形態では、3種類の簡約化情報を定義し、簡約化情報記憶部106にそれぞれテーブルとして定義する。
図7は、簡約化情報を定義したテーブルの例を示す説明図である。
【0080】
第一のテーブル(以下、テーブルAと記す。)は、情報収集処理を行う探索手段を減少させるように簡約化可能な写像の組合せ(すなわち、探索手段の組合せ)を保持するテーブルである。
図7に例示するテーブルAは、簡約前の探索手段の組合せと簡約後の探索手段の組合せとを対応付けて保持している例を示す。例えば、テーブルAにおける1行目は、情報収集処理fおよび情報収集処理gの組合せを、情報収集処理kに簡約化可能であることを示す。
【0081】
第二のテーブル(以下、テーブルBと記す。)は、合成が単位元εになる写像の組合せ(すなわち、探索手段の組合せ)を保持するテーブルである。合成が単位元εになる写像の組合せとは、探索手段による情報収集処理を削除するように簡約化可能な写像の組合せとも言える。
図7に例示するテーブルBは、情報収集処理を削除可能な探索手段の組合せを保持している例を示す。例えば、テーブルBにおける1行目は、情報収集処理aおよび情報収集処理bの組合せの処理が削除可能であることを示す。
【0082】
第三のテーブル(以下、テーブルCと記す。)は、可換な写像の組合せ(すなわち、探索手段の組合せ)を保持するテーブルである。可換な写像の組合せとは、情報収集処理の順番を入れ換えても、最終的に得られるセキュリティ情報の内容が変わらない組合せのことである。
図7に例示するテーブルBは、可換可能な探索手段の組合せを保持している例を示す。例えば、2行1列目に示される丸印は、情報収集処理sと情報収集処理tとが可換であることを示す。なお、
図7では、テーブルCが2次元のテーブルである場合を例示しているが、テーブルCの次元数は2に限定されず、3以上であってもよい。
【0083】
簡約化情報記憶部106が、簡約化情報を記憶する方法は、特に限定されず、適切な方法を採用可能である。簡約化情報記憶部106は、例えば、メモリ領域に簡約化情報を配置してもよく、ファイルやデータベース等に分析モデルを記録してもよい。
【0084】
次に、
図2を参照して、セキュリティ情報評価装置200の構成について説明する。本実施形態におけるセキュリティ情報評価装置200は、情報収集部101と、評価部201と、分析モデル記憶部103と、セキュリティ情報供給部202と、評価結果提供部203とを備えている。セキュリティ情報評価装置200を構成するこれらの構成要素の間は、適切な通信方法を用いて通信可能に接続されていてよい。また、セキュリティ情報評価装置200も、各種セキュリティ情報を提供する情報提供元である1以上の情報源105と、適切な通信方法を用いて通信可能に接続されている。
【0085】
情報収集部101は、セキュリティ情報分析装置100における情報収集部101と同様に構成されてよい。この場合、情報収集部101は、例えば、ある情報源105において、評価部201(後述)から提供されたセキュリティ情報であるキーワードを検索し、検索結果をセキュリティ情報として評価部201に提供してもよい。
【0086】
分析モデル記憶部103は、セキュリティ情報分析装置100における分析モデル記憶部103と同様に構成されてもよい。分析モデル記憶部103には、セキュリティ情報分析装置100(具体的には、学習部102)において生成された分析モデルが記憶される。セキュリティ情報評価装置200は、セキュリティ情報分析装置100から、分析モデルをオンライン又はオフラインで取得してもよい。
【0087】
評価部201は、分析モデル記憶部103に記憶された分析モデルを用いて、セキュリティ情報供給部202(後述)から供給されたセキュリティ情報を分析する。より具体的には、評価部201は、セキュリティ情報供給部202から供給されたセキュリティ情報を分析モデルに入力として与え、分析モデルが算出するクローラ101ごとの重みを取得する。
【0088】
評価部201は、例えば、最も重みが大きいクローラ101を用いて、情報源105に対して、入力されたセキュリティ情報に関する情報収集処理を実行する。評価部201は、その情報収集処理により得られた新たなセキュリティ情報を、分析モデルに対して入力として与えることで、上記処理を繰り返し実行可能である。
【0089】
これにより、評価部201は、入力として与えられたセキュリティ事象に関するセキュリティ情報から、そのセキュリティ事象の対策に有用な一連の他のセキュリティ情報を取得することが可能である。評価部201は、上記処理により取得した一連のセキュリティ情報を、分析結果として提供してもよい。評価部201の具体的な動作については、後述する。
【0090】
セキュリティ情報供給部202は、評価対象のセキュリティ情報を受けつけ、そのセキュリティ情報を評価部201に供給する。セキュリティ情報供給部202は、例えば、ユーザ、他のシステム等の外部から、訓練データに含まれない、新たに発生したセキュリティ事象に関するセキュリティ情報を受けつけることができる。
【0091】
評価結果提供部203は、あるセキュリティ情報に関して評価部201が供給する分析結果を、セキュリティ情報評価装置の外部(例えば、ユーザ、他のシステム等)に、そのセキュリティ情報に関する評価結果として提供する。具体例として、評価結果提供部203は、評価結果を、画面に表示してもよく、印刷装置を介して印刷してもよく、記憶媒体に出力してもよく、通信回線を介して送信してもよい。評価結果提供部203における評価結果の出力方法は、特に限定されない。
【0092】
以下、本実施形態における情報分析システムについて説明する。本実施形態においては、例えば、
図3に示すように、セキュリティ情報分析装置100と、セキュリティ情報評価装置200とを用いて、セキュリティ情報分析システム300が構成されてもよい。
図3に例示するセキュリティ情報分析システム300において、セキュリティ情報分析装置100と、セキュリティ情報評価装置200との間は、適切な通信方法を用いて通信可能に接続されている。
【0093】
セキュリティ情報分析システム300におけるセキュリティ情報分析装置100には、外部(ユーザ、他のシステム等)から、訓練データが供給される。セキュリティ情報分析装置100は、その訓練データを用いて分析モデルを学習し、学習済みの分析モデルを、セキュリティ情報評価装置200に提供してもよい。
【0094】
セキュリティ情報分析システム300におけるセキュリティ情報評価装置200には、外部(ユーザ、他のシステム等)から、評価対象のセキュリティ情報が供給される。セキュリティ情報評価装置200は、学習済みの分析モデルを用いて、供給されたセキュリティ情報に関する評価結果を生成する。セキュリティ情報分析装置100における学習処理と、セキュリティ情報評価装置200における分析処理とは、個別に実行されてよい。
【0095】
本実施形態におけるセキュリティ情報分析システム300は、
図3に例示する構成に限定されない。セキュリティ情報分析システム400は、例えば、
図4に例示するように構成されてもよい。
図4は、
図1に例示するセキュリティ情報分析装置100の構成要素と、
図2に例示するセキュリティ情報評価装置200の構成要素とを統合したシステムの機能的な構成を例示する。なお、
図4に例示する構成においても、学習部102における学習処理と、評価部201における分析処理とは、個別に実行されてよい。なお、本実施形態におけるセキュリティ情報分析装置100と、セキュリティ情報評価装置200とは、個別の装置として実現されてもよく、
図3又は
図4に例示するようなシステムの一部として実現されてもよい。
【0096】
[訓練データ]
次に、訓練データについて説明する。上記したように、本実施形態においては、あるセキュリティ事象に関する対策に有用なセキュリティ情報を含む訓練データが提供される。以下、説明の便宜上、訓練データが、テキストデータ(文字列データ)として提供されることを想定する。ただし、訓練データが画像データ等であってもよい。
【0097】
本実施形態においては、適切な数の訓練データが予め用意される。訓練データの数は、適宜選択してよい。例えば、各種のキュリティ関係の企業、組織等が提供する情報から訓練データを作成することで、数千~100万件程度の訓練データを用意することができる。
【0098】
訓練データには、あるセキュリティ事象に関する1以上のセキュリティ情報が含まれる。典型的には、訓練データには、あるセキュリティ事象に関して端緒となり得るセキュリティ情報(例えば、マルウェア攻撃の兆候を示す情報)と、そのセキュリティ事象に関する対策に有用であると判断されたセキュリティ情報とが含まれる。
【0099】
ある訓練データに含まれるセキュリティ情報を端緒として、情報収集処理を繰り返すことで、同じ訓練データに含まれる他のセキュリティ情報を取得することができれば、そのような情報収集処理の過程で有用なセキュリティ情報が得られたと考えられる。以下、訓練データに含まれる一つのセキュリティ情報を、「サンプル」と記載する場合がある。
【0100】
サンプルには、セキュリティ情報を表す具体的なデータが含まれる。1つの具体的な形態として、あるサンプルは、セキュリティ情報の「型」を表すデータ(型データ)、セキュリティ情報の「意味」を表すデータ(意味データ)、及び、セキュリティ情報の値を表すデータ(値データ)、を含むよう構成されてもよい。
【0101】
型データは、セキュリティ情報のカテゴリ、形式等を表すデータである。例えば、あるセキュリティ情報がIPアドレスである場合、その内容に応じて、型データには「IPv4アドレス」を表す識別子、「IPv6アドレス」を表す識別子等が設定されてよい。
【0102】
意味データは、セキュリティ情報が示す意味を表すデータである。例えば、あるセキュリティ情報がIPアドレスである場合、その内容に応じて、意味データには「データの送信元」、「データの送信先」、「監視対象IPアドレス」等を表す識別子が設定されてもよい。
【0103】
値データは、セキュリティ情報の具体的な値を示すデータである。例えば、あるセキュリティ情報がIPアドレスである場合、値データには、具体的なIPアドレスの値が設定されてもよい。
【0104】
上記に限定されず、サンプルには他のデータが更に含まれてもよい。場合によっては、型データと意味データとの少なくとも一方が、サンプルに含まれていなくてもよい。
【0105】
型データ及び意味データの分類として、独自の基準に従った分類を採用してもよく、周知の分類を採用してもよい。例えば、型データの一例として、OASIS(Organization for the Advancement of Structured Information Standards)において検討されているSTIX(Structured Threat Information eXpression)/CybOX(Cyber Observable eXpression)において規定された「DatatypeEnum」型を採用してもよい。また、意味データの一例として、STIX/CybOXにおいて規定された語彙(Vocabularies)を採用してもよい。
【0106】
訓練データを表現する形式は、特に限定されず、適切な形式を選択してよい。一つの具体例として、本実施形態における訓練データは、JSON(JavaScript(登録商標) Object Notation)形式を用いて表現される。なお、訓練データを表現する形式として、データを構造的に表現できる他の形式(例えば、XML(Extensible Markup Language))等が採用されてもよい。
【0107】
[分析モデルの学習方法]
上記のように構成された分析モデルの学習方法を説明する。
【0108】
本実施形態における学習部102は、学習過程をグラフとして表現することが可能である。以下、学習過程を表すグラフを、学習グラフと記載する場合がある。
【0109】
学習グラフの各ノードは、少なくとも1以上のセキュリティ情報を有する。後述する学習過程において、学習部102に入力として供給されるセキュリティ情報を含むノードを、入力ノードと記載する。また、入力ノードのセキュリティ情報について、学習部102により選択されたクローラ101が情報収集処理を実行することで取得した1以上のセキュリティ情報を含むノードを、出力ノードと記載する。出力ノードは、学習過程の次の段階における入力ノードとして、学習部102に入力される。
【0110】
また、ある訓練データに関する学習処理を開始する際に、学習部102に最初の入力として供給されるセキュリティ情報を含むノードを、初期ノードと記載する場合がある。入力ノードに含まれるセキュリティ情報を入力セキュリティ情報、出力ノードに含まれるセキュリティ情報を、出力セキュリティ情報と記載する場合がある。
【0111】
図8は、学習グラフの例を概念的に示す説明図である。以下、
図8に示す説明図を参照して、本実施形態における学習グラフの概要を説明する。なお、
図8に示す学習グラフは例示であり、本実施形態はこれには限定されない。
【0112】
上記したように、訓練データとして、あるセキュリティ事象に関するセキュリティ情報が、学習部102に与えられる。学習部102は、例えば、与えられたセキュリティ情報を、
図8に例示する初期ノードとして扱ってもよい。
【0113】
学習部102は、分析モデルの学習過程において、ある入力ノードに含まれるセキュリティ情報を入力として、そのセキュリティ情報を用いた情報収集処理を実行するクローラ101を選択するための情報(クローラ101の重み)を出力する。
【0114】
図8に示す具体例の場合、学習部102は、例えば、入力ノードに含まれるセキュリティ情報(例えば“A0”)を分析モデルに入力として与える。分析モデルは、与えられたセキュリティ情報に応じた、各クローラ101の重みを算出する。分析モデルが算出する出力(重み)に応じて、学習部102は、そのセキュリティ情報(“A0”)に関する情報収集処理を実行するクローラ101(例えば、“クローラA”)を選択する。
【0115】
学習部102は、選択したクローラ101を用いて、情報源105において更に情報収集処理を実行し、新たなセキュリティ情報を取得する。
図8の場合、学習部102が、“クローラA”を用いて情報収集処理を実行した結果、新たにセキュリティ情報として“B0”~“B2”が得られたことを示す。
【0116】
学習部102は、上記処理を学習処理の終了条件が満たされるまで繰り返し実行する。
図8の場合、例えば、学習部102が、セキュリティ情報“B0”に対して“クローラB”を選択して情報収集処理を実行し、セキュリティ情報“C0”が得られることを示す。同様に、学習部102が、セキュリティ情報“B1”および“B2”に対してそれぞれ“クローラC”および“クローラN”を選択し、これらによる情報収集処理の結果、セキュリティ情報“C1”~”C3”および“C(m-1)”および“Cm”が得られることを示す。
【0117】
このように、学習部102は、セキュリティ情報を探索手段であるクローラ101に入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報をクローラ101に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す。
【0118】
学習部102は、上記繰り返しの各段階において取得したセキュリティ情報に応じて、分析モデル(第1モデル及び第2モデル)におけるユニット間の結合パラメータを調整する。
図8の場合、例えば、訓練データとして与えられたセキュリティ情報“A0”から、セキュリティ情報“C0”~“Cm”が得られるまでに取得した各セキュリティ情報に応じて、分析モデルのパラメータが調整される。
【0119】
分析モデルを学習する方法は任意であり、例えば、特許文献3や非特許文献1に記載された強化学習の一つの手法であるQ学習(Q-Learning)の枠組みが用いられてもよい。Q学習の枠組みを用いることで、例えば、初期ノードから入力ノードまでの間に取得されていないセキュリティ情報が出力ノードとして得られた場合に、他のノードよりも大きいスコア(報酬)を設定することが可能になる。
【0120】
以下、具体例を用いて、学習部102による学習方法を説明する。
図9は、分析モデルの学習過程の例を示す説明図である。
【0121】
学習部102は、複数の訓練データセットから、ある訓練データ(仮に訓練データXと記載する。)を選択する。
図9に示す具体例の場合、訓練データXには3つのセキュリティ情報(hostname、ip-dst、md5)が含まれる。
【0122】
学習部102は、訓練データXに含まれるセキュリティ情報(サンプル)のうち、一つを選択する。
図9に示す具体例の場合、”hostname”が選択される。選択されたセキュリティ情報が、初期ノードとして扱われる。
【0123】
学習部102は、初期ノードを入力ノードとして選択し、その入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行するクローラ101を選択する。この際、学習部102は、クローラ101をランダムに選択してもよい。また、学習部102は、入力ノードを適切な形式(例えばJSON形式)に変換して、このタイミングにおける分析モデルに入力し、分析モデルから出力さる値(重み)が最も大きいクローラ101を選択してもよい。
【0124】
図9の場合、DNSを用いて情報収集処理を実行するクローラ101(
図9に示すクローラA)が選択される。クローラAは、DNSを用いて、入力ノードのホスト名(”aaa.bbb.ccc.org”)に対応するIPアドレス(”195.208.222.333”)を取得し、学習部102に提供する。学習部102は、情報収集処理の結果を用いて、出力ノードを生成する(
図9に示すノード1)。
【0125】
学習部102は、クローラAの選択及び情報収集処理に対する報酬を算出する。この場合、訓練データXに含まれるセキュリティ情報のうち、初期ノードから、出力ノード(ノード1)までの間に含まれないセキュリティ情報の総数は1(“md5”)である。よって、学習部102は、報酬“r”について、“r=1/(1+1)=1/2”と算出する。なお、
図9に示す例の場合、学習部102は、ノード1の次の状態が終了状態ではないと判定する。
【0126】
学習部102は、例えば、上記処理により得られた遷移データ(状態“s”(初期ノード)、行動“a”(クローラA)、報酬“r”(”r=1/2”)、次の状態“s’”(ノード1))を、学習用遷移データとして記憶してもよい。なお、遷移データのことを経路と記すこともある。
【0127】
学習部102は、ノード1を入力ノードとして、上記と同様の処理を実行する。
図9に示す例の場合、クローラ101として、クローラBが選択される。クローラBは、例えば、マルウェア情報を提供する外部サイトにおいて、ノード1に含まれるIPアドレスを検索し、検索結果を取得する。
図9の場合、検索結果として、マルウェアファイルのハッシュ値(例えば、MD5(Message Digest Algorithm 5)の値)が得られる。学習部102は、このような情報収集処理の結果を用いて、出力ノードを生成する(
図9に示すノード2)。
【0128】
学習部102は、クローラBの選択及び情報収集処理に対する報酬を算出する。この場合、訓練データXに含まれるセキュリティ情報のうち、初期ノードから、出力ノード(ノード2)までの間に含まれないセキュリティ情報の総数は0である。よって、学習部102は、報酬“r”について、“r=1/(0+1)=1”と算出する。また、報酬rが“r=1”を満たすことから、学習部102は、ノード2の次の状態が終了状態であると判定する。
【0129】
学習部102は、例えば、上記処理により得られた遷移データ(状態“s”(ノード1)、行動“a”(クローラB)、報酬“r”(“r=1”)、次の状態“s’”(ノード2))を、学習用遷移データとして記憶してもよい。なお、この際、学習部102は、上記学習用遷移データを用いて、教師信号となる値を算出してもよい。また、この際、学習部102は、上記学習用遷移データを用いて教師信号となり得る値を算出し、遷移データに関連付けて記憶してもよい。
【0130】
上記のような処理により、学習部102は、遷移データを生成することが可能である。また、この過程で、学習部102は、学習グラフを生成することが可能である。
【0131】
図10は、
図8に例示する学習グラフと選択される訓練データとの関係の例を示す説明図である。学習部102は、訓練データ51から、入力ノードとして一つの訓練データ52を任意に選択する。学習部102は、予め準備された探索手段を用いて情報収集処理を行う。
図10に示す例では、3種類の探索手段(DNS-PTR、DNS-A、DNS-Aおよびオンラインスキャン)によって、それぞれ、3種類のセキュリティ情報群53,54,55が出力ノードとして得られたことを示す。
【0132】
学習部102は、得られた出力ノードを基にQ関数を用いてスコアを算出する。
図10に示す例では、3種類の探索手段によって、得られたセキュリティ情報群53,54,55に基づいて、スコア56,57,58がそれぞれ0.1,0.2,0.3と算出されたことを示す。なお、
図10に例示するQ関数は、セキュリティ情報と訓練データの差を内容と項目数からスコアに変換する関数である。
【0133】
以下、出力ノードを入力ノードとして繰り返し学習処理を行う。学習部102は、入力ノードと探索手段との組み合わせに応じてスコアを付与したデータ59を用いて、例えば、深層ニューラルネットワークで構成される分析モデルの学習を行う。
【0134】
さらに、本実施形態において、学習部102は、上記繰り返しの各段階において、有用なセキュリティ情報の獲得に貢献しない情報収集処理を抑制する。具体的には、学習部102は、セキュリティ情報に対する一連の探索に利用する探索手段の経路が、簡約化情報で定義された組合せを含む場合、そのセキュリティ情報の探索を簡約化情報が示す方法に応じた探索に変更する。
【0135】
すなわち、学習部102は、上記遷移データ中に簡約化情報で定義された組合せが含まれている場合、その組合せによる情報収集処理を簡約化するように変更する。このように、学習部102は、探索手段による探索処理を簡易化するように制御することから、本実施形態の学習部102を、制御手段と言うこともできる。学習部102が行う情報収集処理の簡易化には、探索手段による情報収集処理を削除する制御や、情報収集処理を行う探索手段を減少させる制御が含まれる。
【0136】
図11は、探索手段による情報収集処理を抑制する処理の例を示す説明図である。例えば、
図11に例示するように、入力ノード(A)に対して探索手段(f)を用いることでノード(A,B)が得られたとする。ここで、写像fの逆元が写像hであるとすると、ノード(A,B)に対して、探索手段(h)を用いても、得られるノードはノード(A,B)になる。この場合、探索手段(f)と探索手段(h)の組合せは、得られるセキュリティ情報が増加しない探索手段の組合せであると言える。そこで、学習部102は、探索手段(f)のあとの探索手段(h)による情報収集処理を行わない(すなわち、経路を削除する)と決定する。
【0137】
他にも、例えば、
図11に例示するように、入力ノード(A)に対して探索手段(p)を用いることでノード(A,G)が得られ、ノード(A,G)に対して探索手段(q)を用いることで、ノード(A,G,H)が得られるとする。また、入力ノード(A)に対して探索手段(q)を用いることでノード(A,H)が得られるとする。ここで、写像p,qが可換であるとすると、ノード(A,H)に対して、探索手段(p)を用いても、得られるノードはノード(A,B,H)になる。この場合、探索手段(q)と探索手段(p)の組合せは、得られるセキュリティ情報が増加しない探索手段の組合せであると言える。そこで、学習部102は、探索手段(q)のあとの探索手段(p)による情報収集を行わない(すなわち、経路を削除する)と決定する。
【0138】
学習部102が、簡約化情報に基づいて探索を変更する処理は、以下に示すように一般化できる。全探索とは、端緒a∈A,ルートR={<f1,fn>|fn∈Hom(C)}について、経路trR=fn○・・・○f1から、出力c=trR(a),∃c∈Bnを求めることであると言える。
【0139】
探索の種類によっては、Bが冪集合{Xi⊆X|i∈I}→B=Ui∈IXiの場合がある。なお、→は、元の対応を表わす。冪集合pはモナドであるから、単なる関数を演算子○とおくと、p(x○y)=p(x)○p(y)である。また、入力と関手の出力からタプルを作る関手qもモナドで、q(x○y)=q(x)○q(y)である。このことから、pやqの演算を関数と切り離して扱える。よって、Bが冪集合か否かに関わらず、写像fを単純にf:A→Bと扱う。
【0140】
このような一般化の元、本実施形態では、学習部102は、学習結果が等価になる、dom(R)=dom(R´)およびcod(R)=cod(R´)を満たす部分経路を抽出し、最も少ない写像の集合を有するRに簡約することで、学習コストを低減させる。また、学習部102は、単位元をεとするとき、fn○…○f1=εを満たす部分経路を削除して、学習コストを削減する。
【0141】
以下、簡約化情報記憶部106が
図7に例示する3種類のテーブル(テーブルA、テーブルBおよびテーブルC)を記憶している場合を例に、学習部102の処理を詳述する。
図12は、学習部102および簡約化情報記憶部106の具体的な構成の一例を示すブロック図である。
図12に例示する学習部102は、分析モデル学習部151と、経路正規化部152と、経路削除部153と、経路置換部154と、重複経路削除部155とを含む。また、簡約化情報記憶部106は、テーブルA記憶部161と、テーブルB記憶部162と、テーブルC記憶部163とを含む。
【0142】
分析モデル学習部151は、上述する学習処理を行う。テーブルA記憶部161、テーブルB記憶部162およびテーブルC記憶部163は、それぞれ、
図7に例示するテーブルA、テーブルBおよびテーブルCを記憶する。
【0143】
経路正規化部152は、可換な写像(探索手段)の組合せを保持するテーブルC記憶部163を参照し、経路に可換な写像として定義されている組合せが含まれている場合、その組合せ部分を辞書順にソートする。このような正規化を行うことで、テーブルAおよびテーブルBに記憶する情報組合せの情報を低減させることができる。
【0144】
経路削除部153は、合成が単位元εになる写像の組合せ(すなわち、探索手段の組合せ)を保持するテーブルB記憶部162を参照し、探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが経路に含まれている場合、その組合せを経路から削除する。
【0145】
経路置換部154は、情報収集処理を行う探索手段を減少させる組合せ(以下、第一の組合せと記す。)に置換可能な写像の組合せ(すなわち、探索手段の組合せ。以下、第二の組合せと記す。)を保持するテーブルA記憶部161を参照し、第二の組合せが経路に含まれている場合、第二の組合せを第一の組合せに置換する。
【0146】
重複経路削除部155は、経路に重複する組合せが含まれている場合、その組合せの一方を削除する。
【0147】
図13は、本実施形態のセキュリティ情報分析装置の動作例を示すフローチャートである。学習部102は、セキュリティ情報に対する一連の探索に利用する探索手段の経路を取得する(ステップS101)。学習部102は、取得した経路が簡約化情報で定義された組合せを含む場合(ステップS102においてYES)、セキュリティ情報の探索をその簡約化情報が示す方法に応じた探索に変更する(ステップS103)。一方、取得した経路が簡約化情報で定義された組合せを含まない場合(ステップS102においてNO)、学習部102は、ステップS104以降の処理を行う。
【0148】
学習部102は、探索手段に対し、セキュリティ情報を入力して新たなセキュリティ情報を取得する(ステップS104)。以降、学習部102は、取得したセキュリティ情報を探索手段に入力してさらに新たなセキュリティ情報を探索するステップS101以降の処理を繰り返す。
【0149】
次に、上記のように学習された分析モデルを用いて、セキュリティ情報評価装置200における評価部201が、あるセキュリティ情報に関するセキュリティ情報を分析する過程を説明する。
【0150】
図14は、評価部201の動作例を示すフローチャートである。なお、以下の説明においては、セキュリティ情報評価装置200における分析モデル記憶部103に、学習済みの分析モデルが配置されていることを想定する。
【0151】
評価部201は、例えば、セキュリティ情報供給部202から、新たに分析するセキュリティ情報を受けつけ、初期ノードを生成する(ステップS1101)。初期ノードは、最初の入力ノードとして扱われる。
【0152】
評価部201は、入力ノードを設定し、入力ノードに含まれるセキュリティ情報を分析モデルに供給する(ステップS1102)。この際、評価部201は、セキュリティ情報を適切な形式に変換してもよい。分析モデルは、入力に応じて、各クローラ101について、重みを表す値を算出する。
【0153】
評価部201は、分析モデルの出力の内、重みが最も大きいクローラ101を選択する(ステップS1103)。
【0154】
評価部201は、選択したクローラ101を用いて、入力ノードに含まれるセキュリティ情報に関する情報収集処理を実行することで取得した、新たなセキュリティ情報を含む出力ノードを生成する(ステップS1104)。
【0155】
評価部201は、出力ノードの次の状態が、終了状態であるか否かを判定する(ステップS1105)。
【0156】
評価部201は、例えば、ステップS1101において受け付けたセキュリティ情報について、ステップS1102からS1104における処理を規定回数以上実行した場合、ステップS1104における出力ノードの次の状態を終了状態と判定してもよい。
【0157】
また、評価部201は、例えば、分析モデルが算出する重みの内、終了状態へ遷移するクローラ101(終了処理クローラ)の重みが最も大きい場合、ステップS1104における出力ノードの次の状態を終了状態と判定してもよい。
【0158】
評価部201は、出力ノードの次の状態が終了状態ではないと判定した場合(ステップS1106においてNO)、ステップS1104において生成された出力ノードを、新たな入力ノードとして設定し、ステップS1102から処理を続行する。これにより、ステップS1101において提供されたセキュリティ情報に応じて、情報収集処理が繰り返し実行される。
【0159】
評価部201は、出力ノードの次の状態が終了状態であると判定した場合(ステップS1106においてYES)、処理を終了する。評価部201は、初期ノードから、最終的な出力ノードに至るまでに生成したノードを表す情報を、評価結果提供部203に提供してもよい。
【0160】
より具体的には、評価部201は、初期ノードから、最終的な出力ノードに至るまでに生成したノードを接続したグラフ(評価グラフ)を生成し、評価結果提供部203に提供してもよい。
図15は、生成された評価グラフの例を示す説明図である。
図15に例示する評価グラフは、ノードとそのノードに基づいて情報収集処理を行ったクローラ、および、そのクローラによって出力されたノードとの接続関係を表わす。なお、評価結果提供部203が、評価グラフを生成してもよい。
【0161】
図16は、評価の具体的な処理の例を示す説明図である。ユーザや他のシステム61が、セキュリティ情報供給部202にセキュリティ情報(ノード)62を入力すると、評価部201は、分析モデル63を用いて、最もスコアの高い探索手段を特定する。評価部201は、特定した探索手段を用いて情報収集処理を行うことで、新たなノード64を取得する。評価部201は、取得した新たなノード64に対して分析モデル63を用いて探索手段を特定し、さらなるノード65を取得する。以下、評価部201は、スコアが一定以上の探索手段の組合せが取得できるまで、または、繰り返し回数が一定回数に達するまで、分析モデル63を用いた評価処理を行う。そして、評価結果提供部203は、最終的に取得されたノード66に基づく評価結果67を出力する。
【0162】
このように、評価部201は、セキュリティ情報(ノード)を分析モデルに適用して算出された重みに応じて探索手段を選択する処理、および、選択された探索手段を用いて他のセキュリティ情報を取得する処理を繰り返す。そして、評価結果提供部203は、取得されたセキュリティ情報に基づいて経路を生成する。評価結果提供部203は、例えば、
図15に例示するような経路を生成してもよい。
【0163】
上記説明した本実施形態における、セキュリティ情報分析装置100によれば、上記したような訓練データを用いて学習した分析モデルを用いることで、例えば、訓練データに含まれないようなセキュリティ事象についても、有用なセキュリティ情報を収集することができる。その理由は、分析モデルが、あるセキュリティ事象に関するセキュリティ情報から、他の有用なセキュリティ情報を取得可能な情報収集処理(クローラ101)に対して、大きな重みを出力するよう学習されるからである。
【0164】
訓練データには、セキュリティ情報に関する有用性の判断結果(知見)が反映されていると考えられることから、分析モデルの出力には、セキュリティ情報に関する有用性の知見が反映されていると考えられる。
【0165】
本実施形態においては、訓練データに含まれるあるセキュリティ情報から、同じ訓練データに含まれる他のセキュリティ情報を取得可能な情報収集処理(クローラ101)が選択されやすくなるように、分析モデルが学習される。これにより、あるセキュリティ事象に関して端緒となったセキュリティ情報から、他のセキュリティ情報を取得可能な情報収集処理が次々に選択されるようになる。結果として、分析モデルは、情報収集の過程を学習することが可能となる。
【0166】
また、本実施形態においては、大量の訓練データを比較的容易に準備することが可能である。あるセキュリティ事象について、端緒となったセキュリティ情報と、有用性が判断されたセキュリティ情報とは、例えば、セキュリティに関連する企業、団体等が提供するレポート等に基づいて、比較的容易に準備することが可能だからである。
【0167】
本実施形態におけるセキュリティ情報評価装置200によれば、例えば、新たなセキュリティ事象が発生し、当初は少数の情報しか得られない場合であっても、上記のように学習された分析モデルを用いることで、そのセキュリティ事象に関する有用な情報を収集することができる。また、セキュリティ情報評価装置200を用いることで、セキュリティ担当者等の知識及び経験等に依存することなく、有用なセキュリティ情報を収集することが可能となる。
【0168】
また、本実施形態におけるセキュリティ情報評価装置200は、あるセキュリティ情報の評価結果を表す評価グラフを、ユーザに提示することができる。ユーザは、あるセキュリティ事象について、最終的に収集されたセキュリティ情報だけではなく、その収集過程を確認することで、収集されたセキュリティ情報の妥当性を検証することができる。
【0169】
以上より、本実施形態によれば、あるセキュリティ事象に関する有用なセキュリティ情報を容易に取得することができる。すなわち、機械学習で用いるセキュリティに関する有用な脅威情報を収集する時間を短縮できる。本実施形態のセキュリティ情報分析装置を用いることで、特許文献3に記載された方法では三ヶ月程度要していた分析モデルの学習に要する時間を、二週間程度(約15%)に抑えることができている。
【0170】
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態及び変形例を実現可能なハードウェア構成について説明する。
【0171】
上記各実施形態において説明した各装置及びシステムは、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。
【0172】
例えば、各装置及びシステムをハードウェアにより実現する場合、各装置及びシステムの構成要素は、それぞれの機能を提供可能な集積回路(例えば、SoC(System on a Chip)等)として実装されてもよい。この場合、例えば、各装置及びシステムの構成要素が有するデータは、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
【0173】
また、この場合、各装置及びシステムの構成要素を接続する通信回線としては、周知の通信バスを含む通信ネットワークを採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。各装置及びシステムを複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
【0174】
例えば、各装置及びシステムは、情報収集部(クローラ)101の機能を実現する処理回路(processing circuitry)及び通信回路、学習部102の機能を実現する処理回路、分析モデル記憶部103を実現する記憶回路、訓練データ供給部104の機能を実現する処理回路、及び、簡約化情報記憶部106を実現する記憶回路、等用いて実現されてよい。
【0175】
また、各装置及びシステムは、評価部201の機能を実現する処理回路、セキュリティ情報供給部202の機能を実現可能な処理回路、及び、評価結果提供部203の機能を実現可能な処理回路、等を用いて実現されてよい。なお、上記回路構成は一つの具体的態様であり、実装においては、様々なバリエーションが想定される。
【0176】
また、上述した各装置及びシステムは、汎用のハードウェア装置と、ハードウェア装置によって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。
図17は、汎用のハードウェア装置を用いた構成例を示す説明図である。この場合、各装置及びシステムは、1以上の適切な数のハードウェア装置1500及びソフトウェア・プログラムにより構成されてもよい。
【0177】
図17における演算装置1501(プロセッサ)は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置1501は、例えば後述する不揮発性記憶装置1503に記憶された各種ソフトウェア・プログラムをメモリ1502に読み出し、そのソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記各実施形態における各装置及びシステムの構成要素は、例えば、演算装置1501により実行されるソフトウェア・プログラムとして実現可能である。
【0178】
例えば、各装置及びシステムは、情報収集部(クローラ)101の機能を実現するプログラム、学習部102の機能を実現するプログラム、及び、訓練データ供給部104の機能を実現するプログラム、等用いて実現されてよい。
【0179】
また、各装置及びシステムは、評価部201の機能を実現するプログラム、セキュリティ情報供給部202の機能を実現可能なプログラム、及び、評価結果提供部203の機能を実現可能なプログラム、等を用いて実現されてよい。なお、上記プログラム構成は一つの具体的態様であり、実装においては、様々なバリエーションが想定される。
【0180】
メモリ1502は、演算装置1501から参照可能な、RAM等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ1502は、揮発性のメモリデバイスであってもよい。
【0181】
不揮発性記憶装置1503は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置のような、不揮発性の記憶装置である。不揮発性記憶装置1503は、各種ソフトウェア・プログラムやデータ等を記憶可能である。上記各装置及びシステムにおいて、分析モデル記憶部103および簡約化情報記憶部106は、不揮発性記憶装置1503に分析モデルを記憶してもよい。
【0182】
ドライブ装置1504は、例えば、後述する記録媒体1505に対するデータの読み込みや書き込みを処理する装置である。上記各装置及びシステムにおける訓練データ供給部104は、例えば、ドライブ装置1504を介して、後述する記録媒体1505に記憶された訓練データを読み込んでもよい。
【0183】
記録媒体1505は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記録媒体である。本開示において、記録媒体の種類及び記録方法(フォーマット)は、特に限定されず、適宜選択可能である。
【0184】
ネットワークインタフェース1506は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。例えば、上記各装置及びシステムにおける情報収集部101(クローラ101)は、ネットワークインタフェース1506を介して、情報源105に通信可能に接続されてもよい。
【0185】
入出力インタフェース1507は、外部装置との間の入出力を制御する装置である。外部装置は、例えば、ユーザからの入力を受けつけ可能な入力機器(例えば、キーボード、マウス、タッチパネル等)であってもよい。また、外部装置は、例えばユーザに対して各種出力を提示可能出力機器(例えば、モニタ画面、タッチパネル等)であってもよい。
例えば、上記各装置及びシステムにおけるセキュリティ情報供給部202は、入出力インタフェース1507を介して、ユーザから新たなセキュリティ情報を受けつけてもよい。また、例えば、上記各装置及びシステムにおける評価結果提供部203は、入出力インタフェース1507を介して、ユーザに評価結果を提供してもよい。
【0186】
上述した各実施形態を例に説明した本発明における各装置及びシステムは、例えば、
図17に例示するハードウェア装置1500に対して、上記各実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより、実現されてもよい。より具体的には、例えば、ハードウェア装置1500に対して供給されたソフトウェア・プログラムを、演算装置1501が実行することによって、本発明が実現されてもよい。この場合、ハードウェア装置1500で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
【0187】
上述した各実施形態において、上記各図(例えば、
図1~
図4、
図12)に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。
【0188】
例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置1503に記憶されてもよい。そして、演算装置1501が、それぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ1502に読み出してもよい。
【0189】
また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。
【0190】
更に、上記各ソフトウェア・プログラムは、記録媒体1505に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、上記通信装置等の出荷段階、あるいは運用段階等において、適宜ドライブ装置1504を通じて不揮発性記憶装置1503に格納されるよう構成されてもよい。
【0191】
なお、上記の場合において、上記各装置及びシステムへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具(ツール)を利用してハードウェア装置1500内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。
【0192】
そして、このような場合において、本発明は、そのようなソフトウェア・プログラムを構成するコード、あるいはコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、記録媒体は、ハードウェア装置1500と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記憶媒体を含む。
【0193】
また、上述した各装置及びシステム、あるいは、当該各装置及びシステムの構成要素は、
図17に例示するハードウェア装置1500を仮想化した仮想化環境と、仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、
図17に例示するハードウェア装置1500の構成要素は、仮想化環境における仮想デバイスとして提供される。なお、この場合も、
図17に例示するハードウェア装置1500を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。
【0194】
以上、本発明を、上述した模範的な実施形態に適用した例として説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態に記載した範囲には限定されない。当業者には、上記したような実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。更に、上述した各実施形態、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項から明らかである。
【0195】
次に、本発明の概要を説明する。
図18は、本発明によるセキュリティ情報分析装置の概要を示すブロック図である。本発明によるセキュリティ情報分析装置80(例えば、セキュリティ情報分析装置100)は、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元(例えば、情報源105)からセキュリティ情報の探索を行う探索手段(例えば、情報収集部101、クローラ101)に対し、セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御手段81(例えば、学習部102)と、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報を記憶する簡約化情報記憶手段82(例えば、簡約化情報記憶部106)とを備えている。
【0196】
制御手段81は、セキュリティ情報に対する一連の探索に利用する探索手段の経路が簡約化情報で定義された組合せを含む場合、そのセキュリティ情報の探索を簡約化情報が示す方法に応じた探索に変更する。
【0197】
そのような構成により、セキュリティに関する有用な情報を効率的に収集できる。
【0198】
また、セキュリティ情報分析装置80は、入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成する学習部(例えば、学習部102)を備えていてもよい。そして、学習部は、(制御手段81により)取得された複数のセキュリティ情報を含む訓練データを用いて、一の訓練データに含まれるセキュリティ情報に応じて、その訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように分析モデルを学習してもよい。
【0199】
すなわち、学習部が、効率的に収集された情報を基に分析モデルを学習するため、よりコストを低減させた学習が可能になる。
【0200】
具体的には、制御手段81は、探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せ(例えば、テーブルBの情報)が経路に含まれている場合、その組合せを経路から削除してもよい。
【0201】
他にも、制御手段81は、情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せ(例えばテーブルAの情報)が経路に含まれている場合、その第二の組合せを第一の組合せに置換してもよい。
【0202】
他にも、制御手段81は、可換な探索手段として定義されている組合せ(例えば、テーブルCの情報)が経路に含まれている場合、その組合せの部分を辞書順にソートしてもよい。
【0203】
また、制御手段81は、経路に含まれる重複した探索手段の組合せの一方を削除してもよい。
【0204】
より好ましくは、制御手段81は、可換な探索手段として定義されている組合せが経路に含まれている場合、当該組合せの部分を辞書順にソートし、ソートされた経路に探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが含まれている場合、当該組合せを経路から削除し、前記組合せが削除された経路に情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せが含まれている場合、当該第二の組合せを前記第一の組合せに置換し、置換後の経路に含まれる重複した探索手段の組合せの一方を削除してもよい。
【0205】
図19は、本発明によるセキュリティ情報分析システムの概要を示すブロック図である。本発明によるセキュリティ情報分析システム90(例えば、セキュリティ情報分析システム300,400)は、上述するセキュリティ情報分析装置80と、セキュリティ情報を分析モデルに適用して算出された重みに応じて探索手段を選択する処理、および、選択された探索手段を用いて他のセキュリティ情報を取得する処理を繰り返す評価手段91(例えば、評価部201)と、取得されたセキュリティ情報に基づいて経路を生成する評価結果提供手段92(例えば、評価結果提供部203)とを備えている。
【0206】
そのような構成によれば、より効率的な探索経路をユーザに提供することが可能になる。
【0207】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0208】
(付記1)入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御手段と、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報を記憶する簡約化情報記憶手段とを備え、前記制御手段は、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が前記簡約化情報で定義された組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更することを特徴とするセキュリティ情報分析装置。
【0209】
(付記2)入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成する学習部を備え、前記学習部は、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習する付記1記載のセキュリティ情報分析装置。
【0210】
(付記3)制御手段は、探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが経路に含まれている場合、当該組合せを経路から削除する付記1または付記2記載のセキュリティ情報分析装置。
【0211】
(付記4)制御手段は、情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せが経路に含まれている場合、当該第二の組合せを前記第一の組合せに置換する付記1から付記3のうちのいずれか1つに記載のセキュリティ情報分析装置。
【0212】
(付記5)制御手段は、可換な探索手段として定義されている組合せが経路に含まれている場合、当該組合せの部分を辞書順にソートする付記1から付記4のうちのいずれか1つに記載のセキュリティ情報分析装置。
【0213】
(付記6)制御手段は、経路に含まれる重複した探索手段の組合せの一方を削除する付記1から付記5のうちのいずれか1つに記載のセキュリティ情報分析装置。
【0214】
(付記7)制御手段は、可換な探索手段として定義されている組合せが経路に含まれている場合、当該組合せの部分を辞書順にソートし、ソートされた経路に探索手段による情報収集処理を削除するように簡約化可能な探索手段の組合せが含まれている場合、当該組合せを経路から削除し、前記組合せが削除された経路に情報収集処理を行う探索手段を減少させる組合せである第一の組合せに置換可能な探索手段の組合せである第二の組合せが含まれている場合、当該第二の組合せを前記第一の組合せに置換し、置換後の経路に含まれる重複した探索手段の組合せの一方を削除する付記1から付記6のうちのいずれか1つに記載のセキュリティ情報分析装置。
【0215】
(付記8)付記1から付記7のうちのいずれか1つに記載のセキュリティ情報分析装置と、セキュリティ情報を分析モデルに適用して算出された重みに応じて探索手段を選択する処理、および、選択された探索手段を用いて他のセキュリティ情報を取得する処理を繰り返す評価手段と、取得されたセキュリティ情報に基づいて経路を生成する評価結果提供手段とを備えたことを特徴とするセキュリティ情報分析システム。
【0216】
(付記9)入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返し、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された当該組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更することを特徴とするセキュリティ情報分析方法。
【0217】
(付記10)入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成し、前記分析モデルの作成において、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習する付記9記載のセキュリティ情報分析方法。
【0218】
(付記11)コンピュータに、入力された情報を受け付けてセキュリティ事象に関する情報を表わすセキュリティ情報を提供する情報提供元から前記セキュリティ情報の探索を行う探索手段に対し、前記セキュリティ情報を入力して新たなセキュリティ情報を取得し、取得したセキュリティ情報を前記探索手段に入力してさらに新たなセキュリティ情報を探索する処理を繰り返す制御処理を実行させ、前記制御処理で、前記セキュリティ情報に対する一連の探索に利用する前記探索手段の経路が、得られるセキュリティ情報が増加しない探索手段の組合せを簡約化する方法を定義した簡約化情報で定義された当該組合せを含む場合、当該セキュリティ情報の探索を当該簡約化情報が示す方法に応じた探索に変更させるためのセキュリティ情報分析プログラム。
【0219】
(付記12)コンピュータに、入力として受け付けたセキュリティ情報に応じて1以上の探索手段に関する重みを算出する分析モデルを作成する学習処理を実行させ、前記学習処理で、取得された複数のセキュリティ情報を含む訓練データを用いて、一の当該訓練データに含まれるセキュリティ情報に応じて、当該訓練データに含まれる他のセキュリティ情報を情報提供元から取得できる探索手段の重みが大きくなるように前記分析モデルを学習させる付記11記載のセキュリティ情報分析プログラム。
【符号の説明】
【0220】
100 セキュリティ情報分析装置
101 情報収集部
102 学習部
103 分析モデル記憶部
104 訓練データ供給部
105 情報源
106 簡約化情報記憶部
151 分析モデル学習部
152 経路正規化部
153 経路削除部
154 経路置換部
155 重複経路削除部
161 テーブルA記憶部
162 テーブルB記憶部
163 テーブルC記憶部
200 セキュリティ情報評価装置
201 評価部
202 セキュリティ情報供給部
203 評価結果提供部
300,400 セキュリティ情報分析システム