Upload
hokuto-hoshi
View
7.387
Download
2
Embed Size (px)
Citation preview
CloudTrail でログとれ~るHokuto Hoshi / COOKPAD Inc.
AWS Casual Talks #2
自己紹介
自己紹介• 星 北斗 / Hokuto Hoshia.k.a. カルビ生焼け王
• @kani_b / id: kani_b
• クックパッド株式会社インフラストラクチャー部セキュリティ担当
• 2013年度旧卒
• 社会人13ヶ月目になりました
自己紹介• 好きなサービス:IAM & CloudFront & CloudTrail
• ここ1週間のマイブーム:秘密鍵の交換と証明書失効
• 嫌いなもの:パスワードリスト攻撃行儀の悪いスクレイピング
本日のお題
…の前にちょっとだけ
Heartbleed
• OpenSSL 1.0.1 のバグ • メモリダンプをちょっとずつリモートで取得できる (メモリガチャ)
• 主なSレアたち • SSL サーバが持つ秘密鍵 • 復号後の通信内容 (Session cookie とか)
AWS と Heartbleed• かなりのマッハ対応 :+1:
• 直接リモートで攻撃を受けるところは全部潰れた=> これ以上メモリガチャは引かれない
• ELB
• CloudFront
• EC2 上のインスタンスは自分で OpenSSL をアップデートしましょう
AWS と Heartbleed• さらにやるべきこと (SSL 使ってた全サービスで!)
• 新規生成した秘密鍵から証明書を再度作成して入れ替え
• ELB, CloudFront ならオンラインでさくさく!
• 元々使ってた証明書を失効 (revoke)
• なりすませる可能性がある
• 忘れがちだけど確実に
AWS と Heartbleed
• ついでに CipherSuite を見なおそう • MD5 を落としたり • ELB に追加された PFS (Perfect Forward Secrecy) w/ ECDHE の様子を見たり
• 検証は必要 (ブラウザ対応やパフォーマンス)
閑話休題
ある日の悩み
ログが欲しい• 基本的に AWS はログが残らない • けどログは欲しい
• 監査 • バージョニング • トラブルシューティング • etc…
• どうロギングしたものか…
• 解 (?): HTTP プロキシをはさむ
API ログの取得
HTTP Proxy
API Endpoint
HTTP Proxy…
• Proxy が落ちる = API コールできなくなる • クラウドとは…
• HTTP の生ログパースしたくない • クライアントに制約がかかる
• Management Console で取るの難しい。。
(́・ω・`)
時は流れて…
Re:Invent 2013
発表
• AWS CloudTrail !!!!!
About
• AWS アカウント内での操作ログを吐いてくれる • ログは S3 に出力
• SNS に「ログ吐いたよー」と通知をくれる • 他アカウントのバケットにも吐ける
• ログ出力は15分くらいおき
• ログ形式は JSON
• 色々入ってる(おトク!)
• アカウント ID, IAM のユーザ名, タイムスタンプ, コール先リージョン, 対象 API, UA, リクエストパラメータ,レスポンス, Access Key ID, etc…
About
• 勝手にパースしてよしなに扱うのが基本
• AWS 側では特に何も提供されてない
• Mongo や ElasticSearch に突っ込む
• 解析してくれるサービス使うのもあり
• SumoLogic, Splunk, Stackdriver, loggly, etc…
• ログのパース、検索、サマライズがメイン
• 色々紹介されてるので今回は特に紹介しません
How to use
何が嬉しい?
• 欲しい情報ほとんど入りでログが取れる • しかも AWS 側で!
• HTTP Proxy のようなクライアント縛りがなくなる • 失敗の記録も取れる (監査的には重要)
but…
つらい (1)• まだあまり対応サービスがない。。。
つらい (2)• まだ太平洋を越えられない
なんとか日本で使う• リージョン関係無いサービスは日本でも使える!
• IAM, STS • US で有効化して Include global services を enable
ex. IAM の Policy 追加
追加対象や内容も取得できる
もっと使いたいできれば実践的な場所で…
2014/03/15
…の前日, 3/14
AWS Game Day Japan 2014
About Game Day
• 4行でまとめ • チームを作り敵味方に別れる • お互いに AWS でシステム構築 • 相手の IAM アカウントをもらいシステムを美しく壊す
• 壊されたシステムを美しく修復する
2014 の場合 (一部)
• 相手は他の会場にいるチーム (東京 vs どこか) • 相手に渡す IAM アカウントは Power User • リージョンは us-east
2014 の場合 (一部)
• 相手は他の会場にいるチーム (東京 vs どこか) • 相手に渡す IAM アカウントは Power User • リージョンは us-east
というわけで
• Game Day で CloudTrail を使ってみる • どんな攻撃が来てもログとれ~る!ばっちり解析!最高便利!!! • というわけにはいかない
Game Day と CloudTrail
• 対象サービスが狭い
• 構築に使ったサービスは EC2, VPC, SQS, SNS, S3
• 相手に渡す IAM アカウントは Power User
• ではここでその Policy を見てみましょう
(́;ω;`)
何をされるか
http://ijin.github.io/blog/2014/03/14/aws-game-day-japan-2014-spring/
終了後の攻撃一覧より
防御してみる
• CloudTrail を切られるのは避けられない • テンプレートは固定
• ログだけはなんとかしたい • 手の届かない場所に移す
• 設定を切られるのは諦める • ログを別アカウントのバケットに吐く(バケット名は分かるけど触れない)
(反則だったらごめんなさい)
実運用のための学び
• IAM ユーザから CloudTrail 周りの権限を取り除く • Power User Template から抜いてほしい。。
• ログの保持方法を固める • ログ集約用のアカウントにまとめる • S3 versioning + MFA delete を使う(こちらのほうがスマート?)
攻撃タイム終了後
• CloudTrail 確認 => 生きてる!!! • もちろん中途半端に止められてた可能性はある
• 早速ログ解析 • 相手に渡した IAM User: tokyo-evil
とれ~る!!!
わかってくること
• … SQS と SNS メインの攻撃 (́・ω・`)
• Instance が Terminate された以外は特に被害なさそう
実際の攻撃
VPC 周りが拾えてなかった。。。
まとめ
• CloudTrail は API リクエストをまるっとロギングしてくれ~る
• 運用時の IAM 権限と S3 バケットの扱いに気をつける
• まだ対応サービスが少ないので正座して待ちましょう
• まだ太平洋を渡ってないので正座して待ちましょう
One more thing…
ex. IAM の Policy 追加
追加対象や内容も取得できる
ex. IAM の Policy 追加
追加対象や内容も取得できる
=> 変更履歴取得に使えそう
作ってみた
どう使うか
• CloudTrail => SNS への通知設定
• SNS => SQS へ吐き出す設定
!
• CloudTrail のログパース, 管理用ディレクトリに書き込み, git 差分管理
Demo
もうちょっとマシにしてちゃんと公開します。。。
EOF