JIT-Spraying技术是在Blackhat DC 2010上首次被提出的一种基于JIT编译的攻击方法.应用该方法,黑客能绕过现代操作系统提供的DEP(数据执行保护)和ASLR(地址空间布局随机化)等防护机制,进行网页挂马、网络渗透等攻击.目前尚没有针对该攻击的防护办法和措施,使广大的计算机用户受到严重威胁.本文对JIT-Spraying攻击技术进行了深入剖析,对其着陆区(Sledge)和Shellcode交接等关键环节进行建模.在此基础上,提出了一种基于指令填充随机化的防护机制,对其有效性进行了定量分析,并针对典型JIT环境求出了最优解--仅增加约13%的指令填充,即可以将JIT-Spraying的攻击成功率降低为约百万分之一.我们在chrome浏览器的JavaScript引擎V8上实现了该方法,实测性能损失小于1%验证了其有效性和实用性.该方法有效的改善了JIT编译器的安全属性,在DEP和ASLR的基础上,为系统提供更有效的安全防护.
展开▼