JP2019200660A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents

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

Info

Publication number
JP2019200660A
JP2019200660A JP2018095587A JP2018095587A JP2019200660A JP 2019200660 A JP2019200660 A JP 2019200660A JP 2018095587 A JP2018095587 A JP 2018095587A JP 2018095587 A JP2018095587 A JP 2018095587A JP 2019200660 A JP2019200660 A JP 2019200660A
Authority
JP
Japan
Prior art keywords
software
information processing
processing apparatus
abnormal
control
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
JP2018095587A
Other languages
English (en)
Inventor
山下 貴弘
Takahiro Yamashita
貴弘 山下
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 JP2018095587A priority Critical patent/JP2019200660A/ja
Priority to US16/411,853 priority patent/US11113386B2/en
Publication of JP2019200660A publication Critical patent/JP2019200660A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】改ざん等されている異常なソフトウェアによりシステムに外部接続されるデバイスが異常制御されるリスクや、正常に動作しないデバイスによる無駄な電力消費を抑制すること。【解決手段】画像形成装置1では、起動時等に、ソフトウェア(例えばUSBデバイスドライバ305やUSBデバイスファームウェア306)の改変に関する検証を行い(S502、S506)、該検証によりソフトウェアの改変に関して異常と判定された場合(S503でNo、S507でNo)には、該ソフトウェアに対応するデバイス(例えばUSBデバイス206)の利用を制限した状態で画像形成装置1を動作させる(S510)。【選択図】図5

Description

