ソフトウェアの脆弱性を暴く行為、またはそのための検証コード
ソフトウェアの脆弱性を発見した場合、実際に悪用が可能であることを実証するため、実際に想定される攻撃を実装した簡単な検証コードが公開されることがある。
その目的は、実際に攻撃するコードを示すことで脆弱性のリスクや影響を明確にし、注意を喚起することである。このようなコードを「エクスプロイトコード」と呼ぶ。この場合のエクスプロイトコードには、攻撃が可能なことを示す部分のコードだけが実装され、実際に攻撃を完結させて破壊や犯罪行為を成立させてしまう部分までは実装されていないことが多い。
現在では、悪意を持ったプログラムコードそのものを「エクスプロイト(コード)」と呼ぶことも増えている。
特に「エクスプロイトキット」といった場合、攻撃者が配布、販売する、さまざまな脆弱性を攻撃するコードモジュール群(パッケージ)のことを意味する。エクスプロイトキットは闇市場(アンダーグラウンドマーケット)などで流通しており、プログラムなど専門的な知識がなくても利用できるようユーザーインタフェースを備えていたり、高度な機能を持ったソフトウェアであることもある。
脅威
脆弱性を実証するエクスプロイトコードは、注意喚起やソフトウェアの改修に役立つ情報でもあるが、攻撃の手法やヒントとなるコードを提供することになる可能性もあり、公開すべきではないという意見も存在する。
一方、エクスプロイトキットは、攻撃者が簡単にさまざまなタイプのマルウェアの開発を容易にするツールであり、マルウェアの生産性や攻撃能力を高める危険がある。
主な感染/被害の流れ
エクスプロイトコード
- 研究者が脆弱性とともに公表→公開情報を元に新たなマルウェアを開発→ゼロデイ攻撃が発生
エクスプロイトキット
- 攻撃者が攻撃用にキットを開発→闇市場で販売→攻撃の増加
主な対策と注意点
エクスプロイトへの対策
- ソフトウェア開発元の更新情報を定期的にチェックする
- 公開された更新プログラムを適用する
- 緩和策を実施し、被害を防止する
エクスプロイトキットへの対策
- 最新のアンチウイルス製品(ウイルス対策ソフト)を導入する
- 脆弱性を修正しておく
脆弱性が公開されると、直後よりその攻撃が増えるという統計もあるため、攻撃への警戒が重要となる。セキュリティ機関の発表や開発元の情報に目を光らせておく必要がある。また既知の脆弱性と組み合わせた攻撃なども多いため、日ごろより脆弱性を修正しておくことも被害防止に役だつ。