Pdf中触发漏洞威胁的检测方法及装置制造方法

文档序号:6636602阅读:122来源:国知局
Pdf中触发漏洞威胁的检测方法及装置制造方法【专利摘要】本发明公开了一种PDF中触发漏洞威胁的检测方法及装置,涉及信息安全领域,通过对PDF文件的解析以及检测,及时发现漏洞可能被触发的威胁,并对该文件进行报警提示。本发明主要的技术方案为解析PDF文件识别入口为第一特征值的字典对象;对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值;若所述字典对象中存在第二特征值,则根据所述第二特征值确定基于栈的缓冲区是否会溢出;若确定基于栈的缓冲区会溢出,则发出报警信息,提示所述PDF文件存在触发漏洞的威胁。本发明主要用于检测PDF中的漏洞。【专利说明】PDF中触发漏洞威胁的检测方法及装置【
技术领域
】[0001]本发明涉及信息安全领域,特别是涉及一种PDF中触发漏洞威胁的检测方法及装置。【
背景技术
】[0002]随着信息技术的发展,软件功能的强大,随之产生的庞大的源代码数量导致了要消除源代码中存在的设计漏洞或实现漏洞越来越困难,从而黑客可以利用漏洞对系统进行破坏甚至入侵系统。[0003]漏洞是存在于一个系统内的弱点或缺陷,这些弱点或缺陷导致系统对某一特定的威胁攻击或危险事件具有敏感性,或具有进行攻击威胁的可能性。漏洞一般分为功能性逻辑漏洞和安全性逻辑漏洞,功能性逻辑漏洞影响软件的正常功能,如执行结果错误、执行流程错误等,而安全性逻辑漏洞一般情况下不影响软件的正常功能,但如果漏洞被攻击者成功利用后,有可能造成软件运行错误甚至执行恶意代码,如网站中的跨站脚本漏洞、SQL注入漏洞等。[0004]由于信息系统已被广泛应用到国家的各个领域,加之近年来漏洞的数量呈明显上升趋势,信息系统的安全显得尤为重要,因此发现信息系统的漏洞检测技术也成为了当前的重点研究方向。目前常用的检测方法是通过对源代码依据一定规则分析来实现检测目的,因此这种方法需要建立源代码的特征库和规则库,然而随着漏洞数量的增加,特征库也随之不断扩大,使得检测效率不断降低,同时,由于特征库的内容需要不断更新,常会出现更新不及时带来的误报及漏报情况。【
发明内容】[0005]有鉴于此,本发明提供的一种TOF中触发漏洞威胁的检测方法及装置,通过对TOF文件的解析以及检测,及时发现PDF文件中的漏洞可能被触发的威胁,并对该文件进行报警提示。[0006]依据本发明一个方面,提出了一种TOF中触发漏洞威胁的检测方法,该方法包括:[0007]解析PDF文件识别入口为第一特征值的字典对象;[0008]对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值;[0009]若所述字典对象中存在第二特征值,则根据所述第二特征值确定基于栈的缓冲区是否会溢出;[0010]若确定基于栈的缓冲区会溢出,则发出报警信息,提示所述PDF文件存在触发漏洞的威胁。[0011]依据本发明另一个方面,提出了一种TOF中触发漏洞威胁的检测装置,该装置包括:[0012]解析识别单元,用于解析PDF文件识别入口为第一特征值的字典对象;[0013]检测单元,用于对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值;[0014]判断单元,用于当检测单元检测到所述字典对象中存在第二特征值时,根据所述第二特征值确定基于栈的缓冲区是否会溢出;[0015]输出单元,用于当判断单元确定基于栈的缓冲区会溢出时,发出报警信息,提示所述PDF文件存在触发漏洞的威胁。[0016]借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:[0017]本发明所采用的一种TOF中触发漏洞威胁的检测方法及装置,能够在通过对TOF文件进行解析,识别出入口为第一特征值的字典对象,再对该字典对象进行解析,当检测到该字典对象中存在第二特征值时,并且在根据该第二特征值确定基于栈的缓冲区会溢出时,就认为该PDF文件存在触发漏洞的威胁,并且进行程序报警。相对于依靠特征库与规则库进行对比的检测方法,本发明所采用的检测方法及装置中所使用的上述检测逻辑,仅针对一种类型的漏洞,对该种类型漏洞的检测非常有针对性,不需要建立庞大的特征库与规则库,从而减少了建立和使用特征库与规则库的时间,提高了检测的效率,同时,也避免了由于特征库与规则库没有及时更新所导致的误报和漏报的情况,进而提高了检测的准确率。[0018]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。【专利附图】【附图说明】[0019]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0020]图1示出了本发明实施例提供的一种PDF中触发漏洞威胁的检测方法流程图;[0021]图2示出了本发明实施例提供的另一种PDF中触发漏洞威胁的检测方法流程图;[0022]图3示出了本发明实施例提供的一种TOF中触发漏洞威胁的检测装置结构示意图;[0023]图4示出了本发明实施例提供的另一种PDF中触发漏洞威胁的检测装置结构示意图。【具体实施方式】[0024]下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。[0025]本发明实施例提供一种TOF中触发漏洞威胁的检测方法,如图1所示,该方法包括:[0026]101、解析TOF文件识别入口为第一特征值的字典对象。[0027]结构化的文档格式可移植文档格式(PortableDocumentFormat,PDF)是由美国排版与图像处理软件公司Adobe于1993年首次提出的,是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的MacOS操作系统中都是通用的。这一性能使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。[0028]PDF的结构可以从文件结构和逻辑结构两个方面来理解,PDF的文件结构指的是其文件物理组织方式,逻辑结构则指的是其内容的逻辑组织方式。其中,PDF的文件结构(即物理结构)包括四个部分:文件头(Header)、文件体(Body)、交叉引用表(Cross-referenceTable)和文件尾(Trailer):[0029]文件头(Header)指明了该文件所遵从PDF规范的版本号,它出现在PDF文件的第一行。如%roF-1.6表示该文件格式符合TOF1.6规范。文件体(Body)由一系列的PDF间接对象组成。这些间接对象构成了PDF文件的具体内容如字体、页面、图像等等。交叉引用表(Cross-referenceTable)则是为了能对间接对象进行随机存取而设立的一个间接对象地址索引表。文件尾(Trailer)声明了交叉引用表的地址,指明文件体的根对象(Catalog),还保存了加密等安全信息。根据文件尾提供的信息,PDF的应用程序可以找到交叉引用表和整个PDF文件的根对象,从而控制整个PDF文件。[0030]PDF文件的基本元素是PDF对象(PDFObject),PDF对象包括直接对象(DirectObject)和间接对象(IndirectObject);其中直接对象如下几种基本类型:布尔型(Boolean)、数值型(Number)、字符串型(String)、名字型(Name)、数组型(Array)、字典型(Dict1nary)、流对象(Stream)以及空对象(Null);间接对象是一种标识了的PDF对象,这个标识称为间接对象的ID。标识的目的是为了让别的PDF对象引用。任何PDF对象标识后都变成了间接对象。[0031]一个PDF文件是由一个由基本数据类型组成的数据结构,而解析PDF文件是通过以PDF文件为输入,以flex和bison的词法语法分析为原理,然后填充一个大的PDF文件格式数据结构为结果来实现的。[0032]通过以flex和bison的词法语法按照PDF格式文档的说明解析一个PDF文件,可以识别出文件头、文件体和文件尾信息,这些信息中又包含了众多的PDF对象信息,将这些解析出来的PDF对象信息再填充到一个HF的文件格式数据结构中,就完成了PDF的解析工作。[0033]其中,第一特征值包括字典对象的入口类型和值。具体到本实施例中,解析PDF文件识别入口为第一特征值的字典对象的过程是解析PDF文件获取所述PDF文件的文件格式信息,从所获取的文件格式信息中查找入口为第一预定类型,值为第一预定值的字典对象。而第一预定类型与第一预定值可以自定义设置,其具体的类型和种类以及值的内容可以参考上述的描述,此处不再赘述。[0034]102、对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值。[0035]在获得入口为第一特征值的字典对象后,对该字典对象进行解析,所采用的解析方式同101中的方式相似,此处不再赘述,解析后可以获得众多的子字典对象,检测这些子字典对象中是否存在第二特征值,该第二特征值包括有嵌套的子字典对象、键值对的入口类型和值。[0036]其中,检测第二特征值的具体方式为:对所述字典对象进行解析,查看所述字典对象中是否存在入口为第二预定类型和值为第二预定值的键值对以及嵌套的子字典对象。[0037]103、若所述字典对象中存在第二特征值,则根据所述第二特征值确定基于栈的缓冲区是否会溢出。[0038]经过102的检测,查找出该字典对象中存在有第二特征值后,就可以确定该第二特征值会导致基于栈的缓冲区是否会溢出。[0039]其中,栈的缓冲区溢出又称堆栈溢出或缓冲溢出,是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,使得溢出的数据覆盖在合法数据上。理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈〃也会出现缓冲区溢出。[0040]根据所述第二特征值来确定基于栈的缓冲区是否会溢出的方式为:确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。其中,具体还可以细化为如下步骤:[0041]1、解析所述子字典对象获取对文件操作的文件名参数。[0042]2、确定所述文件名参数是否超过缓冲区长度。[0043]3、若超过所述缓冲区长度,则确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出。[0044]经过上述的判断,就可以确定第二特征值是否会造成基于栈的缓冲区溢出。[0045]104、若确定基于栈的缓冲区会溢出,则发出报警信息,提示所述PDF文件存在触发漏洞的威胁。[0046]最后,一旦确定基于栈的缓冲区会溢出,就说明该PDF文件存在触发漏洞的威胁,应该发出报警信息,同行还可以停止对该PDF文件的使用。[0047]本发明实施例所采用的方法,能够在通过对PDF文件进行解析,识别出入口为第一特征值的字典对象,再对该字典对象进行解析,当检测到该字典对象中存在第二特征值时,并且在根据该第二特征值确定基于栈的缓冲区会溢出时,就认为该PDF文件存在触发漏洞的威胁,并且进行程序报警。相对于依靠特征库与规则库进行对比的检测方法,本发明所采用的检测方法及装置中所使用的上述检测逻辑,仅针对一种类型的漏洞,对该种类型漏洞的检测非常有针对性,不需要建立庞大的特征库与规则库,从而减少了建立和使用特征库与规则库的时间,提高了检测的效率,同时,也避免了由于特征库与规则库没有及时更新所导致的误报和漏报的情况,进而提高了检测的准确率。[0048]以下将以检测PDF文件中是否存在cve-2009-0837漏洞的威胁为例,进行具体阐述,当检测PDF文件中是否存在cve-2009-0837漏洞的威胁时,所述第一特征值为入口为Type,值为Act1n的字典对象,所述第二特征值为入口为S,值为Launch的键值对以及嵌套的子字典对象,所述确定基于栈的缓冲区是否会溢出是指确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。具体的,如图2所示,该方法包括:[0049]201、解析PDF文件识别入口为Type,值为Act1n的字典对象。[0050]根据上述101中解析PDF文件的方法对PDF文件进行解析,在完成PDF的解析工作后,还需要对解析出来的HF对象信息进行筛查,查找出入口为Type,值为Act1n的字典型对象。[0051]202、对所述字典对象进行解析,查看所述字典对象中是否存在入口为S,值为Launch的键值对以及嵌套的子字典对象。[0052]其中,对所述字典对象进行解析,是以上述步骤中对PDF文件解析的方式对查找出的入口为Type,值为Act1n的字典型对象进行再次解析,查找该字典型对象中是否存在入口为S,值为Launch的键值对以及嵌套的子字典对象。字典对象包括有:表、视图、存储过程、函数等,其中的字典是指数据字典,是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,是一种用户可以访问的记录数据库和应用程序源数据的目录。数据字典的组成包括:[0053]1、数据项:数据流图中数据块的数据结构中的数据项说明,数据项是不可再分的数据单位。若干个数据项可以组成一个数据结构。[0054]2、数据结构:数据流图中数据块的数据结构说明,数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。[0055]3、数据流:数据流图中流线的说明,数据流是数据结构在系统内传输的路径。[0056]4、数据存储:数据流图中数据块的存储特性说明,数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。[0057]5、处理过程:数据流图中功能块的说明,数据字典中只需要描述处理过程的说明性信息。[0058]通过对数据字典对象的解析,并对解析出的子字典对象进行筛查,查找入口为S,值为Launch的键值对以及嵌套的子字典对象。其中,键值对就是可以根据一个键值获得对应的一个值。而键值就是数据库中某种字段的值,用特定的方法调用,不同的软件根据特有位置的键值,来判断程序应该执行哪个步骤。嵌套是指在已有的表格、图像或图层中再加进去一个或多个表格、图像或图层,可理解为镶嵌、套用。[0059]在查找入口为S,值为Launch的键值对以及嵌套的子字典对象时,可以采用先确定入口为S,值为Launch的键值对,若存在入口为S,值为Launch的键值对,再查找嵌套的子字典对象的方式;也可以采用先确定嵌套的子字典对象,若存在嵌套的子字典对象,再查找入口为S,值为Launch的键值对的方式,以上两种方式的目的都是确定解析出的子字典对象中同时包含有入口为S,值为Launch的键值对和嵌套的子字典对象两个特征,对于具体的检测方式,本实施例不进行具体限定。[0060]203、若所述字典对象中存在入口为S,值为Launch的键值对以及嵌套的子字典对象,则确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。[0061]在经过步骤202的检测后,确定PDF文件中包含有入口为S,值为Launch的键值对以及嵌套的子字典对象,还需要进一步判断该子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出,其具体判断步骤如下:[0062]1、解析所述子字典对象获取对文件操作的文件名参数。[0063]对子字典对象的解析同对TOF的解析方式相同,此处不再赘述。而获取对文件操作的文件名参数具体是指该文件名的长度。[0064]2、确定所述文件名参数是否超过缓冲区长度。[0065]3、若超过所述缓冲区长度,则确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出。[0066]204、若会导致基于栈的缓冲区溢出,则发出报警信息,提示所述PDF文件存在构造触发cve-2009-0837漏洞的威胁。[0067]基于栈的缓冲区溢出在一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误。但是,如果输入的数据是经过“黑客”精心设计的,覆盖堆栈的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。如果该程序恰好是以root运行的,黑客就获得了root权限,然后他就可以编译黑客程序、留下入侵后门等,实施进一步地攻击。[0068]cve-2009-0837漏洞是FoxitReader处理PDF存在的多个安全漏洞中的一个,FoxitReader是一款小型的PDF文档查看器和打印程序,如果带有超长文件名参数的HF文件中定义了Open/Executeafile操作,由于未经充分的边界检查便试图将文件名参数拷贝到栈中固定大小的缓冲区,在某些情况下可能会触发栈溢出。远程攻击者可以利用该漏洞以应用程序权限执行任意指令。[0069]因此在确认步骤103中PDF文件的子字典对象包含的文件名参数超过缓冲区长度时,系统就认为该PDF文件存在构造触发cve-2009-0837漏洞的威胁,同时发出报警提示信息。该报警提示信息的内容可以为该PDF文件的文件名或该PDF文件的存储路径,也可以是该PDF文件所构成威胁的等级提示;而该提示信息的形式可以是弹提示框的形式,也可以是图标或者文本页面的形式提示,本发明实施例对该报警信息的具体内容及形式不进行具体限定。[0070]基于上述的TOF中触发漏洞威胁的检测方法,本发明实施例还提供一种TOF中触发漏洞威胁的检测装置,如图3所示,该装置包括:[0071]解析识别单元31,用于解析PDF文件识别入口为第一特征值的字典对象,所述第一特征值包括字典对象的入口类型和值。[0072]检测单元32,用于对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值,所述第二特征值包括嵌套的子字典对象、键值对的入口类型和值。[0073]判断单元33,用于当检测单元32检测到所述字典对象中存在第二特征值时,根据所述第二特征值确定基于栈的缓冲区是否会溢出。[0074]输出单元34,用于当判断单元33确定基于栈的缓冲区会溢出时,发出报警信息,提示所述PDF文件存在触发漏洞的威胁。[0075]进一步的,当第一特征值包括字典对象的入口类型和值,第二特征值包括嵌套的子字典对象、键值对的入口类型和值时,该TOF中触发漏洞威胁的检测装置各功能单元具体用于:[0076]所述解析识别单元具体用于,解析PDF文件获取所述PDF文件的文件格式信息,从所述文件格式信息中查找入口为第一预定类型,值为第一预定值的字典对象。[0077]所述检测单元具体用于,对所述字典对象进行解析,查看所述字典对象中是否存在入口为第二预定类型和值为第二预定值的键值对以及嵌套的子字典对象。[0078]所述判断单元具体用于,确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。[0079]进一步的,所述TOF中触发漏洞威胁的检测装置中,如图4所示,所述判断单元33包括:[0080]获取模块331,用于解析所述子字典对象获取对文件操作的文件名参数。[0081]判断模块332,用于确定所述文件名参数是否超过缓冲区长度。[0082]确认模块333,用于当判断模块232确定所述文件名参数超过所述缓冲区长度时,确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出。[0083]进一步的,当该TOF中触发漏洞威胁的检测装置检测TOF文件中是否存在cve-2009-0837漏洞的威胁时,所述第一预定类型为Type,所述第一预定值为Act1n,所述第二预定类型为S,所述第二预定值为Launch。其中,关于cve-2009-0837漏洞的检测可以参考上述方法实施例的具体描述,本发明实施例此处将不再赘述。[0084]综上所述,本发明实施例所采用的一种TOF中触发漏洞威胁的检测方法及装置,能够在通过对PDF文件进行解析,识别出入口为第一特征值的字典对象,再对该字典对象进行解析,当检测到该字典对象中存在第二特征值时,并且在根据该第二特征值确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出时,就认为该PDF文件存在触发漏洞的威胁,并且进行程序报警。相对于依靠特征库与规则库进行对比的检测方法,本发明所采用的检测方法及装置中所使用的上述检测逻辑,仅针对一种类型的漏洞,对该种类型漏洞的检测非常有针对性,不需要建立庞大的特征库与规则库,从而减少了建立和使用特征库与规则库的时间,提高了检测的效率,同时,也避免了由于特征库与规则库没有及时更新所导致的误报和漏报的情况,进而提高了检测的准确率。[0085]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0086]可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。[0087]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0088]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。[0089]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0090]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。[0091]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。[0092]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0093]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种PDF中触发漏洞威胁的检测方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。[0094]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。【权利要求】1.一种TOF中触发漏洞威胁的检测方法,其特征在于,包括:解析PDF文件识别入口为第一特征值的字典对象;对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值;若所述字典对象中存在第二特征值,则根据所述第二特征值确定基于栈的缓冲区是否会&出;若确定基于栈的缓冲区会溢出,则发出报警信息,提示所述PDF文件存在触发漏洞的威胁。2.根据权利要求1所述的方法,其特征在于,所述第一特征值包括字典对象的入口类型和值;所述第二特征值包括嵌套的子字典对象、键值对的入口类型和值。3.根据权利要求2所述的方法,其特征在于,所述解析PDF文件识别入口为第一特征值的字典对象具体包括:解析PDF文件获取所述PDF文件的文件格式信息,从所述文件格式信息中查找入口为第一预定类型,值为第一预定值的字典对象;所述对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值具体包括:对所述字典对象进行解析,查看所述字典对象中是否存在入口为第二预定类型和值为第二预定值的键值对以及嵌套的子字典对象;所述根据所述第二特征值确定基于栈的缓冲区是否会溢出具体为:确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。4.根据权利要求3所述的方法,其特征在于,确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出包括:解析所述子字典对象获取对文件操作的文件名参数;确定所述文件名参数是否超过缓冲区长度;若超过所述缓冲区长度,则确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出。5.根据权利要求2-4中任一项所述的方法,其特征在于,所述第一预定类型为Type,所述第一预定值为Act1n;所述第二预定类型为S,所述第二预定值为Launch。6.一种TOF中触发漏洞威胁的检测装置,其特征在于,包括:解析识别单元,用于解析PDF文件识别入口为第一特征值的字典对象;检测单元,用于对所述字典对象进行解析,查看所述字典对象中是否存在第二特征值;判断单元,用于当检测单元检测到所述字典对象中存在第二特征值时,根据所述第二特征值确定基于栈的缓冲区是否会溢出;输出单元,用于当判断单元确定基于栈的缓冲区会溢出时,发出报警信息,提示所述PDF文件存在触发漏洞的威胁。7.根据权利要求6所述的检测装置,其特征在于,所述第一特征值包括字典对象的入口类型和值;所述第二特征值包括嵌套的子字典对象、键值对的入口类型和值。8.根据权利要求7所述的检测装置,其特征在于,所述解析识别单元具体用于:解析HF文件获取所述TOF文件的文件格式信息,从所述文件格式信息中查找入口为第一预定类型,值为第一预定值的字典对象;所述检测单元具体用于:对所述字典对象进行解析,查看所述字典对象中是否存在入口为第二预定类型和值为第二预定值的键值对以及嵌套的子字典对象;所述判断单元具体用于:确定所述子字典对象中包含的文件名参数是否会导致基于栈的缓冲区溢出。9.根据权利要求8所述的检测装置,其特征在于,所述判断单元包括:获取模块,用于解析所述子字典对象获取对文件操作的文件名参数;判断模块,用于确定所述文件名参数是否超过缓冲区长度;确认模块,用于当判断模块确定所述文件名参数超过所述缓冲区长度时,确定所述子字典对象中包含的文件名参数会导致基于栈的缓冲区溢出。10.根据权利要求8-9中任一项所述的检测装置,其特征在于,所述第一预定类型为Type,所述第一预定值为Act1n;所述第二预定类型为S,所述第二预定值为Launch。【文档编号】G06F21/57GK104462966SQ201410712179【公开日】2015年3月25日申请日期:2014年11月28日优先权日:2014年11月28日【发明者】邢超,陈卓,杨康,唐海申请人:北京奇虎科技有限公司,奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1