2024年10月22日よりインドネシア・バリ等にて開催されたカスペルスキー主催のSAS CTF 2024 FinalsにBunkyo WesternsとEnuの連合チームである、Team BuNkyoの一員として参戦してきたレポートです。
Day 0 – 出国
CTFの開催日時は現地時間で10/22 10:00からということで、前日入りもしくは当日早朝に到着する必要があります。
今回は限界CTF参加を行うため、当日朝にバリ島に到着する便を選択しました。

人生初の中国経由ということでいろいろ緊張しましたが、当日は航空機の遅れもほぼなく快適なフライトでした。(というかフライト中はほぼ寝ていた)
9時間ほど乗り換えに時間がありましたが、現在日本人の中国入国には基本的にビザが必要となっており、乗り換え待ちの時間を利用して入国・観光…というお決まりの流れが難しいものになっています。
ビザなしの一時入国(Visa Free Transit)も一応可能ではありますが、バリ島行きの飛行機が02:35発の遅い時間ということや広州雲南国際空港から近い繫華街まで結構遠いとのことで今回は中国へは入国せずに制限エリアにとどまる選択となりました。
乗り換え時のカウンターで制限区域内のラウンジ利用権を60USDで販売していましたが、Trip.com等では4500JPY程度で販売しているのを俺は知っているからな!
(結局制限エリア内で暇な時間に耐えられずTrip.comでラウンジ利用権を購入し、ビールをドカ飲みしたあと寝てたらあっという間に搭乗時刻となりました)

中国南方航空についてはネット上に様々なレビューがありますが、遅延さえなければ安くていいと思います。フルサービスキャリアだし。機内食も普通においしいぞ!

飛行機で爆睡していたらバリ島のングラ・ライ国際空港にオンタイムで到着。
事前に空港からの送迎ドライバーを手配していたため、空港から車で25分程度の場所にある今回の会場での、ソフィテル バリ ヌサドゥア ビーチ リゾートまではスムーズに向かうことができました。
会場到着したのは08:30すぎ。
事前に会場のホテル入りしていたチームメンバーと合流し一緒に朝食をとった後、荷物を預かってもらい、いざCTFへ…!。


Day 1 – CTF Finals
Finalsについて
FinalsはA&D(Attack and Defence)形式で行われました。
A&D環境へはWireguardを利用してクラウド上のA&D環境へと各個人の端末を接続、そこで他チームのホストを攻撃/自チームのホストを防衛する形でした。
ホストは1台のLinuxマシンが与えられ、Dockerコンテナ上で5個の別々なサービスが動作しています。
このサービス達に存在する脆弱性を探して攻撃し、10分毎に変動するフラグを提出し続けることが攻撃としての役割、
脆弱性をパッチして攻撃されてもフラグを返却しないようにすることが防衛としての役割となります。
また、SLAと呼ばれる正常なアクセスを返却できるかのリクエストが管理者側から行われ、これに合格できないと自チームの点数が減少していきます。
チームメンバーはA&D形式のCTFの参加経験がある人間が少なく、事前に一度集まってA&D形式の過去問を解きながらA&Dに利用するツールの動作確認等を実施しており、私は本職インフラエンジニアということでA&Dに使うサーバーの設定変更やツールの展開、パケットフィルタ、SLA保全担当としての役割を担当しました。

競技中に対応したこと
- A&D向けパケット解析ツールの管理
- 競技時間合計して30GB程度のパケットを収集・これを管理
- 終盤はDBが肥大化・VPSのメモリ不足で検索機能が動作していなかった 非常に反省
- 競技時間合計して30GB程度のパケットを収集・これを管理
- iptablesによるパケットフィルタ
- 公式が「統計及びIPメタデータによるフィルタリング行為は禁止」と言っており、何を起点にフィルタするか悩ませた
- iptablesのstringモジュールを使用したが、エクスプロロイトが難読化されると効果をなさなくなった
- 効率的な防衛運用の模索を怠った(これは現在も答えは出ていない)
- 公式が「統計及びIPメタデータによるフィルタリング行為は禁止」と言っており、何を起点にフィルタするか悩ませた
- Nginxのレートリミット指定
- サービスの一つで大量のアクセスがあり、サービスが極めて不安定になる状態が発生し、これを防ぐためにレートリミットを導入した
- 結果としてSLAを下げる結果になり、かなりの反省
- サービスの一つで大量のアクセスがあり、サービスが極めて不安定になる状態が発生し、これを防ぐためにレートリミットを導入した
- SLAの保全
- 徐々にサービス内部のDBが肥大化し、リクエストタイムアウトが発生することがあった
- バックアップからDockerコンテナを初期化することで対応
- バックアップとチームメンバーが修正したコード間でおそらくデグレが発生していた
- 徐々にサービス内部のDBが肥大化し、リクエストタイムアウトが発生することがあった
振り返ってみると反省点しかないですね。
たられば論は好きじゃないのですが、かなり個人的に尾を引くような結果になりました。
チームとしての準備や役割分担が不足していたことや、他チームとの経験値の差が顕著に出ていたと思っています。
次回、A&D形式のCTFに出る際は反省点をクリアにしたうえで臨みたいと考えています。
競技中の写真や雑記
競技中、突然奇声をあげるチームなどがいて普通にカオスでした。
肝心のCTFはというと序盤に防戦一方になり、そのまま防御ラインを構築しているままCTFが終了してしまったという非常に心残りある結果となりました。
A&D形式のCTFでは先にエクスプロイトを完成させたチームが圧倒的に有利であり、序盤にリードを奪われるとかなり神経を消耗しながら防戦ラインを構築していく必要があります。残念ながら一転攻勢に出る機会はなく、押し切られる結果となってしまいました。
次は勝ったるで…!





