2023 · 会议论文

从网络协议实现提取精确格式规范及其安全应用

Lifting Network Protocol Implementation to Precise Format Specification with Security Applications

NetLifter 将可获取源码的 C 协议解析器静态转换为 BNF 风格的报文文法及报文字段之间的一阶逻辑约束。它分析经过标注的 LLVM 位码,结合抽象格式图、局部路径敏感分析、展开与重排序。所得字段边界、约束与名称可用于报文生成及解析器构建。

研究范围与局限

需要源码/LLVM 中间表示及报文缓冲区、长度标注,并非对闭源二进制或仅凭流量进行恢复。论文面向常见的自顶向下 C 解析器,不支持 C++、内联汇编及缺少源码的库。指针和循环分析仍有近似;可识别校验和字段,但部分校验和约束会被省略,实现中忽略的字段也可能遗漏。精确率/召回率在选定的十种协议上进行人工核对。报告的模糊测试采用每次三小时、重复二十次的实验,并绕过校验和检查。方法推断的是格式,而非协议状态机或实现等价性的证明。

与本合集的关联

补充包含跨字段约束的源码到格式推断方法,与基于流量及借助二进制的协议重建研究互补。

发表与复核详情

发表载体
ACM CCS 2023
发表状态
会议论文
出版/提交日期
2023 年 11 月 15 日
日期依据
ACM 提交的 Crossref 元数据将 published/纸质出版日期记为 2023-11-15,另列在线/发表历史日期为 2023-11-21。本条目采用 published/纸质出版日期,而非 11 月 26–30 日的会议日期。
arXiv 首次提交
2023 年 5 月 19 日
arXiv
2305.11781
已复核的 arXiv 版本
v1
DOI
10.1145/3576915.3616614

最终作者版 PDF 与 Crossref 确认五位作者顺序、CCS 2023 DOI 和页码。19 页的 arXiv v1 保留旧的 CCS 2022 投稿模板及占位 DOI;出版身份以最终 15 页论文为准。仓库将原型称为 Popeye,并提示仍有粗糙之处。所审阅的 2025-04-21 快照在源码头部声明 AGPL-3.0-or-later。CMake 要求 3.10+、LLVM 12.x 与 Z3>=4.8.12;README 推荐 LLVM 12.0.1 及作者修改的 Z3 4.8.12-popeye 分支。不支持向量化中间表示:README 说明使用 -fno-vectorize 和 -fno-slp-vectorize,并建议保留调试信息、移除优化选项,以帮助字段命名。这个较晚的产物快照不代表独立复现了 2023 年环境;依赖与目标代码保留各自条款。本次仅审阅源码,未运行上游代码、下载基准输入或复现实验。

来源复核于

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

一手来源

  1. https://dl.acm.org/doi/10.1145/3576915.3616614
  2. https://api.crossref.org/works/10.1145/3576915.3616614
  3. https://qingkaishi.github.io/public_pdfs/CCS23.pdf
  4. https://arxiv.org/abs/2305.11781
  5. https://arxiv.org/pdf/2305.11781v1
  6. README.md GitHub · qingkaishi/netlifter · 修订 362fe1e
  7. LICENSE.txt GitHub · qingkaishi/netlifter · 修订 362fe1e
  8. CMakeLists.txt GitHub · qingkaishi/netlifter · 修订 362fe1e
  9. tools/popeye/popeye.cpp GitHub · qingkaishi/netlifter · 修订 362fe1e
  10. tools/popeye/LiftingPass.cpp GitHub · qingkaishi/netlifter · 修订 362fe1e
  11. benchmarks/popeye/readme.txt GitHub · qingkaishi/netlifter · 修订 362fe1e
  12. benchmarks/popeye/regression.sh GitHub · qingkaishi/netlifter · 修订 362fe1e
  13. README-CMake.md GitHub · qingkaishi/z3 · 修订 b42b2d6
  14. LICENSE.txt GitHub · qingkaishi/z3 · 修订 b42b2d6