検索
連載

Use After FreeとヒープスプレーBeyond Zero-day Attacks(4)(3/3 ページ)

ヒープオーバーフローと別の手法でヒープ破壊を行うUser After Freeと呼ばれる攻撃と、Use After Freeと一緒に使われることが多い、ヒープスプレーについて紹介します

Share
Tweet
LINE
Hatena
前のページへ |       

User After Freeとヒープスプレーの対策

 前回のヒープ破壊で紹介をした対策は、Use After Freeとヒープスプレーを使った攻撃に対しても、有効性があると考えられています。

 例えば、Use After Freeで解放済みのヒープを上書きする際には、ガードページ(図6)によるアクセスエラーで、攻撃を防ぐことが期待できます。


図6 ガードページ

 また、このサンプルでは、ヒープ領域が常に一定の順番で割り当てられることが前提となっているため、LFHブロックのランダムアロケーション(図7)により、解放されたヒープ領域への上書きを防ぐことが期待できます。


図7 LFHブロックのランダムアロケーション

 C++では、Use After Freeで書き換えられる仮想テーブルの改ざんを検知する仕組みが利用できるようになっています。


図8 C++での仮想テーブル改ざん検知の仕組み

 EMET(Enhanced Mitigation Experience Toolkit)では、ヒープスプレーで悪用されることの多いメモリ領域を事前にEMETが取得することで、ヒープスプレーの展開を防ぎます。


図9 EMETによるヒープスプレー対策

結びに

 これまでに紹介したスタックオーバーフローやヒープオーバーフローは、何らかのデータを処理するプログラムであれば、データを操作することによって攻撃の対象とすることができます。これに対して、User After Freeは、通常は安全な実行環境と考えられているスクリプト言語(インタプリター)を利用して攻撃を行うことが可能です。

 Java、Flash, PDF、Internet Explorerなどが攻撃のターゲットとなっていますが、いずれもスクリプトを走らせることが可能でUse After Freeとヒープスプレーの組み合わせが利用できる環境です。これらの実行環境は、そもそもヒープを中心として動作すると言っても過言ではない環境であるため、攻撃者が意図したメモリの状態を作りやすく、根本的な対策が難しいのが実情です。

 一方で、ここまで紹介をしてきた攻撃手法は、攻撃コードをスタックまたはヒープに展開したものです。一般的に、プログラムがスタックやヒープに展開されることはないので、スタックやヒープでのプログラムの実行を止めることができれば、脆弱性があったとしても、その悪用を防ぐことができます。この対策を実現するのがDEP(Data Execution Prevention)と呼ばれるハードウェア機構です。

 次回は、DEPとDEPの回避手法についてご紹介します。

著者プロフィール

高橋 正和(たかはし まさかず)

日本マイクロソフト株式会社

チーフ セキュリティ アドバイザー

1980年代初頭からミニコン、PC-98、8085、4ビットマイコンなどを使った制御システムの開発などを経験。

1980年代中頃から、日本デジタル研究所株式会社で標準ライブラリの開発保守、開発環境の開発保守、独自OSからWindows NT/Windows XPへの移植、品質管理、新入社員向けのC言語の新人教育などを担当した。

標準ライブラリでは、ファイルシステムやSocketライブラリの開発・実装・保守、開発環境では、68K系のCPUにWhite Sims’s Cによるリロケータブルな実行ファイル形式という特性を使って、オーバーレイリンカー・ローダー等も開発した。

1999年にISS(現在はIBM)セキュリティに関わり、2006年から現職(日本マイクロソフト株式会社 チーフセキュリティアドバイザー)を務める。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       

Security & Trust 記事ランキング

  1. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  3. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  4. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  5. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  6. 高度なAIでAIをテスト OpenAIが実践するAIモデルのレッドチーム演習とは
  7. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  8. Google、オープンソースのセキュリティパッチ検証ツール「Vanir」を公開 多種多様なAndroidデバイスの脆弱性対応を支援するアプローチとは
  9. 「PC操作が不能になる手口」が増加中 IPAが推奨される対処法を紹介
  10. 徳丸氏がクラウド事故から考える、バックアップ、コンテナ、マイクロセグメンテーションを用いた本質的な「レジリエンス」とは
ページトップに戻る