JP2019212114A - 情報処理装置、その制御方法およびプログラム - Google Patents

情報処理装置、その制御方法およびプログラム Download PDF

Info

Publication number
JP2019212114A
JP2019212114A JP2018108824A JP2018108824A JP2019212114A JP 2019212114 A JP2019212114 A JP 2019212114A JP 2018108824 A JP2018108824 A JP 2018108824A JP 2018108824 A JP2018108824 A JP 2018108824A JP 2019212114 A JP2019212114 A JP 2019212114A
Authority
JP
Japan
Prior art keywords
program
information processing
processing apparatus
data
detected
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
Application number
JP2018108824A
Other languages
English (en)
Inventor
修一 閏間
Shuichi Uruma
修一 閏間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018108824A priority Critical patent/JP2019212114A/ja
Publication of JP2019212114A publication Critical patent/JP2019212114A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】プログラムの改ざんがあっても、できる限り情報処理装置の利便性を損なわない。【解決手段】記録手段に記録されているプログラムをCPU101が実行する複合機100は、複合機100のデータ通信を管理する通信管理手段208と、Javaプログラム214の改ざんを検知するJavaプログラム改ざん検知処理手段206と、を有する。通信管理手段208は、Javaプログラム214の改ざんが検知された場合、ユーザの設定に従って、複合機100の一部の機能の実行を制限し、他の一部の機能の実行を許可する縮退動作を行う。【選択図】図2

Description

本発明は、情報処理装置、その制御方法およびプログラムに関する。
情報処理装置では、記録部に記録されているプログラムをCPUなどのプロセッサが実行することにより、各種の情報を処理する。このような装置には、たとえば画像データを処理する画像処理装置がある。ところで、情報処理装置では、プログラムの脆弱性をついて、プログラムを改ざんし、装置を悪用する攻撃が問題となっている。そのような攻撃への対策として、耐タンパーモジュールを用いてプログラムのハッシュ値を計算して保存しておき、起動するたびにプログラムのハッシュ値を再計算して検証を行うことで、プログラムの改ざん検知することができる。そして、特許文献1では、プログラムの改ざんを検知した場合に、改ざんされたプログラムを起動しない。
特開2009−301429号公報
しかしながら、特許文献1の場合、ユーザは、改ざんされたプログラムを全く利用できなくなる。このように情報処理装置では、プログラムの改ざんがあったとしても、できる限り利便性を損なわないようにすることが求められている。
本発明に係る情報処理装置は、記録手段に記録されているプログラムをプロセッサが実行する情報処理装置であって、前記情報処理装置のデータ通信を管理する通信管理手段と、前記プログラムの改ざんを検知する検知手段と、前記検知手段により前記プログラムの改ざんが検知された場合、ユーザの設定に従って、前記情報処理装置の一部の機能の実行を制限し、他の一部の機能の実行を許可する縮退動作を行う制御を行う制御手段と、を有する。
本発明では、プログラムの改ざんがあったとしても、できる限り情報処理装置の利便性を損なわないようにできる。
本発明の実施形態に係る複合機のハードウェア構成を説明するブロック図である。 図1の複合機の起動状態におけるソフトウェアモジュールを説明するブロック図である。 図2の縮退設定データの設定値を選択するための表示画面の一例である。 図2の縮退設定データの設定値の一例である。 図2の改ざんプログラムリストの一例のデータ構造を説明する図である。 図2の起動状態を生成するための、複合機の基本的な起動処理の模式的な説明図である。 本実施形態での複合機の起動処理を示すフローチャートである。 通信管理部が、Java(登録商標)プログラムからネットワーク処理依頼を受け付けた場合の処理を示すフローチャートである。 通信管理部が、ネットワークから、Javaプログラムで処理するデータを受信した場合の処理を示すフローチャートである。
以下、本発明の実施形態について図面を参照しながら詳細に説明する。しかしながら、以下の実施形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は実施形態に記載されている構成によって限定されることはない。
<<ハードウェア構成>>
図1は、本発明の実施形態に係る複合機100のハードウェア構成を説明するブロック図である。図1の複合機(デジタル複合機/MFP/Multi Function Peripheral)100は、情報処理装置の一例である。複合機100は、たとえば受信した画像データを処理する情報処理装置である。複合機100は、CPU101、ROM102、RAM103、HDD104、ネットワークI/F制御部105、スキャナI/F制御部106、プリンタI/F制御部107、およびこれらを相互に接続するバス109、を有する。バス109には、さらに、パネル制御部108、Embedded Controller114、フラッシュメモリ117、LED118、が接続される。バス109を通じて、CPU101の制御信号や各装置間のデータ信号が送受される。CPU101は、複合機100のソフトウェアプログラムを実行し、装置全体を制御する。ROM102は、リードオンリーメモリであり、複合機100のBIOS210プログラム、固定パラメータなどを格納する。ROM102は、さらに、後述するローダ211のプログラム、カーネル212のプログラム、Nativeプログラム213が改ざんされた場合にそれらのソフトウェアを復旧させるための実行可能形式のプログラムであるマスタデータを格納する。フラッシュメモリ117は、不揮発性の半導体メモリであり、複合機100のローダ211のプログラム、カーネル212のプログラム、Nativeプログラム213、を格納する。RAM103は、ランダムアクセスメモリであり、CPU101が実行しているプログラムやデータを一時的に格納する。HDD104は、ハードディスクドライブであり、後述する後入れ可能なプラグインアプリケーションプログラムとしてのJavaプログラム214などの一部のプログラム、各種データを格納する。
ここで、Nativeプログラムとは、複合機100の出荷時から予め複合機100にインストールされているプログラムである。また、Javaプログラムは、OS(Operating System)上に構築されるJava実行基盤上で動作するプログラムである。Javaプログラムは、例えば、ユーザが任意で複合機100にインストールする拡張プログラム(プラグインアプリケーションプログラム)である。
ネットワークI/F制御部105は、ネットワーク110とのデータの送受信を制御する。ネットワークI/F制御部105は、複合機100で通信するすべてのデータを送受する。なお、ネットワークI/F制御部105は、無線通信機能などを備えてもよい。スキャナI/F制御部106は、スキャナ111による原稿の読み取り制御する。プリンタI/F制御部107は、プリンタ112による印刷処理などを制御する。パネル制御部108は、タッチパネル式の操作パネル113を制御し、各種情報の表示、使用者からの指示入力を制御する。LED118は、必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。Embedded Controller114は、CPU115、RAM116、ROM119、を有する。CPU115は、Embedded Controller114のソフトウェアプログラムを実行し、複合機100の一部の制御を実行する。RAM116は、ランダムアクセスメモリであり、CPU115が複合機100を制御する際にプログラムやデータを一時的に格納する。ROM119は、リードオンリーメモリであり、CPU115が複合機100を制御するためのプログラムやデータを保持する。このような複合機100では、CPU115がROM119に記録されているプログラムを実行し、CPU101がROM102、フラッシュメモリ117、HDD104に記録されているプログラムを実行する。これにより、複合機100には、必要とされる機能が実現される。
<<ソフトウェア構成>>
図2は、図1の複合機100の起動状態におけるソフトウェアモジュールを説明するブロック図である。図1のCPU115が各々のプログラムを実行することにより、図2のソフトウェアモジュールが実現される。なお、ここで、プログラムとは、CPU101に処理を実行させるためのものであればよい。プログラムは、その実行により実現される機能ごとの複数のプログラムで構成されてよい。プログラムの記述形式は限定されない。プログラムは、たとえば、処理シーケンスのコードを実行順に記述したものであっても、高級言語で記述したものであってもよい。図2の複合機100は、ソフトウェアモジュールとして、通信管理部208、UI制御部203、ブートプログラム209、BIOS210、ローダ211、カーネル212、Nativeプログラム213、Javaプログラム214、を有する。また、図2には、改ざんプログラムリスト215、縮退設定データ216、ログデータ218、が図示されている。通信管理部208は、ネットワーク110に接続されているネットワークI/F制御部105を制御する。通信管理部208は、複合機100が外部と送受するすべてのデータを管理する。UI制御部203は、パネル制御部108を介して操作パネル113への入力を受け取り、入力に応じた処理や操作パネル113への画面出力を行う。
ブートプログラム209は、複合機100の電源を入れると最初に実行されるプログラムであり、Embedded Controller114のCPU115が実行するプログラムである。ブートプログラム209は、複合機100の起動に関わる処理を行う。また、ブートプログラム209は、BIOS210の改ざん検知を行うBIOS改ざん検知処理部201、を有する。BIOS改ざん検知処理部201は、ブートプログラム209によりBIOS210のプログラムをロードする前に、BIOS210のプログラムの改ざんを検知する。BIOS210は、起動時にブートプログラム209の後にCPU101により実行されるプログラムである。BIOS210は、複合機100の起動に関わる処理を行う。また、BIOS210は、ローダ211の改ざん検知を行うローダ改ざん検知処理部202、を有する。ローダ改ざん検知処理部202は、BIOS210によりローダ211のプログラムをロードする前に、ローダ211のプログラムの改ざんを検知する。ローダ211は、起動時にBIOS210の後にCPU101により実行されるプログラムである。ローダ211は、複合機100の起動に関わる処理を行う。また、ローダ211は、カーネル212の改ざん検知を行うカーネル改ざん検知処理部204、を有する。カーネル改ざん検知処理部204は、ローダ211によりカーネル212のプログラムをロードする前に、カーネル212のプログラムの改ざんを検知する。カーネル212は、起動時にローダ211の後にCPU101により実行されるプログラムである。カーネル212は、複合機100の起動に関わる処理を行う。また、カーネル212は、Nativeプログラム213の改ざん検知を行うNativeプログラム改ざん検知処理部205、を有する。Nativeプログラム改ざん検知処理部205は、カーネル212によりNativeプログラム213をロードする前に、Nativeプログラム213の改ざんを検知する。Nativeプログラム213は、起動時にカーネル212の後にCPU101により実行されるプログラムである。Nativeプログラム213は、後入れ可能なJavaプログラム214と連携して、複合機100の各機能を提供する。このようなNativeプログラム213には、たとえばスキャナI/F制御部106やプリンタI/F制御部107を制御するプログラム、Javaプログラム214を起動するプログラムなどがある。そして、Nativeプログラム213は、プロセス管理部207、Javaプログラム改ざん検知処理部206、ログ処理部217、を有する。プロセス管理部207は、起動するJavaプログラム214のプロセスIDを管理する。Javaプログラム改ざん検知処理部206は、Nativeプログラム213によりJavaプログラム214をロードする前に、Javaプログラム214の改ざんを検知する。ログ処理部217は、改ざんされたJavaプログラム214を実行する場合には強制的に、改ざんされたJavaプログラム214を含むプログラムの実行ログをHDD104などに記録する。
Javaプログラム214は、Nativeプログラム213の後にCPU101により実行されるプログラムである。Javaプログラム214は、それ単体で、あるいは複合機100のNativeプログラム213と連携して、様々な機能を提供する。Javaプログラム214は、たとえば操作パネル113に、画面を表示する。また、Javaプログラム214は、上述した他の基本プログラムと異なり、出荷後に利用者が複合機100にインストールすることができる後入れ可能なプラグインアプリケーションプログラムという特徴を有する。これに対し、上述したブートプログラム209、BIOS210、ローダ211、カーネル212、Nativeプログラム213は、複合機100に出荷時に必須的に組み込まれる基本プログラムである。そして、基本プログラムでは、複合機100の出荷前にプログラムのマスタデータを複合機100に保持しておき、改ざんを検知したときにはそのマスタデータを用いてプログラムを復旧させることができる。しかしながら、Javaプログラム214は、後入れされるという特徴から、マスタデータを複合機100に保持させていない。よって、複合機100は、データ通信を遮断したスタンドアローン状態において、Javaプログラム214について、基本プログラムで採用している上述の復旧手法を同様に採用することは難しい。
縮退設定データ216は、Javaプログラム214の改ざんを検知した際の複合機100の動作についての設定値が保存されるHDD104上の領域である。縮退設定データ216の設定値には、以下の3つがある。縮退設定データ216の設定値は、具体的には、「1.Javaプログラム214を起動しない。」である。また、設定値は、「2.Javaプログラム214を起動し、全プログラムにネットワーク110を利用させない。」である。また、設定値は、「3.Javaプログラム214を起動し、改ざんされたJavaプログラム214のみにネットワーク110を利用させない。」である。縮退設定データ216には、プログラムの改ざんが検知された場合においてデータ通信を許可または禁止する範囲が設定される。複合機100の管理者は、あらかじめ縮退設定データ216の設定値を選択する。図3は、縮退設定データ216の設定値を選択する表示画面の一例である。図3の表示画面は、Nativeプログラム213により、操作パネル113に表示される。図3の表示画面には、縮退設定データ216についての上述した1から3の設定値に対応する3つの選択項目が表示される。管理者が、3つの選択項目の一つを選択すると、Nativeプログラム213は、選択された項目に対応する設定値により、縮退設定データ216を更新する。図4は、縮退設定データ216の設定値の一例である。図4において、設定値「1」は、Javaプログラム214を停止する設定値である。設定値「2」は、Javaプログラム214を起動し、すべてのJavaプログラム214のデータ送信を禁止する設定値である。設定値「3」は、Javaプログラム214を起動し、改ざんされたJavaプログラム214のデータ送信を禁止する設定値である。設定値「1」から設定値「3」になるにつれて、Javaプログラム214は、通常に近い状態で起動されることになる。
改ざんプログラムリスト215は、Javaプログラム改ざん検知処理部206がJavaプログラム214の改ざんを検知した際に、その改ざんが検知されたJavaプログラム214の情報を記録するためのRAM103上の領域である。図5は、改ざんプログラムリスト215の一例のデータ構造を説明する図である。図5では、「Javaプログラム1」が改ざんされたJavaプログラム214として改ざんプログラムリスト215に登録されている。Javaプログラム改ざん検知処理部206は、実際には、改ざんされたJavaプログラム214そのものではなく、その起動時に一意に割り当てたプロセスIDを、改ざんプログラムリスト215に登録する。
ログデータ218は、改ざんされたJavaプログラム214を実行する場合などにおいて、改ざんされたJavaプログラム214を含むプログラムの実行ログを記録したデータである。ログデータ218には、各実行ログのデータとして、たとえば、実行したプログラムを特定するプロセスID、実行時刻、実行時に使用したデータ、を含む。ログ処理部217は、プロセスが実行されるたびに、実行されたプロセスの実行ログのデータを、ログデータ218に追加する。
図6は、図2の複合機100の起動状態を生成するための、基本的な起動処理の模式的な説明図である。図6(a)は、複合機100の起動処理順の模式的な説明図である。図6(a)の起動処理において、複合機100は、プログラムの改ざんを検知しない。複合機100の電源が投入された後、起動したブートプログラム209がBIOS210を起動する。次に、BIOS210がローダ211を起動する。次に、ローダ211がカーネル212を起動する。次に、カーネル212がNativeプログラム213を起動する。また、Nativeプログラム213の中の起動プログラムがJavaプログラム214を起動する。このブートストラップ方式の起動処理により、複合機100は、図2の起動した状態になる。図2において、Nativeプログラム213とJavaプログラム214とは、互いに連携して複合機100の機能を提供する。
これに対して、図6(b)では、複合機100は、プログラムの改ざんを検知する。起動処理順は、図6(a)と同じである。そして、図6(b)には、プログラムの改ざんを検知するために、各プログラムのデジタル署名(以下署名と呼ぶ)と、公開鍵とが図示されている。これらの改ざん検知用のデータは、対応するプログラムとともに、図6(b)に図示する記録部に保存される。公開鍵と署名とは、複合機100において各プログラムが起動される前に、たとえば出荷前にあらかじめそれぞれの記録部に保存される。たとえば、ブートプログラム209がBIOS署名の検証に用いる公開鍵300は、ROM102に保存される。BIOS210のBIOS署名302と、ローダ検証に用いる公開鍵303とは、ROM102に保存される。ローダ211のローダ署名304と、カーネル検証に用いる公開鍵305とは、フラッシュメモリ117に保存される。カーネル212のカーネル署名306と、Nativeプログラム検証に用いる公開鍵307とは、フラッシュメモリ117に保存される。Nativeプログラム213のNativeプログラム署名308と、Javaプログラム検証に用いる公開鍵309とは、フラッシュメモリ117に保存される。Javaプログラム214のJavaプログラム署名310は、HDD104に保存される。
図2における検知部としての複数の改ざん検知処理部201、202、204、205、206は、これらの公開鍵と署名とを比較して、それぞれの後に起動されるプログラムについての改ざんを検知する。また、図2の複数の改ざん検知処理部201、202、204、205、206は、プログラムが改ざんされていない場合には、判断したプログラムについての起動を許可する。なお、本実施例では公開鍵がすべて異なるものとして説明しているが、同じ公開鍵が含まれていてもよい。また、各プログラムについての署名と公開鍵との保存場所は、ROM102、フラッシュメモリ117、HDD104に限られない。各プログラムについての署名と公開鍵とは、その他の記録媒体に保存されてよい。また、各プログラムの署名と公開鍵との保存場所は、図2と異なる割り当てでもよい。たとえばローダ211のローダ署名304と、カーネル検証に用いる公開鍵305とは、ROM102に保存されてよい。また、本実施形態では、Nativeプログラム213から起動されるプログラムとしてJavaプログラム214を例示しているが、Nativeプログラム213から起動されるプログラムの種類はこれに限定されない。Nativeプログラム213から起動されるプログラムは、たとえば、少なくとも出荷後に複合機100にインストールすることが可能なプログラムであれば、どのような種類のプログラムでもよい。
<<処理フロー>>
次に、本実施形態の複合機100の動作について説明する。図7は、本実施形態の複合機100の起動処理を示すフローチャートである。複合機100の電源が入れられると、ステップS701において、CPU115は、ブートプログラム209を起動する。ステップS701において、BIOS改ざん検知処理部201は、BIOS210の改ざん検知処理を実施する。BIOS改ざん検知処理部201は、BIOS署名の検証に用いる公開鍵300と、BIOS210のBIOS署名302とが一致している場合、BIOS210の改ざんがないと判断する。この場合、ブートプログラム209は、ステップST704において、BIOS210を起動する。BIOS署名の検証に用いる公開鍵300と、BIOS210のBIOS署名302とが一致していない場合、BIOS改ざん検知処理部201は、BIOS210の改ざんがあると判断する。この場合、ブートプログラム209は、ステップST703において、BIOS210をマスタデータで上書きして復旧し、その後に、ステップST704においてBIOS210を起動する。なお、ブートプログラム209は、起動処理を停止して複合機100の動作を停止させてもよい。ステップS705において、ローダ改ざん検知処理部202は、ローダ211の改ざん検知処理を実施する。ローダ改ざん検知処理部202は、ローダ検証に用いる公開鍵303と、ローダ211のローダ署名304とが一致する場合、ローダ211の改ざんがないと判断する。この場合、BIOS210は、ステップST707において、ローダ211を起動する。ローダ検証に用いる公開鍵303と、ローダ211のローダ署名304とが一致しない場合、ローダ改ざん検知処理部202は、ローダ211の改ざんがあると判断する。この場合、BIOS210は、ステップST706において、ローダ211をマスタデータで上書きして復旧し、その後に、ステップST707においてローダ211を起動する。なお、BIOS210は、起動処理を停止して複合機100の動作を停止させてもよい。
ステップS708において、カーネル改ざん検知処理部204は、カーネル212の改ざん検知処理を実施する。カーネル改ざん検知処理部204は、カーネル検証に用いる公開鍵305と、カーネル212のカーネル署名306とが一致する場合、カーネル212の改ざんがないと判断する。この場合、ローダ211は、ステップST710において、カーネル212を起動する。カーネル検証に用いる公開鍵305と、カーネル212のカーネル署名306とが一致しない場合、カーネル改ざん検知処理部204は、カーネル212の改ざんがあると判断する。この場合、ローダ211は、ステップST709において、カーネル212をマスタデータで上書きして復旧し、その後に、ステップST710においてカーネル212を起動する。なお、ローダ211は、起動処理を停止して複合機100の動作を停止させてもよい。ステップS711において、Nativeプログラム改ざん検知処理部205は、Nativeプログラム213の改ざん検知処理を実施する。Nativeプログラム改ざん検知処理部205は、Nativeプログラム検証に用いる公開鍵307と、Nativeプログラム213のNativeプログラム署名308とが一致する場合、Nativeプログラム213の改ざんがないと判断する。この場合、カーネル212は、ステップST713において、Nativeプログラム213を起動する。Nativeプログラム検証に用いる公開鍵307と、Nativeプログラム213のNativeプログラム署名308とが一致しない場合、Nativeプログラム改ざん検知処理部205は、Nativeプログラム213の改ざんがあると判断する。この場合、カーネル212は、ステップST712において、Nativeプログラム213をマスタデータで上書きして復旧し、その後に、ステップST713においてNativeプログラム213を起動する。なお、カーネル212は、起動処理を停止して複合機100の動作を停止させてもよい。
ステップS714において、Javaプログラム改ざん検知処理部206は、未起動のJavaプログラム214を選択する。ステップS715において、Javaプログラム改ざん検知処理部206は、選択したJavaプログラム214の改ざん検知処理を実施する。Javaプログラム改ざん検知処理部206は、Javaプログラム検証に用いる公開鍵309と、Javaプログラム214のJavaプログラム署名310とが一致する場合、選択したJavaプログラム214の改ざんがないと判断する。この場合、Nativeプログラム213は、ステップST716において、選択したJavaプログラム214を起動する。その後、Nativeプログラム213は、処理をステップS722に進める。Javaプログラム検証に用いる公開鍵309と、Javaプログラム214のJavaプログラム署名310とが一致しない場合、Javaプログラム改ざん検知処理部206は、選択したJavaプログラム214の改ざんがあると判断する。この場合、Javaプログラム改ざん検知処理部206は、ステップST717において、縮退設定データ216を取得し、ステップST718において、縮退設定データ216の設定値が「Javaプログラムを起動しない」であるか否かを判断する。縮退設定データ216の設定値が「Javaプログラムを起動しない」ではない場合、Nativeプログラム213は、ステップST719において、選択したJavaプログラム214を起動する。その後、ステップST720において、Javaプログラム改ざん検知処理部206は、選択したJavaプログラム214を改ざんプログラムリスト215に登録する。ステップST721において、Javaプログラム改ざん検知処理部206は、ログ処理部217を強制的に起動する。ステップST722において、Javaプログラム改ざん検知処理部206は、すべてのJavaプログラム214についての起動処理を完了したか否かを判断する。すべてのJavaプログラム214についての起動処理が完了していない場合、Javaプログラム改ざん検知処理部206は、処理をステップS714に戻す。Javaプログラム改ざん検知処理部206は、新たに未起動のJavaプログラム214を選択し、ステップS714からステップS722までの処理を繰り返す。すべてのJavaプログラム214についての起動処理が完了している場合、Javaプログラム改ざん検知処理部206は、図7の処理を終了する。これにより、複合機100は、改ざんを検知したものを含めてすべてのJavaプログラム214を起動した状態で、起動処理を完了する。また、改ざんプログラムリスト215には、改ざんが検知されたすべてのJavaプログラム214がプロセスIDにより登録される。
ステップST718において縮退設定データ216の設定値が「Javaプログラムを起動しない」である場合、Nativeプログラム213は、選択したJavaプログラム214を実行しない。また、ステップS723において、Nativeプログラム213は、すでに起動したすべてのJavaプログラム214を停止し、図7の処理を終了する。これにより、複合機100は、Javaプログラム214を起動しない状態で起動を完了する。このとき、フローチャートには表れていないが、Nativeプログラム213は、操作パネル113にエラー表示したり、ログデータ218にエラーを記録したりしてよい。これにより、利用者は、図7の起動処理後に改ざんが検知されたことを知ることができる。
次に、通信管理部208の処理について説明する。図8は、通信管理部208が、Javaプログラム214からネットワーク処理依頼を受け付けた場合の処理を示すフローチャートである。ステップS800において、通信管理部208は、Javaプログラム214からネットワーク処理依頼を受け取る。ステップS801において、通信管理部208は、改ざんプログラムリスト215に記録されているプロセスIDを確認する。ステップS802において、通信管理部208は、改ざんプログラムリスト215に記録されているプロセスIDの有無を判断する。改ざんプログラムリスト215にプロセスIDが1つも登録されていない場合、通信管理部208は、ステップS808において、要求されたデータ送信を許可して実行して、図8の処理を終了する。改ざんプログラムリスト215にプロセスIDが少なくとも1つ記録されている場合、ステップS803において、通信管理部208は、縮退設定データ216を取得する。ステップS804において、通信管理部208は、縮退設定データ216が「Javaプログラムを起動し、すべてのプログラムにネットワークを利用させない」設定値であるか否かを判断する。すべてのJavaプログラム214のネットワーク利用が禁止されている場合、ステップS805において、通信管理部208は、要求されたデータ送信を実行せずに、ネットワーク110を利用できない旨のエラーを表示する。ここで、エラーは、UI制御部203を介して操作パネル113に伝えられることにより、操作パネル113に表示される。その後、通信管理部208は、図8の処理を終了する。
すべてのJavaプログラム214のネットワーク利用が禁止されていない場合、ステップS806において、通信管理部208は、ネットワーク処理を要求してきたJavaプログラム214のプロセスIDを取得する。プロセスIDは、プロセス管理部207から取得できる。ステップS807において、通信管理部208は、取得したプロセスIDが、改ざんプログラムリスト215に記録されているプロセスIDと一致するか否かを判断する。取得したプロセスIDが、改ざんプログラムリスト215に記録されている場合、ステップS805において、通信管理部208は、要求されたデータ送信を実行せずに、ネットワーク110を利用できない旨のエラーを表示する。ここで、エラーは、UI制御部203を介して操作パネル113に伝えられることにより、操作パネル113に表示される。その後、通信管理部208は、図8の処理を終了する。取得したプロセスIDが、改ざんプログラムリスト215に記録されていない場合、通信管理部208は、ステップS808において、要求されたデータ送信を許可して実行し、図8の処理を終了する。このように、通信管理部208は、縮退設定データ216がすべてのデータ通信を禁止する場合、すべてのJavaプログラム214のデータ通信を禁止する。また、縮退設定データ216が改ざんを検知したJavaプログラム214についてのデータ通信を禁止する場合、通信管理部208は、改ざんプログラムリスト215への登録の有無に応じてJavaプログラム214のデータ通信を禁止する。例えば、改ざん検知されたプログラムを示すプログラムリスト215に含まれるプログラムによるデータ送信処理の実行を禁止する。一方、プログラムリスト215に含まれないプログラム(改ざんが検知されなかったプログラム)によるデータ送信処理を許可する。
図9は、通信管理部208が、ネットワーク110から、Javaプログラム214で処理するデータを受信した場合の処理を示すフローチャートである。ステップS901において、通信管理部208は、ネットワーク110から、Javaプログラム214で処理するデータを受信する。ステップS902において、通信管理部208は、縮退設定データ216を取得する。ステップS903において、通信管理部208は、縮退設定データ216が「Javaプログラムを起動し、すべてのプログラムにネットワークを利用させない」設定値であるか否かを判断する。縮退設定データ216が「Javaプログラムを起動し、すべてのプログラムにネットワークを利用させない」設定値である場合、通信管理部208は、処理をステップS909へ進める。ステップS909において、通信管理部208は、データ受信を禁止する設定に基づいて受信データを破棄し、図9の処理を終了する。 縮退設定データ216が「Javaプログラムを起動し、すべてのプログラムにネットワークを利用させない」設定値ではない場合、通信管理部208は、処理をステップS904へ進める。ステップS904において、通信管理部208は、受信データに基づいて、受信データを処理するJavaプログラム214を選択する。ステップS905において、通信管理部208は、改ざんプログラムリスト215を取得する。ステップS906において、通信管理部208は、選択したJavaプログラム214のプロセスIDが、改ざんプログラムリスト215に記録されているプロセスIDと一致するか否かを判断する。選択したJavaプログラム214のプロセスIDが、改ざんプログラムリスト215に記録されているプロセスIDと一致しない場合、通信管理部208は、処理をステップS907に進める。信管理部208は、ステップS907において、データ受信を許可する設定に基づいて受信データを選択したJavaプログラム214へ受け渡す。これにより、改ざんプログラムリスト215に記録されていないJavaプログラム214は、受信データを処理することができる。
選択したJavaプログラム214のプロセスIDが改ざんプログラムリスト215に記録されているプロセスIDと一致する場合、通信管理部208は、ステップS908において、受信データが印刷ジョブ用の画像データであるか否かを判断する。受信データが印刷ジョブ用の画像データである場合、通信管理部208は、ステップS907において、データ受信を許可する設定に基づいて、受信した画像データを、選択したJavaプログラム214へ受け渡す。これにより、印刷ジョブ用の画像データを処理するJavaプログラム214は、改ざんプログラムリスト215に記録されていても、印刷ジョブ用に受信した画像データを処理することができる。受信データが印刷ジョブ用のデータでない場合、通信管理部208は、ステップS909において、データ受信を禁止する設定に基づいて受信データを破棄する。
また、図8や図9のデータ通信処理が実行される場合、強制的に起動されるログ処理部217は、データ通信処理のプロセスが実行されるたびに、実行されたプロセスの実行ログのデータを、ログデータ218に追加する。これにより、ログデータ218には、実行されたプロセスが実行順に蓄積して記録される。利用者は、ログデータ218を解析することにより、データ送信またはデータ受信といったデータ通信についての禁止または許可の状況を把握できる。
以上のように、本実施形態では、後入れ可能なJavaプログラム214が改ざんされたとしても、縮退設定データ216が「Javaプログラムを起動しない」設定値以外であれば、すべてのJavaプログラム214が起動される。ただし、改ざんが検知されたJavaプログラム214についての、ネットワーク110を利用したデータ送信およびデータ受信は、縮退設定データ216および改ざんプログラムリスト215に基づいて通信管理部208により制限される。また、改ざんが検知されたJavaプログラム214についての、ネットワーク110を利用したデータ送信およびデータ受信は、制限されない。これにより、利用者は、Javaプログラム214を、改ざんが検知されたものを含めて、利用可能である。改ざんが検知されたJavaプログラム214については、通信以外の他の一部の機能を利用できる。このように、本実施形態では、Javaプログラム214が改ざんされた場合に、利用者がJavaプログラム214を全く使えなくなるという事態を避けて、できる限り利便性を損なわないようにできる。なお、改ざんされたプログラムが、マスタデータが存在するたとえばNativeプログラム213である場合、これをマスタデータで復旧する。利用者は、常に正常なNativeプログラム213を使うことができる。
このように、本実施形態では、複合機100のプロセッサを構成するCPU101,115は、起動時にプログラムの改ざんを検知する。そして、基本プログラムの後に実行される、後入れ可能なJavaプログラム214が改ざんされた場合、通信管理部208は、少なくとも改ざんを検知したJavaプログラム214についてのデータ送信を禁止する。たとえば、通信管理部208は、Javaプログラム214の実行によりデータ通信が生じた場合、改ざんを検知したプログラムの改ざんプログラムリスト215に含まれるJavaプログラム214についてのデータ送信を禁止する。これにより、本実施形態では、改ざんされたJavaプログラム214を実行することにより複合機100が不適切な動作をして複合機100のデータを外部へ送信しようとしても、そのデータ送信を禁止することができる。すなわち、本実施形態では、Javaプログラム214の改ざんがあったとしても、改ざんが検知されたJavaプログラム214による複合機100のデータの持ち出しを防ぐことかできる。本実施形態では、Javaプログラム214の改ざんがあったとしても、複合機100のデータの持ち出しを防ぎつつ、できる限り複合機100の利便性を損なわないようにできる。
本実施形態では、複合機100の記録部は、Javaプログラム214の改ざんが検知された場合においてデータ通信を許可または禁止する範囲についての縮退設定データ216を保持する。そして、通信管理部208は、縮退設定データ216および改ざんプログラムリスト215に基づいて、Javaプログラム214によるデータ通信を許可または禁止する。たとえば、縮退設定データ216が改ざん検知時にすべてのデータ通信を禁止する値の場合、通信管理部208は、改ざん検知時にはJavaプログラム214についてのすべてのデータ通信を禁止する。これにより、改ざんが検知されたプログラムを含むすべてのJavaプログラム214についてのすべてのデータ通信が禁止される。また、縮退設定データ216が改ざんを検知したJavaプログラム214のデータ通信を禁止する値の場合、通信管理部208は、改ざんが検知されたJavaプログラム214のデータ通信を禁止し、他のJavaプログラム214のデータ通信を許可する。これにより、通信管理部208は、改ざんが検知されたJavaプログラム214のデータ通信を禁止しつつ、それ以外のJavaプログラム214のデータ通信を許可できる。ユーザは、縮退設定データ216を設定することにより、自己の都合に適した縮退動作を選択することができる。本実施形態では、通信管理部208は、データ通信を禁止するJavaプログラム214についてのデータ通信であっても、印刷ジョブのための画像データを受信する場合にはデータ通信を許可する。これにより、複合機100は、縮退運転中であっても、印刷ジョブのための画像データを受信して印刷処理を実行することができる。本実施形態では、ログ処理部217は、Javaプログラム214についての改ざんが検知された場合、少なくとも改ざんが検知されたJavaプログラム214についてのログを強制的にログデータ218として記録する。よって、利用者は、縮退運転中における、改ざんが検知されたJavaプログラム214の動作などについて、後から解析することができる。
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
上記実施形態は、複合機(デジタル複合機/MFP/Multi Function Peripheral)100の例である。本発明は、この他の情報処理装置に適用し得る。
上記実施形態では、複合機100のCPU101,115は、Javaプログラム214についての改ざんがあった場合、通信機能を制限している。この他にもたとえば、複合機100のCPU101,115は、改ざんがあったJavaプログラム214について通信以外の一部の機能の実行について制限してもよい。
上記実施形態では、情報処理装置としての複合機100のCPU101は、公開鍵と署名とを比較して、プログラムの改ざんを判断している。この他にもたとえば、情報処理装置のCPUは、過去のプログラムのハッシュ値と最新のプログラムのハッシュ値とを比較して、プログラムの改ざんを判断してよい。
本実施形態は、上述の実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本実施形態は、1以上の機能を実現する回路(たとえば、ASIC)によっても実現可能である。
100 複合機
101,115 CPU
201 BIOS改ざん検知処理部
202 ローダ改ざん検知処理部
204 カーネル改ざん検知処理部
205 Nativeプログラム改ざん検知処理部
206 Javaプログラム改ざん検知処理部
208 通信管理部
215 プログラムリスト
216 縮退設定データ
217 ログ処理部
218 ログデータ

