文件安全性识别方法和装置与流程

文档序号:12864113阅读:160来源:国知局
文件安全性识别方法和装置与流程

本申请涉及计算机领域,具体涉及安全技术领域,尤其涉及文件安全性识别方法和装置。



背景技术:

随着互联网的快速发展,用户可下载的网络资源也越来越丰富。用户在需要安装某个应用时,仅需下载该应用的安装包文件,然后对应用进行安装即可。在这一过程中,确保用户下载的安装包文件是否安全是重中之重。目前,通常采用的检查安装包文件是否安全的方式为:预先提取病毒样本中的一些特征,然后,提取待识别文件中的与该特征相同类型的特征,当提取出的待识别文件中的特征与预先获取的病毒样本的特征匹配时,则判断为病毒文件。

然而,当采用上述方式检查安装包文件是否安全时,一方面,受到病毒样本个数的限制,难以全面覆盖所有的攻击类型,造成病毒文件的漏检。另一方面,病毒文件通常在短时间内通过个别特征的变化即可生成新的病毒文件,仅依靠预先提取的病毒文件的特征,无法对新生成的病毒文件进行识别。



技术实现要素:

本申请提供了文件安全性识别方法和装置,用于解决上述背景技术部分存在的技术问题。

第一方面,本申请提供了文件安全性识别方法,该方法包括:获取待识别文件的特征信息;分别将特征信息中每一个类型的特征信息转换为特征信息对应的预设机器学习模型的输入向量,其中,每一个类型的特征信息预先对应一个机器学习模型;基于预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。

第二方面,本申请提供了文件安全性识别装置,该装置包括:获取单元,配置用于获取待识别文件的特征信息;转换单元,配置用于分别将特征信息中每一个类型的特征信息转换为特征信息对应的预设机器学习模型的输入向量,其中,每一个类型的特征信息预先对应一个机器学习模型;确定单元,配置用于基于预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。

本申请提供的文件安全性识别方法和装置,通过获取待识别文件的特征信息;分别将特征信息中每一个类型的特征信息转换为所述特征信息对应的预设机器学习模型的输入向量;基于预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。实现了针对待识别文件的每一类型的特征,分别获取特征信息以及根据特征信息的特点分别创建机器学习模型进行训练和识别。一方面,较为全面地覆盖了病毒文件的特征,从而较为全面地对病毒文件进行识别。另一方面,通过对机器学习模型的训练使得机器学习模型确定病毒文件的模式,从而在病毒文件的特征进行变更时,依然可以根据病毒文件的模式识别出病毒文件,从而进一步提升文件安全性识别的适用性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2示出了根据本申请的文件安全性识别方法的一个实施例的流程图;

图3示出了根据本申请的文件安全性识别方法的另一个实施例的流程图;

图4示出了根据本申请的文件安全性识别方法的再一个实施例的流程图;

图5示出了适用于本申请中的文件安全性识别方法的一个示例性架构图;

图6示出了根据本申请的文件安全性识别装置的一个实施例的结 构示意图;

图7是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的文件安全性识别方法或装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供传输链路的介质。网络104可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯应用,例如、即时通讯类应用、浏览器类应用、搜索类应用、文字处理类应用等。

终端设备101、102、103可以是具有显示屏并且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

服务器105可以利用从海量的安装包文件样本中提取出的特征信息进行训练,生成文件安全性识别模型。当接收到终端设备101、102、 103发送的安装包文件下载请求时,可以将经过安全性识别模型识别之后确认为安全的安装包文件反馈给终端设备。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

请参考图2,其示出了根据本申请的文件安全性识别方法的一个实施例的流程200。需要说明的是,本申请实施例所提供的文件安全性识别方法一般由图1中的服务器105执行。该方法包括以下步骤:

步骤201,获取待识别文件的特征信息。

在本实施例中,当需要对待识别文件的安全性进行识别时,可以首先获取待识别文件的特征信息。在本实施例中,待识别文件的特征信息的类型可以为多个。例如,特征信息可以为用于描述待识别文件中的控件的名称和类型的特征的特征信息。又例如,特征信息的类型可以为用于描述待识别文件的修改时间的分布的特征的特征信息。

