本发明涉及软件安全性测试的,尤其涉及一种应用软件的安全性测试方法。
背景技术:
1、近年来我国网络技术发展较快,计算机技术应用范围在不断扩大,各类软件普及率在不断上升。在开放网络环境下,软件的复杂程度、软件漏洞不断增加,导致多项损失在不断增加,软件安全性问题受到社会多领域高度关注,软件安全性测试是保障软件安全性和降低安全风险的重要方面,这对软件安全性测试也提出了更高的要求。现有技术大多是对软件安全的某一方面进行安全性测试,而且可能在利用安全性测试方法造成对主机的损坏,但不能全方面的对软件进行安全性测试,并且不能避免安全性测试过程中给主机带来的损坏。
2、如申请公开号为cn105187403a的中国专利公开了一种面向软件定义网络的网络安全性测试方法,包括针对目标软件定义网络的安全性测试框架、安全性测试策略、分类安全性测试方法、项目安全性测试方法和安全性测试步骤。其中,测试框架包括将目标软件定义网络划分为数据、控制、应用和管理四个网络平面,分别对各个网络平面的各个网元、链路以及各个网络平面之间的接口展开安全性测试;测试策略包括对安全性测试框架中的各个单元进行测试的选择和流程编制方法;分类安全性测试方法依据各个单元的类别特点开展不同类型的安全性测试;项目安全性测试方法实现具体的针对目标网元、链路或接口的安全性测试,测试流程定义了完整的针对目标软件定义网络的安全性测试过程和步骤。
3、以上专利存在本背景技术提出的问题:不能全方面的对软件进行安全性测试,并且不能避免安全性测试过程中给主机带来的损坏。为解决这一问题,本发明提出一种应用软件的安全性测试方法。
技术实现思路
1、本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
2、鉴于上述现有应用软件的安全性测试方法存在的问题,提出了本发明。
3、因此,本发明目的是提供一种应用软件的安全性测试方法。
4、为解决上述技术问题,本发明提供如下技术方案:进行应用软件分类;
5、对所述应用软件进行网络安全检测;
6、所述网络安全检测结束后进行帐户密码管理;
7、所述帐户密码管理后,执行用户操作并进行数据安全监测;
8、所述数据安全监测后无后续操作则退出使用。
9、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述应用软件分类包括数据收集、数据预处理和构建分类模型;
10、所述数据收集所收集的数据包括所述应用软件的名称、描述、功能特性和类别;
11、所述数据预处理包括对所述数据收集中的所述数据进行数据清洗和标准化处理,所述数据清洗包括删除重复数据、处理缺失数据和错误数据,所述标准化处理包括过滤所述数据、所述缺失数据处理和所述错误数据处理,形成数据集;
12、构建所述分类模型包括特征选择和分类模型训练,所述分类模型训练包括数据划分、模型训练和模型评估;
13、采用bp神经网络作为分类模型,所述特征选择将所述应用软件按照安全等级进行编码和向量化,安全等级划分公式如下:
14、;
15、式中表示安全等级,所述安全等级包括sss级、s级、a级、b级、c级、d级。
16、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述分类模型还包括输入层、隐含层和输出层,将所述应用软件的描述、功能特性和类别输入到所述输入层中,再由所述隐含层进行特征提取和优化,最后从所述输出层中输出所述安全等级;
17、所述输入层的神经节点为3个,包括所述应用软件的描述、功能特性和类别,所述输入层的3个神经节点统称为输入向量,表达式如下所示:
18、;
19、式中表示所述描述、表示所述功能特性、表示所述类别;
20、所述隐含层的神经节点为8个,使用所述隐含层的2个神经节点对所述输入层中所述描述的神经节点进行特征提取并优化,使用所述隐含层的4个神经节点对所述输入层中所述功能特性的神经节点进行特征提取并优化,使用所述隐含层的2个神经节点对所述输入层中所述类别的神经节点进行特征提取并优化,所述特征提取的表达式如下所示:
21、;
22、式中,表示激活函数,表示所述输入层的神经节点到所述隐含层的神经节点间的权值矩阵,表达式为,表示所述输入层的3个神经节点,表示所述隐含层的8个神经节点,表示所述输入向量,表示所述输入层的神经节点到所述隐含层的神经节点间的偏置参数,表达式为,表示所述输入层的3个神经节点,表示矩阵转置;
23、其中,的表达式为;
24、式中,表示自然常数,为常用的超越数之一,表示所述输入向量;
25、所述特征提取完由所述隐含层优化完输入到输出层,所述优化的表达式如下所示:
26、;
27、式中,表示激活函数,表示所述隐含层的神经节点到所述输出层的神经节点间的权值矩阵,表达式为,表示所述隐含层的8个神经节点,表示所述输出层的6个神经节点,所述隐含层的神经节点到所述输出层的神经节点间的偏置参数,表达式为,表示矩阵转置;
28、其中,的表达式为;
29、所述输出层的神经节点为6个,分别对应6个不同的所述安全等级作为输出向量,所述输出向量的表达式如下所示:
30、;
31、式中,表示所述安全等级中的sss级,表示所述安全等级中的s级,表示所述安全等级中的a级,表示所述安全等级中的b级,表示所述安全等级中的c级,表示所述安全等级中的d级;
32、所述数据划分包括20%的测试集和80%的训练集,所述模型训练使用所述训练集训练所述分类模型。
33、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述模型评估包括整体分类灵敏度和准确度,所述整体分类灵敏度的计算公式如下:
34、;
35、式中,表示按照所述安全等级划分分类灵敏度,表示样本集,表示样本集中所述应用软件的总数,表示样本集中按照不同安全等级划分的所述应用软件的数量;
36、所述准确度的计算公式如下:
37、;
38、式中,表示样本集中按照不同安全等级划分的所述应用软件的数量,表示样本集中所述应用软件的总数;
39、若且,则表示所述分类模型比较优秀;
40、若且,则表示所述分类模型一般;
41、若且,则表示所述分类模型一般;
42、若且,则表示所述分类模型一般;
43、若或,则表示所述分类模型不符合要求,需要继续进行优化。
44、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述帐户密码管理包括密码安全验证,所述密码安全验证包括密码强度验证和密码错误隔离;
45、所述密码强度验证包括密码种类和密码计数,密码强度验证的计算如下所示:
46、;
47、式中,表示密码位数,表示密码计数函数,表示密码种类函数,表示正整数;
48、所述密码计数函数表达式如下所示:
49、;
50、式中,表示判断输入的密码,表示统计输入密码的位数;
51、其中,的表达式为,的表达式为;
52、式中,表示输入的密码,表示密码位数;
53、所述密码种类函数表达式如下所示:
54、;
55、式中,表示密码种类的个数,所述密码种类包括大写字母、小写字母、数字和特殊符号,表示所有种类排列不重复的个数;
56、计算所述密码强度验证的公式得出密码强度有较弱、弱、中、强、较强五种。
57、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述密码强度的规则包括:
58、若且,则所述密码强度为较弱,需要尽快更换密码;
59、若且,则所述密码强度为弱,需要考虑更换密码;
60、若且,则所述密码强度为弱,需要考虑更换密码;
61、若且,则所述密码强度为中,表示密码一般;
62、若且,则所述密码强度为中,表示密码一般;
63、若且,则所述密码强度为中,表示密码一般;
64、若且,则所述密码强度为强,表示密码相对安全;
65、若且,则所述密码强度为强,表示密码相对安全;
66、若且,则所述密码强度为较强,表示密码安全。
67、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述密码错误隔离包括时间隔离和ip隔离,所述密码错误隔离的规则流程如下:
68、首先记录尝试次数、登陆时间和ip地址,判断错误尝试次数是否超过3次、同一个ip是否多帐户登陆失败;
69、若错误尝试次数超过3次、同一个ip多帐户登陆失败,则隔离应用软件帐户和所登陆的ip地址;
70、若错误尝试次数没有超过3次且同一个ip不存在多帐户登陆失败,则结束所述规则流程;
71、其中当存在错误尝试次数超过3次、同一个ip多帐户登陆失败,要判断应用软件安全等级;
72、若所述应用软件安全等级为sss级,则将所述应用软件隔离24小时且需要与管理员联系;
73、若所述应用软件安全等级为s级,则将所述应用软件隔离1小时;
74、若所述应用软件安全等级为a级,则将所述应用软件隔离30分钟;
75、若所述应用软件安全等级为b级,则将所述应用软件隔离20分钟;
76、若所述应用软件安全等级为c级,则将所述应用软件隔离10分钟;
77、若所述应用软件安全等级为d级,则将所述应用软件隔离5分钟;
78、最后所述密码错误隔离完成后结束规则流程。
79、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述用户操作时需实行所述数据安全监测,所述数据安全监测的异常涉及到所述帐户密码管理的应用软件帐户和用户操作行为;
80、首先读取所述应用软件帐户登陆的情况,验证所述应用软件帐户是否存在长期未登陆后登陆直接查询敏感数据的情况,验证所述应用软件帐户是否存在多人同时登陆、登陆ip地址不同的情况,然后读取所述用户操作行为,所述用户操作行为包括查询行为和修改行为,查看所述查询行为的行为数据和所述修改行为的行为数据是否超过阈值;
81、若所述查询行为的行为数据和所述修改行为的行为数据超过所述阈值,则页面警示用户异常行为,所述页面警示后看用户是否继续操作,若继续操作,则实行帐户锁定并系统报警,若没有继续操作,则结束监测;
82、若所述查询行为的行为数据和所述修改行为的行为数据没有超过所述阈值,则结束监测;
83、其中,所述阈值包括:一天内查询重复数据为100次、一个用户一天内被查询10次、一个用户一个月内被查询100次、单次查询百万条数据、半天内更改数据为100次、半天内插入、删除数据为100次。
84、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述退出使用包括擦除所述应用软件帐户的敏感信息,所述擦除包括永久擦除和期限擦除,所述擦除的规则如下:
85、首先定义所述敏感信息,包括所述应用软件帐户的用户资料、登陆信息和浏览历史,然后判断所述应用软件安全等级;
86、若所述应用软件安全等级为sss级,则将所述敏感信息永久擦除;
87、若所述应用软件安全等级为s级,则将所述敏感信息定义成7天免擦除;
88、若所述应用软件安全等级为a级,则将所述敏感信息定义成一个月免擦除;
89、若所述应用软件安全等级为b级,则将所述敏感信息定义成三个月免擦除;
90、若所述应用软件安全等级为c级,则将所述敏感信息定义成半年免擦除;
91、若所述应用软件安全等级为d级,则将所述敏感信息定义成一年免擦除;
92、最后擦除完毕结束规则。
93、作为本发明所述应用软件的安全性测试方法的一种优选方案,其中:所述应用软件的安全性测试方法还包括安全审计管理,多维度监测安全隐患,生成决策树;
94、所述决策树分别按照所述帐户密码管理、数据使用、所述用户操作行为进行构建;
95、将上述按照所述帐户密码管理、数据使用、所述用户操作行为进行构建的三个所述决策树整合而成随机森林,利用所述随机森林的预测性对所述安全隐患进行预测,并将所述预测结果提示给所述应用软件的界面。
96、一种计算机设备,包括,存储器,用于存储指令;处理器,用于执行所述指令,使得所述设备执行实现应用软件的安全性测试方法。
97、一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被所述处理器执行时,实现应用软件的安全性测试方法。
98、本发明的有益效果:本发明通过bp神经网络算法进行应用软件分类,利用网络功能虚拟化执行网络安全检测,使用密码强度验证和密码错误隔离进行帐户密码管理,执行用户操作并进行数据安全监测,退出使用时实行擦除操作,全程实行安全审计管理,多维度监测安全隐患,确保能够全方面地对软件进行安全性测试,且能避免安全性测试过程中给主机造成的损坏,对软件安全性测试具有非常重大的现实意义。