shaz-in-dev/intel-platform
GitHub: shaz-in-dev/intel-platform
一个多语言微服务架构的威胁情报平台,通过 Tor 采集、HTML 净化、实体提取与风险评分 pipeline,将网络数据转化为可搜索的情报制品。
Stars: 1 | Forks: 0
# Intel Platform
Intel Platform 是一个多语言智能 pipeline,负责收集网页内容、净化并丰富文本、评估风险,并对结果进行索引以供搜索和调查。
## 本仓库提供的功能
本项目可在本地或容器中实现端到端运行:
1. 使用 Go 通过 Tor 抓取源页面。
2. 使用 Rust 清理和规范化原始 HTML。
3. 使用 Python 提取实体并计算风险。
4. 将可搜索的 artifacts 存储在 Elasticsearch 中。
5. 通过 React dashboard、gateway 和 observability stack 暴露运维操作。
简而言之:本仓库将嘈杂的网络数据转化为可搜索、带风险评分的情报 artifacts。
## 本项目的优势
与大多数示例仓库相比,本平台包含:
1. 多语言服务专业化(Go、Rust、Python、TypeScript)。
2. 跨 pipeline 阶段的队列驱动解耦。
3. 生产环境和 observability compose overlays。
4. 用于质量、性能、混沌和策略检查的 CI workflows。
5. 健康端点以及重启/依赖控制。
6. 贡献者和安全文档。
## 当前的拓展目标
该平台已具备生产能力并经过显著强化,仍有以下高门槛的改进空间:
1. ML 风险模型已经过训练和评估,但仍需要更多生产环境的标注数据和在线自适应能力。
2. JWT RBAC 已实现,但外部 IdP 集成(OIDC/SAML)仍是下一步计划。
3. Canary 分析支持基于错误率的回滚;基于延迟百分位的回滚可以提升信号质量。
4. Elasticsearch schema 迁移已通过 reindex 实现自动化;全集群零停机的滚动迁移仍需手动执行。
5. 混沌测试矩阵涵盖 Redis、Elasticsearch、网络分区和级联故障;磁盘 I/O 故障注入仍待实现。
6. Policy-as-code 涵盖 Compose、Kubernetes 和 Terraform;runtime 准入控制尚属空白。
## 架构
1. collector-go 通过 Tor 抓取已配置的 domain,并将 envelopes(raw_html, source_url, traceparent)推送到 Redis 队列 RAW_QUEUE_NAME。
2. sanitizer-rust 去除 HTML,执行质量阈值校验,并将规范化的 payload 写入 SANITIZED_QUEUE_NAME。
3. brain-python 提取实体、评估风险,并将文档索引到 Elasticsearch aliases 中。
4. auth-api 发布并验证 JWT token 和角色声明(admin、analyst、viewer)。
5. dashboard-ui 通过 gateway 提供操作状态和访问路由。
6. 可使用 Kibana 和 Neo4j 进行搜索和图工作流。
## 已实现的核心功能
1. collector、sanitizer 和 brain 服务上的 metrics 端点。
2. 针对已处理、已丢弃、parse 回退和失败情况记录的 runtime 计数器。
3. 针对 raw 和 sanitized 阶段的 Dead-letter queues 以及重放工具。
4. 跨服务的 Trace 上下文传播。
5. OpenTelemetry Collector 和 Tempo 集成。
6. 带有版本的 Elasticsearch schema aliases 和带有模型版本的文档。
7. 风险模型回归评估和 ML 训练 pipeline。
8. 通过 gateway 的 auth_request 流程在边缘实现基于 JWT 的 RBAC。
9. 蓝绿部署 overlay 和切换脚本。
10. 带有自动回滚的自动化 Canary 分析。
11. 自动化的 Elasticsearch reindex 迁移脚本。
12. 针对 Redis、Elasticsearch、网络分区和级联故障的混沌 workflows。
13. 针对 Compose、Kubernetes 和 Terraform 的策略 workflows。
## 仓库结构
- services/collector-go:Tor 爬虫和 Redis 生产者。
- services/sanitizer-rust:HTML 清理和文本规范化。
- services/brain-python:丰富信息、风险评分、索引。
- services/auth-api:JWT 认证和角色验证。
- services/dashboard-ui:Web dashboard。
- infrastructure:nginx gateway、prometheus、grafana、tempo、otel collector 配置。
- tests/chaos:可靠性故障模拟。
- policy:用于 compose、kubernetes、terraform 的 OPA/Rego 规则。
- scripts:设置、健康检查、canary 部署、迁移、重放、卸载辅助脚本。
## 快速开始
1. 将 .env.example 复制到 .env。
2. 检查凭证和环境变量值。
3. 运行:docker compose up --build
4. 打开 dashboard:http://localhost:3000
5. 打开 Kibana:http://localhost:5601
6. 打开 Neo4j Browser:http://localhost:7474
## 生产环境 Profile
启动生产级别的边缘路由和认证:
1. 在 .env 中设置强密码值:
- ELASTIC_PASSWORD
- NEO4J_PASSWORD
- AUTH_SECRET_KEY
- RBAC_ADMIN_PASSWORD
2. 运行:
- docker compose -f docker-compose.yml -f docker-compose.prod.yml up --build -d
3. 验证端点:
- Gateway 健康状态:http://localhost:8080/health
- Brain 健康状态:http://localhost:8080/brain/health
### 身份验证和 RBAC
Gateway 路由通过 auth-api 使用 JWT 角色检查。
1. 登录:
- curl -X POST http://localhost:8080/auth/login -H "Content-Type: application/json" -d '{"username":"admin","password":"admin-secret"}'
2. 使用 token:
- curl -H "Authorization: Bearer " http://localhost:8080/
3. 创建用户(仅限 admin):
- curl -X POST -H "Authorization: Bearer " -H "Content-Type: application/json" http://localhost:8080/auth/users -d '{"username":"analyst1","password":"secret","role":"analyst"}'
路由访问权限:
- /:viewer、analyst、admin
- /kibana/:analyst、admin
- /admin/:admin
- /health、/brain/health、/auth/login:公开
## Observability Profile
运行带有 tracing 和 metrics 的 stack:
- docker compose -f docker-compose.yml -f docker-compose.prod.yml -f docker-compose.observability.yml up -d --build
端点:
- Grafana:http://localhost:3001
- Prometheus:http://localhost:9090
- Tempo:http://localhost:3200
- OTLP ingest:localhost:4317 (gRPC)、localhost:4318 (HTTP)
## 部署与可靠性运维
蓝绿切换:
- ./scripts/switch_rollout.ps1 -Color green
- ./scripts/switch_rollout.ps1 -Color blue
带有自动回滚的 Canary:
- python scripts/canary_analysis.py --canary-duration 120 --error-threshold 0.05
Schema 迁移:
- python scripts/es_migrate.py --dry-run
- python scripts/es_migrate.py --auto
DLQ 重放:
- ./scripts/replay_dlq.ps1 -SourceQueue sanitized_text_dlq -TargetQueue sanitized_text -Count 100
## 开发检查
- Go 测试:cd services/collector-go && go test ./...
- Rust 测试:cd services/sanitizer-rust && cargo test
- Brain 测试:cd services/brain-python && python -m unittest discover -s src -p "test_*.py"
- 风险评估:cd services/brain-python && python eval_model.py
- 训练 ML 模型:cd services/brain-python && python train_risk_model.py
- UI 构建:cd services/dashboard-ui && npm install && npm run build
- Compose lint:docker compose -f docker-compose.yml -f docker-compose.prod.yml config
## 性能门禁
性能门禁资产:
1. Workflow:.github/workflows/performance-gate.yml
2. 负载 profile:tests/perf/gateway-health.js
3. 消耗率评估器:scripts/evaluate_burn_rate.py
消耗率公式:
BR = ER / (1 - SLO)
其中:
- BR = 消耗率
- ER = 观察到的错误率
- SLO = 目标成功率
当消耗率超过配置的阈值时,门禁检查将失败。
## 治理
1. 策略 workflow:.github/workflows/policy.yml
2. 混沌 workflow:.github/workflows/chaos.yml
3. Compose 策略规则:policy/compose/deny.rego
4. Kubernetes 策略规则:policy/kubernetes/deny.rego
5. Terraform 策略规则:policy/terraform/deny.rego
## 注意事项
- 在默认的本地模式下,为提高速度禁用了 Elasticsearch 安全功能。
- 根目录下的数据目录仅用于本地持久化。
- 在暴露到公共网络之前,请使用受管理的 secret 存储和网络隔离。
标签:Apex, Elasticsearch, Go, Python, Ruby工具, Rust, 可视化界面, 多语言架构, 威胁情报, 实时处理, 开发者工具, 搜索引擎查询, 数据处理流水线, 无后门, 日志审计, 机器学习, 用户代理, 网络流量审计, 自定义请求头, 请求拦截, 越狱测试, 逆向工具