AWSで開発したアプリケーションをサイバー攻撃から守るには、AWS WAFの導入が必要不可欠です。AWS WAFはAWSが提供しているWAF(Web Application Firewall)で、Webアプリケーションへのサイバー攻撃の防御にはとても有効なサービスです。

しかし、有効なサービスではあるものの専門性が高いため、AWS WAFの導入にハードルを感じる人もいます。

この記事では、AWS WAFのメリットや機能などの基礎知識から、AWS WAFの設定方法や運用上の課題まで、まとめてわかりやすく紹介します。AWS WAF運用課題への対策も解説するのでぜひ最後までお読みください。

【無料資料配布中】AWS WAFの運用に悩んでいます?AWS WAF運用のノウハウを完全解説する資料をご用意しております。詳しくはこちらからダウンロードしてください。

目次

AWS WAFとは?初心者にもわかりやすく解説

AWS WAFは、AWSが提供しているWAFで、セキュリティサービスの1種です。AWS WAFの導入でWebアプリケーションへのサイバー攻撃を防御することができます。

AWS WAFについてわかりやすくまとめたのでこちらからダウンロードしてください。

そもそもWAFとは?

WAFとは、Web Application Firewall (ウェブアプリケーションファイアウォール)の略称で、Webサイトを含めたWebアプリケーションをサイバー攻撃から守るツールです。

ファイアウォールやIPSなどほかのセキュリティツールでは防御できない、Webアプリケーションへの攻撃を検知・遮断できるのがWAFの特徴です。

近年、WAFを導入する企業が増加しています。SQLインジェクションやクロスサイトスクリプティング(XSS)など、Webアプリケーションの脆弱性を突くサイバー攻撃が増えてきたというのが要因の1つです。

AWS WAFのメリット

AWS WAFを活用することによって、さまざまなメリットがあります。ここではAWS WAFの主なメリットを3つ紹介します。

Webアプリケーションへの攻撃対策が可能

AWS WAFは、Webアプリケーション特有の脆弱性を突く攻撃を防御することができます。例えばSQLインジェクションやクロスサイトスクリプティング(XSS)など、情報漏えいやデータ改ざんを引き起こすサイバー攻撃を防ぐことが可能です。

また、適切なルール(シグネチャ)を適用することでWebアプリケーションへのDDoS攻撃を緩和することもできます。

AWS環境で開発してきた自社のWebアプリケーションを守るためにAWS WAFは必要不可欠なサービスです。

導入しやすい

導入しやすいのもAWS WAFのメリットです。AWS WAFはさまざまなAWSサービスとスムーズに連携できるので、数クリックでAWS WAFを導入することができます。

Amazon CloudFront、Application Load Balancer(ALB)やAmazon API GatewayなどのAWSサービスをすでに使っている場合、サービスの管理画面からWAFを有効に設定するだけで、AWS WAFを簡単に導入できます

ハードウェアやソフトウェアの購入やシステムの再構築・修正は不要で、すぐに導入可能なので、AWSを利用している企業の多くはAWS WAFを導入しています。

適切なコストで利用可能

AWS WAFは従量課金制のため、コストを抑えながらAWS WAFを利用することができます。

AWS WAFの月額費用は毎月定額でなく、実際に作成・適用したルールの数や検知したアクセス数によって変動します。利用した分だけの課金となるので、無駄な月額費用はかかりません

さらに、初期費用や月額の最低料金は必要ないので、余計な費用がかかるといった心配もありません。

AWS WAFについてわかりやすくまとめたのでこちらからダウンロードしてください。

AWS WAF主な機能5つ

AWS WAFは、Webアプリケーションを保護するためのさまざまな機能を搭載しています。ここでは、AWS WAFの主な機能を5つ紹介していきます。

Webアプリケーションへの一般的な攻撃を防御する機能

AWS WAFでは、IPアドレス、HTTPヘッダー、通信リクエストの本文、カスタムURIなどさまざまな条件を基にしてWebアプリケーションへの通信をチェックするルールを作成できます

これらの条件を組み合わせたルールによってSQLインジェクションやクロスサイトスクリプティング(XSS)といった情報漏えいやデータの改ざんを引き起こすWebアプリケーションの脆弱性を突くサイバー攻撃を防御できます。

IP制限機能

AWS WAFでは、個別のIPアドレスからのアクセスを制限する機能が備わっています。悪意のあるIPアドレスからの不正アクセスをブロックすることで、Webアプリケーションを守ることができます。

AWS WAFにおけるIPアドレスの制限・許可の設定方法について詳しくはこちら:

また、AWS WAFにはAmazon IPレピュテーションリストマネージドルールグループというマネージドルールがあります。このリストには、Amazon内部脅威インテリジェンス(Amazon internal threat intelligence)が収集したBotをはじめ悪意のあるアクティビティやDDoS攻撃に使われるIPアドレスが含まれます。

Amazon IPレピュテーションリストマネージドルールを活用することで、悪意のあるIPアドレスからのアクセスをブロックすることができるので、潜在的な脅威からWebアプリケーションを守ります。

レートベースルール機能

レートベースルールとは、一定時間内における単一のIPアドレスからのアクセス回数を制限するルールです。レートベースルール機能を活用することで、WebアプリケーションへのDDoS攻撃を緩和することができます

DDoS攻撃(Distributed Denial of Service Attack)とは、複数のIPから対処しきれないほどの通信を送り付けるサイバー攻撃です。DDoS攻撃によって通常のアクセスが遅延したりサーバの機能停止を引き起こす恐れがあります。

DDoS攻撃の場合、同じIPアドレスから短い間に複数回アクセスすることがあるので、AWS WAFのレートベースルール機能を利用することでこういったDDoS攻撃通信をブロックすることができます。

AWS環境でのDDoS攻撃対策について詳しくはこちらの記事:

Bot対策(Bot Control)機能

Botとは、自動化されたスクリプトやプログラムで、Webサイトやアプリケーションでさまざまな活動を行うものです。

ステータスモニターや検索エンジンなど、有益な目的に使われるBotもありますが、悪意のあるBotも存在します。Webアプリケーションのリソースを過剰に消費したり不正に情報収集を行ったりするので、悪意のあるBotの対策が必要です。

AWS WAFにはBot Controlマネージドルールグループというマネージドルールがあります。Bot Control機能を適用することで、悪意のあるBotの通信をブロックや制限することができます。数クリックだけで、スクレーパーやスキャナー、クローラーなどの一般的なBotを簡単に監視できます

さらに、検索エンジンBotをはじめとする正常なBotアクセスのみを許可することも設定可能です。

アカウント乗っ取り防止(Fraud Control)機能

ID・パスワードの使い回しが多いことから、ブルートフォース攻撃をはじめとする漏えいしたID・パスワードを悪用しログインを試みてアカウントを乗っ取る攻撃が増えています。

AWS WAF Fraud Controlアカウント乗っ取り防止(Account Takeover Prevention、ATP)マネージドルールグループを使用することで、Webアプリケーションのログインページを監視し、盗まれた認証情報によるログインの有無をチェックします

5分でわかるAWS WAF資料

AWS WAFの料金計算方法とは?

AWS WAFは従量課金制となっており、料金は設定したWeb ACL数とルール数、そして検査するリクエスト数によって計算されます。料金表は下記の通りです。

リソースタイプ月額料金
Web ACL1 Web ACLあたり5ドル/月
ルール1ルールあたり1ドル/月
リクエスト数100万リクエストあたり0.6ドル

1 Web ACLの容量は1,500WCU(Web ACL Capacity Units)です。1,500WCUを超えた場合は、500WCUごとに100万回のリクエストあたり0.2ドルの追加料金がかかります。

また、リクエスト本文のサイズが制限を超えた場合は、16KBごとに100万回のリクエストあたり0.3ドルの追加料金が発生します。

さらに、Bot ControlとFraud Controlのマネージドルールグループを利用する場合は、検査するリクエスト数に合わせて追加の料金が発生します。Bot対策やアカウント乗っ取り防止など、高度な機能を利用する場合、費用についても事前に検討したほうがおすすめです

AWS WAFの設定方法

AWS WAFはAmazon CloudFrontやApplication Load Balancer(ALB)などをはじめ、さまざまなAWSサービスと連携しているため、導入設定は簡単です。ここではAWS WAFの設定方法について解説します。

AWS WAFの設定方法について詳しくはこちらの記事:

1.AWS WAFを有効に設定

AWS WAFの導入は、利用中の下記のサービスの設定画面からWAFを有効にするだけで簡単にできます。

  • Amazon CloudFront
  • Amazon API Gateway
  • Application Load Balancer
  • AWS AppSync GraphQL API
  • Amazon Cognito
  • AWS App Runner
  • AWS Verified Access

2.Web ACLを作成

AWS WAFを有効にしたあと、次はWeb ACLを作成します。Web ACL(アクセスコントロールリスト)は、AWS WAFで不正アクセスの検知に使われるルールの「箱」のようなものです。AWS WAF管理画面から“Create Web ACL”でWeb ACLを作成することができます

次のステップではAWS WAFの検知ルールの作成ですが、その前に抑えてほしいことがあります。それはWeb ACLにはルールの容量制限です。

1つのWeb ACLでは追加料金なしで1,500 WCU分のルールを作成できます。1,500 WCUを超えてしまうと課金が発生し、最大5,000 WCUまで追加できます。それ以上のルールを追加したい場合、もう1つのWeb ACLを作成しなければなりません。

