CloudFront - Amazon Web Services

アプリケーションのセキュリティ向上のための
Edge Serviceの戦略とベスト・プラクティス
Prasad Kalyanaraman, VP Edge Services
June 2016
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
このセッションの目的
•
なぜセキュリティが重要か
•
セキュリティの3つの重要な側面
•
どのようにAWSのEdgeのインフラを活用できるか
•
アプリケーションのセキュリティ向上のため何ができるか
概要: なぜセキュリティが重要か
• 顧客の信頼
• 企業コンプライアンス
• データ・プライバシー
• 保護
プレゼンテーションの目的は不安を煽ることではありません
むしろご安心下さい :
1) AWS側で実施されるセキュリティ対策がたくさんあります
2) 簡単なベスト・プラクティスを守るだけでも結果が得られます
一例として、2015年のDDoS攻撃の下位90%は
30Gbps以下でアタックの平均サイズは15.8Gbpsでした
DDoS攻撃の大半は、シンプルなテクニックを幾つか守
ることで簡単に緩和できます
DDoS攻撃の測定データ
• インフラへの攻撃 (Layer 3 / 4)
– 攻撃の平均サイズは 900Mbps (50% は、500Mbps以下)
– 攻撃の78% は、インフラが対象 (実行が簡単なため)
– この種類の攻撃はAWSが緩和します
• アプリケーションへの攻撃 (Layer 7)
– 攻撃の22% は、 ポート80と443が対象 (攻撃が複雑)
• マルチベクター –同時に複数種類の攻撃
• 増幅型(Amp) (NTP, SSDP, DNS, Chargen, SNMP)
• Hit and Run DDoS (91% が1時間以内) 、煙幕型 (16-18%)
セキュリティの3つの側面
クラウドのセキュリティは責任共有モデルがベース
https://aws.amazon.com/compliance/shared-responsibility-model/
Encrypt data in transit
Encrypt data at rest
Protect your AWS Credentials
Rotate your keys
Secure your application, OS,
Stack and AMIs
SOC 1,2,3
ISO 27001/2 Certification
PCI DSS 2.0 Level 1-5
HIPAA/SOX Compliance
FedRAMP, FISMA &
DIACAP ITAR
AWSが提供するインフラを
どのように守っているか
インフラストラクチャ
セキュリティ
アプリケーション
セキュリティ
サービス
セキュリティ
AWSのお客様が利用可能なセ
キュリティのオプションや機能
Enforce IAM policies
Use MFA, VPC, Leverage
S3 bucket policies
EC2 Security groups
EFS in EC2, ACM, etc.
どのようにアプリケーションを
守るか
インフラストラクチャ
セキュリティ
インフラストラクチャのセキュリティ
アプリケーション
セキュリティ
サービス
セキュリティ
AWSは、どのようにインフラを保護しているか
インフラストラクチャのセキュリティ
AWSユーザの責任は?
施設・設備
物理セキュリティ
キャッシュインフラ
ネットワークインフラ
Layer 3&4 DDoS対策
+
=
セキュアなアプリケーション
インフラストラクチャのセキュリティ
• メンテナンス用の踏み台(bastion)サーバ
• 二要素認証
• 暗号化
• 隔離をより有効にするための分離
• テストや指標の監視
x
インフラストラクチャのセキュリティ
ISO 9001/27001/27017/27018
AWSインフラのDDoS緩和
DDoS 攻撃
ユーザ
AWS
DDoS 緩和
AWS
DDoS 緩和
AWS global infrastructure
DDoS 緩和のテクニック
基本的な確認
• IP チェックサム
• 有効なTCPフラグ
• UDP ペイロードの
長さ
• DNSリクエストの認
証
トラフィックの優
先順位付け
Distributionのシ
グネチャー
高度なトラフィック
エンジニアリング
• ソースIP
• ソースASN
• トラフィック量
• 認証済みの送信元
• 個別のDistribution
を区別する
• 自動的に攻撃のト
ラフィックを検知
• 攻撃と通常トラ
フィックのルーティ
ングを別ける
AWS API Gateway
CloudFrontは、自社製のDDoS対策のインフラでAPI Gatewayを守りTLSの終端をプロキシー側で行うこ
とによりレスポンスタイムを短縮
グローバル 55箇所の
Edge Location
健全なリクエスト
通常のリクエスト
ユーザに近い場所で
TLSの終端
DDoS 攻撃
悪意のある
リクエスト
健全なリクエスト
Amazon API
Gateway
Amazon
EC2
インフラストラクチャ
セキュリティ
サービスのセキュリティ
アプリケーション
セキュリティ
サービス
セキュリティ
エッジサービスで利用可能なセキュリティのオプションと機能
(CloudFront & Route53)
サービスのセキュリティ
AWSユーザの責任は?
強度の高い暗号化
SSL/TLSオプション
PFS
プライベートコンテンツ
OCSP Stapling
セッションチケット
DDoS 対策
+
信頼された署名者
Web Application Firewall
AWS CloudTrail
AWS Certificate Manager
=
セキュアなアプリケーション
CloudFrontは‘転送中のデータ’を保護できる
CloudFrontによる転送データの保護
• 転送中のデータを保護するた
めにコンテンツはHTTPSで配
信
• HTTPSでユーザは
CloudFrontを認証する
• HTTPSはCloudFrontはオリ
ジンを認証する
Origin
Edge
Location
User Request A
CloudFrontは、高度なSSLの機能を
自動的に有効化
高度なSSL/TLS機能
セキュリティの向上
SSL パフォーマンス
• High security ciphers
• Online Certificate Status Protocol
(OSCP Stapling)
• Perfect Forward Secrecy
• Session Tickets
ですが、やるべき事がいくつかあります
HTTPSを使ったコンテンツ配信
• CloudFrontで 簡単に実現
• 一つのdistribution設定でHTTP/HTTPSの
両方のコンテンツを配信
• 以下の選択肢もあります
• Strict HTTPS
• HTTP を HTTPSへリダイレクト
CloudFront TLS Options
デフォルトの
CloudFront SSL
SNI 独自SSL
CloudFront の共有証明書
自前でSSL証明書を用意
自前でSSL証明書を用意
または、 AWS Certificate Manager
で発行
どのようなケース?
例: dxxx.cloudfront.net
専用 IP独自SSL
TLSのSNI extensionを利用
どのようなケース?
または、 AWS Certificate
Managerで発行
CloudFrontでSSLコンテンツの配
信用に専用のIPを割り当てます
どのようなケース?
例: www.mysite.com
例: www.mysite.com
SNI extensionに非対応の古いブラウザー
/OSが一部あります
すべてのブラウザー/OSが対応
AWS Certificate Managerとの連携
ACM導入前 (複雑で時間がかかる)
ACM導入後 (簡潔で素早く、自動化)
3-5 日
第三者の認証
局(CA)
AWS CLIを使って
IAMにアップロード
AWS
Certificate
Manager
数分ですべての
プロセスが完了
AWS CLIを使って
CloudFrontに接続
管理コンソール上で
数クリックで実行
MapBox
MapBox: SNI Custom SSLを利用
• 専用ドメインでの配信を希望
xxxxx.mapbox.com
• クライアントはすべて TLSに対応
• 経済的な選択肢を検討
HTTPS の利用パターン
• ハーフブリッジ型TLS 終端
• フルブリッジ型TLS 終端
フルブリッジ型TLS終端
• オリジンまでのコネクションをすべてHTTPS化
• CloudFront設定の[Match Viewer] を選択
Amazon
CloudFront
HTTPS
MapBoxはオリジンを複数利用
• 複数のAPIのオリジンを使用
• 1つ目はハーフブリッジ型: Edge・オリジン間はHTTP
• 2つ目はフルブリッジ型: Edge・オリジン間もHTTPS
まだ終わっていません…
次は、アプリケーションの保護が必要です
アクセス制御
もし以下のことをしたい場合…
•
一部の限られたお客様にだけコンテンツを配信
•
決められた時間 までにだけコンテンツを公開したい
•
特定のIPのみコンテンツへのアクセスを許可
アクセス制御: プライベートコンテンツ
署名付きURL
署名付きCookies
• URLのクエリストリングに署名を追加
• Cookieに署名を追加
• URLが署名の箇所で変わる
• URL は変わらない
どのよな時に使うべきか?
• 個別のファイルへのアクセスを制限する
• Cookieに対応しないクライアントがある
• RTMP ディストリビューションを使いたい
どのような時に使うべきか?
• 複数のファイルへのアクセスを同
時に制限したい
• URLを変更したくない
アクセス制御: プライベートコンテンツ
アプリケーションはまだ開発中ですか?
CloudFront へのアクセスを“InternalのIP アドレス”の
みに制限してください
まだ終わっていません…
リクエストのパラメータをもとにアクセスを制
限したい場合はどうすべきでしょうか?
不必要なリクエストへの応答はお金がかかります
Host: www.internetkitties.com
User-Agent: badbot
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.InTeRnEkItTiEs.com/
Connection: keep-alive
スクレイパー・ボット
AWS WAF
Host: www.internetkitties.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)…..
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.mysite.com/
Connection: keep-alive
アクセス制御: Web Application Firewall
Host: www.internetkitties.com
User-Agent: badbot
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.InTeRnEkItTiEs.com/
Connection: keep-alive
スクレイパー・ボット
AWS WAF
Host: www.internetkitties.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)…..
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.mysite.com/
Connection: keep-alive
MapBox WAFをBotをブロックしています
ログ
一般ユーザ
サーバ
悪意のあるユーザ
分析
ルール・アップデータ
防御に自動化が必要な攻撃
Attackers
IP reputation lists
HTTP floods
Scans & probes
Bots & scrapers
AWS CloudTrail
CloudFront API コールの履歴を記録:
• セキュリティ分析
• リソースの変更管理
• コンプライアンスの監査
インフラストラクチャ
セキュリティ
アプリケーションのセキュリティ
アプリケーション
セキュリティ
サービス
セキュリティ
どのようにアプリケーションとオリジンを守るか
Application Security
AWSユーザの責任は?
IAM ポリシー
+
Origin Protection
OAI
鍵のロテーション
証明書のロテーション
=
セキュアなコンテンツ配信
ハッカーはCloudFrontを迂回して直接オリ
ジンにアクセスできます…
アクセス制御: オリジンのAccess制限
カスタム Origin
IPアドレスのブロック
Pre-shared Secret Header
Amazon S3
Origin Access Identify (OAI)
•
•
Amazon S3バケットへの直接のアクセス
を防ぐ
すべてのお客様にとってパフォーマンス
面での利点がある
•
CloudFrontだけをホワイトリストに追加
•
オリジンをオーバーロードから保護
•
すべてのお客様にとってパフォーマンス面での利
点がある
オリジンのベスト・プラクティス
1. Match Viewer
Origin Protocol ポリ
シー
•
•
•
オリジンではTLS 1.1
か1.2 のみを許可
オリジンへのコネクショ
ンはHTTPSを強制
フルブリッジの
HTTPSを必ず利用
2. セキュリティグループ
や Shared Secretをつ
かってアクセスを制限
3. SHA256の証明書を
利用
オリジンのベスト・プラクティス
4. ELBで独自証明書を利
用する
5. ELB 事前定義ポリシーを利用
6. HSTS ヘッダーを送る
*Strict-Transport-Security: maxage=15552000;
*X-Frame-Options: SAMEORIGIN
*X-XSS-Protection: 1; mode=block
Options
AWS Certificate Managerから証明書を
発行できます
現在の設定内容を検証する方法
セキュリティの設定を検証する方法
https://www.ssllabs.com