好奇心の足跡

飽きっぽくすぐ他のことをしてしまうので、忘れないため・形にして頭に残すための備忘録。

オススメの初級者向けCTF

今回は CTF Advent Calendar 2020 - Adventar の2日めの記事として、オススメの初心者・入門者向けCTFを紹介します。※Jeopardy形式のみ

私自身、そんなにたくさんCTFに参加できているわけではないですが、参加してみて成長のきっかけになったCTFを紹介できればと思います。最近では常設の wargame と題したCTFと同じコンセプトのgameにも取り組んでいて、これもまた面白いものがあったので紹介。

CTF始めたいけど何から手を付けていいかわからない、紹介されたCTFが難しすぎて全然解けない、ちゃんと基礎からやりたい、みたいな人の目に少しでも留まれば嬉しいです。

CTFとは?

www2.slideshare.net

めっちゃ良いスライドがあった。
私はJeopardy形式しか経験がないので、今回はJeopardy形式のみの紹介となっております。

  • flagとは?
    • 見つけるべ情報。だいたいフォーマットが決まっていて FLAG{xxx}とかXXCTF{xxx}tとかそんな感じ
  • writeupとは?
    • 競技終了後に、自分がどうやって解いたかを公開したもの。自分が解けなかった問題の解説を見るのにもいいし、他の人がどうやって解いたかも知ることができる。
    • CTFによっては(特に常設)writeup禁止のものもあるので、ルールは事前に確認するようにしましょう

CTF TIME

とにかく難易度は良いからCTFに参加したい!という場合は

ctftime.org

こちらのTopのUpcoming eventsに近々開催予定のCTFが列挙されているので、気になったものに突撃するのも手だと思います。説明を読めばある程度難易度が想像できることもあります。

オールジャンル

色んなジャンルの問題が出題されるCTF。

picoCTF (競技->常設)

picoctf.org

なんと言ってもこれ。まずはぜひこれの~150点問題くらいをやるのがオススメ。
英語なのでちょっとハードルを感じる方もいるかも知れませんが、やはりCTFに入門する場合はこれが一番オススメ。
中高生向けということで最初参加を遠慮していましたが、社会人も参加OK!コンテストの景品が対象外というだけなので気にしなくて良さそう。

年に一度、2週間程度の長めの期間設定で競技が開催され、かなりの量の問題が出ます。期間後、問題はずっと公開されます。難易度は「Linuxのコマンド cdpwdくらいしか知らない」(←数年前の私)レベル向けから、上級者向けまで。時々ML関連とか変わったジャンルの問題も出るのも面白いです。

今年から過去問(2018,2019)が "picoGym" という道場的な場所に移動し、Gymからはスコアボード・ランキング機能はなくなりました。点数の低い問題から取り組むと Linux の使い方、CTFでよく使うコマンド、みたいなところの習得から始められてお薦め。
writeupも海外のものも合わせるとたくさん公開されており、自分が理解しやすいwriteupを探せるのも良いです。

ちなみに今年はコロナの影響か、競技の問題数も大幅に縮小され、全6問、中級レベルの問題という感じでした。2021年は春の開催を予定されているそうです。
twitterアカウント @picoctfをフォローしておくと、開催期間が近づいたらお知らせしてくれると思います(たぶん)。

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

CpawCTF (常設)

ctf.cpaw.site

日本語の初級者向け常設CTF。
ここで私が紹介するまでもないくらい有名。
問題数はそんなに多くないものの、オールジャンルのCTFの基本的な問題が揃ってます。
writeupも日本語のものがゴロゴロ落ちているので、学習にも良いかなと思います。(常設・ランキングありなのでwriteup書いてよいかわからず私はアップしていないです。管理者さんに連絡をとってみると良いかも。この続きのCpawCTF2は、明示的にwriteup禁止なのでご注意)

RiceTeaCatPanda (競技->半常設)

riceteacatpanda.wtf

こちら、上記2つに比べると入門者レベルはなくなって初級者〜向け、という印象。
が、特にCrypto系は古典暗号が多めだったり、forensics分野はステガノが多く出たりと、セキュリティ技術を競う・強さこそ正義!みたいなCTFというよりは「謎解き」な雰囲気があるCTFでした。

現在こちらの "RTCP CTF 2020" は公開期間が終了してしまったようですが、派生の "Houseplant CTF" はArchiveが公開されており、チャレンジすることができます。

謎解き・推理小説・ダイイングメッセージ・コナン・ホームズ・ポワロ・怪盗二十面相・脱出ゲーム・リアル脱出ゲーム・レイトン教授・etc... 的なジャンルが好きな人には特におすすめです🕵🏻‍♂️
あと、技術こそ正義!系のCTFに疲れたときにやると、ちょっと癒やされる…かも。

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

tech.kusuwada.com

Web

The Lord of the SQLI (常設)

los.rubiya.kr

SQL injectionに特化したwargame。
入門者には導入が若干ハードルがあるので、CpawCTFやpicoCTFでSQL injectionの基礎を身につけてから挑むのがオススメ。
現時点で全48問、とてもやりごたえがある。writeupもそこそこあるので、詰まったらwriteupを見て学習できるのも良い。
初級者 -> 中級者 にレベルアップするのにとても良いと思います。

tech.kusuwada.com

XSS Game (常設)

xss-game.appspot.com

全6問の小規模なwargame。問題の意図や周辺知識の紹介、課題をクリアした後の解説もしっかりしていて、教育目的な感じがとてもします。
どういう危険があって、どう対策しておくべき、みたいなのがしっかり説明されているので、セキュリティ職じゃなくて開発職の人にもオススメ。

Forensics

MNCTF (競技->常設)

mnctf.info

Forensics以外のジャンルも出るけども、ForensicsがメインのCTF。
競技自体は1時間半と短く、問題の難易度も易しめなので取り掛かりやすいです。
windows環境がないと環境構築やツールの入手が面倒な年もありますが、基本Linuxさえ動けば取り組める。実際に事件が起こった想定で問題が組み立てられているのも、ちょっとRPG感あって面白いです。

インシデント発生時の現状保存、image解析、マルウェア解析あたりがメインなので、こっち系の仕事をされている・したい人にはとても良さそう。

tech.kusuwada.com

tech.kusuwada.com

OSINT

OSINTは、オープン・ソース・インテリジェンス(open source intelligence)の略称ということで、SNSなど一般に公開されている情報を元にターゲットの情報を収集する手法です。
ちょっと前に、写真の女性の瞳に写った景色を解析して居場所を突き止めた、みたいな話がありましたね…。
昔から、刑事ドラマなんかでも風景写真から場所を特定したりはありましたが、個人が気軽に情報をアップできる今、何気ない写真から情報が漏れてしまう可能性には常に注意しておかないとな、というのを再認識できるジャンルです。

Cyber Detective CTF (常設)

ctf.cybersoc.wales

twitterなど、身近なSNSや GoogleMapなどの公開情報を使ったOSINTに特化したCTF。検索力とゲスパー力で結構解けるので、雰囲気を掴むのにはとても良さそう。
実際ここからサイバー犯罪捜査なんかに役立てたりするには、もう何段か踏み込む必要がありそうだけども、これも「技術こそ正義」系に疲れたときとかOSINTジャンルってどんな感じ?みたいなのが知りたいときに良さそうです。

一応常設CTFというのと、教育目的ではなさそうなこと、writeupが殆ど出ていないことから、ルールには明記されていませんでしたがあまりwriteupは書かないほうが良さそう?

Enjoy CTF!

最初からSECCONに挑み、闇雲にwriteupの殆どないCTF(常設CTFとか)に挑戦し、難易度もわからないCTFイベントに参加して時間を溶かして玉砕し、みたいな経路をたどってきたので、もっとちゃんと初級者向けのものから始めればよかったという自分の反省も込めて。
やはり教育目的のCTFや難易度低めのCTFをやると、ちゃんと地に足をつけて知識を吸収できている感じがするので、ここから始めるのはとても合理的だと思う。(いきなり難しいのに挑んで後からwriteupを見て復習、もアリだけど、理解が中途半端になりがちで、ちょっとひねった問題が出たりツールに頼ってしまったりと小手先の知識に陥りがち、という反省。)

f:id:kusuwada:20201201174526j:plain:h400