使用正则表达式签名来去混淆脚本化语言以供网络入侵检测制造技术

技术编号:19598156 阅读:19 留言:0更新日期:2018-11-28 06:34
本公开的实施例涉及使用正则表达式签名来去混淆脚本化语言以供网络入侵检测。设备接收数据,标识与数据相关联的上下文,并且在数据内标识与上下文相关联的脚本。该设备解析脚本以标识令牌,基于令牌形成节点,并且使用节点来组装语法树。该设备重命名与节点相关联的一个或者多个标识符,并且基于重命名一个或者多个标识符之后的语法树来生成与脚本相关联的经标准化的文本。该设备确定经标准化的文本是否与正则表达式签名匹配,并且基于确定经标准化的文本是否与正则表达式签名匹配来处理数据。该设备在经标准化的文本与正则表达式签名匹配时,通过第一过程来处理数据,或者在经标准化的文本与正则表达式签名不匹配时,通过与第一过程不同的第二过程来处理数据。

【技术实现步骤摘要】
使用正则表达式签名来去混淆脚本化语言以供网络入侵检测本申请是申请日为2015年4月14日、申请号为201510176764.0的专利技术专利申请的分案申请。
技术介绍
脚本化语言是在运行时被解译(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{..}),使用备选的手段来表示常量值(例如,用数学操作替代数字),将一个函数用作另一个的替代(例如,将本地函数用作用于可疑远程函数或者对象方法的别名),在运行时分割字符串并且联接字符串,和/或在运行时编码脚本的一部分并且解码该部分。在特定脚本中,不止一个混淆技术可以被使用,并且一些技术可以被分层(例如,经加密的内容可以使用不同密钥来再被加密)。此外,脚本作者可以使用工具来使混淆技术的使用随机化,以使得一个恶意脚本可以以许多不同的混淆形式而存在。本文所描述的实施方式通过提供用于拦截通过网络向与用户相关联的端点设备发送的含脚本的数据的方法和设备、通过标准化并且去混淆被包含在数据内的脚本、通过将经标准化/去混淆的脚本与关联于恶意脚本的正则表达式签名进行比较、并且通过在脚本与签名匹配时防止脚本被递送到端点设备,可以辅助用户减轻由恶意脚本造成的威胁。通过这种方式,用户的端点设备以及与网络相关联的其他端点设备可以避免由已经被标识为恶意的脚本所感染。此外,该方法和设备可以辅助用户分析脚本,以便确定脚本是否是恶意,并且如果是的话,确定如何创建正则表达式签名以指导该设备检测并且扣留脚本。图1是本文所描述的示例实施方式100的概览图。例如,假定第一端点向第二端点发送数据(例如,使用超文本传输协议(HTTP))。在到达第二端点之前,数据经过网络设备(例如,入侵检测和预防系统、防火墙、代理服务器等)。网络设备从数据内标识并且提取脚本。网络设备进一步在仿真环境中使脚本标准化,去混淆并且跟踪脚本,以生成经标准化/去混淆的脚本以及脚本的对系统/全局/应用程序接口(API)方法的调用的列表(例如,不是由脚本定义的、但是是由环境提供以允许脚本与环境交互的函数)。网络设备然后将经标准化/去混淆的脚本与关联于脚本的签名(例如,正则表达式)进行匹配、和/或将脚本的方法调用的列表与关联于该方法调用的列表的签名进行匹配。如果本文档来自技高网...

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

【技术特征摘要】
2014.09.30 US 14/501,7981.一种设备,包括:用于接收数据的装置;用于标识与所述数据相关联的上下文的装置;用于在所述数据内标识与所述上下文相关联的脚本的装置;用于解析所述脚本以标识令牌的装置;用于基于所述令牌形成节点的装置;用于使用所述节点来组装语法树的装置;用于重命名与所述节点相关联的一个或者多个标识符的装置;用于基于重命名所...

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

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

1