admin管理员组

文章数量:1534352

2024年6月17日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.7

(22)申请日 2009.11.19

(71)申请人 安全工程有限公司

地址 美国佐治亚州

(72)发明人 A·达文波特 H·金 J·R·拉姆泽

(74)专利代理机构 北京润平知识产权代理有限公司

代理人 南毅宁

(51)

G06F21/00

G06F21/22

G06F21/24

G06F11/30

(10)申请公布号 CN 102224505 A

(43)申请公布日 2011.10.19

权利要求说明书 说明书 幅图

(54)发明名称

用于运行时攻击预防的系统和方法

(57)摘要

防止对计算机在运行时的攻击。至

少一个构造成可存取计算机的功能的内容

由计算机接收。相应于功能的防护被添加

到内容,其中,该防护覆盖功能。随后,

内容和防护被发送给计算机。功能可能暴

露计算机的漏洞,而传递给功能的参数可

能利用那个漏洞。当内容被执行时,防护

被执行,并确定内容传递给功能的参数是

否构成威胁。响应于确定出参数构成威

胁,内容的执行在功能不被执行的情况下

被终止。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种用于保护计算机的方法,其包括:

接收以计算机为目的地的内容,该内容被构造成可存取至少一个计算机的功能;

为相应于该功能的内容添加防护,其中防护被构造成可监视该功能;

向计算机发送内容和防护。

2.根据权利要求1的方法,其中,监视功能包括覆盖该功能。

3.根据权利要求1的方法,其中,监视功能包括分析传递到该功能的参数。

4.根据权利要求1的方法,其中,功能包括暴露计算机的漏洞的功能。

5.根据权利要求1的方法,其中,传递给功能的某些参数利用计算机的漏洞。

6.根据权利要求1的方法,其中,内容包括至少一个对功能的调用。

7.根据权利要求1的方法,进一步包括,响应于对功能的调用执行其中一个防护,

其中,执行防护包括确定内容传递给功能的参数是否对计算机构成威胁。

8.根据权利要求7的方法,进一步包括,响应于确定出参数构成威胁,在功能不被

执行的情况下终止内容的执行的步骤。

9.根据权利要求7的方法,进一步包括,响应于确定出参数构成威胁,修改内容的

步骤。

10.根据权利要求7的方法,进一步包括,响应于确定出不构成威胁,允许漏洞功

能正常执行的步骤。

11.根据权利要求7的方法,进一步包括,响应于确定出参数构成威胁,将威胁警

告给终端用户、网络管理员和第三方中的至少一个。

12.根据权利要求1的方法,其中,添加防护的步骤包括如下步骤:

确定与计算机有关的计算环境;

识别与计算环境相应的第一防护;

将第一防护添加到内容。

13.根据权利要求12的方法,其中,计算环境包括安装在计算机上的操作系统、互

联网浏览器和应用程序中的至少一个。

14.根据权利要求1的方法,进一步包括如下步骤:

确定内容的类型;

识别与类型相应的第二防护;以及

将第二防护添加到内容。

15.根据权利要求14的方法,其中,内容的类型包括用于JavaScript、Flash和

Silverlight中的至少一个的可执行代码。

16.根据权利要求1的方法,其中,添加防护的步骤包括为内容预设防护。

17.一种用于保护计算机的系统,其包括:

构造成可接收内容的第一计算机;

构造成可从第一计算机接收内容的第二计算机,内容构造成可存取第二计算机的至

少一个功能;

耦连于第一计算机的防护引擎,该防护引擎被构造成可拦截内容、为内容添加防护、

并向第二计算机发送防护和内容,且

其中,防护覆盖功能,以使得防护在当内容调用功能时被执行,并确定功能是否对

第二计算机构成威胁。

18.根据权利要求17的系统,其中,为内容添加防护包括为内容预设防护。

19.根据权利要求17的系统,其中,第一计算机包括防护引擎。

20.根据权利要求17的系统,其中,第一计算机包括第二计算机。

21.根据权利要求17的系统,其中,防护被构造成可在一旦确定出功能包括威胁时

修改内容。

22.根据权利要求17的系统,其中,防护被构造成可在一旦确定出功能包括威胁时

终止内容的执行。

23.根据权利要求17的系统,其中,防护被构造成可在一旦确定出功能包括威胁时

警告终端用户、网络管理员和第三方中的其中之一。

24.一种用于运行时防止对计算机的攻击的方法,该方法包括:

接收对来自于计算机的可执行内容的请求,其中,可执行内容被构造成可存取计算

机的至少一个功能;

为内容添加防护,其中,防护覆盖可被可执行内容存取的功能;

向计算机发送防护和内容。

25.根据权利要求24的方法,进一步包括,执行内容和防护的步骤,其包括:

利用防护确定可执行内容传递给功能的参数是否对计算机构成威胁。

26.根据权利要求25的方法,进一步包括,响应于确定出参数对计算机构成威胁,

终止内容的执行。

27.根据权利要求25的方法,进一步包括,响应于确定出参数对计算机构成威胁,

修改内容。

28.根据权利要求25的方法,进一步包括,将威胁警告给终端用户、网络管理员和

第三方中的至少一个。

29.根据权利要求24的方法,其中,内容包括JavaScript、Flash和Silverlight中的

一个。

30.根据权利要求24的方法,其中,添加防护包括预设防护。

31.根据权利要求24的方法,其中,请求在远程服务器处被接收。

32.根据权利要求31的方法,其中,防护在远程服务器处被添加。

33.一种用于保护计算机的系统,其包括:

计算机,其暴露至少一个耦连于网络的功能,该计算机被构造成,可经由网络接收

被构造成可存取功能的内容,且一旦接收到就执行该内容,该功能包括至少一个参

数;

防护引擎,其耦连于网络并被构造成可在内容被计算机接收之前拦截该内容,以及

被构造成可为该内容预设防护;

其中,防护被构造成当内容试图执行功能时,可被计算机执行,

其中,防护被进一步构造成可分析参数以便确定,在参数被传递给功能时,参数是

否构成威胁,

其中,防护被进一步构造成,可响应于确定出在参数被传递给功能时会构成对计算

机的威胁,修改内容的执行,以及

其中,防护被进一步构造成,可响应于确定出在参数被传递给功能时不会对计算机

构成威胁,允许功能根据内容的调用来执行。

34.根据权利要求33的系统,其中,修改内容的执行的步骤包括终止内容的执行。

35.根据权利要求33的系统,其中,内容包括JavaScript、Flash和Silverlight中的

至少一个。

36.根据权利要求33的系统,其中,内容包括一旦接收到就被执行的ASCII文本。

