このページの本文へ

Black Hat USA 2023 & DEF CON 31レポート

39時間に及ぶ「Recon CTF」に挑んだpinjaチームを“中の人”としてレポート

優勝してきたぜ! ハッカーイベント「DEF CON」OSINT CTF体験記

2023年09月26日 09時00分更新

文● 谷崎朋子 編集● 大塚/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

頼もしいゲストメンバーも確保、ただしホテルのWi-Fiが……

 さて、話はいよいよ今年のRecon Village CTFとなる。

 2023年8月11日、CTF大会当日。競技は、米国時間10時から翌日22時59分までの39時間をかけて行われた。今年はlumin氏と筆者が現地参加し、ykame氏が日本からリモート参戦することになった。問題の進捗管理はTrello、文字と音声の情報共有はDiscordを活用する。

 4人目のゲストメンバーにはmeow氏を迎えた。実はpinjaでは7年前から、東京開催のハッカーイベント「AVTokyo」内でOSINT CTF「Open xINT CTF」を主催している。meow氏はその常連プレイヤーであり、OSINT勉強会の主催や情報発信も積極的に行っている人物だ。

 最初は「自分では力不足」と謙遜していたが、メンバーが「1位を目指す気持ちは大切だけど、勝つことだけがCTFじゃない」(ykame氏)、「むしろ難題が出ても最後まで挑戦し続けられるかが重要」(lumin氏)と気持ちを伝えたところ、見事に陥落……じゃなくて快諾してくれた。meow氏もリモート参戦となった。

 メンバーは揃ったものの、現地組にはひとつ問題が持ち上がっていた。それはホテル客室内のWi-Fi環境だ。

 DEF CONはラスベガスの複数のホテルを会場として開催される。pinjaチームの現地組は、いつもメイン会場に近いホテルを取る。今年は円安の影響もあって、少し安めのホテル(Flamingo Las Vegas Hotel & Casino)を選んだ。だが、このホテルのWi-Fiは接続デバイス数に制限があり、しかも帯域はわずか5Mbps。追加料金を支払っても、最大10Mbpsにしかならないという。

窓からの眺めはこんなに素敵なホテルなのに、Wi-Fiは貧弱

 競技中は、就寝時以外は誰かの部屋に集まって問題を解く。「これどう思う?」の一言でメンバーがPC画面の前に集まってすぐに議論できるし、考え込むメンバーに気付いてサポートできる。時間との戦いでもある競技において、重要な要素だ。

 デバイス接続数の問題は、lumin氏が持参したLinuxルーターで解決した。だが、帯域のほうはどうにもならない。しかも、ホテル側の設定で十分な数のセッションが開けず、ちょくちょく切断されてしまう。画像検索のような帯域を使う作業は、リモート参加の東京組に任せるしかない。

Wi-Fi問題を解決するLinuxルーター、設置完了

客室内のテレビを借用してUbuntu 23.04の設定

競技開始! つかみどころのない問題に翻弄されるチーム続出

 Recon Village CTFは予定どおり、午前10時にスタートした。今年は144チーム、200人強が参戦。問題数は例年よりも少ないが、OSINT以外のWebセキュリティ、暗号などの問題が増えた。

 恐れていたとおり、現地組はホテルWi-Fiの遅い速度とセッション切れで余計な苦戦を強いられた。しびれを切らしたlumin氏が「禁断のwget~!」と叫びながら、貧弱な通信帯域を使い切るコマンドを叩いたため、筆者は何もできなくなり、チベットスナギツネのような顔でたたずむしかなかった。

ホテルの貧弱なWi-Fi帯域を一人で使い切るlumin氏

そして、それを見つめる筆者の表情のイメージ(チベスナ顔)

 テンションだだ下がりの筆者に追い打ちをかけたのは、今年の採点方式だ。今年は問題に正答したチーム数で得点を割る方式になった。たとえば100ポイントの問題を最初に解いて100ポイントをゲットしても、その後に4チームが正答したら20ポイントまで減ってしまうのだ。

今年のRecon Village CTFで用意されたのは13問。難易度によって獲得できるポイントが異なるため、どの問題に挑むのかも戦略的に考える必要がある

 加えて今年は、例年以上に“つかみどころのない問題”が多かった。たとえばこんな問題だ。

「【問題3】問題2は十分調査しましたか。何かの設定がされていて、よく見える場所には目立たないよう何かが隠されています。その一方で、意図的に隠されているものも。ここで見つけるべきは、2つ。1つは現在のステップ、もう1つは前進するための何か」

 英語が母語の人ならばたやすく読み解けるのか、それとも英語が母語の人でもやっぱりわからない問題なのか。もう何もわからない。それらしき答えを片っ端からサブミット(送信)して正誤を確認したいところだが、回数制限もあるので、そうそう気軽にはサブミットできない。

問題3の、つかみどころのない問題文。なお、解答がわかれば「Flag」欄に入力して「Submit」で送信するだけだ

「ヒント」を見るべきか否か? 勝負の分かれ道

 ほとんどの問題には「ヒント」も用意されているのだが、われわれの経験上、Recon Village CTFでヒントに手を出すと命取りになる。参加し始めて間もないころにはヒントを開いたことがあるのだが、問題文にひけをとらず、ヒント文も“なぞなぞ”のようなものだった。それ以後、pinjaチームでは「どんなにつらくてもヒントは見ない」方針としている。

 そもそも、ヒントを見るためにはポイントを消費しなければならないため、たとえ正答できてもポイントはあまり稼げない。さらに、正答できなければポイントを消費するだけで終わるリスクもある。

 案の定、各チームのスコアボードを見ると、ヒントを読んだものの正答できず、ポイントを消費して順位を下げるチームが続出していた。中には“ヒント解放専用チーム”を作ってチート行為をするチームもいたが、結局問題は解けずじまいだったようだ(そのうえ運営にチートがバレてポイント剥奪処分を受けた)。

 たとえば問題9は、過去に漏洩したある人物のパスワードを見つけるという問題だった。CTF的な定石としては、漏洩したパスワードはテキストデータの保存/公開サービス「Pastebin」を探れば出てくる。だが筆者は、Pastebinの複数あるドメインを失念して発見に至らず。

 であればと、meow氏は情報漏えいデータベースで該当人物のものらしきメールアドレスを探し、パスワードを特定する正攻法で挑んだ。しかし、同姓同名の人物が多すぎて、絞り込みに時間がかかりすぎることが判明。meow氏はかなり粘って調査してくれたが、解くべき問題はほかにもあり、かかりきりになるのは効率的ではない。

 ここでlumin氏が“逆転の発想”をとった。(詳細は割愛するが)まずは解答の可能性が最も高いパスワードを洗い出し、そのパスワードと人物名を組み合わせてGoogle検索を実行、これで正誤を検証するという策だ。かなり変則的なやり方だったが、結果は大成功。フラグを見事ゲットした。

 一方、正攻法で行き詰まった他チームはヒントに手を出した。競技終了後にヒントの内容を確認したところ、ストレートにその人物のメールアドレスが書かれていた(同CTFでこんな単純なヒントは珍しい)。ヒントを得て正解したチームは多かったが、ヒントでポイントを消費してしまったぶん、pinjaとの差は開いてしまった。やはりヒント解放はリスキーなのだ。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード