LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック
ラックピープル | 

若手向け国際CTF大会「ICC 2022」に出場し2位に!奮闘の様子をレポート

こんにちは。デジタルペンテスト部の井手です。

世界各地のチームがアテネに集まり、サイバーセキュリティの技術を競うCTF大会、「International Cybersecurity Challenge 2022(ICC 2022)」が、2022年6月14日(火)から6月17日(金)にかけて開催されました。

私もアジアチームのメンバーのひとりとしてICC 2022に参加し、チームとしては2位という結果を収めることができました。本記事ではオンサイトで開催されたICCの概要や、熱戦が続いた競技についてお伝えします。

ICCはどんな大会?

ICC 2022は、欧州ネットワーク・情報セキュリティ庁(ENISA)が主催で、世界の各地から集まったチームがCTFで競い合う大会で26歳までの若年層が参加対象です。

競技には、地域ごとに編成されたアジア、アフリカ、カナダ、ヨーロッパ、ラテンアメリカ、オセアニア、アメリカの7チームが参加しました。各チームそれぞれの方法で最大15人のメンバーを選出し、ICC 2022に向けて準備を重ねてきました。

会場のStavros Niarchos Foundation Cultural Center
会場はアテネの海に面しています
アテネの海に面した会場「Stavros Niarchos Foundation Cultural Center」

アジアチームは、2021年9月に開催された「Asian Cyber Security Challenge 2021(ACSC 2021)」という、オンラインのCTFの大会を通じてメンバーが選抜されました。日本、韓国、ベトナムといったアジアの8か国にそれぞれ1~3つの枠が用意され、各国ごとのランキングからメンバーが決定されます。

日本からのICC 2022への参加者については、セキュリティ・キャンプ協議会の支援によって、交通費、宿泊費、食費といった様々な費用を自身では負担する必要がありませんでした。本当に有難く、感謝しています。

ACSC 2021 - Asian Cyber Security Challenge 2021

競技の様子

1日目:Jeopardy

1日目は、「Jeopardy」とよばれる、CTFといえばこれというような一般的なルールで競技が実施されました。「Jeopardy」とは、運営が複数の問題を用意し、各チームはそれらを解くことで得点できます。解いているチームが多いほど得点できる点数は減り、反対に解いているチームが少ないほど得点できる点数が増えるというルール(いわゆる、動的配点もしくはダイナミックスコアリング形式)でした。

Webセキュリティ、暗号、リバースエンジニアリング、バイナリエクスプロイテーション、フォレンジックといった分野から、およそ30問が出題されました。このほかにも、オンラインでは出すことが難しい、各チームに物理的に配布されたデバイスを対象としたハードウェアや、閉じ込められた部屋から設置されているギミックを解いて抜け出す脱出ゲームといったユニークな問題もありました。

私はWebの問題を2つ、フォレンジックの問題を1つ解くことができました。挑んだ問題の詳細については、また別の機会でお話ししたいと思います。Webの問題には、9時間という限られた時間では解けるか解けないか、という難易度が高いものもいくつか見られました。7チーム中3チームしか解けなかったWebの問題が解けたのは嬉しかったものの、あともう少しで解けそうだったけれども解ききれなかった問題があったのは悔しかったです。

日本からのメンバーのひとりであった、株式会社サイバーディフェンス研究所の前田さんも、参加記を同社のブログに投稿されています。前田さんが取り組まれた問題の解説も含まれています。ぜひ参照ください。

国際地域対抗CTFのICC2022に参加しました - DARK MATTER

2日目:Attack & Defense

2日目は、1日目とはまったく異なる「Attack & Defense(A&D)」とよばれるルールで競技が実施されました。A&Dは、各チームにクローズドなネットワークに設置されたマシンが用意されます。その中で動いている複数のWebサービスなどに存在している脆弱性を発見し、他チームに対して攻撃をどれだけ成功させ、また他チームからの攻撃をどれだけ防げるかによって得点が決まるというルールでした。

