2022 · 会议论文
越仔细观察,学到的越多:用于协议状态机学习的灰盒方法
The Closer You Look, The More You Learn: A Grey-box Approach to Protocol State Machine Learning
StateInspector 将主动消息查询与运行时内存快照结合起来,学习协议的 Mealy 状态机,无需目标实现的源代码。它识别可能决定状态的堆内存位置,并通过污点分析与混合执行合并状态;作者在 TLS 1.2 和 WPA/2 实现上进行了评估。
研究范围与局限
假设协议可抽象为有限 Mealy 状态机、已知输入字母表能到达相关状态,且决定状态的内存位于堆上并可由初始化查询触及。状态合并依赖所配置的搜索深度与符号执行前瞻上限。缺失的输入或存储在其他位置的状态可能导致行为未被建模;测试驱动程序构造的错误消息、响应抽象方式和超时也可能产生误导性转移。学习出的模型与有界检查不能证明实现完全等价,也不恢复未知消息格式或重建应用源代码。
与本合集的关联
提供从可执行协议实现中重建通信状态行为、检查其与预期流程偏差的具体方法,可与消息格式推断互补。
发表与复核详情
- 发表载体
- ACM CCS 2022
- 发表状态
- 会议论文
- 出版/提交日期
- 2022 年 11 月 7 日
- 日期依据
- ACM 提交的 Crossref 记录将在线及印刷出版日期均列为 2022 年 11 月 7 日;该日期并非仅根据会议日程推定。
- DOI
- 10.1145/3548606.3559365
核查的是作者托管的 19 页版本;ACM 提交的元数据将论文集页码列为 2265–2278。公开代码记录了较早的 Linux 环境,包括 Python 2、OpenJDK 14、Maven、针对各协议的输入与重置测试驱动程序,以及目标相关的 ptrace 钩子。污点分析路径需要 Triton 和 IDA Pro/Wine;省略该路径可能因计数器而无法终止。所检查仓库中未发现项目整体许可证;各组件许可与专有工具使用权需分别处理。
来源复核于
已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
综述中的讨论
一手来源
- https://doi.org/10.1145/3548606.3559365
- https://api.crossref.org/works/10.1145/3548606.3559365
- https://tomchothia.gitlab.io/Papers/greyboxstatelearning_ccs2022.pdf
- README.md GitHub · ChrisMcMStone/state-inspector · 修订 103494e
- .gitmodules GitHub · ChrisMcMStone/state-inspector · 修订 103494e
- ptrace-statemem/LICENSE GitHub · ChrisMcMStone/state-inspector · 修订 103494e
- blackbox/statelearner/LICENSE GitHub · ChrisMcMStone/state-inspector · 修订 103494e