AWS WAFを活用するために ―その機能とメリット

AWS WAF(ウェブアプリケーションファイアウォール)はAWSが提供する強力なクラウド型のファイアウォールサービスで、さまざまな脅威からウェブアプリケーションを保護することができます。今回は、AWS WAFの主要な機能と利用によるメリット、料金や活用例について解説します。

AWS WAFとは

AWS WAFの概要について説明します。

AWS WAFの概要

WAF(Web Application Firewall)とは、ウェブアプリケーションの脆弱性を狙って仕掛けられる悪意ある攻撃から、ウェブアプリケーションを保護するための防御壁です。アクセスしてくるユーザーとウェブアプリケーションの間にWAFを挟むことにより、悪意ある攻撃の通信を遮断してウェブアプリケーションを防御します。

AWS WAFは、AWSが提供するクラウド型WAFのサービスで、Amazon CloudFront、Application Load Balancer (ALB) 上で動作します。ウェブセキュリティ(通信遮断など)のルールをカスタマイズ定義することが可能で、ウェブアプリケーションに対してどのトラフィックを許可するか、あるいはブロックするかを制御することができます。

例えば、SQLインジェクションなどの一般的な攻撃を検知するルール、さまざまなマッチ条件によるフィルタ、IP リスト、レートコントロールなどの機能を使うことにより、不正な通信の検知や遮断ができます。AWS WAFを使用することでセキュリティ、可用性、パフォーマンスの脅威となるさまざまな脆弱性や危険から、AWS上に構築したウェブサイトやアプリケーションを総合的に、かつ強力に守ることができます。新しいルールは数分で簡単にデプロイすることが可能で、変化するトラフィックパターンにも素早く対応できます。
さらに、ウェブセキュリティルールの作成、デプロイメント、およびメンテナンスを自動化するための、完全な機能を備えたAPIも含まれています。

AWS WAFの導入手順

AWS WAFは次の順序で簡単に導入することができます。

1. AWSアカウントを設定してマネジメントコンソールにログインする
2. ウェブアクセスコントロールリスト(ウェブ ACL)を作成する

ウェブアクセスコントロールリスト(ウェブ ACL)を使用すると、ウェブリクエストをきめ細かく制御して、Amazon API Gateway、Amazon CloudFrontディストリビューション、または Application Load Balancer などで応答できます。

3. ルールに条件を追加する

次の種類のリクエストを許可または拒否することができます。

  • 特定のIPアドレスまたはIPアドレス範囲が送信元である
  • 特定の国が送信元である
  • リクエストの特定の部分が、指定した文字列を含むか、正規表現パターンと一致する
  • 指定した長さを超えている
  • 悪意のあるSQLコード(SQL インジェクション)が含まれている可能性がある
  • 悪意のあるスクリプト (通称クロスサイトスクリプト) が含まれている可能性がある

また、これらの条件の組み合わせや、指定された条件を満たすリクエストだけでなく、一定時間に指定された数のリクエストを超えるウェブリクエストのみをブロックまたはカウントすることもできます。

AWS WAFの主なメリット

次に、AWS WAFの主なメリットについて見てみましょう。

ウェブ攻撃に対する強化された保護

作成したルールに基づいてトラフィックをフィルタリングすることにより、ウェブアプリケーションを攻撃から保護します。標準提供のルール、カスタムルールのマッチ条件、レートコントロール、API などを使って幅広い脅威から ウェブアプリケーションを守ることができます。

アプリケーション開発のあらゆる段階に応じて最適化されたセキュリティ機能

AWS WAFのすべての機能は、AWS WAF APIまたはAWSマネジメントコンソールのいずれかを使用して設定できます。これによって、アプリケーション開発を開始する際に、ウェブセキュリティを向上させるためのアプリケーション固有のルールを定義することができます。さらに、開発初期の段階でルール定義を統合的に行うことにより、開発プロセスの複数のポイントで関わるメンバーが、それぞれの立場でウェブセキュリティについて個別に機能を盛り込むことや、部分的なチェックやテストを行う時間を大幅に節減し、アプリケーションに対し、統合的にセキュリティ機能を実装することが可能となります。

例えば、最初にコードを記述する開発者は、開発環境の構築において、利用するソフトウェアモジュールやライブラリの選択で既知の脆弱性に対応した、最新アップデートが施されたバージョンを利用することに心がけてコーディングしていました。また、ソフトウェアをデプロイする DevOps エンジニアは、コマンドやスクリプトのインジェクション、メモリリークやヒープ領域を利用したバッファオーバーフローなどに留意してテストを重ねていました。そして開発が終了し、リリース直前のアプリに対して監査を実施するセキュリティ専門家は、開発からソフトウェアリリースまでに至る、全ての段階において正しくウェブアプリケーションのセキュアな実装がなされているかについて、細かなテストを行う必要がありました。

AWS WAFにより、これら複数のメンバーがかけるセキュリティ対応のための時間や手間が大幅に圧縮されることにつながります。

簡単なデプロイと防御ルールのメンテナンス

