こんにちは。健康マスター(ベーシック)の小林です。
2017年3月23日に開催されたAWS Shield / Amazon CloudFront DDoS対策セミナーに参加してきましたのでレポートしたいと思います。
AWS CloudにおけるDDoS対策
発表内容レポート
DDoS対策の考え方
- 攻撃の種類
- アプリケーション層
- プレゼンテーション層
- トランスポート層
- ネットワーク層
- 対策の考え方の軸
- 高さ
- レイヤー毎に攻撃とその対策が異なる
- 幅
- 段階により対策の種類に幅がある
- 攻撃前: 設計
- 攻撃中: 技術
- 攻撃後: 運用
- 段階により対策の種類に幅がある
- 深さ
- 対策場所はエッジからエンドポイントまで
- 高さ
ベストプラクティス
高さx深さ
- エッジでのWebアプリケーション配信
- 遅延やスループットの最適化
- DDoSによる可用性への影響の最小化
- AWSリソースの隠蔽 オリジンの保護
- セキュリティポリシーの強制適用
- アクセス経路の制限
- S3の場合: OAI
- CFでカスタムオリジンヘッダ付与
- CFのIPアドレスのみ許可
- APIエンドポイントの保護
- WebAPIサーバを不必要に外部公開しない
- 不正APIリクエストからの保護
- AWSリソースの隠蔽 SG & NACL
- インスタンスを不必要に外部公開しない
- ポリシーに基づいたリソースの保護
- 意図しない送信元IPやプロトコルの通信の遮断
高さx幅
- エッジでの名前解決
- DNS要求への適切な応答
- DDoS攻撃を受けた際の冗長性と耐障害性の確保
- 大量トラフィックの負荷分散
- 1つのインスタンスの処理能力では処理できない大量トラフィックの分散
- インフラへの不正通信の阻止
- 大量トラフィックを捌くインスタンスの選択
- 垂直スケール
- 水平スケール
- 帯域の大きいネットワークインタフェース
- 回復力を考慮したリージョンの選択
- 要件に基づいた配備
幅x深さ
- 不正なWebリクエストの検知とブロック
- アプリケーション層攻撃の緩和
- アプリへの不正通信の阻止
- ポリシーに基づいた通信制御
- 運用による対策: 攻撃の可視化
- トラフィックの通常状態の把握を行い、異常状態を検知できるように
- DDoS攻撃に関係するメトリクスを定義し、必要に応じて担当者に通知
- 運用による対策: 事前計画
- アプリを配備する前に設計レビューを行う
- 実際の攻撃を受けた場合のインシデント対応フローの確立
まとめ
- 3つの軸で考える
- AWSのベストプラクティスを参考に
- Shield Standardで網羅されている対策も多い、必要に応じてAdvancedを利用
感想
アプリケーションのセキュリティを考える上での切り口に対して明確な考えが無かったのですが、高さ・幅・深さの3つの軸で考えるというのは大変参考になりました。個人的には、「深さ」に関しては分かりやすいですが「高さ」「幅」に関して考慮漏れすることがありそうだなと感じたので特に意識して設計したいと思います。