cognis-digital/advsim

GitHub: cognis-digital/advsim

advsim 是一款仅限良性使用的对手模拟与检测验证框架,通过在沙箱中重现 ATT&CK 技术的可观测遥测数据,帮助蓝队验证 SIEM/EDR 检测规则是否真正生效。

Stars: 0 | Forks: 0

# advsim **仅限良性、授权使用的对手模拟与检测验证框架 —— 映射至 MITRE ATT&CK。** advsim 是一款紫队工具,与 [MITRE Caldera](https://caldera.mitre.org/) 和 [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) 属于同一专业类别:你*模拟对手技术,以便蓝队能够确认其检测规则是否生效。* 设计上的侧重点差异十分明显 —— **advsim 仅使用严格良性、可逆且限定在沙箱范围内的操作,来模拟技术的可观测遥测数据。** 它绝不会造成实际危害,并且在架构设计上就根本无法做到这一点(参见 [范围防护机制](#the-benignauthorized-guarantee))。 ## 问题所在 蓝队购买 SIEM、EDR 并编写检测规则 —— 却很少能回答唯一那个关键问题:*如果对手此刻就在这台主机上执行了 X 操作,我们真的能检测到吗?* 等待真正的安全事件发生是一种极其糟糕的测试方式。完整的红队演练既昂贵又少见。而运行真实的恶意软件或破坏性工具来“测试”检测更是鲁莽之举。 advsim 弥补了这一空白。它重现了 ATT&CK 技术的**遥测足迹** —— 即你的检测规则应当依赖的进程创建、DNS 查询、文件写入和自启动痕迹 —— 且使用的是可证明为良性的操作:在临时沙箱中生成标记文件、运行带有标签的只读进程、向不可路由的文档域名发起 DNS 查询。你运行它,然后去检查你的检测警报是否亮起。它会生成一份**检测验证报告**(Markdown / JSON / **SARIF 2.1.0**),以及一个包含所模拟 TTP 的 **STIX 2.1** 包,供你接入情报和检测 pipeline。 ## 良性/授权保证 这是 advsim 的核心所在,绝非可有可无的注脚: 1. **授权使用门控。** 没有明确的授权信号,任何操作都不会运行。没有 flag,就不执行。 2. **良性、可逆、仅限可观测的模拟。** 每个技术的 `simulate` 步骤只生成*遥测数据*,绝无其他。每个技术都有对应的 `cleanup()` 用于还原。持久化“写入”的是一个 JSON 标记文件,描述了它*本会*设置的键值 —— 它绝不会触碰真实的注册表、crontab、LaunchAgents 或启动文件夹。C2“信标”只会解析/连接到**不可路由**的 RFC 5737 / RFC 2606 sink 地址。凭证访问“读取”的是一个不包含任何机密的带标签诱饵文件。 3. **经过测试的严格边界。** [`safety.py`](src/advsim/safety.py) 声明了一份禁止能力的黑名单 —— 真实恶意软件、破坏性操作、数据窃取、DoS、大规模目标定位、自我传播、针对真实系统的凭证窃取以及任何带有物理破坏性质的操作 —— 以及一份良性能力的白名单。每一项发布的技术都经过了与此边界的验证。命令字符串会经过破坏性模式黑名单的检查。所有文件活动均被限制在临时沙箱内;所有网络活动均被限制在 sink 主机范围内。 4. **出现任何回归 CI 即宣告失败。** [`tests/test_scope_guard.py`](tests/test_scope_guard.py) 断言:没有任何技术可以声明被禁止的能力,没有破坏性命令能通过门控,没有路径能逃逸出沙箱,没有真实主机可被触达,授权门控无法被绕过,且动作词汇表是一个封闭的、经过审计的集合。**如果有人添加了具有实际破坏能力的东西,CI 就会变红报错。** 如果某项技术无法以良性方式进行模拟,它将被记录为超出范围且**不予实现**。请参阅 [SECURITY_SCOPE.md](SECURITY_SCOPE.md)。 ## 安装 ``` # 从源码 git clone https://github.com/cognis-digital/advsim cd advsim pip install . # 或 helper scripts ./install.sh # Linux / macOS ./install.ps1 # Windows PowerShell make install # via Makefile ``` Docker: ``` docker build -t advsim . docker run --rm advsim list ``` 要求 Python 3.9+。唯一的运行时依赖是 PyYAML。 ## 使用方法 ``` advsim list # list techniques + scenarios advsim run discovery.system_info --authorized # emulate one technique (T1082) advsim run T1071.004 --authorized # ...also addressable by ATT&CK id advsim scenario recon_and_beacon --authorized # run a chained scenario advsim report --format sarif # re-render the last run as SARIF advsim cleanup # remove the sandbox tree ``` 报告格式:`markdown`(默认)、`json`、`sarif`、`stix`。 ``` # 为你的 code-scanning / detection pipeline 生成 SARIF,并为你的 TIP 生成 STIX: advsim scenario full_killchain --authorized --format sarif -o killchain.sarif advsim scenario full_killchain --authorized --format stix -o killchain.stix.json ``` 为会话授予一次授权,而不是每个命令授权一次: ``` export ADVSIM_AUTHORIZED=1 # or create ./advsim.yaml with `authorized: true` advsim scenario recon_and_beacon ``` ## 运行效果示例 ``` $ advsim run discovery.system_info --authorized # advsim detection-validation 报告 > advsim emulates the observable telemetry of MITRE ATT&CK techniques using > benign, reversible, sandbox-scoped actions. Nothing below performed real harm. ## 在你的 SIEM / EDR 中验证什么 ### System Information Discovery (T1082) - Expected telemetry (confirm a detection fired): - Process creation event for a system-info discovery binary (ver / uname / systeminfo) - Short-lived read-only process spawned by the advsim runner - Observed benign actions: - enumerate_environment: read non-sensitive environment/system metadata - spawn_benign_process: spawned benign process: cmd /c ver ``` ## ATT&CK 覆盖范围 包含 18 项良性技术模拟,涵盖 8 种 ATT&CK 战术。每项模拟都具备跨平台防护且可逆。 | ATT&CK ID | 技术 | 战术 | advsim id | |---|---|---|---| | [T1082](https://attack.mitre.org/techniques/T1082/) | 系统信息发现 | 发现 | `discovery.system_info` | | [T1033](https://attack.mitre.org/techniques/T1033/) | 系统所有者/用户发现 | 发现 | `discovery.account` | | [T1016](https://attack.mitre.org/techniques/T1016/) | 系统网络配置发现 | 发现 | `discovery.network_config` | | [T1057](https://attack.mitre.org/techniques/T1057/) | 进程发现 | 发现 | `discovery.process` | | [T1069](https://attack.mitre.org/techniques/T1069/) | 权限组发现 | 发现 | `discovery.permission_groups` | | [T1083](https://attack.mitre.org/techniques/T1083/) | 文件和目录发现 | 发现 | `discovery.file_and_directory` | | [T1059](https://attack.mitre.org/techniques/T1059/) | 命令和脚本解释器 | 执行 | `execution.command_shell` | | [T1547.001](https://attack.mitre.org/techniques/T1547/001/) | 注册表 Run 键 (自启动) | 持久化 | `persistence.registry_run_key` | | [T1547.001](https://attack.mitre.org/techniques/T1547/001/) | 启动文件夹痕迹 | 持久化 | `persistence.startup_folder` | | [T1053.005](https://attack.mitre.org/techniques/T1053/005/) | 计划任务 / Cron | 持久化 | `persistence.scheduled_task` | | [T1036.003](https://attack.mitre.org/techniques/T1036/003/) | 伪装:重命名系统实用程序 | 防御规避 | `defense_evasion.masquerading` | | [T1070.004](https://attack.mitre.org/techniques/T1070/004/) | 痕迹移除:文件删除 | 防御规避 | `defense_evasion.indicator_removal` | | [T1070.006](https://attack.mitre.org/techniques/T1070/006/) | 痕迹移除:时间戳篡改 | 防御规避 | `defense_evasion.timestomp` | | [T1552.001](https://attack.mitre.org/techniques/T1552/001/) | 文件中的不安全凭证 (诱饵) | 凭证访问 | `credential_access.file_access_marker` | | [T1074.001](https://attack.mitre.org/techniques/T1074/001/) | 本地数据暂存 | 收集 | `collection.local_staging` | | [T1071.004](https://attack.mitre.org/techniques/T1071/004/) | 应用层协议:DNS | 命令与控制 | `c2.dns_lookup` | | [T1571](https://attack.mitre.org/techniques/T1571/) | 非标准端口信标 | 命令与控制 | `c2.beacon_connect` | | [T1048](https://attack.mitre.org/techniques/T1048/) | 经由备用协议外发数据 (DNS 模式) | 外发传输 | `exfiltration.dns_pattern` | 内置场景:`recon_and_beacon`、`persistence_and_evasion`、`full_killchain`。 ## 工作原理 技术以**声明式 YAML**(`src/advsim/techniques/*.yaml`)定义,映射到对应的 ATT&CK ID,列出了良性的 `simulate` + `cleanup` 步骤、预期遥测数据、能力要求和平台防护。这些步骤由一个规模小、封闭且经过审计的 [动作词汇表](src/advsim/actions.py) 组合而成 —— 不涉及任何任意的代码执行。请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 和 [docs/WRITING_TECHNIQUES.md](docs/WRITING_TECHNIQUES.md)。 ## 开发 ``` pip install -e ".[dev]" pytest # full suite incl. the scope guard python demos/run_all_demos.py ``` ## 不附属于 MITRE MITRE ATT&CK® 和 Caldera™ 是 The MITRE Corporation 的商标。advsim 出于互操作性目的引用了 ATT&CK 技术标识符,但不附属于 MITRE,也未获得其认可。 ## 许可证
标签:TGT, 威胁情报, 安全合规, 开发者工具, 恶意代码分类, 攻防演练, 检测验证, 紫队工具, 网络代理, 请求拦截, 逆向工具