Transcript CPU

Kyushu University
FPGA Implementation of A Secure
Microprocessor
Takafumi Iwasa and Koji Inoue
Fukuoka University
Kyushu University/PREST
Kyushu University
Koji Inoue
Problem!
Computer virus is a serious problem!

Q: Who execute attack codes?


A: Microprocessor does!
Q: Why the microprocessor execute the
malicious code?


A: He is crazy about performance and power,
A: But not for Security!
Koji Inoue
Kyushu University
Microprocessor MUST Consider
Security!
Trusted
Program
Malicious
Program
••••••
Branch Prediction
Pipelining
SuperScalar
ILP
OOO Exe.
Selective Activation
Signal Gating
TLP
Value Prediction
On-chip Cache
MLP
Clock Gating
DVS
Resizing
Drowsy Operation
Koji Inoue
Kyushu University
Disadvantage of Current Approach

Virus Scan

Find Malicious Codes

Trusted
Programs
Virus
B
C
CPU

Allow to execute ONLY
trusted programs
Key Program
X
A
Static Certification
D
Y
Z
A
+
A
OS
CPU
 Doesn’t work for unknown viruses  Software can be corrupted
 No way to protect the computer if
the trusted program is hijacked by
a malicious code
Koji Inoue
Kyushu University
Our Approach

Dynamic Program Certification
Believe not software but hardware!
 Regard execution behavior as the certification key!
 Control the execution behavior by a compiler!
 Monitor the behavior at run time by a HW profiler!
 If the profiler does not see the promised behavior,
current execution should be dangerous!

User
Common
Secret Key
Exe. Behavior
As the Key!
HW Synthesis
セキュア・プロファイラ合成
Application
Program
Provider
Secure Compiler
セキュア・プロファイラ
鍵挿入済み
code
Secure
Profiler ダウンロード Object
(再構成可能ハードウェア)
プログラム・コード
Microprocessor
マイクロプロセッサ
Exe. Behavior
As the Key!
Koji Inoue
Kyushu University
An Implementation Example
Key Information
Address K is always accessed in every N instructions!
Trusted
Program
Profiler
end
N Instructions
Attack
Code
Profiler
Kyushu University
Koji Inoue
Evaluation and FPGA Prototyping



StrongARM Processor w/ Profiler
Designed by HDL for prototyping
Simulation using an extended simplescalar
Norm. Execution Time
3
StrongARM Model
•In-Order execution
•Branch Pred. (nottaken)
2.5
2
1.5
1
0.5
0
25
20
15
10
5
Standardized Basic-Block Size
Kyushu University
Back-Up Slides
Kyushu University
実行振舞い制御と検出
基本
ブロック

分岐命令への対応


投機実行への対応(分岐予測)



基本ブロック・サイズの統一
鍵検出ハードウェアで対応
ロールバックに伴う無効化命令数を考慮
アウト・オブ・オーダ実行への対応

コミット時に鍵命令を検出
Koji Inoue
鍵となる
メモリアクセス命令
Koji Inoue
Kyushu University
性能/コスト・オーバヘッド
XScale Model
•OOO execution
•Branch Pred. (bimod)
Norm. Execution Time
3

6
5
4
3
2
0
2
1.5
1
0.5
0

25
20
15
10
5
Basic-Block Size
30
25
20
15
10
Basic-Block Size
5
基本ブロック・サイズ統一に伴うNop
命令の挿入


2.5
1
コードサイズの増加
実行時間の増加
未認定プログラム実行の動的検出に
関する動作は確認
3
Norm. Execution Time
Normalized Code size
7
StrongARM Model
•In-Order execution
•Branch Pred. (nottaken)
2.5
2
1.5
1
0.5
0
25
20
15
10
Basic-Block Size
5
Kyushu University
Koji Inoue
問題点と課題

性能オーバヘッドの低減



安全性に関する評価



