昨今、Webアプリケーションへのセキュリティ対策の重要性がますます高まっています。サイバー攻撃の手口は巧妙化し、従来のファイアウォールやIPS/IDSでは防ぎきれない「アプリケーション」自体を狙った攻撃が増加しているからです。
AWS(Amazon Web Services)が提供する「AWS WAF(Web Application Firewall)」は、WebサイトやAPIをはじめとしたWebアプリケーションへの悪意あるリクエストを検知・ブロックし、脆弱性を狙った攻撃から保護してくれるクラウド型セキュリティサービスです。
本記事では、AWS WAFの概要、メリット、主要機能、料金体系、導入・運用のポイントなどを解説します。AWS上でWebアプリケーションを運用している企業はもちろん、これからAWS環境に移行する予定の方も、ぜひ参考にしてみてください。
AWS WAFとは?
Webアプリケーションへの攻撃をブロック
AWS WAF(Amazon Web Services Web Application Firewall)は、AWSが提供しているWebアプリケーションファイアウォールサービスです。一般的なファイアウォールやIPS/IDSとの違いは次の通りです。
- ファイアウォールやIPS/IDS
主にネットワーク層(L3〜L4レイヤー)での攻撃を防御 - Webアプリケーションファイアウォール
HTTPリクエストやパラメータを悪用する「アプリケーション層(L7レイヤー)」の攻撃を防御
Webアプリケーションでは、HTTPリクエストやパラメータを使った攻撃を受けることが多く、従来型のファイアウォールでは防御が十分ではありません。そこでAWS WAFを導入することで次のような攻撃を検知・ブロックすることが可能になります。
- Webアプリケーション特有の脆弱性を狙う、SQLインジェクション
- クロスサイトスクリプティング(XSS)
- 悪意のあるBot
- DDoS(分散型サービス拒否攻撃)
様々なAWSサービスと連携が可能
AWS上で稼働する下記のリソースと連携して動作できるため、クラウド環境でのセキュリティ対策をシンプルに実装できる点が大きな特徴です。
- Amazon CloudFront(CDN)
- Application Load Balancer(ALB)
- Amazon API Gateway
- AWS AppSync GraphQL API
- Amazon Cognito
- AWS App Runner
- AWS Verified Access
…など
AWS WAFのメリット
1. AWSとの高い親和性
AWSのサービス群とシームレスに統合できることは、AWS WAFの大きな強みです。例えば、CloudFrontやALB、API Gatewayなどと簡単に連携し、Web ACL(アクセス制御リスト)を設定すれば、即座にアプリケーションへの攻撃対策を適用できます。
2. 初期コストを抑えた導入が可能
AWS WAFは、クラウドベースのサービスとして提供されているため、導入時に専用ハードウェアを購入する必要がありません。導入後も従量課金型で、利用したリクエスト数やルール数に応じて料金が決まるため、初期投資を抑えつつスモールスタートが可能です。
3. 高い拡張性(スケーラビリティ)
物理的な制約を受けないクラウドの利点を活かし、アクセス量が増えた場合にも自動的にスケールします。アプリケーションの負荷に合わせてAWS WAFが処理を拡大するので、DDoSのような大量のリクエスト攻撃にも対応しやすいです。
4. 柔軟なルール設定と管理
AWSが提供しているマネージドルールを利用すれば、一般的なWeb攻撃(OWASP Top10など)への対策をすぐに始められます。加えて、各企業の環境に合わせて独自ルール(カスタムルール)を設定することも可能です。特定のIPアドレスからのリクエストをブロックしたり、国(Geo)ごとにアクセスを制限するなど、柔軟な運用ができます。
AWS WAFの主要機能
1. アプリケーション攻撃の防御
SQLインジェクションやクロスサイトスクリプティング(XSS)のように、Webアプリケーションの脆弱性を狙った攻撃を検知・遮断します。マネージドルールを適用するだけで、代表的な攻撃手法に対してあらかじめ用意されたフィルタリングを有効化可能です。
2. IP制限による不正アクセス遮断
怪しいIPアドレスや悪意あるBotからのリクエストをブロックできます。AWSが収集したIPレピュテーションデータや、ユーザーが独自に作成したIPアドレスリストを活用してアクセスを制御します。
3. DDoS攻撃対策
L7レイヤーのDDoS攻撃に対して、Rate-based ルールで一定の時間に大量リクエストを発生するIPアドレスを自動ブロックするなどの方法があります。また、AWS Shield Standard(無料)と組み合わせればネットワーク層の攻撃にも対応可能です。
4. ログ(アクセス解析)機能
AWS WAFでブロックしたリクエストや許可したリクエストをログ化し、Amazon S3やAmazon Kinesis Data Firehoseに送信して分析できます。セキュリティ監視や、誤検知・過検知の調整にも役立ちます。
5. マネージドルールとカスタムルール
- マネージドルール
AWSやサードパーティが提供する標準ルールセット。OWASP Top10をはじめ、悪意あるBotやWordPress向けの特化型ルールなど多彩な選択肢があります。 - カスタムルール
自社のWebアプリケーションの要件に合わせて、独自条件(IPアドレス、HTTPヘッダー、正規表現マッチなど)を指定できます。
AWS WAFの導入方法
AWS WAFの導入ステップは大きく以下のとおりです。
- AWSコンソールでWAFを有効化
AWSマネジメントコンソールにログインし、WAFサービスを選択します。新規でWeb ACL(アクセスコントロールリスト)を作成するか、既存のWeb ACLを再利用するかを選びます。 - Web ACLの設定
- 名前やCloudWatchで使用するメトリクス名を指定。
- ルール群(マネージドルールや独自ルール)を追加。
- デフォルトのアクション(Allow or Block)を設定。
- ターゲットリソースの関連付け
保護対象となるAWSリソース(例:CloudFront、ALB、API Gatewayなど)をWeb ACLに紐付けます。これで対象リソースへのリクエストはAWS WAFを経由し、攻撃が検知されれば遮断されます。 - テスト運用(Countモード)
いきなり“Blockモード”にすると正規ユーザーのアクセスも誤ってブロックしてしまう可能性があります。まずは“Countモード”でどのようなアクセスが引っかかるかをモニタリングし、問題なければ“Blockモード”に切り替えるのがおすすめです。 - 本番運用開始
“Countモード”の結果を確認・調整しながら、本番環境では最終的に“Blockモード”を有効にします。あとはアプリケーションの変更や新しい脅威が発覚したタイミングでルールをアップデートしていきます。
AWS WAFの料金体系
AWS WAFの利用料金は主に以下の3要素で構成されます。
- Web ACL月額費用
1つのWeb ACLごとに月額料金が発生します。 - ルール月額費用
Web ACLに追加したカスタムルールやマネージドルールごとに月額がかかります。 - リクエスト数
WAFが処理したリクエスト数(100万リクエスト単位)に対して課金が行われます。
具体的な価格はAWS公式の料金ページをご確認ください。
基本的にはWeb ACL数が多い、あるいはルール数が多い、リクエスト数が多いほどコストが増加します。無闇に多くのルールを作成せず、Webアプリケーションの特性に合わせて設計することがポイントです。
AWS WAF導入・運用時のポイント
1. 誤検知(False Positive)の対策
マネージドルールを適用すると、正規ユーザーのリクエストがブロックされてしまう場合があります。最初は”Countモード“で挙動を確認し、誤検知が発生したら例外設定(除外設定)を加えていく運用が一般的です。
2. 運用工数を削減する工夫
AWS WAFは柔軟性が高い反面、運用担当にセキュリティやアプリケーションの知識が求められるため、ルールのチューニングが負担になる場合があります。
外部のWAF自動運用サービスやマネージドセキュリティサービスを利用して、ルールの更新やログ分析を委託する企業も増えています。
3. DDoS対策との組み合わせ
L7レイヤーの大量リクエストをRate-based ルールでブロックするのは有効ですが、さらにネットワーク層のDDoS攻撃から守るためにはAWS Shield StandardやAWS Shield Advancedの導入も検討しましょう。
4. 定期的なルール見直し
Webアプリケーションがバージョンアップしたり、新たなセキュリティ脅威が報告された場合はルールの再調整や追加が必要です。AWS WAFのログやクラウド監視ツールを活用して、定期的にチューニングを行いましょう。
まとめ
AWS WAFを導入することで、Webアプリケーション層のセキュリティを大幅に強化できます。AWSの各種サービス(CloudFront、ALB、API Gatewayなど)に容易に連携できるうえ、スケーラブルに動作し、初期コストを抑えて導入できるのが最大の魅力です。
一方で、ルール調整や運用管理には一定の知識と工数が必要です。マネージドルールだけでは誤検知が発生する可能性もあるため、事前に”Countモード”で挙動をチェックしながら導入を進めると安心です。
また、DDoSなどの大量リクエスト攻撃や日々進化する新たな脆弱性に対抗するには、AWS ShieldやWAF自動運用サービスとの併用も視野に入れるとよいでしょう。
WebサイトやAPIを安全に公開するためには、AWS WAFは欠かせないクラウド時代のセキュリティサービスです。ぜひ本記事を参考に、自社のWebアプリケーションやAWS環境に最適な導入・運用方法を検討してみてください。