1 / 38

不正プログラムの実行防止を目的とするオンチップ・キャッシュ・アーキテクチャ

不正プログラムの実行防止を目的とするオンチップ・キャッシュ・アーキテクチャ. 福岡大学 / 科学技術振興機構さきがけ  井上弘士. 正規 プログラム. アタック コード. スラック予測. シグナル・ゲーティング. ILP. TLP. DVS. 分岐予測. 命令パイプライン. パイプライン統合. リサイジング. スーパスカラ. 選択的活性化. 値予測. アドレス予測. CTV. BPRF. プリフェッチ. OOO実行. クロック・ゲーティング. キャッシュ. 研究背景(その1). Security. ・・・・・. High

sona
Download Presentation

不正プログラムの実行防止を目的とするオンチップ・キャッシュ・アーキテクチャ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 不正プログラムの実行防止を目的とするオンチップ・キャッシュ・アーキテクチャ不正プログラムの実行防止を目的とするオンチップ・キャッシュ・アーキテクチャ 福岡大学/科学技術振興機構さきがけ  井上弘士

  2. 正規 プログラム アタック コード スラック予測 シグナル・ゲーティング ILP TLP DVS 分岐予測 命令パイプライン パイプライン統合 リサイジング スーパスカラ 選択的活性化 値予測 アドレス予測 CTV BPRF プリフェッチ OOO実行 クロック・ゲーティング キャッシュ 研究背景(その1) Security ・・・・・ High Performance Low Power/Energy

  3. やっぱり かけてた! 鍵かけたっけ? 鍵かけたっけ? ? ? ? ? ? ? ? ? まあ、いいや! 研究背景(その2) こんなご経験はありませんか? P

  4. Architectural Support for 研究目的 Security SCache スラック予測 シグナル・ゲーティング ILP TLP DVS 分岐予測 命令パイプライン パイプライン統合 リサイジング スーパスカラ 選択的活性化 値予測 High Performance Low Power/Energy アドレス予測 CTV BPRF プリフェッチ OOO実行 クロック・ゲーティング キャッシュ

  5. 発表手順 • はじめに • バッファ・オーバフロー・アタック • セキュア・キャッシュ・アーキテクチャ • 評価 • 実験環境と評価モデル • 安全性と消費エネルギー • 性能オーバヘッド • おわりに

  6. 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. バッファ・オーバフロー攻撃 • バッファ・オーバフロー • 最も多く活用される脆弱性の1つ • Blaster@2003, CodeRed@2001 • メカニズム • データ境界を越えた書込み • C標準ライブラリ内に存在(strcpyなど) • スタックの破壊(スタック・スマッシング) • 悪質コードの挿入と戻りアドレスの改ざん • プログラム実行制御の乗っ取り • 改ざん後の戻りアドレスがPCへ設定

  7. 関数呼出し/復帰時の動作 int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  8. g()呼出し の次命令 正常時 関数呼出し/復帰時の動作 int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  9. 文字列 正常時 関数呼出し/復帰時の動作 int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } g()呼出し の次命令 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  10. g()呼出し の次命令 文字列 関数呼出し/復帰時の動作 int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順 正常時

  11. g()呼出し の次命令 文字列 正常時 スタック・スマッシングによる実行制御の乗っ取り int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  12. g()呼出し の次命令 g()呼出し の次命令 文字列 正常時 異常時 スタック・スマッシングによる実行制御の乗っ取り int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  13. g()呼出し の次命令 攻撃コー ドの先頭 g()呼出し の次命令 攻撃 コード 文字列 異常時 正常時 スタック・スマッシングによる実行制御の乗っ取り int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  14. 攻撃コー ドの先頭 g()呼出し の次命令 攻撃 コード 文字列 異常時 正常時 スタック・スマッシングによる実行制御の乗っ取り int f ( ) { … g (s1); … } int g ( char *s1) { char buf [10]; … strcpy(buf, s1); … } 実行 コード • 関数f ( )の実行 • 関数g( )の呼出し • 文字列コピー • 関数f( )へ復帰 処理 手順

  15. 発表手順 • はじめに • バッファ・オーバフロー・アタック • セキュア・キャッシュ・アーキテクチャ • 評価 • 実験環境と評価モデル • 安全性と消費エネルギー • 性能オーバヘッド • おわりに

  16. 動的な戻りアドレス改ざん検出~Secure Cache: SCache~ • 問題点: • スタックに書込んだ戻りアドレスが改ざんされる • 解決策: • 主記憶スタックに書込む前に必ずキャッシュにストア • キャッシュで戻りアドレスを保護しよう! • 手段: • 戻りアドレス書込み時に複製(レプリカ・ライン)を作成 • 戻りアドレス読出し時に複製と比較 • 不一致であれば戻りアドレス改ざん発生と判定

  17. レプリカ・フラグ(1b) レプリカ・ライン用選択回路 ワード比較器(32b) ヒット条件 内部構成

  18. Original Replica 動作(戻りアドレス書込み時) 生成レプリカ数(Nrep)=2の場合 キャッシュ・ヒット時

  19. Replica Original 動作(戻りアドレス読出し時) 生成レプリカ数(Nrep)=2の場合 キャッシュ・ヒット時

  20. SCacheの設計選択肢 • レプリカ・ラインのキャッシュ滞在期間を延長 (→安全性の向上) • レプリカ・ライン数の増加 • 最大 W-1個まで(Wはキャッシュの連想度) • レプリカ・ラインの配置アルゴリズム • LRU • MRU • 追出し禁止(この場合はレプリカ・ラインの開放が必要)

  21. 戻りアドレス改ざんの動的検出が可能 ただし、レプリカ・ラインが存在する場合のみ プロセッサの内部構成へ与える影響は極めて小さい アクセス時間/面積オーバヘッドは極めて小さい レプリカ数を変更可能 安全性と消費エネルギーのバランスを決定可能 レプリカ作成に伴うヒット率の低下 平均メモリアクセス時間の増大 下位階層メモリへのアクセス消費エネルギー増大 レプリカ作成に伴う消費エネルギーの増加 書込みエネルギーの増大 ライトバック・エネルギーの増大 読出しエネルギーの増大(他低消費電力キャッシュと比較して) SCacheの特徴(利点と欠点) Pros Cons

  22. 発表手順 • はじめに • バッファ・オーバフロー・アタック • セキュア・キャッシュ・アーキテクチャ • 評価 • 実験環境と評価モデル • 安全性と消費エネルギー • 性能オーバヘッド • おわりに

  23. SimpleScalar3.0 16KB 4-way Dキャッシュ ラインサイズ:32B アウト・オブ・オーダ実行 SPEC2000 7個のintプログラム 4個のfpプログラム Small input(完全実行) 4KB SRAM設計 0.18μm CMOSプロセス 16KBキャッシュの1ウェイ 8bメモリセルが1個のラッチ型センスアンプを共有 Hspiceシミュレーション カスタム・レイアウトと容量抽出(周辺回路は含まない) ビット当たりのアクセス消費エネルギー測定 評価環境 消費エネルギー 安全性/消費エネルギー/性能

  24. 評価モデル 評価対象モデル 危険度 Vulnerability = (Nv-rald / Nrald) * 100 安全性を保障できない 戻りアドレス・ロード回数 全戻りアドレス ロード回数 消費エネルギー Etotal = Erd + Ewt + Ewb + Emp 読出し 書込み キャッシュ・ミス レプリカ生成に伴う ライトバック

  25. ALL: 99.3%以上の戻りアドレス・ロードを保護 MRU1R: 88.5%以上の戻りアドレス・ロードを保護 実験結果(危険度) 6.0% 5.4% LRU1L LRU1 LRU2 MRU1 MRU2 ALL

  26. ALL: 最大23%のエネルギー増加 MRU1R: 最大9.9%のエネルギー増加 実験結果(消費エネルギー) LRU1L LRU1 LRU2 MRU1 MRU2 ALL

  27. 実験結果(消費エネルギー内訳) CONV LRU1L LRU1 LRU2 MRU1 MRU2 ALL Emp Ewb Ewt Erd

  28. 実験結果(EV積) LRU2R MRU1R MRU2R ALL

  29. ALL: 最大1.1%の性能低下 MRU1R: 最大0.1%の性能低下 実験結果(性能オーバヘッド) LRU1L LRU1 LRU2 MRU1 MRU2 ALL

  30. 発表手順 • はじめに • バッファ・オーバフロー・アタック • セキュア・キャッシュ・アーキテクチャ • 評価 • 実験環境と評価モデル • 安全性と消費エネルギー • 性能オーバヘッド • おわりに

  31. Static: SASI[WNSP99] StakcGuard[USENIX98] →コード解析や再コンパイル Dynamic: SW: LibSafe/Verify[USENIX00] →ライブラリの更新 →性能オーバヘッド SW: StackGhost[USENIX01] →SPARCアーキテクチャ特有 HW: SRAS[SPC03] →プロセッサ内部の変更 →LIFO動作のみHWで対応 SCache: Dynamic+HW • キャッシュ・レベルでの実装 • プロセッサとの分離 • ランダムアクセス可能 • 大容量領域 • コスト削減 消費エネルギーの解析 関連研究

  32. おわりに • まとめ • SCache:関数戻りアドレス改ざんを動的に検出 • 安全性、消費エネルギー、性能オーバヘッドの評価 • 安全性重視型:ALLモデル • 多くのプログラム(9/11)で99.3%以上の戻りアドレスロードを保護 • 最大で23%のキャッシュ消費エネルギー増加 • 消費エネルギー重視型:MRU1Rモデル • 多くのプログラムで(9/11)で98.5%以上の戻りアドレスロードを保護 • 最大で9.9%のキャッシュ消費エネルギー増加 • 今後の課題 • 脆弱性を含む実アプリケーションでの評価 • SCacheの完全設計 • 適切なレプリカ・ライン数を決定する最適化手法の確立(動的/静的)

  33. Back-Up Slides …

  34. キャッシュ・ミス率 IRA: Issued Return Address CA: Cache Access

  35. 実験結果(EV積) LRU2R MRU1R MRU2R ALL

  36. Cache Design (0.18μm CMOS)

  37. ウェイ予測キャッシュ SCache レプリカ・ライン検索が必要! ウェイ予測方式 ウェイ検索結果を予測! 1cycle 予測が正しい場合 + 1cycle 戻りアドレスロード 2cycle 予測が誤りの場合 [ISLPED’99]

  38. 安全で安定した情報化社会システムの実現に向けて安全で安定した情報化社会システムの実現に向けて • 安全性の向上(特にウィルス問題) • 毎月800の新種ウィルスが誕生(*) • 気づかないうちに侵入して突然暴走 • 個人の財産に対する直接的な脅威 • 低消費エネルギー化 • バッテリ寿命の延長 • 利用者数の爆発 • 地球規模でのエネルギー問題 (*)板倉正俊「インターネット・セキュリティとは何か」日経BP社

More Related