
WindowsのHTTPプロトコルスタックにリモートでコードが実行される脆弱性 28
ストーリー by hylom
これはでかい 部門より
これはでかい 部門より
あるAnonymous Coward 曰く、
Microsoftは日本時間の15日、セキュリティ情報11件を公開した。最大深刻度が4段階中で最も高い「緊急」が4件ある。そのうちのMS15-034では、Windowsに対して特別に細工されたHTTP要求を攻撃者が送信した場合に、リモートでコードが実行される可能性があるというHTTP.sysの脆弱性を修正するものとなっている(Mattias Geniar氏Blog、INTERNET Watch、Slashdot)。
すでにこの脆弱性を悪用したエクスプロイト・コードは出回っているとのことで、IIS向けの回避策として出力キャッシュを無効にする方法(「カーネルキャッシュを有効にする」のチェックを外す)も提示されている。ただしパフォーマンスは落ちる(piyologで詳しい検証記事が掲載されている)。
HTTP.sysを信用するな (スコア:5, すばらしい洞察)
で起こると言うことは、範囲チェックが甘くて変なメモリをアクセスするんだろうけど、HTTPをパースするなら物凄く変なリクエストが来て未知の不具合が顕在化する危険性はこれからも高いと思う。問題はカーネルモードでそれが起こると全体を巻き込んでフリーズする事だから、カーネルモードにサンドボックスを創れないのだろうか。
通信がネットワークドライバで独立していると考えれば、HTTPをパースして結果を返すのはメモリ処理で完結してハードウェアの状態遷移を伴わないのだから、
が起こってもHTTP.sysを再起動するかパージする機構ができるのではないかと思ってしまう。
とにかく、カーネルモードでHTTPを処理するのなら、基本的にHTTP.sysを信用しない構造にして欲しい。
※HTTP.sysだと直感的に機能が判りにくいのでHTTPD.sysとかにしてくれないかな。
Re:HTTP.sysを信用するな (スコア:3, おもしろおかしい)
> カーネルモードにサンドボックスを創れないのだろうか。
MS-DOSみたいなごく原始的なOSを除けばサンドボックスはすでに実装されているよ。ちなみにユーザーモードという名前がついている。
Re:HTTP.sysを信用するな (スコア:1)
HTTP.sysの大きな目的の一つがカーネルモードとユーザーモードの切り替えコストを発生させずに処理を高速化することだから、ユーザーモードを使うならHTTP.sysの存在意義が薄れてしまいます。IIS 6.0の概要 [atmarkit.co.jp]
なので
という疑問になりました。
今回の様なメモリ処理で完結している場合は、その様なモジュールの居場所としてリング1とかリング2が低コストで使えないのだろうか、とか、リング0のままでもメモリディスクリプタテーブルを必要最小限の物に切り替えて安全性を高められるのではないかと考えました。