分岐予測精度が高いほどオーバヘッドが大きい
基本ブロック・サイズの統一に関する最適化
確かに「鍵情報としての実行の振舞い」を行わないプログラ
ム実行を動的に検出可能
どの程度安全なのか?→実ウィルスの特徴解析が必要
消費エネルギーに関する評価
Koji Inoue
Kyushu University
セキュア・キャッシュ・アーキテクチャ
ーバッファ・オーバフロー・アタック動的検出ー
不正プログラム実行防止方法
システムのセキュリティ・ホールを
把握しておく必要あり!
システムのセキュリティ・ホールを
把握しておく必要なし!
プログラム安全性保障型
自己脆弱性回避型
実行するプログラム(やデータ)がウィ
ルス・フリーである事を保障
既知のセキュリティ・ホールに対する
脆弱性の解消を保障
認証のための
鍵情報が必要
ウィルス定義ファイルやル
ール定義ファイルが必要
不正プログラム検出型
実行/保有するプログラムやデータか
らウィルスを検出
認証済みプログラム実行型
静的コード解析/変換型
動的コード解析/変換型
解析/変換不用型
認証されていないプログラムの実行を禁止
ソースコードの解析/変換
バイナリコードの解析/変換
OSやHWによるチェック
静的検出
動的検出
静的認証
動的認証
実行前に検出
実行時に検出
実行前に認証
実行中に認証
*Virus Scan *Virus Scan
- checksum - heuristics
- pattern
- heuristics
*Cryptogram *Behavior
Monitoring
静的検出
実行前に危険
性を検出
動的検出
動的検出
動的検出
実行時に検出
実行時に検出
実行時に検出
*String Check *Reference Monitor
*Binary Translation
*Hardware/OS
support
Koji Inoue
Kyushu University



実行
コード
最も多く活用される脆弱性の1つ
Blaster@2003, CodeRed@2001
戻りアドレスの改ざんによる実行制御の
乗っ取り
in t f ( ) {
…
g (s1 );
…
}
in t g ( ch a r * s1 ) {
ch a r b u f [1 0 ];
…
strcp y(b u f, s1 );
…
}
上 位 ア ドレ ス
上 位 ア ドレ ス
FP
スタック の
伸張
FP
s1
s1
攻
撃コー
戻 りア ドレ ス
ドの 先 頭
g ()呼 出 し
戻 りア ドレ ス
の次命令
FP 退 避
FP 退 避
攻撃
ロー
ルド
変数
コカー
ロー カル 変 数
b uf
uf列
文b字
SP
下 位 ア ドレ ス
スタック の
伸張
SP
関 数 呼 出 し時 の
ス タック
異常時
下 位 ア ドレ ス
関 数 呼 出 し時 の
ス タック
正常時
バッファ・オーバフローを含む警告
の割合(%)
バッファ・オーバフロー攻撃
60
50
40
30
20
10
0
1996 1997 1998 1999 2000 2001
CERTバッファ・オーバフロー勧告
R.B.Lee, D.K.Karig, J.P.McGregor, and Z.Shi, “Enlisting Hardware
Architecture to Thwart Malicious Code Injection,” Proc. of the Int.
Conf. on Security in Pervasive Computing, Mar. 2003.
Koji Inoue
Kyushu University
セキュア・キャッシュ
レプリカ・フラグ
R-flag (1b)
tag
way0
Ref. Addr.
Index
Tag
Offset
Data (Ret. Addr.)
way1
way2
way3
ML
RL
RL
master
Tag Match
&& R-flag
Tag Match
&& no R-flag
RL: Replica Line
ML: Master Line
ヒット条件
HIT?
Store (push)
Data (Ret. Addr.)
Word-Data
Match
Safe?
replica
data
(line)
レプリカ・ライン
用選択回路
replica
Replica-MUX
Read-MUX
ワード比較器
(32b)
Load (pop)
Koji Inoue
Kyushu University
セキュア・キャッシュの改良

安全性はキャッシュ・ミス率に依存



ミス発生時にレプリカ・ラインは追出される
性能/消費エネルギー/安全性は生成するレプリカ・ライン数に依存

多い場合

少い場合
:性能☹ 消費エネルギー
:性能☺
☹
消費エネルギー
安全性☺
☺
安全性☹
適応型セキュア・キャッシュ

必要に応じて(キャッシュ・ミス発生状況に応じて)生成するレプリカ・ライン数を動的に変更
しよう!
Hit/Missカウンタ
分岐予測技術を応用
(2ビット・カウンタ)
高高
高
ミス
レプリカ数--
レプリカ・ライン・ロッキング


セット
低低
低

