【画像OSINT編】写真から場所と時刻を当てるGeolocationの作法|CTF思考フレームワーク #69
広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

写真から場所を特定するって、影とか看板とか見るんだよね?📷

それも一部です。EXIF メタデータ、建物の特徴、植物の生育、天気、影の方向、人々の服装、看板の言語、車のナンバープレート、車両通行方向――数十の手がかりを組み合わせて、ピンポイントで場所を当てる Geolocation の技術です。
画像 Geolocation は、Bellingcat や OSINT コミュニティで磨かれてきた技術。EXIF データ(投稿先の処理に頼らず、公開前に自分で位置情報を削除する)、影の方向と時刻から緯度推定、建物・植物・看板の照合――Geoguessr のような訓練ツールもあり、世界的なコミュニティが発達しています。

写真から緯度まで特定できるんだ…SNS投稿、気をつけよう。
この記事は、CTF思考フレームワーク第69回。画像 Geolocation の作法と代表的ツール(Google Earth・Mapillary・OpenStreetMap・SunCalc)、Bellingcat の事例研究、自分の投稿写真から漏れる情報のチェック方法を整理します。
📖 この記事はシリーズの一部です
「CTF思考フレームワーク」 #69 / 全86記事 → シリーズ一覧を見る →
🗺️ 1枚の写真から「ここは渋谷スクランブル交差点の北東角・午後3時頃」と当てる。GeoGuessrの腕がそのままOSINTに転用できるジャンルで、CTFのMisc / OSINTで人気です。
画像ジオロケーションの三本柱:①メタデータ(EXIF GPS)、②地形・建築・看板(visual cue)、③太陽角度・影(時間と緯度)。複数手がかりを掛け合わせて精度を上げます。
写真から場所と時刻を当てるGeolocationの作法🗺️

画像OSINTは「写真の中の小さな手がかり」から場所と時刻を当てる職人芸🗺️
先に意味を押さえておくと読みやすい用語です。
- CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
- OSINT: 公開されている情報だけを集めて分析する調査手法です。
- 脆弱性: ソフトや仕組みにある弱点。攻撃者に悪用されると不正アクセスにつながります。
👀 観察フェーズ:まず何を見る?

写真を見たらEXIF・背景・植生・標識・建物・影の6要素を順に観察🔍
画像を渡されたらまずEXIF確認、次に画像内の固有要素を全部リストアップ。看板の言語、車両ナンバー、植生、空の色、影の向き、建物のスタイル。
- EXIF(GPS座標、撮影時刻、カメラ機種)
- 看板・標識の言語・書体
- 建築様式(屋根の形、外装材)
- 植生(樹種、季節指標)
- 車両ナンバープレート、運転席位置
- 太陽角度・影の方向(時刻+緯度ヒント)

GeoGuessrで磨かれた「世界の風景識別力」がそのまま使えるんだね💡
🤔 仮説フェーズ:攻撃者は何を考える?

画像OSINTの4視点。
🕶️ 攻撃者・調査者は「EXIFが残っていれば一発、無くても他の手がかりで地域を絞り、Google Earth / Street Viewで虚像合わせ」と段階的に攻めます。Yandexのreverse searchが景色画像で強く、Google Lensは建物・看板の文字読み取りに優秀。
📍 仮説①:EXIFメタデータ
GPS情報があれば一発。exiftoolで全フィールドを抽出。SNS投稿時に自動削除されることも。
🌳 仮説②:背景・植生・建物
ヤシの木があれば暖地、針葉樹なら寒地。建物の様式から地域を絞る。
🚗 仮説③:標識・ナンバープレート・看板
言語・フォント・色から国を特定。道路標識のデザインは国ごとに違う。
🌞 仮説④:太陽・影
影の長さと方向から緯度と撮影時刻を逆算。SunCalc等のツール。

画像1枚に想像以上の情報が埋まってるんだね😲
🔬 検証フェーズ:どうやって確かめる?

ツール: exiftool / Google Lens / Yandex / SunCalc / Mapillary。Mapillaryは現地ストリートビュー的に使える🧪
まずEXIFをexiftoolで全項目チェック。GPSがなければ、画像の特徴的部分をクロップしてYandex / Google Imagesにかける。建物名や店舗名が読めればSNSの位置情報投稿と突合。
# EXIF全項目
exiftool image.jpg
# GPS座標があれば一発
# 緯度経度をGoogle Mapsに貼る
# 太陽角度から時刻・緯度推定
# SunCalc.org(影の長さと方向で時刻特定)
# 画像クロップ → reverse search
# 看板部分のみ切り取って Yandex Images へ

CTFのGeolocation問は「太陽の角度+建物の向き+看板の言語」の組合せが定番だね💡
⚔️ 攻撃フェーズ:実際の手口

