AWS WAFでDoS/DDoS攻撃をブロックする

AWS WAF & Shields

こんにちは。かじです。

今回はDoS/DDoS攻撃をAWS WAFでブロックする方法を紹介します。

DoS攻撃、DDoS攻撃とは

DoS攻撃とは、特定のサーバーに対して過剰にアクセスを集中させることでサーバーが機能を提供できないようにする攻撃です。また、DoS攻撃を複数のIPアドレスからすることで、よりサーバーに負荷をかける攻撃をDDoS攻撃といいます。複数のIPアドレスを使用されている分対応もイタチごっこになるため、攻撃の複雑性が増します。

DoS/DDoSを受けた際の対応

特定のIPをブロックする

まず挙げられるのは特定のIPをブロックする方法です。

攻撃を受けたら、そのIPをブラックリストに手動で追加する方法になります。

追加する方法は下記になります。

AWS WAFで特定のグローバルアドレスからのアクセスを拒否する | iret.media
先日AWS WAFで特定のグローバルアドレスからのアクセスを拒否する設定をする機会がありました。調べたところAWS公式以外ですと割と古めの記事が出てきたので、ちょっと戸惑うところがあったので同じような...

特定時間当たりの過度なアクセスをブロックする

続いてはDoS攻撃を検知したら自動でブロックする方法です。

5分間で100アクセスなど、同一IPからのアクセスがあった場合、そのIPを自動でブロックすることができます。

実現方法としては下記を参照ください。

AWS WAF でアクセス数が一定回数を超えた IP アドレスを自動的にブラックリストに追加させる方法 | DevelopersIO
お問い合わせを頂くことの多い、AWS WAF のレートベースのルールの設定方法を手順を追って紹介します。

DoS/DDoSへの予防

とはいえ、上記2つの方法だと攻撃されないとブロックすべきIPが分かりませんし、防御が後手になってしまいます。

次は予めDoS/DDoS攻撃への防御する方法を紹介します。

基本的に攻撃への予防としてはカスタムルールを使用します。DoS/DDoS攻撃への対応に有効なものとしては、下記の3つがあります。

Amazon IP 評価リストマネージドルールグループ

Amazonが独自に過去事例を元に作成した攻撃に使用されたIPアドレスのブラックリストをブロックするルールになります。こちらを使用することで、予め攻撃に利用されたIPアドレスをブロックすることができます。

IP 評価ルールグループ - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced
AWS マネージドルールから利用可能な IP 評価ルールグループ。

匿名 IP リストマネージドルールグループ

こちらのルールはVPNやプロキシ、クラウドプロバイダーのIPをブロックすることで、発信者を秘匿にするアクセスをブロックすることができます。

この匿名 IP リストマネージドルールグループについては、直接的にDoS/DDoS攻撃を防ぐというよりは、攻撃者が自分のIPを隠したり、踏み台的に他のネットワーク、サーバーを攻撃に使用している場合にブロックできます。

ただ、直接的に攻撃を防ぐ訳ではないと伝えたように、インターネットを使用するのに、VPNやプロキシ、クラウドプロバイダーを普段から利用しているユーザーもブロックしてしまう可能性があるため、このルールの利用には注意が必要です。

IP 評価ルールグループ - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced
AWS マネージドルールから利用可能な IP 評価ルールグループ。

AWS WAF Bot Control

AWS WAF Bot Controlはリクエストのユーザーエージェントを見て、リクエストの対象がBotか否かを判断し、更にBotであった場合、有害なのか無害なのかを検証し有害であった場合はブロックします。これによってBotを使用して大量のHTTPリクエストをブロックすることができます。

Googleのクローラーなどの場合は、WAFが検証し、無害であることが確認されたらアクセスが許可されます。

海外からのアクセスをブロックする

次は海外からのアクセスをブロックすることです。DoS/DDoS攻撃では海外のIPアドレスが使用されることが多いため、海外からのIPアドレスをブロックすることで防御することもできます。ただ、海外からのアクセスを想定している場合は、好ましくないかもしれません。

海外からのアクセスをブロックする方法は下記になります。

AWS Shieldを使用する

ここまではWAFを使用したDoS/DDoS攻撃への防御を紹介しておりましたが、AWS Shieldを使用することも一つの方法です。WAFがネットワークの7層によるファイアウォールであるのに対して、Shieldは3,4層に対するファイアウォールサービスになります。

StandardとAdvancedの二つのプランがあり、Standardは追加料金なしで自動で、ELBやCloudFornt、Route53などのサービスに適用され、DDoS攻撃の検知や軽減を行ってくれます。

Advancedは更にネットワーク7層と連動して更に強力な防御を行うサービスとなっております。

Shieldについては下記を参照ください。

AWS Shield - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced
Distributed Denial of Service (DDoS) 攻撃から保護することは、インターネットに直接接続するアプリケーションにとって極めて重要です。アプリケーションを構築すると AWS、 AWS 追加費用なしで提供される保護機能を利用できるようになります。さらに、 AWS Shield Advance...

まとめ

個人的には、

・AWS Shield Standardで無料でDDoS攻撃を検知/防御

・Amazon IP 評価リストマネージドルールグループで脅威の可能性があるIPをブロック

・一定時間内の過剰なアクセスをするIPをブロック

・攻撃を認識したIPはブラックリストに追加

という方法がDoS/DDoS攻撃に対する防御と対応は十分なのかなと思います。若干防御範囲が被っているかもしれませんが。

攻撃を検知した際に、ブラックリストへの追加は何らかの方法で自動化できる方法があるといいですね。

タイトルとURLをコピーしました