サイバーセキュリティアナリスト、OSINT研究者、調査員のためのモダンなオープンソースのグラフベース調査ツール。エンティティ(ドメイン、IP、メール、ウォレット)間の関係を自動エンリッチメントとローカルファーストのデータストレージで視覚化します。
倫理的使用のみ: Flowsintは合法的で倫理的な調査と研究目的にのみ使用する必要があります。デプロイ前にプロジェクトのETHICS.mdを確認してください。
# リポジトリをクローン
git clone https://github.com/reconurge/flowsint.git
cd flowsint
# 本番デプロイ
make prod
# 開発デプロイ
make dev
前提条件: DockerとMake
| モード | URL |
|---|
| 開発 | http://localhost:5173 |
| 本番 | http://localhost:5173/register(最初にアカウントを作成) |
Flowsintは5つのコアコンポーネントを持つモジュラープラットフォームです:
| モジュール | 目的 |
|---|
flowsint-app | フロントエンドインターフェース(グラフ視覚化) |
flowsint-api | 認証付きFastAPIバックエンド |
flowsint-core | データベース、ユーティリティ、タスクオーケストレーション |
flowsint-enrichers | データエンリッチメントモジュール |
flowsint-types | Pydanticデータモデル |
Flowsintはグラフに追加できるさまざまな調査エンティティで動作します:
| エンティティ | 説明 |
|---|
| ドメイン | ウェブサイトのドメイン名 |
| IPアドレス | IPv4/IPv6アドレス |
| メール | メールアドレス |
| 電話番号 | 電話番号 |
| ユーザー名 | ソーシャルメディア/サービスのユーザー名 |
| 組織 | 企業と組織 |
| ASN | 自律システム番号 |
| CIDR | IPアドレス範囲 |
| 暗号通貨ウォレット | Bitcoin、Ethereumなどのアドレス |
| URL | 特定のウェブページ |
| エンリッチャー | 実行内容 |
|---|
| DNS解決 | ドメインをIPアドレスに解決 |
| 逆引きDNS | IPを指すドメインを検索 |
| サブドメイン列挙 | ドメインのサブドメインを発見 |
| WHOISルックアップ | ドメイン登録情報 |
| IPジオロケーション | IPアドレスの物理的な場所 |
| ASNマッピング | ネットワーク所有権を特定 |
| CIDR拡張 | IP範囲を個別のアドレスに拡張 |
| エンリッチャー | 実行内容 |
|---|
| メール侵害チェック | メールが既知の侵害に現れるかチェック |
| Gravatar発見 | メールにリンクされたGravatarプロファイルを検索 |
| 電話侵害チェック | 侵害データベースで電話番号をチェック |
| ユーザー名検索(Maigret) | ソーシャルプラットフォーム全体でユーザー名を検索 |
| エンリッチャー | 実行内容 |
|---|
| ASN所有権 | ASNの背後にある組織を特定 |
| ドメインポートフォリオ | 同じエンティティが所有する他のドメインを検索 |
| 企業詳細 | 企業登録情報を取得 |
| エンリッチャー | 実行内容 |
|---|
| ウェブサイトクローリング | サイト構造をマッピングしてページを発見 |
| リンク抽出 | ウェブページからすべてのリンクを抽出 |
| トラッキングスクリプト | アナリティクスとトラッキングコードを識別 |
| テキストハーベスティング | ページからテキストコンテンツを抽出 |
| エンリッチャー | 実行内容 |
|---|
| ウォレットトランザクション | アドレスのトランザクション履歴を表示 |
| NFT所有権 | ウォレットアドレスのNFT保有を追跡 |
| 統合 | 実行内容 |
|---|
| N8nワークフロー | N8n自動化ワークフローに接続 |
ダッシュボードから新しい調査を開始します。わかりやすい名前とオプションのタグを付けます。
開始エンティティ(既知のドメイン、メール、IPなど)をグラフキャンバスに追加します。
エンティティを右クリックするか選択して、関連するエンリッチャーを実行します。新しいエンティティと接続が自動的にグラフに追加されます。
ビジュアルグラフを使用して接続を追跡:
- ドメイン → IP: ホスティング関係
- メール → 侵害: 侵害されたアカウント
- ドメイン → サブドメイン: 攻撃対象領域のマッピング
- ユーザー名 → プラットフォーム: デジタルフットプリント
新しく発見されたエンティティを選択し、追加のエンリッチャーを実行して調査グラフを拡張します。
| 機能 | 説明 |
|---|
| グラフ視覚化 | エンティティ関係を示すインタラクティブなノードリンク図 |
| 自動エンリッチメント | 複数のOSINTソースからワンクリックでデータ収集 |
| ローカルストレージ | すべてのデータはマシン上に保持 — プライバシーバイデザイン |
| マルチユーザー | チーム調査のための認証システム |
| モジュラーアーキテクチャ | プラグインシステムでカスタムエンリッチャーを追加 |
| エクスポート | レポート用に調査データをエクスポート |
# 個別モジュールのテスト
cd flowsint-core
poetry run pytest
cd flowsint-api
poetry run pytest
cd flowsint-enrichers
poetry run pytest
- ターゲットドメインをエンティティとして追加
- DNS解決を実行 → IPを発見
- サブドメイン列挙を実行 → 攻撃対象領域をマッピング
- WHOISを実行 → 登録者情報を検索
- ウェブサイトクローリングを実行 → サイト構造をマッピング
- 発見されたIPにピボット → 逆引きDNSを実行
- ターゲットメールをエンティティとして追加
- 侵害チェックを実行 → 侵害されたデータベースを検索
- Gravatar発見を実行 → リンクされたプロファイルを検索
- ユーザー名を抽出 → プラットフォーム全体でユーザー名検索を実行
- 既知のIPまたはASNを追加
- ASN所有権を実行 → 組織を特定
- CIDR拡張を実行 → IP範囲をマッピング
- IPで逆引きDNSを実行 → ドメインを発見
- グラフで完全なインフラストラクチャを視覚化
| 問題 | 解決策 |
|---|
| Dockerビルドが失敗 | DockerとMakeがインストールされ実行中であることを確認 |
| ポート5173で競合 | docker-compose.ymlでポートマッピングを変更 |
| エンリッチャータイムアウト | ネットワーク接続を確認; 一部のエンリッチャーはインターネットが必要 |
| 空の結果 | エンティティ形式が正しいことを確認(有効なドメイン、IPなど) |
| 認証エラー | /registerで新しいアカウントを登録 |