首页 - 范文大全 - 文章正文

联系具有多样性的例子(具有时间多样性的JavaScript代码保护方法)

时间:2020-09-03 19:17:24 作者:黑曼巴 分类:范文大全 浏览:114

作为网络应用的默认脚本语言,JavaScript越来越多地被用来实现程序的核心功能。作为一种解释性语言,JavaScript以源代码的形式发布,具有良好的可读性。如何有效地保护JavaScript代码已经成为一个亟待解决的问题。一方面,该方法基于多样化的攻击对图像和模糊路径空间,提高了逆向分析的难度,延长了受保护程序的安全周期;另一方面,通过在程序中插入环境监控代码,对异常执行环境感知并响应抵抗动态分析。

0简介

随着Web 2.0的引入,对对Web应用交互能力的要求不断提高,Web应用的逻辑也逐渐从服务器转向浏览器。同时,HTML5引入的许多本地特性加剧了这一趋势。作为网络应用的默认脚本语言,JavaScript越来越多地被用来实现程序的核心功能。作为一种解释性语言,JavaScript以源代码的形式发布,具有良好的可读性。攻击者可以轻松查看、分析和篡改对代码。这使得用JavaScript承载核心算法或关键业务流程等重要信息的Web应用面临逆向分析的安全威胁:一方面,程序知识产权的侵犯会影响互联网产业的健康发展;另一方面,程序保密性的破坏使攻击者能够针对对网络应用程序的逻辑漏洞发起进一步的网络攻击[1]。如何有效地保护JavaScript代码已经成为一个亟待解决的问题。目前,JavaScript代码保护主要包括混淆和加密两种方法,可以在一定程度上抵抗逆向分析,但存在以下缺陷:1)难以抵抗动态分析;2)受保护的程序是静态对映像(即,每次运行时代码都是相同的),对攻击者可以在执行过程中完全看到它[3]。这使得保护者在与攻击者玩游戏时处于劣势。对,本文从抑制逆向分析过程中经验积累的角度介绍了一种基于临时多样性(TDJSP)的JavaScript代码保护方法。一方面,该方法基于多样化的攻击对图像和模糊路径空间,提高了逆向分析的难度,延长了受保护程序的安全周期;另一方面,通过在程序中插入环境监控代码,对异常执行环境感知并响应抵抗动态分析。

1程序多样性和累积攻击1.1程序多样性

科恩[4]提出,代码变形可以用来创建多样化的程序集,以减少同类程序的脆弱性。在后续开发中,程序多样性技术讨论了一系列不改变程序语义的代码变形技术,如等价指令转换、函数内联和外展、垃圾代码注入、模拟和运行时代码生成等。目前,程序多样性技术被用来抵抗各种形式的终端人攻击,如非法反向、篡改和非法分发[7]203-209等。而代码混淆已经成为构建程序多样性的主要方法。Collberg等人[8]通过在可信服务器上设置变异过程来抵抗攻击者对客户端的篡改,从而将混淆的代码块分发给客户端。JShadObf混淆器通过对JAVAScript程序应用不同的变形算法序列生成代码种群,然后使用进化算法选择合格的个体来提高混淆质量[9]。2011年,Collberg等人[10-11]提出,程序在时间和空间上的多样性是数字资产持久保护的三个必要条件之一。时间多样性是指当程序在不同的时间执行时,它们的执行路径是不同的,但是它们的功能是相同的,这主要是用来抵抗累积攻击的;空间多样性意味着同一个受保护的对图像的不同版本具有不同的形式,并且通过减少程序的同构来保证软件的安全性,这主要用于抵抗共谋攻击[12-13]。

1.2累积攻击程序的逆向分析过程可分为几个阶段,分别基于黑盒阶段、动态分析阶段和静态分析阶段[7]68-72。在逆向分析的过程中,上述阶段相互交织,实际上是一个通过不断攻击对目标来学习和积累经验的过程,攻击者需要进行各种尝试,多次运行程序,重复上述过程来积累具有相应阈值的攻击知识。

在黑盒阶段,攻击者给程序不同的输入,观察程序输出,然后推测程序行为和外部环境之间的依赖关系;在动态分析阶段,攻击者运行程序并记录程序的一些运行时信息,分析对程序的内部逻辑;在静态分析阶段,攻击者将直接按照局部分析、进程内分析和进程间分析三个步骤进行读取,从而更好地理解程序。综上所述,攻击者的非法逆向过程可以抽象为针对对攻击目标的学习和积累知识的过程。当知识积累到一定阈值时,相应的攻击目的就可以成功实现。

定义1次累积攻击。由于程序逻辑复杂,攻击者仅执行一次程序无法获得足够的攻击知识,必须反复运行目标程序,进行多次攻击来积累知识,以达到相应的攻击目的。攻击者对在上述过程中发起的攻击称为累积攻击。累积攻击的攻击场景可以用函数p=攻击(n,k,)来描述,如如图1所示。

在图1中:P代表攻击进度,N代表攻击次数,K代表当指定程序达到某个攻击目的时对积累的知识阈值,代表程序的时间分集能力。从图1可以看出,当为0时,由于程序不具备时间分集的能力,随着攻击次数的增加,攻击者对相关攻击的累积知识不断增长,并逐渐接近阈值。然而,当大于0时,由于程序具有时间分集的能力,攻击者获得的攻击知识在后续新的攻击过程中不能得到有效利用。此时,攻击进度和攻击次数之间没有正相关关系。

上一篇:春天的树作文400—500(春天的树作文三百字)

下一篇:我的中秋节作文500字(我的中秋节作文800字)

猜你喜欢
发布评论
登录后发表评论
登录后才能评论

AI 新用户?

免费使用内容重写服务

开始新的写作