AI制导PDF文件生成技术实践_第1页
AI制导PDF文件生成技术实践_第2页
AI制导PDF文件生成技术实践_第3页
AI制导PDF文件生成技术实践_第4页
AI制导PDF文件生成技术实践_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AI制导PDF文件生成技术实践技术创新,变革未来目录研究背景 方案设计 实验分析 结论与展望研究背景高结构化样本与PDF文件AI&样本生成 LEARN&FUZZ高结构化样本与PDF文件语法检查语义检查语法规则语义规则PDF、XML、XSL、JavaScript、HTML等测试输入解析执行高结构化样本结构复杂,通过规定的语法、语义检查才能被各类解析工具执行Foxit Reader、Adobe Reader、Chrome、Edge、Firefox等不通过通过通过不通过结束结束完成高结构化样本与PDF文件trailer/Info 19 0 R /Root 21 0 R /Size 257/IDsta

2、rtxref 320283%EOF8 0 objendobjHeaderBodyCross- reference tableTrailer%PDF-1.3PDF文件所遵从的 版本号xref0 2570000000000 65535 f0000000017 00000 n0000000212 00000 n0000000231 00000 n0000000251 00000 n0000000825 00000 n0000000876 00000 n间接对象地址索引表指明根对象(Catalog),保存了加密等安全信息, 并声明交叉引用表的地址Adobe Systems Incorporated.

3、PDF Reference, 6th edition, Nov.2006./content/dam/Adobe/en/devnet/acrobat/pdfs/pdfreference 1-7.pdf1310页由一系列的PDF间接对象组成,如字体、页面、图像等,构成了PDF文件的具体内容(按大类可分为带stream不带stream的obj)209 0 objStream endstream endobjAI&样本生成AI制导基于变异的模糊测试AFL、VUzzer等基于生成的模糊测试 Peach、Spike、 Jsfunfuzz等样本合法性弱人工参与度高自动化程度高合法性强具有多 样性AI&样本生

4、成arXiv 18S&P 17arXiv 18arXiv 17ASE 17Q-LearningarXiv 17GANPCSGLSTMLSTM/BLSTM/seq2seqCNNLEARN&FUZZ数据集来源:Windows fuzzing team初始测试集:63,000 non-binary PDF objects out of534 PDF files (seed minimization)实验数据集:1,000 PDF objects模型:LSTM with 2 hidden layers实验环境:4-core 64-bit Windows 10 VMs with 20GB of RAM训

5、练时长:50 epoch 10 hours生成PDF数量:1,000 per 10 epoch测试结果(Edge):Pass rate(70%-97%)、Instruction coverage、Bugs(1)方案设计研究方案数据集构建 模型训练 生成研究方案Pdf datasetBuild modelModelPdf objsExtract obj/streamNew objs Attach topdf hostNew pdf filesPdf streamsPrefix stringLSTM, BLSTM,Attention, etc.Effectiveness measureCovera

6、geBugsStructure, parameters1. Dataset construction2. Training3. Generation4. TestingTestsuit Seed minimizationFuzzingInitial samplesTarget APPFoxit Reader, Adobe Reader, Mupdf, Chrome, Edge et al.Cut the textLoad modelpredictVectorizationTrainingCrawlerVectorizationFuzzingSavedictdictionary数据集构建(DAT

7、ASET CONSTRUCTION)初始PDF样本集:(Testsuite+Fuzzing)S PDF Database/Mikails PDF database QualityLogics PDF 1.7 Application Test SuiteAdobe PDF test suitesGhent Working Group Test Suites PDF cabinet of horrorsPdfium_tests 初始样本集最小集代码覆盖率20000+25137.996%obj 总 数 :71,779 stream总数:23,52132.77%是带stream的obj验证 集测试集训

8、练集PdfdatasetPdf objs Extract obj/streamPdfstreams1. Dataset constructionSeedminimizationInitial samplesTestsuitFuzzingCrawlerSave dictdictionary13,76555,058 2,956obj分配语料字典0: n, 1: , 2: !, 3: , 4: #, 5: $, 6: %, 7: &, 8: , 9: (,10: ), 11: *, 12: +, 13: , 14: -, 15: ., 16: /, 17: 0, 18: 1,19: 2, 20: 3

9、, 21: 4, 22: 5, 23: 6, 24: 7, 25: 8, 26: 9, 27: :,28: ;, 29: , 32: ?, 33: , 34: A, 35: B, 36: C,37: D, 38: E, 39: F, 40: G, 41: H, 42: I, 43: J, 44: K, 45: L,46: M, 47: N, 48: O, 49: P, 50: Q, 51: R, 52: S, 53: T, 54: U,55: V, 56: W, 57: X, 58: Y, 59: Z, 60: , 61: , 62: , 63: ,64: _, 65: , 66: a, 67

