メモリ暗号化による Android端末の盗難対策

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

ファイルキャッシュを考慮したディスク監視のオフロード
Chapter11-4(前半) 加藤健.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
Android端末の盗難対策のためのページキャッシュ暗号化
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
Android端末のメモリ暗号化 によるコールドブート攻撃対策
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
VMマイグレーションを可能にするIDSオフロード機構
IaaS型クラウドにおける キーボード入力情報漏洩の防止
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
Flyingware : バイトコード変換による 安全なエージェントの実行
型付きアセンブリ言語を用いた安全なカーネル拡張
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
SAccesor:デスクトップPCのための安全なファイルアクセス制御システム
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
分散IDSの実行環境の分離 による安全性の向上
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
インターネットにおける真に プライベートなネットワークの構築
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
通信機構合わせた最適化をおこなう並列化ンパイラ
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
Intel SGXを利用する 巨大なアプリケーションの マイグレーション機構
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを利用するコンテナの マイグレーション機構
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
仮想環境を用いた 侵入検知システムの安全な構成法
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
仮想化システムのソフトウェア若化のための軽量なVMマイグレーション
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

メモリ暗号化による Android端末の盗難対策 機械情報工学科 光来研究室 学部4年 10237059 福田直人

Android端末の普及 盗難にあうリスクが高い Android端末が急速に普及 従来の携帯電話より多くの情報を保持 より重要な情報も格納 ノートPC より小型軽量 近年、Android端末が急速に普及 スマートフォンの世界シェア率の図 Androidのシェア率を見ると2010年頃から急速に普及 多くの情報を保持 例:メールアプリの文章や、ウェブブラウザの履歴 より重要な情報も格納 例:連絡先、クレジットカード情報 一方で、Android端末はノートPCよりも小型軽量で、 持ち歩く事が多いので紛失や、盗難にあうリスクが高い

フルディスク暗号化 Androidはフルディスク暗号化の機能を提供 ディスクのパーティション全体を暗号化することでデータを保護 端末を盗まれてもPINが分からなければディスク上のデータは解読できない PINから生成された鍵で暗号化 そこで盗難対策として、Androidではフルディスク暗号化を提供 OSを起動するには、 PINと言われる暗証番号を入力してパーティションを復号する必要があります 例えば、Android端末が盗まれて、SDカードが抜き取られたとします SDカードがフルディスク暗号化されていれば、 抜き取られて攻撃者の端末で使用されても、 PINが分からなければSDカードのデータは復号できないので、 データが漏洩することはありせん。 また、盗まれた端末のOSを入れ替えても、 PINが分からなければ、データは復号できないので 、情報が漏洩する事はありません 攻撃者の端末 フルディスク暗号化 盗まれた端末 盗まれた端末でOSを入れ替え

メモリ上のキャッシュ Androidではディスク上のデータの一部をメモリ上にキャッシュとして保持 ファイルアクセスの高速化のため 盗難時にキャッシュから情報が漏洩する危険は考えられてこなかった メモリ上のデータを盗み見るのは難しかった Androidはディスクのデータについては暗号化できますが、メモリ上のデータは暗号化されていません Androidでは、ファイルアクセスの高速化のために、 ディスク上のデータの一部をメモリ上のキャッシュに保持してます メモリ上のキャッシュが盗み見られると、 ディスク上のデータの一部も盗み見られてしまいますが、 メモリ上のデータを盗み見るのは図にあるように、 今までは特別な機器を使用して、信号を解析しないといけませんでした。 機器は高価で1000万円ほどするものもありました。 以上のように、以前はメモリ上のデータを盗み見るのは難しかったので、 盗難時にキャッシュから情報が漏洩する危険は考えられてきませんでした ーーーーーーーーーーーーーーーーーーーーーーーーー 基盤にさして信号を解読しないといけなかった(ICE 1000万) メモリのアクセス速度も速いから難しい OS キャッシュ 低速 高速 ディスク

コールドブート攻撃 端末の再起動後にメモリ上に残されたデータを盗み見る攻撃 メモリ上のキャッシュ経由でディスク上のデータが漏洩 メモリを冷やして再起動することでデータを保持 Android端末でも報告 [Muller+ ACNS’13] メモリ上のキャッシュ経由でディスク上のデータが漏洩 しかし近年、比較的容易にメモリから情報を盗み出せるコールドブート攻撃が報告されています この攻撃は図のように、Android端末でも報告されています Androidでは、コールドブート攻撃用のリカバリイメージをインストールして起動します コールドブート攻撃でメモリ上のキャッシュが盗み見られてしまいますが、 キャッシュの中には、ひとつ前のスライドで述べたように、ディスクのデータが、ファイルアクセスの高速化の為に保持してあります。 そのため、フルディスク暗号化を行っていても、 コールドブート攻撃でメモリ上のキャッシュ経由でディスクのデータも漏洩してしまいます

