説明

ソフトウエア更新を適用した情報処理装置を検査するシステム

【課題】不正アクセスによる攻撃と、情報処理装置に対して行われる正当なソフトウエア更新の結果として発生する挙動の変化を判別する。
【解決手段】ソフトウエア更新を適用した情報処理装置を検査する検査装置であって、一のソフトウエア更新を適用した情報処理装置の挙動を、複数回分のソフトウエア更新のそれぞれについて収集する収集部と、複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較して、一のソフトウエア更新を適用した後の情報処理装置の挙動が正常であるか否かを判断する判断部と、を備える検査装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウエア更新を適用した情報処理装置を検査する検査装置、システムおよびプログラムに関する。
【背景技術】
【0002】
複数の情報処理装置がネットワークに接続されたコンピューティングシステムが知られている。コンピューティングシステムにおいては、複数の情報処理装置のそれぞれに対して、ソフトウエアのバージョンアップおよび設定変更等の更新が随時行われる。
【0003】
このようなコンピューティングシステムでは、情報処理装置に対して不正なアクセス(例えば外部からの不正者による進入およびマルウエアによる攻撃等)があるかどうかを監視している。そして、このようなコンピューティングシステムでは、不正なアクセスを検知した場合、その不正なアクセスの排除等をする。
【0004】
非特許文献1 Li, P., Gao, D., & Reiter, M.、 "Automatically Adapting a Trained Anomaly Detector to Software Patches."、 Lecture Notes in Computer Science、 Volume 5758/2009、 2009、 P.142-160
【0005】
非特許文献2 Stavrou, A., Cretu-Ciocarlie, G. F., Locasto, M. E., & Stolfo, S. J.、 "Keep your friends close: the necessity for updating an anomaly sensor with legitimate environment changes."、 Proceedings of the 2nd ACM workshop on Security and artificial intelligence、 2009、p.29-46
【発明の概要】
【発明が解決しようとする課題】
【0006】
コンピューティングシステムに対する不正アクセスの中に、有害な動作をするソフトウエアおよびコードであるマルウエアによる攻撃がある。マルウエアの中には、情報処理装置にソフトウエア更新を適用したタイミングで攻撃を開始するものが存在する。
【0007】
このようなタイミングでマルウエアが攻撃を開始すると、不正アクセスの検知システムが、そのマルウエアによる不正な振る舞いを正当なソフトウエア更新によって生じる振る舞いの変化であると誤って判断してしまう場合がある。反対に、このようなマルウエアの検知感度を敏感に設定すると、情報処理装置に対する正当なソフトウエア更新によって生じる振る舞いの変化を、マルウエアによる不正な振る舞いであると誤って検知してしまう場合もある。従って、コンピューティングシステムでは、不正アクセスによる攻撃を、情報処理装置に対して行われる正当なソフトウエア更新から区別して検知できる必要があった。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の第1の態様においては、ソフトウエア更新を適用した情報処理装置を検査する検査装置であって、一のソフトウエア更新を適用した情報処理装置の挙動を、複数回分のソフトウエア更新のそれぞれについて収集する収集部と、前記複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較して、前記一のソフトウエア更新を適用した後の前記情報処理装置の挙動が正常であるか否かを判断する判断部と、を備える検査装置、検査方法およびプログラムを提供する。
【0009】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0010】
【図1】本実施形態に係るコンピューティングシステム10の機能構成を示す。
【図2】本実施形態に係るコンピューティングシステム10における処理フローを示す。
【図3】情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第1例を示す。
【図4】情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第2例を示す。
【図5】情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第3例を示す。
【図6】本実施形態に係るコンピュータ1900のハードウエア構成の一例を示す。
【発明を実施するための形態】
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、本実施形態に係るコンピューティングシステム10の機能構成を示す。本実施形態に係るコンピューティングシステム10は、一例として、工業システムおよびインフラストラクチャ(交通およびエネルギ等)システムの各オブジェクトの管理および制御をするICS(Industrial Control Systems)である。また、本実施形態に係るコンピューティングシステム10は、一例として、オフィス内または家庭内のネットワークに接続された様々なデバイス(例えば電話機およびコピー機、等々)を管理するシステムであってもよい。また、コンピューティングシステム10は、企業等内のネットワークに接続された複数のコンピュータを管理するシステムであってもよいし、データセンタ等のネットワークに接続された多数のサーバを管理するシステムであってもよい。
【0013】
コンピューティングシステム10は、複数の情報処理装置12と、更新部22と、複数の検出部24と、収集部26と、判断部28と、管理用コンピュータ30とを備える。なお、コンピューティングシステム10において、複数の検出部24、収集部26および判断部28は、ソフトウエア更新を適用した情報処理装置12に対して不正アクセスがあったかどうかを検査する検査装置として機能する。
【0014】
複数の情報処理装置12のそれぞれは、プログラムを実行して、データ処理および機器の制御等を行う。複数の情報処理装置12のそれぞれは、コンピュータであってもよいし、機器に組み込まれたデータ処理ユニットであってもよい。複数の情報処理装置12のそれぞれは、一例として、機器を制御するPLC(Programmable Logic Controller)であってもよい。
【0015】
また、複数の情報処理装置12のそれぞれは、コンピュータにより実行された仮想マシン40によって実現されてもよい。この場合、仮想マシン40は、対応する情報処理装置12のハードウエア構成を仮想的に実現する。
【0016】
更新部22は、複数の情報処理装置12のうちの指定された情報処理装置12に対してソフトウエア更新を適用させる。ここで、ソフトウエア更新とは、情報処理装置12におけるハードウエア変更を伴わない構成変更処理をいう。また、情報処理装置12が仮想マシン40により実現されている場合には、ソフトウエア更新とは、当該仮想マシン40により仮想的に実現されたハードウエア構成の変更を伴わない構成変更処理をいう。例えば、ソフトウエア更新とは、情報処理装置12が実行するプログラムのインストール、情報処理装置12が実行するプログラムのバージョンアップ、セキュリティパッチのようなプログラムに対するソフトウエアパッチ、および、情報処理装置12に対して設定される設定値の変更等である。
【0017】
更新部22は、一例として、特定の一のソフトウエア更新を適用すべき命令を、例えばホスト装置により指定された一の情報処理装置12に対して与える。更新部22からソフトウエア更新を適用すべき命令が与えられた情報処理装置12は、例えばネットワーク100を介して一のソフトウエア更新に必要なデータを取得して、プログラムのインストール、アップデートおよび設定変更等のソフトウエア更新を実行する。これにより、更新部22は、指定された一の情報処理装置12に対して特定の一のソフトウエア更新を適用させることができる。なお、更新部22は、何れかの情報処理装置12にソフトウエア更新を適用させた場合には、その旨を収集部26に通知する。
【0018】
複数の検出部24のぞれぞれは、複数の情報処理装置12のうちの何れかの情報処理装置12に対応して設けられる。複数の検出部24のそれぞれは、対応する情報処理装置12に関する予め定められた種類のデータを検出する。複数の検出部24のそれぞれは、対応する情報処理装置12とは別個の装置により実現される物理的センサであってもよいし、対応する情報処理装置12がプログラムを実行することにより当該情報処理装置12内に実現されるソフトウエア的な情報取得モジュールであってもよい。
【0019】
より具体的には、複数の検出部24のそれぞれは、一例として、対応する情報処理装置12が送受信するデータ、対応する情報処理装置12が実行するプログラムおよび関数、対応する情報処理装置12がメモリに対して書き込みおよび読み出しをするデータを検出する。また、複数の検出部24のそれぞれは、一例として、情報処理装置12を構成するリソースの状態(例えばメモリ使用量およびプロセッサ使用率、並びに、当該情報処理装置12が備えるその他のリソースの状態)、情報処理装置12内においてシステムコールが呼び出される順序、および、対応する情報処理装置12が制御する機器の物理量(例えば電力量、温度、湿度および流体の流量)を検出する。
【0020】
収集部26は、ソフトウエア更新を適用した情報処理装置12における、ソフトウエア更新を適用したことに応じて影響を受ける挙動を収集する。情報処理装置12の挙動とは、情報処理装置12がプログラムを実行することにより影響を受けるデータの振る舞いおよび物理量の振る舞いをいう。
【0021】
例えば、情報処理装置12の挙動は、情報処理装置12が送受信するデータの振る舞い、情報処理装置12が実行するプログラムおよび関数の振る舞い、および、情報処理装置12がメモリに対して書き込みおよび読み出しをするデータの振る舞い等である。また、例えば、情報処理装置12の挙動は、情報処理装置12を構成するリソースの状態の振る舞い、情報処理装置12内におけるシステムコールの呼び出しの振る舞い、および、情報処理装置12が制御する機器の物理量の振る舞い等である。
【0022】
収集部26は、一例として、ソフトウエア更新を適用した情報処理装置12に対応して設けられた検出部24から検出結果を受け取ることにより、対応する情報処理装置12の挙動を収集する。収集部26は、検出部24と収集部26と接続する専用線を介して検出結果を受け取ってもよいし、ネットワーク100を介して検出結果を受け取ってもよい。
【0023】
判断部28は、一のソフトウエア更新を適用した情報処理装置の挙動を、複数回分のソフトウエア更新のそれぞれについて比較する。例えば、判断部28は、一のソフトウエア更新を適用した複数の情報処理装置12の挙動同士を比較する。また、例えば、判断部28は、1つの情報処理装置12に一のソフトウエア更新を複数回繰り返して適用して、複数回適用したそれぞれにおける挙動同士を比較する。
【0024】
例えば、判断部28は、情報処理装置12が送受信するデータの振る舞いが一致しているかどうかを比較する。より詳しくは、判断部28は、情報処理装置12が送受信するデータの送受信タイミングおよびデータ内容が一致しているかどうかを比較する。また、判断部28は、情報処理装置12によるファイルの追加、移動、および書き換えのタイミングおよび内容が一致しているかどうかを比較する。また、判断部28は、情報処理装置12によるデータベースエントリの追加、移動、および書き換えのタイミングおよび内容が一致しているかどうかを比較する。また、判断部28は、情報処理装置12によるレジストリキーまたはレジストリ値の追加、移動および書き換えが一致しているかどうかを比較する。
【0025】
また、例えば、判断部28は、情報処理装置12が実行するプログラムおよび関数の振る舞いが一致しているかどうかを比較する。より詳しくは、判断部28は、情報処理装置12が実行するプログラムの内容および実行タイミング、または、これらのプログラムを呼び出すAPI(Application Program Interface)等の実行内容および実行タイミングが一致しているかどうかを比較する。
【0026】
また、例えば、判断部28は、情報処理装置12がメモリに対して書き込みおよび読み出しをするデータの振る舞いが一致しているかどうかを比較する。より詳しくは、判断部28は、情報処理装置12がメモリに対して書き込みおよび読み出しをするタイミングおよびデータの内容が一致しているかどうかを比較する。
【0027】
また、例えば、判断部28は、情報処理装置12を構成するリソースの状態(例えばメモリ使用量およびプロセッサ使用率)の振る舞いが一致しているかどうかを比較する。より詳しくは、判断部28は、情報処理装置12を構成するメモリ使用量の変化またはプロセッサ使用率の変化が一致しているかどうかを比較する。
【0028】
また、例えば、判断部28は、情報処理装置12が制御する機器の物理量の振る舞いが一致しているかどうかを比較する。より詳しくは、判断部28は、情報処理装置12が制御する機器の物理量(例えば電力量、温度、湿度、および流体の流量)の値または変化が一致しているかどうかを比較する。
【0029】
そして、判断部28は、比較結果に基づいて、ソフトウエア更新を適用した後の情報処理装置12の挙動が正常であるか否かを判断する。即ち、判断部28は、複数回分のソフトウエア更新を適用した情報処理装置12の挙動が互いに一致していれば、挙動が正常であると判断する。判断部28は、ソフトウエア更新を適用した情報処理装置12の挙動が一致していなければ、何れかの挙動が正常ではないと判断する。
【0030】
管理用コンピュータ30は、一例として、当該コンピューティングシステム10の全体の管理および制御を実行する。また、更に、管理用コンピュータ30は、当該コンピューティングシステム10に対して不正アクセスがあった場合、その不正アクセスの除去処理を実行する。
【0031】
図2は、本実施形態に係るコンピューティングシステム10における処理フローを示す。まず、ステップS11において、更新部22は、当該コンピューティングシステム10を管理する管理用コンピュータ等からの指示に応じて、当該コンピューティングシステム10内における特定の一の情報処理装置12に対して複数回分のソフトウエア更新を適用させる。
【0032】
ここで、一の情報処理装置12に対して複数回分の一のソフトウエア更新を適用させるとは、例えば、同一種類の複数の情報処理装置12のそれぞれに対して一のソフトウエア更新を適用させる処理を含む。また、一の情報処理装置12に対して複数回分の一のソフトウエア更新を適用させるとは、例えば、情報処理装置12の状態をバックアップしてから一のソフトウエア更新を適用させ、その後、その情報処理装置12をソフトウエア更新前の状態に復元してから一のソフトウエア更新を適用させる処理を複数回繰り返す処理も含む。
【0033】
また、一の情報処理装置12に対して複数回分の一のソフトウエア更新を適用させるとは、例えば、一の情報処理装置12に対して一のソフトウエア更新を適用させるとともに、一のソフトウエア更新の前における一の情報処理装置12の処理を仮想的に実現する仮想マシン40に対して一のソフトウエア更新を適用させる処理も含む。なお、一の情報処理装置12に対して複数回のソフトウエア更新を適用させる例については、図3から図5において更に説明する。
【0034】
続いて、ステップS12において、収集部26は、一のソフトウエア更新を適用した情報処理装置12の挙動を、複数回分のソフトウエア更新のそれぞれについて収集する。収集部26は、一例として、一のソフトウエア更新を適用した複数の情報処理装置12の挙動のそれぞれをリアルタイムで収集する。また、判断部28は、一例として、一のソフトウエア更新を適用した複数の情報処理装置12の挙動のそれぞれを記憶装置に一旦蓄積しておき、蓄積した複数の情報処理装置12の挙動を収集してもよい。また、判断部28は、情報処理装置12の構成のイメージを仮想モデルにおいて実現し、仮想モデルの挙動を収集してもよい。
【0035】
続いて、ステップS13において、判断部28は、複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較する。そして、判断部28は、一のソフトウエア更新を適用した後の情報処理装置12の挙動が正常であるか否かを判断する。より具体的には、判断部28は、収集した複数の挙動が一定範囲内で一致している場合には、一のソフトウエア更新を適用した後の一の情報処理装置12の挙動が正常であると判断する。また、判断部28は、複数の挙動が不一致である場合(一定の範囲内で一致していない)には、一のソフトウエア更新を適用した後の一の情報処理装置12の挙動が異常であると判断する。
【0036】
なお、ステップS13において、判断部28は、一のソフトウエア更新を適用してから、少なくともソフトウエア更新により挙動の変化が現れるまで、複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較する。例えば、1日1回のファイルの書き換えをするプログラムのバージョンアップをした場合には、判断部28は、少なくとも1日の間、複数の情報処理装置12のそれぞれの挙動(例えば当該プログラムによるファイルの読み出し処理)を比較する。
【0037】
判断部28は、判断結果を、不正アクセスの除去処理を実行する管理用コンピュータ等に通知する。通知を受けた管理用コンピュータは、対応する情報処理装置12に不正なアクセスがあるかどうかを検証して、不正なアクセスがあると判断した場合には不正アクセスの除去処理を実行する。
【0038】
以上のように、コンピューティングシステム10によれば、ソフトウエア更新を適用した後の情報処理装置12の異常を検知することができる。特に、コンピューティングシステム10は、情報処理装置12の挙動を観察すればよいので、情報処理装置12の内部を解析等することなく正確に異常を検知することができる。
【0039】
なお、更新部22は、ステップS11において、コンピューティングシステム10が備える同一種類の複数の情報処理装置12のうち一部の情報処理装置12にのみ、特定の一のソフトウエア更新を適用してもよい。そして、判断部28によって一のソフトウエア更新を適用した一部の情報処理装置12の挙動が正常であると判断されたことを条件として、更新部22は、他の同一種類の情報処理装置12に一のソフトウエア更新を適用してもよい。
【0040】
また、この場合、判断部28は、一部の情報処理装置12に一のソフトウエア更新を適用した後の挙動が正常であるか否かの判断基準から変更した判断基準により、他の情報処理装置12に一のソフトウエア更新を適用した後の挙動が正常であるか否かを判断してもよい。例えば、判断部28は、正常であると判断する挙動の範囲を、ソフトウエア更新の前の範囲からシフトさせたり、拡大させたり、または縮小させたりしてもよい。
【0041】
これにより、コンピューティングシステム10は、一部の情報処理装置12に対して正常に一のソフトウエア更新が適用されたことが確認できてから、他の情報処理装置12に一のソフトウエア更新が適用させることができる。さらに、コンピューティングシステム10は、一のソフトウエア更新を適用した後の正常な挙動を認識できるので、その後に他の情報処理装置12に対して一のソフトウエア更新を適用した場合に、挙動が正常であるか否かを簡易に且つ精度良く行うことができる。従って、このようなコンピューティングシステム10によれば、不正なアクセスがあった場合であっても被害を最小限にとどめることができる。
【0042】
図3は、情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第1例を示す。第1例においては、更新部22は、実際に備えられた同一種類の複数の情報処理装置12のそれぞれに対して、一のソフトウエア更新を適用させる。
【0043】
例えば、更新部22は、実際に備えられた複数の情報処理装置12のうちの、システム構成、設定、および動作環境の少なくとも1つが共通する複数の情報処理装置12に対して、一のソフトウエア更新を適用させる。システム構成が共通する複数の情報処理装置12とは、例えば、ハードウエア構成およびソフトウエア構成等が共通する複数の情報処理装置12をいう。また、設定が共通する複数の情報処理装置12とは、一例として、ハードウエアに対する設定値およびソフトウエアに対する設定値等が共通する複数の情報処理装置12をいう。また、動作環境が共通する複数の情報処理装置12とは、設置されている場所、制御対象である機器の種類、または動作する時間帯等が共通する複数の情報処理装置12をいう。
【0044】
収集部26は、このような一のソフトウエア更新を適用した同一種類の複数の情報処理装置12のそれぞれの挙動を収集する。収集部26は、一例として、一のソフトウエア更新を適用した複数の情報処理装置12のそれぞれが実際の環境下において動作している状態において、複数の情報処理装置12のそれぞれの挙動を収集する。
【0045】
これにより、収集部26は、一のソフトウエア更新を適用した情報処理装置12の挙動を、複数回分のソフトウエア更新のそれぞれについて収集することができる。そして、判断部28は、収集部26が取得した複数の情報処理装置12のそれぞれの挙動を互いに比較する。
【0046】
このような第1例に係るコンピューティングシステム10は、実際の環境下において動作している情報処理装置12の挙動を収集するので、検出のための特別なメカニズムを設けずに簡易に、ソフトウエア更新を適用した後の情報処理装置12の異常を検知することができる。また、このような第1例に係るコンピューティングシステム10は、リアルタイムで正確に、ソフトウエア更新を適用した後の情報処理装置12の異常を検知することができる。
【0047】
図4は、情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第2例を示す。第2例においては、更新部22は、一の情報処理装置12の状態をバックアップしてから一のソフトウエア更新を適用させ、更に、一の情報処理装置12をソフトウエア更新前の状態に復元してから一のソフトウエア更新を適用させる処理を複数回繰り返す。
【0048】
例えば、更新部22は、一の情報処理装置12の構成を仮想的に実現する仮想マシン40のイメージを保存する。そして、更新部22は、保存したイメージの構成を実現した仮想マシン40に対して、一のソフトウエア更新を適用させる処理を複数回繰り返す。これにより、更新部22は、一の情報処理装置12をソフトウエア更新前の状態に復元してから一のソフトウエア更新を適用させる処理を複数回繰り返すことができる。
【0049】
収集部26は、一の情報処理装置12に対して適用された複数回分の一のソフトウエア更新のそれぞれについて、一の情報処理装置12の挙動を収集する。収集部26は、一例として、仮想マシン40により実現された情報処理装置12のそれぞれに対して一のソフトウエア更新を適用して、実際の動作環境と同様の動作環境において動作させる。収集部26は、一例として、情報処理装置12の動作環境を仮想化した環境(例えば、情報処理装置12と同様の入力データを与えた環境下、および情報処理装置12の制御対象となる機器を仮想化した機器を制御する環境下)において、仮想マシン40により実現された情報処理装置12のそれぞれを一定期間ずつ動作させて、挙動を収集する。
【0050】
これにより、収集部26は、情報処理装置12を仮想化して実現する複数の仮想マシン40から、複数回分のソフトウエア更新のそれぞれについての挙動を収集することができる。そして、判断部28は、収集部26が取得した複数の仮想マシン40により仮想的に実現された情報処理装置12のそれぞれの挙動を互いに比較する。
【0051】
このような第2例に係るコンピューティングシステム10は、仮想マシン40を用いて情報処理装置12の挙動を検出するので、1個の情報処理装置12に対して異なるタイミングで同一のソフトウエア更新を複数回適用させることができる。これにより、コンピューティングシステム10は、同一種類の情報処理装置12が当該コンピューティングシステム10内において非常に少ない場合であっても、検出のための特別なメカニズムを設けずに簡易にソフトウエア更新を適用した後の異常を検知することができる。また、コンピューティングシステム10は、ソフトウエア更新のタイミングに応じてアクションを開始したりしなかったりするようなマルウエアによって攻撃された場合に、その攻撃を検出することができる。
【0052】
図5は、情報処理装置12の挙動を複数回分のソフトウエア更新のそれぞれについて収集する方法の第3例を示す。第3例においては、更新部22は、当該コンピューティングシステム10に実際に備えられた一の情報処理装置12の構成のイメージを仮想マシン40上に複製して、一の情報処理装置12の構成の複製を仮想的に実現する。続いて、更新部22は、実際に備えられた一の情報処理装置12に対して一のソフトウエア更新を適用させるとともに、仮想マシン40により実現された一の情報処理装置12に対して一のソフトウエア更新を適用させる。
【0053】
収集部26は、一のソフトウエア更新を適用した実際に備えられた一の情報処理装置12の挙動、および、一のソフトウエア更新を適用した仮想マシン40により実現された一の情報処理装置12の挙動を収集する。収集部26は、一例として、実際に備えられた情報処理装置12を実際の環境下において動作させる。また、収集部26は、一のソフトウエア更新を適用した仮想マシン40により実現された一の情報処理装置12を、実際の動作環境と同様の動作環境において動作させる。収集部26は、一例として、情報処理装置12の動作環境を仮想化した環境(例えば、情報処理装置12と同様の入力データを与えた環境下、および情報処理装置12の制御対象となる機器を仮想化した機器を制御する環境下)において、仮想マシン40により実現された一の情報処理装置12を一定期間動作させ、それぞれの仮想マシン40の挙動を収集する。
【0054】
これにより、収集部26は、情報処理装置12を仮想化した複数の仮想マシン40の挙動を収集することができる。そして、判断部28は、収集部26が取得した、実際に備えられた一の情報処理装置12の挙動と仮想マシン40により実現された一の情報処理装置12の挙動とを互いに比較する。
【0055】
判断部28は、実際に備えられた一の情報処理装置12の挙動と仮想マシン40により実現された一の情報処理装置12の挙動とが一致すれば、一のソフトウエア更新を適用した一の情報処理装置12の挙動が正常であると判断する。反対に、判断部28は、一致しなければ、一のソフトウエア更新を適用した一の情報処理装置12の挙動が正常ではないと判断する。
【0056】
このような第2例に係るコンピューティングシステム10は、仮想マシン40を用いて情報処理装置12の挙動を検出するので、1個の情報処理装置12に対して同一のソフトウエア更新を複数回用させることができる。これにより、コンピューティングシステム10は、同一種類の情報処理装置12が当該コンピューティングシステム10内において非常に少ない場合であっても、検出のための特別なメカニズムを設けずに簡易にソフトウエア更新を適用した後の異常を検知することができる。また、コンピューティングシステム10は、実際の環境下において動作している情報処理装置12の挙動を収集するので、リアルタイムで正確にソフトウエア更新を適用した後の情報処理装置12の異常を検知することができる。
【0057】
図6は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0058】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0059】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0060】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0061】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0062】
コンピュータ1900にインストールされ、コンピュータ1900を検査装置として機能させるプログラムは、更新モジュールと、収集モジュールと、判断モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、検査装置としてそれぞれ機能させる。
【0063】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である更新部22、収集部26および判断部28として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検査装置が構築される。
【0064】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0065】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0066】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0067】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0068】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0069】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0070】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0071】
10 コンピューティングシステム
12 情報処理装置
22 更新部
24 検出部
26 収集部
28 判断部
30 管理用コンピュータ
40 仮想マシン
100 ネットワーク
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM

【特許請求の範囲】
【請求項1】
ソフトウエア更新を適用した情報処理装置を検査する検査装置であって、
一のソフトウエア更新を適用した情報処理装置の挙動を、複数回分のソフトウエア更新のそれぞれについて収集する収集部と、
前記複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較して、前記一のソフトウエア更新を適用した後の前記情報処理装置の挙動が正常であるか否かを判断する判断部と、
を備える検査装置。
【請求項2】
当該検査装置は、同一種類の複数の情報処理装置に対して前記一のソフトウエア更新を適用させる更新部を更に備え、
前記収集部は、前記一のソフトウエア更新を適用した同一種類の複数の情報処理装置のそれぞれの挙動を収集する
請求項1に記載の検査装置。
【請求項3】
前記更新部は、システム構成、設定、および動作環境の少なくとも1つが共通する複数の情報処理装置に対して、前記一のソフトウエア更新を適用させる
請求項2に記載の検査装置。
【請求項4】
当該検査装置は、一の情報処理装置の状態をバックアップしてから前記一のソフトウエア更新を適用させ、更に、前記一の情報処理装置をソフトウエア更新前の状態に復元してから前記一のソフトウエア更新を適用させる処理を複数回繰り返す更新部を更に備え、
前記収集部は、前記一の情報処理装置に対して適用された複数回分の前記一のソフトウエア更新のそれぞれについて、前記一の情報処理装置の挙動を収集する
請求項1に記載の検査装置。
【請求項5】
前記更新部は、前記一の情報処理装置の構成を仮想的に実現する仮想マシンのイメージを保存し、保存したイメージの前記仮想マシンに対して前記一のソフトウエア更新を適用させる処理を複数回繰り返し、
前記収集部は、前記仮想マシンの挙動を収集する
請求項4に記載の検査装置。
【請求項6】
当該検査装置は、一の情報処理装置に対して前記一のソフトウエア更新を適用させるとともに、前記一のソフトウエア更新の前における前記一の情報処理装置の処理を仮想的に実現する仮想マシンに対して前記一のソフトウエア更新を適用させる更新部を更に備え、
前記収集部は、前記一のソフトウエア更新を適用した前記一の情報処理装置の挙動、および、前記一のソフトウエア更新を適用した前記仮想マシンの挙動を収集する
請求項1に記載の検査装置。
【請求項7】
前記更新部は、複数の情報処理装置を備える情報システムにおける一部の情報処理装置に前記一のソフトウエア更新を適用させ、前記判断部により前記一のソフトウエア更新を適用した前記一部の情報処理装置の挙動が正常であると判断されたことを条件として、前記情報システムにおける他の情報処理装置に前記一のソフトウエア更新を適用させる
請求項2から6の何れか1項に記載の検査装置。
【請求項8】
前記判断部は、前記一部の情報処理装置に前記一のソフトウエア更新を適用した後の挙動が正常であるか否かの判断基準から変更した判断基準により、前記他の情報処理装置に前記一のソフトウエア更新を適用した後の挙動が正常であるか否かを判断する
請求項7に記載の検査装置。
【請求項9】
前記判断部は、前記一のソフトウエア更新を適用してから、少なくともソフトウエア更新により挙動の変化が現れるまで、前記複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較する
請求項1から8の何れか1項に記載の検査装置。
【請求項10】
前記収集部は、前記情報処理装置が送受信するデータの振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項11】
前記収集部は、前記情報処理装置が実行するプログラムおよび関数の振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項12】
前記収集部は、前記情報処理装置がメモリに対して書き込みおよび読み出しをするデータの振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項13】
前記収集部は、前記情報処理装置を構成するリソースの状態の振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項14】
前記収集部は、前記情報処理装置内におけるシステムコールの呼び出しの振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項15】
前記収集部は、前記情報処理装置が制御する機器の物理量の振る舞いを前記情報処理装置の挙動として収集する
請求項1から9の何れか1項に記載の検査装置。
【請求項16】
前記情報処理装置のそれぞれに対応して設けられ、対応する情報処理装置が制御する機器または対応する情報処理装置自体の動作により影響する物理量の振る舞いを検出する検出部を更に備え、
前記収集部は、一のソフトウエア更新を適用した情報処理装置に対応して設けられた前記検出部からパラメータの振る舞いを取得する
請求項15に記載の検査装置。
【請求項17】
ソフトウエア更新を適用した情報処理装置を検査する検査方法であって、
一のソフトウエア更新を適用した情報処理装置の挙動を、複数回分のソフトウエア更新のそれぞれについて収集する収集ステップと、
前記複数回分のソフトウエア更新のそれぞれについて収集した複数の挙動を互いに比較して、前記一のソフトウエア更新を適用した後の前記情報処理装置の挙動が正常であるか否かを判断する判断ステップと、
を備える検査方法。
【請求項18】
コンピュータを請求項1から16の何れか1項に記載の検査装置として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−212380(P2012−212380A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−78466(P2011−78466)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100143502
【弁理士】
【氏名又は名称】明石 英也
【Fターム(参考)】