Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
shadow-fleet-tracker-light — オープンソースのバルト海シャドーフリートトラッカー。1200隻以上の船舶、ライブAIS、ケーブル接近アラート。クラウド不要、サブスクリプション不要、ローカルで動作。 | Kitploit
ツール/GitHubGitHub/formerlab/shadow-fleet-tracker-light
OSINT (オープンソースインテリジェンス)偵察ネットワークマッピングネットワークフォレンジックデータ流出フォレンジック情報収集デジタルフォレンジック脅威インテリジェンス

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
インシデントレスポンス
DNS分析
ログ分析
GitHubformerlab/shadow-fleet-tracker-light

shadow-fleet-tracker-light

オープンソースのバルト海シャドーフリートトラッカー。1200隻以上の船舶、ライブAIS、ケーブル接近アラート。クラウド不要、サブスクリプション不要、ローカルで動作。

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

Shadow Fleet Tracker Light

License: MIT

バルト海の影の艦隊(Shadow Fleet)を、リアルタイムAISデータで監視します。ウクライナGUR(国防省情報総局)の戦争・制裁カタログに掲載された1200隻以上の船舶を、AISStream WebSocketフィードと照合し、自己更新地図上に位置をプロット。海底ケーブルへの接近を警告し、ロシア↔西側のトランシップメント(積替え)パターンを検出します。

無料・オープンソース、ローカルで動作します。クラウド不要、無料のAISStream APIキー以外にサブスクリプションは不要です。

Former Lab 主権インテリジェンスツールチェーンの一部です。


Former Lab を支援する

Shadow Fleet Tracker Light は Former Lab チームによって構築・維持されています — 主権的コンピューティング、古いハードウェア上でオープンでプライバシー第一のツールを、VCの支援なしで構築しています。

このツールが役に立つなら、Patreonでの支援をご検討ください。無料ティアあり、有料ティアは7日間トライアル可能です。常にウクライナを支援しましょう!

patreon.com/FormerLab

トラッカーに関するブログ記事、スクリーンショットなど: https://www.patreon.com/posts/153285871


クイックスタート

git clone https://github.com/FormerLab/shadow-fleet-tracker-light.git
cd shadow-fleet-tracker-light
pip install -r requirements.txt
export AISSTREAM_API_KEY=your_key_here   # aisstream.ioで無料取得
python shadow_tracker.py &
uvicorn webserver:app --host 0.0.0.0 --port 8000

http://localhost:8000 を開きます — 地図は /map です。

Windowsユーザー: セットアップセクションでPowerShell/cmdの環境変数構文を参照してください。

Linux / macOSユーザーは start.sh を使用できます。Windowsユーザーは start.bat または start.ps1 を使用します — どちらもトラッカーとダッシュボードを別々のウィンドウで起動し、ブラウザを自動で開きます。


機能

  • AISStream WebSocketに接続し、バルト海のバウンディングボックスを購読
  • ウクライナGURカタログ(Vessels1.db)から取得した1200隻以上の船舶MMSIのウォッチリストとストリームを照合
  • ライブ位置と航跡をFolium/Leaflet地図にプロット、3分ごとに更新
  • 船舶がケーブルセグメント(filtered_cables.kml から)から10km以内に接近した場合に警告
  • 滞留検出 — 20分以上、一定エリア内で低速または停泊している船舶を検出
  • トランシップメントパターン検出 — 21日以内にロシアの港と西側のハブ(またはその逆)に寄港した船舶を検出
  • 全位置データをSQLiteに記録(オフライン分析用)
  • ウォームリスタート — 起動時には位置ログから最終既知位置を即座に地図に表示、白紙待機なし
  • FastAPIダッシュボードを提供:ログ表示、船舶分析、GPXエクスポート、トランシップメントレビュー、対話型航路再生

地図

ダークCartoDBベースマップに海底ケーブルルートを緑色で重ね表示。船舶マーカーは3分ごとに更新され、次の更新までのライブカウントダウン表示 — ページは自動リロードされます。ポップアップではMMSI、IMO、船籍国、速度、針路、目的地、MarineTraffic・VesselFinder・War&Sanctionsへのディープリンクを表示。OpenSanctions APIキーが設定されている場合は制裁ステータスも表示。

