CTFするぞ

CTF以外のことも書くよ

Blackhat MEA 運営記

先週Blackhat MEAに、決勝問題の作問者として行ってきました。

TL;DR

  • Blackhatの会場はとても広い
  • Blackhatの会場はトイレが汚い
  • Blackhatの会場は雨漏りする

旅の記録

0日目

日曜日にCakeCTFの運営が終わった後、BunkyoWesternsの人たちと技術書店に行きました。 技術書店から家に帰ったら急いで荷物を詰めて*1羽田空港に移動しました。 基本的に中東より先に行く場合はドーハを経由しますが、今回もドーハ経由でリヤドに行きました。 ドーハ空港は物価が異常であることが知られているので、乗り換えの間は何も買わずに耐えていました。

1日目

入国

午前10時過ぎにリヤドに付き、目以外が見えない黒ずくめの入国審査官にハンコをポンしてもらいました。 中東への入国が初めてで、やはり服装が新鮮だったのが記憶に残っています。*2

他の運営数名が到着する13時までチョコレートクロワッサンを食べて待っていました。 到着後はUberで30分ほどでホテルに行きました。 他の中東出身の人も言っていましたが、サウジアラビアは全体的に運転が荒いらしく、この時は時速70〜80kmで前の車に車間距離50cmに接近してクラクションを鳴らすという、超絶技巧煽り運転でした。

スーパーマーケットへの旅路

ホテルに着いたら3時までは部屋の用意を待って、そこから作問者は*3自由時間でした。 昼ごはんがチョコレートクロワッサンだけでお腹が空いていたので、何か買いに行くことにしました。 歩いて20分ほどのところに大きめのスーパーマーケット*4を見つけ、外もちょうどよい気温*5だったので歩いて行きました。

旅路にあったモスク。左に見える売り場ではキツネの皮も売っていた。

ホテルを出て数分で、最初の村人に話しかけられました。 ギリシャアメリカでいろんな詐欺師を見てきた経験から一瞬身構えましたが、互いに自己紹介をして終わりました。平和。 実はリヤドは世界的にもかなり治安が良い街なので、安心して外出できます。

また、道中で数え切れないほどの猫を見ました。平和にゃーん。 野良子猫も複数観測したのは今回が初めてです。*6

サウジアラビアには猫がいっぱい

初めての中東旅行で一番不安だったのが服装です。 サウジアラビアは2019年までそもそも観光ビザがなく、入国者も伝統的な服装を着用する義務があったそうです。 実際、外で見かけた男性の20〜30%ほどが伝統的な服装であるトーブを着用していました。 女性は覚えている限り100%が外ではアバーヤを着ており、そのうち30%ほどが目以外を隠していました。 しかし、男性に関しては半袖Tシャツ半ズボンの人もちらほらいたので、あまり気にしなくて良いと思います。

さて、道中で困ったことに、信号が1つしかありませんでした。 横断歩道という概念がないのか、唯一信号があった箇所でも歩行者道路は点字ブロックの点だけ版みたいなのが敷かれており、渡っていいのか微妙でした。 それ以外の道路はタイミングを見計らって気合で乗り切る必要があります。*7 4車線の道路くらい信号を設置してくれ〜。

そんなこんなでスーパーマーケットに到着し、食料を探しました。 サンドウィッチや弁当的な何かを探しましたが、お菓子売り場がほとんどで昼食用の食べ物がほとんど見つかりませんでした。 唯一チョコレートクロワッサンがあったので、2つ購入しました。 何か本来の目的を忘れている気がするが、まあいいか🤔

見覚えのあるジュースから現地ブランドまでいろいろ

物価は調査通り、安いものも高いものもありました。 うまい棒コアラのマーチのように海外から輸入している食品は若干高かったですが、水やソフトドリンク、現地のお菓子などは日本よりもかなり安かったです。 例えば500mlの水は日本だとスーパーでも80円ほどしますが、リヤドでは1リヤル=40円と、円安の今でも安い価格設定でした。 どこぞのギャンブルタウンには見習ってほしいですね。

これで1000円弱。安い。

ただ、運営席に食べ物とドリンクが無限に湧いていたので、この買い物は実は不要でした。