步骤202,分别将特征信息中每一个类型的特征信息转换为对应的预设机器学习模型的输入向量。

在本实施例中,每一个类型的特征信息预先对应一个机器学习模型。在本实施例中,可以根据特征信息的类型的不同,预先分别创建机器学习模型,分别对不同类型的机器学习模型进行训练。

在本实施例中,在利用特征信息对机器学习模型进行训练时,需要首先将特征信息转换为机器学习模型的输入向量。在本实施例中,可以根据特征信息的长度特点,在输入到特征信息对应的机器学习模型时,输入方式可以分为定长输入与变长输入。相应地,可以创建特征信息对应的定长输入的机器学习模型或特征信息对应的变长的机器学习模型。

例如,针对用于描述待识别文件中的控件的名称和类型的特征的特征信息,可以创建定长输入的机器学习模型,例如深度学习模型进行训练和识别。又例如,针对用于描述待识别文件的修改时间的分布的特征信息,可以创建变长输入的机器学习模型,例如lstm模型进行训练和识别。

步骤203,基于预设机器学习模型的输出向量,确定待识别文件 是否为病毒文件。

在本实施例中,在通过步骤202将每一个特征信息转换为该特征信息对应的预设机器学习模型的输入向量之后,可以得到每一个特征信息对应的预设机器模型的输出向量。可以根据每一个特征信息对应的预设机器模型的输出向量,确定待识别文件是否为病毒文件。

请参考图3,其示出了根据本申请的文件安全性识别方法的另一个实施例的流程图300。需要说明的是,本申请实施例所提供的文件安全性识别方法一般由图1中的服务器105执行,该方法包括以下步骤:

步骤301,获取待识别文件的结构特征信息。

在本实施例中,待识别文件可以为apk文件,特征信息可以为用于描述待识别apk文件的结构的特征的结构特征信息。在本实施例中,待识别apk文件的结构特征包括但不限于:包、类、成员函数、成员变量、输入参数、类型、窗口、菜单、动画、图片的统计特征。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的包的统计特征。例如,包的名称的长度。在本实施例中,可以统计包的名称的长度,进而确定整个待识别apk文件中名称的长度小于阈值的包的个数。

在本实施例中,待识别apk文件的结构可以包含待识别apk文件中的类的统计特征。例如,类的名称的长度、类的个数。在本实施例中,可以统计apk文件中包含的类的名称的长度的最大值、最小值、总和值、平均值、方差值。在本实施例中,还可以统计类的个数在待识别apk文件中的所有类的个数中所占的比例。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的成员变量的统计特征。例如,成员变量的名称的长度、个数。在本实施例中,可以统计待识别apk文件中成员变量的名称的长度的最大值、最小值、总和值、平均值、方差值、成员变量的个数在待识别apk文件中的所有成员变量的个数中所占的比例。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的成员函数的统计特征。例如,成员函数名称的长度、个数。 在本实施例中,可以统计待识别apk文件中成员函数的名称的长度的最大值、最小值、平均值、方差值、成员函数的个数在待识别apk文件中的所有成员变量的个数中所占的比例。可以将上述最大值、最小值、平均值、方差值、比例作为待识别apk文件结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含成员函数的输入参数的统计特征。例如,成员函数的输入参数的个数的分布、输入参数的名称的长度的个数的分布。在本实施例中,可以统计apk文件中成员函数的输入参数的个数的分布、输入参数的名称的长度的个数的分布。可以将成员函数的输入参数的个数的分布、输入参数的名称的长度的个数的分布作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的数据类型的统计特征。例如,apk文件中成员函数的类型和成员函数的返回值的类型。在本实施例中,可以统计待识别apk文件中成员函数的类型和成员函数的返回值的类型在待识别apk文件中所有数据的类型中所占的比例。可以将上述比例作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的字符串的特征。在本实施例中,可以统计待识别apk文件中病毒常用字符串是否出现、病毒常用url地址是否出现、病毒常用电话号码、数字是否出现。可以根据判断结果,生成结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的窗口的特征。在本实施例中,可以统计待识别apk文件中的窗口的个数、窗口的名称的长度的最大值、最小值、平均值、方差值、窗口的尺寸。可以将上述窗口的个数、窗口的名称的长度的最大值、最小值、平均值、方差值、窗口的尺寸作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的菜单的统计特征。在本实施例中,可以统计待识别apk文件中的菜单的个数、菜单的名称的字符串长度的最大值、最小值、平均值、方差值。可以将上述菜单的个数、菜单的名称的字符串长度的最 大值、最小值、平均值、方差值作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的动画的统计特征。例如,动画的个数、动画中的名称的字符串的长度的最大值、最小值、平均值、方差值、动画中的图像的像素的特征。在本实施例中,可以统计待识别apk文件中动画的个数、动画中的名称的字符串的长度的最大值、最小值、平均值、方差值。还可以选取动画的截图,例如动画的首个图像帧。然后,将该图像帧压缩为预设尺寸的图像。可以将该图像或时用于该用于描述该图像的像素的特征的直方图作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的图片的特征。在本实施例中,可以统计待识别apk文件中的图片的个数、图片的名称的字符串的长度的最大值、最小值、平均值、方差值。可以将上述图片的个数、图片的名称的字符串的长度的最大值、最小值、平均值、方差值作为待识别apk文件的结构特征信息。

