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,因此不声称两者是完全相同的 PDF 版本。公开代码记录了较早的 Linux 环境,包括 Python 2、OpenJDK 14、Maven、针对各协议的输入与重置测试驱动程序,以及目标相关的 ptrace 钩子。污点分析路径需要 Triton 和 IDA Pro/Wine;省略该路径可能因计数器而无法终止。所检查仓库中未发现项目整体许可证;各组件许可与专有工具使用权需分别处理。本次仅获取公开文本及论文文档,未执行上游代码,也未下载或解密加密归档。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

一手来源

  1. https://doi.org/10.1145/3548606.3559365
  2. https://api.crossref.org/works/10.1145/3548606.3559365
  3. https://tomchothia.gitlab.io/Papers/greyboxstatelearning_ccs2022.pdf
  4. https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/README.md
  5. https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/.gitmodules
  6. https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/ptrace-statemem/LICENSE
  7. https://github.com/ChrisMcMStone/state-inspector/blob/103494e6d30fd7741e74393d844212acb4daf683/blackbox/statelearner/LICENSE