使html浏览器及扩展对已知的易受攻击性免疫的制作方法

文档序号:6694458阅读:198来源:国知局
专利名称:使html浏览器及扩展对已知的易受攻击性免疫的制作方法
使HTML浏览器及扩展对已知的易受攻击性免疫翌且 目尔众多近来发现的浏览器软件易受攻击性涉及HTML代码。不能总是迅速安装 对这样的易受攻击性的补丁,这增加了受攻击的风险。例如,在众多情况中,用户 可能要花费数周甚至数月来安装最新补丁。在此期间,用户的软件易受攻击。此处 公开的各种示例性技术提供用以减少或消除对软件服务或通过其进行攻击的风险 的方式。概述此处描述的各个示例性方法、设备、系统等用于防止对诸如浏览器软件及相 关扩展之类的软件服务中存在的已知易受攻击性的利用。例如,示例性软件架构可 通过将脚本插入HTML网页来变换HTML网页,其中所插入的脚本当执行时,防 止HTML网页利用与用户的web浏览器软件相关联的已知易受攻击性。各种示例性机制更一般地可用于防止对取得脚本和其它数据用于输入操作的 软件服务中存在的已知易受攻击性的利用。这样的软件服务包括例如取得SQL脚 本的那些服务。也公开了各种其它示例性方法、设备、系统等。附图简述参考以下附图描述了非限定性且非详尽的示例,其中除非另外指明,相同的 参考标号一般指的是各个视图中的相同部分。