本発明は、システム外部に接続されるデバイスを制御するためのソフトウェアを検証する情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
近年、システムの堅牢性向上のため、ソフトウェアを動作させる前に、そのソフトウェアに対して何等かの検証を行い、検証結果が妥当な場合にのみ、そのソフトウェアの動作を開始する技術がある。この技術により、検証結果が異常な場合にはソフトウェアが改ざん等されていると判断し、異常なソフトウェアの動作を防ぎ、意図しない制御がなされることを防止することができる。
また、USB(Universal Serial Bus)やPCI(Peripheral Component Interconnect)などのバスでシステムと接続される外部デバイスがある。外部デバイスの例としては、USB接続されたLAN(Local Area Network)デバイスなどがある。これら外部デバイスには、外部デバイス上で動作し、自身を制御するファームウェアを必要とするものが一定数存在する。このような外部デバイスには、ファームウェアがシステムから転送されロードされる。これら外部デバイスのファームウェアについても改ざん等のリスクがある。
特許文献1には、ソフトウェアの改ざん検知方法が記載されている。
特開2009−301429号公報
外部デバイス用のファームウェアが改ざんされていた場合、そのファームウェアによりデバイスが異常制御されるリスクや、このように正常に動作しないデバイスにより無駄に電力が消費されるといった課題があった。
本発明は、上記の問題点を解決するためになされたものである。本発明は、改ざん等されている異常なソフトウェアによりデバイスが異常制御されるリスクや、正常に動作しないデバイスによる無駄な電力消費を抑制する仕組みを提供することを目的とする。
本発明は、デバイスが接続される情報処理装置であって、前記情報処理装置の本体から前記デバイスを制御可能な制御手段と、前記デバイスを制御するデバイスごとのソフトウェアを記憶する記憶手段と、前記ソフトウェアの改変に関する検証を行う検証手段と、を有し、前記制御手段は、前記検証手段により前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアに対応するデバイスの利用を制限した状態で前記情報処理装置を動作させることを特徴とする。
本発明によれば、改ざん等されている異常なソフトウェアによりデバイスが異常制御されるリスクや、正常に動作しないデバイスによる無駄な電力消費を抑制することができる。
本実施形態の画像形成装置のハードウェア構成を例示するブロック図。 本実施形態の画像形成装置と外部デバイスとの接続構成を例示する図。 本実施形態の画像形成装置におけるソフトウェアの保存先を例示する図。 本実施形態の画像形成装置の起動処理の一例を示すフローチャート。 第1実施形態における外部デバイスの起動処理を例示するフローチャート。 第2実施形態における外部デバイスの起動処理を例示するフローチャート。
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
〔第1実施形態〕
図1は、本発明の情報処理装置の一実施形態を示す画像形成装置のハードウェア構成の一例を示すブロック図である。
図1において、画像形成装置1は、本発明の情報処理装置の一実施形態を示す。
画像形成装置1において、CPU101は、画像形成装置1を稼働させるためのソフトウェアを動作させる中央演算処理装置である。システムバス102は、CPU101が他のユニットにアクセスするため、及び、他のユニット同士がアクセスするための通路となる。RAM(Random Access Memory)104は、画像形成装置1のプログラムが展開され、プログラム動作時の変数や、各ユニットからDMA(Dynamic Memory Access)で転送されるデータの格納領域となる。
HDD(ハードディスクユニット)103は、画像形成装置1のソフトウェア及び、画像形成装置1が動作するために必要なデータベース、一時保存ファイル等を格納する。なお、図1では、HDDを備える構成を例示しているが、HDDの代わりに又はHDDと併用してSSD(Solid State Drive)等の他の記憶装置を備える構成でもよい。
ネットワークコントローラ105及びネットワークコントローラI/F106は、画像形成装置1とネットワーク上の他の機器と通信を行う。
USBホストコントローラ107及びUSBホストI/F108は、画像形成装置1とUSBデバイスとの通信を制御する。図1では、USBホストI/F108は1つのみの記載であるが、実際には複数存在する。USBホストI/F108は、USBケーブルを使用してUSBデバイスと接続される。USBデバイスの形態によっては、USBケーブルは使用せず直接接続される形態となる。
ディスプレイ111は、画像形成装置1の動作状況をユーザ等が確認できるように表示する。ディスプレイコントローラ110は、ディスプレイ111の表示制御を行う。
入力部113は、画像形成装置1へのユーザからの指示を受け付ける。入力部コントローラ112は、入力部113を制御する。入力部113は、具体的にはキーボードやマウス、テンキー、カーソルキー、タッチパネルや、操作部キーボードといった入力システムである。入力部113がタッチパネルである場合は、物理的にはディスプレイ111の表面に装着された形態になる。
リアルタイムクロック(以下RTC)114は、画像形成装置1の時計機能、アラーム機能、タイマー機能等を有する。
不揮発メモリ115は、書き換え可能なメモリであり、SRAMや、EEPROM等であってもよい。なお、SRAMは「Static Random Access Memory」、EEPROMは「Electrically Erasable Programmable Read Only Memory」の略である。
また、不揮発メモリ115は、書き換え不可能なメモリであってもよい。
CPLD109は、CPU101を介して、基盤回路上の信号線のLow/High状況を読み取る、又は、CPU101がLow/High状況の設定を変更可能にするユニットである。CPLD109は、プログラマブルなロジックデバイスであり、画像形成装置1上で電力関係のOFF/ONを制御可能にしているユニットである。なお、CPLDは「Complex Programmable Logic Device」の略である。また、CPLD109の内部には、GPIOが存在する。GPIOは「General-purpose input/output」の略であり、汎用入出力を意味する。CPU101は、そのGPIOレジスタの設定値を変更することで、電力関係のOFF/ONを可能としている。
スキャナ117は、原稿から画像を読み取る読取装置である。スキャナ117は、スキャナI/F116及びシステムバス102を介して画像形成装置1と接続される。
プリンタ119は、シートに画像を形成するものであり、プリンタI/F118及びシステムバス102を介して画像形成装置1と接続される。
なお、本実施形態では、本発明の情報処理装置の一例として画像形成装置を用いて説明する。しかし、本発明の情報処理装置は、USB等のインタフェースを介して外部デバイスを接続可能な情報処理装置であればよく、画像形成装置に限定されるものではなく、パーソナルコンピュータ(PC)や、その他の家電であってよい。また、本実施形態では、本発明の情報処理装置が、USB経由で接続された外部デバイスの制御を例に説明するが、本発明の情報処理装置と外部デバイスとを接続するインタフェースは、USBに限定されるものではない。
図2は、画像形成装置1と外部デバイスとの接続構成の一例を示す図である。
USBデバイス206は、画像形成装置1と接続される外部デバイスの一例を示すものである。USBデバイス206は、4本の信号線を介して画像形成装置1と接続されている。USBデバイスに対し、4本の信号線が接続されることがUSB規格の仕様である。
USB規格における4本の信号線は、VBUS202、D-203、D+204及びGND205で構成される。VBUS202は、USBデバイス206への電力を供給する電力線である。D-203とD+204は、USBデバイス206とUSBホストコントローラ107との間を通信するデータを流す差動信号線である。GND205は、グランド信号線である。
なお、コネクタ部207は、USBホストI/F108とUSBデバイス206とのコネクタ部である。
AND回路201は、CPU101の指示で制御されるCPLD109内部のGPIOからの出力値と、USBホストI/F108から出力されるVBUSの出力値の論理積を取る。これにより、USBデバイス206に与えるVBUS202のOFF/ONを切り換える。図2では、AND回路を用いて簡易的にVBUSのOFF/ONを切り換え制御する構成を示している。しかし、ハイサイドスイッチとOR回路を用いてVBUSのOFF/ONを制御することも可能であるが、他の方法を用いてもよい。
このような構成により、CPU101の指示によりVBUS202のOFF/ONの制御が可能となる。すなわち、CPU101の指示によりVBUS202を介した電力の供給を停止することにより、USBデバイス206への電力供給を遮断し、USBデバイス206を電源オフにすることが可能となる。
図3は、画像形成装置1上のソフトウェアが保存されているハードウェア領域を模式的に例示する図である。図3に示すソフトウェアは一例であり、他の構成であってもよい。以下、CPU101等がソフトウェアである「SW」を実行することにより実現される機能を説明する場合に、「SWが・・・する」等のように、ソフトウェアである「SW」を主体として記載する場合がある。
まず、BIOS(Basic Input Output System)301は、図1に示される各ハードウェアブロックの簡単な初期設定を行うためのソフトウェアである。BIOS301は、不揮発メモリ115上に保存されている。なお、BIOS301は、画像形成装置1に電源が投入されるとCPU101により不揮発メモリ115上から読み出されて実行される。
BIOS301は、RAM104を初期化後、自身をRAM104に展開し、RAM104上で処理を継続する。その他のソフトウェア302〜307は、HDD103上に保存されている。なお、BIOS301は、後述するLoader302をHDD103から読み出し、RAM104上にロードする。
Loader302は、上述のように、BIOS301によりRAM104上にロードされ、CPU101により実行される。Loader302は、OS(Operating System)303をHDD103から読み出し、RAM104上にロードする。これにより、OS303はCPU101により実行される。
OS303は、各ハードウェアブロックの初期化やそれらのリソース管理を行い、個々のハードウェアについては必要に応じてハードウェアに紐づくデバイスドライバ304をRAM104上にロードし、それらを用いて制御を行う。
デバイスドライバ304は、システムの備えるハードウェアごとに用意されるものであり、複数種類がHDD103上に保存されていることが一般的である。デバイスドライバ304は、本体側で動作して対応するデバイスを制御する種別のソフトウェアである。ここでは、説明のためにUSBデバイス206を制御するデバイスドライバを特別にUSBデバイスドライバ305とし区別することにする。
なお、USBデバイス206には、USBデバイスドライバ305の他、USBデバイス206上にロードされ、USBデバイス206上で実行されるUSBデバイスファームウェア306を必要とするものがある。この理由としては、例えば、CPU101が省電力状態においても、USBデバイス206には通電が継続され、USBデバイス206単体で制御を行う必要性があるためである。もしくは、上記理由としては、USBデバイス206の詳細な制御手順をファームウェア306に隠ぺいする目的等の場合もあるが、これらに限定されるものではない。
上述のように、USBデバイスファームウェア306は、USBデバイス206に転送されてUSBデバイス206で動作しUSBデバイス206を制御する種別のソフトウェアである。なお、USBデバイスファームウェア306のUSBデバイス206への転送(図3の310)は、USBデバイスドライバ305により行われる。USBデバイスドライバ305がUSBデバイスファームウェア306を転送するタイミング(310のタイミング)は、USBデバイスドライバ305の起動時にUSBデバイスファームウェア306が更新されていることを検知したタイミングである。もしくは、USBデバイス206が不揮発領域を備えない構成の場合などは、毎回の起動時にUSBデバイスドライバ305がファームウェア306を転送するケースもあり得る。
HDD103上には、その他に、複数のアプリケーション307が保存されている。これらは、画像形成装置1の機能(例えばコピー機能、プリント機能、スキャン機能等)を提供するためのものである。なお、アプリケーション307は、必要に応じてデバイスドライバやファームウェア経由でハードウェア制御を行う。一例として、アプリケーション307は、ネットワークコントローラI/F106を介して接続されるPC等から印刷指示および印刷データを受信し、プリンタI/F118経由でプリンタ119に印刷指示を行う。
図4は、画像形成装置1の起動処理の一例を示すフローチャートである。
まず、画像形成装置1に電源が投入されると、CPU101は、不揮発メモリ115上に保存されているBIOS301を実行する(BIOS起動;S401)。CPU101は、BIOS301の機能により、HDD103やRAM104を使用可能なように初期設定を行うなど、各ハードウェアブロックの簡単な初期設定を行い、後段のソフトウェアでアクセス可能な状態にする。
さらに、CPU101は、BIOS301の機能により、HDD103に保存されているLoader302をRAM104にロードする。ここで、CPU101は、BIOS301の機能により、読み出したLoader302に対して、BIOS301が保持する公開鍵を用いて署名検証(改変に関する検証)を行い、検証結果が正常である場合はLoader302に制御を移す(Loader起動;S402)。なお、上記公開鍵は、不揮発メモリ115上に保存されていてもよい。
CPU101は、Loader302の機能により、次に起動する対象であるOS303をHDD103より読み出し、RAM104に展開し、上述の署名検証と同様にOS303に対して署名検証を行う。検証結果が正常である場合は、CPU101は、OS303に制御を移す(OS起動;S403)。
続いてCPU101は、OS303の機能により、デバイスドライバ起動処理を行う(S404)。このデバイスドライバ起動処理では、CPU101は、OS303の機能により、HDD103に保存されている各種デバイスドライバ304、305を読み出し、個々に署名検証を行う。デバイスドライバとしては、ディスプレイコントローラ110を制御するデバイスドライバや、USBホストコントローラ107を制御するデバイスドライバ、ネットワークコントローラ105を制御するデバイスドライバなどがある。個々のデバイスドライバのうち、署名検証結果が正常であるデバイスドライバが起動される。起動されたデバイスドライバに対応するデバイスについては、以降のアプリケーションから制御可能となる。このデバイスドライバの一つであるUSBデバイスドライバ305の起動処理について、後述の図5にて詳細に述べる。
次にCPU101は、OS303の機能により、各種アプリケーション307を署名検証し、検証結果が正常であったアプリケーション307を起動する(S405)。各種アプリケーションとしては、コピー機能を司るコピーアプリケーションや、プリント機能を司るプリントアプリケーションなどがある。
図5は、第1実施形態におけるデバイスドライバ起動処理を例示するフローチャートである。このデバイスドライバ起動処理では、外部デバイス(例えばUSBデバイス)のデバイスドライバおよびファームウェア検証を実施し、その結果に基づきデバイスの起動処理もしくは電源オフ制御を実施する。なお、この処理は、画像形成装置1の起動時、画像形成装置1本体への外部デバイスの接続を検知した場合及びデバイスドライバやファームウェアの更新を検知した場合の少なくともいずれかの場合に実行されるものとする。
まず、CPU101は、OS303の機能により、HDD103からUSBデバイスドライバ305をRAM104上にロードする(S501)。
次にCPU101は、OS303の機能により、USBデバイスドライバ305の署名検証(改変に関する検証)を行う(S502)。署名検証方法については公知であるため、ここでは詳細については記載しない。
次にCPU101は、OS303の機能により、上記S502の検証結果について判定を行う(S503)。
上記S503において、検証結果が正常値でない(改変に関して異常)と判定した場合(S503でNoの場合)、CPU101は、OS303の機能により、USBデバイス206の通電をOFFする(S510)。具体的には、図2に示したCPLD109及びAND回路201を介してVBUS202をOFF制御することでUSBデバイス206の通電をOFFする。なお、この場合、OS303は、USBデバイスドライバ305を動作させない、及び、USBデバイスファームウェア306のUSBデバイス206への転送を行わない。すなわち、USBデバイス206の利用を制限した状態(ここでは利用しない状態)で画像形成装置1を動作させるように制御する。これにより、改ざん等されている不正なデバイスドライバによる異常制御が行われるリスクや、そのようなデバイスによる無駄な電力消費を抑制することができる。
一方、上記S503において、検証結果が正常値であると判定した場合(S503でYesの場合)、CPU101は、OS303の機能により、RAM104上のUSBデバイスドライバ305の動作を開始させる(S504)。
引き続きCPU101は、USBデバイスドライバ305もしくはOS303の機能により、USBデバイスファームウェア306の検証作業を行う。
まずCPU101は、USBデバイスドライバ305もしくはOS303の機能により、HDD103上のUSBデバイスファームウェア306を読み出し、RAM104上にロードする(S505)。
次に、CPU101は、USBデバイスドライバ305もしくはOS303の機能により、上記S502と同様に、USBデバイスファームウェア306について検証を行う(S506)。
次にCPU101は、USBデバイスドライバ305もしくはOS303の機能により、上記S506の検証結果について判定を行う(S507)。検証結果が正常値であると判定した場合(S507でYesの場合)、CPU101は、USBデバイスドライバ305の機能により、USBデバイスファームウェア306をUSBデバイス206に転送する(S508)。転送が完了した場合、CPU101は、USBデバイスドライバ305の機能により、USBデバイスファームウェア306の動作を開始させ(S509)、本フローチャートの処理を終了する。これにより、USBデバイス206が起動する。
一方、上記S507にて、検証結果が正常値でない(改変に関して異常)と判定した場合(S507でNoの場合)、CPU101は、S510に処理を進める。S510において、CPU101は、USBデバイスドライバ305もしくはOS303の機能により、CPLD109及びAND回路201を介してUSBデバイス206の通電をOFFする。なお、この場合、USBデバイスドライバ305もしくはOS303は、USBデバイスファームウェア306をUSBデバイス206に転送しない。すなわち、USBデバイス206の利用を制限した状態(ここでは利用しない状態)で画像形成装置1を動作させるように制御する。これにより、改ざん等されている不正なファームウェアがデバイスにロードされデバイスが異常制御されるリスクや、ファームウェアが無い状況においてデバイスにより無駄に電力が消費されることなどを抑制することができる。
なお、図4のS404では、以上と同様の処理を各デバイスのデバイスドライバについて行うものとする。しかし、デバイスに転送されて該デバイス上で動作するファームウェアが存在しないデバイスについてはS505〜S509の処理は行われないものとする。
なお、本実施形態では、USBデバイス及びその制御ソフトウェア(ここではUSBデバイスのデバイスドライバ及びUSBデバイス上で動作するファームウェア)を例に説明を行ったが、USBデバイスに限定されるものではない。システムに外部に接続されるデバイス及びその制御ソフトウェアであれば、どのようなデバイス及びその制御ソフトウェアであっても、本発明は適用可能である。
以上のように、システムに外部に接続されるデバイスの制御ソフトウェアを改変に関して検証し、異常(不正)なソフトウェアの場合には、その制御ソフトウェアの実行、その制御ソフトウェアのデバイスへの転送、及び該デバイスへの電力供給を制限(防止)する。これにより、改ざん等されている不正な制御ソフトウェアがシステム上で実行され異常制御が行われるリスクを抑えることができる。また、不正な制御ソフトウェアがデバイスにロードされデバイスが異常制御されるリスク、正常な制御ソフトウェアが無い状況においてデバイスにより無駄に電力が消費されることなどを抑制することができる。すなわち、システムの外部に接続されたデバイスの制御ソフトを検証し、検証結果が異常値の場合は外部デバイスの電力や機能を抑制し、消費電力抑制や異常動作の抑止をはかることができる。
〔第2実施形態〕
本実施形態では、外部デバイスの制御を、ファームウェアが無くともデバイスドライバのみで一部制御でき、機能を限定して使用可能(縮退動作可能)な場合について説明する。この場合、第2実施形態では、第1実施形態とは異なり、デバイスドライバが正常な場合、外部デバイスへの通電を完全に切ることは行わず、外部デバイスへの通電を維持したまま機能制限状態のまま外部デバイスを使用する。第2実施形態は、デバイスドライバ起動処理(外部デバイスの起動処理)のみ第1実施形態と異なっているため、その部分のみ説明し、同一の構成については説明を省略する。
図6は、第2実施形態におけるデバイスドライバ起動処理を例示するフローチャートである。このデバイスドライバ起動処理では、外部デバイス(例えばUSBデバイス)のデバイスドライバおよびファームウェア検証を実施し、その結果に基づきデバイスの起動処理もしくは縮退動作制御を実施する。なお、この処理は、画像形成装置1の起動時、画像形成装置1本体への外部デバイスの接続を検知した場合及びデバイスドライバやファームウェアの更新を検知した場合の少なくともいずれかの場合に実行されるものとする。
なお、本実施形態におけるUSBデバイスファームウェア306は、例えば、画像形成装置1が省電力状態の場合に、USBデバイス206を制御するファームウェアであるとする。よって、画像形成装置1が通常電力状態の場合に動作するUSBデバイス206の機能については、USBデバイスファームウェア306が無くとも機能に問題は無く動作するものとする。
よって、本実施形態では、USBデバイスドライバ305が異常の場合には、USBデバイス206を全く制御できなくなるため、第1実施形態と同じようにUSBデバイス206の通電をオフする。一方で、USBデバイスドライバ305が正常であるが、USBデバイスファームウェア306が不正な場合は、USBデバイスファームウェア306にまつわる機能のみを制限して他の機能に限定して動作させる。以下、図6を用いて詳細に説明する。
まず、図6のS601〜S606、S610及びS607(Yes)〜S609の処理は、図5のS501〜S506、S510及びS507(Yes)〜S509の処理と同一であるので説明を省略する。以下、S607でNoの場合のみ説明する。
S607でNoの場合、CPU101は、USBデバイスドライバ305の機能により、USBデバイスファームウェア306にまつわる機能を制限し、該機能以外の機能に限定してUSBデバイス206を動作させるように制御する(S611)。すなわち、USBデバイス206の利用を制限した状態で画像形成装置1を動作させるように制御する。なお、この場合、USBデバイスドライバ305もしくはOS303は、USBデバイスファームウェア306をUSBデバイス206に転送しない制御を行う。
上記USBデバイス206の利用を制限した状態で画像形成装置1を動作させるように制御として、具体的には、CPU101は、S611において、画像形成装置1の省電力状態への移行を制限するよう設定値を変更する。画像形成装置1を省電力状態へ移行させないことにより、省電力状態で機能するUSBデバイスファームウェア306にまつわる機能を使用せず、USBデバイス206を動作させることが可能となる。もしくは、画像形成装置1の省電力状態への移行は許可するが、画像形成装置1が省電力状態の場合にはUSBデバイス206に通電がなされないように、USBデバイス206に対する通電設定値を変更する。これにより、画像形成装置1の省電力状態における、省電力状態では使用できないUSBデバイス206による無駄な消費電力を抑制することができる。すなわち、USBデバイスドライバ305が正常であるが、USBデバイスファームウェア306が不正(異常)な場合には、USBデバイスファームウェア306にまつわる機能のみを制限する。そして、USBデバイスドライバ305で実現可能な機能でUSBデバイス206を動作させる。
以上のように、システムに外部に接続されるデバイス上で動作する制御ソフトウェアを改変に関して検証し、改変に関して異常な場合には、その制御ソフトウェアのデバイスへの転送を行わず、該ファームウェアに関連するデバイスの機能を制限する。これにより、改ざん等されている不正な制御ソフトウェアがデバイス上で実行され異常制御が行われるリスクなどを抑制することができる。すなわち、システムの外部に接続されたデバイスの制御ソフトを検証し、検証結果が異常値の場合は外部デバイスの電力や機能を抑制し、消費電力抑制や異常動作の抑止をはかることができる。
以上、各実施形態では、改変に関する検証によりソフトウェア(例えばUSBデバイスドライバ305やUSBデバイスファームウェア306)が改変に関して異常と判定された場合には、該ソフトウェアを動作させない(実行や転送を行わない)ように制御する。さらに、該ソフトウェアに対応するデバイス(例えばUSBデバイス206)の利用を制限した状態(電源オフ又は機能制限した状態)で画像形成装置1を動作させる。よって、改ざん等されている異常なソフトウェアによりデバイスが異常制御されるリスクや、正常に動作しないデバイスによる無駄な電力消費を抑制することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
1 画像形成装置
103 HDD
107 USBホストコントローラ
108 USBホストI/F
115 不揮発メモリ
206 USBデバイス
305 USBデバイスドライバ
306 USBデバイスファームウェア

Claims (14)

  1. デバイスが接続される情報処理装置であって、
    前記情報処理装置の本体から前記デバイスを制御可能な制御手段と、
    前記デバイスを制御するデバイスごとのソフトウェアを記憶する記憶手段と、
    前記ソフトウェアの改変に関する検証を行う検証手段と、を有し、
    前記制御手段は、前記検証手段により前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアに対応するデバイスの利用を制限した状態で前記情報処理装置を動作させることを特徴とする情報処理装置。
  2. 前記制御手段は、前記検証手段により前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアを動作させないことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御手段は、前記検証手段により前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアに対応するデバイスの電源をオフにすることを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記制御手段は、前記検証手段により前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアにより実現される機能以外の機能に限定して該ソフトウェアに対応するデバイスを動作させることを特徴とする請求項1又は2に記載の情報処理装置。
  5. 前記デバイスごとのソフトウェアには、前記制御手段で動作して対応するデバイスを制御する第1種別のソフトウェア、対応するデバイスに転送されて該デバイスで動作し該デバイスを制御する第2種別のソフトウェアの少なくともいずれかが含まれ、
    前記制御手段は、前記検証手段により前記第1種別のソフトウェアの改変に関して異常と判定された場合には該ソフトウェアに対応するデバイスの電源をオフにし、前記第2種別のソフトウェアの改変に関して異常と判定された場合には該ソフトウェアにより実現される機能以外の機能に限定して該ソフトウェアに対応するデバイスを動作させることを特徴とする請求項1に記載の情報処理装置。
  6. 前記制御手段は、前記第1種別のソフトウェアの改変に関して異常と判定された場合には該ソフトウェアを起動させず、前記第2種別のソフトウェアの改変に関して異常と判定された場合には該ソフトウェアを該ソフトウェアに対応するデバイスに転送しないことを特徴とする請求項5に記載の情報処理装置。
  7. 前記制御手段は、前記検証手段により改変に関して異常と判定されたソフトウェアが前記本体が省電力状態の場合に前記デバイスを制御するソフトウェアである場合、前記本体を省電力状態へ移行させないことを特徴とする請求項4〜6のいずれか1項に記載の情報処理装置。
  8. 前記制御手段は、前記検証手段により改変に関して異常と判定されたソフトウェアが前記本体が省電力状態の場合に前記デバイスを制御するソフトウェアである場合、前記本体が前記省電力状態へ移行する場合に該ソフトウェアに対応するデバイスの電源をオフにする制御を行うことを特徴とする請求項4〜6のいずれか1項に記載の情報処理装置。
  9. 前記デバイスは、電力の供給を受ける電力線を含む複数の信号線を介して前記本体と接続され、
    前記制御手段は、前記電力線を介した電力の供給を停止することにより該デバイスの電源をオフにすることを特徴とする請求項3、5、6、8のいずれか1項に記載の情報処理装置。
  10. 前記複数の信号線は、USB規格の仕様に対応する信号線であり、
    前記デバイスは、前記本体に接続されるUSBデバイスであることを特徴とする請求項9に記載の情報処理装置。
  11. 前記検証手段は、前記情報処理装置の起動時、前記本体への前記デバイスの接続を検知した場合及び前記ソフトウェアの更新を検知した場合の少なくともいずれかの場合に前記ソフトウェアの改変に関する検証を行うことを特徴とする請求項1〜10のいずれか1項に記載の情報処理装置。
  12. 画像形成装置であることを特徴とする請求項1〜11のいずれか1項に記載の情報処理装置。
  13. デバイスが接続される本体と、前記本体から前記デバイスを制御可能な制御手段と、前記デバイスを制御するデバイスごとのソフトウェアを記憶する記憶手段と、を有する情報処理装置の制御方法であって、
    前記ソフトウェアの改変に関する検証を行う検証ステップと、
    前記検証ステップにより前記ソフトウェアの改変に関して異常と判定された場合には、該ソフトウェアに対応するデバイスの利用を制限した状態で前記情報処理装置を動作させる制御ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  14. コンピュータを、請求項1〜12のいずれか1項に記載の検証手段及び制御手段として機能させるためのプログラム。
