在网络环境中的恶意脚本语言代码的检测的制作方法

文档序号:9355211阅读:350来源:国知局
在网络环境中的恶意脚本语言代码的检测的制作方法
【技术领域】
[0001]本公开总体上涉及网络安全领域,更特别地,涉及网络环境中恶意脚本语言代码的检测。
【背景技术】
[0002]计算机网络安全领域在当今社会越来越重要并且越来越复杂。计算机网络环境被配置用于几乎每个企业或组织,这些企业和组织典型地具有多个互连的计算机(例如,终端用户计算机、膝上型计算机、服务器、移动设备等)。典型地,该网络环境被配置以与其他网络环境经由广域网(例如互联网)进行通信。因此,各种文件可从一个终端主机转移至在相同的或不同的网络中的另一终端主机。这些文件可经由任何合适的电子通信机制传输,包括例如电子邮件(email)消息、超文本传输协议(HTTP)、文件传输协议(FTP)、和对等文件共享。
[0003]扫描可执行软件文件和其他对象的技术通常用于检测计算机上的恶意代码(“恶意软件”)或其他威胁。针对恶意软件来扫描对象总体上是使用已知恶意代码的静态签名执行的。计算机攻击者经常使用诸如JavaScript的脚本语言来在其它良性文件中插入恶意代码。脚本语言可本质上是动态的,此外,模糊技术总体上用于进一步阻碍检测恶意代码。因此,需要创新的工具以在跨计算机网络环境转移的对象中检测脚本语言形式的恶意代码。
【附图说明】
[0004]为提供对本公开和特征及其优点的更完整的理解,结合附图对如下描述进行参考,其中相同附图标记表示相同部件,其中:
[0005]图1为简化框图,其示出了根据示例实施例的用于在网络环境中检测恶意脚本语言代码的通信系统;
[0006]图2为简化框图,其示出了根据示例实施例的系统的额外细节;
[0007]图3为简化流程图,其示出了可与本公开的实施例相关联的示例操作;
[0008]图4为简化流程图,其示出了可与本公开的实施例相关联的额外示例操作;
[0009]图5为简化流程图,其示出了可与本公开的实施例相关联的进一步示例操作;
[0010]图6为简化流程图,其示出了可与本公开的实施例相关联的更进一步的示例操作;
[0011]图7为根据实施例的示例处理器的简化的框图;以及
[0012]图8为根据实施例的示例计算系统的简化框图。
【具体实施方式】
[0013]示例实施例
[0014]图1为简化框图,其示出了用于检测恶意脚本语言代码的通信系统100的示例实现。可在网络115中提供终端主机12(^至120 n,网络115可为局域网(LAN)、内联网、或其他网络,网络115提供对诸如互联网的广域网(WAN) 110和/或其他网络的访问。网络115还可包括安全设备130,安全设备130从诸如WAN 110的其他网络接收进入到网络115的网络业务。安全设备还可接收外出到诸如WAN 110的其他网络的网络业务。安全设备130可包括标准检测模块140、预处理模块145、脚本评价引擎150、函数评价模块160、和后评价模块170。安全设备还可包括处理器180和存储器元件190。本文中的合适的情况下,终端主机UO1 n被统称为“多个终端主机120”并且单数地被称为“终端主机120”,以便于参考。
[0015]图1的元件可通过采用任何合适的连接的一个或多个接口(有线或无线)相互耦合,该任何合适的连接为网络通信提供可行的通路。另外地,图1的这些元件中的一个或多个可基于特定的配置需要而合并或从架构中移除。通信系统100可包括能够传输控制协议/互联网协议(TCP/IP)通信以在网络中传输或接收分组的配置。通信系统100还可结合用户数据报协议/IP(UDP/IP)或在合适的情况下的以及基于特定的需要的任何其它合适的协议来操作。另外地,通过蜂窝网络的无线电信号通信还可提供于通信系统100中。
[0016]为了示出通信系统100的技术,重要的是理解可呈现于给定网络(例如图1中示出的网络115)中的活动和安全关注。如下基础信息可视为可根据其而合适地说明本公开的基础。该信息仅被提供用于说明,并且因此,不应当以任何方式将这样的信息理解为限制本公开广泛的范围和其潜在应用。
[0017]网络业务可程序对计算机网络中的设备的许多安全威胁。安全威胁总体上属于如下分类中的一个或多个:(I)恶意软件;(2)间谍软件;(3)隐私威胁;和(4)易受攻击的应用程序。恶意软件包括被设计以参与电子设备上的恶意、敌意、侵入、不需要、和/或未授权的行为的软件或代码。恶意软件的示例可包括但不限于,计算机病毒、蠕虫、僵尸程序(bot)、和木马。恶意软件总体上包括被设计以通过对数据的未授权访问、破坏、公开、修改和/或对服务的拒绝来干扰计算机或网络的正常操作的任何软件。恶意软件通常被设计以在用户不知情的情况下执行动作,例如改变诸如终端主机的设备、从感染的设备发送未经请求的消息至其他设备、或通过设备给予攻击者远程控制。恶意软件还可用于从设备窃取个人信息,这些个人信息可导致身份盗用、金融诈骗或其他隐私侵犯(例如,个人医疗信息)。
[0018]间谍软件为被设计以在用户不知情或未许可的情况下收集或使用数据的软件。隐私威胁可由这样的应用程序所导致:该应用程序可能不一定危害设备,但可未经授权而收集或使用执行其主要功能所不必要的信息。这样的信息的示例可包括但不限于,用户的位置、联系人列表、个人可识别信息、财务信息、医疗信息、机密或敏感的企业数据等。
[0019]易受攻击的应用程序可包含可被用于恶意目的而利用的软件易受攻击生。例如,易受攻击性可经常允许攻击者使用恶意代码来访问敏感信息、执行不希望的动作、使服务停止正常工作、自动下载恶意软件或以其他方式参与不希望的行为。在一些实例,恶意代码可得到对易受攻击的应用程序的控制、破坏易受攻击的应用程序、和/或感染在其上执行易受攻击的应用程序的设备。
[0020]网络业务可将包含恶意代码的软件应用程序和其他对象传输至计算机网络环境中的终端主机和网络元件。例如,可下载的对象、附在电子邮件消息的对象、或经由对等通信传输的对象可导致恶意代码跨网络环境传输至接收终端主机或网络元件。特别地,诸如ECMAScript的脚本语言或其变型(例如JavaScript)可用于在诸如超文本标记语言(HTML)文件和便携式文档格式(I3DF)文件中的嵌入代码。ECMAScript为由ECMA-262规范的Ecma internat1nal和IS0/IEC16262标准化的脚本语言。JavaScript代码可例如使用HTML文件的〈script〉标签或使用PDF文件的/JS或/JavaScript而作为脚本被嵌入文件。JavaScript可直接嵌入文件中,或嵌入包含可指定的JavaScript的外部文件中。
[0021]各种类型的安全解决方案可用于尝试防止恶意软件攻击、检测计算机上的恶意软件和其他威胁、和/或当需要时修复计算机。例如,基于签名的威胁检测为常用的防病毒技术,该技术涉及在对象内查找已知模式的数据。入侵阻止系统(IPS)是一个示例,并且可被配置为基于网络的装置,该装置监听网络是的所有业务并尝试对其进行解析以查找网络业务内的恶意模式或攻击。IPS可生成在网络业务中接收到的对象的签名并将该签名与当前已知的恶意签名相比较。对象的签名可生成自密码哈希函数,密码哈希函数为从对象中获取数据块并返回固定大小的比特串的算法。该固定大小的比特串为哈希值或签名。哈希函数的示例可包括但不限于:1)报文摘要算法(例如,MD5),其由网络工作组定义、请求注解(RFC) 1321, R.Rivest 等,1992 年 4 月,以及 2)安全哈希算法(SHA-1、SHA-2、SHA3),由美国国家标准和技术(NIST)研究所发布以作为美国联邦信息处理标准。
[0022]在特定示例中,网络业务可为从网络服务器下载到终端主机上的浏览器的PDF文件。IPS可监听该网络业务,因为接收者终端主机知晓要传输什么,以便理解和解释文件格式。由IPS进行的标准检测可包括计算PDF文件的一个或多个MD5哈希并将该一个或多个哈希与已知的恶意代码的静态签名进行比较。如果存在匹配,则PDF文件可标识为恶意的。
[0023]尽管签名检测对于标识不发生变化的恶意静态对象可以是有用的,但是脚本语言可用于某些对象中以规避检测。如在网络(即,在网络业务中)上可见的JavaScript是自由形式文本。JavaScript的动态特质使允许攻击者引入多个规避技术,这些规避技术可绕开IPS签名检测。对于每个JavaScript,可产生新的规避。因此,使用静态签名的标准签名检测技术可能无法检测恶意代码。
[0024]图1的用于检测恶意脚本语言代码的通信系统解决了前述问题(以及更多问题)中的许多问题。当由网络业务中的安全设备接收到具有脚本语言代码的对象时,诸如JavaScript的脚本语言代码被提取。尽管通信系统100可适于其他形式的脚本语言,但是为便于参考,在本文称为“JavaScript”,以描述实施例的各个方面。在编译JavaScript代码期间使用启发式技术,以检测攻击者所使用的潜在的规避技术。规避技术可包括用于在脚本中隐藏数据或代码的编码、解码和/或计算。如果检测到任何规避技术,则引发编译事件并且与该事件相关联的信息可被存储并且在后评价分析期间与其他事件关联。
[0025]在JavaScript被编译之后,经编译的脚本被执行而同时监视调用特定函数(本文称为“相关函数”),其经常被用于帮助攻击者规避脚本的设计和模糊。基于启发式技术和触发的机制可在兴趣点处捕获流。执行中的兴趣点可包括指示执行脚本可能为恶意的事件。该事件可包括指示代码的模糊的函数,例如执行堆喷射(heap spray)的代码。另一兴趣点包括对壳代码(shellcode)的标识,壳代码为攻击者所使用的在感染的终端主机上执行的恶意代码。与事件相关联的信息可被存储以用于后续的执行分析。与编译事件和/或执行事件相关联的事件信息可被关联以验证恶意行为。捕获JavaScript的行为和关联的事件信息可揭示JavaScript流的实质,这可帮助确定该JavaScript是否意图采取任何恶意动作。
[0026]现在转向图2,图2为简化框图,其示出了与通信系统100相关联的细节的一个可能的集合。脚本评价引擎150可包括编译器152、编译时启发式检测模块154、和执行引擎156。编译器152可接收诸如JavaScript 200的输入文件,并且在编译该输入文件之后,可提供经编译的脚本300至执行引擎156。在经编译的脚本被提供至执行引擎156之前,编译时启发式检测模块154可在编译期间执行对规避和/或模糊技术的启发式检测并且可将检测到的经编译的事件添加到编译事件队列157。执行引擎156可与函数评价模块160和后评价模块170交互。函数评价模块160可包括事件分析模块162和相关数据分析模块166,事件分析模块162和相关的数据分析模块166可分别执行堆喷射检测164和壳代码检测168。函数评价模块160可将与检测到的执行事件相关联的信息添加到执行事件队列159。后评价模块170可基于关联签名175和来自编译事件队列157和执行事件队列159的信息来执行恶意事件关联172。在讨论与图1-2的架构相关联的可能的流程之前,提供了关于可包括于通信系统100中的一些可能的基础设施的简单讨论。
[0027]总体上,通信系统100可实现于任何类型或拓扑的网络中。网络115和广域网110的每一个表示用于接收和传输通过通信系统100传播的信息的分组的互连通信路径的一系列点或节点。这些网络在节点之
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1