使用正则表达式签名来去混淆脚本化语言以供网络入侵检测的制作方法

文档序号:11842817阅读:来源:国知局

技术特征:

1.一种设备,包括:

用于接收数据的装置;

用于标识与所述数据相关联的上下文的装置;

用于在所述数据内标识与所述上下文相关联的脚本的装置;

用于解析所述脚本以标识令牌的装置;

用于基于所述令牌形成节点的装置;

用于使用所述节点来组装语法树的装置;

用于重命名与所述节点相关联的一个或者多个标识符的装置;

用于基于重命名所述一个或者多个标识符之后的所述语法树,生成与所述脚本相关联的经标准化的文本的装置;

用于确定所述经标准化的文本是否与正则表达式签名匹配的装置;以及

用于基于确定所述经标准化的文本是否与所述正则表达式签名匹配来处理所述数据的装置,

当所述经标准化的文本与所述正则表达式签名匹配时,所述数据由第一过程处理,

当所述经标准化的文本与所述正则表达式签名不匹配时,所述数据由第二过程处理,

所述第一过程与所述第二过程不同。

2.根据权利要求1所述的设备,其中用于基于所述语法树生成所述经标准化的文本的所述装置包括:

用于通过遍历所述语法树的所述节点来生成与所述脚本对应的经标准化的脚本的装置,

所述经标准化的文本为所述经标准化的脚本。

3.根据权利要求1所述的设备,其中用于基于所述语法树生成所述经标准化的文本的所述装置包括:

用于通过遍历所述语法树的所述节点来生成与所述脚本对应的 经标准化的脚本的装置;

用于解译所述经标准化的脚本的一部分的装置;

用于基于通过解译所述经标准化的脚本的所述一部分而获得的信息来生成跟踪的装置;以及

用于基于所述跟踪来生成所述经标准化的文本的装置。

4.根据权利要求3所述的设备,其中用于基于所述跟踪来生成所述经标准化的文本的所述装置包括:

用于标识在解译期间由所述脚本调用的函数的装置;

用于确定与所调用的函数相关联的顺序和数量的装置;

用于确定与所调用的函数相关联的一个或者多个参数的装置;以及

用于基于所述函数、所述顺序、所述数量以及所述一个或者多个参数来生成所述经标准化的文本的装置。

5.根据权利要求3所述的设备,其中用于基于所述跟踪来生成所述经标准化的文本的所述装置包括:

用于从所述经标准化的脚本中标识可化简的表达式的装置;

用于基于所述跟踪来确定与所述可化简的表达式对应的经化简的表达式的装置;以及

用于用所述经化简的表达式来替代所述可化简的表达式的装置,

所述经标准化的文本是所述经标准化的脚本,所述经标准化的脚本具有替代所述可化简的表达式的所述经化简的表达式。

6.根据权利要求5所述的设备,

其中所述可化简的表达式是经编码的表达式,并且

其中用于确定所述经化简的表达式的所述装置包括:

用于解码所述经编码的表达式以生成经解码的表达式的装置,

所述经化简的表达式是所述经解码的表达式。

7.根据权利要求1所述的设备,进一步包括:

用于从发送端点接收所述数据的装置,

用于基于确定所述经标准化的文本是否与所述正则表达式签名匹配来处理所述数据的所述装置包括:

用于标识与所述数据相关联的接收端点的装置;

用于基于确定所述经标准化的文本与所述正则表达式签名不匹配来向所述接收端点发送所述数据的装置;以及

用于基于确定所述经标准化的文本与所述正则表达式签名匹配来丢弃所述数据、而不向所述接收端点发送所述数据的装置。

8.一种方法,包括:

由设备从端点设备接收数据;

由所述设备从所述数据中提取脚本化代码;

由所述设备生成与所述脚本化代码对应的、并且具有空白和标识符的经标准化的脚本,

所述经标准化的脚本的所述空白由所述设备根据标准化方案来格式化,并且

所述经标准化的脚本的所述标识符由所述设备根据所述标准化方案来重命名;

由所述设备确定所述经标准化的脚本是否与签名匹配;并且

由所述设备基于确定所述经标准化的脚本是否与所述签名匹配来选择性地向与所述数据相关联的另一个端点设备发送所述数据,

所述数据基于确定所述经标准化的脚本与所述签名不匹配而被发送到所述另一个端点设备,以及

所述数据基于确定所述经标准化的脚本与所述签名匹配而不被发送到所述另一个端点设备。