在本实施例中,待识别apk文件的结构特征可以包含待识别apk文件中的指令的统计特征。在本实施例中,可以通过apk文件中的dex文件查找出待识别apk文件的入口函数地址,进而可以查找到入口函数的特征。入口函数的特征包括但不限于:入口函数所在节的熵值、入口函数的代码的指令出现的频次。可以将上述入口函数所在节的熵值、入口函数的代码的指令出现的频次作为待识别apk文件的结构特征信息。

步骤302,将结构特征信息转换为预设定长输入的机器学习模型的输入向量。

在本实施例中,在通过步骤301获取到用于描述待识别apk文件的结构特征信息之后,可以将结构特征信息转换为预先创建的定长输入的机器学习模型,例如深度学习模型的输入向量。

在本实施例中,在通过步骤301获取到用于描述待识别apk文件的结构特征的结构特征信息之前,可以采用与步骤301相同的方式从海量安全样本apk文件、病毒样本apk文件中获取apk文件的结构特征信息,将该结构特征信息转换为结构特征信息对应的定长输入的 机器学习模型的输入向量,对该定长输入的机器学习模型进行训练。

步骤303,基于预设定长输入的机器学习模型的输出向量,确定待识别文件是否为病毒文件。

在本实施例中,在通过步骤302将待识别apk文件的结构特征信息转换为预设定长输入的机器学习模型的输入向量之后,可以得到预设定长输入的机器学习模型的输出向量。每一个类型的结构特征信息可以对应该输入向量中的一个分量。该预设定长输入的机器学习模型已预先利用从海量安全样本apk文件、病毒样本apk文件中获取apk文件的结构特征信息进行训练。在本实施例中,可以基于该预设定长输入的机器学习模型的输出向量,确定待识别文件是否为病毒文件。

请参考图4,其示出了根据本申请的文件安全性识别方法的再一个实施例的流程图400。需要说明的是,本申请实施例所提供的文件安全性识别方法一般由图1中的服务器105执行,该方法包括以下步骤:

步骤401,获取待识别文件的多个特征信息。

在本实施例中,除了获取待识别文件的apk文件的结构特征信息之外,可以进一步获取待识别文件的函数特征信息、权限特征信息、服务特征信息、监听事件特征信息、图标特征信息、窗口特征信息、字符串特征信息、文件分布特征信息、文件类型特征信息、数字证书特征信息。

在本实施例中,特征信息可以包含用于描述函数的调用关系的函数特征信息。在本实施例中,可以获取待识别apk文件中所有函数的调用关系,生成函数森林。在该函数森林中,每一个函数对应一个节点。函数森林中包含多个树。在生成函数森林之后,可以根据树的长度进行排序,确定长度的排名靠前的预设个数的树,例如排名前100位的树。在长度靠前的预设个数的树中,可以进一步采用深度优先算法遍历预设深度之上的节点,得到确定出的树对应的多个函数。

