2020年を振り返ります。ちなみにこの試みは既に2回失敗しているためこの冒頭を書くのは3回目です。

学業 §

1~3月は大学院で物理の研究をする予定で進めていたのでそれに向けた関連実験のProposalを読んだり周辺領域の勉強をしたり院試の勉強をしていました。が、CTFやらをしていく内に自分の興味は物理には無く、情報科学/工学の方に分かる事を再認識させられました。

元々進学振り分けに失敗して物理学をやっていたので、講義には出ない、レポートは出さない、実験にも行かない、留年は2回もする等態度の良い学生とは言えませんでした。それでもなんとか他学科の単位を算入したりして研究室配属出来るぐらいには単位を集めて入り、そこの居心地が良かったのでもう1度物理をやってみようかという気持ちになりましたが、CTF経由で暗号理論に出会った事をきっかけにやっぱり情報科学を専攻したくなりました。

というわけで半年ほど研究をお休みし、情報系の大学院に行くという選択肢を取りました。この間は専攻したい領域のリサーチや院試対策の為に半年ほど物理の方はお休みを頂いていました。無事に合格はしましたが、ここに詳しく書いたように二度と受けたくないぐらいには精神が擦り減りました。

来年からの研究室も確定し面談も済みましたが、そこの先生からは抽象代数学の基礎がなっていないことの心配をされました。というわけでCTFのCryptoで暗号理論を勉強する際の延長で学部レベルの数学を少しずつ積み上げるように心がけています。あまり進捗は良くないですが、Crypto力の底上げにも通じそうなので頑張っていこうと思います。

以降は相変わらず物理の研究をしていたわけですが、前述の通り来年から専攻を変更する事が決まったのであまりやる気が出ませんでした。毎週の進捗報告も微妙な状況が続いていた上に関わっている実験の設備で重大な勘違いをしていたり、そもそも背景の物理に関して怪しい部分があったりと本当に卒論が書けるのかは我ながら心配です。

卒論の中間発表もなんとか終わったとは言え、卒論を書くスピードは遅いのに初稿を要求されている時期が迫ろうとしています。本当はこんなブログ書いてる暇じゃないのかもしれません。ひとまず、「来年からやりたかったことがやれる」という事を餌になんとかしようと思います。

CTF §

今年最も楽しくて最も力を入れたのがCTFでした。自身の進路にも多少の影響を与え、他の娯楽を差し置いて趣味と言える領域にまでなりました。

と言っても本腰を入れて取り組み始めたのは6月からで1~2月は登録と自明な問題を解くだけ、3月は何もしませんでした(用事があってzer0ptsCTFに出そびれたのは痛い出来事でした)。4月にCryptoHackがリリースされたので2桁順位に入るぐらいにはやってましたが、高難易度の問題を残して放置したりと長期に渡ってやっていたわけではありませんでいた。

きっかけは5月末のctf4bで、チームメイトがソロで出ていたり、Twitterで盛り上がっていたりしたのをきっかけにやる気が湧いてきたのでチーム内Discordで再起動を告知し、直後のPwn2WinCTFに出ました。このCTFでは自明なCryptoを1問通しただけで後は自明でないCryptoに苦戦し解けずに終わりましたが、他チームのWriteupを呼んでしっかりと復習しました。これをきっかけに出たCTFで解けなかった問題を復習するという習慣が生まれました。

続いてPwnの勉強を6月から始めました。と言ってもROP, FSAぐらいまでは知っていたのでHeapから始めました。結果、2週間程の勉強でredpwnCTF 2020で出たHeapの問題を解く事が出来るようになりました。以後もTSG CTF 2020でHeapを1問通し、もう1問は手法をチームメイトに提案して彼が実装して解く等、チーム内でのPwn貢献度を上げる事が出来ました。