9.根据权利要求8所述的方法,其中生成所述经标准化的脚本进一步包括:

解析所述脚本化代码以生成与所述标识符相关联的节点;

用所述节点填充抽象语法树;

基于所述标准化方案并且基于与所述标识符相关联的节点位置来重命名所述标识符;

将所述抽象语法树的所述节点转换成脚本化表达式;以及

通过根据所述标准化方案组装所述脚本化表达式来生成所述经标准化的脚本。

10.根据权利要求8所述的方法,其中生成所述经标准化的脚本进一步包括:

确定与解译所述脚本化代码相关联的环境;

仿真所述环境;

在所仿真的环境中解译所述脚本化代码的一部分;

观察所述脚本化代码的所解译的一部分的对象之间的交互以及所述脚本化代码的所述一部分与所仿真的环境之间的交互;以及

基于所观察的交互来修改所述脚本化代码的所述一部分,

所述经标准化的脚本基于所述脚本化代码的经修改的一部分。

11.根据权利要求10所述的方法,其中修改所述脚本化代码的所述一部分进一步包括:

联接在所述脚本化代码的所述一部分内标识的一个或者多个分割的字符串。

12.根据权利要求10所述的方法,其中修改所述脚本化代码的所述一部分进一步包括:

迭代地修改所述脚本化代码的所述一部分。

13.根据权利要求10所述的方法,其中修改所述脚本化代码的所述一部分进一步包括:

解码所述脚本化代码的所述一部分。

14.根据权利要求10所述的方法,其中修改所述脚本化代码的所述一部分进一步包括:

将在所述脚本化代码的所述一部分中标识的函数调用替换成所述函数调用的结果。

15.一种系统,包括:

用于接收数据的装置;

用于标识被包含在所述数据中的可执行代码的装置;

用于在环境内执行所述可执行代码的装置;

用于基于所述可执行代码的所述执行来生成跟踪的装置;

用于基于所述跟踪来生成列表的装置,所述列表标识由所述可执行代码执行的一个或者多个函数、以及与执行所述一个或者多个函数中的函数相关联的顺序、执行计数、自变量或者返回值;

用于基于所述跟踪、通过用备选部分替换所述可执行代码的一部分来生成经优化的代码的装置,

所述一部分和所述备选部分关于在执行期间与所述环境的交互是等同的;

用于基于空白标准化方案来修改被包含在所述经优化的代码中的空白的装置;

用于基于标识符标准化方案来修改被包含在所述经优化的代码中的标识符的装置;以及

用于提供用于对代码签名进行匹配以确定所述可执行代码是否是恶意的所述经优化的代码的装置,所述经优化的代码具有根据相应的空白标准化方案和标识符标准化方案而修改的所述空白和所述标识符,

所述代码签名与确定所述可执行代码是否是恶意相关联;以及

用于提供用于对列表签名进行匹配以确定所述可执行代码是否是恶意的列表的装置,

所述列表签名与确定所述可执行代码是否是恶意相关联。

16.根据权利要求15所述的系统,其中用于提供所述经优化的代码和所述列表的所述装置包括:

用于向用户或者向与所述用户相关联的设备提供所述经优化的代码或者所述列表以允许所述用户确定所述经优化的代码是否与所 述代码签名匹配或者所述列表是否与所述列表签名匹配的装置。

17.根据权利要求15所述的系统,进一步包括:

用于确定所述列表是否与所述列表签名匹配的装置;

用于确定所述经优化的代码是否与所述代码签名匹配的装置;以及

用于基于确定所述列表与所述列表签名不匹配并且确定所述经优化的代码与所述代码签名不匹配来向与接收所述数据相关联的另一个设备发送所述数据的装置。

18.根据权利要求17所述的系统,其中所述代码签名是与正则表达式相关联的签名。

19.根据权利要求15所述的系统,进一步包括:

用于基于所述可执行代码来生成抽象语法树的装置;

用于从所述跟踪中确定与所述抽象语法树的一个或者多个节点相关联的行为的装置;

用于生成与所述行为相关联的一个或者多个替代节点的装置;

用于用所述一个或者多个替代节点来替代所述一个或者多个节点的装置;以及

用于基于其中所述一个或者多个替代节点替代所述一个或者多个节点的所述抽象语法树来生成所述经优化的代码的装置。

20.根据权利要求19所述的系统,进一步包括:

用于迭代地重复所述行为的所述确定、所述一个或者多个替代节点的所述生成以及用所述一个或者多个替代节点对所述一个或者多个节点的所述替代的装置。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1