微慑信息网

接收漏洞报告的数量、质量与白帽子、运营活动的关系研究

1 引言

新世纪以来,我国互联网行业快速发展与技术、业务创新的同时,伴随而来的是各类安全性问题。安全问题并非新事物,而是自计算机软件开始大规模工业化应用起,就一直与计算机应用、业务一起共同变化。与软件时代相比,安全问题也从设计需求到实现落地上,产生了极大的变化。主要体现在安全战线被迅速拉长与新技术、新架构形式、爆发式的对中低层次研发人员的需求增长,给安全架构与安全性设计带来全新的巨大挑战:安全对抗从传统的网络、协议、系统、应用与桌面层次,迅速转化为快速变化、快速迭代中的业务流程、业务逻辑、逻辑与流程实现方面的全方位对抗。新技术、新架构形式爆发式的增长与整个互联网业务形态决定了,支撑其业务的技术、架构设计,考虑的就是要满足大流量、高并发、低成本、错误快速恢复、高冗余等指标。如何设计才能在不降低框架、架构、设计、流程的使用、运行成本的基础上,有效的提升编码的安全性,至今都仍是安全从业者们关注的重点。

2012年之前,行业内的看法大多趋向于从事前培训与发现、事中监控与阻断、事后审计与总结三个方面建设、构建企业安全体系。而后TSRC(腾讯安全应急响应中心)的成立,引入了白帽子协助企业发现安全问题。这一全新的理念,迅速为广大安全工作者接受。SRC模式改变过去企业安全与白帽子、自由安全研究员在安全技术上合作但是在安全业务上对抗的模式,主动与白帽子、自由安全研究员合作,对提供有效漏洞、安全情报、安全缺陷的报告提交者以一定的奖励。如此则既避免了白帽子与自由安全研究员在研究、探索安全技术时潜在的法律安全风险点,又给企业提供了一个以低成本,按效果付费的外源性安全问题发现机制。

安全漏洞、安全情报、安全设计缺陷,一般按照问题的影响,分为:严重、高危、中危、低危、BUG/无影响、非漏洞几个等级。所以SRC之于企业,最大的价值在于挖掘企业安全建设过程中自身难以覆盖的业务层面的高危、严重等级的安全性问题。如何界定SRC的价值,以及如何更好的通过运营活动持续提升SRC对于企业的价值是近几年来企业安全工作者们讨论的重点。通常认为漏洞报告数量是用于与企业安全建设中,发现的内源性安全性漏洞数量进行对比,衡量SRC在总的安全性问题上覆盖率的指标;优质漏洞数量(严重及高危)为衡量SRC对企业安全建设中,不在自身覆盖范围内的安全问题覆盖程度的指标。

本文通过对58业SRC上线以来的漏洞报告提交数、优质漏洞报告提交数与注册白帽子数量、运营活动之间的关系进行分析。为企业SRC运营活动的开展方式、目标,SRC建设方向与核心指标的提取提供有意义的建议。

2 数据来源、数据预处理与数据介绍

2.1 数据来源

本文实证分析与研究,选取的是58SRC自上线至写作时止,共166天的数据。原始数据包含按日统计的:新增漏洞报告数、新增优质漏洞报告数、新增注册白帽子数、当日开展了哪些运营活动。

2.2 数据预处理

在数据预处理阶段,对原始数据进行了变换。首先是对当天没有新增漏洞报告、新增优质漏洞报告、新增注册白帽子的各行做补0处理,整体对齐166天范围的时间序列数据。然后将日期转化为与日期无关从1开始的纯数字序列。最后是新增了一列截止当日注册白帽子总数的变量。

2.3 数据介绍

为叙述方便,后续以英文命名变量,各变量含义见下表:

当日新增漏洞报告 当日新增优质漏洞 SRC上线双倍奖励 春节双倍奖励 爱春秋双倍奖励 六月双倍奖励 当日新增白帽子 当日白帽子总数
newVulAll newVulHigh openDouble springDouble icqDouble juneDouble newUser userTotal

 

虚拟变量的设置

