JP7004478B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents
情報処理装置、情報処理方法及び情報処理プログラム Download PDFInfo
- Publication number
- JP7004478B2 JP7004478B2 JP2021564898A JP2021564898A JP7004478B2 JP 7004478 B2 JP7004478 B2 JP 7004478B2 JP 2021564898 A JP2021564898 A JP 2021564898A JP 2021564898 A JP2021564898 A JP 2021564898A JP 7004478 B2 JP7004478 B2 JP 7004478B2
- Authority
- JP
- Japan
- Prior art keywords
- hash value
- rewriting
- page data
- guest
- information processing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Description
特許文献1では、OSの起動ごとに、OSを複数に区分した部分プログラムのうち、ハッシュ値の検証対象となる1つの部分プログラムが選択される。そして、選択された部分プログラムのハッシュ値が算出される。また、算出されたハッシュ値が、当該部分プログラムの正解のハッシュ値である正解部分ハッシュ値と一致するか否かが判定される。算出されたハッシュ値と正解部分ハッシュ値が一致する場合にシステムの起動処理が継続される。
このため、一部のOSページデータに一時的な書換え処理が行われた後にOSの再起動が行われる場合は、特許文献1の技術では、ハッシュ値の算出対象のOSページデータについてのみハッシュ値を用いた検証のみが行われる。つまり、特許文献1の技術では、書換え処理が行われたOSページデータについてはハッシュ値を用いた検証は行われない。
従って、特許文献1の技術では、書換え処理が行われたOSページデータの元データ(ストレージ上のデータ)に改ざんが行われていたとしても、当該改ざんを検出することができないという課題がある。
OS(Operating System)の動作中にいずれかのOSページデータへの書換え処理が検知された場合に、書換え前のOSページデータである書換え前OSページデータのハッシュ値を書換え前ハッシュ値として算出する書換え前ハッシュ値算出部と、
前記OSの再起動時及び前記OSの再起動後のいずれかにストレージからメモリにロードされた前記書換え前OSページデータのハッシュ値を再起動ハッシュ値として算出する再起動ハッシュ値算出部と、
前記書換え前ハッシュ値と前記再起動ハッシュ値とを比較するハッシュ値比較部とを有する。
***構成の説明***
図1は、本実施の形態に係る情報処理装置100のハードウェア構成例を示す。
情報処理装置100はコンピュータである。
情報処理装置100の動作手順は、情報処理方法に相当する。また、情報処理装置100の動作を実現するプログラムは、情報処理プログラムに相当する。
また、セキュア領域106は、SoC(System-on-a-Chip)の構成によって、バス102を経由せずにプロセッサ101と直接接続されていてもよい。
本実施の形態では、セキュア領域106は、セキュアブートのハッシュ値を格納するために使用される。本実施の形態のようにセキュア領域106がハッシュ値を格納する場合でも、セキュア領域106は、バス102に接続されていても、プロセッサ101に直接接続されていてもよい。
本実施の形態では、情報処理装置100は、ハイパーバイザ構成の仮想マシンである。
RAM103にロードされるゲストOSカーネル202はストレージ104にゲストOSカーネル201として格納されている。ストレージ104に格納されるゲストOSカーネル201とRAM上に展開されるゲストOSカーネル202は、記録方式やロード方式によって、データ形式が異なってもよい。
なお、ゲストOSカーネル202の起動とは、いずれのゲストOSページデータにも書換え処理が行われずにゲストOSカーネル202の動作が終了した後のゲストOSカーネル202の起動をいう。一方、ゲストOSカーネル202の再起動とは、いずれかのゲストOSページデータに書換え処理が行われてゲストOSカーネル202のリブートが行われる場合のゲストOSカーネル202の起動をいう。
起動処理部2031は、置換え処理部に相当する。
具体的には、ハッシュ値算出部2032は、ゲストOSカーネル202の起動時にゲストOSカーネル201全体のハッシュ値を起動ハッシュ値として算出する。
また、ハッシュ値算出部2032は、ゲストOSカーネル202の動作中にいずれかのゲストOSページデータへの書換え処理が検知された場合に、書換え前のゲストOSページデータである書換え前ゲストOSページデータのハッシュ値を書換え前ハッシュ値として算出する。
更に、ハッシュ値算出部2032は、ゲストOSカーネル202の再起動時に、ストレージ104からRAM103にロードされた書換え前ゲストOSページデータのハッシュ値を再起動ハッシュ値として算出する。
ハッシュ値算出部2032は、起動ハッシュ値算出部、書換え前ハッシュ値算出部、再起動ハッシュ値算出部に相当する。
また、ハッシュ値比較部2033は、ゲストOSカーネル202の再起動時に、ハッシュ値算出部2032により算出された再起動ハッシュ値と、ハッシュ値テーブル205で保存されている書換え前ハッシュ値とを比較する。再起動ハッシュ値と書換え前ハッシュ値とが一致する場合に、ハッシュ値比較部2033は、ゲストOSカーネル202の再起動の継続を許可する。一方、再起動ハッシュ値と書換え前ハッシュ値とが一致しない場合に、ハッシュ値比較部2033は、ゲストOSカーネル202の再起動を停止する。
ハッシュ値テーブル205では、書換え処理が行われたゲストOSページデータに対するエントリが管理されている。
具体的には、各エントリは、インデクス、メモリ上のアドレス、書換え前ハッシュ値で構成される。インデクスは、エントリの識別子である。メモリ上のアドレスは、書換え処理が行われたゲストOSページデータが存在するRAM103のアドレスである。書換え前ハッシュ値は、ハッシュ値算出部2032により生成された、書換え処理が行われたゲストOSページデータの書換え前ハッシュ値である。
なお、インデクスはデータベース一般に付与されるものである。ハッシュ値テーブル205では、インデクスはなくてもよい。
次に、本実施の形態に係る情報処理装置100の動作を説明する。
より具体的には、図4は、情報処理装置100の起動から、ゲストOSページデータへの書換え処理(COW(Copy-On-Write))が発生し、リブートが発生するまでの動作フローを示す。
なお、既に書換えが発生しているゲストOSページデータで更に書換えが発生した場合は、既に当該ゲストOSページデータの書換え前ハッシュ値がハッシュ値テーブル205に存在している。この場合に、ハッシュ値算出部2032は書換え前ハッシュ値の更新は行わない。つまり、ハッシュ値テーブル205に最初に登録された書換え前ハッシュ値が維持される。
リブートが発生したら(ステップS311でTRUE)、処理が図5に進む(ステップS312)。
図2のゲストOSページデータ2026に書換え処理が発生していた場合は、起動処理部2031は、ストレージ104から書換え前のゲストOSページデータ2026をロードする。
前述の例では、ハッシュ値算出部2032は、ステップS314でロードされた書換え前のゲストOSページデータ2026のハッシュ値を再起動ハッシュ値として算出する。
前述の例では、ハッシュ値算出部2032は、ゲストOSページデータ2026のメモリアドレスをキーにしてハッシュ値テーブル205を探索し、ゲストOSページデータ2026の書換え前ハッシュ値を取得する。
前述の例では、COW領域の書換え後のゲストOSページデータ2026を、書換え前のゲストOSページデータ2026で置き換える。
一方、ステップS314以降の処理が全てのCOW領域で行われていれば(ステップS319でTRUE)、起動処理部2031は、ゲストOSカーネル202の再起動処理を継続する(ステップS320)。
以上、本実施の形態では、ゲストOSの再起動時に、書換え処理が行われたゲストOSページデータについて、再起動ハッシュ値と書換え前ハッシュ値とが比較される。このため、本実施の形態によれば、書換え処理が行われたゲストOSページデータの元データ(ストレージ上のデータ)への改ざんを検出することができる。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
本実施の形態では、このようなゲストOSの再起動後にオンデマンドで書換え前ゲストOSページデータがロードされる例を説明する。
図6は、実施の形態1で説明した図5に対応する。すなわち、本実施の形態に係る情報処理装置100は、図4のステップS311においてリブートが発生した場合に、図6に示すフローを実施する。
その後、処理がステップS322に戻り、ゲストOSカーネル202の定常動作が継続する。
本実施の形態では、主に実施の形態1、2との差異を説明する。
なお、以下で説明していない事項は、実施の形態1、2と同様である。
本実施の形態では、情報処理装置100がブートローダとベアメタルのOSで実現されている。
図7は、本実施の形態に係る情報処理装置100の機能構成例を示す。なお、本実施の形態に係る情報処理装置100のハードウェア構成例は、図1と同様である。
ブートローダ209には、起動処理部2091、ハッシュ値算出部2092及びハッシュ値比較部2093が含まれる。
起動処理部2091は、起動処理部2031と同様の処理を行う。起動処理部2091も置き換え処理部に相当する。
ハッシュ値算出部2092は、起動処理部2031と同様の処理を行う。ハッシュ値算出部2092も起動ハッシュ値算出部、書換え前ハッシュ値算出部及び再起動ハッシュ値算出部に相当する。
ハッシュ値比較部2093は、ハッシュ値比較部2033と同様の処理を行う。
本実施の形態では、OSカーネル210がRAM103にロードされ、OSカーネル211として動作する。OSカーネル211は、RAM103では、メモリページであるOSページデータとして管理される。図7では、OSカーネル211は、OSページデータ2111~2116として管理されている。
図7の他の要素は、図2に示したものと同様であるため、説明を省略する。
次に、本実施の形態に係る情報処理装置100の動作を説明する。
より具体的には、図4は、情報処理装置100の起動から、OSページデータへの書換え処理(COW)が発生し、リブートが発生するまでの動作フローを示す。
そして、OSカーネル211は、一般的なOSが行っている外部からのトリガ入力を待つ状態に遷移する(ステップS405)。
なお、既に書換えが発生しているOSページデータで更に書換えが発生した場合は、既に当該OSページデータの書換え前ハッシュ値がハッシュ値テーブル205に存在している。この場合に、ハッシュ値算出部2092は書換え前ハッシュ値の更新は行わない。つまり、ハッシュ値テーブル205に最初に登録された書換え前ハッシュ値が維持される。
リブートが発生したら(ステップS410でTRUE)、起動処理部2091がハッシュ値テーブル205にあるメモリアドレスに対するMMUのエントリを無効化し(ステップS411)、処理が図9に進む(ステップS412)。なお、図8では、ステップS405、ステップS406、ステップS410という順序の動作手順を記載しているが、OSカーネル211はイベントドリブンに実装されているため、ステップS405から直接ステップS410に遷移することも可能である。
このため、RAM103に残されているOSページデータを用いて起動処理部2091は、OSカーネル211の起動を行う。
そして、OSカーネル211は定常動作に遷移する(ステップS414)。
その後、処理がステップS414に戻り、OSカーネル211の定常動作が継続する。
以上、本実施の形態によれば、ブートローダとベアメタルのOSで実現されている情報処理装置100でも、書換え処理が行われたOSページデータの元データ(ストレージ上のデータ)への改ざんを検出することができる。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
また、これらの実施の形態に記載された構成及び手順を必要に応じて変更してもよい。
***ハードウェア構成の補足説明***
最後に、情報処理装置100のハードウェア構成の補足説明を行う。
また、起動処理部2031、ハッシュ値算出部2032、ハッシュ値比較部2033、起動処理部2091、ハッシュ値算出部2092及びハッシュ値比較部2093の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、起動処理部2031、ハッシュ値算出部2032、ハッシュ値比較部2033、起動処理部2091、ハッシュ値算出部2092及びハッシュ値比較部2093の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
また、情報処理装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
Claims (7)
- OS(Operating System)の動作中にいずれかのOSページデータへの書換え処理が検知された場合に、書換え前のOSページデータである書換え前OSページデータのハッシュ値を書換え前ハッシュ値として算出する書換え前ハッシュ値算出部と、
前記OSの再起動時及び前記OSの再起動後のいずれかにストレージからメモリにロードされた前記書換え前OSページデータのハッシュ値を再起動ハッシュ値として算出する再起動ハッシュ値算出部と、
前記書換え前ハッシュ値と前記再起動ハッシュ値とを比較するハッシュ値比較部とを有する情報処理装置。 - 前記OSの再起動時に、前記OSの再起動前のOSページデータが前記メモリに残されている請求項1に記載の情報処理装置。
- 前記情報処理装置は、更に、
前記書換え前ハッシュ値と前記再起動ハッシュ値とが一致する場合に、前記メモリ内の、前記書換え処理による書換え後のOSページデータを、前記ストレージから前記メモリにロードされた前記書換え前OSページデータで置換える置換え処理部を有する請求項1に記載の情報処理装置。 - 前記情報処理装置は、更に、
前記OSの起動時に、前記OS全体のハッシュ値を起動ハッシュ値として算出する起動ハッシュ値算出部を有し、
前記ハッシュ値比較部は、
前記起動ハッシュ値と、予め生成されている前記OS全体のハッシュ値である照合ハッシュ値とを比較し、前記起動ハッシュ値と前記照合ハッシュ値とが一致する場合に、前記OSの起動を許可する請求項1に記載の情報処理装置。 - 前記書換え前ハッシュ値算出部は、
ハイパーバイザ上で動作するゲストOSの動作中にいずれかのゲストOSページデータへの書換え処理が検知された場合に、書換え前のゲストOSページデータである書換え前ゲストOSページデータのハッシュ値を前記書換え前ハッシュ値として算出し、
前記再起動ハッシュ値算出部は、
前記ゲストOSの再起動時及び前記ゲストOSの再起動後のいずれかに前記ストレージから前記メモリにロードされた前記書換え前ゲストOSページデータのハッシュ値を前記再起動ハッシュ値として算出する請求項1に記載の情報処理装置。 - OS(Operating System)の動作中にいずれかのOSページデータへの書換え処理が検知された場合に、書換え前ハッシュ値算出部が、書換え前のOSページデータである書換え前OSページデータのハッシュ値を書換え前ハッシュ値として算出し、
再起動ハッシュ値算出部が、前記OSの再起動時及び前記OSの再起動後のいずれかにストレージからメモリにロードされた前記書換え前OSページデータのハッシュ値を再起動ハッシュ値として算出し、
ハッシュ値比較部が、前記書換え前ハッシュ値と前記再起動ハッシュ値とを比較する情報処理方法。 - OS(Operating System)の動作中にいずれかのOSページデータへの書換え処理が検知された場合に、書換え前のOSページデータである書換え前OSページデータのハッシュ値を書換え前ハッシュ値として算出する書換え前ハッシュ値算出処理と、
前記OSの再起動時及び前記OSの再起動後のいずれかにストレージからメモリにロードされた前記書換え前OSページデータのハッシュ値を再起動ハッシュ値として算出する再起動ハッシュ値算出処理と、
前記書換え前ハッシュ値と前記再起動ハッシュ値とを比較するハッシュ値比較処理とをコンピュータに実行させる情報処理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/005343 WO2021161418A1 (ja) | 2020-02-12 | 2020-02-12 | 情報処理装置、情報処理方法及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021161418A1 JPWO2021161418A1 (ja) | 2021-08-19 |
JP7004478B2 true JP7004478B2 (ja) | 2022-01-21 |
Family
ID=77292135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021564898A Active JP7004478B2 (ja) | 2020-02-12 | 2020-02-12 | 情報処理装置、情報処理方法及び情報処理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7004478B2 (ja) |
WO (1) | WO2021161418A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280284A (ja) | 2003-03-13 | 2004-10-07 | Sony Corp | 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法 |
JP2006053787A (ja) | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
US20170371388A1 (en) | 2016-06-23 | 2017-12-28 | Vmware, Inc. | Efficient reboot of an operating system |
-
2020
- 2020-02-12 WO PCT/JP2020/005343 patent/WO2021161418A1/ja active Application Filing
- 2020-02-12 JP JP2021564898A patent/JP7004478B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280284A (ja) | 2003-03-13 | 2004-10-07 | Sony Corp | 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法 |
JP2006053787A (ja) | 2004-08-12 | 2006-02-23 | Ntt Docomo Inc | プログラム実行装置及びプログラム実行方法 |
US20170371388A1 (en) | 2016-06-23 | 2017-12-28 | Vmware, Inc. | Efficient reboot of an operating system |
Also Published As
Publication number | Publication date |
---|---|
JPWO2021161418A1 (ja) | 2021-08-19 |
WO2021161418A1 (ja) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3764237B1 (en) | System startup method and apparatus, electronic device and storage medium | |
US10073703B2 (en) | Booting an operating system of a system using a read ahead technique | |
JP4916576B2 (ja) | マルチオペレーティングシステム(os)起動装置及びマルチos起動プログラム及び記録媒体及びマルチos起動方法 | |
US9965270B2 (en) | Updating computer firmware | |
KR101201186B1 (ko) | 데이터를 기억 장치에 기록하기 위한 방법 및 시스템 | |
JP5740573B2 (ja) | 情報処理装置および情報処理方法 | |
US7313683B2 (en) | Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization | |
US9230116B2 (en) | Technique for providing secure firmware | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US8943491B2 (en) | Systems and methods for maintaining CRTM code | |
US20110213954A1 (en) | Method and apparatus for generating minimum boot image | |
US7069445B2 (en) | System and method for migration of a version of a bootable program | |
EP2726977A2 (en) | Virtual machine image analysis | |
CN110162429B (zh) | 系统修复方法、服务器及存储介质 | |
JP5466645B2 (ja) | 記憶装置、情報処理装置およびプログラム | |
JPWO2020075303A1 (ja) | ソフトウェア検証装置、ソフトウェア検証方法およびソフトウェア検証プログラム | |
US8688933B2 (en) | Firmware component modification | |
JP7004478B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US7080243B2 (en) | Method and system for comparing firmware images | |
US6971003B1 (en) | Method and apparatus for minimizing option ROM BIOS code | |
US20240095188A1 (en) | Memory deduplication for encrypted virtual machines | |
US11734182B2 (en) | Latency reduction for kernel same page merging | |
US20230342132A1 (en) | Patch uninstallation using a signed operating system install package | |
US20230069169A1 (en) | Information processing apparatus and control method of the same | |
CN115933966A (zh) | 信息处理装置和用于控制信息处理装置的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211101 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20211101 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211229 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7004478 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |