WAFとは?| ウェブアプリケーションファイアウォールの説明
Webアプリケーションファイアウォール(WAF)は、悪意のあるWebトラフィックやアプリケーション層の攻撃(DDoS、SQLインジェクション、クッキー操作、クロスサイトスクリプティング(XSS)、クロスサイトフォージェリ、ファイルインクルードなど)をフィルタリング、監視、ブロックすることで、WebアプリケーションやAPIを保護するファイアウォールの一種です。
レイヤ 7 の防御として、WAF はウェブアプリケーションとインターネット間のトラフィックに焦点を当てます。ウェブアプリケーションやウェブサーバーがリクエストを受け入れる前に、悪意のあるリクエストを検出して対応する機能は、企業(およびその顧客)に不可欠なセキュリティを提供します。
WAF技術の出現
クラウド以前の時代には、ファイアウォールを使って内部ネットワークと外部ネットワークをセグメント化し、悪意のあるネットワークトラフィックから資産を保護することができました。しかし、従来のファイアウォールのアプローチはクラウドには理想的ではありません。多くのアプリケーションは、インターネットに接続する必要があるため、内部ネットワークで分離することができません。
ウェブアプリケーションに対する攻撃の増加から保護するための取り組みにより、1990年代後半にWAF技術が開発されました。初期のバージョンのウェブアプリケーションファイアウォールは、不正な文字の送信からアプリケーションを保護します。WAFはその後、アプリケーションとクライアントの間に位置するように進化し、「インライン」と呼ばれるようになりました。
WAF 技術の出現と並行して、OASIS Web Application Security Technical Committee (WAS TC) の脆弱性対策は、 Open Web Application Security Project (OWASP) の Top 10 Listにまで拡大されました。数十年経った今でも、OWASP Top 10 はウェブアプリケーションセキュリティコンプライアンスの業界標準となっています。
WAFとOWASP Top 10という2つの開発により、私たちは、システムを侵害し、リソースを消費し、データを流出させようとする脅威アクターを阻止するための防御策を手に入れることができました。
WAF:重要なセキュリティ・コンポーネント
ウェブアプリケーションへの攻撃が情報漏えいの主な原因となっている現在、アプリケーションと API を保護することは、アプリケーションセキュリティエンジニア、セキュリティアーキテクト、および情報セキュリティ専門家にとって最重要課題となっています。アプリケーションは、しばしば、OWASP トップ 10 脆弱性を含んでリリースされるため、ウェブアプリケーションセキュリティ標準は、 ソフトウェア開発ライフサイクル(SDLC)に統合されなければなりません。
Web アプリケーションファイアウォールは、ネットワークファイアウォールでは実現できないセキュリティ層を提供することで、脆弱性の悪用を防ぐ役割を果たします。従来のネットワークファイアウォールは、インターネットからのウェブコンテンツの要求を受け入れ、それに応答する必要があるウェブフェースのアプリケーションを保護する機能を備えていません。
WAFは、アプリケーションのインターネットへの直接接続を許可しながら、ネットワークトラフィックをフィルタリングする手段を提供することで、この問題を解決します。WAFは内部と外部のネットワークリソースの間に壁を作るのではなく、スクリーンのように機能し、友好的なトラフィックは通過させますが、悪意のあるトラフィックはブロックします。
このように、WAF は、不適切に設計されたアプリやインジェクション攻撃など、一般的な ウェブアプリケーションのセキュリティリスクから保護するのに役立ちます。WAF は、ウェブアプリケーションの根本的な脆弱性や欠陥を修正するものではありませんが、これらの欠陥を悪用しようとする攻撃がアプリケーションに到達するのを防ぐことができます。WAFは、最初のプローブを阻止し、一般的な攻撃経路をブロックし、リクエストをレート制限することで、攻撃者にとって困難な状況を作り出します。
さらに、Web アプリケーションファイアウォールは、Web アプリケーションのトラフィック、攻撃の試行、および Web アプリケーションを保護するために企業が講じた措置を記録することができます。
脅威の状況を理解する
効果的なウェブアプリケーションファイアウォールの重要な構成要素について説明する前に、ウェブアプリケーショ ンに対する様々な種類の脅威について考えてみましょう。XSS、SQLインジェクション、ローカルファイルインクルードについてはすでに述べました。当初のアプリケーション・ファイアウォールの目的は、この種の攻撃から保護することでしたが、戦場は変化し、継続的に進化しています。
オンデマンドクラウドコンピューティングの普及に伴い、サービス拒否( DoS)攻撃やDDoS攻撃が 頻発しています。
最新の OWASPトップ10 リストには、アクセス制御とコンフィギュレーションに関連するリスクがより多く含まれています。2021年のリストでは、アクセス制御の失敗と暗号化の失敗が上位2位を占めています。セキュリティの設定ミスから時代遅れのコンポーネントまで、関連する問題も増えています。攻撃からサービスを保護するだけでなく、機密データが誤って暴露されるのを防ぐ必要があります。
効果的なWebアプリケーションファイアウォールの機能
Web アプリケーションファイアウォールは、Web プロトコル、特に HTTP と HTTPS を使用するネットワークトラフィックを監視およびフィルタリングすることによって、Web ベースのアプリケーションの脆弱性から保護するように設計された一連のルールまたはポリシーによって動作します。
WAFの機能は、インバウンド・トラフィックとアウトバウンド・トラフィックの保護という2つの部分に分けることができます。WAF のインバウンド保護機能は、外部からのアプリケーション・トラフィックの検査を担当します。インバウンドトラフィックからウェブアプリを保護する一環として、WAFは危険なアクティビティパターン、疑わしいペイロード、脆弱性を特定する必要があります。
ハッカーは持続的かつ革新的であるため、インバウンド攻撃の性質は変化します。WAFは、Webアプリケーションの既知の脆弱性から保護するセキュリティポリシーのプロアクティブなセットから動作する必要があります。さまざまな種類の悪意のあるトラフィックをフィルタリングするために、各セキュリティ・ポリシーは、進化する攻撃ベクトルに合わせて常に最新の状態に保つ必要があります。ウェブ・アプリケーション・ファイアウォールは、セキュリティ・ポリシーを変更するために設計されているため、特に効果的です。
アウトバウンドプロテクションとは、エンタープライズデータや顧客データの漏えいを防ぐことです。アウトバウンドデータの正確な解析は現実の世界では困難ですが、プロキシベースのインラインWAFはアウトバウンドデータを傍受し、偶発的または悪意のある手段による機密データの漏えいをマスクまたはブロックすることができます。
ウェブアプリケーションファイアウォールの種類
WAF を使用して Web アプリケーションを保護する場合、特定の基準に基づいて Web リクエストを許可、ブロック、または監視するルールを定義します。例えば、特定のHTTPヘッダーを含むリクエストや特定のIPアドレスからのリクエストをブロックするようにWAFルールをカスタマイズすることができます。
ブロックリストと許可リストの比較
ウェブアプリケーションファイアウォールは、その仕組みによって区別されます。ブロックリストWAFはネガティブ・セキュリティ・モデルに基づいており、一方、許可リストWAFはポジティブ・セキュリティ・モデルに従っています:
- ブロックリスト型WAFは、特定のエンドポイントやトラフィックの種類をブロックし、それ以外を許可するように設計されています。
- Allowlist WAFは、ブロックリストWAFとはやや逆の動作をし、デフォルトですべてのトラフィックをブロックし、明示的に承認されたトラフィックのみを通過させます。
アローリストWAFは、不適切に設定されたファイアウォールルールによって悪意のあるトラフィックが防御を回避するリスクを最小限に抑えるため、より安全であると考えられています。とはいえ、有効なトラフィックのタイプやエンドポイントをすべて予測できない状況では、許可リスト型WAFはうまく機能しません。
これら2つのWAFの長所と短所を考えると、現在多くのWAFが「許可リスト-ブロックリスト」のハイブリッド・セキュリティ・モデルで運用されていることは驚くことではありません。
ネットワークベース、ホストベース、クラウドベースのWAF
WAFは、デプロイメントモデル(ネットワークベース、ホストベース、クラウドベース)に基づいて分類することができます。
- ネットワークベース:ネットワークベースのWAFは、ライセンスとメンテナンスが必要なハードウェアアプライアンスの形で、アプリケーションとインターネットの間に位置するネットワークインフラ(スイッチなど)上で動作します。
- ホストベースのWAF:ホストベースの WAF は、Web アプリケーションが存在するサーバー上に配置されます。アプリケーションのOSの一部としてデプロイイメントされるため、OSレベルのフィルタリングを使用してWebアプリケーションに通過するトラフィックをフィルタリングします。
- クラウドベースのWAF:クラウドでホストされているアプリケーションは、クラウドベースのWAFを使用できます。このWAFは、クラウドの仮想ネットワークサービスやロードバランサーと統合して、Webトラフィックをフィルタリングします。クラウドベースのWAFは、デプロイやメンテナンスに大規模なチームを必要としませんが、通常、脅威に関する完全なコンテキストを提供しません。
企業が使用する WAF デプロイメント・モデルは、その Web アプリケーションが存在する場所に依存します。例えば、クラウドベースのWAFは、アプリがクラウドにデプロイされた場合にのみ機能します。デプロイメントモデルを選択する際にメンテナンスを考慮する場合、ネットワークベースやホストベースのWAFは通常より多くのセットアップと管理が必要ですが、クラウドベースのWAFはDNSやプロキシを変更する程度で済みます。
WAFとその他のセキュリティツール
Web アプリケーション・ファイアウォールは、他のファイアウォールやセキュリティ・ソリューションにはない機能を提供しますが、すべてを網羅するセキュリティ・ツールとして機能するものではありません。実際、WAFはあらゆる種類の攻撃を防ぐようには作られていません。ウェブ・アプリケーション・ファイアウォールは、セキュリティの一要素に過ぎず、考えられるすべての攻撃ベクトルに対する全体的な防御を提供するために、統合されたツール群を補完するように設計されています。
WAFと従来のファイアウォールの比較
従来のファイアウォールは、内部ネットワークで動作するリソースとインターネットに直接接続するリソースを分離する境界を定義するように設計されています。WAFは、保護レイヤーを提供しながら、アプリケーションがインターネットとインターフェースすることを可能にするという点で、より微妙です。
WAFと次世代ファイアウォールの比較
次世代ファイアウォール(NGFW)は、従来のネットワークファイアウォールとWAFの優れた機能を組み合わせたアプリケーションファイアウォールの一種です。ネットワーク層のパケットを検査することで着信要求をブロックするだけでなく、NGFWにはプライベートネットワーク上の不要なトラフィックをブロックする手段を解き放つ検査機能があります。
NGFWとWAFの機能は重複していますが、主な違いはその中核となる責任モデルにあります。次世代ファイアウォールは、より多くのネットワーク・トラフィック・コンテキストをキャプチャし、ユーザー・ベースのポリシーを適用するだけでなく、アンチウイルスやアンチマルウェアなどの重要な機能を追加します。また、セキュリティポリシーにコンテキストを追加することで、NGFWは脅威インテリジェンスエンジンを組み合わせて意思決定プロセスを支援することができます。
対照的に、WAFはアプリケーション層に限定されています。XSS攻撃やDDoS攻撃などの一般的なウェブ攻撃を防ぐことに特化しており、インターネットに面したアプリケーションやクラウドネイティブアプリケーションのセキュリティ確保に不可欠です。
しかし、この2つの技術の包括的な違いは、プロキシという点で最もよく理解できます。サーバーで使用されるWAFは、ほとんどの場合リバースプロキシです。NGFWはクライアントによって使用され、クライアントを保護するように設計されているため、ほとんどの場合フォワードプロキシとなります。
WAFと侵入防御システムの比較
WAFと同様に、侵入防御システム(IPS)は、悪意のあるネットワークトラフィックを識別し、ブロックするように設計されています。しかしIPSは、あらゆるプロトコルのあらゆる種類のトラフィックをフィルタリングするように設計されています。
とはいえ、WAFは通常、ウェブ・プロトコル上で動作する複雑な攻撃を検出する能力において、より洗練されています。IPS ソリューションは通常、汎用的な攻撃シグネチャ(特定の種類のパケットまたはトラフィックパターン)に依存しており、どのトラフィックが悪意のあるトラフィックであるかを判断するためにコンテキストデータ(過去のトラフィックパターンまたはユーザーの行動パターン)を広範に利用することはありません。
Webアプリケーションファイアウォールのデプロイメント方法
WAF は、アプリケーションのデプロイ先、必要なサービス、管理方法、必要なアーキテクチャの柔軟性とパフォーマンスのレベルに応じて、いくつかの方法でデプロイできます。
検討すべき質問
- WAFを自社で管理しますか、それともアウトソーシングしますか。
- クラウドベースのモデルが良いのか、それともWAFをオンプレミスに置きたいのか?
どのようにデプロイしたいかによって、どのWAFが適しているかが決まります。その後、WAFをWebアプリのネットワークスタックに統合する方法を決定する必要があります。3つのアプローチから選ぶことができます:
- 透明な橋:透過ブリッジモードでは、WAF は保護する Web アプリケーションと同じポートにバインドされます。ウェブアプリとそれに接続するクライアントの両方から見ると、ファイアウォールは存在しないように見えますが、ポートバインディングは舞台裏で機能し、WAFがトラフィックを傍受し、通過させるかどうかを決定します。
- 透過的なリバースプロキシ:透過的なリバースプロキシのアプローチでは、ウェブアプリケーションはファイアウォールの存在を認識しますが、クライアントは認識しません。WAF は外部のエンドポイントからはアプリケーションとして見えるポートやアドレスのトラフィックを受け付けますが、アプリケーション自体は別の内部ポートやアドレスで動作します。WAFはトラフィックを検査し、それらのポートやアドレスに転送するかどうかを決定します。
- リバースプロキシ:リバースプロキシとは、クライアントがプロキシサービスを実行するために使用されるポートまたはアドレスで動作するWAFにリクエストを送信し、アプリケーションにリクエストを転送することを意味します。リバースプロキシは透過的なリバースプロキシと似ていますが、主な違いは、単純なリバースプロキシが設置されているときに、クライアントがプロキシサーバの存在を認識することです。
トランスペアレント・ブリッジ・モデルは、ネットワーク・バインディング、アドレス、ポート設定が最も少ない要件で済むため、実装が最も簡単です。しかし、ネットワークレベルでウェブアプリケーションをWAFから分離することはできません。トランスペアレント・リバース・プロキシとリバース・プロキシは、アプリケーションに到達する前にトラフィックを検査し、より高い分離性を提供します。
WAFをデプロイするステップの次は、WAFをどこでホスティングするかの選択です。主なオプションは以下の通りです:
- クラウドベースのフルマネージドサービス:WAFはフルマネージドサービスとしてクラウド上で稼働します。ユーザーは電源を入れて設定するだけで、必要なネットワーク・ポリシーを設定する以外の管理は必要ありません。
- クラウドベースで自己管理:WAFはクラウドでホストされますが、デプロイ、設定、管理はユーザーの責任です。
- クラウドベースで自動プロビジョニング:WAFはクラウドでホストされています。ユーザーが設定・管理する必要がありますが、クラウド環境に適合するように設計されたネットワークルールが自動的に入力されます。このアプローチは、フルマネージドWAFオプションとセルフマネージドWAFオプションの中間を提供します。
- オンプレミスの高度なWAF:WAFはオンプレミスのインフラでホストされています。オンプレミスではセットアップに手間がかかり、企業はWAF用のホストインフラを用意しなければなりません。その代償として、WAFの設定方法をより細かく制御できるようになります。
- エージェントまたはエージェントレスホストベースの WAF:WAFはホストサーバーまたはアプリケーションコンテナ上で実行されます。ユーザーは、Web アプリケーションファイアウォールサービスをホストするために、各サーバーにエージェントをデプロイする必要があるかもしれませんが、ファイアウォールルールが適用されるエージェントレスアプローチも利用できます。
ウェブアプリケーション・セキュリティ・ソリューションを選択する際の留意点
ウェブアプリケーションファイアウォールのオプションを評価する際に考慮すべき要素:
- どのデプロイメント・モデルに対応していますか?最適なWAFは、オンプレミスでもクラウドでも運用できるように、さまざまなデプロイメントオプションをサポートしています。
- WAFはどのようにトラフィックをフィルタリングするのですか?WAFがトラフィックを評価する際に考慮できるコンテキストが多ければ多いほど、一般的なファイアウォールを回避しがちな高度な攻撃を検知する能力が高まります。
- WAFはどの程度効率的である必要がありますか?すべてのWAFは、アプリケーションの実行に必要なインフラリソースを奪わないように、効率的に動作する必要があります。
ウェブアプリケーションセキュリティソリューションを選択する際には、上記の検討事項に加え、スケーラビリティを考慮することが賢明です。今後、WAFはどのように拡大していく必要があるのでしょうか?ハイブリッドやマルチクラウドのアーキテクチャで動作するアプリケーションをサポートする必要がありますか? APIをサポートする必要がありますか?APIがアプリからユーザーへの通信の中心的存在になるにつれ、APIだけでなくウェブアプリケーションを保護する能力も重要になります。
ウェブアプリとAPIセキュリティ(WAAS)の未来
クラウドネイティブアーキテクチャで構築された最新のウェブアプリケーションは、かつてないほど複雑になっています。アジャイル開発プロセス、継続的インテグレーションとデプロイメント、進化する環境は、従来のWAFに新たな課題をもたらします。 ウェブアプリケーションとAPI保護の 次世代は、ウェブアプリケーションとAPIセキュリティ(WAAS)です。
WAASには、ウェブアプリケーションの自動検出のような従来のWAF機能が含まれています。また、さらに一歩進んで、環境内のすべてのAPIエンドポイントを検出します。このアプローチにより、 Web アプリケーションや API を保護 したり、環境内の既存のアプリケーションを更新したりするためのセキュリティ・ルールの構成が簡素化されます。
ウェブに面したアプリケーションと API を自動的に検出して保護することで、アプリケーションが設定ミスしたり、保護されずにデプロイされたりするリスクも低減できます。
効果的なWAASソリューションは、SwaggerやOpenAPIなどの様々なフォーマットからAPI仕様を受け入れ、これらの定義を使用してリクエストをスクリーニングし、仕様への適合性を判断します。エンドポイントによっては、保護レベルが低くてもアクセスできる場合もありますが、機密データを扱うエンドポイントでは、最高レベルの保護と精査が必要になります。さらに、WAASソリューションには、DoS保護が最初から含まれています。
アプリケーション・セキュリティ・ソリューションを選択する際に考慮すべきその他の機能には、発信地に基づいてリクエストを選別する機能があります。また、各アプリケーションやAPIに適用される防御措置のレベルをカスタムルールでカスタマイズする機能も必要です。また、重大度と潜在的なリスクの組み合わせに基づいて、各アプリケーションからの警告とエラー報告のレベルを設定することもできます。
将来に向けたアプリの保護
クラウド・コンピューティングが産業界でその地位を固めるにつれ、クラウドネイティブ・アプリケーションは重要性と複雑性を増しながら増殖を続けています。セキュリティは、ダイナミックな脅威の状況と同じように迅速に進化する能力を持たなければなりません。
情報セキュリティの専門家( DevOps エンジニア、セキュリティアーキテクト、アプリケーションセキュリティチーム)は、現代の企業を防御できる包括的なセキュリティ戦略を構築するために協力し、互いの経験を活用する必要があります。
WAF FAQ
WAAPソリューションは、従来のWAFの機能に、レート制限、認証、アクセス制御などの高度なAPIセキュリティ機能を組み合わせたものです。WAAPソリューションは、WebアプリケーションとAPIのセキュリティに対する総合的なアプローチを提供することで、組織がより効果的かつ効率的にデジタル資産を保護し、アプリケーションとサービスのセキュリティとコンプライアンスを確保することを可能にします。
WAFの種類は、ネットワークベース、ホストベース、クラウドベースの3つに分類されます。
- ネットワークベースのWAFは、組織のネットワークインフラ内にデプロイされるハードウェアアプライアンスで、Webアプリケーションに低遅延の保護を提供します。
- ホストベースの WAF は、Web アプリケーションと同じサーバーにインストールできるソフトウェアソリューションで、アプリケーション環境との統合やカスタマイズ性を高めることができます。
- クラウドベースのWAFは、サードパーティベンダーによってサービスとして提供されるため、オンサイトでの設定やメンテナンスは最小限で済みます。これらのWAFは、容易に拡張でき、従量課金モデルを提供し、DDoS防御やコンテンツ配信ネットワーク(CDN)の統合などの追加機能が含まれている場合があります。
適切なWAFタイプを選択するかどうかは、組織のニーズ、リソース、セキュリティ要件によって異なります。
DDoS攻撃も悪意のあるリクエストの一例です。DDoS攻撃の目的は、システムのリソースを使い果たすことで、システムに対する正当なリクエストをブロックすることです。ハッカーは、システムに偽のリクエストを殺到させることで、DDoS攻撃を成功させることがあります。
DDoS攻撃からシステムを保護する最善の方法は、システムに関連する各IPアドレスを隠すことです。また、悪意のあるユーザーに関連するIPアドレスをセキュリティ・ルールに追加して、このソースからの悪意のあるパケットを将来的に検出してフィルタリングすることも重要です。
様々なWAFプロバイダーは、3つのカテゴリーに分けることができます:
- WAFを提供するCDNプロバイダー
- クラウドサービスプロバイダー(CSP)のWAF
- 最新のWAFプロバイダー
WAF を提供している CDN プロバイダーには、Akamai、Fastly、Cloudflare、Imperva などがあります。CSP WAFプロバイダには、Google CloudのCloud Armor、AWS WAF、Azure Web Application Firewall、Barracuda Web Application Firewallなどがあります。最新のWAFプロバイダーは、Prisma Cloud、Akamai、Cloudflare、Traceable、Impervaです。