CN112287645B - 一种基于生成式对抗网络的恶意pdf文档生成方法 - Google Patents

一种基于生成式对抗网络的恶意pdf文档生成方法 Download PDF

Info

Publication number
CN112287645B
CN112287645B CN202011241218.8A CN202011241218A CN112287645B CN 112287645 B CN112287645 B CN 112287645B CN 202011241218 A CN202011241218 A CN 202011241218A CN 112287645 B CN112287645 B CN 112287645B
Authority
CN
China
Prior art keywords
pdf
file
detector
generator
malicious
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011241218.8A
Other languages
English (en)
Other versions
CN112287645A (zh
Inventor
李元章
王亚潇
薛源
庞琳
马煜杰
王鑫鑫
谭毓安
张全新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202011241218.8A priority Critical patent/CN112287645B/zh
Publication of CN112287645A publication Critical patent/CN112287645A/zh
Application granted granted Critical
Publication of CN112287645B publication Critical patent/CN112287645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于生成式对抗网络的恶意PDF文档生成方法,属于数据存储安全技术领域。本方法,针对PDF恶意代码检测日益困难的技术问题,利用生成式对抗网络使用恶意PDF文件进行训练,能得到一个恶意PDF文件生成器,本方法可以在短时间内大量生成可逃避检测器检测的恶意PDF文件,节省了时间成本,加快对恶意PDF文档对抗样本的研究,从而促进PDF检测器的发展。

Description

一种基于生成式对抗网络的恶意PDF文档生成方法
技术领域
本发明涉及一种基于生成式对抗网络(GAN)的恶意PDF文档生成方法,属于数据存储安全技术领域。
背景技术
PDF是最常使用的呈现数字文档的格式之一。由于能够支持第三方技术(如JavaScript和ActionScript),PDF也能用于渲染图像、编辑表格、显示动画等。目前,PC和移动平台的所有主要的操作系统均支持PDF,如Microsoft Windows、Linux、Mac OS、Android、Windows Phone以及iOS等。
PDF文件由PDF文件的基本元素,即PDF对象组成,文件体内的每一个元素都被视为一个对象。PDF对象(包括直接的和间接的)共包括以下7种类型:
1.boolean,布尔:变量可以是True或者False。
2.numeric,数值:实数或整数值。
3.string,字符串:在括号“()”之间的字符序列,或在尖括号“<>”之间的十六进制字符序列。
4.name,名称:以正斜杠“/”开头的文字字符序列。
5.array,数组:在方括号“[]”之间的对象序列。
6.dictionary,字典:由键值对序列组成的对象,由双尖括号“<<>>”括起来。
7.stream,流:由字典和一个数据序列组成的特殊对象,通常是压缩的文本或图像,由关键字“stream”引入。
如图1所示,PDF文件结构包含以下4个部分:
1.Header,文件头:该部分是一行包含PDF文件版本信息的文本,由标识符“%”引入。
2.Body,文件体:文件体定义了文件执行的操作的对象序列。这类对象可以包含压缩或未压缩的嵌入数据(例如文本、图像、脚本代码)。每一个对象拥有一个唯一的引用号,通常由序列“number 0obj”引入,其中“number”是正确的对象编号。PDF对象也可以被其他对象通过使用序列“number 0R”引用,其中“number”标识被引用的目标对象。每一个对象以“endobj”标识符结尾。“keywords”(也被称为“name objects”)用来描述每个对象的功能,通常由标识符“/”引入。
3.Cross-Reference(X-Ref)Table,交叉引用表:指示每个对象在文件中位置的偏移量列表。这样的列表给阅读器提供从哪里开始解析每个对象的精确指示。交叉引用表由标识符“xref”引入,后面紧跟着一个数字序列,其中最后一个数字指示文件中对象的总数量。表中的每一行对应一个特定的对象,但是只有以n结尾的行才与文件中具体存储的对象有关。值得注意的是阅读器仅仅解析被交叉引用表引用的对象。因此,找到存储在文件中的,但是在表中缺乏引用的对象是有可能的。
4.Trailer,文件尾:一个特殊的用于描述文件中一些基本元素,例如对象图的第一个对象(即阅读器开始解析文件信息的地方)的对象。此外,它包含对文件元数据的引用,这些元数据通常存储在一个单个的对象中。该trailer对象通常由关键字“trailer”引入。
PDF文档以其高效性、稳定性以及交互性的特点,在学习或工作中被广泛使用。
近年来,随着非可执行文件攻击技术的发展,PDF文档的安全性受到了极大威胁。根据CVE漏洞的统计数据显示,针对PDF的漏洞呈现逐年增加趋势,众多攻击者致力于利用PDF阅读器漏洞来触发可执行有效载荷的下载或直接执行。一方面,PDF文件格式是一种非常灵活的感染媒介,它可以被嵌入各种不同类型的攻击,例如JavaScript代码、ActionScript代码、恶意可执行文件以及恶意PDF文件等。另一方面,PDF文件格式的复杂性允许攻击者采用各种解决方案来隐藏代码注入或其他攻击策略,使得恶意代码的检测更加困难。此外,攻击者可以利用PDF阅读器的某些特定漏洞,通过在PDF文档中触发它们进行攻击。
尽管第三方应用程序漏洞经常被公开揭露,但它们并未得到及时修补。因此,由于缺乏适当的安全更新,使得攻击持续时间更长。
生成式对抗网络(GAN),是Goodfellow等人于2014年提出的一种生成式模型,其结构如图2所示,其由两个模型组成,分别是生成器G和判别器D。其中,生成器G用来学习真实数据的分布,判别器D用来判别数据来自真实数据的概率。判别器D的训练过程是最小化产生错误的概率,生成器G的训练过程是最大化判别器D产生错误的概率,这一过程相当于一个极大极小博弈。在这个过程中,生成器和判别器不断地进行优化,生成器的生成能力和判别器的判别能力不断地得到提高,最终达到一个纳什均衡的状态。在这个均衡状态下,生成器G能够学习到真实数据的分布,而判别器D的结果处处为1/2,即无法判断输入数据来自生成器还是真实数据。
任何可微函数都可以用来作为生成式对抗网络的生成器和判别器,Goodfellow等人提出的原始生成式对抗网络中,生成器G和判别器D均采用多层感知机。为了学习生成器关于数据x的分布pg,定义pz(z)为输入噪声的先验变量。使用G(z)表示由生成器G生成的尽量服从真实数据分布pdata的样本,其中G是由参数为θg的多层感知机表示的可微函数。生成器的输入为噪声z,判别器的输入为生成器生成的数据G(z)和真实数据x,如果判别器的输入来自真实数据,则标注为1;如果来自生成器,则标注为0。使用D(x)表示判别器D判别x来自真实数据分布而非pg的概率,其中D是由参数为θd的多层感知机表示的可微函数。判别器D的目标是最大化分配给真实数据和由生成器G生成的数据正确标签的概率,而生成器G的目标是使判别器D无法判别自己生成的数据G(z)和真实数据x。在整个学习过程中,生成器G和判别器D的性能不断得到提升,直至判别器D无法正确判别数据的来源。这时,可以认为生成器G已经学习到了真实数据的分布。
发明内容
本发明的目的是针对PDF恶意代码检测日益困难的技术问题,为加快对恶意PDF文档对抗样本的研究,促进PDF检测器的发展,提出一种基于生成式对抗网络的恶意PDF文档生成方法。
本方法,通过将生成式对抗网络应用于生成恶意PDF文档,为研究恶意PDF文档如何逃避PDF检测器检测提供技术支持。
本发明是通过以下技术方案实现的:
一种基于生成式对抗网络的恶意PDF文档生成方法,包括以下步骤:
步骤1:使用MIMICUS框架,从恶意PDF文档中提取出与PDF结构相关的特征,并将其转化成特征向量形式。
PDF文件共有三种特征类型,分别是和PDF结构相关的特征、和JavaScript相关的特征以及和原始字节相关的特征,本方法提取的是和恶意PDF结构相关的特征,共135个,如图3所示。
步骤2:构建一个生成器,其为具有一个输入层、两个隐藏层和一个输出层的全连接网络。
其中,每个隐藏层均采用leaky_relu函数,输出层不采用激活函数。生成器的输入是恶意PDF文件的特征向量,输出是和恶意PDF文件特征向量相同维数的向量,当网络训练完成时,该向量便是能够逃逸PDF检测器的逃逸向量。
步骤3:构建一个替代检测器,其为具有一个输入层、两个隐藏层和一个输出层的全连接网络。
其中,每个隐藏层均采用leaky_relu函数,输出层采用sigmoid函数。它的输入是经过黑盒检测器标注的来自生成器的生成样本,以及来自良性PDF数据集的良性PDF样本,其输出是一维的向量,代表样本是恶意样本的概率。
步骤4:利用步骤2构建的生成器和步骤3构建的替代检测器,使用MalGAN算法搭建生成式对抗网络。在生成式对抗网络训练的过程中,利用黑盒检测器的反馈不断调整生成式对抗网络的参数,使得生成的样本的逃逸率更高。
本方法使用的生成式对抗网络框架如图4所示。
步骤5:采用交替训练的方式,训练生成式对抗网络,即先固定生成模型,并训练替代模型;再固定替代模型,并训练生成模型。
训练k次替代模型之后,再训练一次生成模型。其中,k是一个超参数,本方法中设置k为1。
获得经训练后的生成器,即可将恶意特征向量通过生成器,生成可逃避检测的特征向量。
步骤6:使用MIMICUS框架中的文件修改部分,根据生成器生成的向量修改原始文件,得到可逃避检测器检测的恶意PDF文件。
其中,PDF文件修改方法遵循以下设计目标:
文件一旦被修改,则它必须使得任何PDF解析器无法将它和原始文件区分开来,但是却能可靠地影响检测器的特征提取。修改方式为:在交叉引用表和目标PDF文件尾部之间的间隙中注入一组空格分割的字符串。因PDF阅读器的操作和检测器之间存在语义鸿沟,检测器采用正则表达式匹配的方式解析PDF文件,从文件的开头读到结尾。PDF阅读器依照ISO32000-1中的PDF语法解析PDF文件,符合标准的PDF阅读器都是从文件的尾部开始读取,通过检查trailer来找到交叉引用表的位置并且直接跳到该位置以便定位文件体中的对象。只要文件头、文件体和交叉引用表没有被修改或移动,则trailer可以随意移动远离交叉引用表,因此,将产生一个能够在里面注入任意内容的空白空间。注入的内容能够被检测器处理,但PDF阅读器会忽略它。
修改前和修改后的PDF文件布局如图5所示。
有益效果
使用本发明的方法,利用生成式对抗网络使用恶意PDF文件进行训练,能得到一个恶意PDF文件生成器,可以在短时间内大量生成可逃避检测器检测的恶意PDF文件(对抗样本),节省了时间成本。
附图说明
图1为PDF文件结构;
图2为生成式对抗网络结构;
图3为提取到的PDF文件的部分特征;
图4为本发明中使用的经改进的生成式对抗网络结构;
图5为PDF文件修改前后对比;
图6为生成前后PDF检测器的检测率对比。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明方法作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例一共涉及到三种用于训练生成式对抗网络的数据集,分别是Contagio、Surrogate和Attack数据集。其中,Contagio和Surrogate用于PDF检测器和生成式对抗网络的训练,而Attack数据集包含收集到的100个恶意PDF文件,用于产生针对目标检测器的对抗样本。具体如下:
首先,选择攻击目标PDF检测器。
本实施例采用MIMICUS中提供的四种PDF检测器作为攻击目标,其名称分别为F、FC、FT、FTC。
然后,搭建生成式对抗网络模型。
针对四种不同的PDF检测器,本实施例使用Contagio和Surrogate数据集作为训练集一共训练了四个生成式对抗网络模型。其中,生成器和替代检测器均设置为一个输入层、两个隐藏层以及一个输出层。隐藏层的激活函数均采用leaky_relu,生成器的输出层未采用激活函数,替代检测器输出层的激活函数采用sigmoid。生成器的网络规模为135-250-300-135,替代检测器的网络规模为135-250-300-1。生成器和替代检测器的学习率均为0.001,优化器均选择Adam。
之后,设置模型参数并训练。
本实施例中,将生成式对抗网络的最大训练epoch设置为500,在训练过程中保存在训练集上性能最优的模型,即在每一次epoch训练完成之后,将训练集中的恶意PDF样本二进制向量送入生成器,将生成器生成的向量送入黑盒检测器进行检验,将生成向量中能够逃逸检测器的向量所占的比例作为最优模型的评判标准。由于特征之间的依赖关系以及生成向量可能是问题空间中不可行的数据点,生成向量并不能完美地转化为特征向量与该生成向量完全相同的PDF文件,即可能存在最优模型生成向量的逃逸率很高,但转化为文件后逃逸率很低的情况。因此,除了保存最优模型之外,本实施例每经过50个epoch便保存一次模型。故达到最大训练次数时,共保存了11个模型。将这11个模型在Attack数据集上进行测试,比较其性能,即生成的PDF文件的逃逸率,选取逃逸率最高的模型作为本次训练最终的模型。
最后,使用经训练好的生成器生成可逃避检测的恶意PDF文件。
当模型训练完成之后,本实施例将Attack数据集中的100个恶意PDF文件送入模型进行对抗样本的生成,得到目标恶意PDF文件。
图6给出了原始恶意PDF文件和GAN生成的恶意PDF文件在四种检测器上的性能对比。其中,检测率指的是检测器在输入的恶意PDF文件中检测出的恶意PDF所占的比例。

Claims (8)

1.一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,包括以下步骤:
首先,从恶意PDF文档中提取出与PDF结构相关的特征,并将其转化成特征向量形式;
然后,构建一个生成器,其为具有一个输入层、两个隐藏层和一个输出层的全连接网络,其中,生成器的输入是恶意PDF文件的特征向量,输出是和恶意PDF文件特征向量相同维数的向量,当网络训练完成时,和恶意PDF文件特征向量相同维数的向量便是能够逃逸PDF检测器的逃逸向量;
之后,构建一个替代检测器,其为具有一个输入层、两个隐藏层和一个输出层的全连接网络;替代检测器的输入是经过黑盒检测器标注的来自生成器的生成样本,以及来自良性PDF数据集的良性PDF样本,其输出是一维的向量,代表样本是恶意样本的概率;
然后,利用构建的生成器和替代检测器,搭建生成式对抗网络;采用交替训练的方式,训练生成式对抗网络,即先固定生成模型,并训练替代模型,再固定替代模型,并训练生成模型;获得经训练后的生成器,即可将恶意特征向量通过生成器,生成可逃避检测的特征向量;
最后,根据生成器生成的向量修改原始文件,得到可逃避检测器检测的恶意PDF文件;
其中,PDF文件修改方法遵循以下设计目标:
文件一旦被修改,则它必须使得任何PDF解析器无法将它和原始文件区分开来,但是却能可靠地影响检测器的特征提取,修改方式为:在交叉引用表和目标PDF文件尾部之间的间隙中注入一组空格分割的字符串,因PDF阅读器的操作和检测器之间存在语义鸿沟,检测器采用正则表达式匹配的方式解析PDF文件,从文件的开头读到结尾;PDF阅读器依照ISO32000-1中的PDF语法解析PDF文件,符合标准的PDF阅读器都是从文件的尾部开始读取,通过检查trailer来找到交叉引用表的位置并且直接跳到该位置以便定位文件体中的对象;
只要文件头、文件体和交叉引用表没有被修改或移动,则trailer可以随意移动远离交叉引用表,因将产生一个能够在里面注入任意内容的空白空间,注入的内容能够被检测器处理,但PDF阅读器会忽略它。
2.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,使用MIMICUS框架从恶意PDF文档中提取出与PDF结构相关的特征。
3.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,构建的生成器,每个隐藏层均采用leaky_relu函数,输出层不采用激活函数。
4.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,构建的替代检测器,每个隐藏层均采用leaky_relu函数,输出层采用sigmoid函数。
5.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,利用构建的生成器和替代检测器搭建生成式对抗网络时,使用MalGAN算法搭建。
6.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,在生成式对抗网络训练的过程中,利用黑盒检测器的反馈不断调整生成式对抗网络的参数。
7.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,采用交替训练的方式训练生成式对抗网络时,训练k次替代模型之后,再训练一次生成模型,其中,k是一个超参数,k为1。
8.如权利要求1所述的一种基于生成式对抗网络的恶意PDF文档生成方法,其特征在于,使用MIMICUS框架中的文件修改部分,根据生成器生成的向量修改原始文件,得到可逃避检测器检测的恶意PDF文件。
CN202011241218.8A 2020-11-09 2020-11-09 一种基于生成式对抗网络的恶意pdf文档生成方法 Active CN112287645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011241218.8A CN112287645B (zh) 2020-11-09 2020-11-09 一种基于生成式对抗网络的恶意pdf文档生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011241218.8A CN112287645B (zh) 2020-11-09 2020-11-09 一种基于生成式对抗网络的恶意pdf文档生成方法

Publications (2)

Publication Number Publication Date
CN112287645A CN112287645A (zh) 2021-01-29
CN112287645B true CN112287645B (zh) 2022-07-26

Family

ID=74351049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011241218.8A Active CN112287645B (zh) 2020-11-09 2020-11-09 一种基于生成式对抗网络的恶意pdf文档生成方法

Country Status (1)

Country Link
CN (1) CN112287645B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158190B (zh) * 2021-04-30 2022-03-29 河北师范大学 一种基于生成式对抗网络的恶意代码对抗样本自动生成方法
CN114266050B (zh) * 2022-03-03 2022-10-04 西南石油大学 一种跨平台恶意软件对抗样本生成方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8695096B1 (en) * 2011-05-24 2014-04-08 Palo Alto Networks, Inc. Automatic signature generation for malicious PDF files
CN105868630A (zh) * 2016-03-24 2016-08-17 中国科学院信息工程研究所 恶意pdf文档检测方法
CN108491497B (zh) * 2018-03-20 2020-06-02 苏州大学 基于生成式对抗网络技术的医疗文本生成方法
CN109408810A (zh) * 2018-09-28 2019-03-01 东巽科技(北京)有限公司 一种恶意pdf文档检测方法及装置
CN110717412A (zh) * 2019-09-23 2020-01-21 广东工业大学 一种检测恶意pdf文档的方法及系统
CN111046673B (zh) * 2019-12-17 2021-09-03 湖南大学 一种用于防御文本恶意样本的对抗生成网络的训练方法

Also Published As

Publication number Publication date
CN112287645A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
US7636945B2 (en) Detection of polymorphic script language viruses by data driven lexical analysis
CN109829306B (zh) 一种优化特征提取的恶意软件分类方法
CN109784056B (zh) 一种基于深度学习的恶意软件检测方法
EP2382572B1 (en) Malware detection
CN112287645B (zh) 一种基于生成式对抗网络的恶意pdf文档生成方法
WO2018066516A1 (ja) 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム
US10783247B1 (en) Software classification using phylogenetic techniques
CN112329012B (zh) 针对包含JavaScript的恶意PDF文档的检测方法及电子设备
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN112989358B (zh) 提高基于深度学习的源代码漏洞检测健壮性的方法及装置
Rabin et al. Evaluation of generalizability of neural program analyzers under semantic-preserving transformations
Kakisim et al. Sequential opcode embedding-based malware detection method
TW202240453A (zh) 學習惡意行為與惡意程式的執行序列之關聯性的方法與計算機與用於實作類神經網路的方法
CN112231645A (zh) 一种基于主动学习的恶意pdf文档检测方法
CN114386511A (zh) 基于多维度特征融合和模型集成的恶意软件家族分类方法
CN113760358A (zh) 一种面向源代码分类模型的对抗样本生成方法
CN117940894A (zh) 用于检测代码克隆的系统和方法
CN117294510A (zh) Web注入攻击分类检测方法及检测系统
CN111475812B (zh) 一种基于数据可执行特征的网页后门检测方法与系统
CN112035837B (zh) 基于拟态防御的恶意pdf文档检测系统及方法
CN114547614A (zh) 一种恶意文件识别方法及系统
CN114707151A (zh) 一种基于api调用和网络行为的僵尸软件检测方法
CN114510717A (zh) 一种elf文件的检测方法、装置、存储介质
CN111984970B (zh) 一种sql注入检测方法、系统及电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant