(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-03-11
(45)【発行日】2025-03-19
(54)【発明の名称】情報処理装置、制御方法、及びプログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20250312BHJP
【FI】
G06F21/57 350
(21)【出願番号】P 2023193416
(22)【出願日】2023-11-14
【審査請求日】2023-11-14
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】司馬 一夫
(72)【発明者】
【氏名】佐々木 健
(72)【発明者】
【氏名】森重 勇作
(72)【発明者】
【氏名】中村 哲也
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2013-143143(JP,A)
【文献】特開2020-187650(JP,A)
【文献】特開2020-027963(JP,A)
【文献】特開2023-122636(JP,A)
【文献】特開2018-061217(JP,A)
【文献】米国特許出願公開第2005/0097360(US,A1)
【文献】米国特許出願公開第2023/0289204(US,A1)
【文献】米国特許出願公開第2023/0328085(US,A1)
【文献】米国特許出願公開第2015/0288709(US,A1)
【文献】中国特許出願公開第116502216(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/12 - 21/16
G06F 21/50 - 21/57
(57)【特許請求の範囲】
【請求項1】
BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、
信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、
改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、
前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理部と、
前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理部と、
使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部と
を備え、
前記制限処理部は、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する
情報処理装置。
【請求項2】
前記信頼リストには、前記BIOSのプログラムが記憶されているBIOSメモリが提供元である
ことを示す、ファームウェアボリュームを示す情報、又は予め設定されたサーバ装置が提供元である
ことを示す、ネットワークブートを示す情報が含まれる
請求項1に記載の情報処理装置。
【請求項3】
前記使用を制限する前記プロトコルの一覧には、ネットワークの接続に関連するプロトコル、又はTPM(Trusted Platform Module)に関連するプロトコルが含まれる
請求項1に記載の情報処理装置。
【請求項4】
BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、を備える情報処理装置の制御方法であって、
起動処理部が、前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理ステップと、
制限処理部が、前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理ステップと
を含み、
前記情報処理装置は、使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部を備えており、
前記制限処理ステップにおいて、前記制限処理部が、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する
制御方法。
【請求項5】
BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、を備える情報処理装置のコンピュータに、
前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理ステップと、
前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理ステップと
を実行させ、
前記情報処理装置は、使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部を備えており、
前記制限処理ステップにおいて、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する処理を
実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【0002】
近年、パーソナルコンピュータなどの情報処理装置では、BIOS(Basic Input Output System)において、第3者がOS(Operating System)起動前のプリブート環境の改ざん又は監視を行えないように、システムに登録された鍵(セキュアブートキー)でサインされていないプログラムが動作しないようにするセキュアブートという機能が実装されている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来の情報処理装置では、プロトコルなどがUEFI(Unified Extensible Firmware Interface)仕様で定義された汎用インターフェイスによって、ドライバ間の情報のやり取り、システム情報の管理、BIOSの設定などを行われている。しかしながら、この汎用インターフェイスは、メモリ上に存在するプログラムであるため、第3者のプログラムによって書き換えられる可能性がある。
また、セキュアブートキーでサインされたプログラムの中には、セキュアブートをすり抜ける脆弱性が見つかる場合があり、セキュアブートの保護下でも第3者に改ざんを行われてしまう可能性がある。そのため、従来の情報処理装置では、セキュアブートにおいて、例えば、第3者に改ざんされたプログラムが実行されると、それ以降に実行されたプログラムが改ざん又は監視される可能性があった。
【0005】
本発明は、上記問題を解決すべくなされたもので、その目的は、セキュアブートにおいて、第3者からの攻撃に対する防御を向上させることができる情報処理装置、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記問題を解決するために、本発明の一態様は、BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理部と、前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理部と、使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部とを備え、前記制限処理部は、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する情報処理装置である。
【0007】
また、本発明の一態様は、上記の情報処理装置において、前記信頼リストには、前記BIOSのプログラムが記憶されているBIOSメモリが提供元であることを示す、ファームウェアボリュームを示す情報、又は予め設定されたサーバ装置が提供元であることを示す、ネットワークブートを示す情報が含まれてもよい。
【0009】
また、本発明の一態様は、上記の情報処理装置において、前記使用を制限する前記プロトコルの一覧には、ネットワークの接続に関連するプロトコル、又はTPM(Trusted Platform Module)に関連するプロトコルが含まれてもよい。
【0010】
また、本発明の一態様は、BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、を備える情報処理装置の制御方法であって、起動処理部が、前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理ステップと、制限処理部が、前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理ステップとを含み、前記情報処理装置は、使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部を備えており、前記制限処理ステップにおいて、前記制限処理部が、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する制御方法である。
【0011】
また、本発明の一態様は、BIOS(Basic Input Output System)の処理において、予め定められたセキュリティキーに基づいて、OS(Operating System)を起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、改ざんされた可能性のある不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、を備える情報処理装置のコンピュータに、前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リスト記憶部が記憶する前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報記憶部が記憶する前記チェイン情報を、前記不正な起動プログラムが実行されたことを示す情報に変更する起動処理ステップと、前記チェイン情報記憶部が記憶する前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する制限処理ステップとを実行させ、前記情報処理装置は、使用を制限する前記プロトコルの一覧を記憶する使用制限リスト記憶部を備えており、前記制限処理ステップにおいて、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報である場合に、前記使用制限リスト記憶部が記憶する前記プロトコルの一覧に含まれるプロトコルの使用を制限する処理を実行させるためのプログラムである。
【発明の効果】
【0012】
本発明の上記態様によれば、セキュアブートにおいて、第3者からの攻撃に対する防御を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態によるノートPCの主要なハードウェア構成の一例を示す図である。
【
図2】本実施形態による情報処理システム及びノートPCの機能構成の一例を示す機能ブロック図である。
【
図3】本実施形態における信頼リスト記憶部のデータ例を示す図である。
【
図4】本実施形態における制限リスト記憶部のデータ例を示す図である。
【
図5】本実施形態によるノートPCの起動処理の一例を示すフローチャートである。
【
図6】本実施形態によるノートPCのプロトコル処理の一例を示すフローチャートである。
【
図7】従来技術のノートPCにおける第3者の攻撃の一例を説明する図である。
【
図8】第3者の攻撃に対する本実施形態によるノートPCの効果を説明する第1の図である。
【
図9】従来技術のノートPCにおける第3者の攻撃の別の一例を説明する図である。
【
図10】第3者の攻撃に対する本実施形態によるノートPCの効果を説明する第2の図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態による情報処理装置、及び制御方法について、図面を参照して説明する。
【0015】
図1は、本実施形態によるノートPC1の主要なハードウェア構成の一例を示す図である。なお、本実施形態において、情報処理装置の一例として、ノートPC1について説明する。
【0016】
図1に示すように、ノートPC1は、CPU11と、メインメモリ12と、ビデオサブシステム13と、表示部14と、チップセット21と、BIOSメモリ22と、SSD23と、オーディオシステム24と、WLANカード25と、USBコネクタ26と、エンベデッドコントローラ31と、入力部32と、電源回路33とを備える。
【0017】
なお、本実施形態において、CPU11と、チップセット21とは、メイン制御部10に対応する。また、メイン制御部10は、メモリ(メインメモリ12)に記憶されたプログラムを実行するプロセッサ(メインプロセッサ)の一例である。
【0018】
CPU(Central Processing Unit)11は、プログラム制御により種々の演算処理を実行し、ノートPC1全体を制御している。
メインメモリ12は、CPU11の実行プログラムの読み込み領域として、又は、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。メインメモリ12は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップで構成される。この実行プログラムには、BIOS(Basic Input Output System)、OS、周辺機器類をハードウェア操作するための各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム等が含まれる。
【0019】
ビデオサブシステム13は、画像表示に関連する機能を実現するためのサブシステムであり、ビデオコントローラを含んでいる。このビデオコントローラは、CPU11からの描画命令を処理し、処理した描画情報をビデオメモリに書き込むとともに、ビデオメモリからこの描画情報を読み出して、表示部14に描画データ(表示データ)として出力する。
【0020】
表示部14は、例えば、液晶ディスプレイであり、ビデオサブシステム13から出力された描画データ(表示データ)に基づく表示画面を表示する。
【0021】
チップセット21は、USB(Universal Serial Bus)、シリアルATA(AT Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI-Expressバス、及びLPC(Low Pin Count)バスなどのコントローラを備えており複数のデバイスが接続される。
図1では、デバイスの例示として、BIOSメモリ22と、SSD23と、オーディオシステム24と、WLANカード25と、USBコネクタ26とが、チップセット21に接続されている。
【0022】
BIOSメモリ22は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)やフラッシュROMなどの電気的に書き換え可能な不揮発性メモリで構成される。BIOSメモリ22は、BIOS、及びエンベデッドコントローラ31などを制御するためのシステムファームウェアなどを記憶する。
【0023】
SSD(Solid State Drive)23(不揮発性記憶装置の一例)は、OS、各種ドライバ、各種サービス/ユーティリティ、アプリケーションプログラム、及び各種データを記憶する。
オーディオシステム24は、音データの記録、再生、出力を行う。
【0024】
WLAN(Wireless Local Area Network)カード25は、ワイヤレス(無線)LANにより、ネットワークに接続して、データ通信を行う。
USBコネクタ26は、USBを利用した周辺機器類を接続するためのコネクタである。
【0025】
エンベデッドコントローラ31(サブ制御部の一例)は、ノートPC1のシステム状態に関わらず、各種デバイス(周辺装置やセンサ等)を監視し制御するワンチップマイコン(One-Chip Microcomputer)である。また、エンベデッドコントローラ31は、電源回路33を制御する電源管理機能を有している。なお、エンベデッドコントローラ31は、不図示のCPU、ROM、RAMなどで構成されるとともに、複数チャネルのA/D入力端子、D/A出力端子、タイマ、及びデジタル入出力端子を備えている。エンベデッドコントローラ31には、それらの入出力端子を介して、例えば、入力部32、及び電源回路33などが接続されており、エンベデッドコントローラ31は、これらの動作を制御する。
【0026】
次に、
図2を参照して、本実施形態によるノートPC1の機能構成について説明する。
図2は、本実施形態による情報処理システム100及びノートPC1の機能構成の一例を示す機能ブロック図である。なお、
図2では、ノートPC1が備える機能構成のうち、本発明に関連する構成のみを記載している。
【0027】
図2に示すように、情報処理システム100は、ノートPC1と、ブートサーバ2とを備える。ノートPC1と、ブートサーバ2とは、ネットワークNW1を介して、互いに接続可能である。
【0028】
ブートサーバ2は、例えば、ノートPC1の製造メーカが各種サービスを提供するサーバ装置であり、ネットワークブートのためのサーバ装置である。ブートサーバ2は、ネットワークNW1を介して、ネットワークブートのためのOSの起動プログラムをノートPC1に提供する。
【0029】
また、
図2に示すように、ノートPC1は、メイン制御部10と、記憶部40と、NW(Network)通信部250とを備える。
【0030】
NW通信部250は、例えば、WLANカード25などのネットワークデバイスにより実現される機能部である。メイン制御部10は、NW通信部250を介して、ネットワークNW1に接続可能である。なお、本実施形態では、NW通信部250は、無線LAN(WiFi(登録商標))を用いて、ネットワークNW1に接続するものとして説明する。
【0031】
記憶部40は、例えば、BIOSメモリ22又はメインメモリ12、等のメモリにより実現される記憶部であり、例えば、メイン制御部10の各種処理に利用される各種情報を記憶する。記憶部40は、信頼リスト記憶部41と、制限リスト記憶部42と、チェインフラグ記憶部43とを備える。
【0032】
信頼リスト記憶部41は、例えば、BIOSメモリ22により実現される記憶部であり、信頼できる起動プログラムの提供元の一覧である信頼リストを記憶する。ここで、提供元とは、起動プログラムの実行元(起動元)のデバイスのことであり、例えば、Httpsブート、USBコネクタ26に接続されたUSBデバイス、内臓のSSD23、BIOSメモリ22のファームウェア、等である。また、起動プログラムとは、例えば、OS(Windows(登録商標)など)を起動する際に実行される各種のUEFIプログラムである。信頼リスト記憶部41は、提供元(起動元)として信頼できるデバイスのリストを記憶する。
ここで、
図3を参照して、信頼リスト記憶部41のデータ例について説明する。
【0033】
図3は、本実施形態における信頼リスト記憶部41のデータ例を示す図である。
図3に示す例では、信頼リスト記憶部41が記憶する信頼リストには、信頼できるUEFI Sourceとして、“Firmware Volume”(ファームウェアボリューム)、“Https Boot”、等が含まれている。
【0034】
ここで、“Firmware Volume”(ファームウェアボリューム)は、BIOSメモリ22のファームウェアが提供元(起動元)であることを示し、“Https Boot”は、例えば、ブートサーバ2によるネットワークブートが提供元(起動元)であることを示している。
【0035】
図2の説明に戻り、制限リスト記憶部42(使用制限リスト記憶部の一例)は、例えば、BIOSメモリ22により実現される記憶部であり、使用を制限するプロトコル(の一覧を記憶する。ここで、プロトコルとは、ノートPC1でデータをやり取りするために定められた手順や規約、信号の電気的規則、通信における送受信の手順などを定めた規格を意味する。制限リスト記憶部42は、上述した信頼リストにない提供元(起動元)から、起動プログラム(UEFIプログラム)が実行された場合に、それ以降の処理において、使用制限(使用禁止)にするプロトコルの一覧を、使用制限リストとして記憶する。使用制限リストには、例えば、ネットワークの接続に関連するプロトコルや、TPM(Trusted Platform Module)に関連するプロトコルなど、セキュリティを脅かす可能性の高いプロトコルが含まれる。
ここで、
図4を参照して、制限リスト記憶部42のデータ例について説明する。
【0036】
図4は、本実施形態における制限リスト記憶部42のデータ例を示す図である。
図4に示す例では、制限リスト記憶部42が記憶する使用制限リストには、使用制限プロトコルとして、“WiFiInfoPassProtocol”、“WiFiConfigProtocol”、“BBBBBBBBBBProtocol”、“CCCCCCCCProtocol”、等が含まれている。
【0037】
ここで、“WiFiInfoPassProtocol”は、無線LANのSSID(Service Set Identifier)やパスワードを受け渡すプロトコルである。また、“WiFiConfigProtocol”は、無線LANの接続設定を行うプロトコルである。
【0038】
再び、
図2の説明に戻り、チェインフラグ記憶部43(チェイン情報記憶部の一例)は、例えば、メインメモリ12のシステム領域により実現される記憶部であり、改ざんされた可能性のある不正な起動プログラムが実行されたか否かのブートチェインフラグ(チェイン情報)を記憶する。ブートチェインフラグには、例えば、不正な起動プログラムが実行されていない場合に、信頼状態を示す情報(例えば、“0”)が記憶され、不正な起動プログラムが実行された場合に、不信状態を示す情報(例えば、“1”)が記憶される。
【0039】
メイン制御部10は、CPU11及びチップセット21に、BIOSメモリ22及びSSD23が記憶するプログラムを実行させることで実現される機能部であり、BIOS及びOSに基づく各種処理を実行する。
メイン制御部10は、BIOS処理部110と、OS処理部120とを備える。
【0040】
BIOS処理部110は、BIOSに基づく各種処理(BIOS処理)を実行する。BIOS処理部110は、認証処理部111と、起動処理部112と、制限処理部113とを備える。
【0041】
認証処理部111は、BIOSの処理(BIOS処理)において、予め定められたセキュリティキーに基づいて、OSを起動するための起動プログラム(例えば、UEFIプログラム)の正当性を確認する。認証処理部111は、セキュリティキー(例えば、セキュアブートキー)によるサイン(署名)を確認することで、起動プログラム(例えば、UEFIプログラム)の正当性を確認する。認証処理部111は、後述するセキュアブートのための認証処理を実行する。
【0042】
起動処理部112は、BIOSの処理(BIOS処理)において、ノートPC1(OS)を起動するための各種処理を実行する。起動処理部112は、認証処理部111によって正当性が確認された起動プログラムを実行させるセキュアブート処理を実行する。
【0043】
また、起動処理部112は、セキュアブート処理において、信頼リスト記憶部41が記憶する信頼リストに含まれていない提供元から取得した起動プログラムを実行させた場合に、チェインフラグ記憶部43が記憶するブートチェインフラグを、不正な起動プログラムが実行されたことを示す情報に変更する。
【0044】
起動処理部112は、例えば、起動プログラム(UEFIプログラム)のDevice PathからDevice Path Classを取得し、Device Path Classに基づいて、起動プログラム(UEFIプログラム)の提供元を確認する。起動処理部112は、確認した提供元が、信頼リスト記憶部41が記憶する信頼リストに含まれているか否かを判定する。起動処理部112は、確認した提供元が、信頼リスト記憶部41が記憶する信頼リストに含まれていない場合に、チェインフラグ記憶部43が記憶するブートチェインフラグを、信頼状態(例えば、“0”)から不信状態(例えば、“1”)に変更する。
【0045】
制限処理部113は、チェインフラグ記憶部43が記憶するブートチェインフラグが、不正な起動プログラムが実行されたことを示す情報(例えば、不信状態“1”)である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する。制限処理部113は、例えば、ブートチェインフラグが、不正な起動プログラムが実行されたことを示す情報(例えば、不信状態“1”)である場合に、制限リスト記憶部42が記憶するプロトコルの一覧に含まれるプロトコルの使用を制限する。制限処理部113は、例えば、
図3に示す使用制限リストに含まれるプロトコルの使用を禁止する。
【0046】
OS処理部120は、BIOS処理部110によるOSの起動処理の後に、処理を引き継ぐ機能部である。OS処理部120は、OSに基づく各種処理を実行する。
【0047】
次に、図面を参照して、本実施形態によるノートPC1の動作について説明する。
まず、
図5を参照して、本実施形態によるノートPC1の起動処理について説明する。
図5は、本実施形態によるノートPC1の起動処理の一例を示すフローチャートである。
【0048】
図5に示すように、ノートPC1のBIOS処理部110は、ノートPC1の起動が開始されると、POST(Power On Self Test)処理を開始するとともに、ブートチェインフラグに信頼状態“0”をセットする(ステップS101)。BIOS処理部110は、チェインフラグ記憶部43のブートチェインフラグに、信頼状態“0”を記憶させる。
【0049】
次に、BIOS処理部110の起動処理部112は、ブートソース(供給元)が信頼リストに含まれているか否かを判定する(ステップS102)。起動処理部112は、Device Path Classにより、ブートプログラム(起動プログラム)の提供元を確認し、確認した提供元が、信頼リスト記憶部41が記憶する信頼リストに含まれているか否かを判定する。起動処理部112は、ブートソース(供給元)が信頼リストに含まれている場合(ステップS102:YES)に、処理をステップS104に進める。また、起動処理部112は、ブートソース(供給元)が信頼リストに含まれていない場合(ステップS102:NO)に、不正なブートプログラムが実行されたと判定し、処理をステップS103に進める。
【0050】
ステップS103において、起動処理部112は、ブートチェインフラグに不信状態“1”をセットする。すなわち、起動処理部112は、チェインフラグ記憶部43のブートチェインフラグに、不信状態“1”を記憶させる。ステップS103の処理後に、処理をステップS104に進める。
【0051】
ステップS104において、起動処理部112は、セキュアブートにより、ブートプログラムを実行する。起動処理部112は、認証処理部111を用いて、ブートプログラムの正当性を確認し、正当性が確認されたブートプログラムの処理を実行する。
【0052】
次に、起動処理部112は、ブート処理が完了したか否かを判定する(ステップS105)。すなわち、起動処理部112は、次に実行するブートプログラムがあるか否かを判定する。起動処理部112は、ブート処理が完了である(次に実行するブートプログラムがない)場合(ステップS105:YES)に、処理をOS処理部120に引き継ぐ。また、起動処理部112は、ブート処理が完了でない(次に実行するブートプログラムがある)場合(ステップS105:YES)に、処理をステップS102に戻し、次に実行するブートプログラムに対して処理を実行する。
【0053】
次に、
図6を参照して、ノートPC1のプロトコルの制限処理について説明する。
図6は、本実施形態によるノートPCのプロトコル処理の一例を示すフローチャートである。なお、ここでのプロトコル処理は、例えば、UEFI仕様のInstallProtocol、LocalteProtocol、及びHandleProtocolなどのプロトコル処理である。
【0054】
図6に示すように、BIOS処理部110の制限処理部113は、ブートチェインフラグが不信状態“1”であるか否かを判定する(ステップS201)。制限処理部113は、チェインフラグ記憶部43のブートチェインフラグが、不信状態“1”であるか否かを判定する。制限処理部113は、ブートチェインフラグが不信状態“1”である場合(ステップS201:YES)に、処理をステップS203に進める。また、制限処理部113は、ブートチェインフラグが不信状態“1”でない(信頼状態“0”である)場合(ステップS201:NO)に、処理をステップS202に進める。
【0055】
ステップS202において、BIOS処理部110は、プロトコルプロセスを実行する。BIOS処理部110は、例えば、InstallProtocol、LocalteProtocol、及びHandleProtocolなどのプロトコルプロセスを実行する。ステップS202の処理後に、BIOS処理部110は、処理を次の処理に進める。
【0056】
また、ステップS203において、制限処理部113は、プロトコルが、使用制限リストに含まれるか否かを判定する。制限処理部113は、制限リスト記憶部42が記憶する使用制限リストを確認し、当該プロセスが、使用制限リストに含まれるか否かを判定する。制限処理部113は、当該プロセスが、使用制限リストに含まれる場合(ステップS203:YES)に、処理をステップS204に進める。また、制限処理部113は、当該プロセスが、使用制限リストに含まれていない場合(ステップS203:NO)に、処理をステップS204に戻す。
【0057】
ステップS204において、制限処理部113は、エラー結果を返信(リターン)して、当該プロトコルプロセスを実行しない。ステップS204の処理後に、制限処理部113は、処理を次の処理に進める。
【0058】
次に、
図7~
図10を参照して、攻撃例と、本実施形態によるノートPC1の効果について説明する。
図7は、従来技術のノートPCにおける第3者の攻撃の一例を説明する図である。
【0059】
図7に示す攻撃例では、悪意を持った第3者であるアタッカAT1が、Wifi Configuration Appの実行前に、マルウェアを仕込んで、プロトコルの改ざんをすることで、接続情報を盗み取ろうとした場合の一例を示している。
【0060】
アタッカAT1は、USBを用いて、“Attack.efi”というマルウェアを仕込んだブートプログラムATP1を実行させて、“WiFiConfigProtocol”を改ざんする。
【0061】
図7に示す従来のノートPCでは、その後に、BIOSにより、“WifiConfigurationApp.efi”というブートプログラムBP1が実行されると、改ざんされた“WiFiConfigProtocol”によって、アタッカAT1は、無線LANの接続情報を盗み取ることが可能である。
【0062】
これに対して、
図8は、第3者の攻撃に対する本実施形態によるノートPC1の効果を説明する第1の図である。ここでは、本実施形態によるノートPC1に対して、アタッカAT1が、上述した
図7と同様の攻撃を行った場合について説明する。
【0063】
図8に示すように、本実施形態によるノートPC1では、USBから“Attack.efi”というブートプログラムATP1が実行された場合に、例えば、
図3に示すように、USBが、信頼できる供給元として信頼リストにないため、起動処理部112が、ブートチェインフラグを不信状態“1”に変更する。
【0064】
次に、BIOSにより、“WifiConfigurationApp.efi”というブートプログラムBP1が実行されると、制限処理部113は、“WiFiConfigProtocol”が、例えば、
図4に示すように使用制限リストに含まれているため、“WiFiConfigProtocol”の使用を禁止する。そのため、本実施形態によるノートPC1では、アタッカAT1は、無線LANの接続情報を盗み取ることができない。
【0065】
また、
図9は、従来技術のノートPCにおける第3者の攻撃の別の一例を説明する図である。
図9に示す攻撃例では、悪意を持った第3者であるアタッカAT1が、パスワードの漏洩のバグが見つかっている古いバージョンの“EFIApp(Ver1)”というブートプログラムATP2を実行させて、“WiFiInfoPassProtocol”を用いて、パスワードを盗み取ろうとした場合の一例を示している。
【0066】
アタッカAT1は、USBを用いて、“EFIApp(Ver1)”という旧バージョンのブートプログラムATP2を実行させて、“WiFiInfoPassProtocol”が実行されることで、無線LANのパスワードを盗み取ることが可能である。
【0067】
これに対して、
図10は、第3者の攻撃に対する本実施形態によるノートPC1の効果を説明する第2の図である。ここでは、本実施形態によるノートPC1に対して、アタッカAT1が、上述した
図9と同様の攻撃を行った場合について説明する。
【0068】
図10に示すように、本実施形態によるノートPC1では、USBから“EFIApp(Ver1)”というブートプログラムATP2が実行された場合に、例えば、
図3に示すように、USBが、信頼できる供給元として信頼リストにないため、起動処理部112が、ブートチェインフラグを不信状態“1”に変更する。
【0069】
次に、制限処理部113は、“WiFiInfoPassProtocol”が、例えば、
図4に示すように使用制限リストに含まれているため、“WiFiInfoPassProtocol”の使用を禁止する。そのため、本実施形態によるノートPC1では、アタッカAT1は、無線LANのパスワードを盗み取ることができない。
【0070】
以上説明したように、本実施形態によるノートPC1(情報処理装置)は、認証処理部111と、信頼リスト記憶部41と、チェインフラグ記憶部43(チェイン情報記憶部)と、起動処理部112と、制限処理部113とを備える。認証処理部111は、BIOSの処理において、予め定められたセキュリティキーに基づいて、OSを起動するためのブートプログラム(起動プログラム)の正当性を確認する。信頼リスト記憶部41は、信頼できるブートプログラムの提供元の一覧である信頼リストを記憶する。チェインフラグ記憶部43は、改ざんされた可能性のある不正なブートプログラムが実行されたか否かのチェイン情報(例えば、ブートチェインフラグ)を記憶する。起動処理部112は、認証処理部111によって正当性が確認されたブートプログラムを実行させるセキュアブート処理において、信頼リスト記憶部41が記憶する信頼リストに含まれていない提供元から取得したブートプログラムを実行させた場合に、チェインフラグ記憶部43が記憶するブートチェインフラグを、不正なブートプログラムが実行されたことを示す情報(不信状態“1”)に変更する。制限処理部113は、チェインフラグ記憶部43が記憶するブートチェインフラグが、不正なブートプログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する。
【0071】
これにより、本実施形態によるノートPC1(情報処理装置)は、セキュアブートにおいて、例えば、第3者に改ざんされたプログラムが実行された場合であっても、それ以降に実行されたプログラムが改ざん又は監視される可能性を低減することができる(上述した
図8及び
図10を参照)。よって、本実施形態によるノートPC1は、セキュアブートにおいて、第3者からの攻撃に対する防御を向上させることができる。
【0072】
また、本実施形態では、信頼リストには、BIOSのプログラムが記憶されているBIOSメモリ22を提供元とするファームウェアボリューム(“Firmware Volume”)、又は予め設定されたサーバ装置を提供元とするネットワークブート(“Https Boot”)が含まれる。
【0073】
これにより、本実施形態によるノートPC1は、安全にブート可能なファームウェアボリューム(“Firmware Volume”)、又はネットワークブート(“Https Boot”)をリスト化して、それ以外(例えば、USBからのブートなど)の実行により、不正なブートプログラムが実行された状態(不信状態“1”)であると判定するため、改ざんされた可能性のある不正なブートプログラムの実行を簡単に検出することができる。
【0074】
また、本実施形態によるノートPC1は、使用を制限するプロトコルの一覧を記憶する制限リスト記憶部42(使用制限リスト記憶部)を備える。制限処理部113は、ブートチェインフラグが、不正なブートプログラムが実行されたことを示す情報(不信状態“1”)である場合に、制限リスト記憶部42が記憶するプロトコルの一覧に含まれるプロトコルの使用を制限する。
【0075】
これにより、本実施形態によるノートPC1は、使用を制限するプロトコルの一覧(使用制限リスト)という簡易な手法により、セキュリティを脅かす可能性のあるプロトコルを、適切に制限することができる。よって、本実施形態によるノートPC1は、セキュアブートにおいて、第3者からの攻撃に対する防御をさらに向上させることができる。
【0076】
また、本実施形態では、使用を制限するプロトコルの一覧には、ネットワークの接続に関連するプロトコル(例えば、“WiFiConfigProtocol”など)、又はTPMに関連するプロトコルが含まれる。
【0077】
これにより、本実施形態によるノートPC1は、セキュリティを脅かす可能性が高いプロトコルを、適切に制限することができる。よって、本実施形態によるノートPC1は、セキュアブートにおいて、第3者からの攻撃に対する防御をさらに向上させることができる。
【0078】
また、本実施形態による制御方法は、上述した認証処理部111と、チェインフラグ記憶部43と、を備えるノートPC1の制御方法であって、起動処理ステップと、制限処理ステップとを含む。認証処理部111は、BIOSの処理において、予め定められたセキュリティキーに基づいて、OSを起動するためのブートプログラムの正当性を確認する。チェインフラグ記憶部43は、信頼できるブートプログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部41と、改ざんされた可能性のある不正なブートプログラムが実行されたか否かのブートチェインフラグを記憶する。起動処理ステップにおいて、起動処理部112が、セキュアブート処理において、信頼リスト記憶部41が記憶する信頼リストに含まれていない提供元から取得したブートプログラムを実行させた場合に、チェインフラグ記憶部43が記憶するブートチェインフラグを、不正なブートプログラムが実行されたことを示す情報に変更する。制限処理ステップにおいて、制限処理部113が、チェインフラグ記憶部43が記憶するブートチェインフラグが、不正な起動プログラムが実行されたことを示す情報である場合に、予め設定されているセキュリティに関連するプロトコルの使用を制限する。
【0079】
これにより、本実施形態による制御方法は、上述したノートPC1と同様の効果を奏し、セキュアブートにおいて、第3者からの攻撃に対する防御を向上させることができる。
【0080】
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の実施形態において、情報処理装置がノートPC1である例を説明したが、これに限定されるものではなく、例えば、タブレット端末装置、デスクトップPCなどの他の情報処理装置であってもよい。
【0081】
また、上記の実施形態において、信頼リストの提供元は、
図3に示す一例に限定されるものではなく、他のデバイスの提供元を含んでもよい。
また、上記の実施形態において、使用制限リストのプロトコルは、
図4に示す一例に限定されるものではなく、他のプロトコルを含んでもよい。
【0082】
なお、上述したノートPC1が備える各構成は、内部に、コンピュータシステムを有している。そして、上述したノートPC1が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したノートPC1が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。
【0083】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にノートPC1が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0084】
また、上述した機能の一部又は全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【0085】
1 ノートPC
2 ブートサーバ
10 メイン制御部
11 CPU
12 メインメモリ
13 ビデオサブシステム
14 表示部
21 チップセット
22 BIOSメモリ
23 SSD
24 オーディオシステム
25 WLANカード
26 USBコネクタ
31 エンベデッドコントローラ(EC)
32 入力部
33 電源回路
40 記憶部
41 信頼リスト記憶部
42 制限リスト記憶部
43 チェインフラグ記憶部
100 情報処理システム
110 BIOS処理部
111 認証処理部
112 起動処理部
113 制限処理部
120 OS処理部
250 NW通信部
NW1 ネットワーク
【要約】
【課題】セキュアブートにおいて、第3者からの攻撃に対する防御を向上する。
【解決手段】情報処理装置は、BIOSの処理において、セキュリティキーに基づいて、OSを起動するための起動プログラムの正当性を確認する認証処理部と、信頼できる前記起動プログラムの提供元の一覧である信頼リストを記憶する信頼リスト記憶部と、不正な前記起動プログラムが実行されたか否かのチェイン情報を記憶するチェイン情報記憶部と、前記認証処理部によって正当性が確認された前記起動プログラムを実行させるセキュアブート処理において、前記信頼リストに含まれていない提供元から取得した前記起動プログラムを実行させた場合に、前記チェイン情報を変更する起動処理部と、前記チェイン情報が、不正な起動プログラムが実行されたことを示す情報に変更された場合に、セキュリティに関連するプロトコルの使用を制限する制限処理部とを備える。
【選択図】
図2