片手間に行うWindowsセキュリティ向上策(2006/05/12発行)

SS 研究会 セキュリティガイド①
片 手 間 に行 う
Windows セキュリティ向 上 策
2006 年 5 月 12 日発行
第1版
サイエンティフィック・システム研究会
セキュリティガイド委員会
http://www.ssken.gr.jp/
本ガイドのご利用にあたって
1. ご利用範囲
• 本ガイドは、サイエンティフィック・システム研究会(SS 研)の会員に限らず、どなた
でもご利用いただけます。
2. 免責事項
• 本ガイドは、予告もなく改版される場合がございます。
最新版は SS 研ウェブサイトにて公開しておりますので、ご利用者の責任において、
常に最新版をダウンロードしご利用いただきますよう、お願いいたします。
• 本ガイドに記載された情報の正確性については万全を期しておりますが、誤解を生み
やすい記載や誤植を含む可能性があります。
その際に生じたいかなる損害に関して、当研究会(委員会)は責任を負いません。
3. お願い
• 本ガイドの内容についてのお問合せには一切応じませんので、予めご留意ください。
• 本ガイドのご利用後は、アンケートにご協力をお願いいたします。
アンケートは、SS 研ウェブサイトにて公開しております。
アンケートからいただいたご意見・ご要望は、今後の企画・改版の参考にさせていた
だきます。
SS 研ウェブサイト
http://www.ssken.gr.jp/
発行:サイエンティフィック・システム研究会
セキュリティガイド委員会
サイエンティフィック・システム研究会 セキュリティガイド①
目 次
1
はじめに ........................................................................................................................ 1
―
クライアント編
―
2
OSのインストール直後に行うこと ............................................................................. 2
3
サービスパックの自動インストール ............................................................................. 4
4
セキュリティを向上させるマイクロソフト製無償ツール群.......................................... 5
4.1 Critical Update Notification(重要な更新の通知) .................................................. 5
4.2 MBSA....................................................................................................................... 6
5
ウイルス(ワーム)対策とスパイウェア対策 ............................................................... 8
5.1
ウイルス(ワーム)対策 .......................................................................................... 8
5.2
スパイウェア対策 ..................................................................................................... 9
― 管
6
理
者 編
―
片手間にできるセキュリティ向上策 ........................................................................... 10
6.1
Windows Server Update Services (WSUS)[無償] ............................................ 10
6.2
Systems Management Server (SMS)[有償] ..................................................... 10
6.3 隠しサーバ ............................................................................................................... 11
6.4 一次的なコンピュータ名を公開して恒常的なコンピュータ名を隠蔽する ............... 12
6.5 クライアントの利用者をリアルタイムに把握する(Windows2000 編) ................ 13
6.6 クライアントの利用者をリアルタイムに把握する(XP/2003 編) ......................... 17
6.7 管理スクリプトの暗号化 .......................................................................................... 18
6.8 隠し共有フォルダ..................................................................................................... 19
6.9 Authenticated Users グループの有効活用 ............................................................... 19
6.10 一定時間使用していないクライアントを強制的にログオフする ........................... 20
6.11 グループポリシーで可能なセキュリティ向上策 .................................................... 20
6.12 監査の管理 ............................................................................................................. 23
i
サイエンティフィック・システム研究会 セキュリティガイド①
片手間に行う Windows セキュリティ向上策
第 2 版 2006/05/12 公開
1
はじめに
本稿では、Windows2000/XP/2003 を中心とした Windows ネットワークに関するセキュ
リティ向上策について、最も基本となるサービスパックの取り扱い方、および簡単に実
現できる項目を Tips 的に紹介、解説する。以下に示すサイトでは、マイクロソフト製
品全体に関する系統的なセキュリティ情報を取得するための有用な情報を掲載してい
る。是非参考にしてほしい。
マイクロソフトが提供するセキュリティ関連ポータル
日本語 http://www.microsoft.com/japan/security/
英語
http://www.microsoft.com/security/
セキュリティ 警告サービス 日本語版
http://www.microsoft.com/japan/technet/security/bulletin/notify.mspx
セキュリティ情報センター
http://www.microsoft.com/japan/security/sicinfo.mspx
最新のセキュリティコンテンツ関連(TechNET セキュリティ)
http://www.microsoft.com/japan/technet/security/default.mspx
更新ソフトウェアおよび重要なアップデート
<Windows 2000>
http://www.microsoft.com/japan/windows2000/downloads/critical/default.asp
<Windows XP>
http://www.microsoft.com/japan/windowsxp/downloads/updates/default.mspx
<Windows Server 2003>
http://www.microsoft.com/japan/windowsserver2003/downloads/updates/default.m
spx
1
― クライアント編 ―
2
OSのインストール直後に行うこと
Windows をインストールした直後に最低限行わなければならないことは以下の 3 点であ
る。ウィルスチェックソフトでスキャンしてから以下の 3 点を実行することをお勧めす
る。
① 最新の SP(サービスパック)を適用する
最新の SP は、マイクロソフトの WEB サイトからダウンロードが可能である。ただ
し、容量も大きくネットワークに負荷をかけることが多いため、雑誌添付の付録
CDROM、オフライン、NAT 経由で 80 番ポートのみ開放のいづれかで使用することを
お勧めする。
マイクロソフト ダウンロードセンターサイト
http://www.microsoft.com/downloads/search.aspx?langid=13&displaylang=ja
なお、サービスパックはインタラクティブにインストールするだけでなく無人イン
ストール用の機能も用意されている。無人インストール機能を使用することで、利
用者に意識させることなく、確実にインストールを遂行することが可能である。サ
ービスパックの無人インストールの方法については「3.サービスパックの無人イ
ンストール」を参照のこと。
② 最新の Windows コンポーネントにアップグレードする
実は、サービスパックを適用しただけでは完全にセキュアな環境になっているとは
いえない。例えば、Internet Explorer や Outlook Express の最新パッケージは、
サービスパックでは提供されないからである。Internet Explorer や Outlook
Express は特に狙われやすいコンポーネントであるため、常に最新の状態に保つこ
とが必要である。
ただし、アップデートについては業務プログラムや運用の整合性を十分に検証する
必要がある。例えば、Outlook Express 6 では、デフォルトで添付ファイルを開く
ことができなくなっている。これはセキュリティ上よいことに違いはないが、ユー
ザのスキルレベルによっては添付ファイルが見られないと大騒ぎになることも考
えられる。もし十分な検証が行えない場合には、ひとまずコンポーネントのアップ
グレードは行わずに、現バージョンに対する最新のサービスパックやホットフィッ
クスを適用するようにするとよい。
2
最新のコンポーネントについてはそれぞれのホームページからのリンクをたどる
か、最近では Microsoft Update サイトで一元管理が行われるようになっている。
Microsoft Update では、Windows Update の全ての機能と利点に加え、Windows,
Ofiice およびその他の Microsoft アプリケーションに対する更新プログラムを1
か所で入手出来るようになっている。デスクトップから「スタートメニュー」の
「Microsoft Update」を選択(一度 Microsoft Update を実行しないとメニューが登
録されません)するか、以下のサイトを直接参照すれば、ローカルコンピュータに
必要な最新コンポーネントの状態を取得することができる。
Microsoft Update 日本語サイト
http://update.microsoft.com/microsoftupdate/v6/muoptdefault.aspx?ln=ja
③ 最新のセキュリティパッチを適用する
セキュリティパッチとは、言い換えればホットフィックスである。これはサービス
パックがリリースされた以降に判明した障害を一時的に修正するものであり、
PreSP4xxxxx などという管理番号が付加されていることが多い。頭に Pre とつくの
は、次期サービスパックに含まれることが予定されているからである。
従来セキュリティパッチは、利用者が個々に手動でインストールする必要があった
が、最近では Internet Explorer 同様、Windows Update サイトで一元管理されるよ
うになった。このため、利用者の負荷が大幅に軽減されている。適用の順番も、ア
ップデートプログラムが自動的に行ってくれるため、何も考えずに適用することが
できる。
上記のいずれについても共通に言えることは、
「修正の適用にはリスクを伴う」という
ことである。特にサーバについては十分な検証、もしくは情報収集が必要である。セ
キュリティが向上したからといって、従来の運用との整合性が 100%保障されるわけで
はないことを十分に認識しておかなければならない。
サービスパックについては、リリース直後から各種 ML やマイクロソフトコミュニティ
等で適用結果が報告される傾向にある。特に、デバイスドライバ等との整合性につい
ては適用してみなければわからないことが多く、こうした情報源は十分に活用すべき
である。特に、マイクロソフト系の NewsGroup やブログは必ずチェックしておきたい
サイトのひとつである。日本語版の NewsGroup やブログについては以下に示すマイク
ロソフトコミュニティから参照することができる。
http://www.microsoft.com/japan/communities/default.aspx
NewsGroup のポスト量が減少傾向にあるため、この他に Google 等で検索した結果を全
てチェックする等の方法も有用である。
3
3
サービスパックの自動インストール
サービスパックとはマイクロソフトが定期的に提供する無償の障害修正パッケージ
である。障害修正のみならず、新しい機能を含むこともあり、リリース直後には雑誌等
で特集が組まれることも多い。リリースされてから 2 ヶ月もすると、ほぼ全ての障害情
報が出尽くす。上記の NewsGroup やマイクロソフトの Knowledge Base を参照し、問題
がないようならば適用するとよい。
適用には雑誌に添付されている CDROM やマイクロソフトのダウンロードサイトから入
手したサービスパックをダブルクリックすると、いくつかのダイアログボックスが表示
されるので、それに答えることで適用することができる。これをマイクロソフトが良く
使用する用語で「インタラクティブ(対話)モード」と言うが、適用の台数が多い場合
やエンドユーザにインストールを委任することができない場合には無人化/自動化を検
討したほうがよい。
サービスパックの適用を自動化するには、以下に示す方法が考えられる。
・ 無人インストール用のコマンドスイッチを使用して実行する
- Service Pack(まとめられた公開修正プログラム)
- Hotfix(セキュリティ上深刻な脆弱性に対する緊急修正プログラム)
- ロールアップパッケージ[SRP](セキュリティパッチを集約した修正プログラム)
・ グループポリシーを使用してコンピュータにアドバタイズする
・ OS のインストール CD の内容を SP で上書きした CDROM を再作成し、これをインスト
ール用 CDROM として使用する
・ Systems Management Server などの配布アプリケーションを使用する
それぞれの具体的な適用方法については以下のサイトから「インストールと導入ガイ
ド」をクリックして参照していただきたい。
Windows 2000 Service Pack 4 日本語版
http://www.microsoft.com/japan/windows2000/downloads/servicepacks/sp4/default
.asp
Windows XP Service Pack 2
http://www.microsoft.com/japan/technet/prodtechnol/winxppro/maintain/winxpsp2
.mspx
4
Windows Server 2003 Service Pack 1 RC
http://www.microsoft.com/japan/technet/prodtechnol/windowsserver2003/servicep
ack/default.mspx
4
セキュリティを向上させるマイクロソフト製無償ツール群
サービスパックの性格上、リアルタイム性を求めることは不可能である。とはいえ、
セキュリティに関する警告は日々報告されており、サービスパックを待っていてはアタ
ックを受ける可能性が高くなることはいうまでも無い。事実、マイクロソフトは頻繁に
セキュリティパッチを更新、登録しており、これを適用していないばかりにアタックを
受け大問題となることも少なくない。
マイクロソフトは、個々のクライアントおよびサーバ群のセキュリティ向上を目的とし
て、同社の TechNet サイトにおいて無償のツールを数多く提供している。
セキュリティツールキット(ガイド、アップデート、ツール)
http://www.microsoft.com/japan/technet/security/tools/content.asp
ここでは、その中でも有用なものについて紹介する。
4.1 Critical Update Notification(重要な更新の通知)
日本語では「重要な更新の通知」として位置づけられるアップデートサービスである。
Windows Update Web サイトにおける重要なアップデートを定期的に、かつ自動的にチ
ェックすることにより、セキュリティ アップデート等の重要な更新を、リリース直後
に確実にダウンロードすることができる。重要な更新の通知がインストールされている
場合、サービスの一覧には「Automatic Update」が表示される。
本サービスは、Windows 2000 SP3 以降、または Windows XP SP1 以降には標準で組み
込まれているため、あらためてインストールする必要が無い。これ以外のバージョンに
ついては、以下に示すサイトから msi ファイルをダウンロードしインストールすること
ができる。
http://www.microsoft.com/japan/windows2000/downloads/recommended/susclient/
default.asp
「重要な更新の通知」が有効になると、コントロールパネルに「自動更新」キャプレ
ットが登録されるので、これを使用して更新のタイミング等を設定することができる。
5
デフォルトでは、「更新を自動的にダウンロードして、インストールの準備ができたら
通知する」となっているが、セキュリティ向上を求めるのであれば「更新を自動的にダ
ウンロードして指定したスケジュールでインストールする」を設定しておくことをお勧
めする。ただし、サービスパックの項でも述べたように、パッチの適用は業務プログラ
ムの動作に影響を及ぼす可能性がある。大学のパソコン教室等では問題が少ないと思わ
れるが、それ以外の業務遂行にかかわるクライアントには慎重に適用すべきである。
Critical Update Notification はクライアント単位でセキュリティパッチを適用する
サービスであり、クライアントが個々にセキュリティ情報を管理する必要がある。また、
スケジューリングも個々のクライアントごとに設定しなければならず、そもそも個々人
が信頼できない場合にはまったく意味の無いものとなる可能性がある。
4.2
MBSA
MBSA (Microsoft® Baseline Security Analyzer) は、Windows® ベースの 1 台以上
のコンピュータについて、セキュリティの構成に問題が無いかをスキャンするための脆
弱性評価ツールである。MBSA は Windows ベースのコンピュータをスキャンし、オペレ
ーティング システムと、Windows 2000 Server の IIS (Internet Information Services)
や SQL Server™ などのインストールされているその他のコンポーネントについて、セ
6
キュリティの構成に問題がないかどうかチェックをし、推奨されるセキュリティ修正プ
ログラムがインストールされ、最新の状態になっているかどうかをチェックするツール
である。
また、リモートコンピュータのチェックやネットワーク上のコンピュータを自動探索
してチェックすることも可能であり、個々人にクライアントの管理がまかされた環境に
おいて、全体のセキュリティ管理の評価段階の手助けとなり、ネットワーク管理者にと
って非常に有用なツールである。
現バージョンは MSBA V2.0 であり、以前のバージョンに比べ、より有用な情報とユー
ザインターフェースを提供する。新たに Windows Update Agent と Microsoft Update
catalog の使用により、対応する製品が自動的に追加される。
HFNetchk および MBSA 1.2.より前のバージョン用の更新プログラム データベースの
提供は 2004 年 7 月 14 日のデータベースを持って終了し、また MBSA1.2.1 は、2006 年
第 1 四半期にサポートを終了し、以降更新された情報は提供されなくなる。
ただし、NT4.0, Office2000,Exchange 5.0/5.5 製品利用の場合は、MBSA 1.2.1 を使
う必要がある。
MBSA 2.0 の主な特徴
・ 深刻度の評価
・ Microsoft Office XP のセキュリティ更新プログラムのローカルスキャン
およびリモートキャン
・ 更新プログラムのダウンロードや適切な対応を行うためのガイド
・ サポートされている更新プログラムの CVE-ID
・ ヘルプコンテンツの強化
・ Windows Server Update Services との互換性
・ Microsoft Update の自動登録およびエージェントの更新
・ Windows XP Embedded および 64 ビット版 Microsoft Windows の更新プログラム
の検出
MBSA 2.0 でチェック可能なコンポーネントは以下の通りである。
●主な対応製品
・Windows 2000 SP4 とそれ以降のバージョン
・MS Office XP とそれ以降のバージョン
・Exchange 2000 とそれ以降のバージョン
・SQL Server 2000 SP4 とそれ以降のバージョン
・Microsoft Update によりサポートされる製品
●対象セキュリティ更新プログラムは以下の URL を参照
7
http://www.microsoft.com/japan/technet/security/tools/mbsa2/datasheet.mspx
MBSA の操作は特に難しくなく、インターネットにつながっている環境であれば、最
新のデータを元にチェックが可能である。また、MBSA を実行することで PC に存在す
るセキュリティの診断書(レポート)が表示され、脆弱性確認が可能である。
詳細は、以下の URL を参照のこと。
MBSA V2.0 の紹介およびダウンロードサイト
http://www.microsoft.com/japan/technet/security/tools/mbsahome.mspx
MBSA V2.0/V1.2.1 のサポートオンライン
http://support.microsoft.com/kb/895660
MBSA V1.2.1 の使い方
http://www.microsoft.com/japan/security/home/tool/mbsa2.mspx
MBSA V1.2.1 のホワイトペーパー
http://www.microsoft.com/japan/technet/security/tools/mbsawp.asp
5
ウイルス(ワーム)対策とスパイウェア対策
ウイルス(ワーム)対策とスパイウェア対策について記述すると膨大な量となるの
でごく簡単に記述する。
5.1
ウイルス(ワーム)対策
ウイスル対策ソフトのインストールが大前提である。毎日のウィルスパターンの更
新を行い、週に 1 回程度は全てのファイルをスキャンし、ウイルスに感染していない
かチェックする必要がある。
さらに重要なことは以下の2点である。
●あやしいファイルを実行しない(プレビューも危険)
・不審なメールの添付ファイルを開かない
・不審なメールに記述されているリンクにアクセスしない
・無名なフリーソフトをむやみにインストールしない
●あやしいサイトにアクセスしない
8
5.2
スパイウェア対策
スパイウェアとは、PC を使うユーザの行動や個人情報などを収集したり、マイクロ
プロセッサの空き時間を借用して計算を行ったりするアプリケーションソフトである。
収集した個人情報はスパイウェアの作成元に送られ、スパムメールの標的とされる
場合がある。スパイウェアはユーザに気づかれないよう、ウィンドウなどを出さずに
バックグラウンドで動作するため、ユーザはスパイウェアがインストールされている
ことに気づきにくい特徴がある。
これらのスパイウェア対策として、ネット上に情報が豊富で、代表的な無償ソフト
ウェアを紹介する。
・AD−AWARE
(利用者も多く代表的なツール)
ダウンロードページ http://www.lavasoft.de/
・SpyBot
(日本語対応のため使いやすい)
ダウンロードページ http://www.spybot.info/en/
・CWShredder
(AD-AWARE や Spybot でも駆除のできないスパイウェア「CoolWebSearch」を駆除するた
めの専用ツール)
ダウンロードページ
http://www.intermute.com/spysubtract/cwshredder_download.html
9
― 管理者編 ―
6
片手間にできるセキュリティ向上策
ここまで、OS インストール直後に必要となるサービスパック、セキュリティパッチに
関する必要最小限の知識について解説した。ここからは、現場の担当者が片手間にでき
るセキュリティ向上策について Tips 的に紹介していく。日々の運用でご活用いただき
たい。
6.1 Windows Server Update Services (WSUS)[無償]
サーバでセキュリティパッチを保持し、個々のクライアントへの配信を集中管理する
サーバサービスとして、MS 社より WSUS が提供されている。
WSUS は Software Update Service(SUS)の後継バージョンである。SUS は Windows の
みをサポートしていたが、WSUS は、Windows 以外に Office、Exchange Server、SQL Server
がサポートされている。この機能によりクライアントのセキュリティレベルをサーバ
主導で一定に保つことが可能となる。
WSUS は以下のサイトから入手可能である。
http://www.microsoft.com/japan/windowsserversystem/updateservices/
default.mspx/
なお、インストール時には IIS 関連のサービスが一時的に停止したり、セキュリテ
ィ上問題となると判断された仮想ディレクトリが自動的に削除される。必ず上記サイ
トに提示されているインストールガイドを熟読の上、運用に影響を与えないよう注意
していただきたい。
6.2 Systems Management Server (SMS)[有償]
Systems Management Server は、SUS の機能である最新のパッチを適用していない
PC を突き止めてパッチをインストールするための基本機能に加え、ソフトウェア配付
やインベントリ管理機能、コピュータ群全体の設定変更機能 等が用意されている。
Microsoft Update の監査エンジンテクノロジと、SMS 2003 の統合を実現ことにより、
Microsoft Updates と連携して Windows のセキュリティ更新プログラムの適用状態
の確認、配布・展開、インベントリ管理を、システム管理者が効率的に行うことがで
きる。
Systems Management Server は以下のサイトから入手可能である。
10
SMS 2003 Inventory Tool for Microsoft Updates
http://www.microsoft.com/japan/smserver/default.mspx
なお、必ず上記サイトに提示されているインストールガイドを熟読の上、運用に影
響を与えないよう注意していただきたい。
6.3 隠しサーバ
エンドユーザのデスクトップに大抵存在する「マイネットワーク」。これをダブルク
リックすると、ネットワーク上のサーバ一覧が簡単に参照できるだけでなく、サーバ
が保有する共有フォルダまでもブラウズすることが可能となる。当然、共有フォルダ
には ACL を設定し、部外者参照不可とさせるのが理想だが、忙しい管理者は、ついつ
い Everyone:Full としてしまいがちである。そこで、サーバ自身をブラウズリストか
らはずす「隠しサーバ」とすることで、エンドユーザが間違えて共有資源を参照した
り、変更してしまったりすることを、ある程度抑止することが可能である。
隠しサーバを設定するには、当該サーバ上で以下のコマンドを実行する。
C:\>net config server /hidden:yes
または、直接に示す手順でレジストリエントリを編集する。
① レジストリエディタを起動する(Regedt32.exe または regedit.exe)
②
次のレジストリパスを開く
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parame
ters
③ 次の属性で新しいエントリを作成する
値の名前:Hidden
値のタイプ:REG_DWORD
値: 1 (有効) または 0(無効)
以上で設定は完了であるが、すぐに効果がでるわけではない。通常、最低 15 分から
30 分程度の時間が必要である。これは、隠しサーバ機能は、「Computer Browser サー
ビスによるアナウンスパケットの送出」を無効とするものであるからだ。つまり、自
己の存在をアナウンスしないため、他のコンピュータのブラウズリストに掲載されず、
あたかも存在しないよう見えるわけである。
なお、こうしたサーバの構成情報の変更は、微細ながら障害に近い現象をひきおこす
ことが報告されている。以下のサイトを参照していただきたい。
http://support.microsoft.com/default.aspx?scid=kb;ja;128167
11
6.4 一次的なコンピュータ名を公開して恒常的なコンピュータ名を隠蔽する
DNS で Alias を付加することができるのはいうまでも無いが、NetBIOS 上のコンピュ
ータ名にもエイリアスを付加することができる。例えば、Windows NT 4.0 で運用する
サーバ上で一時的に公開する共有資源がある場合、恒常的なコンピュータ名で公開し
てしまうよりも、一時的にエイリアスを付加して公開し、終了後にエイリアスを削除
するといった方法をとることで、多少なりともサーバの存在を隠蔽することが可能で
ある。また、セキュリティとは直接関係ないが、他のサーバで公開していた資源を、
利用者からの接続方法を変更せずに、一時的に別のサーバで吸収するというシチュエ
ーションにも有用である。
ここで、あえて Windows NT 4.0 と断ったのには理由がある。Windows 2000 では、
NetBIOS on TCPIP を使用せずに SMB 通信を行うことができるようになった(Port 445)。
そのため、Windows9x や samba などのレガシー(互換)システムが存在しない場合には
NetBIOS on TCPIP を無効にすることが多く、WINS さえも立ち上げない。つまり、DNS
さえあれば一切のサーバ利用が可能であるため、あえて NetBIOS コンピュータ名を使
用せず、Alias を使用することをお勧めする。
NetBIOS コンピュータ名のエイリアスを追加する手順を以下に示す。
① レジストリエディタ(regedt32.exe)を起動する
② 以下のレジストリパスに移動する
HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parame
ters
③ 以下の属性でエントリを追加する
値の名前:OptionalNames
値の属性:REG_MULTI_SZ
値:<コンピュータのエイリアス>
なお、NetBIOS コンピュータ名のエイリアスを登録した場合には、WINS に手動でエ
ントリを追加する必要があることに注意していただきたい。標準では、03h エントリ
のみが登録されるが、これだけでは smb 通信を行うことはできない。必ず、00h エント
リおよび 20h エントリも登録しなければならない。
12
6.5 クライアントの利用者をリアルタイムに把握する(Windows2000 編)
クライアントの利用者をリアルタイムに掌握するためのユーティリティは数多くリ
リースされているが、とかく高価なツールの一部として提供されていることが多く、手
軽に入手して利用することができない。
Windows 98 以降の OS には、Windows Management Instrumentation(WMI)と呼ばれる
WBEM(Web Based Enterprise Management)をベースとしたマネジメント専用インター
フェースが実装されており、非常の多彩な機能を提供している。WMI の詳細については、
マイクロソフト社の MSDN サイト
(http://msdn.microsoft.com/library/default.asp?url=/downloads/list/wmi.asp)
を参考にしていただきたい。
リスト1に、WMI を使用して作成した VBScript を掲載する。これを GetUser.vbs と
いうような名前で保存し、以下の書式で実行する。出力をテキストファイル等にリダイ
レクトすれば、ログとして蓄積することも可能である。
Cscript GetUser.vbs [リモートホスト] [ドメイン名] [管理者 ID] [管理者パスワード]
・ リモートホスト
参照したいコンピュータのホスト名。デフォルト値はローカルホスト。
・ ドメイン名
リモートホストが所属するドメイン名。ワークグループの場合には、ホスト名を指
定。
・ 管理者 ID
リモートホストで管理者権限を持つユーザのアカウント。指定しない場合には、現
在ログオンしているアカウントで偽装される。
・ 管理者パスワード
リモートホスト管理者のパスワード。デフォルト値は現在のパスワード。
なお、このスクリプトは、Windows2000/XP 上で動作することを確認しており、リモー
トホストとしても同様に Windows2000/XP にて確認している。
これ以前の OS 上での動作、
および利用者情報の取得を可能とするには、以前の OS にマイクロソフトが提供する最
新の WMI をインストールしなければならない。マイクロソフトのダウンロードサイト
(http://www.microsoft.com/download/)で、該当する OS を選択し、キーワードとし
て WMI を指定して検索すると見つかるだろう。
13
リスト 1
'WMI を使用して、PC を利用中のユーザの情報を取得するスクリプトです
'ローカルコンピュータを参照する場合には、
'AdminUser と AdminPassword を指定するとエラーとなります。
'
'Windows2000 クライアントの情報を取得する場合、Authenticated Usrs をローカル
'の Administrators に所属させておく必要があります
'
'On Error Resume Next
'引数処理
'引数の厳密なチェックは行っていませんのでご了承ください
Set Args = Wscript.Arguments
Select Case Args.Count
Case 0
Wscript.Echo "ローカルコンピュータを参照します"
Set WshNetwork = WScript.CreateObject("WScript.Network")
Hostname = WshNetwork.ComputerName
DomainName = HostName
Case 1
HostName = Args(0) : DomainName = HostName
Case 2
HostName = Args(0) : DomainName = Args(1)
Case 3
HostName = Args(0) : DomainName = Args(1)
AdminUser = Args(2)
Case 4
HostName = Args(0) : DomainName = Args(1)
AdminUser = Args(2): AdminPassword = Args(3)
Case Else
Wscript.Quit
End Select
Wscript.echo HostName,DomainName,AdminUser,AdminPassword
'ユーザ情報の取得
14
UserName
=
GetInteractiveUser(HostName,
DomainName,
ScriptPath,
HomeDirectoryDrive, _
HomeDirectory, Comment, FullName, OSName)
UserInfo = "ドメイン :" & DomainName & vbCrLf & _
"ユーザ名 :" & UserName & vbCrLf & _
"フルネーム :" & FullName & vbCrLf & _
"ログオンスクリプト :" & ScriptPath & vbCrLf & _
"ホームドライブ :" & HomeDirectoryDrive & vbCrLf & _
"ホームディレクトリ :" & HomeDirectory & vbCrLf & _
"コメント :" & Comment & vbCrLf & _
"OS :" & OSName
Wscript.Echo UserInfo
'情報取得のための関数
Function
GetInteractiveUser(HostName,
DomainName,
ScriptPath,
HomeDirectoryDrive, _
HomeDirectory, Comment, FullName, OSName)
On Error Resume Next
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
wscript.echo hostname & " のユーザ情報を取得しています"
Set objService = objLocator.ConnectServer(HostName, "root\cimv2", AdminUser,
AdminPassword)
if err.Number <> 0 then
wscript.echo hostname & " 接続中にエラーが発生しました"
wscript.echo HostName & " 指定したコンピュータに対して管理権限が無いか、" & _
"コンピュータは起動していない可能性があります"
Exit Function
end if
'OS を判断
strQuery = "Select * from Win32_OperatingSystem"
Set objOS = objService.ExecQuery(strQuery)
for each n in ObjOS
wscript.echo n.Name
IF Instr(1, UCase(n.Name), "WINDOWS XP", 1) Then OSName = "Windows XP"
15
IF Instr(1, UCase(n.Name), "WINDOWS 2000", 1) Then OSName = "Windows 2000"
IF Instr(1, UCase(n.Name), "WINDOWS NT", 1) Then OSName = "Windows NT"
Next
If OSName = "Windows XP" Then
'-----------WindowsXP 以降の OS に対して有効
'コンピュータのセションをチェックする
strQuery = "Select * from Win32_PerfFormattedData_TermService_TerminalServices"
Set objTS = objService.ExecQuery(strQuery)
ComputerInUse = False
for each n in objTS
IF n.ActiveSessions > 0 Then ComputerInUse = True
Next
If ComputerInUse = True Then
strQuery = "Select * from Win32_PerfFormattedData_TermService_TerminalServicesSession"
ComputerInUse_TS = False
Set objTSSessions = objService.ExecQuery(strQuery)
For Each n in ObjTSSessions
If InStr(1, UCase(n.Name), "RDP", 1) Then
ComputerInUse_TS = True
'RDP Session の場合にはユーザ名が取れないので、ダミーを入れておく
'WMI のバグ?
GetInteractiveUser = "ターミナルサービス利用者"
End If
Next
End If
End If
If OSName = "Windows 2000" or ComputerInUse_TS = False Then
'OS が Windows 2000 の場合 または XP にローカルログオンしている場合
strQuery = "Select * from Win32_ComputerSystem"
Set objUserName = objService.ExecQuery(strQuery)
GetInteractiveUser = ""
for each n in objUserName
GetInteractiveUser = n.UserName
Next
16
If IsNull(GetInteractiveUser) Then
GetInteractiveUser = "ログオンしていません"
wscript.echo GetInteractiveUser
End If
End If
If instr(UCase(GetInteractiveUser),UCase(DomainName)) Then
LogonUserName = GetInteractiveUser
GetInteractiveUser = Mid(GetInteractiveUser,len(DomainName)+2)
strQuery = "Select * from Win32_NetworkLoginProfile"
Set objUserProfile = objService.ExecQuery(strQuery)
for each n in objUserProfile
If UCASE(n.Name) = UCASE(LogonUserName) Then
ScriptPath = n.ScriptPath
HomeDirectoryDrive = n.HomeDirectoryDrive
HomeDirectory = n.HomeDirectory
NumberOfLogons = n.NumberOfLogons
LogonHours = n.LogonHours
Comment = n.Comment
FullName = n.FullName
End If
Next
End If
End Function
6.6 クライアントの利用者をリアルタイムに把握する(XP/2003 編)
5.3 では、VBScript を使用してクライアントの利用者を取得する方法を紹介したが、
Windows XP 以降の新しい OS には、WMI にアクセスするための WMIC コマンドが提供され
ている。スクリプトを作成する必要が無いため、比較的簡単に WMI の機能を利用するこ
とが可能である。
利用者を取得する場合には、以下のように記述する。
wmic [/node:HostName[,HostName]…] ComputerSystem Get Name,UserName
/Node には参照したいホスト名を指定する。カンマで区切って複数のホストを指定する
ことも可能である。
17
6.7 管理スクリプトの暗号化
Windows2000 以降、従来のバッチファイルではなく、VBScript や JavaScript、Perl
等のスクリプトで運用管理を行うことも多くなった。非常に柔軟性にとみ、高機能な
スクリプトだが、問題点もある。そのひとつとして、スクリプトの内容が丸見えだと
いうことが挙げられる。スクリプトには、操作によってはアカウント情報やログの保
存先など、運用管理上の重要な資源を参照する手順が記述されている。スクリプトを
暗号化することで、内容を隠蔽することが可能である。
スクリプトを暗号化するには、マイクロソフトが提供するスクリプトエンコーダを
使用する。スクリプトエンコーダはマイクロソフトのサイトからダウンロードが可能
である。
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp
ダウンロードしたファイルを解凍すると、screnc.exe と screnc.chm という 2 つの
ファイルが抽出される。エンコードを行うには screnc.exe を使用してコマンドプロン
プトより以下のように入力する。
screnc.exe <変換前のファイル名> <変換後のファイル名>
vbs ファイルの場合、エンコード後の拡張子は vbe でなければならなないため、例
えば、以下のように入力する。
screnc.exe GetUser.vbs GetUser.vbe
5.3 に示したスクリプト(リスト1)を暗号化したものの一部を、リスト2に示す。
リスト2
#@ ^QxEAAA==vqH(を使用して、hZ を利用中のユーザの情報を取得するスクリプトです
@#@&B ローカルコンピュータを参照する場合には、@#@&E)NskUjk+.と)9:kKlk/hK.[ を
指定するとエラーとなります。@#@&B@#@&vrU AD.WM I・/;h・P1naD@#@&@#@&v 引数処理
@#@&v 引 数 の 厳 密 な チ ェ ッ ク は 行 っ て い ま せ ん の で ご 了 承 く だ さ い
@#@&U+Y,bML/,' ・km.raYRz.o!:+
Od@#@&?・VnmO ;ld+,]DT//KExO@#@&d/lkn,!@#@&d,P・kmMrwDR3m4W E ローカルコンピュ
ー
タ
を
参
照
し
ま
す
r@#@&, P,PP, PU+DP
/4H・YAWMVP{Pj1Dk2OcZ.+mO・r8N+1Y`r・U^DbwORg+OAKD3rb@#@&PP, P,P,PuWdOlh+,xPq/
18
4H・YhG.0R/Ws2!YnM1m:+@#@&i PGWhlbxHCs+P{ CK/YgCh+@#@&iZC/n 8@#@&d, CK/OHm:+
x,b.okcZ# =PGW:mk
Hls+ ',CGdD1lsn@#@&dZmdnPy@#@&d PuGkYHlsnP{P).T/`Tb,) fKhmkUgls+P{Pz.ok`q#@#
@&7/m/+,f@#@&dP,uG/D1m:nPx zDL/vT#,) 9K:lrUglh+,x,b.T/vF#@#@&i PzNhkjdnMP',)
DT/`yb@#@&iZm/nP*@#@&d P_G/D1Ch・P' )Mod`Zb,) GWslk
1mh+,' bModc8#@#@&7P,bNsrUjk+MPxP).T/c
*lPzNhr
nlddSW.N,x,b.T/v&#@#@&i/lk+ 2^/n@#@&dP,
/1DkaO
!kD@#@&2U[,?nV・^Y@#@&@#@&q/m.raY
+14KPuK/D1ls+B9WslrxglhnBbNsrx`/+MS)Nsk nC/dAKD[@#@&@#@&E ユ ー ザ 情 報 の 取 得
@#@&ik+DHCs+ ',!・Y( Y・
暗号化可能なファイルは、vbs などのスクリプト以外にも、asp や html など、IIS で使
用する資源も指定することができる。
6.8 隠し共有フォルダ
Windows の Server サービスを使用して公開されている共有資源は、その共有名の最
後に「$」を付加することで隠し共有とすることができる。
隠し共有として設定された資源は、net view コマンドや、マイネットワークには表
示されないため、一般の利用者から共有資源を隠蔽したい場合には便利な機能である。
ただし、隠し共有にしても、権限さえあれば誰でも接続することは可能であるので、
アクセス権には注意しなければならない。
6.9 Authenticated Users グループの有効活用
全てのユーザにアクセス権を与えたい資源の場合、つい「Everyone:Full」という
設定をしてしまいがちである。これがセキュリティ上問題であることは言うまでも無
い。とはいえ、面倒な設定を行いたくないといった場合には、「Authenticated Users」
という特殊なユーザグループを使用するとよい。これは、
「認証をうけたユーザ」全体
を指すもので、特定の個人やグループに限定されない。そのため、パスワードを一定
期間ごとに変更したり、ゲストアカウントを無効にしておくなどの基本的な設定がな
されていれば、「Authenticated Users」にアクセス権を与えることで、ある程度のセ
キュリティを確保することができる。
19
6.10 一定時間使用していないクライアントを強制的にログオフする
ユーザ ID とパスワードを使用して認証を行っている環境であっても、利用者がログ
オンしたまま席をはずしたり帰宅してしまっては意味が無い。
マイクロソフトが提供しているリソースキットには、winexit.scr というスクリーン
セーバが同梱されており、一定時間利用されていないクライアントを強制的にログオ
フすることができる。
設定方法は以下の通り。
① リソースキットをインストールする
② インストールフォルダから winexit.scr をシステムディレクトリにコピーする
③ 画面のプロパティから「Logoff Screen Saver」を選択する
④ ログオフまでの時間等を設定する
6.11 グループポリシーで可能なセキュリティ向上策
グループポリシーは、Windows2000 以降の OS で使用可能な管理機能であり、クライ
アント単体での管理の他、ドメイン内の全てのクライアントを集中管理する機能も持
20
っている。
Active Directory ドメインとグループポリシーを併用することで、LDAP 階層の単位
でクライアントの運用環境を定義し、強制的にクライアントに適用することができる。
例えば、「OU=開発チーム」に所属するユーザおよびコンピュータと、「OU=営業チーム」
に所属するユーザおよびコンピュータには別々のグループポリシーを定義して管理す
ることが可能となる。
ブループポリシーはドメイン内に複数定義することができ、それぞれを「グループ
ポリシーオブジェクト」と呼ぶ。
以下の図に示すように、1 つのグループポリシーオブジェクトは、「ユーザ用ポリシ
ー部」と「コンピュータ用ポリシー部」に分けられる。グループポリシーオブジェク
トが関連づけられている OU に、コンピュータが所属していれば「コンピュータ用ポリ
シー部」が適用され、ユーザが所属していれば「ユーザ用ポリシー」が適用される。
コンピュータとユーザが別々の OU に所属していれば、適用されるグループポリシーオ
ブジェクトも異なる。
なお、コンピュータ用ポリシーはコンピュータの起動時に、ユーザ用ポリシーはユ
ーザのログオン時に適用される。
グループポリシーの設定項目の中には、セキュリティ向上のための項目が多く用意
されている。ここでは、運用管理に有用な項目をいくつか紹介する。
グループポリシーについては、OS のヘルプファイルに詳しい他、マイクロソフトの
TechNet サイトも参考になる。
http://www.microsoft.com/japan/technet/default.mspx
21
グループポリシーで設定可能な項目については、以下のサイトに掲載されている
「winxpgpset.xls」に、Windows2000 と Windows XP で用意されているすべてのポリシ
ー項目が掲載されている。これは、導入時の設定項目一覧としても利用可能なドキュ
メントであるので、有効に活用しよう。
http://www.microsoft.com/japan/windowsxp/pro/techinfo/administration/policy/
① ログオンするコンピュータごとにユーザのポリシーを変える(ループバックポリシ
ー)
上記の通り、グループポリシーは、ユーザやコンピュータが格納されている OU
の場所に依存する。ユーザとコンピュータが別々の OU に格納されていれば、適用
されるグループポリシーも異なる。これは、ユーザごとに役割がはっきりと分けら
れる場合には有用であるが、例えば、大学などのように利用するコンピュータによ
ってユーザに適用するポリシーも変えるといったことができない。
そこで、グループポリシーにはログオンするコンピュータによってユーザに適
用するポリシーを変える「ループバックポリシー」という機能が存在する。ループ
バックポリシーを使用することで、コンピュータに関連づけられたポリシーオブジ
ェクトの「ユーザ用ポリシー部」を、ログオンしてきたユーザに適用することが可
能となる。つまり、クライアントを教室単位に OU でグルーピングしておけば、教
室ごとに異なるポリシーをユーザに適用することができるわけだ。
ループバックポリシーを有効にするには、以下のポリシーパスを有効にする。
22
[コンピュータの構成]−[管理用テンプレート]−[システム]−[グループポリシ
ー]−[ユーザグループポリシー ループバック処理モード]
② レジストリエディタの起動を無効にする
Windows のほぼ全ての設定値はレジストリに格納されている。そのため、可能な
限りレジストリの操作を利用者に許可すべきではない。レジストリを操作するには
レジストリエディタを使用するが、グループポリシーを使用してレジストリエディ
タの起動を無効にすることができる。
レジストリエディタの起動を無効にするには、以下のポリシーパスを有効にする。
[ユーザの構成]−[管理用テンプレート]−[システム]−[レジストリ編集ツールへ
アクセスできないようにする]
③ 特定のアプリケーションの実行を禁止する
ゲーム等、利用者の実行を禁止したいソフトウェアが存在する場合、これをグ
ループポリシーで制限することができる。ただし、Windows 2000 の場合、ファイル
名での制限のみが可能であり、利用者が意図的にファイル名を変更した場合には実
行が可能である。これは、XP および 2003 では改善されており、実行ファイルのハ
ッシュ値を抽出することで、ファイル名が変更されても制限することが可能となっ
ている。
アプリケーションの実行を禁止するには、以下のポリシーパスにアプリケーシ
ョンの実行ファイル名を指定する。
[ユーザの構成]−[管理用テンプレート]−[システム]−[指定された Windows アプ
リケーションを実行しない]
6.12 監査の管理
Windows のイベント、およびパフォーマンス ログと警告は、EventLog サービスに
記録される。EventLog サービスは、Windows を開始すると自動的に起動し、アプリ
ケーションとシステムのログはすべてのユーザが閲覧できるが、セキュリティログに
は管理者のみがアクセス可能となっている。セキュリティログの収集は既定でオフに
なっており、収集するにはグループポリシーを使用する。
これらのログを収集し、監査を実施することはシステム管理者として非常に重要な
意味をもつ。ログの情報から不正アクセスやアタックの状況を把握し、安全なシステ
ム運用に活用してほしい。
23
以下は、監査ポリシー設定のための参考URLである。
・マイクロソフト TechNet 監査と監視
http://www.microsoft.com/japan/technet/security/topics/
AuditingandMonitoring.mspx
[参考文献]
(1) マイクロソフトホームページ
http://www.microsoft.com/japan/
24
サイエンティフィック・システム研究会 セキュリティガイド①
片手間に行う Windows セキュリティ向上策
著作権は各原稿の著者または所属機関に帰属します。無断転載を禁じます。
本資料に関するお問合せは、下記へお願いします。
SS 研究会事務局
東京都港区東新橋 1-5-2 汐留シティセンター (〒105-7123)
富士通株式会社 カスタマーリレーション部内 SS 研究会事務局
TEL:03-6252-2582(直通)
FAX:03-6252-2934
Email:[email protected]
2006 年 5 月 12 日発行
禁無断転載