上表变量中,openDouble、springDouble、icqDouble、juneDouble为虚拟变量。当变量对应的运营活动正在进行时取值1,否则取0。四次运营活动里,任意两个均未同时进行过,不需要考虑虚拟变量陷阱问题。如下图所示。

 

图1 运营活动开展时间示意

SRC上线、六月两次活动的形式为:对所有的漏洞报告均给予双倍奖励;春节、爱春秋两次活动的形式为:仅对漏洞报告评级为高危及严重的给予双倍奖励。从活动形式上SRC上线、六月与春节、爱春秋对整体SRC运营影响的方式是不一样的,故这两类形式不同的活动虚拟变量应该分开,不能共用一个变量。

由于有较多外部白帽子、自由安全研究员在SRC上线前就已经掌握了大量漏洞信息;而上线六个月后,大部分积压漏洞报告已经报告完毕。故SRC上线与六月两次活动对整体SRC运营的影响程度也不一样,这两个运营活动需要单独设置虚拟变量。春节期间大多数白帽子、自由安全研究员挖掘安全漏洞的积极性有所下降;爱春秋活动是由若干厂商赞助的安全技术沙龙。故春节和爱春秋两次活动对整体SRC运营的影响范围与影响程度也不一样,对这两个运营活动也需要单独设置虚拟变量。

数据整体变化趋势

前表设置的非虚拟变量,整体呈现SRC上线时数值或增量特别大,之后逐渐趋于平缓;但在部分运营活动开展时,局部数值或增量略有变化的趋势。数据的整体走势如下两图所示:

 

图2 新增注册白帽子与总注册白帽子数量随时间变化趋势

 

图3 每日新增漏洞报告与高危以上漏洞报告数量随时间变化趋势

从图中可以看出,newVulAll与newVulHigh的变化有时趋势一致,有时与newUser的变化一致。初步考虑三者存在相关性。(其实上面的图看不清楚,因为一开始的数值太大了。取对数后重新画一次,看下面两个图)

 

图2改 新增注册白帽子与总注册白帽子数量随时间变化趋势

 

图3改 每日新增漏洞报告与高危以上漏洞报告数量随时间变化趋势

2.4 数据的平稳性检测

在对时间序列开始分析前,先对数据做平稳性检验。ADF平稳性检验原理来自:对于时间序列D,通常能找到一组常数α、β、γ,使得时间序列D能满足以下四组方程中的某一组:

其中ɛi为随机扰动,对∀i有 ɛi~N(0, σ2);且对∀ t、j,若t≠j,则有COV(ɛtj)=0。对于上述三式,若|γ|=1时,称时间序列D存在单位根,整个时间序列D有可能会退化为一个随机游走序列,不满足平稳性要求,可能产生伪回归问题;若|γ|<1时,从长期来看,前序序列对后序序列的影响逐渐归0,满足平稳性要求,可以进行回归分析;若|γ|>1时,从长期来看,前序序列对后续序列的影响被不断放大,亦不满足平稳性要求,极可能产生伪回归问题。若序列不满足平稳性要求,则当且仅当自变量与因变量满足协整条件时,回归分析产生的对数据的拟合模型才是有意义的。

userTotal实际是来自newUser变量的历史值求和,应该存在非平稳问题。但是若对userTotal变量求差分,产生的实际结果则是newUser变量。如此则会影响回归模型对实际问题的解读。出于严谨性考虑,现对newVulAll,newVulHigh,newUser,userTotal四个变量均进行了平稳性检测。检测结果如下表:

变量 延迟因子 检验式 检验统计量 1%显著水平分位点 5%显著水平分位点 小结
newVulAll 1 1 -4.684 -2.58 -1.95 一阶延迟平稳
newVulHigh 1 1 -5.5928 一阶延迟平稳
newUser 1 1 -5.7837 一阶延迟平稳
userTotal 1 3 -13.0866

59.7032

87.4317

-3.99

6.22

8.43

-3.43

4.75

6.49

一阶延迟平稳

表1:各变量平稳性检测结果

(实际上,除了userTotal变量不能在式1下通过检验,其他所有拟合式、所有变量都能检验通过,具体看r代码吧,有注释。式2实际上是式3取α=0时的特例。看了下ur.df包,trend模式时允许α=0,就不单独再尝试式2了)

结论:newVulAll,newVulHigh,newUser,userTotal四个变量均在1%的显著性水平下通过了平稳性检验。

3 模型回归、结果分析和初步结论

3.1模型回归原理

多元线性回归假设因变量与自变量之间,无论在实际总体还是样本观察值里,都存在如下两式所示的线性近似关系:

令因变量为y,具体样本值表示为yt;自变量为xi,具体的样本值表示为xit,那么有,

其中ɛ和ɛt为服从均值为0正态分布的随机扰动项,且满足以下假设:

对ɛ和ɛt,有

可以证明,从合理抽样的样本中计算出的式6中的各常数和系数,是对于总体式5中各常数和系数的无偏估计量。

具体计算常数项与各自变量系数的常用方法为最小二乘法,即:忽略随机扰动项;直接将样本值带入式2,得到自变量为γi和β的回归曲线;构造所有样本点距离特定γi和β的回归曲线时的残差平方和函数;由于xi之间独立不相关,故γi之间也独立不相关,可以分别对γi和β求偏导,以寻找各自的极值;寻找、计算合适的γi0和β0组合以使得残差平方和函数值最小。此时找到的γi0和β0组合即为对式6中γi和β的最大似然估计值(公式略)。

由于回归模型成立的条件预设有上述式8的条件,而实际应用过程中,时间序列有可能会不满足式8所述的条件,这种情况称为异方差。当异方差出现时,如果仍然按照同方差的假设进行回归,则会出现检验结果偏向乐观,对本不应该通过检验的回归方程或系数更乐观的被判定为通过检验。故每个模型回归完成时,还需要检查是否存在异方差。

通常采用white检验来进行异方差检测。用于模型回归的样本出现异方差时,若使用普通的标准差,则会导致模型评估不准确。此时需要改用robust稳健标准差再次对回归模型进行评估。

3.2 对每日新增漏洞报告总数建立回归模型

直接以newVulAll作为因变量,以newUser,userTotal,openDouble,springDouble,icqDouble,juneDouble作为自变量尝试建立回归模型,结果如下表:

 

条目 系数取值 标准差 t统计量 p值
newUser 2.0415 0.0713 28.652 2×10-16
userTotal 0.0228 0.01201 1.895 0.0600
openDouble 16.4850 2.9303 5.626 8.13×10-8
springDouble 4.6791 3.7273 1.255 0.2112
icqDouble -0.6372 2.8401 -0.224 0.8228
juneDouble 11.2238 2.8160 3.986 1.02×10-4
常数项 -7.8794 4.7165 无意义 无意义
条目 R2 调整R2 f统计量 p值
回归模型整体检验 0.8945 0.8905 F(6,159)=224.6 2.2×10-16

表2:对newVualAll变量直接回归的结果

怎么看上面这个表?科普君上线:

1. 常数项的t检验结果无意义,通常不看;标准差仅表示样本集中该变量的样本标准差,通常也不看。即:上表中灰色部分通常不关注。

2. 各变量回归系数采用双边t检验,有兴趣自己查t统计量表,没兴趣直接看p值

3. R2和调整R2值介于0-1之间,值约大,说明模型对样本数据的拟合程度越高

4. f统计量有兴趣自己查f统计量表,没兴趣直接看p值

5. p值介于0-1之间,值约小,说明“本变量的系数”或“回归模型”越可信;为什么概率越小越可信的问题超出本文范围,请自行学习统计学中“假设检验”部分知识

6. 后面本文作者将不会再从图片里面把表格画出来了,作者还要搬砖修bug,请各位看官自行脑补表格

