anpa1200/CTI_as_a_Code
GitHub: anpa1200/CTI_as_a_Code
基于 Docker Compose 的网络威胁情报实验室与培训平台,集成主流安全运营工具链并提供八项结构化分析作业。
Stars: 2 | Forks: 0
# CTI as a Code
一个完整的 Linux 网络威胁情报(CTI)实验室和结构化 CTI 方法论框架,运行在 Docker Compose 上。
**CTI as Code**:版本控制、基于 IDE 的 CTI 调查 —— 可溯源的证据、模板驱动的项目、可重复的分析、可部署的检测。
**技术栈:** OpenCTI · TheHive 5 · Cortex · Elastic SIEM (ES + Kibana) · Logstash
**文档站点:** https://1200km.com/CTI_as_a_Code/
## 服务
| 服务 | URL | 默认用户 |
|---|---|---|
| OpenCTI | http://localhost:8080 | `admin@cti-lab.local` |
| Kibana (SIEM) | http://localhost:5601 | `elastic` |
| TheHive | http://localhost:9100 | (首次登录时设置) |
| Cortex | http://localhost:9002 | (首次登录时设置) |
| MinIO Console | http://localhost:9001 | `cti_minio` |
| RabbitMQ Mgmt | http://localhost:15672 | `cti_rabbit` |
| Elasticsearch | http://localhost:9200 | `elastic` |
## 快速开始
**要求:** Docker Engine 24+、Docker Compose v2.x、16 GB RAM(最低 12 GB)
```
git clone https://github.com/anpa1200/CTI_as_a_Code.git
cd CTI_as_a_Code
# 1. 配置 credentials
cp .env.example .env
nano .env # change ALL passwords and generate UUIDs/secrets (see comments in file)
# 2. 启动核心服务
docker compose up -d
# 3. 一次性设置(设置 Kibana 密码,创建 MinIO buckets)
./scripts/setup.sh
# 4. (可选)启动 MITRE ATT&CK connector
docker compose --profile connectors up -d
# 5. (可选)启动 Logstash 日志导入
docker compose --profile logstash up -d
```
## 系统要求
| 组件 | 最低 | 推荐 |
|---|---|---|
| RAM | 12 GB | 16–20 GB |
| CPU | 4 核 | 8 核 |
| 磁盘 | 40 GB | 100 GB |
| OS | Linux (内核 5+) | Ubuntu 22.04 / 24.04 |
**完整的工具参考和系统要求:** 请参阅 [TOOLS.md](TOOLS.md) 获取完整的列表,包括实验室技术栈服务、主机安装的分析工具、仅需浏览器的 Web 工具、三个级别的硬件要求、软件先决条件、每次作业的工具覆盖矩阵以及网络要求。
## 训练作业
八项涵盖完整 CTI 分析师技能集的结构化作业:
| # | 作业 | 组织 | 方法论 | 模板 |
|---|---|---|---|---|
| A01 | 响应式 IR — 定向入侵,研发数据窃取 | LifeTech Pharma | 响应式 DFIR + ATT&CK | `templates/reactive/` |
| A02 | 主动式 — 针对国家级行动者的电信定向攻击 | CelltronX Telecom | 主动式威胁导向检测 | `templates/proactive/` |
| A03 | 全周期 CTI — 从零开始的项目设计 | TechPay FinTech | 完整情报周期 | `templates/full-cycle/` |
| A04 | 敌手模拟 — Desert Cipher TTPs | TechPay FinTech | 模拟 + 检测验证 | (模拟结构) |
| A05 | 响应式 IR — 承包商违规,生物特征数据 | NDSA Government | 响应式 DFIR + 法规合规 | `templates/reactive/` |
| A06 | 主动式 — 上线前国家身份验证系统 | NDSA GovID 2.0 | 主动式 + INCD 上线风险 | `templates/proactive/` |
| A07 | 全周期 CTI — 监管授权,违规事件后 | NDSA Government | 完整情报周期 | `templates/full-cycle/` |
| A08 | 敌手模拟 — INCD 第 8 节合规 | NDSA Government | 模拟 + 合规报告 | (模拟结构) |
作业位于 [`training/`](training/) 中。项目模板位于 [`templates/`](templates/) 中。
每个案例文件夹遵循其方法论模板结构,并包含 `project.yml`、分析文件、合成数据工件以及 `solution.md`。
## 目录结构
```
CTI_as_a_Code/
├── docker-compose.yml # All services
├── .env.example # Credential template
├── TOOLS.md # Complete tools reference and system requirements
├── config/ # Service configuration files
├── scripts/ # setup.sh, health-check.sh, reset.sh
├── templates/ # CTI as Code blank project scaffolds
│ ├── reactive/ # Reactive investigation template (A01, A05)
│ ├── proactive/ # Proactive threat assessment template (A02, A06)
│ └── full-cycle/ # Full-cycle CTI program template (A03, A07)
├── training/ # 8 CTI analyst assignments
│ ├── 01-reactive-lifetech/ # project.yml + template structure + synthetic data
│ ├── 02-proactive-celltronx/ # project.yml + template structure + synthetic data
│ ├── 03-full-cycle-techpay/ # project.yml + template structure + synthetic data
│ ├── 04-emulation-techpay/ # project.yml + Sigma rules + emulation results
│ ├── 05-reactive-ndsa/ # project.yml + template structure + synthetic data
│ ├── 06-proactive-govid2/ # project.yml + template structure + synthetic data
│ ├── 07-full-cycle-ndsa/ # project.yml + template structure + synthetic data
│ └── 08-emulation-ndsa/ # project.yml + Sigma rules + emulation results
└── docs-site/ # Docusaurus documentation
```
## 脚本
```
./scripts/setup.sh # Run once after first docker compose up -d
./scripts/health-check.sh # Check HTTP status of every service
./scripts/reset.sh # !! Wipe all data and volumes !!
```
## 配置
| Profile | 添加的服务 |
|---|---|
| *(无)* | ES、Kibana、Redis、RabbitMQ、MinIO、OpenCTI、TheHive、Cortex |
| `connectors` | 用于 OpenCTI 的 MITRE ATT&CK connector |
| `logstash` | Logstash(Beats 输入端口 :5044) |
## Cortex → TheHive 集成
首次登录 Cortex 后:
1. 转到 **Cortex** → Organization → Create API key
2. 将 `CORTEX_API_KEY=` 添加到 `.env`
3. 取消注释 `config/thehive/application.conf` 中的 Cortex connector 块
4. 重启 TheHive:`docker compose restart thehive`
完整指南:[docs-site/docs/setup/cortex-setup.md](docs-site/docs/setup/cortex-setup.md)
## License
MIT
标签:Docker, 内容过滤, 威胁情报, 安全培训, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 搜索引擎查询, 版权保护, 网络安全, 自定义脚本, 越狱测试, 隐私保护