dhruviil19/cloudsoc-copilot

GitHub: dhruviil19/cloudsoc-copilot

一个 AI 辅助的 SOC 检测与事件响应平台,将多种安全日志源整合到统一工作流中,实现自动化检测、风险评分和事件调查。

Stars: 0 | Forks: 0

# CloudSOC Copilot CloudSOC Copilot 是一个 AI 辅助的 SOC 检测和事件响应平台,旨在帮助分析师检测、分流、调查和记录跨多个日志源的可疑安全活动。 该项目接入 AWS CloudTrail 风格的日志、Linux SSH 身份验证日志、Suricata IDS 警报、Nmap 扫描结果和 Web 访问日志。它将原始数据标准化为统一的安全事件格式,应用检测和关联逻辑,将警报映射到 MITRE ATT&CK,对高风险暴露服务进行优先级排序,并生成分析师风格的事件报告。 ## 项目目标 CloudSOC Copilot 的目标是模拟真实的安全运营中心 (SOC) 调查工作流。 该平台不是一次分析一个日志源,而是将多个安全数据源连接到一个工作流中,分析师可以在此: * 上传或加载示例日志 * 将事件标准化为通用格式 * 运行检测逻辑 * 审查警报严重性和风险评分 * 分析相关证据 * 查看 MITRE ATT&CK 映射 * 审查攻击时间线 * 对漏洞进行优先级排序 * 导出事件报告 此项目旨在展示在 SOC 分析、检测工程、日志分析、事件分流、漏洞优先级排序和安全自动化方面的实际操作技能。 ## 核心功能 * 多源日志接入,支持 AWS CloudTrail 风格日志、Linux SSH 身份验证日志、Suricata IDS 警报、Nmap XML 扫描结果和 Apache/Nginx 风格的 Web 访问日志 * 将日志标准化为统一的安全事件格式 * 基于规则的检测引擎,用于检测可疑的身份验证、IDS、Web、云和漏洞活动 * 事件关联,用于识别可疑活动链 * 基于警报因素和严重性逻辑的风险评分 * 主要警报类别的 MITRE ATT&CK 映射 * 采用 Sigma 风格的 YAML 检测规则文件,提供易读的检测文档 * 本地 CISA KEV 示例目录匹配,用于漏洞优先级排序 * 用于 SOC 风格调查的 Streamlit 仪表板 * 包含严重性、风险评分、源 IP、用户、主机和 MITRE 字段的警报队列 * 带有证据时间线和原始日志审查的事件详情视图 * 使用 Altair 进行攻击时间线可视化 * 使用 Nmap 结果和本地 KEV 上下文的漏洞优先级排序视图 * 支持可选 OpenAI API 的 AI 风格事件摘要生成 * Markdown 事件报告导出 * 针对 SOC 分析师、SOC 经理和高管视角的基于角色的仪表板视图 * Docker Compose 设置,用于运行后端和仪表板服务 * 包含架构、设置、检测规则、攻击场景、云部署和演示工作流的文档 * 针对检测、高级解析器和 API 流程的单元测试 ## 支持的日志源 | 来源 | 格式 | 用途 | | ------------------------------ | ------------------------- | -------------------------------------------------------------------------------------------- | | AWS CloudTrail 风格日志 | JSON | 检测云登录失败、成功登录、访问密钥创建和权限活动 | | Linux SSH 身份验证日志 | Syslog 风格的 `.log` | 检测 SSH 暴力破解尝试和失败后的成功登录 | | Suricata IDS 警报 | `eve.json`, JSON, NDJSON | 检测 IDS 警报、命令与控制 (C2) 指标和端口扫描活动 | | Nmap 扫描结果 | XML | 识别暴露的服务、高风险端口和 CVE 风格的漏洞匹配 | | Web 访问日志 | Apache/Nginx 风格日志 | 检测可疑的 Web 请求和利用模式 | ## 检测范围 CloudSOC Copilot 可以检测并分流: 1. AWS 控制台登录失败突发 2. SSH 暴力破解登录尝试 3. 多次失败后的成功登录 4. 疑似的 AWS 账户入侵活动 5. 可疑登录行为后的 AWS 访问密钥创建 6. 可疑登录行为后的 AWS 权限更改活动 7. Suricata 高严重性 IDS 警报 8. 来自 IDS 警报的疑似命令与控制 (C2) 流量 9. 来自 Suricata 签名的端口扫描活动 10. 使用本地 CISA KEV 示例目录匹配已知被利用的漏洞 11. 来自 Nmap 扫描结果的高风险暴露服务 12. 可疑的 Web 侦察和利用路径 ## 技术栈 | 层级 | 技术 | | ----------------------- | ------------------------------------------- | | 后端 API | Python, FastAPI | | 仪表板 | Streamlit | | 数据库 | SQLite | | ORM | SQLAlchemy | | 检测逻辑 | 基于 Python 规则的检测引擎 | | 检测文档 | Sigma 风格的 YAML 规则 | | IDS 数据 | Suricata `eve.json` | | 漏洞数据 | Nmap XML,本地 CISA KEV 示例目录 | | MITRE 映射 | MITRE ATT&CK 战术和技术 | | 时间线可视化 | Altair | | 报告 | Markdown | | 可选 AI 摘要 | OpenAI API 或本地基于模板的摘要 | | 部署 | Docker Compose | ## 架构 ``` Raw Logs and Scan Results | v Parser Router | v Source-Specific Parsers | v Unified Security Event Format | v SQLite Event Storage | v Detection and Correlation Engine | v Risk Scoring and MITRE ATT&CK Mapping | v Alert Queue and Incident Evidence | v Streamlit SOC Dashboard | v Markdown Incident Report Export ``` ## 项目结构 ``` cloudsoc-copilot/ │ ├── backend/ │ ├── app/ │ │ ├── main.py │ │ ├── database.py │ │ ├── models.py │ │ ├── schemas.py │ │ │ │ │ ├── parsers/ │ │ │ ├── aws_parser.py │ │ │ ├── linux_auth_parser.py │ │ │ ├── suricata_parser.py │ │ │ ├── nmap_parser.py │ │ │ ├── web_access_parser.py │ │ │ └── parser_router.py │ │ │ │ │ ├── detection_engine/ │ │ │ ├── detector.py │ │ │ └── rules.py │ │ │ │ │ ├── risk_engine/ │ │ │ └── risk_score.py │ │ │ │ │ ├── ai_engine/ │ │ │ └── summary_generator.py │ │ │ │ │ ├── report_generator/ │ │ │ └── markdown_report.py │ │ │ │ │ ├── threat_intel/ │ │ │ └── cisa_kev.py │ │ │ │ │ └── data/ │ │ └── cisa_kev_sample.json │ │ │ ├── sample_logs/ │ │ ├── aws_compromise.json │ │ ├── linux_ssh_bruteforce.log │ │ ├── suricata_eve.json │ │ ├── nmap_scan.xml │ │ └── web_access.log │ │ │ ├── tests/ │ ├── Dockerfile │ └── requirements.txt │ ├── dashboard/ │ ├── streamlit_app.py │ ├── Dockerfile │ └── requirements.txt │ ├── detections/ │ ├── aws/ │ ├── linux/ │ ├── suricata/ │ ├── vulnerability/ │ └── web/ │ ├── docs/ │ ├── architecture.md │ ├── detection_rules.md │ ├── setup_guide.md │ ├── attack_scenarios.md │ ├── advanced_features.md │ ├── cloud_deployment.md │ ├── demo_video_script.md │ └── demo_video_checklist.md │ ├── deployment/ │ └── render.yaml │ ├── reports/ ├── docker-compose.yml ├── run_local.sh ├── .env.example └── README.md ``` ## 仪表板视图 Streamlit 仪表板包含多个 SOC 风格的视图: ### SOC 分析师视图 * 安全概览 * 日志上传 * 警报队列 * 事件详情 * MITRE ATT&CK 视图 * 攻击时间线 * 漏洞优先级排序 * 检测规则 * 报告 ### SOC 经理视图 * 安全概览 * 警报队列 * MITRE ATT&CK 视图 * 攻击时间线 * 漏洞优先级排序 * 报告 ### 高管视图 * 高管摘要 * 报告 注意:基于角色的视图作为仪表板角色选择器实现,仅供演示。这不是一个完整的身份验证或访问控制系统。 ## 示例调查工作流 1. 启动 FastAPI 后端。 2. 启动 Streamlit 仪表板。 3. 加载高级演示日志。 4. 运行检测引擎。 5. 在警报队列中审查警报。 6. 打开事件并审查证据。 7. 检查 MITRE ATT&CK 战术和技术映射。 8. 审查攻击时间线。 9. 打开漏洞优先级排序以审查高风险暴露服务。 10. 导出 Markdown 事件报告。 ## 示例检测场景 ### SSH 暴力破解 解析 Linux SSH 身份验证日志,以检测来自同一源 IP 地址的重复失败登录尝试。 ### 失败后的成功登录 该平台检测来自同一源 IP 或用户的多次失败登录尝试后发生成功登录的情况。 ### AWS 账户入侵模式 关联 CloudTrail 风格的日志,以识别重复的登录失败、成功登录以及敏感的 IAM 活动(例如访问密钥创建或权限更改)。 ### Suricata IDS 警报审查 解析 Suricata `eve.json` 警报,并将其转换为标准化事件,以便进行 SOC 风格的警报分流。 ### 端口扫描检测 使用 Suricata 扫描类签名来识别可能的侦察和网络服务发现活动。 ### 可疑的 Web 活动 分析 Apache/Nginx 风格的 Web 访问日志,以发现可疑路径和利用模式,例如 `.env`、`wp-login.php`、`phpmyadmin`、路径遍历和 SQL 注入探测。 ### 漏洞优先级排序 解析 Nmap XML 扫描结果,以识别暴露的服务、高风险端口和 CVE 风格的匹配项。使用本地 CISA KEV 示例目录对已知被利用的漏洞示例进行优先级排序。 ## API 端点 | 端点 | 方法 | 用途 | | -------------------------------- | ---- | -------------------------- | | `/` | GET | 健康检查和项目状态 | | `/api/upload` | POST | 上传支持的日志文件 | | `/api/demo/reset` | POST | 重置演示数据库 | | `/api/demo/load-samples` | POST | 加载内置的示例日志 | | `/api/detect/run` | POST | 运行检测引擎 | | `/api/events` | GET | 查看标准化事件 | | `/api/timeline` | GET | 查看时间线事件 | | `/api/alerts` | GET | 查看生成的警报 | | `/api/alerts/{alert_id}` | GET | 查看警报详情和证据 | | `/api/alerts/{alert_id}/report` | POST | 生成 Markdown 事件报告 | | `/api/reports/{filename}` | GET | 下载生成的报告 | | `/api/metrics` | GET | 查看仪表板指标 | | `/api/mitre/coverage` | GET | 查看 MITRE ATT&CK 覆盖范围 | | `/api/detections/rules` | GET | 查看 Sigma 风格的 YAML 检测规则 | | `/api/vulnerabilities/priorities`| GET | 查看漏洞优先级排序结果 | | `/api/threat-intel/cisa-kev` | GET | 查看本地 CISA KEV 示例目录 | ## 本地运行 ### 1. 克隆代码库 ``` git clone https://github.com/dhruviil19/cloudsoc-copilot.git cd cloudsoc-copilot ``` 如果代码库未重命名为 `cloudsoc-copilot`,请将上述 URL 替换为当前的代码库 URL。 ### 2. 创建并激活虚拟环境 ``` python3 -m venv .venv source .venv/bin/activate ``` 对于 Windows PowerShell: ``` python -m venv .venv .venv\Scripts\Activate.ps1 ``` ### 3. 安装后端依赖 ``` cd backend pip install -r requirements.txt ``` ### 4. 启动后端 API ``` uvicorn app.main:app --reload --port 8000 ``` 打开 FastAPI 文档: ``` http://localhost:8000/docs ``` ### 5. 在第二个终端中启动仪表板 ``` cd cloudsoc-copilot source .venv/bin/activate cd dashboard pip install -r requirements.txt streamlit run streamlit_app.py ``` 打开仪表板: ``` http://localhost:8501 ``` ## 使用 Docker Compose 运行 从项目根目录执行: ``` docker compose up --build ``` 打开: ``` Dashboard: http://localhost:8501 Backend API: http://localhost:8000 API Docs: http://localhost:8000/docs ``` ## 单元测试 从后端文件夹运行测试: ``` cd backend pytest -q ``` 当前验证结果: ``` 5 passed ``` ## 可选 AI 摘要 CloudSOC Copilot 无需 OpenAI API 密钥即可工作,它使用本地基于模板的 SOC 摘要生成器。 如果配置了 OpenAI API 密钥,该平台可以选择生成更详细的 AI 辅助事件摘要。 对于 Linux/macOS: ``` export OPENAI_API_KEY="your_api_key_here" ``` 对于 Windows PowerShell: ``` $env:OPENAI_API_KEY="your_api_key_here" ``` 然后重启后端。 ## CISA KEV 说明 本项目包含一个小型的本地 CISA KEV 示例目录,用于演示目的: ``` backend/app/data/cisa_kev_sample.json ``` 这不是实时的 CISA KEV 订阅源。对于生产级使用,应将示例目录替换为最新的官方 CISA KEV 数据,同时保持相同的 `cve_id` 字段格式。 ## Sigma 风格规则说明 代码库包含位于以下位置的 Sigma 风格 YAML 检测规则文件: ``` detections/ ``` 这些文件用于以易读的安全规则格式记录检测逻辑。主要的检测执行通过 Python 检测引擎实现。 ## 云部署说明 包含云部署模板和指南,用于作品集展示和未来的部署规划。 实际部署需要创建云服务、配置环境变量,以及将仪表板连接到后端服务 URL。 ## 展示的技能 本项目展示了以下方面的实践技能: * SOC 调查 * 网络安全分析 * 检测工程 * 日志解析和标准化 * 事件分流 * 漏洞优先级排序 * 网络安全监控 * IDS 警报分析 * MITRE ATT&CK 映射 * Python 后端开发 * FastAPI API 开发 * Streamlit 仪表板开发 * SQLite 数据库使用 * Docker Compose 部署 * 安全报告和文档编写 ## 免责声明 CloudSOC Copilot 是一个使用示例和模拟数据构建的作品集和教育性网络安全项目。 本代码库中不包含任何真实的凭证、私有云数据、生产日志或敏感信息。 本项目旨在演示 SOC 调查概念、检测工程、漏洞优先级排序和事件响应工作流。
标签:CISA项目, Cloudflare, FOFA, Kubernetes, MITRE ATT&CK, Petitpotam, Streamlit, Web报告查看器, 威胁情报, 安全事件响应, 安全运营, 开发者工具, 扫描框架, 版权保护, 访问控制, 足迹分析, 逆向工具