37.根据权利要求33的系统,其中,计算机进一步包括构造成可一接收到就执行内

容的网络浏览器,且功能由该网络浏览器暴露。

38.根据权利要求33的系统,其中,防护进一步被构造成,可响应于确定出参数在

被传递给功能时会对计算机构成威胁,发送警报给终端用户、网络管理员和第三方

中的至少一个。

39.一种用于运行时防止对计算机的攻击的计算机程序产品,该计算机程序产品包

括:

计算机可读存储介质;

在计算机上执行内容的第一程序指令,其中,内容被构造成可存取至少一个计算机

功能;

为内容添加防护的第二程序指令,其中,在内容存取该至少一个功能之前执行防护,

且其中,防护修改与可执行内容有关的许可;

允许内容以降低的许可等级存取至少一个功能的第三程序指令;

其中,第一、第二和第三程序指令被存储在计算机可读存储介质上。

40.根据权利要求39的计算机程序产品,其中,修改许可包括限制内容存取系统功

能的能力。

41.根据权利要求39的计算机程序产品,其中,修改许可包括限制内容对系统资源

的存取。

42.根据权利要求39的计算机程序产品,其中,内容包括编译的可执行软件。

43.根据权利要求39的计算机程序产品,其中,为内容添加防护包括为内容预设防

护。

说 明 书

交叉引用相关专利申请

本申请要求根据35 U.S.C.§119要求在2008年11月19日申请的,名称为“虚拟安

全库”的US临时专利申请61/199,728的优先权。因此上述在先申请的全部内容全

部合并于此作为参考。

技术领域

本发明大体涉及计算机和网络安全的领域,且更具体地涉及识别恶意的程序和代码,

并防止其执行。

背景技术

几十年来,黑客们已寻找到将恶意程序(“恶意软件”)安装到计算机或其他联网设备

的途径。通常,恶意软件运行以损坏或妨害安装了其恶意软件的计算机(“主机”)的

功能。恶意软件也可为黑客提供呈现在主机上的敏感信息的通路,以及主机所连接

到的网络上的途径。通过侵占主机的电子邮件和其他网络通信工具,恶意软件也可

使用主机去发布另外的恶意软件。

恶意程序一般透过否则看来良性的程序或文件渗入而被安装到主机上。例如,恶意

软件可被包含在电子邮件消息中,且可在打开电子邮件消息或查看消息内的图像时

自动运行。恶意软件也可与主机的使用者有意图地下载和/或安装的程序相关联。

通常,检测这些威胁的主要方法为识别与各种恶意软件有关的签名。签名通常为可

执行的字符序列,其在攻击已发生并被报告给受过专门训练的分析者之后被识别。

分析者识别恶意软件和与其有关的签名。随后分析者以可执行代码或以网络通讯设

计识别该签名的软件。对于最常规的病毒防护、反间谍软件和入侵检测系统,这是

典型的工作模式。

黑客非常清楚这种常规的防御,且已开发了新的攻击,其被设计成使用新的技术来

规避基于签名的检测。一种这样的攻击使用可执行的互联网代码,诸如JavaScript。

JavaScript为设计成为嵌入在超文本标记语言(HTML)页面的编程语言。JavaScript

提供接近网络浏览器外的可执行目标的途径。例如,JavaScript允许网页打开存储

在主机硬盘的文件以及修改该文件。JavaScript还允许在主机的存储器中的数据结

构的创建。由于JavaScript为脚本语言,它不被转化成机器语言,而是以文本的形

式被发送给终端用户的网络浏览器,随后在那里其被执行。

这些特征为黑客提供了可利用的途径。例如,可能是已知的,在指定的操作系统或

网络浏览器中,创建特定大小的阵列可允许黑客接近计算机存储器的特别敏感的区

域。JavaScript允许这样的阵列的创建。创建数据结构需要特定的已知语法,所以

基于签名的检测仍旧可能是可行的。然而,由于程序员在表达变量的名称上和设置

在阵列中的数据上有广泛的自由,基于签名的检测变得更困难,甚至不可行,因为

攻击可能直到恶意代码已在主机上运行时才变得明显。

然而,在该假设的示例中,在基于签名的检测可行的程度上,诸如JavaScript的语

言为黑客提供另外的途径来躲避基于签名的检测方案。具体地,JavaScript提供可

随后被执行的字符串的运行时评估。例如,假设叫作(“hack”)的功能

为已知的溢出漏洞。黑客可利用JavaScript的运行时评估的特征如下所述地混淆该

溢出漏洞:

var X =“ha”;

var Y=“k”;

var Z=“doc”;

var A=“”;

var B=“ite(”;

var C=“)”;

var D=“c”;

eval(Z+A+B+X+D+Y+C);

上述代码将字符串估值为(“hack”)并执行该恶意代码。使该问题复杂

化的是,JavaScript几乎没有规定对于变量的名称或者它们出现的顺序的限制。因

此,对于混淆恶意代码的途径,黑客们只受他们的想象力限制。而且,由于

JavaScript可在网页被访问时自动产生,如上所述的混淆手法可以这样的方式响应

于访问随机产生,以确保每一次攻击与上一次具有不同的签名。因此,即使是可行

的,常规的基于签名的检测也会很困难检测到这种新型的互联网攻击。

这样的攻击的进一步问题为,其可被隐藏在从其他可信源接收的代码中。例如,得

到广泛使用的网站可售卖它网站上的广告空间给广告客户。当终端用户浏览网页时,

显现在那个空间的广告典型地从广告客户或第三方广告服务器所加载。广告也可在

终端用户浏览网页之前被加载到与网站相关联的服务器上,在此情况下,当终端用

户浏览该网站时,该广告也可被提供给用户而不用连接到外部服务器。除了契约上

的控制之外,运行该网站的公司对广告的内容可能只有很少的控制。如果恶意代码

被设置在广告中,网站可能直到它已经提供了无数的受感染的网页才发现问题。因

此,一般用于阻止来自于不可信的来源的网络通讯或者仅仅允许来自于可靠来源的

通讯的方法可能并不足够用于阻止攻击。

阻止这样的攻击的常规方法是禁止基于网络的可执行代码的执行,该可执行的代码

包括但不限于JavaScript、Adobe Flash和Microsoft Silverlight。然而,阻止这样的

代码的执行,可能使得某些网站不能正确地运行,且减损了该代码允许的丰富的网

络内容。

因此,现时存在对于可识别和阻止在可执行代码中传递的攻击的系统的需求。进一

步地,现时存在对于下列的系统的需求,该系统在即使当攻击被混淆以至于直到运

行时才能检测到时,也可识别和阻止这种攻击。现时更存在信誉良好的网站经营者

