Skip to main content
QUICK REVIEW

[論文レビュー] Evading network-level emulation

Piotr Bania|ArXiv.org|Jun 10, 2009
Network Security and Intrusion Detection参考文献 6被引用数 13
ひとこと要約

本論文は、不審なコードを制御された環境で動的実行して未知の脅威を検出する、侵入検知システム(IDS)におけるネットワークレベルのエミュレーションに対する回避技術を調査する。時間ベースの遅延、FPU/SSE命令の乱用、メモリ操作といった実用的な手法を提示し、最小限のコード変更でさえも、洗練されたヒューリスティックベースの検出を回避できることを実証する。

ABSTRACT

Recently more and more attention has been paid to the intrusion detection systems (IDS) which don't rely on signature based detection approach. Such solutions try to increase their defense level by using heuristics detection methods like network-level emulation. This technique allows the intrusion detection systems to stop unknown threats, which normally couldn't be stopped by standard signature detection techniques. In this article author will describe general concepts of network-level emulation technique including its advantages and disadvantages (weak sides) together with providing potential countermeasures against this type of detection method.

研究の動機と目的

  • ネットワークレベルのエミュレーションにおける侵入検知システムのセキュリティ的仮定と限界を分析すること。
  • エミュレーションベースの検出を回避できる実用的な回避技術を同定し、実証すること。
  • タイミング攻撃、命令レベルの操作、間接的コード実行を通じてエミュレーションを回避する可能性を評価すること。
  • 現在のエミュレーションベースIDSが、単純で低コストのオブスクリューション技術に対していかに脆弱であるかを強調すること。
  • 将来的なより強固なエミュレーション耐性を持つ検出システムの開発の理論的基盤を提供すること。

提案手法

  • ネットワークデータバッファ内のすべてのバイトを、潜在的なシェルコードのエントリーポイントとしてエミュレートし、実行挙動を分析する。
  • RDTSCやループ命令を用いた時間ベースの遅延を適用し、エミュレータの時間予算を消費して早期終了を引き起こす。
  • FPUおよびSSE命令の不完全または誤ったエミュレーションを悪用し、エミュレーションの失敗や乖離を引き起こす。
  • ネイティブOS APIコール(例:ZwWriteVirtualMemory)を活用し、エミュレータの可視性を回避するメモリ書き込みを実行する。
  • プリフェッチ入力キュー(PIQ)を用いて、自己上書き命令の誤った処理によりエミュレータに未定義動作を引き起こす。
  • スウォーム攻撃パターンを適用し、シェルコードのデコードロジックを複数のパケットに分散させ、1つのストリーム内で検出されないようにする。

実験結果

リサーチクエスチョン

  • RQ1RDTSCまたはループ命令を用いた時間ベースの遅延は、ネットワークレベルエミュレータの時間予算をどれほど効果的に消費できるか?
  • RQ2FPUおよびSSE命令の不完全または誤ったエミュレーションは、検出回避にどの程度寄与するか?
  • RQ3ネイティブOS APIコールは、ネットワークレベルエミュレータから検出を回避するメモリ書き込みを実行できるか?
  • RQ4命令レベルの副作用(例:PIQの破損)は、エミュレーションベース分析の信頼性にどのように影響するか?
  • RQ5スウォーム攻撃によるシェルコードの分散配信は、ネットワークレベルエミュレーションシステムでの検出を回避できるか?

主な発見

  • RDTSCやループ命令を用いた時間ベースの遅延は、エミュレータの時間予算を効果的に消費し、完全なコード解析が行われる前に早期終了を引き起こす。
  • FPUおよびSSE命令の不完全または誤ったエミュレーションは、特にシェルコードがその結果に依存する場合、エミュレーションの失敗を引き起こす。
  • ZwWriteVirtualMemoryなどのネイティブAPIコールは、エミュレータから見えないメモリ書き込みを実行でき、コードインジェクションの検出を回避する。
  • プリフェッチ入力キュー(PIQ)は、自己上書き命令の処理が誤っているため、エミュレータの状態を破壊するのに悪用できる。
  • スウォーム攻撃では、シェルコードとデコーダロジックを複数のパケットに分散させることで、1つのストリーム内で完全なコード再構築が不可能になり、検出を回避できる。
  • ヒューリスティック検出が導入されていても、ネットワークレベルエミュレーションは、エミュレータの限界を突く単純で低複雑性のオブスクリューション技術に対して依然として脆弱である。

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

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

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

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