从上表可知,此回归模型的模型调整后的可决系数R2为0.8905,p值为2.2×10-16,整体拟合度很高;但是其中“爱春秋双倍奖励活动”的回归系数为负数,运营活动通常不可能对整体呈负作用的贡献,且回归系数未通过检验;同时还存在“春节双倍奖励活动”的回归系数未通过检验的问题。对此两个问题,有两方面的考虑:一、运营活动的虚拟变量可能分配和设置不当,相互之间可能存在多重共线性问题,可能产生了伪回归。 二、“爱春秋双倍奖励活动”或“春节双倍奖励活动“对漏洞报告提交数量几乎无影响,导致对应的虚拟变量实际在回归时应该被归纳为无关变量。具体是哪种原因或者两种原因都有,需要进一步从模型参数检测与实际运营数据进行比对给出结论。

首先检验问题一。对于模型中是否存在多重共线性,一般利用方差膨胀因子来评估。可以证明,对变量xi,其对应的回归估计系数γi的方差可以表示为:

其中

 

为xi的可决系数。方差膨胀因子即为上式里的右项,即:

 

如果VIF>5,说明模型中存在变量间的多重共线性;如果VIF>10,说明模型中存在严重的变量间多重共线性。当出现多重共线性时,可以使用逐步回归法得到更优的回归结果。

检测结果见下表:

变量 方差膨胀因子 小结
newUser 1.3415 该变量不存在多重共线性
userTotal 2.3892 该变量不存在多重共线性
openDouble 2.0950 该变量不存在多重共线性
springDouble 1.0242 该变量不存在多重共线性
icqDouble 1.0438 该变量不存在多重共线性
juneDouble 1.3422 该变量不存在多重共线性

表3:newVulAll变量原始回归模型的方差膨胀因子

小结:所有参数系数的方程膨胀因子均小于5,不认为各个变量间存在多重共线性。故变量的设置不存在多重共线性。

现在验证问题二。若icqDouble或springDouble确实为对整体几乎无影响的变量,则去掉其中之一或两者都去掉后,对回归方程的调整R2应该影响不大或调整R2增大,且整体的回归方程也应该继续能通过检验;若只去掉其中一个变量,则回归方程中,另一变量的系数应该依然通不过检验。同理,对其余三个变量依次验证。(后面的另外两次回归,我就不手工去掉变量了,反正结果是和逐步回归的结果是一样的)

去掉icqDouble变量后再次进行回归的结果,如下表:

 

假装有表4:去掉icqDouble变量后的回归情况

小结:springDouble的系数依旧不能通过检验;调整R2增大;模型整体通过检验;icqDouble很可能为与因变量无线性关系的变量。

去掉springDouble参数后再次进行回归的结果:

 

假装有表5:去掉springDouble变量后的回归情况

小结:icqDouble的系数依旧不能通过检验;调整R2减小;模型整体通过检验;springDouble为与因变量无限性关系的变量。

两个参数都去掉后再次进行回归的结果:

 

假装有表6:去掉icqDouble和springDouble变量后的回归情况

小结:所有参数在10%的显著水平下通过检验;调整R2增大;模型整体通过检验。再对异方差进行检测。这里采用Breusch-Pagan检测法。在该检测法中,采用如下假设:

H0:回归模型中不存在异方差;H1:回归模型中存在异方差

检测结果:

 

假装有表7:newVulAll的回归模型异常检测结果

 

小结:p值<0.1,结果显著,拒绝回归模型中不存在异方差的备则假设。

出现异方差,此时使用robust稳健回归法,重新对模型进行逐步回归,结果如下表:

参数 Robust S.E. 检验统计量 p值 结论(α=0.1)
newUser 2.0221 0.1768 t=11.44 0.000 通过检验
juneDouble 13.6829 4.0444 t=3.38 0.001 通过检验
openDouble 13.0106 4.6447 t=2.80 0.006 通过检验
userTotal 逐步回归法时剔除 剔除变量
阶距项 1.1044 0.4249 阶距项无需检验 无需检验
可决系数R2 0.8914 R2无此项检验 拟合度满足要求
整体模型 F(3,162)=68.45 0.000 通过检验

表8:newVulAll的最终稳健回归结果

小结:可决系数R2基本维持不变,模型整体通过检验;通过robust稳健标准误剔除userTotal变量后,所有系数均在10%的显著水平下通过检验。

