Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sparrow-wifi — Linux向け次世代GUIベースのWiFiおよびBluetoothアナライザ | Kitploit
ツール/GitHubGitHub/ghostop14/sparrow-wifi
OSINT (オープンソースインテリジェンス)偵察Wi-Fi監査Bluetoothセキュリティネットワークマッピング情報収集ワイヤレスセキュリティログ分析
GitHubghostop14/sparrow-wifi

sparrow-wifi

Linux向け次世代GUIベースのWiFiおよびBluetoothアナライザ

リポジトリを見る
1.6k1901ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Sparrow-WiFi

Sparrow-WiFi は、Linux 向けの 2.4 GHz および 5 GHz の WiFi および Bluetooth スペクトル認識ツールです。これは、WiFi スキャン、Bluetooth Low Energy および Classic の発見、ソフトウェア定義無線スペクトル分析 (HackRF, Ubertooth)、GPS 追跡、FAA RemoteID ドローン検出、ドローン/ローバー搭載のリモート操作、および Elasticsearch または OpenSearch への ECS 8.17 インデックス作成を単一のプラットフォームに統合します。完全に Python 3 で書かれています。

このプロジェクトには、単独または連携して動作する 4 つのコンポーネントが含まれています:

コンポーネントインターフェース目的
Sparrow-WiFiPyQt5 デスクトップ GUIWiFi/BT スキャン、スペクトル分析、ソース追跡、ワードライビング
Sparrow Agentヘッドレス HTTP サーバーリモートスキャン、ドローン/ローバー展開、サードパーティ統合
Sparrow DroneIDWeb ベース (ブラウザ)WiFi および Bluetooth LE を介した FAA RemoteID ドローン検出
Sparrow Elastic Bridgeヘッドレス CLI サービスWiFi/BT 観測の Elasticsearch / OpenSearch への ECS 8.17 インデックス作成

Sparrow Agent と Sparrow DroneID は、他のアプリケーションがスキャン結果を照会し、スキャンをトリガーし、ドローン検出を取得し、ワイヤレス/ドローン認識を独自のワークフローに統合できるようにする JSON REST API を公開します。Elastic Bridge はエージェントの REST API を利用し、バンドルされた Kibana ダッシュボードとともに ECS 8.17 ドキュメントを転送します。


新機能 (2026年4月)

このリリースは、以前のバージョンからの 3 つの重要な改善点をカバーしています:

  • Sparrow Agent: シングルフライト WiFi スキャン合体処理。 複数の HTTP クライアント (DroneID アプリ、Elasticsearch ブリッジ、GUI) が同時に /wireless/networks/<iface> にアクセスすると、エージェントは以前、インターフェースごとのロックで直列化される N 個の冗長な iw scan 呼び出しを開始し、スキャン待ち時間をクライアント数倍にしていました。最初のリクエストが実際にスキャンを行う「リーダー」になり、同時リクエストは threading.Event で待機し、リーダーの結果を共有します。また、ロック作成の TOCTOU 修正とインターフェースごとのロックの例外安全性も含まれています。
  • Sparrow DroneID — WiFi (ASTM F3411 NAN、ビーコンベンダー IE、DJI 独自の DroneID プロトコル) および Bluetooth LE (BT4/BT5 Legacy アドバタイジング) を介した FAA RemoteID 検出のための新しい Web ベースのアプリケーション。ジオゾーンオーバーレイ、Slack 統合によるマルチステートアラート、KML エクスポート、Cursor-on-Target 出力、Elasticsearch / OpenSearch へのオプションの ECS 8.17 インデックス作成 (カスタム droneid.* 名前空間)、およびマルチデバイス対応のレスポンシブ Web UI が含まれています。以下の Sparrow DroneID セクションを参照してください。
  • 近代化された Elasticsearch / OpenSearch ブリッジ — sparrow-elastic.py ブリッジは ECS 8.17 ドキュメント (以前は ECS 1.5) を生成するように書き直され、Elasticsearch 8.x および OpenSearch 2.x の両方をサポートし、ILM/ISM ライフサイクルポリシーとロールオーバー書き込みエイリアスを使用して合成可能なインデックステンプレートを自動的にブートストラップし、OUI ベンダーエンリッチメントとルールベースのデバイス分類 (オプションの Fingerbank フィンガープリンティング) を実行し、4 つのバンドルされた Kibana ダッシュボードと 6 つのレガシー保存ビジュアライゼーションを提供します。レガシー ECS 1.5 ブリッジは legacy/sparrow-elastic.py に保存されています。Elasticsearch / OpenSearch 統合 を参照してください。

