Hardening 10 MarketPlace 出場者インタビュー 横田・筒井編

2015年6月にHardening Project 2015 「Hardening 10 MarketPlace」が沖縄で開催されました。

顧客管理システムのSkyDesk CRM など、クラウド型業務アプリケーションを提供する富士ゼロックスのSkyDeskサービスセンターからは、4人のメンバーがこの情報セキュリティの競技に出場しました。競技自体のレポートは、こちらの記事で紹介しましたが、出場メンバーに競技で経験できたことや感想なども聞いてみました。

今回は、優勝チーム「Aigis6(アイギス ムーチ)」でリーダーを務めた横田智文さん(写真:左)と筒井淳平さん(同:右)に話を聞いてみました。

Hardening MarketPlace 10 への参加の動機は?

── 今回のHardening Project 2015 「Hardening 10 MarketPlace」 に参加しようと思ったきっかけを教えてください。

横田:我々は、日々クラウドサービスの運用をしているのですが、運用技術の向上を目的に参加しました。情報セキュリティ関連では、SECCON(主催:日本ネットワークセキュリティ協会)っていうCTF(攻撃系の競技)系のイベントやセキュリティ関連の企業が行っている研修プログラムなどもあったんですが、どれかを選ぶ際に、より実践的にWEBサイトを守っていくようなものがいいよねっていう話に社内でなって、Hardening 10 MarketPlace への参加を決めました。

筒井:WEBサイトの運用ってよく分からないじゃないですか。見えるものでもないし、自分たちが出来ているのかも分からないし、他の会社と比較してどうなのかも分からないから、自分たちに技術があるのかどうかも分からないので、こういう競技イベントに参加することは意味があることだと思いました。

競技開始まで

── 競技は、1チーム6名のチーム戦で、横田さんと筒井さんは同じチームだったわけですけど、そのチームメンバーって競技のどれくらい前に発表されたんですか?それから、競技前に事前に会ったりされました?

横田:チームメンバーが分かったのは、競技の3週間前ですね。競技の前日の夜に会ったくらいで、しかも沖縄の人は1人しか会えなくて、他の2人は、当日に会えました。全員社会人のチームで、沖縄から3名と東京から1名と我々で構成されてて、我々はインフラ関連ですけど、他のみなさんは、アプリケーションとかApache(アパッチ)の設定とかデータベースの設定やチューニングができる人たちでしたね。

── チーム内でリーダーはどのように決めたんですか?

筒井:会う前に決めました。チームが決まってからメールとかでチームビルディングが発生するわけですけど、先に「どうしますか?」って、知らない人同士で最初にメールを出すのは中々気が引けたりするじゃないですか。それを横田さんがやられてたんで、横田さんにしようということになりました。

いよいよ競技当日

── 競技開始前は緊張しました?

筒井:すごく緊張しました。

横田:とっても緊張しました。

筒井:SkyDesk から代表で出てるので負けられない。富士ゼロックスのポロシャツ着て出てたんで(笑)。あと、全然何もできなかったらどうしようっていうのがありました。

横田:同じです。同じです。

── 担当の割り振りはどのようにされました?

横田:競技のECサイト運営っていうのは、インフラが全体の構造ではベースにあって、アプリはその上にあるって感じなのですが、競技自体が8時間という制限時間でやらなければいけなくて、ゆっくり担当を割り振っている時間はありませんでした。大体メンバーの得意なところが自己紹介でなんとなくイメージができましたが、競技が始まってから「私は、これやります」とかって感じで、やってもらいました。結局、自分の知っていることじゃないと調べられないじゃないですか。始めた時に、誰がどこに目を付けるかで、この人はココっていうふうに割り振っていきました。結果的にこれが勝因でもあるんですけど、適材適所に配置することができました。

── それでは、一通りインフラからアプリっていう役割を埋めることができたわけなんですね。

筒井:それは難しいですね。競技でやらなければいけないことが無限にあった気がするので。

横田:ただ、そのなかでも全員が全員、完璧にこなせたかというと、そうでなかったこともあったりして。

── では、途中で担当を替えたりしたんですか?

横田:いえ。替えませんでした。時間がなくてやらなければいけないことも沢山あって、もう手遅れって状況だったりして、他のメンバーがフォローできる余裕もなかったですからね。

── 二人はどういう役割だったんですか?

筒井:僕は、インフラ部分を担当しました。競技の準備段階から、OSのここが狙われるんじゃないかな?とか、脆弱性のあるソフトウェアが入ってるんじゃないかな?とか、ある程度予測して、競技に臨んだので、それのバージョンアップやDNSの脆弱性だったり、サービスの可用性を増やすことをやっていました。

