(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023121566
(43)【公開日】2023-08-31
(54)【発明の名称】検知装置、検知方法および検知プログラム
(51)【国際特許分類】
G06F 8/75 20180101AFI20230824BHJP
【FI】
G06F8/75
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022024973
(22)【出願日】2022-02-21
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504147243
【氏名又は名称】国立大学法人 岡山大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】秋山 満昭
(72)【発明者】
【氏名】塩治 榮太朗
(72)【発明者】
【氏名】山内 利宏
(72)【発明者】
【氏名】白石 周碁
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376DA08
5B376DA11
5B376DA22
(57)【要約】
【課題】IoT上で動作するソフトウェアの脆弱性の有無を正確に検知する。
【解決手段】収集部15aが、所定のファームウェアを収集する。抽出部15bが、ファームウェアに含まれるソフトウェアを表すファイルを抽出する。特定部15cが、抽出されたソフトウェアのバージョン番号を特定する。判別部15dが、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
所定のファームウェアを収集する収集部と、
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出部と、
抽出された前記ソフトウェアのバージョン番号を特定する特定部と、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別部と、
を有することを特徴とする検知装置。
【請求項2】
前記特定部は、前記ファイル内の可読文字の文字列を抽出する静的解析と、前記ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、前記ソフトウェアのバージョン番号を特定することを特徴とする請求項1に記載の検知装置。
【請求項3】
前記判別部は、前記時系列に並べた前後のバージョン情報が同一であるソフトウェアの間で、ハッシュ値およびプログラム構造が異なる場合に、前記差分が有ると判別することを特徴とする請求項1に記載の検知装置。
【請求項4】
前記判別部は、前記時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別することを特徴とする請求項3に記載の検知装置。
【請求項5】
前記差分があると判別されたソフトウェアを除外して、前記ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する照合部をさらに有することを特徴とする請求項1に記載の検知装置。
【請求項6】
検知装置が実行する検知方法であって、
所定のファームウェアを収集する収集工程と、
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出工程と、
抽出された前記ソフトウェアのバージョン番号を特定する特定工程と、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別工程と、
を含んだことを特徴とする検知方法。
【請求項7】
所定のファームウェアを収集する収集ステップと、
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出ステップと、
抽出された前記ソフトウェアのバージョン番号を特定する特定ステップと、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別ステップと、
をコンピュータに実行させるための検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検知装置、検知方法および検知プログラムに関する。
【背景技術】
【0002】
一般に、IoT(Internet of Things)等の組み込みシステムにおいて、ハードウェアを制御するために、様々なソフトウェアが同梱されたファームウェアが利用される。このようなソフトウェアの多くは、しばしば脆弱性が発見されるOSS(Open Source Software)が利用されることから、IoTも脆弱になる。
【0003】
そこで従来、脆弱性データベース(CVE, Common Vulnerability Enumeration)を利用して、システムで利用されているソフトウェアに対して、バージョン番号に基づいた脆弱性の検知が行われている(非特許文献1,2参照)。CVEには、脆弱性のあるソフトウェア名とバージョン番号とが登録されており、ソフトウェア名とバージョン番号とをCVEに照合することにより、脆弱性の有無を知ることができる。
【0004】
また、ソフトウェアに脆弱性が有る場合には、脆弱性の原因となる箇所を修正した上でバージョン番号を上げるようなソフトウェアの更新を行う場合が多い。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】“CVE”、[online]、2021年10月、[2022年1月18日検索]、インターネット<URL:https://cve.mitre.org>
【非特許文献2】“OWASP Dependency-Check”、[online]、OWASP、[2022年1月18日検索]、インターネット<URL:https://www.owasp.org/index.php/OWASP_Dependency_Check>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、IoT上で動作するソフトウェアの脆弱性の有無を検知することが困難である。例えば、バージョン番号を変更せずにソフトウェアの更新を行うパッチが適用された場合には、バージョン番号が変化せずに脆弱性が修正された状態になる。その場合に、ソフトウェア名とバージョン番号とをCVEに照合すると、パッチが適用されて脆弱性が修正されているにもかかわらず、脆弱性有りと判定され、誤検知となる。
【0007】
本発明は、上記に鑑みてなされたものであって、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明に係る検知装置は、所定のファームウェアを収集する収集部と、前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出部と、抽出された前記ソフトウェアのバージョン番号を特定する特定部と、時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別部と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、検知装置の概要を説明するための図である。
【
図2】
図2は、検知装置の概略構成を例示する模式図である。
【
図3】
図3は、ファームウェアテーブルのデータ構成を例示する図である。
【
図4】
図4は、ファイルテーブルのデータ構成を例示する図である。
【
図5】
図5は、特定部の処理を説明するための図である。
【
図6】
図6は、判別部の処理を説明するための図である。
【
図7】
図7は、判別部の処理を説明するための図である。
【
図8】
図8は、検知処理手順を示すフローチャートである。
【
図9】
図9は、検知プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0012】
[検知装置の概要]
図1は、検知装置の概要を説明するための図である。本実施形態の検知装置は、IoT製品のファームウェアに含まれるソフトウェア名およびバージョン番号を時系列で管理して、ファームウェアのバージョンアップの前後で、バージョン番号を変えずに脆弱性を修正するパッチが適用されたソフトウェアを検知する。そして、検知したバージョン番号が不変のままパッチが適用されたソフトウェアを、CVEへの照合の対象から除外することにより、脆弱性の誤検知を防止する。
【0013】
例えば、
図1に例示したように、IoT製品のバージョン番号が連続するファームウェアF
1、F
2について、それぞれに含まれるソフトウェア名とバージョン番号とを比較して、ソフトウェア名とバージョン番号が同一のものを特定する。そして、
図1に例示したソフトウェアBのように、バージョン番号が同一であるものを対象に、脆弱性を修正するパッチが適用されているか否かを判別する。
【0014】
具体的には、検知装置は、ハッシュ値およびプログラム構造が異なる場合に、脆弱性を修正するパッチが適用されたものと判別する。例えば、ハッシュ値が同一である場合には、ファームウェアF1とF2の間でソフトウェアのバージョンの変化はなく、パッチも適用されていないと判別する。また、ハッシュ値が異なるがプログラム構造が同一である場合には、ファームウェアF1とF2の間でソフトウェアのファイルに何等かの変化があるがパッチの適用はないと判別する。そして、ハッシュ値もプログラム構造も異なる場合には、ファームウェアF1とF2の間でソフトウェアにプログラム構造が変化するパッチが適用されたと判別する。
【0015】
検知装置は、パッチが適用されたと判別したソフトウェアを、CVEへの照合の対象から除外することにより、脆弱性の有無の誤検知を回避することが可能となる。
【0016】
[検知装置の構成]
図2は、検知装置の概略構成を例示する模式図である。
図2に例示するように、本実施形態の検知装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
【0017】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。例えば、出力部12には、後述する検知処理の結果が表示される。
【0018】
通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、IoT製品のファームウェアを提供するサーバ等と制御部15との通信を制御する。
【0019】
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、検知装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
【0020】
本実施形態において、記憶部14は、ファームウェアテーブル14a、ファイルテーブル14b等を記憶する。なお、これらの各種情報は、検知装置10の記憶部14に記憶される場合に限定されず、例えば、後述する検知処理が実行される際に収集されてもよい。
【0021】
ここで、
図3は、ファームウェアテーブルのデータ構成を例示する図である。
図3に例示するように、ファームウェアテーブル14aは、IoT製品の製品名、ファームウェアバージョン番号、ファームウェアリリース日を含む。
図3には、例えば、IoT製品の製品名「P_ABC」のファームウェアのファームウェアバージョン番号「FW_ABC_001」、ファームウェアリリース日「2020/01/10」が例示されている。
【0022】
これらの情報は、後述する検知処理に先立って、IoT製品のファームウェアを提供するサーバ等から、入力部11あるいは通信制御部13を介して、収集部15aにより収集され、記憶部14に蓄積される。
【0023】
また、
図4は、ファイルテーブルのデータ構成を例示する図である。
図4に例示するように、ファイルテーブル14bは、ファームウェアに含まれるソフトウェアを表すファイルのファイルID、ファームウェアバージョン番号、ソフトウェア名、ソフトウェアバージョン番号、差分の有無を含む。ファイルテーブル14bは、後述する検知処理において生成され、記憶部14に蓄積される。
【0024】
図4には、例えば、ファームウェアバージョン番号「FW_ABC_001」のファームウェアに含まれるソフトウェアのファイルについて、ファイルID「SW_ABC_001_0001」、ソフトウェア名「httpserver」、ソフトウェアバージョン番号「1.1.0」であることが示されている。
【0025】
図2の説明に戻る。制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、
図2に例示するように、収集部15a、抽出部15b、特定部15c、判別部15dおよび照合部15eとして機能する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、照合部15eは、他の機能部とは異なるハードウェアに実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
【0026】
収集部15aは、所定のファームウェアを収集する。例えば、収集部15aは、入力部11あるいは通信制御部13を介して、IoT製品のファームウェア配布サイトからファームウェアおよびファームウェアのメタ情報を収集する。メタ情報は、製品名、ファームウェアバージョン番号、ファームウェアリリース日を含む。収集部15aは、メタ情報をファームウェアテーブル14aとして記憶部14に蓄積する。また、収集部15aは、ファームウェアを以下に説明する抽出部15bに転送する。
【0027】
なお、収集部15aは、収集したファームウェアを、ファームウェアテーブル14aとして記憶部14に記憶させずに、直ちに抽出部15bに転送してもよい。
【0028】
抽出部15bは、ファームウェアに含まれるソフトウェアを表すファイルを抽出する。具体的には、抽出部15bは、収集部15aから取得したファームウェアをアンパックして、ファームウェアに含まれるファイルを抽出する。抽出部15bは、例えば、Linux(登録商標)であればELFファイルというように、実行形式のプログラムであるファイルを抽出する。
【0029】
また、抽出部15bは、
図4に示したように、抽出したファイルのファイルIDとファームウェアバージョン番号とを、ファイルテーブル14bとして記憶部14に蓄積する。
【0030】
特定部15cは、抽出されたソフトウェアのバージョン番号を特定する。具体的には、特定部15cは、抽出されたファイルから文字列を抽出して、ファイルに対応するソフトウェアのバージョン番号を特定する。
【0031】
例えば、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。そして、特定部15cは、抽出した文字列に対して、正規表現を用いてソフトウェア名とソフトウェアバージョン番号とを特定する。
【0032】
ここで、
図5は、特定部の処理をするための図である。
図5には、OpenSSLのバージョン番号を特定する処理が例示されている。
図5に示す例では、正規表現「^OpenSSL ¥d¥.¥d¥.¥d[a-z]*$」を用いて、抽出した文字列のうちマッチする文字列「OpenSSL 1.0.21」が特定されている。これにより、ソフトウェア名「OpenSSL」とソフトウェアバージョン番号「1.0.21」とが特定されている。
【0033】
また、
図4に示したように、特定部15cは、特定したソフトウェア名とソフトウェアバージョン番号とを、ファイルテーブル14bに追加登録する。
【0034】
図2の説明に戻る。判別部15dは、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する。
【0035】
ここで、
図6および
図7は、判別部の処理を説明するための図である。まず、判別部15dは、ソフトウェア名とソフトウェアバージョン番号とを、ファームウェアのリリース日に基づいて時系列に並べる。また、判別部15dは、ソフトウェアごとにバージョン番号を確認し、当該ソフトウェアのハッシュ値を算出する。そして、判別部15dは、前後のソフトウェアのファイルのペアを対象として、差分の有無を判別する。
【0036】
具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。
【0037】
図6には、あるソフトウェアXについて、ファームウェア更新に基づいて時系列に並べられたソフトウェアのバージョン番号とハッシュ値とが例示されている。判別部15dは、時系列に並べたN個のファームウェアF
1、F
2、…、F
Nについて、n=1から順にファームウェアF
nとファームウェアF
n+1とを確認し、ソフトウェアXのバージョン番号が同一であり、ハッシュ値が異なるファイルのペアを抽出する。
【0038】
図6に示す例では、F
1とF
2については、バージョン番号が異なるため、処理が終了している。次に、F
2とF
3について、バージョン番号2.1が同一であり、ハッシュ値が異なることから、判別部15dの処理対象のペアとして抽出されている。
【0039】
また、判別部15dは、抽出したペアについて、さらにプログラム構造が異なる場合に、差分が有ると判別する。この場合に、判別部15dは、後ろのファイルは脆弱性を修正するパッチが適用されたものと推定する。
【0040】
具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。例えば、判別部15dは、2つのバイナリファイルの間で、コードブロック内のアセンブラコードに変化が見られた場合に、プログラム構造が異なると判別する。あるいは、判別部15dは、一方のバイナリファイルにのみ存在するコードブロックがある場合に、プログラム構造が異なると判別する。
【0041】
図7には、プログラム構造の差分の有無を判別する処理が例示されている。
図7に示す例では、判別部15dは、バイナリファイル1,2それぞれの逆アセンブルにより得られた2つのソースコード間でプログラム構造を比較して、差分の有無を判別している。
【0042】
例えば、判別部15dは、
図7(差分1)に示すように、コードの変更、または一方にのみ特定のコードが有る場合に、プログラム構造が異なると判別する。また、判別部15dは、
図7(差分2)に示すように、一方にのみ特定のコードブロックが存在する場合に、プログラム構造が異なると判別する。
【0043】
また、判別部15dは、
図4に例示したように、ファイルテーブル14bに差分の有無を追加登録する。例えば、判別部15dは、前後のファイル間で差分が有ると判別した場合に、後のファイルの「差分」カラムに「有」を登録する。
【0044】
図2の説明に戻る。照合部15eは、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアをCVEに照合する。つまり、照合部15eは、脆弱性を修正するパッチが適用されたソフトウェアを、CVEへの照合から除外する。これにより、照合部15eは、脆弱性が修正されたソフトウェアをCVEに照合して脆弱性の有りと誤検知することを回避することが可能となる。
【0045】
[検知処理]
次に、
図8を参照して、本実施形態に係る検知装置10による検知処理について説明する。
図8は、検知処理手順を示すフローチャートである。
図8のフローチャートは、例えば、検知処理の開始を指示する操作入力があったタイミングで開始される。
【0046】
まず、収集部15aが、所定のファームウェアを収集する(ステップS1)。例えば、収集部15aは、入力部11あるいは通信制御部13を介して、IoT製品のファームウェア配布サイトからファームウェアおよびファームウェアのメタ情報を収集する。収集部15aは、メタ情報をファームウェアテーブル14aとして記憶部14に蓄積する。また、収集部15aは、ファームウェアを抽出部15bに転送する。
【0047】
次に、抽出部15bが、ファームウェアに含まれるソフトウェアを表すファイルを抽出する(ステップS2)。具体的には、抽出部15bは、収集部15aから取得したファームウェアをアンパックして、ファームウェアに含まれる、実行形式のプログラムであるファイルを抽出する。
【0048】
また、特定部15cが、抽出されたソフトウェアのバージョン番号を特定する(ステップS3)。具体的には、特定部15cは、抽出されたファイルから文字列を抽出して、ファイルに対応するソフトウェアのバージョン番号を特定する。
【0049】
例えば、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。そして、特定部15cは、抽出した文字列に対して、正規表現を用いてソフトウェア名とソフトウェアバージョン番号とを特定する。
【0050】
そして、判別部15dが、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する(ステップS4)。具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。
【0051】
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。
【0052】
そして、照合部15eが、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアをCVEに照合する(ステップS5)。つまり、照合部15eは、脆弱性を修正するパッチが適用されたソフトウェアを、CVEへの照合から除外する。これにより、一連の検知処理が完了する。
【0053】
[効果]
以上、説明したように、検知装置10において、収集部15aが、所定のファームウェアを収集する。また、抽出部15bが、ファームウェアに含まれるソフトウェアを表すファイルを抽出する。また、特定部15cが、抽出されたソフトウェアのバージョン番号を特定する。また、判別部15dが、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する。
【0054】
具体的には、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。
【0055】
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。
【0056】
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。
【0057】
ここで、従来、インストールされたソフトウェア名とバージョン番号とがシステム管理者によって正しく管理されているシステムでは、CVEとの照合により、正確に脆弱性の有無を判別できる。また、システム管理者が脆弱性に対するパッチ適用を記録しておけば、誤検知の発生を感知できる。
【0058】
一方、一般にIoT所有者は、IoTで動作するソフトウェアのソフトウェア名やバージョン番号の列挙、アップデート等を、ソフトウェアごとに個別に管理することができず、ベンダから提供されるファームウェアを用いてアップデートするに過ぎない。したがって、IoT所有者がIoT上で動作するソフトウェアの脆弱性の有無を調査することは困難である。
【0059】
これに対し、本実施形態の検知装置10によれば、脆弱性を修正するパッチが適用されたソフトウェアを推定することができる。したがって、パッチが適用されたソフトウェアを除外してCVEに照合することにより、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することが可能となる。
【0060】
また、照合部15eは、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する。これにより、検知装置10は、脆弱性を修正するパッチが適用されたソフトウェアをCVEに照合して脆弱性の有りと誤検知することを、回避することが可能となる。
【0061】
[プログラム]
上記実施形態に係る検知装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検知装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置を検知装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、検知装置10の機能を、クラウドサーバーに実装してもよい。
【0062】
図9は、検知プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0063】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0064】
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0065】
また、検知プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した検知装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
【0066】
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0067】
なお、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0068】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【0069】
10 検知装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a ファームウェアテーブル
14b ファイルテーブル
15 制御部
15a 収集部
15b 抽出部
15c 特定部
15d 判別部
15e 照合部