论文部分内容阅读
Web应用同本地应用一样,面临着恶意主机问题的威胁。如何确保Web应用中暴露于用户主机上的核心算法或关键业务流程等重要信息的安全成为亟待解决的问题。针对现有JavaScript代码保护技术抗累积攻击效果差及难以抵御动态分析的问题,本文提出一种具有时间多样性的JavaScript代码保护方法,简称为TDJSP。首先,通过构造多条语义相同但形态不同的执行路径,使得被保护程序的关键代码段在不同时间运行时,动态选取不同的执行路径;其次,以Windows平台中的自修改技术以及反调试技术作为参考,添加基于环境监测的JavaScript代码自修改机制,从而显著增加JavaScript代码保护的强度并延长其安全生命周期。对TDJSP方法的研究,主要分为以下四个方面:(1)多样性代码的构造方法。指通过构造多条语义相同但形态不同的关键代码段执行路径,使得保护后的JavaScript程序具有时间多样性效果,从而增强其抵御累积攻击的能力。本文以多种JavaScript混淆算法的应用为基础,结合安全代码的选取和插入点位置的随机化以构造关键代码段的多条执行路径。(2)基于有限自动机的多执行路径调度方式。指使得被保护程序的关键代码段在不同时间执行时,能够调用不同的执行路径来完成相同的功能。通过对有限自动机模型的扩充和改进,构建用于控制多执行路径选择的确定状态有限自动机,以实现被保护软件不同时间执行时动态选取不同的执行路径,从而实现多样性代码的动态调度。(3)基于环境监测的JavaScript代码自修改机制。一方面,对动态分析环境所表现出的固有特征进行监测;另一方面,利用JavaScript的动态特性设置基于代码自修改的隐式响应策略,对处于动态分析环境下的自动机状态转移函数进行修改,使程序在随后的执行流程中转入陷阱函数中运行,以达到抑制动态分析的目的。(4)设计并实现TDJSP方法的原型系统,并以实验数据为依据,验证了TDJSP方法对于JavaScript代码保护的有效性及可行性。