情報漏洩データがOSINTに使える理由
過去のデータ侵害(Data Breach)で流出した情報は、時間が経っても消えることなくインターネット上を流通し続けます。攻撃者はこれらのデータを:
- クレデンシャルスタッフィング攻撃(同じID/パスワードの使い回しを悪用)
- スピアフィッシング(個人情報を使って巧妙な標的型攻撃を準備)
- ソーシャルエンジニアリング(漏洩情報から個人の行動パターンや関係性を分析)
に活用します。セキュリティ担当者が同じデータを調査することで、自組織や個人がどれだけ露出しているかを把握し、先手を打った対策が可能になります。
情報漏洩データそのものを収集・保有・配布することは、各国の個人情報保護法や不正競争防止法に抵触する場合があります。本記事で紹介するのは、公式に提供されているAPIやサービスを通じた確認方法のみです。生の漏洩データを直接取得・配布する行為は行わないでください。
Have I Been Pwned(HIBP)
HIBPとは
Have I Been Pwned は、セキュリティ研究者のTroy Hunt氏が2013年に構築した情報漏洩確認サービスです。Adobe、LinkedIn、Yahoo、Dropboxなど数百件のデータ侵害から流出した100億件以上のメールアドレス(2024年時点)を収録しています。
主な機能:
- 特定のメールアドレスが過去の漏洩に含まれているか確認
- 特定のパスワードが漏洩済みかどうか確認(Pwned Passwords)
- ドメイン単位での漏洩確認(法人向け・要認証)
HIBP APIを使ったメールアドレス確認
メールアドレスの漏洩確認(APIキーが必要)
APIキーは https://haveibeenpwned.com/API/Key で取得
HIBP_API_KEY=“your-api-key-here” EMAIL=“user@example.com”
curl -s
-H “hibp-api-key: ${HIBP_API_KEY}”
-H “user-agent: MySecurityAuditTool/1.0”
“https://haveibeenpwned.com/api/v3/breachedaccount/${EMAIL}” |
jq ’[.[] | {name: .Name, date: .BreachDate, dataClasses: .DataClasses}]‘
結果例(漏洩が見つかった場合):
[
{
“name”: “LinkedIn”,
“date”: “2012-05-05”,
“dataClasses”: [“Email addresses”, “Passwords”]
},
{
“name”: “Adobe”,
“date”: “2013-10-04”,
“dataClasses”: [“Email addresses”, “Password hints”, “Passwords”, “Usernames”]
}
]
漏洩が見つからない場合は 404 が返る
レートリミット: 1リクエスト/1500ms(API経由)
Pwned Passwords API — パスワードの安全確認
HIBPのPwned Passwords機能は、パスワードが漏洩データベースに含まれているかを確認できます。プライバシーを守るために**k-匿名性(k-Anonymity)**という仕組みを使っています。
仕組み:
- パスワードのSHA-1ハッシュを計算
- ハッシュの先頭5文字のみをAPIに送信
- APIはその5文字で始まるすべてのハッシュのリストを返す
- ローカルで完全なハッシュと照合
実際のパスワードやハッシュ全体がサーバーに送信されないため安全です。
パスワード “password123” が漏洩済みか確認
PASSWORD=“password123”
SHA-1ハッシュを計算
HASH=$(echo -n “$PASSWORD” | shasum -a 1 | tr ’[:lower:]’ ’[:upper:]’ | cut -d’ ’ -f1) echo “Full hash: $HASH”
先頭5文字を送信
PREFIX=${HASH:0:5} SUFFIX=${HASH:5}
curl -s “https://api.pwnedpasswords.com/range/$PREFIX” |
grep -i “$SUFFIX” |
awk -F: ‘{print “このパスワードは ” $2 ” 件の漏洩データで発見されました”}‘
結果例:
このパスワードは 2467867 件の漏洩データで発見されました
→ このパスワードは絶対に使用してはいけない
シェルスクリプト化(複数パスワードのチェック)
check_password() { local pwd=“$1” local hash=$(echo -n “$pwd” | shasum -a 1 | tr ’[:lower:]’ ’[:upper:]’ | awk ‘{print $1}’) local prefix=”${hash:0:5}” local suffix=”${hash:5}” local count=$(curl -s “https://api.pwnedpasswords.com/range/$prefix” | grep -i “$suffix” | awk -F: ‘{print $2}’) if [ -n “$count” ]; then echo “PWNED: $pwd ($count 件の漏洩)” else echo “SAFE: $pwd” fi }
HIBPのPwned Passwords APIは商用利用を含め無料で使えます。ユーザーが新しいパスワードを設定する際にこのAPIを呼び出し、漏洩済みパスワードをリジェクトすることで、クレデンシャルスタッフィング攻撃に対するパスワード品質を向上させることができます。NIST SP 800-63Bでもこのアプローチが推奨されています。
クレデンシャルスタッフィングとの繋がり
情報漏洩データが危険なのは、多くのユーザーが同じID/パスワードを複数サービスで使い回すからです。
攻撃の流れ
1. 攻撃者が漏洩DBを入手
(例: 2012年のLinkedIn漏洩 — 1億6千万件)
↓
2. 自動化ツール(Sentry MBA、OpenBullet等)でID/パスワードを試行
↓
3. 同じID/パスワードで別サービス(銀行、ECサイト等)に不正ログイン
↓
4. 個人情報の窃取・不正購入・アカウントの転売
クレデンシャルスタッフィングの対策
| 対策 | 説明 |
|---|---|
| 多要素認証(MFA) | パスワードが正しくても、2段階目で阻止できる |
| レートリミット | 短時間の大量ログイン試行を検知・ブロック |
| 異常ログイン検知 | 普段と異なる国・デバイスからのアクセスをアラート |
| Pwned Passwords連携 | 漏洩済みパスワードの登録を拒否 |
| パスワードマネージャーの推奨 | 各サービスに固有の強いパスワードを使わせる |
Pastebin監視
PastebinとはOSINT視点で何か
Pastebin(pastebin.com)は、テキストデータを一時的に共有するサービスです。プログラマーがコードスニペットを共有するために使いますが、攻撃者が漏洩したクレデンシャル・設定ファイル・内部ドキュメントを公開する場所としても悪用されます。
Pastebinで発見される情報の種類
- ユーザー名/パスワードのリスト(Combo List)
- 内部システムのAPIキー・トークン
- データベースのダンプデータ
- 設定ファイル(database.yml、.env ファイルなど)
- 社内ドキュメント・メールの内容
Pastebin で特定組織の情報を検索
site:pastebin.com “example.com” “password” site:pastebin.com “example.com” “@example.com”
設定ファイルの漏洩を検索
site:pastebin.com “DB_PASSWORD” “example.com” site:pastebin.com “api_key” “example.com”
その他のPastebinサイト(類似サービス)
site:hastebin.com “example.com” site:ghostbin.co “example.com” site:rentry.co “example.com”
Psbdmp.ws — Pastebinの過去データ検索エンジン
https://psbdmp.ws/api/search/example.com
自動モニタリングツール
Psbdmp API を使ったドメイン監視例(概念コード)
DOMAIN=“example.com” PSBDMP_API=“https://psbdmp.ws/api/search/${DOMAIN}“
最新の投稿を検索
curl -s “$PSBDMP_API” |
jq ‘.data[] | {id: .id, time: .time, preview: .text[0:100]}’ |
head -50
定期実行(cronで毎日実行)
0 9 * * * /path/to/pastebin_monitor.sh >> /var/log/pastebin_monitor.log 2>&1
自動監視を本格的に行うなら、商用の脅威インテリジェンスサービスの導入を検討してください。
- Digital Shadows(ReliaQuest): ダークウェブ・Pastebin・SNSを継続監視
- Recorded Future: AIによる脅威インテリジェンス
- SpyCloud: 漏洩クレデンシャルのリアルタイムアラート
- KELA Darkbeast: 日本語対応ダークウェブ監視
ダークウェブマーケットの概要(教育目的)
ダークウェブとは
ダークウェブはTorネットワーク上の、通常のブラウザからアクセスできないWebサービスの総称です。匿名性の高い通信を利用して、違法なマーケットプレイスやフォーラムが運営されています。
ダークウェブへのアクセス自体は技術的には可能ですが、違法コンテンツへのアクセス・取引は厳しく処罰される可能性があります。本セクションはセキュリティ担当者が脅威の全体像を理解するための教育的な概要説明に過ぎません。実際にダークウェブマーケットにアクセスすることはお勧めしません。
漏洩データの流通経路(概念図)
データ侵害発生
↓
攻撃者グループ内で使用(標的型攻撃)
↓
ダークウェブフォーラムで小規模に販売
↓
大手ダークウェブマーケットで広く販売
↓
バルクで転売・Pastebinなどに一部公開
↓
セキュリティ研究者がHIBP等に提供
情報の価格感(参考:2023年〜2024年の研究報告より)
| データの種類 | ダークウェブでの価格感 |
|---|---|
| 一般的なメール/パスワードコンボ | $1〜$5 / 1000件 |
| フルセット個人情報(Full Info) | $10〜$50 / 件 |
| 銀行口座アクセス情報 | 残高の10〜20% |
| RDPアクセス(企業) | $10〜$200 / 件 |
| ランサムウェアアクセスの初期侵入 | $500〜$数千 |
自組織の漏洩対策と監視体制
対策の優先順位
- MFAの全組織展開 — 漏洩クレデンシャルが使われても被害を防ぐ最初の防線
- パスワードマネージャーの導入 — 使い回し防止とランダムな強いパスワードの生成
- HIBP APIの認証システム統合 — 漏洩済みパスワードの登録をリジェクト
- 定期的なメールドメイン監視 — HIBPのドメイン監視(法人向け機能)
- SIEM/SOARへの脅威フィード統合 — 漏洩クレデンシャルの自動ブロック
インシデント発生時の対応手順
#!/bin/bash
自組織ドメインのメールアドレス漏洩を一括チェック
事前にHIBP APIキーを取得し、env変数として設定すること
HIBP_API_KEY=”${HIBP_API_KEY:?APIキーが設定されていません}” DOMAIN=“example.com” EMAILS_FILE=“employees.txt” # メールアドレスリスト(1行1件)
check_email() {
local email=“$1”
local response
response=$(curl -s -w “\n%{http_code}”
-H “hibp-api-key: $HIBP_API_KEY”
-H “user-agent: OrgAuditTool/1.0”
“https://haveibeenpwned.com/api/v3/breachedaccount/${email}?truncateResponse=false”)
local status_code status_code=$(echo “$response” | tail -1) local body body=$(echo “$response” | head -1)
case “$status_code” in 200) echo “PWNED: $email” ; echo “$body” | jq -r ’.[].Name’ | sed ‘s/^/ - /’ ;; 404) echo “CLEAN: $email” ;; 429) echo “RATE_LIMIT: $email — 待機中…” ; sleep 2 ; check_email “$email” ;; *) echo “ERROR($status_code): $email” ;; esac
sleep 1.5 # レートリミット遵守(1500ms/リクエスト) }
while IFS= read -r email; do check_email “$email” done < “$EMAILS_FILE”
HIBPで自組織のメールアドレスが漏洩済みとわかった場合の対応手順:
- 該当ユーザーへの即時通知 — どのサービスで漏洩したか、何のデータが含まれるかを通知
- パスワードの強制リセット — 対象ユーザーの全サービスのパスワード変更を促す
- 異常ログインの調査 — 漏洩日以降の不審なアクセスログを確認
- MFA未設定ユーザーへの優先対応 — 漏洩アカウントでMFAが未設定なら即時設定
- セキュリティ教育 — パスワードの使い回しをやめ、パスワードマネージャーを導入させる
HIBP(Have I Been Pwned)の Pwned Passwords API がk-匿名性(k-Anonymity)を使う理由はどれですか?