「なんか、おもしろい→IE 経由で FireFox の脆弱性」と「対処したようだ→IE 経由 FireFox の脆弱性」の続き。ネタ元は、「MS、WindowsのURI処理の脆弱性認める」(ITmedia エンタープライズ)。
マイクロソフトの製品はコマンドライン引数としては渡さず、DDE 経由で引き渡していたために大丈夫だったのではないかな?
いいたとえではないと思うけど、SQL インジェクションに対応するために、パラメータ渡しにしていた、みたいな?
なんにしても、OS レベルで「引き渡す」という仕様が先に存在しているので、それが自分にとって適切か、そうでないかは、渡される側でチェックするのが妥当なような気がする。
もちろん、「スペースを引数のセパレータとする」という仕様と、「引数にスペースが含まれる」という仕様が矛盾するわけで、この矛盾を回避する仕様が存在しているべき、という意味で、マイクロソフトに問題がある。
ここから先も、また、難しいですね。
単純に「二重引用符で囲まれる範囲は、スペースもひとつの引数とする」としたとする。ファイル名に二重引用符が存在しないことは、OS レベルで保証しているので、まぁ、妥当かもしれない。
じゃぁ、もし、二重引用符を引数としているアプリケーションが存在したら、そのアプリケーションはどうなるの?
それとも、「プロトコル名://」という、URI を示すときだけ、特別処理する?
う~ん、どうかなぁ?
昔、UNIX から DOS に移ってきて困ったのが、引数の展開処理。UNIX で、アスタリスクをコマンドライン引数に使うと、OS が展開してプログラムに渡してくれた。DOS の場合、アスタリスクがそのまま渡ってくる。自分で展開しやがれ、と。
これのイメージがあるので、「てめぇでチェックしやがれ」が基本なんじゃないかなぁ?と思ってみたりするのでした。
投稿日時 : 2007年10月30日 21:33