Windowsアプリケーションに不正な外部ライブラリ(DLL)をロードさせる新たな攻撃手法が報告されたことを受けて、マイクロソフトは24日、セキュリティアドバイザリを公開した。
Windowsアプリケーションは、アプリケーション本体のプログラムファイルとは別に、コードやデータをDLL(Dynamic-Link Library)と呼ばれるファイルに格納しておき、必要に応じてロードする仕組みが用意されており、プログラミングやメモリ使用の効率化を図っている。プログラム内でロードするDLLの場所を指定しない場合、システムは規定の検索順序に従って該当するDLLを探し、最初に見つかったものを使用する。このため、システムがDLLを探す場所に不正なDLLを設置しておくと、正規のDLLではなく悪質なDLLをロードしてしまう可能性があり、任意のコードが実行されるおそれがある。
この攻撃手法自体は、すでに報告されていたものだが、これまでは、ローカルドライブに不正なDLLを設置することが前提だった。今回新たに報告されたのは、インターネット上に設置した不正なDLLをロードさせようとするもので、ACROS Securityの報告によると、WebDAV共有フォルダとアップル社のiTunesとの組み合わせで実証できたという。悪用されると、外部から任意のコードが実行でき、システムを乗っ取られるなどのおそれがある。
この問題は、安全なDLLをロードするように設計されていないアプリケーションと、インターネット上の共有フォルダの組み合わせでのみ、リモートからの攻撃が成立する。前者は、各アプリケーションの製造元が個々に検証し、更新プログラムをリリースする必要がある。後者については、Windows側でリモートのDLLを使用しないように設定することによって回避でき、同社では、WebDAV共有フォルダにアクセスするための「WebClientサービス」そのものを無効化する方法と、レジストリ―を設定してDLLの検索場所からリモート共有フォルダを除外する方法を提示している。
(2010/08/24 ネットセキュリティニュース)
■セキュリティ アドバイザリ (2269637): 安全でないライブラリのロードにより、リモートでコードが実行される(マイクロソフト)
http://www.microsoft.com/japan/technet/security/advisory/2269637.mspx
■サポート技術情報2264107:DLL 検索パス アルゴリズムを制御する新しい CWDIllegalInDllSearch レジストリ エントリについて(マイクロソフト)
http://support.microsoft.com/kb/2264107