10、: b, 68: c, 69: d, 70: e, 71: f, 72: g,73: h, 74: i, 75: j, 76: k, 77: l, 78: m, 79: n, 80: o, 81: p,82: q, 83: r, 84: s, 85: t, 86: u, 87: v, 88: w, 89: x, 90: y,91: z, 92: , 93: |, 94: , 95: OBJ字典corpus length:11,913,817 total chars: 96模型训练(TRAINING)对OBJ进行文本切分,并转换成向量,然后训练模型,对每一轮的训练结果做离线存储Build mod

11、elModelPdf objsLSTM, BLSTM,Attention, etc.Structure, parameters2. TrainingCut the textVectorizationtraining文本切分(CUT THE TEXT)总字符数:11,913,817参数设置:maxlen = 50,step = 3切分后总序列数:3,803,562(Training:3,042,849, validation:760,713)obj/Type /Page/Parent 33 0 R/Resources 70 0 R/MediaBox 0 0 1247 1984 /Group /C

12、ontents 2 0 Rendobjsentencesnext_charsobjnn /Type /Pagen /Parent 33 0 Rn /Resources n physical GPU (device: 0, name: TITAN Xp COLLECTORS EDITION, pci bus id: 0000:02:00.0, compute capability: 6.1)Epoch 1/6063232/3042849 - ETA: 1:10:50 - loss: 3.6259 - acc: 0.2304生成(GENERATION)new objs Attach to pdf

13、hostNew pdf filesPrefix string选取PREFIX STRING,向量化,加载模型,预测生成OBJ,并由OBJ生成PDFStructure, parametersModel3. GenerationLoad modelpredictVectorization生成(GENERATION)OBJ生成PDF生成样本生成阶段的两个重要的进程池并行加载多个模型进行推断并行生成多批次的obj和PDF样本缩短实验周期,增强模型的可扩展性Pdf生成主 进程Modelnew objsnew objsnew objsnew pdfsnew pdfsStructure, parameter

14、sModelModel进程池 new pdfsobj生成主 进程子进程1子进程2子进程n 进程池子进程1子进程2子进程n OBJ生成若生成完整OBJ,则加入列表中;若生成长度超过阈值,则回退、丢弃已生成的字符,重新从测试集中选择PREFIX生成max_gen_len = 2000前缀字符 串Prefix选取obj前 缀字符串转换成向 量预测Model加载模型加入到obj 字符串中窗口向前移 动一个字符采样否加入到obj列表中是是否生成完整obj是否超过限定 长度是否删除已生成的obj字符串索引字典下一个 字符new objects测试集OBJ生成0.20.50.81.01.2概率分布差异性变小

15、,生成文 本随机性变强,趋向于多样性、 随机的数据1.51.8概率分布差异性变大,生成 文本有序性变强,更接近真 实值的数据temperature采样函数PDF生成hostnew obj1new obj2new objnHeaderBodyCross-reference tableTrailerobjCross-reference tableTrailerobjCross-reference tableCross-reference tableTrailerTrailer objnew objHost pdf附加新的obj到pdf文件末尾添加新的交 叉引用表是否达到修改数量定位host文件tr

16、ailer偏移添加新的trailer是否以增量更新(Incremental update)的方式把新生成的obj附加到 host文件的末尾,实现对host文件中obj的更新和替换PDF生成宿主文件(HOST)来源:pdfium测试集大小:317 KBobj总数:257obj替换比例:1/10实验分析模型训练及样本生成PDF样本测试模型训练及样本生成实验环境模型训练结果分析 OBJ样本生成结果分析 PDF样本生成结果分析实验环境硬件环境开发环境前端后端Python 3.5Ubuntu-16.04.2-desktop-amd64TITAN Xp COLLECTORS EDITIONX4E5-268

17、3 v4 X2256G模型训练结果分析训练轮次:60zitZitsec:/zou/Longma/pdf_corpus/saved_models/2BLSTM_epochs60$ ll total 358568drwxrwxr-x 2 zit zit4096 7 月 8 05:11 ./drwxrwxrwx 34 zit zit4096 8 月 15 14:49 ./-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 611

18、6568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 z

19、it zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月-rw-rw-r- 1 zit zit 6116568 7 月5 12:16 2BLSTM_epoch01.h55 13:20 2BLSTM_epoch02.h55 14:24 2BLSTM_

20、epoch03.h55 15:29 2BLSTM_epoch04.h55 16:33 2BLSTM_epoch05.h55 17:37 2BLSTM_epoch06.h55 18:41 2BLSTM_epoch07.h55 19:46 2BLSTM_epoch08.h55 20:50 2BLSTM_epoch09.h55 21:54 2BLSTM_epoch10.h522:58 2BLSTM_epoch11.h500:02 2BLSTM_epoch12.h56 01:06 2BLSTM_epoch13.h56 02:10 2BLSTM_epoch14.h56 03:15 2BLSTM_epoc

