SQL Server 2000およびSQL Server 2000 Desktop Engine (MSDE 2000)のセキュリティ・ホールを悪用するワームが大きな被害をもたらした。そこで今回の記事では,メディアなどではあまり報じられない,ワームの対策方法や対策を施す上での注意点を詳細に解説する。

 まず,このワームの影響を受けるのはサーバーだけではない。SQL Server/MSDEは開発ツールやアプリケーション・ソフトなどに組み込まれている場合があるので,クライアント・マシンも影響を受ける恐れがある。影響を回避するにはパッチの適用が第一であるが,適用によって別のトラブルが発生する場合がある。また,今後もSQL Server/MSDEが狙われる可能性は高い。パッチの適用といった“対症療法”にとどまらず,SQL Serverのセキュリティ・レベルを高めておく必要がある。

ワームが原因でネットワーク障害

 1月25日以降,世界規模でのネットワーク障害が報道されている。これは,UDP 1434番のポート(SQL Serverの解決サービスで使用するポート)経由でSQL Server 2000およびMSDE 2000のマシンに感染を広げる「SQL Slammer(MS-SQL,Sapphire)」ワームが原因だと考えられている(関連記事)。

 このワームにより,国内においても1月25日の14時30分ごろから,UDP 1434番へのトラフィックが急激に増加した。例えば,インターネット セキュリティ システムズが公開している「Microsoft SQL Slammer Worm の蔓延」には,同社で検出した,ワームによるアクセス数の時間変化が示されている。

 今回のワームは,2002年7月25日に公開された「SQL Server 2000 解決サービスのバッファのオーバーランにより,コードが実行される (Q323875) (MS02-039)」という古いセキュリティ・ホールを突いている。既にパッチが公開されており,このコラムでも紹介済みのセキュリティ・ホールである。

 ワームの詳細については,日曜日にもかかわらず翌26日に公開されたマイクロソフトのレポート「SQL Server および MSDE を標的とした SQL Slammer ワームに関する情報」に記載されている。まずはこのレポートに注目して,今回のワームを解説する。

クライアント・マシンも影響を受ける

 レポートで注目すべき内容は,SQL Server 2000/MSDE 2000をインストールした覚えがなくても,ワームによる被害を受ける可能性があるということである。というのも,SQL Server 2000/MSDE 2000は,さまざまなソフトウエア製品に組み込まれているからである。「知らない間にSQL Server 2000/MSDE 2000がインストールされていた」――ということが十分ありうる。

 1月27日時点では,レポートには「SQL Server/MSDE を使用する可能性のある製品」として,61のマイクロソフト製品がリストアップされていた。レポートが公開された当初にリストアップされていた製品数は55だったので,公開後に6製品が追加されたようだ。

 ただし,これらの製品すべてにSQL Server 2000やMSDE 2000が組み込まれているわけではない。データの保存先やログ・データの記録先として SQL Server 2000 を使用する可能性がある製品も含まれている。リストの製品すべてがワームのターゲットになるとは限らない。このため,このリストを見て混乱したユーザーは少なくないはずだ。

 実際,1月28日になると,マイクロソフトは同レポートの「SQL Server/MSDE を使用する可能性のある製品」の項目を,「誤解を受ける可能性がある」として削除した。1月28日時点では,「SQL Server 2000 および MSDE 2000 を確実に使用する製品の一覧を現在作成中です。作成後に公開いたします」と記載されている。

【筆者追記】1月28日夜の段階で,「SQL Server および MSDE を標的とした SQL Slammer ワームに関する情報」が更新され,「MSDE 2000 を既定でインストールする製品」が追加された。既定(デフォルト)ではインストールされないものの,MSDE 2000 を同梱している製品の一覧は,1月28日に公開された「SQL Server 2000 / MSDE 2000 を対象とした Slammer ワームに関する情報 : よくある質問と回答」の「Q. MSDE 2000 はどのような製品に含まれますか?」にリストアップされている。

 なお,リストアップされているのはマイクロソフト製品だけだが,もちろん他社製品に含まれている場合もある。例えば,Internet Security SystemsのIDS(不正侵入検知システム)である「RealSecure」の Workgroup Manager や,システムの脆弱性の検査を行う「System Scanner」といったセキュリティ製品にMSDEが組み込まれている場合もある。リストアップされている製品を使用していなくても,後述の方法を参考に,SQL Server 2000/MSDE 2000が含まれているかどうかを確認する必要がある。
