Skip to main content
QUICK REVIEW

[論文レビュー] Adversarial Symbolic Execution for Detecting Concurrency-Related Cache Timing Leaks

Shengjian Guo, Meng Wu|arXiv (Cornell University)|Jul 9, 2018
Parallel Computing and Optimization Techniques被引用数 3
ひとこと要約

本稿では、SMTソルブを用いてキャッシュ動作をモデル化し、スレッドのインタリーブを記号的に探索することで、暗号プログラムにおける並行性に起因するキャッシュタイミング側面漏洩を検出する、敵対的記号実行(SymSC)を提案する。既存のツールが検出できなかった実世界の暗号アルゴリズムにおいて現実的な漏洩を同定し、並行性下でのタイミング漏洩耐性は合成的ではないことを示している。

ABSTRACT

The timing characteristics of cache, a high-speed storage between the fast CPU and the slowmemory, may reveal sensitive information of a program, thus allowing an adversary to conduct side-channel attacks. Existing methods for detecting timing leaks either ignore cache all together or focus only on passive leaks generated by the program itself, without considering leaks that are made possible by concurrently running some other threads. In this work, we show that timing-leak-freedom is not a compositional property: a program that is not leaky when running alone may become leaky when interleaved with other threads. Thus, we develop a new method, named adversarial symbolic execution, to detect such leaks. It systematically explores both the feasible program paths and their interleavings while modeling the cache, and leverages an SMT solver to decide if there are timing leaks. We have implemented our method in LLVM and evaluated it on a set of real-world ciphers with 14,455 lines of C code in total. Our experiments demonstrate both the efficiency of our method and its effectiveness in detecting side-channel leaks.

研究の動機と目的

  • 既存のツールが並行プログラムにおけるキャッシュタイミング漏洩を無視するというギャップを埋める。
  • タイミング漏洩耐性は合成的ではないことを示す:プログラムが単体で実行される際は安全でも、敵対的スレッドとインタリーブされると漏洩する可能性がある。
  • 並行スレッド間の干渉によって生じるキャッシュタイミング漏洩を体系的に検出するための手法を開発する。
  • 計算コストを最小限に抑える一方で、記号実行中にキャッシュ動作を正確にモデル化する。
  • 実世界の暗号実装に対して本手法を評価し、以前に検出されなかった漏洩を明らかにすることを目的とする。

提案手法

  • 被害スレッド(例:暗号関数)と潜在的に敵対的なスレッドの両方を記号的に実行し、すべての可能なパスとインタリーブを探索する。
  • 記号実行中に動的キャッシュ動作制約を構築し、メモリアクセスがキャッシュヒットまたはミスを引き起こすタイミングをモデル化する。
  • SMTソルブを活用して、入力依存のキャッシュ動作の乖離をチェックする:同じインタリーブ下で異なる入力が異なるヒット/ミスパターンを引き起こすかを確認する。
  • キャッシュ動作制約に基づいて冗長なインタリーブを動的プリーニングすることで、パスおよびインタリーブの爆発的増加を緩和する。
  • キャッシュ構成(例:アソシエイティビティ、ラインサイズ)に基づいてキャッシュ動作をモデル化し、複数スレッド間でのキャッシュラインアクセスパターンを追跡する。
  • 提供されていない場合、自動的に敵対的スレッドとインタリーブスケジュールを生成し、漏洩検出の完全自動化を実現する。

実験結果

リサーチクエスチョン

  • RQ1同一スレッドでタイミング漏洩耐性であるプログラムが、他のスレッドと並行して実行された場合、キャッシュタイミング側面漏洩攻撃に対して脆弱になることはあるか?
  • RQ2敵対的インタリーブを特定し、キャッシュベースのタイミング漏洩を露呈するための体系的な探索戦略は何か?
  • RQ3記号実行中にキャッシュ動作をどのように正確にモデル化すれば、データ依存のヒット/ミスパターンを検出できるか?
  • RQ4実世界の暗号実装には、並行性に起因するキャッシュタイミング漏洩がどの程度存在するか?
  • RQ5SMTソルブを用いた記号実行は、このような漏洩を引き起こす具体的な入力とインタリーブを検出できるか?

主な発見

  • 研究では、タイミング漏洩耐性が合成的でないことを実証した:同じ命令数であっても、並行実行によってキャッシュタイミング漏洩が露わになることがある。
  • SymSCは、合計14,455行のCコードを含む20の実世界の暗号プログラムで、具体的なキャッシュタイミング漏洩を検出できた。
  • 従来のツールが順次実行のみを想定していたのに対し、本手法は敵対的スレッドの干渉を伴う現実的な攻撃シナリオを同定した。
  • キャッシュ動作制約により、冗長なインタリーブの有効なプリーニングが可能となり、状態空間の爆発問題にもかかわらずスケーラビリティが向上した。
  • 本手法は、異なるキャッシュ動作を引き起こす具体的な入力とインタリーブスケジュールを生成し、検出された漏洩の実用性を裏付けた。
  • 既存のツールでは、このような並行性に起因するキャッシュタイミング漏洩を検出できず、SymSCがこの問題に初めて対処する手法であることが立証された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。