【论文阅读】基于符号执行的软件缓存侧信道脆弱性检测技术

本文介绍了基于符号执行的软件缓存侧信道脆弱性检测技术,通过动态符号执行获取程序traces,定位依赖secret的分支代码和访存操作作为可疑脆弱点。关键阶段包括可疑脆弱点定位、差分代码执行逻辑和数据内存访问脆弱点的可利用性判断。系统实现中,利用angr-ANA进行动态符号执行和脆弱点定位,isExploitable模块判断可利用性。

【论文阅读】基于符号执行的软件缓存侧信道脆弱性检测技术


电子学报 2019 杨超
本文提出基于符号执行的缓存侧信道脆弱性检测技术,通过符号化敏感信息的数据传播过程定位潜在的脆弱点,并通过比较其可能的不同缓存访问地址,判断上述代码在缓存攻击中的可利用性. 本文开发了原型系统 CSCVulDiscover,并针对 RSA 等 3 种密码算法的 12 类实现代码进行测试,总共发现了 125 个脆弱点.
cacheD缺点:
( 1) 只关注 secret 依赖的访存操作地址,未考虑 secret 依赖的访存行为( 见图 2) ;
( 2) 判断脆弱性的符号条件往往无法包含 secret 的所有约束,仅用求解结果作为判断依据将降低其准确性( 见 4. 3 节的示例程序) ;
( 3) 未研究依赖于 secret 的程序控制流的脆弱性

根据缓存的不同利用方式,可以将缓存侧信道脆弱性分为以下两类.
1、基于差分代码执行逻辑的脆弱点 ( 指令缓存 )
请添加图a片描述
2、基于差分数据内存访问的脆弱点 ( 数据缓存 )
请添加图片描述

本文的检测代码脆弱性的方法:
本文提出一种基于符号执行的软件缓存侧信道脆弱性检测技术,整体思路如图 3 所示:
请添加图片描述
1、首先基于动态符[7 ]号执行技术获取程序 traces( 执行轨迹) ,然后符号化secret,针对每条 trace 应用符号执行技术,定位所有依赖于 secret 的分支代码或访存操作为可疑的脆弱点,
2、结合这些 traces 判断基于差分代码执行逻辑的脆弱点的可利用性,同时利用可疑脆弱点的符号约束求解技术和具体执行技术,判断基于差分数据内存访问的脆弱点的可利用性.
该技术有以下三个关键阶段:

  1. 可疑脆弱点定位
    采用 PosVulLocator 算法定位可疑脆弱点
  2. 基于差分代码执行逻辑脆弱点可利用性判断
    需要定位分支汇聚点。本文提出一种基于路径比较的分支汇聚点定位法,改进了 BranchTailLocator 算法,提出基于同一函数层面的 trace 比较法,在比对 trace 时,仅考虑其在分支开始的函数层面内的部分,不对比被调用函数的代码细节
  3. 基于差分数据内存访问脆弱点可利用性判断
    访存类型分析、目标地址分
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值