在本实施例中,可以采用相似度哈希算法,例如采用simhash算法计算确定出的树对应的哈希值。例如,可以将上述多个函数的函数名进行组合或将多个函数的指令进行组合后作为相似度哈希算法的输入,从 而可以计算出确定出的树对应的哈希值。然后,可以将该哈希值作为函数特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件具有的权限的权限特征信息。在本实施例中,可以从待识别apk文件可具有的权限预先选取出预设个数的权限。该预先选取的权限可以为病毒文件频繁利用的一些权限。然后,可以判断待识别apk文件中是否具有该权限。例如,通过androidmanifest.xml中的permission,确定待识别文件中是否存在预先选取出的权限。可以根据判断结果,生成权限特征信息。

在本实施例中,特征信息可以包含用于描述apk文件中的服务特征的服务特征信息。在本实施例中,可以从待识别apk文件可提供的服务预先选取出预设个数的服务。然后,可以判断待识别apk文件中是否提供预先选取出的服务。例如,通过androidmanifest.xml中的service,确定待识别文件中是否存在预先选取出的服务。可以根据判断结果,生成服务特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件中的监听的事件的特征的监听事件特征信息。在本实施例中,可以预先从待识别apk文件可监听的事件中选取出预设个数的监听事件。然后,可以判断待识别apk文件中是否具有该监听事件。例如,通过androidmanifest.xml中的reciever,确定待识别文件中是否存在预先选取出的监听事件。可以根据判断结果,生成监听事件特征信息。

在本实施例中,特征信息可以包含用于描述apk文件中的图标的特征的图标特征信息。在本实施例中,可以从androidmanifest.xml中的icon中获取apk文件中的图标信息。可以进一步获取图标的像素特征,可以将该像素特征作为图标特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件中的窗口的特征的窗口特征信息。在本实施例中,可以将窗口中的控件的类型和名称作为窗口特征信息。可以从待识别apk文件中的资源文件res文件中的layout中获取窗口特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件中的 类、函数的名称、引用的字符串的特征的字符串特征信息。在本实施例中,可以从待识别apk文件的dex文件中获取类的名称、函数的名称、引用的字符串等字符串特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件中的各个子文件的修改时间的分布的特征的修改时间分布特征信息。在本实施例中,可以首先确定待识别apk文件中的各个子文件的修改时间。然后,分别统计对应于同一修改时间的子文件的个数。在得到多个修改时间各自对应的子文件的个数之后,可以进一步得到待识别apk文件的修改时间分布特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件的文件类型的特征的文件类型特征信息。在本实施例中,可以预先从所有apk文件的类型中筛选出预设个数的类型。例如,apk、dex、jar、so、xml、icon、png等文件类型。然后,判断apk文件是否存在该类型的文件,可以根据判断结果,生成apk文件的文件类型特征信息。

在本实施例中,特征信息可以包含用于描述待识别apk文件的数字证书的特征的数字证书特征信息。在本实施例中,可以对数字证书进行反编译,获取到数字证书中的国家名称、省名称等信息对应的字符串,可以将该字符串作为数字证书特征信息。

步骤402,分别将特征信息转换为特征信息对应的预设机器学习模型的输入向量。

在本实施例中,在通过步骤401获取待识别apk文件的结构特征信息、函数特征信息、权限特征信息、服务特征信息、监听事件特征信息、图标特征信息、窗口特征信息、字符串特征信息、修改时间分布特征信息、文件类型特征信息、数字证书特征信息之后,可以将上述特征信息分别转换为各自对应的为预设机器学习模型的输入向量。

在本实施例中,在通过步骤401获取函数特征信息之后,可以将函数特征信息转换为预先创建的变长输入的机器学习模型,例如lstm模型的输入向量。

