Got Some \W+ech?

Could be Japanese. Could be English. Android, セキュリティ, 機械学習などをメインに、たまにポエムったり雑感記載したりします。

2016年Hardening 100 Value x Valueを振り返ってみる

2016/6/4~2016/6/5に沖縄県宜野湾市で開催されたHardening 100 Value x Valueにチームリーダーとして参加したので、振り返って見ようと思う。ただし、技術情報やシステム構成は秘密扱いなので、どんな攻撃があったかは話さない(話せない)のでご容赦を。ちなみに自費でいった。

まずは

  • ともに戦ってくれたチームメンバーの皆様、ありがとうございました。これ以上のメンツは望めないでしょう。
  • 多くの学びと困難を準備してくださった運営委員の皆様、ありがとうございました。

Hardening 100 Value x Valueとは?

  • 堅牢化(Hardening)の腕を競う大会
  • これには開発・運用・検知といった技術の軸に加え、マネジメント・広報などの非技術部の連携も必要
  • また、運営により準備されているリソースに投資し、チームを強化・補強することが可能
  • これら役割・手法を最適に組み合わせValueを最大化することを試みる
  • 今回のValueは、eコマースサイトの見込み販売力(Sales Potential)を含む複数の指標が計測された。
    • 技術点 - Technical Merit
    • 顧客点 - Customer Impression
    • 対応点 - Incident Response
    • 経済点 - Market Creation
    • 協調点 - Information Sharing

目的: 何故参加(応募)したか

  • 前職(SI)でもIRやってたけど総合判断が不要だった。なので俯瞰的なIR対応をしたかった
  • 実際の攻撃によって、どのような被害をうけるかシミュレートしたかった
  • 非技術的な部分も含めたマネージメントの経験も
  • 目標としてはあわよくば1位をとる気概

流れ

現地入り前

  • Slack上にチャネルを作り、そこでやりとり
  • エクセル上でメンバーのスキルマップを作成。それを元に担当を決め。
  • サーバ堅牢化の確認と設定手順を作成。
  • 特にハングアウトなどによる顔合わせは行っておらず。

Hardening 前日(0日目)

  • メンバーと顔合わせ
  • 食事処で作戦会議
    • 運営から指示されたことの対応
    • 資料の読み合わせ
    • 担当の確認
    • 初期動作の設定割り振り

Hardening Day(1日目)

  • 序盤(最初の2時間くらい?)は防御力向上を目指す
  • しかけられた攻撃をいかに検知・復旧させるか
  • 売上があがるような施策をうつ

Softening Day(2日目)

  • 振り返り発表
  • 結果発表
  • その他のプレゼン

結果

  • ビリ out of 12 (KBC賞)
  • 他チームとの最終スコアを比較すると、販売力に大きな差があった
  • 他のスコアについても平均より下回っている

振返り

  • 後で、もうちょっと綺麗に整理する

現地入り前

  • 通常Linuxサーバのハードニング手順を作成したことはおk
  • それにあわせてメンバーの役割をそれぞれ分割していたこともナイス
  • 細かいサービスの調査概要は書いてたけど、もっと詳細な手順は書いてなかったのがマイナス
    • 細かいサービスは機密に触れそうなのでぼかしてる。
  • これらの内容はスプレッドシートに書いた。それはよい。
    • だが遅すぎた。もっと各担当者が準備できる期間をもたせておけばよかった
    • 3weeksほど前にやっておけばよかったかもしれない。who knows.
    • 後、システム運用の面に偏りすぎた。ビジネス面の対応(テンプレ作成)がなかった。
  • Windowsは作業端末として持っておこう。VM越しのファイルやりとり・キーボード配列、どれをとっても作業端末としてMacよりベター
  • 又、できればもう一台、調査用としてあったほうが良い。VMとブラウザを行き来するのはめんどいぞ!

Hardening 前日(0日目)

  • 可能であればこの日は夕方くらいには到着した方がいい
  • 宿泊先はメンバー間で統一ないしは近場にしたほうがいい
    • 移動するのはダルい。
    • 次やるのであれば、会議室かります
  • ここで何故かスプレッドシートに記載した手順の共有をしなかった。何故だ。疲れていたからか。
    • 痛恨のミスその1
  • タスク管理+優先順位決め担当者を置かなかった
    • 痛恨のミスその2
    • 勿論、その担当者が何をやるか具体化も必要
      • X時間に1回、広告を買う、タスク整理する、売上状況を確認する etc etc
    • この判断の根拠はチーム人数の総数。「前回は10人超だったけど、今回は5人だから皆手を動かさなきゃね」という考え
    • システム運用だけでなく"ビジネス"の視点がすっぽり抜け落ちてた証拠。
      • ユーザー企業に務める自分がこれを抜かしてたのが驚異。
    • 広報も担わせるか、それは難しい。判断がわかれると思う。だが、経験上、この人に集約すべきだろう。
  • この競技において最もスコアに関わる基本方針についてメンバー間で落とし込めてなかった
    • 痛恨のミスその3
  • 資料の読み込みはしたが、中途半端だった
    • 読み込む為の観点が整理されてなかった
    • 読み込み自体も役割をわけて重要箇所をまとめる事がよいかもしれない
      • 企業(仮)情報、評価方法、環境構成(含むシステム運用ルール)、マーケットプレイスといった形でやるのがよいのではないか。
    • 全員で1ページ目から順に読むのは無駄が多い。
  • やっぱり紙媒体が最強ですわ
    • プリントアウトできる宿泊先にする
  • マーケットプレイスにおける購入内容・優先順位を決めたのはナイス
    • 環境構成に従った購入方法にすべきであった
    • そもそも優先順位は一番足りてないもの = 人手だと感じた。優秀かつ自発的に動ける人間が機器そのものより、財産になるのである。
    • そういう感傷的なものもそうだが、慣れてないアプライアンスを使うのは時間的にもツライ
      • マーケットプレイスにさいた作業時間、慣れようとした作業時間、設定に落としこむ作業時間を考えたら、そのコストメリットはあまりないのかもしれない。
      • でも買わざるを得ない。
  • この時点で環境構成がわかっていたので、ネットでマニュアル等を探すべきだった

