OSINT (Open Source Intelligence) は、公開情報だけを使って人物・組織・インフラ・出来事を調査する手法と文化の総称。攻撃側のレコン、防御側の脅威インテリジェンス、調査ジャーナリズム、デジタルフォレンジック — 用途は広い。「情報の半分以上は表に出ている」を前提に、いかに早く・正確に・倫理的に拾い上げ組み立て直すかが OSINT の本質である。
難しく見えても本質は次の 3 つだけ持ち帰ればいい。(1) OSINT は 「公開情報だけ」で人・組織・出来事を再構成する手法。不正アクセスやハッキング行為ではない。(2) 鉄則は 「単一ソースを信じない / 最低 3 つの独立ソースで裏取り」 (triangulation)。これがないと根拠の薄い推測が一人歩きする。(3) 「やれること」と「やってよいこと」は別物 — 法律と倫理が一線を引いており、これを踏むと自分が違法側に転落する。— この 3 つを軸に各章を開いていけば迷子になりにくい。
OSINT の歴史 #
OSINT という用語は第二次世界大戦期に遡る。1941 年、米国は Foreign Broadcast Monitoring Service (後の FBIS) を設立し、敵国・中立国のラジオ・新聞・出版物を翻訳分析した。冷戦期にも公開情報がインテリジェンスの 80% を占めるとされ、ソ連の鉄道時刻表・農業統計・地方紙の死亡記事から軍事動向を推定していた。
inurl: filetype: intitle: を組み合わせて機密情報を発掘する技法が体系化。SNS (Facebook 2004, Twitter 2006, LinkedIn 2003) も登場。OSINT サイクル #
軍・情報機関で長年使われてきたインテリジェンス・サイクルは OSINT にもそのまま当てはまる。「ぐるぐる回す」のがポイントで、得られた情報から次の質問が生まれて再収集に戻る。
得られた答えはたいてい新しい問いを生み、Planning に戻る。実務では 1 案件で何周もする。
初学者が一番嵌るのは 「興味のおもむくまま無限に検索を続け、結局何も得ずに 3 時間溶ける」事故。これを防ぐ実務的な 3 ルール。(1) 問いは 1 つに絞る — 「この写真の撮影地はどこか」「このドメインの所有者は誰か」のレベルまで小さくする。(2) 1 セッション 30〜60 分でタイマー — 切れたら必ず一度立ち止まり、得た情報・残った仮説・次の問いを書き出す。(3) URL / スクショ / 取得時刻を必ずメモ — 後の裏取り、レポート化、自分の判断の検証に効く。これだけで「結果ゼロで時間だけ溶ける」事故の大半は防げる。
データソースの分類 #
| カテゴリ | 代表例 | 何が分かるか |
|---|---|---|
| Web / ブログ | 公式サイト, ニュース, IR 資料, 求人 | 組織情報・連絡先・技術スタック |
| SNS | Twitter/X, Facebook, Instagram, LinkedIn, TikTok, Telegram | 人脈・移動・嗜好・タイムライン |
| 画像・動画 | YouTube, TikTok, Flickr, 衛星画像 (Maxar, Planet, Sentinel) | 場所・時刻・人物の同一性 |
| 地図・地理 | Google Maps Street View, OpenStreetMap, Mapillary | 街路特徴・建物配置 |
| 公的記録 | 商業登記, 不動産登記, 訴訟記録, FOIA 開示 | 役員・株主・係争 |
| DNS / IP / 証明書 | WHOIS, crt.sh, Shodan, Censys | インフラ構成・脆弱性 |
| コード漏洩 | GitHub, GitLab, Pastebin, 公開 S3 | 認証情報・内部設計 |
| 漏洩データ | Have I Been Pwned, Dehashed | パスワード・メール |
| デバイス情報 | EXIF, IPTC, ID3, FP | 撮影機器・ジオタグ |
日本では商業登記は登記情報提供サービスで手数料を払えば誰でも取得可能、米国の不動産情報は郡レベルで完全公開、EU は GDPR で個人特定可能な情報の二次利用が厳しく制限される。自分の管轄での合法性を確認するのが最優先。
Google Dorking — 検索演算子 #
Google / Bing の特殊演算子で、通常見つからない公開ファイルや構成情報を発掘する。
たくさんある演算子に圧倒される前に、初手はこの 3 つだけで十分。(1) site:example.com → そのドメイン内のページだけを見る (組織調査の入口)。(2) site:example.com filetype:pdf → 公開された PDF を抽出 (内部資料の漏れ発見)。(3) "target name" site:linkedin.com → 人物の所属・経歴確認。この 3 つに "完全一致" と -除外 を組み合わせるだけで、初学者の調査の 8 割はカバーできる。慣れてきたら下表の演算子を順に足していく。
| 演算子 | 例 | 目的 |
|---|---|---|
site: |
site:example.com |
ドメイン限定 |
inurl: |
inurl:admin |
URL に文字列 |
intitle: |
intitle:"index of" |
タイトルに文字列 |
filetype: |
filetype:pdf "internal" |
拡張子で絞る |
intext: |
intext:"password" |
本文に文字列 |
cache: |
cache:example.com |
Google キャッシュ |
- |
-marketing |
除外 |
"" |
"social security number" |
完全一致 |
# ある組織のオープンディレクトリ漏れ
site:example.com intitle:"index of" -html
# 公開設定ミスの .env
filetype:env "DB_PASSWORD"
# Pastebin 上の特定キーワード
site:pastebin.com "internal-only" example.com
# 旧版の脆弱な phpMyAdmin
inurl:phpmyadmin/index.php intitle:"phpMyAdmin 2."Google Hacking Database (GHDB) (exploit-db.com/google-hacking-database) に何千ものクエリが整理されている。
画像とジオロケーション #
画像の逆引き #
- Google Images — 一般的な被写体・有名人・商品に強い
- TinEye — オリジナル投稿日・出現サイト特定に強い
- Yandex Images — 顔認証・場所特定が異常に強い (OSINT コミュニティでは別格)
- Bing Visual Search — 製品認識
- PimEyes — 顔のみ。倫理的議論あり
逆画像検索は「目的別」に使い分けると一気に当たりやすくなる。商品・有名人・一般物体 → Google Images。同じ画像がいつ・どこに最初に出たか → TinEye (oldest 順で並べられる)。顔の照合・ロシア語圏の街並み → Yandex Images (頭一つ抜けて強い)。製品 / 工業デザイン → Bing Visual Search。1 つで諦めず、同じ画像を 3〜4 エンジンに投げるのが OSINT の作法。エンジンごとに学習データが偏っているので、組み合わせで一気にヒット率が上がる。
ジオロケーション (Geolocation) #
「写真や動画から撮影地を特定する」技法。Bellingcat が広めた GeoGuessr 型 OSINT の中核。
- 道路標識・街路表示の言語と書式 (フォント・色・形)
- 建物の建築様式・屋根の色 (国ごとに特徴)
- 植生 (椰子か針葉樹か、季節の状態)
- 太陽の位置・影の長さで時刻と緯度の推定 (SunCalc.org)
- 車両・ナンバープレート
- 電柱・配線・郵便ポスト
- 背景の山・海岸線を Google Earth と照合
ロシア市場では Google より Yandex のシェアが高く、ロシア語圏の街路画像・人物写真の学習量が圧倒的。場所と顔の一致を見つけたいなら、まず Yandex に投げる。MH17 / シリア化学兵器調査で Bellingcat が多用した。
SNS と人物の名寄せ #
人物・事件の第一情報源としての SNS を体系的に掘る (SOCMINT)。
調査の典型項目:
- アカウント作成日・最初の投稿
- フォロー / フォロワーのネットワーク
- 投稿の時間帯ヒストグラム → 居住タイムゾーン推定
- 写真のジオタグ (削除済みでも EXIF が残る場合あり)
- 「いいね」/ コメント先 → 親しい関係
- 別 SNS とのユーザ名・電話・メール一致で名寄せ
# Sherlock — 数百サイトでユーザ名を一括検索
$ sherlock johndoe
[+] GitHub: https://github.com/johndoe
[+] Reddit: https://reddit.com/user/johndoe
[+] Instagram: https://instagram.com/johndoe
# Maigret — Sherlock 派生、より多サイト
$ maigret johndoe --top-sites 500
# holehe — メールから登録済みサービスを推定
$ holehe target@example.com
# GHunt — Gmail から Google アカウントの公開情報
$ ghunt email target@gmail.comドメイン・IP・証明書 OSINT #
組織のインフラ構成を外部からマッピングする。攻撃者のレコン、ペネトレーションテスト、脅威インテリ — すべての出発点。
許可された対象 (自社・契約済みのペンテスト) を外から調べるなら、まずこの順で叩けばだいたいの全体像が出る。(1) crt.sh で証明書透明性ログを引き、過去発行された全サブドメインを取る — 一番取りこぼしが少ない最初の入口。(2) subfinder / amass で DNS ベースの列挙を被せる — crt.sh で出ない動的レコードを補完。(3) 出てきた IP / ホストを Shodan / Censys に投げ、port / banner / 既知脆弱性を見る。これで「攻撃者が初日に見る景色」がそのまま手に入る。サブドメインの取りこぼし = 後の侵入経路の見落とし、と直結するので最初に丁寧にやる。
# WHOIS — ドメイン登録情報
$ whois example.com
# DNS — 各種レコード
$ dig example.com ANY +noall +answer
$ dig +short MX example.com
$ dig +short TXT example.com # SPF, DKIM, DMARC
# サブドメイン列挙
$ subfinder -d example.com -all -silent
$ amass enum -d example.com# crt.sh — 過去発行された全証明書 (隠れたサブドメインが出る)
$ curl -s "https://crt.sh/?q=%25.example.com&output=json" \
| jq -r '.[].name_value' | sort -u
# Shodan — 公開ホストの port / banner / 脆弱性
$ shodan host 93.184.216.34
$ shodan search "Server: Apache" port:80 country:JP
# Censys — TLS 証明書索引が強い競合
$ censys search 'services.tls.certificates.leaf_data.subject.common_name: "example.com"'
# Wayback Machine — 削除された過去の Web
$ curl -s "http://web.archive.org/cdx/search/cdx?url=example.com/*&output=json"メタデータ・EXIF 解析 #
写真・PDF・Office・動画には大量のメタデータが残る。
# 画像 EXIF — カメラ機種、撮影日時、GPS 座標、シリアル番号
$ exiftool photo.jpg
# PDF / Office — 作成者名、最終編集者、ソフトウェア、改訂履歴
$ exiftool report.pdf
# 動画
$ ffprobe -v error -show_format -show_streams video.mp4
# サイト全体のメタデータを一括収集
$ metagoofil -d example.com -t pdf,doc,xls -l 100 -o resultsEXIF は削除し忘れが多い。報道・調査でも、内部資料の PDF 作者名から組織内の関係者が判明したケースが多数ある。
主要ツールと検索エンジン #
オールインワン・フレームワーク #
| ツール | 用途 | ライセンス |
|---|---|---|
| Maltego | グラフ可視化型の OSINT IDE。Transform で各種ソースをノードとして統合 | 商用 (Community 版あり) |
| SpiderFoot | 200+ モジュールの自動 OSINT 収集。HX 版はクラウド | Open / 商用 (HX) |
| Recon-ng | Metasploit ライクな対話型 CLI、モジュール式 | Open |
ターゲット特化ツール #
| ツール | 入力 | 出力 |
|---|---|---|
| theHarvester | ドメイン | メール / サブドメイン / 従業員名 |
| Sherlock / Maigret | ユーザ名 | 数百 SNS の存在チェック |
| holehe | メールアドレス | 登録済みサービス一覧 |
| GHunt | Gmail | Google アカウントの公開情報 |
| OSINT Framework (osintframework.com) | — | 用途別ツールの分類リンク集 |
検索エンジン特化 #
| サービス | 検索対象 |
|---|---|
| Shodan | インターネットに露出したホスト・サービス・banner |
| Censys | TLS 証明書索引・ホスト・サブドメイン |
| ZoomEye | 中国版 Shodan |
| Wayback Machine | 過去の Web (1996〜) |
| GreyNoise | インターネットノイズ (スキャナ IP) の分類 |
| Have I Been Pwned | リーク済みメール / パスワード確認 |
場面別「これを使う」早見表 #
ツールが多すぎて迷ったら、次の「やりたいこと → 最初に叩くもの」だけ覚えておけば実用上 8 割の場面は回る。1 列目で「最初の 1 本」を決め、それで足りなければ 2 列目に進む、という使い方を想定している。
| やりたいこと | 最初の 1 本 | 次に叩く | 補助 / 商用 |
|---|---|---|---|
| ユーザ名から全 SNS を一気に洗う | Sherlock | Maigret (より多サイト) | WhatsMyName (Web) |
| メールから登録済みサービスを推定 | holehe | Epieos (Web) | HIBP で漏洩確認 |
| Gmail から Google アカウント情報 | GHunt | Epieos | — |
| ドメインから関連メール / サブドメイン | theHarvester | crt.sh | hunter.io (商用) |
| 隠れたサブドメインの徹底列挙 | crt.sh + subfinder | amass (時間かかる) | dnsdumpster |
| 公開ホストの port / banner / 脆弱性 | Shodan | Censys (証明書側に強い) | ZoomEye |
| 過去の Web (削除されたページ) | Wayback Machine | Google cache | archive.today |
| GitHub に漏れた secrets | trufflehog / gitleaks | GitHub 検索 + GHDB | grep.app |
| 関連の全体像をグラフ化 | Maltego | SpiderFoot (自動収集) | Recon-ng |
| 写真の撮影機器・GPS 抽出 | exiftool | jhead | metagoofil (サイト全体) |
| 顔写真から類似人物の照合 | Yandex Images | PimEyes (有料) | TinEye |
| 撮影地の特定 (geolocation) | Google Earth + 道路標識 | Mapillary | SunCalc (太陽位置) |
| メール漏洩 / パスワード再利用 | Have I Been Pwned | Dehashed (有料) | IntelligenceX |
| 衛星画像で地形・施設確認 | Sentinel Hub (無料) | Maxar Open Data | Planet (商用) |
| 自社を外部視点で OSINT 点検 | SpiderFoot | Maltego CE | testssl.sh + Shodan セルフスキャン |
| WHOIS の現状 / 過去 | whois コマンド | DomainTools (商用) | viewdns.info |
| Twitter/X のアカウント深掘り | twint (派生) | Hoaxy / Nitter | Twlets |
| Telegram の公開チャンネル探索 | TGStat | tgScan | telemetr.io |
(1) まず無料ツールで網を張る。商用は本当に必要になってから契約する (HIBP / Dehashed の差で 8 割は無料側で足りる)。(2) 必ず複数ツールで突き合わせる — Sherlock だけ / Shodan だけ、では取りこぼしが起きる。「最初の 1 本 + 次に叩く」を 2 段重ねするだけで精度が一段上がる。(3) ツールが古びる前提で運用する — Twitter API 改変で twint が壊れたように、OSINT ツールは前触れなく動かなくなる。「同じ目的を別ルートで達成する選択肢」を常に 2 つ持つのが、長く OSINT を続ける人の習慣。
実例ワークフロー #
① ドメインから組織のインフラ全体像 #
「会社 X のサイトをペンテストしたい (許可済み)」を出発点とする。
whois example.com で連絡先と登録日。subfinder / amass + crt.sh の組合せで、vpn-staging.example.com のような隠れた資産を発見。port:443/22/3389 を確認 → 露出した RDP、古い OpenSSH を発見。theHarvester で LinkedIn / Google からメール収集 → 従業員名簿。org:example-corp でトークン・内部ホスト名・API キーの誤コミット確認。各ステップを Maltego または SpiderFoot のグラフに集約すれば、「ドメインを起点にしたインフラと人の関係図」が 1 枚で見える。
② 写真 1 枚から撮影地と日時の特定 #
事件現場や違法行為の証跡として SNS に上がった写真の検証。EXIF が無くても、背景の文字 / 建築様式 / 植生 / 電柱 / 太陽位置の組合せで撮影地を絞り込める。Bellingcat は MH17 撃墜事件で、この手法で「ロシア軍 Buk システムの移動経路」を分単位で再構成した。
テンプレートをそのまま使うだけでは応用が利かない。実務で効く 3 つの工夫。(1) 「タイムライン優先」で組む — 集めた情報を 時系列に並べると、矛盾と空白が一目で見える (Bellingcat のレポートも全部この形)。(2) 「複数解の余白」を残す — 「A の可能性 70% / B の可能性 30%」のように確度付きで残し、新情報で更新する習慣を作る。早すぎる断定が一番事故る。(3) 「他人に説明する想定で書く」 — 自分の頭の中だけで完結させず、引用元と判断を分離してレポート形式に落とすと、自分の論理の穴に気付ける。
倫理・法律と Counter-OSINT #
OSINT は「公開情報のみ」と言っても、やってよいこと・悪いことの境界は曖昧で、各国法と職業倫理の両方で線引きされる。
細かい法律を全部覚えるより、まず この 3 つの問いに即答できる状態を作るのが先。(1) 目的 — なぜ調べているか? 公益 / 業務契約 / 自己防衛のどれかに明確に該当するか。(2) 同意 — 対象は調べられることに同意しているか? 自社ペンテストなら契約書、ジャーナリズムなら公益判断。(3) 影響 — 結果が誤っていたら誰が傷つくか? 個人名や顔写真が絡む瞬間、誤同定 1 つで人生が壊れる重さを抱える、と自覚する。「迷ったら一晩寝かせる」「迷ったらやらない」が OSINT 倫理の最終ガード。技術より先に、この姿勢を身に付けるのがプロとアマの分かれ目。
- 不正アクセス — 公開ページ閲覧は OK でも、ID/PW を推測してログインは不正アクセス禁止法 (日本) / CFAA (米国) の対象
- 個人情報の二次利用・販売 — GDPR / 改正個人情報保護法 / CCPA で正当な利用目的が必要
- ストーキング・嫌がらせ — 集めた情報の利用目的次第で犯罪化
- 児童関連コンテンツ — 単純所持が犯罪 (調査目的でも例外なし)
- 漏洩データの二次配布 — 自分のメール確認は OK、他人のリーク情報を撒くのは NG
- 顔認証 OSINT — EU では Clearview AI が違法、PimEyes は議論中
倫理コード #
調査ジャーナリズム・セキュリティ業界で広く支持されるガイドライン:
- 目的の正当性 — 公益 / 業務契約 / 自己防衛のいずれかに該当するか
- 比例性 — 調査の深さは目的に対して過剰でないか
- 最小化 — 必要な情報だけ集め、関係ない他人の情報は捨てる
- 裏取り — 単一ソースで断定せず、最低 3 つの独立ソースで確認
- 誤った同定の排除 — 同名異人・誤推定の影響を絶えず意識
Counter-OSINT — 個人レベル #
攻撃側が OSINT で組み立てるなら、防御側は OSINT で組み立てられないようにする。
- SNS のプライバシー設定を最低でも「友人のみ」、本名・勤務先・卒業校は慎重に
- EXIF を投稿前に削除 (Discord / Telegram は自動削除されない)
- ジオタグを OS 設定で切る
- ユーザ名を SNS ごとに使い分け — 全 SNS で同じハンドルは Sherlock 系で一発で名寄せされる
- メール / 電話の使い分け — メイン・サブ・捨ての 3 つで切り分け
- Have I Been Pwned 通知を有効化
Counter-OSINT — 企業レベル #
- WHOIS プライバシーで登録情報を代理表示
- 証明書発行ポリシー —
staging.dev.を crt.sh に流さない (内部 CA を使う) - GitHub / GitLab の secrets スキャンを常時有効化
- Shodan セルフモニタリング — 自社 IP を定期スキャンし想定外サービスを検出
- OSINT 模擬演習 (Red Team) — 自社を外部視点で OSINT してみる
まとめ #
OSINT は「魔法のツール」ではなく、問いの立て方 + 公開情報の収集効率 + 裏取りの厳格さ + 倫理判断の総体である。Bellingcat や戦時 OSINT が示したように、市民レベルでも歴史的事件の真相に迫れる強力な営みである一方、対象者のプライバシー・安全・名誉に直結するため、「やれること」と「やってよいこと」の線引きを絶えず自問する必要がある。
セキュリティ実務者にとって OSINT は、攻撃側が確実に最初に行うフェーズである以上、防御側もまた自分・自組織が外からどう見えているかを把握する義務がある。本記事の手法を自分自身に試してみるのが、OSINT の最良の入門であり、最良の防御策でもある。