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风险缓解, 互联网扫描, 可视化仪表盘, 安全运营中心, 网络映射, 请求拦截, 逆向工具