Claims (9)

  1. 記録手段に記録されているプログラムをプロセッサが実行する情報処理装置であって、
    前記情報処理装置のデータ通信を管理する通信管理手段と、
    前記プログラムの改ざんを検知する検知手段と、
    前記検知手段により前記プログラムの改ざんが検知された場合、ユーザの設定に従って、前記情報処理装置の一部の機能の実行を制限し、他の一部の機能の実行を許可する縮退動作を行う制御を行う制御手段と、
    を有することを特徴とする情報処理装置。
  2. 前記検知手段は、改ざんを検知したプログラムのリストを生成し、
    前記通信管理手段は、前記リストに含まれるプログラムの実行によるデータ送信を禁止する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記記録手段は、前記プログラムの改ざんが検知された場合においてデータ通信を許可または禁止する範囲についての縮退設定データを保持し、
    前記管理手段は、前記縮退設定データおよび前記リストに基づいて、プログラムによるデータ通信を許可または禁止する、
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記管理手段は、
    前記記録手段が、改ざん検知時にすべてのデータ通信を禁止する前記縮退設定データを保持する場合、改ざん検知時には、すべてのデータ通信を禁止し、
    前記記録手段が、改ざんを検知したプログラムによるデータ通信を禁止する前記縮退設定データを保持する場合、改ざんが検知されたプログラムによるデータ通信を禁止し、改ざんが検知されなかった他のプログラムによるデータ通信を許可する、
    ことを特徴とする請求項3記載の情報処理装置。
  5. 前記情報処理装置は、受信した画像データを処理する装置であり、
    前記管理手段は、データ通信を禁止する前記プログラムについてのデータ通信であっても、前記画像データを受信する場合にはデータ通信を許可する、
    ことを特徴とする請求項1から4のいずれか一項記載の情報処理装置。
  6. 前記検知手段により前記プログラムの改ざんが検知された場合、少なくとも改ざんが検知された前記プログラムについてのログを前記記録手段に記録するログ処理手段、を有する、
    ことを特徴とする請求項1から5のいずれか一項記載の情報処理装置。
  7. 前記記録手段は、プラグインアプリケーションプログラムを保持し、
    前記通信管理手段は、前記プラグインアプリケーションプログラムについての改ざんが前記検知手段により検知された場合、少なくとも改ざんが検知された前記プラグインアプリケーションプログラムによるデータ送信を禁止する、
    ことを特徴とする請求項1から6のいずれか一項記載の情報処理装置。
  8. 記録手段に記録されているプログラムをプロセッサが実行する情報処理装置の制御方法であって、
    前記プログラムの実行によるデータ通信を管理する通信管理工程と、
    前記プログラムの改ざんを検知する検知工程と、
    前記検知工程により前記プログラムの改ざんが検知された場合、ユーザの設定に従って、前記情報処理装置の一部の機能の実行を制限し、他の一部の機能の実行を許可する縮退動作を行う制御を行う制御工程と、
    を有することを特徴とする情報処理装置の制御方法。
  9. 記録手段に記録されているプログラムをプロセッサが実行する情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
    前記情報処理装置の制御方法は、
    前記プログラムの実行によるデータ通信を管理する通信管理工程と、
    前記プログラムの改ざんを検知する検知工程と、
    前記検知工程により前記プログラムの改ざんが検知された場合、ユーザの設定に従って、前記情報処理装置の一部の機能の実行を制限し、他の一部の機能の実行を許可する縮退動作を行う制御を行う制御工程と、
    を有することを特徴とするプログラム。
