WAF(Webアプリケーションファイアウォール)とは、通過するHTTP通信の内容を検査し、制御を行うアプリケーションゲートウェイファイアウォールの一種です。クロスサイトスクリプティング(XSS)やSQLインジェクションなど、Webアプリケーションの脆弱性を悪用する攻撃に対して、該当の通信を拒否、もしくはデータの無害化などサニタイジング処理を行います。
Webサイトは多くの組織にとって、情報やサービスの提供を顧客に対して行う事業に欠かすことができないビジネスツールの一つです。一方で、Webサイトは不特定多数のユーザがアクセスするように外部公開されていることが一般的です。よって、サイバー犯罪者はこれをインターネット上から直接攻撃できる標的として狙っています。自組織のWebサイトがサイバー攻撃を受けると、ビジネスの機会損失、顧客情報の漏えい、評判の低下に繋がります。
そのため、守るべき資産の一つであるWebサイトをサイバー攻撃から保護することは重要です。Webサービスの開発者は、設計やコーディングの段階からアプリケーションレベルでのセキュリティを考慮して、入力検証やエスケープ処理、パラメータクエリなど、Webアプリケーションを守るためのセキュアコーディングを実践することで、脆弱性を悪用する攻撃のリスクを軽減します。
Webアプリケーションやソフトウェアに関するセキュリティの情報を提供するオープンなコミュニティであるOWASP(Open Worldwide Application Security Project)では、Webアプリケーションに関する重大なセキュリティリスクと対策をまとめた「OWASP TOP10」を公開することで、開発者に対してセキュアコーディングを推奨しています。
2021年版OWASP TOP10
1. アクセス制御の不備
2. 暗号化の失敗
3. インジェクション
4. 安全が確認されない不安な設計
5. セキュリティの設定ミス
6. 脆弱で古くなったコンポーネント
7. 識別と認証の失敗
8. ソフトウェアとデータの整合性の不具合
9. セキュリティログとモニタリングの失敗
10. サーバーサイドリクエストフォージェリ(SSRF)
一方、こうしたWebアプリケーションに関連する脆弱性を完全に排除した開発は現実的には困難ですし、時間の経過と共に新たな脆弱性が発見されることがあります。よって、WAFのようなソリューションを導入することで、多層防御を実現することがリスクマネジメントの観点で重要です。
WAFが提供する主な基本機能は以下のとおりです。
WAFが防御する主な攻撃は以下のとおりです。
その他、Webアプリケーションの脆弱性を悪用する攻撃に対して効果があります。
WAFは導入タイプによって、3つの種類に分かれます。
図:WAFの各タイプの構成イメージ
前述したとおり、WAFは通過するHTTP通信の内容を解析します。しかしながら、昨今のWebサイトの多くはHTTPSを利用しています。HTTPSではクライアントとWebサーバ間のデータを暗号化することで第三者による情報窃取などのリスクを軽減します。そのため、WAFがHTTPS通信を検査するためには、WAFによる解析の前に復号化する必要があります。
ゲートウェイ型やクラウド型のWAFではSSL証明書をインストールすることで、復号してから通信を解析する方式が一般的です。WAFにSSL証明書のインストール機能がない場合には、SSLの復号機能を持ったロードバランサなどとWebサーバの間にWAFを導入する必要があります。ホスト型のWAFでは一般的にWebサービスを提供するソフトウェアがHTTPS通信を復号してから、WAFによる検査が行われるため、考慮する必要はありません。