「Webサービスなど」とひとまとめにしましたが、中にはソースコードの与えられていない、コンパイルされた実行ファイルのみが与えられているサービスもありました。また、Webサービスであっても、暗号に関する知識を必要とするものもありました。私が主に確認していた「CyberUni」というサービスがまさにそのひとつでしたが、暗号を得意分野とするメンバーと連携しつつ、他チームへの攻撃やサービスへのパッチを進めていました。

競技中盤でアジアチームがヨーロッパチームを抜いた瞬間
競技中盤でアジアチームがヨーロッパチームを抜いた瞬間

もしかするとここまで読まれて、マシンをシャットダウンさせてしまえば、他チームからの攻撃を完全に防げるのではないかと思いついた方がいらっしゃるかもしれません。実は、そういった試みをためらわせるようサービスがダウンしていたり、正しい挙動をしていなかったりすると減点されていく仕組み(SLA)も用意されていました。脆弱性を修正しようとして、誤ってサービスの挙動が本来のものから変わってしまった場合にも減点されてしまうというわけです。

このように正々堂々と競えるような仕組みが作り上げられていたわけですが、User-Agentのような微妙な特徴からSLAのチェックか他チームからのアクセスかを判断して、後者のパケットをブロックしようとしたチームもありました。そうしたフィルターへのアジアチーム内での注意喚起を見て思わず笑ってしまいましたが、静観はできません。パケットのブロックによる攻撃の失敗が積み重なれば、それだけ得られるはずだった得点を失ってしまうことになります。フィルターがどんな特徴をチェックしているか見定め、フィルターをすり抜けて攻撃できるようにする対応を強いられました。

今回各チームが挑んだサービスのソースコードや、それらに存在する脆弱性を突く攻撃コードは、すでにGitHub上で公開されています。暗号化に使われる共通鍵がハードコードされているというようなひと目でわかるものから、実行ファイルをリバースエンジニアリングすることでようやくわかるものまで、実にバラエティに富んだ脆弱性が盛り込まれていることがよくわかります。ご興味がある方は、ぜひこちらを参照ください。

GitHub - CybersecNatLab/ICC2022-AD-CTF: Attack/Defense services for the 1st International Cybersecurity Challenge 2022 - Athens

ICC 2022の最終結果

ICC 2022の最終日に、1日目と2日目それぞれの競技結果と、2日間の結果を総合した順位を発表する表彰式が実施されました。まずルールごとの順位ですが、私たちアジアチームは1日目のJeopardyでは2位、2日目のA&Dでは1位に!これらを総合した順位では、アジアチームは2位となりました。

アジアチームのメンバーに配られた総合2位の盾
アジアチームのメンバーに配られた総合2位の盾

おわりに

ルールやA&Dで出題されたサービスを見ても、フェアな競技になるよう細部にわたって配慮されていたように感じます。そうした配慮もあって、チーム全体で全力を尽くして2位という結果に悔しくもありつつ、清々しい気持ちもあります。私も今後CTFの運営に携わる機会があると思いますが、フェアな競技という観点を中心に、問題の作成や競技の運営ができればと思います。

実は、ICC 2022はもともと2021年末に開催される予定だったのですが、コロナ禍の影響から、2022年の開催に日程が変更されました。大会が中止されず、またオンラインでなくアテネでのオンサイト開催となったことを嬉しく思います。日本人同士であればSECCONのような機会で直接会うこともあるかもしれませんが、国外の方と会うのはまだ難しい状況です。そんな中、これまでインターネット上だけで交流のあった海外の友人と会うことができたのは、大変楽しい経験でした。

来年もENISAが主催というわけではなく、持ち回りか今度はアメリカによる開催となります。また、今回が初の開催だったこともありますし、次回は競技の形式やチームの編成方法などが変わるかもしれません。どのような変更があったとしても、次回のICCにも参加できるよう励んでいきたいと思います。

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • 2022年『即!西本』特別技能CTFチャレンジで腕試し!セキュリティに興味がある、若き才能の挑戦をお待ちします

  • オンライン「KOSENセキュリティ・コンテスト2020」の熱い戦い~全国の高専生の挑戦をラックがサポート~

  • 若手社員の"面白そう"から始まった社内イベント「LACCON」がひそかに盛り上るそのワケ