B0bTheSkull/bluestack

GitHub: B0bTheSkull/bluestack

一个预配置的 ELK SIEM 容器化方案,专为 B0bTheSkull 蓝队工具集提供一键式日志聚合、MITRE ATT&CK 标签富化和 Kibana 可视化能力。

Stars: 0 | Forks: 0

# BlueStack — 开箱即用的 SIEM 一个预先配置好的 ELK stack(Elasticsearch + Logstash + Kibana),用于接收 [B0bTheSkull](https://github.com/B0bTheSkull) 蓝队工具集中其他工具的 JSON 输出,并通过一次 `docker compose up` 将其转化为可搜索的、带有仪表盘的检测结果。 ``` ┌─────────────┐ JSON ┌──────────────┐ LogHound ──→ │ Logstash │ over TCP │ Elasticsearch│ NetSentinel ──→ │ pipelines │ ────────────→ │ (single │ HoneyNet ──→ │ (one per │ │ node) │ ThreatPulse ──→ │ source) │ └──────┬───────┘ └─────────────┘ │ ▼ ┌──────────┐ │ Kibana │ ← you └──────────┘ ``` **你将获得:** - 单节点 Elasticsearch 集群,大小适合笔记本电脑(默认 1 GB 堆内存) - 四条 Logstash 管道,每个来源工具对应一条,具备 grok/JSON 解析、严重级别标准化以及**内置 MITRE ATT&CK 标签** - 共享的索引模板,确保跨源仪表盘具有正确的字段类型(IP 为 `ip`,时间戳为 `date`,严重级别为 `keyword`) - 自动创建的 Kibana 数据视图,方便你打开 Discover 立即进行查询 - 示例数据文件,让你可以在 60 秒内验证整个系统 - 仅限本地回环的端口绑定——默认情况下,此堆栈不会向局域网 (LAN) 暴露任何内容 **它不是什么:** - 这是一个实验室/作品集工具包,而不是经过加固的生产级 SIEM。身份验证已禁用,TLS 已关闭。在将其暴露于任何你关心的环境之前,请参阅 [`docs/HARDENING.md`](docs/HARDENING.md)。 ## 快速开始 ``` git clone https://github.com/B0bTheSkull/bluestack cd bluestack cp .env.example .env # tune ports/heap if you need to ./scripts/setup.sh # bring stack up + install templates + create data views ./scripts/send-sample-data.sh # ship the bundled sample payloads through Logstash open http://localhost:5601 # Kibana → Discover → bluestack-* ``` 你应该会在 4 个索引(`bluestack-loghound-*`、`bluestack-netsentinel-*`、`bluestack-honeynet-*`、`bluestack-threatpulse-*`)中看到大约 16 个事件。 ## 接入端口 每个源工具都有自己专属的 Logstash 管道和 TCP 端口,这样一个流中的解析错误就不会阻塞其他流。 | 源工具 | 端口 | 格式 | 索引模式 | |---|---|---|---| | LogHound | 5001 | 包装的 JSON 报告 | `bluestack-loghound-*` | | NetSentinel | 5002 | 换行符分隔的 JSON | `bluestack-netsentinel-*` | | HoneyNet | 5003 | 换行符分隔的 JSON | `bluestack-honeynet-*` | | ThreatPulse | 5004 | 换行符分隔的 JSON | `bluestack-threatpulse-*` | ### 连接真实的工具输出 ``` # LogHound — 单个封装报告 loghound auth /var/log/auth.log --output /tmp/loghound.json nc -q1 localhost 5001 < /tmp/loghound.json # NetSentinel — 实时跟踪日志 tail -F /var/log/netsentinel.json | nc -q1 localhost 5002 # HoneyNet — 实时跟踪日志 tail -F logs/honeynet.json | nc -q1 localhost 5003 # ThreatPulse — 批量管道查询 threatpulse-bulk --iocs ioc-list.txt --json | nc -q1 localhost 5004 ``` 为了实现接近生产环境的用法,请在 JSON 文件前放置一个 Filebeat sidecar,而不是使用 `tail | nc`。[`filebeat/`](filebeat/) 中提供了一个 Filebeat `inputs.d` 示例。 ## 管道的作用 每个管道不仅仅是进行简单的 JSON 盲转——它们会丰富每个事件,以便仪表盘可以跨数据源进行数据透视: - **严重级别标准化**——每个数据源都会发出 `severity`;管道将其转换为大写并统一为 `CRITICAL/HIGH/MEDIUM/LOW/INFO`。 - **`source_tool` 标记**——每个文档都带有 `source_tool: loghound | netsentinel | honeynet | threatpulse`,这样单个 Kibana 视图就可以按来源进行拆分或过滤。 - **MITRE ATT&CK 富化**——已知的事件类型被映射到技术 ID: - NetSentinel `port_scan` → `T1046` - NetSentinel `arp_spoof` → `T1557.002` - NetSentinel `dns_tunnel` → `T1041` - HoneyNet `credential_attempt` → `T1110` - HoneyNet `command_executed` → `T1059` - LogHound 直接透传其自身的 `mitre_technique`。 - **ECS 对齐的别名**——`source.ip`、`destination.address`、`mitre.technique_id`、`mitre.tactic`,以确保跨源仪表盘正常工作。 - **LogHound 数据扁平化**——LogHound 输出包含 `findings[]` 数组的包装报告;管道会将其拆分,使每条发现都成为独立的文档。 完整的 ATT&CK 覆盖表位于 [`docs/ATTACK-COVERAGE.md`](docs/ATTACK-COVERAGE.md)。 ## 仓库布局 ``` bluestack/ ├── docker-compose.yml # ES + Kibana + Logstash, single network ├── .env.example # ports + heap sizing ├── elasticsearch/config/ # single-node lab config ├── kibana/config/ # publicBaseUrl, telemetry off ├── kibana/dashboards/ # exported saved objects (your handcrafted dashboards go here) ├── logstash/ │ ├── config/ # logstash.yml + pipelines.yml (one pipeline per source) │ └── pipeline/ # the four source pipelines ├── filebeat/ # optional sidecar for tail-style ingestion ├── scripts/ │ ├── setup.sh # idempotent stand-up: compose up, install templates, create data views │ ├── send-sample-data.sh # smoke-test the pipelines │ └── index-template.json # field-type mappings for bluestack-* ├── examples/ # one sample payload per source tool └── docs/ ├── ATTACK-COVERAGE.md └── HARDENING.md ``` ## 构建仪表盘 安装脚本会创建 Kibana 数据视图(`bluestack`、`bluestack-loghound` 等),但*不会*提供预制仪表盘。在 Kibana 中构建你自己的仪表盘,然后将其导出: ``` # 在 Kibana 中:Stack Management → Saved Objects → 选择 dashboards → Export。 # 将生成的 ndjson 保存在此处: mv ~/Downloads/export.ndjson kibana/dashboards/bluestack-saved-objects.ndjson ``` 重新运行 `./scripts/setup.sh` 将会获取该文件,并在每次全新启动时重新导入它。 建议的仪表盘(我最先构建的部分): - **概览**——按 `source_tool` 统计的事件计数、严重级别分布、排名靠前的源 IP。 - **MITRE ATT&CK 热力图**——`mitre.tactic` × `mitre.technique_id`,以及每个单元格的计数。 - **HoneyNet 攻击者时间线**——按 IP 划分的时间线,包含凭据尝试、命令执行、协同扫描标记。 - **NetSentinel 网络异常**——按 `event_type` 拆分,带有源/目标 IP 字段。 - **LogHound 身份验证发现**——聚焦于 `severity:CRITICAL OR HIGH`,按暴力破解升级的 `count` 排序。 ## 卸载拆除 ``` docker compose down # keep data docker compose down -v # nuke the Elasticsearch volume too ``` ## 路线图 - 导出为版本稳定保存对象的预构建 Kibana 仪表盘 - 带有为这四个工具配置好 `inputs.d` 的 Filebeat sidecar - Wazuh 风格的变体(compose profile),适合想要在 JSON 管道之外使用 HIDS + 基于代理的收集功能的用户 - 检测规则包——覆盖高信号场景(多次 SSH 失败后成功、DNS 隧道、ARP 缓存投毒)的 Elastic detection-engine 规则(`siem.rules`) - 告警输出——Logstash 针对 `severity:CRITICAL` 的 Slack/email 输出 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:AMSI绕过, CISA项目, Cloudflare, Docker, Elasticsearch, ELK, GitHub Advanced Security, IP 地址批量处理, JSON解析, Logstash, MITRE ATT&CK, Mutation, 仪表盘, 内容过滤, 可视化, 威胁情报, 威胁检测, 安全加固, 安全实验室, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 插件系统, 数据管道, 无线安全, 日志采集, 版权保护, 端口监听, 网络安全, 网络安全审计, 蜜罐, 规避防御, 证书利用, 请求拦截, 越狱测试, 软件工程, 隐私保护