AWS WAF で Web サイトへの DoS 攻撃をブロックする設定

クラウドサービス AWS

「AWS WAF」は、AWS が提供するマネージドの WAF サービスです。
不正リクエストや大量アクセスを自動でブロックし、サイトを保護する機能を有しています。

今回は、AWS WAF を用いて DoS 攻撃のブロック設定を行います。



AWS WAF の設定を新規作成する

初めに、AWS WAF の設定を作成します。コンソールから Configure web ACL を開きます。
基本的には、画面に従って Next をクリックすればOKです。

WAF を CloudFront に紐づけるか、ALB(ELB) に紐づけるか選択します。
下記は、東京リージョンの ALB に紐づける場合の設定例です。

デフォルトアクション(ルールに該当しないアクセス)の選択肢では、必ず「Allow」を選択します。ここの設定を誤ると、すべてのアクセスをブロックしてしまうため注意しましょう。

DoS 攻撃のブロックルールを作成する

コンソールCreate Rule から設定を行います。
Rule typeRate-based rule に変更すると DoS 対策になります。

5分あたりのアクセス数を計測しており、Rate limit に設定した値を上回るとブロックされます。
2020年3月現在、設定できる最小値は「100」となっています。

Region の設定は、先ほど WAF を作成した時の内容と合わせておきます。

WAF と DoS 攻撃のブロックルールを紐づける

WAF とブロックルールを紐づけます。
最初に作成した WAF を開き、Rules タブにある Edit web ACL をクリックします。

先ほど作成したブロックルールを追加します。
選択肢に表示されない場合は、ルールの Region が誤っていないか確認しましょう。

これで設定完了です。
5分間に2000回以上のアクセスを検知した時点で、WAFが自動的にブロックを行います。

AWS WAF の利用料金は、ルール課金とリクエスト課金

AWS WAF には2種類のコストが発生します。

Web ACL および ルールの課金

Web ACL 1件あたり毎月5ドル、ルール1件あたり毎月1ドルの料金が発生します。
WAF に登録するサイト数やルール数は、必要な分だけに絞っておきましょう。

リクエスト課金

WAF を経由するリクエストごとに料金が発生します。(100万リクエストあたり0.6ドル)
月間のリクエスト数を把握できている場合は予測が立てられます。

まとめ

AWS WAF で Dos 攻撃をブロックする設定について紹介しました。
導入や削除がスムーズに行えて、従量課金で利用できるのがマネージドサービスの利点です。

高価なアプライアンス機と比べて導入のハードルが低いため、サイトのセキュリティ対策を強化したい・WAF を試してみたい、といった場合に最適なサービスです。

【関連記事】
SSL 証明書の違いを解説
Web サイトの不正アクセス対策
User-Agent のアクセス制限方法
エックスサーバーのセキュリティ強化