WAF(Webアプリケーションファイアウォール)

WAF(Webアプリケーションファイアウォール)とは

WAF(Webアプリケーションファイアウォール)とは、通過するHTTP通信の内容を検査し、制御を行うアプリケーションゲートウェイファイアウォールの一種です。クロスサイトスクリプティング(XSS)やSQLインジェクションなど、Webアプリケーションの脆弱性を悪用する攻撃に対して、該当の通信を拒否、もしくはデータの無害化などサニタイジング処理を行います。

WAFが必要な理由

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が提供する主な基本機能は以下のとおりです。

  • 不正通信の検知・制御
    WAFは不正な通信の特徴(パターン)を登録したシグネチャファイルと、監視対象の通信を照合して、許可もしくは遮断します。
  • シグネチャの自動更新
    WAFを提供するベンダーはシグネチャファイルに新たなパターンを追加して配信することで、Webアプリケーションに対する新たな攻撃への防御力を向上します。
  • 特定のIPアドレスの拒否、URLの除外
    特定のIPアドレスからの通信をブロックすることで、攻撃者が利用しているホストからの通信や、サービス提供対象外の国からの通信を制御します。また、特定URLのみ保護対象から除外することで、セキュリティ対策と利便性のバランスを調整します。

WAFが防御する攻撃

WAFが防御する主な攻撃は以下のとおりです。

その他、Webアプリケーションの脆弱性を悪用する攻撃に対して効果があります。

WAFのタイプ

WAFは導入タイプによって、3つの種類に分かれます。

  • ゲートウェイ(ハードウェア)型
    オンプレミスの専用機器をWebサーバの前段に導入することで、Webサーバへ向かう全てのトラフィックを検査して、不正な通信を検知・ブロックします。ゲートウェイ型は専用アプライアンスが高額である点と、ハードウェア自体の管理や運用を自組織で行う必要がある点から、一般的には先行投資・維持費用ともに高額になる傾向があります。一方でカスタマイズ可能な点とパフォーマンスを重視する組織では利用されます。
  • ホスト(ソフトウェア)型
    WAFの機能を搭載したソフトウェアをWebサーバにインストールすることで、同一サーバ上でWebサービスにリクエストが到達する前にトラフィックを検査し、不正な通信をブロックします。ホスト型は専用アプライアンスが不要であることから、少数のWebサーバを保護する場合には、初期投資がゲートウェイ型に比べて低額になりますが、多数のWebサーバの場合には、台数分の導入が必要になるため、コストを考慮した設計が求められます。また、WebサーバにWAFをインストールすることから、システムリソースとパフォーマンスを考慮した導入が重要です。
  • クラウド(サービス)型
    サービス事業者が提供するクラウド上に実装されたWAFを経由することで、不正なトラフィックの検査・ブロックを実現します。ゲートウェイ型やホスト型に比べて、専用アプライアンスやソフトウェアの導入の必要がないため、一般的には初期費用が抑えられます。また、マネージドサービスを提供するベンダーを利用することで、セキュリティに関する知見が不安な組織においても、高レベルのセキュリティを実現します。
図:WAFの各タイプの構成イメージ

図:WAFの各タイプの構成イメージ

WAFとHTTPS

前述したとおり、WAFは通過するHTTP通信の内容を解析します。しかしながら、昨今のWebサイトの多くはHTTPSを利用しています。HTTPSではクライアントとWebサーバ間のデータを暗号化することで第三者による情報窃取などのリスクを軽減します。そのため、WAFがHTTPS通信を検査するためには、WAFによる解析の前に復号化する必要があります。

ゲートウェイ型やクラウド型のWAFではSSL証明書をインストールすることで、復号してから通信を解析する方式が一般的です。WAFにSSL証明書のインストール機能がない場合には、SSLの復号機能を持ったロードバランサなどとWebサーバの間にWAFを導入する必要があります。ホスト型のWAFでは一般的にWebサービスを提供するソフトウェアがHTTPS通信を復号してから、WAFによる検査が行われるため、考慮する必要はありません。

まとめ

WAFはファイアウォールIPSと異なり、アプリケーションレベルでHTTP通信の内容を検査し、制御を行うことから、クロスサイトスクリプティング(XSS)やクロスサイトリクエストフォージェリ(CSRF)、SQLインジェクションなど、Webアプリケーションの脆弱性を悪用する攻撃に対して有効なソリューションです。

本来Webアプリケーションの脆弱性は、Webアプリケーション自体の改修やアップデートで修正されることが理想です。しかし、改修に時間が掛かる場合やアップデートが提供されないなどの状況下でサービスを提供する必要がある場合には、WAFを導入することでセキュアなWebサービスの提供を実現します。

ウェビナーによる解説

WAFについての関連情報

サイバーセキュリティの原点回帰:基礎から分かるゼロトラスト

サイバーセキュリティの重要な考え方の1つである「ゼロトラスト」について、改めて解説します。

ゼロトラストのガイドライン「NIST SP800-207」を紐解く

ゼロトラストの基礎知識や実装方法などが纏められているガイドライン「NIST SP800-207」を解説します。

WAFのトピック

関連記事