■エクスプロイト・コード(exploit code)
脆弱性を攻撃するための小さなプログラム、また脆弱性の存在を実証するためのプログラムのこと。
両者はまったく正反対の性格を持つが、脆弱性の存在を実証するために公開されたプログラムを改変することで、簡単に脆弱性を悪用するためのプログラムが作れるようになることから、両者は表裏一体の関係といえる。
Windows OSでは、インストールされたアプリケーションや修正プログラムの適用具合などによって脆弱性の状況が大きく異なる場合がある。そのため、脆弱性を発見した人によっては、それがどのOSのどういったバージョンに影響するものなのかを広く実証・検証するためにexploit
codeを作成し、それをセキュリティ関連のメーリング・リストや掲示板などで配布、多くの人に確認してもらうことがある。
このような目的で作成されたexploit codeは、攻撃が可能であることを示すメッセージを表示したり、電卓(calc.exe)や画像を表示するようなプログラムを起動したりする。こうしたexploit
codeを多くの人が試すことで、実際には特殊な条件下でしか脆弱性の影響を受けないことが分かったり、逆に特定のOSやサービスパックでのみ発生すると考えられていた脆弱性が別の環境でも見つかったりすることがある。また、修正プログラムの公開後においては、exploit
codeを実行することで、脆弱性対策が行われているかどうかのセキュリティ診断ツールとして利用することも可能だ。このようにexploit codeが善意で使われている場合においては、セキュリティの向上に役立つプログラムとなる。
しかし、一方でこうして配布されたexploit codeを改変することで、本来はメッセージを表示するだけであったものを、システムを破壊するようなワームや攻撃ツールに作り変えることを可能にする。こうした例の典型として、2003年8月中旬に猛威を振るった「Blasterワーム」が挙げられる。Blasterワームが攻撃するRPCインターフェイスの脆弱性は、2003年7月17日にマイクロソフトが修正プログラムの提供を開始したことで存在が明らかになった。9日後の7月26日には早くもexploit
codeが公開され、8月4日にはこのexploit codeを悪用したトロイの木馬型ウイルスが、8月11日にはBlasterワームがウイルス対策ソフトウェア・ベンダによってそれぞれ検出されている。このようにexploit
codeが公開されると、場合によっては数日で悪用したウイルスやワームが登場することになる。
このように悪用される可能性があるため、研究や対策目的という善意であってもexploit codeを公開することに対しては、批判的な声も多い。一方で、exploit
codeをセキュリティ対策サイトなどで非公開にしたとしても、結局アンダーグラウンドでは流通することから、むしろ対策が行えず危険性が高まるという意見もある。現在はどちらかというと、exploit
codeは積極的に公開される傾向にあるようだ。前述のように、exploit codeが公開されると数日でウイルスやワームが登場するため、日ごろからのセキュリティ対策が重要となる。 |