Sparrow-WiFi (デスクトップ GUI)

元の Sparrow アプリケーションは、inSSIDer や LinSSID などのツールに代わる包括的な GUI ベースの代替手段を提供し、基本的なスキャンをはるかに超える機能を備えています:

  • WiFi スキャン — 2.4 GHz および 5 GHz の SSID 検出、信号強度、チャネル使用率
  • ソース追跡 — 高いサンプルレートとテレメトリウィンドウを使用したハントモードで、WiFi および Bluetooth ソースを特定
  • スペクトル分析 — Ubertooth One または HackRF One によるリアルタイム 2.4/5 GHz スペクトルオーバーレイ
  • Bluetooth — BLE アドバタイジングスキャン、iBeacon 検出/アドバタイジング、Classic + LE 用の Ubertooth プロミスキャスモード
  • リモートエージェント — 分散スキャン、ドローン/ローバー搭載運用、Raspberry Pi 展開用のヘッドレスエージェント (sparrowwifiagent.py)
  • GPS 統合 — gpsd、静的座標、または MAVLink (ドローン GPS)
  • マッピング — GPS トラック付きスキャン結果の Google Maps / OpenStreetMap 可視化
  • インポート/エクスポート — CSV、JSON、および raw iw scan 出力
  • Elasticsearch / OpenSearch — ILM/ISM ライフサイクル管理、デバイス分類、オプションの Fingerbank フィンガープリンティング、バンドルされた Kibana ダッシュボードを備えた WiFi および Bluetooth スキャンデータの ECS 8.17 準拠インデックス作成
  • Falcon プラグイン — ペネトレーションテスト用の Aircrack-ng 統合 (モニターモード、隠し SSID 検出、Deauth、WEP/WPA キャプチャ)

スクリーンショット


Sparrow DroneID (Web アプリケーション)

FAA が義務付ける遠隔識別 (RemoteID) ブロードキャストをデコードするスタンドアロンの Web ベースのドローン検出および追跡システム。ネットワーク上の任意のデバイスからアクセス可能なブラウザベースの UI を備えた Python HTTP サーバーとして実行されます。

機能

  • WiFi キャプチャ — ASTM F3411 NAN アクションフレーム、ビーコンベンダー IE、DJI 独自の DroneID をデコード
  • Bluetooth LE キャプチャ — ASTM F3411 BT4/BT5 Legacy アドバタイジング (UUID 0xFFFA) をデコード
  • リアルタイムマップ — クアッドコプターアイコン、方位インジケーター、オペレーター位置マーカー、ドローン-オペレーター線を備えた Leaflet ベースのマップ
  • 一目でわかるラベル — マップ上の各ドローンアイコンの下にオペレーター ID と AGL 高度を表示
  • 詳細ポップアップ — ドローンをクリックすると、シリアル、登録 ID、オペレーター ID、タイプ、速度、方位、高度、受信機からの方位/距離、BVLOS ステータスを表示
  • アラートシステム — 新しいドローン、高度違反、速度違反、信号喪失のための設定可能なアラート。オーディオトーン、ビジュアルトースト、Slack webhook 通知、および汎用外部アラート取り込み API へのオプションのベアラートークン JSON POST (以下の API ベースのアラート通知 を参照) を含む
  • アラート確認 — オペレーター ID を持つ 3 状態ワークフロー (アクティブ/確認済み/解決済み)。接続されているすべてのデバイス間で共有
  • 空港ジオゾーン — 近くの空港 (OurAirports データ) と FAA 禁止/制限空域ポリゴンの自動ダウンロードと表示。オフライン運用のためにローカルにキャッシュ
  • GPS — gpsd 統合または設定可能な静的座標
  • 履歴とリプレイ — タイムラインリプレイと KML エクスポートを備えた SQLite ベースの検出履歴
  • Cursor-on-Target (CoT) — SA 統合用のマルチキャスト CoT 出力
  • マルチデバイス — Web UI はデスクトップ、タブレット、スマートフォンで同時に動作
  • メートル法/ヤードポンド法 — UI とアラート全体で完全な単位設定サポート

