SMB脆弱性のマイクロソフトセキュリティアドバイザリを確認する


SMBの脆弱性が新たに発見され、マイクロソフトがセキュリティアドバイザリ(977544)を公開した

 マイクロソフトは14日、修正パッチが提供されていないSMBの脆弱性情報が一般に公開されたとして、利用者に注意を促すセキュリティアドバイザリ「SMBの脆弱性により、サービス拒否が起こる」(977544)を公開した。また、同時に共通脆弱性識別子データベースであるCVEにも脆弱性情報が登録された。

・マイクロソフト セキュリティアドバイザリ(977544)
http://www.microsoft.com/japan/technet/security/advisory/977544.mspx
・CVE-2009-3676
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3676

 現在のところ、この脆弱性を利用した攻撃は確認されていないが、脆弱性の存在を証明するソースコード(Expolitコード)が、Webサイトやメーリングリストを使って公開されている。

 米SANS Instituteによれば、公開された実証コードは必要な行が1行抜けた不完全な状態だったということだが、メーリングリストには詳細な技術情報が掲載されているため、ある程度の技術力があれば比較的短時間で攻撃コードを作成することが可能だ。

 なお、この脆弱性が存在するのはWindows 7(32ビット版、64ビット版とも)と、Windows Server 2008 R2(Server Coreシステムを含むx64-basedシステム、およびItanium-basedシステム)となっている。Windows Vista/XPや、R2ではないWindows Server 2008などは今回の脆弱性の対象ではない。

悪意のパケットが送りつけられることでPCがハングアップ状態に

 今回の脆弱性が指摘されたSMBとは、Windowsファイル共有やプリンタ共有で利用されているプロトコルと、それを使ったサービスの名前だ。バージョンによってSMB v1、SMB v2が存在するが、これらをまとめてSMBという呼び方もする。今回の脆弱性は、SMB v1、v2のどちらのサービスにも存在するということだ。

 メーリングリストに投稿された情報などによれば、具体的には今回の脆弱性は、Windows 7とWindows Server 2008 R2のSMBサービス内で送られるパケットに特定の値を使うことで、攻撃が可能となる。

 その特定の値をパラメータに使用した場合、Windows 7/Windows Server 2008 R2は「NT_ASSERT()」「DbgRaiseAssertionFailure()」を呼ぶような無限ループに陥るため、最終的にはPCはマウスもキーボードも全く反応しない、サービス拒否の状態となってしまうということだ。

 公開されたクラッシュの仕組みから考えると、この脆弱性を利用した攻撃方法としては、LAN内に不正なデータを送出するサーバーを置き、LAN内のWindows 7やWindows Server 2008 R2が使われているPCを片っ端からフリーズさせるというようなやり方が考えられる。

 Windowsファイル共有を使用するPCは、LAN内のPCに片っ端からSMB通信を要求することでネットワーク内のPCを調べるという挙動をするため、それに対して逐一、不正なパラメータを返せばそのような攻撃も可能となるわけだ。

 なお、この場合、Windows 7のWindowsファイアウォールは、デフォルトではSMB通信を通してしまうため、攻撃を防ぐことができない可能性がある。

 あるいは、他にもLAN内にブロードキャスト(すべてのネットワーク内のPCに対して同報通信する)で不正パケットを送信するなどの攻撃方法も考えられる。いくつかのシナリオが考えられるが、基本的にはLAN内からの攻撃がメインであると考えていいだろう。

 また、この悪意の攻撃への対処方法としては、米SANS Instituteの公開情報によれば、実験の結果、SMB v2サービスを止めても今回の脆弱性を利用したサービス拒否を防ぐことはできなかったとしている。

ポートをふさぐ回避策は、ファイル共有が使えなくなる点に注意

 マイクロソフトでは、脆弱性について現在調査を進めており、調査が完了次第、修正パッチの提供など適切な措置を講じるとしている。

 ただ、今のところリモートからのコード実行攻撃などはこの脆弱性を使ってもできないが、LAN内に秘密裏に設置された悪意のPCから無差別にPCを停止させられるというような悪意の攻撃を受ける可能性はあることから、Windows 7/Windows Server 2008 R2のユーザーには、パッチ提供までの間は回避策をとることが薦められる。

 マイクロソフトはセキュリティアドバイザリで、今回の脆弱性の回避策としては、ファイアウォールでTCP 139番ポートおよび445番ポートをブロックすることを挙げている。SMBで利用されているこれらのポートへの外部からのアクセスを防ぐことで、攻撃からPCを守ることができるわけだ。

 一般的に、これらのポートはWindowsファイル共有やプリンタ共有、あるいはネットログオンなど内部ネットワーク向けに使われるものであるため、インターネット側からのアクセスについてはルータなどでブロックしている場合がほとんどだろう。そういう意味では、外部からこの脆弱性を使った攻撃は考えにくく、あまり大きな問題とはならないかもしれない。

 逆に、各マシン上のファイアウォールでこれらのポートをブロックした場合には、LAN内向けのさまざまなサービスが利用できなくなるという点に注意が必要だ。

 具体的には、マイクロソフトセキュリティアドバイザリの「回避策」の欄にあるように、以下のサービスに影響が出てくる。

  • SMB(CIFS)を使用するアプリケーション
  • mailslotsまたは名前付きパイプを使用するアプリケーション(SMB経由のRPC)
  • サーバー(ファイルとプリンターの共有)
  • グループポリシー
  • Net Logon
  • 分散ファイル システム(DFS)
  • ターミナルサーバーライセンス
  • 印刷スプーラー
  • コンピューターブラウザー
  • リモートプロシージャーコールロケーター
  • Faxサービス
  • インデックスサービス
  • パフォーマンスログと警告
  • Systems Management Server
  • ライセンスログサービス

 Windows 7でTCP 139番ポートおよび445番ポートをふさぐには、標準で用意されている「Windowsファイアウォール」でそのような設定が可能だ。

 具体的には、Windowsファイアウォールの詳細設定メニューから通信ブロックルールを追加できるので、規則として「TCP」「(特定のローカルポート)139」「接続をブロックする」といった形でルールを追加することで、通信をブロックすることができる。

 ただし、これらのポートへの通信をWindowsファイアウォールでふさいでしまった場合には、前述のサービスが影響を受ける。つまり、NTドメインへのログオンや、Windowsファイル共有、プリンタ共有の使用などはできなくなる。

 また、上記の回避策をとった場合、セキュリティパッチが適用された後でもこれらのサービスは利用不可能なままだ。修正パッチの適用後には、作成したファイアウォールのルールを削除するのを忘れないよう、注意が必要だろう。


関連情報

(大和 哲)

2009/11/18 12:36