Video Screencast Help
Symantec Appoints Michael A. Brown CEO. Learn more.
Security Response

.lnk ファイル脆弱性以前の Stuxnet

Created: 24 Sep 2010 11:03:40 GMT • Translations available: English
Liam O Murchu's picture
0 0 Votes
Login to vote

Stuxnet により使用されている .lnk ファイルのゼロデイ脆弱性(BID 43073)を悪用するコードは、2010 年 3 月頃にこの脅威に追加されました。このことは、これよりも前にシマンテックが確認したサンプルには、この脆弱性を悪用するコードが含まれていなかったことからわかります。このため、「Stuxnet の以前の亜種はどのようにリームバブルデバイスを介して広がったのか」という疑問が生じます。

 
その答えは、以前のバージョンでは脆弱性を利用しない代わりに AutoRun の手法を使用して広がっていたというものです。ワームは、リムーバブルドライブのルートに、2 つの異なる目的に合った autorun.inf ファイルを作成するという手法を使用していました。特別に細工されたファイルは、実行可能ファイル、または正しい形式の autorun.inf ファイルのどちらかとして解釈される可能性がありました。Windows が autorun.inf ファイルを解析するとき、その解析はかなり寛容です。具体的には、正当な AutoRun コマンドの一部として認識されないすべての文字は、不要なデータとしてスキップされ、解析が続けられます。Stuxnet は、autorun.inf ファイル内の先頭に MZ ファイルを配置することで、このことを悪用します。Windows が autorun.inf ファイルを解析すると、ファイルの末尾に付加されている正当な AutoRun コマンドが検出されるまで、MZ の内容がすべて不要なデータとして無視されます。autorun.inf ファイルのヘッダーとフッターは、次の図のようになります。
 
autorun.inf ファイルのヘッダー:
 
 
autorun.inf ファイルのフッター:
 
 
次のように、フッターから文字列だけを抜粋すると、正当な AutoRun コマンドから構成されていることがわかります。
 
 
 
 
AutoRun コマンドが、実行するファイルとして autorun.inf ファイル自身を指定している点に注目してください(上の図で赤色で囲まれている部分です)。この手法を使用して、autorun.inf ファイルはまず正当な autorun.inf ファイルとして扱われた後、正当な実行可能ファイルとして扱われます(つまり、ワームのコードが実行されます)。
この狡猾な策略に加えて、Stuxnet は別の手法を使用して、実行される可能性を高めます。上に示した AutoRun コマンドは、まず自動再生を無効にしてから、新しいコマンドをコンテキスト(右クリック)メニューに追加します。追加されるコマンドは %Windir%\system32\shell32.dll,-8496 にあり、実際には文字列「Open(開く)」として表示されます。これは、リムーバブルデバイスのコンテキストメニューを表示すると、次のスクリーンショットに示すように、実際には 2 つの「Open(開く)」コマンドが表示されることを意味します。
 
 
 
 
これらのコマンドのうち、一方は正当なもので、もう一方は Stuxnet により追加されたものです。ユーザーがドライブを開く際に選択したコマンドが悪質な「Open(開く)」メニューコマンドであった場合、autorun.inf ファイル内のコマンドとしてワームが実行されます。その後、Stuxnet コードはエクスプローラウィンドウを開いてドライブの内容を表示するため、面倒なことは何も起きていないように見えます。この手法が成功するかどうかは、コンピュータの自動再生および自動実行の設定に依存するため、これらの機能を無効にすると、ワームがこれらの機能を利用して広がる可能性を下げることができます。
 
これは、Stuxnet に潜んでいる数多くのちょっとした驚きの 1 つにすぎません。おそらく、この脅威にはさらにまだいくつかの驚きが隠されているものと予想しています…