JP2018095587A 2018-05-17 2018-05-17 情報処理装置、情報処理装置の制御方法、及びプログラム Pending JP2019200660A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018095587A JP2019200660A (ja) 2018-05-17 2018-05-17 情報処理装置、情報処理装置の制御方法、及びプログラム
US16/411,853 US11113386B2 (en) 2018-05-17 2019-05-14 Information processing apparatus, control method for information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018095587A JP2019200660A (ja) 2018-05-17 2018-05-17 情報処理装置、情報処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2019200660A true JP2019200660A (ja) 2019-11-21

Family

ID=68534497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018095587A Pending JP2019200660A (ja) 2018-05-17 2018-05-17 情報処理装置、情報処理装置の制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US11113386B2 (ja)
JP (1) JP2019200660A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681798B2 (en) * 2019-10-31 2023-06-20 Kyndryl, Inc. Security screening of a universal serial bus device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5309709B2 (ja) 2008-06-16 2013-10-09 株式会社リコー ソフトウェア改ざん検知方法及び機器
WO2013048458A1 (en) * 2011-09-30 2013-04-04 Hewlett-Packard Development Company, L.P. Option read-only memory use
TW201401098A (zh) * 2012-06-18 2014-01-01 Hon Hai Prec Ind Co Ltd 固件驗證方法及系統
TWI525428B (zh) * 2014-06-04 2016-03-11 仁寶電腦工業股份有限公司 複合儲存單元的管理方法及其電子裝置
US10129035B2 (en) * 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate

