
All-sourceインテリジェンス融合ダッシュボード — WiFi、携帯電話網、CCTV、ADS-B、軌道・SDRフィードを単一の戦術マップに統合。セキュリティ研究専用。
セキュリティ調査とトレーニングのための、全スペクトラム・全ソース対応のシグナルインテリジェンス統合プラットフォームです。Signal OPS は、WiFi/Bluetooth/携帯電話基地局データベース、インターネット露出スキャナー、カメラインデックス、ADS-B フライトフィード、衛星 TLE トラッキング、SDR/APRS ネットワークなど、数十のオープンな収集ソースを単一の戦術マップと Flask API に統合し、RF、携帯電話、航空宇宙、軌道、監視の各ドメインを1つのリアルタイム運用状況に相関させます。オプションで AI 支援による脅威サマリーを重ねることもできます。
ほぼすべてのソースはオプションです。キーが設定されていない場合、そのフェッチャーは正常にスキップされます — 無料ソース(OpenStreetMap、Insecam、ipinfo.io、ADS-B、CelesTrak、KiwiSDR)はキーなしで動作します。
メインマップは WiFi、Bluetooth、携帯電話、カメラ、航空機レイヤーを同じエリアに融合し、OSM カメラ、ALPR/Flock ネットワーク、警察署の切り替え可能なオーバーレイを備えています。


