Palm84 某所の日記

有為のクマにかくれり~

Generic Host Process for Win32 Services【5/29更新】

【5/22追記】ウワァーン、サブネットマスクが1点間違えてましたー。すみませんすみません。
【5/23追記】DNS Client について
【5/29追記】リモートデスクトップ(リモートアシスタンス) について

Windows XP の「C:\WINDOWS\system32\svchost.exeについて、パーソナルファイアウォールソフトの設定を考えてみました。

個人(家庭)使用におけるパーソナルファイアウォールの警告に対する対処の鉄則は「わからないものは拒否!」ですから、もちろん意味不明なものはブロックすべきですね。

ただ、これについては「全く」わからないままだとかなり不便が生じてしまうのではないでしょうか?すべてを理解する必要はないと思うんですが「最低限の安全」を保つ設定が必要ではないかなぁと。

【追記】あっとダラダラと長い説明なので要点をば・・・

ルーターなし環境では「着信」ALLブロックすべきです。と書いてみる

ソフトによって挙動に違いがあるので一概には言えないかもなんですが、インターネット上から 135/TCP へのアタックなど不正(悪意ある)だとわかり切ってるアクセスに対しても、ご丁寧に警告画面を出してくれたりするので。

「いやぁあの、出されても意味わかんないしぃ」な方も多いと思いますので(思い込みかも?)、自動ブロックしてくれた方がありがたいかも・・・なんて。

「最低限の安全」としてですが【svchost.exe】の「着信」に関しては明示的にブロックするルールを作っておいた方がいいかと。

ルーターがあるなら、「まぁ気にすんな・・るぞ」なんてのは無責任すぎますが、そもそも不正なパケットはほぼ飛んできませんし・・・と。

では、「発信」に関してはというと、これはユーザー次第かなぁとかこれまた無責任に考えるわけです。「ウイルスなどにやられなければ問題あれへんでぇ」な話になりますので。副作用みたいなもんもあるし・・ってことで。

やられんかったらええねん→やられたらどううすんの?→だからやられんように・・・無限ループorz

なんてことをずっと思ってたので私レベルですが考えてみたわけです。

Yahoo!BBケーブルTV接続などのDHCPクライアントな環境ではどうなるのか自信ないですのであしからずご了承を。(「着信」に関する設定が必要かも?)
(ブロードキャスト)[UDP] Local:68 - Remote:67 な設定が必要かも??大抵のソフトは設定要らずになってるとは思うんですが。

あっと、以下の設定は XP Service Pack 2 向けです。
※2000(またはXP SP1)とは若干違いあります。
※ウイルスバスターの設定については、セキュリティレベルが【高】の場合です。

戻る(U)

Generic Host Process for Win32 Services【svchost.exe】とは?

【svchost.exe】とは?

つまり色々なサービスをホストしてるってことですね(曖昧すぎだ。)。私の環境ではこれだけありました。やっぱ難しいので「すべてを」理解する必要はないということにしときましょ(逃げ口上ともいう・・フキフキ)

用語について

ソフトによって違いがありますよね。一応ここでは「発信」「着信」という言葉を使うことにします。

発信 こちらから要求したもの。つまり、「クライアント」動作。ブラウザ、MUA、ダウンローダなど。 【Outbound】【送信】
【Act as Client】
着信 外部(インターネット上)からの要求。つまり「サーバー」動作。 【Inbound】【受信】
【Act as Server】

つまり通信の方向ではなく、発信元で区別してるわけです。ウイルスバスターでは「送信・受信」となってます。わかりやすいんですが、ちょっと意味合いとしてはおかしいかもですね。一般家庭内の利用で着信の許可が必要なのは「インターネットゲーム」や「メッセンジャー」の一部動作などでしょうか。(メッセンジャーでも「会話」だけなら普通は「発信」のみ許可で可能な筈です。)

※メッセンジャーについては、あまり使ってないので適切な設定をわかってません。ご容赦下さい。

FTPクラインアントでの「アクティブ・モード」でも着信許可が必要となりますが、「パッシブ・モード」にすれば必要ありません。

基本は「着信」ALLブロック、「発信」はどうしましょ?

パーソナルファイアウォールソフトは原則的に「要求していない」外部からの通信についてはブロックします。しかし、この「svchost.exe」に関しては明示的にブロックするルールを作っておいた方がいいと私は思います。詳しい理由は後述しますが、開かれているポート(135/TCP など)や、アプリケーションに関連付けされたポートに関しては自動でブロックしない場合が多いからです。

大抵のソフトは警告画面を出すと思うのですが、この際に間違った許可を与えてちゃったり、意味不明で困惑してしまうことも多いんじゃないかなと。

Sygate Personal Firewall 5 では外部から 135/TCP へのアタックがあるとこんな画面が出ます。[Connection Origin]が[remote intiated]となってますので外部からの着信なのですが、これって普通はわかりにくいですよね。該当ポートを開いているアプリケーション名を出すのではなくて、「135/TCP へ接続要求が来てまっせ!」的な説明にして欲しいとか思うんですが、実際にサーバー動作するソフトを使う場合はアプリケーション名は必要になりますし・・ってことかなぁ・・・

但し、「発信」については追加(一部除外で)で許可ルールが必要となります。アプリケーション・ルールとは別に除外ルールを作成できないソフトでは少し面倒かもしれません。

自動更新(Windows Update)

問題はこれです。svchost.exe の発信をすべてブロックすると XP Service Pack 2 では自動更新だけでななくIEでWindows Updateサイトにアクセスした場合も更新ができなくなります。なので、やはり除外(特別許可)ルールを作った方がいいかなと

他の選択肢ではどうなるか?

発信のみすべて許可する

う〜ん、ぶっちぇけこれが一番楽だったりします。この設定な方も多いかと・・・。でもウイルスなんかはこのsvchost.exeを通じて外部と接続したりするものもあるので、少しですけど不安がありますねぇ。Application Hijack防止機能があれば警告が出たりしますけど

発信をブロックしない(ルールは作らない)、その都度「ask」(警告画面で処理選択)する

接続先のサーバー名を確認して、それが【windowsupdate.com】や【microsoft.com】など安全であることを確認して許可する。

機関銃の速射のように連続して警告画面が出て来たりします。かなり鬱陶しいかも。また、ウイルスバスターなどではドメイン名ではなくIPアドレスしか出ません。

普段はすべてブロック。自動更新を使わない。

Windows Updateサイトにアクセスする際には発信を許可する必要があります。自動更新を使いたくない理由がある場合を除き、このご時勢ではあまりお薦めできないかなと。

ということなので(何)、自動更新用ルールについて考えてみましょう。

戻る(U)

自動更新(Windows Update)用ルールの作成

※【ご注意】着信(受信)に関してはルーターを使用していない環境(Windowsファイル共有なども使っていない)の方向けです。

ソフトによって設定方法は違います。Sygate Personal Firewall 5 ではApplications 画面で許可IPなど一括で設定が可能です。

私見ですが、できるならアプリケーションルールとは別に除外(例外)ルールを作成した方がわかりやすくていいのではと思います。その際は「許可」ルールが優先されるように設定して下さい。

拒否ルールの作成

【注意】以下はウイルスバスターでの例です。ルールにないものが自動ブロックされるファイアウォールソフトではこの設定は不要だと思います。

【5/22追記】ウイルスバスターでは、除外リスト内の【DNS】ルールを最上位に上げておいて下さい。

ウイルスバスターでは除外リストで「svchost.exe」に対する拒否ルールをまず2つ作っておきます。

  1. 着信拒否
    • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
    • 受信
    • 拒否
    • TCP/UDP
    • すべてのポート
    • すべてのIPアドレス
  2. 発信拒否
    • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
    • 送信
    • 拒否
    • TCP/UDP
    • すべてのポート
    • すべてのIPアドレス

拒否ルールを作っておかないと、ルールにない送信のたびに警告画面が出て鬱陶しいです。※あっと、ウイルスバスターでの「受信」拒否ルールは念の為です。

で、下記の許可ルールはこの(送信)拒否ルールより優先させる必要があることを忘れないでいて下さい。。(ウイルスバスターでは横のボタンをクリックしまくりで許可ルールを上に。)

IPアドレスの確認

Sygate のログからサーバー名を確認してnslookup してみました。但し、これらは問い合わせ日時によって微妙に変更されていることが多いです。

v5stats.windowsupdate.microsoft.com 207.46.157.224,207.46.253.221
v5.windowsupdate.microsoft.com 207.46.157.29,64.4.21.188
windowsupdate.microsoft.com 207.46.205.190
download.windowsupdate.com 61.208.229.136,61.208.229.143 (以下略)
download.microsoft.com 61.200.83.62,61.58.44.221,202.47.29.29 (以下略)
windowsupdate.microsoft.com 207.46.157.190
windowsupdate.com 207.46.250.119,207.46.130.108

おーまいがー!です。なんでこんなにいっぱい通信したがるのでしょうか?(笑。あぁ、でも「セキュリティ」を考えればリスク分散・冗長化は定石ですね(汗。

では次にこれらのIPをwhoisしてみます。

Microsoft Corp 207.46.0.0/16
MS Hotmail 64.4.0.0/18
Akamai International BV(NTT COM) 61.208.229.128/25( - 61.208.229.255)
NTT/VERIO Global IP Network 61.200.83.0/24
NTT Taiwan Ltd 61.58.32.0/20( - 61.58.47.255)
NTTサイバーソリューション 202.47.29.32/27( - 202.47.29.63)
KOREA TELECOM 220.72.0.0 - 220.87.255.255

ここからは考えどこですねぇ。全部許可というか信用していいものかちと不安がありますよね。面倒だし。一応私の環境では上から1,2番の「本家」のみ許可で自動更新はできていました。でも、アクセスする順番は多分代替(?)サーバーが先ではないかと思われるので他のいくつかも設定された方がいいかと思います。但し、「本家」以外は変更されることもあると思うのでたまに確認された方がいいかも。

現時点では上から1〜3の許可設定を作っています。ウイルスバスターだと下記の様になります。

    • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
    • 送信
    • 許可
    • TCP
    • 指定のポート:80,443 と入力
    • 種類:サブネットマスク
    • IPアドレス:207.46.0.0
    • サブネットマスク:255.255.0.0[※注1]
    • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
    • 送信
    • 許可
    • TCP
    • 指定のポート:80,443 と入力
    • 種類:サブネットマスク
    • IPアドレス:64.4.0.0
    • サブネットマスク:255.255.192.0[※注2]
    • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
    • 送信
    • 許可
    • TCP
    • 指定のポート:80,443 と入力
    • 種類:サブネットマスク
    • IPアドレス:61.208.229.128
    • サブネットマスク:255.255.128.0 255.255.255.128[※注3]

[※注1] IPアドレスの範囲:207.46.0.0 - 207.46.255.255
[※注2] IPアドレスの範囲:64.4.0.0 - 64.4.63.255
[※注3] IPアドレスの範囲:61.208.229.128 - 61.208.229.255
それぞれ意味は同じです。(自分のわかりやすい方で設定して下さい。)

【余談ですが】「IPアドレスじゃなくてドメイン名で設定できたら楽なのに〜」と思われてる方もおられるかと。でも、それは危険なのです。hostsファイルの書き換えやDNSサーバーの設定を変更するウイルス・スパイウェアは珍しくないからです。

副作用として、許可されてないサーバーに関しては自動でブロックされます。また、その際にログが記録されますので定期的にログを確認して整理・削除しましょう。(更新のダウンロードが少し遅れる可能性もあります)。

とと、長々と書いてみましたがこれらの設定をしないと駄目であるとか思ってるわけではありません。また、これが最善策なのかどうかも自信はありません。設定についてお悩みの方に向けて少しは参考になればいいかなと思います。

Automatic Updates

忘れるとこでした(汗)。自動更新には下記のプログラムの「発信」許可も必要です。

  • C:\WINDOWS\system32\wuauclt.exe

えー、私はIP指定(限定)はしてません。(少し汗。

戻る(U)

ユニバーサル プラグ アンド プレイ

ポート:1900/UDP, ポート:2869/TCP が開かれます。

この機能が必要となるのは、ルーターを使用+インターネットゲームなどこの機能を必要とする場合のみですよね。ルーターなしの環境、またはこの機能が不要な場合はサービスそのものを止めちゃいましょう。

  • ファイル名を指定して実行【services.msc】
    • Universal Plug and Play Device Host を[無効]に設定
    • SSDP Discovery Service を[無効]に設定

戻る(U)

リモートデスクトップ(リモートアシスタンス)

ポート:3389/TCP が開かれます。

通常時は無効にすることをお奨めします。

コントロールパネル→システム→リモート 【このコンピュータにユーザーがリモートで接続することを許可する】と【このコンピュータからリモート アシスタンスの招待を送信することを許可する】のチェックを外します。

戻る(U)

時刻同期

使ってます?・・123/UDP(NTP) が開いている場合はこのサービス【Windows Time】が有効になっています。

使わないなら上記と同じ方法で【Windows Time】を止めましょう。これで 123/UDP が開かなくなります。(コントロールパネル→日付と時刻→インターネット時刻→自動的に〜 のチェックも外す)

使う場合はパーソナルファイアウォールの設定が必要です。ウイルスバスターだと下記の通りです。

  • 指定のアプリケーション[C:\WINDOWS\system32\svchost.exe]
  • 送信
  • 許可
  • UDP
  • 指定のポート:123 と入力
  • 種類:IPアドレス
  • IPアドレス:207.46.130.100(time.windows.com)

プロトコルがUDPなのでソフトによっては「着信」許可が必要な場合もあります。Sygate では、「Advanced Rule」で設定されるのがいいかなと。

  • Hosts:IP Address → 207.46.130.100
  • Protocol → UDP, Remote → 123, Local → 123, Traffic Direction → Both
  • Applications → Generic Host Process for Win32 Services

日付と時刻のプロパティ画面から同期が成功するか試してみて下さい。

【余談】Windows2000で時刻同期サービス(svchost.exe ではなく services.exe ですけど)を動かすには設定が必要です。私は下記ページを参考にntp1.jst.mfeed.ad.jpに設定しています。

戻る(U)

【DNSクライアント】の設定

※設定不要な場合もあります。
※ウイルスバスターでは【DNS】ルールが他の「拒否」ルールより上位にあれば設定は不要です。

【DNS Client】サービスが自動(開始)に設定されている場合は、svchost.exe のリモート(DNSサーバー)53/UDP 宛への「発信」を許可する必要があります。

【DNS Client】サービスが自動(開始)の場合

svchost.exe がリモート(DNSサーバー)53/UDP へ「発信」します。

【DNS Client】サービスが手動または無効(停止)の場合

アプリケーション自体(ブラウザ・MUAなど)がリモート(DNSサーバー)53/UDP へ「発信」します

アプリケーションごとの設定でもいいのですが面倒なので、どちらの場合も下記ルールの作成をお薦めします。

  • アプリケーション指定なし
  • プロトコル:UDP
  • ポート:リモート 53
  • 方向:発信(Outbound)
  • DNSサーバーの設定が固定の場合はIPを指定

戻る(U)

【DHCPクライアント】の設定

私の環境ではほとんど不要なので特別な設定はしてません(ルーターの方はしてます)。通常設定不要になってるかと思うんですが、適切な設定はどんなものなのか、また後日書いてみたいと思います。(って、いつになることやら・・・フキフキ)盗作だw

これもソフトによっては不要な場合もありますが、Yahoo!BB や ケーブルTV接続環境などでIPアドレスの取得が出来ない際には設定が必要になるかも。

  • アプリケーション:svchost.exe
  • プロトコル:UDP(ブロードキャスト)
  • ポート - ローカル:68 リモート:67
  • 双方向

※すみません、これについてはちょっと自信ないです。DHCP環境で試してからまた追記します。

というか・・ここまでするべきか、「着信」のみ拒否して「発信」をすべて許可した方が楽な気も少ししたりしますけど・・・。だめ?ソフトによって設定方法違いますし・・う〜ん。結論ないんかい!みたいな。

戻る(U)

補記

  • Windows 2000/XP SP1(Windows Update version 4) では、Windows Updateサイトのでの更新時に svchost.exe の発信許可は不要です。
  • 時刻同期サービスを使うには、ルーターの設定も必要です
  • ルーター使用の環境では、 svchost.exe の「着信ブロック」ルールは不要かも?

戻る(U)