リビング+:ニュース |
2003/11/14 23:29:00 更新 |
MS03-049が危険な理由
Windows 2000/XPに存在していたWorkstationサービスのバッファオーバーフローの問題は、非常に深刻な事態を引き起こすおそれがある。提供される情報の内容にも不備が。
マイクロソフトが11月12日に公開した複数のセキュリティホールのうち、Windows 2000/XPに存在していたWorkstationサービスのバッファオーバーフローの問題(MS03-049)は、MSBlast(Blaster)級のワームの再来といった、非常に深刻な問題を引き起こすおそれがある。今年夏以降、「第二のMSBlastのおそれ」が取りざたされるのはMS03-039、MS03-043に続いて既に3回目だが、複数のセキュリティ専門家の意見を総合すると、これが現実のものになってしまう危険性は非常に高い。
MS03-049が存在するWorkstationサービスは、ファイル/プリンタ共有をはじめ、共有リソースとの通信に用いられる重要なサービスで、Windows 2000やXPではデフォルトで有効になっている。このサービスにバッファオーバーフローの脆弱性が存在しており、悪用されれば、リモートから任意のコードを実行されてしまうおそれがある。
さらに危険性を高めている要因がある。この問題を発見し、マイクロソフトに報告した米eEye Digital Securityの鵜飼裕二氏によると、MS03-049は、メモリが動的に確保されることから実行結果にばらつきが生じるヒープ領域でのバッファオーバーフローではなく、MS03-026と同様のスタックベースのバッファオーバーフロー。OSの言語やサービスパックの適用状況によらない“安定した”実証コード(Exploit)を作成できてしまうという。その上、「利用できるバッファサイズも比較的大きく、十分ワームになりえる危険性を持っている」(鵜飼氏)。
事実、ラックは問題が公になったその日のうちにアドバイザリを公開し、日本語環境においてこの問題の再現に成功したことを報告した。特にWindows XPでは、特殊な権限がなくともリモートからの攻撃が成功するという。これを踏まえて同社の新井悠氏は、「攻撃コードが出回るのは時間の問題」とし、パッチを速やかに適用するよう呼びかけている。
今年7月にMS03-026の問題が公になり、その危険性が検証され、Exploitコードが公開され、MSBlastが野に放たれた……という一連の流れを振り返ると、MS03-049が同様の事態を引き起こす可能性は非常に高い。幸いにしてインターネット セキュリティ システムズ(ISS)の高橋正和氏によると、「トラフィックにはまだ特徴的な変化は見られていない」。しかし各氏とも、Exploitの作成とワーム化は時間の問題だろうと述べているし、事実、既にExploitが公開されている(別記事参照)。
(11月14日14時追記:JPCERT/CCは11月14日、運用中の定点観測システムにおいてTCP 139番ポートへのスキャンが増加している確認したことを明らかにした。JPCERT/CCではこれがMS03-049を悪用した侵入の試みである可能性があるとして、パッチ適用の徹底を呼びかけている)
あの騒動を繰り返さないために
では、8月のあの騒動を繰り返さないためには何をなすべきなのか。これはもう、検証および適用の手間があるとはいえ、Windows Updateもしくは手動でパッチを適用することに尽きる。
並行して、改めて基本的なセキュリティ対策を徹底しておくべきだろう。これについてはマイクロソフトもセキュリティ情報の「回避策」の項で説明しているが、主なものを挙げてみよう。
・企業ファイアウォールにおける不要なポートのフィルタリング
MS03-049については特にTCP/UDP 138、139、445の各ポートが明示的に挙げられているが、基本はすべてブロックし、サービス/アプリケーションの必要に応じてポートを開けていくというアプローチを取るほうが望ましい。
・各端末におけるパーソナルファイアウォールの導入、運用
ゲートウェイ部分だけでなく、各端末にパーソナルファイアウォールを導入し、上記と同様不要なポートのフィルタリングを行う。万一何らかのワームに感染した端末がネットワーク内部に持ち込まれたとしても、二次感染はブロックすることができる。
これとともに、ログおよびIDSの監視レベルを強化し、異常なトラフィックが発生したらできるだけすばやく把握できるようにしておくべきだろう。ワーム発生によるトラフィックの急増は、MRTGなどによる全体の傾向からでも把握できる。
また、先日の痛い経験を生かさない手はない。例えば、MSBlastが感染経路の1つに、未対策のマシンが社内LANに持ち込まれ、そこから広まるというケースがあった。そこで、「ノートPCを社外から社内に持ち込む際には、いったん検疫セグメントのようなところに接続し、そこで問題がないことを確認してから社内システムに接続するような仕組みも検討する」(ISS 高橋氏)など、技術的な対策に加え、ユーザーへの周知方法(連絡方法)や運用体制についても洗いなおすべきと言う。
「過去の事例からいって、ワームを持ち込む人間は必ず出てくる。出てきてから慌てるよりは防御機能を持たせるべき」(同氏)。
だがいずれにしても、根本的な対策はパッチの適用であることに変わりはない。それを踏まえ「“パッチのリリースと適用に耐えていく”ことが当たり前になりつつあるのかもしれない」と新井氏はコメントしている。
また「どうしてもWindows Updateを行わないユーザーは出てきてしまう。確実に対策が取られていることを確認するため何らかのツールを用いて検査を行い、未対応のPCは強制的にネットワークから遮断する」といった強制的な対処にも検討の価値があると高橋氏は述べている。
三井物産GTIプロジェクトセンターの岡田卓也氏は、さらに根本的な対策として、リテラシー向上を目指したユーザー教育やナレッジベース提供が必要と指摘。さらに、どうあってもセキュリティ事故は起こり得ることを前提に、サードパーティ製ツールなどを組み合わせ、パッチ適用・運用の負荷を軽減するようなソリューションを提言することも必要だろうとしている。
なお、eEye Digital Securityではスキャナソフト「Retina Network Security Scanner」をアップデートし、この脆弱性の検出を可能にしている。15日間利用可能な試用版は同社Webサイトより入手可能だ。またISSでも同様の検出ツールを提供する計画だ。
月刊化の効用と注意点
とはいえ、パッチの公開スケジュールを変更し、月に1回のペースで定期的に公開するようにしたことについては、比較的歓迎する声が多い。「日取りが分かっていれば準備はしやすい」(新井氏)。
ただし鵜飼氏が言うように、だからといってパッチが公開されてからExploitが作成されるまでの期間が大きく変わるわけではない。「こまめにExploitが出るか、月に一度まとめて出るかの違いかと思われる」(同氏)と言う。
また月刊化によって留意すべき点もある。脆弱性が公表されるまでの期間が長くなったことから、パッチが提供されない状態での攻撃、いわゆる0-Day状態の攻撃への備えも頭に入れておく必要が高まった。
例えば、Windows XPではMS03-043においてMS03-049の問題も修正されていたのに対し、Windows 2000ではそうならなかった。ここでもし誰かがパッチの差分を分析していれば、Windows 2000に対する0-Dayでの攻撃が成立した可能性もある。
これを踏まえ、「具体的には、ネットワークレベルでのセキュリティ対策に加え、PCレベルでのセキュリティ対策の必要性がより高くなった」と高橋氏はコメントしている。
MS03-043の情報に不備
MS03-049に関してはもう1つ、提供される情報の内容に関して課題が残った。Windows 2000の場合はMS03-049で提供されるパッチの適用が必須だが、Windows XPの場合、この修正内容はMS03-043に含まれており、実質的にMS03-049を当てる必要はない。マイクロソフトのセキュリティ情報ページからWindows XP用パッチに貼られたリンクは、実はMS03-043を指している。
このMS03-043は10月16日に初めて公開されたパッチなのだが、Windows Updateのインストール中に応答が停止するという問題(Update.exeに起因)を解決した新しいバージョンが10月30日に公開されていた。この際に、「更新履歴」には記されていないいくつかの変更があった模様だ。
1つは、msgsvc.dllおよびwkssvc.dllという2つのファイルのバージョンが、初期版のMS03-043と10月30日に公開された新版MS03-043とでは異なっていること。このため、パッチの適用状態を把握するMBSA(Microsoft Baseline Security Analyzer)などのツールを用いると、ファイルが古いと判断され、更新を促されることになってしまう。
マイクロソフト日本法人はこの点に関して、「インストーラの修正を行った際に、配布したパッケージのモジュールも同様に最新の状況となり、結果的にバージョン番号がアップしてしまった」と説明している。同社によると、セキュリティの観点から言えば、初期版MS03-043と新版MS03-043には変わりはなく、再度適用を行う必要はない。そのためWindows Updateも無効になっているという(どうしても適用したい場合は手動でインストーラを実行する必要がある)。
だが問題はもう1つある。初期版MS03-043の場合、dllファイル本体は更新されても、Windowsファイル保護(WFP)機能の保護対象ファイルをキャッシュしている「%SystemRoot%\system32\dllcache」ではmsgsvc.dllしかアップデートされず、wkssvc.dllは更新されないままになるという問題が、複数のセキュリティ関連メーリングリストで指摘されている。つまり初期版MS03-043を適用している場合、wkssvc.dllに変更/削除が行われると、WFPによってかえって、問題が残ったままのwkssvc.dllが復元されてしまうおそれがある(なおWFPはそのファイルが最新のものかどうかはチェックしないようになっている)。残念ながら未確認だが、これらの投稿を踏まえると新版のMS03-043を手動で適用しておくほうがよさそうだ。
月刊化したにも関わらず、依然としてパッチに関連する情報が錯綜している点についてマイクロソフトでは、「製品の矛盾点が表面化してしまったことと、マイクロソフト自身がこのプロセスをうまくコントロールできていないことが原因であり、どちらの問題も、今後改善しなければならないものだと考えている」と述べている。
同社はまた「管理者の負担の低減を第一に考えている」と表明している。その言葉が本当ならば、ぜひ公開される情報の内容についても一考を促したい。
関連記事
早速公開された実証コード、4種類のセキュリティホールに早急な対策を
MS、WindowsとOfficeの脆弱性修正パッチリリース
「第二のMSBlast」がやって来る?
関連リンク
マイクロソフト:Workstation サービスのバッファ オーバーランにより、コードが実行される(MS03-049)
マイクロソフト:メッセンジャ サービスのバッファ オーバーランにより、コードが実行される(MS03-043)
eEye Digital Security:Windows Workstation Service Remote Buffer Overflow
ラック:SNS Spiffy Reviews No.8
インターネット セキュリティ システムズ:Microsoft Workstation サービスでのバッファ オーバーフロー
[高橋睦美,ITmedia]