JP6063941B2 - システム管理要求のための仮想高特権モード - Google Patents

システム管理要求のための仮想高特権モード Download PDF

Info

Publication number
JP6063941B2
JP6063941B2 JP2014528336A JP2014528336A JP6063941B2 JP 6063941 B2 JP6063941 B2 JP 6063941B2 JP 2014528336 A JP2014528336 A JP 2014528336A JP 2014528336 A JP2014528336 A JP 2014528336A JP 6063941 B2 JP6063941 B2 JP 6063941B2
Authority
JP
Japan
Prior art keywords
system management
virtual
mode
domain
privileged
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.)
Expired - Fee Related
Application number
JP2014528336A
Other languages
English (en)
Other versions
JP2014527674A (ja
Inventor
アリ,ヴァリウディン,ワイ
ピリス,ホセ,パウロ,ザビエル
マン,ジェイムス,エム
バラシェフ,ボリス
ダルトン,クリス,アイ
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2014527674A publication Critical patent/JP2014527674A/ja
Application granted granted Critical
Publication of JP6063941B2 publication Critical patent/JP6063941B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Description

コンピュータ又は他のタイプの装置のような電子装置は、電子装置の起動について責任を負う基本入出力システム(BIOS)を含むことができる。起動の際に、BIOSは、電子装置の種々の構成要素を初期化し、構成し、オペレーティングシステムを電子装置にロードする。また、BIOSは、電力管理サービス、熱管理サービス、及びBIOSアップデートサービス等のような他のサービスをさらに提供することができる。
一部の実施形態は、下記の図面を参照して説明される。
仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。 仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。 例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。 例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。 コンピュータ読取可能媒体の例示的実施形態によるコンピューティングシステムを示すブロック図である。
詳細な説明
基本入出力システム(BIOS)は通常、電子装置が起動したときに、電子装置によって実行される最初のコードである。電子装置の例としては、コンピュータ(例えば、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、サーバコンピュータなど)、携帯装置(例えば、携帯情報端末(PDA)、スマートフォンなど)、電子アプライアンス、ゲームコンソール、又は、他のタイプの電子装置が挙げられる。BIOSは、電子装置の種々のハードウェア構成要素を初期化し、構成し、電子装置のオペレーティングシステム(OS)をロードし、開始する。BIOSのコードは通常、フラッシュメモリデバイス、又は、他のタイプのプログラマブル・リード・オンリー・メモリ(ROM)のような不揮発性メモリに記憶される。
BIOSは、電子装置において実施することが可能な他の機能も提供する。電子装置において、BIOSのそのような他の機能の多くは、OSの実行がサスペンド(一時停止)される動作モードであるシステム管理モード(SMM)に入ることによって、実行されることが多い。また、複数のプロセッサ又はプロセッサコアを有する電子装置の場合、SMMモードにおいて、それらのプロセッサ又はプロセッサコアの1つを除く全てが無効化されることがある。SMMモードに入るためには、システム管理割り込み(SMI)をアサートし、個々の機能(複数可)を実施するために、大抵は比較的高い特権モードで、SMIハンドラ(これは、BIOSの一部である)を実行する。
BIOS機能を実施するためにSMMモードに入ることは、種々の問題を伴うことがある。第1に、OSの実行がサスペンドされるため、通常の電子装置動作を進めることができない。また、SMMモードにある間、プロセッサ(複数可)又はプロセッサコア(複数可)が無効化される電子装置では、電子装置の処理能力の一部が一時的に無力化され、その結果、処理能力のそのような部分を他のタスクの実施に利用することができないことを意味する。また、SMM処理にどの程度の時間がかかるのかを予測することは難しい場合があり、その結果、電子装置の動作に不確定性が生じることがある。さらに、BIOS機能によっては、完了するのに比較的長い時間(例えば、数分程度)を要することがあり、電子装置のユーザは、ステータス情報を入手できない場合があり、その結果、ユーザを動揺させることがある。なぜなら、ユーザは、電子装置が適切に機能しているか否かを究明することができないからである。
セキュリティもまた問題となる場合がある。なぜなら、マルウェア(悪意のあるソフトウェア)が、SMM動作中に攻撃を仕掛ける場合があり、それが、システム破壊をもたらすことがあるからである。SMM動作に対するそのような攻撃を回避するためにとられる種々のセキュリティ対策は、電子装置の設計の複雑さを増大させる原因となることがある。かかるセキュリティ対策の例としては、種々のレジスタ、及び/又は、フラッシュメモリデバイス若しくは他のタイプのプログラマブル・リード・オンリー・メモリのような不揮発性メモリの一部のような、特定の記憶領域をロックすることが挙げられる。また、セキュリティ対策は、BIOSコードアップデートのような特定のBIOS機能の性能に制限を課す場合があり、制限は、そのようなBIOS機能をシステム再起動のような特定時点にのみ実施すべきことを強制することがある。
SMMにおいてよく実施される種々の機能の例には、次のうちの何れか1つ、又はそれらの組み合わせが含まれ得る。すなわち、BIOSコードをアップデートするためのサービス;BIOSの設定にアクセスし又はその設定を変更するためのサービス;熱管理を実施する(例えば、電子装置においてファンのような冷却装置を制御する)ための熱管理サービス;(特定のハードウェア構成要素に対する電力の除去又は復旧をする)電力管理サービス;異なる電力状態(例えば、ハイバネーション状態、スリープ状態、及び完全オン状態等)間において電子装置を遷移させるためのサービス;電子装置のボタン又はボタンシーケンス(例えば、無線インタフェース構成要素をオン/オフするためのボタンや、一部の所定のタスクを実施するためのホットキーシーケンスなど)の駆動(複数ボタンの一部の組み合わせの駆動を含む)を処理するサービス;(電子装置の周りの周囲光を検出するための)電子装置の周囲光センサに関連するサービス;電子装置におけるハードウェア構成要素の設定を変更するためのサービス;電子装置のブート装置のブート順序を変更するためのサービス;OSとBIOSとの間の特定タイプの呼び出し(例えば、割り込み15呼び出し)を処理するサービス;内蔵コントローラのコマンドを実行するためのサービス;及び、特定条件下でレガシー周辺機器をサポートするためのサービスである。
種々のBIOS機能の例を上に列挙したが、実施形態によっては、他のBIOS機能又は代替のBIOS機能が使用される場合もある。
実施形態によっては、より強固なシステム挙動を得るために、BIOSの種々機能は、電子装置の特権ドメインに設けられることがある。特権ドメインは、比較的安全で、かつ、電子装置の他のエンティティは入手することができないある所定の特権(複数可)を有する、電子装置の一領域(ドメイン)である。一般に、「特権ドメイン」とは、当該ドメイン内のエンティティに対しては、電子装置の種々の機能を実施することを許可し、他のエンティティ(例えば、OS、アプリケーションプログラムなど)に対しては、そのような実施を許可しない、所定の特権(複数可)を有するドメインのことを言う。また、特権ドメインは、権限を有しないアクセス又は攻撃から特権ドメインを保護するためのセキュリティメカニズムをさらに有する。
SMMモードの種々の機能を仮想高特権モードに移すことにより、電子装置は、仮想高特権モードに移されたそのようなBIOS機能を実施するために、SMMモードに入る必要はなくなる。実施形態によっては、SMM処理をハードウェアから完全に無くすことができる。実施形態によっては、特定のBIOS機能を実施するためのSMM処理は依然として可能であるが、残りのBIOS機能は、仮想高特権モードを通して実施される場合がある。
特権ドメインの例としては、次のうちの任意の、又は一部の組み合わせが挙げられる。すなわち、ドメイン0(これは、管理タスクを実施するために仮想マシンモニタ(ハイパーバイザーとも呼ばれる)によって開始される最初のドメインであることが多い);仮想マシンモニタ(又はハイパーバイザー)の一部;拡張された特権及び/又はセキュリティをゲスト仮想マシンに与えるための所定の設定を有するゲスト仮想マシン;又は、所定の特別な特権及び/又はセキュリティメカニズムを有する、電子装置における他のタイプのドメインである。安全な特権ドメインは、トラステッド(高い信頼性を有する)ランタイムBIOSを含むことがあり、当該BIOSは、ピアレベルの構成要素を有することなく、仮想高特権モードを他のドメインから分離し、保護するためのシステム管理モード転送モニタのような仮想マシンモニタを用いて、システム管理命令を安全に処理するための、仮想高特権モードを有することができる。
「仮想マシン」(「仮想アプライアンス」又は「仮想パーティション」とも呼ばれる)とは、物理マシンを仮想化し、又はエミュレートするために設けられた物理マシン(電子装置)の一部のパーティション又はセグメントのことを言う。ユーザ又はアプリケーションから見れば、仮想マシンは、物理マシンのように見える。仮想マシンは、オペレーティングシステム(ゲストオペレーティングシステムと呼ばれる)、及び少なくとも1つのアプリケーションプログラムを含む。
ハイパーバイザーとも呼ばれる仮想マシンモニタ(VMM)は、電子装置のハードウェア構成要素のような物理リソースの仮想マシンによる共有を管理する。VMMは、物理リソースを仮想化する。各仮想マシンは、VMMによって管理される関連仮想化物理リソースを有する。VMMは、物理リソースの要求を処理する。
図面を参照すると、図1は、仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。コンピューティングシステム100は、プロセッサ110を含むことができる。プロセッサ110は、コンピューティングシステム100のハードウェア105の一部である。プロセッサ110は、汎用プロセッサであってもよいし、特定用途向けプロセッサであってもよい。例えば、ハードウェア105は、I/Oデバイス、揮発性メモリ、二次記憶装置、フラッシュメモリ、ネットワークインタフェースコントローラ、及びグラフィックスアダプタ等をさらに含むことができる。システムは、種々のハードウェア構成要素の物理リソースを管理し、当該物理リソースを仮想化するための仮想マシンモニタをさらに含むことができる。コンピューティングシステムは、ゲストドメイン130に取り付けられた仮想基本入出力システム(vBIOS)135を含む。ゲストドメイン130は、Microsoft(登録商標) Windows(登録商標)、Linux(登録商標)、UNIX(登録商標)、又は他のオペレーティングシステムのようなオペレーティングシステムを実行することがある仮想マシンである。
一部の例において、特権ドメイン120は、ドメイン0である。ドメイン0は、システム起動時にVMM102によって開始される管理ドメインであり、拡張された特権及びセキュリティメカニズムを有する。ドメイン0により実施されるタスクの例としては、ゲストドメインを作成し、設定することが挙げられる。ドメイン0及びゲストドメインはそれぞれ、対応する仮想マシンとみなされる。特権ドメイン120は、VMM115から分離することができる。代替実施形態において、特権ドメイン120は、VMM115の一部であってもよい。そのような代替実施形態では、トラステッドランタイムBIOS機能125は、VMM115の一部である。特権ドメイン120は、トラステッドVMM115により生成され、管理されるため、トラステッドドメインである場合がある。
特権ドメイン120にBIOS機能125を与えることにより、「トラステッドランタイムBIOS125」又はBIOS.vとも呼ばれる「クラウド状BIOS」を実施する。「クラウド」とは、特権ドメイン120(又は何らかの他のトラステッドドメイン)のことを言う場合がある。クラウドは、コンピューティングシステム100に配置されてもよいし、コンピューティングシステム100の外部に配置されてもよい。例えば、トラステッドランタイムBIOS125機能を含むクラウドは、ネットワークを介してコンピューティングシステム100によりアクセス可能とされる場合がある。ネットワークは、例えば、ローカルネットワークであっても、ワイドネットワークであっても、ワールドワイドネットワークであってもよい。
コンピューティングシステム100は、システム管理要求を処理するための仮想高特権モード140を含む場合がある。システム管理要求は、システム管理割り込み、及びシステム管理命令のうちの少なくとも一方を含む。システム管理要求は、例えば、ゲストドメイン130により発行される場合もあれば、又は特権ドメイン120により発行される場合もある。仮想高特権モード140は、特権ドメイン内のトラステッドランタイムBIOSの中に示されているが、仮想高特権モード140は、VMM115により生成若しくは管理される如何なるトラステッドドメインであってもよく、あるいは、VMM115自体に含まれてもよい。VMMにより生成又は管理される他のドメインであってトラステッドドメインであり得るものには、特権ドメイン120、仮想アプライアンス、ゲストドメイン130が含まれ得る。
システム管理要求を処理するための仮想高特権モード140は、プロセッサ110又は他のハードウェア105がシステム管理モードに入ることを防止することができる。システム管理モードは、システム管理要求が処理されるまで、処理の停止を引き起こす。例えば、ゲストドメイン130がシステム管理要求を生成した場合、仮想マシンモニタ115は、そのシステム管理要求によってプロセッサ110がシステム管理モードにされることを防止し、当該要求を処理するために、そのシステム管理要求を仮想高特権モード140へリダイレクトすることができる。仮想高特権モードは、通常ならばプロセッサのシステム管理モードにおいて実施されることになるシステム構成変更を実施するためのハードウェアへのアクセスを有する場合がある。一例として、ハードウェア105へのアクセスは、仮想マシンモニタ115によって与えられる場合がある。
図2は、仮想高特権モードの例示的実施形態によるコンピューティングシステムを示すブロック図である。コンピューティングシステム200は、プロセッサ210を含むことができる。プロセッサ210は、コンピューティングシステム200のハードウェア205の一部である。ハードウェアは、ファームウェア245を含むことができ、ファームウェア245は、基本入出力システム(BIOS)250、及び拡張可能なファームウェアインタフェース(EFI)255を含む場合がある。BIOS250は、物理BIOSと呼ばれることがある。「物理BIOS」とは、フラッシュメモリ又は他のプログラマブル・リード・オンリー・メモリのような不揮発性メモリに置かれたBIOSコードであって、コンピューティングシステム200の起動時に実行されるべきものを言う。一部の実施形態において、物理BIOSは、BIOSの軽量(簡略)バージョンである場合がある。なぜなら、システム管理モードの少なくとも一部が、仮想高特権モードへ移されるからである。トラステッドランタイムBIOS225が実施される場合、トラステッドランタイムBIOS225に信用が付随するため、変更を可能にするために、物理BIOS250は、アンロック状態に留まる場合がある。プロセッサ210は、汎用プロセッサであってもよいし、特定用途向けプロセッサであってもよい。システムは、ハードウェア構成要素の物理リソースを管理し、当該物理リソースを仮想化するために、仮想マシンモニタVMM215を含むことができる。コンピューティングシステム100は、ゲストドメイン230に取り付けられた仮想基本入出力システム(vBIOS)235を含む。ゲストドメイン230は、Microsoft(登録商標) Windows(登録商標)、Linux(登録商標)、UNIX(登録商標)、又は他のオペレーティングシステムのようなオペレーティングシステムを実行することがある仮想マシンである。
一部の例において、特権ドメイン220は、ドメイン0、すなわち、起動時にVMM202によって開始される管理ドメインであり、このドメインは、拡張された特権及びセキュリティメカニズムを有する。ドメイン0により実施されるタスクの例としては、ゲストドメインを作成し、設定することが挙げられる。ドメイン0及びゲストドメインはそれぞれ、対応する仮想マシンとみなされる。特権ドメイン220は、VMM215から分離することができる。代替実施形態において、特権ドメイン220は、VMM215の一部であってもよい。そのような代替実施形態では、トラステッドランタイムBIOS225は、VMM215の一部である。
仮想システム管理モード240は、システム管理要求を処理するためのものであり、仮想システム管理モード240は、システムハードウェア205をシステム管理モードにするための種々の機能を実施することが可能な仮想高特権モードである。システム管理モードの種々の機能を仮想システム管理モード240で処理することにより、プロセッサがシステム管理モードに入らないことから、システム管理モードにあるときにプロセッサ210が種々の命令及びデータの処理を停止することを、防止することができる。実施形態によっては、プロセッサ210は、システム管理モードを有しない場合がある。
種々の実施形態において、仮想システム管理モード240は、VMM215自体又は仮想アプライアンス260のようなVMM215により生成され又は管理される何れのトラステッドドメインにあっても、特権ドメイン220にあってもよく、あるいは、ゲストドメイン230にあってもよい。一例において、システム管理要求が生成される。システム管理要求は、システム管理要求を処理するために、仮想システム管理モード240へ転送される。一実施形態において、システム管理要求は、仮想基本入出力システム(vBIOS)235によって受信され、仮想システム管理モード240へと転送される場合がある。システム管理要求は、ウェブサービスのアプリケーション・プログラミング・インタフェース(API)によって送信されることができる。他の実施形態として、システム管理要求は、Windows Management Instrumentation(WMI)ラッパーの中に詰め込まれる場合がある。他の実施形態としては、リモート・プロシージャ・コール(RPC)を使用して、システム管理要求を仮想システム管理モードへ転送することが挙げられる。
一部の実施形態において、クラウド状BIOSは、VMMベースのアーキテクチャの次のような前提に基づく。すなわち、物理BIOSは、物理BIOSがブートしているメイン・ランタイム・エンティティ(VMM215)を知っていて、当該エンティティを信用していること、及び、BIOSに信用されたVMMは、特権ドメインからやって来るものを除き、(BIOS機能にアクセスするための)全てのI/O要求を捕捉し、当該I/O要求をオフにする機能を有することである。一部の実施形態では、コンピューティングシステムによりブートすべきVMMの出所を確認するために、BIOS検査メカニズムが設けられる場合がある。そのような検査メカニズムによれば、管理者又は他のユーザは、コンピューティングシステムにおいて権限を有するVMMのみがブートできるように指定することができる。検査メカニズムによれば、コンピューティングシステムにおけるVMMイメージが悪意により変更されていないこと、及びVMMが信用できるものであることを確認することができる。物理BIOSは、VMMイメージを検査し、VMMが、以前に指定された既知の一組の制御された動作設定を使用してブートされることを確認することができる。その後、VMMは、ハードウェア205をシステム管理モードにすることなく、トラステッド環境においてシステム管理要求を処理するために、仮想高特権モード240を生成し、管理する場合がある。
権限を有するVMMがブートされたことを確認した後、物理BIOSは、権限を有しない、又は悪意のあるコードによる破壊を防止するために物理BIOSが通常実施するであろう種々のセキュリティ測定の実行を、延期又は省略することができる。例えば、物理BIOSは、BIOSフラッシュレジスタ及び/又はフラッシュメモリの種々の部分をロックしないことを選択することができる。
実施形態によっては、トラステッドランタイムBIOS225は、コンピューティングシステム200の内部に設けられる場合もあるが、トラステッドランタイムBIOS225は、コンピューティングシステムの外部に設けられる場合もある。ゲスト仮想マシン、又は、BIOSサービスにアクセスすることを望むコンピューティングシステムの他のエンティティから見れば、BIOSサービスを含むクラウドは、どこに配置されてもよく、例えば、コンピューティングシステムの外部の場所に配置されてもよい。
トラステッドランタイムBIOSを備えた一実施形態では、特権ドメインでも他のトラステッドドメインでもない他のドメインは、BIOSと通信することができない。これは、ゲストドメインからBIOSへの通信手段を全て捕捉し、受信及び処理のための適当なフィルタのために、特権ドメイン部分へルーティングすることを確保することによって可能となる。そして、特権ドメインにある仮想高特権モードは、要求を処理することができ、フラッシュメモリ又はBIOSに対して直接的又は間接的な呼び出しを行うことができる。その後、特権ドメインからBIOSへのこの呼び出しは、ハイパーバイザーによって、通過することを許可される。なぜなら、ハイパーバイザーは、ゲストドメインではなく、特権ドメインから発せられた呼び出しを検出することができるからである。物理BIOSに対するオープンかつ排他的なアクセスが与えられた場合、特権ドメインから物理BIOSへの通信の安全性が確保され、特権ドメインは今や、実行時にBIOSの全設定を読み書きすることができ、従って、プロセッサがシステム管理モードに入ることになる状況を無くすことができる。
システム管理要求の処理を仮想高特権モードに移すことは、仮想マシンモニタが、より多くのシステム情報、及びコンテキストを入手できるという利点を有する。例えば、コンピューティングシステムが、熱イベントを処理するためのシステム管理要求を常にトリガリングしている場合、仮想マシンモニタは、そのリソース・スケジューリングを適宜調節し、仮想高特権モードがプロセッサを常にSMMにしておくことなく、システムの冷却を可能にするための調節を自動的に提供することを、決定する場合がある。
図3は、例示的実施形態によるシステム管理要求を処理する方法300を示すフロー図である。この方法は、305において、システム管理要求を受信するために、仮想高特権モードのためのトラステッドドメインを、仮想マシンモニタによって管理することができる。トラステッドドメインは、特権ドメイン120であってもよいし、他のドメインであってもよい。システム管理要求は、プロセッサ110をシステム管理モードにし、プロセッサ110のリアルモードにおいて実行されている全ての処理を停止させることができるものであってもよい。310において、システム管理要求がシステム管理モードを開始することは、防止される。システム管理要求は、仮想高特権モード環境140へルーティングされる場合がある。システム管理要求のルーティングは、例えば、vBIOSによってシステム管理要求を仮想高特権モードへ送信すること、システム管理要求をWMIラッパーに詰め込むこと、又は、リモート・プロシージャ・コール(RPC)を行い、若しくはウェブサービスAPIを作成することによってなされる場合がある。315において、システム管理要求は、仮想高特権モード環境において処理されることができる。仮想高特権モード環境は、ゲストドメインにとって使用できない方法でシステム構成を変更するためのハードウェアへのアクセスを有することができる。
図4は、例示的実施形態によるシステム管理要求を処理する方法を示すフロー図である。この方法は、402において、ドメインがシステム管理要求を発行することによって、開始されることができる。ドメインは、例えば、ゲストドメイン130であってもよいし、又は、特権ドメイン120であってもよい。
405において、仮想マシンモニタは、システム管理要求を受信するために、仮想高特権モードのためのトラステッドドメインを管理することができる。仮想高特権モードは、システム管理要求を受信することができ、当該システム管理要求は、VMM115又は特権ドメイン120のような他の構成要素によってルーティングされたものである場合がある。システム管理要求は、プロセッサをシステム管理モードにし、プロセッサ110のリアルモードにおいて実行されている全ての処理を停止させるものであってもよい。410において、システム管理要求がシステム管理モードを開始することは、防止される。システム管理要求が仮想高特権モード以外の何かによって受信された場合、システム管理要求は、仮想高特権モード環境140へルーティングされる場合がある。システム管理要求のルーティングは、例えば、vBIOSがシステム管理要求を仮想高特権モードへ送信すること、システム管理要求をWMIラッパーに詰め込むこと、又は、リモート・プロシージャ・コール(RPC)を行うことによってなされる場合がある。415において、システム管理要求は、仮想高特権モード環境において処理されることができる。仮想高特権モード環境は、ゲストドメインにとって使用できない方法でシステム構成を変更するためのハードウェアへのアクセスを有することができる。
図5は、コンピュータ読取可能媒体515〜516の例示的実施形態によるコンピュータシステム500を示すブロック図である。コンピュータ読取可能媒体515〜516は、プロセッサ505により実行されたときに、コンピューティングシステムに仮想マシンモニタを実行させるコードを含むことができる。コードはさらに、仮想高特権モードにシステム管理要求を受信させることができる。システム管理要求がプロセッサのシステム管理モードを開始することは、防止される。コードは、システム管理要求を仮想高特権モード環境において処理させることができる。
このコードは、ゲストドメインにより変更することができないシステム構成を、仮想高特権モードに変更させることができる。プロセッサのリアルモードにあるドメインにとって使用可能ではないシステム構成を実施するために、ゲストドメイン又は特権ドメインのようなドメインにより、システム管理要求を生成することができる。
他の図に示したもののような種々のモジュールは、1又は複数のプロセッサ上で実行することが可能な機械読取可能命令として実施されてもよい。プロセッサには、マイクロプロセッサ、マイクロコントローラ、プロセッサモジュール若しくはサブシステム、プログラマブル集積回路、プログラマブルゲートアレイ、又は他の制御若しくは計算装置が含まれる得る。
機械読取可能命令は、機械読取可能又はコンピュータ読取可能な記憶媒体に記憶することができ、当該記憶媒体は、1又は複数のコンピュータ読取可能又は機械読取可能な記憶媒体として実施されてもよい。記憶媒体には、ダイナミック若しくはスタティック・ランダム・アクセス・メモリ(DRAM若しくはSRAM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROM)、電気的に消去可能なプログラマブル・リードオンリー・メモリ(EEPROM)及びフラッシュメモリのような半導体メモリデバイスを含む種々の形のメモリ;固定ディスク、フロッピー(登録商標)ディスク及びリムーバブルディスクのような磁気ディスク;テープのような他の磁気媒体;コンパクトディスク(CD(登録商標))又はデジタルビデオディスク(DVD(登録商標))のような光学媒体;又は他のタイプの記憶装置が含まれ得る。なお、上で述べた命令は、1つのコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体に設けられてもよいし、あるいは、複数のノードを有することがある大型システムにおいて分散された複数のコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体に設けられてもよい。そのようなコンピュータ読取可能な記憶媒体若しくは機械読取可能な記憶媒体又は媒体(複数可)は、物品(又は製品)の一部とみなされる。物品又は製品とは、任意の製造された単一の構成要素、又は複数の構成要素を意味することがある。記憶媒体又は媒体は、機械読取可能な命令を実行する機械に配置されてもよいし、又は、リモートサイトに配置されてもよく、当該リモートサイトからネットワークを介して機械読取可能命令をダウンロードし、実行してもよい。
上記の説明において、本明細書に開示した事項を理解してもらうために、多数の詳細を説明した。しかしながら、実施形態は、それらの詳細の一部又は全部がなくても、実施される場合がある。実施形態によっては、上で説明した詳細からの修正又は変更を含む場合がある。添付の特許請求の範囲は、そのような修正及び変更をカバーすることを意図している。

Claims (13)

  1. コンピューティングシステムであって、
    プロセッサと、
    物理基本入出力システムと、
    特権ドメインを管理するための仮想マシンモニタと、
    ステム管理要求を処理するための、前記特権ドメインにおける仮想高特権モードと
    を含み、
    前記仮想マシンモニタは、前記特権ドメイン以外の要求元から前記物理基本入出力システムへのシステム管理要求を捕捉し、当該システム管理要求を前記仮想高特権モードへルーティングするためのものであり、前記仮想高特権モードは、前記プロセッサをシステム管理モードに入らせることなく前記システム管理要求を処理し、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止する、コンピューティングシステム。
  2. 前記システム管理要求は、システム管理割り込み、及びシステム管理命令のうちの少なくとも一方を含む、請求項1に記載のコンピューティングシステム。
  3. 前記特権ドメインは、ドメイン0である、請求項1又は請求項2に記載のコンピューティングシステム。
  4. 前記システム管理要求は、仮想基本入出力システム(vBIOS)によって受信され、前記仮想高特権モードへ転送されるか、Winodows Management Instrumentation(WMI)ラッパーに入れて前記仮想高特権モードに与えられるか、及び、リモート・プロシージャ・コール(RPC)によって前記仮想高特権モードに与えられるかのうちの何れか1つである、請求項1〜3の何れか一項に記載のコンピューティングシステム。
  5. 前記仮想高特権モードは、システム構成変更を実施するためのものである、請求項1〜4の何れか一項に記載のコンピューティングシステム。
  6. プロセッサを有するコンピューティングシステムにおいてシステム管理要求を処理する方法であって、
    仮想マシンモニタにより、特権ドメインを管理
    前記仮想マシンモニタにより、前記特権ドメイン以外の要求元から物理基本入出力システムへのシステム管理要求を捕捉し、
    前記仮想マシンモニタにより、前記システム管理要求を、前記特権ドメインにおける前記仮想高特権モードへルーティングし、
    前記高特権モードにより、前記システム管理要求を受信
    記プロセッサをシステム管理モードに入らせることなく、前記仮想高特権モードにより前記システム管理要求を処理し、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止すること
    を含む方法。
  7. 前記仮想高特権モードにより、システム構成を変更することをさらに含む、請求項6に記載の方法。
  8. 前記仮想高特権モードは、ゲストドメインにとって使用できない前記システム構成を変更する、請求項7に記載の方法。
  9. 前記特権ドメインは、ドメイン0である、請求項6〜8の何れか一項に記載の方法。
  10. プロセッサによって実行されたときにコンピューティングシステムに、
    仮想マシンモニタを用いて特権ドメインを管理させ、
    前記仮想マシンモニタにより、前記特権ドメイン以外の要求元から物理基本入出力システムへのシステム管理要求を捕捉させ、
    前記仮想マシンモニタにより、前記システム管理要求を、前記特権ドメインにおける前記仮想高特権モードへルーティングさせ、
    前記仮想高特権モードにより、前記システム管理要求を受信させ、
    記プロセッサを前記システム管理モードに入らせることなく、前記仮想高特権モードにより前記システム管理要求を処理させ、それによって、前記仮想高特権モードが前記システム管理要求を処理している間に、前記プロセッサが、当該コンピューティングシステムの通常の動作のための命令及びデータの処理を停止することを防止するコード
    を含むコンピュータ読取可能媒体。
  11. 実行されたときに前記コンピューティングシステムに、
    前記仮想高特権モードにより、ゲストドメインにとって使用できないシステム構成を変更させるコード
    をさらに含む、請求項10に記載のコンピュータ読取可能媒体。
  12. 実行されたときに前記コンピューティングシステムに、
    仮想基本入出力システム(vBIOS)により、前記システム管理要求を受信させ、
    前記システム管理要求を前記仮想基本入出力システム(vBIOS)から前記仮想高特権モードへ転送させるコード
    をさらに含む、請求項10又は請求項11に記載のコンピュータ読取可能媒体。
  13. 前記特権ドメインは、ドメイン0である、請求項10〜12の何れか一項に記載のコンピュータ読取可能媒体。
JP2014528336A 2011-08-30 2011-08-30 システム管理要求のための仮想高特権モード Expired - Fee Related JP6063941B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/049677 WO2013032442A1 (en) 2011-08-30 2011-08-30 Virtual high privilege mode for a system management request

Publications (2)

Publication Number Publication Date
JP2014527674A JP2014527674A (ja) 2014-10-16
JP6063941B2 true JP6063941B2 (ja) 2017-01-18

Family

ID=47756679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014528336A Expired - Fee Related JP6063941B2 (ja) 2011-08-30 2011-08-30 システム管理要求のための仮想高特権モード

Country Status (8)

Country Link
US (1) US10303501B2 (ja)
JP (1) JP6063941B2 (ja)
CN (1) CN103748552A (ja)
BR (1) BR112014003390A2 (ja)
DE (1) DE112011105577T5 (ja)
GB (1) GB2507226B (ja)
TW (1) TWI616818B (ja)
WO (1) WO2013032442A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN2014DN03053A (ja) * 2011-10-21 2015-05-08 Hewlett Packard Development Co
TWI533220B (zh) * 2012-03-19 2016-05-11 緯創資通股份有限公司 虛擬系統管理模式裝置以及其控制方法
TW201437803A (zh) * 2013-03-21 2014-10-01 Hon Hai Prec Ind Co Ltd 計算設備硬體功能擴充系統及方法
CN103310149B (zh) * 2013-05-27 2018-06-26 华为终端(东莞)有限公司 系统功能调用的方法、装置及终端
CN105683862B (zh) * 2013-11-29 2019-11-05 英特尔公司 计算设备中的功率管理
US9575791B2 (en) * 2014-02-12 2017-02-21 Dell Products, Lp Unified extensible firmware interface system management mode initialization protections with system management interrupt transfer monitor sandboxing
CN104035409B (zh) * 2014-06-04 2017-02-01 国家电网公司 一种面向建筑楼宇能源优化运行的需求响应系统
US10691440B2 (en) 2014-06-06 2020-06-23 Hewlett Packard Enterprise Development Lp Action execution based on management controller action request
US20160019555A1 (en) 2014-07-15 2016-01-21 Boles Thomas Automated system for rating employee screening practices and corporate management
CN104598842B (zh) * 2015-02-03 2018-05-01 中国电子科技集团公司第三十研究所 一种虚拟机监控器信任域分割方法
GB2539435B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
BR112018010584A2 (pt) * 2016-01-26 2018-11-27 Hewlett Packard Development Co arquitetura de privilégio de modo de gerenciamento de sistema
JP7393209B2 (ja) * 2017-01-26 2023-12-06 センパー フォーティス ソリューションズ リミテッド ライアビリティ カンパニー マルチテナントクラウドにおける複数のシングルレベルセキュリティ(msls)
EP3413532A1 (en) 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Monitoring control-flow integrity
CN108334351A (zh) * 2017-08-31 2018-07-27 郑州云海信息技术有限公司 一种修改启动顺序的方法及装置
US11080403B1 (en) * 2018-12-19 2021-08-03 Hewlett-Packard Development Company, L.P. Securely constructing a trusted virtual environment
CN110096888B (zh) * 2019-04-18 2021-02-09 苏州浪潮智能科技有限公司 一种加快验证及分析smm安全隐患的方法及系统
US11917067B2 (en) * 2019-12-28 2024-02-27 Intel Corporation Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data
US11366710B1 (en) * 2021-02-23 2022-06-21 Quanta Computer Inc. Methods and systems for reducing downtime from system management mode in a computer system

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230052A (en) 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
US5574920A (en) 1994-10-25 1996-11-12 Microsoft Corporation Method for controlling power down of a hard disk drive in a computer
US6799316B1 (en) * 2000-03-23 2004-09-28 International Business Machines Corporation Virtualizing hardware with system management interrupts
US6766398B2 (en) * 2001-04-17 2004-07-20 International Business Machines Corporation Method for processing PCI interrupt signals in a logically partitioned guest operating system
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
EP1530339B1 (en) 2003-11-07 2008-03-05 Harman Becker Automotive Systems GmbH Method and apparatuses for access control to encrypted data services for a vehicle entertainment and information processing device
US20050114687A1 (en) * 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US7552419B2 (en) * 2004-03-18 2009-06-23 Intel Corporation Sharing trusted hardware across multiple operational environments
US7421533B2 (en) 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US20060005184A1 (en) 2004-06-30 2006-01-05 Vijay Tewari Virtualizing management hardware for a virtual machine
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7937701B2 (en) 2005-06-30 2011-05-03 Intel Corporation ACPI communication between virtual machine monitor and policy virtual machine via mailbox
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
JP4542514B2 (ja) 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
US7840398B2 (en) 2006-03-28 2010-11-23 Intel Corporation Techniques for unified management communication for virtualization systems
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US7610481B2 (en) * 2006-04-19 2009-10-27 Intel Corporation Method and apparatus to support independent systems in partitions of a processing system
US7689817B2 (en) * 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware
US9280659B2 (en) * 2006-12-29 2016-03-08 Intel Corporation Methods and apparatus for remeasuring a virtual machine monitor
US8380987B2 (en) 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US20090119748A1 (en) * 2007-08-30 2009-05-07 Jiewen Yao System management mode isolation in firmware
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
US8522236B2 (en) * 2007-12-28 2013-08-27 Intel Corporation Method and system for establishing a robust virtualized environment
US8473945B2 (en) * 2007-12-31 2013-06-25 Intel Corporation Enabling system management mode in a secure system
JP2009176213A (ja) 2008-01-28 2009-08-06 Hitachi Software Eng Co Ltd ネットワークブート方式
JP2009230433A (ja) 2008-03-21 2009-10-08 Toshiba Corp ネットワークブート装置、プログラム及び方法
US8321931B2 (en) * 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
US8843742B2 (en) 2008-08-26 2014-09-23 Hewlett-Packard Company Hypervisor security using SMM
CN101425027B (zh) 2008-11-20 2013-03-20 上海交通大学 基于tpm的虚拟机安全协议方法
CN101488173B (zh) 2009-01-15 2010-10-27 北京交通大学 支持零宕机的可信虚拟域启动文件完整性度量的方法
US8166288B2 (en) * 2009-01-30 2012-04-24 Hewlett-Packard Development Company, L.P. Managing requests of operating systems executing in virtual machines
US8127124B2 (en) * 2009-03-19 2012-02-28 Hewlett-Packard Development Company, L.P. Remote configuration of computing platforms
JP2011076505A (ja) 2009-09-30 2011-04-14 Brother Industries Ltd 情報処理システム及び情報処理方法
JP5458899B2 (ja) 2010-01-12 2014-04-02 富士通株式会社 仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システム
US8977842B1 (en) 2010-02-05 2015-03-10 Symantec Corporation Hypervisor enabled secure inter-container communications
US8429276B1 (en) 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
US8909785B2 (en) * 2011-08-08 2014-12-09 International Business Machines Corporation Smart cloud workload balancer
WO2013032495A1 (en) 2011-08-30 2013-03-07 Hewlett-Packard Development Company , L.P. Communication with a virtual trusted runtime bios

Also Published As

Publication number Publication date
TWI616818B (zh) 2018-03-01
BR112014003390A2 (pt) 2017-02-21
TW201319946A (zh) 2013-05-16
CN103748552A (zh) 2014-04-23
GB2507226B (en) 2020-04-22
US10303501B2 (en) 2019-05-28
GB201401986D0 (en) 2014-03-19
US20150040130A1 (en) 2015-02-05
WO2013032442A1 (en) 2013-03-07
JP2014527674A (ja) 2014-10-16
GB2507226A (en) 2014-04-23
DE112011105577T5 (de) 2014-05-08

Similar Documents

Publication Publication Date Title
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
US9465652B1 (en) Hardware-based mechanisms for updating computer systems
US9753742B2 (en) Web-based interface to access a function of a basic input/output system
JP5249450B2 (ja) 保護エージェント及び特権モード
US8321931B2 (en) Method and apparatus for sequential hypervisor invocation
US10146940B2 (en) Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems
US20070005919A1 (en) Computer system protection based on virtualization
JP5885851B2 (ja) 特権ドメインでの基本入出力システム(bios)機能の提供
KR101920980B1 (ko) 멀티-운영 체제 디바이스들에 대한 액세스 격리
KR20180099682A (ko) 가상 머신 감사를 위한 시스템 및 방법들
US10430589B2 (en) Dynamic firmware module loader in a trusted execution environment container
Nguyen et al. Delusional boot: securing hypervisors without massive re-engineering
US11442770B2 (en) Formally verified trusted computing base with active security and policy enforcement
JP2016173821A (ja) コンピュータシステム内における複数のハイパーバイザーの共同運用を容易にするためのシステムおよび方法
Schwarz et al. Affordable Separation on Embedded Platforms: Soft Reboot Enabled Virtualization on a Dual Mode System
Chen et al. DScope: To Reliably and Securely Acquire Live Data from Kernel-Compromised ARM Devices

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20151104

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20151127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160923

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6063941

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees