(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】シナリオ構築システム、シナリオ構築装置、および、シナリオ構築方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20241203BHJP
【FI】
G06F21/57 370
(21)【出願番号】P 2022001298
(22)【出願日】2022-01-06
【審査請求日】2024-02-22
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】藤井 翔太
(72)【発明者】
【氏名】川口 信隆
(72)【発明者】
【氏名】重本 倫宏
【審査官】塩澤 如正
(56)【参考文献】
【文献】国際公開第2020/105456(WO,A1)
【文献】特開2020-166650(JP,A)
【文献】中国特許出願公開第112351021(CN,A)
【文献】国際公開第2015/128896(WO,A1)
【文献】特開2017-198836(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、
前記脅威情報から前記攻撃技術を抽出し、
抽出した前記攻撃技術に基づいて、前記攻撃技術を実行する手順を定めた攻撃フローを生成し、
攻撃に用いる攻撃コードを前記攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構
築し、
前記プロセッサは、
前記脅威情報において欠損している攻撃技術を推定し、前記攻撃技術を補完した前記攻撃フローを生成する、
ことを特徴とするシナリオ構築システム。
【請求項2】
請求項1に記載のシナリオ構築システムであって、
前記プロセッサは、
攻撃技術の共起関係を示す共起性モデル、あるいは、攻撃技術の遷移関係を示す遷移モデルを用いて、攻撃技術の欠損を推定する、
ことを特徴とするシナリオ構築システム。
【請求項3】
請求項1に記載のシナリオ構築システムであって、
前記プロセッサは、
前記攻撃シナリオを実行することで、サイバー攻撃の耐性評価を行う、
ことを特徴とするシナリオ構築システム。
【請求項4】
請求項3に記載のシナリオ構築システムであって、
前記プロセッサは、
前記攻撃シナリオに含まれる攻撃技術ごとに耐性評価する、
ことを特徴とするシナリオ構築システム。
【請求項5】
請求項4に記載のシナリオ構築システムであって、
前記プロセッサは、
前記攻撃シナリオを実行する評価対象に応じた評価用の模擬環境を構築する、
ことを特徴とするシナリオ構築システム。
【請求項6】
請求項5に記載のシナリオ構築システムであって、
前記プロセッサは、
前記攻撃シナリオに、評価対象の環境に応じた変更を行う、
ことを特徴とするシナリオ構築システム。
【請求項7】
請求項5に記載のシナリオ構築システムであって、
システムを運営するユーザが用いるユーザ端末を備え、
前記ユーザは、前記ユーザ端末を用いて、評価対象の環境に応じた前記攻撃シナリオの変更が可能である、
ことを特徴とするシナリオ構築システム。
【請求項8】
請求項1に記載のシナリオ構築システムであって、
システムを運営するユーザが用いるユーザ端末を備え、
前記プロセッサは、
前記攻撃シナリオを画面に描写するデータを、前記ユーザ端末に出力する、
ことを特徴とするシナリオ構築システム。
【請求項9】
請求項3に記載のシナリオ構築システムであって、
システムを運営するユーザが用いるユーザ端末を備え、
前記プロセッサは、
実行した前記攻撃シナリオの耐性評価に関する結果を画面に描写するデータを、前記ユーザ端末に出力する、
ことを特徴とするシナリオ構築システム。
【請求項10】
請求項8に記載のシナリオ構築システムであって、
前記プロセッサを有するシナリオ構築装置を備え、
前記ユーザ端末と前記シナリオ構築装置は、
それぞれ異なる場所に配置され、
前記シナリオ構築装置は、
クラウド上に配置される、
ことを特徴とするシナリオ構築システム。
【請求項11】
請求項1に記載のシナリオ構築システムであって、
システムを運営する組織とは異なる他組織の端末である他組織端末を備え、
前記プロセッサは、
前記攻撃シナリオを画面に描写するデータを、前記他組織端末に出力する、
ことを特徴とするシナリオ構築システム。
【請求項12】
請求項3に記載のシナリオ構築システムであって、
システムを運営する組織とは異なる他組織の端末である他組織端末を備え、
前記プロセッサは、
実行した前記攻撃シナリオの耐性評価に関する結果を画面に描写するデータを、前記他組織端末に出力する、
ことを特徴とするシナリオ構築システム。
【請求項13】
プロセッサを備え、
前記プロセッサは、
サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、
前記脅威情報から前記攻撃技術を抽出し、
抽出した前記攻撃技術に基づいて、前記攻撃技術を実行する手順を定めた攻撃フローを生成し、
攻撃に用いる攻撃コードを前記攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構
築し、
前記プロセッサは、
前記脅威情報において欠損している攻撃技術を推定し、前記攻撃技術を補完した前記攻撃フローを生成する、
ことを特徴とするシナリオ構築装置。
【請求項14】
プロセッサを用いて行うシナリオ構築方法であって、
サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、
前記脅威情報から前記攻撃技術を抽出し、
抽出した前記攻撃技術に基づいて、前記攻撃技術を実行する手順を定めた攻撃フローを生成し、
攻撃に用いる攻撃コードを前記攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構
築し、
前記脅威情報において欠損している攻撃技術を推定し、前記攻撃技術を補完した前記攻撃フローを生成する、
ことを特徴とするシナリオ構築方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シナリオ構築システム、シナリオ構築装置、およびシナリオ構築方法に関する。
【背景技術】
【0002】
年々サイバー攻撃が増加、高度化しており、対策の必要性が増加している。この対策の一つの例として、新たな脆弱性や攻撃が報告された際、自組織の環境では、攻撃の被害を受けうるか、また被害を受ける場合はどの程度のものが想定されて対策が必要か否か検討するといった業務が存在する。ここで、計算機環境やネットワーク環境のセキュリティ耐性を評価する手法として、ペネトレーションテストがある。これは、同環境に起こり得る攻撃を策定し、机上あるいは場合によっては仮想的に攻撃を実施し、同攻撃への耐性を有しているか評価するものである。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2021-5165号公報
【文献】特表2021-515943号公報
【非特許文献】
【0004】
【文献】Valentine Legoy, Marco Caselli, Christin Seifert, Andreas Peter: Automated Retrieval of ATT&CK Tactics and Techniques for Cyber Threat Reports, https://arxiv.org/abs/2004.14322
【文献】Seungoh Choi, Jeong-Han Yun, and Byung-Gil Min: Probabilistic Attack Sequence Generation and Execution Based on MITRE ATT&CK for ICS Datasets, Cyber Security Experimentation and Test Workshop, https://dl.acm.org/doi/abs/10.1145/3474718.3474722
【発明の概要】
【発明が解決しようとする課題】
【0005】
ペネトレーションテスト等によって計算機環境やネットワーク環境の攻撃耐性を評価することは、セキュリティを保つうえで重要である一方で、その多く(攻撃シナリオ構築、耐性評価、等)が現状は人手かつ高度なスキルが必要なものである。このため、年々攻撃が増加している現状からは、全ての攻撃に対して手動で上記のオペレーションを実施するのは容易ではないと考えられる。
【0006】
ここで、ペネトレーションテストを実施するに際して、まず攻撃シナリオを構築する必要があり、どのようなテストを行うかはこの攻撃シナリオに依存することから、最も重要な手順であると言える。この攻撃シナリオの構築に際しては、まず脅威情報からの攻撃シナリオの抽出が担当者の知見に依存する部分が大きく、実施コストの大きさや属人性の高さが課題として挙げられる。
【0007】
特許文献1の技術は発生しうるインシデントのシナリオを生成することに焦点を当てており、実際に発生した攻撃のシナリオの生成や同攻撃の影響有無の評価を目的とした技術とはスコープが別である。特許文献2の技術は、テスト用の環境作成に焦点を当てており、その環境で実施するスキャンやテストについては別途作成する必要がある。非特許文献1の技術は、攻撃技術の抽出に留まっており、攻撃技術を組み合わせての攻撃シナリオの構築までは実施しておらず、別途手動で実施する必要がある。非特許文献2の技術は、攻撃技術の入力が手動である点、人手で攻撃シーケンス生成の条件をチューニングする必要がある点等の制約が存在する。
【0008】
攻撃シナリオの構築を支援あるいは自動化することで、ペネトレーションテストの実施に係る課題を緩和することが期待できる。そして、それを部分的に達成する既存技術は存在するものの、課題は残存しているという現状にある。
【0009】
そこで、本発明は、実施コストや属人性をより適切に低減して攻撃シナリオを構築することができるシナリオ構築システム、シナリオ構築装置、および、シナリオ構築方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の態様によれば、下記のシナリオ構築システムが提供される。シナリオ構築システムは、プロセッサを備える。プロセッサは、サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、脅威情報から攻撃技術を抽出し、抽出した前記攻撃技術に基づいて、攻撃技術を実行する手順を定めた攻撃フローを生成し、攻撃に用いる攻撃コードを攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構築する。
【0011】
本発明の第2の態様によれば、下記のシナリオ構築装置が提供される。シナリオ構築装置は、プロセッサを備える。プロセッサは、サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、脅威情報から攻撃技術を抽出し、抽出した攻撃技術に基づいて、攻撃技術を実行する手順を定めた攻撃フローを生成し、攻撃に用いる攻撃コードを攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構築する。
【0012】
本発明の第3の態様によれば、下記のシナリオ構築方法が提供される。シナリオ構築方法は、プロセッサを用いて行う方法である。この方法は、サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、脅威情報から前記攻撃技術を抽出し、抽出した前記攻撃技術に基づいて、攻撃技術を実行する手順を定めた攻撃フローを生成し、攻撃に用いる攻撃コードを攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構築する。
【発明の効果】
【0013】
本発明によれば、実施コストや属人性をより適切に低減して攻撃シナリオを構築することができるシナリオ構築システム、シナリオ構築装置、および、シナリオ構築方法が提供される。なお、上記以外の課題、構成、及び効果は、以下の発明を実施するための形態の説明により明らかにされる。
【図面の簡単な説明】
【0014】
【
図1】第1実施形態に係り、システム全体の構成例を示した図である。
【
図4】攻撃コードデータベースの一例を示す図である。
【
図6】攻撃シナリオベースペネトレーションシステムが実行する処理の一例の概要を説明するフローチャートである。
【
図7】脅威情報収集処理の一例を説明するフローチャートである。
【
図8】攻撃技術抽出処理の一例を説明するフローチャートである。
【
図9】欠損項目推定および攻撃フロー生成処理の一例を説明するフローチャートである。
【
図10】共起性モデルと遷移モデルを用いた処理の一例を説明する図である。
【
図11】攻撃シーケンス生成処理の一例を説明するフローチャートである。
【
図12】画面描写処理の一例を説明するフローチャートである。
【
図13】攻撃シナリオに関する情報の表示の一例である。
【
図14】第2実施形態に係り、システム全体の構成例を示した図である。
【
図17】環境情報取得処理の一例を説明するフローチャートである。
【
図18】模擬環境構築処理の一例を説明するフローチャートである。
【
図19】攻撃実行、影響評価処理の一例を説明するフローチャートである。
【
図20】評価結果通知処理の一例を説明するフローチャートである
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を、図面を用いて説明する。ただし、本発明は以下に示す実施形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0016】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略することがある。
【0017】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0018】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【0019】
<第1実施形態>
図1から
図13を参照しながら、第1実施形態について説明する。第1実施形態では、攻撃シナリオを自動生成する場合における攻撃シナリオベースペネトレーションシステム(シナリオ構築装置)の処理について示す。以降の説明において、「攻撃技術」は、例えば、潜伏、情報窃取や横展開等のサイバー攻撃における攻撃の手口を定義する。「攻撃コード」は、各攻撃技術を実行するための具体的なコードやプログラム等を示す。「攻撃シーケンス」は、各攻撃技術や攻撃コードがどのような順番で実行されるかの情報を含むシーケンスを意味する。また、これらをすべて含むものを「攻撃シナリオ」と呼称する。
【0020】
先ず、
図1を参照しながら、攻撃シナリオベースペネトレーションシステムの構成の一例について説明する。
図1は、本発明の実施形態に係る攻撃シナリオベースペネトレーションシステムの構成例を示している。攻撃シナリオベースペネトレーションシステム101は、ネットワーク118aを介してユーザが操作するユーザ端末(117a、117b、117c)に接続される。また、攻撃シナリオベースペネトレーションシステム101は、ネットワーク118bを介してインターネット119に接続される。
【0021】
攻撃シナリオベースペネトレーションシステム101は、一例として、CPU(Central Processing Unit)103と、CPU103が処理を実行するデータを一時的に記憶するためのメインメモリ104と、プログラムや大量のデータを記憶する容量を持つハードディスクやフラッシュメモリなどの非一時的な記憶装置105と、通信を行なうためのインタフェースであるIF(102a、102b)と、USBメモリ(USBフラッシュドライブ)や外付けのハードディスクなどの入出力インタフェースを構成する入出力装置106と、これらの各装置を接続する通信路107と、を備えるコンピュータである。なお、通信路107は、例えば、バスやケーブルなどの情報伝達媒体である。プログラムやデータは予め記憶装置105に格納されていてもよいし、外部の非一時的な記憶媒体を備えた装置からネットワーク経由で、または可搬型の非一時的記憶媒体経由で記憶装置105に導入されてもよい。
【0022】
CPU103(プロセッサ)は、記憶装置105に格納されメインメモリ104に読み出された各種のプログラムを実行する。CPU103は、脅威情報収集プログラム108を実行することにより、脅威情報を収集する。CPU103は、攻撃技術抽出プログラム109を実行することにより、脅威情報からの攻撃技術の抽出を行う。CPU103は、欠損項目推定および攻撃フロー生成プログラム110を実行することにより、抽出した攻撃技術の欠損項目の推定と攻撃フロー化を行う。CPU103は、攻撃シーケンス生成プログラム111を実行することにより、攻撃フローと攻撃コードを紐づけ、攻撃シーケンスの生成を行う。CPU103は、画面描写プログラム112を実行することにより、前記プログラム群により構築した攻撃シナリオに関する情報の利用者などへの提示を行う。
【0023】
記憶装置105には、脅威情報収集プログラム108による情報収集先を管理する情報収集先管理表113、収集した脅威情報を保管する脅威情報一覧114、攻撃技術と攻撃コードを紐づけるための知識ベースである攻撃コードデータベース115、構築した攻撃シナリオを保管する攻撃シナリオ一覧116が格納されている。
【0024】
なお、上記の各プログラムやデータは、一例として、予めメインメモリ104または記憶装置105に格納されていてもよいし、必要な時に、入出力装置106、または、IF(102a、102b)を介して、他の装置からインストール(ロード)されても良い。
【0025】
また、
図1を用いて説明した攻撃シナリオベースペネトレーションシステム101の構成は、一例であって、これに限定されない。例えば、所定の処理を実行するプロセッサであればよく、CPU103は、他の半導体デバイスであってもよい。また、入出力装置106を介したデータの入出力を行わない場合には、入出力装置106が省略されてもよい。また、メインメモリ104は、RAM(Random Access Memory)を用いて構成することができる。ユーザ端末(117a、117b、117c)は、一例として、適宜の入力装置や出力装置を用いて構成することができ、ユーザ端末(117a、117b、117c)は、攻撃シナリオベースペネトレーションシステム101(シナリオ構築装置)を備えるシナリオ構築システムにおいて、複数台設けられてもよいし、1台設けられてもよい。
【0026】
次に、
図2から
図5を参照しながら、上記した各種のデータ(113~116)について説明する。先ず、
図2を参照しながら、情報収集先管理表113の一例について説明する。情報収集先管理表113は、上記したように、脅威情報の収集先を適宜にまとめたデータとされる。
図2は、情報収集先管理表の一例を示す図である。
【0027】
図2に示すように、情報収集先管理表113は、例えば、ID201と、名称202と、URL203と、最終収集日時204と、収集頻度205と、を含んで構成される。
【0028】
ID201は、脅威情報収集先を一意に識別するための識別情報を格納するフィールドである。情報収集先を示すID201(脅威情報収集先IDと呼ぶことがある)には、一例として、数字が識別情報として格納される。
【0029】
名称202は、脅威情報収集先の名称を格納するフィールドである。例えば、脅威情報収集先ID201が「0」のエントリに対応する収集先の名称は、「セキュリティブログ1」であることを表す。
【0030】
URL203は、脅威情報収集先のURLを格納するフィールドである。例えば、脅威情報収集先ID201が「0」のエントリに対応する収集先は、「blog.example.com」であることを表す。
【0031】
最終収集日時204は、脅威情報収集先から脅威情報を取得した日時を表す。例えば、脅威情報収集先ID201が「0」のエントリは、1970年1月1日の00時00分00秒に、該集先から情報収集を行ったことを表す。なお、最終収集日時204に格納される時刻のデータ形式は、限定されず、Unixtime等、時刻が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0032】
収集頻度205は、脅威情報収集先から脅威情報を収集する頻度を表す。例えば、脅威情報収集先ID201が「0」のエントリについては、24時間ごとに情報収集を試みることを表す。
【0033】
また、
図2で説明した情報収集先管理表113は、一例であって、これに限定されない。
【0034】
次に、
図3を参照しながら、脅威情報一覧114の一例について説明する。脅威情報一覧114は、上記したように、収集した脅威情報に関する情報をまとめたデータである。
図3は、脅威情報一覧の一例を示す図である。
【0035】
図3に示すように、脅威情報一覧114は、例えば、ID301と、収集日302と、URL303と、攻撃シナリオ304と、を含んで構成される。
【0036】
ID301は、脅威情報を一意に識別するための識別情報を格納するフィールドである。脅威情報を示すID301(脅威情報IDと呼ぶことがある)には、一例として、数字が識別情報として格納される。
【0037】
収集日302は、脅威情報を取得した日時を格納するフィールドである。例えば、脅威情報ID301が「0」のエントリの脅威情報は、1970年1月1日の00時00分00秒に収集したことを表す。なお、収集日302に格納される時刻のデータ形式は、限定されず、Unixtime等、時刻が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0038】
URL303は、脅威情報のURLを格納するフィールドである。例えば、脅威情報ID301が「0」のエントリに対応する収集先は、「blog.example.com/article/1.html」であることを表す。
【0039】
攻撃シナリオ304は、脅威情報に関して、攻撃シナリオが生成済みか否かを表す値を格納するフィールドである。例えば、脅威情報ID301が「0」のエントリの脅威情報は、攻撃シナリオを生成済みであることを表す。攻撃シナリオ304に格納されるデータ形式は、限定されず、攻撃シナリオの生成有無が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0040】
また、
図3で説明した脅威情報一覧114は、一例であって、これに限定されない。
【0041】
次に、
図4を参照しながら、攻撃コードデータベース115の一例について説明する。攻撃コードデータベース115は、一例として、攻撃技術と攻撃コードの対応に関する情報をまとめたデータベースとされる。
図4は、攻撃コードデータベースの一例を示す図である。
【0042】
図4に示すように、攻撃コードデータベース115は、例えば、攻撃技術401と、攻撃コード402と、を含んで構成される。
【0043】
攻撃技術401は、攻撃技術を一意に識別するための識別情報を格納するフィールドである。例えば、攻撃技術401の最上段のエントリの攻撃技術は、「攻撃技術A」であることを表す。なお、攻撃技術401に格納されるデータ形式は、限定されず、攻撃技術が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0044】
攻撃コード402は、攻撃技術に対応する具体的な攻撃コードを格納するフィールドである。例えば、攻撃コード402の最上段のエントリの攻撃コードは、「cd $HOME && find . -print | sed …」であることを表す。なお、攻撃コード402に格納されるデータ形式は、限定されず、攻撃コードが判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0045】
また、
図4で説明した攻撃コードデータベース115は、一例であって、これに限定されない。
【0046】
次に、
図5を参照しながら、攻撃シナリオ一覧116の一例について説明する。攻撃シナリオ一覧116は、上記したように、構築した攻撃シナリオの内容に関する情報である。
図5は、攻撃シナリオ一覧の一例を示す図である。
【0047】
図5に示すように、攻撃シナリオ一覧116は、例えば、ステップ501と、攻撃技術502と、攻撃コード503と、を含んで構成される。
【0048】
ステップ501は、攻撃技術の実施順(手順)を一意に識別するための識別情報を格納するフィールドである。ステップ501には、一例として、数字が識別情報として昇順に格納される。
【0049】
攻撃技術502は、各ステップで実行される攻撃技術を一意に識別するための識別情報を格納するフィールドである。例えば、ステップ501が「0」の攻撃技術は、「攻撃技術A」であることを表す。なお、攻撃技術502に格納されるデータ形式は、限定されず、攻撃技術が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0050】
攻撃コード503は、各ステップで実行される攻撃技術に対応する具体的な攻撃コードを格納するフィールドである。例えば、ステップ501が「0」の攻撃コードは、「ls-recurse」であることを表す。なお、攻撃コード503に格納されるデータ形式は、限定されず、攻撃コードが判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0051】
また、
図5で説明した攻撃シナリオ一覧116は、一例であって、これに限定されない。
【0052】
次に、攻撃シナリオベースペネトレーションシステム101が実行する処理の一例について説明する。
図6は、攻撃シナリオベースペネトレーションシステムが実行する処理の一例の概要を説明するフローチャートである。
【0053】
攻撃シナリオベースペネトレーションシステム101のCPU103は、プログラムを適宜に実行することにより、以下で説明する処理を周期的に実行する。
【0054】
CPU103は、脅威情報収集プログラム108を実行して、外部から脅威情報の収集を行う(ステップ601)。なお、脅威情報収集の処理は、後で詳しく説明する。
【0055】
次に、CPU103は、収集した情報に新規情報が含まれるか判定する(ステップ602)。CPU103が新規情報を含まないと判定した場合、攻撃シナリオベースペネトレーションシステム101は、処理を終了する。その一方で、CPU103が新規情報を含むと判定した場合、ステップ603に処理が進む。
【0056】
次に、攻撃シナリオベースペネトレーションシステム101のCPU103は、脅威情報として取得した全新規情報に対して攻撃シナリオ生成処理を実行する(ステップ603)。具体的には、CPU103は、攻撃技術抽出プログラム109を実行して、脅威情報から攻撃技術を抽出する(ステップ604)。そして、ステップ605に処理が進む。なお、脅威技術抽出の処理は、後で詳しく説明する。
【0057】
次に、CPU103は、欠損項目推定および攻撃フロー生成プログラム110を実行して、抽出した攻撃技術の欠損項目の推定と攻撃フローの生成を行う(ステップ605)。なお、欠損項目の推定と攻撃フローの生成は、後で詳しく説明する。
【0058】
次に、CPU103は、攻撃シーケンス生成プログラム111を実行して、攻撃フローを基に攻撃シーケンスを生成する(ステップ606)。攻撃シーケンスの生成は、後で詳しく説明する。
【0059】
CPU103は、全新規情報に対して上記処理(ステップ603~ステップ606)を実施し、完了後に攻撃シナリオ生成処理を終了する。
【0060】
なお、
図6で説明した攻撃シナリオベースペネトレーションシステムの処理フローは、一例であって、これに限定されない。
【0061】
次に、
図7を参照しながら、攻撃シナリオベースペネトレーションシステム101が実行する脅威情報収集の処理の一例について詳しく説明する。
図7は、脅威情報収集処理の一例を説明するフローチャートである。
【0062】
CPU103によって実行される脅威情報収集プログラム108は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0063】
脅威情報収集プログラム108は、情報収集先管理表113から情報収集先の一覧を取得し、一覧に基づいて脅威情報を収集する(ステップ701)。ここでは、脅威情報収集先ID201から構成されるエントリを含む一覧が取得されるとする。なお、脅威情報収集プログラム108の処理において、CPU103は、情報収集先管理表113の最終収集日時204と収集頻度205を参照し、脅威情報収集先の最終収集日時204からプログラム実行までの経過時間を算出する。そして、CPU103は、該経過時間が収集頻度205を超過していた場合に脅威情報収集処理を実施する。
【0064】
次に、脅威情報収集プログラム108は、収集した脅威情報に新規情報が含まれるか判定する(ステップ702)。新規情報が含まれない場合、処理が終了する。新規情報が含まれる場合、ステップ703へ処理が進む。
【0065】
次に、脅威情報収集プログラム108は、取得した脅威情報を脅威情報一覧114へ保存し(ステップ703)、その後、処理を終了する。具体的には、脅威情報収集プログラム108は、脅威情報一覧114にエントリを追加し、追加されたエントリにID301を付与し、脅威情報の収集日を収集日302に、脅威情報のURLをURL303に格納する。また、脅威情報収集プログラム108は、攻撃シナリオ304を「未生成」として作成する。
【0066】
なお、
図7で説明した脅威情報収集の方法は、一例であって、これに限定されない。攻撃シナリオベースペネトレーションシステム101は、一例として、インターネット119を介して、外部から脅威情報を適宜に収集することができる。この場合、例えば、攻撃シナリオベースペネトレーションシステム101は、情報収集先管理表113のURL203などを参照して、所定の収集頻度で脅威情報を自動的に取得してもよい。
【0067】
その一方で、攻撃シナリオベースペネトレーションシステム101には、入出力装置106を介して脅威情報が入力されてもよい。この場合、一例として、所定の脅威情報(例えば、URL203先の脅威情報)を格納するUSBメモリ等を用いて、脅威情報が入力されてもよい。そして、その脅威情報の入力に応じて、脅威情報一覧114等のデータの更新が適宜に行われてもよい。
【0068】
次に、
図8を参照しながら、攻撃シナリオベースペネトレーションシステム101が実行する攻撃技術抽出の処理の一例について詳しく説明する。
図8は、攻撃技術抽出処理の一例を説明するフローチャートである。
【0069】
CPU103によって実行される攻撃技術抽出プログラム109は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0070】
攻撃技術抽出プログラム109は、脅威情報一覧114から脅威情報の一覧を取得する(ステップ801)。ここでは、ID301から構成されるエントリを含む一覧が取得されるとする。
【0071】
次に、攻撃技術抽出プログラム109は、攻撃シナリオが未生成である脅威情報に対して、ステップ803以降の攻撃技術抽出処理を実行する(ステップ802)。この際、攻撃シナリオが未生成である脅威情報が存在しない場合、処理が終了する。
【0072】
攻撃技術抽出プログラム109は、文字列を有する脅威情報に対して、適宜の文字列マッチングを行うことにより、脅威情報から攻撃技術を抽出し(ステップ803)、ステップ804に進む。ここで、ステップ803は、例えば、攻撃技術の定型表現を利用し、該表現と一致したものを攻撃技術として抽出する。また、種々のフレームワーク等によって攻撃技術に識別子が付与されている脅威情報もあることが考えられる。そこで、該識別子を利用して攻撃技術が記載されている場合、該識別子と一致した表現が攻撃技術として抽出されてもよい。
【0073】
次に、攻撃技術抽出プログラム109は、機械学習モデルを用いて脅威情報から攻撃技術を抽出し(ステップ804)、ステップ805に進む。例えば、攻撃技術の記述に利用される表現を機械学習で事前にモデリングしておく。そして、脅威情報中の表現との類似性を取り、類似性の高い表現が見られた場合は、モデリングした攻撃表現が脅威情報に含まれるとして抽出する。これにより、ステップ803で行うような処理で漏らしてしまった攻撃技術についても抽出を図る。
【0074】
次に、攻撃技術抽出プログラム109は、ステップ804までに抽出した攻撃技術を攻撃シナリオ一覧116に反映する(ステップ805)。具体的には、脅威情報毎に攻撃シナリオ一覧を用意し、攻撃技術502へ攻撃技術を格納する。全ての脅威情報について攻撃技術を抽出した後、処理を終了する。
【0075】
なお、
図8で説明した攻撃技術抽出処理は、一例であって、これに限定されない。例えば、この例では攻撃技術の抽出に焦点を当てた処理を述べたが、脅威情報から攻撃グループ名やマルウェア名を抽出し、攻撃シナリオの補完情報として保持しても良い。また、攻撃技術抽出処理においては、脅威情報から攻撃技術が適切に抽出されればよく、例えば、脅威情報のボリュームなどを考慮して、ステップ803およびステップ804の一方だけを実行するなどの変更が行われてもよい。
【0076】
このようにして、攻撃技術抽出処理に基づいて、脅威情報から攻撃技術が抽出されるが、脅威情報に記載されている攻撃技術は必ずしも網羅されているとは限らず、攻撃技術の抜けがある場合があり得る。すなわち、脅威情報において攻撃技術が欠損している場合がある。そこで、実施形態に係る攻撃シナリオベースペネトレーションシステム101は、攻撃技術の抜けを推定して攻撃技術を適宜に補完する。次に、
図9を参照しながら、攻撃シナリオベースペネトレーションシステム101が実行する欠損項目推定および攻撃フロー生成処理の一例について詳しく説明する。
図9は、欠損項目推定および攻撃フロー生成処理の一例を説明するフローチャートである。
【0077】
CPU103によって実行される欠損項目推定および攻撃フロー生成プログラム110は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0078】
欠損項目推定および攻撃フロー生成プログラム110は、脅威情報一覧114から脅威情報の一覧を取得する(ステップ901)。ここでは、ID301から構成されるエントリを含む一覧が取得されるとする。
【0079】
次に、欠損項目推定および攻撃フロー生成プログラム110は、該プログラム110による処理が未完了な攻撃シナリオに対してステップ903以降の処理を行い、その結果を攻撃シナリオに反映させる(ステップ902)。この際、処理が未完了な攻撃シナリオが存在しない場合、処理が終了する。
【0080】
欠損項目推定および攻撃フロー生成プログラム110は、攻撃技術同士の共起性を基に欠損項目を抽出し(ステップ903)、ステップ904に進む。欠損項目推定および攻撃フロー生成110は、例えば、事前に知識ベースとして攻撃技術間の共起性を算出しておき、すでに抽出している攻撃技術群と共起性が高いものを欠損項目として抽出する。
【0081】
次に、欠損項目推定および攻撃フロー生成プログラム110は、遷移モデルを基に欠損項目を抽出した後、攻撃フロー化し(ステップ904)、ステップ905に進む。欠損項目推定および攻撃フロー生成プログラム110は、例えば、事前に攻撃技術の遷移モデルを構築しておき,抽出済みの攻撃技術をすべて通過する制約条件の下で経路問題を解いた際に入力に含まれない経路上の攻撃技術を欠損項目として抽出する。また、これにより攻撃技術の遷移が導出されるため、これを攻撃フローとする。
【0082】
次に、欠損項目推定および攻撃フロー生成プログラム110は、ステップ904までに抽出した攻撃技術と、遷移情報から成る攻撃フローと、を攻撃シナリオ一覧116に反映する(ステップ905)。具体的には、攻撃技術抽出プログラム109によって、脅威情報毎に記録された攻撃シナリオ一覧116に対し、欠損項目として抽出した攻撃技術があれば攻撃技術502を更新するとともに、攻撃フローの順番に基づいてステップ501を付与する。そして、全ての未完了の攻撃シナリオについて処理を実施した後、処理が終了する。
【0083】
ここで、
図10を参照しながら、上記したステップ903とステップ904の処理の一例について具体的に説明する。
図10に示すように、欠損項目推定および攻撃フロー生成プログラム110は、脅威情報から抽出された攻撃技術を共起性モデルに入力することで、攻撃技術の抜け(欠損)を推定する。そして、攻撃技術の抜けが推定された場合、この攻撃技術が補完される。ここで、共起性モデルは、攻撃技術の共起関係を示すモデルであり、事前に知識ベースとして攻撃技術間の共起性を算出しておくことで構築される。なお、
図10において、実線のエッジは、共起性が高いことを示しており、点線のエッジは、共起性が低いことを示している。従って、この例では、攻撃技術(A、D)が入力されることで、共起性が高い攻撃技術Eの抜けが推定され、攻撃技術Eが補完される。
【0084】
更に、欠損項目推定および攻撃フロー生成プログラム110は、遷移モデルを用いて、攻撃技術の欠損を推定し、攻撃技術を補完する。また、欠損項目推定および攻撃フロー生成プログラム110は、攻撃技術の攻撃フローを生成する。ここで、遷移モデルは、攻撃技術の遷移関係を示すモデルであり、ログなどを利用して事前に構築される。
【0085】
欠損項目推定および攻撃フロー生成プログラム110は、脅威情報から抽出された攻撃技術、および、共起性の観点から推定された攻撃技術を制約条件として、遷移モデルを経路問題として解くことで、攻撃技術の欠損を推定して補完し、攻撃フローを生成する。従って、
図10の例では、欠損項目推定および攻撃フロー生成プログラム110は、攻撃技術(A、D、E)を制約条件として、遷移モデルを経路問題として解くことで、攻撃技術Bの欠損を推定し、攻撃技術Bを補完した攻撃フロー(A、B、D、E)を生成する。なお、遷移モデルにおける数字は、遷移のし易さ(遷移の確率)を示しており、基本的には遷移のし易い経路に関する攻撃フローが生成されるが、この例では、制約条件により、上記の攻撃フロー(A、B、D、E)が生成される。このように、本実施形態では、ステップ903およびステップ904の組み合わせにより、脅威情報の欠損を推定し、欠損があった場合には補完した攻撃フローを生成する処理を行う。
【0086】
なお、
図9等で説明した欠損項目推定および攻撃フロー生成処理は、一例であって、これに限定されない。例えば、脅威情報からから抽出した攻撃グループ名やマルウェア名を用いて、それらでよく使われる攻撃技術を補完しても良い。
【0087】
また、
図10で説明した処理を行うことが、精度の観点から好ましいが、適宜に変更してもよい。例えば、脅威情報のボリュームなどを考慮して、ステップ903およびステップ904の一方を実行するなどの変更が行われてもよい。ここで、ステップ904の処理を省略する場合では、ステップ903において攻撃技術の抜け(欠損)を推定して補完し、攻撃フローを生成してもよい。例えば、
図10に示すように、攻撃技術(A、D)に基づいて攻撃技術Eの抜けを推定した場合、攻撃技術Eを補完した攻撃フロー(A、E、D)を生成してもよい。その一方で、ステップ903の処理を省略する場合では、ステップ904において、脅威情報から抽出された攻撃技術の制約条件の基で、攻撃技術の欠損を推定して補完し、攻撃フローを生成してもよい。例えば、
図10の場合では、抽出した攻撃技術(A、D)を制約条件として、攻撃技術(B、E)の欠損を推定し、攻撃技術(B、E)を補完した攻撃フロー(A、B、D、E)を生成してもよい。
【0088】
次に、
図11を参照しながら、攻撃シナリオベースペネトレーションシステム101が実行する攻撃シーケンス生成処理の一例を説明する。
図11は、攻撃シーケンス生成処理の一例を説明するフローチャートである。攻撃シーケンス生成処理では、生成された攻撃フローにおける攻撃技術に、攻撃コードを紐づける処理が行われる。
【0089】
CPU103によって実行される攻撃シーケンス生成プログラム111は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0090】
攻撃シーケンス生成プログラム111は、脅威情報一覧114から脅威情報の一覧を取得する(ステップ1101)。ここでは、ID301から構成されるエントリを含む一覧が取得されるとする。
【0091】
次に、攻撃シーケンス生成プログラム111は、攻撃シナリオの生成が未完了である脅威情報の攻撃技術に対してステップ1103以降の攻撃コードの紐づけ処理を実行する(ステップ1102)。この際、攻撃シナリオの生成が未完了である脅威情報が存在しない場合、処理を終了する。
【0092】
次に、攻撃シーケンス生成プログラム111は、脅威情報から攻撃技術に紐づく攻撃コードを抽出し(ステップ1103)、ステップ1104に進む。例えば、攻撃技術の周辺等に具体的な攻撃コードが記載されている場合、それを抽出する。
【0093】
次に、攻撃シーケンス生成プログラム111は、ステップ1103において脅威情報からの攻撃コードの抽出と紐付けに失敗した攻撃技術については、攻撃コードデータベース115を用いた攻撃コードとの紐付けを実施し(ステップ1104)、ステップ1005に進む。例えば、上記したように、事前に攻撃技術401毎に典型的な攻撃コード402を有する攻撃コードデータベース115を構築しておき、攻撃技術と攻撃コードの紐付けを行う。
【0094】
なお、ステップ1103およびステップ1104の処理では、上記した欠損項目推定および攻撃フロー生成処理において補完した攻撃技術についても攻撃コードの紐づけが行われる。
【0095】
次に、攻撃シーケンス生成プログラム111は、ステップ1104までに抽出した攻撃技術に紐づいた攻撃コードを攻撃シナリオ一覧116に反映する(ステップ1105)。具体的には、攻撃技術抽出プログラム109と欠損項目推定および攻撃フロー生成プログラム110によって、脅威情報毎に記録された攻撃シナリオ一覧に対し、攻撃技術毎に攻撃コード503を更新し、攻撃シナリオとして完成させる。また、脅威情報一覧114の攻撃シナリオ304を「生成済」と更新する。攻撃シーケンス生成プログラム111は、全ての攻撃シナリオの生成が未完了な脅威情報について、攻撃シーケンスの生成と、攻撃シーケンスに基づく攻撃シナリオ化と、を実施した後、処理を終了する。
【0096】
なお、
図11で説明した攻撃シーケンス生成処理は、一例であって、これに限定されない。例えば、脅威情報から抽出した攻撃グループ名やマルウェア名を用いて、それらでよく使われる攻撃コードを攻撃技術と紐付けても良い。また、攻撃シーケンス生成処理においては、攻撃技術に対応する攻撃コードが適切に取得されればよく、例えば、ステップ1103およびステップ1104の一方を実行するなどの変更が行われてもよい。
【0097】
攻撃シナリオベースペネトレーションシステム101は、
図6で説明した処理とは別に、ユーザに対して各種情報を提示するための画面描写処理を実行する。これにより、攻撃シナリオに関する画面に描写するデータが出力され、各種情報が適宜の表示装置に出力される。次に、
図12を参照しながら、画面描写処理の一例を説明する。
図12は、画面描写処理の一例を説明するフローチャートである。
【0098】
CPU103によって実行される画面描写プログラム112は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0099】
画面描写プログラム112は、攻撃シナリオ一覧116から描画対象の攻撃シナリオの情報を取得し(ステップ1201)、ステップ1202へ進む。
【0100】
次に、画面描写プログラム112は、描画対象の攻撃シナリオに関する情報を画面に描写するデータを生成して出力し(ステップ1102)、処理を終了する。
【0101】
なお、
図12で説明した画面描写の方法は、一例であって、これに限定されない。
【0102】
次に、
図13を参照しながら、情報表示の態様の一例について説明する。
図13は、攻撃シナリオに関する情報の表示の一例である。
【0103】
図13に示すように、表示する画面には、情報源1301と、攻撃シナリオ1302と、が含まれる。情報源1301は、攻撃シナリオを生成した際の情報源である脅威情報に関する基本的な情報を示す。情報源1301には、例えば、脅威情報のID、収集日、情報源名称、URLが含まれる。攻撃シナリオ1302は、攻撃シナリオに関する基本的な情報を示す。攻撃シナリオ1302には、例えば、攻撃シナリオにおける攻撃のステップ、当該ステップにおける攻撃技術、攻撃技術に係る攻撃コードが含まれる。
【0104】
上述のような情報を適宜の表示装置に表示することによって、ユーザの攻撃シナリオに係る情報の視認性を向上し、攻撃シナリオに関する業務の効率を向上させることが期待できる。一例として、ユーザ端末(117a、117b、117c)側に表示装置が配置され、この表示装置に表示が行われてもよい。
【0105】
第1実施形態に係る各プログラムの分析結果を基にした描写画面を例示したが、この描写画面は、一例であって、これに限定されない。例えば、ユーザの攻撃シナリオの構築を支援する情報や攻撃シナリオに関連するものであれば、どのような情報をどのような形式で描写しても良い。
【0106】
以上の説明によれば、プロセッサを備え、プロセッサは、サイバー攻撃における攻撃の手口を定める攻撃技術を含む脅威情報を取得し、脅威情報から攻撃技術を抽出し、抽出した前記攻撃技術に基づいて、攻撃技術を実行する手順を定めた攻撃フローを生成し、攻撃に用いる攻撃コードを前記攻撃フローに紐づけることにより、サイバー攻撃におけるシナリオに関する情報である攻撃シナリオを構築する、シナリオ構築装置およびシナリオ構築システムが提供される。
【0107】
これらシナリオ構築装置およびシナリオ構築システムによれば、脅威情報に基づく攻撃技術に攻撃コードを自動で紐づけることにより、実施コストや属人性を低減できる。
【0108】
なお、脅威情報に記載されている攻撃技術は必ずしも網羅されているとは限らず、抜けがある場合が存在することが知られている。このため、行間や省略する部分を欠損箇所として補完する必要がある。加えて脅威情報の粒度と実際に攻撃するための攻撃コードの間にはギャップがあるため、実際の攻撃コードに紐付け、実際に攻撃が可能な攻撃シナリオへ昇華する必要がある。ここで、ユーザが欠損の補完を実施することが考えられるが、この場合、実施コストや属人性の影響が考えられる。
【0109】
本実施形態では、これらシナリオ構築装置およびシナリオ構築システムが、脅威情報から抽出した情報を基に、欠損の補完および攻撃コードへの紐付けを自動で実施するので、実施コストや属人性が低減されると共に、脅威情報の欠損を補うことによる攻撃シナリオの真正性や網羅性の向上が期待できる。
【0110】
<第2実施形態>
次に、
図14から
図21を参照しながら、第2実施形態について説明する。第2実施形態では、攻撃シナリオの構築に加えて、実際に攻撃シナリオが計算機環境やネットワーク環境で実行された際の影響の評価も自動で実施し、同環境を有する組織にその結果を通知する攻撃シナリオベースペネトレーションシステムの処理について示す。
【0111】
具体的には、攻撃シナリオベースペネトレーションシステム1401(シナリオ構築装置)は、第1実施形態において述べた処理に加えて、評価対象の環境情報の取得と、攻撃シナリオ実行用の模擬環境の構築と、攻撃の実行及び影響の評価と、評価結果の通知と、を実施する。以下、第1実施形態との差異を中心に第2実施形態について説明する。なお、第1実施形態で説明と同様の内容については、省略する場合がある。
【0112】
図14は、第2実施形態に係る攻撃シナリオベースペネトレーションシステム1401の構成例を示す図である。第2実施形態の攻撃シナリオベースペネトレーションシステム1401の各ハードウェア構成(1401~1407)は、第1実施形態の場合と同様とすることができる。また、ネットワーク1425aを介してユーザ端末(1423a、1423b、1423c)に接続される点、および、ネットワーク1425bを介してインターネット1426に接続可能である点についても同様である。
【0113】
第2実施形態でのプログラムは、第1実施形態の場合と同様である、脅威情報収集プログラム1408と、攻撃技術抽出プログラム1409と、欠損項目推定および攻撃フロー生成プログラム1410と、攻撃シーケンス生成プログラム1411と、画面描写プログラム1416と、に加えて、評価対象の環境情報を取得する環境情報取得プログラム1412と、攻撃シナリオ実行用の模擬環境を構築する模擬環境構築プログラム1413と、攻撃の実行及び影響の評価を行う攻撃実行、影響評価プログラム1414と、評価結果を通知する評価結果通知プログラム1415と、を含む。
【0114】
第2実施形態でのデータ構造は、第1実施形態の場合と同様である、情報収集先管理表1417と、脅威情報一覧1418と、攻撃コードデータベース1419と、攻撃シナリオ1420と、に加えて、評価対象の環境情報を管理する環境一覧1421と、影響有無に係る評価結果を管理する影響一覧1422と、を含む。
【0115】
第2実施形態の脅威情報収集プログラム1408、攻撃技術抽出プログラム1409、欠損項目推定および攻撃フロー生成プログラム1410、攻撃シーケンス生成プログラム1411、画面描写プログラム1416が実行する処理は、第1実施形態の場合と同様とすることができる。
【0116】
なお、
図14で説明した攻撃シナリオベースペネトレーションシステム1401(シナリオ構築装置)は、一例であって、これに限定されない。また、本実施形態によれば、攻撃シナリオベースペネトレーションシステム1401を備えるシナリオ構築システムが提供される。
【0117】
次に、
図15を参照しながら、環境一覧1421の一例について説明する。
図15は、環境一覧の一例を示す図である。
【0118】
図15に示すように、環境一覧1421は、例えば、組織ID1501と、機器1502と、ソフトウェア1503と、バージョン1504と、を含んで構成される。
【0119】
組織ID1501は、どの組織に該当するかを一意に識別するための識別情報を格納するフィールドである。例えば、組織ID1501には数字が識別情報として格納される。
【0120】
機器1502は、該組織の環境に存在する機器の情報を表す。例えば、組織ID1501が「0」の組織には、「サーバA」をはじめとした複数の機器が存在するということを表す。なお、機器1502に格納されるデータ形式は、限定されず、機器が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0121】
ソフトウェア1503は、機器に導入されているソフトウェアの種別を表す。例えば、「サーバA」には、「OS A」が導入されているということを表す。なお、ソフトウェア1503に格納されるデータ形式は、限定されず、ソフトウェアが判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0122】
バージョン1504は、機器に導入されているソフトウェアのバージョンを表す。例えば、「サーバA」に導入されている「OS A」のバージョンは、「11」であることを表す。なお、バージョン1504に格納されるデータ形式は、限定されず、バージョンが判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0123】
なお、
図15で説明した環境一覧1421は、一例であって、これに限定されない。
【0124】
次に、
図16を参照しながら、影響一覧1422の一例について説明する。
図16は、影響一覧の一例を示す図である。
図16に示すように、影響一覧1422は、例えば、ステップ1601と、攻撃技術1602と、攻撃コード1603と、影響有無1604と、を含んで構成される。
【0125】
ステップ1601は、攻撃シナリオの実施順を一意に識別するための識別情報を格納するフィールドである。ステップ1601には、一例として、数字が識別情報として昇順に格納される。
【0126】
攻撃技術1602は、各ステップで実行される攻撃技術を一意に識別するための識別情報を格納するフィールドである。例えば、ステップ1601が「0」の攻撃技術は、「攻撃技術A」であることを表す。なお、攻撃技術1602に格納されるデータ形式、限定されず、攻撃技術が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0127】
攻撃コード1603は、各ステップで実行される攻撃技術に対応する具体的な攻撃コードを格納するフィールドである。例えば、ステップ1601が「0」の攻撃コードは、「ls -recurse」であることを表す。なお、攻撃コード1603に格納されるデータ形式は、限定されず、攻撃コードが判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0128】
影響有無1604は、各ステップで実行される攻撃技術に、対象とする組織の機器群が影響を受けうるかどうかを表す値を格納するフィールドである。例えば、ステップ1601が「0」の攻撃技術に対しては、「有」が格納されており、該攻撃技術に対しては影響を受けうることを表す。なお、影響有無1604に格納されるデータ形式は、限定されず、影響有無が判別できるデータ形式であれば、どのようなデータ形式であってもよい。
【0129】
なお、
図16で説明した影響一覧1422は、一例であって、これに限定されない。
【0130】
次に、
図17から
図20を参照しながら、攻撃シナリオベースペネトレーションシステム1401が実行する処理の一例について説明する。第2実施形態の攻撃シナリオベースペネトレーションシステム1401は、攻撃シナリオの構築とは別に、実際に攻撃シナリオが計算機環境やネットワーク環境で実行された際の影響の評価を実施するために、一例として、環境情報取得プログラム1412と、模擬環境構築プログラム1413と、攻撃実行、影響評価プログラム1414と、評価結果通知プログラム1415と、を連続で実行する。以降では、各プログラムの処理フローの一例について述べる。
【0131】
図17を参照しながら、第2実施形態の攻撃シナリオベースペネトレーションシステム1401が実行する環境情報取得処理の一例を説明する。
図17は、環境情報取得処理の一例を説明するフローチャートである。
【0132】
CPU1403によって実行される環境情報取得プログラム1412は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0133】
環境情報取得プログラム1412は、対象組織の環境情報を取得する(ステップ1701)。ここでは、環境一覧1421の各エントリに対応する、機器1402、ソフトウェア1403,バージョン1404を取得する。環境情報取得プログラム1412は、例えば、対象組織において、該情報を収集するプログラムを動作させ、その結果をオンラインで受領することで環境情報の取得を達成する。
【0134】
次に、環境情報取得プログラム1412は、取得した環境情報を環境一覧1421へ保存し(ステップ1702)、その後、処理を終了する。
【0135】
なお、
図17で説明した環境情報取得の方法は、一例であって、これに限定されない。例えば、メールやオフライン等で対象組織の環境情報を取得し、環境一覧1421へ反映する方法等が挙げられる。例えば、入出力装置を用いた環境情報の取得が実現されてもよい。
【0136】
次に、
図18を参照しながら、攻撃シナリオベースペネトレーションシステム1401が実行する模擬環境構築処理の一例を説明する。
図18は、模擬環境構築処理の一例を説明するフローチャートである。
【0137】
CPU1403によって実行される模擬環境構築プログラム1413は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0138】
模擬環境構築プログラム1413は、環境一覧1421から評価対象組織の環境情報を取得し(ステップ1801)、ステップ1802へ進む。
【0139】
次に、模擬環境構築プログラム1413は、取得した環境情報を基に、模擬環境を構築し(ステップ1802)、その後、処理を終了する。模擬環境構築プログラム1413は、例えば、仮想環境構築用のフレームワークを活用して、評価対象組織の環境を仮想環境に再現する。
【0140】
なお、
図18で説明した模擬環境構築の方法は、一例であって、これに限定されない。
【0141】
次に、
図19を参照しながら、第2実施形態の攻撃シナリオベースペネトレーションシステム1401が実行する攻撃実行、影響評価処理の一例を説明する。
図19は、攻撃実行、影響評価処理の一例を説明するフローチャートである。
【0142】
CPU1403によって実行される影響評価プログラム1414は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0143】
攻撃実行、影響評価プログラム1414は、攻撃シナリオ一覧1420から実行する攻撃シナリオを取得する(ステップ1901)。
【0144】
次に、攻撃実行、影響評価プログラム1414は、攻撃シナリオのステップ毎にステップ1903以降の処理を実行する(ステップ1902)。全ての攻撃ステップを実行し終えた場合、処理を終了する。
【0145】
攻撃実行、影響評価プログラム1414は、模擬環境構築プログラム1412で構築した模擬環境に対して、該ステップの攻撃を実行し(ステップ1903)、ステップ1904に進む。
【0146】
次に、攻撃実行、影響評価プログラム1414は、ステップ1903において実行した攻撃が模擬環境において影響を及ぼしたか評価し(ステップ1904)、ステップ1905に進む。例えば、攻撃コードの実行が正常に完遂したか否か、模擬環境上の機器が停止したか否か等を基に影響有無を判断する。
【0147】
次に、攻撃実行、影響評価プログラム1414は、ステップ1904での評価結果を影響一覧1422に反映する(ステップ1905)。具体的には、影響評価プログラム1414は、攻撃シナリオのステップと攻撃技術と攻撃コードを、それぞれステップ1601、攻撃技術1602、攻撃コード1603として記録した後、同エントリの影響有無1604に影響有無を記録する。
【0148】
なお、
図19で説明した影響評価処理は、一例であって、これに限定されない。例えば、攻撃シナリオを環境一覧1421に含まれる機器やソフトウェアに応じてカスタマイズやチューニングした上で攻撃を実施し、評価を実施しても良い。
【0149】
次に、
図20を参照しながら、第2実施形態の攻撃シナリオベースペネトレーションシステム1401が実行する評価結果通知処理の一例を説明する。
図20は、評価結果通知処理の一例を説明するフローチャートである。
【0150】
CPU1403によって実行される評価結果通知プログラム1415は、実行指示を受け付けた場合、以下で説明する処理を開始する。
【0151】
評価結果通知プログラム1415は、影響一覧1422から評価対象組織の影響評価結果を取得し(ステップ2001)、ステップ2002へ進む。
【0152】
次に、評価結果通知プログラム1415は、取得した影響評価結果を出力する。この例では、評価結果通知プログラム1415は、取得した影響評価結果を評価対象組織に通知し(ステップ2002)、その後、処理を終了する。例えば、評価対象組織が他組織1424の場合(すなわち、他組織1424が依頼元である場合)、ネットワーク1425bを介して他組織1424の端末(他組織端末)に通知する。なお、他組織1424の端末は、適宜に構成される。該端末は、例えば、適宜のコンピュータとして構成することができる。また、該端末側には、入力装置や表示装置等が適宜に設けられてもよく、該端末には、これらの構成が適宜に接続されてもよい。
【0153】
図20で説明した評価結果通知の方法は、一例であって、これに限定されない。例えば、ユーザ端末(1423a、1423b、1423c)に評価結果が出力され、ユーザ(例えば、結果を分析する分析官)を介して、その評価結果が対象組織に通知されてもよい。また、ユーザが、入出力装置1406を介して評価結果を取得し、その評価結果を対象組織に通知するという方法が実現されてもよい。また、評価対象組織が自組織である場合、ユーザ端末(1423a、1423b、1423c)や入出力装置1406を介して評価結果を通知するという方法が実現されてもよい。
【0154】
出力される評価結果は、適宜の表示装置に描写されてもよい。ここで、次に、
図21を参照しながら、評価結果の描写の態様の一例について説明する。
図21は、評価結果描写画面の一例を示す図である。
【0155】
図21に示すように、表示する画面には、情報源2101と、攻撃による影響有無2102と、攻撃シナリオと個別の影響有無2103と、が含まれる。情報源2101は、第1実施形態の場合と同様である。攻撃による影響有無2102は、攻撃シナリオの実行に関する影響の有無を示す情報である。ユーザ等は、攻撃による影響有無2102を参照することで、該攻撃シナリオを実行した場合において、該攻撃シナリオに影響があったステップが含まれているかどうかを判断することができる。攻撃シナリオと個別の影響有無2103は、攻撃シナリオの各ステップについての攻撃技術、攻撃コード、および、影響有無をまとめた情報である。従って、ユーザ等は、攻撃シナリオと個別の影響有無2103を参照することで、攻撃シナリオの実行による影響をより細かく判断することができる。
【0156】
上述のような情報を表示することによって、ユーザの攻撃シナリオに係る情報の視認性を向上し、攻撃シナリオに関する業務の効率を向上させることが期待できる。
【0157】
なお、第2実施形態に係る各プログラムの分析結果を基にした描写画面を例示したが、この描写画面は、一例であって、これに限定されない。例えば、ユーザの攻撃シナリオの構築を支援する情報や攻撃シナリオに関連するものであれば、どのような情報をどのような形式で描写しても良い。
【0158】
第2実施形態によれば、攻撃シナリオベースペネトレーションシステム1401は、第1実施形態と同様に攻撃シナリオの構築を自動で実施しつつ、該攻撃を模擬環境で実行することにより、該攻撃による影響の有無や、影響がある場合の影響度(すなわち、攻撃シナリオにおけるどのステップに影響が発生するかどうか)を自動で評価する。これにより、ペネトレーションテストに係るコストや属人性をより抑制することを可能とする。
【0159】
また、影響評価処理の項目で例示したように、評価対象の環境に応じて攻撃シナリオをカスタマイズしたりチューニングすることにより(すなわち、評価対象の環境に応じた攻撃シナリオの変更を行うことにより)、より評価対象に適合したテストや評価を実施することが期待できる。なお、攻撃シナリオのカスタマイズやチューニングは、プロセッサによる適宜のプログラムの実行により実施されてもよいし、ユーザ等により実行されてもよい。
【0160】
加えて、主に既設の環境へのテストに関して記載したが、製品の出荷前に製品テストとして実施し、攻撃耐性を測る用途等、他の用途に活用しても良い。また、模擬環境に対して実際に攻撃するだけでなく、攻撃シナリオをベースとして、机上での検討やシミュレーションによる影響評価を実施しても良い。
【0161】
以上実施形態について説明したが、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、実施形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【0162】
攻撃シナリオベースペネトレーションシステム(シナリオ構築装置)は、ユーザが用いる入力装置や出力装置(表示装置)などを適宜に備えてもよい。この場合、ユーザ端末は省略されてもよい。
【0163】
攻撃シナリオベースペネトレーションシステム(101、1401)はクラウド上に配置されてもよい。そして、生成した攻撃シナリオや評価結果に関するデータを、インターネット(119、1426)を介して通信可能とされるユーザ端末や他組織端末に送信してもよい。
【符号の説明】
【0164】
101 攻撃シナリオベースペネトレーションシステム
108 脅威情報収集プログラム
109 攻撃技術抽出プログラム
110 欠損項目推定および攻撃フロー生成プログラム
111 攻撃シーケンス生成プログラム