
flowsint v1.2.12
ビジュアルで柔軟かつ拡張性のあるグラフベースの調査のための最新プラットフォーム。サイバーセキュリティアナリストと調査担当者向け。
Flowsint
Flowsint は、倫理的な調査、透明性、検証のために設計されたオープンソースの OSINT グラフ探索ツールです。
倫理: 責任ある使用ガイドラインについては ETHICS.md をお読みください。
https://github.com/user-attachments/assets/eaabfa81-d7b3-414d-8cf7-f69b4e37bab6
https://github.com/user-attachments/assets/7457d94a-cf1d-4a97-949f-f9b1d8d92644
https://github.com/user-attachments/assets/65c3f26e-7132-4853-be45-21b8933688bd
コントリビューション
Flowsint はまだ開発初期段階にあり、コミュニティの助けを必要としています! お気軽に issue を報告したり、機能を提案したりしてください。
はじめに
読みたくない? わかりました。インストール手順はこちらです:
Linux / macOS
1. 前提条件のインストール
- Docker
- Make
2. インストールコマンドを実行
git clone https://github.com/reconurge/flowsint.git
cd flowsint
make prod
Windows
Make は不要です。コマンドプロンプト (cmd) と PowerShell の両方で動作します。
1. 前提条件のインストール
- Docker Desktop (次のステップの前に実行中であることを確認してください)
- Git
2. クローンと環境ファイルの設定
git clone https://github.com/reconurge/flowsint.git
cd flowsint
copy .env.example .env
copy .env.example flowsint-api\.env
copy .env.example flowsint-core\.env
copy .env.example flowsint-app\.env
3. 起動
docker compose -f docker-compose.prod.yml up -d
これにより、GitHub Container Registry からビルド済みイメージがプルされます。ローカルでのビルドは不要です。
初回ログイン
http://localhost:5173/register にアクセスしてアカウントを作成してください。デフォルトの認証情報やアカウントはありません。
✅ OSINT 調査には高度なプライバシーが必要です。すべてのデータはお使いのマシンに保存されます。
ネットワーク上へのデプロイ (チーム / サーバー)
同じセットアップがサーバー上でそのまま動作します。フロントエンドが UI を提供し、すべての API 呼び出しを内部でプロキシするため、クライアント側での追加設定は不要です。
git clone https://github.com/reconurge/flowsint.git
cd flowsint
cp .env.example .env
# .env を編集 — 下記の「ネットワークに公開する前に」を参照
docker compose -f docker-compose.prod.yml up -d
ネットワーク上の誰でも http://<server-ip>:5173 で Flowsint にアクセスできます。
ネットワークに公開する前に、.env のデフォルトのシークレットを変更してください:
AUTH_SECRET— 認証トークンに署名します。生成方法:openssl rand -hex 32MASTER_VAULT_KEY_V1— 保存された API キーを暗号化します。生成方法:python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"NEO4J_PASSWORD— Neo4j データベースのパスワード。
また、サーバーのホスト名/IP を Host ヘッダーの許可リストに追加してください (flowsint-app/nginx.conf 内の map $http_host $is_flowsint_host を探してください)。デフォルトの許可リストは localhost / 127.0.0.1 / [::1] のみを受け入れ、シングルユーザーインストールを DNS リバインディングから保護します。LAN や公開デプロイでは、独自のホスト名をオプトインする必要があります。同じ map ブロック内のコメントアウトされた 2 行のテンプレート行に形式が示されています。
ネットワークに公開されるのはポート 5173 のみです。PostgreSQL、Redis、Neo4j、API はサーバー上の 127.0.0.1 にバインドされ、フロントエンドプロキシ経由でのみ到達可能です。
latest の代わりに特定のバージョンを固定するには、.env で FLOWSINT_VERSION を設定します (例: FLOWSINT_VERSION=1.2.10)。
HTTPS (信頼できる LAN 以外では推奨): ポート 5173 の前に任意のリバースプロキシを配置します。Caddy を使用した例:
flowsint.example.com {
reverse_proxy 127.0.0.1:5173
}
リバースプロキシを使用する場合は、docker-compose.prod.yml でアプリのポートも localhost にバインドします ("127.0.0.1:5173:8080")。これにより、クライアントは HTTPS 経由でのみアクセスできます。
これは何ですか?
Flowsint は、偵察と OSINT (オープンソースインテリジェンス) に焦点を当てたグラフベースの調査ツールです。視覚的なグラフインターフェースと自動化されたエンリッチャーを通じて、エンティティ間の関係を探索できます。
利用可能なエンリッチャー
ドメインエンリッチャー
- リバース DNS 解決 - IP を指すドメインを検索
- DNS 解決 - ドメインを IP アドレスに解決
- サブドメイン発見 - サブドメインを列挙
- WHOIS ルックアップ - ドメイン登録情報を取得
- ドメインからウェブサイトへ - ドメインをウェブサイトエンティティに変換
- ドメインからルートドメインへ - ルートドメインを抽出
- ドメインから ASN へ - ドメインに関連する ASN を検索
- ドメイン履歴 - 過去のドメインデータを取得
IP エンリッチャー
- IP 情報 - 地理位置情報とネットワーク詳細を取得
- IP から ASN へ - IP の ASN を検索
ASN エンリッチャー
- ASN から CIDR へ - ASN の IP 範囲を取得
CIDR エンリッチャー
- CIDR から IP へ - 範囲内の IP を列挙
ソーシャルメディアエンリッチャー
- Maigret - ソーシャルプラットフォーム全体でのユーザー名検索
組織エンリッチャー
- 組織から ASN へ - 組織が所有する ASN を検索
- 組織情報 - 会社の詳細を取得
- 組織からドメインへ - 組織が所有するドメインを検索
暗号通貨エンリッチャー
- ウォレットから取引へ - 取引履歴を取得
- ウォレットから NFT へ - ウォレットが所有する NFT を検索
ウェブサイトエンリッチャー
- ウェブサイトクローラー - ウェブサイトの構造をクロールしてマッピング
- ウェブサイトからリンクへ - すべてのリンクを抽出
- ウェブサイトからドメインへ - URL からドメインを抽出
- ウェブサイトからウェブトラッカーへ - トラッキングスクリプトを識別
- ウェブサイトからテキストへ - テキストコンテンツを抽出
メールエンリッチャー
- メールから Gravatar へ - Gravatar プロフィールを検索
- メールから侵害情報へ - データ侵害データベースを確認
- メールからドメインへ - 関連するドメインを検索
電話エンリッチャー
- 電話から侵害情報へ - 侵害データベースで電話番号を確認
個人エンリッチャー
- 個人から組織へ - 組織との関連を検索
- 個人からドメインへ - 人物に関連するドメインを検索
統合エンリッチャー
- N8n コネクタ - N8n ワークフローに接続
プロジェクト構造
プロジェクトは自律的なモジュールで構成されています:
コアモジュール
- flowsint-core: コアユーティリティ、オーケストレーター、ボールト、celery タスク、ベースクラス
- flowsint-types: Pydantic モデルと型定義
- flowsint-enrichers: エンリッチャーモジュール、スキャンロジック、ツール
- flowsint-api: FastAPI サーバー、API ルート、スキーマのみ
- flowsint-app: フロントエンドアプリケーション
モジュール依存関係
flowsint-app (フロントエンド)
↓
flowsint-api (API サーバー)
↓
flowsint-core (オーケストレーター、タスク、ボールト)
↓
flowsint-enrichers (エンリッチャー & ツール)
↓
flowsint-types (型)
開発環境のセットアップ
前提条件
- Docker
実行
Linux / macOS (Make が必要):
make dev
Windows (cmd または PowerShell、Make 不要 — 先に .env ファイルを作成してください。はじめに を参照):
docker compose -f docker-compose.dev.yml up -d --build
docker compose -f docker-compose.dev.yml logs -f
開発
アプリは http://localhost:5173 でアクセスできます。
モジュール詳細
flowsint-core
他のすべてのモジュールで使用されるコアユーティリティとベースクラス:
- データベース接続 (PostgreSQL、Neo4j)
- 認証と認可
- ロギングとイベント処理
- 設定管理
- エンリッチャーとツールのベースクラス
- ユーティリティ関数
flowsint-types
すべてのデータ型の Pydantic モデル:
- ドメイン、IP、ASN、CIDR
- 個人、組織、メール、電話
- ウェブサイト、ソーシャルプロフィール、認証情報
- 暗号通貨ウォレット、取引、NFT
- その他多数...
flowsint-enrichers
データを処理するエンリッチャーモジュール:
- ドメインエンリッチャー (サブドメイン、WHOIS、解決)
- IP エンリッチャー (地理位置情報、ASN ルックアップ)
- ソーシャルメディアエンリッチャー (Maigret、Sherlock)
- メールエンリッチャー (侵害情報、Gravatar)
- 暗号通貨エンリッチャー (取引、NFT)
- その他多数...
flowsint-api
以下を提供する FastAPI サーバー:
- REST API エンドポイント
- 認証とユーザー管理
- グラフデータベース統合
- リアルタイムイベントストリーミング
flowsint-app
フロントエンドアプリケーション。
- モダンで UI フレンドリーなインターフェース
- パフォーマンス重視 (数千ノードでもラグなし)
開発ワークフロー
- 新しい型の追加:
flowsint-typesモジュールに追加 - 新しいエンリッチャーの追加:
flowsint-enrichersモジュールに追加 - 新しい API エンドポイントの追加:
flowsint-apiモジュールに追加 - 新しいユーティリティの追加:
flowsint-coreモジュールに追加
テスト
各モジュールには独自の (不完全な) テストスイートがあります:
# コアモジュールのテスト
cd flowsint-core
uv run pytest
# 型モジュールのテスト
cd ../flowsint-types
uv run pytest
# エンリッチャーモジュールのテスト
cd ../flowsint-enrichers
uv run pytest
# API モジュールのテスト
cd ../flowsint-api
uv run pytest
コントリビューション
- モジュール構造に従う
- 依存関係管理には uv を使用
- 新しい機能にはテストを書く
- 必要に応じてドキュメントを更新
- コミット前に実行するチェックについては CONTRIBUTING.md を参照
⚖️ 法的・倫理的使用
倫理: 責任ある使用ガイドラインについては ETHICS.md をお読みください。
Flowsint は厳密に合法的かつ倫理的な調査・研究目的のために設計されています。
以下の用途を支援するために作成されました:
- サイバーセキュリティ研究者およびアナリスト
- ジャーナリストおよび OSINT 調査員
- 法執行機関または不正調査チーム
- 内部脅威インテリジェンスまたはデジタルリスク分析を実施する組織
Flowsint を以下の目的に使用してはなりません:
- 不正な侵入、監視、またはデータ収集
- 個人への嫌がらせ、晒し、または標的化
- 政治的操作、偽情報、またはプライバシー法の違反
本ソフトウェアの不正使用は固く禁止されており、ETHICS.md で定義されている倫理原則に反します。