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.
研究內(nèi)容:
研究PDF文檔的結(jié)構(gòu)致板、語法及由其引起的漏洞和閱讀器沖突
背景:
- 介紹了已知的問題和檢測方法
1.Polymorphic files(多態(tài)文件):不同的PDF閱讀器接受有缺陷的或者格式混淆的文件并顯示出不同的內(nèi)容
2.Analysis of JavaScript content(JS內(nèi)容分析):PJScan休傍、MDScan、FCScan
3.Statistical methods(靜態(tài)分析方法):machine learning芹啥、reverse mimicry - 結(jié)構(gòu)性問題
1.交叉引用表酪耕、樹和圖等的無限循環(huán)
2.解析和驗證庫的差異問題
3.對象序號的捕捉問題等
方法:
針對由于PDF文檔結(jié)構(gòu)所引起的問題命迈,將重點放在對文檔格式的限制:
1.(為消除多態(tài)文件)語法(grammmar)限制和規(guī)范化:定義LR1或者LALR1語法呼寸,設(shè)置去掉注釋、限制空格的語法規(guī)則嗤无,擴展規(guī)則和規(guī)范化
2.類型檢驗:用圖的廣度優(yōu)先遍歷算法來驗證對象類型的一致性
3.高級屬性的驗證
實現(xiàn)流程:
創(chuàng)新點:
1.創(chuàng)建基礎(chǔ)結(jié)構(gòu)缺陷的PDF文檔進行多閱讀器環(huán)境測試
2.通過語法和結(jié)構(gòu)定義解決不同閱讀器的解析差異問題