【以上,筆者追記】

 MSDE が含まれる代表的な製品は,「マイクロソフト セキュリティ情報 (MS02-061):よく寄せられる質問」にリストアップされている。具体的には,以下のマイクロソフト製品である。

  • Visual Studio .NET (Architect,Developer,および Professional Editions)
  • ASP.NET Web Matrix Tool
  • Office XP Developer Edition
  • MSDN Universal および Enterprise サブスクリプション
  • Microsoft Access
  • Microsoft Application Center 2000

 以上のように,たとえクライアント・マシンであっても,MSDEを組み込んでいる製品を使用している場合には,今回のワームに感染する可能性があるのだ。ユーザーがSQL ServerやMSDEをインストールした覚えがなくても,また,マシンがサーバーであろうとクライアントであろうと,マシンにSQL Server/MSDEがインストールされているかどうかを確認する必要がある。そして,もしインストールされていることが確認できたら,早急に対策を施さなければならない。

 具体的な確認方法は,レポートの「Step 1: SQL Server が動作しているかを確認する」の項に詳しい。コマンド・ライン(パソコンの「DOS窓」)から,「netstat -an」コマンドを入力して,1434/UDP ポートが開いているようなら,SQL Server(MSDE)が動作していることになる。

 この場合には,「Step 2: バージョンの確認」以降の手順で,動作しているSQL Server(MSDE)の詳細を確認し,SQL Server(MSDE)にセキュリティ・ホールがあるかどうか――すなわち,ワームの影響を受けるかどうか――を調べる必要がある。影響を受けるようなら,パッチやサービス・パックを適用する必要がある(パッチ適用時の注意点などについては後述)。

 なお,今回公開されたレポートにはもう一点注目すべき点がある。レポートの「影響を受ける恐れのある製品」の項目には,当然 SQL Server 2000の各エディションおよびMSDE 2000が記載されているが,その下に「注意」として,「Microsoft SQL Server 4.2J, 6.5, 7.0 は本ワームの影響を受けない」という情報が公開後追記された。

 ワームが悪用するセキュリティ・ホールに関する情報「SQL Server 2000 解決サービスのバッファのオーバーランにより,コードが実行される (Q323875) (MS02-039)」には,「SQL Server 2000 および 7.0 (およびそれらに関連するバージョンの MSDE) のテストを行い,SQL Server 7.0は影響を受けないことを確認した。それ以前のバージョンに関してはサポートの対象となっていないため,このセキュリティ・ホールの影響は不明」と記載されていた。つまり,7.0より前のバージョンは,ワームの影響を受けるかどうかが不明だった。

 しかし,SQL Server 4.2J,/6.5ユーザーから質問が相次いだためだろうか,今回のレポートでは,SQL Server 4.2J, 6.5は影響を受けないことが明示された。

パッチの適用でトラブルが

 セキュリティ・ホールがあるSQL Server 2000/MSDE 2000を使用している場合には,早急にワーム対策を施す必要がある。マイクロソフトのレポートでは,ワーム対策としては,SQL Server 2000 の最新の累積パッチ「MS02-061」を適用することをまず挙げている。

 今回のワームが悪用するのは,「MS02-039」のセキュリティ・ホールである。しかしマイクロソフトとしては,「『MS02-039』のパッチを含む『MS02-061』のパッチ」,あるいは「『MS02-061』および 2003年1月21日に公開された『MDAC 2.7 SP1』などを含む『SQL Server 2000 Service Pack 3(SP3)』」を適用するよう勧めている。なお,SQL Server 2000 SP3にはMSDE 版も存在する。

 ただし,「MS02-061」のパッチあるいはSQL Server(MSDE)2000 SP3の適用により,現在稼働しているアプリケーションが影響を受ける恐れがある場合には,「MS02-039」のパッチを適用するだけでも回避できるとしている。

 確かに,対策はマイクロソフトが勧めている通りである。ところが,「MS02-061」のパッチを適用すると,ワームは防げるものの,別のトラブルが発生することが明らかとなった。1月26日付けで「MS02-061」のセキュリティ情報が更新され,パッチの適用で発生するトラブルが公開された。併せて,新たな修正パッチが公開された。

SQL Server Web タスクで権限が昇格する (Q316333) (MS02-061)
 (2003年 1月27日:「よく寄せられる質問」を更新し,更新されたファイルおよびバージョン番号の情報が公開,最大深刻度 : 緊急)
 (2003年 1月26日:インストール機能の付いた修正パッチを公開,最大深刻度 : 緊急)
 (2002年10月17日:日本語情報および日本語版パッチ公開,最大深刻度 : 高)

 明らかにされたトラブルは,「サービスまたはアプリケーションが SQL Server 2000 のデータベースに,高速で繰り返し接続/切断する場合,“Handle Leak”がSQLサーバー・プロセスで生じる可能性がある」というものだ。このトラブル自体は,2002年10月30日には判明していたようだ。以下の英文レポートと,トラブル回避のために「MS02-061」のパッチ適用後に適用するパッチ「Q317748.exe」が既に公開されている。