横田:筒井さんは、それ以外にも実際に業務でインフラ部分を担当しているので、筒井さんにとっては当たり前のことなんですけど、サーバに存在しているユーザーのパスワード変更だとか、OSの設定で脆弱なものの有無を自動で集めてくるスクリプトを最初から準備してました。OSレベルがそもそも大丈夫かとか、ユーザーのパスワードがちゃんと難しいものになっているかっていうのはかなり重要なので。

── 横田さんはどんな役割でしたか?

横田:僕は、在庫の発注や販売価格の設定をしていました。競技のルール自体が、ECサイトの運用なので、運用ルールに則ってサイトを止めないっていうのが重要なんですけど、在庫がなくなると売り上げが立たなくなるわけですから、在庫の補充もしなければいけないんですよ。あとは、監視も兼ねて、在庫数を確認したりしながら同じページを定期的にロードしてました。そのうち、画面が出なくなくなったりとかして、サービスが動いているか動いていないかがわかわかりました。攻撃されてサービスが落ちたりしていたら、アプリケーションのチューニングを担当していた人に「いまアクセスできないんだけど、ちょっとどうなっているか見てみて」という具体にやっていました。
あとは、片手間に脆弱性対応みたいなことをやりました。

競技中の攻撃や出来事

── 私は会場で、みなさん黙々と競技に取り組まれているのを見ていましたが、スクリーンに投影されていた売上推移とサーバが止まっているか動いているかという情報しか分かりませんでしたが、実際に競技中はどんなことが起こってたんですか?

筒井:すごくいろんな攻撃がされていたはずでした。だからサーバが止まって。ただ、何が起こっていたか、我々もよく分かりませんでした。

横田:とにかく不具合や脆弱性のあるところを全部直していって、どんな攻撃が来ても大丈夫という状態にしたら良かったんですけど、そうする前に片っ端から攻撃されてデータが書き換えられていました。さっきまで5,000円で販売していた商品が、いつの間にか勝手に0円になっていたりとデータベースが直接書き換えられているということもありました。

── 各チームとも結構な頻度でサーバが停止する状態がありましたが。

横田:サーバが止まっているのは、そとからログインされてそのサーバ自体を止められるっていうのもありました。

筒井:弱いところを突かれるとフリーズしたりしてましたし。

横田:事前に筒井さんとは「絶対に出るね」って言っていた「Windows サーバの2008の脆弱性」があって、被害を受けました。ブルースクリーン・オブ・デスっていうWindows が青い画面で停止してしまうっていうものなんですけど、競技環境がインターネットに繋がらない環境なので、インターネットに繋がるパソコンで適用するパッチを持ってきて、それを当てて解決したりしてました。

── 何が起こっていたかよくわからないけど、取りあえず何かが起こってて、原因を調べていくっていう感じだったんですか?

横田:調べてないかなぁ。Windows がいきなり落とされて、ブルースクリーン・オブ・デスっていう攻撃を外から受けて落ちたっていうのは、その通りなことなので原因が分かりました。あと、商品の値段が書き換えられるっていうのは、SQL インジェクションっていうデータベースの中身を外から書き換えるっていう攻撃で、本来なら直接書き換えられないようにデータベースを直接編集するコマンドは実行しないようにするのが原則なんですけど。他は気づかなかったですね。Linux で動いているファイアーウォールのソフトが外から攻撃されて動いていました。この通信は通す、通さないというのが定義できるものなんですが、外から全ての通信はブロックするという設定を入れられていました。全ての通信が止められたのでECサイト自体が稼働しなくなりました。こういう攻撃がされているのは分かったんですが、どうやってこれが差し込まれたのかが分かりませんでした。

筒井:競技環境自体がどこからでも入れる穴だらけの状態でしたから。いくらでも弱くはできるんですよ。システムは。

── でも、分からないとは言いつつも解除できたわけですよね。

横田:もちろん。そのファイアーウォールの設定が入れられたのはわかるんで、僕が画面をリロードしたりしてたので、アクセスができなくなったら、このファイアーウォールをとったり、アパッチをもう一回起動したりとかはしていました。ただ、競技時間の制約もあって、本当はやらなければいけないんですけど、どこから入れられたかを調べている余裕はありませんでした。

── 競技中にECサイト運営会社の社長にメールで報告などしてませでんした?

横田:そうですね。一日の最後に業務報告として何をしたかを社長に報告するというルールはありました。それ以外に、運用上のルールとして在庫を仕入れたり販売価格を下げたりした場合はそれを報告したり、ページが改ざんされた場合は、それを報告するというのもありました。ただ、我々のチームでは、改ざんされたサーバが、サービス提供のものでなかったのでページ改ざんの報告はしませんでした。サーバが3台あったんですけど、1台にだけ買い物が来るようにしていて、他の2台だけが書き換えられました。

