(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】情報処理装置、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20240219BHJP
【FI】
G06F21/57 370
(21)【出願番号】P 2020191822
(22)【出願日】2020-11-18
【審査請求日】2023-02-06
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小椋 直樹
(72)【発明者】
【氏名】青木 慧
(72)【発明者】
【氏名】花谷 嘉一
(72)【発明者】
【氏名】春木 洋美
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2020-160611(JP,A)
【文献】国際公開第2020/105156(WO,A1)
【文献】特開2020-160642(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
ペネトレーションテスト
を実行するプログラムに含まれるモジュールの1以上の設定情報を取得する設定取得部と、
取得された前記設定情報を解析し、
前記ペネトレーションテストの対象に対する攻撃の種類を判定する解析部と、
判定された前記種類に応じて、前記攻撃の条件および手順を定めた攻撃ステップ情報を生成する生成部と、
を備え、
前記設定情報は、前記モジュールに渡される引数を表す引数情報であり、
前記引数情報は、前記モジュールの実行に必要とされるパラメータであるオプションと、前記モジュールの実行によって侵入に成功したときに実行されるコードであるペイロードと、を含む、
情報処理装置。
【請求項2】
前記解析部は、1以上の前記設定情報の組み合わせに応じて定められた前記種類を判定する、
請求項1に記載の情報処理装置。
【請求項3】
前記攻撃ステップ情報は、前記攻撃の実行前に必要な事前条件と、前記モジュールの動作を示す情報と、前記攻撃の実行後に満たされる事後条件と、を含む、
請求項1に記載の情報処理装置。
【請求項4】
前記解析部は、リモートホストのサービスの脆弱性を突く攻撃、ブラウザの脆弱性を突く攻撃、不正なファイルが開かれることにより侵入する攻撃、および、侵入済みの対象に対する権限を管理者権限に昇格させる攻撃のいずれかを示す前記種類を判定する、
請求項1に記載の情報処理装置。
【請求項5】
前記設定情報を記憶する記憶部をさらに備え、
前記設定取得部は、指定された前記モジュールの識別情報に対応する前記設定情報を前記記憶部から取得する、
請求項1に記載の情報処理装置。
【請求項6】
情報処理装置が実行する情報処理方法であって、
ペネトレーションテスト
を実行するプログラムに含まれるモジュールの1以上の設定情報を取得する設定取得ステップと、
取得された前記設定情報を解析し、
前記ペネトレーションテストの対象に対する攻撃の種類を判定する解析ステップと、
判定された前記種類に応じて、前記攻撃の条件および手順を定めた攻撃ステップ情報を生成する生成ステップと、
を含み、
前記設定情報は、前記モジュールに渡される引数を表す引数情報であり、
前記引数情報は、前記モジュールの実行に必要とされるパラメータであるオプションと、前記モジュールの実行によって侵入に成功したときに実行されるコードであるペイロードと、を含む、
情報処理方法。
【請求項7】
コンピュータに、
ペネトレーションテスト
を実行するプログラムに含まれるモジュールの1以上の設定情報を取得する設定取得ステップと、
取得された前記設定情報を解析し、
前記ペネトレーションテストの対象に対する攻撃の種類を判定する解析ステップと、
判定された前記種類に応じて、前記攻撃の条件および手順を定めた攻撃ステップ情報を生成する生成ステップと、
を実行させ、
前記設定情報は、前記モジュールに渡される引数を表す引数情報であり、
前記引数情報は、前記モジュールの実行に必要とされるパラメータであるオプションと、前記モジュールの実行によって侵入に成功したときに実行されるコードであるペイロードと、を含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
近年、工場および発電所等の産業制御システムに対するサイバー攻撃が増加し、事業的にも人的にも重大な損害が生じている。システムのセキュリティ状態を判定するために、ペネトレーションテストを行うことが有効とされている。ペネトレーションテストを行うことで、セキュリティ上の欠陥を発見し、サイバー攻撃に耐えられるシステムに修復することが可能になる。
【0003】
制御システムに対するサイバー攻撃においては、攻撃者は、複数の装置および複数の脆弱性を利用して最終目的となる不正操作、情報漏洩、および、破壊などを実現する。攻撃者が最終目的を達成するために使用する複数の装置および複数の脆弱性を定めた情報は、攻撃シナリオと呼ばれる。ペネトレーションテストでは、サイバー攻撃のシミュレーションを行うために、攻撃シナリオが作成される。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許出願公開第2017/0019421号明細書
【文献】米国特許出願公開第2011/0035803号明細書
【文献】米国特許出願公開第2005/0241000号明細書
【文献】米国特許第7,904,962号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
攻撃シナリオの作成には、個々の装置の脆弱性を突くために必要な攻撃条件(事前条件)および脆弱性を突いた際の影響(事後条件)を含む情報(攻撃ステップ情報)が記述されたデータベース(攻撃データベース)が必要とされる。しかしながら、従来技術では、攻撃データベースを生成する手法は開示されておらず、例えば攻撃ノウハウを持つ技術者が手作業で生成する必要があった。
【0006】
本発明が解決しようとする課題は、ペネトレーションテストに用いられる情報をより効率的に生成することができる情報処理装置、情報処理方法およびプログラムを提供することである。
【課題を解決するための手段】
【0007】
実施形態の情報処理装置は、設定取得部と、解析部と、生成部と、を備える。設定取得部は、ペネトレーションテストの対象に対する攻撃に使用されるモジュールの1以上の設定情報を取得する。解析部は、取得された設定情報を解析し、攻撃の種類を判定する。生成部は、判定された種類に応じて、攻撃の条件および手順を定めた攻撃ステップ情報を生成する。
【図面の簡単な説明】
【0008】
【
図1】本実施形態にかかる情報処理装置のブロック図。
【
図3】攻撃ステップ情報の例を説明するための模式図。
【
図4】bluekeepに対する攻撃ステップ情報の例を示す図。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、この発明にかかる情報処理装置の好適な実施形態を詳細に説明する。
【0010】
図1は、本実施形態にかかる情報処理装置100の構成の一例を示すブロック図である。
図1に示すように、情報処理装置100は、記憶部121と、識別情報取得部101と、設定取得部102と、解析部103と、生成部104と、出力制御部105と、を備えている。
【0011】
記憶部121は、情報処理装置100による各種処理で用いられる各種情報を記憶する。例えば記憶部121は、エクスプロイトに関する情報を記憶する。エクスプロイトは、ペネトレーションテストの対象に対する攻撃に使用されるモジュールであり、例えば、Metasploitのモジュール、および、PoC(Proof of Concept)コードなどである。Metasploitは、ペネトレーションテスト等を実現するためのオープンソースのプロジェクトである。例えば記憶部121は、Metasploitのモジュール一式を含むMetasploitのパッケージを記憶する。
【0012】
記憶部121は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0013】
識別情報取得部101は、ペネトレーションテストに用いられる攻撃ステップ情報の作成対象とするエクスプロイトの識別情報を取得する。エクスプロイトの識別情報は、例えば、共通脆弱性識別子CVE(Common Vulnerability and Exposures)番号、脆弱性の一般呼称(具体例として、bluekeepなど)、および、Metasploitのモジュール名などである。例えば識別情報取得部101は、情報処理装置100のユーザからエクスプロイトの識別情報を取得する。
【0014】
設定取得部102は、エクスプロイトの識別情報に対応するエクスプロイトの1以上の設定情報を取得する。例えば設定取得部102は、識別情報取得部101により取得された識別情報に対応する設定情報を、記憶部121から取得する。
【0015】
設定情報は、実行するエクスプロイトに対する設定を示す情報であり、例えば、エクスプロイトのモジュールに渡される引数を表す情報(引数情報、入力引数)を含む。以下では、引数情報を設定情報として用いる例を主に説明する。設定情報(引数情報)の詳細は後述する。
【0016】
例えばMetasploitなどのエクスプロイトのパッケージは、指定された識別情報に対応する引数情報を返す機能を備える場合がある。設定取得部102は、このような機能を用いて識別情報に対応する引数情報を取得する。引数情報の取得方法はこれに限られるものではなく、識別情報に対応する引数情報を取得できる方法であればどのような方法であってもよい。例えば、記憶部121がエクスプロイトの識別情報と、エクスプロイトの引数を示す引数情報と、を対応づけて記憶するように構成し、設定取得部102が、指定された識別情報に対応する引数情報を記憶部121から検索して取得するように構成してもよい。
【0017】
解析部103は、取得された設定情報を解析し、攻撃の種類(エクスプロイトの種類)を判定する。例えば解析部103は、1以上の設定情報の組み合わせに応じて定められた種類を判定する。エクスプロイトの種類は、例えば、RCE(Remote Code Execution)、Browser RCE、File Open RCE、および、PE(Privilege Escalation)などである。なお、これらの種類は一例であり、他の種類が判定されてもよい。
【0018】
RCEは、リモートホストのサービスの脆弱性を突く攻撃である。Browser RCEは、ブラウザの脆弱性を突く攻撃である。例えばBrowser RCEは、ユーザがブラウザを開いて攻撃者が用意したwebサイトを閲覧することによって攻撃ステップが実行される。File Open RCEは、不正なファイルをユーザが開くことによって攻撃者が侵入する攻撃である。PEは、侵入済みのホストにおいて、管理者権限に権限を昇格させる攻撃である。
【0019】
生成部104は、判定されたエクスプロイトの種類に応じて攻撃ステップ情報を生成する。攻撃ステップ情報は、攻撃の条件および手順を定めた情報である。例えば攻撃ステップ情報は、攻撃の実行前に必要な事前条件と、モジュールの動作を示す情報と、攻撃の実行後に満たされる事後条件と、を含む。攻撃ステップ情報の詳細は後述する。
【0020】
出力制御部105は、各種情報の出力を制御する。例えば出力制御部105は、生成された攻撃ステップ情報をユーザに対して出力する。攻撃ステップ情報の出力形態はどのような形態であってもよい。例えば、ユーザがアクセス可能なデータベースへの格納、ファイルへの出力、および、ディスプレイなどの表示装置への表示、などの出力形態とすることができる。
【0021】
上記各部(識別情報取得部101、設定取得部102、解析部103、生成部104、および、出力制御部105)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0022】
次に、攻撃データベースを活用したペネトレーションテストの一例を説明する。
図2は、ペネトレーションテストの処理の一部の流れの例を示すフローチャートである。
【0023】
ペネトレーションテストを実行する情報処理装置100は、現在の攻撃者の状態を確認する(ステップS11)。現在の攻撃者の状態は、例えば、ペネトレーションテストを行う過程で得られる以下のような情報を含む。
・発見されたホストの情報
・侵入に成功したホストの情報
・取得したクレデンシャル等の情報
【0024】
情報処理装置100は、現在の攻撃者の状態に基づいて、事前条件が満たされる1以上の攻撃ステップを攻撃データベースから検索する(ステップS12)。
【0025】
情報処理装置100は、検索された攻撃ステップの中から、1つの攻撃ステップを選択する(ステップS13)。情報処理装置100は、選択された攻撃ステップを実行する(ステップS14)。
【0026】
情報処理装置100は、実行した攻撃ステップが成功したか否かを判定する(ステップS15)。攻撃ステップが成功した場合(ステップS15:Yes)、情報処理装置100は、攻撃ステップの事後条件に基づいて攻撃者の状態を更新する(ステップS16)。攻撃ステップが失敗した場合(ステップS15:No)、および、状態を更新後、ペネトレーションテストは終了する。
【0027】
以上のように、ペネトレーションテストは、それぞれの攻撃ステップの事前条件、実行する動作(以下、アクションという)、および、事後条件の組を示す攻撃ステップ情報が記述された攻撃データベースを必要とする。
【0028】
なお、上記では、攻撃データベースを必要とする情報処理装置100の例として、攻撃ステップを実際に実行する装置について記載した。攻撃データベースを必要とする装置はこれに限られるものではない。例えば、攻撃者の初期条件と攻撃のゴールを与え、攻撃者が行うと考えられる動作を模擬するサイバー攻撃シミュレータ装置は、攻撃データベースを必要とする。
【0029】
次に、攻撃ステップ情報について説明する。
図3は攻撃ステップ情報の例を説明するための模式図である。攻撃ステップ情報30は、事前条件31-a、31-b、31-cと、アクション32と、事後条件33-a、33-b、33-cと、を含む。
【0030】
事前条件31-a、31-b、31-cは、攻撃ステップの実行を成功させるために、事前に満たすべき条件である。
図3では、3個の事前条件31-a、31-b、31-cが定められる例が示されている。事前条件の個数はこれに限られず、1個、2個、または、4個以上であってもよい。以下では、区別する必要がない場合は単に事前条件31という場合がある。
【0031】
事前条件31としては、例えば以下のような条件を用いることができる。
・現在のホストのシェルアクセス権限を持つ
・対象ホスト上で特定のOS(オペレーティングシステム)が動作している
・対象ホストの特定のポートが開いている
・対象ホストを使用するユーザがブラウザを使用してwebサイトにアクセスする
・対象ホストを使用するユーザがファイルを開く
【0032】
アクション32は、例えば、攻撃ステップを実行する際に実行されるプログラムの指定、および、プログラムの引数に関する情報である。
図3では、1個のアクション32が定められる例が示されている。アクションの個数はこれに限られず、2個以上であってもよい。
【0033】
アクションは、攻撃ステップの実行で想定される手順に依存する。例えば、攻撃ステップがMetasploitのモジュールを実行することを想定する場合、Metasploitのモジュール名、入力が必要なオプション、および、入力が必要なペイロードが、アクションに記載される。例えば攻撃ステップが、C、Java(登録商標)、Python、Ruby、および、PHP等のプログラミング言語で書かれているプログラムをコマンドラインで実行することを想定する場合、プログラムファイル名および引数情報がアクションに記載される。
【0034】
事後条件33-a、33-b、33-cは、攻撃者が攻撃ステップの実行に成功した際、新たに満たされる攻撃者の状態である。
図3では、3個の事後条件33-a、33-b、33-cが定められる例が示されている。事後条件の個数はこれに限られず、1個、2個、または、4個以上であってもよい。以下では、区別する必要がない場合は単に事後条件33という場合がある。
【0035】
事後条件33としては、例えば以下のような条件を用いることができる。
・対象ホストのシェルアクセス権限を持つ
・対象ホストの管理者権限でのシェルアクセスを持つ
【0036】
次に、攻撃ステップ情報の具体例について説明する。
図4は、bluekeepと呼ばれる脆弱性を突いた攻撃ステップの攻撃ステップ情報の例を示す図である。
【0037】
図4の攻撃ステップ情報40は、3個の事前条件、1個のアクション、および、1個の事後条件を含む。
図4の事前条件では、現在のホストにシェルアクセスを持ち、現在のホストからアクセス可能な対象ホストのOSがWindows(登録商標)であり、対象ホストのTCPポート3389番が開いていることが、bluekeep脆弱性を突いた攻撃を成立させるための前提条件であることが示されている。
【0038】
図4のアクションでは、bluekeepのPoCコードを実行することが示されている。
図4の事後条件では、bluekeep脆弱性を突いた攻撃を実行して成功した場合、対象ホストのシェルアクセス権限を取得できることが示されている。
【0039】
なお、
図4では、事前条件、アクション、および、事後条件が自然言語で記述されているが、他の形態で記述されてもよい。例えば事前条件、アクション、および、事後条件は、XML(eXtensible Markup Language)、JSON(JavaScript(登録商標) Object Notation)、YAML(YAML Ain’t Markup Language)、および、PDDL(Planning Domain Definition Language)などを利用して記述されてもよい。また、現在のホストおよび対象ホストなど、攻撃シナリオの生成時に値が確定する項目を示すために、変数を表す文字列(例えば、$current_hostなど)が用いられてもよい。
【0040】
次に、引数情報について説明する。
図5は、引数情報50の一例を示す模式図である。引数情報50は、オプション51と、ペイロード52と、を含む。
【0041】
オプション51は、エクスプロイトの実行に必要とされるパラメータであり、エクスプロイトの実行時に入力される。
図5では、OP-A、OP-B、および、OP-Cの3個のオプションが記載されている。オプションの個数は3個に限られず、1個、2個、または、4個以上であってもよい。
【0042】
ペイロード52は、エクスプロイトの実行によって侵入に成功したときに実行されるコードであり、エクスプロイトの実行時に入力される。
図5では、PL-A、PL-B、および、PL-Cの3個のペイロードが記載されている。ペイロードの個数は3個に限られず、1個、2個、または、4個以上であってもよい。
【0043】
次に、オプションの詳細について説明する。
図6は、オプションの一例を示す模式図である。
【0044】
RHOSTS61は、対象ホストを特定するためのオプションである。例えば、IPアドレスおよびドメイン名などが用いられる。
【0045】
RPORT62は、対象ホストが起動しているサービスを特定するためのオプションである。例えば、TCPポート番号、UDPポート番号、および、サービス名(SSH、RDPなど)などが用いられる。
【0046】
SRVHOST63は、現在ホストが攻撃ステップの実行時に対象ホストに対してサービスを提供する場合に、現在ホストを特定するためのオプションである。例えば、IPアドレスおよびドメイン名などが用いられる。
【0047】
SRVPORT64は、現在ホストが攻撃ステップの実行時に対象ホストに対してサービスを提供する場合に、現在ホストが起動するサービスを特定するためのオプションである。例えば、TCPポート番号、UDPポート番号、および、サービス名(SSH、RDPなど)などが用いられる。
【0048】
FILENAME65は、不正なファイルを作成する場合に、出力に用いられるファイル名である。
【0049】
SESSION66は、侵入済みのホストと確立した通信路(セッション)を特定するためのオプションである。例えば、セッションごとに付けられた識別子が用いられる。
【0050】
個々の攻撃ステップの実行に必要なオプションは、
図6で説明されたオプションのうち一部または全部を含む。また、
図6で説明されたオプションは一例であり、他のオプションが含まれてもよい。例えば、対象ホストが起動しているサービスを使用するためのユーザ名および認証情報(パスワードなど)を特定するオプションが含まれていてもよい。例えば、対象ホストが起動しているサービスを用いてアクセスするリソースの識別子(URI:Uniform Resource Identifierなど)が含まれてもよい。
【0051】
次に、ペイロードの詳細について説明する。
図7は、ペイロード70の一例を示す模式図である。ペイロード70は、
図7に示すものに限られない。
【0052】
Windows向けペイロード71は、Windows OSを対象とするペイロードである。
【0053】
Linux(登録商標)向けペイロード72は、Linux OSを対象とするペイロードである。
【0054】
OSX(登録商標)向けペイロード73は、Mac OSX(登録商標)を対象とするペイロードである。
【0055】
Android(登録商標)向けペイロード74は、Android OSを対象とするペイロードである。
【0056】
iOS(登録商標)向けペイロード75は、iOSを対象とするペイロードである。
【0057】
Java環境向けペイロード76は、Javaプラットフォーム上で動作するペイロードである。
【0058】
PHP環境向けペイロード77は、PHP環境上で動作するペイロードである。
【0059】
Python環境向けペイロード78は、Python環境上で動作するペイロードである。
【0060】
汎用ペイロード79は、特定のOSまたは環境を前提としないペイロードである。
【0061】
図7では、特定のOSまたは環境を元にペイロードが分類される例を示したが、他の観点でペイロードがさらに分類されてもよい。例えば、特定のCPUアーキテクチャ(x86、x64など)を対象とするか否かという観点でペイロードが分類されてもよい。
【0062】
次に、解析部103の処理について説明する。
図8は、解析部103による解析処理の一例を示すフローチャートである。
【0063】
解析部103は、対象のエクスプロイトのオプションにRHOSTSおよびRPORTが含まれているか否かを判定する(ステップS101)。オプションにRHOSTSとRPORTが含まれている場合は(ステップS101:Yes)、解析部103は、オプションにSESSIONが含まれているか否かを判定する(ステップS102)。
【0064】
SESSIONが含まれている場合は(ステップS102:Yes)、解析部103は、エクスプロイトの種類は“不明”であることを出力して終了する(ステップS103)。オプションは、RHOSTSおよびRPORTとともに、SESSIONを含むことはないためである。SESSIONが含まれていない場合は(ステップS102:No)、解析部103は、エクスプロイトの種類は“RCE”であることを出力して終了する(ステップS104)。
【0065】
ステップS101でオプションにRHOSTSとRPORTが含まれていないと判定された場合(ステップS101:No)、解析部103は、オプションにSESSIONが含まれているか否かを判定する(ステップS105)。オプションにSESSIONが含まれている場合は(ステップS105:Yes)、解析部103は、エクスプロイトの種類は“PE”であることを出力して終了する(ステップS106)。
【0066】
オプションにSESSIONが含まれていない場合は(ステップS105:No)、解析部103は、オプションにSRVHOSTとSRVPORTが含まれているか否かを判定する(ステップS107)。オプションにSRVHOSTとSRVPORTが含まれている場合は(ステップS107:Yes)、解析部103は、エクスプロイトの種類は“Browser RCE”であることを出力して終了する(ステップS108)。
【0067】
オプションにSRVHOSTとSRVPORTが含まれていない場合は(ステップS107:No)、解析部103は、オプションにFILENAMEが含まれているか否かを判定する(ステップS109)。オプションにFILENAMEが含まれている場合は(ステップS109:Yes)、解析部103は、エクスプロイトの種類は“File Open RCE”であることを出力して終了する(ステップS110)。オプションにFILENAMEが含まれていない場合は(ステップS109:No)、解析部103は、エクスプロイトの種類は“不明”であることを出力して終了する(ステップS103)。
【0068】
以上のように、解析部103は、エクスプロイトに含まれるオプションによって、エクスプロイトの種類を分類することができる。これにより、生成部104は、それぞれの種類に応じた攻撃ステップ情報を生成することができる。
【0069】
なお
図8では、引数情報(設定情報)に含まれるオプションに応じてエクスプロイトの種類を判定する例を示したが、オプション以外の情報を用いて種類が判定されてもよい。すなわち、上記のように、解析部103は、1以上の設定情報(例えば、引数情報に含まれるオプションおよびペイロード)の組み合わせに応じて定められた種類を判定すればよい。例えば解析部103は、特定のペイロードが含まれているか否かに応じてエクスプロイトの種類を判定してもよい。
【0070】
次に、生成部104による攻撃ステップ情報の生成処理について説明する。
図9~
図12は、それぞれエクスプロイトの種類がRCE、PE、Browser RCE、および、File Open RCEであると判定された場合の生成処理の一例を示すフローチャートである。種類に応じた攻撃ステップ情報を生成することができれば、
図9~
図12以外の生成処理が用いられてもよい。
【0071】
図9を用いて、エクスプロイトの種類がRCEであると判定された場合の生成処理の例について説明する。
【0072】
生成部104は、現在ホストに関する事前条件を攻撃ステップ情報に追加する(ステップS201)。例えば生成部104は、「現在のホストのシェルアクセス権限を持つ」という事前条件を追加する。
【0073】
生成部104は、対象ホストの開放ポートに関する事前条件を攻撃ステップ情報に追加する(ステップS202)。例えば生成部104は、RPORTオプションのデフォルト値としてTCP/3389番が設定されている場合、「対象ホストのTCP/3389番ポートが開いている」という事前条件を追加する。
【0074】
生成部104は、対象ホストの動作OSに関する事前条件を攻撃ステップ情報に追加する(ステップS203)。例えば生成部104は、ペイロードにWindows向けペイロードが含まれている場合、「対象ホスト上でWindows OSが動作している」という事前条件を追加する。
【0075】
生成部104は、エクスプロイトに対応するアクションを攻撃ステップ情報に追加する(ステップS204)。
【0076】
生成部104は、対象ホストのシェルアクセスに関する事後条件を攻撃ステップ情報に追加する(ステップS205)。例えば、「対象ホストのシェルアクセス権限を持つ」という事後条件を追加する。
【0077】
図10を用いて、エクスプロイトの種類がPEであると判定された場合の生成処理の例について説明する。
【0078】
生成部104は、現在ホスト(対象ホスト)に関する事前条件を攻撃ステップ情報に追加する(ステップS301)。例えば生成部104は、「対象ホストのシェルアクセス権限を持つ」という事前条件を追加する。
【0079】
生成部104は、現在ホスト(対象ホスト)の動作OSに関する事前条件を攻撃ステップ情報に追加する(ステップS302)。例えば生成部104は、ペイロードにWindows向けペイロードが含まれている場合、「対象ホスト上でWindows OSが動作している」という事前条件を追加する。
【0080】
生成部104は、エクスプロイトに対応するアクションを攻撃ステップ情報に追加する(ステップS303)。
【0081】
生成部104は、対象ホストの管理者権限でのシェルアクセスに関する事後条件を攻撃ステップ情報に追加する(ステップS304)。例えば生成部104は、「対象ホストの管理者権限でのシェルアクセス権限を持つ」という事後条件を追加する。
【0082】
図11を用いて、エクスプロイトの種類がBrowser RCEであると判定された場合の生成処理の例について説明する。
【0083】
生成部104は、現在ホストに関する事前条件を攻撃ステップ情報に追加する(ステップS401)。例えば生成部104は、「現在のホストのシェルアクセス権限を持つ」という事前条件を追加する。
【0084】
生成部104は、対象ホストのユーザによるブラウザ使用に関する事前条件を攻撃ステップ情報に追加する(ステップS402)。例えば生成部104は、「対象ホストを使用するユーザがブラウザを使用してwebサイトにアクセスする」という事前条件を追加する。
【0085】
生成部104は、エクスプロイトに対応するアクションを攻撃ステップ情報に追加する(ステップS403)。
【0086】
生成部104は、対象ホストのシェルアクセスに関する事後条件を攻撃ステップ情報に追加する(ステップS404)。例えば生成部104は、「対象ホストのシェルアクセス権限を持つ」という事後条件を追加する。
【0087】
図12を用いて、エクスプロイトの種類がFile Open RCEであると判定された場合の生成処理の例について説明する。
【0088】
生成部104は、現在ホストに関する事前条件を攻撃ステップ情報に追加する(ステップS501)。例えば生成部104は、「現在のホストのシェルアクセス権限を持つ」という事前条件を追加する。
【0089】
生成部104は、対象ホストのユーザによるファイルオープンに関する事前条件を攻撃ステップ情報に追加する(ステップS502)。例えば生成部104は、「対象ホストを使用するユーザがファイルを開く」という事前条件を追加する。
【0090】
生成部104は、エクスプロイトに対応するアクションを攻撃ステップ情報に追加する(ステップS503)。
【0091】
生成部104は、対象ホストのシェルアクセスに関する事後条件を攻撃ステップ情報に追加する(ステップS504)。例えば生成部104は、「対象ホストのシェルアクセス権限を持つ」という事後条件を追加する。
【0092】
このように、本実施形態では、ペネトレーションテストに用いられる情報(攻撃ステップ情報)をより効率的に生成することが可能となる。
【0093】
次に、本実施形態にかかる情報処理装置100のハードウェア構成について
図13を用いて説明する。
図13は、本実施形態にかかる情報処理装置100のハードウェア構成例を示す説明図である。
【0094】
本実施形態にかかる情報処理装置100は、CPU151などの制御装置と、ROM(Read Only Memory)152やRAM153などの記憶装置と、ネットワークに接続して通信を行う通信I/F154と、各部を接続するバス161を備えている。
【0095】
情報処理装置100は、物理的に1つのハードウェアにより構成されてもよいし、1以上のサーバ装置等を含むクラウド環境上の論理的な装置として構成されてもよい。
【0096】
本実施形態にかかる情報処理装置100で実行されるプログラムは、ROM152等に予め組み込まれて提供される。
【0097】
本実施形態にかかる情報処理装置100で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0098】
さらに、本実施形態にかかる情報処理装置100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる情報処理装置100で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0099】
本実施形態にかかる情報処理装置100で実行されるプログラムは、コンピュータを上述した情報処理装置100の各部として機能させうる。このコンピュータは、CPU151がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0100】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0101】
100 情報処理装置
101 識別情報取得部
102 設定取得部
103 解析部
104 生成部
105 出力制御部
121 記憶部