CTF Advent Calendar 2022の21日目の記事です。 20日目はEdwow Mathさんの「Xbitの値Y個からmod(2^Z)のLCGにおける乱数予測する(分析編)」でした。 執筆時点ではまだ投稿されていませんが、前回記事の続きなのでまだ見てない方は予習しておきましょう。

12月1日のアンケート公開(ほぼ0時)から12月18日の23時頃まで、約2週間に渡るアンケートで81名の方に回答をいただきました。 ご協力ありがとうございました。

いよいよ集計結果の発表です。

設問は次の18個でした。

  1. 属性を教えてください
  2. 最も精通する分野はどれですか?
  3. 情報セキュリティへの関わりについて
  4. CTFへの参加頻度を教えてください
  5. 参加経験(運営含む)のあるCTF(非常設、期間限定、イベント制など)について
  6. 参加経験のあるCTF(常設)について
  7. CTF以外の競技への参加経験
  8. CTFに参加する理由で近いものを選んでください
  9. CTFに参加しない(できない)理由で近いものを選んでください
  10. 最も得意な問題のカテゴリーを教えてください
  11. ある程度解けると思う問題のカテゴリーを教えてください
  12. CTFで好きな開催期間を教えてください
  13. CTFへは通常どれくらいの時間取り組みますか(24時間CTFを想定してください)
  14. CTFへは普段何人チームで参加しますか
  15. 1問を解くのに最大どれくらいの時間を掛けられますか
  16. どのようなCTFに参加したいですか
  17. CTFに参加して能力が向上したと感じますか
  18. CTFを面白いと思いますか

これから結果を書き連ねるわけですが、私は統計に関しては無知も同然なのでいい加減なことを書いています。 もし専門の方がいたら次回のアンケートは是非お任せしたいです。

回答者の背景について

まずは基本的な回答者属性から。 集計の時に分析に使えそうなネタを集める目的もありました。

Q1, Q2

回答者の属性はAdventCalendar経由なこともあって大学生~20代が多くなっています。 これは概ね想像に通りでしたが、次の精通分野を見ると暗号の比率が最も高くなりました。 体感としてアンケートの拡散範囲が暗号方面に片寄っていたような気もしますが、Web開発よりも多いのは興味深いですね。 私がCTF始めた頃はWeb開発の経験があって、Webの脆弱性から入門する流れが多かったので時代が変わった気がします1

Q3

業務や研究でセキュリティをやっている人と趣味でセキュリティをやっている人はちょうど半分に分かれました。 これについては趣味の人のほうが多いと予想していたので意外な結果でした。 CTFの難化によって趣味レベルで時間を確保するのが難しくなったということでしょうか。

CTF経験

続いて、参加経験に関連する設問をいくつか用意しました。

Q4

CTFへの参加頻度は数ヶ月に1回よりも多く参加する人が大部分を占めました。 アンケートの趣旨としてはあまり参加しない人にも回答してほしかったところですが、リーチするのはかなり難しいようです。 以降の回答は全体の8割をCTFコアプレイヤーが占めているという前提でご覧ください。

Q5

CTFコアプレイヤーの皆さんは満遍なく様々なCTFに参加しているようです。 意外だったのは年1以下の参加頻度の人でWaniCTFに参加していた人がいなかったことです。 その範囲の人は基本的にはSECCONに参加しているようです。

ちなみに国内のCTFで開催数とか参加者が多く、影響力がありそうなCTFを選びました。 うちも影響力あるぞ!という方はシンプルに思い出せなかっただけだと思うのでもし次回があったら教えてください。

Q6

常設についてはpicoCTF, CpawCTF, ksnctfの3つはやはり有名でかなりの人が参加していました。 これについては選択肢が多くないのもあって順当かと思います。 ジャンル固定の常設CTFでは、回答者層の偏りからかCryptoHackの参加率も高くなっていました。

Q7

AtCoderの普及からか、競技プログラミングの経験者が相当数いました。 入門が簡単かつ毎週安定した問題が供給されるという点はCTFにはないので、通過する人が多いのも頷けます。

Q8

この設問は他の人に意見を貰って決めようと思っていたものの、気づいたら時間がなくて自分の思う理由を並べてしまったやつです。 自由記述は集計が激ムズになるので避けてしまいました。 結果としては同じ考えを持っている人が多いことがわかって安心しましたが、意味のある結果は回収できなくて残念です。