Web UI は起動後に http://localhost:8097 で実行されます。セットアップについては以下のインストールを、プログラムによるアクセスについてはAPI リファレンスを参照してください。

API ベースのアラート通知

Slack webhook に加えて、Sparrow DroneID は発火された各アラートを汎用外部アラート取り込みエンドポイントに POST できます。このチャンネルはデフォルトで無効になっています。設定 → アラート → API ベースのアラート通知で設定します:

  • 有効 — オン/オフトグル
  • API エンドポイントルート — 任意のパスプレフィックスを含む完全なルート URL。例: http://MY_API_HOST:PORT/API_ROOT
  • ドメイン — 受信 API がアラートをルーティングするために使用する不透明なテナント文字列
  • ベアラートークン — Authorization: Bearer ... ヘッダーで送信。保存されると UI でマスク
  • TLS 確認 — 自己署名またはプライベート CA エンドポイントの場合はチェックを外す
  • 認証テスト — 受信側の確認エンドポイントを呼び出し、合格/不合格を明確に報告
  • テストメッセージ送信 — 合成アラート (rule.category: "test", serial TEST-0000) を POST して、実際のドローンを待たずに受信側をエンドツーエンドでテスト

エンドポイント契約

Sparrow DroneID は設定されたルート URL に対して 2 つの呼び出しを行います:

両方の呼び出しは Authorization: Bearer <token> および Content-Type: application/json を送信します。

ペイロード形状```json

{ "domain": "", "alert": { "message": "", "observer": { "name": "<operator_name or 'Sparrow DroneID'>", "type": "drone-sensor", "geo": {"location": {"lat": 0.0, "lon": 0.0}} }, "rule": {"name": "", "category": "drone_detection"}, "event": { "severity": 40, "category": "network", "action": "new_drone" }, "labels": { "serial": "", "vendor": "", "ua_type": "", "alert_type": "new_drone | altitude_max | speed_max | signal_lost" }, "source": {"geo": {"location": {"lat": 0.0, "lon": 0.0}}}, "details": { "operator_id": "...", "registration_id": "...", "self_id_text": "...", "mac_address": "...", "protocol": "...", "rssi": -68, "range_m": 1234.5, "bearing_deg": 215.0, "bearing_cardinal": "SW", "speed_mps": 5.2, "direction_deg": 240.0, "altitude_m_agl": 42.0, "detail": "..." } } }

root@kitploit:~
`observer.geo.location`は、受信機がGPSフィックスを持っている場合に含まれます。`source.geo.location`は、ドローンが位置情報を放送している場合に含まれます。重大度はECSの慣例に従います(値が小さいほど緊急度が高い):警告(`new_drone`、`altitude_max`、`speed_max`)は`40`、情報イベント(`signal_lost`)は`70`です。フレンドリータグが付けられたドローンは、オペレーター側の「フレンドリードローンに関する警告」トグルがオフの場合、アラートを発生しないため、このエンドポイントにも到達しません。

**テストメッセージを送信**ボタンによって発行される合成テストアラートは、`rule.category: "test"`、`event.action: "test"`、`event.severity: 70`、およびシリアル`TEST-0000`を使用するため、受信機はこれらを認識して運用ダッシュボードから除外できます。

---

## システム要件

| 要件 | Sparrow-WiFi (GUI) | Sparrow DroneID (Web) |
|-------------|-------------------|----------------------|
| **OS** | Ubuntu 20.04+、Kali 2020.3+、Debian 11+ | Ubuntu 20.04+、Kali、Debian 11+、Raspberry Pi OS |
| **Python** | 3.8+ | 3.8+ |
| **Root** | 必須(iw scan) | 必須(モニターモード、BLE) |
| **WiFiアダプタ** | `iw`対応の任意のもの | モニターモード対応(例:rtl8812au、Intel AX200) |
| **Bluetooth** | オプション(hciアダプタ、Ubertooth) | オプション(RemoteID用の任意のBLE対応アダプタ) |
| **GPS** | オプション(gpsd) | オプション(gpsdまたは静的座標) |
| **ディスプレイ** | X11/Waylandデスクトップ | ヘッドレスOK(任意のデバイスのWebブラウザ) |

---

## インストール

### Sparrow-WiFi (デスクトップGUI)```bash
git clone https://github.com/ghostop14/sparrow-wifi
cd sparrow-wifi

