イベントレポート

Hardening2020BOにペパボのメンバーが参加してきました

イベントレポート

こんにちは、@r_takaishi です。2020年1月24日〜2020年1月25日に沖縄県名護市で開催されたHerdening 2020 BO にペパボから3名が参加したので、レポートします。

Herdeningとは?

Hardening競技会は、基本的に、チームに託されたウェブサイト(例えばEコマースサイト)を、ビジネス目的を踏まえ、降りかかるあらゆる障害や攻撃に対して、考えうる手だてを尽くしてセキュリティ対応を実施しつつ、ビジネス成果が最大化するよう調整する力を競うものです。

募集要項 に書かれているように、Herdeningとは与えられたウェブサイトを障害や攻撃から守りつつビジネスも継続し売り上げをあげる、というものです。ポイントは、技術的な力だけではなく、経営や法務、営業といった力も必要となる点です。例えば情報漏洩時には技術的な対応だけではなく、顧客対応や然るべき場所への連絡といった対応も必要です。まさにウェブサイト運営において総合的な力が問われる競技と言えるでしょう。

とはいえ、必要なスキルをすべて持っている人というのは非常に稀だと思います。競技会ではチームを組み、各メンバーの強みを生かして本番に挑むことになります。チーム編成やチームビルディングといった力も問われるわけです。

競技は2日間で、1日目がHerdening Day。実際の競技日です。8時間かけて、運営側からの攻撃を凌ぎつつ、売り上げを上げていきます。2日目はSofteningDayです。1日目のふりかえりを行い、他チームが何をしたか、運営側からの解説などを聞くことができます。

リゾート地でひたすらPCを見る

@r_takaishi です。今回、僕はチーム6に所属してHerdeningに参加しました。チームメンバーが沖縄・関西・関東とばらけていたのでSlackやHangoutを使って事前にやりとりし、チーム編成や各メンバーのスキルマップ作成、役割分担などを行ないました。

競技前日には、競技についての資料が送られてきます。膨大な量なのでチームでペンションを借り、チームビルドを兼ねて資料の読みわせや当日の動きについての認識合わせを行いました。

競技当日は初動としてある程度これをやろう、と決めて効率化のためにスクリプトを用意していました。僕はスクリプトを使ってあれこれ初動のタスクをこなす予定だったのだけど、スクリプトがうまく動かないというトラブルが発生、修正にかなりの時間を使ってしまいました。また、それ以外にも前提条件の勘違いや現在の状況共有不足により効率的に動けず、個人的には惨敗したなという結果に終わりました。チームとしてはグランプリは取れず6位だったものの、いくつかのカテゴリでは1位そしてスポンサーであるSYNOPSYS賞を受賞することができました。これはチームメンバーの動きが素晴らしかったおかげだと思っています。

Herdeningのいいところは、競技が本格的でハードであるということだけではなく、ふりかえりにも力を入れているところでしょう。自分たちのチームだけではなく、他のチームの実践や運営サイドの解説など、なるほどなあと思うものが数多くありました。結局、競技や実際のインシデント時にできることって普段からやっていることだけなわけです。普段からいかに手数を増やすか、インシデント訓練でトレーニングするかということが重要だと思います。

時限爆弾を抱えて地雷原を走り抜け、生きて帰ってくるような体験

こんにちは、 @j_o_lantern0422 です。ペパボではコーポレートエンジニアリンググループ(以下CEG)というチームでコーポレートエンジニア、いわゆる情シスに近い役回りをやっています。 今回ペパボのCEGからは私を含め2名が参加しました。Hardeningで必要とされる技術力、インシデント発生時の立ち回りに今の自分の能力がどの程度通用するのか試したい、また実務に使える知見や考え方など学びたいという思いで参加しました。 チーム8のメンバーとして参加しました。チーム名は8といえば…という連想で案が出た「08小隊」でした。

Hardeningは参加した時点から始まっている…社内のHardenig経験者や、関連した記事でちょくちょく見かける言い回しです。つまり、入念な準備をすることでより高得点を狙えるということのようでした。とはいえあまりHardeningを意識しすぎた対策も主旨を考えると個人的にはあまり気が進まなかったので、チームメンバーの連絡手段をSlackに集約したり、基本的なセキュリティ対策に関する文献をさらう程度に済ませました(運営としては、対策してくることも加味して環境を作っていそうではありますが)。また、打ち合わせしやすいようにホテルを全員同じところでとりました。

前日はチームメンバーで居酒屋に集まり、そこで運営から送付された資料の読みあわせをしました。チームメンバーがそれまでに印刷を済ませておいてくれたので、スムーズに読み合わせに移れました。Hardeningは前日の読み合わせが一番大事だったように思います。この時点で確実に修正すべき点を見つけることができ、当日の大まかな役割分担を決めることができたためです。

Hardening当日、とにかくバックアップをとり、初期パスワードを変更するんだという先人の教えに従いました。パスワード変更はその場で簡単なスクリプトを書いて流して回ったのですぐ終わったのですが、バックアップすべきコンテンツの特定に時間を要してしまいこれだけで午前中全ての時間を使ってしまいました。結局、バックアップを利用することがあまりなかったように思います。それらの作業をやりつつ、マーケットプレイスで購入したベンダーサポートのための作業を請け負っていました。これは自分の普段の業務にも近いところがあり、それらしい立ち回りができたと思います。午後は攻撃を受けたりしてサービスが止まってしまっているサーバの修復をひたすら実施していました。中には攻撃ではなく、参加者側の作業で露呈するサーバ設定の不備でサービスが自爆するようなこともありました。アプローチすべきはは「サービスの停止」や「意図しない動作」といった事実に対してであり、、それが何らかの攻撃であると決めつけて動くと初動が遅くなるというのを学べたと思います。

結果として、所属チームは全体で3位、いくつかの分野で2位、といった感じでした。中の中、あるいは上といったところで結構いい成績が残せたと思います。チームメンバーの動きが素晴らしく、サービスの維持に必要なタスクをこなせたのが大きかったと思います。いくつかもっとうまくできたなと思うところもあったので、悔しい結果だったと思います。

Hardening Projectの2日目はSofteningと呼ばれていて、いわゆる振り返り会です。各チームは前日の夜資料作成をし、どんなことを頑張ったか、何が足りなかったかなどを発表します。自分のチームの発表資料を作る際、誰か一人に任せてしまっても良いのですが08小隊ではみんなで集まって資料作りを行いました。競技中は、あらゆるタスクが常に山積みになっている状態でそれぞれの行った作業の意義、どうしてほしかったなどの意図を全て汲むことができません。資料を作る中で、自分たちがどういう意図で作業や報告を行っていたのか、それを相手、チームメンバーがどう受け取っていたのかをフィードバックしてもらえるのはとても良い機会だったと思います。

こちらは懇親会で披露された琉球舞踊の様子です。私はこの手の舞踊の類に全く興味のないタイプだったのですが、この懇親会で披露された琉球舞踊はもう一度見たいと思うほどに感動しました。人生で一番好きな舞だと思います。ずっと見ていたかったのであまり写真を取れなかったのですが、思い出の一枚になったかなと思います。

ryukyubuyoh

これはひどい!大惨事!を体験出来る貴重な機会

にょもこ(@tmkymd_) です。前回前々回とペパボではチームを組んで参加していましたが、今回は何とピンで3人参加です。別に仲が悪いという訳では無いのですが、今回はそれぞれ個別に申し込むという形になっていました。私はチーム1で、構成が非エンジニア3人エンジニア2人情報系学生4人、しかも当初の聞き取りでは簡単なコマンドはわかるけどサーバとかよくわからないという人が殆どという状態で、これは楽しい感じになるなーという幕開けでした。(が、最終的には皆出来るじゃん!なんで事前に言ってくれないの?という具合で色々な人に助けられました)

チーム内で非エンジニアメンバーを経営管理部、エンジニアメンバーを技術部としてそれぞれ前日までに準備を行う事になりました。

エンジニアのチームメンバーと前日までに何度かzoomやmeetやSlackを利用したミーティングを行い、スキルチェックシートの作成や、セキュリティのあれこれを知るために徳丸本を読んでおきましょうとかその様な準備を行いました。

競技当日は初動でタスクのすれ違いによるsshログイン不可になる大事故をサーバ2台で起こしてしまい、午前中はほぼその対応で終わってしまいました。

経営管理部のメンバーが全力で競技内の買い付けでWAFや監視システムの買い付けを行ってくれましたが、ベンダーコントロールと初動対応は同時にやるのはとても大変なので、ベンダーコントロールの担当の人は初動のタスクを割り振らない方が良いですね…

上記の様な大失敗(これも経営管理部が運営に掛け合って競技内資金で直してもらった)が発生して居たため初動にやろうと思っていたことがほぼ全て飛んでしまって、最終的にはアクセス出来るサーバが0というとんでもない事態で競技が終了してしまいました。

やる事が山積みで色々な人からアレはどうした?これはどうした?と聞かれながら極限に追い込まれた状態の自分を確認出来るのがHardeningの良い所だと感じました。

チーム1では競技が終わった1日目の夜にKPTによる振り返り会を行いました。 私自身、KPTを詳しく学んだわけでは無いのですが、ペパボ社内で行った事のあるKPTの様子を思い出しつつ、チームの皆でワイワイと反省点などを出し合い、今後どうしていったら良いかのTryを出していけました。

KPTでよい振り返りが出来ました

Softening Dayでは各チームの発表と表彰、それにHardening Dayの内容の確認が行われます。私も午後には各種サーバの対応を行って居ましたが、対応出来なかったあれこれが資料をよく見れば全部書いてあって前日に確認して居た事だったりして、極限の状態だと資料に書いてあることは頭から完全に抜けていくのだという事を痛感しました。

散々な目に遭いましたが、Hardeningは普段なかなか体験出来ない事をしたり、オンラインでしか会ったことの無い人達と共同作業をおこなったりするコミュニケーション力がとても養われる競技会でした。

これに懲りずまた参加したいと思います。

おわりに

Herdening 2020 BOに参加した3名のレポートをお届けしました。準備を含め、参加するのは結構大変かもしれません。しかし、得られるものは確実にあるので、興味が沸いた方は是非参加してみると良いのではないでしょうか。