JP2018108824A 2018-06-06 2018-06-06 情報処理装置、その制御方法およびプログラム Pending JP2019212114A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018108824A JP2019212114A (ja) 2018-06-06 2018-06-06 情報処理装置、その制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018108824A JP2019212114A (ja) 2018-06-06 2018-06-06 情報処理装置、その制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2019212114A true JP2019212114A (ja) 2019-12-12

Family

ID=68845373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018108824A Pending JP2019212114A (ja) 2018-06-06 2018-06-06 情報処理装置、その制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2019212114A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021250740A1 (en) * 2020-06-08 2021-12-16 Nec Corporation Communication device, computing method and computer readable medium
WO2022102385A1 (ja) * 2020-11-12 2022-05-19 株式会社オートネットワーク技術研究所 車載ecu、プログラム及び情報処理方法
WO2022185570A1 (ja) * 2021-03-02 2022-09-09 日立Astemo株式会社 制御装置
JP7374780B2 (ja) 2020-01-20 2023-11-07 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
US11971991B2 (en) 2021-10-25 2024-04-30 Canon Kabushiki Kaisha Information processing apparatus, control method for controlling the same and storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7374780B2 (ja) 2020-01-20 2023-11-07 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
WO2021250740A1 (en) * 2020-06-08 2021-12-16 Nec Corporation Communication device, computing method and computer readable medium
WO2022102385A1 (ja) * 2020-11-12 2022-05-19 株式会社オートネットワーク技術研究所 車載ecu、プログラム及び情報処理方法
WO2022185570A1 (ja) * 2021-03-02 2022-09-09 日立Astemo株式会社 制御装置
US11971991B2 (en) 2021-10-25 2024-04-30 Canon Kabushiki Kaisha Information processing apparatus, control method for controlling the same and storage medium

