Webアプリケーション・セキュリティ(Web AppSecとも呼ばれる)は、攻撃を受けても想定どおりに機能するようにWebサイトを構築するという考え方です。この概念には、悪意のある可能性があるエージェントから資産を保護するためにWebアプリケーションに組み込まれた一連のセキュリティ管理策が関連します。
Webアプリケーションには、あらゆるソフトウェアと同様、必然的に欠陥が存在します。その欠陥の一部は、悪用される可能性がある実際の脆弱性となり、組織にリスクをもたらしますが、Webアプリケーション・セキュリティは、このような欠陥を防御します。セキュア開発のプラクティスを活用し、ソフトウェア開発ライフサイクル(SDLC)全体を通じてセキュリティ対策を実施し、設計レベルの欠陥や実装レベルのバグに対処します。
Webセキュリティ・テストは、Webアプリケーションとその構成に関するセキュリティ脆弱性を発見することを目的としています。主なターゲットはアプリケーション層(HTTPプロトコルで実行されているプログラム)です。Webアプリケーション・セキュリティのテストでは、多くの場合、さまざまな種類の入力を送信してエラーを引き起こし、システムに想定外の動作をさせます。これらのいわゆる「異常系テスト」により、システムが設計に反する動作をしているかどうかを調べます。
また、Webセキュリティ・テストは単にアプリケーションに実装される可能性のあるセキュリティ機能(認証・認可など)をテストするだけではないという理解が重要です。他の機能がセキュアに実装されていることをテストする(ビジネス ロジック、適切な入力検証と出力エンコーディングの使用など)ことも同様に重要です。目的は、Webアプリケーションで公開される機能をセキュリティで保護することです。
主なWebアプリケーション攻撃
攻撃結果
最近の環境では、Webアプリケーションが影響を受ける可能性がある問題は広範にわたります。上の図は、攻撃者が用いる攻撃の中でも特に一般的なものを示しており、こうした攻撃によって個々のアプリケーションまたは組織全体に深刻な損害がもたらされる可能性があります。攻撃の潜在的な結果に加えて、アプリケーションを脆弱にするさまざまな攻撃を知ることで、脆弱性に先取りして対処し、脆弱性を正確にテストすることができます。
脆弱性の根本原因を特定することにより、SDLCの初期段階で緩和策を実装して問題を防ぐことができます。さらに、これらの攻撃の仕組みを知ることにより、Webアプリケーション・セキュリティ・テストで既知の重要なポイントにターゲットを絞ることができます。
攻撃の成功による影響を用いて脆弱性の全体的な重大度を測定できるため、攻撃の影響を認識することは企業のリスクを管理する上でも重要です。セキュリティ・テストで問題が見つかった場合、重大度を定義することで、企業は対策作業に効率的に優先順位を付けることができます。重大度が高い問題から始めて、影響が比較的少ない問題へと順に取り組み、企業に対するリスクを低減します。
問題が見つかる前に、社内のアプリケーション・ライブラリ内の各アプリケーションに対する潜在的な影響を評価することで、アプリケーション・セキュリティ・テストの優先順位付けが容易になります。注目度の高いアプリケーションのリストを作成することで、Webセキュリティ・テストのスケジューリングでは重要なアプリケーションから先に対象とし、より対象を絞ったテストを実施してビジネスに対するリスクを軽減することができます。
Webアプリケーション・セキュリティ・テストでは、次の機能一覧を確認する必要があります。各機能の実装が不適切であると、脆弱性が発生し、組織に重大なリスクが生じる可能性があります。