一种软件异构化安全性评估方法及装置制造方法及图纸

技术编号:36747174 阅读:10 留言:0更新日期:2023-03-04 10:30
本发明专利技术提供.一种软件异构化安全性评估方法及装置。该方法包括:采用多种不同粒度的软件异构化技术对原始软件进行异构化处理,对应得到多个不同的软件变体;分别从所述原始软件和多个所述软件变体中提取受软件异构化技术影响的gadget特征信息,根据所述gadget特征信息来度量在原始软件和软件变体中构建gadget攻击链的难度方面的差异、攻击者潜在可获得的计算能力方面的差异和攻击者搜索gadget的成本方面的差异;根据所述构建gadget攻击链的难度方面的差异、所述攻击者潜在可获得的计算能力方面的差异和所述攻击者搜索gadget的成本方面的差异得到软件异构化的安全性度量值。方面的差异得到软件异构化的安全性度量值。方面的差异得到软件异构化的安全性度量值。

【技术实现步骤摘要】
一种软件异构化安全性评估方法及装置


[0001]本专利技术涉及网络空间安全
,尤其涉及一种软件异构化安全性评估方法及装置。

技术介绍

[0002]当前软件异构化安全性评估方法主要从相似性、弹性和防御攻击能力等特征角度进行评估:
[0003]从相似性特征角度进行评估,主要通过计算软件异构化技术部署前后McCabe圈复杂度、熵、哈希值等度量指标的差异,但基于相似性的软件异构化安全性评估在软件存在指针泄漏等情况时,会高估软件异构化带来的安全性,且相似性未被证明与安全性是否强相关;
[0004]从弹性特征角度进行评估,主要通过度量软件异构化技术部署前后软件进行反汇编处理所表现的随机性因素或错误以及符号执行时间的差异而实现,但基于弹性的软件异构化安全性评估仅考虑对逆向工程的影响,未体现软件异构化对代码重用等攻击的影响,且符号执行覆盖全部分支所需时间较长,评估开销过大。
[0005]从防御攻击能力特征角度进行评估,主要通过逻辑论证、具体攻击测试和利用代码重用攻击中gadget相关性质定义指标等方式进行软件异构化安全性评估,但逻辑论证具有片面性,过于理想化,具体攻击测试需实际部署多种类型的攻击,开销大,门槛较高,普适性差,而现有工作中定义的gadget指标均未能全面地反映软件异构化对整个代码重用攻击流程中各攻击步骤的影响,同样具有一定的片面性。

技术实现思路

[0006]现有软件异构化安全性评估方法依据相似性、弹性和防御攻击能力等评估角度的差异存在高估软件异构化带来的安全增益、评估开销过大、评估结果不全面的问题,本专利技术提供一种综合gadget质量、实用性和分布指标的软件异构化安全性评估方法及装置,通过度量软件异构化对代码重用攻击各阶段的影响,能够准确全面地反映软件异构化带来的安全增益。
[0007]一方面,本专利技术提供一种软件异构化安全性评估方法,包括:
[0008]步骤1:采用多种不同粒度的软件异构化技术对原始软件进行异构化处理,对应得到多个不同的软件变体;
[0009]步骤2:分别从所述原始软件和多个所述软件变体中提取受软件异构化技术影响的gadget特征信息,所述gadget特征信息包括ROP类gadget信息、JOP类gadget信息、COP类gadget信息以及microgadget信息中的至少一种;其中,ROP表示面向返回的编程攻击,JOP表示面向跳转的编程攻击,COP表示面向调用的编程攻击;
[0010]步骤3:根据所述gadget特征信息来度量在原始软件和软件变体中构建gadget攻击链的难度方面的差异、攻击者潜在可获得的计算能力方面的差异和攻击者搜索gadget的
成本方面的差异;
[0011]步骤4:根据所述构建gadget攻击链的难度方面的差异、所述攻击者潜在可获得的计算能力方面的差异和所述攻击者搜索gadget的成本方面的差异得到软件异构化的安全性度量值。
[0012]进一步地,步骤3具体包括:
[0013]预先设置gadget质量评分标准;所述gadget质量评分标准用于指示各无用指令对应的gadget质量分数;其中,无用指令对整个基于gadget的代码重用攻击产生的副作用越大,无用指令对应的gadget质量分数越高;
[0014]分别在原始软件和软件变体中统计所述gadget特征信息中每个gadget中的无用指令,然后在所述gadget质量评分标准中查询所述无用指令对应的gadget质量分数;
[0015]累加每个gadget中所有无用指令的gadget质量分数得到每个gadget的质量分数;分别在原始软件和软件变体中累加各自所述gadget特征信息中所有gadget的质量分数得到原始软件对应的gadget质量分数和软件变体对应的gadget质量分数;
[0016]计算原始软件和软件变体对应的gadget质量分数之间的差异,并将其作为在原始软件和软件变体中构建gadget攻击链的难度方面的差异。
[0017]进一步地,步骤3具体包括:
[0018]预先构建具有不同计算能力的microgadget集合,每种计算能力的microgadget集合中均自定义有microgadget类别信息;
[0019]分别将原始软件和软件变体中的microgadget信息与已构建的所有microgadget集合的所有microgadget类别信息进行匹配,得到原始软件和软件变体中对应的microgadget种类数量;
[0020]计算原始软件和软件变体对应的microgadget种类数量之间的差异,并将其作为在原始软件和软件变体中攻击者在潜在可获得的计算能力方面的差异。
[0021]进一步地,预先构建三个具有不同计算能力的microgadget集合,按照计算能力由低至高分别是no

