漏洞挖掘 符号执行_漏洞挖掘、利用及修复——从人工到自动的跨越

随着互联网的普及,各类App如雨后春笋般产生。受限于代码质量,App中或多或少的会存在各类漏洞。据统计,CVE(http://cve.mitre.org/)及CNNVD(http://www.cnnvd.org.cn/)能够涵盖的漏洞多达100000个,严重威胁着网络及用户安全。当前,二进制漏洞挖掘主要依靠专业人员的人工审计,从而能够提供准确的漏洞点、漏洞利用及修补方案。然而,人工审计与挖掘存在以下缺陷。第一,开发团队往往缺少专业的安全人员,不能及时发现漏洞;第二,面对数量庞大的漏洞,安全人员疲于应对。而自动化漏洞挖掘能够为人工审计提供良好的补充,也更为经济。那么要构建这样一个自动化漏洞挖掘的系统需要哪些技术呢?下面,我们介绍一些具有代表性的相关技术。

一、自动化漏洞挖掘技术

当我们拿到一个App以后,首要的工作是找到该App中的漏洞点。从被检测程序是否被运行的角度可知,自动化漏洞挖掘技术可分为静态分析、动态分析及混合分析。

1.1静态分析

静态分析,指在不执行程序的条件下对程序进行分析。基于图建模的静态分析是指将程序属性建模为图形,如控制流图,数据流图和程序依赖图等。例如Vine,它是BitBlaze的静态分析组件,它提供了一组用于漏洞挖掘的核心实用程序,利用了控制流图,数据流图和最弱前置条件计算等。基于数据建模的静态分析可通过对内存值等数据进行建模,通过数据的流动、差异性等发现漏洞。例如,Josselin Feist等人提出了一个名为GUEB的静态工具,它使用价值集分析(VSA)来推断赋值中的每个变量,并基于抽象内存模型释放指令,以搜索二进制程序中的释放后使用类型的漏洞。图1所示为典型的静态分析工具IDA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值