atharvbellikar/Cyber-Incident-Response-in-Banking-SOC_final
GitHub: atharvbellikar/Cyber-Incident-Response-in-Banking-SOC_final
面向银行安全运营中心的全栈事件响应平台,通过多层自动化管线将原始日志转化为含CIS合规映射、CVSS评分和响应建议的结构化情报。
Stars: 0 | Forks: 1
# 银行业 SOC 网络事件响应
一个全栈**安全运营中心 (SOC) 事件响应平台**,专为银行业务类型的网络事件工作流设计。
该系统接收原始安全日志,通过多层 SOC pipeline 对其进行处理,检测可疑活动,将事件映射到 CIS benchmark 控制措施,生成安全建议,准备 CVSS 评分上下文,推荐响应操作,并在对分析师友好的仪表板中显示所有内容。
## 概述
银行环境从网络、Web 应用、身份系统、端点、数据库和云基础设施中生成大量安全遥测数据。SOC 分析师通常需要手动连接这些信号、识别威胁、评估影响并决定正确的响应操作。
本项目通过构建一个结构化的事件响应 pipeline 来解决该问题,将原始日志转换为可操作的 SOC 情报。
该平台帮助回答关键的 SOC 问题:
* 发生了什么?
* 哪个用户、IP、主机或服务受到了影响?
* 该事件是可疑的还是恶意的?
* 它代表什么类型的威胁?
* 哪项 CIS benchmark 或安全控制相关?
* 可能的业务和技术影响是什么?
* 应该分配什么严重程度评分?
* SOC 团队接下来应该做什么?
## 本项目解决的问题
本项目旨在通过自动化事件分析和响应的核心阶段,减少 SOC 手动分类的工作量。
它有助于:
* 日志摄取和归一化
* 从原始事件中提取特征
* 威胁和异常检测
* IOC 和关联分析
* CIS benchmark 推荐
* 基于 CIS 的修复指导
* CVSS 式严重程度评分
* 响应 playbook 推荐
* 对分析师友好的仪表板可视化
* 事件存储、审查和反馈跟踪
目标是模拟银行 SOC 如何从原始遥测数据过渡到结构化的事件决策。
## 主要功能
* 多层 SOC pipeline 架构
* 用于日志上传和事件 API 的 FastAPI 后端
* Next.js 前端仪表板
* SQLite 事件数据库
* 针对网络、Web、身份、IoT 和行为信号的特征工程
* 具备异常、威胁模式、IOC 和关联引擎的检测层
* CIS benchmark 映射和修复指导
* 用于 CIS 和 CVSS 移交的单一目的 AI 推荐 agent
* CVSS 式评分和严重程度分类
* 响应 playbook 推荐层
* 分析师反馈和操作跟踪
* 用于演示的示例事件和生成的输出
## Agentic 组件
该项目包含一个专注的 agentic 层,称为:
## SENTRA CIS–CVSS Advisor Agent
与通用的聊天机器人不同,该 agent 执行一项实用的 SOC 功能:
该 agent 有助于弥合检测、安全控制映射和严重程度评估之间的差距。
### Agent 职责
* 读取检测到的威胁和支持信号
* 识别相关的 CIS benchmark 或控制措施
* 生成修复建议
* 解释为什么适用该 benchmark
* 准备 CVSS 指标建议
* 将结构化的上下文转发到 CVSS 评分层
这使得系统通过实际的 pipeline 行为保持 agentic 特性,而不是依靠视觉噱头。
## 架构
```
flowchart TD
A[Raw Logs / Uploaded JSON] --> B[FastAPI Backend]
B --> C[Layer 1: Feature Engineering]
C --> D[Layer 2: Detection]
D --> E[Layer 3: CIS Benchmark Mapping]
E --> F[SENTRA CIS-CVSS Advisor Agent]
F --> G[Layer 5: CVSS Scoring]
G --> H[Layer 6: Response Recommendation]
H --> I[Frontend Formatter]
I --> J[(SQLite Incident Database)]
J --> K[Next.js SOC Dashboard]
K --> L[Analyst Review / Feedback / Actions]
L --> J
```
## 逐层 Pipeline
### 第 1 层:特征工程
该层接收原始日志并将其转换为结构化的安全事件。
它执行:
* 日志解析
* 字段归一化
* 时间戳归一化
* 日志类型分类
* 时间特征提取
* 行为特征提取
* 网络特征提取
* Web 特征提取
* 身份特征提取
* IoT 特征提取
输出被传递到检测引擎。
### 第 2 层:检测
该层确定事件是良性的、可疑的还是恶意的。
它执行:
* 异常检测
* 威胁模式匹配
* IOC enrichment
* Observable 提取
* 关联分析
* 抑制规则检查
* 最终检测融合
输出包括:
* 检测标签
* 严重程度
* 置信度得分
* 威胁类型
* 支持信号
* 推理依据
### 第 3 层:CIS Benchmark 映射
该层将检测到的事件映射到相关的 CIS benchmark 控制措施和安全建议。
它提供:
* CIS benchmark ID
* 安全框架
* 控制标题
* 控制描述
* 修复指导
这有助于将技术检测与公认的安全最佳实践联系起来。
### Agent 层:CIS–CVSS Advisor
该层作为 CIS 映射和 CVSS 评分之间的专注推荐 agent。
它提供:
* 基于 CIS 的推荐
* 推荐理由
* 匹配的 benchmark 上下文
* CVSS 指标移交
* 下游就绪状态
这使得后续层能够处理结构化、可解释的安全上下文。
### 第 5 层:CVSS 评分
该层使用 CVSS 式逻辑评估事件严重程度。
它提供:
* 基础分数
* 严重程度评级
* CVSS 向量字符串
* 可利用性映射
* 影响映射
这有助于根据风险确定事件的优先级。
### 第 6 层:响应建议
该层建议 SOC 团队接下来应该做什么。
它提供:
* 响应优先级
* 遏制步骤
* 推荐操作
* Playbook 式响应指导
示例响应操作包括:
* 封锁可疑源 IP
* 审查暴露的防火墙规则
* 启用 IDS 警报
* 隔离受影响的主机
* 重置用户凭据
* 上报至 SOC Tier-2
## 目录结构
```
Cyber-Incident-Response-in-Banking-SOC_final/
|
|-- Frontend/
| |-- app/
| |-- components/
| |-- hooks/
| |-- lib/
| |-- public/
|
|-- layer_1_feature_engineering/
| |-- engine_1_temporal/
| |-- engine_2_behavioral/
| |-- engine_3_statistical/
| |-- engine_4_network/
| |-- engine_5_web/
| |-- engine_6_iot/
| |-- engine_7_identity/
|
|-- layer_2_detection/
| |-- engine_1_anomaly/
| |-- engine_2_threat_analysis/
| |-- engine_3_ioc_enrichment/
| |-- engine_4_correlation/
| |-- mappings/
|
|-- layer_3_cis/
| |-- engines/
| |-- mappings/
| |-- tuxSOC-layer_CIS/
|
|-- layer_4_ai_analysis/
| |-- agent/
|
|-- layer_5_cvss/
| |-- engine_1_metric_mapping/
| |-- engine_2_impact_mapping/
| |-- engine_3_scoring/
| |-- engine_4_validation/
| |-- mappings/
|
|-- layer_6_response/
| |-- response_layer/
| |-- tests/
```
## 技术栈
### 后端
* Python
* FastAPI
* SQLite
* Pydantic
* Uvicorn
### 前端
* Next.js
* React
* TypeScript
* Tailwind CSS
### 安全 Pipeline
* 基于规则的检测
* 异常评分
* IOC enrichment
* CIS benchmark 映射
* CIS–CVSS 推荐 agent
* CVSS 式评分
* 响应 playbook 逻辑
## 如何运行项目
### 前置条件
* **Python 3.11+** 和 **Node.js 18+**(在 Python 3.13 / Node 22 上测试过)
* *(可选)* 带有 `mistral` 模型的 **Ollama**,用于第 4 层 LLM 分析。
如果没有它,第 4 层会自动回退到确定性的基于规则的分析——pipeline 仍会端到端运行。
ollama pull mistral # 仅当您需要真实的 LLM 分析时
### 最快启动(单条命令)
从仓库根目录开始,`./run.sh` 会同时设置 venv + npm 依赖,并启动后端 (:8000) 和前端 (:3000)。添加 `--prod` 用于生产构建/部署,添加 `--seed` 以预加载演示数据。按 Ctrl+C 停止。
```
./run.sh # dev mode
./run.sh --prod # production: uvicorn workers + next build && next start
```
### 手动设置
**1. 克隆 & 配置**
```
git clone && cd Cyber-Incident-Response-in-Banking-SOC_final
cp .env.example .env # adjust DB path, CORS origins, API key, Ollama URL…
```
**2. 后端 (FastAPI)**
```
python3 -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt
uvicorn api_server:app --host 127.0.0.1 --port 8000
```
API 文档:`http://127.0.0.1:8000/docs` · 健康检查:`http://127.0.0.1:8000/healthz`
**3. 前端 (Next.js)** — 在新终端中运行
```
cd Frontend
npm install
npm run dev # dev
# 或用于生产环境:npm run build && npm run start
```
打开 `http://localhost:3000`(重定向到实时仪表板)。
### Docker (生产环境)
```
docker compose up --build # backend :8000, frontend :3000, ollama :11434
docker compose exec ollama ollama pull mistral # optional, for LLM analysis
```
### 配置(环境变量)
所有特定于部署的设置均由环境变量驱动(参见 `.env.example`):
`SOC_DB_PATH`, `SOC_CORS_ORIGINS`, `SOC_API_KEY`(设置后会在所有 endpoint 上启用 `X-API-Key` 身份验证),`SOC_MAX_UPLOAD_BYTES`, `SOC_MAX_EVENTS`, `OLLAMA_BASE_URL`, `OLLAMA_MODEL`, `SOC_LOG_LEVEL`;以及前端的 `BACKEND_URL` / `BACKEND_API_KEY`。
## 如何使用
1. 启动后端服务器。
2. 启动前端仪表板。
3. 在浏览器中打开仪表板。
4. 上传 JSON 日志文件或使用随附的示例事件数据。
5. 审查生成的事件。
6. 打开事件以检查:
* 原始事件详细信息
* 特征工程输出
* 检测输出
* CIS benchmark 推荐
* CIS–CVSS Advisor 推荐
* CVSS 评分
* 响应推荐
7. 如有需要,提交分析师反馈或更新响应操作。
## 后端主要 API Endpoint
| 方法 | Endpoint | 描述 |
| -------- | ------------------------------------ | ----------------------------------------- |
| `POST` | `/run-pipeline` | 上传日志并运行完整的 SOC pipeline |
| `GET` | `/api/incidents` | 获取所有存储的事件 |
| `GET` | `/api/incidents/{event_id}` | 按 ID 获取单个事件 |
| `POST` | `/api/incidents/{event_id}/action` | 更新事件操作/状态 |
| `POST` | `/api/incidents/{event_id}/feedback` | 提交分析师反馈 |
| `GET` | `/api/incidents/{event_id}/feedback` | 获取分析师反馈 |
| `POST` | `/api/simulate` | 添加模拟的事件 |
| `DELETE` | `/api/incidents` | 清除存储的事件 |
| `GET` | `/api/suppression-rules` | 查看抑制规则 |
## 示例事件输出
每个处理后的事件可以包括:
* 事件 ID
* 时间戳
* 源 IP
* 目标 IP
* 受影响的用户或主机
* 威胁类型
* 检测置信度
* 严重程度
* CIS benchmark 推荐
* CIS–CVSS Advisor 输出
* CVSS 评分
* 响应优先级
* 建议的遏制步骤
* 最终仪表板摘要
## 示例数据
该代码库包含用于测试和演示的示例数据和预先生成的输出。
这使得仪表板和后端即使在上传新日志之前,也能处理示例事件。
示例数据支持:
* Pipeline 测试
* 仪表板预览
* 事件审查
* 演示流程
* API 验证
## 这对银行 SOC 的重要性
银行环境是高价值目标,需要快速、准确的事件响应。SOC 团队必须快速识别事件是良性的、可疑的还是恶意的,然后确定影响、严重程度和响应优先级。
本项目展示了分层自动化如何通过以下方式为分析师提供支持:
* 减少手动分类时间
* 连接相关信号
* 提供一致的事件评分
* 将检测映射到安全控制
* 生成结构化建议
* 通过仪表板提高事件可见性
## 未来改进
计划的改进可能包括:
* 实时日志流
* PostgreSQL 数据库支持
* 身份验证和基于角色的访问控制
* SIEM 集成
* EDR 集成
* 防火墙自动化
* 威胁情报源集成
* MITRE ATT&CK 映射
* 分析师审计日志
* 基于 Docker 的部署
* 云部署支持
* 先进的模型驱动事件分析
## 项目总结
**银行业 SOC 网络事件响应** 是一个全栈网络安全项目,演示了如何将原始安全日志转化为结构化的事件情报。
它结合了:
* 后端 API
* 多层安全分析
* 检测工程
* CIS benchmark 映射
* Agentic 推荐生成
* CVSS 式严重程度评分
* 响应推荐
* 前端可视化
该项目设计为用于银行事件响应工作流的实用 SOC 模拟。
标签:AI风险缓解, 互联网扫描, 可视化仪表盘, 安全运营中心, 网络映射, 请求拦截, 逆向工具