Q9

CTFは最低1日以上時間が持って行かれるのでなかなかキツい競技です。 数ヶ月に1回参加する人が「時間がない」に票を入れている割合が多く、参加頻度と紐付いていて面白かったです。

また、CTFでTwitterを監視しているとよく「強くなったらCTFに参加したい」という発言を見かけるのでそういう質問を混ぜてみました。 結果からはあまりそういう傾向はないようで、リーチできていなかっただけかもしれませんが少し安心しました。 CTFはボコボコに負けながら特に負けを気にせず続ける競技なので……。

CTFへの取り組み方

CTFの得意ジャンルや参加時間などの取り組み方に関する設問を置いたパートです。

Q10, 11

これも回答者の属性に寄ってる感じがしますが、最も得意な分野はCrypto, Web, Pwnでかなりきれいに分かれていました。

解けるジャンルという観点ではCrypto, Rev, Webの順で多く、Revは得意分野では低めだったことを考えると他のジャンルを解く人が兼業するパターンが多いようです。 Pwnを解く人がRevもやることはよくあるのでしっかり反映されているとも言えます。 一方Pwnはそれに比べると低くなっていて、他のジャンルを得意とする人が手を出すことは少ないことがわかりました。

Q12

競技時間は順当に24時間が人気でした。 CTFプレイヤーの多くが参加する時間が取れないことに悩んでいることを考えると、土日のうち片方は時間が取れるくらいがちょうどいいのかもしれません。

Q13

1開催の中でどれくらいの時間を割くかという設問では、思っていたよりも多くの人が時間を掛ける傾向があるように見えます。 ところが参加頻度と照らし合わせてみると、頻度が高いほど長時間プレイする側に移動していきます。 面白かったので0~24の数字選択制にすればよかったなと思っています。

Q14

チームサイズについては思いのほか1人でCTFに参加する人が多いようです。 「普段」と書いてしまったせいで本気じゃない参加は1人というパターンも入ってしまいそうで、チーム所属の人はそのチームの人数を書くように誘導すればよかったなと今更思いました。

母数がガタガタなので回答者が増えると変わる可能性がありますが、1人だとあまり長時間で参加せず、数人だと長時間で参加するようになる傾向があるように見えます。 そしてさらに人数が増えると参加時間が減っていきます。 大規模チームのモチベーション維持はよく課題になるので、それが反映されてしまっているのでしょうか。

Q15

1問当たりに掛ける時間は参加頻度が高いほど長時間な傾向はありましたが、全体的に12時間以上取り組む人は多くいました。 次いで多いのは3時間で、毎月参加する人でもこれに入れた人は一定数いました。 最後まで頑張る派と早めに諦める派が分かれた設問でした。

Q16

アンケート全体で回答者のスキルに依存しない設問を用意しようとしていましたが、好きなCTFを聞くためにその条件を満たすように選択肢を考えたら回りくどい感じになりました。 今思えば「30問のCTFで何問解きたいですか」とかにすればよかったですね。

全部の問題が解けるようなCTFは歯ごたえがないのかあまり好まれず、程々に問題が解けるCTFが人気なようです。 実際CTFで中間レベルの問題が解けると余裕で上位50位くらいに入れてしまうので、目指す先としては妥当かもしれません。

CTFに対する印象

CTFは役に立たないともっぱらの噂なのでその辺りを聞いてみました。

Q17

ほとんどの人がCTFに参加して能力の向上を体感しているようです。 本来ならばここももっと細分化して聞いてみたかったですが、ここを言語化するのムズいんですよね。 CTFに必要な能力の体系化で1本論文書けると思います。

Q18

CTF大好きな人しか回答者にいなかったらしいです。 興味がなかったらアンケート書こうと思わないしな……。

まとめ

アンケートってムズいですね。 このアンケートの集計でCTFを開催する皆さんの助けになるかはわかりませんが、CTFは初心者勧誘が激ムズな体感があるので定期的に参加者層を把握するように努めたいですね。

明日はXornetさんの「ペアリング関連のWriteupを2つほど」です。 暗号関連の内容ですが、CTFの参加頻度の低まりから今のところペアリング系の問題に出会ったことがありません。 Writeup読んでわかった気になろうと思います。


  1. 現代Webがムズすぎるという説 ↩︎