8割解けるCTF「WEST-SEC」

セキュリティ初心者の方でも楽しめるゲーム形式のセキュリティイベント。CTFや勉強会の依頼があればご相談ください。

WEST-SEC CTFの作り方

みなさんの会社やコミュニティでもWEST-SEC CTFを作ってみませんか?
作り方は、少しのITスキルが必要ですが、それほど難しくはありません。
私でよろしければ相談に乗りますので、WEST-SECにご参加いただき、ブレイクアウトセッション等でお話しましょう。

1.完璧なものを作ろうとしない

(1)CTFをやるだけで参加者は楽しい

CTFの魅力は、単に聞くだけではなく、問題(クイズ)に答えるという双方向性にあります。
これは、WEST-SECでCTFを活用している最大の理由でもあります。一方的にセキュリティの講義を聞くだけでは得られない満足感があるのです。
なので、今まで、一方的なセキュリティ勉強会や、セキュリティ啓発をされていて、マンネリ化を感じたときは、CTFを導入してみてください。
50分のセミナーの、最後の10分に、3問だけでもいいと思います。

(2)CTFdというツールにこだわる必要もない

我々はCTFdという非常に便利なツールを使っていますが、このツールにこだわる必要はありません。
スクリーンに問題を投影してのクイズ大会でも、参加者は楽しくセキュリティを学んでいただけると思います。

2.CTFのシステムに関して

(1)CTFdを使っています

WEST-SECのCTF環境は、AmazonのAWSのサーバ上にCTFdをインストールして運営しています。
AWSのLinuxサーバを起動し、そこにCTFdをインストールしています。インストール方法は、ネットに紹介されているので、ITに詳しい人に助けてもらってください。きっと、すぐにできると思います。

(2)クラウドは便利ですが、こだわる必要はありません。

正直、クラウドは便利です。CTFのためにわざわざ物理サーバを準備しなくても、1時間10円くらいのAWSサーバで運営できます。人数が増えたらスペックを高めればいいだけです。
とはいえ、社内のサーバにインストールでももちろんできます。

3.作問に関して

(1)良問を作らなくてもいい

WEST-SECの問題が良問かどうかはわかりません。意識しているのは、8割解けることだけです。
難しい問題ばかりだと嫌になるので、皆さんのレベルに合わせて、少し考えれば解ける問題にすればいいと思います。
また、単純な知識問題でもいいです。たとえば、「わが社のCISOは誰?」「マルウェア感染したときの相談窓口は?」というものもありでしょう。ようは、双方向で参加してもらうことに意義があると思います。

(2)4択よりは、答えを入力させるもの

CTFはもともと、Capture The Flagなので、答えとなる「フラグ」を見つけるゲームです。4択の問題で、4回入力すれば正解するという問題よりは、答えとなるキーワードを入力してもらう問題の方がゲーム性は高くなると思います。

(3)解き方が複数ある問題にする

セキュリティに限らず、仕事のやり方、正解は一つではないことがほとんどです。CTFの問題でも、複数の解き方で解ける問題の方が、面白味があります。たとえば、SQLインジェクションによる攻撃でFlagを見つける問題であっても、ブルートフォース攻撃による総当たりでも解けるようにするなど、いくつか穴を残しておくといいと思います。

(4)みんなに協力してもらう

問題は、運営者が一人で作る必要はありません。詳しい人に「1問提供してください」と10人にお願いすれば、10問完成です。参加者にお願いしてもいいでしょう。

4.作問(詳細)

(1)タイトル

意味があるタイトルを付ける。タイトルは、その問題の全体像を示している場合が多い。よって、参加者は、タイトルを見て、どういう問題かを考える。適当なタイトルをつけてはいけない。

(2)余分な情報をそぎ落とす

タイトルもそうだが、問題本文において、答えを解くのに関係が無いことは書かない。ちょっとしたゴミの情報であっても、参加者は、それをヒントだと思う可能性がある。作問者にとって大事なことは、参加者が問題を解くために必要な情報を、タイトルと問題文で提供することである。ゴミの情報を与えて、参加者を惑わすことではない。ゴミ情報があると、参加者が解答を知ったときに、ストレスが溜まる。

(3)カテゴリ

こちらももちろん、適切なカテゴリに分類する。

(4)ヒント

