richfish85/lighthouse-soc

GitHub: richfish85/lighthouse-soc

一个基于Python和Streamlit构建的轻量级安全运营中心事件分诊模拟平台,用于练习和展示初级SOC分析师的标准事件响应与处理工作流。

Stars: 0 | Forks: 0

# Lighthouse SOC — 事件分诊模拟器 [![测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/097271ca091990be630ef6043309cc48240faa054413384202036fa2efedb2d2.svg)](https://github.com/richfish85/lighthouse-soc/actions/workflows/tests.yml) *一个本地、合成的 SOC 实验室,用于练习告警分诊、证据审查、优先级决策、升级、误报处理以及分析师交接。* **旨在展示初级 SOC 分析师应具备的工作习惯:确定范围、区分证据与假设、选择合理的严重性、记录操作,以及将案件交接给下一位响应人员。* ## 这是什么? **Lighthouse SOC** 是一个轻量级安全运营模拟平台,旨在模拟事件从报告到分诊、调查、升级、关闭和监督的全过程。 该项目并未声称是一个完整的 SIEM,而是专注于符合实际的初级分析师工作流程: * 审查告警和富化证据 * 识别受影响的身份、资产和可能的影响范围 * 根据严重性、置信度、资产关键性和权限确定优先级 * 应用 playbook 并记录分析师备注 * 升级、遏制、关闭或分类为误报 * 保留清晰的交接和审计追踪 它模拟了三种用户角色: ### 报告者 * 提交可疑活动报告 * 跟踪已提交的告警 * 查看事件结果 ### 分析师 * 对传入事件进行分诊 * 审查富化上下文 * 应用 playbook * 添加备注并更新状态 ### 管理员 * 审查事件趋势 * 监控积压健康状况 * 查看运营指标和监督仪表板 # 为什么开发这个项目? 该项目的设计初衷包含以下两点: ## 1. SOC 分析师实践环境 用于展示以下方面的实用技能: * 告警和事件分诊 * 基于证据的严重性和范围决策 * Playbook 使用和升级判断 * 误报记录 * 事件备注和响应人员交接 * 基于 MITRE ATT&CK 的调查假设 ## 2. 安全系统演练 用于模拟软件组件之间的交互方式: * 接入 → 处理 → 评分 → 工作流 → 报告 它有意强调透明的决策和可重现的证据,而非增加不必要的复杂性。 # 示例工作流 示例事件: **不可能的异地登录 (Impossible Travel Login)** 1. 报告者提交告警 2. 系统创建事件记录 3. 富化资产/IP 上下文 4. 计算优先级 5. 分析师进行调查并更新状态 6. 管理员仪表板反映事件影响 # 核心功能 ## 已实现 * 基于角色的工作流模拟 * 基于 SQLite 的事件和告警数据 * 包含三种用户视图的 Streamlit UI * 预置的演示数据和用户 * 优先级评分引擎 * CLI 冒烟测试 * Pytest 验证 * Mermaid 架构图 # 技术栈 | 领域 | 技术 | | -------- | --------------- | | 语言 | Python | | 数据 | SQLite, JSON | | UI | Streamlit | | 测试 | Pytest | | 图表 | Mermaid | | CLI | Python argparse | # 架构 项目采用简单的服务优先结构: ``` app/ ├── main.py ├── cli.py ├── database.py ├── seed.py ├── services/ ├── ui/ └── tests/ ``` ### 层级 **数据库** * Schema 创建 * 种子数据加载 * 持久化 **服务** * 告警接入 * 上下文富化 * 评分 * 事件生命周期 * 指标 **UI** * 位于服务之上的轻量级展示层 **CLI** * 引导 * 冒烟测试 * 验证流程 # 优先级评分逻辑 优先级设定具有意保持透明: ``` Severity + Confidence + Asset Criticality + Privileged Account Weight = Priority Score ``` 示例: 高严重性 高置信度 关键资产 特权账户 → 映射到 **P1** # 快速开始 ## 安装 ``` python -m pip install -r requirements.txt ``` ## 填充演示数据 ``` python -m app.cli seed --reset ``` ## 运行应用 ``` streamlit run app/main.py ``` ## 运行冒烟测试 ``` python -m app.cli smoke ``` ## 运行测试套件 ``` python -m pytest ``` # 演示工作流 以三种角色的视角使用该应用进行演练: 1. 以 `reporter01` 身份登录并提交一份可疑活动报告。 2. 切换到 `analyst01` 并调查生成的事件。 3. 审查富化信息、应用 playbook 指导、添加备注并更新状态。 4. 切换到 `admin01` 并审查仪表板指标和事件监督情况。 ![Lighthouse SOC 应用工作流](https://raw.githubusercontent.com/richfish85/lighthouse-soc/main/image/workflow/lighthouse_soc_app_workflow.svg) # 演示账户 | 用户 | 角色 | | --------- | -------- | | reporter01 | 报告者 | | analyst01 | 分析师 | | admin01 | 管理员 | # 示例事件场景 * 不可能的异地登录 * 恶意软件检测 * 报告的网络钓鱼 * 可疑的 PowerShell * 重复的登录失败 * 权限提升尝试 # 分析师案例手册与 KQL 本仓库中的所有人员、组织、事件、主机名和 IP 地址均为虚构或专为文档保留。不包含任何生产或客户数据。 [分析师案例手册](docs/ANALYST_CASEBOOK.md) 包含四个已完成的模拟调查。每个记录都包含: * 初始信号和受影响范围 * 已审查的证据和仍待确认的假设 * 严重性/优先级判定理由 * MITRE ATT&CK 假设 * 遏制、处置、升级和交接 随附的 [KQL 查询包](docs/kql/soc_triage_queries.kql) 为相同场景提供了实验查询。表可用性和字段名称因 Microsoft Sentinel 和 Defender 连接器而异,因此必须根据目标工作区的 schema 验证每个查询。 | 模拟场景 | 处置结果 | 基于 ATT&CK 的假设 | | --- | --- | --- | | 特权账户的不可能异地登录 | 已升级 | T1078.004 有效账户:云账户 | | 薪资主题的网络钓鱼链接 | 已关闭,未观察到交互 | T1566.002 钓鱼:鱼叉式钓鱼链接 | | 管理员工作站上的编码 PowerShell | 审查中;建议 L2 升级 | T1059.001 命令和脚本解释器:PowerShell | | 批准演练期间的重复登录失败 | 误报 | T1110.001 暴力破解:密码猜测 | ATT&CK 映射描述的是调查假设,而非妥协证明。 # 文档 ## 图表 * 架构 * RBAC 矩阵 * 事件生命周期 * 屏幕流程 位于: ``` diagrams/ ``` ## 支持文档 * ROADMAP.md * ARCHITECTURE.md * THREAT_MODEL.md * DETECTION_IDEAS.md * docs/ANALYST_CASEBOOK.md * docs/kql/soc_triage_queries.kql # 验证 ``` python -m pytest python -m app.cli smoke streamlit run app/main.py ``` # 展示的工程原则 该项目应用了: - 模块化软件设计 - 基于角色的访问控制概念 - 数据建模与持久化 - 测试驱动验证 - 可重现的 CLI 工作流 - 安全设计理念 # 设计权衡 此 MVP 特意采用: - 使用 SQLite 而非 PostgreSQL 以实现便携性 - 使用 Streamlit 而非更重的前端技术栈以实现快速原型设计 - 使用基于规则的评分而非 ML 以确保透明度和可解释性 # 未来扩展 计划的想法: * 身份集成(SSO / RBAC 扩展) * 更丰富的案例管理工作流 * 策略合规性映射 * 在应用数据模型和 UI 中实现更丰富的 MITRE ATT&CK 映射 * IOC 富化集成 * 检测规则调优 * 扩展的 RBAC 权限 * 基于 API 的告警来源 # 该项目的意义 该项目将入门级安全知识转化为可见的分析师工作: * 对队列进行分诊,而不是将每个告警都视为事件 * 区分证据、假设和未解决的问题 * 解释严重性、置信度和受影响范围 * 认识到特权资产何时需要更快的升级 * 像对待确认的威胁一样仔细记录误报 * 留下其他分析师可以继续跟进的简明备注 底层的 Python、SQLite、Streamlit、RBAC、测试和审计功能使这些决策具有可重现性。目标不是宣称具备生产级 SOC 经验;而是展示为入门级 SOC 或安全运营岗位奠定可信、诚实的基础。 ## 截图 Lighthouse SOC login gateway with role-based demo access ### Login 网关 Analyst queue showing prioritized SOC incidents and filtering controls ### Analyst 队列 Incident investigation view with enrichment, playbook actions, and analyst notes ### Investigation 视图 Admin dashboard showing SOC metrics, incident trends, and oversight panels ### Admin 仪表板 ## 许可证 MIT 许可证。详见 [LICENSE](LICENSE)。 ## 作者 Richard Fisher GitHub: [https://github.com/richfish85](https://github.com/richfish85)
标签:Homebrew安装, Kubernetes, Python, Streamlit, 事件分诊, 安全培训, 安全运营, 库, 应急响应, 扫描框架, 无后门, 访问控制, 逆向工具