2009 · 会议论文

Prospex:协议规范提取

Prospex: Protocol Specification Extraction

Prospex 从 Linux 服务端处理客户端会话时的执行轨迹推断报文格式与协议状态机。它利用动态污点分析把每个会话切分为报文并恢复其格式;再依据输入格式、执行过程及对服务端影响(如报文触发的系统调用、输出与文件路径)的相似度将报文聚类为不同类型。观察到的类型序列构成增广前缀树接受器,先由前置条件与结束状态启发式标注,再用 Exbar 求出一致的最小自动机。所得规范被转换供 Peach 模糊测试器使用,以到达协议的后续状态。评测覆盖 Agobot 命令与控制协议、Sendmail 上的 SMTP、Samba 上的 SMB 以及 Asterisk 上的 SIP。

研究范围与局限

Prospex 只跟踪服务端一侧,其污点工具仅在 Linux 上运行,因此只分析了 Linux 服务端二进制。它无法处理加密流量:在 31,903 个 Postfix 会话中,推断的 SMTP 规范无法解析的 6.5% 均为 TLS 会话。训练集规模较小(例如 16 个 SMTP 会话、31 个 SMB 会话),推断出的状态机只覆盖训练中出现过的行为;两个 SMB 状态是训练数据多样性不足造成的伪状态,SMB 相对参考自动机的召回率为 0.58。参考状态机由作者手工构建,可靠性检验对每种协议进行 50,000 次随机游走;sk-strings 与 beams 基线是状态机学习算法,并非完整的协议逆向系统。模糊测试案例发现的是旧版 Samba 与 Asterisk 中已知的问题,而非所测最新 Samba 或 Windows XP SMB 实现中的新漏洞。

与本合集的关联

补充一种基于执行、可从观察到的会话中同时提取报文格式与协议状态机的方法,与合集中的主动状态机学习及仅推断格式的协议研究互补。

发表与复核详情

发表载体
IEEE S&P 2009
发表状态
会议论文
出版/提交日期
2009 年 5 月
日期依据
IEEE 提交的 Crossref 元数据及 IEEE Xplore 页面存档副本均给出 2009 年 5 月,本条目按月精度记录,不以研讨会日期替代具体出版日。
DOI
10.1109/SP.2009.14

Crossref 与 IEEE Xplore 页面存档在四位作者、2009 年第 30 届 IEEE 安全与隐私研讨会论文集、第 110–125 页及 2009 年 5 月等信息上一致;Xplore 未将该论文标为开放获取。PDF 为 Christopher Kruegel 在 UCSB 网站上提供的 16 页副本,标题与作者顺序相同;其文件元数据显示创建于 2008 年 9 月,并带有 2009 年的 IEEE PDF eXpress 认证信息,版本记录以 IEEE Xplore 为准。论文称其为 Peach 增加的状态支持已并入 Peach 2.2 版,但未链接 Prospex 代码、轨迹或参考状态机。本次未运行代码或实验。

来源复核于

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

报告条目过时 建议修正翻译

一手来源

  1. https://ieeexplore.ieee.org/document/5207640
  2. https://web.archive.org/web/20251007214632/https://ieeexplore.ieee.org/document/5207640/
  3. https://api.crossref.org/works/10.1109/SP.2009.14
  4. https://sites.cs.ucsb.edu/~chris/research/doc/oakland09_prospex.pdf