(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-26
(45)【発行日】2025-06-03
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20250527BHJP
G06F 21/57 20130101ALI20250527BHJP
【FI】
G06F21/55 320
G06F21/57 370
(21)【出願番号】P 2024507454
(86)(22)【出願日】2022-03-18
(86)【国際出願番号】 JP2022012784
(87)【国際公開番号】W WO2023175953
(87)【国際公開日】2023-09-21
【審査請求日】2024-08-16
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】川北 将
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2020-113090(JP,A)
【文献】国際公開第2019/003373(WO,A1)
【文献】中国特許出願公開第113591077(CN,A)
【文献】辻本 真喜子 ほか,ゼロデイ攻撃対策のための宛先ポートごとのアクセス傾向モデルの提案と分析,コンピュータセキュリティシンポジウム2020論文集 [online],日本,情報処理学会,2020年10月19日,p.1002-1009
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出手段と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定手段と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価手段と、
を有する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記深刻度評価手段は、更に、対象の前記脆弱性情報に対する被害事例の有無を表す被害事例有無情報を取得し、前記被害事例有無情報と、前記悪用事例有無情報と、実攻撃の有無の前記判定結果とに基づいて深刻度を算出する、
情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置であって、
前記第一の判定手段に替えて、(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(f)前記判定期間における、あらかじめ生成したモデル曲線と前記曲線の差分を、前記モデル曲線を表すモデル曲線情報と前記曲線情報とを用いて算出し、(g)算出した前記差分とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第二の判定手段と、
を有する情報処理装置。
【請求項4】
請求項1に記載の情報処理装置であって、
抽出手段は、前記脆弱性説明情報から前記第一のプロトコル情報と前記ポート番号情報が抽出できない場合、対象の前記脆弱性に対応するエクスプロイトコードの公開先のテキスト情報から前記第一のプロトコルと前記ポート番号を抽出する、
情報処理装置。
【請求項5】
情報処理装置が、
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出処理と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定処理と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価処理と、
を実行する情報処理方法。
【請求項6】
請求項5に記載の情報処理方法であって、
前記深刻度評価処理は、更に、対象の前記脆弱性情報に対する被害事例の有無を表す被害事例有無情報を取得し、前記被害事例有無情報と、前記悪用事例有無情報と、実攻撃の有無の前記判定結果とに基づいて深刻度を算出する、
情報処理方法。
【請求項7】
請求項5又は6に記載の情報処理方法であって、
前記第一の判定処理に替えて、(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(f)前記判定期間における、あらかじめ生成したモデル曲線と前記曲線の差分を、前記モデル曲線を表すモデル曲線情報と前記曲線情報とを用いて算出し、(g)算出した前記差分とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第二の判定処理
を実行する情報処理方法。
【請求項8】
コンピュータに、
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出処理と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定処理と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価処理と、
を実行させるプログラ
ム。
【請求項9】
請求項8に記載の
プログラムであって、
前記深刻度評価処理は、更に、対象の前記脆弱性情報に対する被害事例の有無を表す被害事例有無情報を取得し、前記被害事例有無情報と、前記悪用事例有無情報と、実攻撃の有無の前記判定結果とに基づいて深刻度を算出する、
プログラ
ム。
【請求項10】
請求項8又は9に記載の
プログラムであって、
前記コンピュータに、
前記第一の判定処理に替えて、(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(f)前記判定期間における、あらかじめ生成したモデル曲線と前記曲線の差分を、前記モデル曲線を表すモデル曲線情報と前記曲線情報とを用いて算出し、(g)算出した前記差分とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第二の判定処理
を実行させるプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野は、サイバセキュリティにおけるリスクアセスメントに用いられる、情報処理装置、情報処理方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
国家、重要インフラ、企業、団体などを狙った不正アクセスによるサイバー攻撃が社会問題となっている。日本では2020年6月の改正個人情報保護法により、サイバー攻撃による個人情報漏洩について件数を問わず、被害者及び個人情報保護委員会への報告が義務化された。
【0003】
すなわち、被害組織は、顧客情報の漏洩、システム障害が発生したことを公表しなければならない。ところが、これらが発生したことをマスメディアに報道された場合、例えば、企業においては、株価の低下、影響範囲の調査など、事後対応に多大な費用がかかる。
【0004】
そこで、このようなビジネスリスクを事前に把握するため、情報システムに内在する脆弱性を洗い出すセキュリティリスクアセスメントが実施されている。
【0005】
関連する技術として特許文献1には不正アクセス統合対応システムが開示されている。特許文献1の不正アクセス統合対応システムによれば、まず、広域コンピュータネットワークに接続されたサイトごとに、サイト内における複数種類の不正アクセスに関するセンサ及び構成機器の各種ログ情報を汎用化したログ形式で集約する。次に、不正アクセス統合対応システムは、集約したログから複数種類のセンサ及び構成機器間のログを関連付けて不正アクセスを統合検知する。
【0006】
関連する技術として特許文献2にはセキュリティ管理装置が開示されている。特許文献2のセキュリティ管理装置によれば、異常検出方式に基づく侵入検知において、なんらかの不正アクセスに関する異常を検出した場合に、どのような不正アクセスを検出したものであるのかを特定する。
【0007】
関連する技術として特許文献3には実運用環境を考慮した脆弱性の深刻度に応じて、効率的に装置の制御を行う情報処理装置が開示されている。特許文献3の情報処理装置によれば、実運用環境情報と脆弱性情報とに基づいて深刻度を算出し、深刻度に応じて情報処理装置を制御する。
【0008】
関連する技術として特許文献4には、複数のコンピュータを含む業務処理システムに対する攻撃を検出し、検出した攻撃による影響を分析する業務処理システム監視装置が開示されている。特許文献4の業務処理システム監視装置によれば、各コンピュータで実行される情報処理活動の重要度と、各コンピュータのシステム構成と、各コンピュータに対する攻撃の検知結果とに基づいて、各コンピュータのうちいずれか一つ以上のコンピュータに対する攻撃の影響を分析する。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2005-202664号公報
【文献】特開2008-167099号公報
【文献】特開2014-174678号公報
【文献】特開2017-211978号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1から4によれば、セキュリティリスクアセスメントによって洗い出された脆弱性に対処するには、システムの改修が必要になる。また、解消すべき脆弱性の個数が増えるにしたがい、コーディング、テストにかかる工数が増大する。したがって、脆弱性の対処を効果的に実施するためには、脆弱性の深刻度を的確に見極める必要がある。
【0011】
脆弱性の深刻度を測る評価手法として、攻撃可能性などを用いて判定するCVSS(Common Vulnerability Scoring System)を用いる方法が知られている。しかし、深刻度が高いと判断された脆弱性のうち、実攻撃に用いられるのは一部であるので、脆弱性の対処に対して費用対効果を十分に得られない。
【0012】
例えば、実攻撃の有無は、観測データによって判断できる。また、リモート攻撃可能な脆弱性は、固有の通信ポートへ一定の攻撃試行があれば実攻撃があったと判断できる。
【0013】
ところが、複数の実攻撃を観測するためには大量の観測装置が必要である。しかし、観測装置の数量を容易に増やすのは困難である。そこで、例えば、複数の通信ポートを一台の観測装置を用いて開くことが考えられる。しかし、攻撃者は、複数の通信ポートが開かれている装置は観測装置である可能性が高いと警戒するので、攻撃試行を中断する可能性がある。
【0014】
一つの目的として、実攻撃の有無を包括的に認識して脆弱性の深刻度を的確に評価する、情報処理装置、情報処理方法、及びプログラムを提供する。
【課題を解決するための手段】
【0015】
上記目的を達成するため、一つの側面における情報処理装置は、
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出部と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定部と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価部と、
を有することを特徴とする。
【0016】
また、上記目的を達成するため、一側面における情報処理方法は、
情報処理装置が、
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出処理と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定処理と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価処理と、
を実行することを特徴とする。
【0017】
さらに、上記目的を達成するため、一側面におけるプログラムは、
コンピュータに、
記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する抽出処理と、
(a)ネットワークに接続された観測装置が、前記第一のプロトコルと前記ポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出し、(b)抽出した前記第二のプロトコルと前記送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数を求めて、度数分布情報を生成し、(c)生成した前記度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出し、(d)生成した前記曲線情報に対して定積分処理を実行して処理結果を算出し、(e)算出した前記処理結果とあらかじめ設定した閾値とを用いて実攻撃の有無を判定する第一の判定処理と、
前記脆弱性情報に含まれる、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報を取得し、前記悪用事例有無情報と、実攻撃の有無の判定結果とに基づいて深刻度を算出する深刻度評価処理と、
を実行させることを特徴とする。
【発明の効果】
【0018】
一つの側面として、実攻撃の有無を包括的に認識して脆弱性の深刻度を的確に評価できる。
【図面の簡単な説明】
【0019】
【
図1】
図1は、情報処理装置の一例を説明するための図である。
【
図2】
図2は、通信件数の度数分布と平滑化の一例を説明するための図である。
【
図3】
図3は、深刻度決定情報のデータ構造を説明するための図である。
【
図4】
図4は、実施形態1の情報処理装置を有するシステムの一例を説明するための図である。
【
図5】
図5は、情報処理装置の動作の一例を説明するための図である。
【
図6】
図6は、判定期間におけるモデル曲線と曲線との差分の一例を説明するための図である。
【
図7】
図7は、変形例2の深刻度決定情報のデータ構造を説明するための図である。
【
図8】
図8は、実施形態1、変形例1から3における情報処理装置を実現するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して実施形態について説明する。なお、以下で説明する図面において、同一の機能又は対応する機能を有する要素には同一の符号を付し、その繰り返しの説明は省略することもある。
【0021】
(実施形態1)
図1を用いて、実施形態1における情報処理装置10の構成について説明する。
図1は、情報処理装置の一例を説明するための図である。
【0022】
[装置構成]
図1に示す情報処理装置10は、実攻撃の有無を包括的に認識し、脆弱性の深刻度を的確に評価する装置である。また、
図1に示すように、情報処理装置10は、抽出部11と、第一の判定部12と、深刻度評価部13とを有する。
【0023】
抽出部11は、記憶装置に記憶されている脆弱性情報に含まれる、脆弱性に関する説明を表す脆弱性説明情報から、通信に用いる第一のプロトコルを表す第一のプロトコル情報とポート番号を表すポート番号情報とを抽出する。
【0024】
記憶装置は、情報処理装置10の外部に設けられたデータベースなどである。記憶装置は、一つ以上の脆弱性情報を記憶している。
【0025】
脆弱性情報は、例えば、公開済みの脆弱性に関する情報(脆弱性情報データベースなどから収集した脆弱性に関する情報)、ゼロディ(脆弱性が公開される前、又は、修正用プログラムがリリースされる前)な脆弱性に関する情報などを用いて、あらかじめ生成された情報である。
【0026】
脆弱性情報データベースとは、脆弱性に関する情報をデータベース化して一般に公開されているプラットフォームで、例えば、CVE(Common Vulnerabilities and Exposures)、NVD(National Vulnerability Database)、JVN(Japan Vulnerability Notes)、JVN iPedia、OSVDB(Open Source Vulnerability Database)などのデータベースである。
【0027】
脆弱性情報は、少なくとも脆弱性識別情報、脆弱性公開日時情報、悪用事例有無情報、リモート攻撃可否情報、脆弱性説明情報、エクスプロイトコード情報、エクスプロイトコード公開日時情報などを有する。
【0028】
脆弱性識別情報は、脆弱性情報それぞれを識別する情報である。例えば、CVE(脆弱性情報データベース)から取得した情報に基づいて生成された脆弱性情報である場合、脆弱性識別情報は、CVE-IDを用いることが考えられる。脆弱性公開日時情報は、脆弱性情報が公開された年月日時を表す情報である。
【0029】
悪用事例有無情報は、対象の脆弱性が悪用された事例が有るか無いかを表す情報である。対象の脆弱性が悪用された事例が有る場合、例えば、悪用事例有無情報Kに「1」を設定する。対象の脆弱性が悪用された事例が無い場合、例えば、悪用事例有無情報Kに「0」を設定する。
【0030】
リモート攻撃可否情報は、対象の脆弱性を利用してリモートで攻撃が実行される可能性があるか否かを表す情報である。リモート攻撃が可能な場合、例えば、リモート攻撃可否情報Rに「1」を設定する。リモート攻撃が可能でない場合、例えば、リモート攻撃可否情報Rに「0」を設定する。
【0031】
脆弱性説明情報は、対象の脆弱性に関する説明を表す情報である。例えば、CVE(脆弱性情報データベース)から取得した情報に基づいて生成された脆弱性情報である場合、脆弱性説明情報は、CVEが公開されているサイトのDescriptionなどに記載されているテキスト情報である。
【0032】
エクスプロイトコード情報は、エクスプロイトコードの公開先を表す情報である。エクスプロイトコードの公開先を表す情報は、例えば、エクスプロイトコードが公開されているサイトのURL(Uniform Resource Locator)などである。エクスプロイトコード公開日時情報は、エクスプロイトコードが公開された年月日時を表す情報である。
【0033】
第一のプロトコル情報とポート番号情報は、例えば、脆弱性説明情報に含まれる第一のプロトコルとポート番号を、正規表現を利用した一般的なテキスト抽出処理により抽出する。
【0034】
なお、脆弱性説明情報から第一のプロトコルとポート番号が得られない場合、例えば、対象の脆弱性に対応するエクスプロイトコードの公開先のテキスト情報から、第一のプロトコルとポート番号を抽出してもよい。
【0035】
第一の判定部12は、まず、ネットワークに接続された観測装置が、第一のプロトコルとポート番号を用いて通信をして得られたログから、第二のプロトコルを表す第二のプロトコル情報と、送信先ポート番号を表す送信先ポート番号情報とを抽出する。
【0036】
ログは、第一のプロトコルとポート番号に対応するソケットを用いて行われた通信の履歴を表す情報である。ログには、少なくとも、通信が行われた年月日時、送信元IPアドレス、第二のプロトコル、送信先ポート番号が記録される。
【0037】
第二のプロトコル情報と送信先ポート番号情報は、例えば、正規表現を利用した一般的なテキスト抽出処理を用いて、ログから抽出される。
【0038】
次に、第一の判定部12は、抽出した第二のプロトコルと送信先ポート番号を用いて、あらかじめ設定された判定期間に、時系列に並べた、あらかじめ設定された複数のサンプリング期間それぞれにおいて通信の件数(通信件数)を求めて、度数分布情報を生成する。
【0039】
判定期間は、あらかじめ設定された開始時点t1(年月日時)と、あらかじめ設定された期間T又は終了時点t2(年月日時))とを用いて表される期間である。開始時点t1は、例えば、脆弱性情報に対するエクスプロイトコードが公開された時点以降の時点(年月日時)である。開始時点t1は、例えば、利用者により設定される。期間T又は終了時点t2は、例えば、実験、シミュレーションの結果、又は、利用者により設定される。なお、判定期間は、例えば、30日などに設定することが考えられる。
【0040】
度数分布情報は、判定期間に、時系列に並べられた複数のサンプリング期間Ts(区間)ごとに行われた通信の件数(通信件数)を表す情報である。サンプリング期間Tsは、例えば、実験、シミュレーションなどの結果に基づいて決定する。なお、サンプリング期間Tsは、一日などに設定することが考えられる。
【0041】
図2は、通信件数の度数分布と平滑化の一例を説明するための図である。
図2には、サンプリング期間Tsごとの通信件数(黒丸)を用いた度数分布グラフが示されている。
【0042】
次に、第一の判定部12は、生成した度数分布情報に対して平滑化処理を実行して曲線を表す曲線情報を算出する。平滑化処理は、例えば、スプライン補間などの処理である。
図2の曲線21は、例えば、サンプリング期間Tsごとに多項式を使用して補間した曲線である。
【0043】
次に、第一の判定部12は、生成した曲線情報に対して定積分処理を実行して処理結果Dを算出する。定積分処理は、判定期間の曲線に対して定積分を実行する処理である。
図2の領域22(斜線範囲)は、定積分処理の処理結果Dを表している。
【0044】
次に、第一の判定部12は、算出した処理結果Dとあらかじめ設定した閾値Thとを用いて実攻撃の有無を判定する。閾値Thは、実攻撃の有無を判定するための情報である。閾値Thは、例えば実験、シミュレーションなどの結果に基づいて決定した値である。
【0045】
処理結果Dが閾値Th以上である場合、実攻撃が有ると判定し、実攻撃の判定結果Aに「1」を設定する。定積分処理の結果Dが閾値Th未満である場合、実攻撃が無いと判定し、実攻撃の判定結果Aに「0」を設定する。
【0046】
深刻度評価部13は、対象の脆弱性が悪用された事例が有るか無いかを表す悪用事例有無情報Kと、実攻撃の有無の判定結果Aとに基づいて深刻度Sを算出する。
【0047】
具体的には、まず、深刻度評価部13は、悪用事例有無情報Kと、実攻撃の有無の判定結果Aとを取得する。次に、深刻度評価部13は、悪用事例有無情報Kと、実攻撃の有無の判定結果Aとを用いて、深刻度Sを決定するための深刻度決定情報を参照し、深刻度Sを求める。
【0048】
深刻度決定情報は、悪用事例の有無と実攻撃の有無とに基づいて深刻度Sを決定する情報である。
図3は、深刻度決定情報のデータ構造を説明するための図である。
【0049】
図3の深刻度決定情報31を用いた場合、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、悪用事例も実攻撃もないので深刻度は「0」(S=0)とする。また、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃有り(A=1)である場合、悪用事例は無いものの実攻撃が有るので深刻度は「1」(S=1)とする。
【0050】
また、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、悪用事例が既に公開されているので深刻度は「2」(S=2)とする。また、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃有り(A=1)である場合、悪用事例が既に公開され、実攻撃も観測されたので深刻度は「3」(S=3)とする。
【0051】
深刻度は、対象の脆弱性がどの程度深刻であるかを表す指標である。
図3の例では、深刻度は、セキュリティ上のリスクを段階的に示す指標である。深刻度(S)を四段階の指標で表す場合、例えば、深刻度が高い順に「3」「2」「1」「0」の指標を設定する。ただし、深刻度(S)は四段階に限定されるものではない。
【0052】
指標それぞれは、例えば、「3」が「緊急」であることを表し、「2」が「重要」であることを表し、「1」が「警告」であることを表し、「0」が「注意」であることを表している。
【0053】
緊急は、例えば、不正プログラムが利用者の操作なしで実行される可能性のある脆弱性であることを示す。重要は、例えば、利用者のデータの機密性、完全性、可用性が侵害される可能性がある脆弱性であることを示す。警告は、脆弱性の悪用が困難であることなどの理由により危険性が緩和される脆弱性であることを示す。注意は、例えば、悪用が非常に困難で影響がわずかな脆弱性であることを示す。
【0054】
次に、深刻度評価部13は、対象の脆弱性に関する、脆弱性識別情報と、悪用事例有無情報Kと、実攻撃の判定結果Aと、深刻度Sと、深刻度Sを評価した年月日時を表す情報とを関連付けて、記憶装置に記憶する。
【0055】
[システム構成]
図4を用いて、実施形態1における情報処理装置10の構成をより具体的に説明する。
図4は、実施形態1の情報処理装置を有するシステムの一例を説明するための図である。
【0056】
図4に示すように、実施形態1におけるシステム100は、情報処理装置10と、記憶装置20と、観測装置30と、出力装置40とを有する。観測装置30は、ネットワーク50に接続されている。
【0057】
情報処理装置10は、例えば、CPU(Central Processing Unit)、又はFPGA(Field-Programmable Gate Array)などのプログラマブルなデバイス、又はGPU(Graphics Processing Unit)、又はそれらのうちのいずれか一つ以上を搭載した回路、サーバコンピュータ、パーソナルコンピュータ、モバイル端末などである。
【0058】
情報処理装置10は、サイバセキュリティにおけるリスクアセスメントに用いられる、情報を分析する装置(情報分析装置)である。
【0059】
記憶装置20は、データベース、サーバコンピュータ、メモリを有する回路などである。記憶装置20は、例えば、脆弱性情報データベースなどを用いてもよい。
図4の例では、記憶装置20は情報処理装置10の外部に設けているが、情報処理装置10の内部に設けてもよい。
【0060】
観測装置30は、通信機能を有するソフトウェアが実装されたコンピュータなどである。観測装置30は、例えば、第一のプロトコルとポート番号を用いて通信をし、少なくとも、通信が行われた年月日時、送信元IPアドレス、第二のプロトコル、送信先ポート番号を、ログとして記憶する装置である。なお、観測装置30は一つ以上設けてもよい。
【0061】
出力装置40は、出力情報生成部16により、出力可能な形式に変換された出力情報を取得し、その出力情報に基づいて、生成した画像及び音声などを出力する。出力装置40は、例えば、液晶、有機EL(Electro Luminescence)、CRT(Cathode Ray Tube)を用いた画像表示装置などである。さらに、画像表示装置は、スピーカなどの音声出力装置などを備えていてもよい。なお、出力装置40は、プリンタなどの印刷装置でもよい。
【0062】
ネットワーク50は、例えば、インターネット、LAN(Local Area Network)、専用回線、電話回線、企業内ネットワーク、移動体通信網、ブルートゥース(登録商標)、WiFi(Wireless Fidelity)などの通信回線を用いて構築された一般的なネットワークである。
【0063】
情報処理装置について詳細に説明する。
図4の例では、情報処理装置10は、少なくとも脆弱性情報取得部14と、抽出部11と、ログ取得部15と、第一の判定部12と、深刻度評価部13と、出力情報生成部16とを有する。なお、抽出部11、第一の判定部12、深刻度評価部13の説明は、既にしたので、それらの説明は省略する。
【0064】
脆弱性情報取得部14は、まず、記憶装置20から対象の脆弱性情報を取得する。次に、脆弱性情報取得部14は、取得した脆弱性情報を抽出部11に出力する。
【0065】
ログ取得部15は、第一のプロトコルとポート番号に基づいて通信をした観測装置30からログを取得する。次に、ログ取得部15は、取得したログを第一の判定部12に出力する。
【0066】
出力情報生成部16は、少なくとも、対象の脆弱性に関する情報と、対象の脆弱性の深刻度Sとを利用者に提示するための出力情報を生成する。次に、出力情報生成部16は、出力情報を出力装置40に出力する。なお、出力情報生成部16は、
図2に示したような度数分布グラフ、曲線などのグラフを出力装置40に出力するための出力情報を生成してもよい。
【0067】
[装置動作]
実施形態1における情報処理装置の動作について
図5を用いて説明する。
図5は、情報処理装置の動作の一例を説明するための図である。以下の説明においては、適宜図を参照する。また、実施形態1では、情報処理装置を動作させることによって、情報処理方法が実施される。よって、実施形態1における情報処理方法の説明は、以下の情報処理装置の動作説明に代える。
【0068】
脆弱性情報取得部14は、まず、記憶装置20から対象の脆弱性情報を取得する(ステップA1)。次に、ステップA1において、対象の脆弱性情報のリモート攻撃可否情報Rと、悪用事例有無情報Kとを参照して、リモート攻撃可否情報が可能でない場合(R=0)、又は、リモート攻撃可否情報が可能である場合(R=1)で、かつ悪用事例有無情報が有る場合(K=1)、ステップA2以降の処理を実行せずに処理を終了する。
【0069】
理由は、リモートから攻撃できない脆弱性はネットワークレイヤでの観測ができないため、対象外とするからである。また、リモートから攻撃できる場合でも、悪用事例有無情報がある場合は、あえて自ら調べる必要が無いため、これも対象外とするからである。
【0070】
ステップA1において、リモート攻撃可否情報が可能である場合(R=1)で、かつ悪用事例有無情報が無い場合(K=0)、ステップA2以降の処理を実行する。その後、脆弱性情報取得部14は、取得した脆弱性情報を抽出部11に出力する。
【0071】
次に、抽出部11は、取得した対象の脆弱性情報に含まれる脆弱性説明情報に対してテキスト抽出処理を実行して、第一のプロトコル情報とポート番号情報とを抽出する(ステップA2)。
【0072】
次に、ログ取得部15は、第一のプロトコルとポート番号に基づいて通信をした観測装置30からログを取得する(ステップA3)。次に、ステップA3において、ログ取得部15は、取得したログを第一の判定部12に出力する。
【0073】
次に、第一の判定部12は、ログ取得部15からログを取得する。次に、第一の判定部12は、取得したログに対してテキスト抽出処理を実行して、第二のプロトコル情報と、送信先ポート番号情報を抽出する(ステップA4)。
【0074】
次に、第一の判定部12は、抽出した第二のプロトコルと送信先ポート番号とを用いて、判定期間における、時系列に並べられた複数のサンプリング期間それぞれで行われた通信の件数(通信件数)を求めて、度数分布情報を生成する(ステップA5)。
【0075】
次に、第一の判定部12は、生成した度数分布情報に対して平滑化処理を実行して曲線情報を算出する(ステップA6)。次に、第一の判定部12は、生成した曲線情報に対して定積分処理を実行して処理結果Dを算出する(ステップA7)。
【0076】
次に、第一の判定部12は、処理結果Dとあらかじめ設定した閾値Thとを用いて実攻撃の有無を判定する(ステップA8)。その後、ステップA8において、第一の判定部12は、実攻撃の有無の判定結果Aを深刻度評価部13に出力する。
【0077】
深刻度評価部13は、悪用事例有無情報Kと、実攻撃の有無の判定結果Aとを取得する。次に、深刻度評価部13は、悪用事例有無情報Kと、実攻撃の有無の判定結果Aとを用いて、深刻度Sを決定するための深刻度決定情報31を参照し、深刻度Sを求める(ステップA9)。
【0078】
次に、深刻度評価部13は、脆弱性識別情報と、悪用事例有無情報Kと、実攻撃の判定結果Aと、深刻度Sと、深刻度Sを評価した年月日時を表す情報とを関連付けて、記憶装置20などに記憶する(ステップA10)。
【0079】
次に、出力情報生成部16は、少なくとも、対象の脆弱性に関する情報と、対象の脆弱性の深刻度Sとを利用者に提示するための出力情報を生成する(ステップA11)。次に、ステップA11において、出力情報生成部16は、出力情報を出力装置40に出力する。
【0080】
上述したステップA1からA11の処理を、記憶装置20に記憶されている一つ以上の脆弱性情報それぞれに対して実行する。また、ステップA1からA11の処理を、あらかじめ設定された一定間隔、又は、不定期に反復して実行する。
【0081】
[実施形態1の効果]
以上のように実施形態1によれば、観測装置30の数を増やさずに、実攻撃の有無を包括的に認識して、脆弱性の深刻度を的確に評価できる。
【0082】
また、脆弱性の深刻度を的確に評価できるので、セキュリティリスクアセスメントによって洗い出された脆弱性への対処において、システムの改修、解消すべき脆弱性の個数が増えても、コーディング、テストにかかる工数を抑制できる。
【0083】
また、CVSSなどを用いた深刻度の判断より、実攻撃に用いられる脆弱性の深刻度を的確に評価できるので、脆弱性の対処に対して費用対効果が十分に得られる。
【0084】
[プログラム]
実施形態1におけるプログラムは、コンピュータに、
図5に示すステップA1からA11を実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、実施形態1における情報処理装置と情報処理方法とを実現することができる。この場合、コンピュータのプロセッサは、脆弱性情報取得部14、抽出部11、ログ取得部15、第一の判定部12、深刻度評価部13、出力情報生成部16として機能し、処理を行なう。
【0085】
また、実施形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されてもよい。この場合は、例えば、各コンピュータが、それぞれ、脆弱性情報取得部14、抽出部11、ログ取得部15、第一の判定部12、深刻度評価部13、出力情報生成部16のいずれかとして機能してもよい。
【0086】
(変形例1)
実施形態1の第一の判定部12では、算出した定積分処理の処理結果Dと、あらかじめ設定した閾値Thとを用いて実攻撃の有無を判定した。
【0087】
変形例1の第一の判定部12(第二の判定部)では、あらかじめ作成したモデル曲線を表すモデル曲線情報と、算出した曲線情報とを用いて、判定期間Tにおける差分を求めて処理結果D1とする。
【0088】
図6は、判定期間におけるモデル曲線と曲線との差分の一例を説明するための図である。具体的は、
図6に示すように、モデル曲線60と曲線21とを用いて、判定期間Tにおける差分(
図6の領域61(斜線範囲)の面積と領域62(斜線範囲)の面積との和)を求めて処理結果D1として用いる。
【0089】
モデル曲線60は、実験、シミュレーションなどの結果を用いて決定する。又は、モデル曲線60は、機械学習などを用いて生成してもよい。
【0090】
具体的には、まず、変形例1の第一の判定部12(第二の判定部)は、判定期間の時点t1から時点t3(交差点)における、モデル曲線60の定積分処理の処理結果Daと、曲線21の定積分処理の処理結果Dbと算出し、処理結果Dbから処理結果Daを差し引いて差分Dsa(Db-Da:
図6の領域61(斜線範囲)の面積)を求める。
【0091】
次に、変形例1の第一の判定部12(第二の判定部)は、判定期間の時点t3(交差点)から時点t2における、モデル曲線60の定積分処理の処理結果Dcと、曲線21の定積分処理の処理結果Ddと算出し、処理結果Dcから処理結果Ddを差し引いて差分Dsb(Dc-Dd:
図6の領域62(斜線範囲)の面積)を求める。
【0092】
次に、変形例1の第一の判定部12(第二の判定部)は、差分Dsaと差分Dsbとの和を求めて、処理結果D1(=Dsa+Dsb)を求める。
【0093】
なお、t3(交差点)が複数ある場合、モデル曲線を関数f(t)、曲線21を関数g(t)としたとき、f(t)-g(t)の“絶対値”をt1からt2において定積分した結果をD1とする。
【0094】
次に、変形例1の第一の判定部12(第二の判定部)は、算出した処理結果D1とあらかじめ設定した閾値Th1とを用いて実攻撃の有無を判定する。閾値Th1は、実攻撃の有無を判定するための情報である。閾値Th1は、例えば、実験、シミュレーションなどの結果に基づいて決定した値である。
【0095】
処理結果D1が閾値Th1以上である場合、実攻撃が有ると判定し、実攻撃の判定結果Aに「1」を設定する。処理結果D1が閾値Th1未満である場合、実攻撃が無いと判定し、実攻撃の判定結果Aに「0」を設定する。
【0096】
以上、変形例1によれば、脆弱性が悪用される回数が時間の経過とともに変化する流行特性を考慮した判定が可能となる。
【0097】
(変形例2)
実施形態1の深刻度評価部13では、悪用事例有無情報Kと、実攻撃の有無の判定結果Aとを用いて、深刻度Sを決定するための深刻度決定情報31を参照し、深刻度Sを求める。
【0098】
変形例2の深刻度評価部13では、まず、
図7に示すような深刻度決定情報71を用いて深刻度Sを求める。
図7は、変形例2の深刻度決定情報のデータ構造を説明するための図である。深刻度決定情報71は、悪用事例有無情報Kと実攻撃の有無の判定結果Aとの組み合わせと、被害事例有無情報Lとに基づいて深刻度Sを決定する情報である。
【0099】
被害事例有無情報Lは、例えば、マスメディアの提供するニュース記事などの被害情報、セキュリティレポートなどの被害情報に基づいて生成された、対象の脆弱性情報に対する被害事例の有無を表す情報である。被害事例有無情報Lは、例えば、記憶装置20などに記憶することが考えられる。
【0100】
図7の深刻度決定情報71を用いた場合、被害事例有無情報が被害事例無し(L=0)で、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、深刻度は「0」(S=0)とする。
【0101】
被害事例有無情報が被害事例有り(L=1)で、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、深刻度は「1」(S=1)とする。
【0102】
被害事例有無情報が被害事例無し(L=0)で、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、深刻度は「2」(S=2)とする。
【0103】
被害事例有無情報が被害事例有り(L=1)で、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃無し(A=0)である場合、深刻度は「3」(S=3)とする。
【0104】
被害事例有無情報が被害事例無し(L=0)で、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃有り(A=1)である場合、深刻度は「1」(S=1)とする。
【0105】
被害事例有無情報が被害事例有り(L=1)で、悪用事例有無情報が悪用事例無し(K=0)で、実攻撃の判定結果が実攻撃無し(A=1)である場合、深刻度は「2」(S=2)とする。
【0106】
被害事例有無情報が被害事例無し(L=0)で、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃有り(A=1)である場合、深刻度は「3」(S=3)とする。
【0107】
被害事例有無情報が被害事例有り(L=1)で、悪用事例有無情報が悪用事例有り(K=1)で、実攻撃の判定結果が実攻撃有り(A=1)である場合、深刻度は「3」(S=3)とする。
【0108】
次に、変形例2の深刻度評価部13は、対象の脆弱性に関する、脆弱性識別情報と、悪用事例有無情報Kと、実攻撃の判定結果Aと、深刻度Sと、深刻度Sを評価した年月日時を表す情報とを関連付けて、記憶装置20に記憶する。
【0109】
変形例2によれば、観測装置30の数を増やさずに、実施形態1よりも、更に、実攻撃の有無を包括的に認識して、脆弱性の深刻度を的確に評価できる。
【0110】
(変形例3)
変形例2の深刻度評価部13では、
図7に示すような深刻度決定情報71を用いて深刻度Sを求める。
【0111】
変形例3の深刻度評価部13では、数1に示す関数を用いて深刻度Sを求める。関数min(x,y)は、xとyのうち小さい方を返す関数である。
【0112】
【0113】
被害事例有無情報、悪用事例有無情報、実攻撃の有無の判定結果を1、0で表すのではなく、小数点を含むリスク値として表現し、深刻度Sを求めてもよい。例えば、被害、悪用、実攻撃の情報ソースの信頼性をソースごとに利用者が設定し、リスク値として用いる。また、被害、悪用、実攻撃のあった地域の全世界に対する割合をリスク値として用いてもよい。
【0114】
変形例3によれば、柔軟にリスク値を設定でき、軽微な事象を過剰に深刻と捉えることなく、深刻度の値を算出できる。
【0115】
[物理構成]
ここで、実施形態1、変形例1から3におけるプログラムを実行することによって、情報処理装置を実現するコンピュータについて
図8を用いて説明する。
図8は、実施形態1、変形例1から3における情報処理装置を実現するコンピュータの一例を示す図である。
【0116】
図8に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU、又はFPGAを備えていてもよい。
【0117】
CPU111は、記憶装置113に格納された、実施形態1、変形例1から3におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、実施形態1、変形例1から3におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、実施形態1、変形例1から3におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。なお、記録媒体120は、不揮発性記録媒体である。
【0118】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0119】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0120】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0121】
なお、実施形態1、変形例1から3における情報処理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。さらに、情報処理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0122】
以上、実施形態を参照して発明を説明したが、発明は上述した実施形態に限定されるものではない。発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0123】
上述した記載によれば、実攻撃の有無を包括的に認識して脆弱性の深刻度を的確に評価できる。また、攻撃の分析が必要な分野において有用である。
【符号の説明】
【0124】
10 情報処理装置
11 抽出部
12 第一の判定部
13 深刻度評価部
14 脆弱性情報取得部
15 ログ取得部
16 出力情報生成部
20 記憶装置
30 観測装置
40 出力装置
50 ネットワーク
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス