Armoris日記 仕事で思うこと...

このブログは、3月までN高等学校に潜んでいた株式会社Armorisの社員が、日頃の業務で発見したことや、得られた様々な知見を広く皆さんと共有することを目的として開設しました(予定)。
とりとめのないことを書き連ねることもあるかもしれませんが、何かのお役に立つことがあれば、うれしく思います。

問題を作る時に気をつけていること

今回も技術ネタではなく、普段CTF用の問題を考える際に気をつけていることを書こうと思います。

私が普段問題を作る時に最も気をつけていることは、「問題文から必要な情報が削がれることを防ぐ」です。

これは、問題の作成者は正答がわかっていて、かつ、解き方もわかっているため、無意識のうちに削ってしまう情報のことです。
「なぜこのような現象が起きてしまうのか」ですが、これは問題作成者の脳内(思考)では、問題文にいくつか特定のキーワードがあれば容易に正答を導き出すことができてしまうので、その結果、もう少し挑戦者に考えてもらえる問題を作ろうとしてしまい、本来挑戦者にとっては正答に到るためにとても重要なキーワードを問題文から無意識のうちに外してしまうからではないかと考えています。

これによって挑戦者は正しいと確信して回答したにもかかわらず、不正解となってしまうため混乱が生じてしまい、結果としてなかなか正答に辿り着けない問題が出来上がってしまうわけです。
f:id:Armoris:20200703143933p:plain:w250
もちろんオープンな場所で行われるCTFや上級者向けとして作成された問題であればそのような問題もあって良いと思いますが、問題に挑戦する参加者のレベルが初心者〜上級者など幅広い場合や、特定の意図をもったトレーニングとして行う場合には、適しているとは言えないと思います。

私はこの問題を解決するために、出来上がった問題を社内の人に実際にやってもらい、その感想を聞いています。
特に、技術系の人以外に解いてもらうことで得られる別視点からの意見も重要だと考えています。 理由は単純で、技術系の人であればある程度説明が足りない場合でも問題文の意図が伝わってしまうことが多いからです。
f:id:Armoris:20200703144238p:plain:w300
以上私が普段問題を作る際に気をつけていることを書いてみました。

実際にできたものを多くの人に触れてもらい、たくさんのフィードバックを受けることは、多面的に物事をとらえることにつながるため、(CTFの)問題作成以外の部分でもとても重要なことだと思います。