结论,icqDouble和springDouble在当前回归模型中应该属于无关或影响极小的变量,应该予以剔除;userTotal变量对总体的正向作用极小,且存在异方差,也对该变量予以剔除;userTotal参数的系数仅为0.020425,与newUser参数的系数2.0221差异显著。这与“新增注册的白帽子仅在注册后活跃一两周,之后不再活跃,导致每日漏洞总数整体与存量白帽子数量关系不大”的实际运营经验相符合。

剔除icqDouble、springDouble和userTotal变量后,整体的回归方程为:

 

 

3.3 对每日新增优质漏洞报告总数建立回归模型

直接以newVulHigh作为因变量,以newUser,userTotal,openDouble,springDouble,icqDouble,juneDouble作为自变量尝试建立回归模型,结果如下图所示:

 

 

假装有表9:newVulHighl的原始回归结果

如上表显示,除newUser和juneDouble外,其他变量均未通过检验。使用上一小节的思路处理。

首先检测多重共线性,如下表:

 

假装有表10:newVulHighl的原始回归模型的方差膨胀因子

 

小结:不存在多重共线性

假设变量为无关变量,但是出于简洁,采用逐步回归法代替手动剔除,结果如下表:

 

假装有表11:newVulHighl的原始回归模型的方差膨胀因子

 

小结:逐步回归去除无关变量后,剩余所有参数通过检验;模型整体通过检验;调整后可决系数R2为0.8088,回归模型对数据的拟合程度较高。

此时再对异方差进行检测:

 

假装有表12:newVulHighl的最终回归模型异方差检测结果

 

小结:P=0.844>0.1,不能拒绝上述回归模型中不存在异方差的原假设。

结论:userTotal,openDouble,springDouble,icqDouble四个变量在回归模型中均属于无关变量或关系极小的变量,应该从回归模型中剔除;剔除上述变量后,调整后可决系数R2增大,模型与全部参数系数均通过检验;回归模型不存在异方差。

剔除userTotal,openDouble,springDouble,icqDouble变量后,整体的回归方程为:

 

3.4 对每日新增白帽子数量建立回归模型

有些严重等级的漏洞甚至能在短时间内重创企业业务或严重损坏企业品牌与价值形象。所以在实际的企业安全建设过程中,企业安全从业者还非常关心高危及严重等级的漏洞发现。从上一节的回归模型中可以看出,高危及严重等级的漏洞报告,大致仅和每日新增注册白帽子数量与六月份的这次运营活动有关。故,在实际探索的过程中,还需要增加建立一个每日新增白帽子数量的模型,以端到端负责的态度完成本轮数据分析。

直接以newUser作为因变量,以

userTotal,openDouble,springDouble,icqDouble,juneDouble作为自变量尝试建立回归模型,结果如下表所示:

假装有表13:newUser变量的原始回归结果

从上表看出,调整后的可决系数R2值仅为0.2012,且绝大部分参数的系数未通过检验。使用上一小节的思路进行检测和处理。

检测多重共线性:

 

假装有表14:newUser变量的原始回归模型的方差膨胀因子

小结,不存在多重共线性。

尝试剔除无关变量:

假装有表15:对newUser变量的原始回归模型逐步回归后结果

结论:模型整体通过检验,但是调整后的可决系数R2值仍然过小,缺乏可解释性;“SRC上线双倍奖励“活动的系数虽然肚子通过检验,但是因为整体模型无可解释性,也很可能与新增注册白帽子数量不存在线性相关关系。SRC运营需要继续探索增加新注册白帽子的活动方式。

4 回归模型解读

4.1 因果性检验

回归模型仅仅是从数量上描述了自变量、因变量的相关关系,并不能据此说明自变量与因变量之间的解释与被解释关系。因此需要首先进行因果性检验才能对模型在实际业务中的意义给出解释。

这里使用格兰杰因果关系检验法对newVulAll变量的回归模型进行检验:

    因变量

自变量

newVulAll newUser openDouble juneDouble
newVulAll 6.818×10-4 0.02762 0.9976
newUser 2.29×107
openDouble 1.198×10-3
juneDouble 2.684×10-07

