一种恶意程序的识别方法及电子设备与流程

文档序号:17082566发布日期:2019-03-09 00:27阅读:153来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种恶意程序的识别方法及电子设备。
背景技术
::随着互联网技术的发展,给用户的生活带来了极大的便利,但是由于恶意程序的出现,给用户也带来了困扰和侵害,例如,近期流行的近期流行的勒索病毒、互联网蠕虫、和恶意挖矿程序,导致用户财产受到损失。恶意程序检测引擎对恶意程序进行识别,保护用户的安全,但是恶意程序曾出不穷,恶意程序检测引擎无法及时检测最新的恶意程序,并且恶意程序检测引擎对恶意程序的家族(组织)识别比较困难,特别是当恶意程序源文件频繁的进行地下交易后,会导致关联组织的难度大,监测难度大,而在高级持续性威胁(advancedpersistentthreat,apt)攻击事件中,组织的相似性对于恶意程序追踪溯源起着非常大的作用。在现有技术中,针对互联网传播最为广泛的恶意程序为可移植的执行体(portableexecutable,pe)/可执行连接格式(executableandlinkingformat,elf)文件格式,安全厂商通过人力分析,对恶意程序进行相似度聚类实现恶意程序检测,同时进行组织归类,但面对海量数据,进行相似度聚类耗费资源庞大,且当恶意程序源文件进行地下交易后会识别错误,无法准确的确定编写恶意程序的组织。综上所述,如何在减少资源耗费的情况下,实现恶意程序检测,并提高恶意程序的检测效率,提高识别编写所述恶意程序的组织的准确性是目前需要解决的问题。技术实现要素:有鉴于此,本发明提供了一种恶意程序的识别方法及电子设备,用于解决现有技术中如何在减少资源耗费的情况下,实现恶意程序检测,并提高恶意程序的检测效率,提高识别编写所述恶意程序的组织的准确性的问题。根据本发明实施例的第一个方面,提供了一种恶意程序的识别方法,包括:将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串;根据所述第一编译路径信息确定所述第一程序的第一特征值;将所述第一特征值与特征库中的特征值进行匹配;响应于匹配成功,则确定所述第一程序为恶意程序。在一个实施例中,响应于匹配成功,则确定所述第一程序为恶意程序之后,该方法还包括输出所述第一程序的第一特征值。在一个实施例中,所述将接收到的第一程序进行解析,确定第一编译路径信息,具体包括:将接收到的第一程序进行解析,获取调试符号信息,其中,所述调试符号信息包括结构指针;根据所述调试符号信息,解析获取所述第一编译路径信息。在一个实施例中,根据所述第一编译路径信息确定所述第一程序的第一特征值,具体包括:将所述第一编译路径信息的目录字符串进行分离处理,按照设定顺序在分离后的所述目录字符串中确定出特征词汇;根据所述特征词汇确定为所述第一程序的第一特征值。在一个实施例中,所述按照设定顺序在分离后的所述目录字符串中确定出特征词汇,具体包括:按照设定顺序在所述分离后的目录字符串中确定首路径对应的目录字符串;将所述首路径对应的目录字符串确定为所述特征词汇。在一个实施例中,所述根据所述特征词汇确定所述第一程序的第一特征值,具体包括:将所述特征词汇作为所述第一程序的第一特征值;或者将所述特征词汇的哈希值确定为所述第一程序的第一特征值。在一个实施例中,所述特征库是预定的,所述特征库根据如下步骤获得:将接收到的已知恶意程序进行解析,确定第二编译路径信息,其中,所述第二编译路径信息中包括目录字符串;根据所述第二编译路径信息确定所述已知恶意程序的第二特征值;将所述第二特征值保存到所述特征库。在一个实施例中,所述第二特征值为特征词汇或者哈希值。根据本发明实施例的第二个方面,提供了一种恶意程序的识别装置,包括:第一解析单元,用于将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串;第一确认单元,用于根据所述第一编译路径信息确定所述第一程序的第一特征值;匹配单元,用于将所述第一特征值与特征库中的特征值进行匹配;所述确认单元还用于,响应于匹配成功,则确定所述第一程序为恶意程序。在一个实施例中,上述确认单元还用于输出所述第一程序的第一特征值。在一个实施例中,所述第一解析单元具体用于:将接收到的第一程序进行解析,获取调试符号信息,其中,所述调试符号信息包括结构指针;根据所述调试符号信息,解析获取所述第一编译路径信息。在一个实施例中,所述第一确认单元用于:将所述第一编译路径信息的目录字符串进行分离处理,按照设定顺序在分离后的所述目录字符串中确定出特征词汇;根据所述特征词汇确定为所述第一程序的第一特征值。在一个实施例中,所述第一确认单元具体用于:按照设定顺序在所述分离后的目录字符串中确定首路径对应的目录字符串;将所述首路径对应的目录字符串确定为所述特征词汇。在一个实施例中,所述第一确认单元具体用于:将所述特征词汇作为所述第一程序的第一特征值;或者将所述特征词汇的哈希值确定为所述第一程序的第一特征值。在一个实施例中,所述特征库是预定的,所述特征库根据建立单元获得:所述建立单元具体包括:第二解析单元,将接收到的已知恶意程序进行解析,确定第二编译路径信息,其中,所述第二编译路径信息中包括目录字符串;第二确认单元,用于根据所述第二编译路径信息确定所述已知恶意程序的第二特征值;保存单元,用于将所述第二特征值保存到所述特征库。在一个实施例中,所述第二特征值为特征词汇或者哈希值。根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第一方面任一种可能所述的方法。根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。本发明实施例的有益效果包括:首先将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串;然后根据所述第一编译路径信息确定所述第一程序的第一特征值,将所述第一特征值与特征库中的特征值进行匹配;最后响应于匹配成功,则确定所述第一程序为恶意程序,并且输出所述第一程序的第一特征值。根据上述方法只需要匹配从第一程序中获取的特征值信息就可以确定所述第一程序是否是恶意程序,相比于现有技术中通过相似度聚类识别恶意程序的方式,减小了资源消耗,并且通过所述第一特征值也可以确定出编写所述恶意程序的组织,提高识别编写所述恶意程序的组织的准确性。附图说明通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:图1是本发明实施例提供的一种恶意程序的识别方法流程图;图2是本发明实施例提供的一种特征库生成的方法流程图;图3是本发明实施例提供的一种恶意程序的识别方法流程图;图4是本发明实施例提供的一种恶意程序的识别装置示意图;图5是本发明实施例提供的一种电子设备结构示意图。具体实施方式以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。图1是本发明实施例的一种恶意程序的识别方法流程图,如图1所示,恶意程序识别的方法包括:步骤s100、将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串。具体的,将接收到的第一程序进行解析,获取调试符号信息,其中,所述调试符号信息包括结构指针;根据所述调试符号信息,解析获取所述第一编译路径信息。举例说明,对接收到的第一程序进行解析,获取debug_type结构指针,根据所述结构指针获取数据结构,在所述数据结构中获取字符串数据。步骤s101、根据所述第一编译路径信息确定所述第一程序的第一特征值。具体的,所述第一特征值包括特征词汇或者特征词汇的hash值两种情况。情况一、将所述第一编译路径信息中包括的目录字符串进行分离处理,按照设定顺序在分离后的所述目录字符串中确定出特征词汇,将所述特征词汇确定为所述第一程序的第一特征值,其中,所述设定顺序为递归顺序,也可以是其他方式,本申请对其不做限定。举例说明:对第一编译路径信息的目录字符串进行分离处理,例如,在第一编译路径信息中分离出目录字符串分别为users、alex、documents、visual、studio2015、projects、httpbackconnect、release和httpbackconnect.pdb,将所述目录字符串通过“/”或“\”隔开,具体如下所示:c:\users\alex\documents\visual\studio2015\projects\httpbackconnect\release\httpbackconnect.pdb,根据递归顺序确定出所述第一编译路径信息中的首路径对应的目录字符串,其中,所述首路径对应的目录字符串为所述c:\users\alex\documents\visual\studio2015\projects\httpbackconnect\release\httpbackconnect.pdb字符串中除常规字符串以为的陌生字符串中按照从左到右的顺序确定的左边第一陌生字符串,具体的,所述users、alex、documents、visual、studio2015、projects和release为常规字符串,所述httpbackconnect和httpbackconnect.pdb为陌生字符串,因此确定首路径对应的目录字符串为左边第一个陌生字符串httpbackconnect,由于首路径对应的目录字符串是陌生字符串,是恶意程序所特有的,因此将httpbackconnect作为的特征词汇,即选取httpbackconnect作为第一特征值,用来也可以把所述特征词汇作为编写该第一恶意程序的组织或家族的名称,其中,所述编译路径可以称为项目工程路径。情况二、将所述特征词汇的哈希值确定为所述第一程序的第一特征值,所述哈希值代表所述特征词汇。步骤s102、将所述第一特征值与特征库中的特征值进行匹配。具体的,当第一特征值是特征词汇时,与特征库中的特征词汇列表进行匹配,当所述第一特征值时哈希值时,与特征库中的哈希值列表进行匹配。举例说明:假设第一特征值为特征词汇httpbackconnect,在特征库的特征词汇列表中查找是否存在与特征词汇httpbackconnect相同的特征词汇;或者,设第一特征值为特征词汇httpbackconnect的hash值,在特征库的哈希值列表中查找是否存在与特征词汇httpbackconnect的hash值相同的hash值。步骤s103、若匹配成功,则确定所述第一程序为恶意程序。具体的,当第一特征值是特征词汇时,若在特征库的特征词汇列表中查找到与特征词汇httpbackconnect相同的特征词汇,则匹配成功,确定所述第一程序为恶意程序,当所述第一特征值时哈希值时,若在特征库的hash值列表中查找到与特征词汇httpbackconnect的hash值相同的hash值,则匹配成功,确定所述第一程序为恶意程序。本发明实施例中,首先将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串;然后根据所述第一编译路径信息确定所述第一程序的第一特征值,将所述第一特征值与特征库中的特征值进行匹配;最后响应于匹配成功,则确定所述第一程序为恶意程序。根据上述方法只需要匹配从第一程序中获取的特征值信息就可以确定所述第一程序是否是恶意程序,相比于现有技术中通过相似度聚类识别恶意程序的方式,减小了资源消耗。本发明实施例中,在步骤s103之后,该方法还包括步骤s104:输出所述第一程序的第一特征值。举例说明:所述第一特征值为特征词汇时,输出特征词汇,即输出了编写该第一恶意程序的组织或家族的名称;所述第一特征值为hash值时,输出hash值,根据hash值确定出对应的特征词汇,即确定了编写该第一恶意程序的组织或家族的名称。本发明实施例中,根据所述第一特征值也可以确定出编写所述恶意程序的组织,提高识别编写所述恶意程序的组织的准确性。本发明实施例中,在步骤s100之前,该方法还包括:建立特征库。下面通过一个具体实施例对预定的特征库的获取步骤进行详细说明,具体如图2所示:步骤s200、将接收到的已知恶意程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串。步骤s201、根据所述第一编译路径信息确定所述已知恶意程序的第二特征值。步骤s202、将所述第二特征值保存到所述特征库。具体的,若所述第二特征值为特征词汇时,将所述特征词汇保存到特征词汇列表,将所述特征词汇列表保存到数据库;若所述第二特征值为哈希值时,将所述哈希值保存到哈希值列表,将所述哈希值列表保存到数据库。下面通过一个完整的实施例,对本发明提到的一种恶意程序的识别方法从特征库的生成开始进行完整的说明,具体如图3所示:步骤s300、接收到的已知恶意程序。步骤s301、将接收到的已知恶意程序进行解析,确定第二编译路径信息。其中,所述第二编译路径信息中包括目录字符串。步骤s302、将所述第二编译路径信息中包括的目录字符串进行分离处理。步骤s303、将分离后的所述目录字符串中的特征词汇确定为所述已知恶意程序的第二特征值。步骤s304、将所述第二特征值保存到所述特征库。步骤s305、接收第一程序。步骤s306、将接收到的第一程序进行解析,确定第一编译路径信息。步骤s307、将所述第一编译路径信息中包括的目录字符串进行分离处理。步骤s308、将分离后的所述目录字符串中的特征词汇确定为所述第一程序的第一特征值。步骤s309、将所述第一特征值与特征库中的第二特征值进行匹配。步骤s310、若匹配成功,则确定所述第一程序为恶意程序,并且输出所述第一程序的第一特征值。具体的,将所述输出的第一特征值确定为编写所述第一程序的组织或家族的名称。图4是本发明实施例提供的一种恶意程序的识别装置示意图。如图4所示,本实施例的恶意程序识别装置包括:第一解析单元41、第一确认单元42和匹配单元43,其中,所述第一解析单元41,用于将接收到的第一程序进行解析,确定第一编译路径信息,其中,所述第一编译路径信息中包括目录字符串;第一确认单元42,用于根据所述第一编译路径信息确定所述第一程序的第一特征值;匹配单元43,用于将所述第一特征值与特征库中的特征值进行匹配;所述确认单元42还用于,若匹配成功,则确定所述第一程序为恶意程序,并且输出所述第一程序的第一特征值。在一个实施例中,所述第一解析单元41具体用于:将接收到的第一程序进行解析,获取调试符号信息,其中,所述调试符号信息包括结构指针;根据所述调试符号信息,解析获取所述第一编译路径信息。在一个实施例中,所述第一确认单元42用于:将所述第一编译路径信息的目录字符串进行分离处理,按照设定顺序在分离后的所述目录字符串中确定出特征词汇;根据所述特征词汇确定为所述第一程序的第一特征值。在一个实施例中,所述第一确认单元42具体用于:按照设定顺序在所述分离后的目录字符串中确定首路径对应的目录字符串;将所述首路径对应的目录字符串确定为所述特征词汇。在一个实施例中,所述第一确认单元42具体还用于:所述第一确认单元具体用于:将所述特征词汇作为所述第一程序的第一特征值;或者将所述特征词汇的哈希值确定为所述第一程序的第一特征值。在一个实施例中,所述特征库是预定的,所述特征库根据建立单元44获得:所述建立单元44具体包括:第二解析单元441,将接收到的已知恶意程序进行解析,确定第二编译路径信息,其中,所述第二编译路径信息中包括目录字符串;第二确认单元442,用于根据所述第二编译路径信息确定所述已知恶意程序的第二特征值;保存单元443,用于将所述第二特征值保存到所述特征库。在一个实施例中,所述第二特征值为特征词汇或者哈希值。图5是本发明实施例的电子设备的示意图。图5所示的电子设备为通用数据传输装置,其包括通用的计算机硬件结构,其至少包括处理器51和存储器52。处理器51和存储器52通过总线53连接。存储器52适于存储处理器51可执行的指令或程序。处理器51可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器51通过执行存储器52所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线53将上述多个组件连接在一起,同时将上述组件连接到显示控制器54和显示装置以及输入/输出(i/o)装置55。输入/输出(i/o)装置55可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置55通过输入/输出(i/o)控制器56与系统相连。如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。可以使用包括但不限于无线、有线、光纤电缆、rf等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1