しかしPwnに熱を入れてたのは6,7月の2ヶ月だけで8月は院試対策でCTFをお休みし、9月のInterKosen CTFやTokyoWesternsCTFをきっかけにCryptoの面白さを再確認して年末までずっとCryptoをしていました。ただ解くだけではなく、それまで触れてなかった格子や楕円曲線の知識を仕入れたりCryptoHackを再開してハッシュ関数等の周辺技術についても勉強したりしていました。

このおかげで解ける幅は大きく広がった気がします。去年はCTFに出て暇だったら復習して終わり、みたいな取り組み方でしたが、今年は復習をほぼ必ずした上で自発的に関連問題を探しに行ったり、難しい問題のWriteupを探して読んで、自分に足りない知識を明らかにして埋めるといった形で取り組んでいました。

その後、SECCON以降は卒論に力を入れる為にCTFは休止宣言したのですが、チームメイトがやっているのを見てやる気が湧いたので2週間で反故にしました。11月の途中から世界の上位チームが主催するCTFが連続していたのでそれに毎週出て修行の如く出ていましたが、途中から解けない事が多すぎて発狂しそうになってました。Balsn CTFとHITCON CTFは文字通り1問も解けずに滅気そうになりましたが、hxp CTFまでは中間発表があった週を除いて全部出場し、チームメイトの活躍もあっていずれも上位10%には入る事が出来ました(おそらく)。

こう見ると「今年」というよりは「2020年後半」の事情が多いですが年始からContrail CTFに出たりしていたのでCTFに始まり、CTFに終わる1年でした。結構CTF密度が濃かった1年でしたが、まだまだモチベーションは尽きていないので来年はもっと密度を高めていきたいです。

個人的The CTF/Flag Awards §

せっかくなので今年出たCTFや問題で適当に部門を作って紹介しようと思います。本当はもっとレベルが高くなってからやった方が良いのかもしれませんが、思い出深いCTFが結構あるのでなんとしても紹介したいと思い企画を組みました。

Best for Under Intermediate §

初心者~中級者を対象としたCTF部門になります。

InterKosenCTF 2020です。これは去年も同じ事を言っていた(該当記事は削除済)ので2年連続受賞です。問題のクオリティに加えて終了後に公式Writeupやリポジトリを公開している点が素晴らしかったです。労力はかなり必要ですが、これがスタンダードになって欲しいです。

ちなみに次点はHarekaze mini CTFです。こちらも作問勢が個々にWriteupを上げていたりリポジトリを上げているため復習がしやすくなっています。

Best for All Range §

幅広い難易度層を対象としたCTF部門になります。

redpwnCTF 2020です。まず問題数が異常で、各分野10問程度あります。相当簡単な問題から上級者でも唸るような問題(有名チームが参加し、期間も5日間あるにも関わらず数Solvesの問題がある)まで揃っており、常設をやるよりこのCTFの問題をWriteup片手に埋めていくだけでも力が付きそうです。もちろんリポジトリもあります。

Best Pwn Challenge §

私が解けたり解法を理解出来た問題に限りますがPwnの問題部門になります。

ASIS CTF 2020からBaby noteです。CTF中ではHeap中を指すアドレスの0x55をサイズヘッダに利用して強引にチャンクを生成するというHeapっぽいアプローチでチームメイトと解いていましたが、実はStack pivotを上手く使ってHeap関係なく解ける問題です。元々Stack pivotが好きというのはありますが、これは意外性とその綺麗さからかなり好きな問題です。

Best Crypto Challenge §

私が解けたり解法を理解出来た問題に限りますがCryptoの問題部門になります。

TokyoWesterns CTF 6th 2020からThe Melancholy of Aliceです。位数が部分的に素因数分解出来て、1バイトずつ暗号化しているならPohlig-Hellmanアルゴリズムを部分的に使うと対応する1バイトの平文を求められるという解法が気に入りました。公開用の復習Writeupを書こうと思ってまだ書いていませんがいつかは書こうと思っています。DLP問題特集とか組めたらそこでやるかもしれません。

実はこの選出は結構迷ったので次点も掲載しておきます。

