🏟

SECCON CTF 2021に参加した

2021/12/12に公開

友達に誘われたことがきっかけで、セキュリティコンテストの SECCON2021 に 2021/12/11 14:00~2021/12/12 14:00 まで 私を含めて 3 人のグループで参加しました。

準備

週に一度集まって CTF[1] の勉強をしていました。
勉強会では前半 1 時間は詳解セキュリティコンテストを読み、後半では、練習問題としてksnctfの問題を解いていました。
ksnctf の問題を解くときは 2 時間くらい考えてわからなければ答えを見るということを続けていました。集まったときくらいでしか勉強をしておらず、自力で解けた問題というのはなかったです 😓

あまりにも解けなかったので、初心者向けの問題がないか調べていたときにおすすめされていたCpawCTFも解きました。

応募

2021 年 10 月時点で大会の日付だけはSECCON のスケジュールで発表されていましたが、詳細なことは全然発表されていませんでした。

1 ヶ月前くらいにやっと、順位に応じた賞金が発表されました。しかし、1 ヶ月前の時点で賞金くらいしか発表されておらず、1 週間前にルールの概要が発表されました。
wikipediaによるとルールが他にもあるようですが、今回発表されたルールでは今まで練習してきた形式と同じ形式のようだったので、一安心しました。

そして、2 日前にやっと応募ができる状態になったので、そのときにチーム名をどうするか話し合って決めました。興味があって次回、初めて参加されるかたはチーム名を事前に決めておいたほうがいいと思います 😊

ギリギリまで発表されないため、初心者は応募できることすら気づかずに挫折しそうになるので、応募しやすくなるような設計にしてほしいと思いました。

ルール概要

公式サイトで下記の通り発表されました。

期間: 2021 年 12 月 11 日(土)14:00 JST から 2021 年 12 月 12 日(日)14:00 JST までの 24 時間
競技形式:Jeopardy 形式
賞金: 総額 100 万円(詳細は別途告知ページ及びスコアサーバーにて案内します)

Jeopadry とは、フラグが隠されているので脆弱性をついて答えを見つける形式です。
賞金は 1 位が 40 万円,2 位が 30 万円,3 位が 20 万円,U-25 が 10 万円でした。
点数は固定で決まっておらず解けるグループが多いと小さくなり、逆に解けるグループが少ないと点数が大きくなるように設定されています。

大会当日

24 時間という制限時間があり、その間は食事をしたり寝たり自由にできます。
本気で問題に取り組む場合は、寝ている間に重たい処理をさせるなど工夫がいると思います。
大会中は上位 20 位まで他のチームの点数の推移が確認 👀 できます。

1 日目

14:00 にサイトにアクセスすると Discord のサーバに誘導されたのでそちらへ join しました。
しかし、14:00 の時点でアクセスが集中したためか問題が載ってあるサイトが落ちてしまい開始数分は途方に暮れました。
当日は Discord で会話したり質問できたりするため、サイトが落ちてしまっても他の人も同じような状況であることが確認できてよかったです。大会は日本人以外も参加されていて、日本語と英語が飛び交っていました。(問題文は英語です。)

最初の問題は解き方の雰囲気をつかむための問題で文章が読めれば誰でも解ける問題でした。
それ以外の問題を見てみると全く解き方がわからないか解き方はわかるが普通に解いていると計算時間が間に合わないかのどちらかでした。ちなみに解けそうだと思った問題は 70MB くらいのテキストファイルに対して処理をする問題で、処理が全然終わりませんでした。
途中、わからなさすぎて息抜きにマンガを読んだりしてました。

そして 0:30 ごろ就寝しました 🛌

2 日目

当日は 9:30 くらいに起床し 10 時ごろに解き始めました。
引き続き、問題に取り組むも全然解けませんでした。グループ内の人が苦戦していた問題に対して別のアプローチで解いてみましたが途中で処理が間違っていたのか結局、答えが得られませんでした。
13:30 ごろになると諦めモードになり、グループ内で遊んでいました。
そして、14:00 になると Discord で終了がアナウンスされ、順位発表がされていました。

結果

順位:295 位/506 位
点数:53 点
でした。
同じ点数の場合は早く解いた方が上位になるようで 1 問でも解けていたら上位 38%になれるレベルの難易度です。
ちなみに 1 位のグループは海外のかたで 1 人で参加しており、序盤にトップになったあとその順位をキープしていました。

反省

週に 1 回集まった程度で勉強できていなかったので、そもそも勉強時間が足りていませんでした。ksnctf の問題をノーヒントで解けるレベルにならないと本番では太刀打ちできないという印象でした。
グループで参加していたので、何か勉強を自然とするような習慣を作るべきでした。

公式サイト

SECCON2021
公式概要
大会当日の運営サイト
Twitter

脚注
  1. Capture The Flag の略です。脆弱性をついてフラグを見つけることが目的です。 ↩︎

GitHubで編集を提案

Discussion