vinzabe/c2-emulator

GitHub: vinzabe/c2-emulator

一个面向蓝队的沙箱化对手模拟框架,通过 LLM 规划多阶段 MITRE ATT&CK 场景并生成合成遥测数据,用于评估和提升检测规则的覆盖率。

Stars: 0 | Forks: 0

# c2-emulator 一个秉持 [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) 精神的防御性对手模拟工具,但其攻击者由 LLM 驱动,并且实现的技术是**完全沙箱化的存根,仅生成合成证据**。没有 C2 服务器,没有真实的网络出站流量,没有 shellcode,也没有破坏性操作。其目的是为蓝队提供一种途径来: - 将 MITRE ATT&CK 技术链接为逼真的多阶段场景, - 生成每一步的合成遥测数据(日志 + 产物), - 根据一套 Sigma 风格的规则集对这些场景进行评分,并 - 让 LLM 根据高层目标规划攻击活动并解释蓝队的防御重点。 ## 安全模型 - 每一项技术都是一个 Python 类,它*描述*攻击者的行为,并在沙箱化的 `workdir` 中写入确定性的合成证据文件。它们都不会触及真实的注册表、真实的 LSASS 或真实的网络。 - 严格的**拒绝名单**会拒绝任何与破坏性影响相关的技术 ID(T1485 数据破坏、T1486 勒索软件、T1490 抑制恢复、T1491 篡改、T1495 固件损坏、T1561 磁盘擦除)。注册表拒绝加载此类 ID,执行器也拒绝运行它们,即使它们是由 LLM 夹带进来的。 - 每一项技术都使用 `_safe_join` 来拒绝越出 workdir 的路径遍历。 - LLM 规划器受到限制:它只能看到注册表中已有的 ID 和拒绝名单,并且它在执行前会静默丢弃任何不在注册表中或在拒绝名单上的步骤。 ## 布局 ``` c2emu/ techniques/ base.py Technique, Evidence, EvidenceArtifact, TacticPhase discovery.py T1057 T1083 T1016 T1018 persistence.py T1547.001 T1053.005 T1136.001 credential.py T1003.001 T1552.001 exfiltration.py T1041 T1071.001 T1567.002 registry.py TechniqueRegistry + DENY_LIST campaign.py Campaign, CampaignStep executor.py sandboxed CampaignExecutor detection.py DetectionEngine + bundled Sigma-flavoured rules planner.py LLMCampaignPlanner report.py coverage scoring (severity-weighted) cli.py c2emu {list, run, plan} scenarios/persistence_demo.json sample 7-step campaign tests/test_c2emu.py 26 unit + live LLM smoke ``` ## 快速开始 ``` pip install -r requirements.txt # 检查可用的 techniques python -m c2emu.cli list # 执行已保存的 campaign 并评估 detections python -m c2emu.cli run --campaign scenarios/persistence_demo.json # LLM-plan + 根据目标执行 campaign python -m c2emu.cli plan --objective \ "exercise our EDR's persistence + credential-dumping detections" \ --execute ``` ## 检测覆盖率评分 内置的规则集(特意保持较小——你可以替换为你真实的 Sigma 规则)按严重性对匹配项进行加权: | 严重性 | 权重 | |----------|--------| | low | 1 | | medium | 3 | | high | 7 | | critical | 12 | 覆盖率 = sum(匹配的规则权重) / sum(所有规则权重),上限为 100。报告还会列出每一步的 `technique_coverage`,以便您可以确切地看到哪些 TTP 躲过了监控。 ## 测试 ``` pytest tests/ -v LLM_LIVE=1 pytest tests/ -v ``` ## 许可证 MIT
标签:AI安全, AMSI绕过, Anthropic, ATT&CK框架, Chat Copilot, CIS基准, DLL 劫持, FTP漏洞扫描, LLM驱动, OpenAI, Python, Sigmac规则, WireGuard, 内存规避, 合成遥测, 后渗透, 场景规划, 多语言支持, 大语言模型, 威胁检测, 安全助手, 安全工具集合, 安全测试框架, 安全编排, 安全评分, 对手模拟, 攻击模拟, 无后门, 漏洞利用数据库, 紫队, 网络安全, 网络安全审计, 逆向工具, 防御性安全, 隐私保护, 驱动签名利用