AWS GameDay 2014 Japan(Tokyo)に参加してきました

3/14のAWS GameDay 2014 Japan(東京会場)に参加してきました。
だいぶ日がたってしまいましたが、簡単にまとめてみます。


予習

初参加なので一応予習しないと盛大に足を引っ張りそう・・・
ということで、イベント概要ページにあった

Q. どんな種類のシステムを構築するのですか?
A. システムの詳細はGame Day当日に発表されますが、EC2、SQS、SNS、PythonおよびAWS CLIツールに慣れておくことをオススメいたします。

を参考に、EC2、SQS、SNS、AWS CLIツールをひと通り弄って勉強しました。

また、前回のGameDayの参加報告エントリがいろいろ見つかったので、
そのへんを読みながら傾向と対策を考えたりしました。

さらに、英語サイトも検索でたどってみると、何やら英語版の公式ページらしきものを発見。

「Resources」メニューからジャンプすると、前回開催時?のシステムの構築手順を発見。
もし今回も同じお題だったらチャンス・・・ということでひと通り構築してみました。
(でも最後のAutoScalingのあたりは時間なくてさぼりました・・・)


チーム分け

ぼっち参加でしたが、@nginksさん、@kani_bさんと同じチームになりました。
チーム名は座ってた椅子の色にちなんで「時計じかけのオレンジ」になりました。


システム構築

お題は前回と同じ(!)とのことで、予習のヤマがあたった感じ。
画像URLをSQSのキューに入れると
EC2のWorkerインスタンスが加工してキューに吐き出し、S3に出力するシステムです。

意気揚々とシステム構築の役を引き受け、構築作業に入りました。
スペルミスにハマったり、PDFからのコピペミスにハマったり、
特にAutoScalingのまわりは予習のときサボったせいで、結構ハマりました。
細かいミスを繰り返しながらもなんとか構築完了。


防御

@kani_bさんのアイデアで、CloudTrailのログを仕込んだり、
セキュリティグループの設定をエクスポートして後から照らし合わせられるようにしたりしました。
このへんはシステム構築で忙しくほとんど任せっきりになってしまった・・・。


攻撃

我らが「時計じかけのオレンジ」チームが攻撃した内容は下記の通り。

  • CloudTrail の S3 バケットポリシーで書き込みユーザが書き込めないようにした (Deny)
  • AutoScalingのポリシーをAddからRemoveに変えた
  • OS command injection で永遠に sleep するようにした
  • S3バケットのUpload/Delete権限を外した
  • 2014/03/14以降のデータを削除するようにした(expire)
  • 似たような名前のqueue, S3 bucketを追加した
  • セキュリティグループで SSH を 127.0.0.1/32 からのみ許可にした
  • カルフォルニアにインスタンスを立て10秒毎にoutputのS3を削除するスクリプトを実行
  • output-queueのDelivery Delayを30minにした
  • 送信済みキューが10件を超えたらAutoScalingでノードを減らすようにした
  • output-queueのPermissionをDenyにした
  • AutoScalingで変動するインスタンス数の下限を0にした

設定やインスタンスの削除はできるだけやらないようにして、
タスクが終わらないようになったり、インスタンスが予想外の振る舞いをするようになったりするように
いろんな罠を仕込んだ感じです。


復旧

敵チームはかなり大胆にインスタンスの削除等を仕掛けてきてました。
特に効いたのがAutoScalingのmin/maxが0になっていて、これを変更しても少したったら元に戻るという攻撃。
Launch ConfigのUserDataに仕込んでいたそうです。
AutoScalingは設定を作りなおさないといけない羽目になり、時間切れで復旧失敗・・・。


表彰

なんと、我らが「時計じかけのオレンジ」チームは仙台の地方賞を受賞しました!


おわりに

短時間ではありましたが、攻撃・防御・復旧と試行錯誤して、とても勉強になりました。
各チームの攻撃内容・防御内容をプレゼンしたり、詳細な振り返りができたらもっとよかったかなと思います。
特に、敵チームの攻撃内容はもっと詳細に知りたかったですね。

今回は前回と同じお題のシステムでしたが、2014のre:Inventあたりで新しいお題が出るらしい話を聞きました。楽しみですね。
スタッフの皆さん、また同じチームだった@nginksさん、@kani_bさん、ありがとうございました!

  1. トラックバックはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。