CN115828157A - 软件的识别方法、装置及计算机可读存储介质 - Google Patents
软件的识别方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115828157A CN115828157A CN202211510310.9A CN202211510310A CN115828157A CN 115828157 A CN115828157 A CN 115828157A CN 202211510310 A CN202211510310 A CN 202211510310A CN 115828157 A CN115828157 A CN 115828157A
- Authority
- CN
- China
- Prior art keywords
- software
- sample
- features
- feature
- ratio
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本公开提供了一种软件的识别方法、装置及计算机可读存储介质,涉及软件安全技术领域,所述方法包括:获取彼此不同的多个特征,多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征;针对多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;从多个特征中确定绝对值大于参考值的第三组特征;基于第三组特征确定训练样本,并利用训练样本对软件识别模型进行训练。
Description
技术领域
本公开涉及软件安全技术领域,尤其是一种软件的识别方法、装置及计算机可读存储介质。
背景技术
随着信息技术的不断发展,软件的种类也越来越多。目前,往往利用软件的应用签名识别出该软件属于正常软件还是非正常软件。
发明内容
发明人注意到,相关技术中有些软件不具有应用签名或具有伪造的应用签名,因此无法准确地识别出是正常软件还是非正常软件。
为了解决上述问题,本公开实施例提出了如下解决方案。
根据本公开实施例的一方面,提供一种软件的识别方法,包括:获取彼此不同的多个特征,所述多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征;针对所述多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;从所述多个特征中确定所述绝对值大于参考值的第三组特征;基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练。
在一些实施例中,所述基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练包括:基于所述第三组特征确定样本非正常软件集合中每个样本非正常软件的第一样本特征信息,所述第一样本特征信息包括与所述第三组特征对应的第一向量,所述训练样本包括所述第一样本特征信息;将所述第一样本特征信息作为输入,将每个样本非正常软件的标签作为输出对所述软件识别模型进行训练。
在一些实施例中,所述样本非正常软件集合中的任意一个样本非正常软件均是第一样本非正常软件,所述第三组特征中的任意一个特征均是第一特征,其中:在所述第一样本非正常软件具有所述第一特征的情况下,所述第一向量中与所述第一特征对应的元素为第一数值;在所述第一样本非正常软件不具有所述第一特征的情况下,所述第一向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
在一些实施例中,所述基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练包括:基于所述第三组特征确定样本正常软件集合中每个样本正常软件的第二样本特征信息,所述第二样本特征信息包括与所述第三组特征对应的第二向量,所述训练样本包括所述第二样本特征信息;将所述第二样本特征信息作为输入,将每个样本正常软件的标签作为输出对所述软件识别模型进行训练。
在一些实施例中,所述样本正常软件集合中的任意一个样本正常软件均是第一样本正常软件,所述第三组特征中的任意一个特征均是第一特征,其中:在所述第一样本正常软件具有所述第一特征的情况下,所述第二向量中与所述第一特征对应的元素为第一数值;在所述第一样本正常软件不具有所述第一特征的情况下,所述第二向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
在一些实施例中,所述第一组特征和所述第二组特征中的至少一组包括静态特征和动态特征,所述静态特征包括软件需要的系统权限、活动组件、服务组件、广播接收器组件和内容提供器组件中的至少一个,所述动态特征包括是否具有激活设备管理器、读取呼叫日志和获取运行服务的行为中的至少一个。
在一些实施例中,所述动态特征还包括第一动态特征、第二动态特征和第三动态特征中的至少一个:第一动态特征包括访问共享应用数据、获取访问位置、获取安装所述软件的设备的标识、获取用户标识符、获取所述设备安装的应用程序中的至少一个;第二动态特征包括激活所述活动组件、创建文件、对统一资源定位符(URL)进行初始化、类加载、运行时报错、循环执行任务、设置定时任务、启动所述服务组件、在网页视图中加载网站中的至少一个;以及第三动态特征包括软件在运行过程中显示的窗口页面信息。
在一些实施例中,所述方法还包括:基于所述第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量;将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
根据本公开实施例的还一方面,提供一种软件的识别方法,包括:基于第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量,其中,所述第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
在一些实施例中,所述第三组特征中的任意一个特征均是第一特征,其中:在所述被测软件具有所述第一特征的情况下,所述被测向量中与所述第一特征对应的元素为第一数值;在所述被测软件不具有所述第一特征的情况下,所述被测向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
在一些实施例中,所述软件识别模型包括支持向量机模型、随机森林模型或逻辑回归模型。
根据本公开实施例的还一方面,提供一种软件的识别装置,包括:获取模块,被配置为获取彼此不同的多个特征,所述多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征;第一确定模块,被配置为针对所述多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;第二确定模块,被配置为从所述多个特征中确定所述绝对值大于参考值的第三组特征;训练模块,被配置为基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练。
根据本公开实施例的还一方面,提供一种软件的识别装置,包括:确定模块,被配置为基于第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量,所述第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,其中,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;识别模块,被配置为将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
根据本公开实施例的还一方面,提供一种软件的识别装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。
根据本公开实施例的还一方面,提供一种计算机可读存储介质,包括计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述任意一个实施例所述的方法。
根据本公开实施例的还一方面,提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现上述任意一个实施例所述的方法。
本公开实施例中,获取包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征的多个特征,针对每个特征确定样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值与样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值的差值的绝对值,并从这多个特征中确定绝对值大于参考值的相关性更强的第三组特征,进而基于第三组特征确定训练样本,并利用该训练样本对软件识别模型进行训练。如此,使该软件识别模型可以准确地识别出被测软件是正常软件还是非正常软件。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一些实施例的软件的识别方法的流程示意图;
图2是根据本公开另一些实施例的软件的识别方法的流程示意图;
图3是根据本公开一些实施例的软件的识别装置的结构示意图;
图4是根据本公开另一些实施例的软件的识别装置的结构示意图;
图5是根据本公开又一些实施例的软件的识别装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,在本公开的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性和顺序。类似地,虽然在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或者以顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。
本公开中提及的软件包括但不限于可运行在Windows系统或Linux系统(包括诸如基于Linux系统的安卓系统之类的系统)的软件。
图1是根据本公开一些实施例的软件的识别方法的流程示意图。
在步骤102,获取彼此不同的多个特征。这里,多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征。
在一些实施例中,正常软件可以指对该软件的用户没有恶意行为(例如,窃取用户相册)并且对该软件所安装的设备、系统没有恶意行为(例如,损坏硬件、篡改系统文件)的软件。
在一些实施例中,非正常软件可以指对该软件的用户存在恶意行为和/或对该软件所安装的设备、系统存在恶意行为的软件。
在一些实施例中,第一组特征可以包括样本正常软件的静态特征或动态特征,也可以包括样本正常软件的静态特征和动态特征。
在这种情况下,静态特征可以包括样本正常软件需要的系统权限、活动组件、服务组件、广播接收器组件和内容提供器组件中的至少一个。
在一些实施例中,第二组特征可以包括样本非正常软件的静态特征或动态特征,也可以包括样本正常软件的静态特征和动态特征。
在这种情况下,静态特征包括样本非正常软件需要的系统权限、活动组件、服务组件、广播接收器组件和内容提供器组件中的至少一个。
在一些实施例中,动态特征包括是否具有激活设备管理器、读取呼叫日志和获取运行服务的行为中的至少一个。
在一些实施例中,可以通过解压样本正常软件和/或样本非正常软件的安装包获取对应的静态特征。例如,可以通过解压得到的“manifest.xml”和“class.dex”获取对应的静态特征。
在一些实施例中,可以通过在虚拟环境(例如,沙盒)中运行样本正常软件和/或样本非正常软件的安装包来获取对应的动态特征。
在步骤104,针对这多个特征中每个特征,确定第一比值与第二比值的差值的绝对值。这里,第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值。
例如,样本正常软件集合中存在5个正常软件,分别为正常软件1、正常软件2、正常软件3、正常软件4和正常软件5,正常软件1具有特征1和特征2,正常软件2具有特征1、特征2和特征3,正常软件3具有特征4和特征5,正常软件4具有特征1和特征3,正常软件5具有特征1和特征4。
这种情况下,由于样本正常软件集合中存在4个正常软件具有特征1,所以特征1的第一比值为0.8。以此类推,特征2的第一比值为0.4,特征3的第一比值为0.4,特征4的第一比值为0.4,特征5的第一比值为0.2。
又例如,样本非正常软件集合中存在4个非正常软件,分别为非正常软件1、非正常软件2、非正常软件3和非正常软件4,非正常软件1具有特征5和特征6,非正常软件2具有特征4、特征5和特征6,非正常软件3具有特征5和特征7,非正常软件4具有特征1和特征5。
这种情况下,由于样本非正常软件集合中存在4个非正常软件具有特征5,所以特征5的第二比值为1。以此类推,特征1的第二比值为0.25,特征4的第二比值为0.25,特征6的第二比值为0.5,特征7的第二比值为0.25。
将这两种情况结合起来可知,特征1的第一比值与第二比值的差值的绝对值为0.55,特征2的第一比值与第二比值的差值的绝对值为0.4,特征3的第一比值与第二比值的差值的绝对值为0.4,特征4的第一比值与第二比值的差值的绝对值为0.15,特征5的第一比值与第二比值的差值的绝对值为0.8,特征6的第一比值与第二比值的差值的绝对值为0.5,特征7的第一比值与第二比值的差值的绝对值为0.25(这里,由于样本正常软件集合的样本正常软件都不具有特征6或特征7,所以对应的第一比值为0)。
在步骤106,从这多个特征中确定绝对值大于参考值的第三组特征。
在一些实施例中,在需要第三组特征中具有预设数量的特征的情况下,参考值可以是预设数量对应的最后一个特征的绝对值。例如,在需要第三组特征中具有5个特征的情况下,参考值是多个特征的绝对值按照从大到小排第5名的特征的绝对值。
在另一些实施例中,参考值可以是固定数值,即大于该参考值的绝对值对应的特征均被加入第三组特征。
在步骤108,基于第三组特征确定训练样本,并利用训练样本对软件识别模型进行训练。
在一些实施例中,软件识别模型可以包括诸如支持向量机模型、随机森林模型或逻辑回归模型的有监督学习的机器学习模型。
如此,获取包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征的多个特征,针对每个特征确定样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值与样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值的差值的绝对值,并从这多个特征中确定绝对值大于参考值的相关性更强的第三组特征,进而基于第三组特征确定训练样本,并利用该训练样本对软件识别模型进行训练。如此,使该软件识别模型可以准确地识别出被测软件是正常软件还是非正常软件。
在一些实施例中,可以基于第三组特征确定样本非正常软件集合中每个样本非正常软件的第一样本特征信息。这里,第一样本特征信息包括与第三组特征对应的第一向量,训练样本包括第一样本特征信息。这种情况下,可以将第一样本特征信息作为输入,将每个样本非正常软件的标签作为输出对软件识别模型进行训练。
如此,通过第三组特征确定样本非正常软件集合中每个样本非正常软件的第一样本特征信息,并将第一样本特征信息作为输入,将每个样本非正常软件的标签作为输出对软件识别模型进行训练,从而使该软件识别模型可以准确地识别出被测软件是否为非正常软件。例如,可以输出被测软件为非正常软件的可能性。
作为一些实施方式,样本非正常软件集合中的任意一个样本非正常软件可以均是第一样本非正常软件,第三组特征中的任意一个特征可以均是第一特征。这种情况下,在第一样本非正常软件具有第一特征的情况下,第一向量中与第一特征对应的元素为第一数值;在第一样本非正常软件不具有第一特征的情况下,第一向量中与第一特征对应的元素为与第一数值不同的第二数值。
例如,第三组特征为特征1、特征2和特征3,第一样本非正常软件具有特征1、特征3、特征4和特征5,那么第一向量为(1,0,1)。这里,第一数值是“1”,第二数值为“0”。
在另一些实施例中,可以基于第三组特征确定样本正常软件集合中每个样本正常软件的第二样本特征信息。这里,第二样本特征信息包括与第三组特征对应的第二向量,训练样本包括第二样本特征信息。这种情况下,可以将第二样本特征信息作为输入,将每个样本正常软件的标签作为输出对软件识别模型进行训练。
如此,通过第三组特征确定样本正常软件集合中每个样本正常软件的第二样本特征信息,并将第二样本特征信息作为输入,将每个样本正常软件的标签作为输出对软件识别模型进行训练,从而使该软件识别模型可以准确地识别出被测软件是否为正常软件。例如,可以输出被测软件为正常软件的可能性。
作为一些实施方式,样本正常软件集合中的任意一个样本正常软件可以均是第一样本正常软件,第三组特征中的任意一个特征可以均是第一特征。这种情况下,在第一样本正常软件具有第一特征的情况下,第二向量中与第一特征对应的元素为第一数值;在第一样本正常软件不具有第一特征的情况下,第二向量中与第一特征对应的元素为与第一数值不同的第二数值。
例如,第三组特征为特征1、特征2和特征3,第一样本正常软件具有特征1、特征2和特征4和特征6,那么第二向量为(1,1,0)。这里,第一数值是“1”,第二数值为“0”。
在一些实施例中,可以利用第一样本训练信息和第二样本训练信息分别作为输入,将每个样本非正常软件的标签和每个样本正常软件的标签分别作为输出对同一软件识别模型进行训练。如此,使该软件识别模型可以准确地识别出被测软件是正常软件还是非正常软件。例如,可以输出被测软件为正常软件的可能性和非正常软件的可能性。
在一些实施例中,多个样本非正常软件的第一向量可以构成第一矩阵,第一矩阵的每一行对应一个样本非正常软件;在另一些实施例中,多个样本正常软件的第二向量可以构成第二矩阵,第二矩阵的每一行对应一个样本正常软件。
如此,通过将多个向量构建成矩阵,可以在训练软件识别模型的情况下直接将对应的矩阵作为输入,从而提高训练的准确性。
作为一些实施方式,可以基于第三组特征确定样本非正常软件集合中每个样本非正常软件与第三组特征对应的第一向量。这里,训练样本包括多个样本非正常软件的第一向量构成的第一矩阵。这种情况下,可以将第一矩阵作为输入,将样本非正常软件的标签作为输出对软件识别模型进行训练。
作为另一些实施方式,可以基于第三组特征确定样本正常软件集合中每个样本正常软件与第三组特征对应的第二向量。这里,训练样本包括多个样本正常软件的第二向量构成的第二矩阵。这种情况下,可以将第二矩阵作为输入,将样本正常软件的标签作为输出对软件识别模型进行训练。
作为又一些实施方式,可以利用第一矩阵和第二矩阵分别作为输入,将样本非正常软件的标签和样本正常软件的标签分别作为输出对同一软件识别模型进行训练。
在一些实施例中,动态特征还包括第一动态特征、第二动态特征和第三动态特征中的至少一个。
第一动态特征包括访问共享应用数据、获取访问位置、获取安装软件的设备的标识、获取用户标识符、获取该设备安装的应用程序中的至少一个。这里,获取安装软件的设备的标识可以指获取安装了样本正常软件或样本非正常软件的设备的标识,标识例如可以是设备对应的手机号码和/或国际移动设备识别码(IMEI)。
第二动态特征包括激活活动组件、创建文件、对统一资源定位符(URL)进行初始化、类加载、运行时报错、循环执行任务、设置定时任务、启动服务组件、在网页视图(Webview)中加载网站中的至少一个。
第三动态特征包括软件在运行过程中显示的窗口页面信息,例如软件在运行过程中的界面中的图片和/或文字。这里,软件可以指样本正常软件或样本非正常软件。
如此,通过增加动态特征的种类,可以使第三组特征中特征的种类选择更多,进而更准确地确定训练样本,从而使软件识别模型可以更准确地识别出被测软件是正常软件还是非正常软件。
在一些实施例中,可以基于第三组特征确定被测软件的特征信息,特征信息包括与第三组特征对应的被测向量。
这种情况下,可以将被测向量输入软件识别模型以得到被测软件的识别结果。例如,可以输出被测软件是正常软件的概率和/或非正常软件的概率。
作为一些实施方式,第三组特征中的任意一个特征可以均是第一特征,在被测软件具有第一特征的情况下,被测向量中与第一特征对应的元素为第一数值;在被测软件不具有第一特征的情况下,被测向量中与第一特征对应的元素为与第一数值不同的第二数值。
例如,第三组特征为特征1、特征2和特征3,被测软件具有特征1、特征2、特征3和特征5,那么被测向量为(1,1,1)。这里,第一数值是“1”,第二数值为“0”。
如此,基于第三组特征确定被测软件的特征信息,进而将特征信息中包括的被测向量输入软件识别模型以得到被测软件的识别结果,从而可以准确地识别出被测软件是正常软件还是非正常软件。
图2是根据本公开另一些实施例的软件的识别方法的流程示意图。
在步骤202,基于第三组特征确定被测软件的特征信息。这里,特征信息包括与第三组特征对应的被测向量,其中,第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值。
在步骤204,将被测向量输入软件识别模型以得到被测软件的识别结果。
如此,基于第三组特征确定被测软件的特征信息,进而将特征信息中包括的被测向量输入软件识别模型以得到被测软件的识别结果,从而可以准确地识别出被测软件是正常软件还是非正常软件。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图3是根据本公开一些实施例的软件的识别装置的结构示意图。
如图3所示,软件的识别装置包括获取模块301、第一确定模块302、第二确定模块303和训练模块304。
获取模块301被配置为获取彼此不同的多个特征,多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征。
第一确定模块302被配置为针对多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值。
第二确定模块303被配置为从多个特征中确定绝对值大于参考值的第三组特征。
训练模块304被配置为基于第三组特征确定训练样本,并利用训练样本对软件识别模型进行训练。
图4是根据本公开另一些实施例的软件的识别装置的结构示意图。
如图4所示,软件的识别装置包括确定模块401和识别模块402。
确定模块401被配置为基于第三组特征确定被测软件的特征信息,特征信息包括与第三组特征对应的被测向量,第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,其中,第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值。
识别模块402被配置为将被测向量输入软件识别模型以得到被测软件的识别结果。
在一些实施例中,软件的识别装置还可以包括其他模块,以执行上述任意一个实施例的软件的识别方法。
图5是根据本公开又一些实施例的软件的识别装置的结构示意图。
如图5所示,软件的识别装置500包括存储器501以及耦接至该存储器501的处理器502,处理器502被配置为基于存储在存储器501中的指令,执行前述任意一个实施例的方法。
存储器501例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
软件的识别装置500还可以包括输入输出接口503、网络接口504、存储接口505等。这些接口503、504、505之间、以及存储器501与处理器502之间例如可以通过总线506连接。输入输出接口503为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口504为各种联网设备提供连接接口。存储接口505为SD卡、U盘等外置存储设备提供连接接口。
本公开实施例还提供了一种计算机可读存储介质,包括计算机程序指令,该计算机程序指令被处理器执行时实现上述任意一个实施例的方法。
本公开实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例的方法。
至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解,可由计算机程序指令实现流程图中一个流程或多个流程和/或方框图中一个方框或多个方框中指定的功能。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。
Claims (16)
1.一种软件的识别方法,包括:
获取彼此不同的多个特征,所述多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征;
针对所述多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;
从所述多个特征中确定所述绝对值大于参考值的第三组特征;
基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练。
2.根据权利要求1所述的方法,其中,所述基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练包括:
基于所述第三组特征确定样本非正常软件集合中每个样本非正常软件的第一样本特征信息,所述第一样本特征信息包括与所述第三组特征对应的第一向量,所述训练样本包括所述第一样本特征信息;
将所述第一样本特征信息作为输入,将每个样本非正常软件的标签作为输出对所述软件识别模型进行训练。
3.根据权利要求2所述的方法,其中,所述样本非正常软件集合中的任意一个样本非正常软件均是第一样本非正常软件,所述第三组特征中的任意一个特征均是第一特征,其中:
在所述第一样本非正常软件具有所述第一特征的情况下,所述第一向量中与所述第一特征对应的元素为第一数值;
在所述第一样本非正常软件不具有所述第一特征的情况下,所述第一向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
4.根据权利要求1-3任意一项所述的方法,其中,所述基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练包括:
基于所述第三组特征确定样本正常软件集合中每个样本正常软件的第二样本特征信息,所述第二样本特征信息包括与所述第三组特征对应的第二向量,所述训练样本包括所述第二样本特征信息;
将所述第二样本特征信息作为输入,将每个样本正常软件的标签作为输出对所述软件识别模型进行训练。
5.根据权利要求4所述的方法,其中,所述样本正常软件集合中的任意一个样本正常软件均是第一样本正常软件,所述第三组特征中的任意一个特征均是第一特征,其中:
在所述第一样本正常软件具有所述第一特征的情况下,所述第二向量中与所述第一特征对应的元素为第一数值;
在所述第一样本正常软件不具有所述第一特征的情况下,所述第二向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
6.根据权利要求1所述的方法,其中,所述第一组特征和所述第二组特征中的至少一组包括静态特征和动态特征,所述静态特征包括软件需要的系统权限、活动组件、服务组件、广播接收器组件和内容提供器组件中的至少一个,所述动态特征包括是否具有激活设备管理器、读取呼叫日志和获取运行服务的行为中的至少一个。
7.根据权利要求6所述的方法,其中,所述动态特征还包括第一动态特征、第二动态特征和第三动态特征中的至少一个:
第一动态特征包括访问共享应用数据、获取访问位置、获取安装所述软件的设备的标识、获取用户标识符、获取所述设备安装的应用程序中的至少一个;
第二动态特征包括激活所述活动组件、创建文件、对统一资源定位符URL进行初始化、类加载、运行时报错、循环执行任务、设置定时任务、启动所述服务组件、在网页视图中加载网站中的至少一个;以及
第三动态特征包括软件在运行过程中显示的窗口页面信息。
8.根据权利要求1所述的方法,还包括:
基于所述第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量;
将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
9.一种软件的识别方法,包括:
基于第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量,其中,所述第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;
将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
10.根据权利要求8或9所述的方法,其中,所述第三组特征中的任意一个特征均是第一特征,其中:
在所述被测软件具有所述第一特征的情况下,所述被测向量中与所述第一特征对应的元素为第一数值;
在所述被测软件不具有所述第一特征的情况下,所述被测向量中与所述第一特征对应的元素为与所述第一数值不同的第二数值。
11.根据权利要求1、8或9所述的方法,其中,所述软件识别模型包括支持向量机模型、随机森林模型或逻辑回归模型。
12.一种软件的识别装置,包括:
获取模块,被配置为获取彼此不同的多个特征,所述多个特征包括样本正常软件集合的第一组特征和样本非正常软件集合的第二组特征;
第一确定模块,被配置为针对所述多个特征中每个特征,确定第一比值与第二比值的差值的绝对值,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;
第二确定模块,被配置为从所述多个特征中确定所述绝对值大于参考值的第三组特征;
训练模块,被配置为基于所述第三组特征确定训练样本,并利用所述训练样本对软件识别模型进行训练。
13.一种软件的识别装置,包括:
确定模块,被配置为基于第三组特征确定被测软件的特征信息,所述特征信息包括与所述第三组特征对应的被测向量,所述第三组特征中的每个特征的第一比值与第二比值的差值的绝对值大于参考值,其中,所述第一比值为样本正常软件集合中具有该特征的样本正常软件的数量与样本正常软件集合中样本正常软件的总数量的比值,所述第二比值为样本非正常软件集合中具有该特征的样本非正常软件的数量与样本非正常软件集合中样本非正常软件的总数量的比值;
识别模块,被配置为将所述被测向量输入软件识别模型以得到所述被测软件的识别结果。
14.一种软件的识别装置,包括:
存储器;以及
耦接至所述存储器的处理器,被配置为基于存储在所述存储器中的指令,执行权利要求1-11任意一项所述的方法。
15.一种计算机可读存储介质,包括计算机程序指令,其中,所述计算机程序指令被处理器执行时实现权利要求1-11任意一项所述的方法。
16.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-11任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211510310.9A CN115828157A (zh) | 2022-11-29 | 2022-11-29 | 软件的识别方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211510310.9A CN115828157A (zh) | 2022-11-29 | 2022-11-29 | 软件的识别方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115828157A true CN115828157A (zh) | 2023-03-21 |
Family
ID=85532589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211510310.9A Pending CN115828157A (zh) | 2022-11-29 | 2022-11-29 | 软件的识别方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828157A (zh) |
-
2022
- 2022-11-29 CN CN202211510310.9A patent/CN115828157A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513937B2 (en) | Method and client for using an embedded ActiveX plug-in in a browser | |
CN107133165B (zh) | 浏览器兼容性检测方法及装置 | |
CN111045927A (zh) | 性能测试评估方法、装置、计算机设备及可读存储介质 | |
CN105808227A (zh) | 一种美术资源文件检测方法和装置 | |
CN113496017B (zh) | 验证方法、装置、设备和存储介质 | |
US20150186195A1 (en) | Method of analysis application object which computer-executable, server performing the same and storage media storing the same | |
US20150143342A1 (en) | Functional validation of software | |
CN112948234B (zh) | 接口测试方法、装置及电子设备 | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
Sanz et al. | Instance-based anomaly method for Android malware detection | |
CN113434400A (zh) | 测试用例的执行方法、装置、计算机设备及存储介质 | |
CN111897723A (zh) | 一种测试应用的方法及装置 | |
CN112882957B (zh) | 一种测试任务有效性检查方法和装置 | |
CN113505895A (zh) | 一种机器学习引擎服务系统及模型训练方法和配置方法 | |
CN116401113B (zh) | 一种异构众核架构加速卡的环境验证方法、装置及介质 | |
CN112231696A (zh) | 恶意样本的识别方法、装置、计算设备以及介质 | |
WO2009097241A1 (en) | A method and system for assessing deployment and un-deployment of software installations | |
CN116483888A (zh) | 程序评估方法及装置、电子设备和计算机可读存储介质 | |
CN115828157A (zh) | 软件的识别方法、装置及计算机可读存储介质 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN113419738A (zh) | 接口文档的生成方法、装置及接口管理设备 | |
CN114238140A (zh) | 一种准入测试方法及装置 | |
CN116340127A (zh) | 一种接口测试方法、装置 | |
CN114003421A (zh) | 虚拟机超时机制测试方法、系统、终端及存储介质 |
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 |