Skip to main content
QUICK REVIEW

[論文レビュー] SIGDROP: Signature-based ROP Detection using Hardware Performance Counters

Xueyang Wang, Jerry Backer|arXiv (Cornell University)|Sep 9, 2016
Security and Verification in Computing参考文献 15被引用数 19
ひとこと要約

SIGDROP は、一般向けプロセッサのハードウェアパフォーマンスカウンタ(HPCs)を活用して、リターンオリエンテッドプログラミング(ROP)攻撃を低オーバーヘッドで検出するハードウェアベースの検出メカニズムである。リターン予測ミス率の高さと短いギャジェットシーケンスの頻発という特徴的なパターンを検出することで、ソースコードやバイナリの変更、ハードウェアの改造を一切不要としない。平均で4.67%のパフォーマンスオーバーヘッドで効果的な ROP 検出を実現し、ストレージコストは無視できるほど小さい。

ABSTRACT

Return-Oriented Programming (ROP) is a software exploit for system compromise. By chaining short instruction sequences from existing code pieces, ROP can bypass static code-integrity checking approaches and non-executable page protections. Existing defenses either require access to source code or binary, a customized compiler or hardware modifications, or suffer from high performance and storage overhead. In this work, we propose SIGDROP, a low-cost approach for ROP detection which uses low-level properties inherent to ROP attacks. Specifically, we observe special patterns of certain hardware events when a ROP attack occurs during program execution. Such hardware event-based patterns form signatures to flag ROP attacks at runtime. SIGDROP leverages Hardware Performance Counters, which are already present in commodity processors, to efficiently capture and extract the signatures. Our evaluation demonstrates that SIGDROP can effectively detect ROP attacks with acceptable performance overhead and negligible storage overhead.

研究の動機と目的

  • 既存の ROP 検出メカニズムの限界、すなわち高いパフォーマンスおよびストレージオーバーヘッド、ソースコード依存、ハードウェアの改造を要する問題を解消すること。
  • ソフトウェアやハードウェアの変更なしに検出可能な、ROP 攻撃の低レベルで本質的なランタイム特性を同定すること。
  • 組込みシステムを含む一般向けプラットフォームで動作する、移植性が高く、効率的で実用的な ROP 検出ソリューションを設計すること。
  • パフォーマンスおよびストレージオーバーヘッドを最小限に抑えつつ、ROPペイロードの高い検出精度を維持すること。
  • バイナリインストルメンテーションやカスタムコンパイラサポートを一切不要とせず、既存のハードウェア機能(特にハードウェアパフォーマンスカウンタ)のみを用いてランタイムでの ROP 攻撃検出を可能とすること。

提案手法

  • SIGDROP は、プログラム実行中にリターン命令の実行および分岐予測イベントに関連する特定のハードウェアパフォーマンスカウンタ(HPCs)を監視する。
  • 短いチェーン化されたシーケンスにおけるギャジェットごとの命令数の分布と、リターンミス予測の頻度に基づいてランタイムシグネチャを抽出する。
  • しきい値ベースの検出を採用:監視インターバルあたりのリターンミス予測回数が事前に定義されたしきい値 $T_M$ を超える、またはインターバルあたりの短いギャジェット数が $T_I$ を超えると、潜在的な ROP 攻撃とマークされる。
  • 検出ロジックは ROP の2つの本質的特性に基づく:(1) 指令数が少ない短いギャジェットの頻発、(2) 間違いのあるリターンターゲット予測に起因する頻繁なリターンミス予測。
  • バイナリやソースコードを変更せずに、HPC サンプリングとしきい値比較に依存してランタイムで動作する。
  • Linux 上に軽量なランタイムモジュールとして実装され、カーネルとインターフェースをとることで HPC データを収集し、シグネチャ一致時に信頼できるモジュールに通知する。

実験結果

リサーチクエスチョン

  • RQ1ソースコードやバイナリインストルメンテーションを一切不要とし、一般向け HPC での低レベルのハードウェアパフォーマンスカウンタイベントのみを用いて、ROP 攻撃を信頼性高く検出可能か?
  • RQ2ROP 実行時に一貫して現れる、ランタイムシグネチャとして利用可能な特定のハードウェアイベントパターンは何か?
  • RQ3一般向け HPC を用いたシグネチャベースの検出メカニズムは、低パフォーマンスおよびストレージオーバーヘッドを実現しながらも、高い検出精度を維持できるか?
  • RQ4SIGDROP のパフォーマンスオーバーヘッドは、既存の CFI やバイナリインストルメンテーションベースの ROP 検出ソリューションと比較してどの程度か?
  • RQ5ハードウェアやソフトウェアの変更を一切不要とせず、Intel や AMD、ARM などの異なるプロセッサアーキテクチャ間でどの程度の移植性を示せるか?

主な発見

  • SIGDROP は、特にリターンミス予測と短いギャジェットシーケンスという特徴的なパターンをハードウェアパフォーマンスカウンタイベントから特定することで、高い精度で ROP 攻撃を検出する。
  • SIGDROP の平均パフォーマンスオーバーヘッドは、整数型 SPEC CPU 2006 ベンチマークでわずか 4.67% であり、ROPDefender の 2.17x オーバーヘッドよりも顕著に低い。
  • ストレージオーバーヘッドは無視できるほど小さい—監視対象プロセス1つあたり、イベントカウントとしきい値を格納するのにたった 3 バイトでよく、各しきい値はたった 1 バイトで十分である。
  • SIGDROP は、広く利用可能な HPC を使用しているため、デスクトップ、ラップトップ、組込みシステムを含む一般向けプラットフォームで完全に移植可能である。
  • ソースコードやバイナリの再書き換え、ハードウェアの改造を一切不要としており、既存システムへの実用的で即時の展開が可能である。
  • 検出メカニズムは、メモリレイアウトの仮定に依存しないため、情報漏洩や JIT ROP 攻撃に対しても頑健である。

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

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

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

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