目的
AWSでDDoSどうしたらいいのか検討したくて、AWS Best Practices for DDoS Resiliencyを読んで見ました。その感想を書きます
2022/4/13の版をみています。
感想など
序章
AWSで適切にサービスを選べばDDoS攻撃を緩和できるとあります。まさに自分が読みたい内容です。
あなたはWell-Arcitectedですか?
Well-Arcitectedを知っておくといいですよという紹介。今は時間が無いので後回しにします。
サービス拒否攻撃入門
DoSの概要説明です。OSI7層に分けて色々な攻撃があるとあります。
インフラ層攻撃
UDPリフレクション攻撃
UDPの送信元IPを攻撃したいサーバーのものに設定して無関係なサーバーを反射鏡のように利用して大きなパケットを返す攻撃だそうです。これは自分のサーバーで頑張って防御するのが難しそうです。
SYNフロッド攻撃
TCPの初回接続、いわゆる3ウェイハンドシェイクでSYNを送けどACKを送らないことでサーバーのACK待ちの状態にしてメモリなどを食いつぶす攻撃です。これも守るのが難しい。
アプリケーション層攻撃
アプリケーション層の攻撃は様々のようです。
HTTPフラッド攻撃、キャッシュ無効化攻撃、WordpressXMLRPCフラッド攻撃
緩和テクニック
全てのAWSのサービスにはAWS Shield Standardがついているので一般的で頻繁なインフラ層攻撃は防いでもらえるようです。無料で!
CloudFrontとGlobalAcceleratorとRoute53は既知のインフラ層攻撃は守ってくれるようです。
アプリケーション層攻撃に対してはAWS WAFを使えばよいとのこと
インバウンドのネットワークは無料だしDDoSの攻撃トラフィックは無料
そして、ベストプラクティスの構成の表
AWS Shield Advanstを使うとお金取るけどもっと色々やってくれるとのこと
ベストプラクティスDDoS緩和
インフラ層防御
AWSは基本的には防ぐけど、EC2ではネットワークは広いし拡張できるので安心です。
EC2オートスケーリング
ロードバランサー協調して防ぐし、オートスケールがあればサービスが止まらないとのこと。まあお金がかかりそうですね。
ELB
ELBを使えば負荷が分散できる
ELBはスケールするから負荷をさばける
セキュリティグループ
セキュリティグループを使えば受けつけないIPアドレスを設定できる
スケールのためにエッジローケーションを使う
CloudFrontとGlobalAcceleratorとRoute53はエッジごとにわかれて、DDoS緩和するので良い
エッジでWebアプリケーションを配信
CloudFrontはDDoSからオリジンを保護してくれる。S3を使っている人はCloudFrontを使おう
Global Acceleratorを使ってオリジンからネットワークトラフィックを更に保護する
CloudFrontが使えない場合、こちらを使いましょう
エッジでドメイン名解決
Route53を使えば問題無し
アプリケーション層防御
悪意のあるWebアクセスを発見して防ぐ
CloudFrontとAWS WAFを使いましょう。
CloudFrontでエッジごとにアクセスしてくれるのと不要なアクセスは防いでくれる。遅いアクセスは遮断してくれる
WAFを使うとおかしな動きをするIPアドレスを止められるし、マーケットプレイスでIPアドレスをさらに防ぐルールが売ってます
WAFはキャッシュ無効化攻撃も防いでくれる
自動的にアプリケーション層のDDoSイベントを防ぐ
AWS Shield AdvanctやAWS Firewall Managerを使えばもっと防げる
攻撃面の減少
外部にさらす部分を減らしていく
AWSリソースの難読化
EC2はインターネットに公開しなくてもロードバランサーとセキュリティグループを使えばアクセスできます。
セキュリティグループはただ。
セキュリティグループとネットワークACL
セキュリティグループは後からでも付けられます。つければ暗黙的に全てのアクセスを拒否します。
ELBのセキュリティグループを作成して、EC2複数のセキュリティグループを作成して接続すれば、EC2を隠せます。
ネットワークACLを使えばIPアドレス制限ができます
AWS Shiled アドバンストに入ればEIPを登録できて早めにDDoSを検知できます。
オリジンの保護
VPC内のオリジンはCloudFrontを使うとx-shared-secrtというヘッダーでCloudFront経由かどうかわかる。
Lambdaを使うことで、CloudFrontのみのアクセスを許可するセキュリティグループを設定できます。CloudFrontとWAFをバイパスすることできなくなります。
APIエンドポイントの保護
APIもDDoSの対象になるので緩和するためにはAPI Gatewayを使う。
EC2やLambdaの入り口にAPI Gatewayを使えば難読化できてDDoSが緩和できます。
API Gatewayは2種類あって1つはCloudFrontディストリビューションを介してアクセスされるエッジ最適化エンドポイント。
2つ目はREST APIと同じリージョンにするリージョンAPIエンドポイント。こちらはCloudFrontとWAFを使えます。
x-api-keyを使うとAPI Gatewayの直接アクセスを防ぎます
バーストレートを指定することで、負荷を防ぎます
オプションのテクニック
異常な動作の可視化、アラートの自動化、大規模な保護などオプションの話をします。
可視性
CloudWatchで見ることができる。AWS Shieldアドバンストならもっと見れる
複数のアカウントにわたる可視性と保護の管理
複数のアカウントにわたるような場合、AWS ShieldアドバンストとAWS Firewall ManagerとAWS Security Hubを使って管理する。
サポート
サポートに相談すれば支援する。AWS Shieldアドバンストならもっと早く対応できるよう。
まとめ
この資料を読めばDDoSの回復に役にたつ。
AWS Shieldアドバンストなら(以下略)
この資料のまとめ
DDoS対策のおおまかな情報を得られました。
基本的にはAWS WAFとCloudFrontを全面に置いて、保護していけばよさそうです。
AWS Shieldアドバンストの圧が強かったですが、コスト見合いなら入れてもいいかもです。