(57)【要約】【課題】不正情報が属性に埋め込まれた不正な証明書をＰＫＩシステムに与えた場合の影響を検査して、不正な証明書に基づく不正アクセスを防止することを目的とする。【解決手段】脆弱性情報検索部１３０は検査対象物２００の製品情報と設定情報とに基づき脆弱性情報を検索して検査情報を取得する。また、設定属性判定部１４０は、運用情報と属性情報とに基づき、検査情報を設定する属性を判定する。また、不正情報生成部１５０は、上記検査情報を上記属性に設定して不正証明情報を生成する。そして、検査処理部１６０は、不正情報生成部１５０が生成した不正証明情報に基づき、上記検査対象物２００に対して検査を処理装置９８０により実施する。【選択図】図８
2007259171.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵基盤システムにおける検査対象物の製品情報と、検査対象物のセキュリティの設定情報と、検査対象物が利用する証明情報を含む運用情報とを記憶装置に記憶する製品運用記憶部と、
検査対象物の脆弱性情報と上記脆弱性情報に対する検査情報とを記憶装置に記憶する脆弱性情報記憶部と、
上記証明情報の属性情報を記憶装置に記憶する属性情報記憶部と、
上記製品運用記憶部が記憶した製品情報と設定情報とに基づき、上記脆弱性情報記憶部が記憶した脆弱性情報を検索して上記脆弱性情報に対する検査情報を処理装置により取得する脆弱性情報検索部と、
上記製品運用記憶部が記憶した運用情報と上記属性情報記憶部が記憶した属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を処理装置により判定する設定属性判定部と、
上記設定属性判定部が判定した属性に、上記脆弱性情報検索部が取得した検査情報を設定して不正証明情報を生成して記憶装置に記憶する不正情報生成部と
を備えることを特徴とする不正情報生成装置。
【請求項２】
上記不正情報生成装置は、さらに、
上記不正情報生成部が生成した不正証明情報を、上記検査対象物に接続して検査を行う検査処理部に処理装置により設定する検査情報設定部と、
上記検査情報設定部が不正証明情報を設定した検査処理部へ処理装置により検査の実行の指示をする検査実施部と、
上記検査実施部がした指示により、検査処理部が実行した検査に対する検査対象物の動作に基づき、脆弱性が再現したか否かを処理装置により判定する検査結果判定部と
を備えることを特徴とする請求項１記載の不正情報生成装置。
【請求項３】
上記設定属性判定部は、
上記製品運用記憶部が記憶した運用情報から利用する証明情報を検索する証明情報検索部と、
上記属性情報記憶部が記憶した属性情報から上記証明情報検索部が検索した証明情報の属性情報を検索する証明情報属性検索部と、
上記証明属性情報検索部が検索した属性情報から上記脆弱性情報検索部が検索した検査情報の検査箇所を設定可能な属性を検索する設定属性検索部と
を備えることを特徴とする請求項１記載の不正情報生成装置。
【請求項４】
上記脆弱性情報検索部は、複数の脆弱性情報を検索した場合、上記複数の脆弱性情報の各脆弱性情報に対する検査情報を取得し、
上記設定属性判定部は、運用情報と属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を上記複数の脆弱性情報の各脆弱性情報毎に判定し、
上記不正情報生成部は、上記設定属性判定部が判定した属性に該当の検査情報を設定して、上記複数の脆弱性情報の各脆弱性情報毎に不正証明情報を生成する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項５】
上記脆弱性情報検索部は、複数の脆弱性情報を検索した場合、上記複数の脆弱性情報から任意に選択した複数の脆弱性情報に対する検査情報を取得し、
上記設定属性判定部は、運用情報と属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を上記任意に選択した複数の脆弱性情報の各脆弱性情報毎に判定し、
上記不正情報生成部は、上記設定属性判定部が判定した属性に該当の検査情報を設定して１つの不正証明情報を生成する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項６】
上記不正情報生成装置は、さらに、
上記脆弱性情報検索部が複数の脆弱性情報を検索した場合、検索した複数の脆弱性情報から所定の脆弱性情報を入力装置により選択する脆弱性情報選択部を備え、
上記脆弱性情報検索部は、上記脆弱性情報選択部が選択した所定の脆弱性情報に対する検査情報を取得し、
上記設定属性判定部は、運用情報と属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を上記脆弱性情報選択部が選択した所定の脆弱性情報に対して判定し、
上記不正情報生成部は、上記設定属性判定部が判定した属性に該当の検査情報を設定して１つの不正証明情報を生成する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項７】
上記脆弱性情報検索部は、複数の脆弱性情報を検索した場合、上記複数の脆弱性情報の各脆弱性情報に対する検査情報を取得し、
上記設定属性判定部は、運用情報と属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を上記複数の脆弱性情報の各脆弱性情報毎に判定し、
上記不正情報生成部は、上記設定属性判定部が判定した属性に該当の検査情報を設定して、上記複数の脆弱性情報のすべての脆弱性情報の組合せ毎に不正証明情報を生成する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項８】
上記不正情報生成装置は、さらに、
検査情報の変更情報を入力する変更情報入力部を備え、
上記不正情報生成部は、上記設定属性判定部が判定した属性に、上記脆弱性情報検索部が取得した検査情報に上記変更情報入力部が入力した変更情報を反映させた検査情報を設定して不正証明情報を生成して記憶装置に記憶する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項９】
上記不正情報生成装置は、さらに、
検査対象物の製品情報をフィンガープリンティングにより収集する製品情報収集部を備え、
上記製品運用記憶部は、上記製品情報収集部が収集した製品情報を記憶する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項１０】
上記不正情報生成装置は、さらに、
検査対象物に対してポートスキャンを行い、検査対象物で動作する公開鍵基盤システムで利用するサービスを特定する運用情報特定部を備え、
上記製品運用記憶部は、上記運用情報特定部が特定したサービスを運用情報として記憶する
ことを特徴とする請求項１記載の不正情報生成装置。
【請求項１１】
検査対象物の脆弱性を検索する脆弱性検査装置において、
公開鍵基盤システムの証明情報の属性に検査情報を設定して不正証明情報を生成して記憶装置に記憶する不正情報生成部と、
上記不正情報生成部が生成した不正証明情報に基づき、上記検査対象物に対して検査を処理装置により実施する検査処理部と、
上記検査処理部が実施した検査に対する検査対象物の動作に基づき、脆弱性が再現したか否かを処理装置により判定する検査結果判定部と
を備えることを特徴とする脆弱性検査装置。
【請求項１２】
上記検査結果判定部は、上記検査処理部が実行した検査に対して上記検査対象物から所定の返信がない場合、脆弱性が再現したと判定する
ことを特徴とする請求項１１記載の脆弱性検査装置。
【請求項１３】
公開鍵基盤システムにおける検査対象物の製品情報と、検査対象物のセキュリティの設定情報と、検査対象物が証明情報を利用する方法である運用情報とを製品運用記憶部が記憶装置に記憶する製品運用記憶ステップと、
検査対象物の脆弱性情報と上記脆弱性情報に対する検査情報とを脆弱性情報記憶部が記憶装置に記憶する脆弱性情報記憶ステップと、
上記証明情報の属性情報を属性情報記憶部が記憶装置に記憶する属性情報記憶記憶ステップと、
上記製品運用記憶ステップで記憶した製品情報と設定情報とに基づき、上記脆弱性情報記憶ステップで記憶した脆弱性情報を検索して上記脆弱性情報に対する検査情報を脆弱性情報検索部が処理装置により取得する脆弱性情報検索ステップと、
上記製品運用記憶ステップで記憶した運用情報と上記属性情報記憶ステップで記憶した属性情報とに基づき、上記脆弱性情報検索ステップが取得した検査情報を設定する属性を設定属性判定部が処理装置により判定する設定属性判定ステップと、
上記設定属性判定ステップで判定した属性に、上記脆弱性情報検索ステップが取得した検査情報を設定して不正証明情報を生成して記憶装置に記憶する不正情報生成ステップと
を備えることを特徴とする不正情報生成方法。
【請求項１４】
公開鍵基盤システムにおける検査対象物の製品情報と、検査対象物のセキュリティの設定情報と、検査対象物が証明情報を利用する方法である運用情報とを製品運用記憶部が記憶装置に記憶する製品運用記憶ステップと、
検査対象物の脆弱性情報と上記脆弱性情報に対する検査情報とを脆弱性情報記憶部が記憶装置に記憶する脆弱性情報記憶ステップと、
上記証明情報の属性情報を属性情報記憶部が記憶装置に記憶する属性情報記憶記憶ステップと、
上記製品運用記憶ステップで記憶した製品情報と設定情報とに基づき、上記脆弱性情報記憶ステップで記憶した脆弱性情報を検索して上記脆弱性情報に対する検査情報を脆弱性情報検索部が処理装置により取得する脆弱性情報検索ステップと、
上記製品運用記憶ステップで記憶した運用情報と上記属性情報記憶ステップで記憶した属性情報とに基づき、上記脆弱性情報検索ステップが取得した検査情報を設定する属性を設定属性判定部が処理装置により判定する設定属性判定ステップと、
上記設定属性判定ステップで判定した属性に、上記脆弱性情報検索ステップが取得した検査情報を設定して不正証明情報を生成して記憶装置に記憶する不正情報生成ステップと
をコンピュータに実行させることを特徴とする不正情報生成プログラム。
【請求項１５】
検査対象物の脆弱性を検索する脆弱性検査の脆弱性検査方法において、
公開鍵基盤システムの証明情報の属性に検査情報を設定して不正証明情報を生成して不正情報生成部が記憶装置に記憶する不正情報生成ステップと、
上記不正情報生成ステップで生成した不正証明情報に基づき、上記検査対象物に対して検査を検査処理部が処理装置により実施する検査処理ステップと、
上記検査処理ステップで実施した検査に対する検査対象物の動作に基づき、脆弱性が再現したか否かを検査結果判定部が処理装置により判定する検査結果判定ステップと
を備えることを特徴とする脆弱性検査方法。
【請求項１６】
検査対象物の脆弱性を検索する脆弱性検査装置の脆弱性検査プログラムにおいて、
公開鍵基盤システムの証明情報の属性に検査情報を設定して不正証明情報を生成して不正情報生成部が記憶装置に記憶する不正情報生成ステップと、
上記不正情報生成ステップで生成した不正証明情報に基づき、上記検査対象物に対して検査を検査処理部が処理装置により実施する検査処理ステップと、
上記検査処理ステップで実施した検査に対する検査対象物の動作に基づき、脆弱性が再現したか否かを検査結果判定部が処理装置により判定する検査結果判定ステップと
をコンピュータに実行させることを特徴とする脆弱性検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ＰＫＩ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）システム（公開鍵基盤システム）の証明書等の属性情報を参照する機能における脆弱性等の調査をする攻撃コードを含んだ証明書等を生成する装置、および、その検査をする装置に関する。
【背景技術】
【０００２】
従来、不具合や脆弱性を検査する検査システムでは、検査したいシステムである検査対象に対して、既知の脆弱性を攻撃する特殊なデータ（ｅｘｐｌｏｉｔ）を送信する。例えば、検査対象がｃｇｉを使用したＷｅｂサイトでであり、そのｃｇｉにおいて、コマンドインジェクションの脆弱性が発見されている場合は、コマンドインジェクションを起こすデータがｅｘｐｌｏｉｔ（検査情報、不正情報）に該当する。この例では、検査システムは、例えば、ｃｇｉに対してＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のＰＯＳＴリクエストでｅｘｐｌｏｉｔをｃｇｉに送り込む。
検査対象は、例えば、ｅｘｐｌｏｉｔを受信するとレスポンスを返す。この時、本来はｅｘｐｌｏｉｔのような異常なデータを受信した場合エラーを返すべきである。しかし、脆弱性が存在した場合、ｅｘｐｌｏｉｔが検査対象で動作した結果、本来返すべきエラー以外のデータがレスポンスで返信されることがある。従来の検査システムは、このレスポンスを確認することで脆弱性の有無を確認する。あるいは、検査対象のログを確認し、コマンドインジェクションが成功したか確認する。
【特許文献１】特開２００５−１３０４５０号公報
【特許文献２】特開２００５−２８６４４３号公報
【非特許文献１】Ａｄｉｌ  Ａｌｓａｉｄ  ａｎｄ  Ｃｈｒｉｓ  Ｊ．  Ｍｉｔｃｈｅｌｌ．  Ｉｎｓｔａｌｌｉｎｇ  Ｆａｋｅ  Ｒｏｏｔ  Ｋｅｙｓ  ｏｎ  ａ  ＰＣ．  Ｉｎ  Ｄ．  Ｃｈａｄｗｉｃｋ  ａｎｄ  Ｇ．  Ｚｈａｏ，  ｅｄｉｔｏｒｓ，  ＥｕｒｏＰＫＩ  ２００５，  ｖｏｌｕｍｅ  ３５４５  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｓ  ２２７−２３９．  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  Ｂｅｒｌｉｎ，  Ｊｕｌｙ  ２００５．
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、ＰＫＩシステムにおける証明書は信頼できるものとして扱っている。そのため、従来の検査システムでは、証明書に含まれた属性に攻撃を行う情報が入っているかはチェックしないため、証明書に含まれた属性を扱う処理には脆弱性が残存している恐れがある。
また、証明書は信頼できる機関が発行するため、検証に成功すれば信用できる情報として扱われている。しかし、非特許文献１にはトラストストアへ不正な証明書をインストールする攻撃についての記載がある。つまり、証明書の検証を回避する攻撃がある。したがって、信用できない証明書が存在する。
したがって、不正情報が属性に埋め込まれた不正な証明書による不正アクセスが行われるという課題がある。つまり、不正情報が属性に埋め込まれた証明書をＰＫＩシステムに与えた場合の影響の検査が不足しているという課題がある。
【０００４】
本発明は、例えば、不正情報が属性に埋め込まれた証明書を生成することを目的とする。また、本発明は、例えば、不正情報が属性に埋め込まれた証明書をＰＫＩシステムに与えた場合の影響の検査をすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明にかかる不正情報生成装置は、例えば、公開鍵暗号システムにおける検査対象物の製品情報と、検査対象物のセキュリティの設定情報と、検査対象物が証明情報を利用する方法である運用情報とを記憶装置に記憶する製品運用記憶部と、検査対象物の脆弱性情報と上記脆弱性情報に対する検査情報とを記憶装置に記憶する脆弱性情報記憶部と、上記証明情報の属性情報を記憶装置に記憶する属性情報記憶部と、上記製品運用記憶部が記憶した製品情報と設定情報とに基づき、上記脆弱性情報記憶部が記憶した脆弱性情報を検索して上記脆弱性情報に対する検査情報を処理装置により取得する脆弱性情報検索部と、上記製品運用記憶部が記憶した運用情報と上記属性情報記憶部が記憶した属性情報とに基づき、上記脆弱性情報検索部が取得した検査情報を設定する属性を処理装置により判定する設定属性判定部と、上記設定属性判定部が判定した属性に、上記脆弱性情報検索部が取得した検査情報を設定して不正証明情報を生成して記憶装置に記憶する不正情報生成部とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明にかかる不正情報生成装置によれば、例えば、検査対象物の製品情報と設定情報とに基づき脆弱性情報を検索して検査情報を取得する脆弱性情報検索部と、運用情報と属性情報とに基づき、検査情報を設定する属性を処理装置により判定する設定属性判定部と、上記検査情報を上記属性に設定して不正証明情報を生成する不正情報生成部とを備えることにより、不正情報が属性に埋め込まれた証明書を生成することが可能である。
【発明を実施するための最良の形態】
【０００７】
以下、図に基づき本発明の実施の形態について説明する。
【０００８】
まず、図１、図２に基づき本発明にかかる脆弱性検査システム（不正情報生成システム）１０００のハードウェア構成の一例について説明する。
【０００９】
図１は、実施の形態にかかる脆弱性検査システム１０００の外観の一例を示した図である。
図１において、脆弱性検査システム１０００は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置９０１、キーボード（Ｋ／Ｂ）９０２、マウス９０３、コンパクトディスク装置（ＣＤＤ）９０５、データベース９０８、システムユニット９０９、サーバ９１０を備え、これらはケーブルで接続されている。
さらに、脆弱性検査システム１０００は、ローカルエリアネットワーク（ＬＡＮ）９４２、ゲートウェイ９４１を介してインターネット９４０に接続されている。また、脆弱性検査システム１０００は、インターネット９４０を介して外部サーバ９１６等と接続されている。
ここで、ＣＲＴ表示装置９０１、Ｋ／Ｂ９０２、マウス９０３、ＣＤＤ９０５、システムユニット９０９等は、後述する脆弱性検査装置（不正情報生成装置）１００の一例である。また、サーバ９１０、外部サーバ９１６など、およびこれらに記憶されたソフトウェア（Ｓ／Ｗ）などは、脆弱性の検査を行う対象である検査対象物２００の一例である。また、ＣＲＴ表示装置９０１は表示装置９８６の一例である。
【００１０】
図２は、実施の形態における脆弱性検査装置１００のハードウェア構成の一例を示す図である。
図２において、脆弱性検査装置１００は、コンピュータであり、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、ＣＲＴ表示装置９０１、Ｋ／Ｂ９０２、マウス９０３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）９０４、ＣＤＤ９０５、磁気ディスク装置９２０と接続されている。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、磁気ディスク装置９２０は、不揮発性メモリの一例である。これらは、記憶装置９８４の一例である。
通信ボード９１５は、ＬＡＮ９４２等に接続されている。
また、Ｋ／Ｂ９０２、マウス９０３等は、入力装置９８２の一例である。
また、ＣＰＵ９１１は、処理装置９８０の一例である。
また、通信ボード９１５は、通信装置９８８の一例である。
【００１１】
ここで、通信ボード９１５は、ＬＡＮ９４２に限らず、直接、インターネット９４０、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット９４０、或いはＩＳＤＮ等のＷＡＮに接続されている場合、脆弱性検査装置１００は、インターネット９４０、或いはＩＳＤＮ等のＷＡＮに接続され、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム（ＯＳ）９２１、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３は、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００１２】
上記プログラム群９２３には、以下に述べる実施の形態の説明において、例えば、「脆弱性検査部（不正情報生成部）１１０」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜判定」として説明するものが、「〜ファイル」として記憶されている。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置９２０、ＦＤ、光ディスク、ＣＤ、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００１３】
また、以下に述べる実施の形態の説明において「脆弱性検査部（不正情報生成部）１１０」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組合せ、さらには、ファームウェアとの組合せで実施されても構わない。
【００１４】
また、以下に述べる実施の形態を実施するプログラムは、また、磁気ディスク装置９２０、ＦＤ、光ディスク、ＣＤ、ＭＤ、ＤＶＤ等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００１５】
次に、図３に基づき実施の形態にかかる脆弱性検査装置１００の概要について説明する。図３は、実施の形態にかかる脆弱性検査装置１００の概要を示す図である。
脆弱性検査装置１００は、脆弱性情報ＤＢ（ＤａｔａＢａｓｅ）１９２、検査処理部１６０を備える。また、脆弱性検査装置１００は、検査対象物２００とＮ／Ｗ（ネットワーク）を介して接続される。検査対象物２００は脆弱性の有無を検査したいシステムであり、例えばＷｅｂサイト、ＤＢシステムである。検査処理部１６０は、脆弱性の有無等を検査する検査ツールである。また、脆弱性情報ＤＢ１９２は、後述する検査プラグインが記憶された検査プラグインＤＢである。
検査処理部１６０は、脆弱性情報ＤＢ１９２から例えば定期的に最新の脆弱性に対応した検査プラグインを取り込む。検査プラグインは様々な脆弱性が公開、発見される毎に作成され、脆弱性情報ＤＢ１９２に格納される。
検査処理部１６０は検査プラグインが設定された検査情報を検査対象物２００へ送信する。検査対象物２００は、検査情報を処理してレスポンスを返す。脆弱性検査装置１００は、例えば、このレスポンスを確認することで脆弱性の有無を判定する。
【００１６】
次に、図４に基づきＰＫＩシステムの検査概念について説明する。図４は、ＰＫＩシステムの検査概念の一例としてＨＴＴＰＳ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ，ＨＴＴＰ  Ｏｖｅｒ  ＳＳＬ）を利用したＰＫＩシステムの脆弱性を示す図である。
図４は、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）でＨＴＴＰ通信を保護するシステムの機能ブロック図である。システムは、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）層４０１、ＨＴＴＰ層４０２、ＳＳＬ層４０５、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）層４０６に分けられ、さらに、ＳＳＬ層とＨＴＴＰ層の間に、ＰＫＣ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｅｒｔｉｆｉｃａｔｅ）層４０３、ＡＳＮ．１（Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ  Ｏｎｅ）層４０４が位置づけられる。
ＰＫＩシステムの脆弱性として、例えば、ＳＳＬ層４０５、ＡＳＮ．１層４０４、ＰＫＣ層４０３に特化した脆弱性が指摘されている。ＳＳＬ層４０５で例を挙げると、ハンドシェイクデータの異常によりＤｏＳ（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ）が発生する。また、ＡＳＮ．１層４０４で例を挙げると、不正なＡＳＮ．１エンコードの証明書によりバッファオーバフローが発生する。また、ＰＫＣ層４０３で例を挙げると、不正な証明書のパスにより、証明書のセキュリティチェックが回避される等である。
これまで検査プラグインは、このようにＰＫＩシステムのＰＫＩに直接関わる実装の脆弱性を検査するものである。つまり、これまで検査プラグインでは、不正情報が属性に埋め込まれた証明書に対するＰＫＩシステムの脆弱性の検査は行われていない。
【００１７】
次に、不正情報が属性に埋め込まれた証明書に対するＰＫＩシステムの脆弱性の検査を行わないことの危険性と課題について説明する。以下の３つ段階に分けて説明する。
まず、１つ目の段階として、信用できない証明書の存在について説明する。証明書は信頼できる機関が発行するため、検証に成功すれば信用できる情報として扱われている。しかし、証明書の検証を回避する攻撃がある。したがって、信用できない証明書が存在する。
次に、２つ目の段階として、ｅｘｐｌｏｉｔが属性に埋め込まれた証明書による不正アクセスについて説明する。上記の証明書の検証を回避する攻撃が行われた場合、ｅｘｐｌｏｉｔが属性に埋め込まれた証明書による不正アクセスが行われる可能性がある。
そして、３つ目の段階として、ＰＫＩシステムの検査での不足事項について説明する。つまり、ｅｘｐｌｏｉｔが属性に埋め込まれた証明書による不正アクセスが行われるのを未然に防止するため、不正情報が属性に埋め込まれた証明書をＰＫＩシステムに与えた場合の影響の検査が不足している。
【００１８】
まず、１つ目の段階である信用できない証明書の存在について説明する。
本来、ＰＫＩにおける証明書は信頼できる機関が発行するため証明書の正当性が確認できれば、その証明書の属性は信頼できるものとして扱う。証明書を受信した側で、その証明書が不正なものか否かは、その証明書の検証をもって確認される。証明書の検証は通常以下のように行われる。
まず、証明書を受信した装置は、受信した証明書の署名を、証明書を発行したＣＡ（Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）の公開鍵で確認する。次に、証明書を受信した装置は、有効期限、失効状態を確認する。失効状態は確認しない運用もある。この後、証明書を受信した装置は、証明書を信用できるものとして扱い、属性を参照する。
ここで、証明書を発行したＣＡの公開鍵が本物であることの保証が必要である。公開鍵が本物であることがどのように、保証されているか説明する。
まず、ＣＡが自身の公開鍵を自身の秘密鍵で署名を行うｓｅｌｆ−ｓｉｇｎｅｄ証明書を発行する。
次に、ｓｅｌｆ−ｓｉｇｎｅｄ証明書を、そのＣＡが発行する証明書を受信するＰＫＩアプリケーションのトラストストアに、予め埋め込む。ここで、トラストストアとは、信用できる証明書の格納場所である。例えば、ＰＫＩアプリケーションとしてブラウザを利用する場合、ＣＡはブラウザのベンダに対して、ｓｅｌｆ−ｓｉｇｎｅｄ証明書をトラストストアに格納してもらうように依頼する。この時、そのＣＡが正当なものであるかをブラウザのベンダが別途確認をした上でトラストストアに格納し、出荷する。つまり、ユーザがブラウザを利用する段階において、既にトラストストアには上記ＣＡのｓｅｌｆ−ｓｉｇｎｅｄ証明書が信頼できるＣＡの証明書として格納されている。
そして、ＣＡは、ＳＳＬ対応Ｗｅｂサーバに対して、サーバ証明書を発行する。ブラウザのユーザが、このＷｅｂサイトに接続するとＳＳＬハンドシェイクが実行され、その過程でＷｅｂサーバ側からサーバ証明書が送信される。ブラウザでは、トラストストアのＣＡ証明書を使用して、サーバ証明書を検証することが可能である。
例えば、悪意のある第三者が不正なＳＳＬ対応Ｗｅｂサーバを設置し、また悪意のある第三者自身がＣＡを設置してＣＡ証明書を生成し、さらに悪意のある第三者自身がサーバ証明書を発行して、Ｗｅｂサーバに設定したとする。この場合、ブラウザのトラストストア内にその悪意のある第三者自身のＣＡ証明書が格納されていないため、ブラウザは悪意のある第三者が設置した不正ＳＳＬ対応Ｗｅｂサーバのサイトに正常に接続できない。つまり、そのブラウザのトラストストアに格納されているＣＡの証明書の下で発行されたサーバ証明書でなければ正しく接続できない。これは、ブラウザのベンダが認証してトラストストアに格納したＣＡ証明書以外は、そのブラウザは信用していないということになる。
このように、ＰＫＩアプリケーションの運用では、トラストストアの管理が非常に重要である。また、初期状態のＰＫＩアプリケーションのトラストストアを操作しない限りは、ＣＡの信頼できるｓｅｌｆ−ｓｉｇｎｅｄ証明書に変更はない。
【００１９】
ところが、トラストストアに不正なＣＡの証明書をインストールする攻撃方法がある。トラストストアに不正なＣＡの証明書をインストールする攻撃方法として、例えば、ＯＳ用の暗号／ＰＫＩライブラリ等を使用し、トラストストアに不正なＣＡ証明書を書き込むプログラムがある。このプログラムが実行された場合、ユーザに気づかれないままトラストストアに不正なＣＡ証明書が書き込まれてしまう。
例えば、先の例の、悪意のある第三者が不正なＳＳＬ対応Ｗｅｂサーバを設置したい場合に、トラストストアに不正なＣＡ証明書を書き込むプログラムをメールに添付して、エンドユーザへ送信する。また、悪意のある第三者は、例えば、メール本文中にメンテナンスのため添付のプログラムを実行するように指示を行う。このような攻撃方法は、メール添付型ウィルスが蔓延することや、不正なプログラムを実行するユーザが多いことからも、攻撃として有効である。
上記プログラムは実行されるとトラストストアに不正なＣＡ証明書を書き込む。しかし、それ以上の悪意のある行為は実行しない。つまり、その後エンドユーザのＰＣには何の影響も及ぼさない。そのため、不正なＣＡをトラストストアに書き込まれてもユーザは気がつかない。また、ウィルス検知ソフトでは通常トラストストアをスキャンしないため、検知されない。
したがって、そのトラストストアを利用するＰＫＩアプリケーションにおいて、不正なＣＡ証明書の下で発行された証明書が、信頼できる証明書として扱われてしまう。このため、上記の例では、ブラウザで不正なＳＳＬ対応Ｗｅｂサイトに接続した場合、不正なサーバ証明書の検証が正常に行われる。つまり、ブラウザは、不正なサーバ証明書を信用する。不正なＳＳＬ対応Ｗｅｂサーバのサイトに正常な接続が可能となり、ブラウザのユーザは、そのサイトが不正であることに気づかない。
なお、不正なＣＡ証明書下での証明書の発行自体は、エンドユーザのＰＣとは全く別の場所で行われる。悪意のあるユーザは、不正なＣＡ証明書に含まれる公開鍵と対の秘密鍵を保持しているので、秘密鍵を使用して任意の不正な証明書を生成することができる。
【００２０】
ＰＫＩの運用において、証明書の安全性については、正当なＣＡの秘密鍵の漏洩や解読によるＣＡの成りすましや、証明書の失効の確実性に着目される。それは、悪意のある第三者が、自身の都合の良い偽造証明書を生成することや、無効化された証明書を有効であるかのように偽装ことへの防止のためである。
しかし、正当なＣＡに成りすます方法の一つとして、悪意のある第三者によるトラストストアへの不正なＣＡ証明書のインストールが挙げられる。そして、トラストストアへの不正なＣＡ証明書のインストールが成功すれば、その後は、悪意のあるユーザが任意の不正な証明書を正当なものとしてエンドユーザに受け入れさせることが可能である。
【００２１】
また、上記では一例としてエンドユーザを対象とした不正なＣＡ証明書のトラストストアへのインストールについて説明した。しかし、証明書を受け入れるサーバ（例えば、ＳＳＬ対応Ｗｅｂサーバ）のトラストストアの改ざんについては、一般的に、エンドユーザに比べ管理が厳重であるため、困難である。しかし、任意のプログラムを実行できてしまうようなソフトウェアやＯＳの脆弱性が数多く報告されていることから、上記のようなプログラムをサーバで実行するような不正アクセスが発生する可能性がある。つまり、クライアント側、サーバ側に限定せず、不正なＣＡ証明書のトラストストアへのインストールの可能性を考慮する必要がある。
【００２２】
次に、２つ目の段階であるｅｘｐｌｏｉｔが属性に埋め込まれた証明書による不正アクセスについて説明する。上記のように証明書の検証を回避する攻撃が行われた場合、ｅｘｐｌｏｉｔが属性に埋め込まれた証明書による不正アクセスが行われる可能性がある。
【００２３】
ここで、証明書の属性は他のアプリケーションのパラメータとして指定されることが多い。例えば、エンドユーザの証明書のＳｕｂｊｅｃｔＤＮは証明書の持ち主を示している。サーバ側では、提示された証明書の持ち主でデータベースを検索する運用があり、ＳｕｂｊｅｃｔＤＮが使用されることが考えられる。あるいは、証明書に含まれた画像情報を表示する場合は、画像を表示するプログラムへ画像の属性がパラメータとして渡される。
証明書の属性は、検証が成功すれば信頼できる情報とみなされる。よって、上述のような属性情報においては、値の正当性の厳密なチェックは行われず、そのまま別のプログラムにパラメータとして渡している可能性がある。また、属性情報を渡されたプログラム側においても、属性は信用できる情報として、厳密なチェックを行わない可能性がある。
ここで、例えば、属性に不正なアクセスコードが記載されていることが考えられる。トラストストアに不正なＣＡ証明書をインストールすることにより、悪意の第三者が、不正な証明書を正当なものとして、受信者に受け入れさせる可能性があることについて上記にて説明した。したがって、不正なアクセスコードが記載された証明書が、正当な証明書として受け入れられる可能性もある。この場合、渡されたアプリケーション側に脆弱性がある場合に、属性情報として不正なアクセスコードが記載されていると不正アクセスが成功する可能性がある。
また、上述したように、これまで検査プラグインによるＰＫＩアプリケーションの脆弱性を検査する方法は、各ＰＫＩの機能レイヤ毎に発見された既知の脆弱性の残存を検査するのみである。つまり、１つのＰＫＩシステムとして運用した場合に、不正なアクセスコードを保持した証明書を受信した場合の脆弱性の検査は行われていない。
【００２４】
次に、具体的な証明書の属性を利用した不正アクセスの例を示す。まず、図５に基づきＰＫＣ（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｅｒｔｉｆｉｃａｔｅ）の属性を利用した不正アクセスの例を説明する。図５は、ＰＫＣの属性を利用した不正アクセスの例を示す図である。
【００２５】
通信相手の証明書の失効のチェックにおいて証明書のｅｘｔｅｎｓｉｏｎであるＣＲＬ−ＤＰ（ＣＲＬ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｐｏｉｎｔ：ＲＦＣ３２８０）を使用してＣＲＬの取得を行うことがある。ＣＲＬ−ＤＰには、ＣＲＬの取得先として配布先のＵＲＬを指定可能である。ここで、ＰＫＩの実装以外の部分での実装にＵＲＬを扱う処理に実装ミス等の脆弱性があると、不正なＵＲＬを含んだＣＲＬ−ＤＰにより異常終了等の不具合が発生する可能性がある。もし、この異常終了がバッファオーバフローに起因するものであれば、攻撃の対象になる可能性がある。つまり、不正なＵＲＬを含んだＣＲＬ−ＤＰが証明書に設定されていた場合に、攻撃される可能性がある。
図５では、ＰＫＣ層４１３がＰＫＣから抽出したＣＲＬ−ＤＰから、さらにＵＲＬを抽出してＨＴＴＰ層４１２へ渡す。ＨＴＴＰ層４１２は受け取ったＵＲＬに基づき通信を試みる。しかし、渡されたＵＲＬは不正なＵＲＬであるため、ＵＲＬの処理やＨＴＴＰの処理に脆弱性が存在した場合に異常な処理を行う可能性がある。
この例では、例えば、ＨＴＴＰ層４１２とＰＫＣ層４１３との接続ＩＦ４１７の実装に脆弱性が存在する場合、又は、ＨＴＴＰ層４１２に脆弱性が存在する場合に、異常な処理が発生する。しかし、これらの脆弱性の検査は、ＰＫＩ自身の実装の脆弱性の検査（ＰＫＣ層４１３の検査）だけでは発見できない。つまり、これまで検査プラグインによるＰＫＩ自身の実装の脆弱性の検査では上記の脆弱性は発見できない。
【００２６】
ここで、ＨＴＴＰ層４１２にＵＲＬの処理の実装ミス等があり、既知の脆弱性として知られている場合は、図３に示す脆弱性情報ＤＢ１９２に検査用のプラグインが格納されている場合がある。よって、検査で脆弱性を発見できた場合にはパッチの適用等の対策をとることが可能である。
しかし、その場合は、ＨＴＴＰ層４１２に対する検査を実施したのみである。つまり、ＰＫＩシステムとの連携において脆弱性が発生するか否かの観点での検査は実施していない。例えば、ＰＫＩシステムと連携しない動作モードでは、不正なパラメータのチェックを行うが、ＰＫＩシステムと連携するモードではパラメータのチェックを行わない可能性もある。なぜなら、証明書が検証されているため、パラメータを信用しているためである。
また、接続ＩＦ４１７を自作している場合等は、接続ＩＦ４１７の脆弱性の確認も必要である。自作している部分についての検査プラグインは存在しないため、検査プラグインを利用した検査は期待できないからである。
つまり、実際にＰＫＩシステムと連携する環境において、不正な証明書を使用した検査を行わなければ、脆弱性の残存を見落とす可能性がある。
【００２７】
次に、図６に基づきＡＣ（Ａｔｔｒｉｂｕｔｅ  Ｃｅｒｔｉｆｉｃａｔｅ）の属性を利用した不正アクセスの例を説明する。図６は、ＡＣの属性を利用した不正アクセスの例を示す図である。
【００２８】
ＡＣは通信相手の属性の確認に用いられるものである。ＡＣは、ＡＣの属性に基づいてサービスを提供するアプリケーションに利用される。例えば、ＡＣにおける属性をアクセス管理ＤＢに渡し、特定の情報へのアクセス権の照合を行うとする。属性を引数としてＤＢに渡す処理に不具合があると、不正なＳＱＬ文を挿入された属性によりＳＱＬをＤＢ上で実行される可能性がある。
図６では、ＡＣ層４２３がＡＣからＡｃｃｅｓｓＩｄｅｎｔｉｔｙを抽出し、ＤＢアクセス層４２６に渡す。ここでは、ＡｃｃｅｓｓＩｄｅｎｔｉｔｙをアクセスコントロールに使用するものとする。ＤＢアクセス層４２６はＡｃｃｅｓｓＩｄｅｎｔｉｔｙを検索キーとしてＤＢ４２７にアクセスを試みる。しかし、ＡｃｃｅｓｓＩｄｅｎｔｉｔｙに不正なＳＱＬ文が挿入されている場合、かつＤＢアクセス層４２６に脆弱性が存在した場合に、ＤＢ４２７に対して不正なＳＱＬ文の送出を行う可能性がある。
この例では、ＡＣ層４２３とＤＢ４２７の接続を担当するＤＢアクセス層４２６の実装に脆弱性が存在する場合、又は、ＤＢ４２７に脆弱性が存在する場合にＡｃｃｅｓｓＩｄｅｎｔｉｔｙに挿入された不正なＳＱＬ文が実行されてしまうことが考えられる。しかし、これらの脆弱性の検査は、ＰＫＩの脆弱性の検査（ＡＣ層４２３の検査）だけでは発見できない。つまり、これまで検査プラグインによるＰＫＩ自身の実装の脆弱性の検査では上記の脆弱性は発見できない。
【００２９】
ここで、ＤＢ層４２７に処理の実装ミス等があり、既知の脆弱性として知られている場合は、図３に示す脆弱性情報ＤＢ１９２に検査用のプラグインが格納されている場合がある。よって、検査で脆弱性を発見できた場合にはパッチの適用等の対策をとることが可能である。
しかし、その場合は、ＤＢ層４２７に対する検査を実施したのみである。つまり、ＰＫＩシステムとの連携において脆弱性が発生するか否かの観点での検査は実施していない。例えば、ＰＫＩシステムと連携しない動作モードでは、不正なパラメータのチェックを行うが、ＰＫＩシステムと連携するモードではパラメータのチェックを行わない可能性もある。なぜなら、証明書が検証されているため、パラメータを信用しているためである。
また、ＤＢアクセス層４２６を自作している場合等は、ＤＢアクセス層４２６の脆弱性の確認も必要である。自作している部分についての検査プラグインは存在しないため、検査プラグインを利用した検査は期待できないからである。
【００３０】
次に、図７に基づきＣＣ（Ｃｏｎｔｅｎｔ  Ｃｅｒｔｉｆｉｃａｔｅ）の属性を利用した不正アクセスの例を説明する。ＲＦＣ３７０９  Ｉｎｔｅｒｎｅｔ  Ｘ．５０９  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ：Ｌｏｇｏｔｙｐｅｓ  ｉｎ  Ｘ．５０９  Ｃｅｒｔｉｆｉｃａｔｅｓでは、証明書に画像データ等のコンテンツの情報を含めるためのｅｘｔｅｎｓｉｏｎが定義されている。当ｅｘｔｅｎｓｉｏｎは、証明書に画像データ自体を含めるのではなく、証明書に関連付けたい画像データの大きさや取得先のアドレス情報を定義し、この定義情報のみを証明書に含めることで、証明書の肥大を防いでいる。しかし、そもそもは証明書と画像データの結びつきを示したいのであるから、画像データ自体を証明書に含めても証明書が大きくなるだけで、同じ目的が達成できる。ここでは、説明を簡単にするために証明書に画像データ自身を含めた証明書をＣＣ（Ｃｏｎｔｅｎｔ  Ｃｅｒｔｉｆｉｃａｔｅ）と呼ぶことにする。図７は、ＣＣの属性を利用した不正アクセスの例を示す図である。
【００３１】
ＣＣは、例えば、Ｗｅｂサイトの真正性を示すための企業のロゴの画像データを含んだ証明書である。ＣＣ用プラグインをインストールしたブラウザでＣＣを適用したサイトを閲覧すると、ＣＣで保証された企業ロゴが表示される。これにより、そのＷｅｂサイトが詐称サイトではないことが分かる。画像を含んだ証明書であるため、ブラウザにおける画像表示に実装ミスがあると、不正な画像を含んだＣＣによりフリーズ等の異常処理が発生する可能性がある。
図７では、ＣＣ層４３２がＣＣから画像データを抽出し、コンテンツ表示層４３１に渡す。しかし、不正な画像であった場合、コンテンツ表示層４３１においてフリーズ等の異常処理が発生する場合がある。
この例では、コンテンツ表示層４３１、あるいはコンテンツ表示層４３１とＣＣ層４３２の間のＩＦ４３７に脆弱性が存在する場合に、フリーズ等の異常処理が発生することが考えられる。しかし、これらの脆弱性の検査は、ＰＫＩの脆弱性の検査（ＣＣ層４３２の検査）だけでは発見できない。つまり、これまで検査プラグインによるＰＫＩ自身の実装の脆弱性の検査では上記の脆弱性は発見できない。
【００３２】
ここで、コンテンツ表示層４３１に処理の実装ミス等があり、既知の脆弱性として知られている場合は、図３に示す脆弱性情報ＤＢ１９２に検査用のプラグインが格納されている場合がある。よって、検査で脆弱性を発見できた場合にはパッチの適用等の対策をとることが可能である。
しかし、その場合は、コンテンツ表示層４３１に対する検査を実施したのみである。つまり、ＰＫＩシステムと連携しない動作モードでは、不正なパラメータのチェックを行うが、ＰＫＩシステムと連携するモードではパラメータのチェックを行わない可能性もある。なぜなら、証明書が検証されているため、パラメータを信用しているためである。
また、ＩＦ４３７を自作している場合等は、ＩＦ４３７の脆弱性の確認も必要である。自作している部分についての検査プラグインは存在しないため、検査プラグインを利用した検査は期待できないからである。
なお、ＲＦＣ３７０９に示されるｅｘｔｅｎｓｉｏｎをそのまま使用した証明書においてもｅｘｔｅｎｓｉｏｎに従い取得した画像データはコンテンツ表示層４３１に渡されるわけである。取得した画像データが不正な画像であれば、フリーズ等の異常処理が発生する可能性があり、上記のＣＣの例と同様の脆弱性の見落としの懸念がある。
【００３３】
つまり、上記の３つの例では、実際にＰＫＩシステムと連携する環境において、不正な証明書を使用した検査を行わなければ、脆弱性の残存を見落とす可能性が残っている。
【００３４】
そして、３つめの段階であるＰＫＩシステムの検査での不足事項について説明する。上記の内容を踏まえると、ＰＫＩシステムの検査において以下の点からの検査が不足している。
まず、上述したように不正プログラムによりトラストストアが改変する攻撃がある。このため、受信した証明書は検証が成功しても信頼できるとは限らない。したがって、ＰＫＩの処理部分から連携するアプリケーションへ、不正な証明書の属性を引き渡した場合に不正アクセスがなされる可能性があることを考慮した検査が必要である。
また、不正な証明書がない場合であっても、証明書の情報をパラメータとして他のアプリケーションへ引き渡す際の処理に不具合があることが考えられる。したがって、上記不具合が脆弱性に繋がる恐れがあるため、そのような不具合は予め発見し、修正しておくべきである。
また、証明書だけでなく、ＣＲＬ（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ）やＯＣＳＰ（Ｏｎｌｉｎｅ  Ｃｅｒｔｉｆｉｃａｔｅ  Ｓｔａｔｕｓ  Ｐｒｏｔｏｃｏｌ）等の失効情報も、署名が付与されており、署名の検証が成功すれば、属性は信頼できるものとして取り扱われる。つまり、検査することなく失効情報の属性を利用した処理が行われるため、ｅｘｐｌｏｉｔが埋め込まれた情報の悪用が考えられる。
【００３５】
ここで、ＰＫＩを使用したシステムにおける証明書と、証明書の失効を示す証明書の失効情報との一例について説明する。証明書としては、例えば、ＰＫＣ（公開鍵証明書，ＲＦＣ３２８０）、ＡＣ（属性証明書，ＲＦＣ３２８１）、ＱＣ（Ｑｕａｌｉｆｉｅｄ  Ｃｅｒｔｉｆｉｃａｔｅ，ＲＦＣ３７３９）、ＰＣ（Ｐｒｏｘｙ  Ｃｅｒｔｉｆｉｃａｔｅ，ＲＦＣ３８２０）、ＣＳＣ（Ｃｏｄｅ  Ｓｉｇｎｉｎｇ  Ｃｅｒｔｉｆｉｃａｔｅ）、ＤＣ（Ｄｅｖｉｃｅ  Ｃｅｒｔｉｆｉｃａｔｅ）、ＣＣ等がある。また、失効情報としては、例えば、ＣＲＬ（ＲＦＣ３２８０）、ＯＣＳＰ（失効の問い合わせサービス用プロトコル，ＲＦＣ２５６０）等がある。
【００３６】
実施の形態１．
まず、実施の形態１について説明する。実施の形態１では、検査対象物２００をＷｅｂサーバとした場合の脆弱性検査装置（不正情報生成装置）１００の例について説明する。
【００３７】
実施の形態１では、図３に基づき説明した脆弱性検査装置１００の概要と同様に、脆弱性検査装置１００は、既知の脆弱性情報に基づき検査情報を生成して、検査対象物２００へ検査情報を送信する。そして、脆弱性検査装置１００は、検査対象物２００のレスポンス等を確認することで脆弱性の有無を判定する。ここでは特に、ＰＫＩアプリケーションシステムで使用しているソフトウェア等の既知の脆弱性情報に基づき、ＰＫＩアプリケーションシステムを攻撃可能と推測される不正な証明書を生成する。そして、不正な証明書に基づき検査情報を生成する。
【００３８】
図８に基づき実施の形態１にかかる脆弱性検査装置１００の機能について説明する。図８は、実施の形態１にかかる脆弱性検査装置１００の機能を示す機能ブロック図である。
脆弱性検査装置１００は、脆弱性検査部（不正情報生成部）１１０、処理装置９８０、入力装置９８２、記憶装置９８４、表示装置９８６を備える。
脆弱性検査部１１０は、例えばソフトウェア、プログラム等でも構わない。脆弱性検査部１１０がソフトウェア、プログラム等の場合でも、脆弱性検査部１１０は、以下に示すように、処理装置９８０、入力装置９８２、記憶装置９８４、表示装置９８６等のハードウェアを利用し、協働して情報処理を行うものである。脆弱性検査部１１０は、製品運用記憶部１２０、脆弱性情報記憶部１２２、属性情報記憶部１２４、脆弱性情報検索部１３０、設定属性判定部１４０、不正情報生成部１５０、検査処理部１６０、検査情報設定部１６２、検査実施部１６４、検査結果判定部１６６を備える。
製品運用記憶部１２０は、ＰＫＩシステムにおける検査対象物２００が使用しているソフトウェアの製品名、バージョン等である製品情報と、検査対象物２００のセキュリティパラメータ等の設定情報と、検査対象物２００が検査対象物が利用する証明情報を含む運用情報とを記憶装置９８４に製品運用ＤＢ１９０として記憶する。
脆弱性情報記憶部１２２は、検査対象物２００の脆弱性情報と脆弱性情報に対する検査情報とを記憶装置９８４に脆弱性情報ＤＢ１９２として記憶する。例えば、脆弱性情報記憶部１２２は、インターネット９４０等で公開されているＰＫＩに関する脆弱性情報および対応するｅｘｐｌｏｉｔと、ＰＫＩ以外の脆弱性情報および対応するｅｘｐｌｏｉｔとを脆弱性情報ＤＢ１９２として記憶装置９８４に格納する。
属性情報記憶部１２４は、証明書（証明情報）の各属性およびｅｘｔｅｎｓｉｏｎの構造の情報である属性情報を記憶装置９８４に属性情報ＤＢ１９４として記憶する。
脆弱性情報検索部１３０は、製品運用記憶部１２０が製品運用ＤＢ１９０に記憶した製品情報と設定情報とに基づき、脆弱性情報記憶部１２２が記憶した脆弱性情報を検索して脆弱性情報に対する検査情報を処理装置９８０により取得する。
設定属性判定部１４０は、製品運用記憶部１２０が製品運用ＤＢ１９０に記憶した運用情報と属性情報記憶部１２４が属性情報ＤＢ１９４に記憶した属性情報とに基づき、脆弱性情報検索部１３０が取得した検査情報を設定する属性を処理装置９８０により判定する。つまり、脆弱性情報ＤＢ１９２、製品運用ＤＢ１９０、属性情報ＤＢ１９４と連携し、脆弱性情報ＤＢ１９２から得られた脆弱性情報を利用し、証明書のどの属性にｅｘｐｌｏｉｔを設定するか判定する。また、設定属性判定部１４０は、証明情報検索部１４２、証明情報属性検索部１４４、設定属性検索部１４６を備える。証明情報検索部１４２は、製品運用記憶部１２０が製品運用ＤＢ１９０に記憶した運用情報から利用する証明情報を検索する。証明情報属性検索部１４４は、属性情報記憶部１２４が属性情報ＤＢ１９４に記憶した属性情報から証明情報検索部１４２が検索した証明情報の属性情報を検索する。設定属性検索部１４６は、証明情報属性検索部１４４が検索した属性情報から脆弱性情報検索部１３０が検索した検査情報の検査（攻撃）箇所を設定可能な属性を検索する。
不正情報生成部１５０は、設定属性判定部１４０が判定した属性に、脆弱性情報検索部１３０が取得した検査情報を設定して不正証明情報を生成して記憶装置９８４に記憶する。つまり、不正情報生成部１５０は、設定属性判定部１４０で特定された証明情報の属性情報に、脆弱性情報ＤＢ１９２から得られたｅｘｐｌｏｉｔを設定した不正証明情報（ｅｘｐｌｏｉｔ証明書）を生成する。
検査処理部１６０は、不正情報生成部１５０が生成した不正証明情報に基づき、上記検査対象物２００に対して検査を処理装置９８０により実施する。つまり、検査処理部１６０は、例えば検査用ソフトウェア等である。検査処理部１６０は、例えば、検査対象物２００とセキュア通信を行う機能を備える。検査処理部１６０は、例えば、ＨＴＴＰＳのクライアント或いはサーバのソフトウェア等が該当する。検査処理部１６０は、プロトコルデータと不正証明情報とを検査対象物２００へ送付する。
検査情報設定部１６２は、不正情報生成部１５０が生成した不正証明情報を、検査対象物２００に接続して検査を行う検査処理部１６０に処理装置９８０により設定する。検査情報設定部１６２は、不正証明情報を検査用ソフトウェアである検査処理部１６０に設定する。
検査実施部１６４は、検査情報設定部１６２が不正証明情報を設定した検査処理部１６０へ処理装置９８０により検査の実行の指示をする。つまり、検査実施部１６４は、検査用ソフトウェアに対して不正証明情報を使用して検査対象物２００に対して通信を開始する命令を出す。
検査結果判定部１６６は、検査実施部１６４がした指示により、検査処理部１６０が実行した検査に対する検査対象物２００の動作に基づき、脆弱性が再現したか否かを処理装置９８０により判定する。検査結果判定部１６６は、例えば、検査対象物２００からのレスポンスが想定されるものであるか否かを確認する。
検査対象物２００は、脆弱性が存在するか検査する対象であり、例えば、ＰＫＩを適用したＷｅｂアプリケーション、データベース、ブラウザ等である。
【００３９】
次に、図９、図１０に基づき実施の形態１にかかる脆弱性検査装置１００の動作について説明する。図９は、実施の形態１にかかる脆弱性検査装置１００の処理とデータの流れを示した図である。図１０は、実施の形態１にかかる脆弱性検査装置１００の動作である脆弱性検査処理（脆弱性検査方法、脆弱性検査プログラム）を示すフローチャートである。ここでは、脆弱性検査装置１００は、ＳＳＬを適用したＷｅｂサーバにおける証明書の処理に関する不具合および脆弱性を検査する。
【００４０】
事前に、脆弱性情報記憶部１２２は、インターネット９４０等から脆弱性情報および対応するｅｘｐｌｏｉｔとを脆弱性情報ＤＢ１９２として記憶装置９８４に記憶する（脆弱性情報記憶ステップ）。また、属性情報記憶部１２４は、規定されている証明情報の各属性およびｅｘｔｅｎｓｉｏｎの構造の情報である属性情報を記憶装置９８４に属性情報ＤＢ１９４として記憶する（属性情報記憶ステップ）。
【００４１】
そして、製品運用記憶ステップ（Ｓ１０１）では、製品運用記憶部１２０は、製品情報と設定情報と運用情報とを記憶装置９８４に製品運用ＤＢ１９０として記憶する。ここでは、例えば、製品運用記憶部１２０は、図１１に示す製品情報と設定情報と運用情報とを記憶する。つまり、製品運用記憶部１２０は、製品情報としてＷｅｂｓｅｒｖｅｒＸ２．０．ｘ、設定情報としてＨＴＴＰＳ、クライアント認証、運用情報としてＰＫＣのチェックにＣＲＬを使用、ＣＲＬ−ＤＰ可、ＯＣＳＰ不可という情報を記憶する。図１１は、製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例である。
【００４２】
次に、脆弱性情報検索ステップ（Ｓ１０２）では、脆弱性情報検索部１３０は、製品運用ＤＢ１９０に記憶した製品情報と設定情報とに基づき、脆弱性情報ＤＢ１９２を検索する。脆弱性情報検索部１３０は、例えば、製品運用ＤＢ１９０から製品情報、設定情報として図１２に示す情報を取り出す。図１２は、脆弱性情報検索部１３０が検査キーとして使用する情報の一例である。つまり、脆弱性情報検索部１３０は、製品情報として製品名ＷｅｂｓｅｒｖｅｒＸ２．０．ｘ、設定情報としてセキュアプロトコルはＳＳＬ、通信プロトコルはＨＴＴＰ、セキュリティはクライアント認証という情報を取り出す。そして、脆弱性情報検索部１３０は、これらの情報を検索キーとして脆弱性情報ＤＢ１９２を検索する。
ここで、脆弱性情報記憶部１２２は、例えば、脆弱性情報ＤＢ１９２に図１３に示す情報を記憶したとする。図１３は、脆弱性情報ＤＢ１９２に記憶する情報の一例である。つまり、脆弱性情報ＤＢ１９２はソフトウェア名称、攻撃種別、脆弱性が発生する処理、脆弱性が発生する箇所（ライブラリ、ＯＳ、アプリケーション自体等）、プロトコル、セキュリティ、ｅｘｐｌｏｉｔの有無、ｅｘｐｌｏｉｔの攻撃箇所、ｅｘｐｌｏｉｔ本体を管理する。また、セキュリティの項目では、例えばＳＳＬを使用している場合は、ＳＳＬ、クライアント認証等、使用するセキュリティ技術が記述される。しかし、説明の簡単のため、ここでは、セキュリティの脆弱性については検査の対象としないので記述しない。しかし、セキュリティについて記載する場合の例を、エントリＮｏ．４に示す。エントリＮｏ．４には、ＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）ツールＸの脆弱性の例が格納されている。これは、ＳＳＨというセキュリティプロトコルの実装に脆弱性があるため、セキュリティの項目にＳＳＨが記録されている。
脆弱性情報検索部１３０は、例えば、上記検索キーにより脆弱性情報ＤＢ１９２を検索する場合に、製品名を必須とし、かつ、セキュアプロトコル、通信プロトコル、認証方法のいずれか１つ以上がマッチするエントリを検索する。この場合、検索されるのはエントリ１である。エントリ１は、ＷｅｂｓｅｒｖｅｒＸのＨＴＴＰエンジンのリクエストに脆弱性あり、不正なＵＲＬにより異常終了が発生するという脆弱性情報である。なお、この例では、ＳＳＬ、クライアント認証では検索されず、ＷｅｂｓｅｒｖｅｒＸ、ＨＴＴＰのキーワドでのみ検索されたと仮定した。ここで、エントリ１の情報より脆弱性の発生箇所がＵＲＬの処理であることが判断できる。つまり、Ｅｘｐｌｏｉｔ（検査情報）の攻撃箇所にはＵＲＬが指定されている。
【００４３】
次に、証明情報検索ステップ（Ｓ１０３）では、証明情報検索部１４２は、製品運用ＤＢ１９０に記憶した運用情報から利用する証明情報を検索する。証明情報検索部１４２は、製品運用ＤＢ１９０の運用情報からＣＲＬ−ＤＰをｅｘｐｌｏｉｔの設定対象の候補と判断する。この判断は、運用情報に証明書の運用方法として、証明書の失効のチェックにＣＲＬを使用することが記述されているからである。また、失効情報を確認するためのプロトコルであるＯＣＳＰの利用は不可となっているため、失効の確認手段としてＣＲＬに特定されるからである。さらに、ＣＲＬ−ＤＰを利用することでＣＲＬを取得することができるからである。
【００４４】
次に、証明情報属性検索ステップ（Ｓ１０４）では、証明情報属性検索部１４４は、属性情報ＤＢ１９４に記憶した属性情報から証明情報検索部１４２が検索した証明情報の属性情報を検索する。つまり、証明情報属性検索部１４４は、ＣＲＬ−ＤＰの構造情報を属性情報ＤＢ１９４から取得する。
【００４５】
次に、設定属性検索ステップ（Ｓ１０５）では、設定属性検索部１４６は、ＣＲＬ−ＤＰにＵＲＬを設定できることを判定する。設定属性検索部１４６は、既に、脆弱性情報ＤＢ１９２における検索結果よりｅｘｐｌｏｉｔのタイプがＵＲＬであることを判定できる。そこで、設定属性検索部１４６は、図１４に示すＣＲＬ−ＤＰの構造情報からＵＲＬを設定可能な属性を検索する。図１４は、属性情報ＤＢ１９４が記憶する属性情報の一例としてＣＲＬ−ＤＰの構造情報を示す図である。設定属性検索部１４６は、検索の結果ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒにＵＲＬが設定できることを検索する。つまり、設定属性検索部１４６は、「ＣＲＬ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｐｏｉｎｔｓ」、「ＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔ」、「ｄｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔ」、「ＧｅｎｅｒａｌＮａｍｅｓ」、「ＧｅｎｅｒａｌＮａｍｅ」、「ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒ」の順に辿ることで、ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒを検索する。その結果、設定属性検索部１４６は、ＣＲＬ−ＤＰのｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒにｅｘｐｌｏｉｔを設定することを決定する。
そして、設定属性判定部１４０はＣＲＬ−ＤＰのｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒを、ｅｘｐｌｏｉｔを設定対象である、属性情報として不正情報生成部１５０に渡す。
ここで、（Ｓ１０３）から（Ｓ１０５）までは、設定属性判定ステップである。
【００４６】
次に、不正情報生成ステップ（Ｓ１０６）では、不正情報生成部１５０は、設定属性判定部１４０が判定した属性に、脆弱性情報検索部１３０が取得したｅｘｐｌｏｉｔを設定して不正証明情報を生成して記憶装置９８４に記憶する。不正情報生成部１５０は、例えば、まず、一対の公開鍵と秘密鍵とを生成する。次に、不正情報生成部１５０は、ＣＲＬ−ＤＰのＵＲＬにｅｘｐｌｏｉｔのＵＲＬを設定する。例えば、ＣＲＬ−ＤＰのＵＲＬにｅｘｐｌｏｉｔのＵＲＬとして「ｈｔｔｐ：／／ｗｗｗ．ａｂｃ．ｃｏｍ／」を設定する。次に、不正情報生成部１５０は、不正証明情報において証明される公開鍵として上記で生成した公開鍵を設定する。そして、不正情報生成部１５０は、生成した不正証明情報が検査用に別途生成した不正な認証期間である不正ＣＡを証明する不正ＣＡ証明書の配下の証明書となるように、Ｉｓｓｕｅｒ（発行者）に不正ＣＡ証明書のＳｕｂｊｅｃｔを設定する。さらに、不正情報生成部１５０は、不正ＣＡ証明書の不正ＣＡ公開鍵と対をなす不正ＣＡ秘密鍵により署名を付与する。
ここでは、脆弱性検査装置１００は、例えば、上記不正ＣＡ公開鍵を事前に検査対象物２００に渡しておく。つまり、検査対象物２００のトラストストアに不正ＣＡ公開鍵を記憶させておく。そのため、検査対象物２００は、上記不正証明情報を受け取り検証すると、トラストストアにある不正ＣＡ公開鍵により不正証明情報が認証できる。したがって、検査対象物２００は、不正証明情報を信用する。その結果として、検査対象物２００は、不正証明情報の属性情報に埋め込まれたｅｘｐｌｏｉｔにより脆弱性が発生する可能性がある。
【００４７】
次に、検査情報設定ステップ（Ｓ１０７）では、検査情報設定部１６２は、不正情報生成部１５０が生成した不正証明情報を、検査対象物２００に接続して検査を行う検査処理部１６０に処理装置９８０により設定する。ここでは、検査情報設定部１６２は、Ｗｅｂサーバを検査するため、ＨＴＴＰＳのクライアントのソフトウェアを検査処理部１６０として、（Ｓ１０６）で、不正情報生成部１５０が生成した不正証明情報と秘密鍵とを設定する。検査処理部１６０に該当する試験ツールとしては、例えば公開されているのＨＴＴＰＳライブラリ等を利用可能である。上記ライブラリには秘密鍵や証明書を設定する仕組みが公開されているものもあるため、これらを利用することで、検査情報設定部１６２の動作が実現可能である。
【００４８】
次に、検査実施ステップ（Ｓ１０８）では、検査実施部１６４は、検査情報設定部１６２が不正証明情報を設定した検査処理部１６０へ処理装置９８０により検査の実行の指示をする。つまり、検査実施部１６４は、検査処理部１６０に対し検査対象物２００に接続する命令を出す。例えば、検査実施部１６４はＯＳのコマンドを実行するスクリプトとして実現することができる。つまり、前述の検査処理部１６０の起動コマンドを実行するスクリプトを記述すれば実現できる。
【００４９】
次に、検査処理ステップ（Ｓ１０９）では、検査処理部１６０は、不正情報生成部１５０が生成した不正証明情報に基づき、上記検査対象物２００に対して検査を処理装置９８０により実施する。つまり、検査処理部１６０は、ＨＴＴＰＳによる通信を開始し、ハンドシェイクにおいて、クライアント認証用の証明書として不正証明情報を送信する。
ここでは、検査対象物２００は、ＳＳＬ適用Ｗｅｂサーバ等が該当する。検査対象物２００は、ハンドシェイクにおいて運用情報に従いクライアント認証用の証明書として送付された不正証明情報を受信する。そして、検査対象物２００はＣＲＬ−ＤＰを抽出し、さらにＵＲＬを抽出する。ＵＲＬにはｅｘｐｌｏｉｔが設定されている。上述したように、検査対象物２００は、トラストストアにある不正ＣＡ公開鍵により不正証明情報を認証し、不正証明情報を信用する。そのため、ここでは、検査対象物２００は、ｅｘｐｌｏｉｔの部分まで含めてＨＴＴＰ処理層にパラメータとして渡したとする。つまり、検査対象物２００は、ｅｘｐｌｏｉｔが挿入（連結）された属性情報をそのまま渡してしまったとする。図１３に示すように、ＨＴＴＰ処理層では、ｅｘｐｌｏｉｔを渡された場合に、ＤｏＳが発生する脆弱性がある。したがって、ｅｘｐｌｏｉｔが挿入された属性情報をそのままＨＴＴＰ処理層に渡してしまった結果としてＤｏＳが発生する。
【００５０】
そして、検査結果判定ステップ（Ｓ１１０）では、検査結果判定部１６６は、検査処理部１６０が実行した検査に対する検査対象物２００の動作に基づき、脆弱性が再現したか否かを処理装置９８０により判定する。検査結果判定部１６６は、例えば、検査対象物２００からの返信を待つ。検査対象物２００の脆弱性が再現しなければ、エラーレスポンスが返信される場合が考えられる。しかし、検査結果判定部１６６は、例えば、返信もなく、ＴＣＰの切断信号が無い場合には、不正証明情報が原因で脆弱性が再現したか、不具合が発生したと判断できる。検査結果判定部１６６は、検査対象物２００が出力したログを確認することにより不正証明情報が原因で脆弱性が再現したか、不具合が発生したと判断しても構わない。
ここで、（Ｓ１０７）から（Ｓ１１０）までは検査ステップである。
【００５１】
この例は、図５に示す様に、ＰＫＩシステムのＨＴＴＰの不具合や脆弱性を不正証明情報により再現できるか確認することに相当する。このように、実施の形態１にかかる脆弱性検査装置１００によれば、脆弱性情報ＤＢ１９２と製品運用ＤＢ１９０と属性情報ＤＢ１９４とを連携させることにより、不正証明情報を生成できる。そして、不正証明情報を検査対象物２００に送り込み、不具合や脆弱性が起こるか確認することが可能である。不具合や脆弱性が確認できた場合は、実装に誤りがある可能性が高いため、修正等を施すことで、事前に証明書による攻撃に備えることが可能である。
【００５２】
つまり、実施の形態１にかかる脆弱性検査装置１００は、以下の機能を備えた不正ＰＫＩ情報生成装置である。不正ＰＫＩ情報生成装置は、検査対象のＰＫＩシステムにおける、利用ソフトウェアの情報、ＰＫＣの利用情報、通信手段の情報、セキュリティの設定情報を格納した製品運用ＤＢ１９０、脆弱性情報とｅｘｐｌｏｉｔを格納した脆弱性情報ＤＢ１９２、ＰＫＣのデータフォーマットを格納したＰＫＩ情報ＤＢ（属性情報ＤＢ１９４）を利用し、検査対象のＰＫＩシステムにおけるソフトウェアの脆弱性情報とｅｘｐｌｏｉｔを検索し、ｅｘｐｌｏｉｔを格納する公開鍵証明書（ＰＫＣ）の属性を決定し、ｅｘｐｌｏｉｔ証明書（不正証明情報）を生成する。
【００５３】
実施の形態２．
次に、実施の形態２について説明する。実施の形態２では、検査対象物２００をアクセス制御サーバとした場合の脆弱性検査装置（不正情報生成装置）１００の例について説明する。
【００５４】
実施の形態２にかかる脆弱性検査装置１００の機能、および動作の流れは、実施の形態１にかかる脆弱性検査装置１００の機能、および動作の流れと同様である。そこで、図１５と図１０とに基づき実施の形態２にかかる脆弱性検査装置１００の動作について説明する。図１５は、実施の形態２にかかる脆弱性検査装置１００の処理とデータの流れを示した図である。
ここでは、不正証明情報としてＡＣを使用し、ＡＣを適用したアクセス制御サーバにおけるＳＱＬの処理に関する不具合および脆弱性を検査する。
【００５５】
実施の形態１同様、事前に、脆弱性情報記憶部１２２は、インターネット９４０等から脆弱性情報および対応するｅｘｐｌｏｉｔとを脆弱性情報ＤＢ１９２として記憶装置９８４に記憶する（脆弱性情報記憶ステップ）。また、属性情報記憶部１２４は、規定されている証明情報の各属性およびｅｘｔｅｎｓｉｏｎの構造の情報である属性情報を記憶装置９８４に属性情報ＤＢ１９４として記憶する（属性情報記憶ステップ）。
【００５６】
そして、製品運用記憶ステップ（Ｓ１０１）では、製品運用記憶部１２０は、図１６に示す製品情報と設定情報と運用情報とを記憶する。つまり、製品運用記憶部１２０は、製品情報としてＳＱＬ−ＤＢＸ１ｘ、設定情報としてＳＱＬｐｒｏｔｏｃｏｌ、運用情報としてＡＣをアクセスコントロールに使用、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙ利用という情報を記憶する。図１６は、製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例である。
【００５７】
次に、脆弱性情報検索ステップ（Ｓ１０２）では、脆弱性情報検索部１３０は、例えば、製品運用ＤＢ１９０から製品情報、設定情報として図１７に示す情報を取り出す。図１７は、脆弱性情報検索部１３０が検査キーとして使用する情報の一例である。つまり、脆弱性情報検索部１３０は、製品情報として製品名ＳＱＬ−ＤＢＸ１ｘ、設定情報としてセキュアプロトコルは指定なし、通信プロトコルはＳＱＬｐｒｏｔｏｃｏｌ、セキュリティは指定なしという情報を取り出す。そして、脆弱性情報検索部１３０は、これらの情報を検索キーとして脆弱性情報ＤＢ１９２を検索する。
ここで、脆弱性情報記憶部１２２は、例えば、実施の形態１同様、脆弱性情報ＤＢ１９２に図１３に示す情報を記憶したとする。
脆弱性情報検索部１３０は、例えば、上記検索キーにより脆弱性情報ＤＢ１９２を検索する場合に、製品名を必須とし、かつ、セキュアプロトコル、通信プロトコル、セキュリティのいずれか１つ以上がマッチするエントリを検索する。この場合、検索されるのはエントリ２である。エントリ２は、ＳＱＬ−ＤＢＸアクセスＩＦ（インターフェイス）にＳＱＬＩｎｊｅｃｔｉｏｎの脆弱性ありという脆弱性情報である。エントリ２から、脆弱性の発生箇所がアクセスＩＦの処理であることが判断できる。つまり、Ｅｘｐｌｏｉｔ（検査情報）の攻撃箇所にはＳＱＬコマンドが指定されている。
【００５８】
次に、証明情報検索ステップ（Ｓ１０３）では、証明情報検索部１４２は、製品運用ＤＢ１９０の運用情報からＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙをｅｘｐｌｏｉｔの設定対象の候補と判断する。
【００５９】
次に、証明情報属性検索ステップ（Ｓ１０４）では、証明情報属性検索部１４４は、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙの構造情報を属性情報ＤＢ１９４から取得する。
【００６０】
次に、設定属性検索ステップ（Ｓ１０５）では、設定属性検索部１４６は、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙにＳＱＬコマンドを設定できることを判定する。設定属性検索部１４６は、既に、脆弱性情報ＤＢ１９２における検索結果よりｅｘｐｌｏｉｔのタイプがＳＱＬコマンドであることを判定できる。そこで、設定属性検索部１４６は、図１８に示すＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙの構造情報からＳＱＬコマンドを設定可能な属性を検索する。図１８は、属性情報ＤＢ１９４が記憶する属性情報の一例としてＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙの構造情報を示す図である。設定属性検索部１４６は、検索の結果ｄＮＳＮａｍｅにＳＱＬコマンドが設定できることを検索する。つまり、設定属性検索部１４６は、「ＡｃｃｅｓｓＩｄｅｎｔｉｔｙ」、「ＳｖｃｅＡｕｔｈＩｎｆｏ」、「ｉｄｅｎｔ」、「ＧｅｎｅｒａｌＮａｍｅ」、「ｄＮＳＮａｍｅ」の順に辿ることで、ｄＮＳＮａｍｅを検索する。ＳＱＬは文字列であるから、文字列を格納できる属性を検索する。その結果、設定属性検索部１４６は、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙのｄＮＳＮａｍｅにｅｘｐｌｏｉｔを設定することを決定する。ここでは、ｄＮＳＮａｍｅの属性は「ＩＡ５Ｓｔｒｉｎｇ：Ａｎｙ  ７−ｂｉｔ  ＵＳ  ＡＳＣＩＩ  ｃｈａｒａｃｔｅｒ」となっており、ＳＱＬコマンドを設定可能である。つまり、ｒｆｃ８２２Ｎａｍｅ、ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒであっても同様にＳＱＬコマンドを設定可能であるため、ｒｆｃ８２２Ｎａｍｅ、ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒにｅｘｐｌｏｉｔを設定するとしても構わない。
【００６１】
次に、不正情報生成ステップ（Ｓ１０６）では、不正情報生成部１５０は、まず、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙのｉｄｅｎｔにｄＮＳＮａｍｅとしてｅｘｐｌｏｉｔのＳＱＬコマンドを設定する。不正情報生成部１５０は、例えば、ｄＮＳＮａｍｅが「ａｂｃ．ｃｏｍ」であり、ＳＱＬコマンドが「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＡＢＣ＿Ｔ」であった場合、「ａｂｃ．ｃｏｍ：ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＡＢＣ＿Ｔ」のように設定する。そして、不正情報生成部１５０は、生成した不正証明情報が検査用に別途生成した不正な属性認証機関である不正ＡＡの公開鍵を証明する不正ＡＡ証明書の配下の証明書となるように、Ｉｓｓｕｅｒに不正ＡＡ証明書のＳｕｂｊｅｃｔを設定する。さらに、不正情報生成部１５０は、不正ＡＡ用の公開鍵と対をなす不正ＡＡ秘密鍵により署名を付与する。
実施の形態１同様、脆弱性検査装置１００は、例えば、上記不正ＡＡ用の公開鍵を事前に検査対象物２００に渡しておく。そのため、検査対象物２００は、上記不正証明情報を受け取り検証すると、不正ＡＡ用の公開鍵により不正証明情報が認証できる。したがって、検査対象物２００は、不正証明情報を信用する。その結果として、検査対象物２００は、不正証明情報の属性情報に埋め込まれたｅｘｐｌｏｉｔにより脆弱性が発生する可能性がある。
【００６２】
次に、検査情報設定ステップ（Ｓ１０７）では、検査情報設定部１６２は、ＡＣ利用アクセス制御サーバを検査するため、対となるＡＣ提示クライアントを検査処理部１６０として、（Ｓ１０６）で、不正情報生成部１５０が生成した不正証明情報を設定する。
【００６３】
次に、検査実施ステップ（Ｓ１０８）では、検査実施部１６４は、検査処理部１６０に対し検査対象物２００に接続する命令を出す。
【００６４】
次に、検査処理ステップ（Ｓ１０９）では、検査処理部１６０は、検査対象物２００と通信を開始し、ＡＣとして不正証明情報が送信される。
ここでは、検査対象物２００はＡＣ利用アクセス制御サーバ等が該当する。検査対象物２００では、送付された不正証明情報を受信する。そして、検査対象物２００は、ＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙを抽出し、さらにｉｄｅｎｔを抽出する。ｉｄｅｎｔにはｄＮＳＮａｍｅとしてｅｘｐｌｏｉｔが挿入されている。上述したように、検査対象物２００は、不正ＡＡ用の公開鍵により不正証明情報を認証し、不正証明情報を信用する。そのため、ここでは、検査対象物２００は、ｅｘｐｌｏｉｔの部分まで含めてＤＢアクセス処理層にパラメータとして渡したとする。つまり、ｅｘｐｌｏｉｔが挿入（連結）された、ＳＱＬコマンドをそのまま渡してしまったとする。図１３に示すように、ＤＢアクセス処理層では、ｅｘｐｌｏｉｔを渡された場合に、ＳＱＬＩｎｊｅｃｔｉｏｎが発生する脆弱性がある。したがって、ｅｘｐｌｏｉｔが挿入された属性情報をそのままＤＢアクセス処理層に渡してしまった結果としてＳＱＬが実行されてしまう。
【００６５】
そして、検査結果判定ステップ（Ｓ１１０）では、検査結果判定部１６６は、例えば、検査対象物２００からの返信を待つ。検査対象物２００の脆弱性が再現しなければ、エラーレスポンスが返信される場合が考えられる。しかし、検査結果判定部１６６は、例えば、返信もなく、ＴＣＰの切断信号が無い場合には、不正証明情報が原因で脆弱性が再現したか、不具合が発生したと判断できる。
【００６６】
この例は、図６に示す様に、ＰＫＩシステムのＤＢアクセスの不具合や脆弱性を不正証明情報により再現できるか確認することに相当する。このように、実施の形態２にかかる脆弱性検査装置１００によれば、脆弱性情報ＤＢ１９２と製品運用ＤＢ１９０と属性情報ＤＢ１９４を連携させることにより、不正証明情報を生成できる。そして、不正証明情報を検査対象物２００に送り込み、不具合や脆弱性が起こるか確認することが可能である。不具合や脆弱性が確認できた場合は、実装に誤りがある可能性が高いため、修正等を施すことで、事前に証明書による攻撃に備えることが可能である。
【００６７】
実施の形態３．
次に、実施の形態３について説明する。実施の形態３では、Ｗｅｂサーバにブラウザがアクセスする際のブラウザの画像の処理に関する不具合や脆弱性を検査する脆弱性検査装置（不正情報生成装置）１００の例について説明する。
【００６８】
実施の形態３にかかる脆弱性検査装置１００の機能、および動作の流れは、実施の形態１にかかる脆弱性検査装置１００の機能、および動作の流れと同様である。そこで、図１９と図１０とに基づき実施の形態３にかかる脆弱性検査装置１００の動作について説明する。図１９は、実施の形態３にかかる脆弱性検査装置１００の処理とデータの流れを示した図である。
ここでは、不正証明情報としてＣＣを使用し、ＣＣを適用したＷｅｂサーバにブラウザがアクセスする際のブラウザの画像の処理に関する不具合や脆弱性を検査する。
【００６９】
実施の形態１同様、事前に、脆弱性情報記憶部１２２は、インターネット９４０等から脆弱性情報および対応するｅｘｐｌｏｉｔとを脆弱性情報ＤＢ１９２として記憶装置９８４に記憶する（脆弱性情報記憶ステップ）。また、属性情報記憶部１２４は、規定されている証明情報の各属性およびｅｘｔｅｎｓｉｏｎの構造の情報である属性情報を記憶装置９８４に属性情報ＤＢ１９４として記憶する（属性情報記憶ステップ）。
【００７０】
そして、製品運用記憶ステップ（Ｓ１０１）では、製品運用記憶部１２０は、図２０に示す製品情報と設定情報と運用情報とを記憶する。つまり、製品運用記憶部１２０は、製品情報としてｂｒｏｗｓｅｒＸＳＰ１、設定情報としてＨＴＴＰ、運用情報としてＣＣによりサイトの真正性を確認、Ｖｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔを参照するという情報を記憶する。図２０は、製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例である。
【００７１】
次に、脆弱性情報検索ステップ（Ｓ１０２）では、脆弱性情報検索部１３０は、例えば、製品運用ＤＢ１９０から製品情報、設定情報として図２１に示す情報を取り出す。図２１は、脆弱性情報検索部１３０が検査キーとして使用する情報の一例である。つまり、脆弱性情報検索部１３０は、製品情報として製品名ｂｒｏｗｓｅｒＸＳＰ１、設定情報としてセキュアプロトコルは指定なし、通信プロトコルはＨＴＴＰ、セキュリティは指定なしという情報を取り出す。そして、脆弱性情報検索部１３０は、これらの情報を検索キーとして脆弱性情報ＤＢ１９２を検索する。
ここで、脆弱性情報記憶部１２２は、例えば、実施の形態１同様、脆弱性情報ＤＢ１９２に図１３に示す情報を記憶したとする。
脆弱性情報検索部１３０は、例えば、上記検索キーにより脆弱性情報ＤＢ１９２を検索する場合に、製品名を必須とし、かつ、セキュアプロトコル、通信プロトコル、セキュリティのいずれか１つ以上がマッチするエントリを検索する。この場合、検索されるのはエントリ３である。エントリ３は、ｂｒｏｗｓｅｒＸＳＰ１に画像処理の脆弱性がありという脆弱性情報である。エントリ３から、脆弱性の発生箇所が脆弱性の発生箇所が画像表示の処理であることが判断できる。つまり、Ｅｘｐｌｏｉｔ（検査情報）の攻撃箇所にはＧＩＦ，ＪＰＥＧが指定されている。
【００７２】
次に、証明情報検索ステップ（Ｓ１０３）では、証明情報検索部１４２は、製品運用ＤＢ１９０の運用情報からＶｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔをｅｘｐｌｏｉｔの設定対象の候補と判断する。
【００７３】
次に、証明情報属性検索ステップ（Ｓ１０４）では、証明情報属性検索部１４４は、Ｖｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔの構造情報を属性情報ＤＢ１９４から取得する。
【００７４】
次に、設定属性検索ステップ（Ｓ１０５）では、設定属性検索部１４６は、Ｖｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔに画像を設定できることを認識する。設定属性検索部１４６は、既に、脆弱性情報ＤＢ１９２における検索結果よりｅｘｐｌｏｉｔのタイプがＧＩＦ、ＪＰＥＧであることを判定できる。そこで、設定属性検索部１４６は、実施の形態１、実施の形態２に示すようにＶｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔの構造情報からＧＩＦ、ＪＰＥＧを設定可能な属性を探す。
【００７５】
次に、不正情報生成ステップ（Ｓ１０６）では、不正情報生成部１５０は、まず、設定属性検索部１４６が探したＶｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔの属性にｅｘｐｌｏｉｔのＧＩＦ、ＪＰＥＧを設定する。そして、不正情報生成部１５０は、生成した不正証明情報が検査用に別途生成した不正な認証期間である不正ＣＡを証明する不正ＣＡ証明書の配下の証明書となるように、Ｉｓｓｕｅｒに不正ＣＡ証明書のＳｕｂｊｅｃｔを設定する。さらに、不正情報生成部１５０は、不正ＣＡ証明書の不正ＣＡ公開鍵と対をなす不正ＣＡ秘密鍵により署名を付与する。
実施の形態１同様、脆弱性検査装置１００は、例えば、上記不正ＣＡ公開鍵を事前に検査対象物２００に渡しておく。そのため、検査対象物２００は、上記不正証明情報を受け取り検証すると、不正ＣＡ公開鍵により不正証明情報が認証できる。したがって、検査対象物２００は、不正証明情報を信用する。その結果として、検査対象物２００は、不正証明情報の属性情報に埋め込まれたｅｘｐｌｏｉｔにより脆弱性が発生する可能性がある。
【００７６】
次に、検査情報設定ステップ（Ｓ１０７）では、検査情報設定部１６２は、ブラウザを検査するため、ＣＣ適用Ｗｅｂサイトを検査処理部１６０として、（Ｓ１０６）で、不正情報生成部１５０が生成した不正証明情報を設定する。検査情報設定部１６２の実現は、通常、Ｗｅｂのソフトウェアにはコンテンツの設置を指定する仕組みが備わっているため、この仕組みを利用すれば良い。
【００７７】
次に、検査実施ステップ（Ｓ１０８）では、検査実施部１６４は、検査処理部１６０に対し検査対象物２００に接続する命令を出す。
【００７８】
次に、検査処理ステップ（Ｓ１０９）では、検査処理部１６０は、検査対象物２００と通信を開始し、ＣＣとして不正証明情報が送信される。
ここでは、検査対象物２００はブラウザ等が該当する。つまり、検査対象物２００であるブラウザは、検査実施部１６４からの命令があると検査処理部１６０へアクセスするとしても構わない。または、検査を行うユーザが手動でブラウザにより検査処理部１６０へアクセスを行っても構わない。Ｗｅｂコンテンツを取得する際に、検査処理部１６０からＣＣとして不正証明情報が送信される。検査対象物２００であるブラウザは、送信された不正証明情報を受信する。そして、検査対象物２００は、ＣＣを抽出し、さらにＶｅｒｉｆｉａｂｌｅ  Ｃｏｎｔｅｎｔのｅｘｐｌｏｉｔである画像が挿入された属性を抽出する。上述したように、検査対象物２００は、不正ＣＡ公開鍵により不正証明情報を認証し、不正証明情報を信用する。そのため、ここでは、検査対象物２００は、ｅｘｐｌｏｉｔの部分まで含めてコンテンツ表示層にパラメータとして渡したとする。つまり、ｅｘｐｌｏｉｔが挿入（連結）された、画像をそのまま渡してしまったとする。図１３に示すように、コンテンツ表示層では、ｅｘｐｌｏｉｔを渡された場合に、ＢｏＦ（Ｂｕｆｆｅｒ  ＯｖｅｒＦｌｏｗ）が発生する脆弱性がある。したがって、ｅｘｐｌｏｉｔが挿入された属性情報をそのままコンテンツ表示層に渡してしまった結果としてＢｏＦが発生してしまう。
【００７９】
そして、検査結果判定ステップ（Ｓ１１０）では、検査結果判定部１６６は、例えば、検査対象物２００からの返信を待つ。検査対象物２００の脆弱性が再現しなければ、エラーレスポンスが返信される場合が考えられる。しかし、検査結果判定部１６６は、例えば、返信もなく、ＴＣＰの切断信号が無い場合には、不正証明情報が原因で脆弱性が再現したか、不具合が発生したと判断できる。または、検査対象物２００であるブラウザで、ＢｏＦが発生したために、正常にコンテンツが表示されない等の不具合が発生することを確認する。このことによりＢｏＦの脆弱性が確認できる。
【００８０】
この例は、図７に示す様に、ＰＫＩシステムのコンテンツ表示の不具合や脆弱性を不正証明情報により再現できるか確認することに相当する。このように、実施の形態３にかかる脆弱性検査装置１００によれば、脆弱性情報ＤＢ１９２と製品運用ＤＢ１９０と属性情報ＤＢ１９４を連携させることにより、不正証明情報を生成できる。そして、不正証明情報を検査対象物２００に送り込み、不具合や脆弱性が起こるか確認することが可能である。不具合や脆弱性が確認できた場合は、実装に誤りがある可能性が高いため、修正等を施すことで、事前に証明書による攻撃に備えることが可能である。
【００８１】
つまり、実施の形態２、実施の形態３かかる脆弱性検査装置１００は、属性情報ＤＢ１９４に、ＰＫＣ以外の各種証明書の構造の情報を格納することにより、ＰＫＣだけでなく、ＡＣ、ＣＣ等その他の証明書情報のｅｘｐｌｏｉｔ証明書を生成する機能を追加したものである。
【００８２】
実施の形態４．
次に、実施の形態４について説明する。実施の形態４では、複数の脆弱性情報が検索された場合に、各脆弱性情報に対する不正証明情報を生成する脆弱性検査装置（不正情報生成装置）１００について説明する。
【００８３】
前述した各実施の形態において、脆弱性情報検索ステップ（Ｓ１０２）で、脆弱性情報検索部１３０が脆弱性情報ＤＢ１９２から複数の脆弱性情報を検索した場合、それぞれの脆弱性情報に該当するｅｘｐｌｏｉｔを設定した証明書を生成しても構わない。
つまり、脆弱性情報検索部１３０は、複数の脆弱性情報を検索した場合、複数の脆弱性情報の各脆弱性情報に対する検査情報を取得する。設定属性判定部１４０は、運用情報と属性情報とに基づき、脆弱性情報検索部１３０が取得した検査情報を設定する属性を複数の脆弱性情報の各脆弱性情報毎に判定する。不正情報生成部１５０は、設定属性判定部１４０が判定した属性に該当の検査情報を設定して、複数の脆弱性情報の各脆弱性情報毎に不正証明情報を生成する。
【００８４】
例えば、実施の形態１の脆弱性情報検索ステップ（Ｓ１０２）において、３つの脆弱性情報が検索されたとする。この場合、設定属性判定ステップ（Ｓ１０３−Ｓ１０５）では、設定属性判定部１４０は、まず１つ目の脆弱性情報を選択する（１）。次に、設定属性判定部１４０は、実施の形態１と同様、選択した脆弱性情報に対応するｅｘｐｌｏｉｔを埋め込む証明書の属性を、製品運用ＤＢ１９０、属性情報ＤＢ１９４の情報を利用し決定する（２）。そして、脆弱性検査装置１００は、以降、不正証明情報の生成から検査まで同じ処理を実施する（３）。処理が終了すると、設定属性判定部１４０は、検索された２つ目の脆弱性情報について、上記（１）から（３）までの処理を行う。そして、また処理が終了すると、設定属性判定部１４０は、検索された３つ目の脆弱性情報について、上記（１）から（３）までの処理を行う。つまり、検索された脆弱性情報の数だけ（Ｓ１０３）以降の処理を繰り返す。
【００８５】
つまり、実施の形態４にかかる脆弱性検査装置１００は、脆弱性情報ＤＢ１９２から、複数の脆弱性情報が検索された場合、対応するｅｘｐｌｏｉｔを設定した証明書を１つ１つ生成する機能を追加したものである。
【００８６】
実施の形態２、実施の形態３において、複数の脆弱性が検索された場合も同様の処理を行うことができる。
【００８７】
実施の形態５．
次に、実施の形態５について説明する。実施の形態５では、複数の脆弱性情報が検索された場合に、任意の組合せのｅｘｐｌｏｉｔを持った不正証明情報を生成する脆弱性検査装置（不正情報生成装置）１００について説明する。
【００８８】
前述した各実施の形態において、脆弱性情報検索ステップ（Ｓ１０２）で、脆弱性情報検索部１３０が脆弱性情報ＤＢ１９２から複数の脆弱性情報を検索した場合、検索した脆弱性情報の任意の組合せに含まれる各脆弱性情報に対応するｅｘｐｌｏｉｔを設定した証明書を生成しても構わない。
つまり、脆弱性情報検索部１３０は、複数の脆弱性情報を検索した場合、複数の脆弱性情報から任意に選択した複数の脆弱性情報に対する検査情報を取得する。設定属性判定部１４０は、運用情報と属性情報とに基づき、脆弱性情報検索部１３０が取得した検査情報を設定する属性を任意に選択した複数の脆弱性情報の各脆弱性情報毎に判定する。不正情報生成部１５０は、設定属性判定部１４０が判定した属性に該当の検査情報を設定して１つの不正証明情報を生成する。または、不正情報生成部１５０は、設定属性判定部１４０が判定した属性に該当の検査情報を設定して、複数の脆弱性情報のすべての脆弱性情報の組合せ毎に不正証明情報を生成しても構わない。
【００８９】
例えば、実施の形態１において、脆弱性情報検索ステップ（Ｓ１０２）において、３つの脆弱性情報８５２が検索されたとする。この場合、設定属性判定ステップ（Ｓ１０３−Ｓ１０５）では、設定属性判定部１４０は、まず脆弱性情報の組合せを選択する。３つの脆弱性情報を、脆弱性情報１、脆弱性情報２、脆弱性情報３とする。設定属性判定部１４０が３つの脆弱性情報の中から例えばランダムに選択した結果として、例えば、脆弱性情報１、脆弱性情報３が選ばれたとする（１）。次に、設定属性判定部１４０は、脆弱性情報１に対して、実施の形態１同様、対応するｅｘｐｌｏｉｔを埋め込む証明書の属性を、製品運用ＤＢ１９０、属性情報ＤＢ１９４の情報を利用し決定する。これを、属性情報１とする（２）。次に、設定属性判定部１４０は、脆弱性情報３に対して、実施の形態１同様、対応するｅｘｐｌｏｉｔを埋め込む証明書の属性を、製品運用ＤＢ１９０、属性情報ＤＢ１９４の情報を利用し決定する。これを、属性情報３とする（３）。設定属性判定部１４０は（２）、（３）の処理で決定された２つの属性情報を不正情報生成部１５０に渡す（４）。不正情報生成部１５０は、属性情報１に該当するｅｘｐｌｏｉｔ１を脆弱性情報ＤＢ１９２から受け取る。同様に属性情報３に該当するｅｘｐｌｏｉｔ３を脆弱性情報ＤＢ１９２から受け取る（５）。不正情報生成部１５０は、属性情報１にｅｘｐｌｏｉｔ１を、属性情報３にｅｘｐｌｏｉｔ３を設定した不正証明情報を生成する（６）。脆弱性検査装置１００は、以降、ｅｘｐｌｏｉｔ証明書の設定から検査まで同じ処理を実施する（７）。
【００９０】
脆弱性情報の任意の組合せは、検索された脆弱性情報を表示して、採用する脆弱性をＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等でオペレータに選択させる方法や設定属性判定部１４０等がランダムに組合せを選んでも構わない。また、検索されたすべての脆弱性情報を含めても構わない。また、ランダムに組合せを選択する方法については、既にある手法を用いることができる。
【００９１】
また、図２２に示すように脆弱性検査装置１００は、オペレータにＧＵＩにより脆弱性情報の組合せを選択させる機能を備えても構わない。図２２は、オペレータにＧＵＩにより脆弱性情報の組合せを選択させる機能を備える実施の形態５にかかる脆弱性検査装置１００の機能ブロック図である。実施の形態５にかかる脆弱性検査装置１００は、実施の形態１かかる脆弱性検査装置１００の機能に加え、脆弱性情報選択部１３２を備える。脆弱性情報選択部１３２は、脆弱性情報検索部１３０が複数の脆弱性情報を検索した場合、検索した複数の脆弱性情報から所定の脆弱性情報を入力装置９８２により選択する。つまり、脆弱性情報選択部１３２は、例えば、検索された脆弱性情報がリスト表示された脆弱性を選択する。したがって、例えば、脆弱性情報検索部１３０は、脆弱性情報選択部１３２が選択した所定の脆弱性情報に対する検査情報を取得する。次に、設定属性判定部１４０は、運用情報と属性情報とに基づき、脆弱性情報検索部１３０が取得した検査情報を設定する属性を脆弱性情報選択部１３２が選択した所定の脆弱性情報の各脆弱性情報毎に判定する。そして、不正情報生成部１５０は、設定属性判定部１４０が判定した属性に該当の検査情報を設定して１つの不正証明情報を生成する。
【００９２】
図２３は、脆弱性情報選択用ＧＵＩの一例である。図２３に示すように脆弱性情報選択部１３２は、脆弱性情報１、脆弱性情報２、脆弱性情報３の３つの脆弱性から組合せを指定できる。図２３では、脆弱性情報選択部１３２は、例えば、オペレータに脆弱性情報１、脆弱性情報３をチェックさせ、実行ボタンを押させることにより組合せを選択できる。
【００９３】
つまり、実施の形態５にかかる脆弱性検査装置１００は、脆弱性情報ＤＢ１９２から、複数の脆弱性情報が検索された場合、対応するｅｘｐｌｏｉｔの任意の組合せを持った証明情報を生成する機能を追加したものである。ここで、組合せの決定は、検索された脆弱性情報を表示し、採用する脆弱性をＧＵＩでオペレータに選択させる方法や装置がランダムに組合せを選ぶ方法や全ての組合せを生成する方法等が考えられる。
【００９４】
実施の形態２、実施の形態３において、複数の脆弱性が検索された場合も同様の処理を行うことができる。また、自動的に全ての組合せ毎の不正証明情報を生成しても構わない。
【００９５】
実施の形態６．
次に、実施の形態６について説明する。実施の形態６では、ｅｘｐｌｏｉｔに空白文字等を混入した派生系のｅｘｐｌｏｉｔを生成して不正証明情報を生成する脆弱性検査装置（不正情報生成装置）１００について説明する。
【００９６】
脆弱性検査装置１００は、ｅｘｐｌｏｉｔに空白文字の混入等の派生系が考えられる場合は、混入文字の種類、数、位置等のパラメータを指定し派生ｅｘｐｌｏｉｔを生成しても構わない。そして、脆弱性検査装置１００は、対応したｅｘｐｌｏｉｔ証明書を生成しても構わない。その場合は、脆弱性検査装置１００は、例えば、パラメータを設定するＧＵＩを備える。
【００９７】
図２４は、パラメータを設定する機能を備える実施の形態６にかかる脆弱性検査装置１００の機能を示す機能ブロック図である。実施の形態６にかかる脆弱性検査装置１００は、実施の形態１かかる脆弱性検査装置１００の機能に加え、変更情報入力部１５２を備える。変更情報入力部１５２は、検査情報の変更情報を入力装置９８２により入力する。そして、不正情報生成部１５０は、設定属性判定部１４０が判定した属性に、脆弱性情報検索部１３０が取得した検査情報に変更情報入力部１５２が入力した変更情報を反映させた検査情報を設定して不正証明情報を生成して記憶装置９８４に記憶する。
【００９８】
図２５は、脆弱性情報編集用ＧＵＩの一例である。図２５に示すように変更情報入力部１５２は、表示された脆弱性情報のｅｘｐｌｏｉｔを編集することができる。変更情報入力部１５２は、例えば、オペレータにｅｘｐｌｏｉｔを修正させ、編集完了ボタンを押させることで、派生のｅｘｐｌｏｉｔを設定した不正証明情報を生成できる。
【００９９】
図２６は、脆弱性情報編集用ＧＵＩの他の一例である。図２６に示すように、変更情報入力部１５２は、ｅｘｐｌｏｉｔにおける挿入文字の位置を指定する挿入箇所、挿入する文字列を指定する挿入文字列、挿入する個数を指定する挿入個数をオペレータに指定させ、完了ボタンを押させることで、文字列を挿入した派生のｅｘｐｌｏｉｔを設定した不正証明情報を生成できる。
【０１００】
また、変更情報入力部１５２は、ＧＵＩで文字の挿入を指定するのではなく、設定ファイルで指定することで、自動的に文字列が設定されるようにしても構わない。例えば、「ｅｘｐｌｏｉｔの先頭に’ｆｆｆ’を３つ挿入する」と指定された設定ファイルを、変更情報入力部１５２は読み込んで先頭に’ｆｆｆ’を３つ挿入したｅｘｐｌｏｉｔを生成する実装は可能である。
【０１０１】
つまり、実施の形態６にかかる脆弱性検査装置１００は、ｅｘｐｌｏｉｔに空白文字の混入等の派生系が考えられる場合、混入文字の種類、数、位置等のパラメータを指定し派生ｅｘｐｌｏｉｔを生成し、対応した不正証明情報を生成する機能を追加したものである。また、パラメータの挿入方法は、ＧＵＩでオペレータにパラメータを選択させる方法や予め設定されたパラメータを自動挿入する方法等が考えられる。
【０１０２】
実施の形態７．
次に、実施の形態７について説明する。実施の形態７では、不正証明情報にｅｘｐｌｏｉｔの設定に加え、属性の異常値の設定を追加する脆弱性検査装置（不正情報生成装置）１００について説明する。
【０１０３】
脆弱性検査装置１００は、不正証明情報の内容として、脆弱性情報ＤＢ１９２で管理されるｅｘｐｌｏｉｔの設定に加え、属性の異常値の設定も追加する機能を備えても構わない。例えば、上述した変更情報入力部１５２がこの処理を行っても構わない。変更情報入力部１５２は、例えば、有効期限切れ、署名異常、既知のｅｘｔｅｎｔｉｏｎのフォーマット違反等を不正証明情報に追加する。その場合は、脆弱性検査装置１００は、例えば、各種パラメータを設定するＧＵＩを備える。
【０１０４】
図２７は、属性の異常値の設定を不正証明情報に追加する属性設定用ＧＵＩの一例である。図２７に示すように、変更情報入力部１５２は、Ｖｅｒｓｉｏｎ、有効期限、Ｓｕｂｊｅｃｔ等の必須属性、及び、鍵用途、証明書のポリシー等のＰＫＣの属性の一部を表示し、これらを入力することで属性の異常値の設定を不正証明情報に追加できる。ここでは、変更情報入力部１５２は、指定する値は異常値を指定する。変更情報入力部１５２は、例えば、有効期限１０４２であれば、０７１００１（ＹＹＭＭＤＤ）〜０５１０３１（ＹＹＭＭＤＤ）のように開始と終わりの日付の大小を逆に指定する。また、変更情報入力部１５２は、例えば、証明書のポリシー１０４５に検査対象のシステムでは受け入れない値を指定する。指定する属性には、例えば、選択欄にチェックを入れることで行う。また、編集完了ボタンを押すことで、異常な属性値を持ち、かつｅｘｐｌｏｉｔを設定した不正証明情報を生成する。
これらの属性の例は一部であり、ＰＫＣ、ＡＣ等の仕様は規定されているのでその規定の属性をＧＵＩに表示することで、オペレータが異常値の指定を行うことができる。複数の属性の異常値を指定しても構わない。また、ＧＵＩで異常値を指定するのではなく、設定ファイルに異常値を指定することで、自動的に異常値が設定される実装でも構わない。
【０１０５】
つまり、実施の形態７にかかる脆弱性検査装置１００は、不正証明情報として、脆弱性情報ＤＢ１９２に管理されたｅｘｐｌｏｉｔの設定に加え、属性の異常値を設定する機能を追加したものである。ここで、属性の異常値とは、例えば、有効期限切れ、署名異常、既知のｅｘｔｅｎｔｉｏｎのフォーマット違反等である。また、異常値の設定を追加する方法としては、ＧＵＩでオペレータに属性と異常値を指定させる方法や予め設定された属性と異常値を自動挿入する方法等が考えられる。
【０１０６】
実施の形態８．
次に、実施の形態８について説明する。実施の形態８では、製品運用ＤＢ１９０への製品情報の登録を自動に行う脆弱性検査装置（不正情報生成装置）１００について説明する。
【０１０７】
脆弱性検査装置１００は、製品運用ＤＢ１９０への情報の登録において、予め検査対象物２００の情報をＧＵＩ等により手動で設定する他に、ＯＳやアプリケーションのフィンガープリンティング手法により使用しているＯＳやアプリケーションの情報をネットワーク経由で自動的に収集しても構わない。
ここで、フィンガープリンティングとは、例えば、Ｗｅｂサーバに対してＨＴＴＰリクエストを送信すると、使用しているＷｅｂサーバの製品名やバージョンがレスポンスとして返信されることをいう。また、ｔｅｌｎｅｔ接続でＯＳ名が返信されることをいう。これらの返信された情報であるフィンガープリントを利用し検査対象物２００のホストのＯＳや使用しているソフトウェアのバージョンを取得する。
【０１０８】
図２８は、製品運用ＤＢ１９０への製品情報の登録を自動に行う実施の形態８にかかる脆弱性検査装置１００の機能を示す機能ブロック図である。実施の形態８にかかる脆弱性検査装置１００は、実施の形態１にかかる脆弱性検査装置１００に加え、製品情報収集部１７２を備える。製品情報収集部１７２は、検査対象物２００の製品情報をフィンガープリンティングにより収集する。そして、製品運用記憶部１２０は、製品情報収集部１７２が収集した製品情報を記憶する。
【０１０９】
実施の形態８は、ホストのＯＳや使用しているソフトウェアのバージョンを取得するツールと同様の手法により、手動で製品の製品情報を製品運用ＤＢ１９０へ登録することなく、自動的に製品情報を登録可能である。
【０１１０】
つまり、実施の形態８にかかる脆弱性検査装置１００は、製品運用ＤＢ１９０への情報の登録において、予め検査対象の情報をＧＵＩ等で手動で設定するのではなく、ＯＳやアプリケーションのフィンガープリンティング手法により使用しているＯＳ／アプリケーションの情報をネットワーク経由で自動的に収集する機能を追加したものである。
【０１１１】
実施の形態９．
次に、実施の形態９について説明する。実施の形態９では、製品運用ＤＢ１９０への運用情報の登録を自動に行う脆弱性検査装置（不正情報生成装置）１００について説明する。
【０１１２】
脆弱性検査装置１００は、検査対象物２００がサーバ等である場合、どのような運用を行っているか、手動で製品運用ＤＢ１９０へ登録するのではなく、自動的に調査する。脆弱性検査装置１００は、例えば、ポートスキャンにより開いているポートを検査する。この時、ポート４４３が稼動していれば、ＨＴＴＰＳが稼動している。つまり、脆弱性検査装置１００は、ＳＳＬ対応のＷｅｂサーバが稼動していると判断できる。次に、脆弱性検査装置１００は、ＳＳＬのハンドシェイクでＣｅｒｔｉｆｉｃａｔｅＲｅｑｕｅｓｔがサーバから送信されていれば、そのサーバではクライアント認証を必要としていると判断できる。ＣｅｒｔｉｆｉｃａｔｅＲｅｑｕｅｓｔが送信されない場合でも、クライアント側からＣｌｉｅｎｔＣｅｒｉｔｉｆｉｃａｔｅを送信すると、送信されたクライアント証明書をチェックするサーバがある。脆弱性検査装置１００は、正常なクライアント証明書を送った場合と有効期限が切れている場合や署名が改ざんされている証明書を送った場合とで挙動が異なるときは、クライアント証明書の提供を強要しないが、受信した場合はチェックしている運用であると判断できる。
【０１１３】
図２９は、製品運用ＤＢ１９０への運用情報の登録を自動に行う実施の形態９にかかる脆弱性検査装置１００の機能を示す機能ブロック図である。実施の形態９にかかる脆弱性検査装置１００は、実施の形態１にかかる脆弱性検査装置１００に加え、運用情報特定部１７４を備える。運用情報特定部１７４は、検査対象物２００に対してポートスキャンを行い、検査対象物２００で動作するＰＫＩシステムで利用するサービスを特定する。そして、製品運用記憶部１２０は、運用情報特定部１７４が収集したサービスを製品情報として記憶する。
【０１１４】
実施の形態９は、ポートスキャン等により、手動で製品の運用情報を製品運用ＤＢ１９０へ登録することなく、自動的に製品情報を登録可能である。
【０１１５】
つまり、実施の形態９にかかる脆弱性検査装置１００は、検査対象物２００が、サーバである場合、どのような運用を行っているか、ポートスキャンにより開いているポートを検査し、攻撃対象のＰＫＩシステムのサービスを特定する機能を追加したものである。
【０１１６】
実施の形態１０．
次に、実施の形態１０について説明する。上述した実施の形態１から実施の形態９までは、ＰＫＣ、ＡＣ、ＣＣに限らず、その他の証明情報に対しても適用することができる。例えば、ＱＣ（Ｑｕａｌｉｆｉｅｄ  Ｃｅｒｔｉｆｉｃａｔｅ，ＲＦＣ３７３９）、ＰＣ（Ｐｒｏｘｙ  Ｃｅｒｔｉｆｉｃａｔｅ，ＲＦＣ３８２０）等のＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）で仕様化されているほかの証明書や、ＣＳＣ（Ｃｏｄｅ  Ｓｉｇｎｉｎｇ  Ｃｅｒｔｉｆｉｃａｔｅ）、ＤＣ（Ｄｅｖｉｃｅ  Ｃｅｒｔｉｆｉｃａｔｅ）等のＩＥＴＦで仕様化されていない独自の証明書に対しても適用することができる。これらの証明書の構造の情報を属性情報ＤＢ１９４に格納することで、各々の不正証明情報を作成可能である。
【０１１７】
実施の形態１１．
次に、実施の形態１１について説明する。実施の形態１１では、証明書の失効情報に対してｅｘｐｌｏｉｔを設定する脆弱性検査装置（不正情報生成装置）１００の例について説明する。
【０１１８】
脆弱性検査装置１００は、証明書だけでなく、ＣＲＬやＯＣＳＰのリクエストやレスポンスの構造を属性情報ＤＢ１９４に格納することでｅｘｐｌｏｉｔＣＲＬやｅｘｐｌｏｉｔＯＣＳＰのリクエストやレスポンスを不正証明情報として生成可能である。
例えば、ＲＦＣ３２８０によればＣＲＬには、そのＣＲＬに対する差分の情報をＤｅｌｔａＣＲＬとして公開することが可能である。ＣＲＬにはＤｅｌｔａＣＲＬの公開場所を、「ＦｒｅｓｈｅｓｔＣＲＬ：：＝ＣＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ」のｅｘｔｅｎｔｉｏｎで示すことが可能である。
【０１１９】
実施の形態１１にかかる脆弱性検査装置１００の機能、および動作の流れは、実施の形態１にかかる脆弱性検査装置１００の機能、および動作の流れと同様である。そこで、図３０と図１０とに基づき実施の形態１１にかかる脆弱性検査装置１００の動作について説明する。図３０は、実施の形態１１にかかる脆弱性検査装置１００の処理とデータの流れを示した図である。
ここでは、Ｓ／ＭＩＭＥメーラのＣＲＬの処理に関する不具合や脆弱性を検査する。
【０１２０】
実施の形態１同様、事前に、脆弱性情報記憶部１２２は、インターネット９４０等から脆弱性情報および対応するｅｘｐｌｏｉｔとを脆弱性情報ＤＢ１９２として記憶装置９８４に記憶する（脆弱性情報記憶ステップ）。また、属性情報記憶部１２４は、規定されている証明情報の各属性およびｅｘｔｅｎｓｉｏｎの構造の情報である属性情報を記憶装置９８４に属性情報ＤＢ１９４として記憶する（属性情報記憶ステップ）。
【０１２１】
次に、製品運用記憶ステップ（Ｓ１０１）では、製品運用記憶部１２０は、図３１に示す製品情報と設定情報と運用情報とを記憶する。図３１は、製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例である。つまり、製品運用記憶部１２０は、製品情報としてＳ／ＭＩＭＥ  ｍａｉｌｅｒＸ、設定情報としてＨＴＴＰ、運用情報としてＰＫＣのチェックにＣＲＬを使用という情報を記憶する。図３１は、製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例である。
【０１２２】
次に、脆弱性情報検索ステップ（Ｓ１０２）では、脆弱性情報検索部１３０は、例えば、製品運用ＤＢ１９０から製品情報、設定情報として図３２に示す情報を取り出す。図３２は、脆弱性情報検索部１３０が検査キーとして使用する情報の一例である。つまり、脆弱性情報検索部１３０は、製品情報として製品名Ｓ／ＭＩＭＥ  ｍａｉｌｅｒ、設定情報としてセキュアプロトコルＳ／ＭＩＭＥ、通信プロトコルはＨＴＴＰ、セキュリティは指定なしという情報を取り出す。そして、脆弱性情報検索部１３０は、これらの情報を検索キーとして脆弱性情報ＤＢ１９２を検索する。
その結果、ＨＴＴＰエンジンのリクエストに脆弱性あり、不正なＵＲＬにより異常終了が発生するという脆弱性情報が検索されたとする。
【０１２３】
次に、証明情報検索ステップ（Ｓ１０３）では、証明情報検索部１４２は、製品運用ＤＢ１９０の運用情報からＣＲＬをｅｘｐｌｏｉｔの設定対象の候補と判断する。証明書の運用方法として、証明書の失効のチェックにＣＲＬを使用することが記述されているためである。
【０１２４】
次に、証明情報属性検索ステップ（Ｓ１０４）では、証明情報属性検索部１４４は、ＣＲＬの構造情報を属性情報ＤＢ１９４から取得する。
【０１２５】
次に、設定属性検索ステップ（Ｓ１０５）では、設定属性検索部１４６は、ＦｒｅｓｈｅｓｔＣＲＬにＵＲＬを設定できることを判定する。設定属性検索部１４６は、既に、脆弱性情報ＤＢ１９２における検索結果よりｅｘｐｌｏｉｔのタイプがＵＲＬであることを判定できる。そこで、設定属性検索部１４６は、ＣＲＬの構造情報からＵＲＬを設定可能な属性を検索する。ＣＲＬのｅｘｔｅｎｓｉｏｎであるＦｒｅｓｈｅｓｔＣＲＬはＣＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓと同じ型で定義されるが、実施の形態１に示すように、ＣＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓのｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒにＵＲＬが設定できることがわかる。つまり、設定属性検索部１４６は、「ＣＲＬ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｐｏｉｎｔｓ」、「ＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔ」、「ｄｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔ」、「ＧｅｎｅｒａｌＮａｍｅｓ」、「ＧｅｎｅｒａｌＮａｍｅ」、「ｕｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｉｅｒ」の順に辿ることで、ＦｒｅｓｈｅｓｔＣＲＬを検索する。つまり、ＦｒｅｓｈｅｓｔＣＲＬがｅｘｐｌｏｉｔを設定するのに適していると判断する。その結果、設定属性検索部１４６は、ＣＲＬのｅｘｔｅｎｓｉｏｎであるＦｒｅｓｈｅｓｔＣＲＬのＵＲＬにｅｘｐｌｏｉｔを設定することを決定する。
【０１２６】
次に、不正情報生成ステップ（Ｓ１０６）では、不正情報生成部１５０は、まず、ＦｒｅｓｈｅｓｔＣＲＬのＵＲＬにｅｘｐｌｏｉｔのＵＲＬである「ｈｔｔｐ：／／ｗｗｗ．ａｂｃ．ｃｏｍ／・・・」を設定して不正証明情報であるｅｘｐｌｏｉｔＣＲＬを生成する。この時、不正情報生成部１５０は、生成した不正証明情報が検査用に別途生成した不正な認証期間である不正ＣＡを証明する不正ＣＡ証明書の配下のＣＲＬとなるように、Ｉｓｓｕｅｒに不正ＣＡ証明書のＳｕｂｊｅｃｔを設定する。さらに、不正情報生成部１５０は、不正ＣＡ証明書の不正ＣＡ公開鍵と対をなす不正ＣＡ秘密鍵により署名を付与する。
実施の形態１同様、脆弱性検査装置１００は、上記不正ＣＡ公開鍵を事前に検査対象物２００に渡しておく。そのため、検査対象物２００は、上記不正証明情報を受け取り検証すると、不正ＣＡ公開鍵により不正証明情報が認証できる。したがって、検査対象物２００は、不正証明情報を信用する。その結果として、検査対象物２００は、不正証明情報の属性情報に埋め込まれたｅｘｐｌｏｉｔにより脆弱性が発生する可能性がある。
【０１２７】
次に、検査情報設定ステップ（Ｓ１０７）では、検査情報設定部１６２は、Ｓ／ＭＩＭＥメールクライアントを検査処理部１６０として、（Ｓ１０６）で、不正情報生成部１５０が生成した不正証明情報を設定する。
【０１２８】
次に、検査実施ステップ（Ｓ１０８）では、検査実施部１６４は、検査処理部１６０に対し検査対象物２００に接続する命令を出す。
【０１２９】
次に、検査処理ステップ（Ｓ１０９）では、検査処理部１６０は、Ｓ／ＭＩＭＥ署名メール１１５６を生成し、不正証明情報であるｅｘｐｌｏｉｔＣＲＬを添付する。なお、署名は、不正ＣＡ証明書配下のＳ／ＭＩＭＥ署名用証明書を予め発行しておき、Ｓ／ＭＩＭＥメールに署名を付加してＳ／ＭＩＭＥ署名用証明書をメールに添付する。つまり、Ｓ／ＭＩＭＥ署名メールには、Ｓ／ＭＩＭＥ用証明書とｅｘｐｌｏｉｔＣＲＬが添付される。そして、検査処理部１６０は、検査対象物２００へ不正証明情報を付したＳ／ＭＩＭＥ署名メールを送信する。
なお、Ｓ／ＭＩＭＥ署名メールへの証明書とＣＲＬの添付（格納）方法は、例えば、ＲＦＣ２３１１（Ｓ／ＭＩＭＥ  Ｖｅｒｓｉｏｎ  ２  Ｍｅｓｓａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）に基づいて行う。
ここでは、検査対象物２００はＳ／ＭＩＭＥメーラが該当する。検査対象物２００はでは、Ｓ／ＭＩＭＥ署名メールの署名を検査する作業が行われる。検査対象物２００は、添付されている不正証明情報であるｅｘｐｌｏｉｔＣＲＬの署名をチェックし成功するので、ＦｒｅｓｈｅｓｔＣＲＬを抽出し、さらにＵＲＬを抽出する。ＵＲＬにはｅｘｐｌｏｉｔが挿入されているが、ｅｘｐｌｏｉｔの部分まで含めてＨＴＴＰ処理層にパラメータとして渡したとする。つまり、ｅｘｐｌｏｉｔが挿入（連結）された、ＵＲＬ「ｈｔｔｐ：／／ｗｗｗ．ａｂｃ．ｃｏｍ／・・・」をそのままＨＴＴＰ処理層へ渡してしまったとする。ＨＴＴＰ処理層では、ｅｘｐｌｏｉｔを渡された場合に、異常終了が発生する脆弱性がある。したがって、ｅｘｐｌｏｉｔが挿入（連結）された、ＵＲＬをそのままＨＴＴＰ処理層へ渡してしまった結果として異常終了が発生する。
【０１３０】
そして、検査結果判定ステップ（Ｓ１１０）では、検査結果判定部１６６は、例えば、処理が所定以上に遅くなる等の現象が起こるか否かを確認する。検査対象物２００の脆弱性が再現しなければ、所定の早さで処理が行われるはずである。しかし、検査結果判定部１６６は、例えば、所定以上に処理が遅い場合には、不正証明情報が原因で脆弱性が再現したか、不具合が発生したと判断できる。
【０１３１】
このように、実施の形態１１にかかる脆弱性検査装置１００によれば、脆弱性情報ＤＢ１９２と製品運用ＤＢ１９０と属性情報ＤＢ１９４を連携させることにより、不正証明情報としてｅｘｐｌｏｉｔＣＲＬを生成し、これを検査対象１１０９に送り込み、不具合や脆弱性が起こるか確認する。不具合や脆弱性が確認できた場合は、実装に誤りがある可能性が高いため、修正等を施すことで、事前にＣＲＬによる攻撃に備えることが可能である。
【０１３２】
実施の形態１２．
次に、実施の形態１２について説明する。実施の形態１２では、証明書の失効状態の問い合わせを受け、返答を返すＯＣＳＰに対してｅｘｐｌｏｉｔを設定する脆弱性検査装置（不正情報生成装置）１００の例について説明する。
【０１３３】
まず、図３３に基づきＯＣＳＰの概要を説明する。図３３は、ＯＣＳＰの概要を示す図である。
ＯＣＳＰクライアント４１０は、検証したい証明書の情報をＯＣＳＰリクエスト４１２に設定してＯＣＳＰサーバ４２０に送信する。ＯＣＳＰサーバ４２０は、ＯＣＳＰリクエスト４１２により問合せがあった証明書の失効状態をＯＣＳＰレスポンス４２２に設定してＯＣＳＰクライアント４１０に返信する。
なお、ＯＣＳＰリクエスト４１２には、ＯＣＳＰクライアント自身の署名と証明書が添付される。但し、ＯＣＳＰリクエストに、ＯＣＳＰクライアント自身の署名と証明書を添付することはオプションであり、必須ではない。また、ＯＣＳＰレスポンス４２２には、ＯＣＳＰサーバ４２０自身の署名と証明書が添付される。
【０１３４】
実施の形態１２では、ＯＣＳＰクライアント４１０／サーバ４２０に対して不正証明情報を送信して脆弱性の有無を検査する。
【０１３５】
まず、実施の形態１２にかかる脆弱性検査装置１００の機能、および動作の流れは、実施の形態１にかかる脆弱性検査装置１００の機能、および動作の流れと同様である。そこで、ＯＣＳＰクライアント４１０／サーバ４２０に対して不正証明情報を送信して脆弱性の有無を検査する方法について、実施の形態１と異なる部分について説明する。
【０１３６】
まず、ＯＣＳＰクライアント４１０の脆弱性を検査する場合について説明する。ＯＣＳＰクライアント４１０の脆弱性を検査する場合、検査対象物２００は、ＯＣＳＰクライアント４１０である。また、ＯＣＳＰサーバ４２０のソフトウェアが検査処理部１６０である。製品運用記憶部１２０は、製品運用ＤＢ１９０にＯＣＳＰクライアント４１０のソフトウェア情報を設定する。また、属性情報記憶部１２４は、属性情報ＤＢ１９４にＰＫＣおよびＯＣＳＰのデータ構造の情報を設定する。
ここで、ＯＣＳＰサーバ４２０がＯＣＳＰクライアント４１０に対してＯＣＳＰレスポンス４２２を返信するが、このＯＣＳＰレスポンス４２２に不正証明情報を格納する。ＯＣＳＰレスポンス４２２にはＯＣＳＰサーバ４２０の署名と証明書が付加されるので、実施の形態１と同様、脆弱性検査装置１００は、不正証明情報を生成してＯＣＳＰレスポンス４２２に格納する。
【０１３７】
次に、ＯＣＳＰサーバ４２０の脆弱性を検査する場合について説明する。ＯＣＳＰサーバ４２０の脆弱性を検査する場合、検査対象物２００は、ＯＣＳＰサーバ４２０である。また、ＯＣＳＰクライアント４１０のソフトウェアが検査処理部１６０である。製品運用記憶部１２０は、製品運用ＤＢ１９０にＯＣＳＰサーバ４２０のソフトウェア情報を設定する。また、属性情報記憶部１２４は、属性情報ＤＢ１９４にＰＫＣおよびＯＣＳＰのデータ構造の情報を設定する。
ここで、ＯＣＳＰクライアント４１０はＯＣＳＰサーバ４２０に対してＯＣＳＰリクエスト４１２を送信するが、このＯＣＳＰリクエスト４１２に不正証明情報を格納する。ＯＣＳＰリクエスト４１２にはＯＣＳＰクライアント４１０の署名と証明書が付加されるので、実施の形態１と同様、脆弱性検査装置１００は、不正証明情報を生成してＯＣＳＰリクエスト４１２に格納する。なお、ＯＣＳＰリクエストに、ＯＣＳＰクライアント自身の署名と証明書を添付することはオプションのため必須では無いが、ここでは添付することとする。
【０１３８】
実施の形態１２では、ＯＣＳＰリクエスト４１２／レスポンス４２２における送信者の証明書にｅｘｐｌｏｉｔを格納した。しかし、脆弱性情報ＤＢ１９２から検索された脆弱性情報のｅｘｐｌｏｉｔについて、格納するための適切なＯＣＳＰリクエスト４１２／レスポンス４２２のデータ構造が、証明書以外に検出された場合は、そのデータに対して実施の形態１から９までに示すようにそのデータにｅｘｐｌｏｉｔを設定しても構わない。
例えば、ＯＣＳＰリクエスト４１２／レスポンス４２２のどちらに対しても該当し、バイナリデータを設定するＮｏｎｃｅ、ＯＣＳＰレスポンス４２２に該当し、ＵＲＬを設定するＣＲＬＲｅｆｅｒｅｎｃｅｓ、ＯＣＳＰリクエスト４２２に該当し、ＵＲＬを設定するＳｅｒｖｉｃｅＬｏｃａｔｏｒ等のＯＣＳＰプロトコルデータのｅｘｔｅｎｔｉｏｎが該当する場合が考えられる。
【０１３９】
つまり、実施の形態１１、実施の形態１２にかかる脆弱性検査装置１００は、属性情報ＤＢ１９４に、ＣＲＬ、ＯＣＳＰ等の各種失効情報の構造の情報を格納することにより、ｅｘｐｌｏｉｔ失効情報（不正失効情報）を生成する機能を追加したものである。
【図面の簡単な説明】
【０１４０】
【図１】実施の形態にかかる脆弱性検査システム１０００の外観の一例を示した図。
【図２】実施の形態における脆弱性検査装置１００のハードウェア構成の一例を示す図。
【図３】実施の形態にかかる脆弱性検査装置１００の概要を示す図。
【図４】ＳＳＬでＨＴＴＰ通信を保護するシステムの機能ブロック図。
【図５】ＰＫＣの属性を利用した不正アクセスの例を示す図。
【図６】ＡＣの属性を利用した不正アクセスの例を示す図。
【図７】ＣＣの属性を利用した不正アクセスの例を示す図。
【図８】実施の形態１にかかる脆弱性検査装置１００の機能を示す機能ブロック図。
【図９】実施の形態１にかかる脆弱性検査装置１００の処理とデータの流れを示した図。
【図１０】実施の形態１にかかる脆弱性検査装置１００の動作である脆弱性検査処理（脆弱性検査方法、脆弱性検査プログラム）を示すフローチャート。
【図１１】製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例。
【図１２】脆弱性情報検索部１３０が検査キーとして使用する情報の一例。
【図１３】脆弱性情報ＤＢ１９２に記憶する情報の一例。
【図１４】属性情報ＤＢ１９４が記憶する属性情報の一例としてＣＲＬ−ＤＰの構造情報を示す図。
【図１５】実施の形態２にかかる脆弱性検査装置１００の処理とデータの流れを示した図。
【図１６】製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例。
【図１７】脆弱性情報検索部１３０が検査キーとして使用する情報の一例。
【図１８】属性情報ＤＢ１９４が記憶する属性情報の一例としてＡｃｃｅｓｓＩｄｅｎｔｉｔｉｙの構造情報を示す図。
【図１９】実施の形態３にかかる脆弱性検査装置１００の処理とデータの流れを示した図。
【図２０】製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例。
【図２１】脆弱性情報検索部１３０が検査キーとして使用する情報の一例。
【図２２】オペレータにＧＵＩにより脆弱性情報の組合せを選択させる機能を備える実施の形態５にかかる脆弱性検査装置１００の機能ブロック図。
【図２３】脆弱性情報選択用ＧＵＩの一例。
【図２４】パラメータを設定する機能を備える実施の形態６にかかる脆弱性検査装置１００の機能を示す機能ブロック図。
【図２５】脆弱性情報編集用ＧＵＩの一例。
【図２６】脆弱性情報編集用ＧＵＩの他の一例。
【図２７】属性の異常値の設定を不正証明情報に追加する属性設定用ＧＵＩの一例。
【図２８】製品運用ＤＢ１９０への製品情報の登録を自動に行う実施の形態８にかかる脆弱性検査装置１００の機能を示す機能ブロック図。
【図２９】製品運用ＤＢ１９０への運用情報の登録を自動に行う実施の形態９にかかる脆弱性検査装置１００の機能を示す機能ブロック図。
【図３０】実施の形態１１にかかる脆弱性検査装置１００の処理とデータの流れを示した図。
【図３１】製品運用記憶部１２０が製品運用ＤＢ１９０として記憶する情報の一例。
【図３２】脆弱性情報検索部１３０が検査キーとして使用する情報の一例。
【図３３】ＯＣＳＰの概要を示す図。
【符号の説明】
【０１４１】
１００  脆弱性検査装置、１１０  脆弱性検査部、１２０  製品運用記憶部、１２２  脆弱性情報記憶部、１２４  属性情報記憶部、１３０  脆弱性情報検索部、１３２  脆弱性情報選択部、１４０  設定属性判定部、１４２  証明情報検索部、１４４  証明情報属性検索部、１４６  設定属性検索部、１５０  不正情報生成部、１５２  変更情報入力部、１６０  検査処理部、１６２  検査情報設定部、１６４  検査実施部、１６６  検査結果判定部、１７２  製品情報収集部、１７４  運用情報特定部、２００  検査対象物、−９０１  ＣＲＴ表示装置、９０２  Ｋ／Ｂ、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０８  データベース、９０９  システムユニット、９１０  サーバ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９１６  外部サーバ、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ＦＡＸ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ、９８０  処理装置、９８２  入力装置、９８４  記憶装置、９８６  表示装置、９８８  通信装置。
【図１】
2007259171.tif 000003
【図２】
2007259171.tif 000004
【図３】
2007259171.tif 000005
【図４】
2007259171.tif 000006
【図５】
2007259171.tif 000007
【図６】
2007259171.tif 000008
【図７】
2007259171.tif 000009
【図８】
2007259171.tif 000010
【図９】
2007259171.tif 000011
【図１０】
2007259171.tif 000012
【図１１】
2007259171.tif 000013
【図１２】
2007259171.tif 000014
【図１３】
2007259171.tif 000015
【図１４】
2007259171.tif 000016
【図１５】
2007259171.tif 000017
【図１６】
2007259171.tif 000018
【図１７】
2007259171.tif 000019
【図１８】
2007259171.tif 000020
【図１９】
2007259171.tif 000021
【図２０】
2007259171.tif 000022
【図２１】
2007259171.tif 000023
【図２２】
2007259171.tif 000024
【図２３】
2007259171.tif 000025
【図２４】
2007259171.tif 000026
【図２５】
2007259171.tif 000027
【図２６】
2007259171.tif 000028
【図２７】
2007259171.tif 000029
【図２８】
2007259171.tif 000030
【図２９】
2007259171.tif 000031
【図３０】
2007259171.tif 000032
【図３１】
2007259171.tif 000033
【図３２】
2007259171.tif 000034
【図３３】
2007259171.tif 000035