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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


电子学报 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 时,仅考虑其在分支开始的函数层面内的部分,不对比被调用函数的代码细
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值