Edited at

セキュリティ未経験の初心者がCTFに出場するための5ステップ

More than 1 year has passed since last update.

 私の前職の企業が、SECCONのスポンサーなこともあり、SECCONに出場する社員が多数いました。私自身はインフラエンジニアで、普段コードを書かなければ、セキュリティが専門でもなかったので、CTFに出場するために必要な知識やスキルがわからず、独学で勉強していました。

 参加者曰く、セキュリティの実務経験があるから有利というわけではなく、時間を費やして(CTFの問題を)やりこんだ者が勝つそうなので、どれだけCTFのトレーニングに時間を割けるかが勝負の分かれ目のようです。

 この投稿では、これからSECCONに出場してCTFに挑戦してみたいという方に向けて、セキュリティ未経験の初心者がSECCONに出場するために必要なCTFの知識やスキルを得るための方法をご紹介します。


Step1 SECCONや、SECCON以外のCTFのスケジュールを確認する


Step2 本を買ってCTFのルール、必要な知識やプログラミングスキルを身につける

セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

※蟻本に代えて、AtCoderでプログラミングの問題を解くのもおすすめです。


Step3 初心者向け勉強会でCTF問題の解き方を教えてもらう


Step4 仲間を集めてチームを作る

私の周りでは、メンバーを、CTFやSECCON系のイベントに参加したり、社内で募集したり(SECCONスポンサー企業やセキュリティベンダーの場合)して集めていました。

ちなみに、私が所属していたCTFチーム(今は解散)では、以下の役割分担を行なっていました。

・各メンバーの得意分野をもとに、ジャンル(バイナリ解析、Pwn、ネットワーク、Web)担当を決める。

・担当ジャンルとは別に、担当言語も決めておく(言語によって、解きやすい問題と解き難い問題があるため)。

 幅広く問題をカバーできるよう、担当言語が被らないように割り当てる(開発経験のあるなしは考慮しない)。

普段は自分の担当ジャンルの問題を常設CTF等で解きつつ、月1回集まって進捗を報告し合う形式で進めていました。

このあたりは、チームによって違うと思いますし、また、目標によっても変わると思います。


Step5 常設CTFで問題演習を重ねる


Step6 SECCONに出場する