pbctf 2020からLeaKです。楕円曲線DSAのBiased Nonce Attackと呼ばれる攻撃を改良して解く問題で、最終的にHidden Number Problemへと帰着させています。格子の入門段階を終えたレベルで取り組むと凄く面白いと思います(私が入門を終えたかはさえておき)。

本ブログでもWriteupを掲載しています。

Most Impressive Challenge §

特に印象に残った問題部門になります。

TSG CTF 2020よりDetectiveです。Pwnですがシェルを取るという事を目的にしない問題で、フラグの一部がリークされる条件がどれであるかをHeapの仕組みを使って逆算するという楽しさがありました。easyタグ付いている問題ですが、これが解けた時は本当に嬉しかったです。

Most Difficult CTF §

HITCON CTF 2020です。私は(Welcomeを除いて)1問も解けなかった上に、少しでもフラグに近づく事が出来ないという醜態を晒しました。チームメイトは何問か解いていましたが、やっぱり難しかったと言っていました。来年こそは1問でも解けるようになりたいです。

(言い訳をするとCryptoのSolvesが1桁の問題しかありませんでした。これで来年の目標が1桁Solvesを安定して通せるようになる、になります。)

CTF of the Year §

TokyoWesterns CTF 6th 2020です。InterKosenCTF 2020同様去年も同じことを言っていました。問題のクオリティはもちろん事、豊富な難易度幅、参加チームのレベルの高さ等から非常に楽しめるCTFでした。なぞなぞっぽさがあったMisc問題ですが点数もそこまで高くなく、ちょっとしたJokeと考えると良いCooldownだったと思います(チームメイトに飛行機の検索結果だけ投げて私は解けませんでしたが)。

Best Foreign CTF §

CTF of the Yearが国内だったので海外CTFで最も良かったCTFを紹介します。

pbctf 2020です。主にCryptoの感想になりますが、古典暗号なのにGuessingが絡まない問題が用意されていたり、最近のトレンドである格子を上手く使うような問題が用意されていて面白かったです(参考論文をフラグに入れていたのも特に面白かったです)。各難易度に1つは易しい問題も用意されていたのでレベルが高いCTFでしたが冷えることは回避出来ました。特にPwnは2020年で1番プレイヤーに配慮されている問題だと思うので一見の価値ありです。

リポジトリはこちら

以上になります。国内に偏ってしまった上に紹介しきれなかったCTFや問題もた~~~~~~~~~~~~~~くさんありますが、それだけ今年はCTFに出た証拠として勝手に自分で満足しました。皆さんも今年の良かったCTFや問題を是非共有してください。

音楽 §

COVID-19で引き籠もり生活になったこともあり、箱に遊びに行ったりすることは無くなりましたが、その分パーティがTwitchで放送されたりしたので良かった面も大きかったです。また、普段も家にずっと居たのでSpotifyにはかなりお世話になりました。これまで好きだったジャンルに加えてHi-TechやGabberdiscoなどの新ジャンルも開拓出来たのも大きかったです。皮肉にもCOVID-19という災禍のせいで自身が音楽が好きだった事を実感させられました。

ところで私は数年前までDTMをしていたのですがここ最近は全く触れていませんでした。しかし、今年これだけ音楽に触れたことでまた作曲したい気持ちが湧いてきたので来年何かの形で再開したいです。相変わらずマニアックなジャンルで実験的な作品を作っている気はしますがもし耳にした際は感想等くれるとありがたいです。

人間関係 §

人間関係に関しては中学同期の付き合いをばっさり切り落としたり、CTFや情報が関係ないフォロワーを失ったりと良くないことはありましたが、それ以上にCTFのおかげで知り合えた人が沢山居ました。来年もこのような形で情報関連のフォロワーや知り合いを増えたら嬉しいです。