对访问者的保护,以使访问者不受可能隐匿在经由他们网站公布的内容中,诸如由

第三方广告客户控制的调幅广告,的攻击。

发明内容

本发明通过提供一种用于预防运行时攻击的系统和方法来满足上述需求。在本发明

的一个方面中,提供了一种可接收计算机指定的内容方法。该内容可被构造成可接

近使计算机漏洞暴露的至少一个功能。覆盖该功能或者修改该内容的执行的防护随

后可被添加到该内容。包括该防护的该内容随后被发送给计算机。

计算机一旦接收了该内容和该防护,便会执行该内容。如果该内容调用使计算机漏

洞暴露的功能时,该防护便会被执行。通过执行该防护,该内容试图传递到该功能

的任何参数都被分析,以判定这些参数是否带威胁性。如果确定该参数对计算机构

成威胁,该内容的执行在该功能未被执行时被终止。另一方面,如果该参数不带威

胁性,该漏洞功能将被允许正常执行。

如果传递给该功能的参数被确定带有威胁性,而该内容的执行被终止,警报将被发

送给网络管理员。警报也可被发送给终端用户或者第三方。

当增加防护时,该方法可考虑与计算机有关的计算环境。计算环境可包括与计算机

的操作系统有关的信息、在计算机上运行的网络浏览器的类型和版本、和/或安装

在计算机上的应用程序。于是该方法可识别与计算环境相应的防护并将这些防护添

加到该内容。当添加防护时,该方法也可考虑该内容的类型,其可包括JavaScript、

Flash和Silverlight。该方法可识别与该内容的类型相应的防护,并可将这些防护添

加到该内容。

在本发明的另一方面,提供了一种用于防止计算机在运行时被攻击的系统。该系统

包括被构造成可接收内容的第一计算机。防护引擎被耦连到第一计算机,并被构造

成可拦截该内容,并添加防护到该内容。该防护覆盖易被该内容接近的功能,以使

得当该内容调用该功能时,执行该防护。该防护可被构造成能确定该内容传递给该

功能的参数是否一种攻击。该防护也可被构造成在确定该参数为攻击时,终止该内

容的执行。该防护也可修改该内容的执行,以便阻挠依赖于该内容的执行的特定特

性的攻击。该防护也可被构造成,在确定对该功能的调用为攻击时,发送警报给终

端用户、网络管理员和/或另外的第三方。

本发明的另一个方面提供一种用于防止在对计算机运行时被攻击的附加的方法。在

该方法中,远程服务器接收来自计算机的可执行内容的请求。防护被添加到该内容

中,其中该防护覆盖易被该内容接近的功能。随后,该防护和该内容被发送给计算

机。

计算机于是执行该内容和该防护。该防护确定该内容传递给该功能的参数是否对计

算机带有威胁性。响应于该参数对计算机带有威胁性的判定,该防护终止该内容的

执行。该防护也可修改该内容的执行,以便阻挠依赖于该内容的执行的特定特性的

攻击。该防护也可将该威胁警告发放给终端用户、网络管理员或者第三方。

通过参考下面的示例实施例的详细说明,本发明的另外的方面、目的、特征和优点

对于本领域技术人员将变得显而易见。现在结合下述附图参考随后的说明,以便更

全面理解本发明的示例实施例及其优点。

附图说明

图1为描述网络结构的框图,该网络结构实施根据本发明的示例实施例的用于运行

时攻击预防的系统;

图2为描述利用图1的用于运行时攻击预防的系统在网络通讯中插入防护的不例方

法的流程图;

图3为描述,利用图1的用于运行时攻击预防的系统,创建防护的示例方法的流程

图;

图4为描述,利用图1的用于运行时攻击预防的系统,在网络中插入防护的示例方

法的流程图;

图5为描述用于预先计划防护的示例方法的流程图;

图6为描述用于执行为了运行时攻击预防的被保护内容的示例方法的流程图;

图7为描述网络结构的框图,该网络结构实施根据本发明的第二示例实施例的用于

运行时攻击预防的系统;

图8为描述利用图7的用于运行时攻击预防的系统在服务器中插入防护的示例方法

的流程图;

图9为描述网络结构的框图,该网络结构实施根据本发明的第三示例实施例的用于

运行时攻击预防的系统;

图10为描述利用图9的运用运行时攻击预防的系统在终端用户的计算机上插入防

护的示例方法的流程图。

具体实施例

用于预防运行时攻击的创新系统可截断包含可执行内容的网络通讯,该可执行内容

的指定目的地为利用来自于网络的内容的终端用户,代理或设备。终端用户的计算

机,也称为主机,暴露了许多该内容可接近的功能。这些功能中的一些可能暴露与

计算机、它的操作系统或安装在计算机上的其他应用程序有关的漏洞。通过截断该

内容,该创新的系统将防护添加到覆盖(或“遮掩”)该功能的内容。当该内容试图调

用计算机所暴露的功能时,该防护被执行。如此处所使用的,术语计算机是指智能

终端,诸如连接到诸如互联网的外部网络的个人计算机。术语计算机也指任何可联

网的设备,其具有直接或通过网络耦连于存储装置的处理器或控制器,并能在网络

上接收可执行代码并执行该代码,例如包括,膝上型电脑、手持电脑、移动电话、

个人数码助手(PDA)、便携式音频播放器以及全球定位系统。正如在整个本申请中

所使用的,术语“计算机”仅仅为了方便而使用,且如上所述的,术语“计算机”在本

文还包含任何计算机或联网设备。

防护被构造成可基于该内容试图传递给该功能的参数或其它信息(包括状态信息,

诸如特定功能已被调用的次数)来确定该内容是否包含对计算机的威胁。如果防护

确定由该内容实行的特定功能调用构成威胁,防护可终止该内容的执行。防护也可

修改该内容的执行以便阻挠依赖于该内容的执行的特定特性的攻击。另一方面,如

果防护确定具体功能调用没有威胁性,该功能可被允许正常执行(如,由该内容所

调用)。该防护也可就该威胁警告终端用户、网络管理员或其他第三方。在执行该

内容之前在网络传递的可执行内容中插入防护可防止针对隐藏在该内容中所暴露的

功能的攻击。

在添加防护之前,该创新的系统可考虑该内容和请求的计算机的某几方面,以有助

于简化该过程。例如,如果内容的请求由互联网浏览器的特定版本发送,该系统仅

仅可将防护添加到与特定互联网浏览器有关的内容。类似地,如果该内容为某种类

型的可执行代码(如,JavaScript),该系统仅仅可添加适于JavaScript内容的那些防

护。

现在转到附图,其中,用样的参考标记引证同样的元件,图1为描述网络结构的框

