一种应用软件的安全性测试方法转让专利

申请号 : CN202310829116.5

文献号 : CN116561752B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程国青宋远薇刘良萍何超

申请人 : 华测国软技术服务南京有限公司

摘要 :

本发明涉及软件安全性测试技术领域,公开了一种应用软件的安全性测试方法,通过BP神经网络算法进行应用软件分类,利用网络功能虚拟化执行网络安全检测,使用密码强度验证和密码错误隔离进行帐户密码管理,执行用户操作并进行数据安全监测,退出使用时实行擦除操作,全程实行安全审计管理,多维度监测安全隐患,确保能够全方面地对软件进行安全性测试,且能避免安全性测试过程中给主机造成的损坏,对软件安全性测试具有非常重大的现实意义。

权利要求 :

1.一种应用软件的安全性测试方法,其特征在于:包括,进行应用软件分类;

对所述应用软件进行网络安全检测,先利用虚拟化技术将物理服务器切割成多个逻辑服务器,生成多个虚拟机,然后在所述虚拟机中搭建云平台、安装数据库并安装不同的软件系统,再利用双向网闸连接所述云平台和外网,最后使用主机连接所述外网以驱动所述软件系统;

所述网络安全检测结束后进行帐户密码管理;

所述帐户密码管理后,执行用户操作并进行数据安全监测;

所述数据安全监测后无后续操作则退出使用;

所述应用软件分类包括数据收集、数据预处理和构建分类模型;

所述数据收集所收集的数据包括所述应用软件的名称、描述、功能特性和类别;

所述数据预处理包括对所述数据收集中的所述数据进行数据清洗和标准化处理,所述数据清洗包括删除重复数据、处理缺失数据和错误数据,所述标准化处理包括过滤所述数据、所述缺失数据处理和所述错误数据处理,形成数据集;

构建所述分类模型包括特征选择和分类模型训练,所述分类模型训练包括数据划分、模型训练和模型评估;

采用BP神经网络作为分类模型,所述特征选择将所述应用软件按照安全等级进行编码和向量化,安全等级划分公式如下:;

式中 表示安全等级,所述安全等级包括SSS级、S级、A级、B级、C级、D级;

所述分类模型还包括输入层、隐含层和输出层,将所述应用软件的描述、功能特性和类别输入到所述输入层中,再由所述隐含层进行特征提取和优化,最后从所述输出层中输出所述安全等级;

所述输入层的神经节点为3个,包括所述应用软件的描述、功能特性和类别,所述输入层的3个神经节点统称为输入向量,表达式如下所示:;

式中 表示所述描述、 表示所述功能特性、 表示所述类别;

所述隐含层的神经节点为8个,使用所述隐含层的2个神经节点对所述输入层中所述描述的神经节点进行特征提取并优化,使用所述隐含层的4个神经节点对所述输入层中所述功能特性的神经节点进行特征提取并优化,使用所述隐含层的2个神经节点对所述输入层中所述类别的神经节点进行特征提取并优化,所述特征提取的表达式如下所示:;

式中, 表示激活函数, 表示所述输入层的神经节点到所述隐含层的神经节点间的权值矩阵,表达式为 ,表示所述输入层的3个神经节点,表示所述隐含层的8个神经节点,表示所述输入向量, 表示所述输入层的神经节点到所述隐含层的神经节点间的偏置参数,表达式为 ,表示所述输入层的3个神经节点, 表示矩阵转置;

其中, 的表达式为 ;

式中,表示自然常数,为常用的超越数之一,表示所述输入向量;

所述特征提取完由所述隐含层优化完输入到输出层,所述优化的表达式如下所示:;

式中, 表示激活函数,表示所述隐含层的神经节点到所述输出层的神经节点间的权值矩阵,表达式为 ,表示所述隐含层的8个神经节点,表示所述输出层的6个神经节点, 所述隐含层的神经节点到所述输出层的神经节点间的偏置参数,表达式为 , 表示矩阵转置;

其中, 的表达式为 ;

所述输出层的神经节点为6个,分别对应6个不同的所述安全等级作为输出向量,所述输出向量的表达式如下所示:;

式中, 表示所述安全等级中的SSS级, 表示所述安全等级中的S级, 表示所述安全等级中的A级, 表示所述安全等级中的B级, 表示所述安全等级中的C级, 表示所述安全等级中的D级;

所述数据划分包括20%的测试集和80%的训练集,所述模型训练使用所述训练集训练所述分类模型;

所述模型评估包括整体分类灵敏度 和准确度 ,所述整体分类灵敏度的计算公式如下:;

式中, 表示按照所述安全等级划分分类灵敏度, 表示样本集, 表示样本集中所述应用软件的总数, 表示样本集中按照不同安全等级划分的所述应用软件的数量;

所述准确度的计算公式如下:

式中, 表示样本集中按照不同安全等级划分的所述应用软件的数量, 表示样本集中所述应用软件的总数;

若 且 ,则表示所述分类模型比较优秀;

