JP2007058514A - 情報処理装置及び情報処理方法及びプログラム - Google Patents
情報処理装置及び情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2007058514A JP2007058514A JP2005242533A JP2005242533A JP2007058514A JP 2007058514 A JP2007058514 A JP 2007058514A JP 2005242533 A JP2005242533 A JP 2005242533A JP 2005242533 A JP2005242533 A JP 2005242533A JP 2007058514 A JP2007058514 A JP 2007058514A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- vulnerability information
- information
- vulnerability
- keyword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 多数の脆弱性情報の中から調査対象とすべき脆弱性情報を効果的に選択できるようにする。
【解決手段】 製品DB111及び脆弱性キーワードDB112に脆弱性の特性を示すキーワードを複数記憶させておき、キーワード抽出部152が、脆弱性関連情報収集部151が収集した脆弱性情報から、製品DB111及び脆弱性キーワードDB112に蓄積されているキーワードに合致するキーワードを抽出し、優先度判定部153が、優先度判定DB114の内容に従い、キーワード抽出結果に基づいて脆弱性情報の優先度を判定し、出力部201が、優先度の判定結果を出力する。
【選択図】 図2
【解決手段】 製品DB111及び脆弱性キーワードDB112に脆弱性の特性を示すキーワードを複数記憶させておき、キーワード抽出部152が、脆弱性関連情報収集部151が収集した脆弱性情報から、製品DB111及び脆弱性キーワードDB112に蓄積されているキーワードに合致するキーワードを抽出し、優先度判定部153が、優先度判定DB114の内容に従い、キーワード抽出結果に基づいて脆弱性情報の優先度を判定し、出力部201が、優先度の判定結果を出力する。
【選択図】 図2
Description
本発明は、コンピュータシステム等のセキュリティの脆弱性を示す脆弱性情報、攻撃コードの検知を行うシグネチャ等を管理する装置、方法、プログラムに関する。
近年、ソフトウェアの脆弱性を悪用したコンピュータシステムへの不正アクセスが増加している。シグネチャベースのNIDS(Network based Intrusion Detection System)は有効な対策の一つであるが、次々と発見される脆弱性を悪用する攻撃に対応するため、品質の良いシグネチャの収集及び開発が重要である。
特開2004−54706号公報では、脆弱性情報とシグネチャの収集・配布に関する機能において以下が示されている。
情報収集オペレータは脆弱性情報をインターネットの情報配信サイトやメーリングリストから収集し、専門家が脆弱性情報は日本語に翻訳し、必要かつ有用な情報を付加してセキュリティ脆弱性情報マスターデータベースに登録する。
同オペレータは不正アクセスシグネチャをインターネットの情報配信サイトやメーリングリストから収集し、内容を確認して不正アクセスシグネチャマスターデータベースに登録する。
これらの情報には定量的なランクを付与し判断の参考にする。
セキュリティ脆弱性情報マスターデータベースと不正アクセスシグネチャマスターデータベースのエントリで関連があるものは同じIDで結びつける。また、IDとして可能であれば業界の標準になりつつあるCVE(Common Vulnerabilities and Exposures)のIDを付与する。
上記サーバは、脆弱性情報とシグネチャをエンドユーザのサイトへ、タイムリーに配布する。
特開2004−54706号公報
しかしながら、特開2004−54706号公報では、脆弱性情報の複数ソースからの効率的な収集には触れていない。収集した情報の効果的な蓄積方法については具体的な例示が無く、セキュリティ専門家が人手で行うことが前提であるように示唆されている。また、1つの脆弱性情報ソースからの情報だけでは適切な情報の解析は行えないことが多いため、同じ脆弱性情報について複数ソースから情報を効率よく収集する方法が必要である。
また、特開2004−54706号公報では、一度公開された脆弱性情報における更新情報の効果的な収集方法についても触れられていない。情報が公開されてから危険度が上昇したり、影響を受けるソフトウェア製品が増えたりすることがあり、情報は更新されうるので、更新情報の効果的なフォローが必要である。
また、特開2004−54706号公報では、収集したシグネチャの品質を確認する具体的な方法について触れられていない。また、収集した脆弱性情報からシグネチャを開発する方法について触れられていない。公開されている脆弱性情報全てに対してシグネチャが公開されているとは限らず、また、品質も保証されているとは限らないため、脆弱性情報からシグネチャを新規に開発する方法と、効果的な品質確認方法が必要である。
次に、IDS(Intrusion Detection System)用のシグネチャ開発における問題点を説明する。
先ず、IDS用のシグネチャの開発手順の例を図34に示す。
まず、脆弱性情報の収集(S3)において、脆弱性情報を収集する。Internet上の脆弱性情報のソース100から、一般に公開されている参照可能な脆弱性情報を収集する。Internet上の脆弱性情報のソース100の具体的な例としては、CERT(Computer Emergency Response Team)などがある。或いは、有料情報などから収集しても良いが、何れの場合でも情報ソースにおける使用条件に従うことを前提とする。或いは、シグネチャの開発者自身が発見した脆弱性でも良い。
また、攻撃コードの収集(S8)において、脆弱性情報を悪用した攻撃に関して、攻撃コードを収集する。攻撃コードは必ずしも公開されておらず収集が不可能であることもある。
また、シグネチャの収集(S9)において、脆弱性情報を悪用した攻撃に対応したシグネチャを収集する。既知の脆弱性への攻撃に対応するためのシグネチャが、インターネット上で公開され利用できる場合があるからである。しかし、脆弱性情報によっては、シグネチャが公開されておらず収集が不可能であることもある。なお、公開されているシグネチャを利用する場合も、公開元における使用条件に従うことを前提とする。
次に、脆弱性情報の調査(S4)において、収集した脆弱性情報について、以下の分析を行う。
(A)脆弱性の原因は何か(ソフトウェアのどのような不具合か)
(B)攻撃を受けた場合にどのような不都合が発生するか
(C)脆弱性の存在する製品は何か、存在しない製品は何か
(D)攻撃コードの構成/作用
(E)派生の攻撃の可能性
(F)脆弱性情報の通り実際に攻撃が再現するか
(G)対処策は何か
次に、シグネチャの開発(S5)において、脆弱性情報の分析結果を元に、攻撃の手法を判断し、攻撃を検知できるシグネチャを開発する。このとき、既にインターネット上で公開されているシグネチャを参考にすることも考えられる。
(A)脆弱性の原因は何か(ソフトウェアのどのような不具合か)
(B)攻撃を受けた場合にどのような不都合が発生するか
(C)脆弱性の存在する製品は何か、存在しない製品は何か
(D)攻撃コードの構成/作用
(E)派生の攻撃の可能性
(F)脆弱性情報の通り実際に攻撃が再現するか
(G)対処策は何か
次に、シグネチャの開発(S5)において、脆弱性情報の分析結果を元に、攻撃の手法を判断し、攻撃を検知できるシグネチャを開発する。このとき、既にインターネット上で公開されているシグネチャを参考にすることも考えられる。
次に、シグネチャの検査(S6)において、開発したシグネチャが攻撃を検知できるか、実際に使用するIDSに組み込み、攻撃コードをIDSに流して検査する。
最後に、脆弱性調査結果/シグネチャの公開(S7)において、脆弱性情報の分析結果やエンドユーザ向けにヘルプファイル化した情報とIDSに組み込むためのシグネチャをリリースする。
以上が、IDS用のシグネチャの開発手順であるが、以下の課題が存在する。
(1)脆弱性情報の収集に関する課題
インターネット上で報告されている脆弱性情報は非常に数が多く、様々な製品に対し、様々な危険度の情報が報告され、かつ情報の信頼性も様々である。この様に、公開されている脆弱性情報を収集し対応すべき脆弱性情報を効率よく選択することが困難であるという課題が存在する。
(1)脆弱性情報の収集に関する課題
インターネット上で報告されている脆弱性情報は非常に数が多く、様々な製品に対し、様々な危険度の情報が報告され、かつ情報の信頼性も様々である。この様に、公開されている脆弱性情報を収集し対応すべき脆弱性情報を効率よく選択することが困難であるという課題が存在する。
また、1つの脆弱性情報ソースからの情報だけでは適切な情報の解析は行えないことが多いため、同じ脆弱性情報について複数ソースから情報を効率よく収集する必要がある。
また、情報が公開されてから危険度が上昇したり、影響を受けるソフトウェア製品が増えたりすることがあり、情報は更新されうるので、更新情報の効果的なフォローを行う必要がある。
(2)シグネチャの開発に関する課題
公開されている脆弱性情報全てに対して利用可能なシグネチャが公開されているとは限らないため、脆弱性情報からシグネチャを新規に効率よく開発することが必要である。
(2)シグネチャの開発に関する課題
公開されている脆弱性情報全てに対して利用可能なシグネチャが公開されているとは限らないため、脆弱性情報からシグネチャを新規に効率よく開発することが必要である。
また、シグネチャの開発においては開発者のノウハウに依存することが多く、過去に開発したシグネチャを再利用しシグネチャの開発効率を上げることが必要である。
(3)シグネチャの検証に関する課題
1つの攻撃を複数のシグネチャで検知してしまう場合があり、攻撃とシグネチャの対応が1対1とならない場合は、IDSにおいて受けた攻撃に対応した警告が通知されず対処を誤る可能性がある。
(3)シグネチャの検証に関する課題
1つの攻撃を複数のシグネチャで検知してしまう場合があり、攻撃とシグネチャの対応が1対1とならない場合は、IDSにおいて受けた攻撃に対応した警告が通知されず対処を誤る可能性がある。
また、公開されている利用可能なシグネチャを使用したり流用する場合でも、品質が保証されているとは限らないため、効果的な品質確認が必要である。
本発明は、上記の課題を解決することを主な目的としており、脆弱性情報の効率の良い収集・選別・優先度付け、効率の良いシグネチャ開発の支援、シグネチャの品質確認を実現することを主な目的としている。
本発明に係る情報処理装置は、
脆弱性の特性を示すキーワードが一つ以上含まれる脆弱性情報を取得する脆弱性情報取得部と、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
前記脆弱性情報取得部により取得された脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部と、
前記キーワード抽出部によるキーワード抽出結果に基づいて、前記脆弱性情報取得部により取得された脆弱性情報に対する優先度を判定する優先度判定部とを有することを特徴とする。
脆弱性の特性を示すキーワードが一つ以上含まれる脆弱性情報を取得する脆弱性情報取得部と、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
前記脆弱性情報取得部により取得された脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部と、
前記キーワード抽出部によるキーワード抽出結果に基づいて、前記脆弱性情報取得部により取得された脆弱性情報に対する優先度を判定する優先度判定部とを有することを特徴とする。
本発明によれば、脆弱性情報に含まれるキーワードを抽出し、キーワード抽出結果に基づいて脆弱性情報の優先度を設定するため、重要な情報が含まれた脆弱性情報の優先度を高く設定することができ、このため、多数の脆弱性情報の中から調査対象とすべき脆弱性情報を効果的に提示することができる。
実施の形態1.
本実施の形態は、上記の(1)脆弱性情報の収集に関する課題を解決することを主な目的としている。
本実施の形態は、上記の(1)脆弱性情報の収集に関する課題を解決することを主な目的としている。
図1は、本実施の形態に係るシグネチャ開発支援装置(情報処理装置)1の構成例を示する図である。
シグネチャ開発支援装置1は、脆弱性関連情報収集部151と、脆弱性情報処理部200と、シグネチャ・攻撃コード処理部300から構成される。
脆弱性関連情報収集部151は、Internet上の脆弱性情報のソース100から脆弱性情報、シグネチャ、攻撃コードなどを収集する。本実施の形態では、脆弱性関連情報収集部151は脆弱性情報取得部の例である。
脆弱性情報処理部200は、脆弱性関連情報収集部151により収集された脆弱性情報に対する処理を行う。
シグネチャ・攻撃コード処理部300は、脆弱性関連情報収集部151により収集されたシグネチャや攻撃コードに対する処理を行う。なお、本実施の形態に示す動作を実現するには、シグネチャ・攻撃コード処理部300は必ずしも必要なく、シグネチャ・攻撃コード処理部300は、別装置としてもよい。なお、本実施の形態では、シグネチャ・攻撃コード処理部300の説明は行わず、後の実施の形態において説明する。
次に、図2を参照して、脆弱性情報処理部200の内部構成例を説明する。
図2において、製品データベース(DB)111は、調査対象の製品情報を蓄積する。脆弱性キーワードデータベース(DB)112は、脆弱性の性質を特定するキーワードを蓄積する。
製品DB111は、OS_A(オペレーティングシステムA)、 OS_B(オペレーティングシステムB)、WEBサーバA、WebサーバB、 library_xx、DBサーバA、DBサーバB・・・といった製品に関する情報が蓄積されている。
脆弱性キーワードDB112には、脆弱性の特徴(メモリリーク、無限ループ、異常終了、無応答、バイパス、判定ミス、不整合、ASN.1、PKI、証明書、暗号、署名、エンコード、デコード、画像、テキスト、サーバ、クライアント・・・)、攻撃種別(バッファオーバフロー、不正なプログラムの実行、権限の取得、権限の昇格、DoS、XSS、システム情報の漏洩・・・)、通信プロトコル(HTTP、SMB、FTP・・・)、セキュリティ技術(SSL、SSH、VPN・・・)、プログラム分類(Webサーバ、ブラウザ、ライブラリ、データベース、OS)といった脆弱性の情報が蓄積されている。
なお、製品DB111及び脆弱性キーワードDB112に記憶されている情報は、脆弱性の特性を示すキーワードの例である。このキーワードは多くの脆弱性情報に共通で含まれるものを予め選択する。そして、これらキーワードを複数記憶している製品DB111及び脆弱性キーワードDB112は、キーワードデータベースの例である。
次に、脆弱性情報DB113は、脆弱性関連情報収集部151により収集された公開されている脆弱性情報121を蓄積する。
脆弱性情報には、製品DB111及び脆弱性キーワードDB112で蓄積されているキーワードのいずれか一つ以上が含まれている。また、脆弱性情報DB113のエントリには調査結果などを反映することが可能である。脆弱性情報DB113DBのエントリは例えば以下の通りである。
脆弱性情報ID、脆弱性の内容、危険度、攻撃の種類、対象製品(影響を受ける製品)、非対象製品(影響を受けない製品)、パッチ情報、見解
キーワード抽出部152は、脆弱性情報から脆弱性キーワードDB112の登録キーワード及び製品DB112の登録キーワード(製品名)に合致するキーワードを抽出する。
キーワード抽出部152は、脆弱性情報から脆弱性キーワードDB112の登録キーワード及び製品DB112の登録キーワード(製品名)に合致するキーワードを抽出する。
優先度判定DB114は、脆弱性情報の優先度を決定するための情報を保持する。
優先度判定部153は、収集した脆弱性情報に対して優先度判定DB114を利用し、キーワードの抽出結果に基づいて、調査の優先度を設定する。
出力部201は、優先度判定部153により判定された優先度を出力(表示)する。
次に、図3を参照して、具体的な動作について説明する。
まず、ステップS301において、脆弱性関連情報収集部151を用いて公開されている脆弱性情報121を収集し(脆弱性情報取得ステップ)、ステップS302において、脆弱性情報DBに一次蓄積する(複数可能)。ここで、脆弱性関連情報収集部151は、Internet上の脆弱性情報を公開しているWebサイトや、メーリングリストから脆弱性情報を収集する。
Webサイトからの収集については、HTTPクライアントツールを利用し専用のHTTPクライアントプログラムを開発・運用してWebサイトから定期的・自動的に情報を収集し、さらに、収集した脆弱性情報から必要な項目を取り出すプログラムを開発・運用すれば、定期的・自動的に情報を収集することが可能である。収集の周期は1日、1週間など、ユーザが設定できる機能を備えてよい。また、GUI(Graphical User Interface)を備え、自動ではなくマニュアル操作で収集するように実装しても良い。
メーリングリストからの収集については、情報収集用メールアカウントをメーリングリストに登録し、メーリングリストから得られたメールのデータから、必要な脆弱性情報の項目を取り出すプログラムを開発・運用すれば定期的・自動的に情報を収集することが可能である。収集の周期は1日、1週間など、ユーザが設定できる機能を備えてよい。また、GUIを備え、自動ではなくマニュアル操作で収集するように実装しても良い。
つまり、脆弱性関連情報収集部151は、Webサイトやメーリングリストから収集するための上記プログラム等により収集の機能を実装するようにしてもよい。
また、脆弱性関連情報収集部151は、Webサイトやメーリングリストから収集したデータを脆弱性情報DBに蓄積するため、脆弱性情報DBに対応したデータフォーマット変換を行う機能とDBアクセス機能を具備するものとする。
次に、ステップS303において、キーワード抽出部152を用い、収集した公開されている脆弱性情報121の1つから、脆弱性を特定するキーワードと製品に関するキーワードを抽出する(キーワード抽出ステップ)。前述したように、脆弱性情報には、脆弱性キーワードDB112及び製品DB111に蓄積されているキーワードに一致するキーワードが含まれているので、キーワード抽出部152は、脆弱性情報からキーワードを抽出することができる。
この結果、脆弱性キーワードDB112に登録されているキーワードに一致する特徴や製品DB111に登録されている製品名(バージョン)が抽出され、脆弱性の特徴122a、攻撃の種類122b、対象製品122c等が特定される。
なお、脆弱性情報が英文で提供される場合は、上記のキーワード、製品情報について同等の英単語で登録しておく。
次に、ステップS304において、優先度判定部153がこれらのキーワードから調査対象とする脆弱性情報の優先度を判定する(優先度判定ステップ)。優先度判定の例を以下に記述する。
(1)ポイント付与による優先度決定方法
例えば、優先度判定DB114には上記情報に対してあらかじめ定めたポイントを記録しておく。
(1)ポイント付与による優先度決定方法
例えば、優先度判定DB114には上記情報に対してあらかじめ定めたポイントを記録しておく。
具体的には、以下のようなポイント設定が考えられる。
攻撃種別:不正なプログラムの実行(5点)、権限の昇格(4点)、DoS(3点)、XSS(2点)、システム情報の漏洩(1点)
通信プロトコル:HTTP(5点)、SMB(4点)、FTP(3点)
セキュリティ技術:SSL(5点)、VPN(4点)
製品:OS_A(5点)、OS_B(5点)、WebサーバA(4点)、WebサーバB(4点)、DBサーバA(3点)、DBサーバB(2点)
脆弱性情報から抽出したキーワードが、“不正なプログラムの実行、HTTP、SSL、WebサーバA”であった場合、優先度判定DBにおけるそれぞれの情報に対するポイントを加算し総合ポイントを算出する(この場合は、5+5+5+4=19点)。このように、収集した脆弱性情報全てに対して総合ポイントの付与を行うことで自動的に脆弱性情報の優先度づけを行うことが可能である。
通信プロトコル:HTTP(5点)、SMB(4点)、FTP(3点)
セキュリティ技術:SSL(5点)、VPN(4点)
製品:OS_A(5点)、OS_B(5点)、WebサーバA(4点)、WebサーバB(4点)、DBサーバA(3点)、DBサーバB(2点)
脆弱性情報から抽出したキーワードが、“不正なプログラムの実行、HTTP、SSL、WebサーバA”であった場合、優先度判定DBにおけるそれぞれの情報に対するポイントを加算し総合ポイントを算出する(この場合は、5+5+5+4=19点)。このように、収集した脆弱性情報全てに対して総合ポイントの付与を行うことで自動的に脆弱性情報の優先度づけを行うことが可能である。
毎回収集される脆弱性情報を、逐次、脆弱性情報DB113に蓄積し、優先度付けを常に行うことで、蓄積された全ての脆弱性情報において、その時点で常に優先度の自動付与が可能である。
(2)相対比較による優先度決定方法
また、優先度の判定を総合ポイントによる比較ではなく、キーワードを複数のカテゴリに分類し、各カテゴリにおける優先順位で脆弱性情報の優先度をソートし、全てのカテゴリにおいて上位に含まれる脆弱性情報を絞り込み優先順位付けする方法でもよい。この場合、優先度判定DB114においては各カテゴリ別に優先順位を決めておく。
(2)相対比較による優先度決定方法
また、優先度の判定を総合ポイントによる比較ではなく、キーワードを複数のカテゴリに分類し、各カテゴリにおける優先順位で脆弱性情報の優先度をソートし、全てのカテゴリにおいて上位に含まれる脆弱性情報を絞り込み優先順位付けする方法でもよい。この場合、優先度判定DB114においては各カテゴリ別に優先順位を決めておく。
具体的な優先順位付けは、例えば、以下のとおりである。
攻撃種別:不正なプログラムの実行>権限の昇格>DoS>XSS>システム情報の漏洩
通信プロトコル:HTTP>SMB>Samba、FTP
セキュリティ技術:SSL>SSH>VPN
製品:OS_A、 OS_B>WEBサーバA、WebサーバB>DBサーバA>DBサーバB
ここでは、脆弱性情報について上位2つを選出する例を挙げる。例として、脆弱性情報A、B、C、D、Eについて脆弱性キーワードDB112等にマッチするキーワードを抽出した結果、図4のように整理されたとする。
通信プロトコル:HTTP>SMB>Samba、FTP
セキュリティ技術:SSL>SSH>VPN
製品:OS_A、 OS_B>WEBサーバA、WebサーバB>DBサーバA>DBサーバB
ここでは、脆弱性情報について上位2つを選出する例を挙げる。例として、脆弱性情報A、B、C、D、Eについて脆弱性キーワードDB112等にマッチするキーワードを抽出した結果、図4のように整理されたとする。
次に各カテゴリについて、優先度判定DB114で定義された優先順位に基づき、図5に示すように、優先度の順位をつける。
最後に各カテゴリにおいて上位2位内に登場した回数を計上する。
この結果、図6に示すように、B、Cの順番に優先度が高いものが2つ選出された。
なお、図6のD、Eのように同順位の脆弱性情報が存在する場合は、同順位の脆弱性情報同士を比較する場合の、カテゴリ同士の優先順位を決めておき、優先度を決定してもよい。例えば、図6の結果において同順位の脆弱性情報同士を比較する場合に限り、攻撃種別の優先順位が高い>製品の優先順位が高いとあらかじめ定義しておけば、攻撃種別の優先順位が高い(D)>製品の優先順位が高い(E)であり、攻撃種別においてはDの方が優先度が高いのでDの優先度を高くする。この結果、B、C、D、E、Aという順位が得られる。
最後に、ステップS305において、優先度の判定結果は、優先度付与結果として出力部201から出力される。当結果は、脆弱性情報DBのエントリに優先度順位として記録されてもよいし、別表で出力しても良い。
このように、優先度判定DB114において事前に優先度付けのルール付けを決め、収集される脆弱性情報を、随時、脆弱性情報DB113に蓄積する。あるタイミングで、前回の調査対象に漏れた情報と、新規に追加蓄積された情報を、全て併せて優先度付けのルールを適用することで、常に優先度の高い脆弱性情報を自動的に選出することが可能である。
例えば、毎週、調査対象の件数が決まっている場合に、過去の脆弱性情報から最新の脆弱性情報まで併せて、常に優先度の高い脆弱性情報を自動的に調査対象に選定することが可能となる。
調査対象にならなかった脆弱性情報において、次回の選定時に優先的に調査を行いたい場合は、その脆弱性情報に対して最優先であるフラグを付与しておき、次回の選定時に最優先として選択すればよい。
以上の処理により優先度が判定された後は、シグネチャの開発者が、優先度付与結果に基づき、優先度の高い脆弱性情報の詳細調査を行う。
例えば、1週間に3件の脆弱性情報を調査する場合は、脆弱性情報DB113で優先度順位付けがされた上位3つの情報を選択すればよい。
その後、脆弱性情報の詳細調査の結果を、脆弱性情報DBの該当エントリに修正反映する。当作業はGUIを利用した手作業である。
例えば、脆弱性情報DBには以下のデータが保存される。
タイトル(日付:YYYY/MM/DD)、脆弱性情報ID、件名、要約、攻撃の分類、危険度、リモートからの攻撃か否か、攻撃コードの有無、影響を受ける製品、影響を受けない製品、詳細、原因の分類、対策、検証方法、検証結果、参考文献
また、必要があれば、日本語に翻訳する。
また、必要があれば、日本語に翻訳する。
詳細には、脆弱性の原因、攻撃の手法など調査した結果を記述する。
対策には、パッチの適用やIDSによる検知などを記述する。
また、脆弱性情報DB113への反映結果に基づき、シグネチャの開発者が、脆弱性を悪用した攻撃を検出するIDS用のシグネチャを開発するようにしてもよい。開発した結果は、シグネチャ・攻撃コード処理部300のシグネチャデータベース(DB)(後述)に登録する。シグネチャDBには以下のデータが保存される。
シグネチャID、概要、検知条件、シグネチャ、シグネチャの動作条件、誤検知、取りこぼし、参考文献、脆弱性情報ID、攻撃コードID
脆弱性情報IDは、シグネチャが検出する攻撃に対応した脆弱性情報のIDであり、脆弱性情報DB113の該当エントリを指すものである。
脆弱性情報IDは、シグネチャが検出する攻撃に対応した脆弱性情報のIDであり、脆弱性情報DB113の該当エントリを指すものである。
攻撃コードIDは、攻撃に利用されるコードがインターネット上から入手されることがあり、攻撃コードDB(後述)に蓄積している場合の該当エントリを指すものである。シグネチャが検出する攻撃コードを攻撃コードDB上のエントリで指す場合に指定する。
このように、脆弱性情報DB113とシグネチャDBと攻撃コードDBのエントリ間のリンクを指定するために、各々、脆弱性情報ID、シグネチャID、攻撃コードIDをエントリに含めてもよい。
以上が、収集した脆弱性情報を自動的に優先度付与/選定し、シグネチャを開発するまでの実施の形態であるが、ここでは、派生的な、脆弱性情報の優先度判定の効率化の例を挙げる。
優先度判定部153は、調査対象の脆弱性情報の選定を効率化するために、過去1年間以内に生成された脆弱性情報以外は調査対象外とするなど、生成日からの経過時間で選定対象から足きりしても良い。
この場合は、脆弱性情報に、脆弱性情報の生成日(あるいは公開日)に関するキーワードを含ませ、脆弱性キーワードDB113にも生成日に関するキーワードを含ませることで、キーワード抽出部152が、生成日に関するキーワードを抽出し、優先度判定部153は、生成日に基づいて、脆弱性情報が生成されてからの経過時間を算出し、算出した経過時間が一定レベル(例えば、1年)を超過している場合は、優先度付与の対象としないことで、調査対象外とすることができる。
また、同様に選定を効率化するために、キーワードの検出の結果、製品DB111に存在しない製品は、調査対象外とし、選定対象から足きりしても良い。或いは、製品DB111において選定対象外の製品をリストで保持し、検出されたキーワードが一致したら、選定対象から足きりしても良い。
また、同様に選定を効率化するために、Internet上の脆弱性情報のソース100において判断された危険度情報がある場合は、キーワード抽出部152が、当該危険情報をキーワードとして抽出し、例えば5段階評価(大変危険、危険、中程度、それほど危険ではない、危険ではない)であれば下位2つを選定対象から足きりする、という方法でも良い。
また、優先度判定の精密化のために、優先度判定部153は、脆弱性が報告されてからの経過時間を優先度の判定の際に考慮するようにしてもよい。
この場合は、前述したように、脆弱性情報に、脆弱性情報の生成日(あるいは公開日)に関するキーワードを含ませ、脆弱性キーワードDB113にも生成日に関するキーワードを含ませることで、キーワード抽出部152が、生成日に関するキーワードを抽出し、優先度判定部153は、生成日に基づいて、脆弱性情報が生成されてからの経過時間を算出する。
そして、ポイント付与による優先度決定方法においては、例えば、以下のように経過時間が長くなるほど数値が低くなるポイントを決めておいて、優先度を判定するようにする。
最近2週間以内(5点)、最近4週間以内(4点)、最近2ヶ月以内(3点)、最近3ヶ月以内(4点)、最近半年以内(1点)、半年以上(0点)
また、これとは逆に、経過時間が長くなるほど数値が高くなるポイントを決めておいて、優先度を判定するようにしてもよい。
また、これとは逆に、経過時間が長くなるほど数値が高くなるポイントを決めておいて、優先度を判定するようにしてもよい。
また、相対比較による優先度決定方法においては、例えば、以下のように経過時間が長くなるほど順位が低くなる優先順位を決めておいて、優先度を判定するようにする。
最近2週間以内>最近4週間以内>最近2ヶ月以内>最近3ヶ月以内>最近半年以内>半年以上
また、これとは逆に、経過時間が長くなるほど順位が高くなる優先順位を決めておいて、優先度を判定するようにしてもよい。
また、これとは逆に、経過時間が長くなるほど順位が高くなる優先順位を決めておいて、優先度を判定するようにしてもよい。
また、優先度判定部153は、脆弱性情報のソースにおいて判断された危険度情報を用いて優先度を判定してもよい。
この場合は、前述のように、キーワード抽出部152が、脆弱性情報から、当該危険情報をキーワードとして抽出し、優先度判定部153は、ポイント付与による優先度決定方法においては、例えば、以下のように危険度が大きくなるほど数値が大きくなるポイントを決めておいて、優先度を判定するようにする。
大変危険(5点)、危険(4点)、中程度(3点)、それほど危険ではない(2点)、危険ではない(1点)
また、相対比較による優先度決定方法においては、例えば、以下のように危険度が大きくなるほど順位が高くなる優先順位を決めておいて、優先度を判定するようにする。
また、相対比較による優先度決定方法においては、例えば、以下のように危険度が大きくなるほど順位が高くなる優先順位を決めておいて、優先度を判定するようにする。
大変危険>危険>中程度>それほど危険ではない>危険ではない
以上のように、本実施の形態では、製品DB111及び脆弱性キーワードDB112に脆弱性の特性を示すキーワードを複数記憶させておき、キーワード抽出部152が、脆弱性関連情報収集部151が収集した脆弱性情報から、製品DB111及び脆弱性キーワードDB112に蓄積されているキーワードに合致するキーワードを抽出し、優先度判定部153が、優先度判定DB114の内容に従い、キーワード抽出結果に基づいて脆弱性情報の優先度を判定し、出力部201が、優先度の判定結果を出力する。
以上のように、本実施の形態では、製品DB111及び脆弱性キーワードDB112に脆弱性の特性を示すキーワードを複数記憶させておき、キーワード抽出部152が、脆弱性関連情報収集部151が収集した脆弱性情報から、製品DB111及び脆弱性キーワードDB112に蓄積されているキーワードに合致するキーワードを抽出し、優先度判定部153が、優先度判定DB114の内容に従い、キーワード抽出結果に基づいて脆弱性情報の優先度を判定し、出力部201が、優先度の判定結果を出力する。
本実施の形態によれば、脆弱性情報に含まれるキーワードを抽出し、キーワード抽出結果に基づいて脆弱性情報の優先度を設定するため、重要な情報が含まれた脆弱性情報の優先度を高く設定することができ、このため、多数の脆弱性情報の中から調査対象とすべき脆弱性情報を効果的に提示することができる。
実施の形態2.
実施の形態1は、収集した脆弱性情報の優先度の判定を自動化することにより、調査対象の選定の効率化を実現するものであった。
実施の形態1は、収集した脆弱性情報の優先度の判定を自動化することにより、調査対象の選定の効率化を実現するものであった。
本実施の形態では、脆弱性情報の調査にあたり、複数の情報ソースから効率的に脆弱性情報を充実化するものである。
脆弱性情報の提供ソースごとに、提供する情報に特徴がある。例えば、一般的に広く利用されているソフトウェア製品について網羅性が高く一早く情報を提供しているソースや、脆弱性の存在する製品についてバージョン、エディション、サービスパックなどきめ細かに情報を提供しているソースなどである。
つまり、脆弱性情報を単一のソースから収集するよりも、同じ脆弱性情報について複数のソースから収集して情報をマージした方がより情報が充実する(実際に、あるソースでは、攻撃手法の情報が詳細であるが、脆弱性の存在する製品の情報が不足しているなど、複数ソースからの情報をマージする必要がある、という事態は起きている)。
そこで、本実施の形態においては、脆弱性関連情報収集部151において、提供情報に特徴のあるソースを複数指定・収集し、不足する情報を相互補完することで脆弱性情報の信頼性を高め収集効率を上げる方法を記述する。
図7は、本実施の形態に係るシグネチャ開発支援装置1の一部の機能を抜粋したものである。
図7において、脆弱性情報リンク部251が追加されている。脆弱性情報リンク部251は、複数の情報ソースから収集された複数の脆弱性情報のうち、キーワード抽出結果において共通関係にある二以上の脆弱性情報を相互に対応付ける機能を有する。脆弱性情報リンク部251は、脆弱性情報対応付け部の例である。
また、本実施の形態では、脆弱性関連情報収集部151は、ソースA、ソースB、ソースCから情報を収集する。各ソースは次の特徴を持つと仮定する。
ソースAからの情報121a:重要な製品の情報の網羅性が高い
ソースBからの情報121b:脆弱性の存在する/しない製品についての情報がきめ細かい
ソースCからの情報121c:参照情報が豊富である
なお、これらのソースから入手される情報の一部は、重複している場合が多い。
ソースBからの情報121b:脆弱性の存在する/しない製品についての情報がきめ細かい
ソースCからの情報121c:参照情報が豊富である
なお、これらのソースから入手される情報の一部は、重複している場合が多い。
次に、図9を参照して、動作を説明する。
まず、ステップS901において、脆弱性関連情報収集部151を用いて公開されている脆弱性情報121を収集し(脆弱性情報取得ステップ)、ステップS302において、脆弱性情報DBに一次蓄積する。ここで、図7に示すように、脆弱性関連情報収集部151は、公開されている複数の脆弱性情報121a、121b、121cを取得する。
脆弱性情報121a、121b、121cはそれぞれ以下の情報構成とする。
脆弱性情報121a:A−1、A−2、A−3
脆弱性情報121b:B−1、B−2
脆弱性情報121c:C−1、C−2
ここで、A−1、A−2、A−3はそれぞれソースAで報告された3つの脆弱性情報を表す。B−1、B−2はそれぞれソースBで報告された2つの脆弱性情報を表す。C−1、C−2はそれぞれソースCで報告された2つの脆弱性情報を表す。
次に、ステップS903において、キーワード抽出部152を用い、収集した公開されている脆弱性情報のそれぞれから、脆弱性を特定するキーワードと製品に関するキーワードを抽出する(キーワード抽出ステップ)。この結果、各情報を識別するための特徴的な情報が抽出される。抽出された結果は、脆弱性情報DB113のエントリの1要素として記録する。
脆弱性情報121b:B−1、B−2
脆弱性情報121c:C−1、C−2
ここで、A−1、A−2、A−3はそれぞれソースAで報告された3つの脆弱性情報を表す。B−1、B−2はそれぞれソースBで報告された2つの脆弱性情報を表す。C−1、C−2はそれぞれソースCで報告された2つの脆弱性情報を表す。
次に、ステップS903において、キーワード抽出部152を用い、収集した公開されている脆弱性情報のそれぞれから、脆弱性を特定するキーワードと製品に関するキーワードを抽出する(キーワード抽出ステップ)。この結果、各情報を識別するための特徴的な情報が抽出される。抽出された結果は、脆弱性情報DB113のエントリの1要素として記録する。
ここで、それぞれの脆弱性情報のキーワード抽出結果を図8に示すとおりとする。
ソースAからの脆弱性情報のキーワード抽出結果311a:A−1s、A−2s、A−3s
ソースBからの脆弱性情報のキーワード抽出結果311b:B−1s、B−2s
ソースCからの脆弱性情報のキーワード抽出結果311c:C−1s、C−2s
図8の301はソースAからの脆弱性情報121aの内、A−1の元情報を保持しており、脆弱性情報DB113のエントリである。これに対して、311aのA−1sは、キーワード抽出部152にA−1の元情報を適用した結果である。A−1sを脆弱性情報DB113で管理できるように、301の情報の一部として追記しておく。
ソースBからの脆弱性情報のキーワード抽出結果311b:B−1s、B−2s
ソースCからの脆弱性情報のキーワード抽出結果311c:C−1s、C−2s
図8の301はソースAからの脆弱性情報121aの内、A−1の元情報を保持しており、脆弱性情報DB113のエントリである。これに対して、311aのA−1sは、キーワード抽出部152にA−1の元情報を適用した結果である。A−1sを脆弱性情報DB113で管理できるように、301の情報の一部として追記しておく。
次に、ステップS904において、脆弱性情報リンク部251が、キーワードの共通性に基づいて、各脆弱性情報をリンクする(脆弱性情報対応付けステップ)。具体的なリンク手順は、後で説明する。
次に、ステップS905において、優先度設定部153が、脆弱性情報リンク部251によるリンク結果を考慮しながら優先度を設定し、ステップS906において、出力部201が、優先度を出力する。
次に、脆弱性情報リンク部251による脆弱性情報のリンク手順の詳細を説明する。
例えば、A−3に、“アプリケーションAP_xにおける脆弱性で、CGIに不具合があり、XSSの脆弱性が存在する。共通IDはID00002である。”という内容の情報がテキストで示されていた場合に、キーワード抽出部152において、以下の特徴が抽出される。
A−3s.CGI、境界値チェック/XSS/AP_x/05/01/06/ID0002
同様に、B−2、C−2の特徴が以下の様に抽出されたとする。
同様に、B−2、C−2の特徴が以下の様に抽出されたとする。
B−2s.CGI、境界値チェック/XSS/AP_x1.0、1.1、1.2/05/01/06/ID0002
C−2s.CGI、境界値チェック/XSS/AP_x/05/01/06/ID0002
これらの情報には、脆弱性情報を識別する共通IDが付与されており、ID0002である。例えば、CVEなどで付与されるIDが該当する。
C−2s.CGI、境界値チェック/XSS/AP_x/05/01/06/ID0002
これらの情報には、脆弱性情報を識別する共通IDが付与されており、ID0002である。例えば、CVEなどで付与されるIDが該当する。
これらの結果が脆弱性情報リンク部251入力される。脆弱性情報リンク部251は、A−3s、B−2s、C−2sの抽出された特徴(キーワード)から、共通IDの一致を確認し、一致した場合は、それぞれの脆弱性情報をリンクする。
この場合は、ID0002がA−3s、B−2s、C−2s全てに含まれるので、同内容の情報と判定し、それぞれの脆弱性情報をリンクする。
なお、全てのソースに同じ共通IDが付与される必要はない。例えば、以下の例では、ソースAからのA−10s、ソースBからのB−9s、ソースCからのC−51sは、それぞれ同じ脆弱性情報を示している。また、A−10sは参照情報のIDとしてB−9sを参照している。B−9sは参照情報のIDとしてCVE0001とC−51sを参照している。C−51sには参照するIDは無い。
A−10s ・・・ B−9s・・・
B−9s ・・・ CVE00001、C−51・・・
C−51s ・・・ ID無し・・・
例えば、ソースAが参照サイトとしてソースBを参照していたり、ソースBが参照サイトとしてソースCを参照している場合は、上記の様な情報が提供される。A−10とC−51は直接お互いに参照していないが、B−9の参照を介して同じ情報であると判断できる。
B−9s ・・・ CVE00001、C−51・・・
C−51s ・・・ ID無し・・・
例えば、ソースAが参照サイトとしてソースBを参照していたり、ソースBが参照サイトとしてソースCを参照している場合は、上記の様な情報が提供される。A−10とC−51は直接お互いに参照していないが、B−9の参照を介して同じ情報であると判断できる。
この様に、各々に含まれる参照している情報のIDを辿ることで、それぞれ同じ情報を示していると判断でき、リンクすることが可能である。なお、IDの情報は参考文献に示されるURL内に含まれることもある。
次に、お互いをリンクするためのID情報が記載されていない場合の重複の判断方法を示す。
まず、これらの脆弱性情報をキーワード検出部152に適用する。この結果、各情報を識別するための特徴的な情報が抽出される。
例えば、A−1は、“OS_xにおける脆弱性で、画像(JPEG)ファイルを取り扱う機能に不具合があり、特定の画像ファイルを読み込むとメモリリークを発生する。原因は画像の大きさを判断する境界の判断に不具合があるからである。”という内容の情報を示している。A−1の脆弱性情報をキーワード検出部152に適用した結果、以下の情報が抽出されたとする。
A−1s:メモリリーク、JPEG、境界/DoS/OS_x/05/01/05/ID無し
同様に、B−1は同じ内容を示しているが、脆弱性情報をキーワード検出部152に適用した結果は、以下のキーワードが抽出されたとする。ここで、A−1のキーワード抽出結果とは、影響を受ける製品の情報が細かい点と、共通IDが付与されている点が異なる。
同様に、B−1は同じ内容を示しているが、脆弱性情報をキーワード検出部152に適用した結果は、以下のキーワードが抽出されたとする。ここで、A−1のキーワード抽出結果とは、影響を受ける製品の情報が細かい点と、共通IDが付与されている点が異なる。
B−1s:メモリリーク、JPEG/DoS/OS_x、OS_y、OS_z/05/01/05/ID0001
これらの結果は、脆弱性情報リンク部251に入力される。脆弱性情報リンク部251は、A−1、B−1から抽出された特徴(キーワード)であるA−1s/B−1sから、A−1とB−1が同じ内容を示しているか判断するために、予め設定してある「情報の一致を判定するための比較基準」と照合する。例えば、「脆弱性の特徴+攻撃の種類+報告日」を比較し一致すれば重複する情報と判定する。
これらの結果は、脆弱性情報リンク部251に入力される。脆弱性情報リンク部251は、A−1、B−1から抽出された特徴(キーワード)であるA−1s/B−1sから、A−1とB−1が同じ内容を示しているか判断するために、予め設定してある「情報の一致を判定するための比較基準」と照合する。例えば、「脆弱性の特徴+攻撃の種類+報告日」を比較し一致すれば重複する情報と判定する。
ここで、A−1sとB−1sは、
特徴:メモリリーク、JPEG
攻撃の種類:DoS
報告日:05/01/05
が一致するため、A−1、B−1は同じ内容として判断され、リンクされる。
特徴:メモリリーク、JPEG
攻撃の種類:DoS
報告日:05/01/05
が一致するため、A−1、B−1は同じ内容として判断され、リンクされる。
なお、B−1において特徴に“境界”が含まれておりA−1では含まれていないが、キーワードの一致率が何パーセントを超えたら一致とみなすという基準は別途設けておけばよい。
「情報の一致を判定するための比較基準」は、単一でも良いし、複数の基準の組み合わせでも良い。例えば、脆弱性の特徴のみでも良いし、脆弱性の特徴と攻撃の種類の2つを組み合わせても良い。
報告日(脆弱性情報の生成日)による比較についても、報告日に幅を持たせて比較しても良い。例えば、A−1の場合、05/01/05が報告日であるが、他のソースにおいて報告日がずれることがある。例えば、「Aの報告日の前後3日以内に一致するもの」という比較でも良い。
また、上記の例では、「ある一定の期間において収集した各ソースの情報を比較する」ことにしているが、リンク可能な情報の検索範囲は、1週間内に収集した情報でも良いし、脆弱性情報DBに蓄積済みのものを過去1年に遡って検索しても良い。
このように、複数のソースから得られた脆弱性情報において同じ情報についてのリンクを行う。同じ情報であることの判定方法は2種類あり、IDによる判定と、キーワード抽出による類似度判定による判定であった。
次にリンクの具体的な例を図10に示す。
A−1とB−1をリンクする場合、A−1sが格納されているDBエントリ401(A−1の元情報も格納されている)に対して、B−1sのDBエントリ403(B−1の元情報も格納されている)の中の「影響を受ける/受けない製品」の情報を抽出して反映(上書きなど)する。
同様に、A−3、B−2、C−2をリンクする場合、A−3sのDBエントリ402(A−3の元情報も格納されている)に対して、B−2sのDBエントリ404(B−2の元情報も格納されている)の中の「影響を受ける/受けない製品」の情報を抽出して反映(上書きなど)する。さらに、C−2sのDBエントリ405(C−2の元情報も格納されている)の中の参照情報を抽出して反映(上書きなど)する。
或いは、図5の501のように、A−1の情報とリンクするB−1の情報を並列に記述、A−3の情報に対してB−2、C−2の情報を並列に記述し、グループ化しても良い。
この方法の場合、ソースAには存在するがソースB、Cには存在しない項目がある場合が考えられる。この場合、並列に記述すると、Aについては記述できるが、B、Cについてはブランクになる項目が存在してしまう。しかし、より多くの情報を一覧できるため、その後の脆弱性情報の調査においては有用である。
このように、複数のソースからの脆弱性情報をお互いにリンクさせ、不足している情報を補完することにより効率よく詳細な脆弱性情報を取得することが可能である。
当実施の形態では、当リンク処理の後、優先度判定部153を適用し、脆弱性情報の優先度付けを行う。ここで、複数のソースから同じ脆弱性が取れた場合は、優先度判定における優先度をアップさせるようにしてもよい。
このように、本実施の形態によれば、キーワード抽出結果において共通関係を有する二以上の脆弱性情報を対応付けることができるので、複数ソースからの脆弱性情報を対応付けることができ、それぞれ個々のソースからの情報では不足している情報を相互に補完することができ、効率よく詳細な脆弱性情報を取得することが可能である。
実施の形態3.
実施の形態2では、複数のソースから収集した脆弱性情報をキーワード抽出部152に入力し、抽出されたキーワードを脆弱性情報リンク部251に入力することにより、複数ソースの脆弱性情報のリンクを行う。そして、その後、優先度判定部153を適用し、脆弱性情報の優先度付けを行う。
実施の形態2では、複数のソースから収集した脆弱性情報をキーワード抽出部152に入力し、抽出されたキーワードを脆弱性情報リンク部251に入力することにより、複数ソースの脆弱性情報のリンクを行う。そして、その後、優先度判定部153を適用し、脆弱性情報の優先度付けを行う。
当実施の形態では、脆弱性情報のリンクの異なるタイミングによる実施の形態を記述する。
図12は、シグネチャ開発支援装置1の一部の機能を抜粋したものである。
図12では、図7の場合と異なり、予め決められた1つのソースからの脆弱性情報に対して、優先度判定部153を適用することで、調査対象の優先度付けを先に行う。この後、脆弱性情報リンク部251を利用して、脆弱性情報のリンクを行う。
リンクを行う対象は、収集した対象全てに対して、一度に行う必要は無い。例えば、A1、A2、A3、A4、A5という5つの脆弱性情報がソースAから収集されたとする。
優先度判定部153により、調査対象がA1とA2に絞られた場合、その時点ではA1、A2に対してのみリンクを行えば良く、A3、A4、A5がその後も調査対象として浮上してきた場合にリンク作業を行えばよい。
このように、当実施の形態では、優先度判定部153を脆弱性情報リンク部251よりも先に適用することで、リンク作業の省略化が実現可能である。
実施の形態4.
既に収集した脆弱性情報において、その情報の内容が更新されることがある。例えば、攻撃コードが無かったものが発見された、危険度が上がった、パッチが提供された、派生の攻撃が発見された、というものである。内容によっては、エンドユーザに脆弱性情報の分析結果を更新して通知したりシグネチャを変更して再配布する必要がある。
既に収集した脆弱性情報において、その情報の内容が更新されることがある。例えば、攻撃コードが無かったものが発見された、危険度が上がった、パッチが提供された、派生の攻撃が発見された、というものである。内容によっては、エンドユーザに脆弱性情報の分析結果を更新して通知したりシグネチャを変更して再配布する必要がある。
更新情報の提供形態はソースにより異なり、例えば、若干でも情報の更新が発生した場合に随時更新情報を掲載するソースや、1週間ごとに区切って掲載するソースや、複数の脆弱性情報に更新が発生した場合にまとめて掲載するソースなど様々である。
本実施の形態では、実施の形態2又は実施の形態3において、複数のソースをリンクした場合に、情報の更新を扱いやすいソースを情報の更新のフォローのために利用し、情報の更新を確実にフォローする方法を記述する。
図13は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す。
図13では、脆弱性情報検索部154が追加されている以外は、図2の構成と同じである。
脆弱性情報検索部154は、脆弱性情報を、キーワードに基づいて脆弱性情報DB113から検索する。
次に、動作について説明する。
図14は、脆弱性情報が更新された状態を示す図である。図14では、図8の状態に対してソースDからの脆弱性情報が追加されただけである。
例えば、ソースDでは、随時更新情報を公開する方針であったとする。実施の形態2又は実施の形態3と同様の方法で、ソースDからの脆弱性情報に対してキーワード抽出を行い、ソースDからの情報もキーワード抽出結果が共通する他ソースからの情報にリンクし、(A−1、B−1、D−1)、(A−3、B−2、C−2、D−3)という関係付けを行う。
その後、脆弱性情報に関しての更新のフォローは、それぞれD−1、D−3に対して行う。
例えば、(A−1、B−1、D−1)の情報の更新をフォローするためには、図15において、ソースDからの脆弱性情報121dを収集し、キーワード抽出部152でキーワード701を抽出した後、脆弱性情報検索部154に対してキーワド701を検索キーとして入力する。
脆弱性情報検索部154はキーワード701に該当する脆弱性情報を脆弱性情報DB113から検索して提示する。脆弱性情報の共通IDが明確であれば、IDで一意に検索できるし、IDが明確でなくとも、実施の形態2におけるIDを用いないリンク方法と同じ要領で、該当する脆弱性情報を検索する。つまり、キーワードから脆弱性情報DB113内に格納されている類似の脆弱性情報を絞り込み、出力する。
次に、出力された「既に格納されている脆弱性情報」について、更新が発生していることをGUI等でユーザに通知する(704)。
通知の方法は、単に、(A−1、B−1、D−1)の脆弱性情報が更新されていることのみを伝えてもよいし、危険度の上昇等、特定の項目の更新が発生した場合は、緊急の通知としても良い(705)。
この際、更新情報を、(A−1、B−1、D−1)に自動反映してもよい。前回のD−1からの情報をキーワード抽出部152に適用した結果をDBのエントリに記録していれば、毎回差分を自動的にチェックすることが可能である。
ユーザはこの更新の通知を受けて、再度(A−1、B−1、D−1)について追加調査を行い、IDSのエンドユーザに対して脆弱性情報の分析結果を更新配布したり、ヘルプ情報を更新配布したり、シグネチャを更新配布する。
このように、更新情報を扱い易いソースDをリンク対象に含め、ソースDのみを定期的にチェックすることで効率よく脆弱性情報の更新の発生をフォローすることが可能である。
当実施の形態によれば、調査対象の脆弱性情報について、更新を通知するソースからの情報を収集・追加リンクすることにより、ユーザに脆弱性情報の更新を効率よく通知することが可能となる。
実施の形態5.
従来のシグネチャの開発方法では、シグネチャの開発はセキュリティの専門家が脆弱性情報の内容を調査し、攻撃コードが存在する場合はその特徴を調査し、特徴を捕捉・検出するためのシグネチャを開発する。また、脆弱性情報が報告されても攻撃コードは公開されなかったり公開されても一部のみであったり情報が不十分である場合がある。
従来のシグネチャの開発方法では、シグネチャの開発はセキュリティの専門家が脆弱性情報の内容を調査し、攻撃コードが存在する場合はその特徴を調査し、特徴を捕捉・検出するためのシグネチャを開発する。また、脆弱性情報が報告されても攻撃コードは公開されなかったり公開されても一部のみであったり情報が不十分である場合がある。
熟練したセキュリティ専門家であれば脆弱性情報のみから攻撃コードや攻撃手法を考案しシグネチャを開発することは可能であろうが、そのような専門家は一部であり、シグネチャの開発は特定の個人に負担のかかる作業であった。
そこで、本実施の形態では、シグネチャの開発を支援するシグネチャ開発支援装置を説明する。
図16は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
シグネチャ・攻撃コード処理部300において、シグネチャデータベース(DB)115は、脆弱性関連情報収集部151で収集されたインターネット上で公開されているシグネチャや過去に開発されたシグネチャを蓄積する。DBのエントリは以下である。そして、これらはシグネチャ情報126を構成する。
シグネチャID、対応する攻撃コードID、概要、検知条件、シグネチャ、シグネチャが動作する条件
シグネチャ検索部155は、シグネチャ情報126をシグネチャDB115から検索する。
シグネチャ検索部155は、シグネチャ情報126をシグネチャDB115から検索する。
本実施の形態においては、脆弱性情報処理部200の構成要素は図2及び図13に示したものと同様である。但し、脆弱性情報DB113には、それぞれに対応するシグネチャが生成済みの脆弱性情報が含まれている。そして、シグネチャ生成済みの脆弱性情報については、脆弱性情報DB113には、例えば113aに示されるエントリのように以下の情報が含まれている。
脆弱性情報ID、脆弱性の内容、危険度、攻撃の種類、対象製品、非対象製品、パッチ情報、見解、シグネチャID
また、脆弱性情報DB113には、それぞれの脆弱性情報に対してキーワード抽出部152により抽出されたキーワード抽出結果も記憶されている。
また、脆弱性情報DB113には、それぞれの脆弱性情報に対してキーワード抽出部152により抽出されたキーワード抽出結果も記憶されている。
シグネチャは脆弱性を悪用した攻撃を検出するものであるから、シグネチャの開発に先立ち脆弱性情報を分析・把握することが重要である。
本実施の形態では、過去に調査した脆弱性情報と対応したシグネチャにおいて、現在調査したい脆弱性情報に類似のものを参考情報として表示し、シグネチャの開発を効率化する方法を記述する。
次に、図17を参照して、具体的な動作を説明する。
先ず、図3において説明した、ステップS301〜S305を行って、脆弱性情報についてキーワード抽出を行って、脆弱性情報のキーワード抽出結果を脆弱性情報DB113に蓄積しておく。更に、脆弱性情報に対する優先度設定を行う(ステップS1701)。
次に、ステップS1702において、調査対象の脆弱性情報を決定する。シグネチャ開発者は、ステップS305において、優先度を付与された脆弱性情報が参照可能なので、優先度に基づいて調査対象の脆弱性情報を1つ決定する。例えば最も優先度の高い脆弱性情報を選択する。
次に、脆弱性情報検索部154が、調査対象の脆弱性情報の特徴を表すキーワード抽出結果を得る。ステップS303において調査対象の脆弱性情報に対するキーワード抽出が行われているので、調査対象の脆弱性情報の脆弱性の特徴122a、攻撃の種類122b、影響を受ける製品122cなどの脆弱性情報の特性を示すキーワードは既に抽出済みであり、脆弱性情報DB113に格納されている。
次に、脆弱性情報検索部154は、当該調査対象の脆弱性情報のキーワード抽出結果を検索キーとして脆弱性情報DB113を検索し、共通するキーワード抽出結果の脆弱性情報を抽出する(脆弱性情報検索ステップ)。
検索結果として脆弱性情報123が得られる。
検索された脆弱性情報123は、例えば113aに示される脆弱性情報DB113のエントリのように以下の情報を含んでいる。
脆弱性情報ID、脆弱性の内容、危険度、攻撃の種類、対象製品、非対象製品、パッチ情報、見解、シグネチャID
検索された脆弱性情報にはソフトウェアの何のモジュールにどのような脆弱性があり、どのような攻撃手法により攻撃されるかが示されているため、調査対象の脆弱性情報の解析のヒントになる。
検索された脆弱性情報にはソフトウェアの何のモジュールにどのような脆弱性があり、どのような攻撃手法により攻撃されるかが示されているため、調査対象の脆弱性情報の解析のヒントになる。
次に、脆弱性情報検索部154が、シグネチャ検索部155に、抽出した脆弱性情報123のシグネチャIDを渡し、シグネチャ検索部155が、ステップS1705において、当該シグネチャIDに基づいて、シグネチャDB115を検索し、シグネチャIDで識別されるシグネチャを抽出する(シグネチャ検索ステップ)。
そして、ステップS1706において、出力部201が、ステップS1704で抽出された脆弱性情報と、ステップS1705で検索されたシグネチャを含むシグネチャ情報126を出力する。
検索されたシグネチャ情報126に含まれるシグネチャは、調査対象の脆弱性情報と類似すると推測される脆弱性情報に対応したシグネチャなので、当シグネチャを調査対象の脆弱性情報向けのシグネチャの参考情報として参照することが可能である。
従って、検索結果を参考情報として開発者に表示することでシグネチャ開発の効率化が可能となる。
類似シグネチャ情報には(類似の)攻撃コードの何の特徴をシグネチャで捉えるか検知条件として記述されており、シグネチャ開発の参考となる。
また、類似シグネチャ自体を表示することも参考となる。
また、類似シグネチャにおいて、検知条件に該当する箇所を視覚的にわかりやすく示すGUIを備えてもよい。
また、検索された脆弱性情報には、調査対象の脆弱性情報と類似の脆弱性が示されている可能性があるので、検索された脆弱性情報を、これから調査しようとする脆弱性情報の分析の参考にすることができる。
このように、本実施の形態によれば、調査対象の脆弱性情報のキーワード抽出結果と共通関係を有するシグネチャ生成済みの脆弱性情報を検索し、更に、検索したシグネチャ脆弱性情報に対応させたシグネチャを検索するため、調査対象の脆弱性情報と関連性が強いと考えられる脆弱性情報及びシグネチャを提示することが可能であり、これによりシグネチャの開発の効率を向上させることができる。
実施の形態6.
図18は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
図18は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
図18において、各構成要素は、図16のものと同様である。但し、シグネチャDB115に既に開発済みのシグネチャを蓄積する場合、そのエントリの“概要”情報において、脆弱性キーワードDB112に登録されているキーワードで検索が可能なキーワードを記録しておく。つまり、シグネチャの開発の際に利用された脆弱性情報から抽出されたキーワード抽出結果を記録しておく。
また、本実施の形態では、シグネチャDB115aには、それぞれのシグネチャに対応する脆弱性情報の識別子(ID)を記憶している。ここで、シグネチャに対応する脆弱性情報とは、当該シグネチャを生成する際に、利用した脆弱性情報である。
一方、本実施の形態では、脆弱性情報DB113には、実施の形態5では記憶されていた、シグネチャIDは記憶されていない。
次に、図19を参照して動作を説明する。
先ず、図3において説明した、ステップS301〜S305を行って、脆弱性情報についてキーワード抽出を行って、脆弱性情報のキーワード抽出結果を脆弱性情報DB113に蓄積しておく。更に、脆弱性情報に対する優先度設定を行う(ステップS1901)。
次に、ステップS1902において、調査対象の脆弱性情報を決定する。シグネチャ開発者は、ステップS305において、優先度を付与された脆弱性情報が参照可能なので、優先度に基づいて調査対象の脆弱性情報を1つ決定する。例えば最も優先度の高い脆弱性情報を選択する。
次に、シグネチャ検索部155が、調査対象の脆弱性情報の特徴を表すキーワード抽出結果を得る。ステップS303において調査対象の脆弱性情報に対するキーワード抽出が行われているので、調査対象の脆弱性情報の脆弱性の特徴122a、攻撃の種類122b、影響を受ける製品122cなどの脆弱性情報の特性を示すキーワードは既に抽出済みであり、脆弱性情報DB113に格納されている。
次に、シグネチャ検索部155は、当該調査対象の脆弱性情報のキーワード抽出結果を検索キーとしてシグネチャDB115を検索し、共通するキーワード抽出結果のシグネチャを抽出する(シグネチャ検索ステップ)。ここで、シグネチャDB115に対し、“概要”情報においてキーワードを含むエントリを検索することになる。
当該シグネチャは、調査対象の脆弱性情報に類似すると推測される脆弱性情報に対応したシグネチャなので、当シグネチャを調査対象の脆弱性情報向けのシグネチャの参考情報として参照することが可能である。従って、検索結果を参考情報として開発者に表示することでシグネチャ開発の効率化が可能となる。
次に、シグネチャ検索部155が、脆弱性情報検索部154に、抽出したシグネチャ情報126に含まれる脆弱性情報IDを渡し、脆弱性情報検索部154が、ステップS1905において、当該脆弱性情報IDに基づいて、脆弱性情報DB113を検索し、脆弱性情報ID123bで識別される脆弱性情報を抽出する(脆弱性情報検索ステップ)。脆弱性情報DB113では、113aに示される様に、脆弱性情報IDが記録されているため、シグネチャ検索部155から通知のあった脆弱性情報IDに基づいて対応する脆弱性情報123を検索可能である。
そして、ステップS1906において、出力部201が、ステップS1904で抽出されたシグネチャを含むシグネチャ情報126と、ステップS1905で検索された脆弱性情報を出力する。
当実施の形態によれば、脆弱性情報のキーワードを利用し、シグネチャDBから類似のシグネチャを検索し、かつ、脆弱性情報DBからも、該当する脆弱性情報を検索可能なので、これらの情報を表示することで、シグネチャの開発者は、調査対象の脆弱性情報の解析と、シグネチャ開発の参考とすることが可能である。
つまり、本実施の形態によれば、調査対象の脆弱性情報のキーワード抽出結果と共通関係を有するシグネチャを検索し、更に、検索したシグネチャに対応させた脆弱性情報を検索するため、調査対象の脆弱性情報と関連性が強いと考えられる脆弱性情報及びシグネチャを提示することが可能であり、これによりシグネチャの開発の効率を向上させることができる。
実施の形態7.
既知の脆弱性への攻撃に対応するためのシグネチャが、インターネット上で公開され自由に利用可能な場合がある。脆弱性関連情報収集部151は、このような公開されているシグネチャ及びその脆弱性情報も収集する。
既知の脆弱性への攻撃に対応するためのシグネチャが、インターネット上で公開され自由に利用可能な場合がある。脆弱性関連情報収集部151は、このような公開されているシグネチャ及びその脆弱性情報も収集する。
本実施の形態では、収集されたシグネチャについて、信頼できるか確認し、検知方法などを参考にするために、以下を実行する。
脆弱性関連情報収集部151は、インターネットからシグネチャ及び当該シグネチャに対応する脆弱性情報を取得する。その後、実施の形態5又は実施の形態6に示す操作が行なわれ、インターネットから収集した脆弱性情報のキーワードと共通するキーワードを有するシグネチャと脆弱性情報を検索し、検索したシグネチャと脆弱性情報と、インターネットから収集したシグネチャと脆弱性情報とを表示する。
シグネチャ開発者は、表示された2組のシグネチャと脆弱性情報の組を比較して、収集されたシグネチャが信頼できるか確認し、検知方法などを参考にすることができる。つまり、インターネットから収集されたシグネチャにおける検知条件と、実施の形態5又は6の操作の結果、検索された類似のシグネチャの検知条件を比較し、妥当性を判定することができる。
なお、脆弱性情報を表示せずに、シグネチャのみを表示するようにしてもよい。また、シグネチャ全体の表示とせずに、シグネチャの検知条件の部分のみを表示するようにしてもよい。また、表示方法は、シグネチャの検知条件を並べて表示するようにしてもよい。
また、公開されているシグネチャは定められたフォーマットに基づいて記述されているため、シグネチャから検知条件を日本語の記述に変換することが可能であり、日本語変換された検知条件を表示し、一方で検索されたシグネチャの検知条件を並べて表示しても良い。
このように、本実施の形態によれば、インターネットなどから収集された利用可能なシグネチャについて、信頼できるか確認し、検知方法などを参考にすることができ、この結果、シグネチャの開発の効率を向上させることができる。
実施の形態8.
本実施の形態は、脆弱性関連情報収集部で収集した攻撃コードを、シグネチャDBに格納されている開発済みのシグネチャに適用し、開発済みのシグネチャで検知可能か調べる場合について説明する。
本実施の形態は、脆弱性関連情報収集部で収集した攻撃コードを、シグネチャDBに格納されている開発済みのシグネチャに適用し、開発済みのシグネチャで検知可能か調べる場合について説明する。
図20は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
図20において、攻撃コードDB116は、過去に開発した攻撃コードを蓄積する。また、脆弱性関連情報収集部151で収集されたインターネット上で公開されている攻撃コードを蓄積する。DBのエントリは以下である。
攻撃コードID、対応するシグネチャID、対応する脆弱性情報ID、概要、攻撃コードの実体
攻撃コード検索部156は、攻撃コード情報127を攻撃コードDB116から検索する。
攻撃コード検索部156は、攻撃コード情報127を攻撃コードDB116から検索する。
品質管理用IDS852は、脆弱性関連情報収集部で収集した攻撃コードを、シグネチャDBに格納されている開発済みのシグネチャに適用し、開発済みのどのシグネチャで検知可能か調べる。品質管理用IDS852は、攻撃検知性判断部の例である。なお、図20では、品質管理用IDS852は、シグネチャ・攻撃コード処理部300内に配置されているが、品質管理用IDS852をシグネチャ開発支援装置外に配置してもよい。
なお、図20における他の構成要素は、既に説明したものと同様である。但し、本実施の形態では、脆弱性関連情報収集部151は、脆弱性情報、シグネチャのほかに、攻撃コードも収集するものとする。このため、本実施の形態では、脆弱性関連情報収集部151は、攻撃コード取得部の例である。
例えば、図21では、シグネチャDB115に保存されている開発済みシグネチャ802を品質管理用IDS852に取り込み、攻撃コード801を適用し、検知するか調査する。
検知に成功した場合、検知した開発済みシグネチャ802のシグネチャID803を検索キーとして、シグネチャ検索部155により該当するシグネチャ情報804をシグネチャDB115から取得する。なお、このシグネチャ情報804は、実施の形態6において説明したシグネチャ情報と同様である。また、シグネチャ情報804には、シグネチャの属性が示されており、シグネチャ属性情報に相当する。
また、同時に、検索されたシグネチャ情報804において記載される脆弱性情報ID805を検索キーとして、脆弱性情報検索部154により該当する脆弱性情報806を脆弱性情報DB113より取得する。
本実施の形態に係る動作を、図22を参照して説明する。
先ず、ステップS2201において、脆弱性関連情報収集部151が、インターネット上の脆弱性情報のソースから攻撃コードを取得する(攻撃コード取得ステップ)。
次に、ステップS2202において、品質管理用IDS852が、シグネチャDB115に蓄積されている開発済みのシグネチャのそれぞれを適用して、取得された攻撃コードを検知できるシグネチャを特定する(攻撃検知性判断ステップ)。
次に、ステップS2203において、シグネチャ検索部155が、特定されたシグネチャのシグネチャ情報をシグネチャDB115から取得し、更に、ステップS2204において、脆弱性情報検索部154が、シグネチャ情報内の脆弱性情報IDに基づいて脆弱性情報DB113を検索して、該当する脆弱性情報を抽出する。
最後に、出力部201が、抽出されたシグネチャと脆弱性情報を出力する(出力ステップ)。
図21には、出力部201による表示例が示されている。検索されたシグネチャ情報804と脆弱性情報806をGUI853表示することで、シグネチャの開発参考情報として示しシグネチャ開発を効率化する。
例えば、GUI853では、以下の開発済みの2つのシグネチャが攻撃コード801を検知した場合の表示例である。脆弱性情報Aに示される脆弱性を悪用した攻撃Aを検知するシグネチャと、脆弱性情報Bに示される脆弱性を悪用した攻撃Bを検知するシグネチャが表示されている。
853aでは、シグネチャ情報から抜粋したシグネチャに関する情報を表示する。853a’では対応する脆弱性情報Aの内容を表示する。
853bでは、シグネチャ情報から抜粋したシグネチャに関する情報を表示する。853b’では対応する脆弱性情報Bの内容を表示する。
GUIに表示するシグネチャの情報と対応する脆弱性情報は、1つでも複数でも良い。
このように本実施の形態によれば、開発済みのシグネチャのうち、取得した攻撃コードを検知可能なシグネチャを判断し、当該シグネチャの属性情報及び当該シグネチャに対応する脆弱性情報を表示するため、シグネチャの開発の効率を向上させることができる。
実施の形態9.
図23は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
図23は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
図23において、テンプレート生成部860は、品質管理用IDS852において特定されたシグネチャからテンプレートを生成する。
また、シグネチャDB連携部870(シグネチャデータベース更新部)は、品質管理用IDS852において特定されたシグネチャのシグネチャ情報に、脆弱性関連情報収集部151で収集された攻撃コードを検知可能であるとの記述を追加して、シグネチャDB115を更新する。
なお、他の構成要素は、図20と同様である。
テンプレート生成部860は、攻撃コードの検出に成功した既存のシグネチャをテンプレートとして生成する。
例えば、図24の例では、854は、外部ネットワークからWebサーバへの通信において、文字列“abc”を含み“xyz”を含まないデータを攻撃として捕捉しており、その場合は、警告時に表示するメッセージとして“DoS attack has detected!”を表示するためのシグネチャである。シグネチャのIDは1234、攻撃の種別としてDoS、シグネチャのバージョンは1.0を表している。そこで、検知した既存のシグネチャ854を利用し、検知に直接関係の無い情報(攻撃の種別、シグネチャのID、シグネチャのバージョン、警告時に表示するメッセージ)を空白として省略し、テンプレート855として生成する。図24では、破線で囲んだ部分を空白に変更してテンプレートとしている。
また、脆弱性関連情報収集部151で収集された攻撃コードは既存のシグネチャで検出が可能であるため、シグネチャを兼用するという方針の場合は、シグネチャDB連携部870は、検索された既存のシグネチャ情報に、“攻撃コードXXXも検出可能”という付加情報を記述する。XXXの部分には本来そのシグネチャが検出する攻撃コード以外の攻撃コードを示す情報が入る。そして、このような付加情報をシグネチャ開発者に表示することにより、当該攻撃コードに対しては新たにシグネチャを開発する必要がないことをシグネチャ開発者に通知することができる。
このように、本実施の形態では、シグネチャの内容を変更して、シグネチャのテンプレートを生成することができ、また、特定のシグネチャが、本来の検知対象以外の攻撃コードを検知可能であることを示す情報を追加することができるので、シグネチャの開発の効率を向上させることができる。
実施の形態10.
例えば、攻撃コードによっては、ある位置に空白等を挿入された亜種が存在する場合がある。この場合、元の攻撃コードを検知するシグネチャでは検知できない(すり抜け/回避)ことがある。
例えば、攻撃コードによっては、ある位置に空白等を挿入された亜種が存在する場合がある。この場合、元の攻撃コードを検知するシグネチャでは検知できない(すり抜け/回避)ことがある。
本実施の形態では、亜種の攻撃コードを検知する派生シグネチャを自動生成する方法を記述する。
例えば、元の攻撃コードが、“XXXXABCXXXX”である場合に、元の攻撃コードを検出するためのシグネチャは、“ABC”が存在するデータを攻撃コードとみなす。
ここで、“XXXXAB△△CXXXX”又は“XXXXA△△BCXXXX”(△は空白を示す)などの空白の挿入された亜種の攻撃コード(ABCの文字間に空白が挿入されているが攻撃コードとして動作する)の場合、上記のシグネチャは、間に空白のない“ABC”が含まれるデータを攻撃データとみなすので、亜種の攻撃コードの様に、“ABC”の文字間に1つ以上の空白や文字を挿入されるとIDSの検知を回避されてしまう。
従って、亜種の攻撃に対抗するために、予め派生のシグネチャを自動生成することで亜種に対抗する必要がある。本実施の形態は、このような亜種の攻撃コードに対応する派生コードの生成に関する。
図25は、本実施の形態に係るシグネチャ開発支援装置の構成例を示す図である。
GUI部880は、図26に示すような派生シグネチャ生成画面を表示し、派生シグネチャ生成画面を通じて、派生シグネチャを生成するための派生シグネチャ生成条件を入力する。また、派生シグネチャ生成画面を通じて、派生シグネチャの元となるシグネチャを入力することもできる。GUI部880は、派生シグネチャ生成条件入力部の例である。また、シグネチャを入力する場合は、シグネチャ取得部としても機能する。
派生シグネチャ生成部890は、派生シグネチャ生成条件に従って、派生シグネチャの元となるシグネチャの内容を変更して、派生シグネチャを生成する。
また、本実施の形態では、派生シグネチャの元となるシグネチャは、脆弱性情報関連情報収集部151が、Internet上の脆弱性情報のソース100から取得してもよいし、またシグネチャ検索部155が、シグネチャDB115から取得してもよい。これらの場合には、脆弱性情報関連情報収集部151又はシグネチャ検索部155がシグネチャ取得部の例となる。
次に、図27を参照して、本実施の形態に係る動作を説明する。
先ず、ステップS2701において、GUI部880が、シグネチャ開発者から派生シグネチャ生成リクエストを入力する。
次に、ステップS2702において、GUI部880は、図26に示すような派生シグネチャ生成画面を表示する。
次に、ステップS2703において、シグネチャ開発者の指示に従って、派生シグネチャの生成元となるシグネチャを取得する(シグネチャ取得ステップ)。当該シグネチャの取得方法は、前述したように、GUI部880が、派生シグネチャ生成画面を通じて、派生シグネチャの元となるシグネチャを入力してもよいし、脆弱性情報関連情報収集部151が、Internet上の脆弱性情報のソース100から取得してもよいし、またシグネチャ検索部155が、シグネチャDB115から取得してもよい。
次に、ステップS2704において、GUI部880は、派生シグネチャ生成画面を通じて派生シグネチャ生成条件を入力する(派生シグネチャ生成条件入力ステップ)。
次に、ステップS2705において、派生シグネチャ生成部890が、派生シグネチャ生成条件に従って、派生シグネチャの元となるシグネチャの内容を変更して、派生シグネチャを生成する(派生シグネチャ生成ステップ)。
最後に、ステップS2706において、GUI部880が、派生シグネチャ生成画面上に、派生シグネチャを表示する。
次に、図26の派生シグネチャ生成画面を用いて具体的な派生シグネチャ生成手法を説明する。
図26の派生シグネチャ生成画面900において、検知条件901には、派生シグネチャの生成元のシグネチャが攻撃コードを検知するための検知条件が表示されている。
また、シグネチャ902には、派生シグネチャの生成元となるシグネチャが表示されている。文字列“ABC”を含むWebサーバへのメッセージを捕捉するシグネチャである。
派生シグネチャ生成条件903では、シグネチャ開発者が指定する派生シグネチャ生成条件が表示される。図27では、発生パターンが発生する箇所として“ABC”が、派生パターンとして空白が、派生パターンの挿入数として空白が3つ挿入されることが、プロトコルとしてHTTPが、製品としてWebサーバB2.Xが派生シグネチャ生成条件として指定されている。
このように、派生シグネチャ生成条件として、予め、予想される挿入される空白の個数を3個と決定しておくことで、自動的に派生の攻撃コードの特徴を生成する。図27の例では、以下のような空白3個の適用パターンを自動生成する。
具体的には、以下のパターンである(以下の例において、△は空白を示す)。
具体的には、以下のパターンである(以下の例において、△は空白を示す)。
A△BC
AB△C
A△△BC
AB△△C
A△△△BC
AB△△△C
・・・(中略)・・・A△△△B△△△C
次にこれらの全てのパターンを検出するシグネチャを生成する。
AB△C
A△△BC
AB△△C
A△△△BC
AB△△△C
・・・(中略)・・・A△△△B△△△C
次にこれらの全てのパターンを検出するシグネチャを生成する。
シグネチャの検知条件は例えば以下になる。
Aから後方0〜3以内離れた位置にBがある。かつ、Bから後方0〜3以内離れた位置にCがある。
或いは、各攻撃パターン1つ1つに対応したシグネチャを生成しても良い。
或いは、各攻撃パターン1つ1つに対応したシグネチャを生成するのではなく、
(1)Aから後方0〜3文字以内離れた位置に“BC”がある(“BC”から前方0個〜3文字以内離れた位
置にAがある)
(2)Aから後方0〜3文字以内離れた位置に“B△C”がある(“B△C”から前方0個〜3文字以内離れた位置にAがある)
(3)Aから後方0〜3文字以内離れた位置に“B△△C”がある(“B△△C”から前方0個〜3文字以内離れた位置にAがある)
というように、幾つかの特徴単位で検知条件をまとめても良い。
(1)Aから後方0〜3文字以内離れた位置に“BC”がある(“BC”から前方0個〜3文字以内離れた位
置にAがある)
(2)Aから後方0〜3文字以内離れた位置に“B△C”がある(“B△C”から前方0個〜3文字以内離れた位置にAがある)
(3)Aから後方0〜3文字以内離れた位置に“B△△C”がある(“B△△C”から前方0個〜3文字以内離れた位置にAがある)
というように、幾つかの特徴単位で検知条件をまとめても良い。
図26に示す派生シグネチャ生成画面において、検知したい元々の攻撃コードを検知する検知条件901と派生シグネチャの生成元となるシグネチャ902を開発用GUI900において入力(作成)する。例では、シグネチャ902は、データ“ABC”を検知する。
次に、派生シグネチャ生成条件903の画面において、派生パターンが発生するデータ列を903aで指摘する。当例では、“ABC”に空白が挿入される派生パターンを想定する。よって、903aには“ABC”を入力する。
次に、903bには空白を表す‘ ’を入力する。
次に、派生パターンの挿入数を904で指定する。上限を3つと想定しているので、904には3を入力する。
最後に、905の派生グネチャの生成ボタンを押すと、派生シグネチャ生成部890は、以下の攻撃パターンを検出可能な派生シグネチャを生成する。
A△BC
AB△C
A△△BC
AB△△C
A△△△BC
AB△△△C
・・・(中略)・・・A△△△B△△△C
また、派生シグネチャ生成部890が派生シグネチャを生成した後、派生シグネチャ生成画面900の別エリアに、派生シグネチャ922a、922b(その他派生数分表示)を表示して、シグネチャ開発者が派生シグネチャの内容を確認可能な構成にしても良い。
AB△C
A△△BC
AB△△C
A△△△BC
AB△△△C
・・・(中略)・・・A△△△B△△△C
また、派生シグネチャ生成部890が派生シグネチャを生成した後、派生シグネチャ生成画面900の別エリアに、派生シグネチャ922a、922b(その他派生数分表示)を表示して、シグネチャ開発者が派生シグネチャの内容を確認可能な構成にしても良い。
また、図26には図示していないが、画面上の派生シグネチャ922a、922bなどを選択して取消/編集する機能があっても良い。
また、派生パターンとして、空白が文字列中だけでなく文字列の前後に含まれることを指定する入力欄を設けてもよい。
また、派生パターンが、空白のみでなく、その他の文字や文字列、バイナリデータが挿入されることが想定される場合は、903c、903dの入力欄で追加指定しても良い。
このように、本実施の形態によれば、亜種の攻撃コードを検知可能な派生シグネチャを生成可能であるため、シグネチャの開発の効率を向上させることができるとともに、亜種の攻撃に対するセキュリティを向上させることができる。
実施の形態11.
実施の形態10では、派生シグネチャを作成する場合、亜種の攻撃コードのとりうるパターン数を予め想定した。パターン数の上限を想定できる場合では実施の形態10は有効な手段である。
実施の形態10では、派生シグネチャを作成する場合、亜種の攻撃コードのとりうるパターン数を予め想定した。パターン数の上限を想定できる場合では実施の形態10は有効な手段である。
しかし、必ずしも上限について想定ができない場合がある。
実施の形態10では、例えば、空白が1から3個を想定したが、1から100まで挿入されても攻撃コードとして成り立つのであれば、その組み合わせ分の亜種が考えられることになる。
この場合、Aから後方0〜100以内離れた位置にBがある。かつ、Bから後方0〜100以内離れた位置にCがあるデータ列を捕捉する、というシグネチャを記述可能であればシグネチャは1つでよい。しかし、IDSの製品やバージョンによっては記述できないこともあり、各パターン別に用意することになり数が膨大になる。
また、必ずしも1つのシグネチャで記述したからといって高速な処理が実現できるわけではない。
一方、シグネチャを複数用意せざるを得ないという前提では、攻撃コードの亜種が理論上は「101の2乗パターン(AとBの間で0〜100個の空白×BとCの間で0〜100個の空白)」発生しえても、実際には101の2乗パターンも適用することは性能的に不可能なことがある。
このような場合は、効果的な上限数を決め、シグネチャ数を減らすことが必要となる。
しかし、このような場合のシグネチャの削減は、経験に基づく判断になってしまったり、或いは取りこぼしを懸念して判断が付かない場合もあり、断定的に決定することは困難である。
そこで、実施の形態10では、予想される挿入される空白の個数を開発者が指定していたが、本実施の形態では自動的に亜種のパターンの上限を決定する方法を記述する。
本実施の形態の特徴は、普及している製品の送受信データのフォーマットの特徴を製品DBに蓄積しておき、派生コード生成部890が、該製品がとりうるデータフォーマットの許容の範囲内で亜種の攻撃コードの上限を検討する点にある。
例えば、ブラウザ製品のHTTPリクエストの特徴を製品DBに保持しておき、シグネチャ開発時に空白の挿入パターンの許容範囲をチェックすることで、派生パターンを余計に作成しなくても良いようにする。
データフォーマット違反の送受信データに関しては、そもそも製品間の通信が成り立たないため正常に送受信されず、攻撃コードが攻撃対象装置で活動する以前に、通信プロトコルのチェックで破棄され、機能しない可能性がある。
すなわち、派生シグネチャの生成においては、正常に製品が動作するデータフォーマットの範囲内で亜種を検討すれば良い。
例えば、ある検知対象となる項目において、フォーマットとして空白が2つまで許されるのであれば、亜種の攻撃は2つとり得るのでシグネチャも2種類追加すればよい。空白が3つ以上の亜種は存在したとしても製品自体のフォーマットチェックで機能しない可能性があるため、対応するシグネチャを作成する必要が無い。
以下のようなプロトコルのリクエストデータが存在した場合に、規約上は、リクエストとパラメータ1の間に1つ以上空白が許されている場合を想定する。
リクエスト(空白)パラメータ1(空白)パラメータ2
以下の3つのリクエストは、規約上はプロトコルデータとして有効である。なお、“ABC”は攻撃コードとする。
(A)リクエスト(空白)○○ABC○○(空白)パラメータ2
(B)リクエスト(空白)(空白)○○ABC○○(空白)パラメータ2
(C)リクエスト(空白)○○ABC○○(空白)(空白)パラメータ2
しかし、実際に使用している製品が送信するリクエストフォーマットが(A)のみであれば、(A)のフォーマットに限定して、第一パラメータ内の“ABC”を補足すればよい。(B)、(C)のフォーマットで送信された攻撃コードは受信側のプロトコルフォーマットチェックでエラーとなる可能性があり、攻撃コードが有効とならない可能性があるため、(B)、(C)のフォーマットを前提とした亜種を想定しなくてもよいことになる。
以下の3つのリクエストは、規約上はプロトコルデータとして有効である。なお、“ABC”は攻撃コードとする。
(A)リクエスト(空白)○○ABC○○(空白)パラメータ2
(B)リクエスト(空白)(空白)○○ABC○○(空白)パラメータ2
(C)リクエスト(空白)○○ABC○○(空白)(空白)パラメータ2
しかし、実際に使用している製品が送信するリクエストフォーマットが(A)のみであれば、(A)のフォーマットに限定して、第一パラメータ内の“ABC”を補足すればよい。(B)、(C)のフォーマットで送信された攻撃コードは受信側のプロトコルフォーマットチェックでエラーとなる可能性があり、攻撃コードが有効とならない可能性があるため、(B)、(C)のフォーマットを前提とした亜種を想定しなくてもよいことになる。
すなわち、予め、攻撃対象となる製品について、送受信されるデータフォーマットを調べておき、そのフォーマットの範囲内で起こりうる亜種を検討することで、派生のシグネチャ数を削減可能である。
本実施の形態に係るシグネチャ開発支援装置の構成は、図25に示すものと同様である。
また、動作も、実施の形態10に示したものとほぼ同様である。
具体的には、図26に示す様に、検知したい元々の攻撃コードを検知する検知条件901とシグネチャ902を派生シグネチャ生成画面900において入力する(作成する)。例では、シグネチャ902は、データ“ABC”を検知する。
次に、派生シグネチャ生成条件903において、派生パターンが発生するデータ列を903aで指摘する。当例では、“ABC”に空白が挿入される派生パターンを想定する。よって、903aには“ABC”を入力する。
次に、903bには空白を表す‘ ’を入力する。
次に、プロトコル906と製品907を指定し派生シグネチャの生成905ボタンを押すと、派生シグネチャ生成部890は、製品DB111に問い合わせを行い、製品907で指定された製品が実際に使用するプロトコル906の実装の特徴の情報を通知される。
実装の特徴とは、具体的には、規約に対するデータフォーマットの実装範囲である。
次に、派生シグネチャ生成部890は、製品DB111から通知された実装の特徴に基づき、派生シグネチャを生成し、派生シグネチャ922aを出力する。
また、派生シグネチャ生成部890が派生シグネチャを生成した後、派生シグネチャ生成画面900の別エリアに、派生シグネチャ922a、922b(その他派生数分表示)を表示して、シグネチャ開発者が派生シグネチャの内容を確認可能な構成にしても良い。
また、図26には図示していないが、画面上の派生シグネチャ922a、922bなどを選択して取消/編集する機能があっても良い。
このように、攻撃コードの攻撃対象が有するデータフォーマットに基づいて、派生シグネチャを生成するので、不要な派生シグネチャを生成することを回避することができ、シグネチャの開発の効率を向上させることができる。
実施の形態12.
攻撃コード毎に対応するシグネチャを用意し、対応したシグネチャのみが1つの攻撃コード(攻撃)を検知するという設計に基づきシグネチャを開発することがあるが、開発したシグネチャにおいて、1つのシグネチャが他の攻撃コードも検知してしまうことがある。
攻撃コード毎に対応するシグネチャを用意し、対応したシグネチャのみが1つの攻撃コード(攻撃)を検知するという設計に基づきシグネチャを開発することがあるが、開発したシグネチャにおいて、1つのシグネチャが他の攻撃コードも検知してしまうことがある。
この状況を、シグネチャの競合と呼ぶことにする。
これは、1つのシグネチャの検知条件の設定が、本来検知対象とする攻撃コードの特徴以外に、他の攻撃コードの特徴を捉えてしまうことが原因である。
例えば、図29に示すように、シグネチャBは攻撃コードBのみ検知するように設計したはずであるが、実際にIDSに組み込んで動作させると、図30のように攻撃コードDも検知してしまうことが判明するといった例である。
ここで、1つの攻撃Xに対して1つのシグネチャXで対応し、検知した場合は、「攻撃Xを検知したので、攻撃Xの被害を受けないために、X用の以下の対処を行ってください」というヘルプ情報を管理者に表示する運用の場合に問題となる。
図29及び図30の例では、攻撃Dが行われていたとしても、シグネチャDではなくシグネチャBが検知してしまう可能性があり、その場合管理者は、「攻撃Bを検知したので、攻撃Bの被害を受けないために、B用の以下の対処を行ってください」というヘルプ情報を参照することになる。
しかし、実際は攻撃Dが行われている。攻撃Dへの対処と攻撃Bへの対処が異なる場合、本来とは異なる対処が(攻撃Bへの対処)が行われるため、適切な対処が行われないことになる。
例えば、攻撃Dへの対処は回線切断であるが、攻撃Bへの対処は監視強化である場合、攻撃Bの対処をとると、回線は切断されないため、攻撃Dによる被害が広まってしまう危険性がある。
つまり、シグネチャ1つについて1つのヘルプ情報を表示する運用の場合、シグネチャの競合は攻撃検出時に誤った判断を促す可能性があるということである。
本実施の形態では、このようなシグネチャの競合に関する問題を回避するための方法を記述する。
図28は、本実施の形態に係るシグネチャ開発支援装置の構成の抜粋を示す。
本実施の形態では、シグネチャ開発支援装置に、攻撃コードによる攻撃を模擬する攻撃装置1002を接続するとともに、攻撃装置1002と攻撃コードDB116とを連携させる攻撃DB連携部1001を設ける。
攻撃装置1002は、攻撃DB連携部1001を経由して、攻撃コードIDを指定して単数又は複数の攻撃コード情報(攻撃コード及び攻撃コードIDを含む)を取り出し、攻撃コードと攻撃コードIDを読み込み、品質管理用IDSへ送信する機能を有する。
攻撃DB連携部1001は、攻撃コードDB116から攻撃コード情報を抽出し、攻撃装置1002に対して攻撃コード情報を供給する。
品質管理用IDS852は、実施の形態8で示したものと同様であり、本実施の形態では、シグネチャDB連携部870を経由して、シグネチャDB115からシグネチャ情報を検索し、検索されたエントリに対して攻撃コードに関する情報の追記を命じる機能を有する。
また、シグネチャDB連携部870を経由して、シグネチャIDを指定しシグネチャDBから該当するシグネチャ情報を取り出し、シグネチャを読み込む機能を有する。
本実施の形態では、シグネチャDB115、シグネチャDB連携部870、品質管理用IDS852、攻撃コードDB116、攻撃DB連携部1001をシグネチャ開発支援装置内に配置し、攻撃装置1002をシグネチャ開発支援装置外に配置することを想定しているが、攻撃装置1002をシグネチャ開発支援装置内に配置してもよいし、品質管理用IDS852をシグネチャ開発支援装置外に配置してもよい。
次に、図31を参照して具体的な動作例を示す。
シグネチャの競合を調べる場合、まず、ステップS3101において、品質管理用IDS854内にシグネチャが存在すれば、存在するシグネチャを全て削除した後、品質管理用IDS854が、シグネチャDB連携部870を経由して、シグネチャDB115にシグネチャID1024を1つ指定してシグネチャの読み込み命令を送信する。
次に、ステップS3102において、品質管理用IDS854は、シグネチャDB115から該当するシグネチャ情報1026を受信し、シグネチャを品質管理用IDS854に取り込む。なお、当処理は、品質管理用IDS854に操作用のGUIを設けて処理を指示しても良い。
次に、攻撃装置1002は、攻撃DB連携部1001を経由して、攻撃コードDB116に攻撃コードID1021を1つ指定して攻撃コードの読み込み命令を送信し、ステップS3103において、攻撃コードDB116から攻撃DB連携部1001を経由して該当する攻撃コード情報1022を攻撃装置1002に送信し、攻撃コードと攻撃コードIDを攻撃装置1002に取り込む。なお、当処理は、攻撃装置1002に操作用のGUIを設けて処理を指示しても良い。
次に、ステップS3104において、攻撃装置1002は品質管理用IDS854に対して、攻撃コードIDと攻撃コード1023を送信する。
次に、ステップS3105において、品質管理用IDS854がステップS3102で取得したシグネチャで当該攻撃コードを検知したかを判定する(攻撃検知性判断ステップ)。
次に、品質管理用IDS854が当該攻撃コードを検知した場合に、ステップS3106において、攻撃コードが一致するかを判断する(攻撃検知性判断ステップ)。つまり、ステップS3105においてシグネチャにより検知した攻撃コードと、当該シグネチャが本来的に検知対象としている攻撃コードが一致するかを判断する。
具体的には、品質管理用IDS854は、シグネチャDB115から供給されたシグネチャ情報に含まれたシグネチャIDにより、攻撃コードを検知したシグネチャのシグネチャIDを認識し、このシグネチャIDを指定して、シグネチャDB115に攻撃コードIDの読み出し命令を送信する。この結果、品質管理用IDS854は、シグネチャDB連携部870を経由して、シグネチャが本来、検知対象としている攻撃コードの攻撃コードIDをシグネチャDB115から得る。そして、シグネチャDB115から得た攻撃コードIDと、攻撃装置から受信した攻撃コードIDが一致するかどうかを判断する。
ステップS3106において攻撃コードが一致する場合は、本来の検知対象である攻撃コードを検知したのみであり、シグネチャの競合は発生していないので、ステップS3107において、試行していない攻撃コードがあるかどうかを判断し、試行していない攻撃コードが存在する場合は、ステップS3103に戻って、未試行の攻撃コードにて同様の処理を繰り返す。全ての攻撃コードを試行している場合は、ステップS3111に進む。
一方、ステップS3106において攻撃コードが一致しない場合は、本来の検知対象である攻撃コード以外の他の攻撃コードを検知した状態であり、シグネチャの競合が発生している。このため、ステップS3108において、品質管理用IDS854は、シグネチャDB連携部870に対して、当該シグネチャが検知可能な他の攻撃コードの攻撃コードID(ステップS3105で検知した攻撃コードのID)をシグネチャ情報に追記するよう命じる追記命令1025を送信する。
次に、ステップS3109において、シグネチャDB連携部870が、当該攻撃コードIDを示す情報を生成し、シグネチャDBの該当するシグネチャ情報にこのシグネチャで検知可能な攻撃コードとして追加し、シグネチャDBに格納する(シグネチャDB更新ステップ)。
次に、ステップS3110において、試行していない攻撃コードが存在するかどうかを判断し、試行していない攻撃コードが存在する場合は、ステップS3103に戻って、未試行の攻撃コードにて同様の処理を繰り返す。全ての攻撃コードを試行している場合は、ステップS3111に進む。
ステップS3111では、試行していないシグネチャが存在するかどうかを判断し、試行していないシグネチャが存在する場合は、ステップS3101に戻って、未試行のシグネチャについて同様の処理を繰り返す。全てのシグネチャについて試行している場合は、処理を終了する。
上記手順のステップS3103〜S3109を全ての攻撃コードについて実施すると、1つのシグネチャが検知する攻撃コード全てが把握でき、該当するシグネチャ情報には本来検知すべき攻撃コード以外に検知可能な攻撃コードについて、競合情報として自動的に登録することが可能である。
また、ステップS3111において最後のシグネチャでなければ、ステップS3101に戻り、シグネチャを別のシグネチャ1つに変更し、ステップS3102〜S3109を実施すれば、そのシグネチャについても同様に競合情報を調べることが可能である。
競合情報は、シグネチャDBのエントリに記録される場合、例えば以下のような実装例がある。
(上記例の様に)検知する攻撃コードIDのエントリに競合情報として追加
シグネチャ内のメッセージ表示用フィールドに具体的な文字列として含む
例) 「攻撃Bの他に攻撃Dも検知します」という意味を表す文字列
よって、上記を全てのシグネチャについて実施することで、自動的に、各シグネチャが本来の攻撃コード以外にどの攻撃コードを検知するのか把握し、シグネチャDB115に反映することが可能である。
シグネチャ内のメッセージ表示用フィールドに具体的な文字列として含む
例) 「攻撃Bの他に攻撃Dも検知します」という意味を表す文字列
よって、上記を全てのシグネチャについて実施することで、自動的に、各シグネチャが本来の攻撃コード以外にどの攻撃コードを検知するのか把握し、シグネチャDB115に反映することが可能である。
また、実施の形態8の様に、攻撃コードDB116の攻撃コード情報に、該当する脆弱性情報IDが記録されている場合は、攻撃コード情報から得られた該当する脆弱性情報IDを、1023aにおいて、攻撃コードIDと攻撃コードと共に、品質管理用IDSに送信してもよい。
この場合、ステップS3108及びS3109において、脆弱性情報IDも攻撃コードIDと共に、シグネチャDB115に追記しても良い。
また、実施の形態8の様に、攻撃コードDB116の攻撃コード情報に、該当するシグネチャIDが記録されている場合は、攻撃コード情報から得られた該当するシグネチャIDを、1023bにおいて、攻撃コードIDと攻撃コードと共に、品質管理用IDSに送信してもよい。
この場合、ステップS3108及びS3109において、1023bで送信されるシグネチャIDも攻撃コードIDと共に、シグネチャDB115に追記しても良い。この場合、現在品質管理用IDSに読み込まれているシグネチャで検知した攻撃コード(1023bの攻撃コードIDで識別)は、1023bのシグネチャIDで識別されるシグネチャでも検知されることを記録することになる。
また、1023aの様に、攻撃コードIDと攻撃コードと共に、該脆弱性情報IDを品質管理用IDSに送信する場合で、本来検知する攻撃コード以外の攻撃コードを検知した場合、品質管理用IDSは、シグネチャDB連携部870を介し該脆弱性情報IDを利用して脆弱性情報DB113を検索する。そして、検索されたエントリに記載されている対応するシグネチャIDに、現在品質管理用IDSにおいて検知したシグネチャIDを追記しても良い。
つまり、該脆弱性情報のDBエントリにおいて、該脆弱性情報を検知するための元々のシグネチャの他に、検知可能なシグネチャを追記し、シグネチャの競合状態を示すことが可能である。
また、1023において、攻撃コードIDと攻撃コードを品質管理用IDSに送信する場合で、本来検知する攻撃コード以外の攻撃コードを検知した場合、品質管理用IDSは、攻撃DB連携部1101を介して、攻撃コードDBに対し、攻撃コードIDを利用し攻撃コード情報1022を検索する。そして、検索されたエントリに記載されている対応するシグネチャIDに、現在品質管理用IDSにおいて検知したシグネチャIDを追記しても良い。
つまり、攻撃コードDB116のエントリにおいて、該攻撃コードを検知するための元々のシグネチャの他に、検知可能なシグネチャを追記し、シグネチャの競合状態を示すことが可能である。
シグネチャDB、脆弱性情報DB、攻撃コードDBで競合情報を管理することができるため、IDSのエンドユーザに特定のシグネチャが本来の検知対象の攻撃コード以外の攻撃コードを検知可能である旨を通知する通知メッセージを生成する通知メッセージ生成部を設け、この通知メッセージを例えばGUI部880から出力するようにしてもよい。また、当該通知メッセージをヘルプ情報に含めてもよいし、Webサイトに掲載てしも良いし、IDSがIDSエンドユーザ向けに発する警告情報に含めても良い。
ここで、通知メッセージの例は、以下のようなものが考えられる。
「シグネチャBは、攻撃Bの他に攻撃Dも検知します」→ヘルプ情報の公開
「攻撃Bもしくは攻撃Dが検知された」→IDSが管理者に送信する警告メッセージ
本実施の形態によれば、シグネチャが本来検知対象としている攻撃コード以外の攻撃コードを検知可能であることを通知可能であるので、実際にシグネチャにより攻撃が検知された場合に、本来の検知対象の攻撃以外の攻撃が検知されたことがユーザに通知される、ユーザは当該攻撃の可能性も含めて対処を検討可能となる。
「攻撃Bもしくは攻撃Dが検知された」→IDSが管理者に送信する警告メッセージ
本実施の形態によれば、シグネチャが本来検知対象としている攻撃コード以外の攻撃コードを検知可能であることを通知可能であるので、実際にシグネチャにより攻撃が検知された場合に、本来の検知対象の攻撃以外の攻撃が検知されたことがユーザに通知される、ユーザは当該攻撃の可能性も含めて対処を検討可能となる。
実施の形態13.
実施の形態12では、品質管理用IDSへ取り込むシグネチャは1つづつであった。IDSの機能によってはシグネチャの取り込み順番により検出するシグネチャの優先度が変化することがあり、シグネチャ1つづつ取り込んで競合を検査しただけでは、十分な検査とは言えない場合がある。
実施の形態12では、品質管理用IDSへ取り込むシグネチャは1つづつであった。IDSの機能によってはシグネチャの取り込み順番により検出するシグネチャの優先度が変化することがあり、シグネチャ1つづつ取り込んで競合を検査しただけでは、十分な検査とは言えない場合がある。
本実施の形態では、そのようなIDSの機能を考慮し、十分な検査を達成可能な実現方法を示す。
まず、IDSに全てのシグネチャを取り込む。ここでシグネチャの順序(シグネチャ試行順序)を、A→B→C→D→Eとする。
この状態で、以下を実施する。
この状態で、以下を実施する。
(あ)1つの攻撃コードに対して図31に示したS3103〜S3109を実施する。
(い)終了したら攻撃コードを変更してS3103〜S3109の実施を繰り返す。全ての攻撃コードについて実施する。
次に、シグネチャの試行順序を変更する。例えば以下にする
B→C→D→E→A
この状態で、上記(あ)、(い)を実施する。
B→C→D→E→A
この状態で、上記(あ)、(い)を実施する。
以降、全ての順列について(あ)、(い)を実施することで、全てのシグネチャの取り込み順番について競合の状態を確認することが可能である。
実施の形態14.
実施の形態12の、競合情報の記述において、利用者に攻撃B、攻撃Dのどちらの対処を行うか判断させるのではなく、攻撃Bと攻撃Dの対処の優先度を比較して優先度の高い方に合わせた対処を推奨するメッセージを表示しても良い。
実施の形態12の、競合情報の記述において、利用者に攻撃B、攻撃Dのどちらの対処を行うか判断させるのではなく、攻撃Bと攻撃Dの対処の優先度を比較して優先度の高い方に合わせた対処を推奨するメッセージを表示しても良い。
つまり、本実施の形態では、品質管理用IDSによりいずれかのシグネチャについて他の攻撃コードが存在すると判断された場合に、当該シグネチャが本来検知対象としている攻撃コード及び品質管理用IDSにより判断された他の攻撃コードに対して優先度を設定する攻撃コード優先度設定部を追加し、実施の形態12で説明した通知メッセージ生成部は、攻撃コード優先度設定部により優先度が高く設定された攻撃コードに対する措置を優先的に講じるよう通知する通知メッセージを生成し、GUI部880は、このような通知メッセージを表示する。
優先度の判定は、例えば、実施の形態1における脆弱性情報の選択の優先度判定の基準を元に、予め優先度付けを行った情報を競合情報に含めればよい。そして、GUI部880から通知される通知メッセージは例えば以下のようなものが考えられる。
例)“攻撃Bもしくは攻撃Dが検知された。攻撃Dはシステムの情報が一部漏洩するだけであるが、攻撃Bの場合は不正なプログラムが実行される恐れがあるため、攻撃Bに対するパッチが適用されているか優先的に確認してください”
また、攻撃Dであれば切断、攻撃Bであれば警告のみ、という対処を行っている場合、競合情報において対処の優先度の高い攻撃の情報を示すルールを定めておき、IDSのプログラムに自動的に判断させても良い。
また、攻撃Dであれば切断、攻撃Bであれば警告のみ、という対処を行っている場合、競合情報において対処の優先度の高い攻撃の情報を示すルールを定めておき、IDSのプログラムに自動的に判断させても良い。
例えば、シグネチャ内に警告時に表示する文字列を記述できる場合は、文字列において、“attack D > attack B”と記述する。この場合はメッセージとしては、attack D(攻撃D)かattack Bが行われているという警告を示すが、attack D の方が優先度が高い(>)ことを示しており、IDSの対処としては、attack Dに対する対処を自動的に行うことができる。
例えば902への適用を示すと以下になる。
・ プロトコル種別 : tcp
・ 送信元情報、送信先情報 : 任意の外部ネットワークからWebサーバのHTTPポートへ
・ 攻撃の種別 : BOF
・ シグネチャのID : 10
・ シグネチャのバージョン : ver 1.0
・ 警告時に表示するメッセージ :“attack D > attack B”
・ 捕捉するデータ : “ABC”を含む
このように、いずれかのシグネチャについて他の攻撃コードが存在すると判断された場合に、当該シグネチャが本来検知対象としている攻撃コード及び他の攻撃コードに対して優先度を設定し、いずれか優先度が高く設定された攻撃コードに対する措置を優先的に講じるよう通知する通知メッセージを生成するため、攻撃を検知した際の対策の優先度付けが明確になる。
・ プロトコル種別 : tcp
・ 送信元情報、送信先情報 : 任意の外部ネットワークからWebサーバのHTTPポートへ
・ 攻撃の種別 : BOF
・ シグネチャのID : 10
・ シグネチャのバージョン : ver 1.0
・ 警告時に表示するメッセージ :“attack D > attack B”
・ 捕捉するデータ : “ABC”を含む
このように、いずれかのシグネチャについて他の攻撃コードが存在すると判断された場合に、当該シグネチャが本来検知対象としている攻撃コード及び他の攻撃コードに対して優先度を設定し、いずれか優先度が高く設定された攻撃コードに対する措置を優先的に講じるよう通知する通知メッセージを生成するため、攻撃を検知した際の対策の優先度付けが明確になる。
実施の形態15.
実施の形態12、13、14では、複数の攻撃コードを検知するシグネチャについて、競合情報を提示することにより、複数ありうる攻撃を示し、IDSに対し対処の選択権を与えている。
実施の形態12、13、14では、複数の攻撃コードを検知するシグネチャについて、競合情報を提示することにより、複数ありうる攻撃を示し、IDSに対し対処の選択権を与えている。
本実施の形態は、複数の攻撃コードを検知するシグネチャにおいて、実際に攻撃コードが検知された場合にいずれの攻撃コードが検知されたのかを判別するための攻撃コード判別情報を生成する攻撃コード判別情報生成部を設け、攻撃コード判別情報に基づいてどのような攻撃を受けたのかを判別する場合について述べる。
実施の形態12、13、14では、IDSではシグネチャBが攻撃を検知した場合、それだけでは攻撃Bを検知したのか攻撃Dを検知したのか断定できない。
しかし、攻撃Bと攻撃Dのいずれかの攻撃コードの特徴的なパターン本体を含む攻撃コード判別情報を用意しておき、実際に攻撃コードを検知した際には、当該攻撃コード判別情報に基づき、受信したデータパケット内に、特徴的なパターンが含まれるかを検索できれば、含まれている方の特徴で攻撃Bか攻撃Dか確定できる。
本実施の形態では、攻撃コード判別情報生成部が、検知しうる攻撃コードの特徴的なパターン本体をシグネチャの競合情報と共にIDSのエンドユーザへ提供することで、より確実な検知を実現する。
図32の例では、シグネチャB1101は競合情報1102において攻撃コードBと攻撃コードDを検知することが判明している。
攻撃コードB1104と攻撃コードD1105の特徴は以下である。
両方とも、文字列XYZを含む
攻撃コードBのみ、文字列BBを含む
攻撃コードDのみ、文字列DDを含む
このような差異に基づき、攻撃コードBと攻撃コードDとを判別するために、BBが含まれていたら攻撃コードBであり、DDが含まれていたら攻撃コードDであることを示す攻撃コード判別情報を競合情報1102に含ませる。
攻撃コードBのみ、文字列BBを含む
攻撃コードDのみ、文字列DDを含む
このような差異に基づき、攻撃コードBと攻撃コードDとを判別するために、BBが含まれていたら攻撃コードBであり、DDが含まれていたら攻撃コードDであることを示す攻撃コード判別情報を競合情報1102に含ませる。
今、シグネチャBが受信データ1103において攻撃を検知したとする。
しかし、それだけでは、攻撃コードBか攻撃コードDか分らないため、競合情報内の攻撃コード判別情報を参照し、受信データ1103内に「BB」が含まれないか検索する。含まれない場合は「DD」を検索する。
例では、「DD」が検索されるため、攻撃Dであることが確定される。
このように、攻撃コードBと攻撃コードDにおいて、シグネチャ本体で検知する条件(「XYZ」の検知)以外の有意な差分(「BB」と「DD」)を攻撃コード判別情報として競合情報に付加することにより、IDSは競合情報の参照によって攻撃を確定可能である。
また、攻撃を検知した場合にのみ競合情報を参照すればよく、シグネチャを攻撃コードB用と攻撃コードD用を兼用することも可能となる。
IDSによっては、攻撃コード全てをバイナリ検索するルールを記述可能なことがある。しかし、この方法では処理効率が悪いことがあり、その場合は、送信元/送信先、及び、「攻撃コードの一部の特徴」を捉えるルールを記述することが検討される。
この方法は、逆に他の攻撃コードも検知してしまう原因でもある。
しかし、本実施の形態によれば、衝突が発生するシグネチャで検知が発生した場合のみ、スキャンデータに攻撃コードの特徴が含まれているかを予備的に検査することで攻撃を確定するため、受信データに対して最初から攻撃コード全体との比較を行うことが無いため処理効率は良く、かつ攻撃を特定できる。
実施の形態16.
実施の形態15において、シグネチャの開発者が、競合情報に攻撃コード判別情報を含める場合に、該当する複数の攻撃コードをGUI上に比較表示し、共通部分と差分部分を分けて表示する。
実施の形態15において、シグネチャの開発者が、競合情報に攻撃コード判別情報を含める場合に、該当する複数の攻撃コードをGUI上に比較表示し、共通部分と差分部分を分けて表示する。
例えば、図32の攻撃コードB1104と攻撃コードD1105をGUI表示する場合、XYZは同じ黒で表示し、差であるBBとDDを赤で表示する。
単純に2つのデータの差分を表示する既存のツールを適用しても良く、2つの攻撃コードの差分が視覚的に明らかになることで、競合情報の生成が容易になる。
攻撃コード全体ではなく差異部分を切り出して競合情報として提供することにより、シグネチャの開発者は、当表示を元に、競合情報の情報量を縮小でき、スキャンデータにおける攻撃コードの検索も効率化が可能である。
実施の形態17.
実施の形態12〜16は、競合情報を利用することにより、ユーザに判断の材料を多く与え適切な処置を促したり、或いは危険度の高い攻撃への対処を優先させたりすることに着目したものであるが、本実施の形態は、そもそも、競合しないシグネチャを開発する場合の方法である。
実施の形態12〜16は、競合情報を利用することにより、ユーザに判断の材料を多く与え適切な処置を促したり、或いは危険度の高い攻撃への対処を優先させたりすることに着目したものであるが、本実施の形態は、そもそも、競合しないシグネチャを開発する場合の方法である。
本実施の形態では、図28の品質管理用IDS854とシグネチャDB115を連動させることにより、衝突が判明したシグネチャ間で、検知条件同士、及び、シグネチャ同士をGUIで比較表示する。
具体的には、例えば、図28の環境で、品質管理用IDS854において、シグネチャBが攻撃Dを検知した場合、図33に示すように、実施の形態12で説明した通知メッセージ生成部がシグネチャBのシグネチャ情報1201を生成し、GUI部880がこれを表示する。
さらに、品質管理用IDS854は、攻撃DB連携部1101を介して、攻撃Dの攻撃コードIDで、攻撃コードDB116を検索し、検索された攻撃コード情報に記載のシグネチャIDでシグネチャDB連携部870を介してシグネチャDB115を検索し、シグネチャ情報を得る。この場合は、通知メッセージ生成部が図33のようなシグネチャDのシグネチャ情報1202を生成し、GUI部880がこれを表示する
或いは、図28の1023bの様に攻撃コードと共に当攻撃コードを元々検知するシグネチャIDが送信されている場合は、1023b内のシグネチャIDを利用してシグネチャDB115を検索し、同様にシグネチャ情報を表示する。
或いは、図28の1023bの様に攻撃コードと共に当攻撃コードを元々検知するシグネチャIDが送信されている場合は、1023b内のシグネチャIDを利用してシグネチャDB115を検索し、同様にシグネチャ情報を表示する。
シグネチャBのシグネチャ情報1201と検索されたシグネチャDのシグネチャ情報1202を並べて表示する。
検知条件やシグネチャにおける両者の差を色づけして表示してもよい。例えば、検知条件が同じ箇所はハイライト表示するか、グレーアウト表示することによりシグネチャの差分を明確に表示してもよい。当機能によりシグネチャの修正の判断を容易にする。
シグネチャ情報の表示は、シグネチャの競合が発見されるごとに表示されても良い。例えば、1つの攻撃コードを3つ以上のシグネチャで検知した場合は、3つのシグネチャ情報が表示されても良い。
このように、本実施の形態では、検知可能な他の攻撃コードが存在すると判断されたシグネチャ(シグネチャB)について、当該シグネチャのシグネチャ属性情報と、当該他の攻撃コードを本来の検知対象としているシグネチャ(シグネチャD)のシグネチャ属性情報とを通知する通知メッセージを生成し、当該シグネチャ属性情報を通知する通知メッセージを出力する。
以上のように、本実施の形態によれば、競合関係にある複数のシグネチャを並べて提示することにより、競合しないシグネチャの開発を促すことができる。
実施の形態18.
開発したシグネチャが攻撃ではない通常のデータを攻撃として検知してしまうことを誤検知という。当実施の形態は誤検知の少ないシグネチャを作成するための方法である。
開発したシグネチャが攻撃ではない通常のデータを攻撃として検知してしまうことを誤検知という。当実施の形態は誤検知の少ないシグネチャを作成するための方法である。
HTTPプロトコルにおける内容を検知するシグネチャにおいては、攻撃用に特殊に加工されたHTMLタグを、検知するように作成することがある。
その場合、その特殊に加工されたHTMLタグが通常に運用されているホームページ上に存在するか、その頻度はどれくらいなのかを調べる必要がある。何故ならば、通常に運用されているホームページ上に存在した場合、そのサイトにユーザがアクセスしても、IDSが検知してしまう恐れが有るからである。この場合は攻撃ではないので、誤検知である。
そこで、シグネチャを作成する段階で、検知するデータの候補が決まった段階で、検索サービスで、そのデータを含むホームページが有るか検索する。
全くヒットしなければ、そのデータを検知するようにシグネチャを決定すればよいし、相当数のヒットが起こった場合は、検知するデータを見直す、という判断が可能となる。
具体的な実装例としては、図26に類するシグネチャ開発画面において、「誤検知の確認」というボタンを儲け、これを押すと、GUIからHTTPクライアントが起動され検知するデータをキーワードとしてインターネット上の検索エンジンに対して検索をかける。その結果を自動的に解析しヒットした件数を画面上に表示することで、その検知するデータの条件を採用するか、変更するか判断することが可能である。このような機能はGUIが呼び出すプログラムで実現可能である。
また、データとしてHTMLタグだけとは限らず、通常の検知するHTMLタグ以外のデータ列を検索にかけても良い。
また、開発したシグネチャから、攻撃コードを生成するツール等を利用して攻撃コードを生成し、その攻撃コードを同脆弱性に対応している異なるIDS製品に流す。検知に成功した場合は少なくともその攻撃コードは別製品においても攻撃コードであるとみなされていることになり、品質確認の1つの指標となる。
また、当発明では、脆弱性情報の収集、シグネチャ情報の収集、攻撃コードの収集、及びこれらの情報の利用に関して述べているが、実際の作業においては、Webサイトやメーリングリストなどの各情報ソースにおける、使用条件に従った作業を行うことになる。
前述した各実施の形態で、シグネチャ開発支援装置は、コンピュータで実現できるものである。
図示していないが、シグネチャ開発支援装置は、プログラムを実行するCPU(Central Processing Unit)を備えている。
例えば、CPUは、バスを介して、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、通信ボード、表示装置、K/B(キーボード)、マウス、FDD(Flexible Disk Drive)、CDD(コンパクトディスクドライブ)、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続可能である。
RAMは、揮発性メモリの一例である。ROM、フラッシュメモリ、FDD、CDD、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
前述した各実施の形態のシグネチャ開発支援装置が扱うデータや情報は、記憶装置あるいは記憶部に保存され、シグネチャ開発支援装置の各部により、記録され読み出されるものである。
また、通信ボードは、例えば、LAN、インターネット、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されている。
磁気ディスク装置には、オペレーティングシステム(OS)、ウィンドウシステム、プログラム群、ファイル群(データベース)が記憶されている。
プログラム群は、CPU、OS、ウィンドウシステムにより実行される。
上記シグネチャ開発支援装置の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ROMに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をCPUに実行させるプログラムが記憶される。これらのプログラムは、例えば、C言語やHTMLやSGMLやXMLなどのコンピュータ言語により作成される。
また、上記プログラムは、磁気ディスク装置、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体に記憶され、CPUにより読み出され実行される。
1 シグネチャ開発支援装置、100 Internet上の脆弱性情報のソース、111 製品データベース、112 脆弱性キーワードデータベース、113 脆弱性情報データベース、114 優先度判定データベース、115 シグネチャデータベース、116 攻撃コードデータベース、151 脆弱性関連情報収集部、152 キーワード抽出部、153 優先度判定部、154 脆弱性情報検索部、155 シグネチャ検索部、156 攻撃コード検索部、200 脆弱性情報処理部、201 出力部、251 脆弱性情報リンク部、300 シグネチャ・攻撃コード処理部、852 品質管理用IDS、860 テンプレート生成部、870 シグネチャデータベース連携部、1001 攻撃データベース連携部、1002 攻撃装置。
Claims (46)
- 脆弱性の特性を示すキーワードが一つ以上含まれる脆弱性情報を取得する脆弱性情報取得部と、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
前記脆弱性情報取得部により取得された脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部と、
前記キーワード抽出部によるキーワード抽出結果に基づいて、前記脆弱性情報取得部により取得された脆弱性情報に対する優先度を判定する優先度判定部とを有することを特徴とする情報処理装置。 - 前記優先度判定部は、
前記キーワードデータベースに記憶されている複数のキーワードについてキーワードごとのポイントを設定しておき、前記キーワード抽出部によって抽出されたキーワードごとにポイントを計上し、キーワードのポイントの合計値に基づいて、前記特定の脆弱性情報に対する優先度を判定することを特徴とする請求項1に記載の情報処理装置。 - 前記優先度判定部は、
前記キーワードデータベースに記憶されている複数のキーワードを複数のカテゴリーに分類し、カテゴリーごとにキーワードの優先順位を設定しておき、前記キーワード抽出部によって抽出されたキーワードごとにカテゴリー内の優先順位を判断して、前記特定の脆弱性情報に対する優先度を判定することを特徴とする請求項1に記載の情報処理装置。 - 前記脆弱性情報取得部は、
脆弱性情報の生成日を示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性情報の生成日を示すキーワードを抽出し、
前記優先度判定部は、
脆弱性情報の生成日から時間が経過するほど数値が低くなるポイントを設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性情報の生成日に基づき脆弱性情報の生成日からの経過時間を算出し、算出した経過時間に基づいてポイントを計上することを特徴とする請求項2に記載の情報処理装置。 - 前記脆弱性情報取得部は、
脆弱性情報の生成日を示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性情報の生成日を示すキーワードを抽出し、
前記優先度判定部は、
脆弱性情報の生成日からの経過時間に関するカテゴリーを設け、脆弱性情報の生成日からの時間が経過するほど順位が低くなる優先順位を設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性情報の生成日に基づき脆弱性情報の生成日からの経過時間を算出し、算出した経過時間に基づいて優先順位を判断することを特徴とする請求項3に記載の情報処理装置。 - 前記脆弱性情報取得部は、
脆弱性情報に示されている脆弱性の危険度の大きさを示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性の危険度の大きさを示すキーワードを抽出し、
前記優先度判定部は、
脆弱性の危険度が大きくなるほど数値が大きくなるポイントを設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性の危険度の大きさに基づいてポイントを計上することを特徴とする請求項2に記載の情報処理装置。 - 前記脆弱性情報取得部は、
脆弱性情報に示されている脆弱性の危険度の大きさを示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性の危険度の大きさを示すキーワードを抽出し、
前記優先度判定部は、
脆弱性の危険度に関するカテゴリーを設け、脆弱性の危険度が大きくなるほど順位が高くなる優先順位を設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性の危険度の大きさに基づいて優先順位を判断することを特徴とする請求項3に記載の情報処理装置。 - 前記優先度判定部は、
脆弱性情報の生成日からの経過時間が一定レベルを超えている脆弱性情報に対しては優先度を判定しないことを特徴とする請求項4又は5に記載の情報処理装置。 - 前記優先度判定部は、
脆弱性の危険度が一定レベル以下の脆弱性情報に対しては優先度を判定しないことを特徴とする請求項6又は7に記載の情報処理装置。 - 脆弱性の特性を示すキーワードが一つ以上含まれる複数の脆弱性情報を取得する脆弱性情報取得部と
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
前記脆弱性情報取得部により取得された複数の脆弱性情報に対して、それぞれの脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部と、
前記キーワード抽出部によるキーワード抽出結果を比較し、キーワード抽出結果において所定の共通関係を有する二以上の脆弱性情報を相互に対応づける脆弱性情報対応付け部とを有することを特徴とする情報処理装置。 - 前記脆弱性情報取得部は、
複数のソースから、複数の脆弱性情報を取得することを特徴とする請求項10に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記キーワード抽出部によるキーワード抽出結果と、前記脆弱性情報対応付け部による対応付けの有無とに基づいて、前記キーワード抽出部によりキーワードの抽出が行われた脆弱性情報に対する優先度を判定する優先度判定部を有することを特徴とする請求項10に記載の情報処理装置。 - 前記優先度判定部は、
前記脆弱性情報対応付け部により他の脆弱性情報との対応付けが行われた脆弱性情報の優先度を、前記脆弱性情報対応付け部により対応付けが行われていない脆弱性情報の優先度よりも高く判定することを特徴とする請求項12に記載の情報処理装置。 - 前記情報処理装置は、更に
前記キーワード抽出部によるキーワード抽出結果に基づいて、キーワードの抽出が行われた脆弱性情報に対する優先度を判定する優先度判定部を有し、
前記脆弱性情報対応付け部は、
前記優先度判定部により判定された優先度に基づいて前記複数の脆弱性情報の中から選択された脆弱性情報とキーワード抽出結果において所定の共通関係を有する脆弱性情報を、当該選択された脆弱性情報に対応付けることを特徴とする請求項10に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記キーワード抽出部によるキーワード抽出結果とともに、脆弱性情報を記憶する脆弱性情報データベースを有し、
前記脆弱性情報取得部は、
前記脆弱性情報データベースに記憶されているいずれかの脆弱性情報の更新情報である更新脆弱性情報を受信する場合があり、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された更新脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出し、
前記脆弱性情報対応付け部は、
前記キーワード抽出部による更新脆弱性情報のキーワード抽出結果と前記脆弱性情報データベースに記憶されているキーワード抽出結果とを比較し、前記脆弱性情報データベースに記憶されている脆弱性情報のうち、更新脆弱性情報とキーワード抽出結果において所定の共通関係を有する脆弱性情報を選択し、選択した脆弱性情報と更新脆弱性情報とを相互に対応づけることを特徴とする請求項10に記載の情報処理装置。 - 複数のシグネチャを記憶するシグネチャデータベースと、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索部と、
脆弱性の特性を示すキーワードが一つ以上含まれた複数のシグネチャ生成済みの脆弱性情報を、それぞれのシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子と、それぞれのシグネチャ生成済みの脆弱性情報に含まれるキーワードの抽出結果とともに記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶されたシグネチャ生成済みの脆弱性情報の中から特定の条件に合致するシグネチャ生成済みの脆弱性情報を検索する脆弱性情報検索部と、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部とを有し、
前記脆弱性情報検索部は、
前記キーワード抽出部による前記特定の脆弱性情報のキーワード抽出結果と、前記脆弱性情報データベースに記憶されている複数のシグネチャ生成済みの脆弱性情報のキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャ生成済みの脆弱性情報を前記脆弱性情報データベースから検索し、検索したシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子を抽出し、
前記シグネチャ検索部は、
前記脆弱性情報検索部により抽出されたシグネチャ識別子に一致するシグネチャを前記シグネチャデータベースから検索することを特徴とする情報処理装置。 - 前記情報処理装置は、
脆弱性の特性を示すキーワードが一つ以上含まれた脆弱性情報と、当該脆弱性情報と対応関係にあるシグネチャを取得する脆弱性情報取得部と、
シグネチャの内容の少なくとも一部を出力する出力部とを有し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された取得脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出し、
前記脆弱性情報検索部は、
前記キーワード抽出部による前記取得脆弱性情報のキーワード抽出結果と、前記脆弱性情報データベースに記憶されている複数のシグネチャ生成済みの脆弱性情報のキーワード抽出結果とを比較し、前記取得脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャ生成済みの脆弱性情報を前記脆弱性情報データベースから検索し、検索したシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子を抽出し、
前記シグネチャ検索部は、
前記脆弱性情報検索部により抽出されたシグネチャ識別子に一致するシグネチャを前記シグネチャデータベースから検索し、
前記出力部は、
前記シグネチャ検索部により検索されたシグネチャの内容の少なくとも一部と、前記脆弱性情報取得部により取得されたシグネチャの内容の少なくとも一部とを出力することを特徴とする請求項16に記載の情報処理装置。 - 脆弱性の特性を示すキーワードが一つ以上含まれた複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索部と、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャと対応関係にある脆弱性情報に含まれるキーワードの抽出結果とともに記憶するシグネチャデータベースと、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索部と、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出部とを有し、
前記シグネチャ検索部は、
前記キーワード抽出部による前記特定の脆弱性情報のキーワード抽出結果と、シグネチャデータベースに記憶されている複数のシグネチャに関するキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャを前記シグネチャデータベースから検索し、検索したシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子を抽出し、
前記脆弱性情報検索部は、
前記シグネチャ検索部により抽出された脆弱性情報識別子に一致する脆弱性情報を前記脆弱性情報データベースから検索することを特徴とする情報処理装置。 - 前記情報処理装置は、
脆弱性の特性を示すキーワードが一つ以上含まれた脆弱性情報と、当該脆弱性情報と対応関係にあるシグネチャを取得する脆弱性情報取得部と、
シグネチャの内容の少なくとも一部を出力する出力部とを有し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された取得脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出し、
前記シグネチャ検索部は、
前記キーワード抽出部による前記取得脆弱性情報のキーワード抽出結果と、シグネチャデータベースに記憶されている複数のシグネチャに関するキーワード抽出結果とを比較し、前記取得脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャを前記シグネチャデータベースから検索し、
前記出力部は、
前記シグネチャ検索部により検索されたシグネチャの内容の少なくとも一部と、前記脆弱性情報取得部により取得されたシグネチャの内容の少なくとも一部とを出力することを特徴とする請求項18に記載の情報処理装置。 - 複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索部と、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャの属性を示すシグネチャ属性情報とともに記憶するシグネチャデータベースと、
攻撃コードを取得する攻撃コード取得部と、
前記シグネチャデータベースに記憶されている複数のシグネチャのうち、前記攻撃コード取得部により取得された取得攻撃コードを検知可能なシグネチャを判断する攻撃検知性判断部と、
脆弱性情報の内容の少なくとも一部と、シグネチャ属性情報の内容の少なくとも一部を出力する出力部とを有し、
前記脆弱性情報検索部は、
前記シグネチャデータベースに記憶されている脆弱性情報識別子に基づいて、前記攻撃検知性判断部により前記取得攻撃コードを検知可能と判断された検知可能シグネチャと対応関係にある脆弱性情報を検索し、
前記出力部は、
前記シグネチャデータベースに記憶されている前記検知可能シグネチャのシグネチャ属性情報の内容の少なくとも一部と、前記脆弱性情報検索部により検索された脆弱性情報の内容の少なくとも一部とを出力することを特徴とする情報処理装置。 - 前記情報処理装置は、更に、
前記検知可能シグネチャの内容を変更してシグネチャのテンプレートを生成するテンプレート生成部を有することを特徴とする請求項20に記載の情報処理装置。 - 前記情報処理装置は、
前記検知可能シグネチャが前記取得攻撃コードを検知可能である旨の記述を、前記検知可能シグネチャのシグネチャ属性情報に追加して、シグネチャデータベースを更新するシグネチャデータベース更新部を有することを特徴とする請求項20に記載の情報処理装置。 - 特定の攻撃コードを検知対象とするシグネチャを取得するシグネチャ取得部と、
前記シグネチャ取得部により取得されたシグネチャが検知対象としている前記特定の攻撃コードの亜種の攻撃コードを検知対象とする派生シグネチャを生成するための派生シグネチャ生成条件を入力する派生シグネチャ生成条件入力部と、
前記派生シグネチャ生成条件入力部により入力された派生シグネチャ生成条件に従って、前記シグネチャ取得部により取得されたシグネチャの内容を変更して派生シグネチャを生成する派生シグネチャ生成部とを有することを特徴とする情報処理装置。 - 前記派生シグネチャ生成部は、
前記特定の攻撃コードの攻撃対象が有するデータフォーマットを解析し、前記特定の攻撃コードの攻撃対象が有するデータフォーマットに基づいて、派生シグネチャを生成することを特徴とする請求項23に記載の情報処理装置。 - それぞれ特定の攻撃コードを検知対象とする複数のシグネチャを記憶するシグネチャデータベースと、
前記シグネチャデータベースに記憶されたシグネチャごとに、検知対象の攻撃コード以外にそれぞれのシグネチャが検知可能な他の攻撃コードが存在するか否かを判断する攻撃検知性判断部と、
前記攻撃検知性判断部により検知可能な他の攻撃コードが存在すると判断されたシグネチャについて、前記攻撃検知性判断部により判断された他の攻撃コードを示すシグネチャ属性情報を生成し、生成したシグネチャ属性情報を当該シグネチャに対応付けて前記シグネチャデータベースに格納するシグネチャデータベース更新部とを有することを特徴とする情報処理装置。 - 前記情報処理装置は、更に、
前記攻撃検知性判断部により検知可能な他の攻撃コードが存在すると判断されたシグネチャについて、前記攻撃検知性判断部により判断された他の攻撃コードを通知する通知メッセージを生成する通知メッセージ生成部と、
前記通知メッセージ生成部により生成された通知メッセージを出力する出力部とを有することを特徴とする請求項25に記載の情報処理装置。 - 前記攻撃検知性判断部は、
複数のシグネチャについて特定のシグネチャ試行順序で攻撃コードの検知可否の試行を行うとともに、前記特定のシグネチャ試行順序と異なる試行順序により複数のシグネチャについて攻撃コードの検知可否の試行を行って、それぞれのシグネチャが検知可能な他の攻撃コードが存在するか否かを判断することを特徴とする請求項25に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記攻撃検知性判断部によりいずれかのシグネチャについて他の攻撃コードが存在すると判断された場合に、当該シグネチャが本来検知対象としている攻撃コード及び前記攻撃検知性判断部により判断された他の攻撃コードに対して優先度を設定する攻撃コード優先度設定部を有し、
前記通知メッセージ生成部は、
前記攻撃コード優先度設定部により優先度が高く設定された攻撃コードに対する措置を優先的に講じるよう通知する通知メッセージを生成することを特徴とする請求項26に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記攻撃検知性判断部によりいずれかのシグネチャについて他の攻撃コードが存在すると判断された場合に、当該シグネチャが実際にいずれかの攻撃コードを検知した際に当該シグネチャが本来検知対象としている攻撃コード及び前記攻撃検知性判断部により判断された他の攻撃コードのいずれが検知されたのかを判別するための攻撃コード判別情報を生成する攻撃コード判別情報生成部を有することを特徴とする請求項25に記載の情報処理装置。 - 前記シグネチャデータベースは、
複数のシグネチャとともに、それぞれのシグネチャの属性を示すシグネチャ属性情報を記憶しており、
前記通知メッセージ部は、
前記前記攻撃検知性判断部により検知可能な他の攻撃コードが存在すると判断されたシグネチャについて、当該シグネチャのシグネチャ属性情報と、他の攻撃コードを本来の検知対象としているシグネチャのシグネチャ属性情報とを通知する通知メッセージを生成し、
前記出力部は、
前記通知メッセージ生成部により生成されたシグネチャ属性情報を通知する通知メッセージを出力することを特徴とする請求項26に記載の情報処理装置。 - 脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースを用いる情報処理方法であって、
脆弱性の特性を示すキーワードが一つ以上含まれる脆弱性情報を取得する脆弱性情報取得ステップと、
前記脆弱性情報取得ステップにより取得された脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出ステップと、
前記キーワード抽出ステップによるキーワード抽出結果に基づいて、前記脆弱性情報取得ステップにより取得された脆弱性情報に対する優先度を判定する優先度判定ステップとを有することを特徴とする情報処理方法。 - 脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースを用いる情報処理方法であって、
脆弱性の特性を示すキーワードが一つ以上含まれる複数の脆弱性情報を取得する脆弱性情報取得ステップと
前記脆弱性情報取得ステップにより取得された複数の脆弱性情報に対して、それぞれの脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出ステップと、
前記キーワード抽出ステップによるキーワード抽出結果を比較し、キーワード抽出結果において所定の共通関係を有する二以上の脆弱性情報を相互に対応づける脆弱性情報対応付けステップとを有することを特徴とする情報処理方法。 - 複数のシグネチャを記憶するシグネチャデータベースと、
脆弱性の特性を示すキーワードが一つ以上含まれた複数のシグネチャ生成済みの脆弱性情報を、それぞれのシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子と、それぞれのシグネチャ生成済みの脆弱性情報に含まれるキーワードの抽出結果とともに記憶する脆弱性情報データベースと、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
を用いる情報処理方法であって、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索ステップと、
前記脆弱性情報データベースに記憶されたシグネチャ生成済みの脆弱性情報の中から特定の条件に合致するシグネチャ生成済みの脆弱性情報を検索する脆弱性情報検索ステップと、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出ステップとを有し、
前記脆弱性情報検索ステップは、
前記キーワード抽出ステップによる前記特定の脆弱性情報のキーワード抽出結果と、前記脆弱性情報データベースに記憶されている複数のシグネチャ生成済みの脆弱性情報のキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャ生成済みの脆弱性情報を前記脆弱性情報データベースから検索し、検索したシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子を抽出し、
前記シグネチャ検索ステップは、
前記脆弱性情報検索ステップにより抽出されたシグネチャ識別子に一致するシグネチャを前記シグネチャデータベースから検索することを特徴とする情報処理方法。 - 脆弱性の特性を示すキーワードが一つ以上含まれた複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャと対応関係にある脆弱性情報に含まれるキーワードの抽出結果とともに記憶するシグネチャデータベースと、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
を用いる情報処理方法であって、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索ステップと、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索ステップと、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出ステップとを有し、
前記シグネチャ検索ステップは、
前記キーワード抽出ステップによる前記特定の脆弱性情報のキーワード抽出結果と、シグネチャデータベースに記憶されている複数のシグネチャに関するキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャを前記シグネチャデータベースから検索し、検索したシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子を抽出し、
前記脆弱性情報検索ステップは、
前記シグネチャ検索ステップにより抽出された脆弱性情報識別子に一致する脆弱性情報を前記脆弱性情報データベースから検索することを特徴とする情報処理方法。 - 複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャの属性を示すシグネチャ属性情報とともに記憶するシグネチャデータベースと、
を用いる情報処理方法であって、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索ステップと、
攻撃コードを取得する攻撃コード取得ステップと、
前記シグネチャデータベースに記憶されている複数のシグネチャのうち、前記攻撃コード取得ステップにより取得された取得攻撃コードを検知可能なシグネチャを判断する攻撃検知性判断ステップと、
脆弱性情報の内容の少なくとも一部と、シグネチャ属性情報の内容の少なくとも一部を出力する出力ステップとを有し、
前記脆弱性情報検索ステップは、
前記シグネチャデータベースに記憶されている脆弱性情報識別子に基づいて、前記攻撃検知性判断ステップにより前記取得攻撃コードを検知可能と判断された検知可能シグネチャと対応関係にある脆弱性情報を検索し、
前記出力ステップは、
前記シグネチャデータベースに記憶されている前記検知可能シグネチャのシグネチャ属性情報の内容の少なくとも一部と、前記脆弱性情報検索ステップにより検索された脆弱性情報の内容の少なくとも一部とを出力することを特徴とする情報処理方法。 - 特定の攻撃コードを検知対象とするシグネチャを取得するシグネチャ取得ステップと、
前記シグネチャ取得ステップにより取得されたシグネチャが検知対象としている前記特定の攻撃コードの亜種の攻撃コードを検知対象とする派生シグネチャを生成するための派生シグネチャ生成条件を入力する派生シグネチャ生成条件入力ステップと、
前記派生シグネチャ生成条件入力ステップにより入力された派生シグネチャ生成条件に従って、前記シグネチャ取得ステップにより取得されたシグネチャの内容を変更して派生シグネチャを生成する派生シグネチャ生成ステップとを有することを特徴とする情報処理方法。 - それぞれ特定の攻撃コードを検知対象とする複数のシグネチャを記憶するシグネチャデータベースを用いる情報処理方法であって、
前記シグネチャデータベースに記憶されたシグネチャごとに、検知対象の攻撃コード以外にそれぞれのシグネチャが検知可能な他の攻撃コードが存在するか否かを判断する攻撃検知性判断ステップと、
前記攻撃検知性判断ステップにより検知可能な他の攻撃コードが存在すると判断されたシグネチャについて、前記攻撃検知性判断ステップにより判断された他の攻撃コードを示すシグネチャ属性情報を生成し、生成したシグネチャ属性情報を当該シグネチャに対応付けて前記シグネチャデータベースに格納するシグネチャデータベース更新ステップとを有することを特徴とする情報処理方法。 - 脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースを用いるプログラムであって、
脆弱性の特性を示すキーワードが一つ以上含まれる脆弱性情報を取得する脆弱性情報取得処理と、
前記脆弱性情報取得処理により取得された脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出処理と、
前記キーワード抽出処理によるキーワード抽出結果に基づいて、前記脆弱性情報取得処理により取得された脆弱性情報に対する優先度を判定する優先度判定処理とをコンピュータに実行させることを特徴とするプログラム。 - 脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースを用いるプログラムであって、
脆弱性の特性を示すキーワードが一つ以上含まれる複数の脆弱性情報を取得する脆弱性情報取得処理と
前記脆弱性情報取得処理により取得された複数の脆弱性情報に対して、それぞれの脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出処理と、
前記キーワード抽出処理によるキーワード抽出結果を比較し、キーワード抽出結果において所定の共通関係を有する二以上の脆弱性情報を相互に対応づける脆弱性情報対応付け処理とをコンピュータに実行させることを特徴とするプログラム。 - 複数のシグネチャを記憶するシグネチャデータベースと、
脆弱性の特性を示すキーワードが一つ以上含まれた複数のシグネチャ生成済みの脆弱性情報を、それぞれのシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子と、それぞれのシグネチャ生成済みの脆弱性情報に含まれるキーワードの抽出結果とともに記憶する脆弱性情報データベースと、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
を用いるプログラムであって、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索処理と、
前記脆弱性情報データベースに記憶されたシグネチャ生成済みの脆弱性情報の中から特定の条件に合致するシグネチャ生成済みの脆弱性情報を検索する脆弱性情報検索処理と、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出処理とをコンピュータに実行させ、
前記脆弱性情報検索処理は、
前記キーワード抽出処理による前記特定の脆弱性情報のキーワード抽出結果と、前記脆弱性情報データベースに記憶されている複数のシグネチャ生成済みの脆弱性情報のキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャ生成済みの脆弱性情報を前記脆弱性情報データベースから検索し、検索したシグネチャ生成済みの脆弱性情報と対応関係にあるシグネチャのシグネチャ識別子を抽出し、
前記シグネチャ検索処理は、
前記脆弱性情報検索処理により抽出されたシグネチャ識別子に一致するシグネチャを前記シグネチャデータベースから検索することを特徴とするプログラム。 - 脆弱性の特性を示すキーワードが一つ以上含まれた複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャと対応関係にある脆弱性情報に含まれるキーワードの抽出結果とともに記憶するシグネチャデータベースと、
脆弱性の特性を示す複数のキーワードを記憶するキーワードデータベースと、
を用いるプログラムであって、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索処理と、
前記シグネチャデータベースに記憶されたシグネチャの中から特定の条件に合致するシグネチャを検索するシグネチャ検索処理と、
脆弱性の特性を示すキーワードが一つ以上含まれる特定の脆弱性情報から、前記キーワードデータベースに記憶されているキーワードに合致するキーワードを抽出するキーワード抽出処理とをコンピュータに実行させ、
前記シグネチャ検索処理は、
前記キーワード抽出処理による前記特定の脆弱性情報のキーワード抽出結果と、シグネチャデータベースに記憶されている複数のシグネチャに関するキーワード抽出結果とを比較し、前記特定の脆弱性情報とキーワード抽出結果において所定の共通関係を有するシグネチャを前記シグネチャデータベースから検索し、検索したシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子を抽出し、
前記脆弱性情報検索処理は、
前記シグネチャ検索処理により抽出された脆弱性情報識別子に一致する脆弱性情報を前記脆弱性情報データベースから検索することを特徴とするプログラム。 - 複数の脆弱性情報を記憶する脆弱性情報データベースと、
前記脆弱性情報データベースに記憶された複数の脆弱性情報から生成された複数のシグネチャを、それぞれのシグネチャと対応関係にある脆弱性情報の脆弱性情報識別子と、それぞれのシグネチャの属性を示すシグネチャ属性情報とともに記憶するシグネチャデータベースと、
を用いるプログラムであって、
前記脆弱性情報データベースに記憶された脆弱性情報の中から特定の条件に合致する脆弱性情報を検索する脆弱性情報検索処理と、
攻撃コードを取得する攻撃コード取得処理と、
前記シグネチャデータベースに記憶されている複数のシグネチャのうち、前記攻撃コード取得処理により取得された取得攻撃コードを検知可能なシグネチャを判断する攻撃検知性判断処理と、
脆弱性情報の内容の少なくとも一部と、シグネチャ属性情報の内容の少なくとも一部を出力する出力処理とをコンピュータに実行させ、
前記脆弱性情報検索処理は、
前記シグネチャデータベースに記憶されている脆弱性情報識別子に基づいて、前記攻撃検知性判断処理により前記取得攻撃コードを検知可能と判断された検知可能シグネチャと対応関係にある脆弱性情報を検索し、
前記出力処理は、
前記シグネチャデータベースに記憶されている前記検知可能シグネチャのシグネチャ属性情報の内容の少なくとも一部と、前記脆弱性情報検索処理により検索された脆弱性情報の内容の少なくとも一部とを出力することを特徴とするプログラム。 - 特定の攻撃コードを検知対象とするシグネチャを取得するシグネチャ取得処理と、
前記シグネチャ取得処理により取得されたシグネチャが検知対象としている前記特定の攻撃コードの亜種の攻撃コードを検知対象とする派生シグネチャを生成するための派生シグネチャ生成条件を入力する派生シグネチャ生成条件入力処理と、
前記派生シグネチャ生成条件入力処理により入力された派生シグネチャ生成条件に従って、前記シグネチャ取得処理により取得されたシグネチャの内容を変更して派生シグネチャを生成する派生シグネチャ生成処理とをコンピュータに実行させることを特徴とするプログラム。 - それぞれ特定の攻撃コードを検知対象とする複数のシグネチャを記憶するシグネチャデータベースを用いるプログラムであって、
前記シグネチャデータベースに記憶されたシグネチャごとに、検知対象の攻撃コード以外にそれぞれのシグネチャが検知可能な他の攻撃コードが存在するか否かを判断する攻撃検知性判断処理と、
前記攻撃検知性判断処理により検知可能な他の攻撃コードが存在すると判断されたシグネチャについて、前記攻撃検知性判断処理により判断された他の攻撃コードを示すシグネチャ属性情報を生成し、生成したシグネチャ属性情報を当該シグネチャに対応付けて前記シグネチャデータベースに格納するシグネチャデータベース更新処理とをコンピュータに実行させることを特徴とするプログラム。 - 前記脆弱性情報取得部は、
脆弱性情報の生成日を示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性情報の生成日を示すキーワードを抽出し、
前記優先度判定部は、
脆弱性情報の生成日から時間が経過するほど数値が高くなるポイントを設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性情報の生成日に基づき脆弱性情報の生成日からの経過時間を算出し、算出した経過時間に基づいてポイントを計上することを特徴とする請求項2に記載の情報処理装置。 - 前記脆弱性情報取得部は、
脆弱性情報の生成日を示すキーワードが含まれる脆弱性情報を取得し、
前記キーワード抽出部は、
前記脆弱性情報取得部により取得された脆弱性情報から、脆弱性情報の生成日を示すキーワードを抽出し、
前記優先度判定部は、
脆弱性情報の生成日からの経過時間に関するカテゴリーを設け、脆弱性情報の生成日からの時間が経過するほど順位が高くなる優先順位を設定しておき、前記キーワード抽出部により抽出されたキーワードに示された脆弱性情報の生成日に基づき脆弱性情報の生成日からの経過時間を算出し、算出した経過時間に基づいて優先順位を判断することを特徴とする請求項3に記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005242533A JP2007058514A (ja) | 2005-08-24 | 2005-08-24 | 情報処理装置及び情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005242533A JP2007058514A (ja) | 2005-08-24 | 2005-08-24 | 情報処理装置及び情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007058514A true JP2007058514A (ja) | 2007-03-08 |
Family
ID=37921973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005242533A Pending JP2007058514A (ja) | 2005-08-24 | 2005-08-24 | 情報処理装置及び情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007058514A (ja) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037545A (ja) * | 2007-08-03 | 2009-02-19 | National Institute Of Information & Communication Technology | マルウェアの類似性検査方法及び装置 |
JP2010086311A (ja) * | 2008-09-30 | 2010-04-15 | Toshiba Corp | 脆弱性対応優先度表示装置及びプログラム |
JP2010176658A (ja) * | 2008-12-17 | 2010-08-12 | Symantec Corp | レガシーアプリケーション用にコミュニティ検査済みセキュリティ機能を有効化するため方法およびシステム |
WO2014208427A1 (ja) * | 2013-06-24 | 2014-12-31 | 日本電信電話株式会社 | セキュリティ情報管理システム及びセキュリティ情報管理方法 |
KR101751388B1 (ko) | 2016-07-05 | 2017-06-27 | (주)엔키소프트 | 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법 |
KR101806118B1 (ko) * | 2016-11-04 | 2017-12-07 | 한국인터넷진흥원 | 오픈 포트 배너 키워드 분석을 통한 취약점 정보를 식별하는 방법 및 장치 |
JP2018005282A (ja) * | 2016-06-27 | 2018-01-11 | 日本電信電話株式会社 | 管理装置及び管理方法 |
KR101893090B1 (ko) * | 2017-11-15 | 2018-08-29 | 한국인터넷진흥원 | 취약점 정보 관리 방법 및 그 장치 |
JP2019192101A (ja) * | 2018-04-27 | 2019-10-31 | 矢崎総業株式会社 | 脆弱性情報生成装置および脆弱性評価装置 |
WO2020050355A1 (ja) * | 2018-09-05 | 2020-03-12 | Necソリューションイノベータ株式会社 | 脆弱性情報管理装置、脆弱性情報管理方法、およびプログラム |
WO2020079928A1 (ja) * | 2018-10-17 | 2020-04-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理装置、情報処理方法及びプログラム |
JP2020065242A (ja) * | 2018-10-17 | 2020-04-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 情報処理装置、情報処理方法及びプログラム |
JP2020155986A (ja) * | 2019-03-20 | 2020-09-24 | 三菱電機インフォメーションネットワーク株式会社 | ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法 |
KR20210063049A (ko) * | 2019-11-22 | 2021-06-01 | 한국전자통신연구원 | 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 |
US11418534B2 (en) | 2018-02-23 | 2022-08-16 | Hitachi, Ltd. | Threat analysis system and threat analysis method |
WO2022249588A1 (ja) * | 2021-05-24 | 2022-12-01 | 株式会社日立製作所 | 計算機システム及びサイバーセキュリティ情報の評価方法 |
WO2023181145A1 (ja) * | 2022-03-23 | 2023-09-28 | 三菱電機株式会社 | リスク抽出装置、リスク抽出方法、リスク抽出プログラム |
US11876813B2 (en) * | 2021-09-20 | 2024-01-16 | Normalyze, Inc. | Cloud data schema detection system |
JP7428084B2 (ja) | 2020-06-10 | 2024-02-06 | 富士通株式会社 | 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001209655A (ja) * | 2000-01-28 | 2001-08-03 | Nec Corp | 情報提供装置、情報更新方法、情報提供プログラムを記録した記録媒体、及び情報提供システム |
JP2004054706A (ja) * | 2002-07-22 | 2004-02-19 | Sofutekku:Kk | セキュリティリスク管理システム、そのプログラムおよび記録媒体 |
-
2005
- 2005-08-24 JP JP2005242533A patent/JP2007058514A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001209655A (ja) * | 2000-01-28 | 2001-08-03 | Nec Corp | 情報提供装置、情報更新方法、情報提供プログラムを記録した記録媒体、及び情報提供システム |
JP2004054706A (ja) * | 2002-07-22 | 2004-02-19 | Sofutekku:Kk | セキュリティリスク管理システム、そのプログラムおよび記録媒体 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037545A (ja) * | 2007-08-03 | 2009-02-19 | National Institute Of Information & Communication Technology | マルウェアの類似性検査方法及び装置 |
JP2010086311A (ja) * | 2008-09-30 | 2010-04-15 | Toshiba Corp | 脆弱性対応優先度表示装置及びプログラム |
JP2010176658A (ja) * | 2008-12-17 | 2010-08-12 | Symantec Corp | レガシーアプリケーション用にコミュニティ検査済みセキュリティ機能を有効化するため方法およびシステム |
WO2014208427A1 (ja) * | 2013-06-24 | 2014-12-31 | 日本電信電話株式会社 | セキュリティ情報管理システム及びセキュリティ情報管理方法 |
JP6042541B2 (ja) * | 2013-06-24 | 2016-12-14 | 日本電信電話株式会社 | セキュリティ情報管理システム、セキュリティ情報管理方法及びセキュリティ情報管理プログラム |
EP2998884A4 (en) * | 2013-06-24 | 2016-12-28 | Nippon Telegraph & Telephone | SECURITY INFORMATION MANAGEMENT SYSTEM AND SECURITY INFORMATION MANAGEMENT METHOD |
US10789366B2 (en) | 2013-06-24 | 2020-09-29 | Nippon Telegraph And Telephone Corporation | Security information management system and security information management method |
JP2018005282A (ja) * | 2016-06-27 | 2018-01-11 | 日本電信電話株式会社 | 管理装置及び管理方法 |
KR101751388B1 (ko) | 2016-07-05 | 2017-06-27 | (주)엔키소프트 | 오픈소스 취약점 분석 대상 검색 및 수집을 위한 빅데이터 분석 기반 웹 크롤링 시스템 및 그 방법 |
US10339319B2 (en) | 2016-11-04 | 2019-07-02 | Korea Internet & Security Agency | Method and apparatus for identifying vulnerability information using keyword analysis for banner of open port |
KR101806118B1 (ko) * | 2016-11-04 | 2017-12-07 | 한국인터넷진흥원 | 오픈 포트 배너 키워드 분석을 통한 취약점 정보를 식별하는 방법 및 장치 |
KR101893090B1 (ko) * | 2017-11-15 | 2018-08-29 | 한국인터넷진흥원 | 취약점 정보 관리 방법 및 그 장치 |
US11418534B2 (en) | 2018-02-23 | 2022-08-16 | Hitachi, Ltd. | Threat analysis system and threat analysis method |
JP2019192101A (ja) * | 2018-04-27 | 2019-10-31 | 矢崎総業株式会社 | 脆弱性情報生成装置および脆弱性評価装置 |
JP7040992B2 (ja) | 2018-04-27 | 2022-03-23 | 矢崎総業株式会社 | 脆弱性情報生成装置および脆弱性評価装置 |
JPWO2020050355A1 (ja) * | 2018-09-05 | 2021-08-30 | Necソリューションイノベータ株式会社 | 脆弱性情報管理装置、脆弱性情報管理方法、およびプログラム |
WO2020050355A1 (ja) * | 2018-09-05 | 2020-03-12 | Necソリューションイノベータ株式会社 | 脆弱性情報管理装置、脆弱性情報管理方法、およびプログラム |
JP7173619B2 (ja) | 2018-09-05 | 2022-11-16 | Necソリューションイノベータ株式会社 | 脆弱性情報管理装置、脆弱性情報管理方法、およびプログラム |
JP7344009B2 (ja) | 2018-10-17 | 2023-09-13 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理装置、情報処理方法及びプログラム |
JP2020065242A (ja) * | 2018-10-17 | 2020-04-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 情報処理装置、情報処理方法及びプログラム |
CN112867642B (zh) * | 2018-10-17 | 2023-12-05 | 松下电器(美国)知识产权公司 | 信息处理装置、信息处理方法以及记录介质 |
CN112867642A (zh) * | 2018-10-17 | 2021-05-28 | 松下电器(美国)知识产权公司 | 信息处理装置、信息处理方法以及程序 |
US11790088B2 (en) | 2018-10-17 | 2023-10-17 | Panasonic Intellectual Property Corporation Of America | Information processing device, information processing method, and recording medium |
WO2020079928A1 (ja) * | 2018-10-17 | 2020-04-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理装置、情報処理方法及びプログラム |
JP2020155986A (ja) * | 2019-03-20 | 2020-09-24 | 三菱電機インフォメーションネットワーク株式会社 | ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法 |
JP7166969B2 (ja) | 2019-03-20 | 2022-11-08 | 三菱電機インフォメーションネットワーク株式会社 | ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法 |
KR20210063049A (ko) * | 2019-11-22 | 2021-06-01 | 한국전자통신연구원 | 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 |
KR102324489B1 (ko) * | 2019-11-22 | 2021-11-11 | 한국전자통신연구원 | 산업 제어 시스템을 위한 위험도 산출 방법 및 이를 위한 장치 |
JP7428084B2 (ja) | 2020-06-10 | 2024-02-06 | 富士通株式会社 | 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 |
WO2022249588A1 (ja) * | 2021-05-24 | 2022-12-01 | 株式会社日立製作所 | 計算機システム及びサイバーセキュリティ情報の評価方法 |
US11876813B2 (en) * | 2021-09-20 | 2024-01-16 | Normalyze, Inc. | Cloud data schema detection system |
WO2023181145A1 (ja) * | 2022-03-23 | 2023-09-28 | 三菱電機株式会社 | リスク抽出装置、リスク抽出方法、リスク抽出プログラム |
JP7433551B1 (ja) | 2022-03-23 | 2024-02-19 | 三菱電機株式会社 | リスク抽出装置、リスク抽出方法、リスク抽出プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007058514A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
US9871815B2 (en) | Method and system for automated computer vulnerability tracking | |
CN102171702B (zh) | 机密信息的检测 | |
CN111459799B (zh) | 一种基于Github的软件缺陷检测模型建立、检测方法及系统 | |
US7840573B2 (en) | Trusted file relabeler | |
Aloraini et al. | An empirical study of security warnings from static application security testing tools | |
US20040181677A1 (en) | Method for detecting malicious scripts using static analysis | |
EP2560120B1 (en) | Systems and methods for identifying associations between malware samples | |
JP6749367B2 (ja) | ファイル共有ネットワークにおけるスニペット照合 | |
CN104520871A (zh) | 漏洞矢量信息分析 | |
Carrier et al. | Automated Digital Evidence Target Definition Using Outlier Analysis and Existing Evidence. | |
KR20120071834A (ko) | 악성코드 그룹 및 변종 자동 관리 시스템 | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
JP2014502753A (ja) | ウェブページ情報の検出方法及びシステム | |
US20080127043A1 (en) | Automatic Extraction of Programming Rules | |
Gkortzis et al. | A double-edged sword? Software reuse and potential security vulnerabilities | |
Hong et al. | xVDB: A high-coverage approach for constructing a vulnerability database | |
KR20130093230A (ko) | 웹상에서의 저작권 침해 컨텐츠에 대한 검출 및 관리 시스템 | |
CN116720197A (zh) | 一种对漏洞优先级排列的方法及装置 | |
CN116248393A (zh) | 一种内网数据传输漏洞扫描装置及系统 | |
US9521164B1 (en) | Computerized system and method for detecting fraudulent or malicious enterprises | |
TW201539217A (zh) | 文件分析系統、文件分析方法、以及文件分析程式 | |
Bhuiyan et al. | Can we use software bug reports to identify vulnerability discovery strategies? | |
CN112052245B (zh) | 网络安全训练中攻击行为的评判方法和装置 | |
Ladisa et al. | On the Feasibility of Cross-Language Detection of Malicious Packages in npm and PyPI |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080426 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110927 |