Vessels1.db に既知の船名がある場合、AIS静的情報メッセージを待たずに最初の出現時に即座に表示されます。

起動時、地図は過去24時間分の位置ログから事前投入されます。現在のセッションでまだ見られていない船舶は灰色のマーカーと「最終確認 X時間前」のラベルで表示 — 新しいpingが届くとライブカラーに遷移します。


ファイル

shadow_tracker.py          メインプロセス — WSコンシューマー、地図レンダラー、DB書き込み
loitering_module.py        滞留検出と地図注釈
transshipment_module.py    寄港検出とロシア↔西側トランシップメントフラグ付け
webserver.py               FastAPIダッシュボード
gur_scrape.py              ワンショットスクレイパー — IMO→GUR-IDマッピングと完全船舶カタログを構築
check.py                   事前チェック — Pythonバージョン、依存関係、APIキー、ネットワーク
start.sh                   Linux / macOS用ランチャー
start.bat                  Windows用ランチャー(コマンドプロンプト)
start.ps1                  Windows用ランチャー(PowerShell)
requirements.txt           依存関係

Vessels1.db                ウォッチリスト — 1200隻以上の船舶(MMSI + IMO + 既知の船名)
vessel_data_log.db         位置ログ — ランタイム、追記専用
vessel_static.db           AIS静的情報キャッシュ(船名、目的地、船籍履歴)
transshipment.db           寄港ログとトランシップメントイベント
loitering_events.db        滞留イベント
filtered_cables.kml        バルト海海底ケーブル形状データ
cables.kml                 完全なケーブルデータセット(フィルタ前のソース)
gur_mapping.json           IMO→GUR-IDマッピング(gur_scrape.pyで生成、任意)
gur_vessels_full.json      完全なGURカタログ — GUR-ID→{imo, mmsi, name, flag}(gur_scrape.pyで生成)

ウォッチリスト

Vessels1.db は追跡対象船舶の標準リストです。1200以上のエントリがウクライナGUR戦争・制裁カタログから取得されており、ロシアの影の艦隊の一部として特定されたタンカーや貨物船、またはバルト海でのハイブリッド活動に関与した船舶をカバーしています。

リストには、バルト諸国が最近拿捕または阻止した船舶も含まれます:

船舶名IMO出来事
EAGLE S93297602024年12月フィンランドが拿捕 — Estlink-2ケーブル妨害、スパイ機器発見
EVENTIN93080652025年1月~3月ドイツが押収 — リューゲン島沖で漂流、10万トンのロシア原油を没収
KIWALA93328102025年4月エストニアが拘留 — 船籍なし、EU/英国制裁対象
JAGUAR92930022025年5月エストニアが阻止 — ロシアがSu-35をスクランブルして護衛
KIRA K93467202025年12月、ワグナー/GRU乗組員確認
QENDIL93105252025年9月ワグナー/GRU乗組員 — 2025年12月ウクライナドローン攻撃
FITBURG92503972025年12月31日フィンランドが拿捕 — ヘルシンキ-タリン間ケーブル妨害
CAFFA91436112026年3月6日スウェーデンが拿捕 — 盗難ウクライナ穀物、偽旗
SEA OWL I93211722026年3月12日スウェーデンが拿捕 — EU制裁対象、偽のコモロ船籍

MMSIは最新のAISデータに基づき補正 — 影の艦隊の船舶は頻繁に船籍を変更します。update_vessels_2026_03.sql ファイルにすべての変更内容と出典が記載されています。

ウォッチリストは意図的にオープンにしています。トラッカーの実行中に Vessels1.db に直接船舶を追加できます — 再起動なしで5分以内に反映されます。

Linux / macOS:

sqlite3 Vessels1.db "INSERT OR IGNORE INTO vessels (mmsi, imo, name) VALUES ('123456789', '9999999', 'VESSEL NAME');"

Windows(sqlite3 CLI不要):

import sqlite3
conn = sqlite3.connect("Vessels1.db")
conn.execute("INSERT OR IGNORE INTO vessels (mmsi, imo, name) VALUES ('123456789', '9999999', 'VESSEL NAME')")
conn.commit()
conn.close()

データモデル

Vessels1.db — ウォッチリスト

vessels(mmsi TEXT PK, imo TEXT, name TEXT, destination TEXT)