ルールが増えれば増えるほどAWS WAFの利用料金が高くなるため、自社のセキュリティリスクを正確に把握し必要な分のルールだけを作成することをおすすめします。

3.ルールを作成・適用

AWS WAFの検知ルールは大きく検知条件(ステートメント)とアクションに分けられます

AWS WAFではさまざまな検知条件を利用できます。通信のIPアドレスや送信元の国はもちろん、通信本文の内容、SQLインジェクションやクロスサイトスクリプティング(XSS)などの攻撃に特化しているルールの作成も可能です。さらに、より高度な検知を実現するために複数の検知条件を組み合わせることもできます。

検知アクションはALLOW、BLOCK、COUNTの合計3種類あります。特定の条件を満たした通信のみ通過させる場合はALLOWを使いますが、それ以外の場合BLOCKやCOUNTを利用することが多いです。

BLOCKは特定条件を満たした通信を遮断するアクションで、COUNTは当該通信の検知履歴を残しますが遮断はしないアクションです。

検知ルールを新たに作成する際に、いきなりBLOCKにするのではなくまずCOUNTに設定することをおすすめします。正常な通信を不正アクセスと誤って判断する「誤検知」を起こしてしまう可能性があるためです。

初めからBLOCKで設定してしまうと正常な通信を含めて遮断してしまう恐れがあるため、検知ルールを新しく作成する際に、まずCOUNTに設定して、誤検知が発生していないことを確認できてからBLOCKに切り替えるのがおすすめです。

AWS WAFの誤検知対応について詳しくはこちらの記事:

AWS WAFのAWSマネージドルールとは?

AWSマネージドルールは、AWSが提供するAWS WAFで利用できるプリセットされたルールセットです。

OWASP TOP 10に対応するマネージドルールもあればWordPressや個別のOSに対応するマネージドルールも用意されています。さらに、DDoS攻撃や悪意のあるBotに特化しているマネージドルールもあります。

AWSマネージドルールを利用することで、社内にセキュリティに詳しい人材がいなくても適切な検知ルールを適用できるので、AWS WAFの設定や運用が可能です。

AWSマネージドルールについて詳しくはこちらの記事:

AWSマネージドルールのデメリットにも要注意

大変便利なAWSマネージドルールですが、デメリットも考慮しないといけません。

ひとつは個々の環境に対応しきれない可能性があることです。マネージドルールはあくまでも汎用ルールであるため、自社アプリケーション特有の脆弱性に対応できない可能性があります。その場合、自社の環境に合わせたカスタムルールを独自で作成しAWS WAFに適用する必要があります。

もうひとつは個別ルールのカスタマイズができないことです。セキュリティの観点からマネージドルールの詳細内容は非公開となっており、さらに全ユーザーが共通して同じルールを利用しているため、自社に合わせたマネージドルールのカスタマイズは不可能です。

誤検知が発生した場合、誤検知の原因を自ら特定しカスタムルールを作成して対応する必要があります。カスタムルールの作成にはセキュリティの専門知識が必要になるため、ルールの作成がうまくできない場合、アプリケーションの改修も含めた対応が必要となってくる可能性があります。

AWS WAFの設定はAWSマネージドルールの適用によって簡単にできますが、AWSマネージドルールの制限事項・デメリットをしっかり理解し、自社の環境に合わせたカスタムルールを組み合わせることで、より強固なセキュリティ対策をする必要があります

AWS WAFの運用を楽にする:WAF自動運用サービス「WafCharm

「セキュリティに詳しい人材がいないからAWS WAFの導入に躊躇している」「AWS WAFを導入したが放置状態になっている」「マネージドルールを導入しているがAWS WAFの運用工数の負荷が高い」

こういった課題を抱えている場合は、WAF自動運用サービス「WafCharm」の利用がおすすめです。

WAF自動運用サービス「WafCharm」は、煩雑なAWS WAFのルール運用を自動化するサービスです。WafCharmが、個々の環境に合わせて最適なルールを設定するので、ルール作成の手間を大きく削減することができます

ルールの更新や運用ももちろんWafCharmが対応するので、セキュリティやAWS WAFに詳しい人材が社内に足りなくてもAWS WAFを楽に運用できます。

さらに、誤検知対応をはじめカスタムルールの追加が必要な場合でも、WafCharmの日本語テクニカルサポートが代行するので、ユーザー側での調整が不要です。ルールが更新・追加されたあとに検知結果を確認すれば良いので、担当者の作業が大幅に軽減できます。

WafCharmの機能や詳細について資料にまとめたので、こちらよりダウンロードしてください。

マネージドルールとWafCharmの比較

画像をクリックすると拡大できます。