图,该网络结构实施根据本发明的示例实施例的用于运行时攻击预防的系统100。

一个或多个终端用户102在网络内操作计算机。

终端用户102,经由它们的智能终端,在网络上请求来自于远程服务器108的内容。

在示例实施例中,请求在当终端用户102打开它们计算机上的诸如

Microsoft Internet Explorer、Mozilla Firefox、Mozilla Flock、Goole Chrome、Opera

或Apple Safari的网络浏览器并浏览网址时产生。终端用户102的计算机发送请求

到代理服务器104或网络上的诸如路由器的其他设备,其评价该请求并将该请求发

送给防火墙或侵入防护系统106,随后防火墙或侵入防护系统将该请求传递给远程

服务器108。

远程服务器108接收并响应该请求产生发送回终端用户102的内容。在示例实施例

中,远程服务器108为万维网服务器,其存储可在计算机上显示给终端用户102的

各种类型的内容。在该实施例中,该内容由ASCII格式的HTML(超文本标记语言)

代码组成,该代码可由终端用户102的浏览器显示。该内容也可由诸如图像的二进

制编码信息组成。该图像可以许多传统的图像格式储存,诸如联合图像专家组格式

(JPEG或JPG),可交换的图像文件(GIF)、标签图像文件格式(TIFF)、可移植文件

格式(PDF)或其他可在网络上传递的图像格式。

该内容也可由可被浏览器或其他应用程序执行的代码组成,该浏览器或其他应用程

序可在终端用户102的计算机上执行该代码。现时存在几个对于传递可执行代码给

浏览器的标准,其包括JavaScript、Adobe Flash及它的相关汇编语言ActionScript、

以及Microsoft Silverlight。例如,JavaScript由ASCII编程指令所代表,并在由浏

览器收到时执行。

远程服务器108指引响应内容返回到终端用户102。然而,在该内容到达终端用户

102之前,它必须穿过防火墙/侵入检测系统106。防火墙106可惯例地基于一组易

于识别的特性,诸如通讯的源或目的地址,被设置成用于阻止有害的网络通讯。假

设响应成功地穿过防火墙106,其也可由侵入检测系统(IDS)所检查,该侵入检测

系统典型地被构造成,对网络通讯尽力实施额外的、更严格的检验以便识别(和防

止)威胁。例如,IDS可储存与网络通讯有关的信息和签名以便识别匹配于与已知

威胁相关联的模式的通讯。

假设响应成功地穿过IDS,该响应将被传递给代理服务器104。在传统的网络中,

代理服务器104储存与终端用户102发送的导致响应的请求有关的信息,并将响应

发送给适当的终端用户102的计算机。然而,在本发明的示例实施例中,防护引擎

112介入该过程并为终端用户102增加额外的防护层。

在示例实施例中,防护引擎112与运转代理服务器104在相同的服务器上运行。然

而,在另一个示例实施例中,防护引擎112可为完全独立的服务器,其被构造成在

代理服务器104将内容发送回给终端用户102之前,接收来自于代理服务器104的

内容。在进一步的另一个示例实施例中,防护引擎112可被设置在网络数据路径内

的任何位置。例如,防护引擎112可被设置在防火墙/IDS 106之前、在防火墙

/IDS 106和代理服务器104之间或者代理服务器104和终端用户102之间。防护引

擎112的最终部署不必处于任何特定的位置,且可依赖于多个与特定网络拓扑结构

相关的因素。

再一次参考示例实施例,其中,防护引擎112与代理服务器104相关联,当响应传

递到代理服务器104时,防护引擎112阻截该响应。防护引擎112接收该响应并确

定该响应是否包括可能携带有攻击的内容类型。在本发明的示例实施例中,防护引

擎112被构造成可识别包含在响应内,作用为将特定类型的内容的出现通知给终端

用户的浏览器的文本或其他信号。例如,如果响应包括JavaScript,那么该响应将

包含诸如“<script type=”text/javascript”>”的标志。类似地,如果响应包括动

画内容,那么它将包含诸如“<object data=””type=”application/x-

shockwave-flash”>”。通过接收这样的标志(或者与其他类型可执行内容的有关联

的其他类似标志),防护引擎112会将该响应识别为包含可能携带攻击的内容。

一旦防护引擎112该响应识别为具有可能携带攻击的内容的类型,防护引擎112预

先为该内容设置防护。在示例实施例中,防护为在隐藏的恶意代码执行之前执行,

并提供抵抗隐藏在代码中的攻击的屏障的代码。示例的防护覆盖具有新功能的核心

功能,其被构造成可观测内容的功能性并在允许该核心功能运行前识别攻击。术语

“覆盖”表示,替代如此处所述的核心功能的正常功能的防护。该术语还包含了替代

或处理现有的核心功能的功能的任何技术,包括“隐藏”核心功能。

JavaScript为这样的语言的一个示例,对于该语言,核心功能可被接近以至于允许

攻击且也可被覆盖以便抵抗攻击。仅仅以示例的方式,JavaScript包括一种名为

(<arguments>)的功能,其可被用于利用互联网浏览器中的溢出

漏洞—安全弱点。防护可覆盖功能,从而在执行核

心功能之前,为防护提供对传递给功能的参数提供分析的机会。在该示例实施例中,

在网页开始被加载时,核心功能可通过为它分配新的对象或变量

(例如,)而被覆盖。通过这种方式,原始的功能

变为。于是,当内容调用时,防护被执行,如果

指示核心功能没有攻击,该核心功能可被执行。

用于的防护的伪代码表示如下所述:

如上述示例的伪代码所指示的,当所接收的内容中JavaScript包含对

的调用时,终端用户102的浏览器将运行防护而不是直接运行功能。

防护功能分析内容试图传递给作为威胁的参数。如果该参数代表威

胁,功能将该威胁向用户报警,并在不曾调用核心的功能的情况下

终止功能的执行。而通过这种方式,攻击不曾在终端用户102的计算机上执行。另

一方面,如果参数不代表威胁,功能将被调用,以允许核心的

功能正常执行。

尽管上述示例覆盖()功能,防护可被添加到覆盖任何功能的内容,

其包括与单独地从终端用户102的浏览器执行的应用程序相关联的功能。确实,在

许多情况下,汇编语言在浏览器内启动单独的应用程序的能力可为攻击提供额外的

通道,这是由于许多应用程序包含可被利用的弱点。因此,防护不仅仅限于浏览器

功能,恰恰相反,他们可用于可被响应内的可执行代码或脚本调用的任何功能。而

且,预设防护的能力不限于以JavaScript所写的功能,而是可应用于可被包含在内

容中的任何可执行代码。

在本发明的示例实施例中,防护引擎112将与包含在响应内的内容的类型有关的所

有防护添加到该内容中。通过这种方式,防护引擎112可确保任何潜在的危险功能

也被覆盖。这可能特别重要,这是因为,黑客的常规技术,此处被称为“混淆”,可

使得很难确定哪个功能调用被包含在响应内。

混淆的一个示例包含eval功能的使用。Eval功能是有用的功能,其允许通过将字

符串传递给eval功能,使eval功能像可执行代码一样处理字符串。由于被传递给

eval功能的字符串可在运行时产生,可能直到要被调用的功能被执行时,才能识别

该功能。

例如,假设功能调用(“hack”)是已知的溢出漏洞。黑客可如下利用

eval功能来混淆溢出漏洞:

var X=″ha″;

var Y=″k″;

var Z=″doc″;

var A=″″;

var B=″ite(″;

var C=″)″;

var D=″c″;

eval(Z+A+B+X+D+Y+C);

上述代码会将字符串评价为(“hack”)。(“hack”)会被运

行这一点,直到实际运行时间才会变得明显。如利用常规系统,此时防止攻击已经

太迟。类似地,执行传递给eval功能的参数的“预评价”将是无效的,且会不必要

地减慢程序的运行。

然而,在本发明的该实施例中,攻击在不昂贵地(就数据处理和网络资源而言)预评

价响应时被检测到。具体地,eval功能被允许运行并执行(“hack”)。

然而,防护,而不是浏览器功能被执行。随后防护将(在这种情况下

为“hack”)的参数识别,识别出攻击,以及在恶意代码可被运行前终止执行。

在另一示例实施例中,防护可以修改内容以在阻挠攻击的同时,仍旧允许内容继续

执行,而不是在执行恶意代码前终止内容的执行。仅仅举例来说,许多攻击依赖特

定的时机和系统运行的知识来实施攻击。一个这样的已知攻击为“heap spray”攻击,

其分配大的内存区块,并在具体的位置设置特定的值。heap spray攻击依赖于以堆

形式的内存,该堆以特定的方式分配给功能。然而,如果防护确定某种功能调用或

功能调用组代表heap spray攻击,防护例如可通过插入分配内存的延迟以修改堆的

结构来修改内容的执行。这将修改攻击所依赖的结构,并将阻挠攻击。本领域普通

技术人员会认识到尽管内容的这种修改可适于阻挠heap spray攻击,可适于阻挠其

他依赖于时机或内存分配的类似的攻击的其他修改也位于本发明的范围内。

在另一实施例中,防护引擎12可进一步分析请求并根据请求的特定方面有选择性

地预设防护。在另一个实施例中,防护引擎112对终端用户112的操作环境,诸如

操作系统、作出请求的浏览器的类型和版本、以及可能出现的其他应用程序的有关

信息的请求进行检查。例如,请求通常携带识别请求来自的浏览器的类型和版本、

终端用户102的计算机的操作系统的元数据,并也可识别其他在终端用户102的计

算机上允许的软件。利用该信息,防护引擎112可制定为请求系统预设的防护。例

如,网络浏览器开发商经常更新它们的浏览器以便消除潜在的溢出漏洞。如果已知

特定的浏览器版本已经纠正了特定的溢出漏洞,可不必预设针对那个溢出漏洞的防

护。类似地,特定的溢出漏洞可针对执行除了网络浏览器之外的其他应用程序的代

码。如果防护引擎112从请求中确定出特定溢出漏洞的对象的程序没有被安装在终

端用户102的计算机上,那么它可确定不预设针对那个溢出漏洞的防护。

在本发明的另一个示例实施例中,防护引擎112可在预设防护之前考虑外部数据。

例如,防护引擎112可确定远程服务器108是否位于白名单上。通常,白名单为已

知对网络通讯安全的服务器数据库(由名字、互联网地址或其他身份指示符)。如果

远程服务器108在白名单上,不预设防护或可改善其性能。

在本发明的示例实施例中,防护引擎112把防护预设于响应中的可执行代码前,这

意味着防护将由浏览器在任何可被浏览器执行的可执行代码之前执行。最常见的内

容包括能用于识别于该内容内可执行代码的开头部分的位置的标签。例如,

JavaScript代码的开头部分通常利用<script>标签识别。根据示例实施例,

JavaScript防护可紧接在<script>标签之后,但在标签内的可执行代码之前预

设。在另一示例实施例中,当在要被执行的代码中的功能可利用不必在内容中的代

码之前出现的防护覆盖时,那么,防护可在任何适当的位置被添加到代码中,该位

置由内容和可执行代码的特定类型规定。

除了在潜在的恶意功能调用发生之前修改或终止内容的执行之外,防护也可包括警

告功能,其可将恶意代码的存在通知一个或多个感兴趣的当事人。在本发明的示例

实施例中,警报会发送通知给特定网络的管理员或其他制定的第三方。该警报可包

含与攻击有关的信息,其可帮助网络管理员确定行动的正当步骤,仅仅举例来说,

其包括,识别出攻击、攻击的类型、内嵌有攻击的代码、请求最终包含有攻击的内

容的计算机的身份、传送攻击的远程服务器108的身份、以及其他可以任何可想到

的矫正措施来帮助警报接收者的信息的防护。在另一示例实施例中,警报可通过出

现在终端用户102的计算机上的通知的形式发送给终端用户102。在另一个实施例

中,警报可发送给第三方,其可以各种方式利用与警报有关的信息以便提供更有效

的服务。仅仅举例来说,在确定远程服务器108的地址是否应该被添加到有害的发

送者名单(有时称为黑名单或危险列表)中时,第三方可利用关于远程服务器108的

身份的信息。第三方也可为防护的提供者,且如果这样的话,第三方可利用警报中

的信息来改善它的防护。

一旦为响应预设了防护,受保护的响应将被发送回代理服务器104。受保护的响应

于是被发送给终端用户102,并于终端用户102的浏览器上执行。

防护引擎112被耦连于防护服务器114。防护服务器114被构造成可为防护引擎

112提供更新的防护。安全分析员不断地注意新的溢出漏洞。在某些情况下,溢出

漏洞由寻找软件中的缺陷以试图先于黑客行动的安全分析员或软件开发者发现。在

其他情形中,黑客识别并利用该缺陷。无论那种情况,安全分析员一旦察觉到利用

易受攻击的功能的溢出漏洞,他们都能利用上述的防护覆盖这些功能。在示例实施

例中,覆盖功能包括,检查黑客可用来利用溢出漏洞的方法,以及产生代码以便检

查这些方法的证据的属性。包装器也可包括检查状态信息的代码,该状态信息例如

为利用特定参数,特定功能已被调用的次数,并可确定该状态信息是否代表攻击。

更新的包装器被设置在防护服务器114上,并被定期地加载或推送到防护引擎112

上。

现在参考图7,其示出了根据本发明的第二示例实施例,描述实施用于运行时攻击

预防的系统700的网络结构的框图。和图1的系统一样,图7的用于运行时预防的

系统通过给响应预设防护来运转。图7的系统与图1的系统不同在于,不是在网络

级预设防护,而是由远程服务器108预设防护。

在图7中所描述的用于运行时攻击预防的系统700的示例实施例中,终端用户702

产生对内容的请求。请求被发送给终端用户702的计算机被连接到的局域网

(“LAN”)704。请求于是通过互联网706被递送给远程服务器708,其被指定为响应

该请求。通常,如果请求为对互联网/万维网内容的请求,则响应为一个或多个构

成网页的文本或数据包。在本发明的示例实施例中,在发送响应之前,远程服务器

708为响应预设防护。远程服务器708随后通过互联网706和LAN 704将受保护的

响应发送回终端用户702。正如图1的系统中一样,终端用户702的浏览器接收受

保护的响应并执行防护。

在该实施例中,通过在将响应发送给终端用户702之前,为响应预设防护,远程服

务器708得到不会不慎向连接到服务器的终端用户702提供攻击的保证。通过示例

的方式,许多商业网站在网站上包括提供给访问者的广告。通常,商业网站几乎不

直接控制广告的内容。反而,商业网站仅仅从互联网上的其他位置下载包括广告的

内容。如果那个内容含有恶意代码,远程服务器708直到终端用户702抱怨来自于

由远程服务器708提供的网站的攻击前,可能不会有任何指示,。然而,通过预设

防护,不管终端用户702是否与可能也提供防护的系统(如图1和9中描述的系统)

相关联,远程服务器708也已对终端用户702作出防护以免其终端用户702受远程

服务器可能不慎发送的任何攻击。

远程服务器708被耦连到防护服务器710。在示例实施例中,防护服务器710和图

1所描述的防护服务器114类似,并为远程服务器708提供更新的防护。

现在参考图9,其示出了根据本发明的第三示例实施例,描述实施用于运行时攻击

预防的系统900的网络结构的框图。和图1和7所示的系统一样,图9所示的用于

运行时攻击预防的系统通过为响应预设防护来操作。图9的系统与图1和7的系统

的区别在于,防护由终端用户702的计算机,而不是在网络级预设。

在示例实施例中,终端用户902的计算机发送请求,其穿过LAN 904和互联网906

传播到远程服务器908。远程服务器908将响应穿过互联网906和LAN 904发送回

给终端用户902的计算机。终端用户902的计算机一经接收到响应,会在将响应传

递给网络浏览器之前,为响应预设防护。受保护的响应于是被允许传递给终端用户

902的浏览器并在那里被执行。

终端用户902的计算机可被耦连于提供更新的防护的防护服务器910。在示例实施

例中,终端用户902的计算机经由互联网906并通过耦连于终端用户902的计算机

的LAN 904耦连于防护服务器910。在另一示例实施例中,防护服务器910对于终

端用户902的计算机可为局部的,或者可位于耦连于终端用户902的计算机的

LAN内。

在图9中所阐释的系统900的另一示例实施例中,防护除了可被预设到从远程服务

器908接收的响应之外,也被预设到可为可执行的代码。仅仅通过示例的方式,防

护本身可为可执行的二进制代码,并且可被预设于现有的可执行程序中。

在另一个可替换示例实施例中,防护不是(或者除了)在可执行代码中预设覆盖功能,

而是可被预设成可修改可执行代码曾接近系统层级的功能的入口。例如,在Linux

操作系统中,特定的系统性能仅仅可由已被授予特定许可的用户或进程接近。即使

进程开始了已接近所有可获得的功能的执行(通常称为“根”或“超级用户”通路),随

着执行的进行,进程可程式化地放弃特定的许可。一旦进程已经放弃了许可,就不

可能要求恢复那个许可。因此,在任何包含于代码中的恶意代码可被执行之前,可

修改可执行代码到系统的入口的防护可被预设到该代码,而且要求恢复其,从系统

的角度,曾自愿放弃的许可将被阻止。

例如,进程必须具有特定的一组许可以便能接近表示输入/输出端口和系统内存的

内存地址。如果有的话,很少的合法进程需要这样的入口。因此,可为迫使进程放

弃该入口的可执行代码预设防护,由此抢先防止恶意代码操纵这些资源。

类似地,也可在进程可获得的系统资源方面限制进程。例如,除了别的以外,进程

也可被限于接近某最大尺寸的文件、某数量的内存或处理器工作量、某数量的打开

文件、某数量的磁盘用量以及某数量的子进程。一些攻击的标志,例如拒绝服务攻

击,为占用系统资源的多个子进程的大量生成,其阻止系统响应合法的请求。可为

可执行代码预设防护,以限制进程可创建或接近的子进程(或其他系统资源)数量,

从而减小这种攻击将发生的可能性。

现在参考图2,其为描述,利用图1,7和9的运行时攻击预防的系统,在网络通

讯中插入防护的示例方法200的流程图,本发明的附加特征将被描述。图2将与图

1相关连地论述。该方法突出用于运行时攻击预防的系统的关键功能特征。

本领域普通技术人员会理解到,用于运行时攻击预防的系统100执行的进程功能或

步骤可包括程控的通用计算机、形成电子器件的电子电路、在微控制器或微处理器

上执行的固件代码;以特定应用程序或可编程逻辑形式执行的状态机;或者不脱离

本发明的精神和范围的多个其他形式。换句话说,本发明可被设置成可包括机器可

读介质的计算机程序,该机器可读介质已在其上存储有用于使计算机(或其他电子

器件)编程以便执行根据本发明的进程的指令。

机器可读介质可包括但不限于,软盘、光盘、CD-ROM,以及磁光盘、ROMs、

RAMs、EPROMs、EEPROMs、磁或光卡、闪存、或适于储存电子指令的其他类型

的介质/机器可读介质。

所有下面所参考的逻辑流程图中所描述的方法中的某些步骤必须自然地处于其他步

骤之前以便本发明如所描述的起作用。然而,如果这些的顺序或次序不会改变本发

明的功能的话,本发明并不限于所描述的步骤的顺序。也就是说,某些步骤可在其

他步骤之前、之后或与其他步骤并行执行而不脱离本发明的范围和精神。

此外,某些步骤可以不同的次序重新设置或被完全删除,而不脱离本发明的范围和

