メモリ参照パタンを鍵情報とする セキュア・プロセッサ・システムに 関する一考察 福岡大学 岩佐崇史 井上弘士 発表手順 •はじめに •実行の振舞いを鍵とする動的プログラム認証方式 •基本ブロックサイズの統一 •評価 •考察 •おわりに はじめに 次世代携帯端末機器(次世代携帯電話、 多機能スマートカード等)は 重要な情報の記憶/処理 コンピュータ・ウイルス(不正プログラム) による被害の深刻化 検出技術/実行防止技術の確立が不可欠 はじめに 提案手法 実行の振舞いを鍵とする動的プログラム認証方式 鍵情報とする実行の振舞い 鍵ロード命令がある時間間隔で 実行することで生じるメモリ参照パタン はじめに 問題点:静的な鍵ロード命令の挿入は困難 ⇒解決手段:基本ブロックサイズの統一 研究目的 プログラム・コード・サイズ増加率 プログラム実行時間増加率 安全性の度合い 従来のプログラム検出/認証方式 プログラム検出方式 手段 不正プログラム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 おわりに 基本ブロックサイズの統一による実行の振舞い の制御を検討 基本ブロックサイズ変更時のコード・サイズ増加率、 実行時間増加率、安全性の度合いの評価とトレード・ オフによる考察 今後の課題 プロトタイプの設計と評価
© Copyright 2024 ExpyDoc