ASLR集合,ASLR

proof集合和图灵完备microgadget集。
[0022]进一步地,步骤3具体包括:
[0023]预先构建特定gadget集合,所述特定gadget集合中自定义有在Metasploit中部署于真实场景的ROP链中的最常用的gadget类;
[0024]分别将原始软件和软件变体中的ROP类gadget信息与已构建的特定gadget集合的所有gadget类进行匹配,得到原始软件和软件变体中对应的常用gadget集合;
[0025]使用核密度估计分别计算对应的所述常用gadget集合在原始软件和软件变体中分布的概率密度函数;
[0026]计算原始软件和软件变体中分布的概率密度函数之间的差异,并将其作为在原始软件和软件变体中攻击者搜索gadget的成本方面的差异。
[0027]进一步地,所述特定gadget集合中包含的gadget类别有:加载寄存器操作、算术操作、加载内存操作、无条件跳转操作、存储内存操作、栈迁移操作、逻辑操作、寄存器赋值操作、函数调用操作和系统调用操作。
[0028]进一步地,使用基于高斯核函数的核密度估计分别计算对应的所述常用gadget集合在原始软件和软件变体中分布的概率密度函数。
[0029]进一步地,步骤4具体包括:
[0030]分别为所述构建gadget攻击链的难度方面的差异、所述攻击者潜在可获得的计算能力方面的差异和所述攻击者搜索gadget的成本方面的差异设置权重,依次记作λ、ω和θ;
[0031]按照下式计算得到软件异构化的安全性度量值S:
[0032]S=λ(Q'

Q)+ω(C

C')+θ|D'

D|;
[0033]其中,Q和Q'分别为在原始软件和软件变体中构建gadget攻击链的难度,C和C'分别为在原始软件和软件变体中攻击者潜在可获得的计算能力,D和D'分别为在原始软件和软件变体中攻击者搜索gadget的成本。
[0034]另一方面,本专利技术提供一种软件异本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件异构化安全性评估方法,其特征在于,包括:步骤1:采用多种不同粒度的软件异构化技术对原始软件进行异构化处理,对应得到多个不同的软件变体;步骤2:分别从所述原始软件和多个所述软件变体中提取受软件异构化技术影响的gadget特征信息,所述gadget特征信息包括ROP类gadget信息、JOP类gadget信息、COP类gadget信息以及microgadget信息中的至少一种;其中,ROP表示面向返回的编程攻击,JOP表示面向跳转的编程攻击,COP表示面向调用的编程攻击;步骤3:根据所述gadget特征信息来度量在原始软件和软件变体中构建gadget攻击链的难度方面的差异、攻击者潜在可获得的计算能力方面的差异和攻击者搜索gadget的成本方面的差异;步骤4:根据所述构建gadget攻击链的难度方面的差异、所述攻击者潜在可获得的计算能力方面的差异和所述攻击者搜索gadget的成本方面的差异得到软件异构化的安全性度量值。2.根据权利要求1所述的一种软件异构化安全性评估方法,其特征在于,步骤3具体包括:预先设置gadget质量评分标准;所述gadget质量评分标准用于指示各无用指令对应的gadget质量分数;其中,无用指令对整个基于gadget的代码重用攻击产生的副作用越大,无用指令对应的gadget质量分数越高;分别在原始软件和软件变体中统计所述gadget特征信息中每个gadget中的无用指令,然后在所述gadget质量评分标准中查询所述无用指令对应的gadget质量分数;累加每个gadget中所有无用指令的gadget质量分数得到每个gadget的质量分数;分别在原始软件和软件变体中累加各自所述gadget特征信息中所有gadget的质量分数得到原始软件对应的gadget质量分数和软件变体对应的gadget质量分数;计算原始软件和软件变体对应的gadget质量分数之间的差异,并将其作为在原始软件和软件变体中构建gadget攻击链的难度方面的差异。3.根据权利要求1所述的一种软件异构化安全性评估方法,其特征在于,步骤3具体包括:预先构建具有不同计算能力的microgadget集合,每种计算能力的microgadget集合中均自定义有microgadget类别信息;分别将原始软件和软件变体中的microgadget信息与已构建的所有microgadget集合的所有microgadget类别信息进行匹配,得到原始软件和软件变体中对应的microgadget种类数量;计算原始软件和软件变体对应的microgadget种类数量之间的差异,并将其作为在原始软件和软件变体中攻击者在潜在可获得的计算能力方面的差异。4.根据权利要求3所述的一种软件异构化安全性评估方法,其特征在于,预先构建三个具有不同计算能力的microgadget集合,按照计算能力由低至高分别是no

ASLR集合,ASLR

proof集合和图灵完备microgadget集。5.根据权利要求1所述的一种软件异构化安全性评估方法,其特征在于,步骤3具体包括:
...

【专利技术属性】
技术研发人员:梁浩谢根琳程国振王庆丰王亚文何本伟商珂刘文彦吴燕鹏
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1