21、h15.h56 04:19 2BLSTM_epoch16.h56 05:23 2BLSTM_epoch17.h56 06:27 2BLSTM_epoch18.h56 07:31 2BLSTM_epoch19.h56 08:36 2BLSTM_epoch20.h56 09:40 2BLSTM_epoch21.h5-模型参数训练时间模型文件大小(M)2LSTM259,1681d 11h0m 35s3.003LSTM390,7522d 1h 38m 49s4.512BLSTM505,9522d 16h54m 57s5.83Attention1,800,7863d 2h 49m 5s21.30ACC曲

22、线LOSS曲线OBJ生成结果分析单进程生成10,000个obj 共计210,000obj时长:7小时单进程总时长:7*21 = 147小时单个文件大小:1.5MBzitZitsec:/zou/Longma/pdf_corpus/generated_objs/minset3/final_test_1wobj$ lltotal 179956drwxrwxr-x 4 zit zit 20480 8 月 17 11:31 ./drwxrwxr-x 15 zit zit4096 8 月 15 17:23 ./-rw-rw-r- 1 zit zit 731780 8 月 16 01:42 2BLSTM_e

23、poch10.h5_diversity0.2.txt-rw-rw-r- 1 zit zit 1122762 8 月 14 17:42 2BLSTM_epoch10.h5_diversity0.5.txt-rw-rw-r- 1 zit zit 1508494 8 月 16 10:03 2BLSTM_epoch10.h5_diversity0.8.txt-rw-rw-r- 1 zit zit 1784072 8 月 15 04:49 2BLSTM_epoch10.h5_diversity1.0.txt-rw-rw-r- 1 zit zit 2209887 8 月 16 21:15 2BLSTM_e

24、poch10.h5_diversity1.2.txt-rw-rw-r- 1 zit zit 2462241 8 月 15 13:19 2BLSTM_epoch10.h5_diversity1.5.txt-rw-rw-r- 1 zit zit 2828212 8 月 17 09:05 2BLSTM_epoch10.h5_diversity1.8.txt-rw-rw-r- 1 zit zit 915555 8 月 16 02:21 2BLSTM_epoch20.h5_diversity0.2.txt-rw-rw-r- 1 zit zit 982013 8 月 14 17:44 2BLSTM_epo

25、ch20.h5_diversity0.5.txt-rw-rw-r- 1 zit zit 1252198 8 月 16 10:18 2BLSTM_epoch20.h5_diversity0.8.txt-rw-rw-r- 1 zit zit 1229084 8 月 14 23:16 2BLSTM_epoch20.h5_diversity1.0.txt-rw-rw-r- 1 zit zit 1318517 8 月 16 17:46 2BLSTM_epoch20.h5_diversity1.2.txt-rw-rw-r- 1 zit zit 1802129 8 月 15 06:04 2BLSTM_epo

26、ch20.h5_diversity1.5.txt-rw-rw-r- 1 zit zit 2138562 8 月 17 04:30 2BLSTM_epoch20.h5_diversity1.8.txt-rw-rw-r- 1 zit zit 693064 8 月 15 23:23 2BLSTM_epoch30.h5_diversity0.2.txt-rw-rw-r- 1 zit zit 1109692 8 月 14 16:43 2BLSTM_epoch30.h5_diversity0.5.txt-rw-rw-r- 1 zit zit 1441973 8 月 16 08:38 2BLSTM_epoc

27、h30.h5_diversity0.8.txt-rw-rw-r- 1 zit zit 1484294 8 月 15 02:13 2BLSTM_epoch30.h5_diversity1.0.txt-rw-rw-r- 1 zit zit 1477235 8 月 16 16:46 2BLSTM_epoch30.h5_diversity1.2.txt-rw-rw-r- 1 zit zit 1551167 8 月 15 08:48 2BLSTM_epoch30.h5_diversity1.5.txtPDF生成结果分析单进程生成10,000个PDF 时长:10min单个大小:380KB1w个文件大小:3

28、.7GB21个模型,共计21w 样本,共77.7G-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit339179 8

29、月 13 09:43 9476.pdf338730 8 月 13 09:43 9477.pdf338794 8 月 13 09:43 9478.pdf335113 8 月 13 09:43 9479.pdf339384 8 月 13 09:43 9480.pdf339398 8 月 13 09:43 9481.pdf335495 8 月 13 09:43 9482.pdf343490 8 月 13 09:43 9483.pdf336621 8 月 13 09:43 9484.pdf358054 8 月 13 09:43 9485.pdf345598 8 月 13 09:43 9486.pdf3

