63
CloudTrail で ログとれ~る Hokuto Hoshi / COOKPAD Inc. AWS Casual Talks #2

CloudTrail でログとれ〜る

Embed Size (px)

Citation preview

Page 1: CloudTrail でログとれ〜る

CloudTrail でログとれ~るHokuto Hoshi / COOKPAD Inc.

AWS Casual Talks #2

Page 2: CloudTrail でログとれ〜る

自己紹介

Page 3: CloudTrail でログとれ〜る

自己紹介• 星 北斗 / Hokuto Hoshia.k.a. カルビ生焼け王

• @kani_b / id: kani_b

• クックパッド株式会社インフラストラクチャー部セキュリティ担当

• 2013年度旧卒

• 社会人13ヶ月目になりました

Page 4: CloudTrail でログとれ〜る

自己紹介• 好きなサービス:IAM & CloudFront & CloudTrail

• ここ1週間のマイブーム:秘密鍵の交換と証明書失効

• 嫌いなもの:パスワードリスト攻撃行儀の悪いスクレイピング

Page 5: CloudTrail でログとれ〜る

本日のお題

Page 6: CloudTrail でログとれ〜る
Page 7: CloudTrail でログとれ〜る

…の前にちょっとだけ

Page 8: CloudTrail でログとれ〜る
Page 9: CloudTrail でログとれ〜る

Heartbleed

• OpenSSL 1.0.1 のバグ • メモリダンプをちょっとずつリモートで取得できる (メモリガチャ)

• 主なSレアたち • SSL サーバが持つ秘密鍵 • 復号後の通信内容 (Session cookie とか)

Page 10: CloudTrail でログとれ〜る

AWS と Heartbleed• かなりのマッハ対応 :+1:

• 直接リモートで攻撃を受けるところは全部潰れた=> これ以上メモリガチャは引かれない

• ELB

• CloudFront

• EC2 上のインスタンスは自分で OpenSSL をアップデートしましょう

Page 11: CloudTrail でログとれ〜る

AWS と Heartbleed• さらにやるべきこと (SSL 使ってた全サービスで!)

• 新規生成した秘密鍵から証明書を再度作成して入れ替え

• ELB, CloudFront ならオンラインでさくさく!

• 元々使ってた証明書を失効 (revoke)

• なりすませる可能性がある

• 忘れがちだけど確実に

Page 12: CloudTrail でログとれ〜る

AWS と Heartbleed

• ついでに CipherSuite を見なおそう • MD5 を落としたり • ELB に追加された PFS (Perfect Forward Secrecy) w/ ECDHE の様子を見たり

• 検証は必要 (ブラウザ対応やパフォーマンス)

Page 13: CloudTrail でログとれ〜る

閑話休題

Page 14: CloudTrail でログとれ〜る
Page 15: CloudTrail でログとれ〜る

ある日の悩み

Page 16: CloudTrail でログとれ〜る

ログが欲しい• 基本的に AWS はログが残らない • けどログは欲しい

• 監査 • バージョニング • トラブルシューティング • etc…

• どうロギングしたものか…

Page 17: CloudTrail でログとれ〜る

• 解 (?): HTTP プロキシをはさむ

API ログの取得

HTTP Proxy

API Endpoint

Page 18: CloudTrail でログとれ〜る

HTTP Proxy…

• Proxy が落ちる = API コールできなくなる • クラウドとは…

• HTTP の生ログパースしたくない • クライアントに制約がかかる

• Management Console で取るの難しい。。 

Page 19: CloudTrail でログとれ〜る