若 且 ,则表示所述分类模型一般;

若 且 ,则表示所述分类模型一般;

若 且 ,则表示所述分类模型一般;

若 或 ,则表示所述分类模型不符合要求,需要继续进行优化。

2.如权利要求1所述的应用软件的安全性测试方法,其特征在于:所述帐户密码管理包括密码安全验证,所述密码安全验证包括密码强度验证和密码错误隔离;

所述密码强度验证包括密码种类和密码计数,密码强度验证的计算如下所示:;

式中,表示密码位数, 表示密码计数函数, 表示密码种类函数, 表示正整数;

所述密码计数函数表达式如下所示:

式中, 表示判断输入的密码, 表示统计输入密码的位数;

其中, 的表达式为 , 的表达式为 ;

式中, 表示输入的密码,表示密码位数;

所述密码种类函数表达式如下所示:

式中,表示密码种类的个数,所述密码种类包括大写字母、小写字母、数字和特殊符号, 表示所有种类排列不重复的个数;

计算所述密码强度验证的公式得出密码强度有较弱、弱、中、强、较强五种。

3.如权利要求2所述的应用软件的安全性测试方法,其特征在于:所述密码强度的规则包括:若 且 ,则所述密码强度为较弱,需要尽快更换密码;

若 且 ,则所述密码强度为弱,需要考虑更换密码;

若 且 ,则所述密码强度为弱,需要考虑更换密码;

若 且 ,则所述密码强度为中,表示密码一般;

若 且 ,则所述密码强度为中,表示密码一般;

若 且 ,则所述密码强度为中,表示密码一般;

若 且 ,则所述密码强度为强,表示密码相对安全;

若 且 ,则所述密码强度为强,表示密码相对安全;

若 且 ,则所述密码强度为较强,表示密码安全。

4.如权利要求3所述的应用软件的安全性测试方法,其特征在于:所述密码错误隔离包括时间隔离和IP隔离,所述密码错误隔离的规则流程如下:首先记录尝试次数、登陆时间和IP地址,判断错误尝试次数是否超过3次、同一个IP是否多帐户登陆失败;

若错误尝试次数超过3次、同一个IP多帐户登陆失败,则隔离应用软件帐户和所登陆的IP地址;

若错误尝试次数没有超过3次且同一个IP不存在多帐户登陆失败,则结束所述规则流程;

其中当存在错误尝试次数超过3次、同一个IP多帐户登陆失败,要判断应用软件安全等级;

若所述应用软件安全等级为SSS级,则将所述应用软件隔离24小时且需要与管理员联系;

若所述应用软件安全等级为S级,则将所述应用软件隔离1小时;

若所述应用软件安全等级为A级,则将所述应用软件隔离30分钟;

若所述应用软件安全等级为B级,则将所述应用软件隔离20分钟;

若所述应用软件安全等级为C级,则将所述应用软件隔离10分钟;

若所述应用软件安全等级为D级,则将所述应用软件隔离5分钟;

最后所述密码错误隔离完成后结束规则流程。

5.如权利要求4所述的应用软件的安全性测试方法,其特征在于:所述用户操作时需实行所述数据安全监测,所述数据安全监测的异常涉及到所述帐户密码管理的应用软件帐户和用户操作行为;

首先读取所述应用软件帐户登陆的情况,验证所述应用软件帐户是否存在长期未登陆后登陆直接查询敏感数据的情况,验证所述应用软件帐户是否存在多人同时登陆、登陆IP地址不同的情况,然后读取所述用户操作行为,所述用户操作行为包括查询行为和修改行为,查看所述查询行为的行为数据和所述修改行为的行为数据是否超过阈值;

若所述查询行为的行为数据和所述修改行为的行为数据超过所述阈值,则页面警示用户异常行为,所述页面警示后看用户是否继续操作,若继续操作,则实行帐户锁定并系统报警,若没有继续操作,则结束监测;

若所述查询行为的行为数据和所述修改行为的行为数据没有超过所述阈值,则结束监测;

其中,所述阈值包括:一天内查询重复数据为100次、一个用户一天内被查询10次、一个用户一个月内被查询100次、单次查询百万条数据、半天内更改数据为100次、半天内插入、删除数据为100次。

6.如权利要求5所述的应用软件的安全性测试方法,其特征在于:所述退出使用包括擦除所述应用软件帐户的敏感信息,所述擦除包括永久擦除和期限擦除,所述擦除的规则如下:首先定义所述敏感信息,包括所述应用软件帐户的用户资料、登陆信息和浏览历史,然后判断所述应用软件安全等级;

若所述应用软件安全等级为SSS级,则将所述敏感信息永久擦除;

若所述应用软件安全等级为S级,则将所述敏感信息定义成7天免擦除;

若所述应用软件安全等级为A级,则将所述敏感信息定义成一个月免擦除;

若所述应用软件安全等级为B级,则将所述敏感信息定义成三个月免擦除;

若所述应用软件安全等级为C级,则将所述敏感信息定义成半年免擦除;

