CloudTrail でログとれ〜る

Post on 28-May-2015

7.381 views 2 download

Transcript of CloudTrail でログとれ〜る

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 追加

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

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

作ってみた

iwas

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

どう使うか

• CloudTrail => SNS への通知設定

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

!

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

Demo

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

EOF