suryakantighosh/PRAHAR
GitHub: suryakantighosh/PRAHAR
PRAHAR 是一个证据驱动的 OSINT 与威胁情报平台,通过模块化流水线将碎片化公开数据转化为结构化、可审计的调查洞察。
Stars: 0 | Forks: 0
# PRAHAR v2
PRAHAR 是一个证据驱动的情报平台,旨在将碎片化的公开来源数据转化为结构化、可解释的调查工作流。它将异步摄取、身份解析、基于图谱的证据链接、自然语言处理、行为评分和面向分析师的报告整合到一个单一的架构中,专为开源情报、风险评估和调查分析而设计。
该项目有意采用模块化设计:工作流的每个阶段都作为独立的功能隔离,使系统能够从研究原型演进为生产级的决策支持平台。
## 项目存在的原因
现代调查通常始于分散的信号:用户名、域名、电子邮件、电话号码、照片、公共记录和社交足迹。这些信号很少集中在一个地方,而且通常是不一致的、不完整的或难以验证的。
PRAHAR 的存在是为了减少这种摩擦,它提供了一个可重复的 pipeline,能够:
- 从多个公开和半公开来源摄取数据,
- 跨平台整合身份,
- 构建用于发现关系和矛盾的证据图谱,
- 使用分层分析进行置信度评分,
- 并生成结构化、可审计的情报输出。
这使得该平台对于需要可防御、可追溯和可解释的工作流,而不是不透明的黑盒预测的分析师、调查员、研究人员和团队来说非常有用。
## 问题陈述
调查工作经常因以下原因而放缓:
- 碎片化的来源收集,
- 跨平台的手动关联,
- 有限的溯源和可审计性,
- 不一致的置信度评估,
- 以及从原始信号到可用洞察的薄弱交接。
PRAHAR 通过将摄取、丰富、图谱分析、评分和报告组合到一个可以在本地或容器化环境中部署的单一平台中,从而解决了这一差距。
## 产品概述
PRAHAR 围绕多阶段情报 pipeline 组织:
1. 从域名、用户名、姓名、电子邮件、电话或图像进行种子录入。
2. 从公开来源的 connector 和基于 Web 的丰富服务收集证据。
3. 使用平台级别的信号进行身份融合和整合。
4. 通过 NLP 和图谱存储进行实体提取和关系分析。
5. 使用 AMCE、SIF 和 TBS 等分层模型进行置信度评分。
6. 交付面向分析师的产出物,如 PDF 简报和 STIX 导出。
这种设计强调了对人类操作员的透明度、可溯源性和实用性。
## 架构概览
PRAHAR 构建为一个分层系统,具有以下职责:
- 摄取层:从外部服务和公开数据源获取原始证据。
- 身份层:跨平台解析和融合身份片段。
- 知识层:在 PostgreSQL 和 Neo4j 中持久化结构化记录和证据关系。
- 情报层:应用 NLP、面部 embedding 分析、文体指纹识别、时间行为分析和置信度评分。
- 分析师层:公开 dashboard、API 和用于下游使用的报告生成工作流。
该系统围绕异步处理、模块化服务和共享持久化模型设计,以便每个阶段都可以独立开发和改进。
## 核心能力
### 证据摄取
- 基于域名、用户名、人员和元数据的摄取工作流。
- 具有速率限制感知和安全错误处理的异步 connector 编排。
- 带有审计哈希和利于溯源的元数据的原始数据持久化。
### 身份解析
- 跨平台身份信号收集。
- 将片段融合为整合的身份。
- 支持数据泄露、电话和平台资料的丰富。
### 知识图谱和实体分析
- 基于图谱的证据关系和矛盾建模。
- 基于 NLP 的实体提取和标准化。
- 用于实体、别名和证据关系的结构化存储。
### 置信度评分
- 使用 AMCE 进行多层自适应评分。
- 通过 SIF 和 TBS 进行行为和文体特征丰富。
- 通过反馈驱动的优化来持续改进评分。
### 分析师产出
- 用于操作可见性的 dashboard endpoint。
- 生成 PDF 情报简报和 STIX 导出。
- 用于审计的可追溯溯源链。
## 技术栈
PRAHAR 主要使用 Python 实现,并采用现代异步、面向服务的架构。
### 核心平台
- Python 3.9+
- FastAPI 用于 API 暴露
- SQLAlchemy 用于关系型持久化
- 带有 pgvector 支持的 PostgreSQL
- Redis 用于缓存和类队列协调
- RabbitMQ 用于异步任务协调
- Neo4j 用于图谱存储和关系分析
### 情报和数据处理
- 异步 HTTP 客户端和面向抓取的工具
- Playwright 用于基于浏览器的公开记录检索
- spaCy、transformers、numpy、scipy、scikit-learn 用于 NLP 和 ML 工作流
- OpenCV、Pillow 和 deepface 风格的计算机视觉能力
- ReportLab 用于 PDF 报告生成
- STIX 2.1 支持,用于结构化情报交换
## 仓库结构
```
prahar/
api/ # FastAPI application entry points
core/ # configuration, database, shared runtime settings
models/ # SQLAlchemy ORM models for persistence
modules/ # domain-specific capability modules
c01_ingestion/ # evidence ingestion
c02_identity/ # identity fusion and resolution
c03_face/ # face embedding and matching workflows
c04_records/ # public record retrieval
c05_nlp/ # entity extraction and NLP enrichment
c06_graph/ # graph persistence and schema
c07_amce/ # confidence scoring engine
c08_brief/ # report generation and provenance logic
c09_dashboard/ # API and aggregation layer for analyst workflows
c10_sif/ # stylometric fingerprinting
c11_tbs/ # temporal behavior scoring
c12_optimizer/ # feedback-driven weight optimization
tests/ # unit and integration test suites
infra/ # infrastructure assets and database initialization
Dockerfile # application container definition
docker-compose.yml # local services stack
requirements.txt # Python dependency manifest
```
## 安装说明
### 前置条件
- Python 3.9+
- Docker 和 Docker Compose(推荐用于本地基础设施)
- 本地或远程的 PostgreSQL、Redis、RabbitMQ 和 Neo4j 环境,或提供的 Docker 技术栈
### 安装依赖
```
pip install -r requirements.txt
python -m spacy download en_core_web_trf
playwright install chromium
```
### 环境设置
```
cp env.example .env
```
在启动平台之前,请查看环境文件中的变量,并调整服务端点、凭据和可选的 API 密钥。
## 快速开始
### 选项 A:基于 Docker 的本地部署
```
docker-compose up -d
```
这将启动 PostgreSQL、Redis、RabbitMQ、Neo4j 和 API 应用容器的支持服务。
### 选项 B:本地开发 runtime
```
uvicorn prahar.api.main:app --host 0.0.0.0 --port 8000 --reload
```
API 文档可在以下地址获取:
- http://localhost:8000/docs
- http://localhost:8000/redoc
## 配置说明
配置通过环境变量和共享配置模块驱动。仓库在 [env.example](env.example) 中包含了一个环境模板,以支持本地设置和部署规划。
### 核心环境变量
- POSTGRES_DB / POSTGRES_USER / POSTGRES_PASSWORD
- DATABASE_URL
- REDIS_URL
- CELERY_BROKER_URL / CELERY_RESULT_BACKEND
- NEO4J_URI / NEO4J_USER / NEO4J_PASSWORD
- OLLAMA_BASE_URL / OLLAMA_MODEL
- PRAHAR_ENV / PRAHAR_LOG_LEVEL / PRAHAR_CASE_TIMEOUT_SECONDS / PRAHAR_CPIF_THRESHOLD
如果您的部署环境中提供免费的丰富服务,可以通过同一个环境文件对其进行配置。
## 运行平台
### API
FastAPI 服务公开了一组面向调查的 endpoint,用于摄取、解析、评分和 dashboard 视图。
### 后台处理
该平台旨在为丰富和评分等耗时的任务提供异步执行支持。后台 worker 模式通过模块化的服务架构以及队列/后端基础设施进行连接。
### 验证
```
python smoke_test.py
```
此冒烟测试检查主要 runtime 依赖的可用性,并帮助确认环境已准备好可供进一步使用。
## Docker 部署
仓库包含一个容器化部署模型,它配置了平台所需的核心基础设施服务:
- 带有 pgvector 支持的 PostgreSQL
- Redis
- RabbitMQ
- Neo4j
- 用于应用 runtime 的 API 容器
这是用于本地开发和受控评估环境的推荐路径。
## API 概览
API 接口围绕调查工作流进行组织:
- POST /api/v1/ingest/domain
- POST /api/v1/ingest/username
- POST /api/v1/resolve/username
- POST /api/v1/score/case
- GET /api/v1/dashboard/health
- GET /api/v1/dashboard/stats
- GET /api/v1/dashboard/cases
- GET /api/v1/dashboard/graph
- GET /api/v1/dashboard/quotas
这些路由同时提供了操作健康状况和面向分析师的报告功能。
## 工作流
典型的调查流程如下所示:
1. 使用域名、用户名、电子邮件、电话或图像作为实体或目标的种子。
2. 从相关的 connector 摄取原始证据。
3. 将记录持久化并标准化到共享数据存储中。
4. 跨可用平台解析身份片段。
5. 使用 NLP、图谱关系和行为信号丰富案例。
6. 使用 AMCE 及相关支持模型对目标进行评分。
7. 发布简短的情报摘要或 STIX bundle 供分析师审查。
此工作流强调可重复性、可观测性和证据链接,而非临时分析。
## 安全模型
PRAHAR 采用面向调查的安全态势而非消费者 SaaS 的安全态势构建。当前的实现强调:
- 基于环境的密钥管理,
- 服务级别的配置隔离,
- 用于报告生成的加密溯源,
- 以及可追溯的证据持久化。
对于生产部署,应审查以下强化领域:
- 用于 API 访问的身份验证和授权,
- 内部服务之间的网络隔离,
- 密钥轮换和 vault 集成,
- 更严格的 CORS 和 ingress 控制,
- 以及针对操作事件的不可变审计日志。
## 性能与可扩展性
该架构专为异步执行和模块化扩展而设计:
- 并发摄取任务减少了多源收集的实际延迟,
- CPU 消耗大的 ML 和 NLP 阶段与事件循环隔离,
- 图谱和 vector 支持的存储支持关系和相似性工作负载,
- 并且 API 层保持无状态,适合基于容器的部署。
该设计适用于中等规模的操作使用,并且随着需求的增长,可以通过额外的 worker 池、队列扩展和专用的推理服务进行扩展。
## 路线图
当前的仓库反映了调查情报平台的坚实基础。下一阶段的成熟度将重点关注:
- 生产级的身份验证和 RBAC,
- 经过身份验证的分析师工作空间和案例管理,
- 持久的任务编排和重试,
- 更丰富的图谱分析和可视化,
- 扩展的 connector 和丰富数据提供商,
- 以及更高级的模型评估和微调工作流。
## 截图和可视化产出物
此仓库的结构旨在支持丰富的分析师体验,包括:
- dashboard 健康状况和 pipeline 状态视图,
- 案例详情和证据摘要,
- 基于图谱的关系视图,
- 置信度评分明细,
- 以及生成的情报简报。
这些产出物非常适合用于未来的文档扩展和公开演示。
## 架构部分
PRAHAR 将几个专门的子系统组合成一个具有凝聚力的情报工作流:
- C-01 摄取收集并存储原始证据。
- C-02 身份解析将片段整合为身份表示。
- C-03 和 C-04 使用面部和公共记录信号丰富案例。
- C-05 和 C-06 将证据转化为实体和图谱关系。
- C-07、C-10、C-11 和 C-12 生成置信度评分和优化反馈。
- C-08 和 C-09 提供面向分析师的报告和 dashboard 访问权限。
该平台不仅为数据收集而设计,还旨在从嘈杂和分散的来源中生成具有防御性的、人类可读的情报。
## 贡献
欢迎 contributions。对于重大更改,请先提出 issue,讨论工作方向及其对平台架构的影响。
建议的贡献领域包括:
- connector 可靠性和来源管理,
- 评分方法的改进,
- dashboard 和报告的增强,
- 基础设施强化和部署自动化,
- 以及文档质量。
## 许可证
此仓库目前不包含已声明的公共许可证文件。在公开发布此仓库之前,请添加标准的开源许可证(如 MIT 或 Apache-2.0),并使其与您预期的分发模型保持一致。
## 致谢
PRAHAR 建立在广泛的用于 Web 访问、数据处理、图谱分析、NLP 和报告的开源软件生态系统之上。该项目旨在作为一个应用研究和工程平台,重视透明度、模块化和操作实用性。
## 项目存在的原因
现代调查通常始于分散的信号:用户名、域名、电子邮件、电话号码、照片、公共记录和社交足迹。这些信号很少集中在一个地方,而且通常是不一致的、不完整的或难以验证的。
PRAHAR 的存在是为了减少这种摩擦,它提供了一个可重复的 pipeline,能够:
- 从多个公开和半公开来源摄取数据,
- 跨平台整合身份,
- 构建用于发现关系和矛盾的证据图谱,
- 使用分层分析进行置信度评分,
- 并生成结构化、可审计的情报输出。
这使得该平台对于需要可防御、可追溯和可解释的工作流,而不是不透明的黑盒预测的分析师、调查员、研究人员和团队来说非常有用。
## 问题陈述
调查工作经常因以下原因而放缓:
- 碎片化的来源收集,
- 跨平台的手动关联,
- 有限的溯源和可审计性,
- 不一致的置信度评估,
- 以及从原始信号到可用洞察的薄弱交接。
PRAHAR 通过将摄取、丰富、图谱分析、评分和报告组合到一个可以在本地或容器化环境中部署的单一平台中,从而解决了这一差距。
## 产品概述
PRAHAR 围绕多阶段情报 pipeline 组织:
1. 从域名、用户名、姓名、电子邮件、电话或图像进行种子录入。
2. 从公开来源的 connector 和基于 Web 的丰富服务收集证据。
3. 使用平台级别的信号进行身份融合和整合。
4. 通过 NLP 和图谱存储进行实体提取和关系分析。
5. 使用 AMCE、SIF 和 TBS 等分层模型进行置信度评分。
6. 交付面向分析师的产出物,如 PDF 简报和 STIX 导出。
这种设计强调了对人类操作员的透明度、可溯源性和实用性。
## 架构概览
PRAHAR 构建为一个分层系统,具有以下职责:
- 摄取层:从外部服务和公开数据源获取原始证据。
- 身份层:跨平台解析和融合身份片段。
- 知识层:在 PostgreSQL 和 Neo4j 中持久化结构化记录和证据关系。
- 情报层:应用 NLP、面部 embedding 分析、文体指纹识别、时间行为分析和置信度评分。
- 分析师层:公开 dashboard、API 和用于下游使用的报告生成工作流。
该系统围绕异步处理、模块化服务和共享持久化模型设计,以便每个阶段都可以独立开发和改进。
## 核心能力
### 证据摄取
- 基于域名、用户名、人员和元数据的摄取工作流。
- 具有速率限制感知和安全错误处理的异步 connector 编排。
- 带有审计哈希和利于溯源的元数据的原始数据持久化。
### 身份解析
- 跨平台身份信号收集。
- 将片段融合为整合的身份。
- 支持数据泄露、电话和平台资料的丰富。
### 知识图谱和实体分析
- 基于图谱的证据关系和矛盾建模。
- 基于 NLP 的实体提取和标准化。
- 用于实体、别名和证据关系的结构化存储。
### 置信度评分
- 使用 AMCE 进行多层自适应评分。
- 通过 SIF 和 TBS 进行行为和文体特征丰富。
- 通过反馈驱动的优化来持续改进评分。
### 分析师产出
- 用于操作可见性的 dashboard endpoint。
- 生成 PDF 情报简报和 STIX 导出。
- 用于审计的可追溯溯源链。
## 技术栈
PRAHAR 主要使用 Python 实现,并采用现代异步、面向服务的架构。
### 核心平台
- Python 3.9+
- FastAPI 用于 API 暴露
- SQLAlchemy 用于关系型持久化
- 带有 pgvector 支持的 PostgreSQL
- Redis 用于缓存和类队列协调
- RabbitMQ 用于异步任务协调
- Neo4j 用于图谱存储和关系分析
### 情报和数据处理
- 异步 HTTP 客户端和面向抓取的工具
- Playwright 用于基于浏览器的公开记录检索
- spaCy、transformers、numpy、scipy、scikit-learn 用于 NLP 和 ML 工作流
- OpenCV、Pillow 和 deepface 风格的计算机视觉能力
- ReportLab 用于 PDF 报告生成
- STIX 2.1 支持,用于结构化情报交换
## 仓库结构
```
prahar/
api/ # FastAPI application entry points
core/ # configuration, database, shared runtime settings
models/ # SQLAlchemy ORM models for persistence
modules/ # domain-specific capability modules
c01_ingestion/ # evidence ingestion
c02_identity/ # identity fusion and resolution
c03_face/ # face embedding and matching workflows
c04_records/ # public record retrieval
c05_nlp/ # entity extraction and NLP enrichment
c06_graph/ # graph persistence and schema
c07_amce/ # confidence scoring engine
c08_brief/ # report generation and provenance logic
c09_dashboard/ # API and aggregation layer for analyst workflows
c10_sif/ # stylometric fingerprinting
c11_tbs/ # temporal behavior scoring
c12_optimizer/ # feedback-driven weight optimization
tests/ # unit and integration test suites
infra/ # infrastructure assets and database initialization
Dockerfile # application container definition
docker-compose.yml # local services stack
requirements.txt # Python dependency manifest
```
## 安装说明
### 前置条件
- Python 3.9+
- Docker 和 Docker Compose(推荐用于本地基础设施)
- 本地或远程的 PostgreSQL、Redis、RabbitMQ 和 Neo4j 环境,或提供的 Docker 技术栈
### 安装依赖
```
pip install -r requirements.txt
python -m spacy download en_core_web_trf
playwright install chromium
```
### 环境设置
```
cp env.example .env
```
在启动平台之前,请查看环境文件中的变量,并调整服务端点、凭据和可选的 API 密钥。
## 快速开始
### 选项 A:基于 Docker 的本地部署
```
docker-compose up -d
```
这将启动 PostgreSQL、Redis、RabbitMQ、Neo4j 和 API 应用容器的支持服务。
### 选项 B:本地开发 runtime
```
uvicorn prahar.api.main:app --host 0.0.0.0 --port 8000 --reload
```
API 文档可在以下地址获取:
- http://localhost:8000/docs
- http://localhost:8000/redoc
## 配置说明
配置通过环境变量和共享配置模块驱动。仓库在 [env.example](env.example) 中包含了一个环境模板,以支持本地设置和部署规划。
### 核心环境变量
- POSTGRES_DB / POSTGRES_USER / POSTGRES_PASSWORD
- DATABASE_URL
- REDIS_URL
- CELERY_BROKER_URL / CELERY_RESULT_BACKEND
- NEO4J_URI / NEO4J_USER / NEO4J_PASSWORD
- OLLAMA_BASE_URL / OLLAMA_MODEL
- PRAHAR_ENV / PRAHAR_LOG_LEVEL / PRAHAR_CASE_TIMEOUT_SECONDS / PRAHAR_CPIF_THRESHOLD
如果您的部署环境中提供免费的丰富服务,可以通过同一个环境文件对其进行配置。
## 运行平台
### API
FastAPI 服务公开了一组面向调查的 endpoint,用于摄取、解析、评分和 dashboard 视图。
### 后台处理
该平台旨在为丰富和评分等耗时的任务提供异步执行支持。后台 worker 模式通过模块化的服务架构以及队列/后端基础设施进行连接。
### 验证
```
python smoke_test.py
```
此冒烟测试检查主要 runtime 依赖的可用性,并帮助确认环境已准备好可供进一步使用。
## Docker 部署
仓库包含一个容器化部署模型,它配置了平台所需的核心基础设施服务:
- 带有 pgvector 支持的 PostgreSQL
- Redis
- RabbitMQ
- Neo4j
- 用于应用 runtime 的 API 容器
这是用于本地开发和受控评估环境的推荐路径。
## API 概览
API 接口围绕调查工作流进行组织:
- POST /api/v1/ingest/domain
- POST /api/v1/ingest/username
- POST /api/v1/resolve/username
- POST /api/v1/score/case
- GET /api/v1/dashboard/health
- GET /api/v1/dashboard/stats
- GET /api/v1/dashboard/cases
- GET /api/v1/dashboard/graph
- GET /api/v1/dashboard/quotas
这些路由同时提供了操作健康状况和面向分析师的报告功能。
## 工作流
典型的调查流程如下所示:
1. 使用域名、用户名、电子邮件、电话或图像作为实体或目标的种子。
2. 从相关的 connector 摄取原始证据。
3. 将记录持久化并标准化到共享数据存储中。
4. 跨可用平台解析身份片段。
5. 使用 NLP、图谱关系和行为信号丰富案例。
6. 使用 AMCE 及相关支持模型对目标进行评分。
7. 发布简短的情报摘要或 STIX bundle 供分析师审查。
此工作流强调可重复性、可观测性和证据链接,而非临时分析。
## 安全模型
PRAHAR 采用面向调查的安全态势而非消费者 SaaS 的安全态势构建。当前的实现强调:
- 基于环境的密钥管理,
- 服务级别的配置隔离,
- 用于报告生成的加密溯源,
- 以及可追溯的证据持久化。
对于生产部署,应审查以下强化领域:
- 用于 API 访问的身份验证和授权,
- 内部服务之间的网络隔离,
- 密钥轮换和 vault 集成,
- 更严格的 CORS 和 ingress 控制,
- 以及针对操作事件的不可变审计日志。
## 性能与可扩展性
该架构专为异步执行和模块化扩展而设计:
- 并发摄取任务减少了多源收集的实际延迟,
- CPU 消耗大的 ML 和 NLP 阶段与事件循环隔离,
- 图谱和 vector 支持的存储支持关系和相似性工作负载,
- 并且 API 层保持无状态,适合基于容器的部署。
该设计适用于中等规模的操作使用,并且随着需求的增长,可以通过额外的 worker 池、队列扩展和专用的推理服务进行扩展。
## 路线图
当前的仓库反映了调查情报平台的坚实基础。下一阶段的成熟度将重点关注:
- 生产级的身份验证和 RBAC,
- 经过身份验证的分析师工作空间和案例管理,
- 持久的任务编排和重试,
- 更丰富的图谱分析和可视化,
- 扩展的 connector 和丰富数据提供商,
- 以及更高级的模型评估和微调工作流。
## 截图和可视化产出物
此仓库的结构旨在支持丰富的分析师体验,包括:
- dashboard 健康状况和 pipeline 状态视图,
- 案例详情和证据摘要,
- 基于图谱的关系视图,
- 置信度评分明细,
- 以及生成的情报简报。
这些产出物非常适合用于未来的文档扩展和公开演示。
## 架构部分
PRAHAR 将几个专门的子系统组合成一个具有凝聚力的情报工作流:
- C-01 摄取收集并存储原始证据。
- C-02 身份解析将片段整合为身份表示。
- C-03 和 C-04 使用面部和公共记录信号丰富案例。
- C-05 和 C-06 将证据转化为实体和图谱关系。
- C-07、C-10、C-11 和 C-12 生成置信度评分和优化反馈。
- C-08 和 C-09 提供面向分析师的报告和 dashboard 访问权限。
该平台不仅为数据收集而设计,还旨在从嘈杂和分散的来源中生成具有防御性的、人类可读的情报。
## 贡献
欢迎 contributions。对于重大更改,请先提出 issue,讨论工作方向及其对平台架构的影响。
建议的贡献领域包括:
- connector 可靠性和来源管理,
- 评分方法的改进,
- dashboard 和报告的增强,
- 基础设施强化和部署自动化,
- 以及文档质量。
## 许可证
此仓库目前不包含已声明的公共许可证文件。在公开发布此仓库之前,请添加标准的开源许可证(如 MIT 或 Apache-2.0),并使其与您预期的分发模型保持一致。
## 致谢
PRAHAR 建立在广泛的用于 Web 访问、数据处理、图谱分析、NLP 和报告的开源软件生态系统之上。该项目旨在作为一个应用研究和工程平台,重视透明度、模块化和操作实用性。标签:ESC4, OSINT, Python, 威胁情报, 实时处理, 开发者工具, 情报分析, 搜索引擎查询, 无后门, 测试用例, 特征检测, 网络诊断, 请求拦截, 身份识别, 逆向工具