图1是借此资源可经由一个或多个网络访问的系统和过程的示意图。图2是包括用于使代码/数据免疫的一个或多个免疫组件的示例性过程的示意图。图3是用于变换信息以防止或减少受到对软件易受攻击性的攻击的风险的示 例性方法的示意图。图4是包括用于确定一资源是否可信的一个或多个信任组件的示例性过程的 示意图。图5是用于决定一资源是否可信并响应于此使代码/数据对该资源免疫的示例 性方法的示意图。图6是用于决定所接收的信息是否利用或试图利用软件易受攻击性的示例性 方法的示意图。图7是用于通过将专用代码与可疑代码/数据相关联来防止可疑代码/数据利用软件易受攻击性来变换代码/数据的示例性过程的示意图。图8是用于使代码免疫的示例性场景的示意图。图9是可用于实现此处所述的各种示例性技术的示例性计算环境的示意图。详细描述此处所述的各个示例性方法、设备、系统等用于防止对诸如浏览器软件及相 关扩展之类的软件服务中存在的易受攻击性的利用。例如,示例性的软件架构可通 过将脚本插入HTML网页来变换HTML网页,其中所插入的脚本当执行时,防止 HTML网页利用与用户的web浏览器软件相关联的已知易受攻击性。在此示例中, 所插入的脚本使HTML网页对已知的web浏览器软件易受攻击性"免疫",即己 免疫的HTML网页不能"感染"web浏览器软件。这样的示例性架构可对HTML 网页检查免疫的需求或它可仅使HTML网页免疫而不检查利用机制的标记。免疫 或变换的过程一般涉及插入或以其它方式使代码与接收的到信息(例如,代码、数 据、代码和数据)相关联或更改(例如,改变、删除等)所接收的信息以防止接收 到的信息利用已知易受攻击性。对于所插入的免疫脚本,这样的代码一般包含防止利用与软件服务(例如, web浏览器软件等)相关联的一个或多个已知的易受攻击性的逻辑。再一次,免疫 代码被插入将由软件服务接收的代码或数据或以其它方式使之相关联,其中该软件 服务依赖于这些代码或数据。 一旦相关联,代码被认为是"已免疫的"代码。示例 性的逻辑可在已免疫代码的执行时、由已免疫代码提出的对更多信息(例如,其它 代码或数据)的请求的发出时、或一个或多个其它事件时被触发。为触发起见,可 使用一个或多个挂钩(hook)来使代码/数据免疫。各种示例性机制更一般地可用于防止对取得脚本和其它数据用于输入操作的 软件服务中存在的已知易受攻击性的利用。这样的软件服务包括例如SQL脚本。对于实现,可与网络的内部节点(例如,在企业防火墙上)以及端节点(例 如,带有软件服务的客户机)等相关联地实现各种示例性机制。以下描述讨论了与各个示例性免疫机制相关联的系统和某些可能的操作。当 然,实现可在其它系统中或以其它方式出现。该描述随后讨论各种示例性方法或过程,其后是HTML代码免疫的示例性场景。如上所述,可使用各种示例性机制来减少或消除依赖于脚本或其它数据作为操作输入的软件服务的利用风险。图1示出了系统100以及可在这样的系统上发生的过程140。系统100包括一 个或多个服务器104、 108、 112, 一个或多个客户机114、 118以及用于在各个服 务器与客户机之间通信的一个或多个网络120、 124。网络120可以是因特网,而 网络124可以是其中服务器112用作本地服务器的内联网。在系统100中,计算机可用作防火墙或路由器设备。防火墙一般是一组相关 程序,位于保护私有网络的资源不被来自其它网络的用户使用的网络网关服务器 上。具有可允许其员工访问更宽的因特网(例如,网络120)的内联网(例如,网 络124)的企业可安装防火墙(例如,在服务器112上)以防止外来者访问其自己 私有的数据资源并用于控制其自己的用户可访问的外部资源。防火墙通常与能够检查网络分组来确定是否将分组转发给预期目的地的路由 器程序紧密合作。防火墙也可包括代表用户(例如,客户机114)来作出网络请求 的代理服务器或与可之合作。存在各种防火墙屏蔽技术。例如,防火墙可屏蔽请求以确保它们来自可接受 或可信(例如,之前已标识)的域名和因特网协议地址。防火墙也可屏蔽域名或地 址(例如,URL)以确定它们是否与可接受或可信资源相关联。图1的过程140涉及客户机使用诸如浏览器软件的客户机软件154来浏览各 种资源。在此示例中,客户机软件154包括HTML主机156和脚本主机158。客 户机软件154允许用户输入或选择与统一资源定位符(URL)相关联的资源。客户 机软件154使用URL来定位诸如存储在服务器104、 108、 112之一上的信息的资 源。在其它示例中,服务器可包括带有这样的HTML主机、脚本主机或两者的服 务器软件,即当客户机被指示时,这样的过程可仅包括服务器、客户机和服务器的 混合等。根据过程144,包括服务器软件144的服务器从客户机软件154接收对资源的 请求。服务器软件144又执行例如提供代码以响应于请求的过程。服务器软件144 可提供除代码以外的数据作为对提供代码的替换或附加。客户机接收代码,且客户 机软件154使用代码例如来生成供在用户屏幕上显示的帧。当服务器软件144提供 除代码以外的数据时,则客户机软件154可使用该数据。考虑其中代码包括用诸如超文本标记语言(HTML)的标记语言编写的代码且 其中客户机软件154是web浏览器软件的示例。浏览器软件154的HTML主机156 包括HTML解析器,使得当页面(例如,文档)由浏览器访问时,HTML解析器 读取代码(例如,通常是文件形式的)并从代码中出现的HTML标记创建元素。 例如,INTERNET EXPLORER⑧浏览器软件(华盛顿州雷德蒙市微软公司)包括 执行HTML解析并呈现的组件"Mshtml.dll",它通过动态HTML对象模型来展 示HTML文档。该组件可主存一个或多个脚本引擎、虚拟机、ACTIVEX⑧控件、 插件和在所加载的HTML文档(例如代码/数据)中可引用的其它对象。根据过程140,代码可包括脚本。例如,可使用JScript脚本语言或另一脚本 语言,JScript是基于对象的解释脚本语言。这样的脚本通常依赖于脚本解释器或"主 机"(例如,脚本主机158) 。 JScript脚本的主机的示例包括活动服务器页、Internet Explorer⑧和WINDOWS⑧脚本主机。再一次,尽管提及了代码,但可替换或与代 码结合地提供数据。图2示出了包括过程140的各个特征的示例性过程240;然而,包括了示例性 免疫能力264、 268。在此示例中,免疫组件264、 268在代码、数据或代码和数据 由客户机软件154接收之前对其作用。在其它示例中,免疫组件可以是客户机软件 的一部分。对这样的示例性免疫组件在过程中的位置的选择可取决于各种因素。例 如,带有内联网(例如,网络124)的组织可为维护、安全、效率等起见选择将这 样的免疫组件置于防火墙或网关服务器(例如,服务器112)上。在图2的示例和各个其它示例中,术语"代码+/数据+"标识已被转换(即, 已免疫)的代码、数据或代码和数据,且全文中,术语"代码/数据"指的是代码、 数据或代码和数据。已变换或已免疫的代码/数据可包括已被检查来确定其利用一 个或多个软件易受攻击性(例如,浏览器软件易受攻击性)的能力的风险的代码/ 数据、己注入用于执行这样的检查(例如,在运行时或在运行时之前)的附加代码 的代码/数据、已注入目的在于防止恶意代码在运行时执行的附加代码的代码/数 据。再一次, 一般而言,免疫或变换的过程一般涉及插入或以其它方式使代码与所 接收到的信息(例如,代码、数据、代码和数据)相关联或更改(例如,改变、删 除等)所接收的信息,且得到的代码/数据被称为已免疫或已变换代码/数据(例如, 代码+/数据+)。图3示出了变换或"免疫"信息以减少或消除利用软件服务的已知易受攻击 性的风险的示例性方法。接收块304接收信息以响应于请求,其中所接收到的信息是供软件服务(例如,浏览器软件服务)消费的。例如,所接收到的信息可以是由 web浏览器软件用来在用户的计算机监视器上呈现网页的代码、数据或代码和数 据。接收块304例如从服务器接收信息以响应于用户或其它实体的请求。变换块308变换所接收到的信息以产生已变换信息,其中变换对所接收的信 息进行变换以减少或消除所接收的信息利用软件服务的已知易受攻击性的能力。传 输或发送块312将已变换信息发送给例如请求该信息的实体。在其它示例中,已变 换或"已免疫"信息可被定向给除作出请求以外的实体(例如,电子邮件免疫服务 可用于将已免疫代码发送给代表请求代码的另一实体的其它实体)。示例性方法可包括接收包括脚本的HTML代码,并将挂钩插入到HTML代码 内,其中该挂钩响应于要求防止脚本利用浏览器软件易受攻击性的动作的运行时事 件。在这样的示例中,将挂钩插入HTML代码内的步骤用于使代码免疫。如果这 样的示例性方法在不是最终用户的计算机(例如,服务器)上进行(例如用于所接 收代码的消费),则该示例性方法还可将已免疫代码发送至预期的接收方(例如, 客户机)。在各个实施例中,已免疫数据包括所插入或以其它方式与逻辑相关联的代码, 用于防止利用诸如浏览器软件服务之类的软件服务的一个或多个已知易受攻击性。图4示出了包括过程140的各个特征的示例性过程440;然而,包括了信任能 力462、 464和示例性免疫能力268。信任能力432、 434可根据向例如与URL等 相关联的资源分配的信任级别来动作。信任组件432可接收URL或其它资源标识 符,并例如使用关联表或其它信息来确定资源的信任级别。在示例性过程440中,客户机软件154使初始URL被发送。信任组件462接 收URL并确定它是可信URL。作为可信URL,不需要来自该资源的代码/数据的 免疫,且代码/数据在由服务器软件144发送时传递给客户机软件154。然而,在由 客户机软件154执行代码或使用数据时,可发送后续请求例如用以请求来自另一资 源的代码/数据(即,信息)。可以使用相同的信任组件462或另一信任组件464。在示例性过程440中,信任组件464确定URL不值得信任或不可信。响应于 该判断,免疫组件268可接收从源发送的任何代码/数据。在此示例中,所发送(例 如,经由服务器软件148的执行)的代码/数据在由客户机软件154接收之前由免 疫组件268接收。免疫组件268变换(即,免疫)代码/数据以创建已免疫代码/数 据(即,代码+/数据+)。客户机软件154然后接收已免疫代码/数据。再一次,已 免疫代码/数据可包括数据和用于防止数据利用与软件服务相关联的易受攻击性的被插入或以其它方式相关联的代码。代码或数据的更改也是可能的变换机制。如上所述,对这样的示例性免疫组件在过程中的位置的选择可取决于各种因 素。例如,带有内联网(例如,网络124)的组织可为维护、安全、效率等起见选 择将这样的免疫组件置于防火墙或网关服务器(例如,112)上。相同因素可应用 于信任组件。此外,这两个组件(即,免疫和信任)可以是在客户机、服务器等上 可适当实现的软件分组的一部分。图5示出了用于发送已免疫代码/数据的示例性方法500。再一次,如果例如 己免疫组件驻留在旨在使用该代码/数据的客户机上,则发送可简单地向适当的客 户机软件提供该代码/数据。根据示例性方法500,接收块504接收URL作为对代码/数据的请求的一部分。 判定框508例如使用查找表512来决定该URL是否是可信URL。如果判定框508 决定该URL是可信URL,则发送块516随后用于将来自与该URL相关联的资源 的代码/数据发送给请求者或该代码/数据所定向的其它实体。如果判定块508决定URL不对应于可信资源,则免疫块520用于免疫代码/ 数据,并产生已免疫的代码/数据,且发送块524用于发送已免疫代码/数据。图6示出了用于发送已免疫信息(代码/数据)的示例性方法600。根据示例 性方法600,接收块604从资源接收信息。判定块608例如可任选地部分依赖于查 找表612来决定所接收的信息是否试图利用一个或多个软件易受攻击性。如果判定 块608决定信息不包括可能利用已知易受攻击性的任何特征,则发送块616用于发 送信息。这样的信息可被认为是已免疫信息,因为已对其检查其利用已知易受攻击 性的能力。在这样的情况中,可变换该信息以包括指示符(代码或数据片段),该 指示符指示对各个易受攻击性的攻击不太可能发生或对每个免疫过程均己检查了 该信息。如上所述,恶意代码可在设置或运行时期间对软件易受攻击性发起攻击。例 如,恶意代码可使客户机软件发送URL来用于请求附加的代码。这样的后续调用 可被认为是一类的易受攻击性攻击,因此判定块608可决定存在利用的风险。因此, 示例性免疫过程可插入代码或另一指示符以保护或指示代码可能试图要求附加的 代码/数据。这样的附加代码/数据可以具有尚未确定的信任度或未确定的攻击一个 或多个软件易受攻击性的风险。如果判定块608决定所接收的信息包括可能利用已知易受攻击性的一个或多 个特征,则免疫块620用于免疫所接收的信息并产生己免疫的信息,且发送块624用于发送该已免疫信息。如上所述,示例性方法可先行进行对所接收信息的检査(例如,先行进行判 定块60S),并变换所接收信息以减少或消除所接收信息利用一个或多个已知的软件易受攻击性的风险。例如,再次参考示例性方法600,在这样的情况中,块604、 620和624可用于发送已免疫信息。图7示出了其中解决一个或多个易受攻击性的代码被插入、追加或以其它方 式与代码/数据相关联从而消除或减少利用这样的易受攻击性的风险的示例性过程 700。在此示例中,已知的易受攻击性存在,且存在用于解决这些中至少某些已知 的易受攻击性的代码。从而,示例性过程700可依赖于这些例如其被本地或远程、 分开或一起存储的知识。为了说明这样的示例,示例性过程700包括已知易受攻击 性的信息表716以及免疫代码712的各个片段,其中各片段对应于一个或多个已知 的易受攻击性(例如,每个信息表716—个)。根据示例性过程700,代码/数据704受到易受攻击性检查708,该检查可任选 地依赖于已知易受攻击性(例如,V!、 V2、 V3、 V4)的表716。在检查708的基础 上,各个代码片段712可用于解决一个特定的易受攻击性或一组易受攻击性。例如, 代码片段712包括用于V,的代码721 、用于V2的代码723以及用于V3的代码725。易受攻击性V4可能没有相应的代码。例如,V4可对应于不能使用代码解决的易受攻击性,或它可能对应于如桌"固定"则会为其预期目酌可操作地呈规所接收的代 码/数据助易受攻击性。代码片段712和表716可与检查708相关联地本地使用,或可为维护、安全 等起见远程驻留。在示例性过程700中,代码/数据704包括易受攻击性V2,因此, 关联块718将用于V2的代码与代码/数据704相关联从而形成已免疫代码/数据720 。每个关联块718的关联可任选地例如用于将一个或多个挂钩插入所接收的代 码,或将挂钩与所接收的数据相关联。这样的挂钩可以是用于解决对软件易受攻击 性的实际或潜在的攻击的本地或远程调用。示例性挂钩可调用函数或其它编码的操 作,其中用于该函数或编码操作的代码与代码/数据704相关联。例如,该函数或其它编码的操作可被插入到代码/数据704内。对与浏览器软件相关联的易受攻击性,示例性免疫组件(即,变换组件)可 确定浏览器的类型,然后例如使用表(例如,表716)来决定与该类型的浏览器相 关联的特定易受攻击性。示例性免疫组件可任选地包括可在可疑代码或其片段中测试与浏览器易受攻击性相关联的特定代码的浏览器仿真软件。对于依赖于标记语言的网页,这样的页面可包括静态HTML页面或动态HTML页面。 一般而言,用户通过键入URL、点击指向URL的链接来请求静态页 面。如上所述,URL请求被发送给服务器或其它计算机,后者通过返回该静态 HTML页面(例如,HTML编码文档)来响应。动态页面一般响应于用户的请求而创建。例如,浏览器软件可用于通过向页 面呈现用户填写或选择的文本框、菜单、复选框等来收集信息。来自这种形式的数 据然后例如被发送给服务器,后者可将数据传递给要处理的脚本或应用程序、向数 据库查询或张贴数据等。然后,服务器在HTML页面中将结果返回给用户。尽管此处所述的各种脚本一般涉及web浏览器软件,但存在其它脚本,例如 与SQL和诸如VISUAL BASIC⑧语言等面向对象程序设计语言等相关联的脚本。 此处所述的各种示例性技术可应用于其中使用这样的脚本的可疑代码。图2-7的各个示例阐明了这样的变换或"免疫"技术的一般使用。认识到易受 攻击性继续出现,以下描述了免疫技术消除或减少利用各种软件易受攻击性的风险 的更具体示例。存在可受益于此处所述的示例性免疫过程的各种场景。场景可包括含有带有 可 能 恶 意 的 SRC 属 性 值 (例 如 , SRC=file:〃BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)的〈FRAME〉标签的可 疑代码。长SRC属性值已知与己知软件易受攻击性(例如,缓冲区移除的风险) 相关联。示例性免疫组件(例如,判定块608或易受攻击性检查块708)可将"长" 属性值(例如,文件名)识别为与已知软件易受攻击性相关联,并对代码/数据检 查它们在执行时是否试图利用这样的易受攻击性。在此场景中,免疫组件可删除值、 更改值、防止代码执行、警告用户等,以努力防止对易受攻击性的利用。例如,考虑服务器112作为包括在HTML通信中扫描〈FRAME〉标签的示例 性免疫组件(例如,264、 268)的防火墙。对免疫组件找到的每一标签,进行对长 SRC属性的检查。反过来,免疫组件要求纠正动作,该动作可阻塞恶意形成的通 信、更改代码等。示例性防火墙服务器(例如,服务器112)或路由设备可包括允许防火墙服务 器经由网络(例如,网络120)从资源(例如,服务器104、 108)接收代码/数据 (例如,信息)并将代码/数据发送至客户机计算机(例如,客户机计算机114)的 软件(例如,诸如软件144、 148),以及用于免疫代码/数据以防止对客户机计算机上的浏览器软件(例如,软件154)的易受攻击性的利用的免疫组件(例如,诸如组件264、 268的组件)。在这样的示例中,防火墙服务器软件还可允许防火墙 服务器从客户机计算机接收URL,其中该URL对应于可经由网络访问的资源。此 外,这样的示例性防火墙可包括用于确定URL是否与可信资源相关联且至少部分 基于该判断决定是否从该资源接收代码/数据或使用免疫组件来免疫从该资源接收 的代码/数据的信任组件(例如,诸如组件462、 464之一)。图8示出了涉及诸如可疑代码830的包含脚本的可疑代码的示例性场景800。 与前述可疑代码/数据(即,长SRC属性值)相对,可疑代码830的易受攻击性利 用风险与脚本相关联。在此场景中,恶意或有问题的HTML标签不位于页面的 HTML代码中,而由HTML页面内部的脚本在运行时例如在客户机上创建。 一般 而言,难以确定脚本在执行期间会做什么,这就增加了其成功利用这样的脚本相关 浏览器易受攻击性的机率。为变换或"免疫"可疑代码830,例如由免疫组件创建或选择示例性免疫代码 片段850 (对于选择,见例如过程700)。示例性代码850包括定义用于防止实现 易受攻击性(例如,与客户机侧软件相关联)的示例性免疫函数854 "abcd()"的 脚本。在此具体示例中,函数abcd()包括用于检测〈FRAME〉标签属性并确定该属 性值是否超过特定长度(例如,25个字符)的变量"TheElement (元素)"。函 数 abcd()可查看整个变量长度(即,string 1="<FRAME SRC=file:〃BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB>,'),或者它可考虑变量 的一部分。例如,函数abcd()可仅考虑SRC属性值。当然,示例性免疫代码片段 可考虑两者。在示例性场景800中,将示例性免疫挂钩874插入可疑代码830中以产生示 例性的已免疫代码870。挂钩874用于根据代码870中的"onpr叩ertychange (特性 变化)"来调用示例性免疫函数854。因此,示例性已免疫代码870包括调用示例 性免疫函数854的示例性挂钩874。函数854的代码片段850可被追加给易受攻击 代码830 (例如,图7的已免疫代码720)。如上关于图3所述,示例性方法300可包括接收包括脚本的HTML代码并将 挂钩插入HTML代码内,其中挂钩对应于要求防止脚本利用浏览器软件易受攻击 性的动作的运行时事件。因此,示例性场景800可被认为是包括接收可疑代码830 并将示例性挂钩874插入到可疑代码830内的这样的示例性方法的实现。示例性挂 钩874对应于一运行时事件,并通过调用可确定可疑代码830中的脚本是否用于利用浏览器软件易受攻击性的函数来起作用。存在其中挂钩可要求位于本地或远程的代码解决易受攻击性的其它示例性场 景。例如,示例性挂钩可使得客户机调用防火墙服务器,后者然后将示例性免疫代 码发送给客户机。各种示例性挂钩及相关联的免疫代码可适当地被认为是事件处理 代码。此处所述的各种示例性技术用于在对网页最小破坏的情况下针对已知的易受 攻击性来保护计算机,因为这样的技术可能是对已知的易受攻击性专用的,因此以 聚焦的方式操作。各种示例性技术可按照将计算负担例如转移到客户机计算机而非诸如防火墙服务器的服务器的方式来实现。在示例性场景800中,可避免对分析代码830中的 脚本的需求,且基于代码包括脚本的知识来使代码免疫。各种示例性技术可具有优 于沙箱的优点,因为这样的技术可在了解客户机状态的情况下进行,并考虑客户机 计算机上的用户输入。示例性场景800可涉及通过将附加的脚本注入到HTML代码中来在HTML编 码的网页通过防火墙或路由器设备时使其免疫。如上所述,脚本可在客户机计算机 上执行并针对已知的易受攻击性来保护它。在各个实施例中,插入的示例性免疫脚本引入了当新HTML (或其它指令) 在运行时中被创建时执行的事件处理代码。例如,当创建了新的HTML并将其插 入页面中时,免疫脚本可在允许它继续之前验证它并未攻击已知的易受攻击性。如 果脚本试图发起攻击,则执行可被阻塞;而如果它没有,则页面可继续运行而不被 破坏。各种示例性技术除例如事件捕捉或事件处理脚本以外,可任选地包括使用确 认检查。可在页面的脚本中每几行来包括确认检查。这样的确认检查可适当地单独 使用。例如,示例性免疫组件可决定,给定特定情况下这样的检查是足够的。各种示例性方法包括将挂钩插入可疑代码中并在运行时期间阻塞恶意动作。 例如,防火墙可用于将事件处理脚本插入到可疑代码中,客户机软件可在运行时期 间使用脚本来阻塞可疑代码的恶意动作。各种示例性方法可用于动态HTML (DHTML),这允许编写可改变修改给定 元素的HTML属性的脚本。这些属性可包括img或iframe元素上的SRC属性,或 div元素的style属性。示例性计算环境可在不同的计算机环境中实现各种示例性技术。图9中所示的计算机环境只 是计算机环境的一个示例,并不旨在对适于使用的计算机和网络体系结构的使用范 围或功能提出任何限制。也不应该把计算机环境解释为对示例计算机环境中示出的 任一组件或其组合有任何依赖性或要求。图9示出了可在其上实现各个示例性方法的合适的计算系统环境900的示例。 各种示例性设备或系统可包括示例性环境900的任何特征。计算系统环境900只是 合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。 也不应该把计算环境900解释为对示例性操作环境900中示出的任一组件或其组合 有任何依赖性或要求。各个示例性方法可用于众多其它通用或专用计算系统环境或配置。适于实现 或使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、 服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、 可编程消费电子品、网络PC、小型机、大型机、包含上述系统或设备中的任一个 的分布式计算机环境等。各个示例性方法、应用等可在诸如程序模块等由计算机执行的计算机可执行 指令的通用语境中描述。 一般而言,程序模块包括例程、程序、对象、组件、数据 结构等,它们执行特定任务或实现特定抽象数据类型。各个示例性方法也可以在分 布式计算环境中实现,其中任务由通过通信网络或其它通信(例如,红外等)链接 的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设 备在内的本地和远程计算机存储介质中。参考图9,用于实现各个示例性方法的一个示例性系统包括计算机910形式的 通用计算设备。计算机910的组件可以包括,但不限于,处理单元920、系统存储 器930和将包括系统存储器930在内的各种系统组件耦合至处理单元920的系统总 线921。系统总线921可以是若干类型的总线结构中的任一种,包括存储器总线或 存储器控制器、外围总线和使用各种总线体系结构中的任一种的局部总线。作为示 例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系 结构(MCA)总线、扩展的ISA (EISA)总线、视频电子技术标准协会(VESA) 局部总线和外围部件互连(PCI)总线(也被称为附夹板(Mezzanine)总线)。计算机910通常包括各种计算机可读介质。计算机可读介质可以是能够被计 算机910访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据 结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技 术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存 储或其它磁性存储设备;或能用于存储所需信息且可以由计算机910访问的任何其 它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计 算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语 "已调制数据信号"指的是这样一种信号,其一个或多个特征以在信号中编码信息 的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线 连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述 中任一个的组合也应包括在计算机可读介质的范围之内。系统存储器930包括易失性和/或非易失性存储器形式的计算机存储介质,诸 如只读存储器(ROM) 931和随机存取存储器(RAM) 932。基本输入/输出系统 933(BIOS)包含有助于诸如启动时在计算机910中元件之间传递信息的基本例程, 它通常被存储在ROM 931中。RAM 932通常包含处理单元920可以立即访问和/ 或目前正在操作的数据和/或程序模块。作为示例,而非限制,图9示出了操作系 统934、应用程序935、其它程序模块936和程序数据937。计算机910也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图9示出了从不可移动、非易失性磁介质中读取或向其写入的硬 盘驱动器941,从可移动、非易失性磁盘952中读取或向其写入的磁盘驱动器951, 以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘956中读取或向其 写入的光盘驱动器955。可以在示例性操作环境下使用的其它可移动/不可移动、易 失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能 盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器941通常由诸如接口 940 的不可移动存储器接口连接至系统总线921,磁盘驱动器951和光盘驱动器955通 常由可任选地作为可移动存储器接口的数据介质接口连接至系统总线921。出于解 释特定示例的目的,磁盘驱动器951和光盘驱动器使用数据介质接口 940。以上描述和在图9中示出的驱动器及其相关联的计算机存储介质为计算机 910提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在 图9中,硬盘驱动器941被示为存储操作系统944、应用程序945、其它程序模块946和程序数据947。注意,这些组件可以与操作系统934、应用程序935、其它程 序模块936和程序数据937相同或不同。操作系统944、应用程序945、其它程序 模块946和程序数据947在这里被标注了不同的标号是为了说明至少它们是不同的 副本。用户可以通过输入设备,诸如键盘962和定点设备969 (通常指鼠标、跟踪 球或触摸垫)向计算机910输入命令和信息。其它输入设备(未示出)可以包括麦 克风、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常 由耦合至系统总线921的用户输入接口 960连接至处理单元920,但也可以由其它 接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器 991或其它类型的显示设备也经由接口,诸如视频接口 9卯连接至系统总线921。 除监视器991以外,计算机也可以包括其它外围输出设备,诸如扬声器和打印机, 它们可以通过输出外围接口 995连接。计算机910可使用至一个或多个远程计算机,诸如远程计算机980的逻辑连 接在网络化环境下操作。远程计算机980可以是个人计算机、服务器、路由器、网 络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机910描述的 许多或所有特征。图9中所示逻辑连接包括局域网(LAN) 971和广域网(WAN) 973,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机910通过网络接口或适配器970连接至 LAN 971。当在WAN联网环境中使用时,计算机910通常包括调制解调器972或 用于在诸如因特网等WAN 973上建立通信的其它装置。调制解调器972可以是内 置或外置的,它可以通过用户输入接口 960或其它合适的机制连接至系统总线921。 在网络化环境中,相对于计算机910描述的程序模块或其部分可以存储在远程存储 器存储设备中。作为示例,而非限制,图9示出了远程应用程序985驻留在远程计 算机980 (例如,远程计算机980的存储器中)。可以理解,所示的网络连接是示 例性的,且可以使用在计算机之间建立通信链路的其它手段。尽管用结构特征和/或方法动作专用的语言描述了各个示例性方法、设备、 系统等,但可以理解,在所附权利要求书中定义的主题不必限于所述特定特征 或动作。相反,特定特征和动作被公开为实现所要求保护的主题的示例性形式。
权利要求
1.一种计算机可实现的方法(300),包括接收信息(304)以响应于一请求,其中所接收的信息是供软件服务消费的;变换所接收的信息(308)以产生已变换信息,其中所述变换对所接收的信息进行变换以减少或消除所接收信息利用所述软件服务的已知易受攻击性的能力;以及发送所述已变换信息(312)。
2. 如权利要求1所述的计算机可实现方法,其特征在于,服务器(112)接 收所述信息以响应于客户机(U4)的请求。
3. 如权利要求2所述的计算机可实现方法,其特征在于,所述信息驻留在不 同的服务器(104、 108)上。
4. 如权利要求1所述的计算机可实现方法,其特征在于,其中所述发送将所 述已变换信息从服务器(104、 108、 112)发送到客户机(114、 118)。
5. 如权利要求1所述的计算机可实现方法,其特征在于,所述变换所接收的 信息包括对所述信息检查其利用浏览器软件易受攻击性的能力(608、 708)。
6. 如权利要求1所述的计算机可实现方法,其特征在于,所接收的信息包括 HTML代码。
7. 如权利要求1所述的计算机可实现方法,其特征在于,所接收的信息包括 脚本。
8.如权利要求1所述的计算机可实现方法,其特征在于,所接收的信息包括 能够使用浏览器软件服务而被显示的网页。
9. 如权利要求1所述的计算机可实现方法,其特征在于,所述变换所接收的 信息包括将挂钩插入到所接收的信息内(718)。
10. 如权利要求9所述的计算机可实现方法,其特征在于,所述挂钩调用一 函数以响应于一运行时事件。
11. 如权利要求1所述的计算机可实现方法,其特征在于,还包括确定一URL 是否对应于可信资源。
12. 如权利要求11所述的计算机可实现方法,其特征在于,还包括基于所述 判断来决定是否变换所接收的信息。
13. —种或多种具有用于执行如权利要求1所述的方法的计算机可执行指令 的计算机可读介质。
14. 一种计算机可实现方法,包括接收包括脚本的HTML代码(704);以及将挂钩插入到所述HTML代码中(718),其中所述挂钩响应于要求防止所述 脚本利用浏览器软件易受攻击性的动作的运行时事件。
15. 如权利要求14所述的计算机可实现方法,其特征在于,所述挂钩包括调 用一函数(854)的事件处理挂钩(874)。
16. 如权利要求15所述的计算机可实现方法,其特征在于,所述函数(854) 确定所述HTML代码是否利用了浏览器软件易受攻击性。
17. —种或多种具有用于执行如权利要求14所述的方法的计算机可执行指令 的计算机可读介质。
18. —种防火墙服务器(112),包括服务器软件(144、 148),它允许所述防火墙服务器(112)经由网络从资源 (104、 108)接收信息,并将信息发送给客户机计算机(114);以及免疫组件(264、 268),用于使所述信息免疫来防止利用所述客户机计算机 (114)上的浏览器软件(154)的易受攻击性。
19. 如权利要求18所述的防火墙服务器(112),其特征在于,所述服务器 软件(144、 148)还允许所述防火墙服务器(112)从所述客户机计算机(114)接 收URL,其中所述URL对应于可经由所述网络访问的资源(104、 108)。
20. 如权利要求19所述的防火墙服务器,其特征在于,所述防火墙服务器(112) 还包括用于确定所述URL是否与可信资源相关联并至少基于所述判断来决定是否 从所述资源接收信息或对使用所述免疫组件(264、 268)来免疫从所述资源接收的 信息的信任组件(462、 464)。
全文摘要
示例性计算机可实现方法(300)变换或“免疫”信息以减少或消除利用软件服务的已知易受攻击性的风险,并且该方法包括接收信息(304)以响应于一请求,变换所接收的信息(308)以产生已变换信息,以及发送已变换信息(312)。示例性防火墙服务器(112)包括允许防火墙服务器(112)经由网络从资源(104、108)接收信息并将信息发送给客户机计算机(114)的服务器软件(144、148),以及用于使信息免疫以防止对客户机计算机(114)上的浏览器软件(154)的易受攻击性的利用的免疫组件(264、268)。也公开了各种其它示例性方法、设备、系统等。
文档编号G08B23/00GK101223562SQ200680025529
公开日2008年7月16日 申请日期2006年7月10日 优先权日2005年7月15日
发明者B·E-G·海法, J·H·王, O·都伯弗斯基 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1