若所述应用软件安全等级为D级,则将所述敏感信息定义成一年免擦除;

最后擦除完毕结束规则。

7.如权利要求6所述的应用软件的安全性测试方法,其特征在于:所述应用软件的安全性测试方法还包括安全审计管理,多维度监测安全隐患,生成决策树;

所述决策树分别按照所述帐户密码管理、数据使用、所述用户操作行为进行构建;

将上述按照所述帐户密码管理、数据使用、所述用户操作行为进行构建的三个所述决策树整合而成随机森林,利用所述随机森林的预测性对所述安全隐患进行预测,并将所述预测结果提示给所述应用软件的界面。

8.一种计算机设备,其特征在于:包括,

存储器,用于存储指令;

处理器,用于执行所述指令,使得所述设备执行实现如权利要求1‑7任一所述的应用软件的安全性测试方法。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时,实现如权利要求1‑7任一所述的应用软件的安全性测试方法。

说明书 :

一种应用软件的安全性测试方法

技术领域

[0001] 本发明涉及软件安全性测试的技术领域,尤其涉及一种应用软件的安全性测试方法。

背景技术

[0002] 近年来我国网络技术发展较快,计算机技术应用范围在不断扩大,各类软件普及率在不断上升。在开放网络环境下,软件的复杂程度、软件漏洞不断增加,导致多项损失在不断增加,软件安全性问题受到社会多领域高度关注,软件安全性测试是保障软件安全性和降低安全风险的重要方面,这对软件安全性测试也提出了更高的要求。现有技术大多是对软件安全的某一方面进行安全性测试,而且可能在利用安全性测试方法造成对主机的损坏,但不能全方面的对软件进行安全性测试,并且不能避免安全性测试过程中给主机带来的损坏。
[0003] 如申请公开号为CN105187403A的中国专利公开了一种面向软件定义网络的网络安全性测试方法,包括针对目标软件定义网络的安全性测试框架、安全性测试策略、分类安全性测试方法、项目安全性测试方法和安全性测试步骤。其中,测试框架包括将目标软件定义网络划分为数据、控制、应用和管理四个网络平面,分别对各个网络平面的各个网元、链路以及各个网络平面之间的接口展开安全性测试;测试策略包括对安全性测试框架中的各个单元进行测试的选择和流程编制方法;分类安全性测试方法依据各个单元的类别特点开展不同类型的安全性测试;项目安全性测试方法实现具体的针对目标网元、链路或接口的安全性测试,测试流程定义了完整的针对目标软件定义网络的安全性测试过程和步骤。
[0004] 以上专利存在本背景技术提出的问题:不能全方面的对软件进行安全性测试,并且不能避免安全性测试过程中给主机带来的损坏。为解决这一问题,本发明提出一种应用软件的安全性测试方法。

发明内容