AWS WAFは簡単にデプロイすることができ、CDNソリューションの一部としてAmazon CloudFrontにデプロイしたアプリケーション、すべてのオリジンサーバーの前面に配置したApplication Load Balancer、APIを使用するためのAmazon API Gatewayを保護することができます。AWS WAF を適切なリソース上で有効化するだけでよいので、さらに別のソフトウェアをデプロイする必要がありません。防御ルールを一元的に定義することにより、同じルールを、対象となるすべてのウェブアプリケーション全体で再利用したり、変更して運用したりすることができます。

ウェブトラフィックが可視化できる

AWS WAFは、フィルタ条件に一致するリクエストを監視するためだけに設定することもでき、ウェブトラフィックをほぼリアルタイムに可視化することができます。

コスト効果に優れている

AWS WAF では、ユーザーが利用した分に対してのみ料金が発生するので、コスト効果に優れた利用が可能です。

マネージドルールを使用したセキュリティ強化

AWS Marketplace販売者がルールセットとして販売している「マネージドルール」を使用することで、AWS Application Load BalancerやAmazon CloudFrontで実行しているウェブアプリケーションの前面に簡単にデプロイできます。

AWS WAFの料金体系

AWS WAFの料金は、作成するウェブACLの数とデプロイするルール数およびウェブアプリケーションが受け取るリクエスト数によって決まります。使用分のみの支払いとなり初期費用はありません。AWS WAFは非常にコストパフォーマンに優れたWAFですが、通信量が多い場合には高コストになる場合もありますので注意が必要です。
また料金は、Amazon CloudFront の料金、Application Load Balancer (ALB) の料金、Amazon API Gateway の料金に加えて課金されます。

AWS WAFの料金の考え方自体はシンプルで、以下の3つの数値に基づき課金されます。

1. ウェブアクセスコントロールリスト(ウェブ ACL)数:1ウェブACL 当たり5USD/月

SQLインジェクションを設定するのかIPアドレスを制限するのかなど、ウェブACLを作成した数によって課金されます。

料金はすべて2019年8月現在のものです。

最新の料金につきましては、AWSの公式サイトをご覧ください。
https://aws.amazon.com/jp/waf/pricing/別ウィンドウで開きます

2. ウェブACLごとに追加するルール数:ウェブACLごとに 1ルール当たり1USD/月

例えば特定のコンテンツへのアクセスをブロックしたいという要件に対してIPベースのルールやリクエストベースのルールを設定するとルールごとに課金されます。

料金はすべて2019年8月現在のものです。

最新の料金につきましては、アマゾンウェブサービス(AWS)の公式サイトをご覧ください。
https://aws.amazon.com/jp/waf/pricing/別ウィンドウで開きます

3. 受け取るウェブリクエスト数(トラフィック):100万ウェブリクエスト当たり0.60USD

AWS WAFが処理するウェブリクエスト数によって課金されます。

料金はすべて2019年8月現在のものです。

最新の料金につきましては、アマゾンウェブサービス(AWS)の公式サイトをご覧ください。
https://aws.amazon.com/jp/waf/pricing/別ウィンドウで開きます

AWS WAFの利用目的

最後に、AWS WAFの実際の利用目的の例としてはどのようなものがあるのか、見てみましょう。

アプリケーション脆弱性の保護

SQLインジェクション、クロスサイトスクリプティングのルールやカスタムルールの作成を通して、脆弱性を悪用した通信からウェブアプリケーションを守ることができます。また OWASP Top10(※)といった脅威からウェブサイトを守るためのテンプレート、設定ガイド、ホワイトペーパーなどのリソースも利用することができます。

3年に一度の頻度で公開される、ウェブアプリケーションにおける重要な脆弱性やその脆弱性を作りこまないようにする方法などを示した成果物です。

L7層(アプリケーション層)へのDDoS攻撃対策

一定期間のリクエスト数の閾値に基づいたレートベースルールやマッチ条件などを利用して、アプリケーション層のDDoS攻撃を検知・遮断できます。またAWS Shield Advancedと併用して利用することでAWSのDDoS対策の専任チームから緩和策設置の支援を受けることもできます。

ボットアクセスやコンテンツの不正利用対策

Amazon CloudFrontのログ解析、APIを使ったハニーポットの設置などで不正なボットのアクセスを自動検知し、AWS WAFでアクセスを遮断することができます。また、カスタムルールのマッチ条件でリファラーなどのチェックを行い、ディープリンク(※)などで画像などのコンテンツのURLが無断掲載されたサイトからのアクセスも遮断できます。

スマートフォンアプリの特定の画面に遷移させることのできるリンクです。

IP レピュテーションリストのインポート

Tor exit node list、Spamhaus、Proofpoint Emerging Threat IP listなど、外部のIPレピュテーションリストをAPI経由でAWS WAFのIPブラックリストにインポートし、定期的な更新を自動化できます。

まとめ

Amazon CloudFrontやApplication Load Balancer上で動作するAWS WAFを使うことにより、独自に設定するよりもはるかにコストパフォーマンスに優れたフルマネージドのファイアウォールシステムを使って、各種の攻撃や不正アクセスに対する備えを実施することができます。AWSのセキュリティを高めるために検討してみてはいかがでしょうか。

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る