システムパッケージ (Ubuntu 22.04+ / Debian 12+ / Kali rolling):```bash sudo apt install python3-pip python3-pyqt5 python3-pyqt5.qtchart
gpsd gpsd-clients python3-tk python3-setuptools

root@kitploit:~
> **Kaliユーザーの場合:** PyQt5、PyQtChart、aircrack-ng(Falconプラグイン用)は通常プリインストールされています。基本的に必要なのは `gpsd`、`gpsd-clients`、および以下のPython依存関係だけです。

Python依存関係 &mdash; いずれかの方法を選択してください:

**オプションA: `--break-system-packages`を使用したシステム全体へのインストール** &mdash; 最も簡単で、GUI/エージェントが起動される方法(root所有のスクリプト)に適しています:```bash
# Modern systems (Ubuntu 24.04+, Kali rolling 2023+, Debian 12+) require this
# flag because Python is marked externally-managed (PEP 668). Sparrow runs as
# root anyway, so system-wide install is consistent with how it executes.
sudo pip3 install --break-system-packages -r requirements.txt

Option B: 仮想環境 — 分離されており、システムpipの警告がなく、一部のオペレーターに好まれています:```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

Run with sudo using the venv interpreter:

sudo venv/bin/python3 ./sparrow-wifi.py

root@kitploit:~
どちらにせよ、run:```bash
sudo ./sparrow-wifi.py

Sparrow DroneID (ウェブアプリケーション)```bash

cd sparrow-droneid

System tools — tcpdump for WiFi monitor mode, bluez for BLE RemoteID

sudo apt install tcpdump bluez

Python dependencies — pick one of:

sudo pip3 install --break-system-packages -r sparrow_droneid/requirements.txt

or:

python3 -m venv venv && source venv/bin/activate && pip install -r sparrow_droneid/requirements.txt

Run (either entry point works):

sudo python3 sparrow_droneid/app.py

or: sudo python3 -m sparrow_droneid

root@kitploit:~
ブラウザで `http://localhost:8097` を開いてください。設定でモニターインターフェースとGPSを設定し、Startをクリックします。

### Elasticsearch / OpenSearch Bridge (オプション)```bash
sudo pip3 install --break-system-packages -r requirements-elastic.txt
# or via venv as above

以下の Elasticsearch / OpenSearch 統合 を参照してください。


WiFiアダプタに関する注意事項

ほとんどのWiFiアダプタは基本的なスキャンで動作します。Sparrow-WiFiは複数のインターフェース列挙バックエンド(iw、iwconfig、nmcli)をサポートしているため、iwがインストールされていないシステム(例:NetworkManagerのみを使用するRHEL/Fedora)でも動作します。

モニターモード(Sparrow DroneIDとFalconプラグインで必要)の場合、アダプタとドライバのサポートは異なります。

  • 推奨: Alfa AWUS036ACH (rtl8812au)、Alfa AWUS036AXML (mt7921au)
  • 良好: Intel AX200/AX210 (iwlwifi) スキャン用。モニターモードのフレーム配信はファームウェアのバージョンによって異なります。
  • 事前にテスト: iw phy <phy> info | grep monitor または iwconfig <iface> で機能を確認してください。