[0005] 本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
[0006] 鉴于上述现有应用软件的安全性测试方法存在的问题,提出了本发明。
[0007] 因此,本发明目的是提供一种应用软件的安全性测试方法。
[0008] 为解决上述技术问题,本发明提供如下技术方案:进行应用软件分类;
[0009] 对所述应用软件进行网络安全检测;
[0010] 所述网络安全检测结束后进行帐户密码管理;
[0011] 所述帐户密码管理后,执行用户操作并进行数据安全监测;
[0012] 所述数据安全监测后无后续操作则退出使用。
[0013] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述应用软件分类包括数据收集、数据预处理和构建分类模型;
[0014] 所述数据收集所收集的数据包括所述应用软件的名称、描述、功能特性和类别;
[0015] 所述数据预处理包括对所述数据收集中的所述数据进行数据清洗和标准化处理,所述数据清洗包括删除重复数据、处理缺失数据和错误数据,所述标准化处理包括过滤所述数据、所述缺失数据处理和所述错误数据处理,形成数据集;
[0016] 构建所述分类模型包括特征选择和分类模型训练,所述分类模型训练包括数据划分、模型训练和模型评估;
[0017] 采用BP神经网络作为分类模型,所述特征选择将所述应用软件按照安全等级进行编码和向量化,安全等级划分公式如下:
[0018] ;
[0019] 式中 表示安全等级,所述安全等级包括SSS级、S级、A级、B级、C级、D级。
[0020] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述分类模型还包括输入层、隐含层和输出层,将所述应用软件的描述、功能特性和类别输入到所述输入层中,再由所述隐含层进行特征提取和优化,最后从所述输出层中输出所述安全等级;
[0021] 所述输入层的神经节点为3个,包括所述应用软件的描述、功能特性和类别,所述输入层的3个神经节点统称为输入向量,表达式如下所示:
[0022] ;
[0023] 式中 表示所述描述、 表示所述功能特性、 表示所述类别;
[0024] 所述隐含层的神经节点为8个,使用所述隐含层的2个神经节点对所述输入层中所述描述的神经节点进行特征提取并优化,使用所述隐含层的4个神经节点对所述输入层中所述功能特性的神经节点进行特征提取并优化,使用所述隐含层的2个神经节点对所述输入层中所述类别的神经节点进行特征提取并优化,所述特征提取的表达式如下所示:
[0025] ;
[0026] 式中, 表示激活函数, 表示所述输入层的神经节点到所述隐含层的神经节点间的权值矩阵,表达式为 ,表示所述输入层的3个神经节点, 表示所述隐含层的8个神经节点, 表示所述输入向量, 表示所述输入层的神经节点到所述隐含层的神经节点间的偏置参数,表达式为 ,表示
所述输入层的3个神经节点, 表示矩阵转置;
[0027] 其中, 的表达式为 ;
[0028] 式中,表示自然常数,为常用的超越数之一, 表示所述输入向量;
[0029] 所述特征提取完由所述隐含层优化完输入到输出层,所述优化的表达式如下所示:
[0030] ;
[0031] 式中, 表示激活函数, 表示所述隐含层的神经节点到所述输出层的神经节点间的权值矩阵,表达式为 , 表示所述隐含层的8个神经节点, 表示所述输出层的6个神经节点, 所述隐含层的神经节点到所述输出层的神经节点间的偏置参数,表达式为 , 表示矩阵转置;
[0032] 其中, 的表达式为 ;
[0033] 所述输出层的神经节点为6个,分别对应6个不同的所述安全等级作为输出向量,所述输出向量的表达式如下所示:
[0034] ;
[0035] 式中, 表示所述安全等级中的SSS级, 表示所述安全等级中的S级, 表示所述安全等级中的A级, 表示所述安全等级中的B级, 表示所述安全等级中的C级, 表示所述安全等级中的D级;
[0036] 所述数据划分包括20%的测试集和80%的训练集,所述模型训练使用所述训练集训练所述分类模型。
[0037] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述模型评估包括整体分类灵敏度 和准确度 ,所述整体分类灵敏度的计算公式如下:
[0038] ;
[0039] 式中, 表示按照所述安全等级划分分类灵敏度, 表示样本集, 表示样本集中所述应用软件的总数, 表示样本集中按照不同安全等级划分的所述应用软件的数量;
[0040] 所述准确度的计算公式如下:
[0041] ;
[0042] 式中, 表示样本集中按照不同安全等级划分的所述应用软件的数量, 表示样本集中所述应用软件的总数;
[0043] 若 且 ,则表示所述分类模型比较优秀;
[0044] 若 且 ,则表示所述分类模型一般;
[0045] 若 且 ,则表示所述分类模型一般;
[0046] 若 且 ,则表示所述分类模型一般;
[0047] 若 或 ,则表示所述分类模型不符合要求,需要继续进行优化。
[0048] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述帐户密码管理包括密码安全验证,所述密码安全验证包括密码强度验证和密码错误隔离;
[0049] 所述密码强度验证包括密码种类和密码计数,密码强度验证的计算如下所示:
[0050] ;
[0051] 式中, 表示密码位数, 表示密码计数函数, 表示密码种类函数,表示正整数;
[0052] 所述密码计数函数表达式如下所示:
[0053] ;
[0054] 式中, 表示判断输入的密码, 表示统计输入密码的位数;
[0055] 其中, 的表达式为 , 的表达式为;
[0056] 式中, 表示输入的密码, 表示密码位数;
[0057] 所述密码种类函数表达式如下所示:
[0058] ;
[0059] 式中, 表示密码种类的个数,所述密码种类包括大写字母、小写字母、数字和特殊符号, 表示所有种类排列不重复的个数;
[0060] 计算所述密码强度验证的公式得出密码强度有较弱、弱、中、强、较强五种。
[0061] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述密码强度的规则包括:
[0062] 若 且 ,则所述密码强度为较弱,需要尽快更换密码;
[0063] 若 且 ,则所述密码强度为弱,需要考虑更换密码;
[0064] 若 且 ,则所述密码强度为弱,需要考虑更换密码;
[0065] 若 且 ,则所述密码强度为中,表示密码一般;
[0066] 若 且 ,则所述密码强度为中,表示密码一般;
[0067] 若 且 ,则所述密码强度为中,表示密码一般;
[0068] 若 且 ,则所述密码强度为强,表示密码相对安全;
[0069] 若 且 ,则所述密码强度为强,表示密码相对安全;
[0070] 若 且 ,则所述密码强度为较强,表示密码安全。
[0071] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述密码错误隔离包括时间隔离和IP隔离,所述密码错误隔离的规则流程如下:
[0072] 首先记录尝试次数、登陆时间和IP地址,判断错误尝试次数是否超过3次、同一个IP是否多帐户登陆失败;
[0073] 若错误尝试次数超过3次、同一个IP多帐户登陆失败,则隔离应用软件帐户和所登陆的IP地址;
[0074] 若错误尝试次数没有超过3次且同一个IP不存在多帐户登陆失败,则结束所述规则流程;
[0075] 其中当存在错误尝试次数超过3次、同一个IP多帐户登陆失败,要判断应用软件安全等级;
[0076] 若所述应用软件安全等级为SSS级,则将所述应用软件隔离24小时且需要与管理员联系;
[0077] 若所述应用软件安全等级为S级,则将所述应用软件隔离1小时;
[0078] 若所述应用软件安全等级为A级,则将所述应用软件隔离30分钟;
[0079] 若所述应用软件安全等级为B级,则将所述应用软件隔离20分钟;
[0080] 若所述应用软件安全等级为C级,则将所述应用软件隔离10分钟;
[0081] 若所述应用软件安全等级为D级,则将所述应用软件隔离5分钟;
[0082] 最后所述密码错误隔离完成后结束规则流程。
[0083] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述用户操作时需实行所述数据安全监测,所述数据安全监测的异常涉及到所述帐户密码管理的应用软件帐户和用户操作行为;
[0084] 首先读取所述应用软件帐户登陆的情况,验证所述应用软件帐户是否存在长期未登陆后登陆直接查询敏感数据的情况,验证所述应用软件帐户是否存在多人同时登陆、登陆IP地址不同的情况,然后读取所述用户操作行为,所述用户操作行为包括查询行为和修改行为,查看所述查询行为的行为数据和所述修改行为的行为数据是否超过阈值;
[0085] 若所述查询行为的行为数据和所述修改行为的行为数据超过所述阈值,则页面警示用户异常行为,所述页面警示后看用户是否继续操作,若继续操作,则实行帐户锁定并系统报警,若没有继续操作,则结束监测;
[0086] 若所述查询行为的行为数据和所述修改行为的行为数据没有超过所述阈值,则结束监测;
[0087] 其中,所述阈值包括:一天内查询重复数据为100次、一个用户一天内被查询10次、一个用户一个月内被查询100次、单次查询百万条数据、半天内更改数据为100次、半天内插入、删除数据为100次。
[0088] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述退出使用包括擦除所述应用软件帐户的敏感信息,所述擦除包括永久擦除和期限擦除,所述擦除的规则如下:
[0089] 首先定义所述敏感信息,包括所述应用软件帐户的用户资料、登陆信息和浏览历史,然后判断所述应用软件安全等级;
[0090] 若所述应用软件安全等级为SSS级,则将所述敏感信息永久擦除;
[0091] 若所述应用软件安全等级为S级,则将所述敏感信息定义成7天免擦除;
[0092] 若所述应用软件安全等级为A级,则将所述敏感信息定义成一个月免擦除;
[0093] 若所述应用软件安全等级为B级,则将所述敏感信息定义成三个月免擦除;
[0094] 若所述应用软件安全等级为C级,则将所述敏感信息定义成半年免擦除;
[0095] 若所述应用软件安全等级为D级,则将所述敏感信息定义成一年免擦除;
[0096] 最后擦除完毕结束规则。
[0097] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述应用软件的安全性测试方法还包括安全审计管理,多维度监测安全隐患,生成决策树;
[0098] 所述决策树分别按照所述帐户密码管理、数据使用、所述用户操作行为进行构建;
[0099] 将上述按照所述帐户密码管理、数据使用、所述用户操作行为进行构建的三个所述决策树整合而成随机森林,利用所述随机森林的预测性对所述安全隐患进行预测,并将所述预测结果提示给所述应用软件的界面。
[0100] 一种计算机设备,包括,存储器,用于存储指令;处理器,用于执行所述指令,使得所述设备执行实现应用软件的安全性测试方法。
[0101] 一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被所述处理器执行时,实现应用软件的安全性测试方法。
[0102] 本发明的有益效果:本发明通过BP神经网络算法进行应用软件分类,利用网络功能虚拟化执行网络安全检测,使用密码强度验证和密码错误隔离进行帐户密码管理,执行用户操作并进行数据安全监测,退出使用时实行擦除操作,全程实行安全审计管理,多维度监测安全隐患,确保能够全方面地对软件进行安全性测试,且能避免安全性测试过程中给主机造成的损坏,对软件安全性测试具有非常重大的现实意义。

