PR

山下 眞一郎/富士通九州システムズ 基盤ソリューション本部
ネットソリューション部 担当部長

 比較的安全なOSとされるWindows Vista/Server 2008。そのVista/Server 2008が影響を受ける,パッチ未公開のセキュリティ・ホールがアナウンスされています。ネットワークに接続しているだけでパソコンを乗っ取られる可能性があるという,非常に危険なものです。これについて,ある企業のシステム管理者から『対象の”SMBv2”とはどういう機能なのか?また,簡単な回避方法をアドバイスしてほしい』と相談を受けました。

 マイクロソフトは2009年9月9日,「マイクロソフト セキュリティ アドバイザリ(975497) SMB の脆弱性により,リモートでコードが実行される」を公開しました。筆者が以前から「超特大」のセキュリティ・ホールと呼んで警告していた,非常に危険なレベルのセキュリティ・ホールです。

 以前のコラムで述べたように,超特大のセキュリティ・ホールとは,「デフォルト状態の広範囲のWindowsが影響を受ける」かつ「ネットワークに接続しているだけでパソコンを乗っ取られる可能性がある」という,通常のセキュリティ・ホールとは別格の危険なものを指して区別していたものです。あえて超特大と強調しているは,マイクロソフトのセキュリティに対する“深刻度の評価システム”でも,「緊急」,「重要」,「警告」,「注意」という4レベルのうち「緊急」が連発されている状況で,何が本当に深刻なセキュリティ・ホールであるかが伝わらないという危機感があったためです。

 まず,影響を受けるOSを明確にしましょう。今回のセキュリティ・ホールは、Windowsのファイル共有プロトコルであるSMB(server message block)の実装に問題があり,”SMBv2”(SMB version 2)のネゴシエーション・リクエストのヘッダーを正しく解析しないことが根本原因とされています。

 SMBv2は、Windows Vista/Server 2008で新たにサポートされたSMBの新バージョンです。このためWindows Vista/Server 2008登場以前の,Windows 2000/XP/Server 2003は影響を受けません。

 「マイクロソフト セキュリティ アドバイザリ」では,「影響を受けるソフトウェアおよび影響を受けないソフトウエア」の項で,今後リリース予定のWindows 7/Windows Server 2008 R2は影響を受けないと明記しています。ただ,“Windows 7 RC版は影響を受ける”との情報は,別の「よく寄せられる質問」に記載されていますので,注意が必要です。

 次に,今回のセキュリティ・ホールの悪用しやすさ(マイクロソフトは「Exploitability Index:悪用可能性指標」と呼んでいます)を確認してみましょう。

 「マイクロソフト セキュリティ アドバイザリ」には,「マイクロソフトは現時点で,この報告された脆弱性を悪用しようとする攻撃を認識しておらず,またお客様が影響を受けたという報告は受けていません」と記載されています。

 一方,具体的な「Exploitability Index:悪用可能性指標」は公開していません。しかしCVEリファレンスで「CVE-2009-3103」と採番されており,パッチが未公開であるにもかかわらず,広くセキュリティ・ホールの存在や内容が知られています。

 さらに複数の検証コードの存在が報告されており,ゼロデイ攻撃が懸念されます。日本ではNTTデータ・セキュリティから脆弱性を検証したレポート『WindowsのSMBのDoS攻撃の脆弱性(CVE-2009-3103)に関する検証レポート』(リンク先はPDFファイル)も公開されています。

 当初は海外のレポートでも,影響に“BSOD(Blue Screen of Death)”という表現が目に付き,サービスを停止させたりマシンをクラッシュさせるDoS攻撃を実現するコード作成は比較的容易なものの,ネットワークに接続しているだけでパソコンを乗っ取られるコード作成はやや困難だろうと推察していました。

 ところが,「マイクロソフト セキュリティ アドバイザリ」を見ると,最悪のケースとして「攻撃者から影響を受けるコンピュータが完全に制御される可能性」を明確に示唆しており,9月28日には前提条件はあるもののネットワークに接続しているだけでパソコンを乗っ取られる検証コードがインターネット上で公開されてしまいました。

 今後は検証コードが進化し,前提条件無しにネットワークに接続しているだけでパソコンを乗っ取られるより強力な検証コードの登場が強く懸念されます。やはり,着実な回避対策の実施やパッチ適用(原稿執筆時の9月30日時点では未公開)が必要です。

