Home CTF advent calendar 2022
Post
Cancel

CTF advent calendar 2022

初めに

CTF Advent Calendar 2022の15日目ということで色々書きます。前回はhamayanさんのCTFにおけるステガノグラフィ入門とまとめ - はまやんはまやんはまやんでした。webわからなさすぎるので、いつもwebのwriteup参考にさせてもらってます。ありがたやー~…

はじめましての方は初めまして、そうでない方も初めまして、kanonです。

去年の11月(?)から本格的にCTFに参加始めた新人プレイヤーです。(そう考えると1年と少ししかやってない..??)

まぁそれはさておき、この記事は新しくCTFを始める人に向けての記事にしようかなと思っています。理由として、僕自身がCTFのコミュニティに参加した(?)のが2か月前なのとそれまでの約一年間は個人でしかもtwitterとかもやらずにCTFtimeだけ見てCTFに参加し経験積んでました。時間だけ見ると結構無駄なことや逆に良かったこともあるので今からCTFやってみようかな!!でもどうしたらいいんだろ…orzって人向けに紹介していこうかなと思っています。

ただ、話すものは個人の経験に基づいていますので、間違ってたらすみません…

CTF用のTwitterアカウントを作ろう

とりあえず、CTFやっている人をババっとフォローしておきます。そうすることで、色々な情報(CTFの開催情報・writeup・良問等々)が手に入ります。これって、凄く重要な情報で自分のスキルアップにもつながりますし、みんなめっちゃスプラやってるやんってなります。

それはさておき、チームのお誘いや逆に今度一緒にやりませんかといったチームな話もあるかもしれません。横のつながりはめちゃ大事。

CTFに参加するには…?

基本的に大体のCTFには参加できます。ただ、決勝戦や特定地域のみといったものには参加することができません。(そりゃそうですよね、W杯の決勝トーナメントに部外者が参加できないのと同じで)

基本的にはCTFtimeで纏まって確認することもできますが、たまにローカルなCTF(taskさんのtaskctfやtsukuCTF)や企業さんが開いてくださるものもあります。それらは基本的にTwitterで情報が流れてくるので、参加したいのであればTwitterにアンテナ張る方がいいかなぁなんて思っています。(なんなら僕自身10月までそういうものの存在を知らなかった…)

こんな感じで色々なCTFがあり、最初の内はCTFtimeの説明にある難易度にビギナーも大丈夫って書かれているものかローカルで開かれる(初心者でも楽しめるものが多いイメージ)ものを選んだ方がいいです。(大丈夫な人は問題ないですが、難しいのだと普通に心折れます。。。)

CTFに参加してみる..!!

チームってどうなの??

じゃあ、参加しよう!!… あれ、チーム組んで参加するの??

参加するにあったってチーム戦で行うCTFか、はたまた個人戦で行うCTFの2つあります。

チーム組む人がいればそれに越したことはないですが、組めない場合は一人で参加しても全然問題ないです。最初は順位よりもCTFに慣れようがメインになるので…!!!(プラットフォームとかdiscordの使い方等々)

問題にジャンルがある

CTFは基本的にジャンルがあります。(まれに特定ジャンルのみやジャンルが複合している場合も…)

以下に簡単に書いてみます。

  • crypto
    • 昔のものから現在使われているものまで暗号を解読しようぜ
  • web
    • Webのセキュリティを解析しようぜ
  • reversing
    • 実行ファイルを解析しようぜ
  • pwn
    • プログラムのやばい所を探して突こうぜ
  • forensics
    • データから情報を抜き出してみようぜ
  • misc
    • その他諸々なんだぜ

とりあえず、挙げてみましたがぶっちゃけ個人の性格と知識と興味でどの分野が得意なのかは異なりますので、一度すべての分野を触って行けそうと思う分野を中心に始めるといいです。(僕は大学院の研究柄cryptoやってます)

先の話にはなりますが、その分野がある程度解けるようになると他の分野で使える知識も意外とあったりします。なので、まずは得意な分野をある程度作ってからほかの分野も挑戦するといいのかなぁと思っています。

参加したけど解けなった…orz

安心してください!!

解けなくても解けた人たちがwriteupとして解き方を公開してくれている場合やCTFの運営者たちが想定解を公開してくれる場合があります。それを見て今まで自分が知らなった手法・知識・技術を吸収して自分のものにするのも大きな学びになります。じゃあどこに上がっているのかというと、discordに上がることが大半ですが、googleで「〇〇CTF writeup」とかで検索すると見つかるときもあります。

ただ、時と場合によってはwriteupが禁止(期間禁止はたまにある)やwriteupが上がってなかったりする場合もあります。その場合は、あきらめましょう…(discordで聞いてもいいとは思いますが、相手方も善意でやってくれているので返信が返ってくるかは未知数…)

そして、時間があればupsolve(解きなおし)するのもいいと思います。(思考のトレースってめちゃ大事)

解けた!!

ならwriteup書きましょう!!

それを世界に公開するかどうかは置いておくとして、自分の思考がwriteup書くことで纏まりますし、文章で思考を説明するいい機会にもなります。(僕みたいに下手にはならないでね。約束だよ)

結局チームは組むべき…??

1人で参加するメリット・デメリット

メリットはめっちゃ気楽。デメリットは1人ですべて行うので負担が半端ないし、寂しい。

チームで参加するメリット・デメリット

メリットは単純で、人数が増えて負担が減る。ワイワイできる。デメリットは貢献しないとというプレッシャーがある。

個人的な意見

大学の研究室の人たちや、先輩・友達にCTFに興味持ちそうな人がいれば声をかけて一緒にやるってのはいいと思いますし、大学のサークルでCTFをやってるような所もあったりします。そういう所に話を聞きに行ってみるのもありなのかもしれません。

そういう場合を除くと、初めは1人の方がいいのかなぁと思っています。強い人と出ると最初は貢献できなくて楽しむことより申し訳なさが勝手しましますし、初心者同士でチームで出ても、同じ問題を複数人で解く場合を除いてソロと変わらないのではと思ってしまします。同じ問題を複数人で解く場合は、それを続けると問題の取り合いになってしまうことが多いのかなぁって勝手に思ってます。(経験なし)

なので、自分が初心者卒業したなぁ…!!と思ったらチームを組むのがいいと思います。しかも、自分の苦手な分野が得意な人と組むと得意な部分に集中できてかつ、苦手の部分でも得点してくれるというまさに一石二鳥になります。

どうやってみつけるの…

野良CTFerの人がいるのか問題で…

自分が初心者卒業したなぁ…と思う頃にはTwitterにCTF興味あるよって人たちと相互フォローになっているはずです。(ちゃんと動かしていれば)

同じ実力そうな人に一緒に出ませんかってメッセージを送ってみるのがいいのかと思います。(諸説あり)

じゃあ、強くなるには…?

とりあえず、CTFに出て出て、出てください。出て問題を死ぬほど解いて、知らないことを知って理解を深めてください。

ここまでくれば…

もう後は、上を目指して精進するのみです…!!!! お互い頑張りましょう

最後に

僕はいつでも誰でもウェルカムですのでお気軽にお誘いください…!!

ソロ過ぎてソロの感覚が染みついてますが…オーマイガー…

次回はLaikaさんがなにか書いてくれるみたいです。ありがとうございました。

This post is licensed under CC BY 4.0 by the author.