avidzcheetah/soc-agent
GitHub: avidzcheetah/soc-agent
这是一个基于Transformer和强化学习的自主事件响应系统,用于优化安全事件的自动化处理。
Stars: 0 | Forks: 0
# 基于Transformer智能体优化网络安全事件响应行动
本仓库包含一个基于研究的自主安全运营中心(SOC)事件响应系统的实现。该项目利用**SecBERT**(一个专门为网络安全文本定制的基于Transformer的语言模型)来嵌入安全警报,并使用一个**深度强化学习(DRL)智能体(PPO)**来自动选择并执行针对安全事件的最优缓解措施。
于**贾夫纳大学计算机工程系**开发。
## 研究团队与指导
* **作者:**
* Witharana A.D.S. (`2022/E/008`)
* Perera W.P.C.K. (`2022/E/173`)
* **指导教师:** Dr. J. Jananie
* **联合指导教师:** Mr. Y. Pirunthapan
## 系统概述与架构
系统运行分为两个核心阶段:
1. **训练阶段:**
* **数据预处理:** 将原始网络安全事件数据集(如CISSM和CECILIA)结构化为清晰的表示。
* **表示学习:** 微调SecBERT,将文本形式的事件描述/警报编码为768维的稠密状态向量,以表示安全状态。
* **强化学习:** 在一个自定义的**Gymnasium**环境中训练一个**近端策略优化(PPO)**强化学习智能体。该智能体学习将SecBERT的状态嵌入映射到防御性响应行动(例如,隔离主机、阻止IP),其目标是最大化一个基于缓解有效性和系统正常运行时间的奖励函数。
2. **模拟与评估阶段:**
* 将训练好的智能体与模拟的企业网络一起部署。
* **对手模拟:** 通过**MITRE Caldera**生成自动化攻击。
* **检测与遥测:** 使用**Wazuh**(SIEM)、**OSQuery**(主机监控)和**Zeek**(网络安全监控)收集事件日志。
* **响应执行:** 智能体与Wazuh API及本地防火墙/控制器交互,实时执行遏制动作。
```
+-----------------------------------+
| Enterprise Environment |
| (Wazuh, OSQuery, Zeek, Caldera) |
+-----------------+-----------------+
|
Alert Logs
v
+-----------------+-----------------+
| Alert Preprocessing |
+-----------------+-----------------+
|
Structured Text
v
+-----------------+-----------------+
| SecBERT Embeddings (State) |
+-----------------+-----------------+
|
State Embeddings
v
+-----------------+-----------------+
| PPO RL Agent |
+-----------------+-----------------+
|
Action
v
+-----------------+-----------------+
| Mitigation Action (1 of 20) |
| (Isolate, Block IP, Sinkhole ...) |
+-----------------------------------+
```
## 仓库结构
## 环境与要求
### 硬件要求
* **CPU:** 最低4核(推荐8核以上)
* **内存:** 最低16 GB(推荐32 GB)
* **存储:** 100 GB+ SSD空间
* **GPU:** 可选,但对于SecBERT微调和DRL训练强烈推荐。
### 软件要求
* **操作系统:** Ubuntu Linux(在22.04 LTS上测试)
* **Python:** 3.10 或 3.12
* **Docker:** 运行Wazuh和Caldera模拟容器所必需。
## 安装与设置
1. **克隆仓库:**
```bash
git clone https://github.com/avidzcheetah/soc-agent.git
cd soc-agent
```
2. **创建并激活虚拟环境:**
```bash
python3 -m venv venv
source venv/bin/activate
```
3. **安装依赖:**
```bash
pip install --upgrade pip
pip install -r requirements.txt
```
## 执行指南
### 1. 数据预处理
将你的原始网络事件数据集放入 `data/raw/`。该仓库支持预处理CISSM网络事件数据集。
要运行CISSM数据集预处理脚本:
```
python preprocess_cissm.py
```
此脚本将会:
* 将数据集列映射到标准格式(例如,`event_type` → `attack_type`)。
* 过滤掉缺少关键字段的条目。
* 形成一个表示事件上下文的单一文本句子。
* 使用**20动作离散动作空间**(见下方[动作空间](#action-space--policy-design))标记正确的推荐遏制动作。
* 将预处理后的数据输出到 `data/processed/cissm_processed.csv`。
## 动作空间与策略设计
智能体的策略为每个警报输出**20个离散动作**之一,这些动作来源于:
* **[CISA联邦网络安全事件与漏洞响应手册](https://www.cisa.gov/sites/default/files/publications/Federal_Government_Cybersecurity_Incident_and_Vulnerability_Response_Playbooks_508C.pdf)** — 遏制步骤7a–7n,根除步骤8a–8m以及恢复程序。
* **[MITRE网络分析库(CAR)](https://car.mitre.org)** — 70多个经验证的、映射到ATT&CK技术的检测分析。
动作按干预严重性递增的顺序排列,以支持比例响应奖励塑造。
### 完整动作表
| 索引 | 动作 | CISA阶段 | 威胁匹配 | SOC实现 |
|:---:|---|---|---|---|
| 0 | `monitor` | 检测 | 基线/低严重性/误报 | 记录事件,关闭非恶意警报。 |
| 1 | `enable_deep_logging` | 检测 | 数据不足/可疑 | 将Zeek/OSQuery切换到详细模式;在子网启用完整PCAP。 |
| 2 | `create_ioc_alert` | 检测 | 新指标/CTI匹配 | 提取IOC,注入Wazuh SIEM规则集。 |
| 3 | `block_source_ip` | 遏制 | 扫描/C2心跳/DDoS | 边界防火墙拒绝源IP的规则。 |
| 4 | `block_dest_ip` | 遏制 | 出站C2/数据泄露 | 出站防火墙拒绝到攻击者基础设施的规则。 |
| 5 | `dns_sinkhole` | 遏制 | C2域名/钓鱼域名 | 在本地DNS中将域名重定向到沉洞。 |
| 6 | `block_port` | 遏制 | 特定端口利用 | 通过防火墙关闭端口(RDP, SMB等)。 |
| 7 | `isolate_host` | 遏制 | 横向移动/勒索软件 | 通过EDR/VLAN丢弃所有进出主机的流量。 |
| 8 | `kill_process` | 遏制 | 恶意执行/挖矿/RAT | 通过OSQuery/EDR终止PID,不进行完全隔离。 |
| 9 | `quarantine_file` | 遏制 | 木马/投放器/恶意软件二进制文件 | 将二进制文件移至加密保管库;阻止哈希。 |
| 10 | `quarantine_email` | 遏制 | 钓鱼/恶意附件 | 从邮箱中清除邮件;阻止发件人。 |
| 11 | `reset_credentials` | 遏制 | 暴力破解/凭证转储 | 强制重置密码,在AD/IAM中使令牌过期。 |
| 12 | `disable_account` | 遏制 | 账户泄露/权限提升 | 在AD/LDAP中完全禁用账户。 |
| 13 | `remove_persistence` | 根除 | 后门/自动运行/Webshell | 删除计划任务、注册表项或服务。 |
| 14 | `restore_registry` | 根除 | 注册表篡改/劫持流 | 将注册表项恢复到已知良好的基线。 |
| 15 | `restore_defense_config` | 根除 | AV/Defender被禁用/日志篡改 | 重新启用安全工具;恢复日志配置。 |
| 16 | `patch_vulnerability` | 根除 | 已知CVE/未打补丁的服务 | 触发针对被利用CVE的补丁部署。 |
| 17 | `snapshot_forensics` | 检测 | 高严重性/需要证据 | 捕获内存转储+磁盘映像用于取证。 |
| 18 | `sandbox_redirect` | 遏制 | 活跃对手 — 欺骗 | 将对手重定向到蜜网以研究TTP。 |
| 19 | `escalate_to_human` | 所有阶段 | 关键/高不确定性 | 标记给三级分析师;冻结自动化。 |
### 动作对ATT&CK战术覆盖
```
Init. Exec. Persist PrivEsc Def.Ev. Cred. Discov. Lat.Mv. Exfil. C2 Impact
Action Access Access
────────────────────────────────────────────────────────────────────────────────────────────────────────
monitor · · · · · · ● · · · ·
enable_deep_log · · · · ● · ● · · · ·
create_ioc_alert ● ● ● · ● ● · ● ● ● ·
block_source_ip ● · · · · ● · · · ● ·
block_dest_ip · · · · · · · · ● ● ·
dns_sinkhole ● · · · · · · · · ● ·
block_port · · · · · · · ● · ● ·
isolate_host · · · · · · · ● ● ● ●
kill_process · ● ● · · · · · · · ·
quarantine_file ● ● ● · ● · · · · · ·
quarantine_email ● · · · · · · · · · ·
reset_credentials · · · · · ● · ● · · ·
disable_account · · ● ● · ● · · · · ·
remove_persistence · · ● · · · · · · · ·
restore_registry · · ● · ● · · · · · ·
restore_defense · · · · ● · · · · · ·
patch_vulnerability ● · · ● · · · · · · ·
snapshot_forensics ● ● ● ● ● ● ● ● ● ● ●
sandbox_redirect · · · · · · · · · ● ·
escalate_to_human ● ● ● ● ● ● ● ● ● ● ●
```
`●` = 主要有效性 `·` = 非主要目标
## 开发路线图与后续步骤
- [x] 建立代码仓库、环境和基本工作区。
- [x] 实现CISSM数据集的预处理(`preprocess_cissm.py`)。
- [x] 从CISA手册 + MITRE CAR定义20动作离散动作空间。
- [ ] 预处理CECILIA警报数据集。
- [ ] 实现SecBERT微调脚本(`train_secbert.py`)。
- [ ] 构建自定义Gymnasium强化学习环境(`soc_env.py`)。
- [ ] 实现并训练PPO强化学习智能体(`train_ppo.py`)。
- [ ] 配置Wazuh、Caldera和OSQuery模拟设置。
- [ ] 运行集成评估并生成性能报告。
标签:CISA Playbooks, Cloudflare, MITRE ATT&CK, MITRE Caldera, ntdll.dll, OSQuery, PPO算法, Rootkit, SecBERT, Transformer模型, Wazuh, Zeek, 事件处理, 人工智能, 威胁缓解, 安全AI, 安全模拟, 安全运营中心, 嵌入学习, 强化学习应用, 智能代理, 深度强化学习, 状态编码, 用户模式Hook绕过, 网络安全, 网络映射, 自动化安全操作, 请求拦截, 逆向工具, 隐私保护