表16:对newVulAll回归模型的因果性检测

小结:自变量与因变量的因果关系在显著水平10%的前提下通过检验;newVulAll在回归模型中处于因变量地位,newUser、openDouble、juneDouble在回归模型中处于自变量地位是合理的。

对newVulHigh变量的回归模型进行因果性检测:

    因变量

自变量

newVulHigh newUser juneDouble
newVulHigh 0.1891 0.9894
newUser 6.396×10-08
juneDouble 0.9709

表17:对newVulHigh回归模型的因果性检测

小结:newUser变量对newVulHigh变量的解释性在10%的显著水平下通过检验;juneDouble变量对newVulHigh变量,无论是解释或被解析性都无法通过检验,两者仅具有相关关系;考虑juneDouble变量比newUser变量对newVulHigh的影响性要大,暂不考虑从回归方程中去掉该变量。

结论:按各变量在回归模型中的作用有实际意义。

4.2 回归模型(含建模失败的模型)对实际业务意义的解读

4.2.1 每日新增漏洞报告总数模型

从式13得到的回归模型可以看出,基础数据方面:平均每日SRC将收到1.1044个漏洞报告;平均每个新注册的白帽子能为SRC带来2.0221个漏洞报告。

运营活动方面:SRC上线时的全漏洞双倍奖励与六月全漏洞双倍与没有运营活动进行期间对比,平均每天能为SRC分别带来13.0106和13.6829个漏洞报告。两次活动的效果在体现在数值上较为接近。与此形成对比的是爱春秋与新春两次“仅高危以上漏洞双倍奖励”,对漏洞报告总数没有贡献的可能性显著。无论从回归模型的参数系数还是t统计量来考察,从运营活动整体效果来说,这两次活动是失败的。

4.2.2 每日新增优质漏洞报告总数模型

从式14得到的回归模型可以看出,基础数据方面:平均每个新注册的白帽子能给SRC带来0.2136个优质漏洞报告。

运营活动方面:当进行六月份所有漏洞双倍奖励活动时,与没有运营活动进行期间对比,平均每日能给SRC带来0.6783个优质漏洞报告。除六月份双倍奖励活动之外,其他所有的活动期间,均没有提供有效的优质漏洞报告。但是六月份双倍奖励并不是提高优质漏洞报告数量的原因,应该潜藏有其他的根本原因或上一级原因需要探索。

4.2.3 每日新增白帽子(建模失败)

对每日新增白帽子数量进行建模并失败,对实际运用也有一定意义:说明SRC在运营活动方面,目前所有的活动都没能有效的起到拉新作用。

 

5 总结与企业SRC运营建议

平台的基础数据、基础属性来说,无论漏洞报告的数量还是质量来看,新增注册的白帽子贡献都是最大的。各个企业的SRC在今后建设、宣传、推广的都过程中,都应该重视,以新增注册白帽子为主要目的。

从运营活动的成效来看,单纯的进行线上双倍奖励积分,对提高漏洞报告的数量和质量的都有积极作用;需要重视“全漏洞奖励双倍”活动,因为其效果明显,另一方面,若单纯的“只奖励优秀漏洞报告”反而效果不明显;以走进校园形式的安全技术沙龙,对于吸引新增注册白帽子或提高漏洞报告数或提高优秀漏洞报告数,均无明显效果。今后在组织类似的活动时,需要注意改变或者革新活动形式或目的;运营活动需要注意避开国家的重大节假日:重大节假日期间,白帽子挖掘漏洞的积极性不高;此外,今后需要积极探索除线上双倍奖励以外的其他运营活动,以促进对注册白帽子的拉新。

拓展阅读(点评/知识):

全文技术看不懂。。只看懂了结尾

本文标题:接收漏洞报告的数量、质量与白帽子、运营活动的关系研究
本文链接:
(转载请附上本文链接)
http://vulsee.com/archives/vulsee_2018/1025_7061.html
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » 接收漏洞报告的数量、质量与白帽子、运营活动的关系研究
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微慑信息网 专注工匠精神

访问我们联系我们