arjwoo/Azure-SOC-Environment
GitHub: arjwoo/Azure-SOC-Environment
这是一个基于Azure的云端SOC实验室,通过模拟攻击和集中日志分析实现威胁监控与安全事件检测。
Stars: 0 | Forks: 0
# Azure-SOC 环境
基于微软 Azure 的云端安全运营中心环境,使用 DVWA、ELK Stack、Filebeat、Docker 以及攻击模拟,实现集中式日志分析和威胁监控。
## 概述
本项目演示了如何在微软 Azure 中部署一个云端安全运营中心,使用了:
* DVWA(Damn Vulnerable Web Application)
* ELK Stack(Elasticsearch、Kibana)
* Filebeat
* Azure 虚拟网络分段
* 负载均衡器
* 跳板机架构
* 攻击模拟与日志分析
该项目的目标是模拟真实的攻击流量,集中日志,并使用 Kibana 分析安全事件。
# 拓扑描述
该网络的主要目的是在微软 Azure 内部暴露一个经过负载均衡和监控的 DVWA 实例。
该环境旨在使用分段网络、集中式日志记录和攻击遥测分析,来模拟真实的 SOC 和云安全监控架构。
负载均衡通过在多个 DVWA 虚拟机之间分配流量来确保高可用性。Jumpbox/Bastion 主机作为安全网关,通过基于 SSH 的访问进入私有 Azure 环境。
ELK Stack(Elasticsearch + Kibana)提供集中式日志记录和监控功能,用于观察易受攻击的应用程序活动、系统日志和攻击遥测数据。
Filebeat 用于监控和转发来自 DVWA 服务器的日志,以便在 Kibana 中进行索引和分析。
该拓扑演示了以下概念:
* Azure 虚拟网络
* 网络分段
* 跳板机管理
* 负载均衡
* 集中式日志记录
* SIEM 风格的监控
* 攻击模拟与威胁搜寻
* 容器化的易受攻击基础设施
# 架构
## 组件
| 组件 | 用途 |
| ------------------- | -------------------------------- |
| Jumpbox VM | 安全的行政访问 |
| DVWA VM 1 | 易受攻击的 Web 应用程序节点 |
| DVWA VM 2 | 易受攻击的 Web 应用程序节点 |
| ELK VM | 集中式日志记录与可视化 |
| Filebeat | 日志转发代理 |
| Azure Load Balancer | 流量分发 |
# Azure 网络设计
## 虚拟网络
```
vnet-soc-lab
```
## 子网
| 子网 | 地址空间 | 用途 |
| ------------------- | ------------ | --------- |
| frontend-subnet | 10.0.1.0/24 | DVWA 虚拟机 |
| backend-subnet | 10.0.2.0/24 | ELK Stack |
| management-subnet | 10.0.3.0/24 | 跳板机 |
# 安全架构
## NSG 规则
### 前端子网
* 允许来自负载均衡器的 HTTP(端口 80)
* 仅允许来自管理子网的 SSH(端口 22)
### 后端子网
* 允许来自前端子网的 Elasticsearch(端口 9200)
* 允许来自管理子网的 Kibana(端口 5601)
* 允许来自管理子网的 SSH(端口 22)
### 管理子网
* 仅允许来自管理员公网 IP 的 SSH 访问
# 基础设施部署
## 跳板机
* Ubuntu Server 22.04
* 已启用公网 IP
* SSH 密钥认证
## DVWA 部署
使用以下命令部署 Docker 容器:
```
sudo docker run -d -p 80:80 vulnerables/web-dvwa
```
## ELK 部署
### Elasticsearch
```
sudo docker run -d \
--name elasticsearch \
--net elk \
-p 9200:9200 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
docker.elastic.co/elasticsearch/elasticsearch:7.10.2
```
### Kibana
```
sudo docker run -d \
--name kibana \
--net elk \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
docker.elastic.co/kibana/kibana:7.10.2
```
# 安全的 Kibana 访问
通过跳板机使用 SSH 隧道安全地访问了 Kibana。
```
ssh -i mykey.pem -L 5601:10.0.2.4:5601 azureuser@
```
浏览器访问方式:
```
http://localhost:5601
```
# Filebeat 配置
## 已启用 Apache 模块
```
sudo filebeat modules enable apache
```
## Docker 容器日志收集
```
filebeat.inputs:
- type: container
paths:
- /var/lib/docker/containers/*/*.log
```
## Elasticsearch 输出
```
output.elasticsearch:
hosts: ["http://10.0.2.4:9200"]
```
# 攻击模拟
## 暴力破解
* 对 DVWA 进行重复登录尝试
* 观察到重复的 POST 请求和 HTTP 302 响应
## SQL 注入
攻击载荷示例:
```
' OR 1=1#
```
## 跨站脚本(XSS)
攻击载荷示例:
```
```
## 命令注入
攻击载荷示例:
```
127.0.0.1 && whoami
```
## 网络扫描
```
nmap
```
# SOC 监控工作流
```
DVWA Attacks
↓
Docker Logs
↓
Filebeat
↓
Elasticsearch
↓
Kibana Dashboards
```
# 展示的关键技能
* Azure 网络
* 网络分段
* NSG 配置
* Docker 容器化
* ELK Stack 部署
* Filebeat 配置
* SSH 隧道
* 安全监控
* SIEM 基础
* 攻击模拟
* 日志分析
* 威胁搜寻
# 经验教训
* 私有网络分段的重要性
* 集中式日志记录架构
* 主机日志与容器日志的区别
* 使用跳板机的安全访问设计
* Elasticsearch 容器问题的故障排除
* 理解 SOC 遥测数据管道
# 未来改进
* 集成 Microsoft Sentinel
* 集成 Wazuh
* 部署 Suricata IDS
* Terraform 自动化
* Ansible 自动化
* 自定义 Kibana 仪表板
* 告警规则和检测
* 威胁情报订阅源
# 结论
这个 SOC 实验室项目通过在微软 Azure 中集成易受攻击的应用程序、集中式日志记录、攻击模拟和基于 SIEM 的监控,展示了实用的云安全工程技能。
标签:CTI, Docker, DVWA, Elasticsearch, ELK Stack, Filebeat, Microsoft Azure, 云基础设施, 威胁监控, 安全运营中心, 安全防御评估, 攻击模拟, 网络安全, 网络映射, 虚拟网络分段, 请求拦截, 负载均衡, 跳板机, 隐私保护, 集中日志管理, 驱动签名利用