Caradoc:PDF解析与验证的实用方法
引用:
Endignoux G, Levillain O, Migeon J Y. Caradoc: A Pragmatic Approach to PDF Parsing and Validation[C]// IEEE Security and Privacy Workshops. IEEE Computer Society, 2016:126-139.
研究内容:
研究PDF文档的结构、语法及由其引起的漏洞和阅读器冲突
背景:
- 介绍了已知的问题和检测方法
1.Polymorphic files(多态文件):不同的PDF阅读器接受有缺陷的或者格式混淆的文件并显示出不同的内容
2.Analysis of JavaScript content(JS内容分析):PJScan、MDScan、FCScan
3.Statistical methods(静态分析方法):machine learning、reverse mimicry - 结构性问题
1.交叉引用表、树和图等的无限循环
2.解析和验证库的差异问题
3.对象序号的捕捉问题等
方法:
针对由于PDF文档结构所引起的问题,将重点放在对文档格式的限制:
1.(为消除多态文件)语法(grammmar)限制和规范化:定义LR1或者LALR1语法,设置去掉注释、限制空格的语法规则,扩展规则和规范化
2.类型检验:用图的广度优先遍历算法来验证对象类型的一致性
3.高级属性的验证
实现流程:
创新点:
1.创建基础结构缺陷的PDF文档进行多阅读器环境测试
2.通过语法和结构定义解决不同阅读器的解析差异问题