「え、これ、めっちゃ古いバージョン入ってない?」「SSHの設定は変えておかないとまずいよねぇ」「さっきやられたから、修正して再起動して、もし次来たときには自動的に再起動するようにしておいたよ」……2013年7月6日と13日に開催されたセキュリティイベント「Hardening One Remix」。6日の競技会場では、参加各チームでこんな緊迫したせりふが飛び交った。
Hardening One Remixは、「守る技術」「運用する技術」を競うセキュリティイベントだ。Web Application Security Forum(WAS Forum)の主催で、2012年に開催された「Hardening Zero」「Hardening One」に続く3回目の開催となる。イベントは、ECサイトを8時間に渡って管理し、その運用技術を競う「Hardening Day」と、各チームがどういった戦略に基づいてどんな取り組みを行ったか、プレゼンテーションしながら結果を振り返る「Softening Day」の2日に分けて行われた。
「すまん、サーバ運用対応しといて」だって!?
Hardening One Remixは、主に知識や攻撃するテクニックを競うCapture The Flag(CTF)とは異なり、与えられたWebサーバを攻撃から守り、安定して運用させる技術を競うコンテストだ。ルールも、CTFのように「書いていなければ何でもあり」ではなく、あらかじめ用意されている「社内ポータルサイト」相当のWebサイトに掲載されている運用ルールに従って進めなければならない。
参加チームは、菓子類を販売するECサイト「Hardening Sweets Shop」の開発担当という設定だ。ある日、社長が運用チームにカキをごちそうしたら、みんなお腹を壊してダウン。急きょシステム運用を頼まれてしまった……というシナリオで、参加チームは十分な引き継ぎもないまま、与えられた情報をヒントに自力でシステム構成を調査し、どういう状態になっているかを読み解いて安定運用させなければならない。
Webサーバやメールサーバ、データベースサーバやファイアウォールなど、Hardening Sweets Shopを構成するシステムは、情報通信研究機構(NICT)のエミュレーション基盤「StarBED」上に構築されている。
用意されたサーバにはさまざまな脆弱性が残ったままだ。そこに、主催側のセキュリティ技術者らで組織する「kuromame 6」が、さまざまな攻撃やアクシデントを仕掛けてくる。Webサーバが立ち上がらなかったり、脆弱性を攻撃されてサービスが停止してしまうとECサイトの売り上げは上がらず、いい成績は収められない。
しかも各チームには「社会人」としての振る舞いが求められる。メールによる問い合わせにどう対応すべきか、クレームにはどう答えるべきか、その際、現場でどこまで判断を下してもいいのか、適宜エスカレーションすべきか……そういったコミュニケーション能力や社内調整力も問われることになる。
このようにHardening One Remixは、現実に起こりそうなシナリオの下、セキュリティ技術力に加え、オペレーション能力、コミュニケーション能力までを含めた総合的な「運用力」を競うイベントだといえる。
3回目ならではの工夫〜見える化の改善も
3回目となる今回は、新たな評価基準として「繁盛指数」という数値を盛り込んだ。全サイトが均一の売り上げを上げるのではなく、脆弱性対策やユーザーへの情報開示など、やるべきことをきちんとやっているサイトほど「評判」が上がり、その分売り上げグラフの伸び方が変わる仕組みだ。
その上で、成績の「見える化」にも力を注いだ。Hardening One Remixの成績は基本的に、Webサーバの稼働時間と繁盛指数に比例する「見込み販売力」で決まる。これを分かりやすく示すため、専用クローラで巡回した結果をグラフ化して表示したほか、レゴブロックで店舗の模型を作成し、物理的にも見える化した。各店舗のLEDは、Webサーバが起動すると点灯し、繁盛すればするほど点滅が早くなる仕組みとなっていた。
今回のイベントでは、新たに個人で参加できる「ピン枠」も設けられた。シナリオの中では、運用チームの中に飛び込んでくる「外部コンサルタント」の役割を担い、チームにさまざまな助言を行うほか、「インシデント報告書」をまとめ、提出する。セキュリティインシデントが発生すると急きょチームを組織し、そこに外部コンサルタントが入ってくるという現実の世界の流れをなぞった仕掛けだ。
ピン枠の参加者の誰がどのチームに割り振られるかが分かるのは、競技当日。参加チームからは「事前に教えてもらえればよかったのに」という声もあったそうだが、WASForum Hardening Project実行委員長である門林雄基氏は「事前に伝えられるインシデントはない。現実には『早めの相談』などない」と述べている。
静かに熱い戦いが行われた会場
Hardening Dayには、8チームが参加した。
各チームともまず苦労したのは、与えられた競技環境の把握と、SSHポートフォワーディングによるStarBEDシステムへのログインだ。中には、なかなかサーバにログインできず、「これ何なんですかねぇ?」「入れないねぇ」と首をひねるチームもあった(後述するが、実はシステム設定不備によるトラブルだった)。
次に各チームが取り組んだのは、チーム内での情報共有だ。「はい、集合!」と声を掛けて口頭で確認するチーム、持ち込んだ模造紙にトポロジを書き込み、付せんを貼り付けていくチーム、あるいはGoogle DocsやサイボウズLiveなどのサービスを活用するチーム……方法はそれぞれ違えど、タスクを整理し、スムーズに進めていくために、各チームともコミュニケーションを重視していることがうかがえた。
競技は8時間という長丁場。昼食用に配布された「石巻爆速復興弁当」に箸を運ぶのもそこそこに、ディスプレイとにらみ合ったり、そのつど膝を突き合わせては口頭で確認し合ったりと、手を止めることなく真剣に取り組んでいた。
ちなみに、今回参加したチームはIT系企業、特にセキュリティサービスを担当する社会人が主体。中には、Hardening競技の最中に勤め先からかかってきた電話に対応し、適宜エスカレーションを行っていたチームや、並行して自サービスのバグ修正を行っていたチームもあった。
Copyright© 2013 ITmedia, Inc. All Rights Reserved.