── そこはラッキーだったんですね。

横田:そうですね。ただ、使っていた1台のサーバは、アクセス負荷が高くなって画面がでなくなって、結局ダメだったんですけど。最終的には、3台のサーバの前に1台サーバを用意して、アクセスを3台のサーバに振り分けるってことをしました。これを最初からやっていたチームは、改ざんされたページが最初からお客様に表示されることになってしまってましたが。

── 報告事項はどれくらいありましたか?

筒井:そんなに多くはなかったです。在庫の仕入れと脆弱性の報告、社内会議とか規約についてお客様から問い合わせが来たときに、どのように対応するかを法務担当にメールするとかでした。あと、勝手にページを書き換えたりしてはいけないというルールでした。実際の運用にどれだけ似せるかっていうのを主催者側の人たちは考えてたはずなので、実際に問題が起きたら書き換えるだけでなく、社長の許可や法務の確認がないといけないっていうのをルール化されていました。技術を競うだけではない大会でした。

マーケットプレイスには競技に役立つ商品がありました

── マーケットプレイスに出品されている商品は、売上金額の中から購入することができるようになっていましたが、購入して使いましたか?

横田:使いませんでした。MarketPlace っていう商品を販売しているページに商品紹介が書いてるんですけど、そこに辿り着けませんでした。ECサイト運営会社のサイト内のリンクから販売ページにいけるという説明だったんですが、そのリンクがありませんでした。

── それが何かの仕掛けかどうかもわからず、そこを直すのに時間をかけるので他のことをやった方がいいという感じでした?

筒井:そうですね。取捨選択で。

横田:最初にWindows が落ちたくらいの時点で、僕はMarketPlace の画面が出せるようになったんですが、他の人たちは作業しているのもあって開いてないですよね。その時点で、開始から1時間くらい経っていて、カスペルスキーさんのとかいっぱいありましたけど、最初からメニューが分かっていたら買っていましたね。

筒井:これ買っておけば、これやらなくていいねとか。

横田:メニューが分かっていたら最初に買ったなっていうのが、「OSの基本セットアップします」みたいなものですね。競技開始前から想像ついていましたけど、恐ろしく脆弱な状態でサーバが運用されていて、20台近くあるのを筒井さんともう一人のメンバーでやらないといけなかったので。

一番大変だったことは?

── 競技中、一番大変だったことを教えてください。

筒井:競技用の環境で競技者が触れないところに想定外の設定があって、2時間くらいもサイトを止めてしまったというのがりました。最終的には、主催者側に報告して原因が分かって対応できたんですけど。結局、競技なので用意された環境でルールに則らなければいけないのですが、インターネットに繋がってたら問題ない設定だったはずなんですが、今回、僕の思い出はただこれだけというくらいのものでした。

横田:そもそもパソコンがネットワークに繋がらないというのがありました。僕たちのチーム6人のうち、メインのパソコンがMac だった人が5人、Windows が僕だけでだったんですが、5台のMac のうち2台がネットワークに繋がらなかったんです。結局、なんとか繋がったのがお昼前でした。

── 翌日のSoftening Day の発表で、どのチームもネットワークに繋がらなかったことは言っていましたね。

筒井:開始から2時間くらい競技に入れていないと、もう着いていけないんですよね。チーム内でチャットとかで情報共有はしてますけど、何がされてて、誰が何するとか、もう追いつけない状況になってて、結構辛かったですね。

競技中のチーム内でのコミュニケーションは?

── チーム内の情報共有にチャットを使ってたとのことですが、口頭でのコミュニケーションも結構取ってたように見えましたが、当日初めて会う人とかもいるなかで、ウマがあってやり易いとか、逆にちょっと難しいなって感じたりすることとかありませんでした?

横田:たまたま、メンバーのスキルがばらけていて、うまくいったのが勝因の一つでもあるんですが、もしそうじゃなかったらって考えると作業を分担するためのコミュニケーションが難しかったかもしれませんでした。普段の業務で同じ部署の人だったら誰が何をできるっていうのが分かるからいいんですが、この人が何ができるか分からない状態で作業をお願いできないですし、「何できるんですか?」って聞いてる場合でもなく、かと言って任せてみたけどできなかったらマズイですし。コミュニケーションが本当は難しいはずなんですけど、メンバーが揃っていたというのと、全員が自分のできることを探すように「僕、次これやりましょうか」みたいな感じでいてくれたので、難しい中でも楽な方だったと思います。それがそのまま勝因だと思います。

── 競技を見ていて、口頭でコミュニケーションを頻繁にとっているチームが成績が上だったという感覚がありました。今回、僅差で2位だったチーム「binja」なんかもリーダーが自席を立って動き回って、メンバーと何か話している感じでした。

