clavenar/clavenar-chaos-catalog

GitHub: clavenar/clavenar-chaos-catalog

面向红蓝对抗演练的纯数据攻击场景库,为多个执行器和演示工具提供共享的规范化攻击目录。

Stars: 0 | Forks: 0

# clavenar-chaos-catalog 目录 用于 Clavenar 红蓝对抗和演示流程的纯数据攻击目录。 从 `clavenar-chaos-monkey` 中剥离出来,以便多个调用方可以共享 一个内置场景的规范化单一事实来源: - **`clavenar-chaos-monkey`** —— CLI 红队执行器。遍历 `catalog()`,将每次攻击 POST 到代理,并根据每个 `Attack` 的 `Expected` 字段对判定结果进行分类。 - **`clavenar-console`** —— `/demo/fire` 页面(位于 `vanteguardlabs` 演示体验中)。目前拥有其自己的 HIL-pending 形态的场景;通过该目录进行路由属于 未来的重构。 ## 这里面有什么 ``` use clavenar_chaos_catalog::{ Attack, // pure data; Clone+Debug. payload_builder and // headers_builder are private — go through // build_payload(request_id) and build_headers() Category, // 11 variants: Denylist, Injection, Velocity, // BusinessHours, Control, Hil, Attestation, Identity, // SupplyChain, AgentCert, MultiTurn Expected, // Allow | Deny { reason_keywords } | BusinessHoursConditional Mode, // Single | Burst { count } | SingleWithHil(HilSideAction) // | MultiTurn { primers } HilSideAction, // Deny | DoNothing catalog, // -> Vec (84 today) }; ``` 每个 payload 和 header 构建器都是普通的 `fn` 指针(无捕获 状态)。时间相关的值(attestation `expires_at`、JWT `exp`) 在触发时由 `build_headers()` 访问器打标, 而不是在目录构建时,因此长时间的目录运行不会发送 过期的声明。 ## 这里面没有什么 - 执行器 —— HTTP 客户端、异步调度、判定分类。 位于 `clavenar-chaos-monkey/src/runner.rs` 并保留在那里。 - 身份场景目录 —— 这些场景引用了 携带 HTTP 客户端的 `IdentityRunner`;将它们提取到 纯数据 crate 中会强制引入我们目前还不需要的 runner trait。 仍然保留在 `clavenar-chaos-monkey/src/identity_attack.rs`。 - CLI / 报告格式化器 —— 属于二进制程序的事务,保留在 `clavenar-chaos-monkey` 中。 ## 版本控制 + 破坏性更新 此 crate 是 clavenar 目录树的工作区内部数据依赖。 添加新场景是非破坏性的;重命名 `Category` / `Expected` / `Mode` 的变体属于破坏性更新,并会触发 对每个消费者进行协调一致的版本升级(目前:仅为 `clavenar-chaos-monkey`;未来可能包括 `clavenar-console`)。 ## 运行 ``` cargo build cargo test cargo clippy --all-targets -- -D warnings ``` 没有二进制文件 —— 这是一个库 crate。 ## License Apache-2.0.
标签:CISA项目, Rust, 可视化界面, 安全测试, 攻击性安全, 攻击模拟, 数据模块, 混沌工程, 网络流量审计, 通知系统, 驱动签名利用