今回から、NDSS'06のワークショップの内容についてお話したいと思います。

Microsoftのクローゼットにしまい込まれたガイコツたち ~ 情報公開無く修正された脆弱性

 さて、トップバッターはSteve ManzuikとAndre Protasです。Steveは、リサーチ・チームのマネージャです。米国やカナダのセキュリティ・コミュニティで幅広く活動しており、2003年に開催されたPacSec.JP/Core03(http://pacsec.jp/)では来日しています。日本のセキュリティ業界の方との交流もあり、六本木と寿司が大好きな大柄のカナディアンです。

 Andreは、リサーチ・エンジニアの一人であり、脆弱性解析やパッチ解析、脆弱性データ・ベース構築などを行っています。彼も米国のセキュリティ・コミュニティで活動しており、大柄でよく葉巻を吸ってます。

 彼らは、「Microsoftのクローゼットにしまい込まれたガイコツたち ~ 情報公開無く修正された脆弱性」という題目でプレゼンテーションを行いました。これだけですと何のプレゼンテーションなのか今ひとつピンと来ないかもしれませんが、平たく言えば「Microsoftの月例パッチの日に提供される修正モジュールでは、情報が全く公開されていない脆弱性も一緒に修正されている事がありますよ」というお話です。情報公開無く修正された脆弱性の例や、パッチ適用前と適用後のコードの差を解析するパッチ差分解析の手法などについての解説がメインでした。

情報公開無く一部の脆弱性は修正されている

 セキュリティに携わっておられる方ならご存じかと思いますが、Microsoftから提供されているSecurity Bulletinでは、「謝辞」として、その脆弱性を発見し、報告した個人や企業・団体に対してクレジットを与えています。その発見者がパッチのリリース後にその脆弱性に関する詳しい情報を公開した場合、その脆弱性に対してどのような修正を加えたのかを詳しく解析する事ができます。

 しかし、パッチ差分解析を行っていると、その脆弱性の発見者が公開している脆弱性とは関係のない個所が修正されている事が多々あります。そしてその中には、一時情報源に公開されているものとは別の脆弱性に対する修正が含まれている事もあります。

 なかには驚かれた方もおられるかもしれませんが、これは今に始まった事ではなく、随分前からこのような非公開の脆弱性修正は行われていました。私もRetinaのスキャン・モジュール作成のためにパッチ差分解析を行っていますが、非常に多くの修正が行われており、解析すべき個所が多すぎてゲンナリする事があります。

 セキュリティ脆弱性は可能な限り修正されるべきですので、製品リリース後にも自社で積極的にセキュリティ監査を行い、情報が一般に公開されていない脆弱性についても修正するMicrosoftの取り組みは非常に評価すべきだと思います。他のベンダーにはあまり見られない取り組みでもあり、これが今日のWindowsシステムの強固なセキュリティに一役買っている事は間違いないでしょう。しかし、脆弱性を修正し、情報を公開する事なく月例パッチに混入させるという方法は、利点もありますが同時に問題点も生み出します。

情報公開の無い脆弱性修正の利点と問題点

 情報を公開する事なくパッチをリリースすると、ワームやexploitが作成させる可能性が減るかもしれません。事実、私は今まで情報公開無く修正された脆弱性を狙った攻撃を見た事がありません。では、このような脆弱性については一切情報公開を行う事なくパッチをリリースした方が良いように思われますが、事はそれほど単純でもありません。

 まず第一に、やはりシステム管理者にとっては、ある程度の情報があった方が良いという事です。あまり詳細な情報は必要無いにせよ、脅威をある程度正確に見積もるためにも、せめて修正された脆弱性を全て把握できた方が良いのではないでしょうか。

 第二に、コード解析手法や解析ツールの充実などにより、パッチ差分解析が非常に楽になってきているという事が上げられます。このため、情報を公開しない事が必ずしも詳細情報の秘匿につながるとは言えなくなってきています。eEyeリサーチ・チームでも月例パッチが出ればすぐに解析を始めますが、大抵は一日二日で修正された問題をほぼ洗い出す事ができてしまいます。

 そして最後に、セキュリティ・ベンダーの技術力やリソース不足で、このような情報公開無く修正された脆弱性、およびそれを狙った攻撃に対応できない場合があるという事です。これは、特にIDSやIDP製品、アンチウイルス製品などを開発しているベンダーにのしかかる課題です。もし情報公開無く修正された脆弱性を狙った攻撃が行われた場合、対応できていないとユーザーが被害を受けます。情報公開無く修正された脆弱性については、全く対応していない製品も多々あります。

 ただ、特定の脆弱性に対するパッチにおいて、全く毛色の違うサービスやアプリケーションに存在する脆弱性の修正が含まれるという事は無かったと思います。例えば、「LSASS DCE/RPCサービスの脆弱性」に関する修正パッチに、非公開の「Media Playerのmidiファイル再生における脆弱性」の修正が混入されるといった事は確認していません。そして、少なくとも影響を受けるポートやサービス、問題を緩和する要素や回避策などについてはほぼ適切な情報が出ていると思います。

 OSベンダーとしては、自社で発見した脆弱性の取り扱いにはビジネス的な要素も絡んできますので非常に苦慮するだろうとは思いますが、Microsoftは今や商業ソフトウエア製品の脆弱性修正モデルのけん引役になっていますので、是非とも何か良い指標を示して頂きたいと思います。