特にSparrow DroneIDの場合、アダプタはモニターモードで生の802.11フレームを配信する必要があります。一部のIntelアダプタはモニターモードをサポートしていると報告しますが、ファームウェアレベルでフレームを静かにドロップします。アプリケーションはこれを検出して警告します。


Bluetooth

Sparrow-WiFiはいくつかのBluetoothスキャンモードをサポートしています。

標準の内蔵またはUSB Bluetoothアダプタは、BLEアドバタイズメントスキャンとRemoteIDドローン検出に十分です。bluetoothctl scan onでアダプタをテストしてください。

ClassicデバイスとBLEデバイスの両方を完全なプロミスキャスモードで発見するには、Ubertooth One と、/opt/bluetooth/blue_hydraにインストールされた Blue Hydra が必要です。これはオプションであり、基本的なBLEまたはRemoteIDスキャンには必要ありません。


スペクトラム解析

WiFiチャンネルビュー上でのリアルタイムスペクトラムオーバーレイ。

Ubertooth One

  • 2.4 GHzのみ、1 MHz解像度
  • テスト方法: ubertooth-specan-ui

HackRF One

  • 2.4 GHz(0.5 MHz解像度)および5 GHz(2 MHz解像度)
  • 一度に1つのバンド。Ubertoothと組み合わせて同時デュアルバンド対応
  • 適切なデュアルバンドアンテナを使用してください(標準のHackRFアンテナは1 GHzまでの定格です)
  • 注:ほとんどのWiFiアンテナにはRP-SMAからSMAへのアダプタが必要です
  • テスト方法: hackrf_sweep


GPS

両方のアプリケーションはGPSにgpsdを使用します。クイックセットアップ:```bash

Install

sudo apt install gpsd gpsd-clients

Test with a USB GPS receiver

sudo gpsd -D 2 -N /dev/ttyUSB0

Verify

xgps # or: cgps -s

root@kitploit:~
本番環境では、`/etc/default/gpsd` をデバイスパスに設定し、サービスを再起動してください。

Sparrow DroneID は、GPSレシーバーを使用しない固定サイト設置のために、静的座標(設定で構成)もサポートしています。

---

## リモートエージェントとAPI統合

Sparrow エージェント (`sparrowwifiagent.py`) は、Sparrow の WiFi および Bluetooth スキャン機能のすべてを JSONベースの REST API として公開するヘッドレスHTTPサーバーです。これは Sparrow-WiFi GUI がリモートセンサーと通信する方法ですが、API は任意のアプリケーションが使用できるように公開されています。

**使用例:**
- リモート/モバイルスキャン用にRaspberry Pi、ドローン、またはローバーにデプロイ
- WiFi および Bluetooth の状況認識を独自のアプリケーションに統合
- スキャンデータをSIEM、ダッシュボード、またはアラートパイプラインにフィード
- スクリプトでスキャンを自動化 (スキャンのトリガー、curl/Pythonなどを介した結果の取得)

Sparrow DroneID にも独自のREST APIがあります ([APIリファレンス](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow-droneid/sparrow_drone_id_api.md))。ドローン検出、アラート管理、ジオゾーン、システム設定へのプログラムによるアクセスを提供します。

### エージェントの実行```bash
sudo ./sparrowwifiagent.py

デフォルトではポート8020でリッスンします。主なオプション:

完全なリストは--helpを参照してください。

