セキュリティ対策の要点解説

第 7 回 動いてなければ危険じゃない ~ Reduce Attacking Surface ~ 動作しているサービスの最小化

公開日: 2006年7月26日

マイクロソフト株式会社
セキュリティ レスポンス チーム
小野寺 匠 著

前回、外部からの攻撃のリスクを押さえるための安全な通信経路を確保するための方法として、 IPSec を取り上げました。今回も、外部からの攻撃リスクを抑える方法として、サービスの最小化についてお話します。

サービスという名前を聞いたことがある方も多いと思います。サービスは、Windows の色々な機能を支える、バックグラウンドで動作するプログラムです。バックグランドで、PC を直接操作するユーザーや、ネットワーク越しに利用するユーザーに様々な機能や利便性を提供しています。その機能には、ファイル共有の様な目に触れやすいものもあれば、プラグ アンド プレイ サービスのような意識していないところで利用されているものもあります。

このサービスと、セキュリティがどの様に関係するかですが、サービスの中には、ユーザーと直接接点を持つ物があり、かつ、OS と連携して特別な機能を提供するために、高い権限で動作していることが多いという点で、セキュリティと関係してきます。サービスは、セキュリティ側からは、Attacking Surface (攻撃可能な面または点) として扱われます。この Surface (面または点) を減らす、すなわち攻撃される対象を減らすことで、安全な環境にする方法です。

どの様に Surface を減らすかですが、基本はサービスを無効にすることです。サービスを停止させるのではなく、無効にするというのが、重要なポイントになります。サービスには、「動作」、「停止」、「無効」の 3 種類の基本的な状態がありますが、「停止」はユーザーや、他のサービスの要求に応じていつでも動作できる状態なのです。そのため、その瞬間に停止しているだけという事になります。「無効」は、サービスへの一切の操作を拒否する状態になるため、無効にされたサービスは、動作するよう要求してもサービスが動き出すことはありません。これで、初めてサービスを安全に停止したままの状態にすることができます。

しかし、問題はどのサービスを無効に設定するべきか、ということです。不用意にサービスを無効に設定すれば、今まで正常に動作していたものが動作しなくなる可能性があります。これでは、いくらセキュリティ的に安全でも全く意味がありません。

既に、稼動しているシステムについては、試行錯誤 (テスト) を十分に行って不要なサービスを見つけ出していくしかありません。そのため、このサービスの最小化を行う最も適切なタイミングは、システムを開発している最中と、OS のデフォルト設定を決める時 (出荷時) となります。

システム開発時には、関連資料などを参考に OS が動作するための最小限のサービス以外を全て無効に設定した状態で開発を始め、後は、必要に応じて追加のサービスを動作させます。この様に書くと、面倒なだけに見えてしまうかもしれませんが、システムにとってサービスの最小化は、もう 1 つの利点があります。それは、無効化されたサービスにセキュリティ更新プログラムを適用する必要はないということです。要は、適用する更新プログラムを最小化し、再起動や更新プログラムの適用による再検証などの手間を省くことが可能だということです。その場合でも、定期メンテナンスなどの余裕のあるタイミングで、将来、無効化したサービスを使う可能性に備えてセキュリティ更新プログラムは適用するべきでしょう。

最後は、OS のデフォルト設定を決める時 (出荷時) の話になります。Windows Server 2003 の出荷時にも幾つかのサービスが既定で無効に設定されたり、自動的な起動を行わないように設定されて出荷されました。アプリケーションや他のサービスは、この出荷時の設定を前提に開発を行っていますので、より安全にサービスの最小化を実現しています。次の Windows である Windows Vista でもまた、サービスを最小化するべく初期設定が改善されています。また、サービス自体の権限も最小化されています。この権限の最小化は後付けで行うことは非常に困難であるため、OS の出荷時や、他社製のサービスでのみ行うことができます。この権限の最小化については、次回にもう少し詳しく触れてみたいと思います。

関連サイト:

この記事は、マイクロソフト セキュリティ ニュースレターで配信しました。

ページのトップへ

バックナンバー

ページのトップへ