一、客户信息安全性测试简介
各行各业都普遍使用包含大量客户信息的系统,如果泄露可能会造成经济损失和不良社会影响。客户信息的泄露有多种途径,本文设计的客户信息安全性测试方法关注从系统的应用层面产生的泄露风险。
比如,有些应用系统界面展现了较多的客户信息,有些界面具有导出、拷贝、打印功能,存在一定客户信息泄露风险。然而,有些界面展现的是系统内部分析结果、系统内部使用的客户标签数据,这些数据脱离系统本身,并不具有意义。
一个客户信息应用系统往往包含较多的界面,不同应用界面展现的客户信息内容、数量等均不相同。哪些风险较高,哪些风险较低,凭借主观经验判断很难精准定量分析。应用系统客户信息安全性测试正好可以解决这一问题,它采用定量评估方法,准确计算出每个展现客户信息应用界面的客户信息泄露风险值,取值范围在0至100之间,能够将风险量化为数值,便于定位风险、分级保护。
二、建立评估模型
想要通过计算机定量计算出客户信息泄露的风险值,先要建立一个评估的模型。这里,我们使用径向基函数(RBF)神经网络方法,具体实现通过以下几步:
第一步:确定输入
每个客户信息应用界面都包含如下一些特征信息:展现的客户信息要素的种类数量、展现的最多条数、精准查询定位功能、其他安全相关功能(如:打印、导出等等)。本方法需要将应用界面的特征信息抽象为特征向量
举个例子:可以将个人客户信息要素分为七类:
(一)身份标识信息,包括姓名/名称、证件类别、证件号码及有效期限、手机号;
(二)身份其他信息,包括座机电话、邮件、微信等联系方式、地址及照片等;
(三)认证信息,包括密码、密钥、动态认证信息等;
(四)账户信息,包括账号、账户开立时间、开户行、账户余额、账户交易情况等;
(五)财产信息,包括经营或收入状况、拥有的不动产状况、拥有的车辆状况、纳税额等;
(六)信用信息,包括授信或信用卡额度情况、贷款情况以及客户在经济活动中形成的,能够反映其信用状况的其他信息。
(七)其他信息。
到
表示每类客户信息要素在应用界面中出现的数量,
表示最多展现的行数数量级,即行数的常用对数四舍五入,
,L为应用界面最多展现的行数。表示对某一客户精准定位功能,取值0或1。
为预留位,表示其他特征,
采用上面的方法,图1的输出界面的特征向量为(2,0,0,0,3,1,6,2,1,0),其中一类客户信息要素2个,五类客户信息要素3个,六类客户信息要素1个,七类客户信息要素6个。最大可展现的客户数为100,常用对数为2。可以精准定位,无特殊特征。
图1:客户信息系统应用界面
以上是对个人客户信息系统应用界面提取特征向量的一种举例,实际应用本方法,可以根据情况调整,适应不同应用环境。
第二步:建立训练样本
本发明建立样本的方法采用调研法。首先制定出合理的富贵论坛评分范围,调研对象在评分范围内对样本进行打分。对于上文中对个人客户信息要素分为七类的方法,打分范围的规则如下:
100分档至少包含以下信息组合之一:身份标识+认证;账户+认证。
80分档至少包含以下信息组合之一:身份标识+财产;身份标识+信用;
60分档至少包含以下信息组合之一:只含有身份标识;身份标识+身份其他;身份其他+认证;身份其他+账户;身份其他+财产;身份其他+信用;
40分档至少包含以下信息组合之一:认证+财产;认证+信用;账户+财产;账户+信用;财产+信用;
20分档只含有以下信息之一:身份其他;认证;帐户;财产;信用。
如某个样本满足80分档,需要结合特征向量其他维度取值情况主观判断确定80-99之间的具体一个分值。不同的调研者对同一个样本的打分可能不一样,这里采用统计学均值方法确定样本唯一取值。采用这种方法可以获得噪声相对较小的样本集。
第三步:建立评估模型
图2:径向基函数神经网络
径向基函数神经网络如图所示。其中输入层的大小为m,输出层的大小为1,隐层的大小为K。本发明采用非监督的机器学习方法,建立径向基函数神经网络主要包括以下几个步骤:
1、确定隐层的K。建议
,m是输入层大小。
2、采用K-均值聚类(也称K-meas聚类)方法,计算N个输入样本的K个最优聚类均值C1,C2,…CK。以该中心作为径向基函数核函数。
3、建立镜像基函数核函数(高斯函数)
高斯函数:
,其中
为所选取中心之间的最大距离。
建立径向基函数神经网络的输入为N个样本X1,X2,…,XN。其中Xi=(xi1,xi2,…,xim),其差值函数为:
插值条件代入:
该公式可以简写为
,径向基函数神经网络的核心是计算权值w。由于
为N行K列矩阵,行数大于列数,此时可以求
的伪逆。即
。权值
图3:建立评估模型流程图
三、使用模型进行风险评估
模型建立好后,我们就能够使用模型来评估客户信息泄露的风险啦,这种客户信息安全性测试方法,适用于客户信息系统对外展示级别的风险分析,可以分析计算每个应用界面的客户信息泄露风险值,适用于各领域的客户信息系统。通过较小的样本训练集可训练出成熟的神经网络,自动分析判断客户信息泄露风险,代替人工判断,减少人工分析的工作量及主观性。可以通过采用或者自动化的方法,抽取出客户信息系统应用界面的特征向量
,输入到神经网络的输入层,自动计算出风险分值
可以对同一个系统多个界面进行评估,分数极高的若干界面可以加强访问控制。也可以用同一个模型对不同系统进行评估,横向比较不同系统之间客户信息泄露风险的高低,对不同应用系统分级保护。
最后给测试人的一封信
IT工作是辛苦的,软件测试当然也不例外。
每天执行用例、跟踪Bug,
还要与开发、产品同学争吵PK,与人斗其乐无穷~
但正是因为这些默默的付出,
你是一场本该在用户面前发生的灾难,
提前在自己面前发生了
你是否有一种救世主的感觉?
你拯救了用户,也拯救了这一软件,
避免了她被撇弃、卸载的命运。
既然选择了测试这一行,何不一站到底~~
现在我邀请你进入我们的软件测试学习交流群,关注+私信我“测试”,即可拉你入群哟~~
大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。