Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

WindowsのDLLだけが危ないのか?
DLL hijacking vulnerability概説(後編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 本連載では、最近話題のDLL hijacking vulnerabilityと呼ばれるプログラムのDLL読み込みに関する脆弱性について、前後編の2回に分けて解説します。後編では、DLL hijackingの脆弱性に対し攻撃を受けないアプリケーションを開発するため、Microsoftが開発者向けに公開している対策方法の一部を紹介します。

目次

はじめに

 前編では、DLL hijackingと呼ばれるプログラムのDLL読み込みに関する脆弱性の概要および、関連するイベントを紹介しました。

 Microsoftはセキュリティアドバイザリ2269637を公開するとともに、Security Research & Defenseブログに「More information about the DLL Preloading remote attack vector」というエントリを追加し、より詳細な技術情報を説明しています。このエントリのなかで、アプリケーション開発者向けのガイダンスとして作成された word 文書「Secure loading of libraries to prevent DLL preloading attacks」が提供されました。現在は、この文書の日本語抄訳「ライブラリを安全にロードして DLL のプリロード攻撃を防ぐ」も提供されています。

 ガイダンス文書の構成は、以下のようになっています。

  • DLLのプリロード攻撃の詳細
    • LoadLibraryベースの攻撃
    • SearchPathベースの攻撃
    • ShellExecuteおよびCreateProcess
  • ソフトウェア開発者向けの推奨されるステップ
    • 開発者が行うべき4項目の作業
      1. 安全でないライブラリロードを行っていないかチェック
      2. 完全修飾パスを使ってライブラリロードするように修正
      3. 既定のDLLの検索順序からカレントディレクトリを削除
      4. SetSearchPathModeを使って安全なプロセス検索モードを有効化
    • 安全でないライブラリロードの特定に関するガイダンス
      ライブラリをロードするコード例として、攻撃に悪用される可能性のあるコード例と安全なコード例を示しています。
  • Process Monitorを用いて、安全でないロードを動的に検出する
    アプリケーションの実行時に安全でないロードを行っているかどうかを、Process Monitorを使って観察する方法について簡単に説明しています。
  • 追加のリソース
    関連するブログ記事やMSDNの情報がリストされています。

 今回はこの文書に基づいて、Windowsアプリケーション開発における対策方法をご紹介します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:実例で学ぶ脆弱性対策コーディング

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5