---
title: "DIVER OSINT CTF 2026にソロで参加して、AIと一緒にOSINTを解いた記録"
slug: "diver-osint-ctf-2026-solo-writeup"
description: "DIVER OSINT CTF 2026にソロ参加し、AIを使いながらOSINT問題に取り組んだ記録。解法そのものより、調査の進め方、詰まった点、AIが効いた場面を振り返ります。"
publishedAt: "2026-07-28"
updatedAt: null
status: "published"
category: "security"
tags:
  - "osint"
  - "ctf"
  - "diver-osint-ctf"
  - "ai-workflow"
  - "writeup"
articleType: "learning-log"
source: "voice-interview"
publicRisk: "medium"
reviewNotes: "問題ごとのwriteup規定に従い、電話番号、個人名、住所、所有者名、個人プロフィールURL、地番、正確な座標、shopping2の回答FQDN、flagを記載しない。owner画像は問題の主要な手がかりで伏字指定もないため原画像を掲載し、whereとhousesの解法に無関係な車両ナンバーは匿名化する。解答URLを保持するQRコード画像は掲載しない。"
series: null
episode: null
audience: "engineers"
lang: "ja"
aiAssisted: true
humanReviewed: true
canonicalUrl: null
coverImage: null
external:
  qiita: null
  zenn: null
  note: null
  x: null
  youtube: null
  podcast: null
---

## 参加した結果