特筆すべき事としてCTFに由来して海外のフォロワーが増えました。Writeupを継続的に書いているのが効いたのだと思います。そうなるとJapaneseでjunkでshitなTweetをしている身としては本当に申し訳ない気持ちです。かといって英語用のアカウントを作る程発信は出来ませんしせいぜいWriteupを英語で書くぐらいでしょうか?来年は何かしら海外勢に向けた取り組みをしたいです。

人間関係の節なのに、CTFの話ばかりになりましたがCTF外でも相変わらず飲み会に誘ってくれたりと付き合いを続けてくれる界隈が幾つかあるのでそれらは大切にしていきたいです。ただ、来年からは今住んでいる東京を離れてあまり人が居ない地域へ移り、交流が薄くなることが懸念されます。たまには東京に遊びに行くのでその時はお付き合いください。

その他 §

去年夏までの大きな趣味だったPCゲームは夏にエロゲをちょっとやったのとこの年末にSubnauticaをちょっとやった以外は微妙でした。CTFにやる気が大分持ってかれている為、ただの娯楽に過ぎないコンテンツを享受する事にやや抵抗があるからだと思っています。

去年はバー通いをしていたのですが、今年は酒自体を全然飲みませんでした。飲み会に顔出すぐらいはしましたが、終わる度に頭痛と吐き気に苦しんだり、社会的な一線を超える行為に走ったりしたので宅飲みは自重していました(単純にお金が無いっていうのも作用してる気がする)。そして最近は処方された薬のせいで医学的にお酒が飲めません。

来年の目標 §

0. 卒業する §

まずは何よりこれです。目標というより義務です。大苦戦している卒業論文をなんとか書き上げないと何も始まりません。

1. 大学院生活を無駄にしない §

第1目標はこれですね。せっかく専攻を変更出来るようになったので講義にはしっかり出て好成績を目指してレポートや課題に取り組み、研究もしっかり進めたいと思います。学部の活動以上に進路にも関わってくるので大切にしたいところです。

2. CTFのチーム貢献度を高める §

2番目はこれです。チームメイト達は急成長して貢献度を高めている中、私は11月以降の高難易度CTFラッシュであまり貢献できない状況が続いていました。それでも復習や知識追加は相変わらず続けているのでいつかこれが実を結ぶ時が来ることを願っています。

後はPwnを再開したいです。まだチームメイトの解法を聞いて理解出来る程度には知識は残っていますが、きっと手を動かして解く力は残っていないのでそれを取り戻すところからやっていきたいです。加えてKernel ExploitやWindows Exploitのような新ジャンルにも挑戦する事を上位目標として設定しておきます。

3. 心身の健康を保つ §

今年は主に精神の健康が酷かったです。現在もメンタルクリニックにかかっており、卒論を乗り切ろうと藻掻いているところです。こういう時はCTFをすると割とよくなるんですが、それをするだけの気力が残っていなかったり、そもそもCTFをしているような状況ではないというのがあり結構悩みどころです。

よくわかっている反省点として、精神が濁るとSNSで露悪的になり、それで満足はするものの心は濁ったままという事があるのでこれを治すのは必須事項です。

肉体の方は引き籠もり生活で結構太った気がするので運動をして肉を落としたいです。筋肉は別に要らないので単に肉を落とすだけなら走る以外に選択肢が思いつかず、既に挫折が見えていますが、なんとか工夫して続けていきたいところです。

4. 音楽活動を再開する §

音楽の節で書いた通りです。大学院での講義/研究やCTFと、時間があるかはわかりませんが、文化的パラメータを割り振るという某ターン制ストラテジーゲーム的思考を取り入れてちょっとでも作っていこうと思います。情報系の知り合いが増えた2020年でしたが、2021年は再び音楽関連の知り合いも増やせたら嬉しいです。

結び §

これまでのうっすい人生に比べると今年はCTFのおかげで色々な方面で充実出来た1年でした。来年も大学院生活とCTFを中心に据えつつ、今回挙げた事項に取り組みながら充実した1年にしたいです。

ここまで読んで頂きありがとうございました。それでは良いお年をお過ごしください。