Similar Documents

Publication Publication Date Title
JP2019212114A (ja) 情報処理装置、その制御方法およびプログラム
JP6494373B2 (ja) 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
US11669609B2 (en) Information processing apparatus, control method of the same, and storage medium
US9576132B2 (en) Information processing apparatus and information processing method
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP2023129643A (ja) 情報処理装置、情報処理方法およびプログラム
US20220284103A1 (en) Information processing apparatus, information processing method, and storage medium
US11681809B2 (en) Information processing apparatus, control method, and storage medium
US11526597B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7182966B2 (ja) 情報処理装置、情報処理装置の起動方法、及びプログラム
JP7171339B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US20200110616A1 (en) Information processing apparatus, method of controlling same, storage medium, and image forming apparatus
JP7282616B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2020053002A (ja) 情報処理装置とその制御方法、及びプログラム
US11423139B2 (en) Information processing apparatus, information processing method, and storage medium for preventing unauthorized rewriting of a module
US20220156378A1 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP2022157063A (ja) 情報処理装置、情報処理方法およびプログラム
US20220113990A1 (en) Information processing apparatus, information processing method, and storage medium
JP2023172570A (ja) 情報処理装置及び情報処理装置の制御方法
JP2021117589A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2021114156A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
JP2022147763A (ja) 情報処理装置及びプログラムの検証方法とプログラム
JP2022182837A (ja) 情報処理装置、及びその制御方法
JP2021117523A (ja) 情報処理装置、情報処理装置の処理方法およびプログラム