説明

脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラム

【課題】計算機およびネットワーク機器を具備するシステムにおいて、ソフトウェアの脆弱性の影響を判定する。
【解決手段】脆弱性判定システム10は、計算機およびネットワーク機器を具備する判定対象システムにおいて、ソフトウェアの脆弱性を判定する。脆弱性判定システム10の影響ソフトウェア抽出部31は、脆弱性情報データベース21、および、計算機のソフトウェアのソフトウェアデータベース24に基づいて、判定対象システムが有するソフトウェアが脆弱性の影響を受けるか否かを判定する。脆弱性判定システム10の直接パス探索部32は、影響ソフトウェア抽出部31によって、判定対象システムが有するソフトウェアが脆弱性の影響を受けると判定された際に、影響を受けるソフトウェアが、外部ネットワークから攻撃可能か否かを判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理対象のシステムが具備するソフトウェアの脆弱性の影響を判定する脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラムに関する。
【背景技術】
【0002】
近年、イントラネットやインターネットでは、様々なシステムが構築され、サービスが提供されている。これらシステムは、複数の計算機や複数のネットワーク機器などを備え、各計算機の上では複数のソフトウェア(サービスプログラムやクライアントプログラムやオペレーティングシステムなど)が動作し、これらが全て連携している。
【0003】
このようなシステムを安全に稼働させるためには、システム内で動作しているソフトウェアの脆弱性への対策が重要である。この脆弱性への対策には、システムの管理者が随時修正パッチを適用していく必要がある。しかし、大規模化したシステムにおいて、システムの管理者の負担は大きくなり、システムのいずれの計算機のいずれのソフトウェアに脆弱性があるかを把握することすら困難となる。
【0004】
特許文献1には、管理対象システムのソフトウェア構成情報や公開されている脆弱性情報や対象システムのセキュリティ低下度合いから脆弱性対応の優先度を算出し、脆弱性への効率的な対応を実現する装置が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−086311号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の発明は、システムを構成するソフトウェアの脆弱性を、システムの管理者が認知するためには有効である。しかし、ソフトウェアに脆弱性が発見されたとしても、システムの構成によっては脆弱性への対応を必ずしも早急に行わなくても良い場合がある。
【0007】
例えば、システムを構成するWeb(World Wide Web)サーバに脆弱性が発見された場合を考える。このWebサーバが、攻撃元となり得ると予測されるネットワークに対してサービスを提供していない場合、このWebサーバの脆弱性に対する攻撃は到達しない。よって、このWebサーバの脆弱性への対策は、必ずしも早急に行わなくても良い。
【0008】
既存の技術では、システムを構成するソフトウェアのいずれかに脆弱性が存在する場合に、この脆弱性が、対応しないとシステムにとって危機となり得るものであるか、もしくは早急に対応しなくても大きな問題とはならないものであるかを判定することができなかった。このため、システムの管理者は、膨大な数の脆弱性への対応に忙殺されてしまう、という問題があった。
【0009】
そこで、本発明は、システムの脆弱性の影響の判定を可能とする脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラムを提供することを課題とする。
【課題を解決するための手段】
【0010】
前記課題を解決し、本発明の目的を達成するために、以下のように構成した。
【0011】
すなわち、本発明の脆弱性判定システムは、計算機およびネットワーク機器を具備する管理対象のシステムの脆弱性を判定する脆弱性判定システムであって、ソフトウェアの脆弱性情報、および、前記計算機にインストールされているソフトウェアの情報に基づいて、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けるか否かを判定する影響ソフトウェア抽出部と、前記影響ソフトウェア抽出部によって、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェアが、外部ネットワークから直接的に攻撃可能か否かを判断する直接パス探索部とを有することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【0012】
本発明によれば、システムの脆弱性の影響の判定を可能とする脆弱性判定システム、脆弱性判定方法、および、脆弱性判定プログラムを提供することが可能となる。
【図面の簡単な説明】
【0013】
【図1】第1の実施形態に於ける脆弱性判定システムの概略の構成図である。
【図2】第1の実施形態に於ける脆弱性判定システムと判定対象システムの接続を示す図である。
【図3】第1の実施形態に於ける判定対象システムの構成(その1)を示す図である。
【図4】第1の実施形態に於ける判定対象システムの構成(その2)を示す図である。
【図5】第1の実施形態に於ける各サーバまたは利用者端末を示す概略の構成図である。
【図6】第1の実施形態に於ける管理者端末を示す概略の構成図である。
【図7】第1の実施形態に於ける脆弱性情報データベースを示す図である。
【図8】第1の実施形態に於けるシステム情報データベースを示す図である。
【図9】第1の実施形態に於ける計算機データベースを示す図である。
【図10】第1の実施形態に於けるソフトウェアデータベースを示す図である。
【図11】第1の実施形態に於ける機器データベースを示す図である。
【図12】第1の実施形態に於けるネットワーク接続構成データベースを示す図である。
【図13】第1の実施形態に於けるサービス設定データベースを示す図である。
【図14】第1の実施形態に於ける機器設定データベースを示す図である。
【図15】第1の実施形態に於けるログデータベースを示す図である。
【図16】第1の実施形態に於ける管理者データベースの構成例を示す図である。
【図17】第1の実施形態に於ける影響ソフトウェア抽出部と通知部の動作を示すフローチャートである。
【図18】第1の実施形態に於ける直接パス探索処理を示すフローチャートである。
【図19】第1の実施形態に於ける攻撃可能性の判断処理を示すフローチャートである。
【図20】第1の実施形態に於ける間接パス探索処理を示すフローチャートである。
【図21】第1の実施形態に於けるブラウザアクセスに対する通知部の動作を示すフローチャートである。
【図22】第1の実施形態に於ける管理者端末のブラウザ画面を示す図である。
【図23】第2の実施形態に於ける間接パス探索処理を示すフローチャートである。
【図24】第2の実施形態に於ける計算機が攻撃の踏み台となる可能性の判断処理を示すフローチャートである。
【図25】第2の実施形態に於けるサーバとしての計算機の攻略可能性の判断処理を示すフローチャートである。
【図26】第2の実施形態に於けるクライアントとしての計算機の攻略可能性の判断処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
以降、本発明を実施するための形態(「本実施形態」という)を、図等を参照して詳細に説明する。
【0015】
(第1の実施形態の構成)
図1は、第1の実施形態に於ける脆弱性判定システムの概略の構成図である。以下、図面および明細書で、データベースを「DB」と省略している場合がある。
脆弱性判定システム10は、脆弱性情報収集部11と、脆弱性情報データベース21と、システム情報収集部12と、システム情報データベース22と、計算機情報収集部13と、計算機データベース23と、ソフトウェア情報収集部14と、ソフトウェアデータベース24と、機器情報収集部15と、機器データベース25と、ネットワーク接続情報収集部16と、ネットワーク接続情報データベース26と、サービス設定収集部17と、サービス設定データベース27と、機器設定収集部18と、機器設定データベース28と、影響ソフトウェア抽出処理を行う影響ソフトウェア抽出部31と、直接パス探索処理を行う直接パス探索部32と、間接パス探索処理を行う間接パス探索部33と、記録部34と、ログデータベース36と、管理者データベース37と、通知部35とを有している。
【0016】
本実施形態の脆弱性判定システム10は、単一の計算機(サーバ)によって構成されている。しかし、これに限定されず、脆弱性判定システム10の機能を構成する各部、および各データベースが複数の計算機(サーバ)に分散して設けられ、これら複数の計算機(サーバ)が、ネットワーク100やバスを介して接続されていても良い。
【0017】
脆弱性情報収集部11は、ネットワーク100と脆弱性情報データベース21とに接続されている。システム情報収集部12は、ネットワーク100とシステム情報データベース22とに接続されている。計算機情報収集部13は、ネットワーク100と計算機データベース23とに接続されている。ソフトウェア情報収集部14は、ネットワーク100とソフトウェアデータベース24とに接続されている。機器情報収集部15は、ネットワーク100と機器データベース25とに接続されている。ネットワーク接続情報収集部16は、ネットワーク100とネットワーク接続情報データベース26とに接続されている。サービス設定収集部17は、ネットワーク100とサービス設定データベース27とに接続されている。機器設定収集部18は、ネットワーク100と機器設定データベース28とに接続されている。
【0018】
脆弱性情報データベース21と、システム情報データベース22と、計算機データベース23と、ソフトウェアデータベース24と、機器データベース25と、ネットワーク接続情報データベース26と、サービス設定データベース27と、機器設定データベース28とは、影響ソフトウェア抽出部31と、直接パス探索部32と、間接パス探索部33とに、それぞれ接続されている。
【0019】
影響ソフトウェア抽出部31は、直接パス探索部32を介して記録部34に接続されていると共に、直接パス探索部32と間接パス探索部33とを介して記録部34に接続されている。記録部34は、ログデータベース36と通知部35とに接続されている。通知部35は、管理者データベース37と記録部34とに接続されていると共に、ネットワーク100に接続されている。
【0020】
影響ソフトウェア抽出部31は、後述するソフトウェア60−m(図3)(mは自然数)の脆弱性情報データベース21、および、後述する計算機50−n(図3)(nは自然数)にインストールされているソフトウェアデータベース24に基づいて、後述する管理対象のシステムである判定対象システム40(図3)が有するソフトウェア60−m(図3)が、脆弱性の影響を受けるか否かを判定する機能を有している。
【0021】
直接パス探索部32は、影響ソフトウェア抽出処理によって、判定対象システム40(図2)が有するソフトウェア60−m(図3)が脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェア60−m(図3)が、図示しない外部ネットワークから直接的に攻撃可能か否かを判断する。
直接パス探索部32は、外部ネットワークから影響を受けるソフトウェア60−m(図3)を搭載した計算機50−n(図3)に直接的に到達可能な経路を探索し、この直接的に到達可能な経路において、影響を受けるソフトウェア60−m(図3)の脆弱性がファイアウォール(Firewall)またはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、影響を受けるソフトウェア60−m(図3)が、外部ネットワークから直接的に攻撃可能か否かを判断する。なお、図面および明細書では、ファイアウォールを「FW」と省略している場合がある。
【0022】
間接パス探索部33は、直接パス探索処理によって呼び出され、前記影響を受けるソフトウェア60−m(図3)が、外部ネットワークから間接的に攻撃可能か否かを判断する。
間接パス探索部33は、外部ネットワークから影響を受けるソフトウェア60−m(図3)を搭載した計算機50−n(図3)に間接的に到達可能な経路を探索し、この間接的に到達可能な経路の全てにおいて、影響を受けるソフトウェア60−m(図3)の脆弱性がファイアウォール(Firewall)またはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、影響を受けるソフトウェア60−m(図3)が、外部ネットワークから間接的に攻撃可能か否かを判断する。
【0023】
図2は、第1の実施形態に於ける脆弱性判定システムと判定対象システムの接続を示す図である。
脆弱性判定システム10と、複数の判定対象システム40(=40−1〜40−4)と、複数の管理者端末200(=200−1〜200−3)と、脆弱性情報提供サイト300(=300−1〜300−3)とは、ネットワーク100を介して相互に通信可能に接続されている。
【0024】
本実施形態では、判定対象システム40は4個であり、管理者端末200と、脆弱性情報提供サイト300とはそれぞれ3個である。しかし、これらの数は本実施形態に限定されず、1以上の任意の数であれば良い。
【0025】
本実施形態のネットワーク100は、LAN (Local Area Network)と、インターネットの両方を含んで構成されている。しかし、これに限定されず、ネットワーク100は、WAN(Wide Area Network)と、インターネットの両方を含んで構成されていても良く、更に全てがインターネットによって構成されていても良い。
脆弱性判定システム10は、判定対象システム40(=40−1〜40−4)のソフトウェア60−mの脆弱性の有無と、その影響を判定する機能を有している。
【0026】
判定対象システム40(=40−1〜40−4)は、この判定対象システム40自身の内部、または、外部ネットワークのいずれかにサービスを提供する機能を有している。
管理者端末200(=200−1〜200−3)は、判定対象システム40(=40−1〜40−4)のいずれかを管理するシステムの管理者が利用する計算機である。
【0027】
脆弱性情報提供サイト300(=300−1〜300−3)は、ソフトウェアの脆弱性に関する情報を公開している国内外のウェブサイトである。脆弱性情報提供サイト300−1は、例えば、JPCERT/CC(Japan Computer Emergency Response Team Coordination Center)と情報処理推進機構が共同で管理するJVN(Japan Vulnerability Notes)である。
【0028】
脆弱性情報提供サイト300−2は、例えば、米国NIST(National Institute of Standards and Technology)が管理するNVD(National Vulnerability Database)である。
【0029】
脆弱性情報提供サイト300−3は、例えば、オープンソースの脆弱性データベースであるOSVDB(Open Source Vulnerability Database)である。
【0030】
図3は、第1の実施形態に於ける判定対象システムの構成(その1)を示す図である。
判定対象システム40−1は、ファイアウォール41と、IPS(Intrusion Prevention System:侵入防止装置)42と、ルータ43と、スイッチ44と、計算機50(=50−1〜50−5)とを有している。ファイアウォール41と、IPS42と、ルータ43と、スイッチ44とは、ネットワークに接続されるネットワーク機器45である。判定対象システム40−1には、System01という識別子が付与されている。
【0031】
計算機50−1には、Com01という識別子が付与され、ソフトウェア60−1,60−2を有している。計算機50−2には、Com02という識別子が付与され、ソフトウェア60−3,60−4を有している。計算機50−3には、Com03という識別子が付与され、ソフトウェア60−5,60−6を有している。計算機50−4には、Com04という識別子が付与され、ソフトウェア60−7,60−8を有している。計算機50−5には、Com05という識別子が付与され、ソフトウェア60−9,60−10を有している。
【0032】
計算機50−1には、WebサーバプログラムA(=ソフトウェア60−1)とオペレーティングシステムD(=ソフトウェア60−2)とがインストールされており、Webサービスを提供している。
【0033】
計算機50−2には、DB(database)サーバプログラムS(=ソフトウェア60−3)とオペレーティングシステムD(=ソフトウェア60−4)とがインストールされており、データベースのサービスを提供している。
【0034】
計算機50−3には、ProxyサーバプログラムF(=ソフトウェア60−5)とオペレーティングシステムD(=ソフトウェア60−6)とがインストールされており、外部ネットワークから後述する計算機50−4への通信の中継サービス(Proxy)を提供している。
【0035】
計算機50−4には、メールサーバプログラムE(=ソフトウェア60−7)とオペレーティングシステムC(=ソフトウェア60−8)とがインストールされ、メールサービスを提供している。
【0036】
計算機50−5には、ブラウザB(=ソフトウェア60−9)とオペレーティングシステムG(=ソフトウェア60−10)とがインストールされ、運用担当者の端末として機能している。
【0037】
ファイアウォール41は、ネットワーク100と接続されていると共に、IPS42、ルータ43、スイッチ44を介して計算機50−1〜50−3、および、計算機50−5に接続されている。計算機50−3は更に、計算機50−4に接続されている。
ファイアウォール41には、Dev01という識別子が付与されている。IPS42には、Dev02という識別子が付与されている。ルータ43には、Dev03という識別子が付与されている。スイッチ44には、Dev04という識別子が付与されている。
ファイアウォール41は、一般的に組織内のコンピュータネットワークへ外部から侵入されるのを防ぐシステムが組みこまれた情報処理装置である。
IPS42は、外部ネットワークからの不正な侵入を検知したら、接続の遮断などの防御をリアルタイムに行う機能を有している。IPS42は、ワームやサービス拒否攻撃などのパケットが持つ特徴的なパターンを記憶しており、該当する接続を検知するとこれを遮断して記録をとり、管理者へ通知する機能を有している。
【0038】
ここでワームとは、自己増殖を繰り返しながらコンピュータの破壊活動を行う不正プログラムのことである。ワームは、感染したコンピュータのメールクライアントソフトウェアなどを悪用して、多数の他のコンピュータに当該ワームを送信しようとする。このため、ワームは、感染したコンピュータを破壊するだけではなく、感染したコンピュータ周辺のネットワークの輻輳障害を起こす場合がある。
サービス拒否攻撃とは、多数のコンピュータを一斉に動作させて特定のサイトにIPパケット等を送信して攻撃することである。サービス拒否攻撃は、ネットワークにより結ばれている多数の計算機にインストールされたDoS(denial of service)攻撃用プログラムによって行われ、攻撃対象のサイトの性能低下とシステム麻痺とを引き起こす。
【0039】
ルータ43は、ネットワーク間を相互に接続する通信機器であり、一方のネットワーク上を流れるデータを他方のネットワーク上に中継する機能を有している。スイッチ44は、例えばスイッチングハブやL3スイッチなどであり、回線やパケットの交換機能を有している。
【0040】
図4は、第1の実施形態に於ける判定対象システムの構成(その2)を示す図である。
判定対象システム40−2には、System02という識別子が付与されている。判定対象システム40−2は、ルータ43と、スイッチ44と、計算機50−6とを有している。ルータ43は、ネットワーク100と接続されていると共に、スイッチ44を介して計算機50−6に接続されている。ルータ43には、Dev05という識別子が付与されている。スイッチ44には、Dev06という識別子が付与されている。
【0041】
計算機50−6には、Com06という識別子が付与されている。計算機50−6には更に、メールサーバプログラムE(=ソフトウェア60−11)とオペレーティングシステムC(=ソフトウェア60−12)とがインストールされ、メールのサービスを提供している。
【0042】
判定対象システム40−3には、System03という識別子が付与されている。判定対象システム40−3は、ファイアウォール41と、計算機50−7とを有している。ファイアウォール41は、ネットワーク100と接続されていると共に、計算機50−7に接続されている。ファイアウォール41には、Dev07という識別子が付与されている。
計算機50−7には、Com07という識別子が付与されている。計算機50−7には、WebサーバプログラムA(=ソフトウェア60−13)とオペレーティングシステムD(=ソフトウェア60−14)とがインストールされ、Webサービスを提供している。
【0043】
判定対象システム40−4には、System04という識別子が付与されている。判定対象システム40−4は、ファイアウォール41と、計算機50−8とを有している。ファイアウォール41は、ネットワーク100と接続されていると共に、計算機50−8に接続されている。ファイアウォール41には、Dev08という識別子が付与されている。
計算機50−8には、Com08という識別子が付与されている。計算機50−8には、DBサーバプログラムB(=ソフトウェア60−15)とオペレーティングシステムD(=ソフトウェア60−16)とがインストールされ、データベースのサービスを提供している。
【0044】
図5は、第1の実施形態に於ける各サーバまたは利用者端末を示す概略の構成図である。
サーバまたは利用者端末である計算機50−n(nは自然数)は、CPU(Central Processing Unit)51と、RAM(Random Access Memory)やROM(Read Only Memory)で構成されているメモリ52と、液晶表示装置などで構成されている表示装置53と、マウスやキーボードなどで構成されている入力装置54と、ネットワーク100を介してデータを送受信する通信装置55と、ハードディスクドライブやフラッシュメモリなどで構成されている記憶装置56とを有している。記憶装置56には、更にプログラム60−pとオペレーティングシステム60−q(p,qは自然数)が格納されている。
【0045】
図6は、第1の実施形態に於ける管理者端末を示す概略の構成図である。前述した図5に示す計算機50−nと同一の要素には同一の符号が付与されている。
管理者端末200−r(rは自然数)は、記憶装置56にブラウザ210−1とメールクライアント210−2とを格納している他は、サーバまたは利用者端末である計算機50−nと同様の構成を有している。
【0046】
≪脆弱性情報収集部11の機能≫
脆弱性情報収集部11は、ネットワーク100を介して脆弱性情報提供サイト300から脆弱性の情報を収集し、脆弱性情報データベース21へと格納する機能を有している。脆弱性情報提供サイト300では、脆弱性の情報を、人間が読みやすい形式、または/および、コンピュータでの処理が容易なRSS(RDF Site Summary)などの構造化された形式で提供している。本実施形態の脆弱性情報収集部11は、脆弱性情報提供サイト300で提供されるRSSなどの情報を自動収集し、脆弱性情報データベース21へ格納できる形式へ変換している。しかし、これに限定されず、脆弱性情報提供サイト300で公開されている情報を手動で脆弱性情報データベース21へ格納する方式であっても良い。
【0047】
≪脆弱性情報データベース21の構成≫
図7は、第1の実施形態に於ける脆弱性情報データベースを示す図である。
脆弱性情報データベース21は、脆弱性識別子21a、脆弱性情報公開日21b、影響ソフトウェア21c、影響バージョン21d、脆弱性タイプ21e、ソフトウェア種別21f、パッチ情報21g、回避方法21hの項目を有している。
脆弱性識別子21aの項目は、脆弱性情報データベース21内の脆弱性を一意に特定するための識別子を格納している。脆弱性情報公開日21bの項目は、この脆弱性が一般に公開された日の情報が格納されている。
影響ソフトウェア21cの項目は、この脆弱性を有するソフトウェア60−mの名称が格納されており、後述するソフトウェアデータベース24の利用ソフトウェア24bと共通の値が格納されている。
影響バージョン21dの項目は、この脆弱性を有するソフトウェア60−mのうち、この脆弱性があるバージョンを特定する情報が格納されている。
脆弱性タイプ21eの項目は、この脆弱性によって発生する問題の種別を表す情報が格納されている。例えばDoS(Denial of Service, サービス拒否)、任意のコード実行、情報漏えい、データの改ざんなどの情報が格納されている。
ソフトウェア種別21fの項目は、この脆弱性を有するソフトウェア60−mの種別を表す情報であり、サービス、クライアントプログラム、オペレーティングシステムなど、後述するソフトウェアデータベース24のソフトウェア種別24dと共通の値が格納されている。
パッチ情報21gの項目は、この脆弱性に対するパッチが提供されているかを表す情報である。パッチが提供されている場合には、当該パッチに関する情報、例えばパッチが公開されているウェブサイトのURL(Uniform Resource Locator)などが格納されている。パッチが提供されていない場合には、この項目は「無」となる。回避方法21hの項目は、パッチを当てる以外の方法で当該脆弱性を狙った攻撃からソフトウェア60−mを保護することができる場合、その方法を格納するものであり、その方法が無い場合、この項目は「無」となる。
【0048】
≪システム情報収集部12の機能≫
システム情報収集部12は、判定対象のシステムに関する情報を収集し、システム情報データベース22へと格納する機能を有している。本実施形態において、システム情報収集部12は、管理者端末200−1〜200−3にシステム情報収集の入力画面を表示して、システム情報を収集する。
【0049】
≪システム情報データベース22の構造≫
図8は、第1の実施形態に於けるシステム情報データベースを示す図である。
システム情報データベース22は、システム識別子22a、概要22b、管理者識別子22cの項目を有している。システム識別子22aの項目は、判定対象システム40−1〜40−4を一意に特定するための識別子が格納されている。概要22bの項目は、判定対象システム40−1〜40−4のサービスの概要またはシステムの概要を表す情報が格納されている。管理者識別子22cの項目は、判定対象システム40−1〜40−4を管理する管理者を表す識別子であり、後述する管理者データベース37の管理者識別子37aの項目と共通の値が格納されている。
【0050】
≪計算機情報収集部13の機能≫
計算機情報収集部13は、判定対象のシステムを構成する計算機50に関する情報を収集し、計算機データベース23へと格納する機能を有している。本実施形態において、計算機情報収集部13は、管理者端末200−1〜200−3に計算機情報収集の入力画面を表示して、計算機情報を収集する。
【0051】
≪計算機データベース23の構成≫
図9は、第1の実施形態に於ける計算機データベースを示す図である。
計算機データベース23は、計算機識別子23a、システム識別子23b、サーバ利用フラグ23c、クライアント利用フラグ23dの項目を有している。
計算機識別子23aの項目は、計算機50−nを一意に特定するための識別子が格納されている。システム識別子23bの項目は、この計算機50−nが含まれる判定対象システム40を表す識別子であり、システム情報データベース22のシステム識別子22aの項目と共通の値が格納されている。
【0052】
サーバ利用フラグ23cの項目は、この計算機50−nがシステム識別子23bで特定されるシステム内において、何らかのサービスを提供するサーバとして利用されているか否かを示す値が格納されている。サーバとして利用されている場合には「True」が、そうでない場合には「False」が格納されている。
【0053】
クライアント利用フラグ23dの項目は、サーバ利用フラグ23cの項目と同様に、この計算機50−nがシステム識別子23bの項目で特定されるシステム内において、クライアント端末として動作するか否かを示す情報が格納されている。クライアント端末として動作する場合には「True」、そうでない場合には「False」が格納されている。
【0054】
≪ソフトウェア情報収集部14の機能≫
ソフトウェア情報収集部14は、判定対象システム40内の各計算機50に導入されているソフトウェア60−mに関する情報を収集する機能を有している。
本実施形態では、判定対象システム40内の各計算機50(=50−1,…)上で導入しているソフトウェア60(=60−1,…)のリストを出力するソフトウェアプログラムを動作させ、各計算機50−nからソフトウェア情報収集部14へとネットワーク100経由で送信させている。しかし、これに限定されず、判定対象システム40の管理者に、各計算機50−nに導入されている各ソフトウェア60−mに関する情報を手動で入力させる方式であっても良い。
【0055】
≪ソフトウェアデータベース24の構成≫
図10は、第1の実施形態に於けるソフトウェアデータベースを示す図である。
ソフトウェアデータベース24は、計算機識別子24a、利用ソフトウェア24b、バージョン24c、ソフトウェア種別24dの項目を有している。計算機識別子24aの項目は、計算機50−nを一意に特定するための識別子であり、計算機データベース23の計算機識別子23aの項目と共通の値が格納されている。
利用ソフトウェア24bの項目と、バージョン24cの項目とは、計算機識別子24aで特定される計算機50−n内に導入されているソフトウェア60−mの名称と、そのソフトウェア60−mのバージョン情報とがそれぞれ格納されている。
ソフトウェア種別24dの項目には、計算機識別子24aで特定される計算機50−n内に導入されているソフトウェア60−mの種別が格納されている。ソフトウェア60−mがオペレーティングシステムであれば、ソフトウェア60−mの種別として「OS」が格納される。ソフトウェア60−mがサービスに係るものであれば、ソフトウェア60−mの種別として「サービス」が格納される。ソフトウェア60−mがクライアントソフトウェアであれば、ソフトウェア60−mの種別として「クライアント」が格納される。
【0056】
≪機器情報収集部15の機能≫
機器情報収集部15は、判定対象のシステムを構成するネットワーク機器45に関する情報を収集し、機器データベース25へと格納する機能を有している。本実施形態において、機器情報収集部15は、管理者端末200−1〜200−3に機器情報収集の入力画面を表示し、機器情報を収集する。
【0057】
≪機器データベース25の構成≫
図11は、第1の実施形態に於ける機器データベースを示す図である。
機器データベース25は、機器識別子25a、システム識別子25b、種別25cの項目を有している。機器識別子25aの項目は、当該ネットワーク機器45を一意に特定するための識別子が格納されている。
システム識別子25bの項目は、当該ネットワーク機器45が属するシステムの識別子であり、システム情報データベース22のシステム識別子22aと共通の値が格納されている。種別25cの項目は、当該ネットワーク機器45の種別を示す情報であり、「スイッチ」、「ルータ」、「ファイアウォール」、「IPS」、「負荷分散装置」などの情報が格納されている。
【0058】
≪ネットワーク接続情報収集部16の機能≫
ネットワーク接続情報収集部16は、判定対象システム40の各計算機50と各ネットワーク機器45の接続状態(トポロジ)を収集する機能を有している。
本実施形態においてはSNMP(Simple Network Management Protocol)を用いてネットワーク接続状態を収集している。しかし、これに限定されず、WMI(Windows(登録商標) Management Instrumentation)やLLDP(Link Layer Discovery Protocol)を用いて接続情報(トポロジ)を収集しても良く、更に、特開2010−63058号公報に記載されている技術を用いても良い。
【0059】
≪ネットワーク接続情報データベース26の構成≫
図12は、第1の実施形態に於けるネットワーク接続構成データベースを示す図である。
ネットワーク接続情報データベース26は、ネットワーク接続識別子26a、システム識別子26b、レイヤ26c、接続機器ペア26dの項目を有している。ネットワーク接続情報データベース26は、システム内において計算機50やネットワーク機器45同士がOSI(Open Systems Interconnection)で定義されている通信機能の7階層モデルにおいて、どの階層(レイヤ)で、どのように接続されているかを格納するデータベースである。
OSIの7階層モデルに於ける第2階層(Layer2)は、リンク層であり、隣接装置の信号の受け渡しである。OSIの7階層モデルに於ける第3階層(Layer3)は、ネットワーク層であり、データを送る相手を決めて通信経路を選択するものである。
【0060】
ネットワーク接続識別子26aの項目は、計算機50やネットワーク機器45のペア(組合せ)のあるレイヤにおける接続情報を一意に特定するための識別子が格納されている。システム識別子26bの項目は、このネットワーク接続は、いずれの判定対象システム40に属するかを表す識別子であり、システム情報データベース22のシステム識別子22aの項目と共通の値が格納されている。レイヤ26cの項目は、ネットワーク接続がどの階層(レイヤ)であるかを示す値が格納されている。
接続機器ペア26dの項目は、計算機50同士の組合せ、ネットワーク機器45同士の組合せ、または、計算機50とネットワーク機器45との組合せの情報が格納されている。ネットワーク機器45の識別子は、機器データベース25の機器識別子25aと共通の値である。計算機50の識別子は、計算機データベース23の計算機識別子23aと共通の値である。
このネットワーク接続情報データベース26を参照することにより、判定対象システム40のネットワークトポロジを確認可能である。すなわち、外部ネットワークから判定対象システム40の特定の計算機50に通信パケットが到達可能か否かを確認可能であり、判定対象システム40の特定の計算機50から、他の計算機50に通信パケットが到達可能か否かを確認可能である。
【0061】
≪サービス設定収集部17の機能≫
サービス設定収集部17は、判定対象システム40を構成する計算機50上で動作しているサービスの設定情報を収集し、サービス設定データベース27へと格納する機能を有している。本実施形態において、サービス設定収集部17は、管理者端末200−1〜200−3にサービス設定収集の入力画面を表示し、サービス設定の情報を収集する。
【0062】
≪サービス設定データベース27の構成≫
図13は、第1の実施形態に於けるサービス設定データベースを示す図である。
サービス設定データベース27は、計算機識別子27a、ソフトウェア27b、サービス提供ネットワーク27cの項目を有している。
計算機識別子27aの項目は、当該サービスが、どの計算機50−nの上で動作しているかを一意に特定する識別子であり、計算機データベース23の計算機識別子23aと共通の値が格納されている。
ソフトウェア27bの項目は、このサービスに係るソフトウェア60−mの名称が格納されている。サービス提供ネットワーク27cの項目は、このサービスの提供先の情報が格納されている。サービスの提供先が判定対象システム40自身の内部ならば、サービス提供ネットワーク27cの項目に「内部」が格納されている。サービスの提供先が判定対象システム40の外部がならば、サービス提供ネットワーク27cの項目に「外部」が格納されている。
【0063】
≪機器設定収集部18の機能≫
機器設定収集部18は、判定対象のシステムを構成するネットワーク機器45の設定情報を収集し、機器設定データベース28へと格納する機能を有している。本実施形態において、機器設定収集部18は、管理者端末200−1〜200−3に、機器設定収集の入力画面を表示し、機器設定の情報を収集する。
【0064】
≪機器設定データベース28の構成≫
図14は、第1の実施形態に於ける機器設定データベースを示す図である。
機器設定データベース28は、機器識別子28a、設定情報28bの項目を有している。機器識別子28aの項目は、機器データベース25の機器識別子25aと共通の値が格納されている。設定情報28bの項目は、当該ネットワーク機器45でどのような設定がなされているかを示す情報が格納されている。
【0065】
≪ログデータベース36の構成≫
図15は、第1の実施形態に於けるログデータベースを示す図である。
ログデータベース36は、ログ識別子36a、システム識別子36b、時刻36c、ログ種別36d、計算機識別子36e、ソフトウェア識別子36f、バージョン識別子36g、脆弱性識別子36h、ログ内容36i、対策36jの項目を有している。
ログ識別子36aの項目は、各々のレコードに係るログを一意に特定するための識別子が格納されている。
システム識別子36bの項目は、このログがどの判定対象システム40に対して出力されたかを示す識別子であり、システム情報データベース22のシステム識別子22aの項目と共通の値が格納されている。
時刻36cの項目は、各々のレコードが記録された日時が記録されている。
ログ種別36dの項目は、緊急/警告/情報のいずれかが記録され、脆弱性に係る緊急度を示している。「緊急」がもっとも緊急度が高く、以下、「警告」、「情報」の順に緊急度が低くなる。
計算機識別子36eの項目は、この脆弱性に係る計算機を識別する値であり、計算機データベース23の計算機識別子23aと共通の値が格納されている。
ソフトウェア識別子36fの項目は、この脆弱性に係るソフトウェア60−mの名称であり、ソフトウェアデータベース24の利用ソフトウェア24bと共通の値が格納されている。なお、図15において、ソフトウェア識別子36fの欄には、単に「ソフトウェア」と記載されている。
バージョン識別子36gの項目は、この脆弱性に係るソフトウェア60−mのバージョンを識別する値であり、ソフトウェアデータベース24のバージョン24cと共通の値が格納されている。なお、図15において、バージョン識別子36gの欄には、単に「バージョン」と記載されている。
脆弱性識別子36hの項目は、この脆弱性を識別する値であり、脆弱性情報データベース21の脆弱性識別子21aと共通の値が格納されている。
ログ内容36iの項目は、この脆弱性に係る文章が記録されている。
対策36jの項目は、この脆弱性への対策に係る文章が記録されている。
【0066】
≪管理者データベース37の構成≫
図16は、第1の実施形態に於ける管理者データベースの構成例を示す図である。
管理者データベース37は、管理者識別子37a、氏名37b、メールアドレス37cの項目を有している。管理者識別子37aの項目は、管理者を一意に特定するための識別子が格納されている。氏名37bの項目は、この管理者の氏名が格納されている。メールアドレス37cの項目は、この管理者の電子メールのアドレスが格納されている。
以上が、情報を収集する各収集部と、収集した情報を格納する各データベースについての説明である。以下、これらの情報を元にどのように脆弱性のシステムへの影響を判定するかを説明する。
【0067】
(第1の実施形態の動作)
図17は、第1の実施形態に於ける影響ソフトウェア抽出部と通知部の動作を示すフローチャートである。
【0068】
影響ソフトウェア抽出部31は、例えば毎日1回ずつ起動し、図17の処理を行う。
処理が開始すると、ステップS10において、脆弱性情報収集部11は、脆弱性情報提供サイト300(=300−1〜300−3)から、ソフトウェア60−mの脆弱性情報を取得する。
【0069】
ステップS11〜S16において、影響ソフトウェア抽出部31は、ソフトウェアデータベース24を参照して、全ての利用ソフトウェア24bについて処理を繰り返す。
【0070】
ステップS12において、影響ソフトウェア抽出部31は、この脆弱性情報に係るバージョンのソフトウェア60−mが存在するか否かを判断する。この脆弱性情報に係るバージョンのソフトウェア60−mが存在するならば(Yes)、ステップS13の処理を行う。この脆弱性情報に係るバージョンのソフトウェア60−mが存在しないならば(No)、ステップS16の処理を行う。
【0071】
ステップS13において、影響ソフトウェア抽出部31は、サービス設定データベース27を参照し、このソフトウェア60−mを搭載している計算機50−nの計算機識別子27aを抽出する。
ステップS14において、影響ソフトウェア抽出部31は、計算機データベース23を参照し、当計算機50−nの計算機識別子27aに対応するシステム識別子23bを抽出する。
ステップS15において、影響ソフトウェア抽出部31は、この脆弱性情報の脆弱性識別子21aに基づき、この計算機50−nの直接パス探索処理(図18)を行う。
【0072】
ステップS16において、影響ソフトウェア抽出部31は、ソフトウェアデータベース24を参照して、利用ソフトウェア24bのいずれかが処理されていなければ、ステップS11の処理に戻る。
【0073】
ステップS17において、通知部35は、管理者データベース37を参照して管理者メールアドレスを取得し、この管理者のメールアドレスに脆弱性情報を電子メールで送信し、図17の処理を終了する。
【0074】
図18は、第1の実施形態に於ける直接パス探索処理を示すフローチャートである。
処理が開始すると、ステップS21において、直接パス探索部32は、サービス設定データベース27のサービス提供ネットワーク27cの項目を参照して、このサービスが外部向けのサービスであるか否かを判断する。外部向けのサービスであったならば(Yes)、ステップS22の処理を行う。外部向けのサービスでなかったならば(No)、ステップS25の処理を行う。
【0075】
ステップS22において、直接パス探索部32は、外部ネットワーク(NW:Network)を攻撃元とする当該計算機50−nへの攻撃可能性の判断処理(図19)を呼び出す。この攻撃可能性の判断処理において、外部ネットワークから影響を受けるソフトウェア60−mを搭載した計算機50−nに直接的に到達可能な経路を探索し、この直接的に到達可能な経路において影響を受けるソフトウェア60−mの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定する。
【0076】
ステップS23において、直接パス探索部32は、外部ネットワーク(NW)から当該計算機50−nを攻撃可能と判断したならば(Yes)、ステップS24の処理を行う。外部ネットワークから当該計算機50−nを攻撃不能と判断したならば(No)、ステップS25の処理を行う。
ステップS24において、記録部34は、ログデータベース36に、緊急の脆弱ポイント情報のレコードを生成し、図18の処理を終了する。
【0077】
ステップS25において、直接パス探索部32は、間接パス探索処理(図20)を呼び出す。この間接パス探索処理において、外部ネットワークから影響を受けるソフトウェア60−mを搭載した計算機50−nに間接的に到達可能な経路を探索し、この間接的に到達可能な経路において影響を受けるソフトウェア60−mの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定する。間接パス探索処理が終了すると、図18の処理を終了する。
【0078】
図19は、第1の実施形態に於ける攻撃可能性の判断処理を示すフローチャートである。
処理が開始すると、ステップS30において、ネットワーク接続情報データベース26を参照し、当該判定対象システム40のネットワーク接続情報を取得する。
ステップS31において、ネットワーク接続情報に基づいて、攻撃元から当該計算機50−nに、OSIの7階層に於ける第3階層(Layer3)で到達可能か否かを判断する。到達可能ならば(Yes)、ステップS32の処理を行う。到達不能ならば(No)、ステップS37の処理を行う。
ここで、OSIの7階層に於ける第3階層(Layer3)で到達可能とは、ネットワーク接続情報の第3階層(Layer3)で接続されているネットワーク機器45や計算機50を介して、攻撃元から当該計算機50−nに到達可能であることを言う。
【0079】
ステップS32において、ネットワーク接続情報に基づいて、攻撃元から当該計算機50−nへのOSIの7階層に於ける第2階層(Layer2)の経路に、ファイアウォール41(FW)が有るか否かを判断する。ファイアウォール41(FW)が有れば(Yes)、ステップS33の処理を行う。ファイアウォール41(FW)が無ければ(No)、ステップS34の処理を行う。
ここで、OSIの7階層に於ける第3階層(Layer2)の経路とは、ネットワーク接続情報の第2階層(Layer2)で接続されているネットワーク機器45や計算機50を介して、攻撃元から当該計算機50−nに到達可能な経路である。
【0080】
ステップS33において、このファイアウォール41(FW)は当該計算機50−nをブロックする設定であるか否かを判断する。当該計算機50−nをブロックする設定であれば(Yes)、ステップS37の処理を行う。当該計算機50−nをブロックする設定でなければ(No)、ステップS34の処理を行う。
【0081】
ステップS34において、ネットワーク接続情報に基づいて、攻撃元から当該計算機50−nへのOSIの7階層に於ける第2階層(Layer2)の経路に、IPS42が有るか否かを判断する。IPS42が有れば(Yes)、ステップS35の処理を行う。IPS42が無ければ(No)、ステップS36の処理を行う。
ステップS35において、このIPS42はこの脆弱性への攻撃をブロックする設定であるか否かを判断する。脆弱性への攻撃をブロックする設定であれば(Yes)、ステップS37の処理を行う。脆弱性への攻撃をブロックする設定でなければ(No)、ステップS36の処理を行う。
ステップS36において、攻撃元から当該計算機50−nを攻撃可能と判断し、図19の処理を終了する。
ステップS37において、攻撃元から当該計算機50−nへは攻撃不能と判断し、図19の処理を終了する。
【0082】
図20は、第1の実施形態に於ける間接パス探索処理を示すフローチャートである。
処理が開始すると、ステップS40において、間接パス探索部33は、システム内に当該サービスのProxyサーバが有るか否かを判断する。システム内に当該サービスのProxyサーバが有ったならば(Yes)、ステップS41の処理を行う。システム内に当該サービスのProxyサーバが無かったならば(No)、ステップS46の処理を行う。
ステップS41において、間接パス探索部33は、外部ネットワーク(NW)を攻撃元とする当該Proxyへの攻撃可能性の判断処理(図19)を呼び出す。
【0083】
ステップS42において、間接パス探索部33は、外部ネットワーク(NW)から当該Proxyに攻撃可能か否かを判断する。外部ネットワーク(NW)から当該Proxyに攻撃可能であったならば(Yes)、ステップS43の処理を行う。外部ネットワーク(NW)から当該Proxyに攻撃不能であったならば(No)、ステップS46の処理を行う。
ステップS43において、間接パス探索部33は、当該Proxyを攻撃元とする当該サービスへの攻撃可能性の判断処理(図19)を呼び出す。
ステップS44において、間接パス探索部33は、当該Proxyから当該サービスに攻撃可能か否かを判断する。当該Proxyから当該サービスに攻撃可能であったならば(Yes)、ステップS45の処理を行う。当該Proxyから当該サービスに攻撃不能であったならば(No)、ステップS46の処理を行う。
ステップS45において、記録部34は、ログデータベース36に、警告の脆弱ポイント情報のレコードを生成し、図20の処理を終了する。
ステップS46において、記録部34は、ログデータベース36に、脆弱ポイント情報のレコードを生成し、図20の処理を終了する。
【0084】
図20の処理において、間接パス探索部33は、外部ネットワーク(NW)から影響を受けるソフトウェア60−mを搭載した計算機50−nに間接的に到達可能な経路を探索する。間接パス探索部33は、この間接的に到達可能な経路の全てにおいて、影響を受けるソフトウェア60−mの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、影響を受けるソフトウェア60−mが、外部ネットワーク(NW)から間接的に攻撃可能か否かを判断している。
この間接的に到達可能な経路とは、外部ネットワーク(NW)からProxyサーバを介して計算機50−nに到達可能な経路である。
【0085】
図21は、第1の実施形態に於けるブラウザアクセスに対する通知部の動作を示すフローチャートである。
処理が開始すると、ステップS50において、通知部35は、いずれかの端末からHTTPリクエストを受信するまで待つ。
通知部35は、ステップS51〜S54において、システム情報データベース22を参照し、全てのシステムについて処理を繰り返す。
通知部35は、ステップS52において、ログデータベース36から、所定期間の脆弱性ログを読み取る。
通知部35は、ステップS53において、読み取った脆弱性ログをHTTP形式に変換し、HTTPレスポンスを当該端末に送信する。
【0086】
通知部35は、ステップS54において、システム情報データベース22を参照し、全てのシステムについて処理を繰り返していなければ、ステップS51の処理に戻る。全てのシステムについて処理を繰り返していたならば、ステップS50の処理に戻る。
図21の処理において、通知部35は、管理者端末200などからの要求に応じて、最新の脆弱性情報を提供している。
【0087】
図22は、第1の実施形態に於ける管理者端末のブラウザ画面を示す図である。
管理者端末200からブラウザ210−1を起動し、所定のURL(例えばhttp://1.2.3.4/)を入力することにより、ログデータベース36に格納されている所定期間の脆弱性ログを表示することが可能である。本実施形態において、この所定のURLは、脆弱性判定システム10が実装されているサーバのURLである。脆弱性判定システム10が複数のサーバに分散して実装されている場合、この所定のURLは、脆弱性判定システム10の通知部35が実装されているサーバのURLである。
このブラウザ210−1の画面には、判定対象システム40−1〜40−4であるSystem01〜System04に係る脆弱性ログが表示されている。
【0088】
(第1の実施形態の効果)
以上説明した第1の実施形態では、次の(A)〜(D)のような効果がある。
(A) ソフトウェア60−m(サービス)の脆弱性を検出したときに、外部ネットワーク(NW)から当該サービスを提供する計算機に攻撃可能か否かを判断し、外部ネットワーク(NW)から攻撃不能な場合には、対策の緊急度を下げている。これにより、早急に対処すべき脆弱性の問題と、早急に対処しなくとも大きな問題にはならない脆弱性の問題とを識別可能となり、よって、システム管理者の脆弱性対応の作業負荷を減らすことが可能である。
【0089】
(B) 外部ネットワーク(NW)から、当該サービスを提供する計算機50−nに直接的に攻撃可能か否かを判断するだけではなく、Proxyサーバ経由で間接的に攻撃可能か否かも判断している。これにより、外部ネットワーク(NW)からProxyサーバを介して間接的に攻撃される場合にも対処が可能である。
【0090】
(C) 外部ネットワーク(NW)から、当該サービスを提供する計算機50−nに直接的に攻撃可能な場合よりも、Proxyサーバ経由で間接的に攻撃可能な場合の警告レベルを下げている。これにより、攻撃可能性の低いProxyサーバ経由の攻撃への対処と、攻撃可能性の高い直接的な攻撃への対処に優先順位を付けることが可能である。
【0091】
(D) 脆弱性判定システム10から管理者のメールアドレスにメールを送信すると共に、管理者端末200のいずれかから脆弱性判定システム10にブラウザ210−1でアクセスしたときにも、脆弱性の警告画面を表示している。これにより、脆弱性情報の電子メールが配信されない不測の事態に於いても、管理者は常に最新の脆弱性情報を得ることが可能である。
【0092】
(第2の実施形態の構成)
第2の実施形態に於ける脆弱性判定システム10の構成は、図1に示す第1の実施形態に於ける脆弱性判定システム10と同様の構成を有している。
(第2の実施形態の動作)
【0093】
第2の実施形態に於ける影響ソフトウェア抽出部31と通知部35の動作は、図17に示す第1の実施形態に於ける影響ソフトウェア抽出部31と通知部35の動作と同様である。
第2の実施形態に於ける直接パス探索処理は、図18に示す第1の実施形態に於ける直接パス探索処理と同様である。
第2の実施形態に於ける攻撃可能性の判断処理は、図19に示す第1の実施形態に於ける攻撃可能性の判断処理と同様である。
【0094】
図23は、第2の実施形態に於ける間接パス探索処理を示すフローチャートである。図20に示す第1の実施形態に於ける間接パス探索処理とは異なる処理である。
処理が開始すると、ステップS60〜S66において、計算機データベース23を参照し、当該計算機50−nと同一システムの当該計算機50−n以外の全ての計算機のうち、攻略可能性の判定処理が行われていないもの(第2の計算機)について繰り返す。
ステップS61において、第2の計算機が攻撃の踏み台となる可能性の判断処理(図24)を呼び出す。
ステップS62において、第2の計算機が攻撃の踏み台となり得るか否かを判断する。第2の計算機が攻撃の踏み台となり得るならば(Yes)、ステップS63の処理を行い、第2の計算機が攻撃の踏み台となり得ないならば(No)、ステップS66の処理を行う。
【0095】
ステップS63において、第2の計算機を攻撃元とする、当該サービスへの攻撃可能性の判断処理(図19)を行う。
ステップS64において、第2の計算機から当該サービスに攻撃可能か否かを判断する。攻撃可能であったならば(Yes)、ステップS65の処理を行い、攻撃不能であったならば(No)、ステップS66の処理を行う。
【0096】
ステップS65において、記録部34はログDBに、警告の脆弱ポイント情報を生成する。
ステップS66において、計算機データベース23を参照し、当該計算機50−nと同一システムの当該計算機50−n以外の全ての計算機のうち、攻略可能性の判定処理が行われていないもの(第2の計算機)があれば、ステップS60の処理に戻り、全ての判定処理が終了していたならば、図23の処理を終了する。
間接パス探索部33は、外部ネットワーク(NW)から影響を受けるソフトウェア600−mを搭載した計算機50−nに間接的に到達可能な経路を探索する。本実施形態において、この間接的に到達可能な経路とは、外部ネットワーク(NW)から判定対象システム40が有する第2の計算機のソフトウェア60−mにおける任意コード実行可能な脆弱性を介して計算機50−nに到達可能な経路である。
【0097】
図24は、第2の実施形態に於ける計算機が攻撃の踏み台となる可能性の判断処理を示すフローチャートである。この処理における当該計算機とは、図23における第2の計算機のことを言う。
【0098】
処理が開始すると、ステップS70において、計算機データベース23を参照し、当該計算機のサーバ利用フラグ23cとクライアント利用フラグ23dとを取得する。
ステップS71において、サーバ利用フラグ23cが「True」であるか否かを判断する。「True」であれば(Yes)、ステップS72の処理を行う。「False」であれば(No)、ステップS76の処理を行う。
ステップS72において、サーバとしての当該計算機の攻略可能性の判断処理(図25)を呼び出す。
【0099】
ステップS73において、サーバとしての当該計算機の攻略可能性があるか否かを判断する。攻略可能性があると判断したならば、ステップS74の処理を行う。攻略可能性がないと判断したならば、ステップS76の処理を行う。
ステップS74において、攻略可能な脆弱性の中に、任意のコード実行が可能なものがあるか否かを判断する。任意のコード実行が可能なものがあるならば、ステップS75の処理を行う。任意のコード実行が可能なものが無いならば、ステップS79の処理を行う。
【0100】
ステップS75において、当該計算機が攻撃の踏み台となる可能性は有ると判定し、図24の処理を終了する。
ステップS76において、クライアント利用フラグ23dが「True」であるか否かを判断する。「True」であれば(Yes)、ステップS77の処理を行う。「False」であれば(No)、ステップS79の処理を行う。
ステップS77において、クライアントとしての当該計算機の攻略可能性の判断処理(図26)を呼び出す。
ステップS78において、クライアントとしての当該計算機の攻略可能性があるか否かを判断する。攻略可能性があると判断したならば、ステップS74の処理を行う。攻略可能性がないと判断したならば、ステップS79の処理を行う。
ステップS79において、当該計算機が攻撃の踏み台となる可能性は無いと判定し、図24の処理を終了する。
【0101】
図25は、第2の実施形態に於けるサーバとしての計算機の攻略可能性の判断処理を示すフローチャートである。この図の処理における当該計算機とは、図24の処理における当該計算機のことを言い、かつ、図23の処理における第2の計算機のことを言う。
処理が開始すると、ステップS80〜S91において、ソフトウェアデータベース24を参照し、当該計算機に導入されている全てのソフトウェア60−mについて処理を繰り返す
【0102】
ステップS81において、ソフトウェアデータベース24を参照し、当該ソフトウェア60−mのソフトウェア種別24dはサービスか否かを判断する。ソフトウェア種別24dがサービスならば(Yes)、ステップS82の処理を行う。ソフトウェア種別24dがサービスでないならば(No)、ステップS91の処理を行う。
ステップS82〜S90において、脆弱性情報データベース21を参照し、全ての脆弱性について処理を繰り返す。
【0103】
ステップS83において、当該ソフトウェア60−mが当該脆弱性の影響を受けるか否かを判断する。当該脆弱性の影響を受けるならば(Yes)、ステップS84の処理を行う。当該脆弱性の影響を受けないならば(No)、ステップS90の処理を行う。
ステップS84において、ログデータベース36を参照し、当該計算機の当該ソフトウェア60−mの当該脆弱性に関わるログが記録されているか否かを確認する。
ステップS85において、当該ログが記録されていたならば(Yes)、ステップS86の処理を行う。当該ログが記録されていなかったならば(No)、ステップS88の処理を行う。
【0104】
ステップS86において、当該ログの種別を判断する。当該ログの種別が「情報」であったならば、ステップS90の処理を行う。当該ログの種別が「緊急」または「警告」であったならば、ステップS87の処理を行う。
ステップS87において、攻略可能性は有りとして、当該脆弱性と当該ソフトウェア60−mの情報を保持する。
ステップS88において、当該脆弱性による、当該計算機への直接パス探索処理(図18)を再帰的に呼び出す。
【0105】
ステップS89において、当該計算機への攻撃可能性が有るか否かを判断する。当該計算機への攻撃可能性が有るならば(Yes)、ステップS87の処理を行う。当該計算機への攻撃可能性が無いならば(No)、ステップS90の処理を行う。
ステップS90において、脆弱性情報データベース21を参照し、全ての脆弱性について繰り返していなかったならば、ステップS82の処理に戻る。
【0106】
ステップS91において、ソフトウェアデータベース24を参照し、当該計算機に導入されている全てのソフトウェア60−mについて繰り返していなかったならば、ステップS80の処理に戻る。
ステップS92において、攻略可能性の有無、および、保持している脆弱性とソフトウェア60−mの情報を呼出し元に返し、図25の処理を終了する。
図25の処理において、判定対象システム40が有する第2の計算機がサーバとして利用されているときには、サービスソフトウェアの任意コード実行可能な脆弱性に限定して調査している。これにより、第2の計算機がサーバとして利用されている場合に、攻撃可能性のないクライアントソフトウェアの脆弱性を除外することが可能である。
【0107】
図26は、第2の実施形態に於けるクライアントとしての計算機の攻略可能性の判断処理を示すフローチャートである。この図の処理における当該計算機とは、図24の処理における当該計算機のことを言い、かつ、図23の処理における第2の計算機のことを言う。
【0108】
処理が開始すると、ステップS100〜S106において、ソフトウェアデータベース24を参照し、当該計算機に導入されている全てのソフトウェア60−mについて処理を繰り返す
ステップS101において、当該ソフトウェア60−mのソフトウェア種別24dは、オペレーティングシステムまたはクライアントソフトウェアであるか否かを判断する。ここでクライアントソフトウェアとは、当該計算機をクライアントとして使用する場合において、操作者のみにサービスを提供するソフトウェア60−mを言い、例えばWebブラウザやメールクライアントソフトウェアなどを言う。オペレーティングシステムまたはクライアントソフトウェアであったならば(Yes)、ステップS102の処理を行う。オペレーティングシステムでないならば(No)、ステップS106の処理を行う。
【0109】
ステップS102〜S105において、脆弱性情報データベース21を参照し、全ての脆弱性について処理を繰り返す。
ステップS103において、当該ソフトウェア60−mが当該脆弱性の影響を受けるか否かを判定する。当該脆弱性の影響を受けるならば(Yes)、ステップS104の処理を行う。当該脆弱性の影響を受けないならば(No)、ステップS105の処理を行う。
ステップS104において、攻略可能性有りとして当該脆弱性と当該ソフトウェア60−mの情報を保持する。
【0110】
ステップS105において、脆弱性情報データベース21を参照し、全ての脆弱性について繰り返していないならば、ステップS102の処理に戻る。
ステップS106において、ソフトウェアデータベース24を参照し、当該計算機に導入されている全てのソフトウェア60−mについて繰り返していないならば、ステップS100の処理に戻る。
ステップS107において、攻略可能性の有無、および、保持している脆弱性、ソフトウェア60−mの情報を呼出し元に返し、図26の処理を終了する。
図26の処理において、判定対象システム40が有する第2の計算機がクライアントとして利用されているときには、オペレーティングシステムまたはクライアントソフトウェアの任意コード実行可能な脆弱性に限定して調査している。これにより、第2の計算機がクライアントとして利用されている場合に、攻撃可能性のないサービスソフトウェアの脆弱性を除外することが可能である。
【0111】
(第2の実施形態の効果)
以上説明した第2の実施形態では、次の(E)〜(G)のような効果がある。
(E) 判定対象システム40が有する第2の計算機に、任意のコード実行が可能な脆弱性を有するソフトウェア60−mが有り、この脆弱性を踏み台として当該計算機への間接的な攻撃が行われる場合を検出して警告可能である。
【0112】
(F) 第2の計算機がサーバ利用されている場合には、サービスに係るソフトウェア60−mの脆弱性の影響に限定して調査している。第2の計算機50がクライアント利用されている場合には、OSまたはクライアントに係るソフトウェア60−mの脆弱性の影響に限定して調査している。これにより、脆弱性を有するソフトウェア60−mのうち、実行されることがなく、この脆弱性への攻撃可能性のないソフトウェア60−mを除外することが可能である。
【0113】
(G) 脆弱性情報データベース21に脆弱性ログが記載されているか否かを判断し、脆弱性ログが記録されていない場合に限り、再帰的に直接パス探索処理を呼び出している。これにより、既に脆弱性を有していることが判明している計算機50−nの直接パス探索処理を抑止して、処理負荷を軽減することが可能である。
【0114】
(変形例)
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の(a),(b)のようなものがある。
【0115】
(a) 第1の実施形態および第2の実施形態では、脆弱性判定システム10と、そのシステム上における脆弱性判定方法として実現している。しかし、これに限られず、脆弱性判定サーバにインストールされる脆弱性判定のソフトウェアプログラムとして実現しても良く、更には個々の計算機50−nにインストールされる脆弱性判定のソフトウェアプログラムとして実現しても良い。
(b) 第1の実施形態および第2の実施形態では、脆弱性判定システム10と管理者端末200とは、それぞれ独立した計算機であり、ネットワーク100で相互に通信可能に接続されている。しかし、これに限られず、脆弱性判定システム10と管理者端末200とを、同一の計算機上に構成しても良い。
【符号の説明】
【0116】
10 脆弱性判定システム(脆弱性判定装置)
11 脆弱性情報収集部
12 システム情報収集部
13 計算機情報収集部
14 ソフトウェア情報収集部
15 機器情報収集部
16 ネットワーク接続情報収集部
17 サービス設定収集部
18 機器設定収集部
21 脆弱性情報データベース(脆弱性情報)
22 システム情報データベース
23 計算機データベース
24 ソフトウェアデータベース
25 機器データベース
26 ネットワーク接続情報データベース
27 サービス設定データベース
28 機器設定データベース
31 影響ソフトウェア抽出部
32 直接パス探索部
33 間接パス探索部
34 記録部
35 通知部
36 ログデータベース
37 管理者データベース
40(=40−1〜40−4) 判定対象システム(管理対象のシステム)
41 ファイアウォール(ネットワーク機器)
42 IPS(ネットワーク機器)
43 ルータ(ネットワーク機器)
44 スイッチ(ネットワーク機器)
45 ネットワーク機器
50(=50−1,…) 計算機
60(=60−1,…) ソフトウェア
100 ネットワーク
200(=200−1〜200−3) 管理者端末
300(=300−1〜300−3) 脆弱性情報提供サイト

【特許請求の範囲】
【請求項1】
計算機およびネットワーク機器を具備する管理対象のシステムの脆弱性を判定する脆弱性判定システムであって、
ソフトウェアの脆弱性情報、および、前記計算機にインストールされているソフトウェアの情報に基づいて、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けるか否かを判定する影響ソフトウェア抽出部と、
前記影響ソフトウェア抽出部によって、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェアが、外部ネットワークから直接的に攻撃可能か否かを判断する直接パス探索部と、
を有することを特徴とする脆弱性判定システム。
【請求項2】
前記直接パス探索部は、
前記影響を受けるソフトウェアが前記外部ネットワークにサービスを提供していたならば、前記外部ネットワークから前記影響を受けるソフトウェアを搭載した前記計算機に直接的に到達可能な経路を探索し、前記直接的に到達可能な経路において前記影響を受けるソフトウェアの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定することにより、前記影響を受けるソフトウェアが、前記外部ネットワークから直接的に攻撃可能か否かを判断すること
を特徴とする請求項1に記載の脆弱性判定システム。
【請求項3】
請求項1または請求項2に記載の脆弱性判定システムは、更に、
前記影響ソフトウェア抽出部によって、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェアが、前記外部ネットワークから間接的に攻撃可能か否かを判断する間接パス探索部、
を有することを特徴とする脆弱性判定システム。
【請求項4】
前記間接パス探索部は、前記外部ネットワークから前記影響を受けるソフトウェアを搭載した前記計算機に間接的に到達可能な経路を探索し、前記間接的に到達可能な経路の全てにおいて、前記影響を受けるソフトウェアの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、前記影響を受けるソフトウェアが、前記外部ネットワークから間接的に攻撃可能か否かを判断すること
を特徴とする請求項3に記載の脆弱性判定システム。
【請求項5】
前記間接的に到達可能な経路とは、前記外部ネットワークからProxyサーバを介して前記計算機に到達可能な経路であること
を特徴とする請求項4に記載の脆弱性判定システム。
【請求項6】
前記間接的に到達可能な経路とは、前記外部ネットワークから前記管理対象のシステムが有する第2の計算機のソフトウェアにおける任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること
を特徴とする請求項4に記載の脆弱性判定システム。
【請求項7】
前記管理対象のシステムが有する前記第2の計算機がサーバとして利用されている場合、
前記間接的に到達可能な経路とは、前記第2の計算機のサービスソフトウェアにおける前記任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること、
を特徴とする請求項6に記載の脆弱性判定システム。
【請求項8】
前記管理対象のシステムが有する前記第2の計算機がクライアントとして利用されている場合、
前記間接的に到達可能な経路とは、前記第2の計算機のクライアントソフトウェアまたはオペレーティングシステムにおける前記任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること
を特徴とする請求項6に記載の脆弱性判定システム。
【請求項9】
請求項4ないし請求項8のいずれか1項に記載の脆弱性判定システムは更に、
前記直接パス探索部と前記間接パス探索部との判定結果をもとに、脆弱性対策の緊急度と対策案を記録する記録部と、
対策の緊急度と対策案とを通知する通知部と、
を有することを特徴とする脆弱性判定システム。
【請求項10】
計算機およびネットワーク機器を具備する管理対象のシステムの脆弱性を判定する脆弱性判定方法であって、
脆弱性判定装置が、
ソフトウェアの脆弱性情報、および、前記計算機にインストールされているソフトウェアの情報に基づいて、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けるか否かを判定する影響ソフトウェア抽出処理と、
前記影響ソフトウェア抽出処理によって、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェアが、外部ネットワークから直接的に攻撃可能か否かを判断する直接パス探索処理と、
を行うことを特徴とする脆弱性判定方法。
【請求項11】
前記直接パス探索処理は、
前記影響を受けるソフトウェアが前記外部ネットワークにサービスを提供していたならば、前記外部ネットワークから前記影響を受けるソフトウェアを搭載した前記計算機に直接的に到達可能な経路を探索し、前記直接的に到達可能な経路において前記影響を受けるソフトウェアの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、前記影響を受けるソフトウェアが、前記外部ネットワークから直接的に攻撃可能か否かを判断すること
を特徴とする請求項10に記載の脆弱性判定方法。
【請求項12】
請求項10または請求項11に記載の脆弱性判定方法は、更に、
脆弱性判定装置が、
前記影響ソフトウェア抽出処理によって、前記管理対象のシステムが有するソフトウェアが脆弱性の影響を受けると判定された際に、前記影響を受けるソフトウェアが、前記外部ネットワークから間接的に攻撃可能か否かを判断する間接パス探索処理
を行うことを特徴とする脆弱性判定方法。
【請求項13】
前記間接パス探索処理は、前記外部ネットワークから前記影響を受けるソフトウェアを搭載した前記計算機に間接的に到達可能な経路を探索し、前記間接的に到達可能な経路の全てにおいて、前記影響を受けるソフトウェアの脆弱性がファイアウォールまたはIPS(Intrusion Prevention System)で防御されているか否かを判定することによって、前記影響を受けるソフトウェアが、前記外部ネットワークから間接的に攻撃可能か否かを判断すること
を特徴とする請求項12に記載の脆弱性判定方法。
【請求項14】
前記間接的に到達可能な経路とは、前記外部ネットワークからProxyサーバを介して前記計算機に到達可能な経路であること
を特徴とする請求項13に記載の脆弱性判定方法。
【請求項15】
前記間接的に到達可能な経路とは、前記外部ネットワークから前記管理対象のシステムが有する第2の計算機のソフトウェアにおける任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること
を特徴とする請求項13に記載の脆弱性判定方法。
【請求項16】
前記第2の計算機がサーバとして利用されている場合、
前記間接的に到達可能な経路とは、前記第2の計算機のサービスソフトウェアにおける前記任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること
を特徴とする請求項15に記載の脆弱性判定方法。
【請求項17】
前記第2の計算機がクライアントとして利用されている場合、
前記間接的に到達可能な経路とは、前記第2の計算機のクライアントソフトウェアまたはオペレーティングシステムにおける前記任意コード実行可能な脆弱性を介して前記計算機に到達可能な経路であること
を特徴とする請求項15に記載の脆弱性判定方法。
【請求項18】
請求項12ないし請求項17のいずれか1項に記載の脆弱性判定方法は更に、
脆弱性判定装置が、
前記直接パス探索処理と前記間接パス探索処理との判定結果をもとに、脆弱性対策の緊急度と対策案を記録する記録処理と、
対策の緊急度と対策案とを外部に通知する通知処理と、
を行うことを特徴とする脆弱性判定方法。
【請求項19】
請求項10ないし請求項18のいずれか1項に記載の脆弱性判定方法を、コンピュータに行わせるための脆弱性判定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2012−208863(P2012−208863A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−75493(P2011−75493)
【出願日】平成23年3月30日(2011.3.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成22年度 総務省「大規模仮想化サーバ環境における情報セキュリティ対策技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】