API呼び出しの例```bash

List wireless interfaces the agent can scan

curl http://sensor:8020/wireless/interfaces

Trigger a WiFi scan and pull results (multiple concurrent callers

get coalesced into a single iw scan; first caller is the leader)

curl http://sensor:8020/wireless/networks/wlan0

Filter to specific frequencies

curl "http://sensor:8020/wireless/networks/wlan0?frequencies=2412,2437,2462"

Query GPS status

curl http://sensor:8020/gps/status

Start a Bluetooth Low Energy advertisement scan

curl http://sensor:8020/bluetooth/discoverystarta

Pull current BT discovery results

curl http://sensor:8020/bluetooth/discoverystatus

root@kitploit:~
Sparrow DroneIDについては、専用の[APIリファレンス](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow-droneid/sparrow_drone_id_api.md)を参照してください。

> **実稼働上の注意:** デフォルトではエージェントはすべてのインターフェースで待ち受ける。信頼できないネットワークの外部にデプロイする場合は、`--allowedips`を使用して発信元を制限するか、リバースプロキシとTLSの背後で実行するか、プライベートインターフェースのみにバインドすること。

---

## Falcon / Aircrack-ng プラグイン

高度なワイヤレス侵入テスト統合。以下の機能にポイントアンドクリックでアクセスできます:

- airodump-ng による隠しSSIDの発見
- クライアントステーションの列挙(接続先AP、プローブされたSSID)
- 標的型およびブロードキャストの非認証化
- WEP IVのキャプチャ
- WPAハンドシェイクのキャプチャと自動ハッシュ抽出(JTR `wpapcap2john`が必要)

### 前提条件```bash
# Kali users: aircrack-ng + JTR are usually pre-installed.
# Ubuntu / Debian / Raspberry Pi OS:
sudo apt install aircrack-ng john

Verify airmon-ng、airodump-ng、wpapcap2john がインストール後に PATH に含まれていることを確認してください。

免責事項

アクティブなペネトレーションテストは法的規制の対象となります。これらのツールを使用する前に適切な許可を得るのはあなたの責任です。


Elasticsearch / OpenSearch 統合

sparrow_elastic パッケージは ECS 8.17 ブリッジを提供し、Sparrow WiFi エージェントをポーリングして WiFi と Bluetooth の観測データを Elasticsearch 8.x または OpenSearch 2.x に一括インデックスします。構成可能なインデックステンプレート、ILM/ISM ライフサイクルポリシー、ロールオーバー書き込みエイリアスを自動的にブートストラップし、OUI ベンダーエンリッチメントとルールベースのデバイス分類(オプションで Fingerbank フィンガープリンティング)を実行し、プリビルドの Kibana ダッシュボードを提供します。

