本申请涉及安全技术领域,尤其涉及一种软件检测方法、装置及电子设备。
背景技术:
恶意软件在传播之后,必须在宿主机上被激活运行,才能实施各类攻击行为。为了使用户能够运行恶意软件,攻击者通常会通过邮件发送一些色情标题诱导用户下载附件。
另外,由于恶意软件冒充的图标在视觉上与正常软件的图标差异较小,因此用户容易手动打开图标从而查看文件内容,此时实际上是已运行了恶意软件。由于恶意软件已经运行,因此不可避免地会使用户遭受到损失。现有技术对于冒充系统图标的恶意软件还没有比较好的解决办法。
技术实现要素:
有鉴于此,本申请提供一种新的技术方案,可以避免恶意软件被激活,从根本上避免用户遭受损失。
为实现上述目的,本申请提供技术方案如下:
根据本申请的第一方面,提出了一种软件检测方法,包括:
获取待检测软件的资源对应的第一像素数据;
将所述第一像素数据与资源数据库中的第二像素数据进行匹配,其中,所述资源数据库用于记录预定类型软件对应的样本像素数据;
根据匹配的结果,确定所述待检测软件对应的软件类型。
根据本申请的第二方面,提出了一种软件检测装置,包括:
获取模块,用于获取待检测软件的资源对应的第一像素数据;
匹配模块,用于将所述获取模块获取到的所述第一像素数据与资源数据库中的第二像素数据进行匹配,其中,所述资源数据库用于记录预定类型软件对应的样本像素数据;
第一确定模块,用于根据所述匹配模块得到的匹配的结果,确定所述待检测软件对应的软件类型。
根据本申请的第三方面,提出了一种电子设备,所述电子设备包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器,用于处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器,用于获取待检测软件的资源对应的第一像素数据;
将所述第一像素数据与资源数据库中的第二像素数据进行匹配,其中,所述资源数据库用于记录预定类型软件对应的样本像素数据;
根据匹配的结果,确定所述待检测软件对应的软件类型。
由以上技术方案可见,本申请通过将待检测软件的资源对应的第一像素数据与资源数据库中的第二像素数据进行匹配,根据匹配的结果确定待检测软件对应的软件类型,当待检测软件的软件类型为恶意软件时,用户受到诱导运行的恶意软件的攻击,可以及时提醒用户,避免用户手动触发恶意软件运行,从而从源头上避免被攻击。
附图说明
图1示出了根据本发明示例性实施例的软件检测方法的场景图;
图2示出了根据本发明示例性实施例一的软件检测方法的流程示意图;
图3a示出了根据本发明示例性实施例二的软件检测方法的流程示意图;
图3b示出了根据本发明示例性实施例二的第一像素数据的全部像素点的示意图;
图3c示出了根据本发明示例性实施例二的第二像素数据的全部像素点的示意图;
图4示出了根据本发明示例性实施例三的软件检测方法的流程示意图;
图5示出了根据本发明示例性实施例四的软件检测方法的流程示意图;
图6示出了根据本发明的一示例性实施例的电子设备的结构示意图;
图7示出了根据本发明示例性实施例一的软件检测装置的结构示意图;
图8示出了根据本发明示例性实施例二的软件检测装置的结构示意图;
图9示出了根据本发明示例性实施例三的软件检测装置的结构示意图;
图10示出了根据本发明示例性实施例四的软件检测装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1示出了根据本发明示例性实施例的软件检测方法的场景图;本申请以应用在计算机等电子设备上为例进行示例性说明,可以通过在计算机上安装软件的方式实现本申请提供的软件检测方法。如图1所示,资源提取模块11可以提取计算机的操作系统的系统图标以及用户在计算机上安装的常用的软件图标,系统图标例如为:文件夹、我的电脑、任务管理器等图标,软件图标例如为word、excel、即时聊天工具“旺旺”等软件图标,此外,本领域技术人员可以理解的是,软件中的工具栏以及菜单栏对应的图标资源与上述的软件图标从技术上来为等同的概念。
资源转换模块12用于将资源提取模块11提取到的计算机上安装的软件的系统图标和软件图标等资源转换为匹配引擎14可匹配的像素数据(本申请所述的第二像素数据),并将提取到的像素数据作为样本像素数据存储到资源数据库13中。以系统图标资源(icon)为例,系统图标资源可以分为掩码位图(maskbitmap)和色位图(colorbitmap),掩码位图表示图标资源的背景掩码色,色位图表示图标资源的像素数据,资源转换模块12可以通过提取图标资源中的色位图,将色位图转换为rgba的像素数据并存储到资源数据库中,本申请中的上述数据转换,由于一个图标资源需要4字节(byte)的数据存储,因此数据量很小,不会占用太多的存储空间。
匹配引擎14将资源数据库13中记录的预定类型软件对应的样本像素数据作为匹配依据,将被检测软件的资源对应的第一像素数据与资源数据库13记录的样本像素数据进行比较,确定二者匹配的结果,并根据匹配的结果确定待检测软件对应的软件类型。
本申请通过资源识别,当用户受到诱导运行的恶意软件的攻击时,可以及时提醒用户,避免用户手动触发恶意软件运行,从而从源头上避免被攻击。为对本申请进行进一步说明,提供下列实施例。
图2示出了根据本发明示例性实施例一的软件检测方法的流程示意图;本申请可以应用在电子设备上,资源可以具体包括系统图标资源以及软件图标资源,系统图标资源以及软件图标资源的具体图标内容可根据不同的操作 系统而定,本申请不做限制。本申请结合图1进行示例性说明,如图2所示,包括如下步骤:
步骤201,获取待检测软件的资源对应的第一像素数据。
步骤202,将第一像素数据与资源数据库中的第二像素数据进行匹配,其中,资源数据库用于记录预定类型软件对应的样本像素数据。
步骤203,根据匹配的结果,确定待检测软件对应的软件类型。
在上述步骤201中,可以通过下述方式确定待检测软件的资源:
方式一:确定当前进程中是否存在需要运行的软件的图标资源;当进程中存在需要运行的软件的图标资源时,确定需要运行的软件的图标资源为待检测软件的资源。例如,当用户通过点击鼠标触发一个病毒软件的图标时,在病毒软件运行之前,电子设备的当前进程中会检测到用户需要运行的病毒软件的图标资源,此时可以将该病毒软件的图标资源确定为待检测软件的资源,此时通过本申请的技术方案对病毒软件进行检测,可以阻断用户继续点击运行病毒软件运行。
方式二:监听是否有软件的图标资源被触发;当监听到有软件的图标资源被触发时,确定被触发的图标资源为待检测软件的资源。例如,当用户通过点击鼠标触发一个病毒软件的图标时,在监听到鼠标触发事件后,将该被鼠标触发事件对应的病毒软件的图标资源确定为待检测软件的资源,此时通过本申请的技术方案对病毒软件进行检测,可以阻断病毒软件继续运行。
方式三:确定被安装软件是否已安装完毕;当确定被安装软件已安装完毕时,确定被安装软件的资源为待检测软件的资源。例如,当用户需要安装一个新的应用软件时,当该新的软件安装完毕后,为了避免该新的软件在后续过程中的运行,可以将该新安装的软件的资源确定为待检测软件的资源,通过在软件安装时对被安装的软件进行检测,可以阻断病毒软件的安装。
在一实施例中,待检测软件的资源可以为待检测软件的图标资源、系统资源以及待检测软件的各工具栏、菜单栏等的资源。在一实施例中,第一像素数据可以为色位图空间的像素数据,通过提取待检测软件的资源在色位图 空间的像素数据即可得到第一像素数据。
在上述步骤202和步骤203中,资源数据库可以为图1所示的资源数据库13,资源数据库的确定方法可以参考下述图5所示实施例,在此先不详述。在一实施例中,可以通过确定第一像素数据与资源数据库中的多个第二像素数据的相似度值来确定待检测软件对应的软件类型,当预定类型软件表示正常软件时,如果匹配的结果表示资源数据库13中不存在与待检测软件匹配的资源,此时表示被检测软件的软件类型为恶意软件,如果匹配的结果表示资源数据库13中存在与待检测软件匹配的第二资源,此时表示被检测软件的软件类型为正常软件;可替换地,当预定类型软件表示恶意软件时,如果匹配的结果表示资源数据库13中不存在与待检测软件匹配的资源,此时表示被检测软件的软件类型为正常软件,如果匹配的结果表示资源数据库13中存在与待检测软件匹配的资源,此时表示被检测软件的软件类型为恶意软件。
由上述描述可知,本发明实施例通过将待检测软件的资源对应的第一像素数据与资源数据库中的第二像素数据进行匹配,根据匹配的结果确定待检测软件的软件类型,当待检测软件的软件类型为恶意软件时,可以及时提醒用户受到诱导运行的恶意软件的攻击,避免用户手动触发恶意软件运行,从而从源头上避免被攻击。
图3a示出了根据本发明示例性实施例二的软件检测方法的流程示意图,图3b示出了根据本发明示例性实施例二的第一像素数据的全部像素点的示意图,图3c示出了根据本发明示例性实施例二的第二像素数据的全部像素点的示意图;如图3a所示,包括如下步骤:
步骤301,获取待检测软件的资源对应的第一像素数据。
步骤302,从第一像素数据的全部像素点与资源数据库中的每一个第二像素数据的全部像素点中确定至少一个相似像素点。
步骤303,根据至少一个相似像素点确定待检测软件与第一类软件的相似度值,该相似度值为匹配的结果,资源数据库用于记录预定类型软件对应的样本像素数据。
步骤304,确定相似度值是否大于或者等于第二预设阈值,当相似度值小于第二预设阈值时,执行步骤305,当相似度值大于或者等于第二预设阈值时,执行步骤307。
步骤305,确定待检测软件对应的软件类型为第二类软件,执行步骤306。
步骤306,生成提示消息,流程结束。
步骤307,确定待检测软件对应的软件类型为第一类软件,可以对被检测软件进行后续处理,例如,如果被检测软件被触发,则运行被检测软件。
上述步骤301和步骤307的相关描述可以参见上述图2所示实施例的相关描述,在此不再详述。
下面结合图3b和图3c对上述步骤302-步骤306进行场景说明,如图3b和图3c所示,将第一像素数据的全部像素点与资源数据库中的第二资源的第二像素数据的全部像素点进行相似度计算,例如,以像素点为3*4的图标为例,每个像素点代表一个颜色值,对于图3b和图3c所示的待检测元件的资源对应的第一像素数据和资源数据库中记录的第二像素数据各自对应的全部像素点中,将图3b和图3c中同一个像素位置的两个像素点进行比较,得到相似像素点的个数为8个,则可得到待检测软件与预定类型软件的相似度值为8/12*100%=66.7%。
本实施例中,由于恶意软件通常会模仿系统图标资源,但恶意软件的图标资源上的像素数据与系统图标资源的像素数据不会完全相同,因此本申请通过第一像素数据与第二像素数据中的全部像素点的相似度值,可以有效的判断待检测软件的资源是否是仿冒了资源数据库中已记录的系统图标等资源,从而为用户提供参考依据。
图4示出了根据本发明示例性实施例三的软件检测方法的流程示意图;如图4所示,包括如下步骤:
步骤401,获取待检测软件的资源对应的第一像素数据。
步骤402,基于待检测软件的资源与第二像素数据的像素位置,确定第一像素数据中的每一个像素点与第二像素数据中对应像素位置的像素点之间 的差值,得到至少一个差值。
步骤403,将至少一个差值中小于第一预设阈值的差值所对应的像素点确定为相似像素点,得到至少一个相似像素点。
步骤404,确定至少一个相似像素点的第一个数以及第一像素数据的全部像素点的第二个数。
步骤405,根据第一个数和第二个数确定待检测软件与预定类型软件的相似度值。
步骤406,当相似度值表示待检测软件的软件类型为第二类软件时,生成提示消息。
上述步骤401和步骤406的相关描述可以参见上述图2所示实施例的相关描述,在此不再详述。
下面以第一类软件表示正常软件、第二类软件表示恶意软件并结合图3b和图3c对上述步骤402-步骤405进行场景说明,由于单个像素点之间的相似度值作为整体像素相似度的基础,从每个像素点对应的红绿蓝(rgb)数值来看,同样颜色的数值相同,但从人的视觉来看,rgb数值相差不大的情况下,很难辨认颜色的差异,因此当恶意软件的图标资源模仿系统图标时,人眼不能够识别出恶意软件的图标资源。
本实施例以一个像素点的数值由4个维度表示,分别为红(red)、绿(green)、蓝(blue)和阿尔法(alpha),每个数值占用1字节,经过对比可知,当上述四个数值的变动在一定的范围之内时,人眼视觉并未意识到颜色的变化,例如,像素点(90,80,70,100)和像素点(90,80,65,100),对于红、绿、阿尔法值均相同的情形下,蓝色相差5时,视觉上仍认为上述颜色非常接近。因此本申请通过确定相同像素位置的像素点的数值的差值,例如,上述3*4中的图标中,会得到12个差值,将该12个差值中小于第一预设阈值的差值所对应的像素点确定为相似像素点,例如,像素位置为[0,0]、[0,2]、[0,3]、[1,3]、[2,0]、[2,1]、[2,2]、[2,3]的像素点被确定为相似像素点。
在得到上述8个(本申请中所述的第一个数)相似像素点后,由于第一像素数据的全部像素点的第二个数为12,则可得到待检测软件与正常软件的相似度值为8/12*100%=66.7%。
在一实施例中,第一预设阈值可以基于大量的资源样本进行调整,第一预设阈值的大小不做限制,只要能够确保有效检测出恶意软件并避免对正常软件的误报即可。
本实施例中,基于第一像素数据与第二像素数据的像素位置,对单个像素点的相似度进行筛选,继而计算待检测软件和预定类型软件的整体像素数据的相似度值,从而实现了从图标资源的整体相似度和和单个像素点的相似度的双重计算,既可以有效地检测出相似的图标资源,又能够有效地避免对正常软件的误判。
图5示出了根据本发明示例性实施例四的软件检测方法的流程示意图;本实施例以如何更新资源数据库并且预定类型软件为正常软件为例进行示例性说明,如图5所示,包括如下步骤:
步骤501,检测是否有新安装软件,当检测到新安装软件时,执行步骤502,当未检测到新安装软件时,保持检测状态。
步骤502,当检测到新安装软件时,提取新安装软件的图标资源的色位图。
步骤503,将新安装软件的图标资源的色位图转化为第二像素数据后存储在资源数据库中。
例如,当检测到用户新安装了“旺旺”即时聊天工具时,提取“旺旺”的图标资源的色位图,将“旺旺”的图标资源的色位图转化为第二像素数据存储在资源数据库中,从而可以使资源数据库存储更多的正常软件的图标的像素数据,使后续对恶意软件的图标资源识别的具有更多的参考依据,进而提高检测恶意软件的准确度。
本领域技术人员可以理解的是,本申请也可以通过对恶意软件的图标资源进行处理,将恶意软件的图标资源对应的像素数据存储在资源数据库中, 当检测到待检测软件的资源的第一像素数据与资源数据库中记录的恶意软件的图标资源对应的第二像素数据相匹配时,即可确定待检测软件为恶意软件。
通过上述实施例,本申请可以扩大资源数据库中存储的样本像素数据的数据量,确保后续待检测软件在检测软件类型时的准确度。
对应于上述的软件检测方法,本申请还提出了图6所示的根据本发明的一示例性实施例的电子设备的示意结构图。请参考图6,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成软件检测装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
其中,处理器,用于获取待检测软件的资源对应的第一像素数据;
将第一像素数据与资源数据库中的第二像素数据进行匹配,其中,资源数据库用于记录预定类型软件对应的样本像素数据;
根据匹配的结果,确定待检测软件对应的软件类型。
图7示出了根据本发明示例性实施例一的软件检测装置的结构示意图;如图7所示,该软件检测装置可以包括:获取模块71、匹配模块72、第一确定模块73。其中:
获取模块71,用于获取待检测软件的资源对应的第一像素数据;
匹配模块72,用于将获取模块71获取到的第一像素数据与资源数据库中的第二像素数据进行匹配,其中,资源数据库用于记录预定类型软件对应的样本像素数据;
第一确定模块73,用于当匹配模块72得到的匹配的结果,确定待检测软件对应的软件类型。
图8示出了根据本发明示例性实施例二的软件检测装置的结构示意图;如图8所示,在上述图7所示实施例的基础上,匹配模块72可包括:
第一确定单元721,用于从获取模块71获取到的第一像素数据的全部像素点与资源数据库中的每一个第二像素数据的全部像素点中确定至少一个相似像素点;
第二确定单元722,用于根据第一确定单元731确定的至少一个相似像素点确定待检测软件与预定类型软件的相似度值,相似度值为匹配的结果。
在一实施例中,第一确定单元721可包括:
第一确定子单元7211,用于基于像素位置,确定第一像素数据中的每一个像素点与资源数据库中的每一个第二像素数据中对应像素位置的像素点之间的差值,得到至少一个差值;
第二确定子单元7212,用于将第一确定子单元7211确定的至少一个差值中小于第一预设阈值的差值所对应的像素点确定为相似像素点,得到至少一个相似像素点。
在一实施例中,第二确定单元722可包括:
第三确定子单元7221,用于确定至少一个相似像素点的第一个数以及第一像素数据的全部像素点的第二个数;
第四确定子单元7222,用于根据第三确定子单元7221确定的第一个数和第二个数确定待检测软件与预定类型软件的相似度值。
在一实施例中,第一确定模块73可包括:
第三确定单元731,用于当第二确定单元722确定的相似度值大于或者等于第二预设阈值时,确定待检测软件对应的软件类型为第一类软件,第一类软件的软件类型与预定类型软件的软件类型相同;
第四确定模块732,用于当第二确定单元722确定的相似度值小于第二预设阈值时,确定待检测软件对应的软件类型为第二类软件,第二类软件的软件类型与预定类型软件的软件类型不相同。
在一实施例中,装置还可包括:
提示模块74,用于当第四确定模块732确定待检测软件的软件类型为第二类软件时,生成提示消息。
图9示出了根据本发明示例性实施例三的软件检测装置的结构示意图;如图9所示,在上述图7或图8所示实施例的基础上,装置还可包括:
检测模块75,用于检测是否有新安装软件;
提取模块76,用于当检测模块75检测到新安装软件时,提取新安装软件的图标资源的色位图;
存储模块77,用于将提取模块76提取到的新安装软件的图标资源的色位图转化为第二像素数据后存储在资源数据库中,以供匹配模块72将获取模块71获取到的第一像素数据与存储模块77存储有新安装软件的像素数据的资源数据库中的第二像素数据进行匹配。
图10示出了根据本发明示例性实施例四的软件检测装置的结构示意图;如图10所示,在上述图7-图9任一所示实施例的基础上,装置还可包括:
第二确定模块78,用于确定当前进程中是否存在需要运行的软件的图标资源;
第三确定模块79,用于当第二确定模块78确定进程中存在需要运行的软件的图标资源时,确定该图标资源为待检测软件的资源,以供获取模块71获取第三确定模块79确定的待检测软件的资源对应的第一像素数据。
在一实施例中,装置还可包括:
监听模块80,用于监听是否有软件的图标资源被触发;
第四确定模块81,用于当监听模块81监听到有软件的图标资源被触发时,确定被触发的图标资源为待检测软件的资源,以供获取模块71获取第四确定模块80确定的待检测软件的资源对应的第一像素数据。
在一实施例中,装置还可包括:
第五确定模块82,用于确定被安装软件是否已安装完毕;
第六确定模块83,用于当第五确定模块82确定被安装软件已安装完毕时,确定被安装软件的资源为待检测软件的资源,以供获取模块71获取第六确定模块83确定的待检测软件的资源对应的第一像素数据。
上述实施例可见,本申请通过在用户运行待检测软件之前对图标资源进 行识别,从而可以及时提醒用户该软件存在的风险,当待检测软件为恶意软件时,可以阻断恶意软件的运行,从根本上避免用户遭受损失。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。