itsbriany/riskstream

GitHub: itsbriany/riskstream

基于 Kubernetes 的流式威胁情报风险评分平台,通过机器学习对安全信号进行上下文相关的优先级排序。

Stars: 0 | Forks: 0

# riskstream Riskstream 是一个流式 ML 排序系统,基于上下文相关性对安全信号进行优先级排序,使消费者能够在近实时状态下聚焦于风险最高的威胁。 基于 Kubernetes 构建,采用 Argo CD GitOps 和 GitHub Actions CI/CD。 ## 快速开始 ### 前置条件 - 本地运行的 k3s 集群(`kubectl` 上下文指向它) - `kubectl` 和 `kustomize` - Docker(用于本地构建) **注意**:不需要 MinIO 客户端(`mc`)- bucket 初始化通过使用容器化工具的 Kubernetes Jobs 自动完成。 ### 在 k3s 上引导 Argo CD ``` chmod +x scripts/bootstrap-k3s.sh scripts/port-forward-argocd.sh ./scripts/bootstrap-k3s.sh ``` 访问 Argo CD: ``` ./scripts/port-forward-argocd.sh ``` 获取初始管理员密码: ``` kubectl -n argocd get secret argocd-initial-admin-secret \ -o jsonpath="{.data.password}" | base64 -d; echo ``` 访问 `https://localhost:8080`(用户名:`admin`,密码来自上文) ### 本地开发 构建并本地部署到 `local-dev` 命名空间: ``` ./scripts/build-and-deploy-local.sh # 此脚本将: # 1. 构建 Docker image # 2. 将其导入 k3s # 3. 部署所有服务(包括 MinIO) # 4. 自动初始化 MinIO buckets(通过 Kubernetes Job) ``` 访问服务: ``` # 检查 pods kubectl get pods -n local-dev # 流式日志 kubectl logs -n local-dev -l app.kubernetes.io/name=riskstream --tail=50 -f # Port forward 服务 kubectl port-forward -n local-dev svc/riskstream 8081:80 # Port forward MinIO(API 端口 9000,Console 端口 9001) ./scripts/port-forward-minio.sh local-dev # MinIO Console:http://localhost:9001(登录:minioadmin/minioadmin) ``` 清理: ``` kubectl delete namespace local-dev ``` ## 路线图 - [X] GitOps CI/CD (Argo CD + Kustomize overlays) - [ ] 流摄入 + 标准化 - [ ] 排序 API (基线) - [ ] 评估 + 反馈循环 - [ ] 持续训练 + 监控 ## 文档 - [**架构**](docs/ARCHITECTURE.md) - Kubernetes 结构、命名空间、Argo CD 行为、镜像标签 - [**CI/CD 流水线**](docs/CI-CD.md) - GitHub Actions, GHCR, 部署流程 - [**MinIO 存储**](docs/MINIO.md) - 对象存储设置、bucket 初始化、用法 - [**贡献指南**](docs/CONTRIBUTING.md) - 开发设置、工具、质量标准 ## 微服务架构 RiskStream 构建为一系列微服务: - **API Gateway** (`:8080`) - 外部客户端的主要入口点 - **摄入服务**: - **ThreatFox** (`:8081`) - 从 abuse.ch ThreatFox API 摄入 IOC - _(计划更多摄入服务)_ - **存储** - 用于威胁数据的 MinIO 对象存储 - 每个环境(local-dev, staging, production)的独立实例 - Buckets: `threat-indicators`, `raw-feeds`, `processed-data`, `archives` 有关详细的服务文档,请参阅 [riskstream/services/README.md](riskstream/services/README.md)。 ## 技术栈 | 组件 | 工具 | |-----------|------| | 容器编排 | Kubernetes (本地使用 k3s) | | GitOps | Argo CD | | 配置管理 | Kustomize | | 镜像仓库 | GitHub Container Registry (GHCR) | | CI/CD | GitHub Actions | | 对象存储 | MinIO (S3 兼容) | ## 仓库布局 ``` . ├── .github/workflows/ci.yml ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── app/ # Legacy app (for CI demo) │ ├── Dockerfile │ └── main.py ├── riskstream/ # Microservices architecture │ ├── services/ │ │ ├── api/ # API Gateway │ │ └── ingestion/ │ │ └── threatfox/ # ThreatFox IOC ingestion │ ├── shared/ │ │ └── utils/ │ │ └── storage.py # MinIO/S3 client │ └── tests/ │ ├── integration/ │ └── e2e/ ├── docs/ │ ├── ARCHITECTURE.md │ ├── CI-CD.md │ └── CONTRIBUTING.md ├── k8s/ │ ├── argocd/ │ ├── base/ │ │ ├── deployment.yaml │ │ ├── service.yaml │ │ ├── minio-deployment.yaml # MinIO base config │ │ └── minio-service.yaml │ ├── namespaces/ │ └── overlays/ │ ├── local-dev/ │ │ └── minio-patch.yaml # 5Gi storage │ ├── staging/ │ │ └── minio-patch.yaml # 20Gi storage │ └── production/ │ └── minio-patch.yaml # 50Gi storage └── scripts/ ├── bootstrap-k3s.sh ├── build-and-deploy-local.sh ├── port-forward-argocd.sh ├── port-forward-minio.sh # MinIO port forwarding └── init-storage.sh # Initialize buckets ``` ## 备注 - **Staging** 环境从 `main` 分支自动同步 - **Production** 环境为了安全需要手动同步 - `app/` 中的演示应用用于 CI 镜像发布 - 本地开发使用 `local-dev` overlay 以与 staging/prod 隔离
标签:Apex, Argo CD, DevSecOps, GitHub Actions, GitOps, K3s, Kustomize, MinIO, ML排序, NIDS, PMD, SecOps, 上下文感知, 上游代理, 云安全架构, 威胁情报, 子域名突变, 安全信号, 安全运营, 实时流处理, 容器化, 对象存储, 开发者工具, 扫描框架, 持续交付, 排名系统, 机器学习, 特权提升, 环境隔离, 自动化部署, 自动笔记, 请求拦截, 逆向工具, 风险评分