在本实施例中,在通过步骤401获取函数特征信息之前,可以预先函数特征信息对应的创建变长输入的机器学习模型。然后,可以采 用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取函数特征信息,将该函数特征信息转换为变长输入的机器学习模型的输入向量,对该变长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取待识别apk文件中的权限特征信息之后,可以将权限特征信息转换为预先创建的定长输入的机器学习模型,例如深度学习模型的输入向量。在该输入向量中,每一个预先选取出的权限可以对应一个分量。对于待识别apk文件具有的预设权限,对应的分量的数值为1。对于待识别apk文件不具有的权限,对应的分量的数值为0。

在本实施例中,在通过步骤401获取待识别apk文件中的权限特征信息之前,可以预先创建权限特征信息对应的定长输入的机器学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中分别获取获取权限特征信息,分别将该权限特征信息转换为该定长输入的机器学习模型的输入向量,对该定长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取待识别apk文件中的服务特征信息之后,可以将服务特征信息转换为定长输入的机器学习模型,例如深度学习模型的输入向量。在该输入向量中,每一个服务对应一个分量。对于待识别apk文件提供的服务,对应的分量的数值为1。对于待识别apk没有提供的服务,对应的分量的数值为0。

在本实施例中,在通过步骤401获取待识别apk文件中的服务特征信息之前,可以预先创建服务特征信息对应的定长输入的机器学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取服务特征信息。将该服务特征信息转换为服务特征信息对应的定长输入的机器学习模型的输入向量,对该服务特征信息对应的定长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取apk中的监听事件特征信息之后,可以将监听事件特征信息转换为定长输入的机器学习模型,例如深度学习模型的输入向量。在该输入向量中,每一个监听事件对应该向量的一个分量。在该输入向量中,对于apk文件中监听的事件, 该监听的事件对应的分量的数值为1。对于apk文件没有监听的事件,该监听的事件对应的分量的数值为0。

在本实施例中,在通过步骤401获取apk文件中的监听事件特征信息之前,可以预先创建监听事件特征信息对应的定长输入的机器学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中分别获取监听事件特征信息。将该监听事件特征信息转换为监听事件特征信息对应的定长输入的机器学习模型的输入向量,对该定长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取待识别apk文件中的图标特征信息之后,可以将图标特征信息转换为定长输入的机器学习模型,例如深度学习模型的输入向量。例如,可以将图标转换为预设尺寸的图像,再将图像转换为输入向量。

在本实施例中,在通过步骤401获取待识别apk文件中的图标特征信息之前,可以预先创建图标特征信息对应的定长输入的机器学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中分别获取图标特征信息。将该图标特征信息转换为图标特征信息对应的定长输入的机器学习模型的输入向量,对该定长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取到待识别apk文件中的窗口特征信息之后,可以将窗口特征信息转为预先创建的变长输入的机器学习模型,例如lstm模型的输入向量。在将该输入向量输入到变长输入的机器学习模型时,可以以时间片为单位进行输入,每一个时间片输入预设个数的字符。相应地,向量中每一个分量的数值可以为输入的字符的asci码除256得到的浮点数。在每一次输入中,如果剩余的字符个数不足预设个数,可以补零。

在本实施例中,在通过步骤401获取到待识别apk文件中的窗口特征信息之前,可以预先创建窗口特征信息对应的变长输入的机器学习模型。可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取窗口特征信息。然后,将窗口特征信息转换为变长输入的机器学习模型的输入向量,对该变长输入的机器学习模 型的输入向量进行训练。

在本实施例中,在通过步骤401获取到待识别apk文件中的字符串特征信息之后,可以将字符串特征信息转换为预先创建的变长输入的机器学习模型,例如lstm模型的输入向量,在将该输入向量输入到变长输入的机器学习模型时,以时间片为单位进行输入,每一次输入预设个数的字符。

在本实施例中,在通过步骤401获取到字符串特征信息之前,可以预先创建字符串特征信息对应的变长输入的机器学习模型,例如lstm模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取字符串特征信息。可以将该字符串特征信息转换为变长输入的机器学习模型的输入向量,对该变长输入的机器学习模型的输入向量进行训练。

在本实施例中,在通过步骤401获取到待识别apk文件的修改时间分布特征信息之后,可以将修改时间分布特征信息转换预先创建的该变长输入的机器学习模型,例如lstm模型的输入向量。在该输入向量中,每一修改时间对应的文件的个数对应一个分量。该分量的数值为一个修改时间对应的文件的个数与所有文件的个数的比例。

在本实施例中,在通过步骤401获取到待识别apk文件的修改时间分布特征信息之前,可以预先创建修改时间分布特征信息对应的变长输入的机器学习模型,例如lstm模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取修改时间分布特征信息。将该修改时间分布特征信息转换为修改时间分布特征信息对应的变长输入的机器学习模型的输入向量,对该变长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取到待识别apk文件的文件类型特征信息之后,可以将文件类型特征信息转换预先创建的该定长输入的机器学习模型,例如深度学习模型的输入向量。

在本实施例中,可以预先选取预设个数的文件类型。可以预先统计海量样本apk文件中预设个数的文件类型的文件的个数的方差值、均值。在输入向量中,每一个文件类型的文件的个数可以对应一个分 量,该分量的数值为利用方差、均值对该类型的文件的个数进行归一化后得到的归一化值,即该数值可以为该类型的文件的个数减去均值后除以方差值得到的数值。

在本实施例中,在通过步骤401获取到待识别apk文件的文件类型特征信息之前,可以预先创建文件类型特征信息对应的定长输入的机器学习模型,例如深度学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取文件类型特征信息。可以将该文件类型特征信息转换为文件类型特征信息对应的定长输入的机器学习模型的输入向量,对该文件类型特征信息对应的定长输入的机器学习模型进行训练。

在本实施例中,在通过步骤401获取待识别apk文件的数字证书特征信息之后,可以将数字证书特征信息转换为变长输入的机器学习模型,例如lstm模型的输入向量。该输入向量可以包含六个部分,分别对应数字证书中的cn(commonname,名字与姓氏)、ou(organizationunit,组织单位名称)、o(organization,组织名称)、l(locality,城市或区域名称)、st(state,州或省份名称)、c(country,国家名称)部分。

在本实施例中,在通过步骤401获取数字证书特征信息之前,可以预先创建数字证书特征信息对应的变长的机器学习模型。然后,可以采用与步骤401相同的方式从海量安全样本apk文件、病毒样本apk文件中获取数字证书特征信息。可以将该数字特征信息转换为数字证书特征信息对应的变长的机器学习模型的输入向量,对该数字证书特征信息对应的变长的机器学习模型进行训练。

步骤403,基于每一个特征信息对应的预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。

在本实施例中,在通过步骤402将每一个特征信息转换为特征信息对应的预设机器学习模型之后,基于每一个特征信息对应的预设机器学习模型的输出向量,可以经过整体模型输出层对每个子模型输出的综合计算,例如,在每一个特征信息对应的预设机器学习模型之上设置一个用于对每个子模型输出进行综合计算的机器学习模型作为整 体输出层,例如深度学习模型。该深度学习模型的输入层可以直接连接每个子模型输出层。从而通过输出层的输出确定待识别文件是否为病毒文件。

请参考图5,其示出了适用于本申请中的文件安全性识别方法的一个示例性架构图。

在图5中,示出了待识别apk文件中的结构特征信息、权限特征信息、监听事件特征信息、证书特征信息、文件类型特征信息、修改时间分布特征信息、函数特征信息、窗口特征信息、包特征信息、字符串特征信息等部分特征信息各自对应的机器学习模型。结构特征信息、权限特征信息、监听事件特征信息、文件类型特征信息对应的预设机器学习模型为定长输入的nn模型,可以简称之为结构特征模型、权限特征模型、监听事件特征模型、文件类型特征模型。

证书特征信息、修改时间分布特征信息、函数特征信息、窗口特征信息、包特征信息、字符串特征信息对应的预设机器学习模型为变长输入的lstm模型。可以简称为证书特征模型、时间分布特征模型、函数特征模型、窗口特征模型、包特征模型、字符串特征模型。