横田:binjaの技術力も、圧倒的でしたからね。

筒井:そう。すごい!点数もそうでしたけど、Softening Day の発表内容を聞いても、いろいろ見つけているなと思いました。

全体を通して良かったことは?

── 競技に参加してみて、全体を通して良かったことをお聞かせください。

筒井:本当は、競技自体で経験を積むっていうのが大事なんでしょうけど、競技に臨む前段階の準備がとても経験というか知識量がアップして、スキルアップに繋がったと思いました。今まで使ったことがないOSとか、新しいOSに変わると使われるソフトも変わったりするので、それに追随することを勉強する機会ができて良かったです。いづれ実際の業務で使っていく可能性もありますし。

── 逆に、今回の競技がなかったら、それを学ぶきっかけがなかったかもしれないですか?

筒井:ということもあると思います。一部はいづれにしてもやってたのかも知れないですけど、きっかけにはなりました。あとは、世間を知れました。今回の競技環境のように脆弱ってことはそもそも有り得ないんですが、実際の業務でSkyDesk というサービスをゼロからセキュアに作り上げてきて、当然、脆弱なパスワードのサーバは無いですし、バージョンが古いソフトはすぐ上げますし、普段の業務で当然のようにしていることが重要ということと、ちゃんとできているということを感じることができました。「これくらいはやるでしょう!」っていう普段の業務が高いレベルにあったっていうことを知れました。あと、この競技ほどじゃないですけど、脆弱なところが世の中にはあるらしいというのを周りの人の話を聞いて知ることができました。

── 横田さんはどうですか?

横田:準備が一番大きかったと思いましたね。結局、競技環境って当日行くまで分からないので、こうなっている可能性があるんじゃないかってことで、いろいろ仕掛けを調査しました。競技環境内がインターネットに繋がっていないというのは分かっていたので、直接競技環境からインターネットさえ繋げられたら、OS としての脆弱性を全部基本潰せるんですよ。Windows アップデートみたいなコマンドがどのOSにも大体あるので、インフラとしての仕事が半分終わるくらいなんですよ。あとは、パスワードの脆弱性とかOSの設定としての脆弱性だけになるので、入っているソフトウェアの脆弱性は基本なくなるので、どんな環境であってもインターネットに接続できるように、普段こんなことしないよってことも色々やりました。「こうやればこういう複雑な環境であっても インターネットに出れるよね」みたいなことをいろいろ調べて、本当にできるか検証用サーバを使って検証したりしました。けど、OSがLinuxであることを前提に準備してたんですが、競技が開始して最初に出てきたのがWindows OS だったので、そこで大体全てが終了しました(笑)。事前準備として、より深く、どうせこの後使われるだろうなっていう新しいものとかもあって、遅かれ早かれ勉強することはあるんですけど、今回のタイミングでやったっていうのは良かったですね。

── 準備にはどれくらいかけました?

横田:すごい使ってますよ。まじめに優勝するつもりでやってましたから。

筒井:将来的に使う技術でもあるんで。

競技への参加を検討されている方へのメッセージ

── Hardening Project の競技に参加を検討されている方へのメッセージがなどありましたらお聞かせください。

横田:Hardening Project は競技ですが、参加することに意義があると思います。いろんなところが脆弱な状態で、さらに、開始30分くらいあたりからずっと攻撃が来るという、通常有り得ないシチュエーションなんですが、その中で発揮できる力っていうのが、その人の実力だと思っていて、それを知るためにも参加することに意味があると思っています。ああいう特殊な環境で何が起こっているかも分からないけど、何かしないといけない時に根本原因を止められたらもちろんいいですけど、対処療法だとしても前に進めるためにとにかく手を動かせるというのが大事で。逆に、何もできなくてもいいと思います。何もできないっていうのが分かるので。

筒井:自分がどれだけできるかとか、自分たちがこれまでやってきたことがちゃんとしていることなのかとか、他の会社と比べてどうとかこういう機会でもないとわからないんだと思うんですね。だから、こういう競技に参加して、こんなところまで世の中は考えているのかとか、Hardening(堅牢化)するってことを考えている人たちはこんなことまで考えているんだとか、他の会社はこういうことまでやっているんだなとか。そこから翻って、自分たちがいままでやってきたことがどうだったのかってことを考えるきっかけになるから、参加することは、とてもいいことだと思います。

 

今回、優勝チームに所属した二人にインタビューをしてみて、適材適所に担当を配置できたことが勝因と話されていましたが、それが実現できたのもチーム内のコミュニケーションが上手くとれていたためというのが印象に残りました。次回2015年11月に開催される『Hardening 10 ValueChain』でも優勝してくれることを期待します。

無料セミナーに参加する