はじめに
2024/02/18 ~ 2024/02/24 に開催された Global Cybersecurity Camp in Thailand に参加してきました.
本記事では,私がGCC期間中に学び経験したこと,それらから感じたことを書きます.
GCCでの講義には外部公開してはいけない情報が含まれていることから私が感じたことを主として記載します.内容は,当時の日記を基に書き進めています.
「GCCとは何ぞや?」「具体的にどんなことするの?」「GCCへの参加を検討している」という方々に対して,GCCというグローバルなイベントに興味を持っていただける内容が多く含まれていると思いますので,最後までご覧ください.
GCC とは
GCC の概要
GCCとは,GNUのコンパイラ群...
GCCとは,Global Cybersecurity Campの略で,セキュリティキャンプ協議会によると以下の目的で開催されるセキュリティのグローバルなトレーニングキャンプです.
「国籍・人種を超えた専門知識のあるグローバル人材の育成」と「国境を超えた友情とゆるやかなコミュニティの形成」を目的として、セキュリティに興味を持つ、異なる国の若者がともに学び、友好を深める場としてトレーニングキャンプの場を提供します。
https://www.security-camp.or.jp/event/gcc_Thailand2024.html
2018年から毎年,参加国のいずれかで開催され,各国の参加者と共に約1週間かけてサイバーセキュリティの講義やグループワークを行います.
スケジュール
GCC全体としてのスケジュールは以下に示す通りです.
Japanチームは最初のGCCイベントがある前日(2/17)に出国しました.Japanチームのスケジュールは以下に示す通りです.
日付 | 予定 |
出国(2/17・2/18) | 2/17 22:00 羽田空港に集合 2/18 00:20 羽田空港発 2/18 05:25(UTC+7) スワンナプーム空港着 2/18 09:00(UTC+7) The sez hotel着 |
GCC期間(2/18~2/24) | #UTC+7 6:00~9:00 朝食 9:00 ~ 18:00 講義 19:00 ~ 22:00 グループワーク(開催や活動時間はチームによる) 22:00 ~ Pool Party |
帰国(2/24・2/25) | 2/24 08:00(UTC+7) スワンナプーム空港に向けて移動 2/24 13:00 ~ 20:00(UTC+7) 観光 2/24 23:15(UTC+7) スワンナプーム空港発 2/25 07:00 羽田空港着 |
参加国・参加組織
GCC 2024では計8ヵ国の学生が参加しました(今回オーストラリアは不参加でした).
なんと,インドネシアとインドはGCCに初参加とのことでした!!
- Japan:Security Camp Committee
- South Korea: KITRI BoB(BEST of the BEST) Program
- Singapore: Division Zero (Div0)
- Taiwan: Advanced Information Security Summer School
- Malaysia: SherpaSec
- Vietnam: VNSEC
- Indonesia: InfraDigital Foundation
- India: Amrita Vishwa Vidyapeetham
応募きっかけ
昨年開催されたCODE BLUEの学生スタッフとして参加した際に,スタッフのLenaさんとお話しする機会がありその中の会話でイベントの存在を知りました.
私は,セキュリティ・キャンプ全国大会修了生でないため,参加することに憂いを感じていましたが,GCCへの参加は修了生でなくとも応募資格があり,GCC参加者向けの募集要項を確認し,応募資格や条件を満たしていることを確認したうえでダメもとで応募することを決めました.
GCCへの参加には選考があり,応募課題がありました.自分自身についての設問やGCCでの講義に関連する設問がいくつか出題されました.
セキュリティ・キャンプ全国大会参加者の界隈で噂に聞く「応募課題晒し」というものが許可されれば後ほど私が提出した課題を公開しようと思います.
GCC 期間
GCC期間中には多くのことを学び経験しました.まとめるには情報が膨大であるため,分けて書き進めます.講義外での日常的な部分も含みます.
Day 0
GCC参加のための移動日です.前日の夜に日本を出発した便であるため,起床と同時にタイに到着しました.
スワンナプーム空港には地下鉄に似た移動手段があり,その電車に乗って手荷物受取所まで移動します.電車内から見える光景がまるでエヴァンゲリオンの格納庫みたいでした.
空港で預けた荷物を回収し,GCCの開催場所となるホテルまでバスを利用して移動します.
ホテル近くの道路がトライアスロンの大会で利用されていたことから,ホテルまであと1キロという場所で降り,歩いてホテルまで移動しました.飛行機でずっと座っていたこともあっていい運動になりました.
ホテルに到着するとIce Breaking Partyまで自由時間になりました.
各々ホテル周辺の探索やビーチ,ランチを食べるなど自由に過ごしいていました.
私は,数人のメンバーとビーチを歩きランチを食べて,ホテルのプールを楽しむなどしていました.
一緒に散策したメンバーによると,ビーチは湘南に似ているとのことでした.
タイの料理は辛いか酸っぱいイメージをもっていましたが,予想通り,この料理は辛かったです(それでも辛さ控え目).
料理名が分からず,Google翻訳を利用して料理の注文をしましたが,タイの学生によるとこれはガパオライスであったことが分かりました.
料理にはスープがつき,ドリンクのコーラと合わせて日本円で300円でした!
ホテルにあるプールはとてもきれいで,自由時間だけで2回泳ぎに行きました.1回目はJapanチームのメンバーと泳ぎ,日光浴しながらさまざまな話をしました.2回目はルームメンバーのKai Xuanに誘われ,SingaporeチームのRiverとYitianらと一緒に泳ぎました.
Ice Breaking Party
各国の学生とスタッフ,スポンサーがメインホールに集まり盛大に夕食会が開かれました.この時点で多くの学生と交流することができ,おいしい食事と共に国境を越えた友人をつくることができた.
夕食会の後半になると,各国ごとに自己紹介が始まりました.私の名前があるアニメキャラクターと同じであったことから,ここでの自己紹介を機に多くの学生が名前を覚えてくれ,話しかけに来てくれるきっかけにもなりました(Thanks guys!).
Day 1
GCCとしてのメインイベントはこの日から始まりました.この日は午前にオープニング&グループワークについての説明がなされ,セキュリティ倫理についての講義も行われました.午後には,ADに対する攻撃技術についての講義が行われました.
Opening & Groupwork
オープニングではGCCのコンセプトや学生のアシスタントの紹介が行われた.アシスタントの紹介では,各グループチームごとに担当者が自己紹介する形になっていたが,私たちチームをサポートするアシスタントがその日欠席していたようであり,メンバー間でかなり話題となっていた.
グループワークでは,大きく4つの課題が提示された.それぞれのチームで課題を選択するのかと思いきや,課題がチームごとに決められており,私たちのチームではCTFの作問と他チームのCTFを解くという課題が与えられた.
他のトピックと比較し簡単な課題だと思っていた私は後に苦しむことになる....
Ethics
サイバーセキュリティを学ぶ上で必要となるセキュリティ倫理について,グループワークを通じて倫理がもつジレンマについて学びました.
日本で学ぶセキュリティ倫理は「このようなリスクがあるから,こういった行動は避けた方が良い」など一方的に抑制を与える内容が多い(個人的な感想です)のに対し,この講義では,グループワークを通じてセキュリティ倫理を保つ難しさを考えさせられる内容でした.
講義で扱った内容は大学で習うものと同じようなものですが,自分以外のメンバーが持つ倫理観を知り,その根拠となる考えを知ることができたのはとても興味深かったです.
Deep Dive into Active Directory(AD) Attack Techniquesby Mars Cheng[TW]
ADに対する攻撃技術の講義は,本イベントの講義の中でも1,2位を争うほど興味を持っていたトピックです.私は,ADについての基礎的な知識(単語レベル)はあったものの,ADに対する攻撃やセキュリティを確保する上での運用方法をほぼ知りませんでした.
講義ではハンズオンが多く含まれており,実に様々なテクニックを試すことができました.自分の環境を構築する段階で,躓く部分が多くありましたがチームメンバーの助言もあり何とか進めることができました.
とはいえ,慣れない英語での講義&環境構築での躓きもありラボを全てコンプリートしたのは日本に戻って振り返った時でした(ToT)/~~~
Day1-Groupwork
この日のグループワークは,CTFを開催する上で出題するカテゴリーや問題数について話し合いました.私は,ネットワークのチャレンジを出題することにし,問題のコンセプトと実装を行いました.
また,CTFを開催する上で必要となるプラットフォームについて話し合いがあり,チームメンバーのBauがサーバの用意とCTFdの構築まで行ってくれました!
グループワーク終了後,とある部屋の一室でパーティがあるとのうわさを聞き,12時頃までパーティでエンジョイしていました.
Day 2
GCC 2日目は「Handling Threat Intelligence」と「Fuzzing in the kernel world」の2講義がメインとなりました.この日は朝早くおきれたため,朝食会場で一緒の席だったOchiとEarthと朝の散歩に出かけました.
Handling Threat Intelligence: Techniques of consuming and creating threat intelligence by Tomohisa Ishikawa[JP]
サイバー脅威インテリジェンス(CTI:Cyber Threat Intelligence)とは何か?から始まり,マルウェア分析やフォレンジックなどの脅威分析技術を利用してどのようにCTIを作成し,防御に活用していくのかを学びます.
講義では,座学の他にラボが用意されており,IOCを抽出してYARAルールを作成したり,取得したログを解析して攻撃者を特定するエクササイズに取り組みました.
講義で学んだ用語の多くは耳にしたことがあっても,用語そのものと本質を理解しているわけではなく,この講義を通じて,それぞれの用語やCTIがどのようなものであるのか学ぶことができたと思います.
Fuzzing in the kernel world by Yi-Han Wang[TW]
この講義では,ファジングの仕組みやカーネル,仮想化について学びました.また,講師が用意したクラウド上のサーバで,簡単なCのプログラムを書き,作成したバイナリをファジングしました.
この講義での私は,前半部分ですでに取り残されており,この講義が私にとって一番の障壁(難しい内容)となりました.カーネルをビルドしている間にTakeuchiくんと一緒に復習していましたが,悔しさだけが残りました・・・
この講義での悔しさを胸に,OSやCPUなどの低レイヤーを基礎から学ぶことを誓います.
(おすすめの勉強方法などありましたら教えてくださいm(__)m)
Day2-Groupwork
この日のグループワークは,前日に引き続きプログラムの実装や作成したCTFをチームメンバーで相互レビューしました.
私もレビューをしてもらいましたが,想定外の方法でflagを容易に取得できることが分かり,作問したチャレンジの見直しが必要になりました・・・(徹夜確定)
CTFを作問している人は何を考えながら問題を実装しているのだろうとぼやきながら2日目のグループワークが終わりました.
グループワーク終了後,ホテルのプール横でパーティがあると告知され,グループメンバーとエンジョイしてきました!
この日のパーティでは,運営スタッフの方々とたくさんお話しし,タイでは虫を食べてから日本に帰るべきだというアドバイスをもらいました(なんでそうなった?!).
ちなみに,プールパーティでは,酔ってプールに飛び込む人が出るのでは?と期待して
思いましたが,健全にパーティは終わりました.
Day 3
GCC 3日目は「How (not) to build a vulnerable LLM web app」と「Hunting with a dinosaur」の2講義が開講されました.この日の講義は,タイトルのインパクトと内容から受講を楽しみにしていたものであり,実際に講義はとても興味深いものでした.
How (not) to build a vulnerable LLM web app by Shota Shinogi[JP]
この講義では,前半にLLMが組み込まれたWebアプリケーションに対しての攻撃手法を学び,後半は,システムに脆弱性が含まれないように議論しながら,LLMを使用したWebアプリケーションの作成を行いました.
この講義で最も印象に残ったのは,講師が用意した脆弱なLLMを使ったシステムに対し,ある学生がリバースシェルを張ることに成功したときのことです.実行犯(笑)が自供した際に,会場が沸き拍手と歓声が起きたことは今も忘れません.
ちなみに講師からも「Good job」と褒められていました.
#恐らく予想外だったと思いますが...
Hunting with a dinosaur by Andreas van Leeuwen Flamino[NL]
この講義は,タイトルに「dinosaur」と入っていたので,とても気になっていたのですが講義内で使用するツール名がタイトルの由来となっていました.
この講義は,フォレンジックとインシデントレスポンスにフォーカスした講義で,Velociraptorを使ってWindowsのイベントログから脅威を探し出す実習を行いました.
実習はストーリー仕立てのシナリオで展開され,インシデントが発生しているのか?からどのような攻撃が行われたのか追及していく形で進められました.
講義の休憩時間にBauがデリバリーでタイティー(タイ式ミルクティー)を注文してくれました.
タイティーはバニラの様な甘い良い香りで,予想していた数倍甘くて驚きましたがとてもおいしかったです!
#茶葉はお土産としても人気だそうです.
Day3-Groupwork
この日のグループワークは引き続き,CTFの作問と相互レビューが行われました.すでに作問を終えているメンバーが新たな問題を考えている中,私はコンセプトの見直しから環境の構築と利用するプログラムの実装を行い,この日のグループワークが終わりました.
グループワーク終了後,昨日に引き続きプールパーティが開催され,そこでタイのスタッフとNikoさんと交流を楽しみました.この日は,プールパーティの参加者が少なくグループワークに励んでいる受講生が多いのかと思いきや,Day1で利用した部屋でもパーティが行われていたそうです...
この日はプールパーティを早めに切り上げ,グループワークでやり残した作問を完遂させました.
Day 4
GCC 4日目は,私がGCCに参加する目的にもなった「Hands-on Car Hacking」の講義が開講されました.車載ネットワークの知識はゼロではありますが,攻撃者がどのようにして自動車をハッキングしているのか非常に興味があり,GCCを終えた今となってはコンテンツに限らず最も楽しめた講義になりました.
Hands-on Car Hacking by Kamel Ghali[JP]
この講義では,はじめに現実世界のカーハッキングについて網羅的に学びました.解説の中で取り上げられた動画では,実際に自動車に対して攻撃が行われ,運転中にどのようなことが起こり得るのか学ぶのに最適な補助教材でした.
次にBluetoothのハッキングを学びました.内容としてはBluetoothの入門から始まり,攻撃手法とラボによる演習を行いました.Bluetoothのハッキングは興味はあれど手を付けていなかった分野で,GCC期間中に学べるとは思っていなかったため,とても楽しむことができました.また,ラボはCTF形式となっていたため,チームメンバーと協力しながら問題に取り組みました.
午後からは,車載ネットワークの技術的な内容について本格的に学びました.CANの基礎から始まり,最終的には自動車に搭載されていたインフォテインメントシステムへのハッキングを行いました.
私はこの講義で車載ネットワークの理論と実践を通じてカーハッキングへの理解をより深めることができました.
GCC期間中で唯一,一日がかりの講義でしたが,講演が長く感じさせなかったのは多くのエクササイズとハッキングコンテンツがあったからだと思います.
Day4-Groupwork
この日の正午から,別チームのCTFチャレンジが公開されチームメンバーとその問題に取り組みました.チーム方針としては,「各々自由に取り組む」というスタイルで挑みました.私は2問解きましたが,既に別のチームメンバーがsolveした後で結局のところチームには何も貢献せずこの日のグループワークが終わりました(ToT)/~~~
この日のグループワーク終了後,ルームメンバーに誘われナイトマーケットに行ってみました.しかし,ナイトマーケットは残念ながら開催していませんでした.
代わりに,近くのコンビニに寄り,お酒を片手に夜のビーチを散歩してきました.
Day 5
GCC最終日は「Practical Malware Analysis and .NET Reversing Based on Real-World Cases」の講義とGroupwork Presentation,GCCの終了に向けたClosingとPartyが行われました.
前日から行われているCTFの影響もあり,朝食は食べず時間ギリギリに講義室に移動しました(-_-)zzz
Practical Malware Analysis and .NET Reversing Based on Real-World Cases by Wei-Chieh Chao[TW] / Yi-Hsien Chen[TW]
この講義では.NETを使った本物のマルウェアをどのようにしてリバーシングするのかを学びました.講義はCTFdを利用しており,マルウェアの特定のデータやフィールドがフラグとして扱われ,受講者の進捗度合いに合わせて講義が進められました.
私は.NETアプリケーションに触れることは初めてであったため,その構造や実行ロジックの説明は非常に興味深いものでした.
また,講義ではラボが豊富に用意されており,中でもマルウェアがどのようにしてCommand & Contorolを実行するのかについて予測する内容がとても興味深かったです.
Groupwork Presentation & Closing
GCCでのすべての講義後,グループワークのプレゼンテーションが行われました.私たちのグループはCTFを作問するうえでの問題の趣旨や想定解を作問した問題ごとに各々で発表しました.
私たちのチームは相手チームよりもCTFのチャレンジを解くことができず(相手チームは全完)敗北してしまいました.
しかし,CTFの作成を通じて,技術の理解が今まで以上に深まり,さらには相手チームのCTFチャレンジに挑戦する中で多くのことを学ぶことができました.
何より,国境を越えて友人を作り,ともにプロジェクトを取り組んだ経験というのは,今後においても忘れられない機会になりました.
Closingでは,すべてのトレーニー(チューターやトレーナー,スタッフ宛)に修了証が配られました.
修了証を受け取った際は,とにかくうれしかったことを覚えています.
[修了証を後ほど掲載します(諸事情で郵送されるため)]
Closing Party (Closing Dinner)
Closing Partyは今まで利用してきたホテルの中ではなく,近くのレストランで開催されました.多くの学生と共に食事を楽しみ,その後,念願のナイトマーケットに行きました.
ナイトマーケットには様々なものが出品されており,見ているだけでもとても面白かったです(中には模倣品も..).
私は,お寿司と昆虫のフライに挑戦しました.お寿司はここではコメントしませんが(察してください),昆虫のフライは想定よりもおいしかったです.
ちなみに,昆虫は注文すればその場で調理(フライ)してくれます.
ナイトマーケットからホテルに戻り,恒例のプールパーティに参加し,友人たちとお酒を飲みながら夜の3時までエンジョイしていました.
最終日のプールパーティでは,なかなか話せなかったメンバーとお話しすることができ,充実した時間を過ごすことができました.
Day 6
この日は主に空港への移動日となりました.空港に到着後,日本チームはフライトまでに時間があったため,観光をしてきました.
タイ観光
日本チームの観光は大きく2つ「ショッピングモール」と「ワット・アルン(暁の寺)」で別々に行動しました.観光するにあたり各チームにタイのボランティアスタッフが付いてくれて案内してくれました.(Thank you Bau, James, Tiger)
私はワット・アルンの観光に参加し,タイの三大寺を拝んできました.
ワット・アルンにある仏像や守り人?の顔はすべて異なるなど,装飾が非常に細かくとても感動しました.
裏話ですが,私たちのチームは,経路途中でショッピングモールがあったため,もう人チームと比べ一石二鳥な観光ルートをたどることができたと思います.
GCC を終えて
私は,GCCが実質的な初めてのセキュリティキャンプということもありかなり緊張して参加しましたが,キャンプは非常に楽しく多くのことを学ぶことができた機会になりました.
講師は世界でも名が知られる豪華な講師陣であり,ここで学んだ1週間は忘れられない時間になりました.多くの学生が,積極的にコミュニケーションを取るため,参加していた私自身も国を超えて交流していると感じられませんでした(そのぐらいコミュニケーションをとりました).
GCCでは高度なセキュリティ知識・技術を学ぶことができたのはもちろんのこと,国境を越えてセキュリティを学び切磋琢磨する仲間ができたことが一番の収穫でした.
彼/彼女らは,私以上(というより数倍以上)に高度なスキルを持ち多くの知見を持ち合わせていました.私は日本国内だけで考えていましたが,海を越えてグローバルな視点で見てみれば,はるか上のスキルを持つ学生がいるのだと改めて痛感し,自分自身の未熟さを見直すきっかけとなりました.
今回のGCC参加を機に,グローバルな目線でセキュリティの学習に日々精進したいと思います.
また,何らかの形でGCCに関与し続けていきたいと思います!!
Special Thanks
- 一般社団法人セキュリティ・キャンプ協議会
GCCのメインスポンサーとして私を参加させていただきました. - GCC’24 スポンサー
GCCを実現するために多くの協力をしていただきました. - GCC’24 すべてのスタッフ
GCCの運営およびその実現に尽力していただきました - GCC’24 講師陣
高度で興味深い講義を計画し,誰にでもわかりやすく技術的内容を解説していただきました. - GCC’24 チューター
興味深い話題や相談の内容をもとに的確なアドバイスをいただきました. - GCC’24 トレーニー
講義内に限らず多くの場面でコミュニケーションをとり,GCCを心から楽しませてくれました. - GCC’24 日本チーム
GCC開催期間より前から,多くのサポートをしていただきました.
GCC に参加を悩んでいる方へ
結論から言えば,悩むなら参加(応募)するべきです.
GCCは英語が標準で進められ,高度な内容を扱うから講義についていけるか心配になったり悩む要因になることは十分に理解できます.
しかし,GCCへの参加を悩んでいる理由が「英語」であれば,間違いなく参加するべきです.セキュリティという共通言語があるため,詳細が分からなくとも,何となくで講義内容を理解することができます.グループワークでは,参加者の多くはあなたの伝えたいことを汲み取ってくれますし,翻訳ソフトを利用しながら会話する学生もGCCにはいます.
また,GCCへの参加を悩んでいる理由が「高度なセキュリティの内容」であるのであれば,こちらも間違いなく参加するべきです.講義は高度かもしれませんが,相談できる相手が隣にいます.彼/彼女らは同じ受講者かもしれませんが,サポートしてくれる存在でもあります.加えて,各チームごとには技術的な相談ができるチューターがいます.わからない分野があるのは当然です.周りの学生やチューター,講師は必ずあなたを助けてくれるでしょう.
上記を読んでも,まだ参加に悩む人はGCCの参加(応募)に当たってこのように考えるのはいかがでしょうか.
”GCCは「セキュリティ」という共通要素をきっかけに国境を越えた仲間を友人を作ることだ.”
このように考えれば,参加するのが楽になるのではないでしょうか.
私自身,参加するにあたって不安になることが多々ありましたが,このように考えると気持ちが少し楽になりました.
GCCの参加を悩んでいる方の助けになれば幸いです.
独り言
自分のブログで最後に書いた記事が半年以上前になるとは・・・
少々(というよりかなり)ブログの更新をサボり過ぎていたようです.これを機に,自分のブログも更新していこうと思います.
コメント