FIX: Handle Leak Occurs in SQL Server When Service or Application Repeatedly Connects and Disconnects with Shared Memory Network Library

 新たに公開された「MS02-061」パッチには,従来の「MS02-061」パッチに「Q317748.exe」が統合され,さらにパッチのインストーラが備えられた。この新しい統合パッチ「8.00.0686_jpn_installer.exe」へのリンクは,「MS02-061」のセキュリティ情報に記載されている。  新しい「MS02-061」パッチの適用すべきか,古い「MS02-061」パッチのトラブルを修正する「Q317748.exe」を適用すべきかは,システムによって異なる。そこで,更新された「マイクロソフト セキュリティ情報 (MS02-061) : よく寄せられる質問」を参考に,「いずれのパッチを適用すべきか」,「パッチ適用時の何に注意すべきか」を以下に整理した。

◆「MS02-061」パッチを適用していない場合
 ・新たに公開された「8.00.0686_jpn_installer.exe now」の統合パッチを適用する

◆古い「MS02-061」パッチを適用済みの場合
 ・“Handle Leak”トラブルに対応するため,「Q317748.exe」を適用する。パッチは「SQL Server 2000 Hotfix for Q317748: Handle leak with Shared Memory Network Library」から入手可能
 ・「Q317748.exe」を適用すると,既存のファイルを上書きするかどうかを確認するダイアログ ボックスが表示される。その際には「いいえ」を選択する。さもないと,「MS02-061」パッチに含まれるファイルが上書きされてしまう
 ・マイクロソフトが公開しているレポートの“文脈”では,「Q317748.exe」はSQL Server 2000日本語版の環境にも適用できそうであるが,明確にはされていない。不安な場合には「SQL Server 2000 SP3」を適用することをお勧めする

 「SQL Server Web タスクで権限が昇格する (Q316333) (MS02-061)」が更新され,新たなパッチを公開したことは評価できる。しかしながら,これらを知らせる説明が,「SQL Server および MSDE を標的とした SQL Slammer ワームに関する情報」には一切記載されていない(1月27日現在)。混乱を防ぐためにも,ぜひ記載してもらいたい。

SQL Server 2000 SP3の適用にも注意点

 さらに,SQL Server 2000 SP3の適用に関しても注意点が2点存在する。1点目はSP3のインストールに関する注意点である。詳細は,「SQL Server および MSDE を標的とした SQL Slammer ワームに関する情報」からリンクが張られている「SQL Server 2000 SP 3 インストールに関する注意点」に記載されている。インストール時に表示される「互換性チェックのダイアログ」に関する情報である。SP3の適用前には,必ず目を通しておこう。

 もう1点は,SQL Server 2000 SP3適用後に,必要に応じて別途適用しなければならないパッチが存在することである。「SQL Server 2000 SP3 セキュリティに関する修正情報」に記載されているように,(1)「XMLHTTP コントロールにより,ローカル ファイルにアクセスすることができる (MS02-008)」と,(2)「SQLXML の未チェックのバッファによりコードが実行される (Q321911) (MS02-030)」を適用しなければならない場合がある。

 「MS02-008」と「MS02-030」に関するパッチは,SQL Server 2000 SP3にも含まれている。しかし,SP3 に含まれている「MS02-008」と「MS02-030」のパッチは,SQL Server 2000 に関連したモジュールだけを対象としている。SP3を適用したからといって,「MS02-008」と「MS02-030」に関するセキュリティ・ホールがすべてふさがるわけではない。詳細は「MS02-008」と「MS02-030」のセキュリティ情報に記載されているので,それぞれを確認の上,必要に応じて「MS02-008」と「MS02-030」のパッチを別途適用しよう。

