Megh089/home-siem-lab

GitHub: Megh089/home-siem-lab

在单台 Linux 主机上基于 Elastic Stack 搭建的轻量级 SIEM 实验环境,用于练习安全检测工程与攻击行为告警规则编写。

Stars: 0 | Forks: 0

# 家庭 SIEM 实验环境 一个在笔记本电脑上构建的可用 Linux SIEM。将主机遥测数据(进程执行、身份文件更改、文件完整性)接入 Elasticsearch,可通过 Kibana 进行实时查询。旨在练习检测工程——即编写规则以从日志数据中捕获攻击者行为的学科。 ![在 Kibana 中检测到凭据访问](https://raw.githubusercontent.com/Megh089/home-siem-lab/main/screenshots/credential-access-demo.png) *上图:Kibana Discover 展示了由 Auditbeat 实时捕获的 `whoami → sudo whoami → ls /etc/shadow → sudo cat /etc/shadow` 序列。这是一种常见的入侵后行为模式,攻击者借此枚举自身权限并导出密码哈希以进行离线破解。* ## 功能说明 - 从主机收集 Linux syscall 审计事件、身份文件写入和文件完整性事件。 - 通过 Auditbeat 将其流式传输到 Elasticsearch。 - 通过 Kibana 提供实时查询和仪表板。 - 内置一组与常见攻击者技术对齐的基础审计规则。 ## 架构 参见 [`docs/architecture.md`](docs/architecture.md)。 ## 技术栈 | 组件 | 版本 | 角色 | |---|---|---| | Elasticsearch | 8.15.3 | 日志数据存储 | | Kibana | 8.15.3 | 查询界面 + 仪表板 | | Auditbeat | 8.15.3 | 主机日志转发器 | | Linux auditd | kernel | Syscall + 文件审计 | | Docker Engine | 29.6.2 | 运行 Elasticsearch + Kibana | | 主机操作系统 | Linux Mint 22.3 (基于 Ubuntu 24.04) | 端点 | ## 复现步骤 ``` git clone https://github.com/Megh089/home-siem-lab.git cd home-siem-lab # 启动 Elastic + Kibana docker compose up -d # 在主机上安装 Auditbeat(完整步骤详见 docs/setup.md) sudo cp config/auditbeat.yml /etc/auditbeat/auditbeat.yml sudo auditbeat setup --dashboards sudo systemctl enable --now auditbeat # 验证 curl -s 'http://localhost:9200/_cat/indices/auditbeat-*?v' # 在浏览器中打开 http://localhost:5601 ``` ## 路线图 - [x] 第 1 周:运行 Elasticsearch + Kibana + Auditbeat,并在 Kibana 中查看主机遥测数据 - [ ] 第 2 周:使用 Atomic Red Team 验证 3 条以上的 Sigma 检测规则 - [ ] 第 3 周:构建自定义 Kibana 仪表板,用于展示告警量、Top 进程和网络异常 - [ ] 第 4 周:基于 2 周的真实端点活动进行误报测量,并撰写报告 ## 局限性 这是一个实验室环境,而非生产级部署。在此如实指出: - **单一端点。** 真正的 SIEM 会聚合数千台主机的数据。在 N=1 规模下进行检测调优无法揭示全局范围的误报模式。 - **Elasticsearch 安全功能已禁用。** 设置 `xpack.security.enabled=false` 意味着没有身份验证且没有 TLS。虽然仅绑定到 `127.0.0.1`,但任何生产环境的部署都会启用安全功能并使用证书。 - **单节点集群** → 索引状态为 yellow,而不是 green(无法配置副本)。这对实验室来说尚可;但在生产环境中会违反弹性要求。 - **模拟攻击。** 第 2 周的检测将通过 Atomic Red Team 模拟进行验证,而非真实的入侵行为。真实的攻击者行为各不相同。 - **基于主机的 Auditbeat。** 该转发器直接运行在主机上而不是 Docker 中,因为 syscall 审计需要内核访问权限。这限制了该设置的便携性。 ## 作者 Megh J — 约克大学计算机安全专业学生。这是个人持续更新作品集的一部分;关于无人机安全的相关工作,请参见 [gps-spoof-detection](https://github.com/Megh089/gps-spoof-detection)。
标签:Auditbeat, Sigma规则, Web报告查看器, x64dbg, 安全运营, 扫描框架, 目标导入, 请求拦截, 越狱测试