svchost.exeとは - わかりやすく解説 Weblio辞書 (original) (raw)

svchost.exe (Service HostあるいはSvcHost) はWindows NT系オペレーティングシステムで複数のWindowsサービスを受け持つシステムプロセスである[1]。svchostはリソースの消費を低減するために数多くのサービスを単一のプロセスで共有することができ、いわゆる_共有サービスプロセス_の実装に必要不可欠である。複数のサービスを単一のプロセスにグループ化することで処理リソースを節約する。Windowsのプロセス生成はUnix系などの他のオペレーティングシステムよりも多くの時間とメモリを消費するため、この考慮はNTの設計者にとってとりわけ懸念事項であった[2]。しかしながら、もしサービスのうちの一つが想定外の例外(エラー)を発生させると、そのプロセスごとクラッシュするであろう。また、エンドユーザーにとってはコンポーネントサービスを特定することがより困難になる。様々なホストサービスの問題、特にWindows Updateはユーザーや報道機関からはsvchostの問題として報告される。

svchostプロセスはWindows 2000で追加されたが[3]、共有サービスプロセスの基本的なサポートはWindows NT 3.1から存在していた[2]

目次

実装

実行可能イメージは%SystemRoot%\System32\Svchost.exeまたは%SystemRoot%\SysWOW64\Svchost.exe(後者は64ビットシステムで32ビットサービスを実行する役割を持つ)で、複数のインスタンスでそれぞれが1つまたは複数のサービスを受け持つ。

SvcHostのサービスはダイナミックリンクライブラリ (DLL) として実装される。各サービスのレジストリキーはParametersサブキーにServiceDllという名前の値を持ち、サービスのDLLファイルを指している。イメージパス定義は%SystemRoot%\System32\svchost.exe -k (サービスグループ名、例えばnetsvcs)という形式となる。サービスは同じパラメータのSvcHostプロセスを共有し、SCM(サービス コントロール マネージャ(英語版))のデータベースに単一のエントリを持っている。最初にSvcHostプロセスがパラメータ指定で起動されると、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchostキー(サービス名のリスト)下の同じ名前の値を参照する。そして、ホストする全てのサービスをSCMに通知する。SCMはサービスを受け持った2つ目のSvcHostプロセスを起動することなく、代わりに、そのコンテキスト内で起動されるべきサービス名を含むそれぞれのSvcHostプロセスに対して単に開始コマンドを送る。

2003年のマイクロソフトのプレゼンテーションによると、共有サービスの最小ワーキングセットは150kBで、独立プロセスでは800kBであった。

サービスタグ

Windows Vistaより、共有プロセス(svchostを含む)にあるサービスの内部識別がサービスタグで保持されるようになった。それぞれのスレッドのサービスタグはスレッド環境ブロック(英語版) (thread environment block : TEB) のSubProcessTagに保持される。タグはWindowsのスレッドプール(英語版APIによって間接的に作成されたスレッドを除き、メインサービススレッド開始後の全てのスレッドに継承される。[4]

サービスタグ管理ルーチンは2016年時点で非公開APIであるが、サービスに関連付けられたTCP接続の情報を出力するnetstatといったいくつかのWindowsユーティリティーで使われている。ScTagQueryなどいくつかのサードパーティー製ツールでもこのAPIが使われている。[4]

特定とホストサービスの管理

Windows XPやそれ以降のエディションでは、tasklistコマンドに/svcスイッチを付けることで各プロセスのコンポーネントサービスの一覧を出力できる。

Windows Vista以降では、Windows タスク マネージャーの「サービス」タブにサービスのリストおよびグループとプロセスIDが表示される。また「プロセス」タブのsvchostインスタンスを右クリックして「サービスを表示」を選択することでも、サービスのリストに切り替え、さらに同じsvchostインスタンスで実行しているサービスを選択する。

Windows 8では、タスクマネージャーの「プロセス」タブは展開可能なリストになり、各svchostは横の矢印をクリックすることで実行中のサービスのサブリストを展開できるようになった。

セキュリティの問題

svchost.exeは共通のシステムプロセスとして使われるため、いくつかのマルウェアは "svchost.exe" のプロセス名を模倣して使用している。元のsvchost.exeシステムファイルはC:\Windows\System32フォルダーに配置されている。それ以外のフォルダーに配置されている "svchost.exe" はマルウェアであると考えられる[5]。プロセスのイメージパスおよびその起動コマンドラインを特定することは、偽装ソフトウェアを見分けることに役に立ち、またsvchost.exeのプロセス名を装って実行している実際のプログラムファイルを見つけやすくする(Windowsは同名の複数のプロセスを全て表示する)。いくつかのマルウェアには.dllファイルを正規のsvchostプロセスに注入するものがあり、Confickerワーム[6]、やSNOWGLOBEが挙げられる。[7]

関連項目

脚注

  1. ^ Russinovich, Solomon & Ionescu (2009:302)
  2. ^ a bShared Services - Larry Osterman's WebLog”. Larry Osterman (2005年9月9日). 2014年10月1日閲覧。
  3. ^How to troubleshoot Service Host (svchost.exe) related problems?”. 2014年10月1日閲覧。
  4. ^ a b Russinovich, Solomon & Ionescu (2012:335)
  5. ^Svchost.exe - What is svchost.exe? Windows system file”. 2014年10月1日閲覧。
  6. ^ Microsoft (2009年8月5日). “Virus alert about the Win32/Conficker worm”. Microsoft. 2010年2月24日閲覧。
  7. ^ http://www.spiegel.de/media/media-35688.pdf

参考文献

外部リンク

Windows コンポーネント
コア .NET Framework Aero ClearType COMOLE - OLE オートメーション - DCOM - ActiveX - 構造化ストレージ - MTSDirectX DWM GDI Windows Imaging Component Windows Imaging Format Windows Script HostVBScript - JScriptWindows サーチ 印刷 (XPS) エクスプローラー 音声 シェル(シェル名前空間(スタートメニュー - タスクバー - 特殊フォルダ - 関連付け) 次世代 TCP/IP スタック
アプリとツール Cmd.exe Cortana FAX とスキャン Mobility Center PowerShell Snipping Tool Sysprep Windows Journal Windows Media Player Windows Mobile デバイス センター Windows Subsystem for Linux Windows Update Windows インストーラー Windows 画像と FAX ビューア Microsoft Edge Microsoftストア WinSAT イベント ビューアー 音声認識 外字エディタ 拡大鏡 カレンダー 管理コンソール コントロール パネル(アプレット) サウンド レコーダー システム構成 システム ファイル チェッカー システムの復元 スキャンディスク (CHKDSK) タスク マネージャー ディスク クリーンアップ デバイス マネージャー デフラグ 電卓 ナレーター フィードバック Hub ペイント メモ帳 文字コード表 問題の報告と解決 リモート アシスタンス ワードパッド
カーネル DLL EXE HAL I/O Ntoskrnl.exe Svchost.exe Win32コンソール Winlogon WinPE WinRE WOW/WOW64 Windows サービス NTLDR/ブート マネージャー サービス コントロール マネージャー アイドル プロセス カーネル パッチ保護 回復コンソール レジストリ
サービス CLFS BITS Windows エラー報告 Wireless Zero Configuration シャドウ コピー 自動再生 タスク スケジューラ マルチメディア クラス スケジューラ
ファイルシステム CDFS DFS exFAT FAT12 FAT16 FAT32 IFS NTFSジャンクション - マウント ポイント - リパース ポイント - シンボリック リンク - TxF - EFSReFS UDF
サーバー Active Directory DFS レプリケーション DNS IIS MSDTC NAP RMS SharePoint Services Windows Media Services WSUS 移動ユーザー プロファイル グループ ポリシー ドメイン リモートデスクトップサービス (Remote Desktop Protocol)
アーキテクチャ CSRSS IRP KTM LSASS NT系のアーキテクチャ SMSS Windows リソース保護 オブジェクト マネージャー スタートアップ プロセス (Vista) セキュリティアカウントマネージャー(SAM)(英語版) 論理ディスク マネージャー
セキュリティ機能 ウィルス対策 ファイアウォール 悪意のあるソフトウェアの削除ツール Safety Scanner DEP MIC UAC UIPI KPP セキュリティとメンテナンス BitLocker
デジタル著作権管理 Protected Media Path(英語版PlayReady
開発終了 ゲーム リバーシ ピンボール インクボール Chess Titans Mahjong Titans Purble Place スパイダ ソリティア ソリティア ハーツ フリーセル マインスイーパ アプリ Anytime Upgrade CardSpace Contacts DVD メーカー Internet Explorer Mail Media Center Messenger Mobile Device Center NetMeeting Outlook Express WinHelp デスクトップ ガジェット ハイパーターミナル バックアップと復元センター フォト ギャラリー プログラムマネージャ ミーティング スペース ムービー メーカー リソースメーター その他 UNIX サブシステム Interix Video for Windows
カテゴリ