Hardening Day(1日目)

  • 事前準備した手順の共有がなかったことによる問題
    • バックアップがとれず!
    • 事前に準備していたことが9割がたできなかった
    • 痛恨のミスその1−1
  • 基本的にタスク管理+優先順位決め担当者を置かなかったことによる問題
    • 購入担当の導入後フォローをせず、購入物の置物化
    • インシデント発生時の場当たり的対応化。レイヤーごとの切り分けをせず。
      • 痛恨のミスその2−1。
      • 冷静にやれば、もっと早く対応できてたはず。
      • 1)NW構成図を書いて 2)影響範囲を特定し 3)各タスクに落としこむ切り分け作業をしなければいけない
    • 「こういう対応したらいいんじゃない?」と言うナイスアイディアをスルー(皆手を動かすのに忙しすぎた)
    • 「え、今それやるの?」「え、やること変えちゃったの?」と言った事態が発生。
    • 在庫管理をせず!なんということか
      • サーバ乗っ取られにより売上があがってないと、実は考えていたのではないか。在庫の管理をしてないのに。
    • 売上をちゃんと追ってたのはよい。
    • 資産と広告単価率と比較して、常に広告をうちまくる判断をしたのもよい
    • あるメンバーが気づいていた脆弱性を他のメンバーに共有されない事象が発生!ちゃんとエスカレーションしよう!
  • 基本方針を共通認識化出来てなかったことによる問題
    • システム優先な判断になりすぎた。ビジネスへのリソース比重が少なかった。
    • 乗っ取られたサーバを復旧するためのサービスを敢えて使わない選択をしたこと。
      • 毎度のことだが、乗っ取られた手法はかけない
      • 痛恨のミスその3−1
  • その他
    • ユーザーへの報告・とあるセキュリティ組織への報告など、メンバー間情報共有だけでなく、一般的な組織がする情報共有も足りてなかった
    • 対処方法が分からなかった場合、ダメ元で運営に質問してみたら教えてくれた。聞くべし。周りを巻き込むべし。これも大事な能力だ!
      • コレが一番できてたのがチーム: アンセキュアだった。凄い巻き込み力だった。

Hardening Day(2日目)

  • 特に無し
  • iPhone落として割ったぐらい
  • 帰宅!
    • 気持ちをリセットするために、もう1日ステイすることをおすすめする。

他のチーム

  • グランプリ: No. Bee。技術と顧客対応が頭一つ抜けていた印象です。また、プレゼンを聞く限りチーム分けが綿密に出来ていた印象
  • CTC賞: Love Winner。スポンサーであるCTC様の賞。No. Beeについで全体のスコアが高く、かつ投資額も物凄かった。
  • LAC賞: アンセキュア。スポンサーであるLAC様の賞。Love Winnerよりも投資額が高いこともそうだが、周辺の巻き込み力が非常に高いことが印象的。

参加した感想

  • 最高だった。自分のチームだけでなく、他のチームとも関われて楽しかった
  • 自分に足りないのは以下
    • タスク管理、マネジメント、linux系の操作、実際のエグゼキューション
    • 自分でやり過ぎようとする部分
  • チームビルディング大事。
  • アンチパターンの塊だったのではないか。これを是非、業務に活かして欲しい。これだけで次の半年のLTができそう。
    • 本競技はプラクティカルな極みなので、是非、企業の人間には参考にしてほしい。マジで。
  • 昨年度のチームにヒアリングしたのにそれを活用できなかった(というよりしなかった)
    • 判断のミス。
  • 逆に良かったことは
    • 事前準備には結構力をいれたのではないだろうか。ただこの事前準備もシステム運用に偏りすぎてた気がする。
  • KBC賞は辛かった。すでにスコア発表でライフはもうゼロだったので、これは相当キタ。
    • KBC賞: 国際電子ビジネス専門学校の紹介パンフ・入学願書・割引券のセットと激励の言葉

その他

  • iPhone落として画面割れた。
  • 帰りのLCCの航空券が欠航になった。+2万出費
  • これで今年の厄は落ちただろう。後は上がるだけだ。

おまけ

  • 沖縄の海は最高だった。入れてないけど。

f:id:kengoscal:20160607021938p:plain