精神。换句话说,在流程图中所述的步骤仅代表实现防护网络的期望结构的一种方

式。其他方式或可包括附加的不同的步骤或步骤的消除、或者消除步骤和添加对于

本领域普通技术人员显而易见的不同步骤的结合。

进一步,基于流程图和申请文本中的相关说明,从事编程的普通技术人员将能轻易

地编写这样的计算机程序或,例如,识别适当的硬件电路来实施所公开的发明。因

此,特定的程序代码指令组或详细的硬件器件的公开对于适当的理解如何制造和使

用本发明是并不被认为是必需的。在结合阐述其他进程流程的剩余附图的随后说明

中,要求保护的实施进程的计算机的独创的功能将被更详细的阐明。

再一次参考图2,步骤205为创建防护的方法200的第一步。创建防护的过程将透

过图3进一步详细论述。判断步骤210确定防护是否要被插入在网络处。如果防护

要被插入在网络处,那么方法200沿着“是”分支行进到步骤215,其中,防护被插

入在网络处。将防护插入在网络处的过程将透过图4进一步详细的论述。方法200

于是前进到盘道步骤220。另一方面,如果在判断步骤210确定防护将不被插入在

网络处,那么方法200沿着“否”分支行进到判断步骤220。

判断步骤220确定防护是否要被插入在远程服务器108处。如果防护要被插入在远

程服务器处108,那么沿着“是”分支行进到步骤225,其中,防护被插入在远程服

务器108处。在远程服务器108处插入防护的过程将透过图8进一步详细讨论。方

法200于是前进到判断步骤230。另一方面,如果判断步骤220确定防护将不被插

入在远程服务器108处,那么沿着“否”分支行进到判断步骤230。

判断步骤230确定防护是否被插入在终端用户102的计算机处。如果防护被插入在

终端用户102的计算机处,那么方法200沿着“是”分支行进到步骤235,其中,防

护被插入在终端用户102处。在终端用户102处插入防护的过程将透过图10进一

步详细讨论。方法200于是前进到判断步骤240。另一方面,如果判断步骤230确

定防护将不被插入在终端用户102处,那么方法200沿着“否”分支行进到判断步骤

240。

判断步骤240确定系统是否要继续装上防护。如果确定系统将继续装上防护,那么

方法200沿着“是”分支行进到步骤205。另一方面,如果确定系统不继续装上防护,

那么方法200沿着“否”分支行进,以结束方法200。

现在参考图3,其描述了利用图1的用于运行时攻击防护的系统创建防护的方法

205。图3将与图1和2相关连地讨论。步骤300为方法205中的第一步,在其中

识别易受攻击的方法。如上所述,在本发明的示例实施例中,易受攻击的方法可由

安全分析员和找出并识别软件中的漏洞的黑客来识别出。漏洞也可通过阅读程序中

的漏洞的发表报告、逆向开发已经发生的攻击、使程序“模糊不清”或对程序“模糊

测试”、以及研究程序制造商已发布的程序的补丁、修复或其他更新来识别,使程

序“模糊不请”或对程序“模糊测试”通常涉及将大量随机或其他的无效数据传递给程

序并确定所述数据是否导致失效,而研究程序制造商已发布的程序的补丁、修复或

其他更新是因为,程序制造商已发布的程序的补丁、修复或其他更新通常矫正程序

的较早版本中的漏洞并因此可用于识别这些漏洞。

方法205随后前进到步骤305,步骤305编写代码以便覆盖易受攻击的方法且必要

时以便修改内容的执行。方法205随后前进到步骤310,在该步骤中产生代码以检

查用于已知攻击的被覆盖的易受攻击的方法的属性。方法205随后前进到步骤315,

在该步骤中产生代码来检查状态信息以便识别攻击。举例来说,代码可被产生以便

计算NOP功能被调用的次数,且如果NOP的数量超过某个预定的阈值,识别出潜

在的攻击。方法205随后前进到步骤320,在该步骤中产生代码以警告终端用户

102、网络供应商和/或诸如第三方的其他相关当事人可利用与警报有关的信息来矫

正现有的攻击并利用改进的防护来抵御将来的攻击。方法205随后前进到图2的步

骤210。

现在参考图4,其描述了利用图1的用于运行时攻击预防的系统在网络处插入防护

的方法215。图4将与图1和2相关连地讨论。步骤400为方法215中的第一步,

在其中,终端用户102请求给予内容。如上所述,在示例实施例中,请求来源于安

装在终端用户102的计算机上的网络浏览器,然而在另一实施例中,请求可为向远

程服务器108请求最终将在终端用户102的计算机上执行的内容的任何请求。方法

215随后前进到步骤405,其中网络接收内容。随后方法215前进到步骤410,在

该步骤中为响应预设防护。在该示例实施例中,防护引擎112被耦连于安装在网络

上的代理服务器104,其拦截响应并如上述透过图1所描述的,在其上添加或预设

防护。预设的防护将透过图5进一步详细讨论。

方法215随后前进到步骤415,其中受保护的内容被传递给终端用户102。在示例

实施例中,防护引擎112将受保护的内容发送回代理服务器104(或发送回网络上

拦截响应的位置),代理服务器104将响应发送回终端用户102。随后方法215前进

到步骤420,其中受保护的内容在终端用户102的计算机上被执行。在示例实施例

中,受保护的内容在终端用户102的网络浏览器内被执行。然而,在另一示例实施

例中,受保护的内容可在浏览器之外被执行。

方法215随后前进到步骤425,其中防护引擎112更新它的防护。在示例实施例中,

防护引擎112从防护服务器114接收更新过的防护。随后方法215前进到判断步骤

430,在步骤中确定是否继续装上防护。如果系统被确定应该继续装上防护,那么

沿着“是”分支返回到步骤400。另一方面,如果系统被确定不继续装上防护,那么

沿着“否”分支行进,方法215回到图2的步骤220。

现在参考图5,示出了利用图1,7和9的用于运行时攻击预防的系统预设防护的

方法410/810/1015。图5将与图1,4,8和10相关连地讨论。判断步骤500为方

法410/810/1015中的第一步,方法410/810/1015在该步骤确定所接收的内容是否

来自于可信源。仅仅举例来说,如果内容的源地址出现在已知可靠的发送者(通常

称为白名单)的数据库中,内容可被认定成来自于可信源。如果确定内容接收自可

信源,那么在一个示例实施例中,沿着“是”分支行进,方法410/810/1015回到步骤

415/815/1020。在另一例实施例中,系统可被构造成忽视与内容的来源有关的信息,

并可不顾来源而预设防护。

再一次回到判断步骤500,如果内容被确定不是来自于可信源,那么沿着“否”分支