Cache-Crypt OSがメモリ上のページキャッシュを暗号化 ページキャッシュはファイルデータのキャッシュ ディスク上のファイルをメモリに読み込む際に暗号化 アプリがアクセスする時だけ復号 この瞬間以外はコールドブート攻撃でも盗み見られない 本研究ではメモリ暗号化による、Android端末の盗難対策を行うシステム、Cache-Crypt を提案します Cache-Cryptでは、OSがメモリ上のページキャッシュを暗号化します ページキャッシュとはメモリ上にある、ファイルデータのキャッシュのことを言います ディスク上のファイルについては、メモリに読み込む際に暗号化します そして、アプリがアクセスする時だけ復号します、 アプリが復号している時以外はコールドブート攻撃をされても、 データは暗号化されているので盗み見られることはありません ディスク上のファイルをメモリに読み込む際に暗号化する所は、このあとのスライドで詳しく説明します OS ファイル ディスク ページキャッシュ 暗号化 アプリ

ファイルの読み込み アプリがOSのreadシステムコールを発行 ページキャッシュ上のデータを復号 復号されたデータをアプリのバッファにコピー キャッシュがなければディスクから読み込む 復号されたデータをアプリのバッファにコピー ページキャッシュ上のデータを再び暗号化 このスライドでは、ディスク上のファイルをメモリに読み込む際に暗号化を行う方法を説明します ページキャッシュ OS アプリ バッファ ディスク read

ファイルへの書き込み アプリがOSのwriteシステムコールを発行 後でOSがデータをディスクに書き戻す ファイルの読み込み処理と同様の手順 アプリのバッファのデータをページキャッシュにコピー ページキャッシュ上のデータを暗号化 後でOSがデータをディスクに書き戻す ファイルの読み込み処理と同様の手順 このスライドでは、アプリのバッファのデータをメモリに読み込む際に暗号化を行う方法を説明します ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 書き戻す時は、暗号化されているデータをフルディスク暗号化されているディスクに書き込む 復号化なし ページキャッシュ OS アプリ バッファ ディスク write

ファイルのメモリマップ メモリマップはアプリがOSを介さずにページキャッシュに直接アクセスする手段 OSは最初のアクセスだけ検出できる そのページキャッシュを復号したままにする メモリマップを終了したら暗号化 メモリマップで復号したままにする理由は、 暗号化した状態で、ページキャッシュが勝手に読み書きされてしまう ページキャッシュのメモリマップされている部分だけ復号化 ページキャッシュ アプリ バッファ 最初のアクセス OS OSを介さずにアクセス

暗号鍵の保護 メモリ上にページキャッシュを復号する鍵を置くのは危険 コールドブート攻撃で暗号鍵を取り出される CPUの特殊なレジスタに暗号鍵を格納 [Götzfried et al. ‘13] レジスタは端末の起動時に初期化される CPU ページキャッシュ メモリ

実験 Cache-CryptをAndroid OSに実装 Cache-Cryptの有効性を確かめる実験を行った 実験環境 Android 4.4、Linux 3.4.0 Cache-Cryptの有効性を確かめる実験を行った ページキャッシュの暗号化の確認 Cache-Cryptによるオーバヘッドの測定 実験環境 Android エミュレータ Nexus 7 (2013)

Cache-Cryptを実装したAndroid OS 暗号化の確認 エディタアプリで大量の「A」の文字からなるファイルを読み込み、キャッシュさせた Androidエミュレータでメモリをファイルにダンプ 既存のAndroid OSでは大量の「A」の文字を発見 Cache-Cryptでは暗号化された文字しか見つからなかった Cache-Cryptを実装したAndroid OS 単純な暗号化しかしていないので、同じ暗号化された文字がでてくる Cache-Cryptを実装したAndroid OS 既存のAndroid OS

オーバヘッドの測定 Benchmarkアプリを用いてファイルアクセス性能を測定 測定には実機(Nexus 7)を用いた 読み書きともにCache-Cryptを用いることによるオーバヘッドは10%程度 実験に使用した Benchmark アプリ この実験にはBenchmark というアプリを用いてベンチマークを実行し、標準カーネルとCache-Crypt を標準カーネルに実装したものとで比較を行った readとwriteについて比較する グラフの説明してからオーバーヘッドの説明 ファイルの読み書き (MB/s)

関連研究 CryptKeeper [Peterson et al. '10] ZIA [Corner et al. ’02] アクセスしていないプロセスのメモリを暗号化 ページキャッシュを含むOSのメモリは暗号化しない ZIA [Corner et al. ’02] ハードウェアトークンが近くにあればファイルを復号 ハードウェアトークンが一緒に盗まれる危険 Keypad [Geambasu et al.'11] サーバ上の鍵でファイルを復号 ネットワークが使用できない時は復号できない

まとめ メモリ上のページキャッシュを暗号化するCache-Crypt を提案 今後の課題 アプリがアクセスする時だけ復号 コールドブート攻撃による情報漏洩を防ぐ Android OSに実装し、有効性を確認 今後の課題 高度な暗号化の実装とそのオーバヘッドの削減 フルディスク暗号化との連携 高度な暗号化の・・・・説明:高度な暗号化を実装すると、暗号化に時間が掛かるので オーバーヘッドが増大、その削減 フルディスク暗号化との連携の説明をもっと詳しく 書き換えられたメモリ上のデータは、後でディスクに書き戻される メモリ上のデータを書き換えるときに、フルディスク暗号化と同じ暗号化を用いると 復号を行う手間が省けるので、オーバーヘッドも少なくなる