回避方法はSMBv2の無効化

 SMBv2の特長は,パケットがクライアントに到達したかどうかチェックする「Chatting」のアルゴリズムの改善とセキュリティ(認証)強化ですが,使用可能なのはWindows Vista/Server 2008以降のOS同士の通信に限られます。

[関連記事]
ファイル共有プロトコル「SMB」が「バージョン2.0」に---米MSのストレージ担当者[2006/01/23]

 下位互換を実現するために従来のSMB 1.0は引き続きサポートされていますので,影響を受けるWindows Vista/Server 2008でも、SMBv2を無効化すれば簡単に回避可能です(SMBのネゴシエーションの際にSMBv2を使用できないと判断すれば,自動的にSMB 1.0で通信が継続されます)。SMBv2の独自機能を使用しているのでない限り,実質的な悪影響は発生しません。

 「ファイアウォールでTCPポート139および445をブロックする」という回避策も挙げられていますが,インターネットとの外部通信では既にこうした危険なWindowsのポートは閉じてあると思います。恐いのは,組織内で今回のセキュリティ・ホールを突くウイルスが発生し,ネットワークにつないでいるだけのWindows Vista/Server 2008/7 RC版のパソコンにウイルスがまん延するというシナリオです。今後公開されるパッチ適用が完了するまで,確実にSMBv2無効化を徹底する必要があります。

 では,具体的な回避方法をチェックしましょう。

 詳細は「マイクロソフト サポート技術情報 975497」に記載されています。重要なレポートであるため,さすがに機械翻訳ではなくきちんと日本語化されています。

 SMBv2を無効化するには,本来はレジストリを変更する必要があるのですが,以前のコラム『不審なアイコンに見えてしまう「Microsoft Fix it」』で紹介した「Microsoft Fix it」による変更が提供されています。「Microsoft Fix it」は,ウィザード・スタイルで実行する“msi形式プログラム”であり,レジストリを自動的に変更するものが多数を占めています。余談になりますが,以前のコラム執筆時点では存在しなかった「Microsoft Fix it」の日本語の紹介ページが,現在は「Microsoft Fix it ソリューション センター」としてきちんと存在します。

 SMBv2を無効化する「Microsoft Fix it 50304」を実行します。まずWebブラウザに表示されている[この問題を解決する]のリンクをクリックします。

写真1●Fix it表示画面
[画像のクリックで拡大表示]

 すると,「MicrosoftFixit50304.msi」ファイルをダウンロードする確認のダイアログボックスが表示されます。

写真2●Fix itダウンロード画面
写真2●Fix itダウンロード画面

 IEでアクセスしている場合,[実行]ボタンが表示されますので,[実行]ボタンをクリックします。さらに,セキュリティ警告のダイアログボックスが表示されます。

写真3●Fix itセキュリティ警告画面
写真3●Fix itセキュリティ警告画面

 次に,ライセンス確認のダイアログボックスが表示されます。

写真4●Fix itライセンス画面
写真4●Fix itライセンス画面

 「同意する」のチェックボックスをクリックし次に進みます。引き続き,復元ポイントの作成とレジストリの変更,およびserverサービスの停止/再起動が実行されます。最終的に完了確認ダイアログボックスが表示されます。

写真5●Fix it終了画面
写真5●Fix it終了画面

 以上で,「Microsoft Fix it 50304」の実行は完了です。OSを再起動する必要もありません。

 以前のコラムでも記載したように,マイクロソフトのサポート・ページでは,レジストリを変更すること以外に回避方法がない問題であっても,自分でレジストリを変更することに関して以下のような警告文が記載されています。

 『注:レジストリ エディターの不正確な使用は,オペレーティングシステムの再インストールが必要となる深刻な問題の原因となる可能性があります。マイクロソフトはレジストリエディターを正しく使用しなかったことが原因となる問題について保証することはできません。レジストリエディターは,お客様各自の責任において使用してください』

 「Microsoft Fix it」サービスが導入されたサポート・ページでは,“Fix it for me(Fix itで解決する)”と“Let me fix it myself(自分で解決する)”を自分で選択可能となっており,非常に合理的に感じます。繰り返しになりますが,引き続き「Microsoft Fix it」の提供対象を増やして行ってほしいと考えます。

著者について
以前,ITproで「今週のSecurity Check [Windows編]」を執筆していただいた山下眞一郎氏に,情報漏えい対策に関する話題や動向を分かりやすく解説していただきます。(編集部より)