APP下载

基于代码属性图和Bi-GRU的软件脆弱性检测方法

2021-08-17肖添明管剑波蹇松雷张建锋

计算机研究与发展 2021年8期
关键词:特征提取检测方法

肖添明 管剑波 蹇松雷 任 怡 张建锋 李 宝

(国防科技大学计算机学院 长沙 410073)

软件脆弱性是指软件在开发、部署、执行整个过程中存在的缺陷,不法分子可利用这些缺陷绕过系统的访问控制、非法窃取较高的权限等,这可能造成用户隐私数据泄露、数字资产被盗、系统信息被更改等安全问题,从而导致企业和个人巨大的经济损失和名誉损失.随着现在软件系统的复杂度越来越高,规模越来越大,脆弱性代码出现的频率也在不断提升.根据美国国家漏洞数据库(National Vulnerability Database, NVD)[1]公布数据显示,2018年公布的脆弱性代码数目为16 511个,2019年公布的脆弱性代码数目为17 305个,2020年公布的脆弱性代码数目为18 352个.从数据中可以看出,脆弱性代码出现的次数一直在不断上升,因此及时发现软件中存在的脆弱性代码是一份十分重要的工作.

目前检测软件脆弱性的方法主要有静态、动态和混合3大类.静态方法主要是通过分析软件源代码来检测脆弱性,并不运行软件,对运行环境的要求较低,检测的普适性更强.传统的静态方法包括基于规则的分析[2]、代码相似性检测[3](即代码克隆检测)和符号执行[4]等方法.其中,基于规则的分析主要依靠专家人工去发现脆弱性代码的规则,并对源代码进行规则匹配来检测脆弱性;代码相似性检测是将源代码与脆弱性代码进行相似度比较,进而检测脆弱性;符号执行是将输入用符号来表征而不是具体值,将程序的执行过程和程序变……

登录APP查看全文

猜你喜欢

特征提取检测方法
基于Gazebo仿真环境的ORB特征提取与比对的研究
一种基于LBP 特征提取和稀疏表示的肝病识别算法
小波变换在PCB缺陷检测中的应用
用对方法才能瘦
四大方法 教你不再“坐以待病”!
捕鱼
基于MED和循环域解调的多故障特征提取
Walsh变换在滚动轴承早期故障特征提取中的应用