レプリカ数++
ヒット
生成するレプリカ数
レプリカ・ラインの追い出しを禁止しよう!
レプリカ・ラインの生成は1個、対応する戻りアドレス・ロード実行時に開放
Koji Inoue
Kyushu University
SCache Models
Security
name
Replica Lines
Placement
Number
LRU1L
LRU1
LRU2
LRU(Locked)
LRU
LRU
1
1
2
MRU1
MRU2
ALL
ADP
MRU
MRU
----MRU(adaptive)
1
2
3
CONV
1~3
MRU way prediction
Vulnerability = (Nv-rald / Nrald) * 100
Insecure issued
RA load
Total #of issued
RA load
Energy Consumption
Etotal = Erd + Ewt + Ewb + Emp
read
write
Writeback to place
replica lines
Replacement
(on misses)
*) Only load/store operations issued to the
cache are considered
Koji Inoue
Kyushu University
実験結果(危険度)
5.4%
6.0%
3.0%
LRU1L
LRU1
LRU2
MRU1
MRU2
ALL
ADP
Vulnerability
2.5%
2.0%
1.5%
1.0%
0.5%
0.0%
16
4
z
.g
ip
17
v
5.
pr
17
g
6.
cc
18
1
.m
cf
1
.
97
pa
e
rs
r
2
.
55
vo
e
rt
x
25
6
z
.b
ip
7
17
.m
es
Benchmarks
a
17
a
9.
rt
1
.
83
e
a
qu
ke
8
18
.
am
mp
Koji Inoue
Kyushu University
実験結果(消費エネルギー)
LRU1L
LRU1
LRU2
MRU1
MRU2
ALL
ADP
Energy Overhead
25%
20%
15%
10%
5%
0%
16
4
z
.g
ip
17
v
5.
pr
17
6
c
.g
c
18
1
.m
cf
1
.
97
p
s
ar
er
2
.
55
v
t
or
ex
25
b
6.
zi
p
7
17
.m
Benchmarks
es
a
1
.
79
ar
t
1
.
83
e
a
qu
ke
8
18
.
am
m
p
Koji Inoue
Kyushu University
実験結果 (EVP,
1.5
EVP
2
2
E VP,
2.4%
2
EV P)
2.3%
E2VP
Normalized to LRU1
1
EV2P
1.5
1
0.5
1
0.5
0.5
0
164.gzip
176.gcc
188.ammp
175.vpr
197.parser
0
164.gzip
176.gcc
188.ammp
175.vpr
197.parser
0
164.gzip
176.gcc
188.ammp
175.vpr
197.parser
LRU2 MRU1 MRU2 ALL
MRU1: 消費エネルギー重視アプリケーション
MRU2: 安全性重視アプリケーション
Kyushu University
Koji Inoue
まとめと今後の課題

研究成果
論文




K. Inoue, “Energy-Security Tradeoff in a Secure Cache Architecture Against Buffer
Overflow Attacks,” Proc. of the 1st International Workshop on Architectural Support for
Security and Anti-Virus (WASSA’04), pp.77-85, Oct. 2004.
T. Iwasa and K. Inoue, “FPGA Implementation of a Secure Microprocessor,” Workshop
on Architecture Research using FPGA Platforms, Feb. 2005
今後の予定
動的プログラム認証




鍵命令挿入に関する最適化技術の検討
安全性/消費エネルギーに関する評価
FPGAを利用したプロトタイピング
セキュア・キャッシュ




適応型セキュア・キャッシュ→効果無し(レプリカ数決定アルゴリズムが悪い?)
ロック方式→キャッシュミス率の高いベンチマークには効果的(179.art)
実チップ設計(現在は16KB SRAMテストチップ設計まで完了)
Kyushu University
Koji Inoue
1年半を過ぎて・・・

そもそもの「井上弘士の野望」は何?

安全なコンピュータの実現に向けて(初めての領域会議にて)




この1年半で何をした?

不正プログラムの実行防止を目的としたプロセッサ・アーキテクチャ




セキュリティを考慮したコンピュータ・アーキテクチャは?
どのようなハードウェア・サポートが有効か(必要か)?
消費エネルギーとのトレードオフは?
動的なプログラム認証が可能なプログラム実行方式
バッファ・オーバフローの動的検出を可能にするセキュア・キャッシュ
「井上弘士の野望」の中の何処に位置するのか?
もう一度、見つめ直してみよう!
Koji Inoue
Kyushu University
安全なコンピュータ・システム


記憶データの保護は暗号化に任せる
「処理」を行うことによる危険性の増大
When?





(さきがけ)
中間結果
情報の伝達(通信)


制御フロー
演算結果
情報の蓄積(記憶)


プログラム
データ
情報の計算(実行) 動的プログラム認証


How?
静的プログラム/データ認証
(ウィルス・チェックや暗号化)
情報の収集(入力)
ネットワーク送受信
?
from What? 機能停止
画像/音声/ID等
盗聴(データの盗み見)
誤った実行結果
データの改竄や破壊
情報の表示(出力)

Who?
HW
CPU
Memory
Special HW
SW
OS
Compiler
Special SW
他人への迷惑行為
Koji Inoue
Kyushu University
人間とコンピュータの違い

免疫システム(24時間)





新たな「自己」を追加する必要がある
「自己」と「非自己」の識別
「非自己」への攻撃と排除
免疫の「記憶」


投薬/手術(発症)
プログラム提供者によるバーコードの挿
入「自己の提供」
非自己の自己化



24時間完全監視はできない
全ての細胞に「自己」を示すバーコード
B細胞
異物
キラーT細胞
マクロファージ
非実行時の効率良いウィルス・スキャン



T細胞
ウィルス・リストのカスタム化
スキャンのハードウェア・サポート
感染/発症が見えない(場合が多い)

システム状況の可視化
実行振舞い
program
実行の振舞いを

自己以外を
発見!
自己にすべきか検証が必要
仮想実行?
CPU
Profiler
とする (マクロファージ) (T細胞)
Kyushu University
最終報告まであと730日!!

「安全性を考慮したハードウェア・サポートの追及」に集中すべき?



「何を守るか」を定めた議論もすべき?



現在は漠然と「不正プログラムの実行防止」を目的としている
「何が起きるか?」は不正プログラムに依存
「何を信じるか、何を信じないか」を再整理すべき?



ハードウェアでサポートできる事は他にもたくさんある?
消費エネルギーに関する議論はとりあえず置いておく?
現在は「振舞いとしての鍵挿入」プロセスは安全と想定
本当に安全か?安全でない場合、どのようなサポートが必要?
攻撃者の気持ちを知るべき?

ウィルスを作ろうか?
Koji Inoue
Kyushu University
安全なコンピュータ・システム
正規ユーザは
お金を使える
Koji Inoue
Kyushu University
安全なコンピュータとは?
Koji Inoue
Kyushu University
Koji Inoue
安全とは?危険とは?

守りたい物は何か?

自分身体(命)、財産(お金や車)、家族(や恋人)

秘密データ(暗証番号、個人情報、財産、などなど)
Kyushu University
Koji Inoue
実験結果(性能オーバヘッド)
1.4
1.2%
Performance
Overhead
1.0%
0.8%
0.6%
0.4%
0.2%
0.0%
4
16
.
i
gz
p
17
5
p
.v
c cf
c
e r t e x z i p e s a . a r t a k e mp
g
s
m
.
6 8 1 . p a r v or 6 .b .m 7 9 q u .a m
7
1
1
.e 8 8
1
25 177
7. 55.
3
9
1
1
2
18
r
Benchmarks
LRU1L
LRU1
LRU2
MRU1
MRU2
ALL
ADP
Koji Inoue
Kyushu University
実験結果
LRU1L
LRU1
LRU2
MRU1
MRU2
ALL
ADP
危険度
6.0% 5.4%
3.0%
2.0%
1.5%
1.0%
消費エネルギー
0.5%
25%
0.0%
1
.
64
gz
ip
1
.
75
vp
r
1
.
76
gc
c
1
.
81
m
cf
19
7.
r
pa
se
r
25
5.
r
vo
te
x
2
.
56
bz
ip
17
m
7.
es
Benchmarks
a
1
.
79
ar
t
18
3.
e
a
qu
ke
18
8.
am
m
p
Energy Overhead
Vulnerability
2.5%
20%
15%
10%
5%
0%
1
.
64
gz
ip
5
17
.v
pr
6
17
.g
cc
1
.
81
m
cf
19
7.
r
pa
se
r
25
5.
r
vo
te
x
2
.
56
bz
ip
17
m
7.
Benchmarks
es
a
9
17
.a
rt
18
3.
u
eq
ak
e
18
a
8.
m
m
p
Koji Inoue
Kyushu University
実験結果(消費エネルギー内訳)
Normalized Energy
1.2
Emp
Ewb
Ewt
Erd
CONV
LRU1L
LRU1
LRU2
MRU1
MRU2
ALL
1.4
1
0.8
0.6
0.4
0.2
0
181.mcf
197.parser
255.vortex
177.mesa
Benchmarks
179.art
183.equake