Also Published As

Publication number Publication date
US11113386B2 (en) 2021-09-07
US20190354677A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
EP2989579B1 (en) Redundant system boot code in a secondary non-volatile memory
JP4688821B2 (ja) システム構成の遠隔修正のための方法および装置
US20210004242A1 (en) Method and system for remote selection of boot device
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US20140089710A1 (en) Integrated circuit, electronic device and operation method thereof
US11006013B2 (en) Image processing apparatus, having second processor to verify boot program has been altered, method of controlling the same, and storage medium
JP2018116648A (ja) 情報処理装置、その制御方法、及びプログラム
JP7393226B2 (ja) 情報処理装置とその起動方法
JP7152920B2 (ja) 情報処理装置とその制御方法、及びプログラム
JP2019200660A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP6253433B2 (ja) 制御装置
JP2009009323A (ja) 設定装置、電子機器、及び設定プログラム
JP2011061309A (ja) 画像処理装置
JP7210238B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2017142686A (ja) 電子機器、その制御方法及びプログラム
JP7322233B2 (ja) 起動時に実行されるソフトウェアの改ざんを検知する情報処理装置及び改ざん検知方法
JP7054037B1 (ja) 情報処理装置およびプログラム
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
JP2024058152A (ja) 情報処理装置および情報処理装置の制御方法
JP2024004647A (ja) 情報処理装置および情報処理装置の制御方法
JP7242351B2 (ja) 起動時にソフトウェアの改ざん検知処理を省略することが可能な電子機器
JP2022126549A (ja) 情報処理装置
JP2020057250A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2023129549A (ja) 処理装置及びプログラム
JP2020135645A (ja) 情報処理装置、その制御方法およびプログラム