ウェルカムディナー
CTFが終わったらディナーパーティーがありそのまま流れで参加へ。
トップ3チームの表彰等がカスペルスキーの代表である、ユージン・カスペルスキー氏によって行われました。
ディナータイムでは記念写真を撮ったり酒をしこたま飲ませていただきました。
和気あいあいとした雰囲気のなか、国外の他チームともコミュニケーションができたのは非常に貴重な経験でした。
また、飲酒ライブCTFをやっており、Team BuNkyoリーダーとともに参加しました。
ルールは単純、運営からPCを渡され、中にあるCTF問題を10分以内に解けなければショットを1杯飲み時間延長…を繰り返す闇のゲームです。
ですが、突然のスコールにより途中終了…。
開始時に飲まなくていいショットを勝手に飲んで、リーダーがSLを走らせて、IDAを起動して、F5キー押しただけで終わりました。 無念。


Day 2 – カンファレンス
写真集でお送りします







Day 3 – 観光・帰国
滞在最終日です。
特にやることがなかったのでチェックアウトギリギリまでホテルでゴロゴロしながら観光スポットを一人で探してました。
チームメンバーは滞在先のホテルでプールを満喫していたようですが、私は一人で限界を感じに行くため、半日ほどドライバー兼ガイドを雇って車でバリ島南部をフラフラしてました。
ドライバーは謎の路面店でスプライトを飲みながら現地の人と雑談してたら確保できた感じです。観光客にフレンドリーな人が多すぎだろ。
ぼったくりドライバーなんかもいるとは思いますが、明瞭会計になるように事前にネゴっておけば問題ないと思います。パワーでいける。
- ジェットスキー体験
- 世界で4番目に大きい石像のGWK観光
- バリ島名物スパでリラックス
- ナシゴレン & ビンタンビールを味わう🍺
等のコッテコテなアクティビティや観光地をめぐり、バリ島観光を満喫しました。
物価も日本より安いため、お財布にも優しいのが非常にうれしい。
よしだはビールが血液といっても過言ではない人間のため、現地のビール(ビンタンビール)を飲みまくれたのが非常に良い思い出になりました。
スパも良かったですね…。 パワーを感じるマッサージで旅の疲れが吹き飛びました。
バリ島を訪れる予定の方は是非スパは行ってほしいです。
あと日焼け止めをもっていかず、現地でも買わずにノーガードで遊んでたら肩~背中が日焼けでデロデロになりました。
マジで1週間くらい痛かったです…。痛みが落ち着いたら皮がバリバリ剥けました。バリだけに(?)
日焼け止めは本当に必須ですね。 海外に行く際はどの国でも必ず持ち歩くようにしたいと思います。
ちなみに最終日の写真は… 帰りの飛行機で携帯が壊れたのでありません…
(悲しいことにクラウド同期されてなかった)
無事帰国し、楽しい思い出は幕を閉じました。
写真は消えてしまったかもしれないけど思い出は消えないですからね!
写真はまた撮りに行けばいいんやという気持ちで臨んでいきたいです。
まとめ
以上、SAS CTF 2024 Finalsのレポートになります。
お前酒飲んでばっかじゃねえか!?みたいな意見もあるかもしれませんが、通常運転です。
10月は様々な業務でバタバタしていたこともあり、非常にいい息抜きになりました。
CTFではA&Dという参加したことのない試合ジャンルに参加できたことや、世界屈指のCTFプレイヤー達からたくさん攻撃してもらうことができるある種のご褒美(?)を経験できたことで大きな知見を得ることができました。
実務に活きてきそうなネタもいくつか発見することができたので、このCTFへの参加を通じての収穫は非常に大きいものになったと思います。
また前述にもありましたが、弊社として特殊なケースである海外CTF参加に対する旅費の一部支給を許可いただき送り出してくれた社長および弊社スタッフの皆様には非常に感謝しています。
国内の様々なセキュリティ企業様ではCTFに関する福利厚生がありますが、弊社でも「国外のCTF決勝参加等には旅費の支給・特別休暇支給」という福利厚生を正式に獲得するべく私も邁進したいといった所存です。
(弊社はセキュリティ企業ではないですが…毎月謎の大会やってるし大丈夫だろ…)
🎉🏆サイバーセキュリティの腕を競う当社主催の #CTF (キャプチャー・ザ・フラッグ)の決勝戦が、先週インドネシア・バリで行われ、厳しい予選(846チームが参加)を勝ち抜いた上位8チームが参加しました。… pic.twitter.com/IY3HEKL1Xg
— カスペルスキー 公式 (@kaspersky_japan) October 30, 2024
お読みいただいてありがとうございました。
それではまた別の記事でお会いしましょう!