ポリメロとの遭遇

スーパーでも英語が通じて無事購入に成功し、帰り道にまたフロッガーをしてホテルに戻りました。 歩き疲れて深夜まで寝て、シャワーを浴びていたら同じ部屋に宿泊するポリメロさんが到着しました。

彼は暗号の作問者で、オランダ出身だそうです。

polymero

深夜だったのであまり長話はせず、明日に備えました。

2日目(CTF1日目)

出発まで

7時に運営チームで朝ごはんを食べる予定になっていましたが、私とポリメロ以外は1時間遅刻でした。 というのも、Webをjailするのに手こずり、この日の朝4時まで会場でセットアップをしていたそうです。南無......

朝ごはんはビュッフェ形式で、おいしい中東の食べ物がたくさん並んでいました。 誤ってサラダに混入したパクチー以外は全部おいしかったですが、特にカレーの味に感動しました。 あまり食べ物の味は気にしない人間ですが、カレーはスパイスが効いていて食べたことのない美味しい味でした。*8

朝ごはんを食べ終わったらUberで20分ほどの会場に向かいました。

会場に到着

まず、会場がデカかったです。 それまで行った中ではRSAカンファレンスが最大でしたが、今回のBlackhatは比べ物にならないくらい大きかったです。 会場は大きなホームセンターのような建物で、IKEA本店が2つ連なっているイメージです。

会場の入口のうち1つ。全体像は写真に収まらない。

CTF席も十分に大きく、緑・黄・赤・青の色がついたチームがそれぞれ1〜60くらいの番号になっており、合計で200〜250チームほどの席はあったと思います。 チーム数が多すぎるため、残念な点としてチーム同士の距離が非常に近かったです。人がギリギリ通れるくらいの間隔がありました。

CTF会場(会場全体の1/10程度の面積を利用)

会場はトイレが汚かったです。なんですかあれは。

運営中

作問者の仕事は基本的に問題の質問に対する回答です。 ただ、不正の監視も仕事内容に入っていたので時折会場を見回っていました。 私のことを知ってくれていた人が多く、監視と質問対応で巡回していたのに、よく写真を撮ろうと求められました。フレンドリーな人が多かったです。

昼頃には、運営の1人であるヤシンと一緒に会場隣の医療ハッキングブースに行きました。 一般人向けの説明と、競技者向けのチャレンジブースがあり、せっかくなのでチャレンジブースに行きました。 とはいえ医療機器は解析経験どころかバイタルモニタの実物を見るのも初めてだったので、何をやっていいかわからないまま待機していました。

ブースは10分〜20分ほど並ぶと遊べる遊園地形式

混んでいたこともあってか、遊べる時間は15分しかないと言われました。 そして競技が始まると、バイタルモニタと同一ネットワークに接続できるようにLANケーブルをもらいました。 nmapで機器のアドレスとポートを特定し、1つ1つ見て回りました。 一生KEEPALIVEを送ってくるポートや何かしらの認証を要求されるポートなど様々でしたが、どれも見たことのない通信でした。

いろいろなポートを見ている間に、ヤシンが通信内容からバイタルモニタのメーカーと型番を特定し、あるポートに流れていた通信がバイタルモニタの表示を示していることを特定しました。 私は急いでクライアントのfuzzerを書き、パケットを投げまくりました。 すると、数秒ほどでバイタルモニタの電源が落ちて*9、患者がお亡くなりになりました。南無......

昼食は2時半頃に、マクドナルドのハンバーガーセットが運営席に運ばれてきました。 この量が異常で、明らかに10〜20人程度の運営席に対して100個はあるであろうハンバーガーセットが到着しました。 マクドナルドって、異常量注文すると引っ越し用ダンボールみたいな箱をいくつも用意されて、そこにハンバーガーとポテトが詰められるらしいです。

大量に余ったマクドナルドの飲み物。氷が解けており「水」と呼ばれていた。

昼ごはんはマクドナルドでしたが、晩ごはんには現地のハンバーガー店と思われるレベルの上がったハンバーガーがもらえました。 こちらも大量発注しており結構な量が余っていました。時代はSDGsなので私は2つ食べました😋

