脆弱性診断を実施していたのに、攻撃が成立してしまうことがあるのはなぜですか?
診断だけで全ての脆弱性を見つけることは難しく、脆弱性が残ってしまうためです。
ソフトウェアの開発時に不具合がないことを確認するテストを実施しても、全ての不具合を見つけられないのと同じように、脆弱性診断を実施しても、それだけで全ての脆弱性を検出することはほぼ不可能です。
ちなみに、脆弱性診断にはツールを用いて行う方法と、専門家がソースコードなどを手作業で確認する方法があります。Webアプリケーションに対する脆弱性診断方法では、IPA(情報処理推進機構)による分類にある「手動型」「自動型」「通信監視型」などさまざまな検査方法が存在します。
参考リンク:「ウェブサイトにおける脆弱性検査の紹介(ウェブアプリケーション検査編)」(IPA)
なお、ツールに関しては、上記のPDFに挙げられているものだけでもそれぞれに特徴があり、他にも各セキュリティ企業が提供している製品などがありますので、使用している環境や目的に応じて使い分ける必要があります。
テスト時にこうしたツールを用いることで、代表的な脆弱性はある程度網羅できますが、開発工程の早い段階から脆弱性が作り込まれないように配慮することも欠かせません。
診断した時点で問題がなくても、後日問題になることもあるのでしょうか?
仕様変更によって新たに脆弱性が作り込まれる場合や、攻撃手法が新たに見つかる場合もあります。
ソフトウェアは一度開発して終わりではありません。利用者の要求が追加されるだけでなく、時代の変化に合わせて随時変更が発生します。また、OSやサーバソフト、データベースやミドルウェアなどシステムを構成する製品が更新されたことで、新たな脆弱性が発生することもあります。
これまでは問題ないと考えられていたソースコードに対しても、攻撃者は常に研究を続けていますので、ずっと安全だとは限りません。実際、オープンソースのソフトウェアで、何年もたってから問題が見つかったことがあります。
次ページでは、脆弱性診断以外の対処法について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.