セキュリティ対策はいたちごっこか?

最近、「セキュリティ対策はきりがない、いたちごっこになるだけじゃないか。」という声を耳にすることがよくあります。年々新しい攻撃手法が発見されるため、いつまで経っても安心できない、というのが理由のようです。
ただ、正しく実装している限り、いたちごっこになることはありませんので安心してください。
Webアプリケーションのセキュリティ対策には、IPA安全なウェブサイトの作り方にもあるように

  • 保険的な対策
  • 根本的な対策

の2種類があります。XSSを例にすると、根本的な対策とはHTML生成時の特殊文字エンコードであり、保険的な対策は入力値の妥当性チェックとなります。
いたちごっこの問題は、保険的な対策(特に問題となるのはブラックリスト方式でのチェック)のみで実装されているアプリケーションにおいて発生します。妥当性チェックを通過した値が後続の処理で別の値に変換される仕様によって問題が顕在化したり、IIS+IE+Unicodeスクリプト挿入を弾くためのブラックリストが回避されてしまったり・・・
これらの問題は非常に厄介で、例えセキュリティベンダに検査を依頼したとしても、あらゆる攻撃手法に耐えうる実装となっていることを短い期間で検証することは不可能に近いと言い切ってもいいかもしれません。従って、年々新しい攻撃手法が発見されるため対策にきりがないという結論に結びつくのでしょう。
しかし、きりがない対策を永遠に行う必要がある訳ではありません。問題の本質を理解し根本的な対策を行えばよいのです。根本的な対策が取られていれば、新しい攻撃手法に脅える必要はありません。残念ながら、根本的な対策がなんであるのかは私が考えていた以上に浸透していないようですが・・・


このような現状を踏まえると、高木先生の啓蒙活動は大変有益なものであると感じられます。
高木浩光@自宅の日記 - WASF Times版「サニタイズ言うな!」