クイックスタート```bash

1. Start the remote agent (it provides scan data via HTTP)

sudo ./sparrowwifiagent.py

2. Install bridge dependencies

sudo pip3 install --break-system-packages -r requirements-elastic.txt

3. Run the bridge

./sparrow-elastic.py --elasticserver http://user:pass@host:9200 --wifiinterface wlan1

4. (Optional) Import the bundled Kibana dashboards

python3 install_dashboards.py --kibana-url http://kibana:5601
--username elastic --password ''

root@kitploit:~
> **認証情報の衛生:** `--elasticserver` に `user:pass@` を埋め込むと便利ですが、URL が `ps`、`journalctl`、シェル履歴に表示されます。本番環境では、`--username`/`--password` フラグ、環境変数 (`SPARROW_ES_USERNAME`、`SPARROW_ES_PASSWORD`)、または同梱の systemd ユニット例にある `EnvironmentFile=` パターンを使用してください。

### ブリッジに同梱されるもの

- **5つのKibanaダッシュボード** &mdash; 状況認識、生活パターン、新規デバイス検出、スペクトラム計画(SSID × チャンネルの信号強度ヒートマップ付き)、Bluetooth状況認識(完全新規デバイスVegaパネルと推定距離近接テーブル付き)
- **6つのレガシー保存ビジュアライゼーション** &mdash; 元の `Sparrow*` ビジュアライゼーションのフィールド名変更クローンで、古い筋肉記憶がそのまま使えます
- **デバイスクラシファイア** &mdash; ドローンコントローラー(DJI/Autel/Skydio/Parrot/Yuneec)、BT Class of Device、GAP Appearance、Apple Continuityサブタイプ、OUIベンダーヒューリスティックをカバーする64ルールのシードテーブル
- **参照データリフレッシュ** &mdash; バンドルされたWireshark `manuf`、BT SIG company IDs、service UUIDs、GAP appearance values、Apple Continuity subtype tables、および30/90日ごとの自己リフレッシュバックグラウンドスレッド
- **プリフライト互換性チェック** &mdash; レガシーECS 1.5インデックスへの書き込みを拒否し、データを静かに破損する代わりに明確な修復手順を出力します

完全なオペレータードキュメント(エンジン選択、認証モード、ダッシュボードインポート、参照データ、完全なCLIリファレンス)については、[sparrow_elastic/README.md](https://github.com/ghostop14/sparrow-wifi/blob/HEAD/sparrow_elastic/README.md) を参照してください。

サンプル設定ファイルはリポジトリルートと `init.d_scripts/` にあります:

- `sparrow-elastic.conf.example` &mdash; サポートされているすべてのキーを含むINIスタイル設定
- `sparrow-elastic.env.example` &mdash; systemdデプロイメント用のシェル形式envファイル
- `init.d_scripts/sparrow-elastic.service.example` &mdash; systemdユニットテンプレート

### レガシーECS 1.5ブリッジからの移行

2026年以前のブリッジは、`--wifiindex` / `--btindex` を介してオペレーターが指定した名前のインデックスにECS 1.5ドキュメントを書き込んでいました。新しいブリッジは、ロールオーバー管理された書き込みエイリアス(デフォルト `sparrow-wifi` / `sparrow-bt`)にECS 8.17ドキュメントを書き込みます。

**レガシースクリプトは `legacy/sparrow-elastic.py` に保存されており**、その `.txt` テンプレートとILMポリシーファイルが同梱されています。このスクリプトを実行するには、依然としてレガシー環境(手動テンプレート+ILM設定)が必要です。

**フラグの変更(後方互換性あり):**

| Legacy flag         | New flag           | Notes                                                  |
|---------------------|--------------------|--------------------------------------------------------|
| `--wifiindex NAME`  | `--wifi-alias NAME`| レガシースペルは非推奨エイリアスとして引き続き受け入れられます。|
| `--btindex NAME`    | `--bt-alias NAME`  | レガシースペルは非推奨エイリアスとして引き続き受け入れられます。|
| `--dont-create-indices` | unchanged       | ブートストラップをスキップします。|
| `--elasticserver`, `--sparrowagent`, `--sparrowport`, `--wifiinterface`, `--scandelay` | unchanged | |

例えば、以下のようなレガシー呼び出し:```bash
./sparrow-elastic.py --elasticserver=http://user:pass@host:9200 \
                     --wifiinterface=wlan1 \
                     --wifiindex=sparrowwifi-home \
                     --btindex=sparrowbt-home

still parses and runs — but the bridge now refuses to write into a pre-existing index whose mapping doesn't carry the ECS 8.17 schema marker, exiting with three remediation options (use a different alias, wipe and re-bootstrap, or run the legacy bridge). For a clean install, just drop --wifiindex / --btindex and accept the new defaults.


ドローン / ローバー運用

リモートエージェントは、ドローンやローバーに搭載されたRaspberry Piにデプロイすることで、モバイル無線調査が可能です。MAVLinkを介したGPS統合を備えたSolo 3DRドローンでテスト済みです。

