386 Views
December 17, 15
スライド概要
参加しよう!Hardening Project ( Hardening 10 ValueChain #h10v #h・v レポート )
秋葉原生まれ大手町育ちの歌って踊れる江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。 あなたは幸福ですか?
参加しよう! Hardening Project 株式会社サイバーエージェント DCソリューション クラウドエンジニア 仲⼭山 昌宏
内容 1. 2. 3. 4. Hardening 10 ValueChain の紹介 Team4 「セキュ⼦子の部屋」の反省省会 Softening Dayを踏まえた他チームの分析 次回勝つために
Hardening Projectってなんぞ? • 渡されたシステムを攻撃から守り切切るセキュリティの競技
Hardening Projectってなんぞ? • 渡されたシステムを攻撃から守り切切るセキュリティの競技 サービス運⽤用 • 「セキュリティ技術」だけに偏らない全般的なサービス継続の 能⼒力力が問われる総合競技 • • • • • • 脆弱性調査・対応 影響範囲の調査・封じ込め 性能チューニング 商品の在庫管理理 主催:Web Application Security Forum(WASForum) 広報・お詫び 年年⼆二回開催(2014年年から沖縄) 社⻑⾧長の説得 今回の Hardening 10 ValueChain で7回⽬目
Hardening 10 ValueChain • 11/07,08 @ 沖縄県宜野湾市 沖縄コンベンションセンター • 渡されたECサーバに対して • 堅牢牢化を施すことで • 評判(繁盛レベル)を上げ、 • 売上を伸ばす競技です。 • 11/07 Hardening Day (8時間耐久競技) • 11/08 Softening Day (振り返り+表彰)
競技環境(サービス環境+踏み台+α) 複雑な競技環境 (21台) • 公開サーバ 8台 • 踏み台サーバ 6台 • 社内サーバ 5台 • ルータ 1台 • 社外確認⽤用クライアント 1台 OS別に⾒見見ると • CentOS 13台 • Windwos Server 2台 • Windows 5台 • vyOS 1台 今回は、競技環境の資料料が 前⽇日⼣夕⽅方(18:22)に送られてきました!
http://www.iij.ad.jp/company/development/tech/techweek/pdf/151112_̲2.pdf
実際にはこの先に 「インターネット」 があります。 (お客様・攻撃者など) ここでのサービスを 死守!!!!!!! 有線で素直に 接続できるけど 踏み台で 「メール」を読み書き (社⻑⾧長・社外との会話) 「踏み台」を経由して サーバに接続しないと いけない(ルール) http://www.iij.ad.jp/company/development/tech/techweek/pdf/151112_̲2.pdf
動いているサービス • ショッピングサイト • 売上の要 • コーポレートサイト • 新卒エントリー受付システム • 問い合わせフォーム • 売り上げ管理理システム WordPress Struts/Tomcat PHP
評価(ECサイト売上+加点ー減点) 加点 • インシデント対応時に 適切切なアクション • 未修正の脆弱性への対応、 マルウェアの検知など • ファインプレー • 終了了時の在庫数×単価×40% 減点 • インシデント発⽣生時 • 社内ルール違反 • Hardening 10 ValueChain ルール違反 • 終了了時にhardeningユーザで ログインできない場合
その他の評価項⽬目 • 技術点 • 技術的な対策の実施状況 • 脆弱性への対応、マルウェアの対応など • 対応点 • インシデントの対応能⼒力力 • インシデント復復旧時間、サイト全体の稼働率率率など • 顧客点 • ユーザの対応⽅方法 • サポート能⼒力力、ユーザ保護の取り組みなど • 経済点 • マーケットプレイスの活⽤用状況 • サービスや製品をたくさん使って市場を活性化したかなど
技術チーム kuromame6 • 競技環境の準備 • 競技における「攻撃者」役 • 競技環境に様々な攻撃を⾏行行う • Hardening競技の真の⽀支配者 • 10⼈人×6チーム=60⼈人でkuromame6に勝つ競技でもある • 各チームの評価も⾏行行う • 売上となる「お客さん」クローラー • 攻撃や脆弱性に対する対応の判断 • 各チームの対応に基づいて「繁盛レベル」を操作 ⇒ クローラーの巡回頻度度=売上が上がる!
今回の攻撃シナリオ • 最近世の中で問題になっていそうなものを取り上げた。 11時 標的型攻撃 12時 在庫管理理アプリからの情報漏漏洩 13時 DD4BC(DDoSによるNW停⽌止) 14時 Malvertising 15時 マルウェア再度度活動 16時 新卒採⽤用受付からの情報漏漏洩
Malvertising • 昨今はやりのアレ • 「vvvウイルス」 • 現実にはメール主体のウイルスだったようですが…… (先⽇日も某⽇日報MLで流流れていましたね) • コーポレートサイトを表⽰示したときに、 3回に1回 だけマルウェアが導⼊入される素敵な広告♥
新卒採⽤用受付からの情報漏漏洩 • SQLインジェクションがあるJavaアプリケーション • ご丁寧にソースコード同梱 • よく⾒見見ると、わざわざバリデーション部分だけコメントアウト • 既に環境がある⼈人でないと修正/ビルドは⾯面倒そう ⇒ 代替策 • WAFで防いだ • メール送信のフォームプログラムに差し替えた • メール送信の表⽰示に差し替えた
特定商品が売れない • ⼀一部のチームで「かりゆし1」だけ売れない事象 • かりゆし1を買う利利⽤用者(クローラー)だけ、リクエストの ヘッダに特殊な⽂文字列列が挿⼊入されている。 ⇒ 「かりゆし1」を買いたい⼈人のアクセスがWAFで遮断 • WAFを⼊入れた前後の影響をよく確認するべきという教訓
バックドア • 踏み台サーバは徹底的に取られている • Windowsの遠隔操作 • 競技中に「話しかけられた」⼈人も居る模様 • Linuxにはキーロガー • きれいにしないと、変更更する端からパスワードが盗られる。 • 外に53/UDP (DNS) パケットを送り続ける謎の/bin/bash • 他にもあった可能性?
最終結果 順位 ⾒見見込み販売⼒力力 技術点 顧客点 対応点 経済点 1位 31,142,860 2450 3140 3540 7300 2位 28,799,800 2150 2570 2880 1300 3位 28,367,320 3200 2570 2770 1100 4位 25,991,372 2750 2950 3210 1600 5位 25,145,656 2900 2570 3320 1100 6位 14,841,380 2300 3140 3320 500
最終結果 順位 ⾒見見込み販売⼒力力 技術点 顧客点 対応点 経済点 1位 31,142,860 2450 3140 3540 7300 2位 28,799,800 2150 2570 2880 1300 3位 28,367,320 3200 2570 2770 1100 4位 25,991,372 2750 2950 Team4 3210 「セキュ⼦子の部屋」 1600 5位 25,145,656 2900 2570 3320 1100 6位 14,841,380 2300 3140 3320 500
Team4 セキュ⼦子の部屋
わがチームの基本戦略略 • ビジネスとして当たり前のことをやろう • 脆弱かわからないサービスをリリースする のはそもそもビジネスとしてありえない • スタートダッシュに本気出し、 開幕メンテぶっぱで安全性を確保 「やられる前に塞塞ぐ」 • 漏漏洩事故を起こさず対応に⼒力力を⼊入れる事で 評価点と後半の売上を確保しに⾏行行く
スタートダッシュ • 1時間のダウンタイムで固めるだけ固める • 数分以内で分かりやすい侵⼊入経路路の阻⽌止 • パスワード変更更 • auditdルール設定 • Sorry画⾯面に切切り替え • 細かい設定はまず⽌止めてから ↑ この発想が諸悪の根源(準備不足)
初⼿手の失敗 • PC設定の不不備でスタートダッシュに躓く • Sorry化に27分 • WordPressの保護に時間が掛かる • 開かない管理理画⾯面 • 不不慣れなZIPファイル経由でのアップグレード • WPのアップグレードに3時間 • 対象コンポーネントの取りこぼし • Tomcatに⼿手が回らない、⾒見見れる⼈人が⾜足りない • 結局なにも対策しないままの再オープン
焦り
後⼿手の連続 • Windowsクライアントへの対応 • とりあえずKaspersky⼊入れる⽅方針ではあった • 結局16時くらいまでずるずる引っ張った • Windowsが⽌止まるとメール送受信が滞る • 在庫問題 • 初動が遅れている間に在庫数が改竄 • 調査に多⼤大な時間が割かれる • とっとと社⻑⾧長に聞けば良良かった • 事故に追い回される • スタートダッシュ戦略略が完全に破綻
敗因1: チームビルディング • チームビルディングの失敗 • 3チームに分けて作業(これは良良い) • 全体の作業管理理ができていなかった • インシデント発⽣生以後、必要な連携が取れず • 意志決定者の不不在 • 対応⽅方針を決めきれない • 優先順位が決められない ⇒ 本来優先すべき対応が進まない ⇒ 繁盛レベルが上がらない
敗因2: 準備不不⾜足の積み重ね • スタートダッシュ作業の作り込み • 資料料を熟読し前⽇日から当⽇日朝まで時間を掛けていれば、 より早く完璧な守りが可能だった • 作業環境の最適化不不⾜足 • 踏み台Windowsの取り合い ブラウザだけならXvncなどもあり得た • メールやりとりの共有 • 事前に枠組みを作っておくべきだった
終了了時点での仕掛かり作業 • • • • • • • • • • 漏漏洩事故の該当者への連絡 コーポレートサイトの侵⼊入調査 問い合わせ・新卒フォームのWAF対応 改竄された在庫数の修正 EC全体が遅い問題の調査 vyattaの通信棚卸し キーロガーの調査(おそらくBash) WordPressプラグインアップグレード 取られたWindowsクライアントの調査、封じ込め なんかおかしいADの調査
良良かった取り組み • サービス再開後、しばらくは安定できていた • ※ ただし後⼿手に回り始めるまで • 戦略略そのものは正しかったという認識識 • (当然ながら)きちんと防げた攻撃も多い • Wordpressバージョンアップ • ShellshockとかBindとか • 踏み台Linuxの不不正トラフィックの検知 きちんと準備して 1時間でやりきれていれば…… • Bashプロセスっぽいのでおそらくキーロガー? なお間に合わなかった模様
マーケットプレイス • 正直うまく活⽤用できなかった • 結局Kasperskyだけ • 守り切切れなかった(Win10等) • 気付いたときには遅かった • チームに不不⾜足しているスキルの拡充 • インシデント対応時の⼈人⼿手 • 買い占めという正義(他Tに使わせない)
今回のアイドルPepper • rootパス読み上げちゃん (震え声) • 声がたまに聞こえなかった • 天の声が(うちには)優しかった https://twitter.com/MikumoConoHa/status/557495607326031872
他のチームの分析 • Softening Day 各チームの振り返り • https://www.youtube.com/watch?v=I1Um1l_̲9Vw0 • まとめたメモがあるのでそのうち公開します。 • いくつかパターン化できるものがある • • • • 初動 インシデント対応 マーケットプレイス コミュニケーション
初動 • 脆弱性検査 • 今回は前回(Hardening 10 Marketplace)に近い環境だろうという 予想があった • 前⽇日配布された競技資料料を⾒見見れば、ほぼ確定できていた! • 対象とする環境を対象に、最近はやりの脆弱性のリストアップ • 診断系技術者が居るチーム(Team3など)は、がりがりとプロの腕で 脆弱性を⽚片っ端からチケット切切るのも有効 • 事前準備したツールの持ち込み • 環境調査 • パッチ
インシデント対応 • 1に報告2に報告 • • • • • 社⻑⾧長宛 関係組織宛 顧客宛 ⼀一般閲覧者宛(PR) 「ゲームのルールを⾒見見極める」ことが勝利利の鍵だった • 前回は、後半が性能チューニング合戦だった模様。 とらわれすぎてはいけない。 • 5に質問 • 良良い質問をすれば良良い回答が得られる • (実は)社⻑⾧長は技術がわかる • マルウェア配布していた広告のリンクを広告業者からもらいなおせる
マーケットプレイス • ⼈人の時間を⾦金金で買えるなら⾦金金で解決するべき • 全部上⼿手くいけば4800万円の売上 • 「想定される売上=予算」(Team5) • WAFは正義(正しい時間稼ぎ⼿手段) • まず⼊入れてしまえばそれなりの確率率率で守ってくれる • Packet BlackHole • 被害の影響調査が楽になっていた
コミュニケーション • Slack+Google Driveが圧倒的⻩黄⾦金金パターン • 特にSlackは全チームが使っていたはず • アナログ⼿手段が有効 • Windows端末の使⽤用権管理理 ⇒ 紙のトークン(付箋など) • 近くに居るんだから無駄なデジタル化コストは不不要だよね • タスク管理理 • ⼤大きめタスクは付箋かんばん管理理が最強っぽい? • 細かい脆弱性の潰し込みはスプレッドシートが有効そう Team5のかんばんを 写真で数えたところ、 49枚の付箋があって、 40枚が完了了になって いた模様
次回勝つために • 全体でもまだまだ伸びしろは⻑⾧長い • 今回優勝したTeam5はマネジメントと対応⼒力力で勝っているが、 技術点は4位(1位チームの3/4)に過ぎない • 技術点トップのチームでも、評価ポイントの1/3しか稼げていない • 技術的に守り切切った上で対応でも勝ちたい • 今回のTeam5の⼿手法は⾒見見習うべき • ITILみたいな視点ももっと戦略略に取り⼊入れていきたい • その上で、技術的にもっと派⼿手に「本気で」攻めに⾏行行く
事前準備「段取り8割」 • 準備できるものは準備する • Linux系ホストは、SSH公開鍵認証+sudo+Fabricが有効そう • 事前に競技⽤用のSSH鍵対を共有 • Fabricで情報収集 • 既成の脆弱性診断ツール • 想定される通信以外を記録してなる早で遮断 • 脆弱性でそう・使われそうなミドルウェアの最新パッケージ持ち込み • 「開幕ぶっぱ」のスクリプト流流し込みでどこまでできるか • ⾃自分の想像⼒力力とkuromame6の戦い
既に盗られている(かもしれない)環境 • 本質的には何も信頼できない • 既設のバックドアでリアルタイムで介⼊入されたら勝てない • でもそれでは競技にならないので、現実的な「ゆるさ」がある • 信頼できる場所を増やしていく • 脆弱性診断 • 信頼できるバイナリを持ち込む • static linkバイナリ、特にSSHD、シェルあたり • Windowsは⼀一定の割り切切りが必要そう • ウイルス対策ソフトの持ち込みも検討しても良良いのでは • 「現実的」なラインの⾒見見極めはセンスが要求される?
⾃自らのサービスの正しい把握 • 動いているサービスを「適切切に」把握する • 正しく把握していないのに正しく運⽤用できるわけないだろ⾺馬⿅鹿鹿! • ショッピングカートの仕様 • EC以外のサイトの仕様 • ヘルスチェック • 今回はそういう攻撃は無かった(ような気がする)けど、 各サーバの異異常をいちはやく検知できる体制が必要そう • 監視ツールのバイナリをパッケージングして持って⾏行行くと良良さそう
まとめ • Hardening Projectはサービス運⽤用の総合競技 • 「セキュリティ技術者」以外も積極的に参加すべき • むしろディレクターとかも是⾮非 • 得られる経験値は巨⼤大 • 次は勝つ • 勝つためには「やりきる」ことが必要 • 6⽉月頃? • MINI Hardeningも出たい
追加情報 • WASNight 2015 Year End = WASForum x OWASP Night • 12/21 (⽉月) 18:30 -‐‑‒ 22:00 • https://owasp.doorkeeper.jp/events/36238 • Softening Dayの動画 • https://www.youtube.com/watch?v=I1Um1l_̲9Vw0 • https://www.youtube.com/watch?v=nWPwbCbktIY • 「情報共有」の重要性を⾝身をもって体験: マネジメント⼒力力が勝利利の鍵となった「Hardening 10 ValueChain」 -‐‑‒ @IT • http://www.atmarkit.co.jp/ait/articles/1511/24/news019.html • 中の⼈人が振り返る「Hardening 10 ValueChain」 ――学びにつながった「トラブルの数々」とは (1/2) -‐‑‒ @IT • http://www.atmarkit.co.jp/ait/articles/1512/21/news004.html
おまけ:沖縄観光 • #ssmjp の⼈人たちと沖縄観光 • ⾦金金曜:⾸首⾥里里城 • ⽉月曜:レンタカーで南部⼀一周 • レンタカー安い • というか⾞車車無いと何もできない • 北北部に泊まらないと北北部に⾏行行けない