| 監視フィード | CCTV 発見 |
|---|---|
![]() | ![]() |
監視リストは各デバイスをスコアリングし(例:"疑念 35/100: 認証なしカメラ")、WiGLE、Insecam、OSM からルーター、テレビ、露出したカメラを統合します。CCTV ビューは発見されたカメラをソース別にグループ化し、カメラごとのリスクとライブ/メタデータステータスを表示します。
| 携帯電話基地局ヒートマップ | SDR / APRS ネットワーク |
|---|---|
![]() | ![]() |
コア依存関係:
flask
requests
python-dotenv
推奨(キャッシュ、レート制限、衛星伝播など完全な機能を有効化):
cachetools # 境界付きジオキャッシュ(欠落時は無制限 dict にフォールバック)
flask-limiter # リクエストレート制限
sgp4 # /api/satellites 用の衛星位置伝播
google-genai # Gemini AI 分析(GEMINI_API_KEY 使用時のみ)
すべてインストール:
pip install flask requests python-dotenv cachetools flask-limiter sgp4 google-genai
git https://github.com/emrekybs/signalops.git
unzip signalops-v1.zip
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
requirements.txt がない場合は、上記の要件セクションの pip install 行を使用してください。
サンプルファイルをコピーして、持っているキーを入力します:
cp .env.example .env
次に .env を開いて API キーを貼り付けます。すべてのキーはオプションです — そのソースを無効にするには、任意の行を空白のままにするか(または削除して)、各キーの機能と取得先については次のセクションを参照してください。
オフラインでの即時カメラ・警察署ルックアップのために、これらのファイルを data/ ディレクトリに配置します(または DATA_DIR を別の場所に指定):
data/CAMERAS_WITH_NETWORK_DATA.geojson # ポイントフィーチャ(カメラ)
data/police_precincts_usa.geojson # ポリゴンフィーチャ(米国警察署)
data/camera_networks.json # ネットワーク共有メタデータ
data/tiles/{z}/{x}/{y}.json # オプションのタイル化カメラデータセット
これらのファイルがない場合、アプリは自動的にライブの OpenStreetMap Overpass クエリにフォールバックします。
python app_v2.py
サーバーは http://0.0.0.0:8080 で起動します。ブラウザで http://localhost:8080 を開いてください。
いつでも正常に読み込まれたプロバイダーを確認できます:
GET /api/status # アクティブ vs. 欠落キー
GET /api/debug # キーごとのブール値 + ライブ WiGLE 認証テスト
プロジェクトルートに .env ファイルを作成します。以下はアプリが読み取る全リストです。
| 変数 | デフォルト | 説明 |
|---|
設定不要のソース: OpenStreetMap Overpass、Insecam、EarthCam、ipinfo.io、ADS-B(adsb.fi / OpenSky)、CelesTrak TLE、SatNOGS、KiwiSDR。
.env.exampleこれをリポジトリに .env.example として保存し、他の人が形式を理解できるようにします:
# ── Signal OPS 環境 ──
# すべてのキーはオプションです。空白のままにするとそのソースが無効になります。
# WiFi / Bluetooth / 携帯電話
WIGLE_API_NAME=
WIGLE_API_TOKEN=
OPENCELLID_API_KEY=
# インターネット露出スキャナー
SHODAN_API_KEY=
CENSYS_API_ID=
CENSYS_API_SECRET=
ZOOMEYE_API_KEY=
FOFA_EMAIL=
FOFA_API_KEY=
HUNTERHOW_API_KEY=
NETLAS_API_KEY=
LEAKIX_API_KEY=
CRIMINALIP_API_KEY=
BINARYEDGE_API_KEY=
# カメラ & IP レピュテーション
WINDY_API_KEY=
ABUSEIPDB_API_KEY=
# 航空機 & アマチュア無線
ADSB_API_KEY=
APRS_FI_KEY=
# AI 分析
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash
# アプリ設定
DATA_DIR=./data
FLASK_SECRET_KEY=
公開されているエンドポイントの一部(完全なセットはソースを参照):
| 変数 | プロバイダー | キー取得先 |
|---|
WIGLE_API_NAME | WiGLE(WiFi/BT/携帯電話)— ユーザー名 | https://wigle.net/account |
WIGLE_API_TOKEN | WiGLE — API トークン | https://wigle.net/account |
OPENCELLID_API_KEY | OpenCellID(携帯電話基地局) | https://opencellid.org |
SHODAN_API_KEY | Shodan(露出 / カメラ) | https://account.shodan.io |
CENSYS_API_ID | Censys — API ID | https://search.censys.io/account/api |
CENSYS_API_SECRET | Censys — API シークレット | https://search.censys.io/account/api |
ZOOMEYE_API_KEY | ZoomEye | https://www.zoomeye.org/profile |
FOFA_EMAIL | FOFA — アカウントメール | https://fofa.info |
FOFA_API_KEY | FOFA — API キー | https://fofa.info |
HUNTERHOW_API_KEY | Hunter.how | https://hunter.how |
NETLAS_API_KEY | Netlas | https://netlas.io |
LEAKIX_API_KEY | LeakIX | https://leakix.net |
CRIMINALIP_API_KEY | CriminalIP | https://www.criminalip.io |
BINARYEDGE_API_KEY | BinaryEdge | https://www.binaryedge.io |
WINDY_API_KEY | Windy Webcams | https://api.windy.com/keys |
ABUSEIPDB_API_KEY | AbuseIPDB(IP レピュテーション) | https://www.abuseipdb.com/account/api |
ADSB_API_KEY | adsb.fi(オプション、なしでも動作) | https://adsb.fi |
APRS_FI_KEY | APRS.fi(アマチュア無線局) | https://aprs.fi/page/api_key |
GEMINI_API_KEY | Google Gemini(AI 分析) | https://aistudio.google.com/apikey |
GEMINI_MODEL | gemini-2.0-flash | 分析に使用する Gemini モデル |
DATA_DIR | ./data | ローカル GeoJSON/JSON データセットのディレクトリ |
FLASK_SECRET_KEY | 実行ごとにランダム | Flask セッションシークレット。本番環境では固定値を設定 |
| エンドポイント | 目的 |
|---|
GET /nearby?lat=&lon=&mode= | ポイント周辺の統合 RF/OSINT スキャン |
GET /api/cctv?lat=&lon= または ?country= | 場所または国別のカメラ発見 |
GET /api/search?type=&query= | SSID、IP、場所、または国別の検索 |
POST /api/analyze | デバイスリストの AI サマリー |
GET /api/ip-intel?ip= | マルチソース IP 脅威インテリジェンス |
GET /api/adsb?lat=&lon=&radius= | ライブ航空機 + 緊急検出 |
GET /api/satellites?categories= | 衛星位置(TLE + SGP4) |
GET /api/gps-jamming?lat=&lon= | ADS-B からの GPS ジャミングヒートマップ |
GET /api/sdr/kiwisdr | 公開 KiwiSDR レシーバーリスト |
GET /api/aprs/stations?lat=&lon= | 近隣の APRS 局 |
GET/POST /api/watchlist | 追跡識別子の管理 |
POST /api/watchlist/check | ウォッチリストに対するデバイスリストのチェック |
GET /api/status · GET /api/debug | プロバイダーヘルス / キー診断 |