Sysinternalsのautorunsツールで自動起動するプログラムを調査するTech TIPS

システム起動時やログオン時に自動的に実行されるプログラムは、システムのさまざまな場所で定義されている。トラブルの原因究明や解消のために、自動起動を止めたり、起動されるプログラムを変更したい場合がある。SysinternalsのAutorunsツールを使うと、自動起動するプログラムや拡張機能を簡単に調べることができる。

» 2012年08月31日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows XP/Windows Server 2003/Windows Vista/Windows Server 2008/Windows 7/Windows Server 2008 R2


解説

 Windows OSの起動時やユーザーのログオン時、何らかのイベント発生時などに自動的に実行されるプログラムやサービスなどを調査するにはいくつか方法がある。TIPS「起動時に自動実行される不要なプログラムを『起動しないようにする』方法」では、「システム構成ツール(msconfigコマンド)」を使って自動起動するプログラムを調査したり、必要なら無効にする方法を紹介している。だがこのツールでは表示されないプログラムなどもあり(例えばタスクスケジューラで起動するプログラムやエクスプローラのエクステンションとして組み込まれているプログラムなどは表示されない)、より詳しく調査したければ、他の手法が必要となる。

 そこで本TIPSでは、自動起動するプログラムを詳しく調査/設定できる、SysinternalsのAutorunsツールを紹介する。このツールについては、すでに一度TIPS「自動実行されるプログラム/サービス/アドインを一望にし、制御する」で簡単に紹介しているが、その後機能が大幅に追加されているので、改めて解説する。

操作方法

●Autorunsの入手

 SysinternalsのAutorunsツールは以下のリンクから入手できる。

 ここからAutoruns.zipファイルをダウンロードして適当なフォルダへ解凍し、実行パスを通しておく。.zipファイルの中には、GUI版のautoruns.exeの他に、CUI版のautorunsc.exeも含まれているので、両方とも展開/コピーしておく。

●Autorunsの実行

 Autoruns.exeを起動すると、システムの構成を自動的にスキャンし、自動起動するように設定されている各種プログラムの情報を表示する。その種類は非常に多く、プログラムやサービス、タスク、デバイスドライバ、ブート設定、Winsockやネットワーク関連のプロバイダー、プリントスプールモニターなどの他、ExplorerやIEなどの起動に連動する拡張機能(ExplorerのエクステンションやIEのアドオン、ログオンの拡張機能、メディア再生用のCODECなど)も含まれる。デフォルトでは全ての情報([Everything]タブ)が表示されているが、タブを選択してカテゴリー別に表示させることもできる。

Autorunsの実行例 Autorunsの実行例
Autorunsを起動すると、システムの構成が調査され、自動起動するように設定されているプログラムやドライバ、サービスなどの情報がまとめて表示される。なお、黄色く表示されているのは該当するイメージファイルが存在しないエントリ(つまり実行されないエントリ)を表す。ピンク色の行は、ファイルに発行者などの情報がないものを表す。
  (1)ファイルやレジストリの場所。エントリが記録されている場所を表す。
  (2)エントリ名。
  (3)説明。
  (4)発行者。
  (5)イメージパス名。
  (6)ファイルが存在しない場合は黄色く表示される。内容を確認後、右クリックしてポップアップメニューの[Delete]を使って削除するか、アプリケーションを再インスト−ルするなどの対策を行う。
  (7)エントリを選択すると、その説明がここに表示される。

 表示されている項目数は多いが、その内容は単純だ。エントリと説明文(これらはドライバ中などに記述されている)、発行者、実行ファイルのイメージパスである。先頭にあるチェックボックスをオフにすると、その項目を無効にできる(項目により、再ログオンやシステムの再起動などが必要)。なお、Autorunsを実行するユーザーの権限が不足している場合は、いくつかのエントリが表示されなかったり、設定を変更できないことがある。その場合は管理者権限のあるユーザーでログオンして実行するか、[File]メニュー[Run As Administrator]を選択して、権限を昇格させて実行させる。他のユーザーの自動起動を確認するには、[User]メニューからユーザーアカウントを選択する([User]メニューは、管理者権限がある場合のみ表示される)。

 項目によっては、ダブルクリックすると、該当するツール(レジストリエディタやタスクスケジューラなど)が起動するようになっているものもある。

 個の画面には非常に多くのカテゴリー(タブ)が表示されているが、それらの意味は次の通りである。

カテゴリー名 内容
Logon ログオン時に実行されるプログラムの一覧。「現在のユーザー」と「すべてのユーザー」の「スタートアップ」フォルダに登録されているエントリの他、レジストリや標準的なアプリケーションの起動用の場所に登録されているプログラム(グループポリシーによる登録なども含む)が表示される
Explorer エクスプローラのシェル拡張機能として登録されているプログラムやヘルパオブジェクト、ツールバー、MIMEフィルターなどが表示される
Internet Explorer Internet Explorerの拡張機能(アドオン)やブラウザヘルパオブジェクト、ツールバー拡張機能などが表示される
Scheduled Tasks タスクスケジューラに登録されていて、起動時やログオン時に実行されるプログラムが表示される
Services システム起動時に自動起動するように設定されているサービスが表示される
Drivers システムに登録されている、カーネルモードのドライバが表示される(無効にされているものは表示されない)
Codecs メディア再生時に自動的にロードされるCODECが表示される
Boot Execute Windows OSの起動時に実行されるファイル(セッションマネージャsmss.exeによって起動されるプログラム)が表示される
Image Hijacks .exeや.cmdなど、実行ファイルのハンドラが標準のもの以外に変更されている場合に、それが表示される
AppInit アプリケーション(USER32 DLL)を初期化するときに自動的にロードされるDLL(AppInit DLL)があれば表示される。これは、アプリケーションの実行時に任意のDLLをロードする機能である(APIフックなどに使用する)。だがマルウェアの温床になるので、Windows Vista以降では禁止されているが、それを検出するのに役立つ
KnownDLLs パフォーマンス向上などのために、Windows OSが自動的にロードするDLLのリストが表示される
Winlogon Winlogon.exeをフックしてログオンプロセスをカスタマイズするDLLの一覧が表示される
Winsock Providers 登録されているWinsockプロトコル(のプロバイダー)が表示される。Winsockプロバイダーとして自分を登録するマルウェアなどを発見するのに役立つ
Printer Monitors プリンタスプールサービスを提供するDLLが表示される。この機能を使うマルウェアなどを発見するのに役立つ
LSA Providers ユーザー認証機能を拡張するLSA(Local Security Authority)パッケージが表示される
Network Providers ネットワーク通信機能を提供するプロバイダーの一覧が表示される
Sidebar Gadgets Windows VistaのサイドバーやWindows 7のデスクトップガジェットが表示される
Autorunsで表示されるカテゴリー(タブ)

 マルウェアによっては、標準的な自動起動機能をフック(横取り)するのではなく、例えばネットワークプロバイダーやプリントスプールモニター、ログオン認証機能の拡張機能をフックする形でシステムに潜り込んで動作するものがある。このようなソフトウェアを見つけるためにもAutorunsコマンドは有用である。

●デジタル署名の検証

 表示結果のうち、いずれかの行を選択して[Ctrl]+[V]キーを押すとファイルの発行者のデジタル署名が検証され、正しく検証できれば「(Verified)」、確認できなければ「(Not Vefified)」が「Publisher」の部分に表示される。[Options]−[Filter Options][Verify code signature]をオンにしておくと、常にデジタル署名の検証が行われるようになる。

●結果データの保存

 [File]メニュー[Save]を使うと、調査した内容をバイナリのデータファイルとして保存しておくことができる(拡張子は.arn)。後でロードして(別のシステムで)解析したり、2つのファイルを比較させたりできる。設定が異なっている部分は緑色で表示される。

●コマンドラインでの使用

 Autorunsにはコマンドラインで使用するautorunsc.exeというツールも用意されている。引数なしで起動すると、現在の状態がテキスト形式で出力されるが、オプションを指定するとCSV形式やXML形式でも出力できる(ただし日本語文字は正しく出力できないようだ)。

C:\>autorunsc -? ……ヘルプの表示

Sysinternals Autoruns v11.33 - Autostart program viewer
Copyright (C) 2002-2012 Mark Russinovich and Bryce Cogswell
Sysinternals - www.sysinternals.com

Autorunsc shows programs configured to autostart during boot.

Usage: autorunsc [-x] [[-a] | [-b] [-c] [-d] [-e] [-g] [-h] [-i] [-k] [-l] [-m] [-o] [-p] [-r] [-s] [-v] [-w] [[-z <syst
emroot> <userprofile>] | [user]]]
     -a         Show all entries.
     -b         Boot execute.
     -c         Print output as CSV.
     -d         Appinit DLLs.
     -e         Explorer addons.
     -f         Show file hashes.
     -g         Sidebar gadgets (Vista and higher)
     -h         Image hijacks.
     -i         Internet Explorer addons.
……(以下省略)……

C:\>autorunsc

Sysinternals Autoruns v11.33 - Autostart program viewer
Copyright (C) 2002-2012 Mark Russinovich and Bryce Cogswell
Sysinternals - www.sysinternals.com


HKLM\System\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\StartupPrograms
   rdpclip
     rdpclip
     RDP ???? ???? ……日本語部分は化けている
     Microsoft Corporation
     6.1.7601.17514
     c:\windows\system32\rdpclip.exe

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
   C:\Windows\system32\userinit.exe
     C:\Windows\system32\userinit.exe
     Userinit ???? ????????
     Microsoft Corporation
     6.1.7601.17514
     c:\windows\system32\userinit.exe
……(以下省略)……



「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。