この記事では、WAFが防ぐことのできる攻撃について解説します。様々なITベンダーがWAFのサービスを提供していますが、今回はAWS (Amazon Web Services) が提供しているAWS WAFに焦点を当て。AWS WAFが検知・遮断可能なものの中で、主だったものを紹介します。
AWS WAFについて
AWS WAFは、AWSが提供するウェブアプリケーションファイアウォールです。このサービスは、ウェブアプリケーションやAPIを様々なオンライン攻撃から守ることを目的としています。
AWS WAFは、SQLインジェクションやクロスサイトスクリプティング(XSS)などの一般的な攻撃を識別し、これらをブロックする能力を持っています。また、カスタマイズ可能なルールを設定することで、特定のトラフィックパターンや悪意あるアクセス試行を効果的に管理することが可能です。
AWSのクラウドインフラストラクチャと密接に統合されており、AWS内でホストされているアプリケーションやサービスのセキュリティを強化します。簡単に設定できる上に、リアルタイムでのデータ監視と迅速な反応を提供することで、ウェブセキュリティを維持するのに不可欠なツールです。
AWS WAFが防げる攻撃
SaaSベンダーのWAFサービスでは、ベンダーが提供しているWAF専用のルールセットを利用することが一般的です。このルールセットをAWSではマネージドルールと呼びます。つまり、AWS WAFが防げる攻撃というのは、マネージドルールでその攻撃がカバーされているかどうか、というのが一つ重要な観点となります。
※AWS WAFでは、独自のルールも用意されており、マネージドルールグループサービスでは検知できなかった攻撃に対して、個別にルールを作成することも可能です。
では、どういった攻撃を防げるか見ていきます。AWSのマネジメントルールにはいくつかの種類があり、AWS社のドキュメントには以下のものが記載されています。
- ベースラインルールグループ
- ユースケース固有のルールグループ
- IP 評価ルールグループ
- AWS WAF Fraud Control Account Creation Fraud Prevention (ACFP) ルールグループ
- AWS WAF Fraud Control アカウント乗っ取り防止 (ATP) ルールグループ
- AWS WAF Bot Control ルールグループ
これらのルールグループを利用することで、様々な攻撃を防ぐことができます。例えば、前回記事で紹介した、iPAが提供している 安全なウェブサイトの作り方 に記載の11の脆弱性と照らし合わせると、その内の以下の攻撃を防ぐことが可能です。
- SQLインジェクション
- OSコマンド・インジェクション
- パス名パラメータの未チェック/ディレクトリ・トラバーサル
- クロスサイト・スクリプティング
- CSRF(クロスサイト・リクエスト・フォージェリ)
※AWS WAFの独自のルールを利用し、上記以外の攻撃を防ぐことや、影響を軽減することも可能です。
AWS WAFはこれらの攻撃に対して柔軟なルールセットを提供し、特定の攻撃パターンや不正なトラフィックを効果的に識別し対処できます。しかし、全てのセキュリティ問題を網羅的にカバーしているわけではありません。AWS WAFは導入のコストや手間も少なく、比較的容易にセキュリティ対策を行うことが大きなメリットとなります。一方で、アプリケーションのセキュリティは多層的なアプローチが必要であること、また、マネージドルールは内容がブラックボックス化されているため、ルールのチューニングが難しいといったデメリットがあることを意識することも大切です。
誤検知について
WAFの運用において避けられない問題の一つが誤検知です。誤検知はFalse Positiveとも呼ばれ、WAFが正当なトラフィックやリクエストを誤って攻撃と判断し、不必要にブロックまたはフィルタリングすることを指します。
例えば、以下の状況で発生することが考えられます。
- ルールの過剰設定:WAFのルールが厳しすぎるか、特定の正当なトラフィックパターンを考慮していない場合、誤検知が発生しやすくなります。
- 正常なトラフィックの誤認識:WAFがユーザーの正当な行動(例えば、フォームへの入力や通常のリクエスト)を攻撃と誤認識することもあります。
- カスタムアプリケーションの特性:特定のカスタムアプリケーションは独自のトラフィックパターンを持つことがあり、これがWAFの一般的なルールに適合しない場合があります。
誤検知を減少させるためには、以下の対策が有効です。
- ルールの細かい調整:WAFのルールを、実際のトラフィックパターンに合わせて適宜調整することが重要です。
- ロギングと監視:WAFによるトラフィックのブロックや許可をログに記録し、誤検知の兆候を監視することが重要です。
- 段階的な導入:新しいルールを導入する際には、最初は監視モードで運用し、トラフィックに対する影響を確認しながら徐々に強化していくことが望ましいです。
おわりに
今回はAWS WAFを中心に、WAFで防御可能な攻撃について解説しました。他のWAFサービスにおいても、基本的には同等の攻撃を防ぐことができます。
一方で、WAFは万能ではないため、全ての攻撃からシステムを守ることはできません。そのため、アプリケーション側での対策も検討する必要があります。また、誤検知のリスクもあるため、導入して終わりではなく、運用中に定期的な分析を行なっていくことをおすすめします。
本シリーズの最終回となる次回は、WAFの導入手順について詳しく解説します。
記事一覧ページはこちらです。