JP4953385B2 - アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 - Google Patents
アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 Download PDFInfo
- Publication number
- JP4953385B2 JP4953385B2 JP2008067629A JP2008067629A JP4953385B2 JP 4953385 B2 JP4953385 B2 JP 4953385B2 JP 2008067629 A JP2008067629 A JP 2008067629A JP 2008067629 A JP2008067629 A JP 2008067629A JP 4953385 B2 JP4953385 B2 JP 4953385B2
- Authority
- JP
- Japan
- Prior art keywords
- directory
- application
- file
- encryption
- plaintext
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
補助記憶装置に格納した情報漏洩防止のためには、下記の特許文献1や非特許文献1のように、補助記憶装置の内容を丸ごと暗号化するディスク暗号もしくはドライブ暗号と呼ばれる技術が広く用いられている。
暗号化することにより、補助記憶装置を物理的に解析され、情報を取り出されることを防ぐことができる。
しかし、組込み機器のCPUは一般的に速度が遅いため、ドライブ暗号技術を適用すると、暗号処理の負荷が高い。暗号処理の負荷を抑えるためには、ドライブ暗号ではなく、漏洩防止したいデータをあるディレクトリに格納し、そのディレクトリにだけ暗号化を施す方式がある(非特許文献2)。
組込み機器では、オープンソースのソフトウェアを使いまわす部分も多く、自社開発部分はシステム全体から見ると一部であるので、ディレクトリ暗号技術との併用は暗号処理の負荷を抑えるために有効である。
それに対してセキュアOSとは、全権を持つ特権を排除し、プロセス毎にドメインと呼ばれるアクセス権限を付与できるようにしたOSである。プロセス毎にどんな権限を持つかという設定はセキュリティポリシファイルというファイルに記載されている。この機能により、プロセスが必要なリソースにだけアクセスすることがOSによって保証され、プロセスにセキュリティホールがあり、攻撃者にプロセスが乗っ取られたとしても、その被害を最小限にすることができる。
セキュアOSのうち、ラベルベースのセキュアOSでは、ファイルやネットワークなどのリソースをラベルで識別する。すなわち、ファイルやネットワークにラベルという識別子を付与し、ドメインがどんなラベルにアクセスできるかを制御する。
セキュリティポリシの設定としては、ラベルとリソースの対応付けおよびドメインがどんなラベルにアクセスできるかを設定する必要がある。
ラベルベースのセキュアOSとしては、下記の非特許文献3に開示されたものがある。
ディレクトリ暗号化を適用する場合、知的財産を保護したいアプリケーションおよびその構成ファイルを暗号化されるディレクトリに格納する。物理的に補助記憶装置を解析しても、これらの中身を知られることはない。
例えばバッファオーバーフロー攻撃等がある。論理的な攻撃をされると、暗号化されたディレクトリから、通常の(平文の)ディレクトリにファイルをコピーされてしまう。
ディレクトリ暗号技術は、ディレクトリ内のみ暗号化するだけであり、ディレクトリの外にデータが出てしまうとデータが復号化される。したがって、通常の(平文の)ディレクトリにコピーされたファイルは平文の状態である。こうなると、物理的に平文ディレクトリを解析することにより、知的財産の保護が必要なデータを奪取されてしまう。
前記機密アプリケーションの実行ファイル及び構成ファイルを前記記憶装置の暗号ディレクトリに暗号化して格納する第1の手段と、情報漏洩保護対象としない一般アプリケーションの実行ファイル及び構成ファイルを暗号化されていない平文ディレクトリに格納する第2の手段と、前記暗号ディレクトリ内の機密アプリケーションの実行ファイル及び構成ファイルが前記平文ディレクトリに書き込まれないようにするアクセス制御情報が設定された第3の手段を備え、
当該第3の手段には前記暗号ディレクトリ内の機密アプリケーションの実行ファイル及び構成ファイルが前記平文ディレクトリに書き込まれないようにする書き込み禁止のアクセス制御情報を必須条件として設定し、暗号アプリケーションと平文ディレクトリとは読み出し実行可または読み出し実行不可の関係に設定可能に構成されていることを特徴とする。
また、前記一般アプリケーションから機密アプリケーションの起動手段を介して機密アプリケーションを起動することを特徴とする。
物理的な攻撃を受けた場合、機密アプリケーションおよび機密アプリ構成ファイルは、暗号ディレクトリに格納されているため、物理的にメモリを取り出しても解析できない。
論理的な攻撃に対しては、機密アプリケーションに脆弱性があり、攻撃者に任意の操作をされてしまったとしても、機密アプリケーションは、平文ディレクトリへの書き込み権限がないため、平文ディレクトリに、機密アプリケーションおよび機密アプリ構成ファイルがコピーされることはない。同様に、平文アプリケーションに脆弱性があったとしても、暗号ディレクトリへのアクセス権限がないため、暗号ディレクトリ内の機密アプリケーションおよび機密アプリ構成ファイルが平文アプリケーション側へ漏れることはない。論理的な攻撃耐性は、ランチャプログラムによるところが大きい。ランチャプログラムを無くすと、機密アプリケーションが起動される場合は、平文アプリケーションから直接起動されなければならず、平文アプリケーションは、機密アプリケーションへの読み込み権限が必要になる。こうなると、平文アプリケーションに脆弱性があると、機密アプリケーションを平文ディレクトリにコピーできてしまう。
本発明においては、ランチャプログラムによって論理的な攻撃耐性を確実なものとすることができる。
図1は、本発明の実施対象である機器110のハードウェア構成を示すブロック図である。
基本的な情報処理を行うためにCPU(Central Processing Unit)111、RAM(Random Access Memorty)112、TPMチップ113、フラッシュメモリ114を備えている。
TPMチップ113は、Trusted Platform Module(TPM)機能を持つチップであり、暗号演算及び暗号鍵を安全に保管する機能を有している。
フラッシュメモリ114は補助記憶装置である。ファイルシステムおよびソフトウェアはフラッシュメモリ114中に保存されている。
セキュアOS210は、211〜214の手段を備える。
ファイルシステム手段211は、フラッシュメモリ114中にファイルシステムを実現する機能である。この手段により、Windows(登録商標)やLinuxのようなファイル・ディレクトリ構造であり、フラッシュメモリ114中のデータにアクセスできる。
アクセス制御手段212は、プロセスにドメインを、ファイルなどのリソースにラベルを付与し、「ドメインがどんなラベルにどんなパーミッションのアクセスができるか」というアクセス制御を行う。アクセス制御は、プロセスがリソースにアクセスするOSのシステムコール内部のパーミッション・チェックとして行われている。アクセス制御設定は、平文ディレクトリ220のポリシファイル224に格納されている。
Chroot手段213については、図8を参照して後述する。
平文ディレクトリ220および暗号ディレクトリ230は、ファイルシステム手段211で実現されるファイルシステムに存在するディレクトリである。
平文ディレクトリ220は、ファイルの暗号化は行われていない。
暗号ディレクトリ230については、ディレクトリ暗号手段214によって、格納されたファイルが暗号化されている。平文ディレクトリ220の中には、221〜224のようなファイルが格納されている。これらのファイル221〜224は、知的財産の保護が必要ないものである。
ランチャプログラム223は、機密アプリケーション231を実行するために使うアプリケーションの実行ファイルである。詳細は図9を参照して後述する。
ポリシファイル224は、アクセス制御手段212の設定ファイルである。詳細な構成は図3〜図6を参照して後述する。
ポリシファイル224は、ラベル付与設定テーブル311、ドメイン付与設定テーブル312、アクセス制御設定テーブル313から成り立っている。これらのテーブル311〜313の構成は図4,5,6で詳しく述べる。
ラベル付与設定テーブル311では、ファイルにラベルを付与する設定を行う。ファイル名410及びラベル420の列に列挙することで設定を行う。例えば、「/sbin/launch」という名前のファイルが、ランチャプログラムの実行ファイル、/crypt以下のディレクトリ・ファイルが暗号ディレクトリ、それ以外のファイル全てを平文ディレクトリであるとすると、行431〜433のような設定になる。
行431では、「/以下のディレクトリ・ファイル」に、「平文ディレクトリ」を表す「plain_file_t」というラベルを付与している。
行432では、「/sbin/launch」に、ランチャプログラムであることを表す「launch_exec_t」ラベルを付与している。
行433では、/crypt以下のディレクトリ・ファイルに、「暗号ディレクトリ」を表す「crypt_file_t」というラベルを付与している。
エントリポイント510、付与されるドメイン520を設定する。行541は、システム起動時のプロセスに割り当てられるドメインを設定している。システム起動時は、plain_tというドメインが割り当てられる。システム起動時は、平文ディレクトリ内のファイルをまずは実行すると仮定する。
ドメイン付与設定が明示的にされない限り、plain_tで動作するプロセスの子プロセスにも、plain_tが割り当てられる。
行542は、「launch_exec_tラベルの付与された実行ファイル(本実施形態ではランチャプログラム/sbin/launch)が実行されると、実行ファイルから起動するプロセスのドメインは、launch_tになる」という設定である。
行543は、「crypt_file_tラベルの付与された実行ファイル(本実施形態の場合は、暗号ディレクトリ(/crypt以下)に格納された実行ファイル)が実行されると、実行ファイルから起動するプロセスのドメインは、crypt_tになる」という設定である。
ここでは、「ドメイン610が、どんなラベル620を付与されたリソースに、どんな操作630ができるか」を設定する。ドメインは、ここで許可されたアクセス以外は拒否される。
行641,642は、plain_tのアクセス許可設定である。plain_tは、plain_file_t(平文ディレクトリを表す)に読み書き実行アクセスが許可され、launch_exec_t(ランチャプログラムの実行ファイルを表す)の読み実行アクセスができる。
行643は、launch_tドメインのアクセス許可設定である。launch_tは、crypt_file_t(暗号ディレクトリを表す)の読み実行ができる。
行644,645は、crypt_tドメインのアクセス許可設定である。plain_file_tに読み込みアクセス、crypt_file_tに読み書きアクセスが許可されている。
まず、システム起動時にTPM113が暗号鍵240を復号する(ステップ710)。
次に、暗号ディレクトリ230をマウントする(ステップ720)。
次に、その後の暗号ディレクトリ230へのファイル読み書き要求をフックし、暗号鍵240を使って暗号・復号処理を行う(ステップ730)。
まず、chroot機能は、OSのシステムコールもしくはコマンドとして実装されている。ディレクトリ名を引数として実行される。例えば、アプリケーションXが「chroot /crypt」と実行する(ステップ810)。
次に、ステップ810以降、アプリケーションXにとって、/cryptが、ルートディレクトリとして扱われる(ステップ820)。つまり、Xが/crypt/fooというファイルにアクセスするためには、/fooと指定してアクセスすればよい。
ランチャプログラムの実行ファイル名を/sbin/launchとすると、ランチャプログラム223を実行する場合は、機密アプリケーション名を引数として実行する(ステップ910)。例えば、機密アプリケーション名が「httpd」である場合、「/sbin/launch httpd」として実行する。
次に、chroot処理を暗号ディレクトリ230のルートを引数として実行する(ステップ920)。本例では、chroot /cryptとして実行する。
次に、ステップ910の内容に応じ、暗号ディレクトリ230内のアプリケーションを起動する。「/sbin/launch httpd」とした場合は、/cryptディレクトリ内の/crypt/sbin/httpdというファイルを実行する(ステップ930)。
まず、電源を投入し、カーネルがロードされ、システムが起動する(ステップ1010)。システム起動時は、何らかの平文アプリケーションが起動する。例えばLinuxならば、initプログラムである。暗号ディレクトリ230のマウント処理も、ステップ710,720の過程で行われる。本実施形態の場合は、平文アプリケーションのドメインは「plain_t」となる(図5)。
ランチャプログラム223は、launch_tドメインで動作し、図9の処理を行う(ステップ1030)。
ランチャプログラム223は、機密アプリケーション231を起動する(ステップ1040)。図5の設定例によれば、機密アプリケーションのドメインは、crypt_tドメインである。
また、ランチャプログラム223は、1120のように、launch_tというドメインで動作し、暗号ディレクトリ230の読出し実行が許可されている。
機密アプリケーション231は、1130のように、crypt_tドメインで動作し、平文ディレクトリ220への読出しアクセス、暗号ディレクトリ230への読み書きアクセスが可能となっている。
これによれば、平文アプリケーション221からは暗号ディレクトリ220の情報は取り出せず、機密アプリケーション231から平文ディレクトリ220へ暗号ディレクトリ230の情報が流出することはなくなる。
すなわち、平文アプリケーション221と平文ディレクトリ220の関係は、図11においては「読み書き実行可」としているが、図12に示すように、「読み書き実行可」または「読出しのみ実行可」としてもよい。
暗号アプリケーション231と暗号ディレクトリ230の関係は、図11においては「読み書き実行可」としているが、図12に示すように、「読み書き実行可」または「読出しのみ実行可」としてもよい。
また、暗号アプリケーション231と平文ディレクトリ220の関係は、図11においては「読出し実行可」としたが、図12に示すように、「書込み禁止・読出し実行可」または「書込み禁止・読出し実行不可」に設定してもよい。
要するに、暗号アプリケーション231から平文ディレクトリ220に対してはデータの書込みが不可能な関係に設定されていることが必須となっていればよい。
すなわち、物理的な攻撃については、機密アプリケーション231および機密アプリ構成ファイル232は、暗号ディレクトリ230に格納されているため、物理的にフラッシュメモリ114を取り出しても解析できない。
一方、論理的な攻撃については、機密アプリケーション231に脆弱性があり、攻撃者に任意の操作をされてしまったとしても、機密アプリケーション231は、平文ディレクトリ220への書き込み権限がないため、平文ディレクトリ220に、機密アプリケーション231および機密アプリ構成ファイル232がコピーされることはない。
同様に、平文アプリケーション221に脆弱性があったとしても、暗号ディレクトリ230へのアクセス権限がないため、暗号ディレクトリ内の情報は漏れない。論理的な攻撃耐性は、ランチャプログラム223によるところが大きい。ランチャプログラムを無くすと、機密アプリケーション231が起動される場合は、平文アプリケーション221から直接起動されなければならず、平文アプリケーション221は、機密アプリケーション231への読み込み権限が必要になる。こうなると、平文アプリケーション221に脆弱性があると、機密アプリケーション231を平文ディレクトリ220にコピーできてしまう。従って、ランチャプログラム223によって論理的な攻撃耐性が強固なものになる。
210 セキュアOS
212 アクセス制御手段
214 ディレクトリ暗号手段
220 平文ディレクトリ
221 平文アプリケーション
223 ランチャプログラム
224 ポリシファイル
230 暗号ディレクトリ
231 機密アプリケーション
232 機密アプリ構成ファイル
240 暗号鍵
Claims (2)
- 情報漏洩保護対象となる機密アプリケーションの実行ファイル及び構成ファイルを格納した記憶手段を備えた装置に実装される機密アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置であって、
前記機密アプリケーションの実行ファイル及び構成ファイルを前記記憶装置の暗号ディレクトリに暗号化して格納する第1の手段と、情報漏洩保護対象としない一般アプリケーションの実行ファイル及び構成ファイルを暗号化されていない平文ディレクトリに格納する第2の手段と、前記暗号ディレクトリ内の機密アプリケーションの実行ファイル及び構成ファイルが前記平文ディレクトリに書き込まれないようにするアクセス制御情報が設定された第3の手段を備え、
当該第3の手段には前記暗号ディレクトリ内の機密アプリケーションの実行ファイル及び構成ファイルが前記平文ディレクトリに書き込まれないようにする書き込み禁止のアクセス制御情報を必須条件として設定し、暗号アプリケーションと平文ディレクトリとは読み出し実行可または読み出し実行不可の関係に設定可能に構成されていることを特徴とする機密アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置。 - 前記一般アプリケーションから機密アプリケーションの起動手段を介して機密アプリケーションを起動することを特徴とする請求項1に記載の機密アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008067629A JP4953385B2 (ja) | 2008-03-17 | 2008-03-17 | アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008067629A JP4953385B2 (ja) | 2008-03-17 | 2008-03-17 | アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223629A JP2009223629A (ja) | 2009-10-01 |
JP4953385B2 true JP4953385B2 (ja) | 2012-06-13 |
Family
ID=41240330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008067629A Expired - Fee Related JP4953385B2 (ja) | 2008-03-17 | 2008-03-17 | アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4953385B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7415623B2 (ja) | 2020-02-05 | 2024-01-17 | セイコーエプソン株式会社 | 電子機器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3927376B2 (ja) * | 2001-03-27 | 2007-06-06 | 日立ソフトウエアエンジニアリング株式会社 | データ持ち出し禁止用プログラム |
JP2006079223A (ja) * | 2004-09-08 | 2006-03-23 | Nec Corp | アプリケーションプログラム管理装置及びそれに用いる管理方法並びにそのプログラム |
JP4501156B2 (ja) * | 2004-10-28 | 2010-07-14 | 日本電気株式会社 | 機密モードに応じたアクセスフォルダ切り替え方法、プログラム、及びコンピュータシステム |
US7962746B2 (en) * | 2005-06-01 | 2011-06-14 | Panasonic Corporation | Computer system and program creating device |
-
2008
- 2008-03-17 JP JP2008067629A patent/JP4953385B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009223629A (ja) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922441B2 (en) | Device and method for data security with a trusted execution environment | |
US11416605B2 (en) | Trusted execution environment instances licenses management | |
US9811479B2 (en) | Cryptographic pointer address encoding | |
Strackx et al. | Efficient isolation of trusted subsystems in embedded systems | |
EP2913956B1 (en) | Management control method and device for virtual machines | |
US7694121B2 (en) | System and method for protected operating system boot using state validation | |
WO2019104988A1 (zh) | Plc的安全处理单元及其总线仲裁方法 | |
US9594915B2 (en) | Information processing apparatus | |
KR20030082485A (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색 | |
KR20060108710A (ko) | 신뢰성 있는 이동 플랫폼 구조 | |
Richter et al. | Isolating operating system components with Intel SGX | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
US11704442B2 (en) | Instance handling of a trusted execution environment | |
Zaidenberg | Hardware rooted security in industry 4.0 systems | |
CN110750791B (zh) | 基于内存加密保障可信执行环境抗物理攻击的方法及系统 | |
Mofrad et al. | Leveraging Intel SGX to create a nondisclosure cryptographic library | |
Huber et al. | Protecting suspended devices from memory attacks | |
JP4953385B2 (ja) | アプリケーションの実行ファイル及び構成ファイルの漏洩防止装置 | |
Bove | Secure Services for Standard RISC-V Architectures | |
US11841970B1 (en) | Systems and methods for preventing information leakage | |
CN115982699A (zh) | 基于安全内存的恶意攻击防御方法、装置、设备及介质 | |
JP2023065323A (ja) | コンピュータに実装された方法、システム及びコンピュータプログラム | |
WO2022006353A1 (en) | Secure key storage systems methods and devices | |
Halsey et al. | Maximizing Security and Productivity | |
Sadeghi et al. | Design and implementation of a secure linux device encryption architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100714 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120220 |
|
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: 20120308 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120309 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150323 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |