用于检测浏览器中间人攻击的方法和系统的制作方法

文档序号:7723161阅读:130来源:国知局
专利名称:用于检测浏览器中间人攻击的方法和系统的制作方法
用于检测浏览器中间人攻击的方法和系统
背景技术
消费者和企业越来越多地经由因特网来进行敏感事务(transaction)。可以通过 认证协议来确保此类事务被授权。例如,网站可能要求消费者提交口令以建立经认证的会 话。可以允许在经认证的会话中进行的事务,并且可以拒绝所有其它事务。
尽管有认证要求,但攻击者仍然可以进行非法事务。例如,在浏览器中间人攻击 (man-in-the-browser attack)中,用户系统上的恶意软件可以等待用户创建用于该网站 的经认证的会话。该恶意软件随后可以在认证会话内提交事务请求。 网站服务器可以尝试检测非法事务。然而,对于服务器来说,在认证会话内进行的 非法事务与在认证会话内进行的合法事务看起来相同。

发明内容
本公开涉及用于检测浏览器中间人攻击的方法和系统。各种实施例描述指纹模 块、用户交互模块、以及web请求模块的动作。例如,所述指纹模块可以识别与网站相关的 事务指纹。事务指纹可以包括向网站的期望提交数目、向网站的期望提交顺序、或与确定向 网站的提交是否合法有关的任何其它信息。在某些实施例中,指纹模块可以从安全供应商 接收事务指纹。在其它实施例中,指纹模块可以基于用户过去输入网站的内容来生成事务 指纹。 当用户在web浏览器中导航到某些网站时,用户交互模块可以通过监控到web浏 览器的输入事件来跟踪用户对网站的输入。这些输入事件可以来自鼠标、键盘、或可以用于 web浏览器的任何其它输入设备。同时,web请求模块可以截取对网站的任何传出提交。web 请求模块随后可以将用户的输入与传出提交相比较。web请求模块可以根据事务指纹来确 定用户的输入是否生成了传出提交。 所述web请求模块可以通过将传出提交数目与如用户的输入所指示的计划的提 交数目和如事务指纹所指示的期望的提交数目相比较来确定用户的输入是否生成了传出 提交。如果web请求模块确定用户的输入生成了传出提交,则其可以将提交转送到网站。否 则,web请求模块可以执行安全动作,诸如提示用户确认计划进行提交。
依照在此所述的一般原理,可以将来自任何上述实施例的特征相互组合地使用。 本公开的实施例与现有技术相比可以提供各种优点。例如,在此所述的方法可以允许用户 的系统检测网站服务器不能检测的对网站的非法提交。在结合附图和权利要求来阅读以下 详细说明时,将更全面的理解这些及其它实施例、特征、和优点。


附图示出若干示例性实施例,并且作为本说明书的一部分。这些附图连同以下说
明 一起说明并解释本公开的各种原理。
图1是根据某些实施例的示例性主机的方框图。
图2是用于检测浏览器中间人攻击的计算机实现方法的流程图。
图3是用于处理合法和非法提交的计算机实现方法的流程图。 图4是能够实现在此所述的和/或所示的一个或多个实施例的示例性计算系统的
方框图。 图5是能够实现在此所述的和/或所示的一个或多个实施例的示例性计算网络的 方框图。 在所有附图中,相同的附图标记和说明指示类似但不一定相同的元件。虽然在此 所述的示例性实施例可以有各种修改和替换形式,但在附图中已通过示例示出了特定的实 施例并将在此进行详细地描述。然而,在此所述的示例性实施例并不意在局限于所公开的 特定形式。相反,本公开涵盖落入随附权利要求的范围内的所有修改、等价物、以及替换物。
具体实施例方式
本公开的实施例提供用于检测浏览器中间人攻击的各种方法和系统。如前所述, 恥b请求模块可以通过将提交与多个其它数据相比较来确定对网站的提交是否合法。附图 示出实现此目的的系统和方法。图l示出具有指纹模块、用户交互模块、以及web请求模块 的计算系统。图2和3示出计算系统上的这些模块可以执行的步骤。 图1示出示例性系统100。系统可以是任何适当的计算设备。例如,系统100可以 是图4所示的计算设备410,和/或可以由图5所示的任何网络设备来实现。系统100可以 包括多个模块,诸如指纹模块104、用户交互模块106、以及web请求模块108。这些模块可 以是能够执行在此公开的一个或多个步骤的任何模块、应用、或其它计算机可执行代码。
指纹模块104可以识别与网站相关的事务指纹。事务指纹可以来自安全供应商, 或者指纹模块104可以基于用户先前与网站的交互来生成事务指纹。例如,用户交互模块 106可以跟踪用户对网站的输入,且指纹模块104可以分析输入并存储关于所得到的提交 的信息。例如,指纹模块104可以记录事务引起的提交的数目、提交如何符合正常的事务流 程(即提交发生的顺序)、或提交的其它显著特性。 在某些实施例中,事务指纹可以包括对网站的期望提交数目。例如,网站可能需要 三个表单提交以便完成事务。在某些实施例中,事务指纹可以包括对网站的期望提交顺序。 例如,网站可以在呈现要提交的另一个表单之前呈现要提交的一个表单。事务指纹还可以 包括用于帮助确定事务是否合法的任何其它适当信息。 用户事务模块106可以跟踪用户对网站的输入。可以通过web浏览器来输入用户 的输入。此输入可以由可用于恥b浏览器的鼠标、键盘、或诸如输入设备428等任何其它输 入设备来生成。在某些实施例中,跟踪用户的输入可以包括跟踪用户通过恥b浏览器生成 的提交的数目。换言之,用户交互模块106可以基于用户的输入来确定用户计划对网站进 行多少数据提交。例如,用户可能用键盘向第一表单中输入数据并用鼠标点击按钮以提交 第一表单,并随后用键盘向第二表单中输入数据并用鼠标点击按钮以提交第二表单。用户 交互模块106可以基于这些输入动作来确定用户计划向网站提交两个表单。
在某些实施例中,跟踪用户的输入可以包括跟踪用户通过web浏览器生成的提交 的顺序。在某些实施例中,用户交互模块106可以基于用户的输入来确定用户计划向网站 提交什么表单和以什么顺序提交。例如,如在前述示例中一样,用户可以用键盘和鼠标提交 两个表单(即提交)。在本实施例中,用户交互模块106可以记录用户首先提交了第一表
5单,并其次提交第二表单。在某些实施例中,用户交互模块106可以分析和/或存储此输入 作为事务指纹以供稍后使用。例如,用户可以使用键盘和鼠标来填写并提交第一表单,并随 后在网站上进行事务的过程中提交第二表单。用户交互模块可以存储执行的提交的数目和 /或顺序以供在将来的会话中作为事务指纹使用。 web请求模块108可以截取对网站的传出提交。其随后可以将实际的提交与由用 户交互模块跟踪的用户输入相比较。在某些实施例中,恥b请求模块108可以将实际的提 交数目与由用户的输入所确定的计划的提交数目相比较。在其它实施例中,web请求模块 108可以将实际提交顺序与由用户的输入所确定的计划提交顺序相比较。
—旦web请求模块108比较关于提交的数据,则其可以根据事务指纹来确定用户 的输入是否生成了传出提交。在某些实施例中,web请求模块108可以通过确定对网站的 期望提交数目是否与用户通过web浏览器生成的对网站的计划的提交数目和对网站的实 际的提交数目两者相匹配来确定用户的输入是否生成了传出提交。换言之,web请求模块 108可以确定指纹模块、用户交互模块、以及web请求模块全部就对网站的提交数目是否达 成一致。 例如,指纹模块104可以指示对于网站期望有两次提交,用户交互模块106可以指 示用户计划对网站进行两次提交,并且web请求模块108可以指示实际上向网站发送了四 次提交。在本示例中,web请求模块108可以确定用户的输入不生成全部的传出提交。
在某些实施例中,web请求模块108可以通过确定对网站的期望提交顺序是否与 对网站的实际提交顺序相匹配来确定用户的输入是否生成了传出提交。例如,web请求模 块108可以基于用户的输入和/或事务指纹来期望第二提交在第一提交之后。web请求模 块108所检测的实际顺序可以是第一提交在第二提交之后。结果,web请求模块108可以 确定用户的输入未生成传出提交或恶意软件篡改了传出提交。 当web请求模块108确定用户的输入未生成传出提交时,web请求模块108可以 执行安全动作。在某些实施例中,web请求模块108可以通过询问用户是否转送传出提交 来执行安全动作。在其它实施例中,恥b请求模块108可以通过防止在不询问用户的情况 下转送提交来执行安全动作。在某些实施例中,web请求模块108可以通过向安全供应商 提交事件报告来执行安全动作。此事件报告可以包括网站的位置、传出提交的内容、识别用 户的信息、和/或与传出提交相关的日期和时间信息。 当web请求模块108确定用户的输入生成了传出提交时,web请求模块108可以 将传出提交转送到网站。换言之,web请求模块108可以在截取传出提交之后保持该传出 提交。在确定用户计划进行实际的提交之后,web请求模块108可以将该传出提交转送到 网站。 图2示出可以由诸如指纹模块104的指纹模块、诸如用户交互模块106的用户交 互模块、以及诸如恥b请求模块108的web请求模块中的一个或多个来执行的步骤。指纹 模块可以识别与网站相关的事务指纹(步骤202)。事务指纹可以是与网站的事务相关的任 何数据。例如,事务指纹可以识别在与网站的事务期间期望提交的数目、类型、和/或内容。 事务指纹还可以识别提交内的表单或其它数据的数目、类型、和/或内容。指纹模块可以通 过访问事务指纹的数据库来识别事务指纹。事务指纹的数据库可以包含通过监控用户与网 站进行的一个或多个事务而创建的事务指纹。在其它实施例中,可以通过监控与网站的测试事务来创建事务指纹数据库。 在某些实施例中,可以在安全软件公司的web服务器上远程地访问事务指纹的数 据库。在其它实施例中,可本地地存储或者在与事务的网站相关的web服务器上远程地访 问事务指纹的数据库(例如拥有网站的公司可以提供事务指纹)。 用户交互模块可以跟踪用户通过web浏览器对网站进行的输入(步骤204)。例 如,用户交互模块可以对恥b浏览器进行输入监控并可以记录与确定随后提交的有效性有 关的输入。该输入可以是来自键盘的输入、来自鼠标的输入、或者来自任何其它适当设备的 输入。 在某些实施例中,可以在跟踪用户的输入之后识别事务指纹(例如可以在步骤 204之后执行步骤202)。事务指纹可以使用用户输入来确定将使用哪个事务指纹。指纹模 块可以识别用户与网站进行什么类型的事务,然后指纹模块可以识别与该类型的事务相关 的事务指纹。例如,如果事务是与网站的支付事务,则指纹模块可以识别用于该网站的支付 事务指纹。如果事务是用于修改用户设置的事务,则指纹模块可以识别用于该网站的设置 修改指纹。可以使用事务的各种其它分类来识别事务指纹。 在用户交互模块跟踪用户的输入之后,web请求监控器可以截取对网站的传出提 交(步骤206)。为了截取对网站的传出提交,web请求监控器可以扣留来自web浏览器的 传出通信。例如,web请求监控器可以挂到(hook)web浏览器并截取从web浏览器发送到 网站的所有表单提交。可选地,web请求监控器可以包括在用户系统上的截取所有传出网 络通信并过滤恥b提交的截取代理。 web请求监控器随后可以根据事务指纹来确定用户的输入是否生成了传出提交 (步骤208) 。 web请求监控器可以使用事务指纹来解释传出提交以确定传出提交是否与用 户的输入一致。例如,web请求监控器可以使用事务指纹来确定传出提交是否对应于用户 输入(例如根据用户输入该传出提交是期望的)。 作为图2所示的过程的示例,用户可以使用web浏览器来导航到网站(例如 PAYPAL, com)。指纹模块可以挂到web浏览器以监控正在访问什么网站并可以确定用户正 在访问PAYPAL, com。指纹模块随后可以访问与PAYPAL, com相关的事务指纹。例如,指纹模 块可以在诸如硬盘驱动器上的本地存储设备上的数据库中查找事务指纹,或者其可以与远 程服务器通信并请求远程服务器发送与PAYPAL, com相关的事务指纹。在某些实施例中,许 多事务指纹可以与PAYPAL. com相关(例如,不同事务指纹用于不同类型的事务),并且指纹 模块可以在选择事务指纹之前识别用户与PALPAL, com正在进行的事务的类型。在某些实 施例中,指纹模块可以基于用户正在与PAYPAL, com进行的事务的类型来选择事务指纹。
用户可以导航至具有要填写进行货币转让事务的表单的PAYPAL, com上的网页。 在本示例中,用户交互模块可以挂到web浏览器以监控到web浏览器的输入事件。用户可 以使用键盘来向表单的字段中键入银行帐号,并且用户交互模块可以记录该输入。用户随 后可以使用鼠标来点击按钮以提交银行帐号,并且用户交互模块可以记录此输入。web浏 览器随后可以用不同的表单来加载另一页面。用户可能使用键盘将事务量键入到此表单的 字段中,并且用户交互模块可以记录该输入。用户随后可以使用鼠标来点击按钮以提交事 务量,并且用户交互模块可以记录此输入。每当用户点击按钮以提交表单时,恥b浏览器可 以向PAYPAL, com服务器发送通信。web请求监控器可以截取这些通信。在某些实施例中,web请求监控器可以保存通信并防止其被即时提交。 对与PAYPAL, com的事务识别的事务指纹可以识别在事务期间期望的提交数目和 顺序。web请求监控器可以根据事务指纹来确定用户向PAYPAL, com的传输是否合法。为 了进行此确定,web请求监控器可以确定用户的web浏览器是否按照期望的顺序向PAYPAL, com发送期望数目的提交。 如果用户系统上的恶意软件试图向PAYPAL, com提交附加事务表单,则web请求监 控器可以确定此提交是不合法的,因为用户看起来似乎只向PAYPAL, com提交两个表单(基 于用户的输入),然而总共提交了三个表单。或者,恥b请求监控器可以确定提交可能是不 合法的,因为第三提交超出了 PAYPAL, com事务的正常事务流程的范围。例如,web请求监 控器可以确定由恶意软件发送的表单是不应该从恥b浏览器发送的表单,除非首先提交了 其它表单,并且恥b请求监控器可以确定web浏览器未首先提交其它表单。
图3示出可以由安全模块执行的步骤,安全模块可以提供在此所述的一个或多个 其它模块的功能。安全模块可以识别与网站相关的事务指纹(步骤302)。安全模块可以跟 踪用户对网站的输入(步骤304)。可以通过web浏览器来接收用户的输入。安全模块还可 以截取从恥b浏览器发送到网站的传出提交(步骤305)。安全模块可以根据事务指纹来确 定用户的输入是否生成了传出提交(判定点306)。如果用户的输入确实生成了传出提交, 则web请求模块可以将传出提交转送至网站(步骤308)。换言之,web请求模块可以将提 交发送到网站,如同其为web浏览器一样。例如,web请求模块可以访问网络接口卡并将截 取的web表单数据发送到网站的服务器。 然而,如果用户的输入未生成传出提交,则web请求模块可以执行安全动作(步骤 310)。例如,web请求模块可以提示用户确认计划进行提交。web请求模块可以通过显示对 话框或任何其它适当的用户界面对象来提示用户,所述用户界面对象显示关于所尝试的提 交的信息以及用户可以点击以选择是发送还是终止提交的按钮。在其它实施例中,web请 求模块可以向安全软件供应商或安全软件程序发送潜在恶意软件问题的报告。web请求模 块还可以执行任何其它适当的安全措施。 图4是能够实现在此所述的和/或所示的一个或多个实施例的示例性计算系统 410的方框图。计算系统410广义上表示能够执行计算机可读指令的任何单个或多处理器 计算设备或系统。计算系统410的示例包括但不限于工作站、膝上型计算机、客户端侧终 端、服务器、分布式计算系统、手持式设备、或任何其它计算系统或设备。在其最基本的配置 中,计算系统410可以包括至少一个处理器414和系统存储器416。 处理器414 一般表示能够处理数据或解释并执行指令的任何类型或形式的处理 单元。在某些实施例中,处理器414可以从软件应用或模块接收指令。这些指令可以使得 处理器414执行在此所述的和/或所示的一个或多个示例性实施例的功能。例如,处理器 414可以执行在此所述的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中 的一个或多个和/或作为用于单独或与其它元件结合地执行在此所述的识别、跟踪、截取、 比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个的装置。处理器414还可以 执行在此所述的和/或所示的任何其它步骤、方法、或过程和/或作为用于执行在此所述的 和/或所示的任何其它步骤、方法、或过程的装置。 系统存储器416 —般表示能够存储数据和/或其它计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器416的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、或任何其它适当的存储设备。虽然不需要,但在某些实施例中,计算系统410可以包括易失性存储单元(诸如,例如系统存储器416)和非易失性存储设备(例如,诸如下文更详细地描述的主存储设备432)。
在某些实施例中,除处理器414和系统存储器416之外,示例性计算系统410还可以包括一个或多个组件或元件。例如,如图4所示,计算系统410可以包括存储控制器418、输入/输出(I/O)控制器420、以及通信接口 422,其中的每一个可以经由通信基础设施412互连。通信基础设施412 —般表示能够便于计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施412的示例包括但不限于通信总线(诸如ISA、PCI、PCIe、或类似总线)和网络。 存储控制器418 —般表示能够处理存储器或数据或控制计算系统410的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储控制器418可以经由通信基础设施412来控制处理器414、系统存储器416、与I/O控制器420之间的通信。在某些实施例中,存储控制器418可以执行在此所述的和/或所示的一个或多个步骤或特征和/或作为用于单独地或与其它组件相结合地执行在此所述的和/或所示的一个或多个步骤或特征的装置,所述步骤或特征诸如识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成。 I/O控制器420 —般表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,1/0控制器420可以控制或便于计算系统410之间的一个或多个元件之间的数据传送,所述元件诸如处理器414、系统存储器416、通信接口 422、显示适配器426、输入接口 430、以及存储接口 434。 I/O控制器420可以例如用来执行在此所述的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤和/或作为用于执行在此所述的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤的装置。I/O控制器420还可以用来执行本公开所阐述的其它步骤和特征和/或作为用于执行本公开所阐述的其它步骤和特征的装置。 通信接口 422广义上表示能够便于示例性计算系统410与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口 422可以便于计算系统410与包括附加计算系统的私有或公共网络之间的通信。通信接口 422的示例可以包括但不限于有线网络接口 (诸如网络接口卡)、无线网络接口 (诸如无线网络接口卡)、调制解调器、及其它任何适当接口 。在至少一个实施例中,通信接口 422可以经由到诸如因特网等网络的直接连路来向远程服务器提供直接连接。通信接口 422还可以通过例如局域网(诸如以太网或无线IEEE 802. 11网络)、个域网(诸如BLUETOOTH或IEEE标准802. 15. 1-2002网络)、电话或电缆网络、蜂窝式电话连接、卫星数据连接、或任何其它适当的连接来间接地提供此类连接。 在某些实施例中,通信接口 422还可以表示被配置为经由外部总线或通信信道来便于计算系统410与一个或多个附加网络或存储设备之间的通信的主机适配器。主机适配器的示例包括但不限于SCSI主机适配器、USB主机适配器、IEEE 1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤信道接口适配器、以太网适配器等。通信接口 422还可以允许计算系统410参与分布式或远程计算。例如,通信接口 422可以从远程设备接收指令或向远程设备发送用于执行的指令。在某些实施例中,通信接口 422可以执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个和/或作为用于单独地或与其它元件相结合地执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个的装置。通信接口 422还可以用来执行本公开所阐述的其它步骤和特征和/或作为用于执行本公开所阐述的其它步骤和特征的装置。 如图4所示,计算系统410还可以包括经由显示适配器426耦合到通信基础设施412的至少一个显示设备424。显示设备424—般表示能够在视觉上显示由显示适配器426转送的信息的任何类型或形式的设备。类似地,显示适配器426 —般表示被配置为转送来自通信基础设施412(或来自如本领域中所已知的帧缓冲器)的图形、文本、及其它数据以在显示设备424上显示的任何类型或形式的设备。 如图4所示,示例性计算系统410还可以包括经由输入接口 430耦合到通信基础设施412的至少一个输入设备428。输入设备428 —般表示能够向示例性计算系统410提供计算机或人类生成的输入的任何类型或形式的输入设备。输入设备428的示例包括但不限于键盘、指示设备、语音识别设备、或任何其它设备。在至少一个实施例中,输入设备428执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个和/或作为用于单独地或与其它元件相结合地执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个的装置。输入设备428还可以用来执行本公开所阐述的其它步骤和特征和/或作为用于执行本公开所阐述的其它步骤和特征的装置。 如图4所示,示例性计算系统410还可以包括经由存储接口 434耦合到通信基础设施412的主存储设备432和备份存储设备433。存储设备432和433 —般表示能够存储数据和/或其它计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备432和433可以是磁盘驱动器(例如所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪速驱动器等。存储接口 434 —般表示用于在存储设备432和433与计算系统410的其它组件之间传送数据的任何类型或形式的接口或设备。 在某些实施例中,存储设备432和433可以被配置为从可移动存储单元读取和/或向可移动存储单元写入,所述可移动存储单元被配置为存储计算机软件、数据、或其它计算机可读信息。适当可移动存储单元的示例包括但不限于软盘、磁带、光盘、闪速存储设备等。存储设备432和433还可以包括用于允许将计算机软件、数据、或其它计算机可读指令加载到计算系统410中的其它类似结构或设备。例如,存储设备432和433可以被配置为读取和写入软件、输入、或其它计算机可读信息。存储设备432和433可以是计算系统410的一部分或者可以是通过其它接口系统来访问的单独设备。 存储设备432和433还可以用来执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个和/或作为用于单独地或与其它元件相结合地执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或多个的装置。存储设备432和433还可以用来执行本公开所阐述的其它步骤和特征和/或作为用于执行本公开所阐述的其它步骤和特征的装置。 可以将许多其它设备或子系统连接到计算系统410。相反,并不是图4所示的所有组件和设备都需要出现以实施在此所述的和/或所示的实施例。以上参考的设备和子系统 还可以以不同于图4所示的方式互连。计算系统410还可以采用任何数目的软件、固件、和 /或硬件配置。例如,可以将在此所公开的一个或多个示例性实施例编码为计算机可读介 质上的计算机程序(也称为计算机软件、软件应用、计算机可读指令、或计算机控制逻辑)。 短语"计算机可读介质"通常指能够存储或承载计算机可读指令的任何形式的设备、载体、 或介质。计算机可读介质的示例包括但不限于诸如载波的传输型介质、以及诸如磁性存储 介质(例如硬盘驱动器和软盘)、光学存储介质(例如CD或DVD-ROM)、电子存储介质(例 如固态驱动器和闪速介质)的物理介质、及其它分布系统。 包含计算机程序的计算机可读介质可以被加载到计算系统410中。然后可以将存 储在计算机可读介质上的所有或一部分计算机程序存储在系统存储器416和/或存储设备 432和433的各种部分上。当被处理器414执行时,被加载到计算系统410中的计算机程序 可以使得处理器414执行在此所述的和/或所示的一个或多个示例性实施例的功能和/或 作为用于执行在此所述的和/或所示的一个或多个示例性实施例的功能的装置。另外地或 可替换地,可以用固件和/或硬件来实现在此所述和/或所示的一个或多个示例性实施例。 例如,计算系统410可以被配置为适合于实现在此所公开的一个或多个示例性实施例的专 用集成电路(ASIC)。 图5是其中客户端系统510、520、和530及服务器540和545可以被耦合到网络 550的示例性网络架构500的方框图。客户端系统510、520、和530 —般表示任何类型或形 式的计算设备或系统,诸如图4所示的示例性计算系统410。类似地,服务器540和545 — 般表示诸如应用服务器或数据库服务器等被配置为提供各种数据库服务和/或运行某些 软件应用的计算设备或系统。网络550 —般表示任何电信或计算机网络;包括例如企业内 部网、广域网(WAN)、局域网(LAN)、个域网(PAN)、或因特网。 如图5所示,可以将一个或多个存储设备560 (1) - (N)直接附连到服务器540 。类似 地,可以将一个或多个存储设备570(1)-(N)直接附连到服务器545。存储设备560(1)-(N) 和存储设备570(1)-(N) —般表示能够存储数据和/或其它计算机可读指令的任何类型或 形式的存储设备或介质。在某些实施例中,存储设备560(1)-(N)和存储设备570(1)-(N) 可以表示被配置为使用诸如NFS、SMB、或CIFS等各种协议来与服务器540和545通信的网 络连接存储(NAS)设备。 还可以将服务器540和545连接到存储区域网络(SAN)构架(fabric) 580。 SAN 构架580 —般表示能够便于多个存储设备之间的通信的任何类型或形式的计算机网络或 架构。SAN构架580可以便于服务器540和545与多个存储设备590(1)-(N)和/或智能 存储阵列595之间的通信。SAN构架580还可以经由网络550及服务器540和545以设备 590(1)-(N)和阵列595表现为局部附连到客户端系统510、520、和530的设备的方式来便 于客户端系统510、520和530与存储设备590(1)-(N)和/或智能存储阵列595之间的通 信。如同存储设备560(1)-(N)和存储设备570(1)-(N)的情况一样,存储设备590 (1) - (N) 和智能存储阵列595 —般表示能够存储数据和/或其它计算机可读指令的任何类型或形式 的存储设备或介质。 在某些实施例中及参照图4的示例性计算系统410,可以使用诸如图4中的通信接 口 422的通信接口来提供每个客户端系统51Q、520、和530与网络550之间的连接。客户端系统510、520、和530能够使用例如web浏览器或其它客户端软件来访问服务器540或545 上的信息。此类软件可以允许客户端系统510、520、和530访问由服务器540、服务器545、 存储设备560 (1) - (N)、存储设备570 (1) - (N)、存储设备590 (1) - (N)、或智能存储阵列595操 管的数据。虽然图5描绘了使用网络(诸如因特网)来交换数据,但在此所述的和/或所 示的实施例不限于因特网或任何特定的基于网络的环境。 在至少一个实施例中,可以将在此所公开的一个或多个示例性实施例中的全部或 一部分编码为计算机程序或加载到服务器540、服务器545、存储设备560(1)-(N)、存储设 备570(1)-(N)、存储设备590(1)-(N)、智能存储阵列595、或其任何组合上并由其执行。还 可以将在此所公开的一个或多个示例性实施例中的全部或一部分编码为计算机程序、存储 在服务器540中、由服务器545来运行、和/或通过网络550分布到客户端系统510、520、和 530。因此,网络架构500可以执行在此所公开的识别、跟踪、截取、比较、确定、转送、执行、 提交、和/或生成步骤中的一个或多个和/或作为用于单独地或与其它元件相结合地执行 在此所公开的识别、跟踪、截取、比较、确定、转送、执行、提交、和/或生成步骤中的一个或 多个的装置。网络架构500还可以用来执行本公开所阐述的其它步骤和特征和/或作为用 于执行本公开所阐述的其它步骤和特征的装置。 如上面详细描述的,计算系统410和/或网络架构500的一个或多个组件可以执 行在此所述的和/或所示的示例性方法的一个或多个步骤和/或作为用于单独地或与其它 组件相结合地执行在此所述的和/或所示的示例性方法的一个或多个步骤的装置。例如, 计算机系统(例如计算系统410和/或网络架构500的一个或多个组件)可以执行用于检 测浏览器中间人攻击的计算机实现方法。计算机系统可以识别与网站相关的事务指纹。计 算机系统随后可以跟踪用户对网站的输入。可以通过web浏览器来接收用户的输入。计算 机系统还可以截取对网站的传出提交。计算机系统随后可以将用户的输入与传出提交相比 较以根据事务指纹来确定用户的输入是否生成了传出提交。在某些实施例中,如果所述传 出提交被确定为是由用户的输入生成的,则计算机系统可以将传出提交转送到网站。
在至少一个实施例中,跟踪用户在web浏览器中对网站的输入可以包括跟踪用户 通过web浏览器生成的计划的提交数目。在某些实施例中,事务指纹可以包括对网站的提 交的期望数目。在某些其它实施例中,计算机系统可以确定对网站的提交的期望数目是否 与用户通过web浏览器生成的对网站的提交的计划的数目和对网站的实际的提交数目相 匹配。 根据某些实施例,所述事务指纹可以包括对网站的期望提交顺序。在某些其它实 施例中,计算机系统可以确定对网站的期望提交顺序是否与实际提交顺序相匹配。在某些 实施例中,可以由安全供应商来提供事务指纹。在某些实施例中,可以基于用户对网站的输 入来生成事务指纹。 如在某些实施例中所定义的,如果传出提交未被确定为是由用户的输入生成的, 则计算机系统可以执行安全动作。在某些其它实施例中,计算机可以通过询问用户是否将 传出提交转送到恥b服务器来执行安全动作。在某些实施例中,计算机可以通过向安全供 应商提交事件报告来执行安全动作。事件报告可以包括网站的位置、传出提交的内容、识别 用户的信息、和/或数据和时间信息。在多个实施例中,用户的输入可以包括来自鼠标的输 入和/或来自键盘的输入。
虽然前述公开使用特定的方框图、流程图、以及示例阐述了各种实施例,但可以使 用范围广泛的硬件、软件、或固件(或其任何组合)配置来单独地和/或共同地实现在此所 述的和/或所示的每个方框图组件、流程图步骤、操作、和/或组件。另外,应将包含在其它 组件内的组件的任何公开视为本质上是示例性的,因为可以实现许多其它架构以实现相同 的功能。 在此所述的和/或所示的过程参数和步骤序列仅以示例的方式给出且可以根据 需要而改变。例如,虽然按照特定的顺序示出或讨论了在此所示的和/或所述的步骤,但这 些步骤不一定需要按照所示的或所述的顺序来执行。在此所述的和/或所示的各种示例性 方法还可以省略在此所述的或所示的一个或多个步骤或包括除那些公开的步骤之外的附 加步骤。 此外,虽然在此已经在全功能计算系统的上下文中描述和/或示出了各种实施 例,但可以以各种形式将这些示例性实施例中的一个或多个作为程序产品来分发,不管用 来实际执行分发的计算机可读介质的特定类型如何。还可以使用执行某些任务的软件模块 来实现在此所公开的实施例。这些软件模块可以包括可以存储在计算机可读存储介质上或 计算系统中的脚本、程序组、或其它可执行文件。在某些实施例中,这些软件模块可以将计 算系统配置为执行在此所公开的一个或多个示例性实施例。 已经提供了前述说明以使得本领域的技术人员能够最好地利用在此所述的示例 性实施例的各种方面。本示例性说明并不意在是排他性的或局限于所公开的任何精确形 式。在不脱离本公开的精神和范围的情况下可以进行许多修改和变更。期望的是从说明性 而非限制性的方面来考虑本文所述的实施例,并对随附权利要求及其等价物进行参考以便 确定本公开的范围。 除非另有说明,在本说明书和权利要求中不加数量词限定的项应被理解为意指 "至少一个"项。另外,为了便于使用,本说明书和权利要求中使用的术语"包括"和"具有" 可与词语"包含"互换使用并具有与之相同的意义。
权利要求
一种用于检测浏览器中间人攻击的计算机实现的方法,该方法包括识别与网站相关的事务指纹;跟踪用户对所述网站的输入,所述用户的输入通过web浏览器来接收;截取对所述网站的传出提交;根据所述事务指纹来确定所述用户的输入是否生成了所述传出提交。
2. 根据权利要求1的计算机实现的方法,还包括将所述用户的输入与所述传出提交相比较;如果所述传出提交被确定为是由所述用户的输入生成的,则将所述传出提交转送至所述网站。
3. 根据权利要求l的计算机实现的方法,其中,跟踪所述用户对所述网站的输入包括跟踪用户通过所述web浏览器生成的计划的提交数目。
4. 根据权利要求3的计算机实现的方法,其中,所述事务指纹包括对所述网站的期望的提交数目。
5. 根据权利要求4的计算机实现的方法,其中,确定所述用户的输入是否生成了所述传出提交包括确定对所述网站的所述期望的提交数目是否与用户通过所述恥b浏览器生成的对所述网站的所述计划的提交数目和对所述网站的实际的提交数目二者相匹配。
6. 根据权利要求1的计算机实现的方法,其中,所述事务指纹包括对所述网站的提交的期望顺序。
7. 根据权利要求6的计算机实现的方法,其中,确定所述用户的输入是否生成了所述传出提交包括确定对所述网站的提交的期望顺序是否与提交的实际顺序相匹配。
8. 根据权利要求1的计算机实现的方法,其中,所述事务指纹由安全供应商提供。
9. 根据权利要求1的计算机实现的方法,还包括如果所述传出提交未被确定为是由所述用户的输入生成的,则执行安全动作。
10. 根据权利要求9的计算机实现的方法,其中,所述安全动作包括询问用户是否将所述传出提交转送至所述网站。
11. 根据权利要求9的计算机实现的方法,其中,所述安全动作包括向安全供应商提供事件报告,其中,所述事件报告包括以下各项中的至少一个所述网站的位置;所述传出提交的内容;识别所述用户的信息;与所述传出提交相关联的日期和时间信息。
12. 根据权利要求1的计算机实现的方法,还包括基于用户对所述网站的输入生成所述事务指纹。
13. 根据权利要求1的计算机实现的方法,其中,所述用户的输入包括对所述网站上的表单的输入。
14. 一种用于检测并截取浏览器中间人攻击的系统,该系统包括指纹模块,其被编程为识别与网站相关的事务指纹;用户交互模块,其被编程为跟踪用户在web浏览器中对所述网站的输入;web请求模块,其与所述指纹模块和所述用户交互模块通信,并被编程为截取对所述网站的传出提交;根据所述事务指纹来确定用户的输入是否生成了所述传出提交。
15. 根据权利要求14的系统,其中,所述web请求模块被编程为如果所述传出提交被确定为是由所述用户的输入生成的,则将所述传出提交转送到所述网站。
16. 根据权利要求14的系统,其中,所述用户交互模块被编程为通过跟踪用户通过所述web浏览器生成的对所述网站的计划的提交数目来跟踪用户对所述网站的输入。
17. 根据权利要求16的系统,其中,所述事务指纹包括对所述网站的期望的提交数目。
18. 根据权利要求17的系统,其中,所述web请求模块通过确定对所述网站的期望的提交数目是否与对所述网站的计划的提交数目和对所述网站的实际的提交数目两者相匹配来确定所述用户的输入是否生成了所述传出提交。
19. 根据权利要求14的系统,其中,所述指纹模块从安全供应商接收所述事务指纹。
20. —种计算机可读介质,其在被计算设备执行时使得所述计算设备识别与网站相关的事务指纹;跟踪用户在web浏览器中对所述网站的输入;截取与所述网站进行的传出提交;根据所述事务指纹来确定所述用户的输入是否生成了所述传出提交。
全文摘要
一种用于检测浏览器中间人攻击的计算机实现方法可以包括识别与网站相关的事务指纹。该方法还可以包括跟踪用户对网站的输入。可以通过web浏览器来接收用户输入。该方法还可以包括截取对网站的传出提交。该方法另外可以包括根据事务指纹来确定所述用户输入是否生成了传出提交。还公开了各种其它方法、系统、以及计算机可读介质。
文档编号H04L29/06GK101764819SQ20091026240
公开日2010年6月30日 申请日期2009年12月18日 优先权日2008年12月18日
发明者威廉·E·索贝尔, 苏拉伯·萨蒂什 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1