Utmins/protoaudit
GitHub: Utmins/protoaudit
一个模块化的协议行为分析工具包,用于检测协议实现中的挑战重用、重试循环、随机性异常等隐蔽缺陷。
Stars: 0 | Forks: 0
# ProtoAudit



ProtoAudit 是一个模块化的防御性框架,用于分析协议行为、加密元数据和随机性模式。它将记录解析、规则驱动的发现、跨分析器关联以及案例驱动的研究示例结合在一个友好的研究工具包中。
它的构建初衷是为了检查和验证,而非隐蔽扫描或攻击性自动化。
## 为什么创建这个仓库
协议故障往往看起来并不严重。握手可能表面上成功,但暗地里却在重用挑战材料、重复证明、泄露确定性随机数,或者在没有建立新会话上下文的情况下陷入重试循环状态。
ProtoAudit 旨在让这些模式变得可见。
## ProtoAudit 能做什么
- 检查原始记录和结构化协议脚本
- 跟踪消息状态并推断粗略的协议阶段
- 检测挑战/证明重用和重试循环模式
- 分析加密相关元数据中缺失的安全保障
- 分析类随机性工件中的重复和泄露信号
- 关联各分析器的发现结果
- 将结果渲染输出到控制台、JSON、Markdown 和 HTML
- 通过运行时插件扩展流水线
## 架构概览
```
flowchart LR
A[Artifact / Transcript / Script] --> B[Analyzer]
B --> C[Rule Engine]
C --> D[Correlation]
D --> E[Reporting]
C --> F[Plugins]
F --> D
```
仓库布局:
```
src/protoaudit/
core/ shared models, engine, config, I/O, rules, correlation
analyzers/ protocol, crypto, randomness analyzers
toolkit/ transcript parsing, replay, fuzzing, extraction helpers
rules/ normalized Python rules
plugins/ optional extension points with runtime loading
reporting/ console, JSON, Markdown, HTML renderers
```
## 最快的尝试方式
```
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
pytest
protoaudit analyze protocol examples/protocol/retry_loop_case_study/session.txt --profile strict
```
## 首先尝试这个
如果您想快速了解 ProtoAudit 能检测什么,请从包含的协议案例研究开始。
示例:
```
protoaudit analyze protocol examples/protocol/retry_loop_case_study/session.txt --format markdown
```
此示例演示了一种重试循环握手模式,其中挑战和响应材料在协议阶段间重复出现。
ProtoAudit 将检测如下模式:
- 重复的类挑战值
- 重复的证明或响应工件
- 不完整的握手流程
- 重试循环协议状态
探索其他场景:
```
protoaudit analyze protocol examples/protocol/cached_handshake_material_case_study/session.txt
```
或
```
protoaudit analyze protocol examples/protocol/structured_pairing_retry_case_study/pairing_script.json
```
这些案例研究模拟了 ProtoAudit 设计用于在协议研究和分析期间揭示的真实协议故障模式。
## 示例输出
```
Analyzer: protocol
Messages observed: 9
Handshake detected: yes
Handshake complete: no
Repeated challenge-like values: yes
Repeated response values: yes
Findings:
- Challenge-like field observed
- Repeated protocol responses detected
- Challenge-like values repeat across messages
- Handshake-like flow appears incomplete
- Repeated protocol phase loop observed
```
## 命令
```
protoaudit analyze protocol
protoaudit analyze crypto
protoaudit analyze randomness
protoaudit correlate [more_result.json ...]
protoaudit transcript parse
protoaudit replay build
protoaudit fuzz generate
protoaudit extract blocks
protoaudit extract json
protoaudit plugins list
```
## 协议案例研究
ProtoAudit 在 `examples/protocol/` 下附带了三个真实的协议微型案例研究。
| 案例研究 | 输入类型 | 演示内容 |
|---|---|---|
| `retry_loop_case_study/` | 带时间戳的记录 | 不完整握手、重复挑战/证明、重试循环 |
| `cached_handshake_material_case_study/` | 带时间戳的记录 | 看似成功但重用会话材料的握手 |
| `structured_pairing_retry_case_study/` | 结构化 JSON 脚本 | 在测试工具类输入上重复出现的配对工件 |
推荐起点:
```
protoaudit analyze protocol examples/protocol/retry_loop_case_study/session.txt --format markdown
```
## 配置与插件
使用更严格的分析配置文件:
```
protoaudit --config examples/config.strict.json analyze protocol examples/transcripts/sample_transcript.txt
```
列出可用的运行时插件:
```
protoaudit plugins list
```
运行启用插件增强的分析:
```
protoaudit --config examples/config.plugins.json analyze protocol examples/protocol/retry_loop_case_study/session.txt --format json
```
## 推荐优先阅读
- `docs/QUICKSTART.md`
- `docs/ARCHITECTURE.md`
- `docs/ANALYZERS.md`
- `docs/CONFIGURATION.md`
- `docs/CASE_STUDIES.md`
- `docs/PLUGINS.md`
## 当前项目状态
ProtoAudit 已可作为研究级的协议分析项目使用。该仓库目前包括:
- 共享域模型和执行流水线
- 协议/加密/随机性分析器
- 协议阶段推断、状态跟踪和握手检测
- 具有配置感知阈值的规范化 Python 规则
- 深度工件 I/O 和配置加载
- 记录、重放、模糊测试和提取辅助工具
- 运行时插件加载和内置增强插件
- 真实的协议案例研究和回归测试
## 许可证
MIT
标签:CTF工具, Homebrew安装, Python, 云计算, 会话安全, 元数据分析, 协议分析, 协议行为分析, 域名收集, 多模态安全, 安全工具包, 密码学, 手动系统调用, 挑战重用, 握手不一致, 数据包解析, 无后门, 权限提升, 漏洞搜索, 确定性随机性, 网络安全, 聊天机器人, 规则引擎, 足迹分析, 逆向工具, 配置审计, 重放检测, 防御加固, 随机性检测, 隐私保护