Flamer がローカルネットワーク上に拡散するには、さまざまな方法があります。そのひとつが、Windows Update を実行するクライアントを乗っ取る方法です。悪質な更新の配信には、SNACK、MUNCH、GADGET という 3 つの Flamer アプリケーションが関係しています。
Internet Explorer を起動すると、デフォルトでは自動的にプロキシ構成の設定が検索されます。このとき使われるのが、WPAD(Web Proxy Auto-Discovery Protocol)というプロトコルです。Internet Explorer は、コンピュータのドメイン名に基づいてプロキシ設定(wpad.dat)を取得しようとします。たとえば computerA.group.company.com というコンピュータの場合、Internet Explorer は以下のドメインから wpad.dat を要求します。
- wpad.group.company.com
- wpad.company.com
これらのドメイン名を解決するときは DNS サーバーに進むのが普通ですが、DNS サーバーにレコードが登録されていない場合、Internet Explorer は名前解決に WINS または NetBIOS を使います。
NetBIOS による名前解決では、中央のサーバーを使わないピアツーピア方式でローカルネットワーク上のコンピュータを相互に検索することができます。各コンピュータは、自身を識別する独自の名前をブロードキャストするだけです。この方式が安全でないことは明らかであり、コンピュータどうしのなりすましにも、この点が利用されています。
SNACK は、ローカルネットワーク上で NetBIOS 要求を盗聴するなど、多くの機能を実行します。クライアントがネットワーク上でコンピュータ名の解決を試み、なかでも WPAD を要求しようとすると、Flamer は WPAD サーバーを騙って偽の WPAD 設定ファイル(wpad.dat)を提供します。NetBIOS による WPAD の乗っ取りはよく知られた手口であり、広く使われているハッキングツールの多くで実装されています。
まだ感染していないコンピュータが偽の wpad.dat ファイルを受け取ると、そのプロキシサーバーは Flamer に感染したコンピュータに設定されます。こうして、この Web トラフィックは先に Flamer に感染していたコンピュータにリダイレクトされるようになります。
MUNCH は Flamer 内部の Web サーバーであり、リダイレクトされたトラフィックを受信します。MUNCH は各種のクエリーをチェックしますが、その中に Windows Update に一致する URL も含まれています。
更新には Microsoft の署名が必要なので、Windows Update を乗っ取るのは容易ではありませんが、Flamer は Microsoft Root Authority に連鎖する証明書を使ってこの制約をすり抜け、コードに対する不正な署名を可能にしています。そして、Windows Update の要求を受け取った GADGET モジュールは、Microsoft から発行されたように見える証明書で署名されたバイナリを MUNCH 経由で提供します。
このバイナリは、感染していないコンピュータから、まるで正規の Windows Update ファイルであるかのようにダウンロードされ実行されます。バイナリは Flamer そのものではなく、Flamer のローダーです。以下の例では、このバイナリを TumblerEXE.exe と呼ぶことにします。
まず Tumbler は、インストールされているセキュリティ製品など、ネットワークインターフェースとシステム情報に関するチェックを実行します。
次に、以下の形式の URL を使って HTTP 経由で、Flamer に感染したコンピュータに接続します。
[http://]MSHOME-<
文字列
>/view.php?mp=1&jz=<
文字列
>&fd=<
文字列
>&am=<
文字列
>&ef=<
文字列
>&pr=<
文字列
>&ec=<
文字列
>&ov=<
文字列
>&dd=<
文字列
>
Flamer に感染したコンピュータの MUNCH アプリケーションは、それ自身(mssecmgr.ocx)を使って応答し、Tumbler はこれを %Windir%\temp\~ZFF042.tmp という名前で保存したうえで実行します。このファイル名は、サンプルによって異なります。
これが実行されると、コンピュータは Flamer に感染します。
- クライアントが NetBIOS を介して WPAD 要求を実行する。
- Flamer が WPAD 設定ファイルの応答を詐称し、要求元のコンピュータにプロキシを設定する。
- クライアントが Windows Update を要求すると Flamer にリダイレクトされる。
- Flamer が署名付きのバイナリ(Tumbler)を使って応答する。
- Tumbler が Flamer をダウンロードし、インストールする。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。