見出し画像

DIVER OSINT CTF 2024 writeup(お家で安楽椅子探偵・情報屋になろう)

はじめに

断片的に渡される情報から、推論とネットの海を掻い潜り真実にたどり着くような安楽椅子探偵、情報屋、ハッカー……憧れません?

今回はそんな体験が出来る素敵な大会、2024/6/8 12:00~2024/6/9の12:00にて開催されたDIVER OSINT CTF 2024に参加しましたので、
振り返りのwriteup(体験記、出された問題にこうやって解いたよ、解けなかったよ)を書いていきます。
比良坂はCTF、並びにOSINT CTFも初心者です。

「OSINT」と大会『DIVER OSINT CTF』とは

ネットに公開されている情報源からアクセス可能なデータを収集、分析、公開情報を探す活動をOpen Source Intelligence:オープンソースインテリジェンス、略して「OSINT」といいます。
例えば……撮影された画像の場所特定(ジオゲッサー的なの)、ジャーナリズム的なもの(ニュースのファクトチェックなど)まで多岐にわたります。

OSINT」にはプログラミング的なアプローチは少なく、それ故技術的な素養もあまり必要ありません。
問題と答えを探す、という行為は謎解きにも近いです。

必要なのはネットの情報を発見する手法を知っているか、それと、答えがあるかわからないネットの海を必死でもがき続ける根気です。

有志で開催された『DIVER OSINT CTF』本大会はその能力を競います。運営から問われる設問が35問あり、チームごとの解けた問題のポイントで競います。(解いた人が多いと配点が低く、解いた人が少ないと配点が高くなる、ダイナミックな方式)制限時間は24時間。当たり前ですが、大会ルールとして運営やほかプレイヤーへのいかなるハラスメント、攻撃、妨害、脅迫、晒し、他一般の人への接触は禁止されています。

成績

チーム成績(Ultimate Detective)

7位(/484 teams)
26問 (/35 問)
6817pt (/11251 pt)

個人成績

解けた問題 6問 757pt

戦略、考えていたこと等

運営の予告で「初心者向けのカテゴリ(introduction)があり数題出題される」という情報がありました。参考にするために、他の大会のいくつかのwriteup(体験記)を見た経験でも、難しい問題はかなりアクロバティックな解法が要求される場合が多々あり無理め。
初心者として貢献できるなら入門問題しかないだろうとスタートダッシュを決めることに。他のチームメンバーに対して少しでも思考時間を残せていたなら……という方針でした。
(他、考えている最中はDiscordのボイスチャットに入って他の参加者と話したりアイディアを聞いたり整理するのを手伝っていました、自分もそうなんですが同じことをずっと考えていると狂うので)

解いた問題
ad_directiare/introduction
dream/introduction
serial/introduction
chain/introduction
osprey1/military(ninoさんと合同)
osprey2/military(ninoさんと合同)

解けなかった問題
osprey3/military

ad_directiare/introduction

Q.この名刺の人物が、東京出張時に食べた昼ご飯の値段を答えよ。

おそらくコメダ珈琲での写真。
シュガースティックの下敷きになるように名刺が置いてある。

最初は名刺の「よねくらデザイン事務所」をFacebook等で調べてみるも進展なし。gmaiアドレスが映っているのでこっちにシフトし、Epieos(メールアドレス/電話番号からGoogle等のアカウント情報を検索するサイト)で当該アドレスを調べるとヒット。
カレンダーには6/3にランチの記述があり、電話番号が記載されている。(これは日本橋 伊勢定 大丸東京店の番号である。) https://calendar.google.com/calendar/u/0/embed?src=yone.jun.0727@gmail.com

更に他データには口コミ投稿あり。となればあとは何を食べたのかを写真から推測することに。
食べログの口コミ投稿から写真をあさり
「ランチで竹(4,400円)と赤出汁(495円)を食べたのかなぁ」とするも
4,400+495=4895で不正解。メニューは税込価格ではないので考慮する必要はなく……といったんハマりそうになりましたが落ち着いて口コミをよく見ると「竹:4,400円」の文字が。これが正解でした。 
https://www.google.com/maps/contrib/104607974422086075165/place/ChIJtxODuv6LGGARCSsMcVv8Hk8/@35.6818256,139.7662313,17z/data=!4m6!1m5!8m4!1e2!2s104607974422086075165!3m1!1e1?entry=ttu

本件、正解後に大会中に気になって運営に問い合わせたところ、作問班側の不備とのことでした。
(スタッフの方にも「的確なファクトチェックありがとうございます」と感謝されました。また、本件は後日運営のvityaさんに「本件をwriteupに書いてよいか」と聞いたところ以下回答がありました。)

・メニューの値段が違うことへの対処
 ・価格を精査の上、Flagを追加しました
・アナウンスなしの理由
 ・当該の問題に対するプレイヤーからのログをすべて遡った結果、ほかのプレイヤーからはその価格での送信がありませんでした
 ・口コミに金額が記載されており、基本的にはそちらのsubmitが優先されると想定しており、別解の存在を告知することで混乱が発生すると考え、アナウンスしていません

個人的には透明性が重要だと考えており、この発言に関してはwriteupで必要であれば引用していただいてもかまいません

運営メンバーのvityaさんより

つまり単独正解だったってこと!?嬉しい~!!!!!超嬉しい!!!!俺、なんかやっちゃいました!?

この幻の単独正解のトロフィーは持ち帰ることにします。家に。

落ち着いて口コミを見てなかった自分の手落ちもありますが、それ以上に運営側の大会運営や透明性への考えはとても素晴らしいと思います。
(他の問題でも別の根拠あるソースが参加者から提示されて正解になる場面もありました。唯一解になりそうな問題でも森羅万象を調べるのは不可能で、大会中別のソースが出てくる可能性もあるわけで、別解がつど答えになるかどうかを処理、判断するのは想像しなくても大変でしょう)

dream/introduction

Q.画像に写っているパイプオルガンがある施設の郵便番号を答えなさい。

当該写真。時折このオルガン、演奏会に使われるらしい。

Google画像検索結果から以下の「ポップタウン住道 オペラパーク」がヒットします。当該施設の郵便番号が正解。
https://ameblo.jp/jissi/entry-12316645389.html

serial/introduction

Q.これらの動画の背景に映っている航空機のシリアル番号は何か?

当該動画の切り抜き。もちもちしたANAのマスコットが踊る、という内容。

航空機のシリアルナンバーは尾翼付近にあるということを知ると、マスコットの後ろに映る機体に記載がある。「JA222A」を辿ると航空機の写真を上げるファンサイトがヒットする。機体記号 : JA222A (ANA) 航空機体ガイド | FlyTeam(フライチーム)から製造番号を拾って正解。

chain/introduction

Q.この看板の店の電話番号を答えよ。

当該写真。4Fに鳥貴族があることぐらいしか情報がない。
ロゴに無限マーク書いてあるの初めて知りました。

「4Fに存在する鳥貴族ってどれくらいあるんだろう」と鳥貴族公式HPで調べてみるも、実は7件ほど。それならと順繰りに付近のストリートビューを見ていくと、すでに閉店している「鳥貴族 広尾店」が看板も同じ。
更に確認したところ、ビルタイル等も一致しており、なおかつ階下のテナントがあったものの2020/07/24に移転しているよう。この問題は解答回数制限(3回間違えるとアウト)があるので慎重になるも、これが正解。

osprey1/military

Q.2023年11月29日、アメリカ軍のオスプレイ(V-22)が日本の屋久島沖で墜落した。この機体の番号と、墜落時のコールサインは何か。

とりあえず苦し紛れにChatGPTに入れてみるも、以下返答がありましたが不正解。となれば地道に探すしか無い。

2023年11月29日、アメリカ軍のCV-22オスプレイが日本の屋久島沖で墜落しました。この事故で使用されていた機体の番号は「0063」で、墜落時のコールサインは「ROMAN76」でした​ (Military.com)​​ (The Aviationist)​​ (Military.com)​。

当日の出力結果。ChatGPTも間違うのですべて信頼しないようにしましょう。

となると検索を繰り返す地道な作業に。「屋久島沖米軍オスプレイ墜落事故」という事件自体はすぐ出てくるので、情報を引っ張るために粘り強く色々なキーワードを試すことに。
Googleで「オスプレイ 事故調査報告書 "コールサイン"」と入れると下記URLが(南日本新聞の記事)がヒットしました。

機体を識別するコールサイン「GUNDAM(ガンダム)22」がわかればあともう一歩。実際にはチームメンバーのninoさんが見つけた、Twitter内での下のポストが決め手になりました。ありがとうninoさん&航空ファンの方。

osprey2/military

Q.2024年2月15日、ある米軍基地でこの事故に関する追悼式典が実施された。16:46:37ごろ、その式典はどこで実施されていたか。
OpenStreetMapのWay番号で答えよ。

この事故の追悼式典について調べると、日付とマッチするいくつかの情報が。どうやら横田基地で行われていたようです。

問題はこの式典が行われた場所。横田基地は広く(南北約4.5キロメートル、東西約2.9キロメートルで、絞り込むにはもっと分析が要る)
特徴的なものしては、後ろの「X」が書かれている建物でしょう。
ここでチームメンバーのninoさんが「横田ショッピングモール」であることを発見。角度的にこうなら、手前の運動場で間違い無さそうです。

ストリートビュー。横田基地は福生市の3分の1もあり明らかにデカい。

OpenStreetMapのWay番号が必要とのことで、運動場をクリックして表示されるWay番号(https://www.openstreetmap.org/way/810021666#map=19/35.74197/139.34281
を入力して正答。ほぼほぼninoさんからパスを受けたごっつあんゴールでした。

osprey3/military

Q.墜落した機体は2018年11月15日の夜、ある空港に駐機していたらしい。その地点の標高(フィート)を整数で答えよ。なお、各種データソースの時刻にズレはないと仮定してよい。また、空港に関する情報は最新のものを参照してよい(2018年時点のデータを用いる必要はない)。
ヒント:空港全体の標高ではなく、駐機していた地点の標高である。

解けなかった問題です。これまでの調査で、事故機の機体番号が「12-0065」であることはわかっていたので、それについて調べていると以下の写真が。(今度は海外の航空ファン写真投稿サイト)

https://www.jetphotos.com/photo/9144357より。
3時間以上苦しめられた問題であるにもかかわらずオスプレイが神々しく見える。

なんとオスプレイが駐機しているではありませんか。しかも場所も記載があります。Kraków John Paul II Balice Int'l - EPKK(クラクフ・バリツェ空港)という、ポーランドの空港です。更に当該空港には「第8航空基地」という軍事基地が併設。Facebookにも「オスプレイが来てる!」という書き込みもあり、ほぼこの空港で間違い無さそうです。

ここからが難問でした。

ヒントから空港全体の標高ではなく、駐機してある地点の特定、およびその標高がわからなくてはいけません。更に、この問題は解答回数制限(5回間違えるとアウト)があり、とても慎重に取り組まなければなりません。
アテ勘でメートルをフィートに直すのではなく、どこか公式サイトでの確固たるソースがあるんだろうと探してポーランド航空航法局のPDFまで読むも、確証のある記載はありませんでした。(この空港の離着陸時の滑走路の標高は記載がありましたが、駐機場はなかった)

場所まではわかった。ただ、その標高がわからなかった。

時間切れ間際に得られた確証のない標高をいくつか試すも残念ながら不正解。
大会終了後に聞いたら「EPKK "MIL APRON 3"」で調べると駐機場まで標高の記載があるPDFが出たそうで。本当にあと一歩でした。

終わりに

ずっと憧れた安楽椅子探偵&情報屋&ハッカーになった気がしてとても楽しかったです!!!チームメンバーの皆さんともわいわい協力しながら出来ましたし、とても楽しかった。思い切ってチームに参加して本当によかったです。Ultimate Detectiveのみんなに本当に多謝ですね。

大会としてはやはり「入門問題」がちゃんとあることが本当にありがたいです。自分のような右左もわからない初心者が取り組め、OSINTCTFの基礎が学べたような気がします。初心者への配慮が効いていてとてもよかったので次回も是非「入門問題」がほしいです!

ぜひ、ぜひ第2回の開催をよろしくお願いします!