2026年7月25日から26日に開催された [DIVER OSINT CTF 2026](https://diverctf.org/) に、ソロチーム `shino` として参加しました。DIVER OSINT CTFは、公開情報を調査・分析する「現実世界指向」のOSINT CTFです。2026年大会はオンラインのJeopardy形式で、24時間、1チーム最大6人というルールでした。

本格的なOSINT CTFへの参加は今回が初めてです。結果は **6614点、865チーム中69位** でした。ソロ参加チームの中では9位です。`introduction` は全問解けて、最終画面にもかなり多くの緑色のカードを並べられました。

6人まで組める大会を1人で走ったことを考えると、かなり満足しています。AIを使って調査範囲を広げられたことも、この結果につながりました。

![DIVER OSINT CTF 2026でshinoが6614点・69位となったスコアボード](/images/articles/diver-osint-ctf-2026/scoreboard-01.png)

![競技中のスコア推移とカテゴリ別の解答割合](/images/articles/diver-osint-ctf-2026/progress.png)

## 解答ではなく、調査の進め方を振り返る

この記事は、全問のflagや答えを並べる完全解法集ではありません。どこに手がかりがあり、どこで見当違いをし、AIへ何を渡すと調査が進んだのかを中心に振り返ります。印象に残ったのは、AIだけで最後まで進める問題よりも、AIが見つけた入口を人間が観察と検証でつないだ問題でした。

## 初参加ソロで、AIと一緒に走ってみた

ソロ参加では、画像、地図、動画、ニュース、公開データベースをすべて自分で追う必要があります。手作業だけでは、1つの問題に深入りした瞬間に他カテゴリへ触れる時間がなくなります。

そこで、ChatGPTには主に次の仕事を任せました。

- 問題文から検索軸を増やす
- 元動画、古い記事、仕様書、法人情報への入口を探す
- 外国語の資料や制度を整理する
- 画像やスクリーンショットから候補を出す
- 一度外れた仮説を別の観点から調べ直す

ただし、AIの候補をそのままflagにはしませんでした。実際の調査は、だいたい次のループになりました。

```mermaid
flowchart TD
  A["問題文・画像・動画を確認"] --> B["AIで候補と検索軸を広げる"]
  B --> C["人間が観察し、公開情報で検証する"]
  C --> D["根拠を確認して提出する"]
```

根拠が足りなければ、AIで候補を広げるところまで戻ります。AIは調査の速度を上げてくれましたが、誤読や誤った候補も普通に出します。小さな文字を読み直す、問題文の指定を確認する、地図と写真の画角を合わせるといった最後の工程は、人間側に残りました。

## introduction: 基本問題でも、見る場所を間違えると詰まる

`introduction` は全問解けました。ただし、簡単に解けたというより、OSINTで「どこを見るか」を一通り体験できるカテゴリでした。

### 単語より、映像の文脈を読む

#### 8pm

朝鮮中央テレビで2026年7月2日の午後8時に放映されたニュースから、最初に取り上げられた具体的な施設を特定する問題でした。答えるのは個別の建物ではなく、敷地全体を示すOpenStreetMapのWay番号であることは問題文に明記されています。ChatGPTはYouTube上のニュース映像へかなり早くたどり着きましたが、その後の施設特定で詰まりました。

原因は、翻訳時に施設の文脈を落としていたことです。ニュース記事を読み直し、誰のための施設なのかを理解してからは、地図上の候補も探しやすくなりました。映像、ニュース、地図をつなぐときは、固有名詞だけでなく「誰のための、どのような施設なのか」という文脈を保つ必要があります。

### 画像の主役ではなく、背景を見る

#### arcade

ゲームセンターの写真から撮影地点を地図上で示す問題でした。店内の機械よりも、吹き抜け、天井装飾、窓の外に見える建物が手がかりになりました。以前の台湾旅行で似た空間を見た記憶もあり、まず台湾の商業施設らしいところまで当たりをつけました。

そこから「吹き抜け」「ランタン」といった画像内の特徴で施設候補を絞り、Google Mapsで周辺を探索しました。最後は窓の外に見える建物との位置関係と画角を照合して撮影地点を決めました。

![ゲームセンターの機械、吹き抜け、窓外の建物が写るarcadeの問題画像](/images/articles/diver-osint-ctf-2026/arcade.webp)

#### excited

YouTube Shortsで「興奮している」と話す男性が立っている場所を、Google Mapsの衛星画像に基づいて示す問題です。短い動画だけでは情報が足りませんでしたが、[配信元であるFOX 4の動画](https://www.fox4news.com/video/fmc-mjfbf0ezwb031u3h)へ戻ると背景のスタジアムが見えました。ショート動画を入口として扱い、情報量の多い元動画へ戻る動きが効きました。

#### lion

ニュース記事の写真から、ライオンの後ろに写る建物の広告を読み、その電話番号をハイフン・空白・国番号なしで答える問題でした。ただし、記事が伝える出来事をそのまま前提にすると撮影地へたどり着けません。この写真は別の場所で撮られた画像がデマに流用されたものでした。

そこで画像検索から元画像と検証情報をたどり、本来の撮影地を特定しました。その場所を起点に現地の道路と建物を照合すると、背景の広告が載る建物まで絞れます。目立つライオンを調べるだけでなく、画像がどこから持ち込まれたのかを戻って確認することが必要な問題でした。

#### where

1枚の写真から撮影地点を地図上で示す問題でした。画像を拡大すると、電柱に韓国の電柱番号を示すプレートが付いています。この番号の読み方を調べ、まず探索する地域を大きく絞りました。

![whereの問題画像に写っていた韓国の電柱番号プレートの拡大](/images/articles/diver-osint-ctf-2026/where-pole-number.webp)

電柱番号から得た候補を確認するため、周辺をGoogle Mapsで散策しました。元画像では、壁の質感と自動車ブランドの看板が特徴的です。ただし最新のGoogle Maps画像には看板が写っておらず、そこで少し戸惑いました。最後は窓の形と建物全体の構造を元画像と照合して場所を確定しました。

![ハングル、電柱番号、店舗ロゴが手がかりになったwhereの問題画像。車両ナンバーは匿名化済み](/images/articles/diver-osint-ctf-2026/where-redacted.webp)

### AIのOCRを、人間が読み直す

#### container

黄色いコンテナを最近まで運んでいた船を特定し、船舶に固有のIMO番号を答える問題でした。画像認識AIはコンテナ上の文字を少しずつ間違え、その誤差によって番号形式も検索方向もずれていきました。最終的には自分で文字を読み直し、修正した番号をAIへ渡して船舶情報へ進みました。

![港に置かれた黄色いコンテナと周囲のコンテナが写るcontainerの問題画像](/images/articles/diver-osint-ctf-2026/container.webp)

#### momo

2026年4月に撮影された航空機の写真から、写っていない機体記号を調べる問題でした。機体記号を画像から直接読めないため、特徴的な塗装を識別子として検索しました。番号が見えなくても、特別塗装や運用情報から同じ対象へたどれることがあります。

![特徴的な桃色の塗装が施された航空機を写したmomoの問題画像](/images/articles/diver-osint-ctf-2026/momo.webp)

#### owner

写真の車両を保有する国家を英語で答える問題でした。車両そのものではなく外交官ナンバーの制度を調べ、プレートの先頭部分に意味があると分かると、調査対象が車種から番号体系へ切り替わりました。

![外交官ナンバーを付けた車両を写したownerの問題画像](/images/articles/diver-osint-ctf-2026/owner.webp)

#### read_qr

QRコードに記録されたURLをそのまま答える短い問題でした。ここでは検索よりも、コードを実際に読み取り、文字列を取り違えず確認することが求められました。

## geo: 地図問題は、最後は人間の目が効く

Geoカテゴリでは、AIが出した候補よりも、写真内の小さな違和感や地図上の位置関係が決め手になる場面が多くありました。

### 災害種別を読み違えると、探索範囲が広がる

#### F3

災害の解説パネルが展示されている建物を探す問題です。パネル内の被災写真が撮影された地点ではなく、パネルそのものがある建物を答える必要があります。最初は地震に関する展示だと思っていましたが、`F3` を竜巻の強さを表す藤田スケールの階級として読み直すと、候補施設が一気に減りました。

<details>
  <summary>F3の問題画像を表示（災害被害の写真を含みます）</summary>

  ![F3の竜巻被害を解説するパネルを写した問題画像](/images/articles/diver-osint-ctf-2026/f3.webp)
</details>

短いタイトルや記号を「ただの問題名」として流すと、広い範囲を探すことになります。画像だけでなく、問題名も調査対象でした。

### 元記事が消えていても、画像の経路は1つではない

#### evacuation

ニュースサイトでファイル名まで指定された、石油生産施設の火災に関する報道写真の撮影地点を地図上で示す問題でした。元の記事を開いた時点では掲載画像がすべて表示できず、画像サーバーが停止しているか、アクセス制限がかかっているように見えました。そこで指定された画像リンクを複数のウェブアーカイブサービスで検索し、写真を取得できる保存ページを見つけました。

写っていたのは火災現場ではなく、被害に遭った女性が涙を拭いながら火事について説明を受けている場面です。記事を読むと、住民は地区内のホテルへ避難していたことが分かりました。そこで周辺ホテルを候補にし、写真の背景とホテルの内観を見比べました。Googleの画像検索やGoogle Mapsだけでは比較できる写真が少なく、Booking.comなどにある宿泊者の投稿写真の方が、ロビーや共用部を多くの角度から確認できました。

最後は候補ホテルの投稿写真を見続け、背景の内装が一致する場所を特定しました。元ページを開くことだけに固執せず、記事から施設の種類を読み、用途に合った画像アーカイブへ移ることが重要でした。

### 場所の次に、制度や計画を調べる

#### sprej

動画の1分13秒に映る、落書きされた物件の2026年時点の所有者を調べる問題でした。背景に銀行のロゴが写り、ニュース内でも地区名が言及されていたため、チェコ国内の場所まではすぐに特定できました。

チェコでは、国家機関のČÚZKが[不動産登記情報を提供しています](https://cuzk.gov.cz/KatastrNemovitosti)。公式システムで対象物件を確認し、登記上の名義人へたどり着きました。場所を見つけたあと、その国の公的な不動産情報へ切り替えることが必要な問題でした。

#### kaitai1

写真の電柱のすぐ奥に見える土地について、住居表示ではなく地番を数字で答える問題でした。土地の場所はほぼ分かっていたのに、問題が求める「地番」を住居表示と取り違えてattemptを使いました。

正しい地番は、Google Mapsで特定した周辺と、[東京都主税局が公開する世田谷区の地籍図](https://www.tax1.metro.tokyo.lg.jp/chisekizu/data/setagaya/index2.html)を見比べて探しました。町丁名から該当する図郭を開き、道路の曲がり方、区画の輪郭、隣接する土地との位置関係を一つずつ合わせると、写真の電柱の奥にある区画を地籍図上でも特定できます。

地図サービスで場所を見つけることと、その土地の地番を答えることは別の作業でした。最後は候補も複数あり、Google Mapsと地籍図を何度も見比べてから提出しました。場所が分かっても、問題文が求める識別体系と、それを確認できる公的資料まで進まなければ正解にはなりません。

![電柱とその奥の土地を手がかりにしたkaitai1の問題画像](/images/articles/diver-osint-ctf-2026/kaitai.webp)

#### kaitai2

`kaitai1` の土地が更地になった原因とみられる計画を調べ、完了後に建設される具体的な事物をWikidata IDで答える問題でした。その土地だけでなく、道路を挟んだ前後にも空き地が同じ方向へ並んでいました。個別の建て替えではなく、道を通すために土地を買収しているのではないかと考えると、次に探すべき資料が都市計画道路の計画図へ変わります。

自治体が公開する計画図の線形を地図と見比べると、空き地の並びと一致しました。買収されたように見える土地が数年単位で更地のまま残っていることも、計画が完了していないという見立てと整合します。現地の形から計画の種類を推測できたため、計画名と将来建設される事物への接続は比較的早く進みました。

### 地味な模様を見落とさない

#### houses

手がかりの少ない写真から撮影地点を地図上で示すhard問題でした。画像を拡大してマンホールを見ると、左側に描かれた建物が物見櫓のように見えました。

![住宅街、電柱、マンホールが写るhousesの問題画像。車両ナンバーは匿名化済み](/images/articles/diver-osint-ctf-2026/houses.webp)

![housesの問題画像に写っていたマンホールの模様を拡大した画像](/images/articles/diver-osint-ctf-2026/houses-manhole-detail.webp)

そこで「物見櫓 マンホール 奈良」といった語で検索すると、田原本町のマンホール意匠と一致する画像が見つかりました。

![検索によって田原本町のマンホール意匠へたどり着いた画面](/images/articles/diver-osint-ctf-2026/houses-manhole-search.webp)

次に注目したのは、写真の奥に見える橋のようなガードレールです。そのさらに奥にも建物が見えるため、広い河川ではなく、小さな川を挟んで両岸に建物が並ぶ場所だと考えました。田原本町内でこの条件を満たす川沿いを探し、道路の向き、橋、住宅の並びを元画像と照合して撮影地点を絞りました。AI画像解析が拾わなかった地味な模様を、人間の目が拾った問題です。

## recon: 見た目より、通信とソースを見る

#### shopping1

クレジットカード情報の漏洩が疑われるECサイトを調査し、改竄に使われた配信ライブラリのソースコードを公開するGitHubアカウントを特定する問題でした。これは検索する前に、ブラウザのDevToolsでNetworkタブを開くと一気に進みました。決済操作で発生するリクエストを見ると、ページ本体とは異なる不自然な送信先が確認できたからです。

![shopping1で決済操作時の不自然な送信先を確認したDevToolsのNetworkタブ](/images/articles/diver-osint-ctf-2026/shopping1-network.webp)

そのURLへ直接アクセスし、公開されていたGitHubへのリンクをたどると、問題が求めるアカウントに到達しました。画面に表示されたHTMLだけを読むより、ブラウザが裏で「どこへ何を送っているか」を見る方が早い問題でした。

#### shopping2

`shopping1` で特定した攻撃者が並行運用する、別キャンペーンサイトのFQDNを探す問題でした。前問で見つけたGitHubアカウントにはgistもあり、最初に見たときは用途が分かりませんでした。しかし `shopping2` の問題文を読んだところで、前問の続きとして調べるべき公開物だと気づきました。

gistに残されたCloudflareのスクリーンショットでは、目的のドメインはマスクされていました。一方で、Workersの識別子までは隠れていませんでした。その値を検索すると関連サイトが見つかり、前問から続くインフラを接続できました。

```mermaid
flowchart TD
  A["Networkタブで通信先を確認"] --> B["送信先URLを直接調べる"]
  B --> C["GitHubアカウントを特定"]
  C --> D["gistを次問の手がかりとして読む"]
  D --> E["画像に残ったWorkers識別子を抽出"]
  E --> F["識別子で検索し、別サイトを確認"]
```

この2問では、検索より先にブラウザの観察範囲を広げることが重要でした。通信先、公開リポジトリ、gist、スクリーンショットを別々の資料としてではなく、同じ主体が残した一続きの痕跡として見ると、前問の調査結果を次問へ再利用できます。

## history / company / hardware: AIが強かった調査

歴史資料、法人情報、製品仕様のように、広い公開情報から入口を探す問題ではAIがよく働きました。

#### kohaku

2010年に解体された建築家・白井晟一の自邸「虚白庵」について、2026年現在、その跡地に建つ店舗の正式な日本語名を答える問題でした。白井晟一を追うファンや地元の方が、取り壊しについて写真付きで記録したブログを見つけ、その画像から跡地の位置を特定しました。現在の地図と店舗公式サイトを照合し、最後に正式表記まで確認しました。

#### 39

1970年冬の自動車競技会で、ゼッケン39番の車両が利用したと考えられる市販車の車種名を、メーカー名を除いて答える問題です。まずChatGPTは、自動車クラブの公式沿革から、座標付近の凍結した湖面で1960年代から続く競技会を見つけました。さらに1970年4月号の自動車雑誌の目次に、同時期の氷上競技の記事があることを確認し、対象イベントの確度を上げました。

次に映像のサムネイルから39番車を確認し、ドアのない2人乗りオープンボディ、深く切り欠かれた側面、独立した丸いフェンダー、丸型ライト、細いグリルといった形状を拾いました。その特徴を当時の市販車カタログと照合すると、1970年に少数販売された車種のFRPボディとよく一致します。

ただし、39番車と車種名を直接結ぶエントリーリストや写真キャプションまでは見つかっていません。映像で確認できる車体形状と市販車資料を結んだ、確度の高い推定として提出しました。AIが候補を出したことよりも、直接確認できた事実と形状照合による推定を分けて扱ったことが重要でした。

#### cooking

ボリス・ジョンソン元英国首相夫妻が訪れた料理教室の運営法人を調べ、会社法人等番号を答える問題でした。これは公開情報の調査から回答まで、ほぼすべてAIに任せました。

#### arctic

インドで使われていた偽造外交官ナンバープレートの登録先法人を特定し、Corporate Identification Numberを答える問題でした。こちらも調査から回答まで、ほぼすべてAIに任せました。

#### yonezu1

米津玄師のパフォーマンスに登場したサメ型の乗り物について、使われていると考えられる駆動プラットフォームのメーカーを英語で答える問題でした。AIは最初、車体中央に1輪を持つドリフトカートを候補に挙げました。もっともらしい説明だったため一度提出しましたが、正解ではありませんでした。

そこで映像を見直すと、サメの口元の左下に、円周上へ小さなローラーが並ぶ車輪が見えました。黒い多角形の中央ハブと小さなフェンダーも含めてAIへ伝え直すと、前輪にオムニホイールを使う別のモビリティ製品へ候補が変わりました。製品の構成と映像の足元が一致することを確認し、回答を修正できました。

```mermaid
flowchart TD
  A["AIが中央1輪の製品を候補にする"] --> B["映像の足元を見直す"]
  B --> C["ローラー付き前輪を発見"]
  C --> D["オムニホイールを条件に再探索"]
  D --> E["別製品へ候補を修正"]
  E --> F["製品構成と映像を照合"]
```

AIが外したときに同じ質問を繰り返すより、「映像のこの形が候補と違う」と観察結果を追加した方が、調査は大きく動きました。

#### yonezu2

`yonezu1` で特定した製品の公開仕様書から、製品を回転させるコマンド名とコマンドIDを調べる問題でした。仕様書の発見から該当項目の特定まで、すべてAIが進めてくれました。

## misc / transportation / crypto: 資料の種類を切り替える

### 画像の出典と、現在の姿を追う

#### nui

ぬいぐるみ写真の撮影日と撮影機材を、`YYYYMMDD_機材名` の形式で答える問題でした。手元の画像のEXIFには手がかりがなく、画像検索でNASA由来の画像へたどり着いてから、AIに撮影情報の調査を任せました。配布画像のメタデータが空でも、掲載元のページや画像管理情報には撮影情報が残っていることがあります。ファイルだけで終わらず、出典そのものを探す必要がありました。

![地球と星空を模した帽子をかぶるぬいぐるみを写したnuiの問題画像](/images/articles/diver-osint-ctf-2026/nui.webp)

#### buyout

2024年にザンビアで摘発された大規模詐欺拠点について、2026年現在、その建物で営業しているホテルの屋号を答える問題です。ChatGPTでは候補を絞れず、高級住宅地という情報から地域を狭め、周辺のホテルを一覧して旅行サイトやレビュー写真を見比べました。摘発時の映像に写る渡り廊下と同じ構造を見つけたとき、地図以外の写真が決め手になりました。

#### paint

`The lady at the hotel` と称される絵画について、反転された同じ構図の作品が別の題名で紹介されていることを手がかりに、作者と題名を調べる問題でした。問題文の条件に合わせて画像を反転して検索し、作者名とSNS上の投稿を組み合わせて作品情報へ進みました。画像検索では、問題文が示す画像の加工条件を検索へ反映することが重要でした。

### 船舶、事故報告、動画の時系列をつなぐ

#### dx

2026年2月から3月にグリッド `31FEV` 内の陸地で行われたイベントを特定し、そこで使われた船舶が最後に停泊した港を地図上で示す問題でした。イベントの場所が分かっても終わりではなく、関係船舶を特定し、さらに寄港履歴へ進む必要があります。地理情報、イベント記録、船舶情報を順番につなぐ問題でした。

#### conflicted

日本国内で、ソ連設計の小型航空機が接触した地上構造物の位置を示す問題でした。「旧ソ連設計」という言葉から軍事用途を先に想像し、その方向で探して時間を使いました。しかしChatGPTから競技用としても使われる機体だと教えられ、調査の方向を切り替えました。

該当する航空事故調査報告書を見つけると、事故が起きた場所と接触した構造物が細かく記載されていました。その記述を地図と照合し、問題が求める構造物の位置を回答しました。

#### telelens

公開動画が撮影された日を、現地時間の日付で答える問題でした。特徴的な塗装の航空機について、Xへ画像を投稿している人が複数見つかりました。それぞれの投稿日時から航空機が現地に滞在していた期間を把握し、その期間内で雨が降った日を調べました。動画内でも雨が降っていたため、滞在期間と天候が重なる日まで候補を絞って回答しました。

### トランザクションと報道を読み分ける

#### stable

暗号資産アドレスだけを手がかりに、そのアドレスと関係する店舗名を現地語で答える問題でした。ブロックエクスプローラーの履歴をChatGPTへ渡すと、少額の決済・返金テスト、顧客からの継続的な入金、まとまった額の償還先への出金という並びから、店舗の売上ウォレットではないかという仮説が出ました。

そこから、チェーンと通貨に対応する決済サービスの導入事例を探し、稼働開始時期、対象店舗、ガスレス決済の方式を照合しました。候補は同じ飲食チェーンの2店舗まで絞れましたが、導入発表だけではどちらかを決められません。最後はオンチェーンで繰り返し現れる決済額を各店舗のメニュー価格と組み合わせ、取引時刻が営業時間内かも確認して、一方の店舗を有力と判断しました。

| オンチェーンで見えたこと | 外部情報との照合 |
| --- | --- |
| 少額の入金と返金 | 決済開始前の動作確認 |
| 継続的な入金と償還先への出金 | 店舗売上ウォレットという仮説 |
| 最初の実利用とみられる時期 | 決済サービスの導入発表 |
| 頻出する決済額 | 店舗ごとのメニュー価格 |
| 個々の取引時刻 | 営業日と営業時間 |

APIを直接渡せない場面でも、スクリーンショットや表にした取引履歴を共有すれば、AIは項目の読み方と次に照合すべき公開情報を整理できます。一方で、最有力候補を「確定」と扱わず、支店を区別する証拠の強さまで確認する必要がありました。

#### druk

2023年に報じられた、ブータンのダガナ県にある大規模なビットコイン採掘施設の位置を地図上で示す問題でした。記事から、施設がダガナ県の森林地帯にあり、農村地域の中等学校付近にあることまでは分かりました。

そこでGoogle Mapsを衛星画像に切り替え、条件に合う地域を一つずつスクロールして探しました。学校の周辺にある森林と大規模施設を愚直に見比べていくと、記事の条件に合う場所を発見できました。手がかりが少なくても、地域とランドマークの種類まで絞れれば、最後は衛星画像を目で追う方法が使えます。

## 解けなかった問題と、時間の使い方

解けた問題だけを並べると順調に見えますが、最後まで残した問題もかなりあります。全問題文を見返すと、同じカテゴリ内でも必要な資料や調査の深さが大きく違いました。

- Geoでは、ミュージックビデオの歩道橋近くに開店したカフェを探す `stargazing`、公的データから軍事レーダーのレドーム標高を求める `elevation`、動画に写る彫刻の作者を探す `trot`、`kaitai1` の土地に昭和後期にあった店舗を調べる `kaitai3` が残りました。
- Historyでは、1955年の事故記録から車両ナンバーを調べる `accident` と、現代芸術家が1961年に教育機関へ支払った金額を調べる `tuition` まで手が回りませんでした。
- Miscの `sunny_saturday` は、映像、曜日、天気から撮影日時を分単位で絞る問題でした。Transportationの `air2air2` と `250` も、航空機の登録番号とコールサイン、特定日時のバス位置を求める問題で、時系列の検証に時間がかかりそうでした。
- Militaryの `diode` は部品メーカーから政府公開の法人番号までたどる問題、`0802` は空爆後の写真を扱うジオロケーション問題でした。どちらも、ほとんど触れる時間を残せませんでした。
- SNSの `link` は、ある人物が訪れた場所と座席番号を公開情報から調べる問題でした。アカウント作成が必要なサービスや投稿量の多い対象では、探索がしらみつぶしになりがちでした。
- Disinfoの `rch` は、ある輸送機に関する主張を検証し、輸送の目的と主要貨物を1文で説明する記述式問題でした。Reportの `suspicious_acft` はRFIに回答するオープンエンド形式で、通常のflag問題とは異なる調査と論証が求められていました。

ソロでは、1問を深く追うほど他カテゴリを開く時間がなくなります。「あと少しで解けそう」という感覚に引っ張られ、切り替えが遅くなった場面もありました。次回は、一定時間で次の問題へ移り、AIに裏で候補を整理させるなど、並行の仕方をもう少し決めておきたいです。

もう一つの反省は、普段の調査でGoogleやXなどのSNSに頼りすぎていたことです。ホテルの内観なら予約サイトの宿泊者レビュー、土地の名義なら現地の公的登記システムというように、対象や国によって強いデータソースは変わります。現地で主に使われるサービスも含め、最初から候補となる情報源を広く考える必要があると分かりました。

競技後に他の参加者のwriteupを読むと、解けなかった問題だけでなく、解けた問題にも別の短い経路がありました。CTFは終了画面で終わりではなく、他の人が何を手がかりにしたかを読むところまで含めて学びになります。

## AIはOSINTでかなり使える。でも最後は検証がいる

今回の24時間で、AIに向いている仕事と、人間が持つべき仕事が少し見えました。

| AIが強かったこと | 人間が担ったこと |
| --- | --- |
| 公開情報の入口と検索語を増やす | 問題文のニュアンスを読み切る |
| 元動画、古い記事、仕様書を探す | 小さな文字や画像の細部を見る |
| 法人情報や公開DBの制度を整理する | 地図と写真の画角を合わせる |
| 外国語資料を横断して候補を出す | 候補が本当に同じ対象か検証する |
| トランザクションや番号体系を説明する | 誤答後に違和感を言語化する |

AIの回答を検索結果の1つとして扱うと、とても強いです。候補を大量に出し、知らない制度の名前を教え、長い資料の読む場所を絞ってくれます。

一方で、AIが自信を持って誤った候補を出すこともありました。OCRが1文字ずれる、映像のタイヤ形状を見落とす、翻訳で施設の意味を薄めるといった小さな誤差が、その後の検索全体を別方向へ運びます。

AIはOSINTのかなり強い相棒になる一方で、最終的に「それは本当にそうか」を見るのは人間でした。AIと人間を分ける境界は、検索する側と考える側ではありません。AIで探索を広げ、人間が観察と根拠で狭める、という往復にありました。

## まとめ: OSINT CTFはかなり楽しかった

初めての本格的なOSINT CTFをソロで走り、865チーム中69位、ソロ9位という結果を残せたことにはかなり満足しています。何より、純粋に楽しかったです。

Geoでは画像と地図を見比べ、ReconではNetworkタブとソースを読み、HistoryやCompanyでは古い資料や公開DBをたどりました。同じOSINTでも、カテゴリごとに必要な観察と資料がまったく違います。

AIが思っていた以上に使えることも分かりました。ただし、候補を信じて誤答したり、問題文の読み違いで遠回りしたりもしています。最後に効いたのは、背景の建物、マンホール、電柱、画角といった地味な手がかりを見直すことでした。

OSINT CTFは検索力だけの競技ではなく、観察、仮説、検証、そして粘りの競技でした。AIを使っても、最後に画面を見て「ここだ」と決める瞬間は人間に残ります。そこが、かなり面白かったです。

またDIVER OSINT CTFや、別のCTFにも参加したいと思います。

## 参考リンク

- [DIVER OSINT CTF 公式サイト](https://diverctf.org/)
- [DIVER OSINT CTF プレイヤーズガイド](https://diverctf.org/players_guide.html)
- [DIVER OSINT CTF 公式GitHub Organization](https://github.com/diver-osint-ctf)
- [DIVER OSINT CTF 公式Writeups](https://github.com/diver-osint-ctf/writeups)
- [40548F/kn1cht: DIVER OSINT CTF 2026 Writeup](https://zenn.dev/kn1cht/articles/diver-osint-ctf-2026-kn1cht)
- [k3nlatte: DIVER OSINT CTF 2026 Writeup](https://zenn.dev/k3nlatte/articles/605b0a62069c9d)