またしても大量に余るバーガー

3日目(CTF2日目)

運営中

驚いたことに、この頃CTF運営はスコアボードにアクセスする権限がありませんでした。

Flagyardが一番トップの運営で、彼らがスコアボードやゲームデザインを担当しています。 次にインフラチームがあり、彼らがFlagyardの無茶な要求に対応します。例えばWeb問を全部redpwn/jailに入れろという要求にも対応していました。*10 最後に作問者チームがあり、板挟みにされて可哀想なインフラチームを応援していました。

教訓:CTF経験の豊富な作問者がゲームデザインをしないと碌なことにならない。

運営席から遠くにあるスコアボードを見て状況を判断するしかなかった

可視化ボードはHTMLとWebSocketで書いたと言っていました。 トップチームのランキングと最新のsolveが3つ、それと残り時間表示されています。 また、first bloodが出ると「キュィーーーン」という音とともに可視化ボードに表示が出ます。

マイクのハウリングみたいな音とともにfirst bloodが表示される

この日出題した問題のうち1つは0 solveに終わってしまいました。 会社のpwn勉強会中に参加者から出た質問について考えている間に思いついたheap exploitを出しました。 やや新テク(?)なのでまたいつかwriteupを書けると良いです。

その他

スマートシティブースで遊んでいました。 IPカメラ、プリンタなどの身近なデバイスから、原子炉冷却用のPLCや滑走路の指示灯などの産業用のデバイスに対する攻撃まで幅広く扱っていました。

スマートシティブース

基本的にCTF区画(全体の1/3)しか散策していませんが、スマコン、ドローン、チップオフなど他にも様々なブースがありました。

お昼ごはんは現地のファストフードと思われるフライドチキンが配給されました。

小学校の給食みたいに自分でバンズにフライドチキンを詰めるスタイル

夜はwrapが配給されましたが、あまり覚えていません。

4日目(CTF3日目)

運営中

もはや運営にも慣れ、運営陣では各国の言語・文化教室が開催されていました。 中東の文化を全然知らなかったのですが、彼らは公的な場ではアラビア数字を使っているそうです。 そのため、車のナンバープレートや通貨の数字などは理解不能な文字でした。

そんなことをしていると、花火のような音がして、外では雷と大雨が振り始めていました。 最悪なことに会場が雨漏りしており、CTF会場にも一部雨が振り始めました。 DiceGangが地面に座ってCTFをするなどのカオス状態となり、収束するまでの30分間CTFが停止になりました。 オフラインCTFを運営するときは会場選定もちゃんとしよう。

結果発表

この記事を読んでいる日本人層には関係ないですが、結果は以下の通り!おめでとうございます。

  1. DiceGang
  2. The Duck
  3. C4T BuT S4D
  4. Never Stop Exploiting
  5. Kalmarunionen

そして空港へ

私は深夜に飛行機があるので、みんなとお別れをしてそのまま空港に向かいました。 Uberを使うのは初めてでしたが、現地のみんなが使い方や運転手との連絡をしてくれました。感謝感謝。

ちゃっちゃと出国審査を終わらせて飛行機に搭乗しました。

リヤドからドーハまでは謎の空間があるラッキー席

しかし、1時間以上経過しても飛行機が出発しません。CTF会場を襲った嵐を警戒して、飛行許可がなかなか降りなかったようです。 ドーハでの乗り換え時間が1時間半なので、羽田行きの便も遅延していない限り、この時点で乗り継ぎ失敗はほぼ確定でした。 LCCではないので、航空会社側の責任で遅延した場合次の便のチケットがもらえることはTOEICで履修済みだったので、特に気にせず寝ていました。

ドーハ空港でのカオス

ドーハに到着すると自分の便は出発済みだったので、乗り継ぎカウンタに並びました。 深夜だったこともあり、ボードに次の東京便は見つからなかったので、これは泊まりだな〜と確信しました。 私は早めにカウンターに並んだので1時間ほどで済みましたが、時間が経つにつれて人が増えていき、次第に夏休みのUSJみたいになっていきました。