SQL Serverのセキュリティを再確認

 SQL Serverは業務システムで使用されていることが多いと思う。そのため,パッチの適用をためらう管理者は少なくないのではないだろうか。パッチを適用すると,現在稼働しているシステムに影響を与える恐れがあるからだ。その結果,今回のようなワームの感染拡大を招いたのではないだろうか。もちろん断言することはできないが,少なくとも一因ではあったと筆者は考える。

 SQL Serverは今後も狙われると考えたほうがよい。今回のワームを防ぐパッチを適用することはもちろん必要だが,それだけでは不十分である。以前の記事「管理者は必見!SQL Serverのセキュリティを解説する」で解説したとおり,パッチが公開されていない新規のセキュリティ・ホールにも有効な,SQL Server の“基本的な対策”が存在する。基本的な対策を施して,セキュリティ・レベルを十分高めておく必要がある。

 詳細については以前の記事を参照してほしいが,基本的な対策とは,以下のような対策である。

  1. SQL Serverが稼働するマシンに対話的にログオンできるユーザーを制限する。加えて,パスワード管理を徹底する
  2. エッジ(境界)ルーターあるいはファイアウオールで,SQL Server が使用するポート(例えば「SQL Server 解決サービス」が使用する UDP ポート 1434番など)を遮断する
  3. 任意のユーザーがSQL Serverに対して,任意のクエリーを実行できないようにする。加えて,入力されたクエリーを実行前にフィルタリングする

 今回のワームについては,たとえパッチを適用してなかったとしても,2番の対策を施していれば感染を防げた。なお,2番の対策について念のため付け加えると,UDP ポート 1434番だけをふさいでも不十分である。米CERT/CCが公開している「CERT Advisory CA-2002-22 Multiple Vulnerabilities in Microsoft SQL Server」(LACによる邦訳版が公開されている)で指摘しているように,SQL Serverが使用する可能性があるすべてのポート(TCP /UDP 1433 番ポート,TCP/UDP 1434 番ポート)を遮断しておく必要がある。

 パッチを適用することはもちろん重要であるが,それだけでは“対症療法”である。今回の“ワーム事件”を契機に,SQL Server に関する“基本的な対策”が施されているかどうかを改めて確認してほしい。

Windows関連のセキュリティ・トピックス

 最後に,ワーム関連以外の,Windows関連のセキュリティ・トピックス(2003年1月27日時点分)をまとめる。とはいうものの,ワーム関連の話題で大きくスペースを取ってしまったためと,筆者自身ワームの顧客対応に追われて十分な時間が取れなかったために,トピックスを紹介するだけで,詳細については割愛する。詳細は,マイクロソフトが公開するセキュリティ情報などを参照していただきたい。

 各種OS関連では,「マイクロソフト セキュリティ情報一覧」にて,新規日本語情報およびパッチが1件,更新パッチが1件公開された。「Locator Service の未チェックのバッファにより,コードが実行される (810833) (MS03-001)」「SMB 署名の問題により,グループ ポリシーが変更される (329170) (MS02-070)」である。「MS03-001」については,関連記事である「Windows OSに深刻なホール, NT/2000のドメイン・コントローラにはすぐにパッチを」をチェックしてほしい。

 各種クライアント関連では,新規日本語情報およびパッチが1件公開された。「Outlook 2002 が Version 1 の Exchange Server Security 証明書を処理する方法に存在する問題により,情報が漏えいする (812262) (MS03-003)」である。

 また,「Microsoft Content Management Server 用の累積的な修正プログラム (810487) (MS03-002)」が公開された。Content Management Serverは英語版製品のみが提供されているため,日本語版修正パッチは存在しない。



マイクロソフト セキュリティ情報一覧

『Windows NT 4.0/NT 4.0, Terminal Server Edition/2000/XP』
Locator Service の未チェックのバッファにより,コードが実行される (810833) (MS03-001)
 (2003年 1月23日:日本語情報および日本語版パッチ公開,最大深刻度 : 緊急)

『Windows 2000/XP』
SMB 署名の問題により,グループ ポリシーが変更される (329170) (MS02-070)
 (2003年 1月23日:修正パッチが Windows XP SP1 に含まれていなかったことを公開し,Windows XP SP1 システム上に適用されるように修正パッチが更新,最大深刻度 : 警告)

『Outlook 2002』
Outlook 2002 が Version 1 の Exchange Server Security 証明書を処理する方法に存在する問題により,情報が漏えいする (812262) (MS03-003)
 (2003年 1月23日:日本語情報および日本語版パッチ公開,最大深刻度 : 警告)

『Content Management Server 2001』
Microsoft Content Management Server 用の累積的な修正プログラム (810487) (MS03-002)
 (2003年 1月23日:日本語情報および英語版パッチ公開,最大深刻度 : 重要)

TechNet Online セキュリティ

SQL Server 2000 Service Pack 3 日本語版 (2003年 1月21日)


山下 眞一郎(Shinichiro Yamashita)
株式会社 富士通南九州システムエンジニアリング
第一ソリューション事業部ネットソリューション部 プロジェクト課長
yamaアットマークbears.ad.jp


 「今週のSecurity Check [Windows編]」は,IT Proセキュリティ・サイトが提供する週刊コラムです。Windows関連のセキュリティに精通し,「Winセキュリティ虎の穴」を運営する山下眞一郎氏に,Windowsセキュリティのニュースや動向を分かりやすく解説していただきます。(IT Pro編集部)