30、42540 8 月 13 09:43 9487.pdf342989 8 月 13 09:43 9488.pdf345923 8 月 13 09:43 9489.pdf-rw-rw-r- 1 zit zit 1221730 8 月 13 09:43 9490.pdf-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit

31、zit-rw-rw-r- 1 zit zit-rw-rw-r- 1 zit zit355457 8 月 13 09:43 9491.pdf413066 8 月 13 09:43 9492.pdf353369 8 月 13 09:43 9493.pdf337955 8 月 13 09:43 9494.pdf348164 8 月 13 09:43 9495.pdf340569 8 月 13 09:43 9496.pdf340363 8 月 13 09:43 9497.pdf340621 8 月 13 09:43 9498.pdf343950 8 月 13 09:43 9499.pdf336692

32、8 月 13 09:43 9500.pdf345394 8 月 13 09:43 9501.pdfPDF生成样本示例HOST生成样本1生成样本2PDF生成样本示例HOST生成样本3生成样本4PDF样本测试代码覆盖率测试漏洞挖掘测试测试(TESTING)代码覆盖率测试漏洞挖掘测试New pdf filesEffectiveness measureCoverageBugs4. TestingTargetAPPFoxit Reader, Adobe Reader, Mupdf, Chrome, Edge et al.Fuzzing代码覆盖率测试代码覆盖率是评估样本质量的较好的量化指标!代码覆盖率 =

33、 SUM(程序执行代码) /程序总代码微软还采用了通过率作为评估参数之一,通过 率仅能反映所生成样本是否符合既定的格式规 约,而代码覆盖率则能直接反映样本是否能探索 到更多的路径或代码,对于漏洞挖掘具有较好的 指示作用。j00ru,Project Zero,DragonSectorWHY MUPDF?静态链接,所有库all in one file功能全,支持各种形式stream轻量级,易插桩几乎无bug,测试数据更准确Open source ,易分析采用MuPDF作 为测试代码覆 盖率的载体最小集后 的样本数代码覆盖率25137.996%代码覆盖率测试PINBITMAP文件分析BITMAP文件

34、MuPDF样样本本样本代码覆盖率PIN作为商业的轻量级插桩工具,具有较好的性能和稳定性表现。优化:基本块级插桩CPUKill1bit 表示1 Byte, Zlib压缩插桩后:打开1个PDF文件需要5秒左右。*NOTES*:对于有些弹框需模拟点击,以使 样本能充分测试。代码覆盖率测试PINAFL 基于PIN实现了AFL的WINDOWS版本运行了1天3小时20,000多次变异发现了327条新的路径,即产生了327个新的测试用例。代码覆盖率为:38.077%覆盖率计算变异模块样本文件目标程序插桩监控模块 (PIN)是否产生新 路径样本队列模块是取top变异放弃当前 样本否未修改AFL的变异算法和调度

35、算法,因此 能较真实体现AFL的水平结果分析 2LSTM3LSTM2BLSTMAttention0.238.10338.1080.538.10738.1331.038.09938.12538.14038.1221.538.08838.09138.09938.120采样值对代码覆盖率的影响 轮次:60测试时长:13.89*16=222.24小时代码覆盖率最高提升0.3%,约20,000+指令 38.3538.338.2538.238.1538.138.053837.950.20.511.5采样值与代码覆盖率2LSTM3LSTM2BLSTMAttention数据集基础覆盖率:37.996%PinA

36、FL覆盖率: 38.077%,+0.081%Learn&Fuzz覆盖率:38.113%,+0.117%结果分析训练轮次对代码覆盖率的影响模型:2BLSTM 采样值:0.5测试时长:13.89*5= 69.45小时轮次代码覆盖率1038.0642038.1083038.1234038.130506038.13338.1638.1438.1238.138.0838.0638.0438.02102030405060训练轮次与代码覆盖率漏洞挖掘测试采用我们的方案生成的PDF文件, 对Foxit Reader、Power PDF、 Corel PDF 、 Cool PDF 、 Nitro PDF等软件进

37、行了测试。采用集群漏洞分析系统作为测试平 台,分别为每个测试对象分配了20台 虚拟机,测试时间为1天,测试样本 数为:210,000结果分析软件名crash数量去重后漏洞类型powerPDF452028TaintedDataControlsWriteAddress、StackOverflow、T aintedDataControlsBranchSelection 、 ReadAVonContr olFlow、TaintedDataControlsBranchSelection等corelPDF2356078WriteAV、ReadAV、TaintedDataControlsBranchSelection、DivideByZero等coolPDF4688TaintedDataReturnedFromFunction、TaintedDataCon trolsWriteAddress、ReadAVNearNull等Nitropdf2565TaintedDataControlsBranchSelection、TaintedDataPa ssedToFunction等ReaderFoxit921026527TaintedDataControlsCodeFlow、ReadAV、DivideByZe ro、StackOverflow等Foxi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论