vessel_data_log.db — 位置ログ

vessel_data_log(timestamp, mmsi, name, imo, destination, speed, heading, latitude, longitude, cable_alert)

追記専用。地図レンダリングサイクルごとに書き込まれます。

vessel_static.db — AIS静的情報キャッシュ

vessel_static(mmsi TEXT PK, name TEXT, imo TEXT, destination TEXT, flag TEXT)
flag_history(id, mmsi, flag, timestamp)

ライブの ShipStaticData AISメッセージから取り込まれます。受信後は Vessels1.db の船名より優先されます。flag_history は船籍変更ごとにタイムスタンプとともに記録 — 船籍変更イベントはログに記録され、船舶個別ページに表示されます。

loitering_events.db — 滞留ログ (実行時に作成)

loitering_events(id, mmsi, timestamp, latitude, longitude, near_cable)

transshipment.db — 寄港・トランシップメントログ (実行時に作成)

port_calls(id, mmsi, name, port, port_type, entry_ts, exit_ts, min_speed)
transshipment_events(id, mmsi, name, direction, from_port, from_exit_ts,
                     to_port, to_entry_ts, days_between, detected_ts)

要件

  • Python 3.11 以降 — python.org/downloads
  • AISStream APIキー — aisstream.ioで無料取得(登録後、ダッシュボードからキーをコピー)
  • requirements.txt の依存関係

起動スクリプト

トラッカーを最も簡単に実行する方法。各スクリプトは依存関係のインストール、事前チェックの実行、両方のプロセスの起動を行います。

Linux / macOS:

chmod +x start.sh
export AISSTREAM_API_KEY=your_key_here
./start.sh

Windows(PowerShell):

$env:AISSTREAM_API_KEY = "your_key_here"
.\start.ps1

Windows(コマンドプロンプト):

set AISSTREAM_API_KEY=your_key_here
start.bat

3つのスクリプトはすべて最初に check.py を実行します — Pythonバージョン、依存関係、データファイル、APIキー、ネットワーク到達可能性を検証し、不足があれば明確なエラーメッセージを表示します。

事前チェックは単独でもいつでも実行できます:

python check.py

セットアップ(手動)

1. リポジトリのクローンと依存関係のインストール

git clone https://github.com/FormerLab/shadow-fleet-tracker-light.git
cd shadow-fleet-tracker-light
pip install -r requirements.txt

Ubuntu 22.04+ や Debian 12+ では、pipから「externally managed environment」エラーが発生する場合があります。起動スクリプトは仮想環境を作成して自動的に処理します — start.sh を実行するだけです。手動でインストールする場合は、事前にvenvを作成してください:

python3 -m venv .venv
source .venv/bin/activate   # Linux/macOS
.venv\Scripts\activate      # Windows
pip install -r requirements.txt

2. AISStream APIキーの設定

Linux / macOS:

export AISSTREAM_API_KEY=your_key_here
export OPENSANCTIONS_API_KEY=your_key_here  # 任意

Windows(コマンドプロンプト):

set AISSTREAM_API_KEY=your_key_here
set OPENSANCTIONS_API_KEY=your_key_here

Windows(PowerShell):

$env:AISSTREAM_API_KEY = "your_key_here"
$env:OPENSANCTIONS_API_KEY = "your_key_here"

3. トラッカーとダッシュボードを2つのターミナルで実行

ターミナル1 — AISフィードコンシューマー:

python shadow_tracker.py

ターミナル2 — Webダッシュボード:

uvicorn webserver:app --host 0.0.0.0 --port 8000

4. ダッシュボードを開く

http://localhost:8000

ライブ地図は http://localhost:8000/map にあり、3分ごとに更新されます。初回実行時は、データベース内の位置履歴から即座に地図がレンダリングされます — 白紙待機なし。


APIキー

サービス必須無料枠リンク
AISStreamはいはい — 非商用は無制限aisstream.io
OpenSanctionsいいえはい — 非商用利用opensanctions.org/api

OPENSANCTIONS_API_KEY がなくてもトラッカーは正常に動作します — 制裁バッジが地図ポップアップに表示されないだけです。


設定

すべての調整可能な定数は shadow_tracker.py の先頭にあります:

ツールをダウンロード