Slide 1

Slide 1 text

AWSうっかり事故の体験と教訓 2015年11月27日(金)   “よや”  [email protected]

Slide 2

Slide 2 text

自己紹介 •  セキュリティに甘いプログラマです。。。   •  Flash  や画像のバイナリ周りで仕事してました   –  h;ps://osdn.jp/users/yoya/   –  h;ps://github.com/yoya/   •  株式会社awmの代表   –  ひとり会社   –  受託オンリー (お仕事募集中)   –  (aws と似てるのは偶然ながら勝手に御縁を感じます)   twi;er_id:  yoya  

Slide 3

Slide 3 text

話のネタ h;p://internet.watch.impress.co.jp/docs/yajiuma/20150406_696295.html

Slide 4

Slide 4 text

初めにことわり •  記事に「AWSへの不正アクセス」とあるが   •  AWS  自体が不正アクセスされた訳ではない   •  アクセス権限を自分で外に漏らし   •  それが第三者に使われただけ   •  単に自分の間抜けです   –  何かしら教訓が見いだせれば良いのですが。。   •  「AWS 怖くない」という温度感を伝えたい   –  実際どうなるかという防災訓練的なノリで聞いてください  

Slide 5

Slide 5 text

何が起こったか 公開サイト     secret_key AWS     漏洩 発見 不正利用 EC2 自分 第三者 恐らくBitCoin採掘 殆どCPU課金で   ネットワーク殆ど使わず

Slide 6

Slide 6 text

もう少し具体的な状況 •  試行錯誤でAWS勉強 2014年1月   access_key  /   secret_key   動いた! AWS   S3 公開サイト *  s3get.php   use  Aws\Common\Aws;   $aws  =  Aws::factory('awsconf.json');   $client  =  $aws-­‐>get('S3');     *  awsconf.json   {  "key":  ”A1234567",   "secret":  ”A1234567+O9876543"}   2015年3月   (無邪気に)   サンプル投稿   カモ発見   EC2を全力利用  

Slide 7

Slide 7 text

敗因 •  S3  用にアクセスキーを利用していて、アクセス キーがルート権限という意識がなかった   –  そのアクセスキーで AWS  管理含め何でも出来るとい うのも気づかなかった   •  (アカウント削除以外何でもできるらしい)   •  次の日にアクセスキーを隠して整理したブログを 投稿してたので、すっかり忘れてた   •  検証で二週間使った後、丸一年AWSを触ってな くて、見直す機会もなかった  

Slide 8

Slide 8 text

サポートやりとり時系列 自分 Amazonさん 3/7   2015年   3/10   3/11   3/12   免除検討   Key  expose   不正アクセス   免除願い   3/17   利用してない   機能を落とす 3/31   免除   しました   色々な   指示 3/25   3/30   気付かず   (経過報告)   ありがとうございます!

Slide 9

Slide 9 text

3月7日にメール通知 •  警告のメールが届いたのに気付かず。。 From:  no-­‐reply-­‐[email protected]   Subject  Acdon  required:  Suspected  fraudulent  acdvity  in  your  AWS  account  <略>     Hello,     Your  security  is  important  to  us.       We  recently  became  aware  that  your  AWS  Access  Key  A<略> along  with  your   Secret  Key  could  have  been  exposed.       In  order  to  fully  secure  your  AWS  account  and  resolve  this  ma;er,  you  must  DELETE   the  exposed  credendals  and  take  steps  to  prevent  any  new  credendals  from  being   published  in  this  manner  again.     <略>  

Slide 10

Slide 10 text

3月10日,11日に電話連絡 •  「アメリカ合衆国」                  から着信   •  心当たりなし      (英語聞き取れない)         •  “I  can  speak  japanese”        で日本語話者に        掛け直して貰う  

Slide 11

Slide 11 text

不正アクセスされてる旨の連絡 •  ビリングを確認、この時点で180万円   –  (当初、気が動転して億の単位に見えました。。)  

Slide 12

Slide 12 text

まっさきにした事 •  (S3  用に作った)アクセスキーを削除   •  コンソールへのパスワードの変更     •  ただ、EC2  上で動いているインスタンスが見あ たらず(?)  

Slide 13

Slide 13 text

(本当に)まっさきにした事      まずはTwi;erに投稿

Slide 14

Slide 14 text

問い合わせる •  h;ps://aws.amazon.com/jp/contact-­‐us/

Slide 15

Slide 15 text

リージョン •  南米(サンパウロ)で         悪さされてました    Largex8  が20台位全力でブン回り     あまり使わないリージョンという事   隠れ蓑っぽく使われてる?     機能とリージョンの   組み合わせを把握するの大変

Slide 16

Slide 16 text

利用していない機能を落とす •  自分は当日AWSを全然利用してなかったの で、とにかく手当たり次第削除   – EC2  インスタンス   – スポットリクエスト   – リザーブドインスタンス   – EBSボリューム   – ネットワーク関連諸々   (検証で一通り触ってゴミ掃除してなかった)     後でインスタンスが   立ち上がるかも   しれない

Slide 17

Slide 17 text

その他の対応 •  クレジットカードを止めるかどうか   – 不正利用としてクレジットカード自体を止めるか   – とめなかった。勉強代として払う覚悟で   •  AWS  さんの不正ではないので話がおかしくなるし   – (知人からお金を貸してくれるという申し出もあっ て有難かった)   •  SECRET_KEY  を無効にしたとはいえ、Google検 索で引っかかると恥ずかしい   – 検索で見つけたページのインデックス削除申請

Slide 18

Slide 18 text

Google検索して更新申請 •  幸い、access  key  (xxxxx)で検索すれば、secret   key  (xxxxx-­‐yyyyy)  も見つかるので、それで探 して申請   – h;ps://www.google.com/webmasters/tools/ removals  

Slide 19

Slide 19 text

教訓と対策 •  (今回関係ないけど)  MFA  をかけた方が安心 できる。   •  アクセスキーでたまに検索して確認すると良 いかも。(SECRET  自体で検索するとサジェスト に入るかもしれないので  ACCESSキーの方)   •  そもそもルート権限のアクセスキーを作らな い   •  IAM  ロールを活用しよう   •  ビリングアラートを設定しよう

Slide 20

Slide 20 text

ビリングアラート •  検証で使っていたとしてもかけるべき   – 無限ループとかあると怖い。。  

Slide 21

Slide 21 text

その他聞いた話 (未確認) •  github.com  はSECRETキーを投稿しようとする と跳ねられるらしい   •  免除の単位がリージョンで分ける事もあるら しい。(普段使っている Oregon  とか Tokyo リージョンで悪さをされると、区別しにくいか も)  

Slide 22

Slide 22 text

最後に •  Amazon  さん、済みませんでした!   – 200万近く貰ったのと同じなので、いつか恩返しし たいです   – 複数の案件で AWS  使いまくってます!    

Slide 23

Slide 23 text

                   以上です