Shikata Ga Nai

Private? There is no such things.

OSINT(オープンソース情報収集)の活用法とAPI調査についてまとめてみた

Hello there, ('ω')ノ

OSINT(Open Source Intelligence)は、公開されている情報を収集・分析するための一連の技術を指します。近年、この分野は急成長しており、APIセキュリティやエンドポイントの調査でも非常に役立ちます。


1. OSINTとは?

OSINTは、公開情報を利用して有益な情報を収集する技術です。APIに関してOSINTを使用すると、以下のことが可能です:

  • ドキュメント化されていないAPI情報の発見
  • 新しいエンドポイントの特定
  • 既存エンドポイントの変更内容の発見
  • APIのセキュリティ脆弱性の発見

2. OSINTリソースとツール

2.1 主なリソース

  • 検索エンジン: GoogleやBingでドキュメント化されていないAPIを探す。
  • ソーシャルメディア: X(旧Twitter)やGitHubで新しいエンドポイントや脆弱性情報を発見。
  • オンラインフォーラム: Stack OverflowやRedditでAPIの使い方や問題解決法を確認。

2.2 おすすめツール

  • OSINT Framework: OSINTリソースのオンラインカタログ。無料ツールと商用ツールがリスト化されています。
  • Shodan: IoTデバイスやAPIエンドポイントを検索できるデータベース。APIの脆弱性も確認可能です。
  • Google Hacking Database: Google検索クエリ(Google Dorks)のリストで、APIに関連する情報を効率的に探せます。

3. API調査に役立つクエリ例

3.1 Google Dorks

以下のクエリは、APIに関連する重要な情報を収集するのに役立ちます:

  • APIキーを含むファイルを検索:
  allintext:"API_SECRET*" ext:env | ext:yml

.env.ymlファイルに含まれるAPI_SECRETを探します。

  • APIディレクトリを一覧表示:
  intitle:"Index of /api/"

/api/ディレクトリ内のファイルや構造を一覧表示。

  • Amazon API GatewayのURLを検索:
  inurl:execute-api site:amazonaws.com

Amazon API Gatewayを利用しているサイトを特定。


3.2 Shodanクエリ

  • 特定ドメインに関連するホスト名を検索:
  hostname:targetdomain.com
  • JSONやXML形式のコンテンツをフィルタリング:
  content-type:application/json
  • HTTPステータスコード200(成功)のみを表示:
  200 OK

4. GitHubでのAPI情報収集

GitHubのリポジトリには、APIキーや機密情報が含まれている場合があります。以下のクエリを使用して情報を収集できます:

4.1 ファイルパスに基づくクエリ

  • /config/ディレクトリ内のファイルを検索:
  path:/config/

4.2 言語に基づくクエリ

  • JSONファイルのみを検索:
  language:json

4.3 拡張子に基づくクエリ

  • .yml.jsonファイルを検索:
  extension:yml
  extension:json

4.4 サイズに基づくクエリ

  • サイズが1KB以上のファイルを検索:
  size:>1000

5. 注意点

5.1 プライバシーとセキュリティの配慮

OSINTは強力な情報収集手段ですが、不正使用は避けるべきです。調査対象の同意を得る、または合法的な範囲内で活動することが重要です。

5.2 APIのレスポンスデータの確認

APIのレスポンスボディには、開発者が気づいていない情報が含まれている場合があります。例えば:

  • 他のユーザのデータやID
  • 内部のエンドポイント構造

これらの情報を活用することで、脆弱性の特定や改善提案が可能です。


まとめ

OSINTを活用すれば、APIのエンドポイントや脆弱性情報を効率的に収集できます。ShodanやGoogle Dorks、GitHub検索を組み合わせて、公開情報から最大限のデータを引き出しましょう。

Best regards, (^^ゞ