IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ビジョナル・インキュベーション株式会社の特許一覧

特許7581560情報処理システム、情報処理方法及びプログラム
<>
  • 特許-情報処理システム、情報処理方法及びプログラム 図1
  • 特許-情報処理システム、情報処理方法及びプログラム 図2
  • 特許-情報処理システム、情報処理方法及びプログラム 図3
  • 特許-情報処理システム、情報処理方法及びプログラム 図4
  • 特許-情報処理システム、情報処理方法及びプログラム 図5
  • 特許-情報処理システム、情報処理方法及びプログラム 図6
  • 特許-情報処理システム、情報処理方法及びプログラム 図7
  • 特許-情報処理システム、情報処理方法及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-11-01
(45)【発行日】2024-11-12
(54)【発明の名称】情報処理システム、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 21/57 20130101AFI20241105BHJP
【FI】
G06F21/57 370
【請求項の数】 12
(21)【出願番号】P 2024116178
(22)【出願日】2024-07-19
【審査請求日】2024-07-22
【早期審査対象出願】
(73)【特許権者】
【識別番号】521541734
【氏名又は名称】株式会社アシュアード
(74)【代理人】
【識別番号】100218970
【弁理士】
【氏名又は名称】大杉 肇
(74)【代理人】
【識別番号】100176876
【弁理士】
【氏名又は名称】各務 幸樹
(72)【発明者】
【氏名】鈴木 康弘
(72)【発明者】
【氏名】佐久間 友樹
(72)【発明者】
【氏名】古好 佑輔
(72)【発明者】
【氏名】藤田 優貴
【審査官】塩澤 如正
(56)【参考文献】
【文献】特表2022-552891(JP,A)
【文献】国際公開第2019/069462(WO,A1)
【文献】米国特許第11216563(US,B1)
【文献】米国特許出願公開第2023/0169183(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
情報処理システムであって、
少なくとも1つのプロセッサを備え、
前記プロセッサは、プログラムを読み出すことで次の各ステップを実行するように構成され、
脆弱性検出ステップでは、脆弱性情報の検出を行う検出対象システムに対し、第1検出処理を実行し前記第1検出処理における検出結果に応じて、第2検出処理と、第3検出処理とのうち少なくとも一方の処理を実行し、
前記第1検出処理では、前記検出対象システム内に作成された、前記検出対象システムの少なくとも一部の状態を保存した第1スナップショットに対し、前記検出対象システム内において脆弱性情報のスキャンを実行し、
前記第2検出処理では、前記検出対象システムにインストールされた、システムの構成情報を収集するエージェントに前記検出対象システムの少なくとも一部の構成情報を取得させるとともに、前記構成情報を受信し、さらに、前記構成情報に対し脆弱性情報のスキャンを実行し、
前記第3検出処理では、前記検出対象システム内において前記検出対象システムの少なくとも一部の状態を保存した第2スナップショットを取得するとともに、前記第2スナップショットに基づいて前記検出対象システムの少なくとも一部をスキャン用システムとして再構築し、前記スキャン用システムに対し脆弱性情報のスキャンを実行する、情報処理システム。
【請求項2】
請求項に記載の情報処理システムにおいて、
前記脆弱性検出ステップでは、前記第1検出処理における検出結果に応じて、当該検出結果を表示させるとともにユーザに前記第2検出処理及び/又は前記第3検出処理の実行を提示し、前記ユーザから前記第2検出処理及び/又は前記第3検出処理の実行指示を受け付ける、情報処理システム。
【請求項3】
請求項に記載の情報処理システムにおいて、
前記脆弱性検出ステップでは、前記第1検出処理における検出結果において、前記第1スナップショットから検出できた情報量に応じて検出項目ごとの結果の表示態様を変更する、情報処理システム。
【請求項4】
請求項に記載の情報処理システムにおいて、
前記脆弱性検出ステップでは、前記第2検出処理及び/又は前記第3検出処理の実行後に、前記第1検出処理の検出結果を前記第2検出処理及び/又は前記第3検出処理の検出結果によって更新した検出結果を表示させる、情報処理システム。
【請求項5】
請求項1に記載の情報処理システムにおいて、
前記検出対象システムは、仮想サーバである、情報処理システム。
【請求項6】
請求項に記載の情報処理システムにおいて、
前記第3検出処理では、前記検出対象システムと同じクラウドプラットフォーム上の仮想サーバに前記スキャン用システムを構築する、情報処理システム。
【請求項7】
請求項1に記載の情報処理システムにおいて、
前記第1検出処理では、前記検出対象システムをスキャンする権限を取得し、当該権限に基づいて前記検出対象システムに対する前記第1スナップショットを前記検出対象システム内において作成し、さらに、前記第1スナップショットに対する脆弱性情報のスキャンの実行後に前記第1スナップショットを削除する、情報処理システム。
【請求項8】
請求項1に記載の情報処理システムにおいて、
前記第2検出処理では、前記エージェントに前記構成情報を取得させて前記検出対象システムの外部に送信させる権限を取得し、前記エージェントに、前記構成情報を出力させるコマンドを前記検出対象システムへ入力させる、情報処理システム。
【請求項9】
請求項1に記載の情報処理システムにおいて、
前記第3検出処理では、前記検出対象システムをスキャンする権限を取得し、当該権限に基づいて前記検出対象システムに対する前記第2スナップショットを前記検出対象システム内において作成した上で前記第2スナップショットのコピーを受信し、さらに、前記スキャン用システムの構築後に、前記検出対象システム内の前記第2スナップショットを削除する、情報処理システム。
【請求項10】
請求項1に記載の情報処理システムにおいて、
前記脆弱性検出ステップでは、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び脆弱性の悪用が確認されている否かを示す情報のうち、少なくとも1つの情報に基づいて、前記第1検出処理、前記第2検出処理、及び前記第3検出処理のいずれかにおいて検出された脆弱性情報の優先度を判定する、情報処理システム。
【請求項11】
情報処理方法であって、
請求項1から請求項1のいずれか1項に記載の情報処理システムが実行する各ステップを備える、情報処理方法。
【請求項12】
プログラムであって、
コンピュータに、請求項1から請求項1のいずれか1項に記載の情報処理システムの各ステップを実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ソフトウェアが有する脆弱性情報を検出する方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2008-165794号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、脆弱性情報を取得しやすくできる技術が求められている。
【0005】
本発明では上記事情に鑑み、システムにおける脆弱性情報を取得しやすくできる情報処理システム等を提供することとした。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、情報処理システムであって、少なくとも1つのプロセッサを備え、プロセッサは、プログラムを読み出すことで次の各ステップを実行するように構成され、脆弱性検出ステップでは、脆弱性情報の検出を行う検出対象システムに対し、第1検出処理と、第2検出処理と、第3検出処理とのうち少なくとも2つの処理を実行し、第1検出処理では、検出対象システム内に作成された、検出対象システムの少なくとも一部の状態を保存した第1スナップショットに対し、検出対象システム内において脆弱性情報のスキャンを実行し、第2検出処理では、検出対象システムにインストールされた、システムの構成情報を収集するエージェントに検出対象システムの少なくとも一部の構成情報を取得させるとともに、構成情報を受信し、さらに、構成情報に対し脆弱性情報のスキャンを実行し、第3検出処理では、検出対象システム内において検出対象システムの少なくとも一部の状態を保存した第2スナップショットを取得するとともに、第2スナップショットに基づいて検出対象システムの少なくとも一部をスキャン用システムとして再構築し、スキャン用システムに対し脆弱性情報のスキャンを実行する、情報処理システムが提供される。
【0007】
このような態様によれば、第1検出処理、第2検出処理、及び第3検出処理の任意の処理の組み合わせによって検出対象システムから脆弱性情報を検出できる。そのため、検出対象システムの構成や使用環境に応じて検出処理を選択することで、脆弱性情報が取得しやすくなる。
【図面の簡単な説明】
【0008】
図1】情報処理システム1を表す構成図である。
図2】情報処理装置10のハードウェア構成を示すブロック図である。
図3】ユーザ端末20のハードウェア構成を示すブロック図である。
図4】情報処理装置10(制御部11)及びユーザ端末20(制御部21)によって実現される機能を示すブロック図である。
図5】脆弱性検出部113によって実行される第1検出処理の流れの一例を示すフロー図である。
図6】脆弱性検出部113によって実行される第2検出処理の流れの一例を示すフロー図である。
図7】脆弱性検出部113によって実行される第3検出処理の流れの一例を示すフロー図である。
図8】情報処理システム1によって実行される情報処理(脆弱性情報の検出処理)の流れの一例を示すアクティビティ図である。
【発明を実施するための形態】
【0009】
以下、図面を用いて本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。
【0010】
ところで、一実施形態に登場するソフトウェアを実現するためのプログラムは、コンピュータが読み取り可能な非一時的な記録媒体(Non-Transitory Computer-Readable Medium)として提供されてもよいし、外部のサーバからダウンロード可能に提供されてもよいし、外部のコンピュータで当該プログラムを起動させてクライアント端末でその機能を実現(いわゆるクラウドコンピューティング)するように提供されてもよい。
【0011】
また、一実施形態に係る種々の情報処理において、入力と、入力に応じた出力とが実現されうる。ここで、入力の結果として出力が得られれば、かかる情報処理において参照される情報(以下、参照情報と称する。)の態様は、限定されない。参照情報は、例えば、データベース、ルックアップテーブル、所定の関数(統計学的手法によって構築された、回帰式等の判定式を含む。)等のルールベースの情報でもよいし、入力と出力との相関を予め学習させた学習済みモデルでもよいし、プロンプトを入力することで所望の結果を出力可能な大規模言語モデルでもよい。
【0012】
また、一実施形態において「部」とは、例えば、広義の回路によって実施されるハードウェア資源と、これらのハードウェア資源によって具体的に実現されうるソフトウェアの情報処理とを合わせたものも含みうる。また、一実施形態においては様々な情報を取り扱うが、これら情報は、例えば電圧・電流を表す信号値の物理的な値、0又は1で構成される2進数のビット集合体としての信号値の高低、又は量子的な重ね合わせ(いわゆる量子ビット)によって表され、広義の回路上で通信・演算が実行されうる。
【0013】
さらに、広義の回路とは、回路(Circuit)、回路類(Circuitry)、プロセッサ(Processor)、及びメモリ(Memory)等を少なくとも適当に組み合わせることによって実現される回路である。また、プロセッサは、汎用プロセッサでもよいし、専用の回路でもよい。すなわち、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等を含むものである。
【0014】
1.ハードウェア構成
本節では、ハードウェア構成について説明する。
【0015】
<情報処理システム1>
図1は、情報処理システム1を表す構成図である。情報処理システム1は、通信回線2と、情報処理装置10と、複数のユーザ端末20と、複数の被管理サーバ30と、脆弱性情報サーバ40とを備える。情報処理装置10と、ユーザ端末20と、被管理サーバ30と、脆弱性情報サーバ40とは、通信回線2を通じて相互に通信可能に構成されている。情報処理装置10、ユーザ端末20、被管理サーバ30及び脆弱性情報サーバ40の接続は有線でも無線でもよい。
【0016】
情報処理システム1は、例えば、被管理サーバ30の脆弱性を管理する脆弱性管理システムの少なくとも一部を構成する。情報処理システム1は、ユーザUが使用又は管理する被管理サーバ30の脆弱性の検出を主に行う。一実施形態において、情報処理システム1とは、1つ又はそれ以上の装置又は構成要素からなるものである。以下、これらの構成要素について説明する。
【0017】
<情報処理装置10>
図2は、情報処理装置10のハードウェア構成を示すブロック図である。情報処理装置10は、システム(例えば、ソフトウェア)のアセット情報や脆弱性情報等のスキャン、特定、管理等を行う脆弱性診断装置である。情報処理装置10は、脆弱性情報のスキャン、特定、管理等を行う脆弱性診断サービスの提供者によって提供され、脆弱性診断サービスの利用者(ユーザU)によって利用されてもよい。図2に示されるように、情報処理装置10は、制御部11と、記憶部12と、通信部13と、通信バス14とを備える。制御部11、記憶部12、及び通信部13は、情報処理装置10の内部において通信バス14を介して電気的に接続されている。
【0018】
<制御部11>
制御部11は、情報処理装置10に関連する全体動作の処理・制御を行う。制御部11は、例えば中央処理装置(Central Processing Unit:CPU)である。制御部11は、記憶部12に記憶された所定のプログラムを読み出すことによって、情報処理装置10に係る種々の機能を実現する。すなわち、記憶部12に記憶されているソフトウェアによる情報処理が、ハードウェアの一例である制御部11によって具体的に実現されることで、制御部11に含まれる各機能部として実行されうる。これらについては、次節においてさらに詳述する。なお、制御部11は単一であることに限定されず、機能毎に複数の制御部11を有してもよい。また、制御部11は、それらの組合せであってもよい。
【0019】
<記憶部12>
記憶部12は、前述の記載により定義される様々な情報を記憶する。これは、例えば、制御部11によって実行される情報処理装置10に係る種々のプログラム等を記憶するソリッドステートドライブ(Solid State Drive:SSD)等のストレージデバイスとして、あるいは、プログラムの演算に係る一時的に必要な情報(引数、配列等)を記憶するランダムアクセスメモリ(Random Access Memory:RAM)等のメモリとして実施されうる。記憶部12は、制御部11によって実行される情報処理装置10に係る種々のプログラム、変数等を記憶している。
【0020】
<通信部13>
通信部13は、USB、IEEE1394、Thunderbolt(登録商標)、有線LANネットワーク通信等といった有線型の通信手段が好ましいものの、無線LANネットワーク通信、3G/LTE/5G等のモバイル通信、BLUETOOTH(登録商標)通信等を必要に応じて含めてもよい。すなわち、これら複数の通信手段の集合として実施することがより好ましい。すなわち、情報処理装置10は、通信部13及びネットワークを介して、外部から種々の情報を通信してもよい。
【0021】
情報処理装置10は、オンプレミス形態であってもよく、クラウド形態であってもよい。クラウド形態の情報処理装置10は、例えば、SaaS(Software as a Service)、クラウドコンピューティングという形態で、上述の機能や処理を提供してもよい。
【0022】
<ユーザ端末20>
図3は、ユーザ端末20のハードウェア構成を示すブロック図である。図3に示されるように、ユーザ端末20は、制御部21と、記憶部22と、通信部23と、入力部24と、出力部25と、通信バス26とを備える。制御部21、記憶部22、通信部23、入力部24、及び出力部25は、ユーザ端末20の内部において通信バス26を介して電気的に接続されている。ユーザ端末20は、被管理サーバ30の管理を行うユーザU(管理担当者)が使用する情報処理端末である。制御部21、記憶部22及び通信部23の説明は、情報処理装置10における各部の説明と同様のため省略する。
【0023】
<入力部24>
入力部24は、ユーザによってなされた操作入力を受け付ける。操作入力は、命令信号として通信バス26を介して制御部21に転送される。制御部21は、必要に応じて、転送された命令信号に基づいて所定の制御や演算を実行しうる。入力部24は、ユーザ端末20の筐体に含まれるものであってもよいし、外付けされるものであってもよい。例えば、入力部24は、出力部25と一体となってタッチパネルとして実施されてもよい。入力部24がタッチパネルとして実施される場合、ユーザは、入力部24に対してタップ操作、スワイプ操作等を入力することができる。入力部24としては、タッチパネルに代えて、スイッチボタン、マウス、トラックパッド、QWERTYキーボード等が採用可能である。
【0024】
<出力部25>
出力部25は、ユーザが操作可能なグラフィカルユーザインターフェース(Graphical User Interface:GUI)の画面を表示する。出力部25は、ユーザ端末20の筐体に含まれるものであってもよいし、外付けされるものであってもよい。具体的には、出力部25は、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ等の表示デバイスとして実施されうる。これらの表示デバイスは、ユーザ端末20の種類に応じて使い分けて実施されることが好ましい。
【0025】
<被管理サーバ30>
被管理サーバ30は、情報処理装置10が脆弱性情報の検出を行う検出対象システムを含むサーバ、又はその全体が検出対象システムとなるサーバである。被管理サーバ30は、物理的なサーバであってもよいし、クラウドサービス提供者によって提供されるクラウド上に構築された仮想サーバであってもよい。つまり、検出対象システムは、仮想サーバであってもよい。これにより、クラウドプラットフォーム等のクラウド上の環境に応じた脆弱性情報の検出が可能となる。クラウドプラットフォームは、例えば、インターネットを介して、データベース、ストレージ、アプリケーション等のサービスを利用できるプラットフォームであってもよい。
【0026】
<脆弱性情報サーバ40>
脆弱性情報サーバ40は、ソフトウェアの脆弱性情報を管理するサーバである。脆弱性情報サーバ40は、複数のサーバによって構成されてもよい。脆弱性情報サーバ40としては、例えば、CVE(Common Vulnerabilities and Exposures)、NVD(National Vulnerability Database)、ICAT(IPA Cyber security Alert Service) Metabase、JVN(Japan Vulnerability Notes)、JVN iPedia、OSVDB(Open Source Vulnerability Database)等の脆弱性情報ウェブサイト(脆弱性情報データベース)の管理サーバが挙げられる。また、脆弱性情報サーバ40には、ソフトウェアのサプライヤが独自に提供する自社の脆弱性情報(例えば、セキュリティアドバイザリ)を格納するサーバが含まれてもよい。なお、脆弱性情報が管理されるソフトウェアには、OSS(Open Source Software)が含まれてもよい。
【0027】
2.機能構成
本節では、本実施形態の機能構成について説明する。記憶部12に記憶されているソフトウェアによる情報処理がハードウェアの一例である制御部11によって具体的に実現されることで、制御部11(情報処理システム1が備える少なくとも1つのプロセッサ)に含まれる各機能部として実行されうる。
【0028】
図4は、情報処理装置10(制御部11)及びユーザ端末20(制御部21)によって実現される機能を示すブロック図である。
【0029】
図4Aに示されるように、情報処理装置10(制御部11)は、基本表示制御部111と、システム登録部112と、脆弱性検出部113とを備える。図4Bに示されるように、ユーザ端末20(制御部21)は、表示部211と、操作取得部212とを備える。
【0030】
<基本表示制御部111>
基本表示制御部111は、種々の情報をユーザ端末20に表示させるように構成される。例えば、基本表示制御部111は、脆弱性検出部113が検出した脆弱性情報等を、ユーザ端末20の表示部211に表示させる。
【0031】
<システム登録部112>
システム登録部112は、脆弱性情報の検出を行う検出対象システムを登録するように構成される。具体的には、システム登録部112は、ユーザ端末20から検出対象システムを特定するための情報(例えば、検出対象システムのネットワーク上のアドレス(URL等)、スキャン対象のリソースを示す識別子等の情報等)の入力を受け付け、例えば、記憶部12の検出対象システムデータベースに検出対象システムの登録情報を登録する。
【0032】
<脆弱性検出部113>
脆弱性検出部113は、システム登録部112によって登録された検出対象システムと連携することで、脆弱性情報の検出を行うように構成される。具体的には、脆弱性検出部113は、検出対象システム(被管理サーバ30)に対し、第1検出処理と、第2検出処理と、第3検出処理とのうち少なくとも2つの処理を実行する。脆弱性情報には、ソフトウェア、プログラム、アプリケーション、コンポーネント等における、使用上の欠陥やバグ等の脆弱性に関する情報が含まれる。また、脆弱性情報には、クラウドサービスにおける設定ミスや設定漏れ等のセキュリティに関する情報が含まれてもよい。
【0033】
脆弱性検出部113は、第1検出処理と、第2検出処理及び第3検出処理のうち少なくとも一方の処理とを実行するとよい。これにより、第1検出処理、第2検出処理及び第3検出処理の中で最も簡便に脆弱性情報の検出が可能な第1検出処理を実行した上で、第1検出処理の検出結果を補う形で第2検出処理又は第3検出処理を選択的に実行することができる。そのため、検出処理の負荷と、検出精度とのバランスをとることができる。
【0034】
<第1検出処理>
第1検出処理では、脆弱性検出部113は、検出対象システム(被管理サーバ30)内に作成された、検出対象システムの少なくとも一部(検出対象のリソース)の状態を保存した第1スナップショットに対し、検出対象システム内において脆弱性情報のスキャンを実行する。
【0035】
スナップショットは、例えば、検出対象システム(検出対象のリソース)に含まれるアセットの状態を記録した情報である。典型的には、スナップショットには、当該スナップショットを作成した時点の検出対象システム(検出対象のリソース)を、仮想サーバやオペレーティングシステム(OS)へのマウントによって復元することが可能な情報が含まれる。
【0036】
検出対象システムのアセットには、ユーザが管理できる(仮想サーバの場合は、クラウドプラットフォーム上で管理できる)全てのシステム環境、エンティティ及びサービスが含まれる。アセットには、例えば、検出対象システムに含まれる仮想マシン、仮想ディスク、仮想ネットワーク、ストレージアカウント、Webアプリケーション等のソフトウェア、データベース、ポリシー、ロール等が含まれてもよい。ここで、ロール及びポリシーは、リソースに対し、誰がどのような権限を持つかを定義する情報である。
【0037】
ポリシー及びロールは、例えば、IAM(Identity and Access Management)によって作成及び管理される。IAMは、クラウドサービスやアプリケーション等に対して、リソースの操作権限(ロール)を付与する機能であり、リソースと対応付けられるシステム環境をスキャンすることを許可する権限を付与可能な機能である。IAMは、リソースに対して、情報処理装置10による脆弱性情報のスキャンに必要な処理を、情報処理装置10に許可するロールを付与する。例えば、ロール及びポリシーは、スキャン用アカウントに対して、リソースと対応付けられたアセット情報をスキャンする権限を割り当てることを定義する。これによって、情報処理装置10は、検出対象システムと連携して、検出対象システムの脆弱性情報のスキャンに必要な処理を実行することが可能となる。すなわち、情報処理装置10がスキャン要求を送信した場合に、リソースに付与されたロールに基づいて、スキャン要求が許可されるため、リソースと対応付けられたシステム環境のアセット情報を情報処理装置10が取得することができる。
【0038】
第1検出処理では、脆弱性検出部113は、検出対象システム(被管理サーバ30)をスキャンする権限を取得し、当該権限に基づいて検出対象システムに対する第1スナップショットを検出対象システム内において作成し、さらに、第1スナップショットに対する脆弱性情報のスキャンの実行後に第1スナップショットを削除してもよい。これにより、検出対象システム(被管理サーバ30)にエージェント等のプログラムをインストールすることなく、簡便に脆弱性情報をスキャンすることができる。また、検出対象システムを直接スキャンする場合の負荷を低減できる。また、検出対象システムにアクセスするAPI(Application Programming Interface)がない等、脆弱性情報のスキャンが検出対象システムに対して直接実行できない場合にも、検出対象システムの脆弱性情報を検出することができる。
【0039】
「検出対象システムをスキャンする権限」(以下、「スキャン用権限」)は、スナップショットを作成するためのアセット情報(資産情報)を検出対象システムのストレージ(ボリューム)から取得することを、検出対象システムに許可させる権限である。「アセット情報」は、アセットの状態等を示す情報である。アセット情報には、例えば、アプリケーションライブラリ、ホスト、コンテナイメージ、SBOM(Software Bill of Material)等が含まれる。
【0040】
アプリケーションライブラリは、例えば、システム環境に含まれるアプリケーションの集合である。アプリケーションライブラリは、アプリケーションの名称、バージョン、EOL(End Of Life)等を含んでもよい。なお、アプリケーションライブラリの「アプリケーション」は、ソフトウェア又はプログラムと読み替えられてもよい。
【0041】
ホストは、例えば、システム環境を構築する装置(端末、ルータ、サーバ等)の名称や構成等を含む。ホストは、システム環境と対応付けられるアカウントの名称などを含んでもよい。
【0042】
コンテナイメージは、例えば、コンテナファイルの構築(Build)によって生成され、実行(Run)によってコンテナを生成するイメージである。コンテナは、例えば、物理サーバにインストールされたOS上にコンテナエンジンが設けられた環境で使用されるアプリケーションのパッケージである。コンテンは、例えば、ミドルウェア(MW)と、ミドルウェア上に設けられるアプリケーションを含む。コンテナイメージは、アプリケーションの名称やバージョン等を含んでもよい。なお、コンテナが含む「アプリケーション」は、ソフトウェア又はプログラムと読み替えられてもよい。
【0043】
SBOMは、例えば、検出対象システムに含まれるソフトウェアのコンポーネント、コンポーネント間の依存関係、ラインセンスデータ等を含む。
【0044】
検出対象システムに対するスキャン用権限は、例えば、スキャン対象のリソースに付与されたロール(又はポリシー)によって、脆弱性検出部113が使用するスキャン用アカウントに割り当てられる。当該ロールは、検出対象システム(例えば、検出対象システム内の仮想ディスク)のコピー及びスキャンを許可する。ロールの作成及びスキャン用権限の割当は、例えば、ユーザ端末20から被管理サーバ30にアクセスしたユーザが行う。脆弱性検出部113は、ユーザによって割当られたエージェント用権限を取得する。
【0045】
ユーザが複数の検出対象システムを管理している場合(例えば、ユーザが複数の仮想サーバのアカウントを保有又は管理する場合)は、1つの検出対象システム(例えば、1つの管理サーバのアカウント)ごとに、ロールの作成及びスキャン用権限の割当をユーザが実行する。なお、ロールは、IAMによって管理されてもよい。つまり、ロールは、IAMによってスキャン対象のリソースに付与されてもよい。なお、IAMにより付与されるロールは、リソースの作成、リソースの削除、検出対象システムに関する請求情報の確認、リソースの構造の取得等の権限を必ずしも含まなくてもよい。
【0046】
スキャン用アカウントは、脆弱性検出部113が検出対象システムをスキャンするためのアカウントである。脆弱性検出部113は、スキャン用アカウントによって検出対象システム(被管理サーバ30)にアクセスし、検出対象システムにおける各種処理を実行する。脆弱性検出部113は、スキャン用アカウントに、検出対象システムで作成されたロールの識別子(例えば、リソースネームやリソースのID等)を登録することで、スキャン用アカウントを、被管理サーバ30のユーザアカウントと連携させる。ロールの識別子は、ロールを一意に識別できる名称や記号であればよい。脆弱性検出部113は、ロールの識別子に加え、検出対象システムから発行されるスキャン用の資格証明を登録してもよい。これにより、脆弱性検出部113は、検出対象システムとの連携によって、ロールが付与されたリソースと対応付けられたシステム環境をスキャンする権限を取得する。つまり、脆弱性検出部113がスキャン要求を検出対象システムに送信した場合に、リソースに付与されたロールに基づいてスキャン要求が許可される。なお、脆弱性検出部113が発信するスキャン要求には、ロールの識別子が含まれてもよい。
【0047】
脆弱性検出部113は、スキャン用アカウントにて検出対象システムにアクセス後、スキャン用アカウントによって検出対象システムのスキャン対象のリソース(ロールが付与されたリソース)をスキャンすることで、第1スナップショットを検出対象システム内で作成する。
【0048】
例えば、脆弱性検出部113は、スキャン対象のリソースからアセット情報等を含むスキャン情報を取得し、アセット情報等を含む第1スナップショットを作成する。具体的には、検出対象システムは、アセット情報を特定可能なスキャン応答をスキャン用アカウント(脆弱性検出部113)に送信する。検出対象システムが仮想サーバである場合、脆弱性検出部113は、スキャン情報(アセット情報等)に基づいて、仮想サーバにアタッチされた仮想ディスク(例えば、ストレージボリューム、データボリューム、ブロックストレージ等)の第1スナップショットを仮想サーバ内で作成する。第1スナップショットは、例えば、仮想サーバ内のストレージに記憶される。
【0049】
第1スナップショットの作成後、脆弱性検出部113は、第1スナップショットに対し、脆弱性情報の検出(スキャン)を行う。例えば、脆弱性検出部113は、第1スナップショットからアセット情報を抽出し、脆弱性情報のマスタ情報(脆弱性情報スキャン用の参照情報)に基づいて、アセット情報に脆弱性情報が含まれていないか判定する。脆弱性検出部113は、検出対象システムやクラウドプラットフォームの提供者等が提供するAPIにリクエストを送信することで、間接的に検出対象システム内の第1スナップショットにアクセスし、スキャンを行ってもよい。
【0050】
マスタ情報は、例えば、情報処理装置10が脆弱性情報サーバ40から取得した情報であり、例えば、記憶部12の脆弱性情報データベースに記憶される。マスタ情報には、例えば、ハードウェア又はソフトウェアに含まれるセキュリティ上の脆弱性(欠陥)、欠陥の種類、欠陥に対する対策、深刻度(脆弱性のレベル)等が含まれる。深刻度としては、例えば、CVSS(Common Vulnerability Scoring System)で定義されるスコア値(例えば、Base Score)が挙げられる。マスタ情報には、CVSSのバージョンが含まれてもよい。
【0051】
また、マスタ情報は、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、脆弱性の悪用が確認されている否かを示す情報等を含んでもよい。脆弱性に対する攻撃コードが流通している場合には、マスタ情報は、当該攻撃コードを含んでもよい。
【0052】
マスタ情報は、脆弱性情報サーバ40から取得した情報に加工を行ったものであってもよい。脆弱性情報サーバ40から取得した情報への加工としては、例えば、情報の部分抽出、情報の修正、新たな情報の追加等が挙げられる。これらの加工は、例えば、ユーザによって行われてもよいし、制御部11によるテキスト解析、学習モデルによる処理等によって機械的に実行されてもよい。また、マスタ情報は、例えば、セキュリティ関連のニュースサイトやブログ等のウェブサイトから取得された情報であってもよいし、ユーザがユーザ端末20から入力することで、脆弱性情報データベースに登録した情報であってもよい。
【0053】
脆弱性検出部113は、マスタ情報に含まれる、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び脆弱性の悪用が確認されている否かを示す情報のうち、少なくとも1つの情報に基づいて、第1検出処理において検出された脆弱性情報の優先度を判定しても(脆弱性のトリアージを実行しても)よい。これにより、ユーザが第1検出処理の結果に基づいて、検出された脆弱性に対する対応順序を決定することができる。
【0054】
脆弱性のレベルを示す情報としては、例えば、CVSSで定義されるスコア値が用いられる。脆弱性検出部113は、スコア値が予め定めた閾値未満である脆弱性情報を最も低い優先度であるレベル0と判定する。レベル0の脆弱性情報は、例えば、特に対策を実行しなくてもよい脆弱性に関する情報として定義される。スコア値が閾値以上の脆弱性情報は、レベル1以上と判定される。
【0055】
脆弱性検出部113は、例えば、スコア値が閾値以上の脆弱性情報のうち、攻撃コード検出対象システムの外部からアクセスできず(つまり、検出対象システムの内部からのみアクセス可能であり)、かつ、攻撃を受けた際に業務への影響が小さい脆弱性に関するものをレベル1と判定する。レベル1の脆弱性情報は、例えば、検出対象システムの定期メンテナンス(例えば、1月に1回)で対策を実行すべき脆弱性に関する情報として定義される。レベル1の脆弱性情報への対応の優先度は、レベル0の脆弱性情報への対応の優先度よりも高い。
【0056】
脆弱性検出部113は、例えば、スコア値が閾値以上の脆弱性情報のうち、外部からアクセス可能である脆弱性、又は攻撃を受けた際に業務への影響が大きい脆弱性に関するものをレベル2と判定する(後述されるレベル3又はレベル4に相当するものは除く)。レベル2の脆弱性情報は、例えば、第1期限(例えば、2週間以内)で対策を実行すべき脆弱性に関する情報として定義される。レベル2の脆弱性情報への対応の優先度は、レベル1の脆弱性情報への対応の優先度よりも高い。
【0057】
脆弱性検出部113は、例えば、レベル2の判定条件を満たす脆弱性情報のうち、脆弱性に対する攻撃コードが流通している脆弱性に関するものをレベル3と判定する(後述されるレベル4に相当するものは除く)。レベル3の脆弱性情報は、例えば、第1期限よりも短い第2期限(例えば、1日以内)で対策を実行すべき脆弱性に関する情報として定義される。レベル3の脆弱性情報への対応の優先度は、レベル2の脆弱性情報への対応の優先度よりも高い。
【0058】
脆弱性検出部113は、例えば、レベル3の判定条件を満たす脆弱性情報のうち、攻撃が観測され、脆弱性の悪用が確認されている脆弱性に関するものを最高レベルであるレベル4と判定する。レベル4の脆弱性情報は、例えば、第2期限よりも短い第3期限(例えば、即時)で対策を実行すべき脆弱性に関する情報として定義される。レベル4の脆弱性情報への対応の優先度は、レベル3の脆弱性情報への対応の優先度よりも高い。
【0059】
上記のレベル判定とは別に、脆弱性検出部113は、例えば、脆弱性の悪用が確認されており、かつ、外部から当該脆弱性にアクセス可能である脆弱性情報に対し、最も高い優先度を設定してもよい。
【0060】
また、脆弱性検出部113は、例えば、脆弱性に対する攻撃コードが流通している脆弱性情報に対し、優先度として第1ランクを設定し、脆弱性の悪用が確認されており、かつ、外部から当該脆弱性にアクセス可能である脆弱性情報に対し、優先度として第1ランクよりも高い第2ランクを設定してもよい。
【0061】
さらに、脆弱性検出部113は、例えば、脆弱性に対する攻撃コードが流通しており、かつ、外部から当該脆弱性にアクセス可能である脆弱性情報に対し、優先度として第3ランクを設定し、脆弱性の悪用が確認されており、外部から当該脆弱性にアクセス可能でない脆弱性情報に対し、優先度として第3ランクよりも低い第4ランクを設定してもよい。
【0062】
第1スナップショットのスキャン後(脆弱性情報の検出後)、脆弱性検出部113は、当該第1スナップショットを検出対象システム(例えば、仮想サーバ内のストレージ)から削除する。
【0063】
脆弱性検出部113が第1検出処理を実行するタイミング(第1スナップショットを作成してスキャンするタイミング)は、ユーザの任意のタイミング(例えば、ユーザ端末20において第1検出処理の実行指示が入力されたタイミング)で行われてもよいし、予め定めた期間で定期的に行われてもよい。
【0064】
図5は、脆弱性検出部113によって実行される第1検出処理の流れの一例を示すフロー図である。第1検出処理では、まず、脆弱性検出部113は、スキャン対象のリソースに付与されたロールに基づいて、当該リソースをスキャンするためのスキャン用権限を取得する(ステップS110)。ここで、脆弱性検出部113がすでにスキャン用権限を取得している場合(例えば、同一の検出対象システムに対する2回目以降の第1検出処理の場合等)は、ステップS110は省略される。次に、脆弱性検出部113は、検出対象システムに、スキャン用権限を有するスキャン用アカウントにて、APIの連携等によって、アクセスする(ステップS120)。なお、脆弱性検出部113は、検出対象システムにアクセス後に、スキャン用権限を取得してもよい。
【0065】
スキャン用権限を有するスキャン用アカウントによる検出対象システムへのアクセス後、脆弱性検出部113は、スキャン対象のリソースの第1スナップショットを検出対象システム内に作成する(ステップS130)。第1スナップショットの作成後、脆弱性検出部113は、当該第1スナップショットに対し脆弱性情報のスキャンを行う(ステップS140)。脆弱性情報の検出後、脆弱性検出部113は、検出対象システム内の第1スナップショットを削除する(ステップS150)。
【0066】
脆弱性検出部113は、検出対象システム内に予め作成された第1スナップショット(例えば、ユーザが自身で作成した第1スナップショット)に対して、検出対象システム内において脆弱性情報のスキャンを実行してもよい。この場合は、脆弱性検出部113は、スキャン後の第1スナップショットの削除を行わなくてもよい。
【0067】
<第2検出処理>
第2検出処理では、脆弱性検出部113は、検出対象システム(被管理サーバ30)にインストールされた、システムの構成情報を収集するエージェントに検出対象システムの少なくとも一部(検出対象のリソース)の構成情報を取得させるとともに、構成情報を受信し、さらに、構成情報に対し脆弱性情報のスキャンを実行する。
【0068】
エージェントは、検出対象システム(例えば、仮想サーバ)にインストールされた、検出対象システムを監視するための常駐プログラムである。エージェントが収集する構成情報には、例えば、検出対象システムに含まれるハードウェアの構成(例えば、CPUの機種等)、検出対象システムに搭載されているOS名及びOSのバージョン、検出対象システムにインストールされているソフトウェア名、ソフトウェアのバージョン及びソフトウェアの設定、検出対象システムのユーザアカウント及びアカウント権限、検出対象システムが接続しているネットワーク、検出対象システムのIP(Internet Protocol)アドレス、検出対象システムに接続されている機器、検出対象システムと通信を行っている機器、通信内容及び通信プロトコル、検出対象システムのポートの状態(開放されているポート)を示す情報等が含まれる。また、エージェントが収集する構成情報には、第1検出処理で脆弱性検出部113が取得するアセット情報が含まれてもよい。
【0069】
エージェントは、検出対象システムに付属のもの(例えば、仮想サーバに対し、クラウドプラットフォームの提供者から標準で提供されているエージェント)であってもよいし、情報処理装置10が提供するものであってもよい。検出対象システムにエージェントがインストールされていない場合は、第2検出処理の実行前に、ユーザによって検出対象システムにエージェントのインストールが行われる。
【0070】
第2検出処理では、脆弱性検出部113は、エージェントに構成情報を取得させて検出対象システムの外部に送信させる権限を取得し、エージェントに、構成情報を出力させるコマンドを検出対象システムへ入力させてもよい。これにより、第1検出処理よりも大きな範囲(広さ及び深さ)で、検出対象システムの最新の脆弱性情報の検出が可能となる。また、スナップショットでは検出できない脆弱性情報、例えば、仮想サーバのOSが管理しているソフトウェアやパッケージ群等の脆弱性情報等が検出可能となる。
【0071】
「エージェントに構成情報を取得させて検出対象システムの外部に送信させる権限」(以下、「エージェント用権限」)は、検出対象システムの構成情報の出力及び外部への送信を検出対象システムに許可させる権限である。検出対象システムの外部とは、典型的には、情報処理装置10である。
【0072】
検出対象システムに対するエージェント用権限は、例えば、構成情報取得対象のリソースに付与されたロールによって、エージェントに割り当てられる。当該ロールは、検出対象システム(例えば、仮想サーバ)のスキャン及びスキャン結果の取り出しを許可する。ロールの作成及びエージェント用権限の割当は、例えば、ユーザ端末20から被管理サーバ30にアクセスしたユーザが行う。
【0073】
また、エージェントが検出対象システムの外部からインストールされた外部エージェント(例えば、情報処理装置10が提供するエージェント)である場合は、ユーザによってエージェント用権限が当該外部エージェントに付与される。脆弱性検出部113は、ユーザによって割当又は付与されたエージェント用権限を取得する。なお、エージェントへのエージェント用権限の割当又は付与は、エージェントのインストール前に行われてもよいし、エージェントのインストール後に行われてもよい。
【0074】
脆弱性検出部113は、検出対象システムにインストールされ、かつ、エージェント用権限を有するエージェントに対し、構成情報の取得指示を送信する。エージェントは、取得指示を受けて、検出対象システムの管理機能(例えば、管理サーバのクラウドプラットフォームの管理機能)に対し構成情報の出力コマンドを入力することで、検出対象システムに構成情報を出力させる。つまり、エージェントはは、検出対象システム内で構成情報を取得する。また、エージェントは、検出対象システムに出力させた構成情報を脆弱性検出部113に送信する。なお、エージェントは、脆弱性検出部113からの取得指示を受けることなく、ユーザによるスキャンの指示、又は予め定められた所定のタイミングで、構成情報の取得及び送信を実行してもよい。
【0075】
脆弱性検出部113は、エージェントから受信した検出対象システムの構成情報を、記憶部12又は情報処理装置10の外部のストレージに保存する。さらに、脆弱性検出部113は、保存した構成情報に対し、脆弱性情報の検出(スキャン)を行う。例えば、脆弱性検出部113は、第1検出処理と共通のマスタ情報に基づいて、構成情報に脆弱性情報が含まれていないか判定する。
【0076】
脆弱性検出部113は、マスタ情報に含まれる、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び脆弱性の悪用が確認されている否かを示す情報のうち、少なくとも1つの情報に基づいて、第2検出処理において検出された脆弱性情報の優先度を判定しても(脆弱性のトリアージを実行しても)よい。これにより、ユーザが第2検出処理の結果に基づいて、検出された脆弱性に対する対応順序を決定することができる。第2検出処理における脆弱性情報の優先度の決定手順は、第1検出処理と同様である。
【0077】
図6は、脆弱性検出部113によって実行される第2検出処理の流れの一例を示すフロー図である。第2検出処理では、まず、脆弱性検出部113は、検出対象システムにインストールされたエージェントによって構成情報を取得するためのエージェント用権限を取得する(ステップS210)。ここで、脆弱性検出部113がすでにエージェント用権限を取得している場合(例えば、同一の検出対象システムに対する2回目以降の第2検出処理の場合)は、ステップS210は省略される。次に、脆弱性検出部113は、エージェントに検出対象システムの構成情報を取得させる(ステップS220)。
【0078】
構成情報の取得後、脆弱性検出部113は、エージェントから構成情報を受信する(ステップS230)。構成情報の受信後、脆弱性検出部113は、当該構成情報に対し脆弱性情報のスキャンを行う(ステップS240)。
【0079】
<第3検出処理>
第3検出処理では、脆弱性検出部113は、検出対象システム(被管理サーバ30)内において検出対象システムの少なくとも一部(検出対象のリソース)の状態を保存した第2スナップショットを取得するとともに、第2スナップショットに基づいて検出対象システムの少なくとも一部をスキャン用システムとして再構築し、スキャン用システムに対し脆弱性情報のスキャンを実行する。
【0080】
脆弱性検出部113が第1検出処理と第3検出処理とを実行する場合、第2スナップショットは、第1検出処理で用いられる第1スナップショットとは異なる(第1スナップショットとは別に作成された)スナップショットであってもよいし、第1検出処理で用いられる第1スナップショットと同じものあってもよい。つまり、第3検出処理において、第1スナップショットが第2スナップショットとして使用されてもよい。
【0081】
脆弱性検出部113は、スキャン用システム(検出対象システムを復元したシステム)を、検出対象システムの外部の復元用サーバにおいて構築する。復元用サーバとしては、例えば、情報処理装置10の記憶部12に設けられた仮想サーバ、情報処理装置10以外の物理サーバ又は仮想サーバ等が挙げられる。
【0082】
検出対象システムが仮想サーバである場合、第3検出処理では、脆弱性検出部113は、検出対象システムと同じクラウドプラットフォーム上の仮想サーバにスキャン用システムを構築してもよい。これにより、検出対象システムの再現精度が高められるため、脆弱性情報の検出精度が向上する。
【0083】
検出対象システムが利用しているクラウドプラットフォームが複数種類の管理サービス(仮想サーバの構築方法が異なるサービス)を提供している場合は、脆弱性検出部113は、検出対象システムと同じ管理サービスで提供される仮想サーバにスキャン用システムを構築するとよい。
【0084】
第3検出処理では、脆弱性検出部113は、検出対象システムをスキャンする権限を取得し、当該権限に基づいて検出対象システムに対する第2スナップショットを検出対象システム内において作成した上で第2スナップショットのコピーを受信し、さらに、スキャン用システムの構築後に、検出対象システム内の第2スナップショットを削除してもよい。これにより、検出対象システムに負荷をかけることなく、検出対象システムのOSで管理していないソフトウェア(例えば、あるOS上ではスキャンできないソフトウェア等)も対象とした詳細なスキャンを実行できる。また、検出対象システムにエージェントをインストールせず、ユーザに手間をかけずにスキャンを実行できる。
【0085】
「検出対象システムをスキャンする権限」は、第1検出処理のスキャン用権限と同様のものである。第1検出処理と同様に、検出対象システムに対するスキャン用権限は、例えば、スキャン対象のリソースに付与されたロールによって、脆弱性検出部113が使用するスキャン用アカウントに割り当てられる。また、検出対象システム内での第2スナップショットの作成手順は、第1検出処理における第1スナップショットの作成手順と同様である。
【0086】
第2スナップショットの作成後、脆弱性検出部113は、スキャン用アカウントによって第2スナップショットを検出対象システムの外部のストレージにダウンロードする。なお、第2スナップショットをダウンロードするストレージは、スキャン用システムを復元するストレージ(つまり、復元用サーバのストレージ)であってもよいし、復元用サーバとは別のストレージであってもよい。
【0087】
第2スナップショットのダウンロード後、脆弱性検出部113は、スキャン用システムを構築する復元用サーバに、ダウンロードした第2スナップショットをマウントし、第2スナップショットに基づいて検出対象システム(スキャン対象のリソース)を復元用サーバにおいて復元する。これにより、復元用サーバ内に、検出対象システムのデータボリューム(仮想ディスク)を有するスキャン用システムが構築される。例えば、復元用サーバがクラウドプラットフォーム上の仮想サーバである場合、当該仮想サーバにスキャン用システムが構築される。
【0088】
スキャン用システムの構築後、脆弱性検出部113は、スキャン用システム(スキャン用の仮想サーバ)に対し、脆弱性情報の検出(スキャン)を行う。例えば、脆弱性検出部113は、スキャン用システムから構成情報、アセット情報等を抽出し、第1検出処理及び第2検出処理と共通のマスタ情報に基づいて、スキャン用システムの構成情報、アセット情報等に脆弱性情報が含まれていないか判定する。なお、第3検出処理では、脆弱性検出部113は、第2スナップショットに対するスキャンは行わない。
【0089】
脆弱性検出部113は、マスタ情報に含まれる、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び脆弱性の悪用が確認されている否かを示す情報のうち、少なくとも1つの情報に基づいて、第3検出処理において検出された脆弱性情報の優先度を判定しても(脆弱性のトリアージを実行しても)よい。これにより、ユーザが第3検出処理の結果に基づいて、検出された脆弱性に対する対応順序を決定することができる。第3検出処理における脆弱性情報の優先度の決定手順は、第1検出処理及び第2検出処理と同様である。
【0090】
第2スナップショットのスキャン後(脆弱性情報の検出後)、脆弱性検出部113は、当該第2スナップショットを検出対象システム(例えば、仮想サーバ内のストレージ)から削除する。
【0091】
脆弱性検出部113が第3検出処理を実行するタイミング(第2スナップショットを作成し、スキャン用システムを構築してスキャンするタイミング)は、ユーザの任意のタイミング(例えば、ユーザ端末20において第3検出処理の実行指示が入力されたタイミング)で行われてもよいし、予め定めた期間で定期的に行われてもよい。
【0092】
第3検出処理は、第1検出処理と並行して行われてもよい。この場合、第1スナップショットと第2スナップショットとは共通のものとされてもよい。また、第3検出処理は、第2検出処理と並行して行われてもよい。
【0093】
図7は、脆弱性検出部113によって実行される第3検出処理の流れの一例を示すフロー図である。第3検出処理では、まず、脆弱性検出部113は、スキャン対象のリソースに付与されたロールに基づいて、当該リソースをスキャンするためのスキャン用権限を取得する(ステップS310)。ここで、脆弱性検出部113がすでにスキャン用権限を取得している場合(例えば、第1検出処理が実行済みの場合等)は、ステップS310は省略される。次に、脆弱性検出部113は、検出対象システムに、スキャン用権限を有するスキャン用アカウントにてアクセスする(ステップS320)。なお、脆弱性検出部113は、検出対象システムにアクセス後に、スキャン用権限を取得してもよい。
【0094】
スキャン用権限を有するスキャン用アカウントによる検出対象システムへのアクセス後、脆弱性検出部113は、スキャン対象のリソースの第2スナップショットを検出対象システム内に作成する(ステップS330)。第2スナップショットの作成後、脆弱性検出部113は、当該第2スナップショットを検出対象システムから受信する(ステップS340)。続いて、脆弱性検出部113は、受信した第2スナップショットに基づいて、スキャン用システムを構築する(ステップS350)。
【0095】
スキャン用システムの構築後、脆弱性検出部113は、スキャン用システムに対し脆弱性情報のスキャンを行う(ステップS360)。脆弱性情報の検出後、脆弱性検出部113は、検出対象システム内の第2スナップショットを削除する(ステップS370)。
【0096】
なお、第3検出処理が第1検出処理と並行して行われる場合は、ステップS310及びステップS320は、第1検出処理のステップS110及びステップS120で代替される。つまり、第3検出処理において、ステップS310及びステップS320は省略される。さらに、第2スナップショットとして第1検出処理の第1スナップショットが利用される場合は、第3検出処理において、ステップS330及びステップS370が省略される。
【0097】
また、脆弱性検出部113は、検出対象システム内に予め作成された第2スナップショット(例えば、ユーザが自身で作成した第2スナップショット)を用いて、スキャン用システムを構築してもよい。この場合は、脆弱性検出部113は、スキャン後の第2スナップショットの削除を行わなくてもよい。
【0098】
<検出結果>
脆弱性検出部113は、1つの検出対象システム(検出対象のリソース)に対して、最初に第1検出処理を実行し、第1検出処理における検出結果に応じて、第2検出処理及び第3検出処理のうち少なくとも一方の処理を実行してもよい。これにより、第2検出処理及び第3検出処理のうち、第1検出処理で得られた検出結果を補足するのに適した処理が実行されるため、検出対象システムに対する検出処理の負荷を抑制しつつ、脆弱性情報の検出精度を高めることができる。
【0099】
第1検出処理における検出結果には、例えば、検出項目、検出項目の検出結果(アセット情報、構成情報等から抽出された情報)、検出項目における脆弱性情報、当該脆弱性情報の種別(例えば、攻撃コードの流通の有無等)及び優先度(レベル)、対策の要否(アラート)等が含まれる。
【0100】
例えば、脆弱性検出部113は、第1検出処理においてスキャン(情報の取得)ができなかった又はスキャンが不十分であった検出項目(以下、「特定項目」)に応じて、第2検出処理、第3検出処理、及び第2検出処理と第3検出処理との組み合わせのいずれかの実行を決定する。例えば、特定項目がエージェントによるスキャンが可能な検出項目(例えば、エージェントが収集する構成情報に含まれる項目)である場合は、脆弱性検出部113は、第2検出処理の実行を決定する。また例えば、特定項目が検出対象システム内ではスキャンできない検出項目(例えば、検出対象システムのOSで管理していないソフトウェアに関する項目)である場合は、脆弱性検出部113は、第3検出処理の実行を決定する。
【0101】
さらに、脆弱性検出部113は、第1検出処理後に行った第2検出処理の検出結果に応じて、さらに第3検出処理を実行してもよい。また、第1検出処理後に行った第3検出処理の検出結果に応じて、さらに第2検出処理を実行してもよい。特に、第3検出処理において、第2スナップショットがマウントできなかった場合や、復元したスキャン用システムに対してスキャンができなかった場合等に、脆弱性検出部113は、第2検出処理を実行するとよい。
【0102】
なお、脆弱性検出部113は、第1検出処理後に、第1検出処理における検出結果をユーザ端末20に表示させてから第2検出処理及び/又は第3検出処理を実行してもよいし、第1検出処理における検出結果をユーザ端末20に表示させずに第2検出処理及び/又は第3検出処理を実行してもよい。
【0103】
脆弱性検出部113は、第1検出処理における検出結果に応じて、当該検出結果を表示させるとともにユーザに第2検出処理及び/又は第3検出処理の実行を提示し、ユーザから第2検出処理及び/又は第3検出処理の実行指示を受け付けてもよい。これにより、第1検出処理の検出結果を確認した上で、必要に応じて第2検出処理及び/又は第3検出処理をユーザが追加で実行させることができる。
【0104】
例えば、脆弱性検出部113は、第1検出処理における検出結果をユーザ端末20に表示させるとともに、特定項目の内容に応じて、第2検出処理又は第3検出処理の実行を受け付けるオブジェクトをさらにユーザ端末20に表示させる。例えば、特定項目がエージェントによるスキャンが可能な検出項目である場合は、脆弱性検出部113は、第2検出処理の実行を提示する(第2検出処理の実行を受け付ける、ボタン等のオブジェクトをユーザ端末20に表示させる)。また例えば、特定項目が検出対象システム内ではスキャンできない検出項目である場合は、脆弱性検出部113は、第3検出処理の実行を提示する(第3検出処理の実行を受け付ける、ボタン等のオブジェクトをユーザ端末20に表示させる)。脆弱性検出部113は、ユーザ端末20において選択された(実行指示が入力された)検出処理(第2検出処理又は第3検出処理)を実行する。
【0105】
脆弱性検出部113は、ユーザ端末20に表示させる第1検出処理における検出結果において、第1スナップショットから検出できた情報量に応じて検出項目ごとの結果の表示態様を変更してもよい。これにより、ユーザが第1検出処理における検出結果の信頼性を確認することができる。そのため、当該検出結果の信頼性を踏まえて、ユーザが第2検出処理及び/又は第3検出処理の実行を選択できる。
【0106】
脆弱性検出部113は、例えば、情報量が少ない(情報量が不十分な)検出項目に関する結果(脆弱性情報、脆弱性情報の優先度等)を、文字の大きさ、色、フォント等の調整によって強調表示させてもよい。また、脆弱性検出部113は、情報量が少ない検出項目に、情報量が少ないことを示すマーク、ラベル等を付してもよい。なお、「情報量が少ない検出項目」とは、例えば、脆弱性情報の検出(マスタ情報との照合)を行うのに十分な情報量が検出できなかった検出項目である。また、「情報量が少ない検出項目」は、例えば、検出項目が対象とするアセット(例えば、ソフトウェア)の情報のうち、脆弱性情報の検出に必要な情報が全て取得できなかった検出項目であってもよい。
【0107】
脆弱性検出部113は、情報が検出できなかった検出項目について、当該検出項目の名称とともに、当該検出項目が検出できなかったことを示すメッセージをユーザ端末20に表示させてもよい。このとき、当該メッセージにおいて、検出できなかった検出項目を補完するための、第2検出処理又は第3検出処理の実行の提示がされてもよい。
【0108】
脆弱性検出部113は、第2検出処理及び/又は第3検出処理の実行後に、第1検出処理の検出結果を第2検出処理及び/又は第3検出処理の検出結果によって更新した最終検出結果をユーザ端末20に表示させてもよい。これにより、複数の検出処理の結果が統合された最終検出結果がユーザに提示されるため、複数回の検出処理が行われる場合においてもユーザが検出対象システムの脆弱性情報を確認しやすくなる。
【0109】
例えば、第1検出処理における検出結果では情報の検出未遂によってアラートが出ていた検出項目について、第2検出処理又は第3検出処理によって情報が検出できた場合は、最終検出結果では当該検出項目のアラートは削除される(ただし、脆弱性情報が検出された場合は、別のアラートが付与される)。また、第1検出情報における検出結果では検出されなかった脆弱性情報が第2検出処理又は第3検出処理によって検出された場合は、当該脆弱性情報が最終検出結果に追加される。
【0110】
脆弱性検出部113は、第1検出処理における初期検出結果をユーザ端末20に表示させた後に、初期検出結果を第2検出処理及び第3検出処理のうち一方の検出結果によって更新した中間検出結果をユーザ端末20に表示させ、その後さらに、中間検出結果を第2検出処理及び第3検出処理のうち残りの検出結果によって更新した最終検出結果をユーザ端末20に表示させてもよい。
【0111】
<表示部>
ユーザ端末20の表示部211は、情報処理装置10から送信されてきた画面データが示す画面を表示する。
【0112】
<操作取得部>
ユーザ端末20の操作取得部212は、ユーザ端末20を使用するユーザによる操作を受け付ける。
【0113】
3.情報処理方法
本節では、情報処理装置10の情報処理方法について説明する。この情報処理方法は、情報処理装置10の各部が、各ステップとしてコンピュータにより実行される。
【0114】
この情報処理は、脆弱性検出ステップを備える。脆弱性検出ステップでは、脆弱性情報の検出を行う検出対象システムに対し、第1検出処理と、第2検出処理と、第3検出処理とのうち少なくとも2つの処理を実行する。第1検出処理では、検出対象システム内に作成された、検出対象システムの少なくとも一部の状態を保存した第1スナップショットに対し、検出対象システム内において脆弱性情報のスキャンを実行する。第2検出処理では、検出対象システムにインストールされた、システムの構成情報を収集するエージェントに検出対象システムの少なくとも一部の構成情報を取得させるとともに、構成情報を受信し、さらに、構成情報に対し脆弱性情報のスキャンを実行する。第3検出処理では、検出対象システム内において検出対象システムの少なくとも一部の状態を保存した第2スナップショットを取得するとともに、第2スナップショットに基づいて検出対象システムの少なくとも一部をスキャン用システムとして再構築し、スキャン用システムに対し脆弱性情報のスキャンを実行する。
【0115】
図8は、情報処理システム1によって実行される情報処理(脆弱性情報の検出処理)の流れの一例を示すアクティビティ図である。以下では、このアクティビティ図の各アクティビティに沿って、情報処理を説明する。
【0116】
脆弱性情報の検出処理は、検索対象システムの登録から開始される。ユーザは、ユーザ端末20において、検索対象システムの指定、ロールの作成及び付与等の情報処理装置10による検索対象システムのスキャンに必要な設定を入力する(アクティビティA101)。情報処理装置10は、ユーザ端末20において入力された検索対象システムをスキャン対象として登録する(アクティビティA102)。
【0117】
検索対象システムの登録後、ユーザは、ユーザ端末20において、情報処理装置10に対するスキャンの指示を入力する(アクティビティA103)。なお、ユーザ端末20におけるスキャンの指示は、スキャンをするタイミングの設定指示でもよい。情報処理装置10は、ユーザ端末20からのスキャンの指示を受けて、検索対象システムに対し、第1検出処理を実行する(アクティビティA104)。第1検出処理の実行後、情報処理装置10は、第1検出処理における検出結果(初期検出結果)と、第2検出処理及び/又は第3検出処理を追加実行することの提案とをユーザ端末20に出力する(アクティビティA105)。これにより、ユーザ端末20に初期検出結果及び追加検出処理の提案が表示される(アクティビティA106)。
【0118】
ユーザは、初期検出結果を確認した後、ユーザ端末20において、第2検出処理及び/又は第3検出処理(追加検出処理)の実行指示を入力する(アクティビティA107)。情報処理装置10は、ユーザ端末20からの追加検出処理の実行指示を受けて、検索対象システムに対し、追加検出処理を実行する(アクティビティA108)。追加検出処理の実行後、情報処理装置10は、追加検出処理における検出結果(最終検出結果)をユーザ端末20に出力する(アクティビティA109)。これにより、ユーザ端末20に最終検出結果が表示される(アクティビティA110)。
【0119】
4.作用
本実施形態の作用をまとめると、次の通りとなる。すなわち、第1検出処理、第2検出処理、及び第3検出処理の任意の処理の組み合わせによって検出対象システムから脆弱性情報を検出できる。そのため、検出対象システムの構成や使用環境に応じて検出処理を選択することで、脆弱性情報が取得しやすくなる。
【0120】
以上、本発明の実施形態について説明したが、本発明はこれに限定されることなく、その発明の技術的思想を逸脱しない範囲で適宜変更可能である。
【0121】
5.その他
上記実施形態では、情報処理装置10が種々の記憶・制御を行ったが、情報処理装置10に代えて、複数の外部装置が用いられてもよい。すなわち、種々の情報やプログラムは、ブロックチェーン技術等を用いて複数の外部装置に分散して記憶されてもよい。
【0122】
本実施形態の態様は、情報処理システム1に限定されず、情報処理方法であっても、プログラムであってもよい。情報処理方法は、情報処理システム1が実行する各ステップを備える。プログラムは、コンピュータに、情報処理システム1の各ステップを実行させる。
【0123】
次に記載の各態様で提供されてもよい。
【0124】
(1)情報処理システムであって、少なくとも1つのプロセッサを備え、前記プロセッサは、プログラムを読み出すことで次の各ステップを実行するように構成され、脆弱性検出ステップでは、脆弱性情報の検出を行う検出対象システムに対し、第1検出処理と、第2検出処理と、第3検出処理とのうち少なくとも2つの処理を実行し、前記第1検出処理では、前記検出対象システム内に作成された、前記検出対象システムの少なくとも一部の状態を保存した第1スナップショットに対し、前記検出対象システム内において脆弱性情報のスキャンを実行し、前記第2検出処理では、前記検出対象システムにインストールされた、システムの構成情報を収集するエージェントに前記検出対象システムの少なくとも一部の構成情報を取得させるとともに、前記構成情報を受信し、さらに、前記構成情報に対し脆弱性情報のスキャンを実行し、前記第3検出処理では、前記検出対象システム内において前記検出対象システムの少なくとも一部の状態を保存した第2スナップショットを取得するとともに、前記第2スナップショットに基づいて前記検出対象システムの少なくとも一部をスキャン用システムとして再構築し、前記スキャン用システムに対し脆弱性情報のスキャンを実行する、情報処理システム。
【0125】
(2)上記(1)に記載の情報処理システムにおいて、前記脆弱性検出ステップでは、前記第1検出処理と、前記第2検出処理及び前記第3検出処理のうち少なくとも一方の処理とを実行する、情報処理システム。
【0126】
(3)上記(2)に記載の情報処理システムにおいて、前記脆弱性検出ステップでは、前記第1検出処理を実行し、前記第1検出処理における検出結果に応じて、前記第2検出処理及び前記第3検出処理のうち少なくとも一方の処理を実行する、情報処理システム。
【0127】
(4)上記(3)に記載の情報処理システムにおいて、前記脆弱性検出ステップでは、前記第1検出処理における検出結果に応じて、当該検出結果を表示させるとともにユーザに前記第2検出処理及び/又は前記第3検出処理の実行を提示し、前記ユーザから前記第2検出処理及び/又は前記第3検出処理の実行指示を受け付ける、情報処理システム。
【0128】
(5)上記(3)又は(4)に記載の情報処理システムにおいて、前記脆弱性検出ステップでは、前記第1検出処理における検出結果において、前記第1スナップショットから検出できた情報量に応じて検出項目ごとの結果の表示態様を変更する、情報処理システム。
【0129】
(6)上記(3)から(5)のいずれか1つに記載の情報処理システムにおいて、前記脆弱性検出ステップでは、前記第2検出処理及び/又は前記第3検出処理の実行後に、前記第1検出処理の検出結果を前記第2検出処理及び/又は前記第3検出処理の検出結果によって更新した検出結果を表示させる、情報処理システム。
【0130】
(7)上記(1)から(6)のいずれか1つに記載の情報処理システムにおいて、前記検出対象システムは、仮想サーバである、情報処理システム。
【0131】
(8)上記(7)に記載の情報処理システムにおいて、前記第3検出処理では、前記検出対象システムと同じクラウドプラットフォーム上の仮想サーバに前記スキャン用システムを構築する、情報処理システム。
【0132】
(9)上記(1)から(8)のいずれか1つに記載の情報処理システムにおいて、前記第1検出処理では、前記検出対象システムをスキャンする権限を取得し、当該権限に基づいて前記検出対象システムに対する前記第1スナップショットを前記検出対象システム内において作成し、さらに、前記第1スナップショットに対する脆弱性情報のスキャンの実行後に前記第1スナップショットを削除する、情報処理システム。
【0133】
(10)上記(1)から(9)のいずれか1つに記載の情報処理システムにおいて、前記第2検出処理では、前記エージェントに前記構成情報を取得させて前記検出対象システムの外部に送信させる権限を取得し、前記エージェントに、前記構成情報を出力させるコマンドを前記検出対象システムへ入力させる、情報処理システム。
【0134】
(11)上記(1)から(10)のいずれか1つに記載の情報処理システムにおいて、前記第3検出処理では、前記検出対象システムをスキャンする権限を取得し、当該権限に基づいて前記検出対象システムに対する前記第2スナップショットを前記検出対象システム内において作成した上で前記第2スナップショットのコピーを受信し、さらに、前記スキャン用システムの構築後に、前記検出対象システム内の前記第2スナップショットを削除する、情報処理システム。
【0135】
(12)上記(1)から(11)のいずれか1つに記載の情報処理システムにおいて、前記脆弱性検出ステップでは、第三者機関が設定する脆弱性のレベルを示す情報、外部からアクセス可能であるか否かを示す情報、脆弱性に対する攻撃による業務への影響が大きいか否かを示す情報、脆弱性に対する攻撃コードが流通しているか否かを示す情報、及び脆弱性の悪用が確認されている否かを示す情報のうち、少なくとも1つの情報に基づいて、前記第1検出処理、前記第2検出処理、及び前記第3検出処理のいずれかにおいて検出された脆弱性情報の優先度を判定する、情報処理システム。
【0136】
(13)情報処理方法であって、上記(1)から(12)のいずれか1つに記載の情報処理システムが実行する各ステップを備える、情報処理方法。
【0137】
(14)プログラムであって、コンピュータに、上記(1)から(12)のいずれか1つに記載の情報処理システムの各ステップを実行させるための、プログラム。
もちろん、この限りではない。
【0138】
最後に、本開示に係る種々の実施形態を説明したが、これらは、例として提示したものであり、発明の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0139】
1 :情報処理システム
2 :通信回線
10 :情報処理装置
11 :制御部
12 :記憶部
13 :通信部
14 :通信バス
20 :ユーザ端末
21 :制御部
22 :記憶部
23 :通信部
24 :入力部
25 :出力部
26 :通信バス
30 :被管理サーバ
40 :脆弱性情報サーバ
111 :基本表示制御部
112 :システム登録部
113 :脆弱性検出部
211 :表示部
212 :操作取得部
U :ユーザ
【要約】      (修正有)
【課題】システムにおける脆弱性情報を取得しやすくする情報処理システム、方法及びプログラムを提供する。
【解決手段】情報処理システムにおいて、情報処理装置のプロセッサは、脆弱性検出ステップでは、脆弱性情報の検出を行う検出対象システムに対し、第1検出処理と、第2検出処理と、第3検出処理とのうち少なくとも2つの処理を実行し、第1検出処理では、検出対象システムの状態を保存した第1スナップショットに対し、脆弱性情報のスキャンを実行し、第2検出処理では、エージェントに検出対象システムの構成情報を取得させ、構成情報に対し脆弱性情報のスキャンを実行し、第3検出処理では、検出対象システムの少なくとも一部の状態を保存した第2スナップショットを取得するとともに、第2スナップショットに基づいて検出対象システムの少なくとも一部をスキャン用システムとして再構築し、スキャン用システムに対し脆弱性情報のスキャンを実行する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8