安全防护新视角:代码复用与物联网安全解析
代码复用攻击与混淆技术
在软件安全领域,代码复用攻击是一个不容忽视的问题。软件混淆技术虽能通过引入复杂的数据和控制流结构来保护程序逻辑,但也可能带来新的安全风险。
编码组件转换分析
编码组件转换(Encode Components)会以比原始程序高100倍的速率引入新的小工具(gadgets),同时提升小工具集的质量和表达性。这种转换与指令替换(Instructions Substitution)原理类似,但实现更高级。观察混淆后的源代码发现,其中包含了即时编译(JIT)技术,编译后的混淆二进制文件会附带整个JIT库,这解释了为何编码组件转换能生成更多与链相关的小工具,且具有更高的表达性和质量值。
缓解策略
为应对各混淆方案带来的代码复用攻击风险,提出了缓解策略,即在不显著降低混淆强度的前提下,尽量减少高风险混淆方案的使用,增加低风险方案的使用。具体操作如下:
1. 策略制定 :根据风险值排名将混淆方案分为两组。低风险方案组包括指令替换、控制流扁平化、虚假控制流和虚拟化(源);高风险方案组包括Jit - Dynamic、自我修改和编码组件。对于低风险方案组,分别对同一源程序应用每种混淆方法1次、2次和3次,并将Obfuscator - LLVM的三种方法组合应用于源程序作为另一种变体;对于高风险方案组,单独应用每种混淆方法。
2. 评估 :为衡量缓解策略对代码复用攻击风险增长的抑制效果,对混淆程序应用相关指标,计算每种混淆变体的风险值。评估结果表明,该策略能有效降低代码复用攻击风险。多次应用低风险
超级会员免费看
订阅专栏 解锁全文
784

被折叠的 条评论
为什么被折叠?