点数を払うとヒントを見ることができるような設定ができる。ヒントの点数は、可能かなぎり小さくするのが望ましい。たとえば、100点問題で、ヒントが30点だとする。ヒントを使うとスコアが「-30」になり、なおかつ解けないと、参加者はショックを受ける。しかもそのヒントが抽象的だと腹が立つ。「こんなヒントに30点も使ってしまった」と。
そうであれば、ヒントは5点や10点にして、ヒントを使ってもショックを受けないような点数にする。しかも、なるべく有用なヒントを提供する。参加者はいろいろな知見を持っていることが多く、わざわざヒントを使うということは、有用なことを知りたいからである。あまり意味のないヒントであれば、「ヒントなんか二度と使うか」となってしまう。

※「8割解ける」という難易度でヒントを作る場合
解説時間を省略するために、ヒントにほとんど答えを書くのも選択肢である。
つまり、ヒントを使うと解けてしまようにする。その場合は、ヒントで消費する点数は高くしてよいが、それでも得られる得点の半分以下が望ましい。
そんなので意味があるか?という話だが、100点問題で30点のヒントを使えば、得点は70点にしかならなず、簡単にヒントを使おうというモチベーションにはならない。

5.運営に関して

(1)チーム戦にこだわっている

WEST-SECでは、毎回、4人程度のチームを組み、チームで戦ってもらいます。その目的は、以下。
❶コミュニケーションの向上
チームで協力することで、皆さんでコミュニケーションをとり、相談したり、教え合ってほしいからです。

❷インシデント対応でもチーム力が求められる。
セキュリティのインシデント対応でも、チームワークが必要です。リーダを中心に、短時間で何をすべきかを考え、役割分担をして進めていく必要があります。たかがCTFのゲームといえど、チーム力を発揮したチームは高得点につながっています。

❸知識の拡充
他の人はどういうアプローチで問題に取り組んだりするかを知ることも勉強になります。また、正解した人が他の人に解き方を教えることで、教える人にも良い学びの場になります。

❹レベル差を埋める
どの企業でもコミュニティでも、参加者のレベルに差がある場合があります。レベルが高い人と低い人が集まると、講師はレベルが低い方に合わせざるを得なくなり、その場合はレベルが高い人の満足度が下がる。逆に、レベルが高い人に合わせると、知識や経験が少ない人は、とてもつまらないゲームになってしまいます。
ですが、このCTFでは、問題のレベルを簡単なものから難しいものまで、また、ジャンルを幅広くしているので、レベルの違いがあっても、チームで協力してできるようにしています。チーム戦にすることで、みんなが楽しめ、学習できる有意義な場になると考えています。

(2)参加者も含めてみんなで作る

WEST-SECでは、多くの場合は3人のスタッフで運営しています。ですが、ときには私一人で実施する場合もあります。数十人規模の研修を一人で回すのは大変と思われるかもしれません。でも、皆さんに協力してもらいましょう。一人で実施するときは、あまり詳しい解説をせずに、「では始めてください」とする場合があります。そうした場合でも、チームの皆さんで相談して、誰がかがサポートしてくれるものです。参加者の皆さんも、受け身で参加するより、一緒になってイベントを作り上げるというモチベーションにもつながり、有意義なイベントになると思います。

(3)バックアップだけは準備

今まで、私のイベント中にAWSのサービスがダウンしたことはありませんが、バックアップサーバだけは準備しています。

5.実際に実施された事例

ここでは、WEST-SECを参考に、自社でCTFを実際に構築された会社さんの事例を紹介します。事例紹介を書いてくださったA社さま、ありがとうございます。
(1)製造業A社
・問題作成:自社/NCA有志
・問題内容:
 セキュリティに関するクイズ 10問程度
 ログ解析等のハンズオン 3問程度
 インシデントハンドリング(ストーリー仕立て)6問程度
・参加者:IT部門メンバー(40名程)
・時間:3時間 (うちCTF時間:60分)
・参加者の声:
 -ハンズオンでのセキュリティ研修は今までなかった点と、チーム対戦という点が大変好評でした。
 -チーム戦で誰がどんな知識をもっているか?を知るいい機会になりました。
 -他メンバーがどんな解き方をするかを知れて、参考になりました。
 -自分で手を動かすことで、とても記憶に残りやすかった。
・その他:セキュリティ教育の”きっかけ”として、うまく機能した研修でした。