Netflix - PacSec

規模においての
クラウド・セキュリティ
PacSec 2014
Ben Hagenの自己紹介
●  1996 - 交換留学生で来日, 佐賀県 ♥
●  1999 - 交換留学生で再来日, 山梨県 ♥
●  2004 - アイオワ州立大学でInformation Assurance(情
報保証:米国務省の施策)の修士号を取得
●  2005 - モトローラでSOC勤務の後にコンサルタント
●  2010 – Neohapsisでコンサルタント
●  2011 - 2012年米大統領選挙にてオバマ陣営の情報セキ
ュリティチームを指揮
● 
2013 - Netflix にてクラウドセキュリティ オペレーシ
ョンチームとツールチームを率いる
今日話すこと・・・
●  Netflixにおけるクラウドとセキュリティ
●  最近のアプリケーション・デプロイ
●  クラウドにおけるセキュリティの問題と解決策
Netflix の紹介 – ビジネスの観点から
● 
● 
● 
● 
● 
● 
購読ベースのビデオストリーミング サービス
5,000万人以上の会員
1,000種類以上のデバイスをサポート
40か国以上でサービスを展開
3つのグローバル・リージョンから同時配信
ピーク時間には、全米のトラフィックの約1/3を占める
Netflix の紹介 – デベロッパーの眼から
● 
● 
● 
● 
● 
数百のデベロッパー
数百のアプリケーション
1日200件以上の実環境投入
数万のインスタンス
ピーク時には通常の2倍のコンピューティング資源が
必要
“Ne$lix にはDevOpsチームは
いない” 私達はデベロッパーを 信頼している コードをデプロイする前の セキュリティゲートは無い アマゾン ウェブ サービス(AWS)
●  “クラウド” サービス一式
●  最初の“拡張性を備えたコンピューティング クラウ
ド” (EC2)
o 
o 
仮想コンピューティング環境
“インスタンス”
●  更に・・・
o 
o 
o 
データベース
キューサービス
DNS
その他
いくつかの重要なコンセプト
● 
● 
● 
● 
AutoScaling グループ(ASG) / ロードバランサー (ELB)
セキュリティグループ
リージョン / アベイラビリティゾーン (AZ)
Identity and Access Management (IAM)
一番重要なことは、 AWS は API 中心ということ >早速コードをいくつか見て
みよう 変更不可能なサーバのパターン
●  アプリケーションはシステムイメージとしてデプロイ
される
●  一度デプロイされたら決して変更できない
●  更新は新しいイメージのデプロイで行う
インスタンスの平均寿命
(TTL)は3日未満 デプロイ
1.  デベロッパーはコードを GIT (オープンソース)に託す
2.  Jenkins (オープンソース) がコードをコンパイルして
Ubuntu DEB の形式にパッケージする
3.  DEB はベースイメージ上にインストールされ、Bakery
(オープンソース) を使用して AMI スナップショットが
作成される
4.  AMI はAsgard (オープンソース)を使ってAWS上にエラ
スティッククラスターとしてデプロイされる
a. 
3つのリージョン, 各リージョン毎に3つのアベイラビリティゾーン
“クラウド上での可用性は当たり前。 その周りをどのように構成できる?” NetflixのSimian Army(猿軍団)
●  カオスを受け入れる
o 
おかしくなった時をシミュレー
トして、デベロッパーに対応を
強制する
●  異なるものを見つけ出す
●  不正なものを探す
●  Security Monkey!
(セキュリティ中毒)
●  オープンソース!
“@#(*$&) はどうなっている?
どうやって追っていける?
どうやって標準的なセキュリティ
タスクを実行できる?”
プロジェクト・モントレー(Monterey)
スクリプト形式で使えて(つまり)自動化できて、(アプ
リケーションの呼び出しが)チェイン構造にできて、拡張
性の有るセキュリティツールの使用
●  パイソン ベースのプラグインとマネジメント・フレー
ムワーク
●  大規模環境のデータを収集することと共通のセキュリ
ティ・タスクを実行することを支援するために設計
●  クラウド環境の変更に反応して動作
●  「間もなく」オープンソースに
“デベロッパーはいつでも新らしい
アプリケーションをデプロイできる。
何が大事なんだ?
どうやってリスクを割り振れるんだ?”
PenguinShortbread
●  自動的にアプリケーションのリスクを分析
●  アプリケーションを総合的に調査
o 
o 
o 
o 
どのライブラリが使われているか?
どのネットワーク・コネクションが生成されたか?
どのデータにアクセスしたか?
どのアプリケーションに依存しているか? そして、アプリケーショ
ンが依存しているか?
●  リスクを評価
“大量のトラフィックが流れている。
どうやって悪い要素を
見つけて追えるんだ?”
LazyFalcon
●  APIでネットワーク・アド
レス情報を呼び出す仕組み
●  ネットワーク・スペースの
内部履歴
●  GeoIPおよびブラックリス
トの管理機能
●  「間もなく」オープンソー
スに
“ネットワークが複雑だ。
どうやってファイアウォールのルール
を管理できるんだ?
どうやってルールの安全性と一貫性を
確認できるんだ?”
SecurityGrouper
●  AWSセキュリティグループ
をアカウントとリージョン
にまたがって比較
●  一貫性の無い、あるいは効
果的でないルールを探す
●  標準ルールを簡単にアーカ
イブ&適用
●  JSON形式で読込み・書出し
“インターネットは恐ろしい場所だ。”
Scumblr
●  オープンソースのセキュリ
ティ情報収集ツール
●  指定する場所を検索
(Google, Twitter,
Pastebin, など)
●  ワークフローを設定可能
●  オープンソース!
“インターネットは恐ろしい場所だ。
スクリーンショットを
撮ることすら・・・”
Sketchy Screenshotter
●  APIで呼び出す(充分に)安全
なWebサイトのスクリーン
ショット ツール
●  「最近の」Webサイトでス
クリーンショットを撮るた
めの最大限に工夫
●  スケーラブル
●  何がWebサイト上にあるか
を見る「安全な」方法
●  オープンソース!
ご清聴ありがとうございました!
http://netflix.github.io
http://techblog.netflix.com
●  [email protected]
●  [email protected]
●  @benhagen