行进到步骤505,以确定所接收的内容的类型。仅仅举例来说,步骤505确定所接

收到的内容是否包含任何潜在地可被应用在攻击中的可执行代码,诸如JavaScript、

Flash或Sliverlight。随后方法410/810/1015前进到步骤510,以识别相应于在步骤

505中识别出的内容类型的防护。在某种情形中,特定的防护仅可应用于可执行内

容的特定形式。因此,其可改善性能以仅仅识别可应用于即将到来的内容的防护。

随后方法410/810/1015前进到判断步骤515,其中,防护引擎112确定其是否了解

终端用户的环境。在示例实施例中,防护引擎112从来自于对内容的请求取得与终

端用户有关的信息。另一方面,防护引擎112可储存与在网络上的终端用户102的

构造有关的信息,其包括终端用户的环境信息。如果确定防护引擎112不了解终端

用户102的环境,那么沿着“否”分支行进到步骤525,以为内容预设在步骤510中

识别出的防护。方法410/810/1015随后回到步骤415/815/1020。

再次回到判断步骤515,如果确定防护引擎112了解终端用户102的环境,那么方

法410/810/1015沿着“是”分支行进到步骤520,在该步骤识别与终端用户102的环

境相应的防护。例如,如果终端用户102的环境包括作为网络浏览器的

Google Chrome,那么不必预设针对抵御仅仅存在于微软网络浏览器第6版的溢出

漏洞的防护。在示例实施例中,相应于终端用户102的环境的防护从相应于内容类

型的防护组中选择。在另一实施例中,相应于终端用户102的环境的防护可单独从

相应于内容类型的防护中选择。随后方法410/810/1015前进到步骤525,在该步骤

为内容预设所有识别出的防护。随后方法410/810/1015回到步骤415/815/1020。

现在转到图6,示出了利用图1,7和9的用于运行时攻击预防的系统的执行受保

护的内容的方法420/820/1020。图6将与图1,4,8和10相关连地描述。步骤600

为方法420/820/1020的第一步,在其中,提供给内容的系统入口被修改。随后方

法420/820/1020前进到步骤605,以执行功能封装器。在示例实施例中,当可执行

代码调用受保护的功能(即,已经被创建了防护的功能)时,功能封装器便会被执行。

随后功能420/820/1020前进到步骤610,而在该步骤就攻击方面分析传递给受保护

的功能的参数。随后方法420/820/1020前进到步骤615,及在该步骤分析状态信息。

仅仅举例来说,状态信息可与在给定的浏览会话或时间段内功能曾被调用的次数、

对受保护的功能和其他受保护的功能的调用之间的时间关系、或者可指示攻击的其

他基于状态的信息相关。

随后方法420/820/1020前进到步骤620,在该步骤确定状态信息或参数是否指示存

在潜在威胁。如果确定潜在的威胁并不存在,那么方法420/820/1020沿着“否”分支

行进到步骤625,在该步骤中,被覆盖的功能被允许正常执行。随后方法

420/820/1020前进到判断步骤630,在该步骤中确定内容是否包含更多要运行的代

码。如果确定功能包含更多要运行的代码,那方法420/820/1020么沿着“是”分支行

进,且前进到步骤605。另一方面,如果内容不包含更多的要运行的代码,方法

420/820/1020沿着“否”分支行进,且回到步骤425/825/1025。

再一次参考判断步骤620,如果确定检测到威胁,那么方法420/820/1020沿着“是”

分支行进到步骤635,其中内容的执行被终止或修改。在本发明的示例实施例中,

内容的执行在受保护的功能不被执行的情况下终止。在另一示例实施例中,内容的

执行可被修改以便阻挠攻击而不终止该内容的执行。方法420/820/1020随后前进

到步骤640,在其中播送警报。多个警报可被播送,且警报可被播送向多个接收者。

在示例实施例中,警报被播送到网络管理员,其可确定如何响应警报。在另一示例

实施例中,警报被播送到终端用户102。在另一个示例实施例中,警报被播送到向

第三方。方法420/820/1020随后回到步骤。

现在转到图8,其示出了描述利用图7的用于运行时攻击预防的系统700在服务器

处插入防护的方法225的流程图。图8将与图7相关连地讨论。步骤800为方法

225的第一步,在其中,远程服务器708接收对内容的请求。随后方法225前进到

步骤805,且在该步骤产生对请求的响应。随后方法225前进到步骤810,且在该

步骤为响应预设防护。上文已透过图5描述了为响应预设防护的过程。

方法225随后前进到步骤815,其中,受保护的响应经由互联网传递给终端用户

702。随后方法225前进到步骤820,在该步骤中,受保护的内容被执行。执行受

保护的内容的过程将透过图6进一步详细的描述。随后方法225前进到步骤825,

在其中防护被更新。随后方法225前进到判断步骤830,在该步骤确定系统700应

否继续装上防护。如果确定系统700应继续装上防护,那么方法225沿着“是”分支

行进到步骤800。另一方面,如果确定系统应停止装上防护,那么方法225沿着

“否”分支行进,且回到步骤230。

现在转到图10,示出了描述利用图9的用于运行时攻击预防的系统900在终端用

户902的计算机处插入防护的方法235的流程图。图10将与图9相关连地讨论。

步骤1000为方法235中的第一步,其中,防护被下载到终端用户902的计算机上。

随后方法235前进到步骤1005,其中,终端用户902的计算机请求来自于远程服

务器908的内容。随后方法235前进到步骤1010,其中终端用户902的计算机接

收内容。随后方法235前进到步骤1015,其中终端用户902的计算机为内容预设

防护。预设防护的方法透过图5以更详细的方式描述。随后方法235前进到步骤

1020,并在该步骤执行受保护的内容。本文透过图6以补充的细节的方式描述了用

于执行受保护的内容的过程。方法235随后前进到步骤1025,其中更新被保护。

随后方法235前进到判断步骤1030,并在该步骤中确定是否请求额外的内容。如

果确定请求额外的内容,那么方法235沿着“是”分支行进到步骤1010。另一方面,

如果在步骤630确定没有请求额外的内容,那么方法235沿着“否”分支行进,且回

到步骤240。

用于运行时攻击预防的系统和方法的另一些实施例对于本领域普通技术人员将变得

显而易见,本发明与其相关且并不脱离该公开的精神和范围。因此,虽然以示例的

方式利用某种程度的细节已描述了本发明,应理解,本文仅仅以示例的方式作出本

发明的公开,并可采取构造的细节中和部件或步骤的组合及设置中的各种变化,而

不脱离本发明的精神和范围。因此,本发明的范围由附属的权利要求所限制而不是

前述说明。

本文标签: 防护内容功能