用于去混淆脚本化语言的设备和方法以及计算机可读介质技术

技术编号:14055766 阅读:111 留言:0更新日期:2016-11-27 00:19
设备接收数据,标识与数据相关联的上下文,并且在数据内标识与上下文相关联的脚本。该设备解析脚本以标识令牌,基于令牌形成节点,并且使用节点来组装语法树。该设备重命名与节点相关联的一个或者多个标识符,并且基于重命名一个或者多个标识符之后的语法树来生成与脚本相关联的经标准化的文本。该设备确定经标准化的文本是否与正则表达式签名匹配,并且基于确定经标准化的文本是否与正则表达式签名匹配来处理数据。该设备在经标准化的文本与正则表达式签名匹配时,通过第一过程来处理数据,或者在经标准化的文本与正则表达式签名不匹配时,通过与第一过程不同的第二过程来处理数据。

【技术实现步骤摘要】

技术介绍
脚本化语言是在运行时被解译(interpret)而不是被编译(compile)的高级编程语言。例如,脚本语言可以被嵌入在超文本标记语言(“HTML”)内,并且当由客户端和/或服务器解译时,可以将功能添加到网页。脚本化语言也可能包含在被解译时可以危害客户端和/或服务器的安全性和/或完整性的恶意代码。
技术实现思路
根据一些可能的实施方式,一种设备可以接收数据,标识与数据相关联的上下文,并且在数据内标识与上下文相关联的脚本。该设备可以解析脚本以标识令牌,基于令牌形成节点,并且使用节点来组装语法树。该设备可以重命名与节点相关联的一个或者多个标识符,并且基于重命名一个或者多个标识符之后的语法树来生成与脚本相关联的经标准化的文本。该设备可以确定经标准化的文本是否与正则表达式签名匹配以及基于确定经标准化的文本是否与正则表达式签名匹配来处理数据。该设备在经标准化的文本与正则表达式签名匹配时,可以通过第一过程处理数据,或者在经标准化的文本与正则表达式签名不匹配时,通过第二过程处理数据。第一过程与第二过程不同。根据一些可能的实施方式,一种方法可以包括由设备从端点设备接收数据,由该设备从数据中提取脚本化代码,以及由该设备生成具有空白和标识符的、与脚本化代码对应的经标准化的脚本。该方法可以包括:由该设备根据标准化方案来格式化经标准化的脚本的空白,并且由该设备根据经标准化的方案来重命名经标准化的脚
本的标识符。该方法可以包括:由该设备确定经标准化的脚本是否与签名匹配,并且由该设备基于由该设备确定经标准化的脚本是否与签名匹配、来选择性地向与数据相关联的另一个端点设备发送数据。该方法可以包括基于确定经标准化的脚本与签名不匹配而由该设备向另一个端点设备发送数据,或者基于确定经标准化的脚本与签名匹配而不由该设备向另一个端点设备发送数据。根据一些可能的实施方式,一种存储指令的计算机可读介质可以包括多条指令,这些指令在由与设备相关联的一个或者多个处理器执行时,使得一个或者多个处理器接收数据,标识被包含在数据中的可执行代码,在环境内执行可执行代码,以及基于可执行代码的执行而生成跟踪。多条指令可以进一步使得一个或者多个处理器基于跟踪而生成列表,该列表标识由可执行代码执行的一个或者多个函数、以及与执行一个或者多个函数中的一个函数相关联的顺序、执行计数、自变量或者返回值。多条指令可以进一步使得一个或者多个处理器基于跟踪、通过用备选部分替换可执行代码的一部分来生成经优化的代码,该部分和备选部分关于在执行期间与环境交互是等同的。多条指令可以进一步使得一个或者多个处理器基于空白标准化方案来修改被包含在经优化的代码中的空白,基于标识符标准化方案来修改被包含在经优化的代码中的标识符,以及提供用于对代码签名进行匹配的经优化的代码,以确定可执行代码是否是恶意,该经优化的代码具有根据相应的空白标准化方案和标识符标准化方案而修改的空白和标识符。代码签名可以与确定可执行代码是否是恶意相关联。多条指令可以进一步使得一个或者多个处理器提供用于对列表签名进行匹配的列表,以确定可执行代码是否是恶意,该列表签名可以与确定可执行代码是否是恶意相关联。附图说明图1是本文所描述的示例实施方式的概览图;图2是本文所描述的系统和/或方法可以在其中被实施的示例环
境图;图3是图2的一个或者多个设备的示例组件图;图4是用于使用正则表达式签名去混淆脚本化语言以供网络入侵检测的示例过程的流程图;以及图5A-图5H是与在图4中示出的示例过程有关的示例实施方式图。具体实施方式示例实施方式的以下详细描述指的是附图。不同附图中的相同参考标号可以标识相同或者相似的元件。许多计算环境采用脚本化语言,诸如JavaScript、ECMAScript、VBScript、Python、Perl、PHP等,来提供功能。特别地,脚本化语言形成动态超文本标记语言(“DHTML”)和异步JavaScript+XML(“AJAX”)的关键组件,其使得用户能够享受交互式的和动态的web浏览体验。(例如,用于智能电话、平板计算机等的)移动应用程序的开发者可以将脚本包括在他们的产品中。不幸的是,可执行脚本的流行度已经促进某些个人和参与者创建和发布恶意脚本,恶意脚本的目的是破坏、劫持和/或得益于执行脚本的设备。这些脚本可以利用设备的软件和/或硬件中的弱点在看似无害的活动期间自动地执行(例如,通过感染受该设备信任和/或受该设备的用户信任的服务器),和/或恶意代码的作者(们)可以例如通过社交工程而欺骗用户执行恶意脚本。恶意脚本可以包括例如病毒、恶意软件、间谍软件、勒索软件、信息窃取(例如,与两个设备之间的连接相关联的敏感会话数据)等。为了进一步使问题复杂化,恶意脚本的作者(“脚本作者”)通常采用一个或者多个混淆技术来放置被恶意软件/反病毒扫描器检测。例如,脚本作者可以使空白(whitespace)和/或标识符(例如,私有函数和/或变量的名称)随机化,添加软件臃肿(bloat)(例如,脚本中的不影响有意义的脚本行为的部分、诸如注释或者基于已知
值的逻辑切换——例如,x=1;if(x==1)then{..本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201510176764.html" title="用于去混淆脚本化语言的设备和方法以及计算机可读介质原文来自X技术">用于去混淆脚本化语言的设备和方法以及计算机可读介质</a>

【技术保护点】
一种设备,包括:用于接收数据的装置;用于标识与所述数据相关联的上下文的装置;用于在所述数据内标识与所述上下文相关联的脚本的装置;用于解析所述脚本以标识令牌的装置;用于基于所述令牌形成节点的装置;用于使用所述节点来组装语法树的装置;用于重命名与所述节点相关联的一个或者多个标识符的装置;用于基于重命名所述一个或者多个标识符之后的所述语法树,生成与所述脚本相关联的经标准化的文本的装置;用于确定所述经标准化的文本是否与正则表达式签名匹配的装置;以及用于基于确定所述经标准化的文本是否与所述正则表达式签名匹配来处理所述数据的装置,当所述经标准化的文本与所述正则表达式签名匹配时,所述数据由第一过程处理,当所述经标准化的文本与所述正则表达式签名不匹配时,所述数据由第二过程处理,所述第一过程与所述第二过程不同。

【技术特征摘要】
2014.09.30 US 14/501,7981.一种设备,包括:用于接收数据的装置;用于标识与所述数据相关联的上下文的装置;用于在所述数据内标识与所述上下文相关联的脚本的装置;用于解析所述脚本以标识令牌的装置;用于基于所述令牌形成节点的装置;用于使用所述节点来组装语法树的装置;用于重命名与所述节点相关联的一个或者多个标识符的装置;用于基于重命名所述一个或者多个标识符之后的所述语法树,生成与所述脚本相关联的经标准化的文本的装置;用于确定所述经标准化的文本是否与正则表达式签名匹配的装置;以及用于基于确定所述经标准化的文本是否与所述正则表达式签名匹配来处理所述数据的装置,当所述经标准化的文本与所述正则表达式签名匹配时,所述数据由第一过程处理,当所述经标准化的文本与所述正则表达式签名不匹配时,所述数据由第二过程处理,所述第一过程与所述第二过程不同。2.根据权利要求1所述的设备,其中用于基于所述语法树生成所述经标准化的文本的所述装置包括:用于通过遍历所述语法树的所述节点来生成与所述脚本对应的经标准化的脚本的装置,所述经标准化的文本为所述经标准化的脚本。3.根据权利要求1所述的设备,其中用于基于所述语法树生成所述经标准化的文本的所述装置包括:用于通过遍历所述语法树的所述节点来生成与所述脚本对应的
\t经标准化的脚本的装置;用于解译所述经标准化的脚本的一部分的装置;用于基于通过解译所述经标准化的脚本的所述一部分而获得的信息来生成跟踪的装置;以及用于基于所述跟踪来生成所述经标准化的文本的装置。4.根据权利要求3所述的设备,其中用于基于所述跟踪来生成所述经标准化的文本的所述装置包括:用于标识在解译期间由所述脚本调用的函数的装置;用于确定与所调用的函数相关联的顺序和数量的装置;用于确定与所调用的函数相关联的一个或者多个参数的装置;以及用于基于所述函数、所述顺序、所述数量以及所述一个或者多个参数来生成所述经标准化的文本的装置。5.根据权利要求3所述的设备,其中用于基于所述跟踪来生成所述经标准化的文本的所述装置包括:用于从所述经标准化的脚本中标识可化简的表达式的装置;用于基于所述跟踪来确定与所述可化简的表达式对应的经化简的表达式的装置;以及用于用所述经化简的表达式来替代所述可化简的表达式的装置,所述经标准化的文本是所述经标准化的脚本,所述经标准化的脚本具有替代所述可化简的表达式的所述经化简的表达式。6.根据权利要求5所述的设备,其中所述可化简的表达式是经编码的表达式,并且其中用于确定所述经化简的表达式的所述装置包括:用于解码所述经编码的表达式以生成经解码的表达式的装置,所述经化简的表达式是所述经解码的表达式。7.根据权利要求1所述的设备,进一步包括:用于从发送端点接收所述数据的装置,用于基于确定所述经标准化的文本是否与所述正则表达式签名匹配来处理所述数据的所述装置包括:用于标识与所述数据相关联的接收端点的装置;用于基于确定所述经标准化的文本与所述正则表达式签名不匹配来向所述接收端点发送所述数据的装置;以及用于基于确定所述经标准化的文本与所述正则表达式签名匹配来丢弃所述数据、而不向所述接收端点发送所述数据的装置。8.一种方法,包括:由设备从端点设备接收数据;由所述设备从所述数据中提取脚本化代码;由所述设备生成与所述脚本化代码对应的、并且具有空白和标识符的经标准化的脚本,所述经标准化的脚本的所述空白由所述设备根据标准化方案来格式化,并且所述经标准化的脚本的所述标识符由所述设备根据所述标准化方案来重命名;由所述设备确定所述经标准化的脚本是否与签名匹配;并且由所述设备基于确定所述经标准化的脚本是否与所述签名匹配来选择性地向与所述数据相关联的另一个端点设备发送所述数据,所述数据基于确定所述经标准化的脚本与所述签名不匹配而被发送到所述另一个端点设备,以及所述数据基于确定所述经标准化的脚本与所述签名匹配而不被发送到所述另一个端点设备。9.根据权利要求8所述的方法,其中生成所述经标准化的脚本进一步包括...

【专利技术属性】
技术研发人员:A·特亚吉
申请(专利权)人:瞻博网络公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1