Flowsint:面向网络安全分析师的 OSINT 图谱调查平台
Flowsint 是一个开源的 OSINT 图谱探索工具,主打合乎伦理的调查、透明与可验证。它通过可视化图谱界面与自动化 enricher(富化器),帮助分析人员探索域名、IP、ASN、CIDR、邮箱、电话、组织、社交账号、加密货币钱包、网站等实体之间的关系,所有数据都存储在本地机器上,适合网络安全分析师、记者与 OSINT 调查人员、执法或反欺诈团队以及做内部威胁情报与数字风险分析的组织使用。
社区作者 · zZz
它解决什么问题
Flowsint 是一个基于图谱的调查工具,专注侦察与 OSINT(开源情报)。它允许用户通过可视化图谱界面与自动化 enricher 来探索实体之间的关系。
伦理与合规:项目要求使用者阅读 ETHICS.md 以了解负责任的使用准则,并明确声明 Flowsint 仅用于合法、合乎伦理的调查与研究目的。
适用对象:网络安全研究员与分析人员;记者与 OSINT 调查人员;执法或反欺诈调查团队;开展内部威胁情报或数字风险分析的组织。禁止用途:未经授权的入侵、监视或数据收集;骚扰、人肉(doxxing)或针对个人的攻击;政治操纵、虚假信息或违反隐私法的行为。
可用的 Enricher(富化器):
- 域名类:反向 DNS 解析(找出指向某 IP 的域名)、DNS 解析(域名解析为 IP)、子域名发现、WHOIS 查询、域名转网站实体、域名转根域名、域名转 ASN、域名历史数据检索。
- IP 类:IP 信息(地理位置与网络详情)、IP 转 ASN。
- ASN 类:ASN 转 CIDR(获取某 ASN 的 IP 段)。
- CIDR 类:CIDR 转 IP(枚举范围内的 IP)。
- 社交媒体类:Maigret(跨社交平台的用户名搜索)。
- 组织类:组织转 ASN、组织信息(公司详情)、组织转域名。
- 加密货币类:钱包转交易记录、钱包转 NFT。
- 网站类:网站爬虫(抓取并绘制站点结构)、网站转链接、网站转域名、网站转 Webtrackers(识别追踪脚本)、网站转文本。
- 邮箱类:邮箱转 Gravatar 资料、邮箱转数据泄露记录、邮箱转关联域名。
- 电话类:电话转数据泄露记录。
- 个人类:个人转组织(组织隶属关系)、个人转域名。
- 集成类:N8n 连接器(连接 N8n 工作流)。
项目结构(按自治模块组织):
- flowsint-core:核心工具、编排器(orchestrator)、vault、celery 任务与基类。
- flowsint-types:Pydantic 模型与类型定义。
- flowsint-enrichers:Enricher 模块、扫描逻辑与工具。
- flowsint-api:仅包含 FastAPI 服务器、API 路由与 schema。
- flowsint-app:前端应用。
模块依赖关系:flowsint-app(前端)→ flowsint-api(API 服务器)→ flowsint-core(编排器、任务、vault)→ flowsint-enrichers(enrichers 与工具)→ flowsint-types(类型)。
各模块细节:flowsint-core 提供数据库连接(PostgreSQL、Neo4j)、认证与授权、日志与事件处理、配置管理、enricher 与工具的基类及工具函数;flowsint-types 提供 Domain、IP、ASN、CIDR、Individual、Organization、Email、Phone、Website、社交资料、凭证、加密钱包、交易、NFT 等的 Pydantic 模型;flowsint-enrichers 覆盖域名(子域名、WHOIS、解析)、IP(地理定位、ASN 查询)、社交媒体(Maigret、Sherlock)、邮箱(泄露记录、Gravatar)、加密(交易、NFT)等;flowsint-api 提供 REST API 端点、认证与用户管理、图数据库集成、实时事件流;flowsint-app 是前端应用,界面现代易用,面向性能设计(即使数千个节点也不卡顿)。
开发工作流:新增类型加到 flowsint-types;新增 enricher 加到 flowsint-enrichers;新增 API 端点加到 flowsint-api;新增工具函数加到 flowsint-core。贡献要求遵循模块化结构、使用 uv 管理依赖、为新功能编写测试、按需更新文档,并参考 CONTRIBUTING.md 中提交前的检查项。
项目仍处于早期开发阶段,明确表示需要社区帮助,欢迎提交 issue、提议功能等。配图 1 为项目主视觉(hero-dark)示意图。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
快速开始(不想读文档版):
【Linux / macOS】
- 安装前置依赖:Docker、Make。
- 运行安装命令:
git clone https://github.com/reconurge/flowsint.gitcd flowsintmake prod【Windows】(不需要 Make,在命令提示符 cmd 和 PowerShell 中均可使用)
步骤 1 · 安装前置依赖:
Docker Desktop(下一步之前确保它已在运行)、Git。
- 克隆并设置环境文件:
git clone https://github.com/reconurge/flowsint.gitcd flowsintcopy .env.example .env copy .env.example flowsint-api\.env copy .env.example flowsint-core\.env copy .env.example flowsint-app\.env
- 启动:
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.gitcd flowsintcp .env.example .env编辑 .env —— 见下方“暴露到网络之前”
docker compose -f docker-compose.prod.yml up -d网络上任何人都可通过 http://<server-ip>:5173 访问 Flowsint。
暴露到网络之前,必须修改 .env 中的默认密钥:
- AUTH_SECRET —— 用于签发认证令牌。生成命令:openssl rand -hex 32
MASTER_VAULT_KEY_V1 —— 用于加密存储的 API 密钥。生成命令:
python3 -c "import os, base64; print('base64:' + base64.b64encode(os.urandom(32)).decode())"同时把你服务器的主机名/IP 加入 flowsint-app/nginx.conf 中的 Host 头允许列表(查找 map $http_host $is_flowsint_host)。默认允许列表只接受 localhost / 127.0.0.1 / [::1],用于保护单用户安装免受 DNS 重绑定攻击;LAN 与公网部署必须自行把主机名加入白名单。同一 map 块中有两行注释掉的模板展示格式。
只有 5173 端口暴露到网络;PostgreSQL、Redis、Neo4j 与 API 在服务器上都绑定到 127.0.0.1,只能通过前端代理访问。 如需固定特定版本而不是 latest,可在 .env 中设置 FLOWSINT_VERSION(例如 FLOWSINT_VERSION=1.2.10)。
- NEO4J_PASSWORD —— Neo4j 数据库密码。
【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。
【开发环境搭建】
前置依赖:
Docker。
运行方式——Linux / macOS(需要 Make)
make devWindows(cmd 或
PowerShell,不需要 Make,需先创建 .env 文件,见“快速开始”):
docker compose -f docker-compose.dev.yml up -d --builddocker compose -f docker-compose.dev.yml logs -f应用可访问地址:http://localhost:5173 。
【测试】每个模块有各自的(尚不完整的)测试套件:
测试 core 模块
cd flowsint-coreuv run pytest测试 types 模块
cd ../flowsint-typesuv run pytest测试 enrichers 模块
cd ../flowsint-enrichersuv run pytest测试 API 模块
cd ../flowsint-apiuv run pytest【常见问题】
- 首次进入没有账号:系统不预置任何凭据,需自行到 /register 注册。
- 局域网/公网访问报错或被拦截:检查是否已把服务器主机名/IP 加入 nginx.conf 的 Host 头允许列表。
- 安全问题:公网部署前务必替换 AUTH_SECRET、MASTER_VAULT_KEY_V1、NEO4J_PASSWORD 三个默认密钥。
- 想要固定版本:在 .env 设置 FLOWSINT_VERSION。