航空会社のカウンターに押し寄せて文句を言う人々や、割り込もうとして列に並んでいる人からボロクソ言われる人々などカオス状態でした。 ホテルが付いてくるだろうというワクワクが強かったので、周囲の状況は気にせず待機できました。

やっと自分の番になると、次のチケットがもらえました。予想外に直近のチケットではなく、ちょうど24時間後のチケット(しかもなぜか成田行き)でした。 ドーハのいい感じのホテルの宿泊券と、250QAR分の食事クーポンももらえました。これはお得! 250QARというとちょうど1万円ほどです。次の便までに昼と夜の2食を食べるので、いくら物価が高いドーハとはいえ高級な食事ができます!

5日目

ホテル

ダブルベッドのいい感じの部屋でぐっすりでした。

クーポン券を使い、ルームサービスでサラダ界で最高値の海老サラダと、スープ界で最高値のきのこスープを頼みました。 きのこスープはおいしかったですが、海老サラダはドレッシング:サラダ=1:2みたいな感じで味が強すぎました。 ルームサービス自体を使うことが初めてでしたが、頼んでから30分〜50分ほどで届けてくれて便利でした。 結構満腹でしたが、この時点でクーポンを87QARしか消費できていませんでした。

そこで夜は、最も値段の高いオリエンタルグリルステーキに加え、チョコレートムースとマンゴージュースも頼みました。 こちらが合計162QARで、昼との合計は249QARになりました。 計算せずに適当に頼んでいたのですが、結構ギリギリで危なかったです。

これで6600円してしまうのがドーハの怖いところ

味は...アメリカ的な固い肉という感じで普通でした。サウジアラビアでもそうでしたが、マンゴージュースがどこにでもあり、どれもおいしかったのは評価ポイントです。

ドーハ観光

ホテルの近くにあった博物館に行きました。

カタール国立博物館

博物館とか美術館とかは興味がない人間なので、それっぽいやつの写真だけ撮って1時間ほどで脱出しました。

博物館敷地内の中東っぽい場所

ついでにドーハくん人形が売っていたのでコーヒーと一緒に買いました。

本当は「無題(ランプ/クマ)」という作品。触り心地がよく、ぬいぐるみ評論家としても評価が高い一品。微妙に左手の方が上がっているのも原作を忠実に再現している。

その後歩いて30分ほどの海沿いの公園に行きました。6時頃には暗くなり、夜景が綺麗でした。

ドーハの町並み

ここにいた猫と30分ほど遊んでホテルに帰りました。

ドーハ猫

ホテルから空港までも遅延者用のシャトルバスがあり、あとは空港でまったりしていました。

会計

Blackhat側の全面的な旅費支援があったため、今回の旅費は軽く済みました。 リヤドに限定すると中国謎CTFの5000円を更新する記録です。

サウジアラビアで発生した費用(4390円)

  • スーパーマーケット:1077円(26.63SAR)
  • 空港までのUber:3313円(83.10SAR)

カタールで発生した費用(8813円)

  • スーパーマーケット:166円(4.00QAR)
  • 博物館入場料:2053円(50QAR)
  • 博物館お土産(ドーハくん人形+コーヒー):6037円(147QAR)
  • 空港での飲み物(水+ジュース):557円

おわりに

とても楽しかったです。また行きたいなと思いました。

*1:最近忙しかったので荷詰めもギリギリに...

*2:帰りにはもはやアバーヤやトーブの服装が当たり前に感じるまで染まりました。

*3:インフラはweb問をredpwn jailに入れるというdev 500点問題を解いていました。

*4:道中小さいスーパーを見つけたが、暗いし英語が通じるか怪しくて入れなかった

*5:暑いけど湿度がないから

*6:モスク周辺では猫にご飯を分け与えることが多く、猫が人に慣れているそうです。

*7:ちなみにカタールで青信号を渡っていたところ轢かれかけました。

*8:私が石油王なら大金を払ってホテルの料理人を連れ帰ってしまうところでした。

*9:再起動用のコマンドを引き当てたと思われます

*10:予選のwebはこれが原因で急遽jailに入るレベルのシンプルな構造な問題しか出題できず、残念な結果になったそうです。