メモリ 参照パタンを鍵情報とする セキュア・プロセッ

メモリ参照パタンを鍵情報とする
セキュア・プロセッサ・システムに
関する一考察
福岡大学
岩佐崇史
井上弘士
発表手順
•はじめに
•実行の振舞いを鍵とする動的プログラム認証方式
•基本ブロックサイズの統一
•評価
•考察
•おわりに
はじめに
次世代携帯端末機器(次世代携帯電話、
多機能スマートカード等)は
重要な情報の記憶/処理
コンピュータ・ウイルス(不正プログラム)
による被害の深刻化
検出技術/実行防止技術の確立が不可欠
はじめに
提案手法
実行の振舞いを鍵とする動的プログラム認証方式
鍵情報とする実行の振舞い
鍵ロード命令がある時間間隔で
実行することで生じるメモリ参照パタン
はじめに
問題点:静的な鍵ロード命令の挿入は困難
⇒解決手段:基本ブロックサイズの統一
研究目的
プログラム・コード・サイズ増加率
プログラム実行時間増加率
安全性の度合い
従来のプログラム検出/認証方式
プログラム検出方式
手段
不正プログラムA
不正プログラムB
プログラム
・
・
・
・
・
不正プログラムC
・
・
・
ウイルス定義ファイル
ウイルス定義ファイルによる
パターン・マッチング方式
問題点
未知の不正プログラムは
検出不可能
プログラム認証方式
手段
アプリケーション
発行元
静的なプログラム認証
ダウンロード
実行
鍵(証明書)
プログラム
問題点
システム・ソフトウェアを
システム
改ざんする不正プログラ
ソフトウェア(OS)
ムが存在
プロセッサ
実行中に不正プログラム
が突然暴走
実行の振舞いを鍵情報とする
動的プログラム認証方式
アプリケーション
プログラム
秘密鍵
コンパイラ
秘密鍵
ダウンロード
実行
鍵情報入り
プログラム・コード
鍵検出
ハードウェア
プロセッサ
鍵から「プログラム実行の振舞い」を生成するプログラムを作成
鍵から「プログラム実行の振舞い」を検出するハードウェアを生成
実行の振舞いの決定/制御
何を「実行の振舞い」とするのか?
コンパイラでどのようにして「実行の振舞い」を制御するのか?
鍵情報とする実行の振舞い
何を「実行の振舞い」とするのか?
プログラム実行の振舞い ⇒ メモリ参照パタン
メモリ参照パタンを生成する専用命令
→鍵ロード命令
鍵ロード命令がある時間間隔で実行することで
メモリ参照パタンを生成
実行振舞いの制御方法
コンパイラでどのようにして「実行の振舞い」
を制御するのか?
問題点:コンパイル時の鍵ロード命令挿入は困難
理由
プログラム実行の流れは入力データに依存
各基本ブロックサイズが異なる
解決手段
基本ブロックサイズの統一
制御フローグラフ
基本ブロックサイズの統一
コンパイル時のメモリ参照パタン生成の可能性向上
最も大きな基本ブロックサイズ(Max1)に統一
Nop命令を挿入することでサイズ増加
サイズ増加
鍵ロード命令出現タイミングの制御可能性の向上
欠点:プログラム・コード・サイズ増加
MaxNに基本ブロックサイズを統一
N(>1)番目に大きな基本ブロックサイズ(MaxN)に統一
例:N=2の場合
サイズ増加
コード・サイズ増加の抑制
欠点:サイズを統一しない基本ブロックに鍵未挿入
安全性の低下
評価
評価
プログラム・コード・サイズの増加率
プログラム実行時間の増加率
安全性の度合い(全実行時間における鍵挿入可能な
基本ブロック実行の占める割合)
実験環境
ARM Simplescalar
ARMプロセッサのシミュレータ
-インオーダー実行
ベンチマーク・プログラム
SPECint95(129.compress)
ベンチマーク
プログラム
基本ブロックサイズ統一
( 1≦N≦10 )
サイズ統一
サイズ統一
ベンチマーク
ベンチマーク
サイズ統一
プログラム
プログラム
ベンチマーク
プログラム
Simplescalar
実行
プログラム・コード・サイズ増加率
プログラム・コード・サイズ増加率
6
5
4
3
2
1
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
プログラム実行時間増加率
プログラム実行時間増加率
3.5
3
2.5
2
1.5
1
0.5
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
鍵ロード命令挿入可能な
基本ブロック実行の占める割合(%)
鍵ロード命令挿入可能な
基本ブロック実行の占める割合
100
90
80
70
60
50
40
30
20
10
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
6
3.5
プログラム実行時間増加率
プログラム・コード・サイズ増加率
考察
5
4
3
2
1
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
鍵ロード命令挿入可能な
基本ブロック実行の占める割合(%)
プログラム・コード・サイズ増加率
100
90
80
70
60
50
40
30
20
10
0
3
2.5
2
1.5
1
0.5
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
プログラム実行時間増加率
コード・サイズ増加率
実行時間増加率
トレード・オフ
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
安全性の度合い
安全性の度合い
6
3.5
プログラム実行時間増加率
プログラム・コード・サイズ増加率
考察
5
4
3
2
1
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
鍵ロード命令挿入可能な
基本ブロック実行の占める割合(%)
プログラム・コード・サイズ増加率
100
90
80
70
60
50
40
30
20
10
0
3
2.5
2
1.5
1
0.5
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
プログラム実行時間増加率
安全性重視
Max1に基本ブロックサイズを統一
プログラム・コード・サイズ増加率
プログラム実行時間増加率
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
安全性の度合い
安全性の度合い(%)
5.93
3.43
100
6
3.5
プログラム実行時間増加率
プログラム・コード・サイズ増加率
考察
5
4
3
2
1
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
鍵ロード命令挿入可能な
基本ブロック実行の占める割合(%)
プログラム・コード・サイズ増加率
100
90
80
70
60
50
40
30
20
10
0
3
2.5
2
1.5
1
0.5
0
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
プログラム実行時間増加率
実行時間増加率1.5倍程度
高い安全性の度合い
Max7に基本ブロックサイズを統一
プログラム・コード・サイズ増加率
プログラム実行時間増加率
Max1 Max2 Max3 Max4 Max5 Max6 Max7 Max8 Max9 Max10
統一した基本ブロックサイズ
安全性の度合い
安全性の度合い(%)
2.41
1.62
84.2
おわりに
基本ブロックサイズの統一による実行の振舞い
の制御を検討
基本ブロックサイズ変更時のコード・サイズ増加率、
実行時間増加率、安全性の度合いの評価とトレード・
オフによる考察
今後の課題
プロトタイプの設計と評価