4个nn模型,6个lstm模型的输出可以以全连接的方式连接到输出层,可以基于各个模型各自输出的向量,判断待识别文件是否为病毒文件,输出识别结果。

在本实例中,结构特征信息、权限特征信息、监听事件特征信息、文件类型特征信息对应的定长输入的nn模型的输入层与隐藏层均可以采用全连接方式连接。隐藏层激活函数可以为tanh函数,隐藏层的输出作为上述nn模型的输出。

结构性特征输入层维数根据人工经验的多少可变,结构性特征隐藏层维数视输入层大小等情况而定。权限特征信息对应的输入向量的维度可以为1940,权限特征信息对应的nn模型的隐藏层的维度可以为64维。监听事件特征信息对应的输入向量的维度可以为1555维,监听事件特征信息对应的nn模型的隐藏层的维度可以为64维。文件类型特征信息对应的输入向量的维度可以为50维、文件类型特征信息对应的nn模型的隐藏层的维度可以为16维。

在本实施例中,证书特征信息、修改时间分布特征信息、包特征信息、函数特征信息、窗口特征信息、字符串特征信息采用的lstm模型的结构可以为一致的。不同的是各自对应的lstm模型的输入层和隐藏层的尺寸。

应理解,上述特征信息以及对应的机器学习模型的输入层和隐藏层的维度仅是示例性地说明本申请的用于文件安全性识别方法的架构,并不构成对特征信息对应的机器学习模型的输入层和隐藏层的维度的限定,特征信息对应的各个机器学习模型的隐藏层层数也可视情况灵活设置。

结构性特征输入层维数根据人工经验的多少可变,结构性特征隐藏层维数视输入层大小等情况而定

下面说明lstm模型的基本原理:lstm模型为序列化模型,具有输入长度不一的序列化特征。lstm记忆单元的输入是lstm的隐藏层,lstm隐藏层的输入是lstm的输入层。lstm模型的隐藏层,记忆单元的输出也都是序列。

在本实施例中,可以采用lstm模型隐藏层,记忆单元这两个部分输出的序列的最后值作为lstm模型的输出值,即由两个输出向量组成一个固定位数的向量作为lstm模型的输出。在本实施例中,lstm模型的激活函数可以为tanh函数,门控函数可以为sigmoid函数。

在本实施例中,证书特征信息对应的输入向量的维度可以为96维,证书特征信息对应的lstm模型的隐藏层的维度可以为32维。修改时间分布特征信息对应的输入向量的维度可以为1维,修改时间分布特征信息对应的lstm模型的隐藏层的维度可以为8维。函数特征信息对应的输入向量的维度可以为128维,函数特征信息对应的lstm模型的隐藏层的维度可以为64维。窗口特征信息对应的输入向量的维度可以为64维,窗口特征信息对应的lstm模型的隐藏层的维度可以为128维。包特征信息对应的输入向量的维度可以为16维,包特征信息对应的lstm模型的隐藏层的维度可以为16维。字符串特征信息对应的输入向量的维度可以为128维,字符串特征信息对应 的lstm模型的隐藏层的维度可以64维。

请参考图6,其示出了根据本申请的文件安全性识别装置的一个实施例的结构示意图。装置600包括:获取单元601,转换单元602,确定单元603。其中,获取单元601配置用于获取待识别文件的特征信息;转换单元602配置用于分别将特征信息中每一个类型的特征信息转换为特征信息对应的预设机器学习模型的输入向量,其中,每一个类型的特征信息预先对应一个机器学习模型;确定单元603配置用于基于预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。

图7示出了适于用来实现本申请实施例的文件安全性识别装置的计算机系统的结构示意图。

如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram703中,还存储有系统700操作所需的各种程序和数据。cpu701、rom802以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装, 和/或从可拆卸介质711被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取待识别文件的特征信息;分别将所述特征信息中每一个类型的特征信息转换为所述特征信息对应的预设机器学习模型的输入向量,其中,每一个类型的特征信息预先对应一个机器学习模型;基于所述预设机器学习模型的输出向量,确定待识别文件是否为病毒文件。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1