Geolocation実践3手法。
ジオロケーション手順例:①EXIF、②画像全体reverse、③特徴部分クロップreverse、④地域言語特定、⑤Street Viewで虚像合わせ、⑥SNSの位置情報投稿との突合、⑦時刻推定(影・太陽)。
# 画像クロップで特徴抽出(Python)
from PIL import Image
img = Image.open('photo.jpg')
crop = img.crop((100, 100, 400, 300)) # 看板部分
crop.save('sign.jpg')
# → sign.jpg を Yandex / Google Lens にかける
# Mapillary / KartaView:第三者撮影の地図画像
# Google Earth Pro:歴史画像(時系列で地形変化)
Bellingcatの「ジオロケーション・チャレンジ」ブログは学習に最適。実際のシリア紛争画像の特定プロセスが公開されており、技術と倫理を同時に学べます🌐
exiftool image.jpgでGPS・撮影日時。SNS投稿で除去されてる場合のみ次へ。
特徴的な建物・橋・看板をストリートビュー巡回で特定。膨大な作業だが確実。
影の方向と長さから撮影日時を分単位で逆算。場所が分かれば時刻も逆算可。
🛡️ 防御フェーズ:どう守る?

画像OSINT対策の3鉄則!
個人としては「投稿前にEXIF除去」「自宅から○km圏内の写真は遅らせて投稿」「子供の制服や学校名が映らないよう注意」など、日常の小さな配慮で漏洩を大きく減らせます。
- SNS側の処理に依存せず、投稿前にEXIF・位置情報を自分で削除する
- スマホ撮影時のGPSタグを用途別に切替
- 位置投稿は遅延させる(リアルタイム禁止)
- 自宅・職場・学校の特定要素(玄関・制服)を映さない
- 会社の社用画像はメタデータ除去ポリシー
- 配信ストリーマー:背景とウィンドウ反射に注意
スマホ写真にはGPS・機種・撮影日時が埋まる。ScrubExif等で除去。
住所が分かる看板・郵便受け・車のナンバーを写さない。鏡や窓の反射も。
端末やSNSアプリの位置情報付与設定を確認し、不要なら無効化。

「写真は語る、想像以上に」。1枚の油断が住所バレに繋がる💪
🧪 OSINT専用の使い捨て環境
OSINT調査を「される側」にしないためにも、調査ボックスを分けるのがプロの作法です。💻 ConoHa VPSならコマンドひとつで使い捨ての調査環境を作れ、安全な環境を用意できます。
※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。
⚠️ よくある落とし穴
- EXIFを「ない」と判断する前にRAWファイルや別解析ツールを試さない
- 看板の言語+文字を読まずに国を推定
- reverse searchで類似画像と一致画像を混同
- 太陽角度推定で「南半球」を考慮し忘れる
- タイムスタンプのタイムゾーンを間違える
- Street Viewの古い画像と最新を見比べず誤判定
🧰 ツール早見表
| ツール | 用途 | 備考 |
|---|---|---|
| exiftool | メタデータ | CLI標準 |
| Yandex Images | reverse search | 景色・建物に強い |
| Google Lens | 看板文字読取 | スマホ連携 |
| SunCalc.org | 太陽位置計算 | 影から時刻推定 |
| Mapillary / KartaView | 第三者撮影地図 | Street View代替 |
🎓 本気で学びたい人へ
OSINTや脅威インテリを職業として目指したい方へ。🎓 ササエルはセキュリティ・インフラを体系的に学べるスクールです。
📚 もっと深く学びたい人へ
体系的に攻撃と防御の両面を学びたいなら『ホワイトハッカー入門 第2版』が分かりやすい入口です📚
📚 次に読みたい
- SNS・人物OSINT編|CTF思考フレームワーク #68
- ドメインOSINT編|CTF思考フレームワーク #70
- OSINT入門編|CTF思考フレームワーク #67
- OSINT総まとめ編|CTF思考フレームワーク #71
✍️ 学んだことを発信する
調査レポートやノウハウをブログでまとめるならConoHa WINGが手軽です。
⚖️ 大事なお約束
この記事の手法は、必ず自分の環境か、許可されたCTF・脆弱性報奨金プログラム(HackerOne、Bugcrowd等)で試してください。他人のサービスに無断で攻撃を仕掛けるのは不正アクセス禁止法違反、立派な犯罪です。学んだ知識は守る側で活かしましょう🤝
この記事は合法な学習・防御目的での解説です。許可のないシステムへの攻撃は犯罪になります(不正アクセス禁止法ほか)。検証は必ず自分が管理する環境・CTF・公式ハンズオンで行ってください🙏



