このページの本文へ

週刊セキュリティレポート 第16回

マルウェアも利用するWindowsの機能を知ろう

三菱重工ハッキングでも使われた「自動実行」の仕組みとは?

2011年10月17日 06時00分更新

文● 八木沼 与志勝/エフセキュア

  • この記事をはてなブックマークに追加
  • 本文印刷

2011年9月19日、多くの新聞およびテレビやインターネットメディアで衝撃的なニュースが報道されました。日本の国防や発電などの基盤産業を支える重要企業の1つである三菱重工業で、国内11拠点でサーバーやPCがマルウェアに感染し、情報が抜き出された可能性があるというのです。

 同日発表された三菱重工業の公式見解によると、マルウェア感染の事実は確認され、そのマルウェアの特性から情報漏えいの危険性があることが判明したものの、製品や技術に関する情報の社外へのデータ流出は確認されていないとのことです。ですが、一部のユーザのパスワード情報が流出した可能性なども報道されています。国の防衛上の機密に係るため情報が限定的ではありますが、マルウェアの感染による情報流出および対処の難しさと再認識させられます。

 本事件に関する一部報道では、感染したマルウェアは8種類あり、その中にはスパイウェアに分類される「TSPY_DERUSBI.A」という検出名のものが存在したようです。このマルウェアはWindows起動時に自動実行され特定のサイトに接続して情報を送信するものです。このマルウェアと同様に、多くのマルウェアはユーザーがコンピュータを利用する際に自動的に実行されるような動きをします。

 マルウェアの動作を理解するためには自動実行の理解が大切ですので、今回は自動実行について整理してみましょう。

自動実行の種類

 自動実行には2つの種類があり、自動実行されるタイミングが異なります。

 1つ目は、「ユーザーログオン時に自動実行する」タイプです。ユーザーがコンピュータにログオンした際に自動的に指定されたプログラムを実行するもので、「スタートアップ」というのがよく知られています。

 スタートアップでは、スタートメニューの「スタートアップ」フォルダに置かれたファイル(アプリケーション実行ファイルやショートカット、関連付けされたファイルなど)が、Windowsにより読み込まれ自動的に実行されます。

 スタートアップフォルダには2つの種類があり、すべてのユーザー(All Users)に共通のスタートアップフォルダと、ユーザーに固有のスタートアップフォルダがあります。前者に置かれたファイルは、そのコンピュータを利用するあらゆるユーザーがログオンした際に実行されます。後者は、そのユーザーがログオンした時のみに実行されるものです。

 ただし、Windowsはスタートアップを実行するために、スタートアップフォルダ以外の方法に準備しています。それは、「Windowsのレジストリに登録する」方法です。ある特定のレジストリの格納場所にキーの名前とコマンドライン(実行ファイルへのパス)を記載しておく方式です。スタートアップフォルダと同様に、コンピュータを利用するすべてのユーザーに適用されるものと、ユーザー固有のものが存在します。

 これらをまとめると、以下の表のようになります。

スタートアップの種類
項番方式定義場所内容
Aスタートアップフォルダ(全ユーザー共通)・Windows XP
C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ
・Windows Vista/7
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
プログラム実行ファイルやショートカット、関連付けファイルを格納。ログオンするすべてのユーザーに適用されます。変更や修正にはAdministrator権限が必要です
Bスタートアップフォルダ(ユーザー個別)・Windows XP
C:\Documents and Settings\(ユーザー名)\スタート メニュー\プログラム\スタートアップ
・Windows Vista7
C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
プログラム実行ファイルやショートカット、関連付けファイルを格納。ログオンする個別のユーザーのみに適用されます
Cレジストリ(全ユーザー共通)HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\Run
キー名とコマンドラインを格納。ログオンするすべてのユーザーに適用されます。修正や変更にはAdministrators権限が必要です。CDは、スタートアップ時に実行される点は同じですが、Dは実行後削除され、次回起動時には実行されません
Dレジストリ(全ユーザー共通)HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\Windows\CurrentVersion\RunOnce
Eレジストリ(ユーザー個別)HKEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion\Run
キー名とコマンドラインを格納。ログオンする個別のユーザーのみに適用されます。修正や変更にはAdministrators権限が必要です。EFは、スタートアップ時に実行される点は同じですが、Fは実行後削除され、次回起動時には実行されません
Fレジストリ(ユーザー個別)HKEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion\RunOnce

 表1のスタートアップには、実行順序が決まっていて、以下のような順番で実行されますので覚えておきましょう。

  1. ユーザーがWindowsにログオン
  2. D
  3. C
  4. E
  5. スタートアップフォルダ AB
  6. F

ユーザーログインに関係なく自動実行する「サービス」

 上記で解説したスタートアップの方式は、ユーザーがログオンを行なうクライアントPCでは有効ですが、ログオンしないことが多いサーバーではあまり意味がありません。また、スタートアップは、ネットワーク経由で共有フォルダを利用しても、実行しているアプリケーションにアクセスしても、実行はされません。

  そこで、攻撃者がサーバーにマルウェアを仕込んで自動実行するために利用するのがWindows「サービス」機能です。このサービスとは、OSの動作に必要なプログラムやWebサーバーの「IIS」といったサーバーアプリケーションなどを実行するための仕組みで、サービスに登録されるとユーザーのログオンに関係なくWindows起動時に自動実行されます。

 三菱重工業の件で感染したマルウェアとして例示された「TSPY_DERUSBI.A」も、このサービスを利用しており、コンピュータ起動時にスパイウェアとして動作を始めます。

 サービスの登録は以下のレジストリ配下にされています。

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

サービス登録はレジストリ内で行なわれている

自動起動型マルウェアの駆除

 これまで見た通り、自動実行の多くはレジストリを利用します。Windows内部の動作に関する情報も登録されており、下手に値を変更するとWindowsが起動しなくなることもあり得ます。さらに、複数のレジストリを変更し、1カ所を修復するだけでは、止まらないことマルウェアも多数存在します。

 したがって、ユーザーとして最初に行なうべきことは、やはりセキュリティ対策ソフトを使うことです。セキュリティ対策ソフトは、セキュリティベンダーの専門家が確認した各マルウェアの実行ファイルの置き場や、書き換えるレジストリなどをまとめてクリーニングしてくれます。

  1. セキュリティ対策ソフトの定義ファイルを最新にする
  2. リアルタイムスキャンを有効にし、つねにシステムを見張らせる
  3. セキュリティ対策ソフトの完全スキャン機能などを利用し、定期的に手動でシステムの感染状況を確認する
  4. マルウェアが見つかった場合には、セキュリティ対策ソフトの駆除機能を利用してマルウェアを駆除する

 Windowsへのログオンに著しく時間がかかったり、いつもWindows起動時に実行しているアプリケーションの起動が極端に遅くなったように感じた場合には、自動起動されるマルウェアへの感染が疑われます。このような現象を確認した場合には、、まず表1を参考にスタートアッププログラムの有無を確認してください。ここに不明なファイルやショートカットや、レジストリキーが存在していた場合には、決して実行せずにお使いのセキュリティ対策ソフトのベンダーのサポートセンターへ連絡し、指示に従ってデータを送付し専門家の解析を待ちましょう。

 そして、セキュリティベンダーのサポートセンターからの指示に従って、1つずつファイルやレジストリキーを削除するのがもっとも安全で確実な駆除方法です。また、スタートアップに怪しいファイルやレジストリキーが見あたらない場合は、サービスレベルでの自動起動を疑い、セキュリティベンダーのサポートセンターへ連絡のうえ、指示に従ってマルウェア本体やレジストリキーを特定し、削除するようにしてください。

筆者紹介:八木沼 与志勝(やぎぬま よしかつ)

エフセキュア株式会社 テクノロジー&サービス 部長
1972年生。UNIXプログラミングからIT業界に携わりはじめ、そのあとITインフラを中心としたITコンサルティングからセキュリティ業界へ。エフセキュア入社は2006年で、法人/コンシューマの製品およびプリセールスなどのサービス全般を担当する。


カテゴリートップへ

この連載の記事