CN116668074A - 一种检测恶意pdf文件的方法、设备、介质及系统 - Google Patents
一种检测恶意pdf文件的方法、设备、介质及系统 Download PDFInfo
- Publication number
- CN116668074A CN116668074A CN202310452942.2A CN202310452942A CN116668074A CN 116668074 A CN116668074 A CN 116668074A CN 202310452942 A CN202310452942 A CN 202310452942A CN 116668074 A CN116668074 A CN 116668074A
- Authority
- CN
- China
- Prior art keywords
- file
- malicious
- pdf file
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004458 analytical method Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 claims description 3
- 239000003054 catalyst Substances 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 12
- 241000700605 Viruses Species 0.000 description 8
- 244000035744 Hura crepitans Species 0.000 description 6
- 230000009471 action Effects 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000009792 diffusion process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- JLYFCTQDENRSOL-VIFPVBQESA-N dimethenamid-P Chemical compound COC[C@H](C)N(C(=O)CCl)C=1C(C)=CSC=1C JLYFCTQDENRSOL-VIFPVBQESA-N 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000005507 spraying Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种检测恶意PDF文件的方法、设备、介质及系统,属于恶意PDF文件检测领域,包括步骤:通过分析PDF文件格式,将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件。本发明可以有效的解决未知PDF不能被准确识别的问题,通过集中决策和快速联动,可以精准、迅速找到恶意PDF,有效减少误报,并在全网形成防御能力。
Description
技术领域
本发明涉及恶意PDF文件检测领域,更为具体的,涉及一种检测恶意PDF文件的方法、设备、介质及系统。
背景技术
随着互联网的飞速发展,在今天人人都在使用PDF等编辑类文档。对于一个任何系统来说,识别恶意的PDF文件是十分重要的。越来越多的机构开始注重于安全防护。然而,由于黑客手段的攻击层出不穷的钓鱼手段,对于新出现的PDF检测方法,现有方案无法解决,会导致越来越的多人遭受钓鱼,对个人,乃至公司都会造成不可估量的损失。
发明内容
本发明的目的在于克服现有技术的不足,提供一种检测恶意PDF文件的方法、设备、介质及系统,可以精准、迅速找到恶意PDF,有效减少误报,并在全网形成防御能力等。
本发明的目的是通过以下方案实现的:
一种检测恶意PDF文件的方法,包括以下步骤:
通过分析PDF文件格式,将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件。
进一步地,所述分析PDF文件格式,包括子步骤:
根据PDF的文档结构,提取PDF数据的各个结构;再提取文件体的数据,对比判断该文件体数据的关键字,通过分析关键字判断是否是需要检测的文件体数据。
进一步地,在所述分析PDF文件格式之前,包括步骤:分类文件种类,通过判断文件种类,判定该文件是否是PDF文件。
进一步地,所述根据PDF的文档结构,提取PDF数据的各个结构,再提取文件体的数据,包括子步骤:
对PDF的文件体进行如下分析处理:文件体本身是对象集合,一个对象的定义包含对象序号部分、生成号部分、省略号部分和对象的定义范围部分;其中,obj和endobj是对象的定义范围部分,将obj和endobj等同于左括号和右括号;基于组织成的PDF的树型文档结构,将树的根节点作为PDF文件的目录对象Catalog,该目录对象Catalog作为PDF文档的根对象;根节点下设置四个子树:页面树Pages Tree、书签树Outline Tree、线索树ArticleThreads和名字树Named Destination;将Pages字段作为PDF里面所有页面的描述集合。
进一步地,所述将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件,具体包括子步骤:
S1,读取PDF文件:将待检测的PDF文件读入系统中;
S2,解析PDF文件:解析PDF文件的结构,生成相应的二叉树;
S3,逐个节点分析:对于每个节点,进行相应的属性分析和判断,所述属性分析包括节点类型、节点值、节点属性;在该步骤中,所述属性分析和判断,包括以下几种情形:1)对PDF文件的结构进行分析,判断是否存在隐藏的JavaScript代码或其他可疑的内容,如果存在,那么该PDF文件就可能是恶意PDF;2)分析PDF文件中的对象集合,检查是否存在异常的对象或字段属性,如文件大小异常、过多的嵌套对象等,如果存在,那么该PDF文件就可能是恶意PDF;3)分析PDF文件中的字体和图片资源,检查是否存在恶意代码或者病毒文件的隐藏位置,如果存在,那么该PDF文件就可能是恶意PDF;4)检查PDF文件中的字体文件,如果字体文件有异常,如文件大小异常、字体名称不规范等,那么该PDF文件就可能是恶意PDF;
S4,判断恶意PDF文件:通过对不同节点的分析和决策,最终确定PDF文件是否为恶意PDF文件;在该步骤中,在节点分析过程中,判断节点的属性和特征采取的方法包括正则表达式匹配、熵值计算、机器学习算法。
对不同节点进行综合决策判断文件是否为恶意PDF,可以采用以下方法:
综合以上几种情况的分析结果,利用二叉树决策方法,可以判断该PDF文件是否为恶意PDF,从而实现检测恶意PDF文件的目的。
进一步地,所述PDF文件的目录对象Catalog,包括PDF文档的大纲Outlines和页面组对象Pages。
进一步地,所述Pages字段本身为字典。
一种检测恶意PDF文件的设备,包括处理器和存储器,在存储器中存储有程序,当程序由处理器加载时执行如上任一项所述的检测恶意PDF文件的方法。
一种可读存储介质,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如上任一项所述的检测恶意PDF文件的方法。
一种检测恶意PDF文件的系统,包括如上所述的检测恶意PDF文件的设备。
本发明的有益效果包括:
本发明可以有效的解决未知PDF不能被准确识别的问题。本发明通过集中决策和快速联动,可以精准、迅速找到恶意PDF,有效减少误报,并在全网形成防御能力。
本发明通过对PDF文件格式解析,可以有效的检测出带有恶意代码的PDF文件,并能保证PDF使用的安全性,让人们免受PDF恶意文件的侵扰,快速形成针对PDF使用安全性保护的系统。
本发明方法通过对PDF文件的结构和属性进行分析和判断,以确定文件是否为恶意PDF文件。这种基于二叉树决策的方法,可以有效地检测出各种类型的恶意PDF文件,并且具有较高的检测准确率和实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的方法的步骤流程图;
图2本发明实施例的PDF文件的基本组成示意图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
术语解释
PDF文件:PDF是Portable Document Format的简称,意为“可携带文档格式”,是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。
可移植文档格式:可移植文档格式是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。
文件体数据:PDF文件结构分为以下四点:
(1)文件头:指明了该文件所遵从的PDF规范的版本号,它出现在PDF文件的第一行。
(2)文件体:又称对象集合,PDF文件的主要部分,由一系列对象组成。
(3)交叉引用表:对对象进行随机存取而设立的一个间接对象的地址索引表。(实际以偏移+索引的方式储存对象地址,下文会提及)
(4)文件尾:声明了交叉引用表的地址,即指明了文件体的根对象(Catalog),从而能够找到PDF文件中各个对象体的位置,达到随机访问。另外还保存了PDF文件的加密等安全信息。
如图2所示,为本发明实施例的PDF文件的基本组成示意图。其中:
Header:PDF文档的第一个部分,通常是一些元数据,例如PDF文档的版本号和创建日期。
Body:PDF文档的主要内容,包括文本、图像、表格等。
xref table:PDF文档中的交叉引用表,用于跟踪和定位文档中的对象。该表列出了PDF文件中所有对象的偏移量和编号,并指示每个对象是否已被删除。
trailer:PDF文档的最后一个部分,包括交叉引用表和其他元数据,例如文档的大小和根对象的位置。
不同版本的PDF会有些差异,在adobe生成1.6的PDF文件中没有交叉引用表。因此,文件体就是主要分析的数据。
鉴于背景中存在的问题,本发明的发明人进一步分析后认为:PDF病毒是一种新型电脑病毒,主要以邮件、程序木马、网页挂马的形式进行传播。PDF病毒利用各种钓鱼手段诱导用户,一旦感染,将给用户带来无法估量的损失。
目前,PDF软件允许人们在PDF的附件中插入另一个文件,而PDF恶意文档正是利用了该软件的这一弱点进行传播的。即目前在因特网浏览器和电子邮件中被广泛应用的PDF文件已经成为病毒传播的一个新的通道。PDF允许用户在PDF文件中附加任何一个非PDF格式的文件,那么人们就可以在PDF文件中嵌入js程序。PDF文件中嵌入一个js病毒程序,它自动利用用户计算机中OUTLOOK地址薄中的地址,绕过OUTLOOK中的过滤器向他人发送传播。虽然较新版的OUTLOOK一般都屏蔽了js文件但是对隐藏在PDF文件中的js程序却无能为力。PDF文件变种类型非常快,对常规的杀毒软件都具有免疫性,对常规依靠特征检测的安全产品是一个极大的挑战。
在现有技术中,对于已知的PDF文件,采用支持该病毒特征库的杀毒软件查杀。例如基于文档节点类型的恶意PDF检测方法及装置,能有效的提高检测的准确率,加强对模拟攻击的检测能力。这一类的方法包括:1)以节点为单位对待检测的PDF文档进行划分,并对待检测的PDF文档的节点进行类型划分,以不同类型节点出现的属性分布为特征,对所述特征进行向量化表达。2)将向量化表达的结果输入预先构建的检测模型,得到所述待检测的PDF文档是否为恶意PDF文档的检测结果。
又例如基于沙箱的行为分析方案,沙箱就是增强的虚拟机。沙箱通常可以严格控制沙箱中运行的程序所能访问的各种资源,这一类的方法包括:限制、禁止、监控对网络的访问、对真实系统的访问、对输入设备的读取等。通过这些监控各种资源对pdf文件进行整体分析,并对分析报告就行评估来判断pdf文件是否属于恶意文件。
以上方法存在的缺点在于:对于未知的PDF文件,向量化的检测的缺点是,对数据的需求巨大,需要长代码和程序来使向量化初始响应和基本功能,然后根据不同样本给出结果并不断获得决定性的质量。即使是很小的逻辑错误也会导致向量化过程的严重缺陷,从而导致错误的结果。对于未知的PDF文件,基于沙箱的行为分析方案的缺点是:试错周期长,在沙箱中加密和本地加密可能会同时发生,无法立即防御。
针对上述发明人发现的技术问题,基于对人们频繁使用PDF文件,对PDF文件频繁漏洞的不信任。在本发明构思中,旨在对操作系统上的恶意PDF做出识别,对用户的隐私和安全做出保护,以及通过对PDF文件格式解析,实现有效的检测出带有恶意代码的PDF文件,保证PDF使用的安全性,让人们免受PDF恶意文件的侵扰,快速形成针对PDF使用安全性保护的系统。在具体的发明构思中,通过分析PDF文件格式,将其文件中的各部分组织成二叉树的逻辑形式,逐个分析每个节点,利用二叉树决策PDF是否为恶意文件。本发明通过对PDF进行全面的分析行为,将PDF文件格式进行解析,检查PDF文件的各个对象以及对象之间是否符合Adobe的PDF文件格式规范。并综合上面描述的各关键字段信息分析该PDF文件是否可能为恶意文件。提取JS恶意代码检测/JS字段,一般情况下PDF文件内容是图片和文件,恶意修改的PDF文件才会有js等代码,一次可以提取出恶意行为代码。在本发明的具体构思中,如图1所示,通过将PDF文件分层解析成图一的PDF整体结构,再将其中“Body”结构进行具体处理。处理成图2中二叉树形状的的分层结构,再对二叉树中的每个节点进行分析比对,进而判断该文件是否为恶意PDF。
PDF文件的基本组成,如图2所示。根据各个工作站上送的疑似未知PDF文件解析情况,这里要说的是几乎每一个PDF文件都包含有前7个字段,也有可能会不包含stream和endstream。也有一些PDF文件没有xref或者trailer,但是这种情况比较少见。因此,本发明技术构思中认为,如果一个PDF文件没有xref或者trailer关键字段,那么可以确定它不是恶意的PDF文件。
/xref交叉引用表,描述每个间接对象的编号、版本和绝对的文件位置。PDF文档中的第一个索引必须从版本为65535的0号对象开始,标识符/xref后面的第一个数字是第一个间接对象(即0号对象)的编号,第二个数字是/xref(交叉引用表)的大小。
/Page指明PDF文件的页数,大多数恶意PDF文件仅仅只有一页。
/Encrypt指明PDF文件有数字水印或者是被加密过的。
/ObjStm是object streams的数量。这里要明白,object streams是一个可以包含其它Object对象的数据流对象。
/JS与/JavaScript指明PDF文件中含嵌有JavaScript代码。本发明中,所有的PDF恶意文件几乎全部嵌有JavaScript代码,这里一般都是利用JavaScript的解析漏洞或者使用JavaScript来实现堆喷射(heap spray)。当然要注意,在很多正常的PDF文件里也可以发现含有JavaScript代码,这需要在判断时进行区分。为此,可以对文件的来源、作者、目的等信息进行分析,以确定文件是否可信。此外,还可以对JavaScript代码进行更深入的分析,例如检测其是否存在漏洞、是否具有可疑的功能、是否与其他文件或程序存在关联等等,来判断是否为恶意代码。
/AA、/OpenAction和/AcroForm指明当查看PDF文件或者PDF的某页时会有自动的动作随其执行,几乎所有嵌有JavaScript代码的恶意PDF文件都有自动执行JavaScript代码的动作(action)。如果一个PDF文件包含/AA或/OpenAction自动执行动作的关键字段,而且又含有JavaScript代码,那么这个PDF文件就极可能是恶意的PDF文件,另外,如果一个PDF文件包含/AcroForm标记,则表明该文件包含交互式表单,这可能为恶意程序员提供了一个入口点,从而利用表单中的JavaScript代码来攻击用户的计算机系统。
/URI如果要在PDF文件中执行打开网页的动作的话就需要这个关键字段。
/Filter一般为FlateDecode即使用zlib压缩解压缩算法。
/JBIG2Decode指明PDF文件使用了JBIG2压缩。虽然JBIG2压缩本身可能会存在漏洞(CVE-2010-1297)。但/JBIG2Decode关键字段并不能说明PDF文件是否可疑。
/RichMedia Flash文件。
/Launch执行动作(action)数量。
PDF文档是一种树型结构,反映了文件体中间接对象间的等级层次关系。其中树的根节点是PDF文件的目录对象(Catalog),包含PDF文档的大纲(Outlines)和页面组对象(Pages)。PDF文档的逻辑结构包括以下四个子树:
页面树(Pages Tree):包含了PDF文档的所有页面对象(Page),页面对象包含了页面的大小、内容、字体等信息。每个页面对象也可能包含了其他对象的引用,如图片、注释等。
书签树(Outline Tree):包含了PDF文档的大纲信息,通常用于快速导航文档。每个大纲项(Outline Item)指向一个页面对象。
线索树(Article Threads):包含了PDF文档的文章线索信息,通常用于快速导航文档。每个文章线索(Article Thread)指向一个页面对象。
名字树(Named Destination):包含了PDF文档中定义的所有命名对象(NamedObject),如书签、注释等。
针对PDF恶意文件的判定,基于上述内容,本发明构思方案还可以按照如下方案逐个分析每个节点,利用二叉树决策PDF是否为恶意文件,具体步骤如下:
对文件集合的obj和endobj对象的定义范围的数据,以及各个字段属性做出相应分析判断。
对于包含JavaScript代码的节点,进一步检查代码是否存在解析漏洞或者是否实现了堆喷射技术。
根据节点的层级关系,综合判断节点是否异常或者可疑。例如,页面对象中包含的对象数量超过正常范围,大纲项中包含的页面对象数量过多等。
对于判定为PDF恶意的文件,进行全网扩散以及病毒库更新等操作。对于决策中心判定为非PDF恶意的文件进行全网扩散以及记录相关信息。
本发明的创新点还包括提出了判定恶意PDF的新工作原理和实施方案,具体包括如下步骤:
步骤1:分类文件种类
通过判断文件种类,判定该文件是否是PDF文件。
步骤2:进行PDF文件分析,决定出PDF是否属于恶意PDF。
在步骤2中,对PDF的文件体进行分析,文件体是一个个对象集合。一个对象的定义包含4个部分:
前面的2是对象序号,其用来唯一标记一个对象;0是生成号,按照PDF规范,如果一个PDF文件被修改,那这个数字是累加的,它和对象序号一起标记是原始对象还是修改后的对象,但是实际开发中,很少有用这种方式修改PDF的,都是重新编排对象号;obj和endobj是对象的定义范围,可以抽象的理解为这就是一个左括号和右括号;省略号部分是PDF规定的任意合法对象。
一个对象反映了文件体中间接对象间的等级层次关系。PDF的文档结构是一种树型结构。树的根节点就是PDF文件的目录对象(Catalog)。这个目录对象是PDF文档的根对象,包含PDF文档的大纲(Outlines)和页面组对象(Pages)。根节点下有四个子树:页面树(Pages Tree)、书签树(Outline Tree)、线索树(Article Threads)、名字树(NamedDestination)。
Pages字段这是个必须字段,是PDF里面所有页面的描述集合。Pages字段本身是个字典,它里面又包含几个主要字段。
通过对文件集合的obj和endobj是对象的定义范围的数据,以及各个字段属性做出相应分析判断,决定出该PDF是否属于恶意PDF:
首先,解析PDF文档,构建PDF文档的逻辑结构,包括树形结构和交叉引用表等信息。
检查PDF文档中是否包含JavaScript代码。如果存在JavaScript代码,需要进一步分析该代码是否存在安全漏洞或是否实现了堆喷射等攻击方式。
检查PDF文档中是否包含恶意对象,包括恶意注入对象和恶意字体等。
对PDF文档中的每一个对象进行分析,包括对象的类型、版本、属性等,判断是否存在异常或者不合规的情况。
对PDF文档中的每一个字体进行分析,判断是否存在异常或者不合规的情况,例如字体是否被篡改或者注入了恶意代码等。
对PDF文档中的每一个嵌入文件进行分析,判断是否存在异常或者不合规的情况,例如文件是否被篡改或者包含了恶意代码等。
对PDF文档中的每一个链接进行分析,判断是否存在异常或者不合规的情况,例如链接是否指向了恶意网站等。
对PDF文档中的每一个书签进行分析,判断是否存在异常或者不合规的情况,例如书签是否指向了恶意网站等。
对PDF文档中的每一页进行分析,判断是否存在异常或者不合规的情况,例如页面是否包含了恶意代码等。
综合以上分析结果,判断该PDF文档是否为恶意PDF文件,如果是,进行全网扩散,如果不是,进行全网扩散并记录相关信息。
需要说明的是,在本发明权利要求书中所限定的保护范围内,以下实施例均可以从上述具体实施方式中,例如公开的技术原理,公开的技术特征或隐含公开的技术特征等,以合乎逻辑的任何方式进行组合和/或扩展、替换。
实施例1
一种检测恶意PDF文件的方法,包括以下步骤:
通过分析PDF文件格式,将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件。
实施例2
在实施例1的基础上,所述分析PDF文件格式,包括子步骤:
根据PDF的文档结构,提取PDF数据的各个结构;再提取文件体的数据,对比判断该文件体数据的关键字,通过分析关键字判断是否是需要检测的文件体数据。
实施例3
在实施例1的基础上,在所述分析PDF文件格式之前,包括步骤:分类文件种类,通过判断文件种类,判定该文件是否是PDF文件。
实施例4
在实施例2的基础上,所述根据PDF的文档结构,提取PDF数据的各个结构,再提取文件体的数据,包括子步骤:
对PDF的文件体进行如下分析处理:文件体本身是对象集合,一个对象的定义包含对象序号部分、生成号部分、省略号部分和对象的定义范围部分;其中,obj和endobj是对象的定义范围部分,将obj和endobj等同于左括号和右括号;基于组织成的PDF的树型文档结构,将树的根节点作为PDF文件的目录对象Catalog,该目录对象Catalog作为PDF文档的根对象;根节点下设置四个子树:页面树Pages Tree、书签树Outline Tree、线索树ArticleThreads和名字树Named Destination;将Pages字段作为PDF里面所有页面的描述集合。
实施例5
所述将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件,具体包括子步骤:
S1,读取PDF文件:将待检测的PDF文件读入系统中;
S2,解析PDF文件:解析PDF文件的结构,生成相应的二叉树;
S3,逐个节点分析:对于每个节点,进行相应的属性分析和判断,所述属性分析包括节点类型、节点值、节点属性;
S4,判断恶意PDF文件:通过对不同节点的分析和决策,最终确定PDF文件是否为恶意PDF文件;在该步骤中,在节点分析过程中,判断节点的属性和特征采取的方法包括正则表达式匹配、熵值计算、机器学习算法。
首先,实施例4中提到的二叉树决策是一种基于特征的分类方法,用于判断给定的PDF文件是否属于恶意文件。在这种方法中,需要逐个分析PDF文档的节点,并对每个节点的字段属性进行分析判断。以下是本实施例中一些可能的步骤:
对每个节点的类型进行分析。PDF文件中的节点可以是对象、字典、数组等等。对于每个节点,需要确定它的类型,并根据类型来判断其可能的用途和意义。
对每个节点的字段属性进行分析。每个节点可能包含多个字段,如Type、Subtype、Length、Filter等等。需要分析每个字段的值,并根据其值来判断该节点可能的作用和意义。
对每个节点的内容进行分析。每个节点的内容可以是文本、图像、字节流等等。需要分析每个节点的内容,并根据其内容来判断该节点可能的作用和意义。
对每个节点的位置进行分析。节点的位置可以反映出它在PDF文件中的层次结构和作用。需要分析每个节点的位置,并根据其位置来判断该节点可能的作用和意义。
对每个节点的关系进行分析。每个节点可能与其他节点存在一定的关系,如引用、继承、包含等等。需要分析每个节点的关系,并根据其关系来判断该节点可能的作用和意义。
通过对节点的逐个分析,可以收集关于PDF文件的各种信息,并结合实施例4中提到的恶意PDF文件的特征,来判断给定的PDF文件是否属于恶意文件。例如,一些可能的判断标准包括:
a)是否存在恶意代码,如JavaScript、Flash等等。
b)是否存在隐藏的链接或嵌入式文件。
c)是否存在被篡改的字节流或对象。
d)是否存在过多的嵌套或重复的对象。
e)是否存在异常的节点类型或属性。
通过将这些标准应用于各个节点的分析结果,可以对给定的PDF文件做出综合判断,并确定它是否属于恶意PDF文件。
实施例6
在实施例4的基础上,所述PDF文件的目录对象Catalog,包括PDF文档的大纲Outlines和页面组对象Pages。
实施例7
在实施例4的基础上,所述Pages字段本身为字典。
实施例8
一种检测恶意PDF文件的设备,包括处理器和存储器,在存储器中存储有程序,当程序由处理器加载时执行如实施例1~实施例7任一项所述的检测恶意PDF文件的方法。
实施例9
一种可读存储介质,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如实施例1~实施例7任一项所述的检测恶意PDF文件的方法。
实施例10
一种检测恶意PDF文件的系统,包括如实施例8所述的检测恶意PDF文件的设备。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
根据本发明的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (10)
1.一种检测恶意PDF文件的方法,其特征在于,包括以下步骤:
通过分析PDF文件格式,将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件。
2.根据权利要求1所述的检测恶意PDF文件的方法,其特征在于,所述分析PDF文件格式,包括子步骤:
根据PDF的文档结构,提取PDF数据的各个结构;再提取文件体的数据,对比判断该文件体数据的关键字,通过分析关键字判断是否是需要检测的文件体数据。
3.根据权利要求1所述的检测恶意PDF文件的方法,其特征在于,在所述分析PDF文件格式之前,包括步骤:分类文件种类,通过判断文件种类,判定该文件是否是PDF文件。
4.根据权利要求2所述的检测恶意PDF文件的方法,其特征在于,所述根据PDF的文档结构,提取PDF数据的各个结构,再提取文件体的数据,包括子步骤:
对PDF的文件体进行如下分析处理:文件体本身是对象集合,一个对象的定义包含对象序号部分、生成号部分、省略号部分和对象的定义范围部分;其中,obj和endobj是对象的定义范围部分,将obj和endobj等同于左括号和右括号;基于组织成的PDF的树型文档结构,将树的根节点作为PDF文件的目录对象Catalog,该目录对象Catalog作为PDF文档的根对象;根节点下设置四个子树:页面树Pages Tree、书签树Outline Tree、线索树ArticleThreads和名字树Named Destination;将Pages字段作为PDF里面所有页面的描述集合。
5.根据权利要求1所述的检测恶意PDF文件的方法,所述将其文件中的各部分组织成二叉树的逻辑形式,再逐个分析每个节点,利用二叉树决策PDF是否为恶意文件,具体包括子步骤:
S1,读取PDF文件:将待检测的PDF文件读入系统中;
S2,解析PDF文件:解析PDF文件的结构,生成相应的二叉树;
S3,逐个节点分析:对于每个节点,进行相应的属性分析和判断,所述属性分析包括节点类型、节点值、节点属性;
S4,判断恶意PDF文件:通过对不同节点的分析和决策,最终确定PDF文件是否为恶意PDF文件;在该步骤中,在节点分析过程中,判断节点的属性和特征采取的方法包括正则表达式匹配、熵值计算、机器学习算法。
6.根据权利要求4所述的检测恶意PDF文件的方法,其特征在于,所述PDF文件的目录对象Catalog,包括PDF文档的大纲Outlines和页面组对象Pages。
7.根据权利要求4所述的检测恶意PDF文件的方法,其特征在于,所述Pages字段本身为字典。
8.一种检测恶意PDF文件的设备,其特征在于,包括处理器和存储器,在存储器中存储有程序,当程序由处理器加载时执行如权利要求1~7任一项所述的检测恶意PDF文件的方法。
9.一种可读存储介质,其特征在于,在可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行如权利要求1~7任一项所述的检测恶意PDF文件的方法。
10.一种检测恶意PDF文件的系统,其特征在于,包括如权利要求8所述的检测恶意PDF文件的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310452942.2A CN116668074A (zh) | 2023-04-25 | 2023-04-25 | 一种检测恶意pdf文件的方法、设备、介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310452942.2A CN116668074A (zh) | 2023-04-25 | 2023-04-25 | 一种检测恶意pdf文件的方法、设备、介质及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116668074A true CN116668074A (zh) | 2023-08-29 |
Family
ID=87719727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310452942.2A Pending CN116668074A (zh) | 2023-04-25 | 2023-04-25 | 一种检测恶意pdf文件的方法、设备、介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116668074A (zh) |
-
2023
- 2023-04-25 CN CN202310452942.2A patent/CN116668074A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maiorca et al. | Looking at the bag is not enough to find the bomb: an evasion of structural methods for malicious pdf files detection | |
Nissim et al. | Detection of malicious PDF files and directions for enhancements: A state-of-the art survey | |
CN109784056B (zh) | 一种基于深度学习的恶意软件检测方法 | |
Laskov et al. | Static detection of malicious JavaScript-bearing PDF documents | |
Maiorca et al. | Digital investigation of pdf files: Unveiling traces of embedded malware | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
US11212297B2 (en) | Access classification device, access classification method, and recording medium | |
US20040181677A1 (en) | Method for detecting malicious scripts using static analysis | |
CN109829304B (zh) | 一种病毒检测方法及装置 | |
US7894630B2 (en) | Tamper-resistant text stream watermarking | |
Li et al. | FEPDF: a robust feature extractor for malicious PDF detection | |
CN112329012A (zh) | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 | |
Hwang et al. | Semi-supervised based unknown attack detection in EDR environment | |
JP2012088803A (ja) | 悪性ウェブコード判別システム、悪性ウェブコード判別方法および悪性ウェブコード判別用プログラム | |
Tajiri et al. | Detection of malicious powershell using word-level language models | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
Cosovan et al. | A practical guide for detecting the java script-based malware using hidden markov models and linear classifiers | |
Bhagwani et al. | Automated classification of web-application attacks for intrusion detection | |
CN109309677B (zh) | 一种基于语义协同的Web应用动态防御方法 | |
Rodrigues et al. | Removing DUST using multiple alignment of sequences | |
Liu et al. | Pdf malware detection using visualization and machine learning | |
Falah et al. | Towards enhanced PDF maldocs detection with feature engineering: design challenges | |
CN116668074A (zh) | 一种检测恶意pdf文件的方法、设备、介质及系统 | |
Guichang et al. | CNNPayl: an intrusion detection system of cross-site script detection | |
Yan et al. | Study on the detection of cross-site scripting vulnerabilities based on reverse code audit |
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 |