Edited at
NCCDay 18

picoCTF2018をやってみた所感


はじめに

この記事は NCC Advent Calendar 2018 18日目の記事です。

picoCTF2018をコンペが終わってからCTF初心者が個人的にやってみた感想などを書いています。

コンペには参加していません。

問題解説ではありません。

ただの個人的意見です。


そもそものお話


CTFとは


Capture The Flag(キャプチャー・ザ・フラッグ)の略称である。

コンピュータセキュリティの分野におけるキャプチャー・ザ・フラッグ(CTF)は、コンピュータセキュリティ技術の競技である。CTFは通常、参加者に対しコンピュータを守る経験に加え、現実の世界で発見されたサイバー攻撃への対処を学ぶ教育手法として企画されている。「ハッカーコンテスト」「ハッキング大会」「ハッキング技術コンテスト」「ハッカー大会」などとも訳される。(Wikipedia)


つまりは、コンピュータセキュリティ技術やハッキング技術を競う大会です。

詳しいことはこちらのうさぎ小屋さんの記事をおすすめします。


picoCTFとは


picoCTF is a free computer security game targeted at middle and high school students. The game consists of a series of challenges centered around a unique storyline where participants must reverse engineer, break, hack, decrypt, or do whatever it takes to solve the challenge. The challenges are all set up with the intent of being hacked, making it an excellent, legal way to get hands-on experience.(picoCTF)


Google先生によると、「picoCTFは無料の中高生向けコンピュータセキュリティゲームです。このゲームは、参加者がリバースエンジニアリング、ブレイク、ハッキング、解読、またはチャレンジを解決するために必要な処理を行う必要がある独自のストーリーラインを中心とした一連の課題から構成されています。挑戦はすべてハッキングの目的で設定されているため、実践的な体験を得るための優れた法的手段です」だそうです。

無料の、比較的初心者向けなCTFという理解でいいと思います。(自分はそうしています)


ルール

picoCTFでは、問題からpicoCTF{XXXX}という形のflagと呼ばれる文字列を見つけて提出することで、その問題ごとに設定された点数が貰え、チームの合計点数によって順位を争います。

問題には6種類あり、


  • Forensics

  • General Skills

  • Reversing

  • Cryptograph

  • Web Exploitation

  • Binary Exploitation

となっています。

picoCTF2018にはここから参加できます。


感想など


始めたきっかけ

この記事を書くきっかけとなったNCCというサークルの夏合宿において、「octf ~onsen-2018-summer-ctf~」というCTFが開催されました。

問題は普通のCTFとは異なり、作問者によると「セキュリティに関する知識を試すこと」よりも、「協力して同じ問題を解くことで親睦を深める」ことを目標としています。らしいです。

この催しでは先輩方が問題を作成してくださり、参加者のほとんどが初心者であったにも関わらず、楽しく解くことができました。(octfについて詳しいことはこちら)

これをきっかけに「CTF楽しい」と思い、その後、先輩方を通じてpicoCTF2018の存在を知りました。


やってみた

octfをやっていたおかげで(内容的には本当のCTFとは異なるけど)解き方というかちょっとした基礎知識くらいはわかっていたので、入りはそこまで難しくはなかったです。

ちゃんと各項目ごとにwarmup問題が用意されており、それぞれの問題にはヒントも用意されているので、初心者でもかなり楽しく、こんな感じじゃね?みたいに手探りしながら楽しめました。


自分なりの勉強法

そうは言っても知識がないから解法を見つけるのがなかなか難しい。

ここではそんな時、わからないなりにどうやって勉強しているかを書きます。

まずは自分で解いてみます。

じっくり考えてみます。

わからなかったらヒントを見ます。

ヒントには使うコマンドのリファレンスのリンクが貼られていることもあります(ただし英語)。

それを見ても見当もつかない時は、他の人の回答を見て学びます。

特に大会型CTFでは開催期間終了後にwriteupという解答集みたいな記事を書いている人がいるので、そういった記事を見ると、その人がどの問題をどうやって解いたかが割としっかり書かれています。

picoCTF writeupとかで検索すればたくさんの人がwriteupを書いているので、参考にしながら問題に取り組みます。

この手順を繰り返していきます。

このやり方だと新しいコマンドも手を動かしながら学べるので楽しいです!

ただしwriteupによっては答えが書かれていたり、解答が省略されていたり、全ての問題は網羅されていなかったりします。

人によって解き方も違うので色んな人の記事を読むといいです。


まとめ

picoCTFはそもそも初心者向けのCTFです。

なので、初めてやるにはもってこいの教材だと思います。

picoでなくてもCTFは楽しいので一度やってみるといいかもです。

解けると賢くなった気がして最高です!

ここまで読んでいただきありがとうございました!