albert-einshutoin/secure-learn
GitHub: albert-einshutoin/secure-learn
一个基于 Docker 的综合安全学习与 SOC 训练环境,让用户在隔离环境中体验从攻击到响应的安全运营全生命周期。
Stars: 0 | Forks: 0
# Secure Learn / SOC-Lab
**基于 Docker 的综合安全学习与 SOC 训练环境**
[](https://opensource.org/licenses/MIT)
[](https://github.com/albert-einshutoin/secure-learn/actions/workflows/ci.yml)
## 概述
SOC-Lab 是一个完全基于 Docker 的实战型学习环境,旨在进行安全运营中心(SOC)的训练。
您可以体验 **攻击 → 检测 → 响应 → 报告 → 改进** 的一系列生命周期。
## 特点
- 🐳 **Docker Compose 一键启动** - 无需复杂的环境搭建
- 🎯 **7 个学习场景** - 从端口扫描到模拟 APT
- 📊 **实时可视化** - 通过 Kibana Dashboard 观察攻击
- 🔔 **自动告警** - ElastAlert + Slack 通知
- 📝 **评估系统** - 分为初级、中级、高级的等级评估
## 架构
```
[ Kali Linux ] (攻撃)
|
v
[ Suricata ] (L3-7 IDS/IPS)
|
v
[ NestJS App ] (脆弱なWebアプリ)
|
+--> App Log --> Fail2ban (自動BAN)
|
[ Linux Host ]
|
+--> Auditd (OS監査)
|
[ Filebeat ]
|
[ Elasticsearch ] <---> [ Kibana ]
(SIEM / SOC)
```
## 快速开始
### 前提条件
- Docker & Docker Compose
- 8GB 以上内存
- 20GB 以上磁盘空间
### 启动
```
# 克隆仓库
git clone https://github.com/albert-einshutoin/secure-learn.git
cd secure-learn
# 環境を起動
docker compose up -d --build
# 起動確認
docker compose ps
```
### 访问
| 服务 | URL |
|---------|-----|
| Kibana | http://localhost:5601 |
| NestJS App | http://localhost:3000 |
| Elasticsearch | http://localhost:9200 |
### 健康检查
```
curl http://localhost:3000/health
docker compose ps
```
### 执行攻击
```
# Kaliコンテナに接続
docker exec -it soc-lab-kali /bin/bash
# シナリオを実行
/scripts/s1_portscan.sh
/scripts/s2_bruteforce.sh
/scripts/s3_sqli.sh
/scripts/s4_dos.sh
/scripts/s7_lateral.sh
```
Kali 容器根据本仓库的 `attack/Dockerfile` 构建,包含 `nmap`、`hydra`、`sqlmap`、`curl` 和 `jq`。
## 学习场景
| 编号 | 场景 | 主要层 | 难度 |
|----|---------|----------|--------|
| S1 | 端口扫描 | L3/L4 | 初级 |
| S2 | API 暴力破解 | L7 | 初级 |
| S3 | SQL 注入 | L7 | 中级 |
| S4 | DoS 攻击 | L7 | 初级 |
| S5 | 重要文件篡改 | OS | 中级 |
| S6 | 权限提升 | OS | 中级 |
| S7 | 跨节点事件 | 整体 | 高级 |
## 目录结构
```
soc-lab/
├── docker-compose.yml # メイン構成
├── app/ # NestJSアプリ
├── suricata/ # IDS設定・ルール
├── fail2ban/ # BAN設定
├── auditd/ # 監査ルール
├── elk/ # ELK Stack設定
├── attack/ # 攻撃スクリプト
├── scenarios/ # シナリオ手順書
└── docs/ # ドキュメント
```
## 分阶段功能
### Phase 1(基础)
- IDS(仅检测)
- Fail2ban 自动封禁
- SIEM 可视化
### Phase 2(高级)
- IPS(自动拦截)
- Slack 通知
- OS 审计
```
# IPS 模式
docker compose -f docker-compose.yml -f docker-compose.ips.yml up -d --build
# Slack通知を含むアラートモード
cp .env.example .env
# .env の SLACK_WEBHOOK_URL を設定
docker compose -f docker-compose.yml -f docker-compose.alerting.yml up -d --build
```
### Phase 3(演练)
- Red vs Blue 隔离环境
- KPI Dashboard
- 自动报告生成
## 使用技术
- **攻击**: Kali Linux, nmap, hydra, sqlmap
- **检测**: Suricata, Fail2ban, Auditd
- **SIEM**: Elasticsearch, Kibana, Filebeat
- **通知**: ElastAlert, Slack
- **应用**: NestJS, PostgreSQL
## 文档
- [安装指南](docs/setup.md)
- [SOC Playbook](docs/soc-playbook.md)
- [事件响应报告模板](docs/templates/incident-report.md)
- [评估检查清单](docs/templates/evaluation-checklist.md)
## 许可证
MIT License
## 注意事项
⚠️ **本项目仅供学习使用**
- 切勿用于生产环境
- 仅限在隔离网络中使用
- 包含故意的漏洞
- 切勿将攻击脚本针对第三方环境运行
- 切勿提交 `.env`、实际的 webhook URL、私钥或真实数据
## 贡献
欢迎提交 Issue 和 Pull Request。
## 作者
SOC-Lab Project
标签:Docker-Compose, Elasticsearch, Metaprompt, 安全实训, 测试用例, 版权保护, 网络安全, 请求拦截, 越狱测试, 隐私保护