(57)【特許請求の範囲】
【請求項１】
本体装置内の検査対象ソフトウェアに加えられた改ざんを検知するシステムであって、
前記本体装置を制御するオペレーティングシステムを含み、前記本体装置をブート可能な検査プログラムを格納し、検査時に前記本体装置に接続される検査モジュールと、
検査時にコンピュータネットワークを介して前記本体装置と接続されるセンタ装置と、
を含み、
前記本体装置は、前記検査モジュールが当該本体装置に接続された状態では、前記検査モジュールをブートデバイスとして選択して前記検査プログラムを起動させ、
前記検査プログラムは、
前記検査対象ソフトウェアを読み取り、前記検査対象ソフトウェアを一方向性関数で圧縮した圧縮データである標本データを所定の方法で生成する標本生成機能と、
前記標本データを前記本体装置から前記センタ装置へ送信する標本送信機能と、
を実現し、
前記センタ装置は、複数の前記本体装置から受信する前記標本データについてそれらの異同に応じて類に分け当該類ごとの頻度を求める処理、及び予め定めた基準に基づき前記頻度の多寡に応じて前記類が正常か異常かを判定し、異常と判定される低頻度の前記類に属する前記標本データを送信した前記本体装置へ前記改ざんを検知したことを通知する処理を行うこと、
を特徴とするソフトウェア改ざん検知システム。
【請求項２】
請求項１に記載のソフトウェア改ざん検知システムにおいて、
前記検査対象ソフトウェアは、前記本体装置のハードディスクのファームウェアの少なくとも一部を含むこと、を特徴とするソフトウェア改ざん検知システム。
【請求項３】
請求項１又は請求項２に記載のソフトウェア改ざん検知システムにおいて、
前記圧縮データは、前記検査対象ソフトウェアを前記一方向性関数としてハッシュ関数を用いて算出したハッシュ値であること、を特徴とするソフトウェア改ざん検知システム。
【請求項４】
請求項１から請求項３のいずれか１つに記載のソフトウェア改ざん検知システムにおいて、
前記センタ装置は、前記頻度が予め設定した閾値未満である低頻度類を異常と判定すること、を特徴とするソフトウェア改ざん検知システム。
【請求項５】
請求項１から請求項３のいずれか１つに記載のソフトウェア改ざん検知システムにおいて、
前記センタ装置は、前記頻度が前記標本データの受信総数に対し予め設定した割合未満である低頻度類を異常と判定すること、を特徴とするソフトウェア改ざん検知システム。
【請求項６】
請求項４又は請求項５に記載のソフトウェア改ざん検知システムにおいて、
前記センタ装置は、前記標本データの受信総数が予め設定した下限値未満である場合に、前記頻度の増加速度に基づいて前記類が正常か異常かを判定すること、を特徴とするソフトウェア改ざん検知システム。
【請求項７】
請求項１から請求項６のいずれか１つに記載のソフトウェア改ざん検知システムを用いたネットワークセキュリティシステムであって、
前記検査モジュールは、前記検査プログラムの前記オペレーティングシステム上で動作し、コンピュータネットワーク上において、ユーザーにより操作される前記本体装置と当該ユーザーがアクセスを意図する目的サイトとの通信接続を行う接続ソフトウェアを格納し、
前記接続ソフトウェアは、前記改ざんが検知された場合には、前記センタ装置を中継して前記通信接続を行うこと、
を特徴とするネットワークセキュリティシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア改ざん検知システム、及びネットワークセキュリティシステムに関し、特に、ソフトウェアを改ざんされているコンピュータ自体に内蔵されたオペレーティングシステム（Operating System：ＯＳ）上では検知されにくい改ざんへの対処に関する。
【背景技術】
【０００２】
近年、ネットワーク利用の増大に伴い、ユーザーのパソコン（ＰＣ）等が悪意あるプログラムに感染して乗っ取られ、ユーザーの情報、財産を不正に奪われる等の被害が拡大し続けている。コンピュータウイルスに代表されるこのような悪意のあるプログラム、すなわちマルウェアには多種多様なものが次々と現れ、これに対し、さまざまな対策も行われてきた。
【０００３】
例えば、下記特許文献１には、コンピュータの起動時にＯＳを起動する処理を行うＯＳローダ等のプログラムの改ざんの有無を検知することを目的としたコンピュータシステムに関する発明が開示されている。また、下記特許文献２では、ＢＩＯＳ（Basic Input/Output System）の起動時に読み出すマスターブートレコード（Master Boot Record：ＭＢＲ）に感染するウイルスを検知する機能を有したコンピュータに関する発明が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３３３９０２号公報
【特許文献２】特開２０１１−１００３２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、昨今ではハードディスクの基本的な動作の制御を行い、改変が非常に困難とされているファームウェアに感染するマルウェアまで出現している。当該マルウェアはハードディスク上に加えた改変を隠蔽して他のソフトウェアから検知できなくしたり、ハードディスクのフォーマットから保護して除去されなくしたりし、また除去された部分を残存した部分から再感染させることができる。
【０００６】
特許文献１、特許文献２のウイルス検知方法では、検知対象のプログラムのハッシュ値を算出し、予め記憶した正しいハッシュ値と比較し、一致しない場合にウイルス有りと判定している。しかし、中古のＰＣなど、初めて使用するようなパソコンにおいては正しいハッシュ値を知ることができない。
【０００７】
また、新しいＰＣであっても、製造工程で悪意のある第三者がＰＣのファームウェアに時限的にウイルスが起動するように仕込む可能性もゼロではない。
【０００８】
本発明は上記課題を解決するものであり、ハードディスクの記憶領域に感染したマルウェアだけでなく、ハードディスクのファームウェアに組み込まれるマルウェアの存在を検知できるシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）本発明に係るソフトウェア改ざん検知システムは、本体装置内の検査対象ソフトウェアに加えられた改ざんを検知するシステムであって、前記本体装置を制御するオペレーティングシステムを含み、前記本体装置をブート可能な検査プログラムを格納し、検査時に前記本体装置に接続される検査モジュールと、検査時にコンピュータネットワークを介して前記本体装置と接続されるセンタ装置と、を含み、前記本体装置は、前記検査モジュールが当該本体装置に接続された状態では、前記検査モジュールをブートデバイスとして選択して前記検査プログラムを起動させ、前記検査プログラムは、前記検査対象ソフトウェアを読み取り、その標本データを所定の方法で生成する標本生成機能と、前記標本データを前記本体装置から前記センタ装置へ送信する標本送信機能と、を実現し、前記センタ装置は、複数の前記本体装置から受信する前記標本データについてそれらの異同に応じて類に分け当該類ごとの頻度を求める処理、及び予め定めた基準に基づき前記頻度の多寡に応じて前記類が正常か異常かを判定し、異常と判定される低頻度の前記類に属する前記標本データを送信した前記本体装置へ前記改ざんを検知したことを通知する処理を行う。
【００１０】
（２）上記（１）に記載するソフトウェア改ざん検知システムの好適な態様では、前記検査対象ソフトウェアは、前記本体装置のハードディスクのファームウェアの少なくとも一部を含む。
【００１１】
（３）上記（１）及び（２）に記載するソフトウェア改ざん検知システムの好適な態様では、前記標本データは、前記検査対象ソフトウェアを一方向性関数で圧縮した圧縮データである。
【００１２】
（４）上記（１）から（３）に記載するソフトウェア改ざん検知システムにおいて、前記センタ装置は、前記頻度が予め設定した閾値未満である低頻度類を異常と判定する構成とすることができる。
【００１３】
（５）上記（１）から（３）に記載するソフトウェア改ざん検知システムにおいて、前記センタ装置は、前記頻度が前記標本データの受信総数に対し予め設定した割合未満である低頻度類を異常と判定する構成とすることができる。
【００１４】
（６）上記（４）及び（５）に記載するソフトウェア改ざん検知システムにおいて、前記センタ装置は、前記標本データの受信総数が予め設定した下限値未満である場合に、前記頻度の増加速度に基づいて前記類が正常か異常かを判定する構成とすることができる。
【００１５】
（７）本発明に係るネットワークセキュリティシステムは上記（１）から（６）に記載するソフトウェア改ざん検知システムのいずれか１つを用いたものであって、前記検査モジュールは、前記検査プログラムの前記オペレーティングシステム上で動作し、コンピュータネットワーク上において、ユーザーにより操作される前記本体装置と当該ユーザーがアクセスを意図する目的サイトとの通信接続を行う接続ソフトウェアを格納し、前記接続ソフトウェアは、前記改ざんが検知された場合には、前記センタ装置を中継して前記通信接続を行う。
【発明の効果】
【００１６】
本発明によれば、ハードディスクの記憶領域に感染したマルウェアだけでなく、ハードディスクのファームウェアに組み込まれるマルウェアの存在を検知できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るコンピュータセキュリティシステムの概略の構成図である。
【図２】ハッシュ値テーブルの例を示す模式図である。
【図３】本発明の実施形態に係るコンピュータセキュリティシステムの利用者端末装置での動作の概略のフロー図である。
【図４】本発明の実施形態に係るコンピュータセキュリティシステムのセンタ装置での動作の概略のフロー図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態（以下実施形態という）であるコンピュータセキュリティシステム２について、図面に基づいて説明する。コンピュータセキュリティシステム２はパソコンなどのコンピュータ内のソフトウェアに加えられた改ざんを検知し、それへの対処を可能とするシステムである。
【００１９】
図１は、実施形態に係るコンピュータセキュリティシステム２の概略の構成図である。コンピュータセキュリティシステム２は、利用者端末装置４及びセンタ装置６を含んで構成される。利用者端末装置４及びセンタ装置６はコンピュータネットワーク８を介して通信可能になり接続される。
【００２０】
利用者端末装置４はユーザーがコンピュータネットワーク８にアクセスする際に使用するパソコンなどのコンピュータである。コンピュータネットワーク８は例えば、インターネットであり、当該インターネット上には複数の利用者端末装置４が存在し、また図示を省略するがユーザーが利用者端末装置４からアクセス可能なコンピュータやウェブサイトが存在する。センタ装置６は、利用者端末装置４に接続される後述の検査モジュールと協働してコンピュータセキュリティシステム２におけるセキュリティ機能を実現するコンピュータであり、例えば、セキュリティサービスを提供する事業者の施設に設置される。
【００２１】
利用者端末装置４はメインユニット１０（本体装置）とこれに接続される周辺機器とからなるコンピュータシステムである。メインユニット１０はコンピュータとしての基本機能を備える。また図１では周辺機器として可搬記憶媒体１２、ディスプレイ１４、マウス１６及びキーボード１８を示している。
【００２２】
メインユニット１０は処理部３０及び記憶部を有する。処理部３０はプログラムを実行して各種の機能を提供する装置であり、例えば、ＣＰＵ(Central Processing Unit)３４及びメインメモリ３６（主記憶装置）を含んで構成される。メインメモリ３６はＲＡＭ（Random Access Memory）等の揮発性メモリからなる。また、図には示さないが処理部３０にはＢＩＯＳを格納する不揮発性メモリ、及びＢＩＯＳにより使用されるコンピュータのスタートアップ情報を格納するＣＭＯＳと呼ばれるメモリチップが存在する。
【００２３】
記憶部は処理部３０にて実行される各種プログラムや処理部３０での処理にて使用されるデータを記憶する補助記憶装置である。記憶部にはリードライト可能な記憶装置が用いられ、本実施形態ではメインユニット１０は記憶部としてハードディスクドライブ（Hard Disk Drive：ＨＤＤ）３２を有する。ＨＤＤ３２には、ＨＤＤ３２の動作を制御する基本ソフトウェアであるファームウェア３８、汎用ＯＳ４０などが格納される。ファームウェア３８は多くはＨＤＤ３２内のＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリなどに保存されるが、その一部はディスク領域に保存される場合もある。一方、汎用ＯＳ４０はディスク領域に保存される。このほか、ディスク領域には、ウェブブラウザプログラム（汎用ウェブブラウザプログラム４２）などの各種のアプリケーションプログラムやデータが格納され得る。
【００２４】
可搬記憶媒体１２は、センタ装置６と協働してコンピュータセキュリティシステム２におけるセキュリティ機能を実現する検査モジュールであり、メインユニット１０、特にＨＤＤ３２に対する改ざんの有無の検査時に、メインユニット１０に接続される。可搬記憶媒体１２はメインユニット１０に脱着自在であり、例えば、メインユニット１０にＵＳＢ接続可能な小型のスティック形状のもの、或いはＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等とすることができる。可搬記憶媒体１２はプログラム格納部５０、電子証明書５２を含む。プログラム格納部５０は検査時に処理部３０にて実行される検査プログラムとして専用ＯＳ５４、ハッシュ値計算プログラム５６及び専用ウェブブラウザプログラム５８を格納している。電子証明書５２はセンタ装置６におけるユーザー認証に用いられる。
【００２５】
汎用ＯＳ４０と専用ＯＳ５４とは排他的に動作する。すなわち、処理部３０は汎用ＯＳ４０と専用ＯＳ５４とのいずれかを選択的に読み込んで実行する。具体的には、利用者端末装置４の起動時にて、ＢＩＯＳがＨＤＤ３２と可搬記憶媒体１２とのいずれかを起動ディスクとして選択し、選択されたデバイスに格納されているブートローダが動作する。可搬記憶媒体１２がメインユニット１０に接続されていない場合には、ＨＤＤ３２が起動ディスクに選択され、ブートローダはＨＤＤ３２からメインメモリ３６に汎用ＯＳ４０を読み込んで利用者端末装置４を起動させる。一方、可搬記憶媒体１２がメインユニット１０に接続されている場合には、可搬記憶媒体１２が起動ディスクに選択され、ブートローダは可搬記憶媒体１２からメインメモリ３６に専用ＯＳ５４を読み込んで利用者端末装置４を起動する。
【００２６】
汎用ＯＳ４０は利用者端末装置４を汎用とする。ユーザーは通常はメインユニット１０に可搬記憶媒体１２を接続しないことにより、利用者端末装置４で様々な処理を行うことができる。一方、専用ＯＳ５４は利用者端末装置４に対し改ざん検知等のセキュリティ機能を提供する際に専用とされ、専用ＯＳ５４での利用者端末装置４の処理は汎用ＯＳ４０に比べ制限される。例えば、専用ＯＳ５４ではハッシュ値計算プログラム５６及び専用ウェブブラウザプログラム５８が動作する。
【００２７】
ハッシュ値計算プログラム５６はメインメモリ３６上に展開されて実行され、改ざん有無の検査対象のソフトウェアの全体又は一部をメインユニット１０から読み取り、その標本データを生成する標本生成機能を実現する。標本データは例えば、読み取った検査対象ソフトウェアを一方向性関数で圧縮した圧縮データとすることができ、本実施形態では一方向性関数としてハッシュ関数を用い、標本データとしてハッシュ値を算出する。算出されたハッシュ値は専用ウェブブラウザプログラム５８によりセンタ装置６へ送信される。
【００２８】
専用ウェブブラウザプログラム５８は接続先をセンタ装置６に固定された接続ソフトウェアであり、ハッシュ値計算プログラム５６により算出されたハッシュ値をセンタ装置６へ送信する標本送信機能を実現する。また専用ウェブブラウザプログラム５８は、ユーザーが目的とするサイトへのアクセスをセンタ装置６を介して実現する。
【００２９】
なお、例えば、プログラム格納部５０はマスクＲＯＭ（Read Only Memory）などの読み出し専用記憶媒体で構成される。これにより、専用ＯＳ５４などの検査プログラムの改ざんなどを防止することができる。また、プログラム格納部５０の格納内容をＡＥＳ方式などの暗号化により保護することもでき、好適にはプログラム格納部５０は読み出し専用記憶媒体で構成し、かつ暗号化を施すのがよい。
【００３０】
電子証明書５２はユーザーごとに内容が異なるため、コスト抑制の観点からは書き換え可能な不揮発性メモリに格納することができる。その際、セキュリティを確保するため、電子証明書５２は二重暗号化などを施して格納する。なお、電子証明書５２を読み出し専用記憶媒体に格納してもよい。
【００３１】
センタ装置６はハッシュ値テーブル７０、更新手段７２、照合手段７４及びＵＲＬフィルタ７６を有する。
【００３２】
ハッシュ値テーブル７０はコンピュータネットワーク８上に複数存在する利用者端末装置４から受信するハッシュ値それぞれの頻度を表すデータである。図２はハッシュ値テーブル７０の例を示す模式図であり、ハッシュ値テーブル７０はフィールド項目としてハッシュ値と検索カウントとを含んだレコード７８の集合からなる。各レコードの検索カウントは当該レコードのハッシュ値が得られた検査実行数（頻度）である。ハッシュ値テーブル７０はセンタ装置６の記憶装置に格納される。
【００３３】
更新手段７２及び照合手段７４はセンタ装置６のコンピュータで実行されるプログラムにより実現される。
【００３４】
更新手段７２はハッシュ値テーブル７０を生成、更新する機能を有し、複数の利用者端末装置４から受信するハッシュ値についてそれらの異同に応じて分類し、当該分類で生成されるグループ（類）ごとの頻度を計数する。
【００３５】
照合手段７４は、受信したハッシュ値をハッシュ値テーブル７０と照合し、ハッシュ値テーブル７０に格納された頻度の多寡に応じて当該ハッシュ値が正常か異常かを判定し、異常と判定される低頻度のグループに属するハッシュ値を送信した利用者端末装置４へ改ざんされている可能性が高いことを通知する。
【００３６】
ＵＲＬフィルタ７６は、ユーザーが目的サイトへアクセスしようとする際に、フィッシングサイトなどではなく安全なサイトであることが確認されたＵＲＬのリスト（ホワイトリスト）を用い、当該リストに登録されたサイトにしかアクセスできないように利用者端末装置４の接続先をコントロールする。尚、ＵＲＬフィルタ７６は、利用者端末装置４においてファームウェアの改ざん検知をのみを目的とする場合、必須の構成ではない。
【００３７】
次にコンピュータセキュリティシステム２の動作について説明する。図３は利用者端末装置４の側における動作の概略のフロー図である。
【００３８】
コンピュータセキュリティシステム２を利用する際には、ユーザーは可搬記憶媒体１２をメインユニット１０に装着し、メインユニット１０の電源をオンにする（ステップＳ１０１）。すると、メインユニット１０のＢＩＯＳが起動し（ステップＳ１０２）、ＣＭＯＳの設定値を読み込む（ステップＳ１０３）。そして、ＢＩＯＳはディスプレイ１４、マウス１６、キーボード１８、ＨＤＤ３２等の各デバイスへの通電を開始させ、ハードウェアの初期設定を行う（ステップＳ１０４）。これにより各デバイスがReady状態となる。
【００３９】
次にＢＩＯＳは可搬記憶媒体１２からＭＢＲを読み込んでブートローダを動作させ、検査プログラムが起動される。具体的には、まず、専用ＯＳ５４が起動される（ステップＳ１０５）。また、専用ウェブブラウザプログラム５８が起動され、センタ装置６との通信が確立される（ステップＳ１０６）。さらに、ハッシュ値計算プログラム５６が起動される。
【００４０】
本実施形態では検査対象ソフトウェアはＨＤＤ３２のファームウェアであり、ハッシュ値計算プログラム５６は当該ファームウェアのハッシュ値を計算する（ステップＳ１０７）。ファームウェアの格納領域（アドレス、サイズ）はＨＤＤ３２の機種などによって異なり得る。そこで、例えば、メーカーから開示を受けるなどして、種々のＨＤＤについてのファームウェアの格納領域の情報のリストが予め作成される。ハッシュ値計算プログラム５６は、ＨＤＤ３２から、そのメーカー、機種・型番などの情報を取得し、上述のリストを検索して当該ＨＤＤ３２のファームウェアの格納領域の情報を取得する。そして、ハッシュ値計算プログラム５６は当該情報に基づいてファームウェアを読み取り、ハッシュ値を算出する。なお、格納領域の情報のリストは可搬記憶媒体１２内に置いてもよいし、センタ装置６に置いてもよい。
【００４１】
なお、ハッシュ値計算プログラム５６がＨＤＤ３２に格納されるデータ内に組み込まれ得るマルウェアを読み込んで実行してしまうことを回避するために、専用ＯＳ５４はハッシュ値の計算に必要とされる以外のＨＤＤ３２へのアクセスをできない構成とすることが好適である。
【００４２】
ハッシュ値計算プログラム５６は、算出したハッシュ値をデータセンタへ送信し（ステップＳ１０８）、センタ装置６からの判定結果を待つ（ステップＳ１０９）。
【００４３】
センタ装置６からの判定結果が安全を示すものである場合には（ステップＳ１１０にて「Ｙｅｓ」の場合）、利用者端末装置４を通常起動させることが可能である。この場合、例えば、ディスプレイ１４に「安全が確認できたので検査モジュールを取り外してシステムを再起動してください」といった表示を行うなどしてユーザーに知らせる。ユーザーは、可搬記憶媒体１２をメインユニット１０から取り外して利用者端末装置４を再起動し、汎用ＯＳ４０の下で利用者端末装置４を利用することができる。
【００４４】
一方、センタ装置６がＨＤＤ３２のファームウェアが安全でないと判定した場合（ステップＳ１１０にて「Ｎｏ」の場合）、検査プログラム又はセンタ装置６は例えば、ディスプレイ１４に「ハードディスクのファームウェアに問題がある可能性があります。下記連絡先にお問い合わせ下さい。」といったメッセージを表示させるなどしてユーザーへ警告する。
【００４５】
図４はセンタ装置６でのコンピュータセキュリティシステム２の動作の概略のフロー図である。
【００４６】
センタ装置６は可搬記憶媒体１２の専用ウェブブラウザプログラム５８による利用者端末装置４との通信接続が確立されると、利用者端末装置４からのハッシュ値の受信を待ち（ステップＳ２０１）、ハッシュ値を受信すると照合手段７４がハッシュ値テーブル７０との照合を行う（ステップＳ２０２）。具体的には、受信したハッシュ値をキーとしてハッシュ値テーブル７０を検索し、同じハッシュ値が既に受信された回数の多寡に応じて当該ハッシュ値の改ざんに関する安全性について判定する。これは、ＨＤＤ３２のハッシュ値は、メーカー、製造時期、製造工場等が同じであれば同じ値が得られるという知見に基づく。そして、利用者端末装置４の母集団のうち改ざんがされる利用者端末装置４の割合は基本的に少ないとの前提の下、ハッシュ値が検知された頻度（カウント）が相対的に少ないほど当該ハッシュ値が得られた利用者端末装置４は改ざんを受けている可能性が高いと推定する。
【００４７】
ここで、改ざんが感染性を有するウイルスに起因するものである場合、当該ウイルスが蔓延すると上述の前提が成り立たなくなるが、コンピュータセキュリティシステム２による監視を継続して行うことでウイルスの登場や流行初期の段階を捉えることができ、当該段階では上述の前提が成り立ち、改ざんを受けた利用者端末装置４からの異常なハッシュ値を検知できる。これにより早期に対策を講じることができ、ウイルスが蔓延した状態となることを回避できる。また、仮に、ウイルスが蔓延した状態となったとしても、初期段階で検知した異常なハッシュ値は、その後においても、改ざんを受けている利用者端末装置４の判別に用いることができる。
【００４８】
ステップＳ２０２での照合の結果、受信したハッシュ値と同じハッシュ値のレコードがハッシュ値テーブル７０に存在しない場合（ステップＳ２０３にて「Ｎｏ」の場合）、つまり過去のカウントが０の場合は、照合手段７４は当該ハッシュ値を異常値と判定する。この場合、利用者端末装置４のＨＤＤ３２のファームウェアは改ざんされているおそれが高いと推定され、よって照合手段７４にて危険な状態にあると判定することとして（ステップＳ２０５）、その判定結果を利用者端末装置４へ送信する（ステップＳ２０８）。例えば、照合手段７４は利用者端末装置４にハードディスクのファームウェアに問題がある可能性がある旨のメッセージを送信する。その際に上述のように問い合わせ先等の情報を追記して送信してもよい。
【００４９】
一方、受信したハッシュ値と同じハッシュ値のレコードがハッシュ値テーブル７０に存在する場合は（ステップＳ２０３にて「Ｙｅｓ」の場合）、照合手段７４はレコードに記録されている過去のカウントが予め設定された基準値Ｎthより多いか否かを調べる（ステップＳ２０４）。
【００５０】
ここで、ハッシュ値テーブル７０に全レコードのカウントの合計Ｎtotが比較的小さい間は、正常なハッシュ値のカウントと異常なハッシュ値のカウントとの間に有意な多寡の違いが現れないことが考えられる。この点を考慮して、基準値Ｎthは十分に安全であると判定できる程度に大きな値に設定される。
【００５１】
過去のカウントが基準値Ｎth以上である場合は（ステップＳ２０４にて「Ｙｅｓ」の場合）、照合手段７４は当該ハッシュ値を正常値と判定する。この場合、利用者端末装置４のＨＤＤ３２のファームウェアには改ざんが加えられていないと推定され、よって照合手段７４は安全であると判定して（ステップＳ２０６）、その判定結果を利用者端末装置４へ送信する（ステップＳ２０８）。
【００５２】
過去のカウントが基準値Ｎth未満である場合は（ステップＳ２０４にて「Ｎｏ」の場合）、利用者端末装置４のＨＤＤ３２のファームウェアに改ざんが加えられている可能性を排除できないことから、照合手段７４は当該ハッシュ値を異常値と判定する。よって、照合手段７４は当該利用者端末装置４の状態を要警戒と判定して（ステップＳ２０７）、その判定結果を利用者端末装置４へ送信する（ステップＳ２０８）。
【００５３】
なお、Ｎtotが例えばＮth未満である間は、正常なハッシュ値であっても要警戒と判定される。この場合は、標本数が少ないため統計的な誤差を考慮した判定であることなどの説明を判定結果と共に利用者端末装置４へ通知してもよい。
【００５４】
センタ装置６は利用者端末装置４から受信したハッシュ値それぞれについて、照合手段７４により上述の判定処理を行い、その判定結果を利用者端末装置４へ送信する（ステップＳ２０８）と共に、更新手段７２によりハッシュ値テーブル７０の更新処理を行う（ステップＳ２０９）。
【００５５】
具体的には、更新手段７２はハッシュ値テーブル７０に存在しないハッシュ値を受信すると、当該ハッシュ値に対応するレコードをハッシュ値テーブル７０に追加する。なお、当該追加レコードにはカウントの初期値として１が記録される。既にハッシュ値テーブル７０にレコードが存在するハッシュ値を受信した場合は、当該ハッシュ値に対応するレコードに記録されるカウントを１インクリメントする。
【００５６】
利用者端末装置４からセンタ装置６へのアクセスに際し、センタ装置６は電子証明書５２を用いたり、ユーザーにアカウント（ＩＤ）、パスワードなどの識別情報を入力させたりして、ユーザーの認証を行ってもよい。
【００５７】
照合手段７４における、カウントの多寡に応じてハッシュ値ごとのグループが正常か異常かの判定は上述の方法に限られない。例えば、照合手段７４は、ハッシュ値テーブル７０に記録されたハッシュ値のカウントが受信総数Ｎtotに対し予め設定した割合（Ｒth）未満である低頻度グループを異常と判定する構成とすることができる。
【００５８】
さらに、上述したカウントについての閾値（Ｎth）やカウントのＮtotに対する割合についての閾値（Ｒth）に基づく判定基準に加え、Ｎtotが予め設定した下限値未満である場合に、カウントの増加速度に基づいてグループが正常か異常かを判定する判定基準を併せて用いてもよい。
【００５９】
例えば、Ｎtotが下限値Ｎlow以上である場合には、上述したようにハッシュ値のカウントがＮth以上であるグループ（又はそれに対応するハッシュ値）は正常であり（Ｓ２０６）、Ｎth未満であるグループは異常であると判定し（Ｓ２０５，Ｓ２０７）、一方、Ｎtotが下限値Ｎlow未満である場合には、カウントの増加速度Ｖ、つまり一定期間（例えばハッシュ値の初検知から１週間）内におけるカウントの増加数を予め定めた速度閾値Ｖthと比較してＶがＶth以上であるグループは正常であり、Ｖth未満の緩やかな速度Ｖを示すグループは異常であると判定する。これは、改ざんが感染性を有するウイルスに起因するものであるとしても、その登場後間もない時期においては拡大スピードは小さく、受信されるハッシュ値はほとんどが正常値であると期待できることによる。例えば、ＶthはＶを定義する一定期間にハッシュ値を送信してくる利用者端末装置４の平均的な数Ｖaveに基づいて設定することができ、そのほとんどが正常であると推察されることから、Ｖaveの０．８〜０．９倍程度といったＶaveに近い値にＶthを設定し得る。また下限値Ｎlowは、正常なグループのカウントがＮthを超えてステップＳ２０４にて要警戒と判定されなくなる程度となる状態でのＮtotに基づいて設定することができ、当該ＮtotがＮthのα倍（例えばαは１〜１．２程度）になる場合には、ＮlowもＮthのα倍程度とすることができる。
【００６０】
また、改ざんが感染性を有するウイルスに起因するものである場合、対策を講じなければ感染の拡大スピードが増加し得ることから、カウントの増加速度Ｖの変化率、つまり加速度を求め、時間経過と共にＶが増加する傾向を示すグループは異常であり、一方、Ｖが一定、又はウイルスの増殖の影響を受けて減少する傾向を示すグループは正常であるとする判定基準を用いることもできる。
【００６１】
なお、本願発明では、センタ装置６にて収集したハッシュ値のカウント数に基づいて、利用者端末装置４が安全か否か（ＨＤＤ３２のファームウェアが改ざんされていないか）を判定するが、改ざんされたＨＤＤ３２のハッシュ値の情報が別途得られた場合にはカウントが多くても危険と判定する仕組みを組み込んでもよい。
【００６２】
また、ハードディスクメーカーからＨＤＤ３２のファームウェアの安全なハッシュ値情報を取得することができる場合にはカウントが少なくても安全と判定する仕組みを組み込んでもよい。
【００６３】
以上、ハードディスクのファームウェアに対する改ざんを、センタ装置６で収集したファームウェアのハッシュ値の検索回数に基づいて検知する実施形態を説明したが、これは、ハードディスクのファームウェアのハッシュ値が、メーカー、製造時期、製造工場等が同じであれば一致するという知見に基づく。したがって、ハードディスクのファームウェアと同じように、ハッシュ値の値が同じ値を取得できるデータ、プログラムに対しても本発明を適用可能である。
【００６４】
なお、例えば、ＨＤＤ３２のファームウェアの改ざん有無の検査において、その検査対象は当該ファームウェアの一部分とすると、検査対象外とした部分の改ざんを検知できなくなる。よって、基本的には、検知精度を確保する上ではファームウェアの全体を検査対象とすることが好適である。一方、ウイルスが改ざんを加える部分が知られている場合には、当該部分のみを検査対象とすることで処理対象のデータ量を減らし処理負荷の軽減を図ることができる。よって、どの部分を検査対象とするかは、新たに現れるウイルスの特徴に応じて適宜選択してもよい。
【００６５】
改ざんの検知はハッシュ値ではなくファームウェアのコード自体の照合によっても可能である。しかし、ファームウェアのコードを利用者端末装置４からセンタ装置６へ送信すると、通信負荷が大きくなる。また当該コードが漏洩して当該ファームウェアを攻撃するマルウェアの開発が容易となり得ることも懸念される。よって、上述の実施形態ではハッシュ値をセンタ装置６へ送信し照合する構成としている。この点、可搬記憶媒体１２にハッシュ値計算プログラム５６に代えて、圧縮したり暗号化したりする別途の手段を備え、当該手段で変換されたデータをセンタ装置６へ送信する構成としてもよい。
【００６６】
上述したコンピュータセキュリティシステム２によれば、ユーザーは、利用者端末装置４内蔵のＨＤＤ３２のファームウェアが例えばウイルスに感染しているとしても、可搬記憶媒体１２内の専用ＯＳ５４から起動させたチェックプログラム及びセンタ装置６により、ＨＤＤ３２のファームウェアに加えられた改ざんを安全に検出でき、ウイルス感染のおそれなどを検知可能となる。
【００６７】
なお、上述の構成では、専用ＯＳ５４上での利用者端末装置４とセンタ装置６との通信には専用ウェブブラウザプログラム５８を用いるとしたが、他の通信ソフトウェアを用いてもよい。
【００６８】
ここで、専用ウェブブラウザプログラム５８は、ＨＤＤ３２のファームウェアがウイルスに汚染されている場合に、その影響を受け得る汎用ウェブブラウザプログラム４２に代わり、ユーザーが目的サイトへアクセスすることを可能とする。例えば、照合手段７４は改ざんを検知した場合に、可搬記憶媒体１２を取り外した状態では利用者端末装置４を起動しないようにユーザーに促すと共に、当該状態におけるユーザーのウェブサイトへのアクセス要求に対し専用ウェブブラウザプログラム５８はセンタ装置６を介してのみ当該ウェブサイトにアクセス可能なように制限することができる。センタ装置６はユーザーのアクセスしようとする目的サイトが安全であるかをＵＲＬフィルタ７６にて確認し、ＨＤＤ３２に感染したウイルス等により偽サイトへ誘導されることを防止する。これにより、ファームウェアがマルウェアに汚染されていたとしても、可搬記憶媒体１２から利用者端末装置４を起動することで、ＨＤＤ３２からマルウェアを駆除する等の対処が完了する前でも、外部のウェブサイトに安全にアクセスすることが可能となる。
【符号の説明】
【００６９】
２  コンピュータセキュリティシステム、４  利用者端末装置、６  センタ装置、８  コンピュータネットワーク、１０  メインユニット、１２  可搬記憶媒体、１４  ディスプレイ、１６  マウス、１８  キーボード、３０  処理部、３２  ＨＤＤ、３４  ＣＰＵ、３６  メインメモリ、３８  ファームウェア、４０  汎用ＯＳ、４２  汎用ウェブブラウザプログラム、５０  プログラム格納部、５２  電子証明書、５４  専用ＯＳ、５６  ハッシュ値計算プログラム、５８  専用ウェブブラウザプログラム、７０  ハッシュ値テーブル、７２  更新手段、７４  照合手段、７６  ＵＲＬフィルタ、７８  レコード。
【図１】
0006591832.tif 000002
【図２】
0006591832.tif 000003
【図３】
0006591832.tif 000004
【図４】
0006591832.tif 000005