自律記録```bash

On the Pi: auto-start, pull drone GPS, record to local files

sudo python3 ./sparrowwifiagent.py --userpileds --sendannounce --mavlinkgps 3dr --recordinterface wlan0

root@kitploit:~
LEDインジケータ(Raspberry Pi):
1. 両方オフ &mdash; 初期化中
2. 赤色の点滅 &mdash; GPS存在、未同期
3. 赤色常時点灯 &mdash; GPS同期
4. 緑色常時点灯 &mdash; エージェント準備完了、リクエスト提供中

録音データはSparrow-WiFi GUIのエージェント管理インターフェースから取得できます。

### Piのセットアップに関する注意

- Raspberry Pi OS(Bookworm以降)をPython 3.8+と共に使用
- オンボードWiFiを無効にしてUSBアダプターで5 GHzスキャンを有効にする:Bookworm以降では`dtoverlay=disable-wifi`を`/boot/firmware/config.txt`に追加、古いリリースでは`/boot/config.txt`に追加
- 前提条件をインストール:`sudo pip3 install --break-system-packages -r requirements.txt`(または[インストール](#installation)セクションのvenvを使用)

---

## プロジェクト構成```
sparrow-wifi/
  sparrow-wifi.py            # Desktop GUI entry point
  sparrowwifiagent.py        # Headless remote agent
  sparrow-elastic.py         # Elasticsearch / OpenSearch bridge (ECS 8.17)
  install_dashboards.py      # One-shot Kibana dashboard installer
  requirements.txt           # Python dependencies (GUI)
  requirements-elastic.txt   # Python dependencies (Elasticsearch bridge)
  wirelessengine.py          # WiFi scan engine (iw)
  sparrowbluetooth.py        # Bluetooth scan engine
  sparrowhackrf.py           # HackRF spectrum engine
  sparrowmap.py              # Map generation
  plugins/                   # Falcon and other plugins
  sparrow_elastic/           # ES/OS bridge package
    *.py                     # Client abstraction, document builder, classifier...
    templates/               # Composable index templates (ES + OS variants)
    policies/                # ILM (ES) and ISM (OS) lifecycle policy JSON
    dashboards/              # Kibana NDJSON: 5 dashboards + legacy-preserved
    data/                    # Bundled reference data (manuf, BT SIG, classifier rules)
    README.md                # Full bridge operator documentation
  legacy/                    # Pre-2026 ECS 1.5 bridge, frozen for reference
    sparrow-elastic.py       # Legacy bridge (still runnable)
    sparrow_elastic_*.txt    # Legacy index templates and ILM policy
  sparrow-droneid/           # DroneID web application
    sparrow_droneid/
      app.py                 # Entry point (sudo python3 app.py)
      __main__.py            # Allows: sudo python3 -m sparrow_droneid
      requirements.txt       # Python dependencies (DroneID)
      backend/               # API server, capture engine, database
      frontend/              # HTML, JS, CSS (served by backend)
    sparrow_drone_id_api.md  # REST API reference

ライセンス

このプロジェクトは、リポジトリに含まれる条件に基づいてライセンスされています。詳細についてはLICENSEファイルを参照してください。

ツールをダウンロード
動詞パス目的
POST{root}/v1/alerts/verify認証情報チェック — ボディ {"domain": "<configured>"}。受信側は成功時に 200 {"status":"ok"}、不正なトークン時に 401 を返す必要があります。
POST{root}/v1/alertsアラート発火 — ボディは以下の JSON。受信側は成功時に 201 {"alert_id":"..."} を返す必要があります。503 応答は指数バックオフ (3 回再試行) で再試行されます。4xx は再試行せずに中断します。200 {"status":"dropped"} はドメインが上流で無効であることを示します。
モードハードウェア表示内容
BLEアドバタイズメントスキャン標準BTアダプタアクティブにアドバタイズしているLEデバイス
プロミスキャススキャンUbertooth One + Blue Hydra範囲内のすべてのBLEおよびクラシックBTデバイス
iBeaconアドバタイジング標準BTアダプタ自分自身のiBeaconをアドバタイズ
RemoteIDスキャン標準BTアダプタFAA準拠のドローン識別(Sparrow DroneIDのみ)
フラグ目的
--port PORTHTTPリッスンポート
--allowedips IP1,IP2クライアント接続を制限
--staticcoord LAT,LON,ALT固定のGPS座標を使用
--mavlinkgps 3drSolo 3DRドローンからGPSを取得
--recordinterface IFACE起動時に自動録画(ヘッドレス)
--userpiledsRaspberry PiのLEDをステータス表示に使用
--sendannounceエージェント発見用のUDPブロードキャスト