学び
CTFを続ける理由
Yuya Kanesawa
こんにちは.今回は僕が普段参加している競技である,CTFについて思うことでも書こうかなと思います.
そもそもCTFって?
知らない人のために簡単に説明すると,”Capture The Flag” の略で,ハッキングの能力を競う大会です.ハッキング!?それって犯罪じゃないの?と思う方もいらっしゃるかもしれませんが,(そもそもそういう行為に該当するのはクラッキングですが)CTFは競技として確立しています.よって,”現実世界では犯罪となる行為もCTFでは許される”ということになっています.
どんなルール?
大きく2種類の競技方法があるのですが,今回はCTFの競技自体について話すつもりではないので簡単に説明しますとflag,つまり旗を探します.flagは大会ごとに決められたフォーマットになっていて,それをスコアサーバに提出すると得点が貰えます.そうして,最終的に得点が多いチームの勝利です.
具体的に何をするの?
脆弱性があるプログラムを渡されて,その脆弱性を突いて権限を奪ったり,リバースエンジニアリングと呼ばれる行為を行い,ソフトウェアの動作を解析したり,パケットをキャプチャして解析したり,暗号を解読したり,破れたQRコードを復元したり・・・・
大きくいくつかのジャンルに分かれているのですが,具体的にやることとかを書いていくとこのように書ききれないほど,たくさんあります.
続ける理由
ようやく本題に入りますが,僕がなぜこの競技を始めようと思い,どこに魅力を感じ,なぜ続けているのかを話したいと思います.
きっかけ
SECCONというCTFの日本で一番大きい大会があるのですが,こういう競技が行われているんだなというのは大学に入る前から知っていました.でも具体的にどんなことをやっているのかは知らない,そんな状態でした.
その程度の認識だったのですが,大学入学時に”あるLT(Lightning Talk)”に参加したことがきっかけでCTFについて,より一層興味を持つことになります.
その”あるLT”とは,弊社が企画したものでEyes, JAPANがなにをやっているかという説明もありつつ,好きなテーマについて話をしているアルバイトスタッフもいました.
そこで目にしたのが,当時学部4年の先輩が発表していたCTFについてのLTでした.その発表では”CTFとはなにか”,”SECCONで行われていること”などを話していて,僕の好奇心が大きくくすぐられた,そんなLTでした.
個人的に考える魅力
そもそもこの競技に対して,各々感じる魅力というものは違うと思いますが,僕の場合は”様々な知識を身につけられる”という点が大きいです.
プログラミング自体は大学に入ってから始めて,その他にも”インターネットってどのようにして繋がってるの?”,”リクエストとレスポンスってなんやねん”,”バイナリって何?”みたいな状態で,下から上までこういうものがどういう仕組みで動いているのか全く知りませんでした.
”具体的に何をするの?”で書いた通り,CTFでは本当に様々な知識が問われます.プログラミングだけができてもダメなのです.よって,自ずと様々な知識が身についていくと,僕は考えています.
なぜ続けるのか?
知識不足で始めたCTFですが,今でも知識不足なことに変わりはありません.では,ある程度知識がついたならやめるのか?と聞かれれば,そうとも限りません.
問題自体を解いていく楽しさもありますし,友人と集まってやるのもまた楽しみがあります.このように,競技を始めるまでは知らなかった魅力がありました.
ここまでいろいろと思うことを書いてきましたが,”なぜ続けるのか?”という問いに答えるとするなら,”楽しいから”と僕は答えます.
それが僕の続ける理由なんだと思います.
まとめ
CTFは楽しい!!!!!