(́・ω・`)

Page 20: CloudTrail でログとれ〜る

時は流れて…

Page 21: CloudTrail でログとれ〜る

Re:Invent 2013

Page 22: CloudTrail でログとれ〜る

発表

• AWS CloudTrail !!!!!

Page 23: CloudTrail でログとれ〜る

About

• AWS アカウント内での操作ログを吐いてくれる • ログは S3 に出力

• SNS に「ログ吐いたよー」と通知をくれる • 他アカウントのバケットにも吐ける

• ログ出力は15分くらいおき

Page 24: CloudTrail でログとれ〜る

• ログ形式は JSON

• 色々入ってる(おトク!)

• アカウント ID, IAM のユーザ名, タイムスタンプ, コール先リージョン, 対象 API, UA, リクエストパラメータ,レスポンス, Access Key ID, etc…

About

Page 25: CloudTrail でログとれ〜る
Page 26: CloudTrail でログとれ〜る

• 勝手にパースしてよしなに扱うのが基本

• AWS 側では特に何も提供されてない

• Mongo や ElasticSearch に突っ込む

• 解析してくれるサービス使うのもあり

• SumoLogic, Splunk, Stackdriver, loggly, etc…

• ログのパース、検索、サマライズがメイン

• 色々紹介されてるので今回は特に紹介しません

How to use

Page 27: CloudTrail でログとれ〜る

何が嬉しい?

• 欲しい情報ほとんど入りでログが取れる • しかも AWS 側で!

• HTTP Proxy のようなクライアント縛りがなくなる • 失敗の記録も取れる (監査的には重要)

Page 28: CloudTrail でログとれ〜る

but…

Page 29: CloudTrail でログとれ〜る

つらい (1)• まだあまり対応サービスがない。。。

Page 30: CloudTrail でログとれ〜る

つらい (2)• まだ太平洋を越えられない

Page 31: CloudTrail でログとれ〜る

なんとか日本で使う• リージョン関係無いサービスは日本でも使える!

• IAM, STS • US で有効化して Include global services を enable

Page 32: CloudTrail でログとれ〜る

ex. IAM の Policy 追加

追加対象や内容も取得できる

Page 33: CloudTrail でログとれ〜る

もっと使いたいできれば実践的な場所で…

Page 34: CloudTrail でログとれ〜る

2014/03/15

Page 35: CloudTrail でログとれ〜る
Page 36: CloudTrail でログとれ〜る

…の前日, 3/14

Page 37: CloudTrail でログとれ〜る

AWS Game Day Japan 2014

Page 38: CloudTrail でログとれ〜る

About Game Day

• 4行でまとめ • チームを作り敵味方に別れる • お互いに AWS でシステム構築 • 相手の IAM アカウントをもらいシステムを美しく壊す

• 壊されたシステムを美しく修復する

Page 39: CloudTrail でログとれ〜る

2014 の場合 (一部)

• 相手は他の会場にいるチーム (東京 vs どこか) • 相手に渡す IAM アカウントは Power User • リージョンは us-east

Page 40: CloudTrail でログとれ〜る

2014 の場合 (一部)

• 相手は他の会場にいるチーム (東京 vs どこか) • 相手に渡す IAM アカウントは Power User • リージョンは us-east

Page 41: CloudTrail でログとれ〜る

というわけで

• Game Day で CloudTrail を使ってみる • どんな攻撃が来てもログとれ~る!ばっちり解析!最高便利!!! • というわけにはいかない

Page 42: CloudTrail でログとれ〜る

Game Day と CloudTrail

• 対象サービスが狭い

• 構築に使ったサービスは EC2, VPC, SQS, SNS, S3

• 相手に渡す IAM アカウントは Power User

• ではここでその Policy を見てみましょう

Page 43: CloudTrail でログとれ〜る

(́;ω;`)

Page 44: CloudTrail でログとれ〜る

何をされるか

http://ijin.github.io/blog/2014/03/14/aws-game-day-japan-2014-spring/

終了後の攻撃一覧より

Page 45: CloudTrail でログとれ〜る

防御してみる

• CloudTrail を切られるのは避けられない • テンプレートは固定

• ログだけはなんとかしたい • 手の届かない場所に移す

Page 46: CloudTrail でログとれ〜る

• 設定を切られるのは諦める • ログを別アカウントのバケットに吐く(バケット名は分かるけど触れない)

(反則だったらごめんなさい)

Page 47: CloudTrail でログとれ〜る

実運用のための学び

• IAM ユーザから CloudTrail 周りの権限を取り除く • Power User Template から抜いてほしい。。

• ログの保持方法を固める • ログ集約用のアカウントにまとめる • S3 versioning + MFA delete を使う(こちらのほうがスマート?)

Page 48: CloudTrail でログとれ〜る

攻撃タイム終了後

• CloudTrail 確認 => 生きてる!!! • もちろん中途半端に止められてた可能性はある

• 早速ログ解析 • 相手に渡した IAM User: tokyo-evil

Page 49: CloudTrail でログとれ〜る
Page 50: CloudTrail でログとれ〜る

とれ~る!!!

Page 51: CloudTrail でログとれ〜る
Page 52: CloudTrail でログとれ〜る

わかってくること

• … SQS と SNS メインの攻撃 (́・ω・`)

• Instance が Terminate された以外は特に被害なさそう

Page 53: CloudTrail でログとれ〜る

実際の攻撃

VPC 周りが拾えてなかった。。。

Page 54: CloudTrail でログとれ〜る

まとめ

• CloudTrail は API リクエストをまるっとロギングしてくれ~る

• 運用時の IAM 権限と S3 バケットの扱いに気をつける

• まだ対応サービスが少ないので正座して待ちましょう

• まだ太平洋を渡ってないので正座して待ちましょう

Page 55: CloudTrail でログとれ〜る

One more thing…

Page 56: CloudTrail でログとれ〜る

ex. IAM の Policy 追加

追加対象や内容も取得できる

Page 57: CloudTrail でログとれ〜る

ex. IAM の Policy 追加

追加対象や内容も取得できる

=> 変更履歴取得に使えそう

Page 58: CloudTrail でログとれ〜る

作ってみた

Page 59: CloudTrail でログとれ〜る

iwas

• https://github.com/kanny/iwas

Page 60: CloudTrail でログとれ〜る

どう使うか

• CloudTrail => SNS への通知設定

• SNS => SQS へ吐き出す設定

!

• CloudTrail のログパース, 管理用ディレクトリに書き込み, git 差分管理

Page 61: CloudTrail でログとれ〜る

Demo

Page 62: CloudTrail でログとれ〜る

もうちょっとマシにしてちゃんと公開します。。。

Page 63: CloudTrail でログとれ〜る

EOF