附图说明

[0103] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0104] 图1为本发明应用软件的安全性测试方法的方法流程图。
[0105] 图2为本发明应用软件的安全性测试方法所述的基于网络功能虚拟化的系统框架图。
[0106] 图3为本发明应用软件的安全性测试方法所述的密码错误隔离规则图。
[0107] 图4为本发明应用软件的安全性测试方法所述的数据安全监测流程图。
[0108] 图5为本发明应用软件的安全性测试方法所述的擦除规则判断图。
[0109] 图6为本发明应用软件的安全性测试方法所述的决策树和随机森林图。

具体实施方式

[0110] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明。
[0111] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0112] 其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
[0113] 再其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
[0114] 实施例1
[0115] 本实施例中,参照图1,提供了一种应用软件的安全性测试方法的方法流程图,如图1,一种应用软件的安全性测试方法包括以下步骤:
[0116] S1:应用软件分类。
[0117] 应用软件分类包括数据收集、数据预处理和构建分类模型;
[0118] 数据收集所收集的数据包括应用软件的名称、描述、功能特性和类别,通过查询应用商店以及网络爬虫技术实现;
[0119] 数据预处理包括对数据收集中的数据进行数据清洗和标准化处理,数据清洗包括删除重复数据、处理缺失数据和错误数据,标准化处理包括过滤数据、缺失数据处理和错误数据处理,形成数据集;
[0120] 构建分类模型包括特征选择和分类模型训练,分类模型训练包括数据划分、模型训练和模型评估;
[0121] 采用BP神经网络作为分类模型,特征选择将应用软件按照安全等级进行编码和向量化,安全等级划分公式如下:
[0122] ;
[0123] 式中 表示安全等级,安全等级包括SSS级、S级、A级、B级、C级、D级;
[0124] 分类模型还包括输入层、隐含层和输出层,将应用软件的描述、功能特性和类别输入到输入层中,再由隐含层进行特征提取和优化,最后从输出层中输出安全等级;
[0125] 输入层的神经节点为3个,包括应用软件的描述、功能特性和类别,输入层的3个神经节点统称为输入向量,表达式如下所示:
[0126] ;
[0127] 式中 表示所述描述、 表示所述功能特性、 表示类别;
[0128] 隐含层的神经节点为8个,使用隐含层的2个神经节点对输入层中描述的神经节点进行特征提取并优化,使用隐含层的4个神经节点对输入层中功能特性的神经节点进行特征提取并优化,使用隐含层的2个神经节点对输入层中类别的神经节点进行特征提取并优化,特征提取的表达式如下所示:
[0129] ;
[0130] 式中, 表示激活函数, 表示所述输入层的神经节点到所述隐含层的神经节点间的权值矩阵,表达式为 ,表示所述输入层的3个神经节点, 表示所述隐含层的8个神经节点, 表示所述输入向量, 表示所述输入层的神经节点到所述隐含层的神经节点间的偏置参数,表达式为 ,表示
所述输入层的3个神经节点, 表示矩阵转置;
[0131] 其中, 的表达式为 ;
[0132] 式中,表示自然常数,为常用的超越数之一, 表示输入向量;
[0133] 特征提取完由隐含层优化完输入到输出层,优化的表达式如下所示:
[0134] ;
[0135] 式中, 表示激活函数, 表示所述隐含层的神经节点到所述输出层的神经节点间的权值矩阵,表达式为 , 表示所述隐含层的8个神经节点, 表示所述输出层的6个神经节点, 所述隐含层的神经节点到所述输出层的神经节点间的偏置参数,表达式为 , 表示矩阵转置;
[0136] 其中, 的表达式为 ;
[0137] 输出层的神经节点为6个,分别对应6个不同的安全等级作为输出向量,输出向量的表达式如下所示:
[0138] ;
[0139] 式中, 表示所述安全等级中的SSS级, 表示所述安全等级中的S级, 表示所述安全等级中的A级, 表示所述安全等级中的B级, 表示所述安全等级中的C级, 表示所述安全等级中的D级;
[0140] 数据划分包括20%的测试集和80%的训练集,模型训练使用训练集训练分类模型;
[0141] 模型评估包括整体分类灵敏度 和准确度 ,所述整体分类灵敏度的计算公式如下:
[0142] ;
[0143] 式中, 表示按照所述安全等级划分分类灵敏度, 表示样本集, 表示样本集中所述应用软件的总数, 表示样本集中按照不同安全等级划分的所述应用软件的数量;
[0144] 所述准确度的计算公式如下:
[0145] ;
[0146] 式中, 表示样本集中按照不同安全等级划分的所述应用软件的数量, 表示样本集中所述应用软件的总数;
[0147] 若 且 ,则表示所述分类模型比较优秀;
[0148] 若 且 ,则表示所述分类模型一般;
[0149] 若 且 ,则表示所述分类模型一般;
[0150] 若 且 ,则表示所述分类模型一般;
[0151] 若 或 ,则表示分类模型不符合要求,需要继续进行优化。
[0152] 具体应用中,利用训练好的分类模型将壹买购物平台进行分类,确定该购物平台的安全等级为S级,进行网络安全检测。
[0153] S2:网络安全检测。
[0154] 网络安全检测是确保整个网络系统不受任何的威胁和侵害,防止未授权的访问攻击和恶意活动,实现资源的灵活共享,为了不受任何的威胁和侵害,需要将软件处于一个被隔离的状态,以防攻击造成对主机的损坏,这里基于网络功能虚拟化实现网络安全的双重保护;
[0155] 双重保护的实现是先利用虚拟化技术将物理服务器切割成多个逻辑服务器,生成多个虚拟机,虚拟机都有自己的操作系统和应用程序,然后在虚拟机中搭建云平台、安装数据库并安装不同的软件系统,再利用双向网闸连接云平台和外网,最后使用主机连接外网达到驱动软件系统的效果;
[0156] 云平台中分别设置防病毒保护系统、云防火墙、web服务器、应用服务器、数据库服务器、后台服务器,在云平台中实施数据加密处理并进行身份认证,为避免云平台遭受攻击,将几个服务器再利用云原生技术进行微隔离,使服务器独立且拥有完整的生命周期,保障了云平台中各个模块的独立和安全;
[0157] 网络功能虚拟化是将传统业务部署到云平台中,实现软硬件解耦合,再利用双向网闸实现外网和云平台之间的互通,如图2所示;
[0158] 部署的步骤包括获取应用软件对应的版本数据,包括但不限于操作系统版本、内核版本号、安装时间、系统制造商和物理内存;利用虚拟化技术创建与版本数据对应的虚拟服务器,包括但不限于web服务器、应用服务器、数据库服务器和后台服务器;添加与版本数据对应的防病毒保护系统和云防火墙;创建与版本数据对应的虚拟机;启动虚拟机,创建与版本数据对应的应用软件;
[0159] 双向网闸实现外网和云平台之间的互通,首先断开原有互联网连接方式,使用虚拟化网络功能,将双向网闸部署在云平台和防火墙之间,实现上、下行访问,然后利用双向网闸将外网的部分数据传输到云平台中,最后部署网络附属存储,通过双向网闸实现数据同步;
[0160] 实时监控网络安全是基于虚拟化网络功能来实现,出现安全问题实时报警并切断双向网闸,隔绝外界的安全威胁,也避免渗透测试操作威胁到主机的安全;
[0161] 报警的机制包括:读取应用软件的系统行为,若出现系统补丁缺漏、安全渗透失效、网络传输异常的现象,则及时报警并切断双向网闸。
[0162] 具体应用中,确认该购物平台的网络安全检测通过,进行帐户密码管理。
[0163] S3:帐户密码管理。
[0164] 帐户密码管理包括密码安全验证,密码安全验证包括密码强度验证和密码错误隔离;
[0165] 密码强度验证包括密码种类和密码计数,密码强度验证的计算如下所示:
[0166] ;
[0167] 式中, 表示密码位数, 表示密码计数函数, 表示密码种类函数,表示正整数;
[0168] 所述密码计数函数表达式如下所示:
[0169] ;
[0170] 式中, 表示判断输入的密码, 表示统计输入密码的位数;
[0171] 其中, 的表达式为 , 的表达式为;
[0172] 式中, 表示输入的密码, 表示密码位数;
[0173] 所述密码种类函数表达式如下所示:
[0174] ;
[0175] 式中, 表示密码种类的个数,所述密码种类包括大写字母、小写字母、数字和特殊符号, 表示所有种类排列不重复的个数;
[0176] 计算所述密码强度验证的公式得出密码强度有较弱、弱、中、强、较强五种。
[0177] 作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述密码强度的规则包括:
[0178] 若 且 ,则所述密码强度为较弱,需要尽快更换密码;
[0179] 若 且 ,则所述密码强度为弱,需要考虑更换密码;
[0180] 若 且 ,则所述密码强度为弱,需要考虑更换密码;
[0181] 若 且 ,则所述密码强度为中,表示密码一般;
[0182] 若 且 ,则所述密码强度为中,表示密码一般;
[0183] 若 且 ,则所述密码强度为中,表示密码一般;
[0184] 若 且 ,则所述密码强度为强,表示密码相对安全;
[0185] 若 且 ,则所述密码强度为强,表示密码相对安全;
[0186] 若 且 ,则密码强度为较强,表示密码安全;
[0187] 密码错误隔离包括时间隔离和IP隔离,密码错误隔离的规则流程如图3所示,具体规则如下:首先记录尝试次数、登陆时间和IP地址,判断错误尝试次数是否超过3次、同一个IP是否多帐户登陆失败;
[0188] 若错误尝试次数超过3次、同一个IP多帐户登陆失败,则隔离应用软件帐户和所登陆的IP地址;
[0189] 若错误尝试次数没有超过3次且同一个IP不存在多帐户登陆失败,则结束规则流程;
[0190] 其中当存在错误尝试次数超过3次、同一个IP多帐户登陆失败,要判断应用软件安全等级;
[0191] 若应用软件安全等级为SSS级,则将应用软件隔离24小时且需要与管理员联系;
[0192] 若应用软件安全等级为S级,则将应用软件隔离1小时;
[0193] 若应用软件安全等级为A级,则将应用软件隔离30分钟;
[0194] 若应用软件安全等级为B级,则将应用软件隔离20分钟;
[0195] 若应用软件安全等级为C级,则将应用软件隔离10分钟;
[0196] 若应用软件安全等级为D级,则将应用软件隔离5分钟;
[0197] 最后密码错误隔离完成后结束规则流程。
[0198] 具体应用中,已知用户输入的密码为adgr123frg&ht@,密码计数函数为,密码种类函数为,计算结果为20,则密码强度验证的公式计算为:
,其中
且 ,则判断该密码的密码强度为强,表示密码相
对安全,且该购物平台的安全等级为S级,若用户超过3次未登陆成功或同一个IP存在多帐户登陆失败,则将该购物软件隔离1小时,隔离时间结束方可重新登陆,登陆成功则执行用户操作并进行数据安全监测,若用户在3次内登陆成功,则执行用户操作并进行数据安全监测。
[0199] S4:执行用户操作并进行数据安全监测。
[0200] 用户操作时需实行数据安全监测,数据安全监测是对数据进行保密、完整性和可用性的保护,确保软件中所存储的数据不受外界破坏、更改和泄漏,监测流程如图4所示,数据安全监测的异常涉及到帐户密码管理的应用软件帐户和用户操作行为;
[0201] 首先读取应用软件帐户登陆的情况,验证应用软件帐户是否存在长期未登陆后登陆直接查询敏感数据的情况,验证应用软件帐户是否存在多人同时登陆、登陆IP地址不同的情况,然后读取用户操作行为,用户操作行为包括查询行为和修改行为,查看查询行为的行为数据和修改行为的行为数据是否超过阈值;
[0202] 若查询行为的行为数据和修改行为的行为数据超过阈值,则页面警示用户异常行为,页面警示后看用户是否继续操作,若继续操作,则实行帐户锁定并系统报警,若没有继续操作,则结束监测;
[0203] 若查询行为的行为数据和修改行为的行为数据没有超过阈值,则结束监测;
[0204] 其中,阈值包括:一天内查询重复数据为100次、一个用户一天内被查询10次、一个用户一个月内被查询100次、单次查询百万条数据、半天内更改数据为100次、半天内插入、删除数据为100次。
[0205] 具体应用中,该用户在执行用户操作时并没有存在长期未登陆后直接查询敏感数据的情况,也没有存在该帐户多人同时登陆、登陆IP地址不同的情况,判断用户操作行为正常,结束监测。
[0206] S5:退出使用。
[0207] 退出使用包括擦除应用软件帐户的敏感信息,擦除包括永久擦除和期限擦除,擦除的规则如图5所示,具体规则如下:
[0208] 首先定义敏感信息,包括应用软件帐户的用户资料、登陆信息和浏览历史,然后判断应用软件安全等级;
[0209] 若应用软件安全等级为SSS级,则将敏感信息永久擦除;
[0210] 若应用软件安全等级为S级,则将敏感信息定义成7天免擦除;
[0211] 若应用软件安全等级为A级,则将敏感信息定义成一个月免擦除;
[0212] 若应用软件安全等级为B级,则将敏感信息定义成三个月免擦除;
[0213] 若应用软件安全等级为C级,则将敏感信息定义成半年免擦除;
[0214] 若应用软件安全等级为D级,则将敏感信息定义成一年免擦除;
[0215] 最后擦除完毕结束规则。
[0216] 具体应用中,当用户无异常操作行为且没有继续使用的迹象,则退出使用,已知该购物平台的安全等级为S级,则将用户资料、登陆信息和浏览历史在7天内免擦除,7天之后执行擦除工作。
[0217] 以上步骤全程需要进行安全审计管理,跟踪一切应用软件活动,对应用软件进行多维度监测,监测安全隐患,生成决策树,将多个决策树整合而成随机森林,利用随机森林的预测性对安全隐患进行预测,并将预测信息提示给应用软件,确保能够及时发现应用软件中的安全隐患点,并视不同严重程度采取包括排除隐患、挽回数据、人员追责在内的多种补救措施,同时能够指导应用软件不再重复类似问题,并对系统日志进行管理与分析。
[0218] 决策树和随机森林如图6所示,分别依照帐户密码管理、数据使用、用户操作行为等维度进行细化应用软件是否安全;
[0219] 其中,帐户密码管理从密码是否明文、密码策略的强弱、有无密码错误隔离三个方面依次考虑来确定应用软件的安全性,数据使用从有无数据备份、是否限制远程访问和有无安全意识培训三个方面依次考虑来确定应用软件的安全性,用户操作行为从有无异常操作、非授权攻击是否有效、网络传输安全是否异常三个方面依次考虑来确定应用软件的安全性。
[0220] 将上述按照帐户密码管理、数据使用、用户操作行为进行构建的三个决策树整合而成随机森林,利用随机森林的预测性对安全隐患进行预测,并将预测结果提示给应用软件的界面。
[0221] 具体应用中,该购物平台的密码不是明文、密码策略为强、有密码错误隔离、有数据备份、限制远程访问、有安全意识培训、上述用户无异常操作、非授权攻击无效且网络传输安全无异常,确定了该购物平台的安全性。
[0222] 实施例2
[0223] 本实施例中,提供了一种计算机设备,包括存储器和处理器,存储器用于存储指令,处理器用于执行所述指令,使得计算机设备执行实现上述应用软件的安全性测试方法的步骤。
[0224] 实施例3
[0225] 本实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,计算机程序被处理器执行时实现上述应用软件的安全性测试方法的步骤。
[0226] 该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0227] 应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。