通过使用web流量信息动态扫描web应用的制作方法

文档序号:7791025阅读:198来源:国知局
通过使用web流量信息动态扫描web应用的制作方法
【专利摘要】从至少一个日志文件采集日志文件数据。可以根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求。可以向web应用传达HTTP请求。可以接收对HTTP请求的至少一个HTTP响应。可以分析HTTP响应以执行web应用的验证。可以输出验证的结果。
【专利说明】通过使用WEB流量信息动态扫描WEB应用

【技术领域】
[0001] 在本说明书内公开的一个或者多个实施例涉及Web安全扫描器。

【背景技术】
[0002] Web应用安全扫描器是自动测试web应用的安全状况的软件工具。这些扫描器尝 试对在web应用内的安全问题、比如结构化查询语言(SQL)注入、跨站点脚本编写、命令注 入和其它安全弱点进行定位。为了使用这样的扫描器,用户通常配置扫描的范围和限制,并 且提供登录信息。用户然后可以人工或者自动爬取web应用以允许扫描器采集关于web应 用的结构的信息、与web应用关联的统一资源定位符(URL)、cookie和目录。爬取的目的是 从web应用采集资源以便对这些资源中的每个资源的弱点检测。然后操纵并且向web应用 提交在爬取web应用期间获得的信息以对web应用执行测试,并且对从web应用接收的响 应执行验证。
[0003] 因此,在本领域中需要解决前述问题。


【发明内容】

[0004] 在本说明书内公开的一个或者多个示例涉及动态扫描web应用。一个实施例可以 包括从至少一个日志文件采集日志文件数据。可以根据采集的日志文件数据生成对练习 web应用以执行web应用的安全分析的至少一个超文本传送协议(HTTP)请求。可以向web 应用传达HTTP请求。可以接收对HTTP请求的至少一个HTTP响应。可以分析HTTP响应以 执行web应用的验证。可以输出验证的结果。
[0005] 从第一方面来看,本发明提供一种用于动态扫描web应用的方法,该方法包括:从 至少一个日志文件采集日志文件数据;根据采集的日志文件数据生成对练习 web应用以执 行web应用的安全分析的至少一个HTTP请求;向web应用传达HTTP请求;接收对HTTP请 求的至少一个HTTP响应;分析HTTP响应以执行web应用的验证;以及输出验证的结果。
[0006] 从又一方面来看,本发明提供一种动态扫描web应用的系统,该系统包括:计算机 可读存储介质;被配置为发起可执行操作的处理器;可操作用于从至少一个日志文件采集 日志文件数据的采集装置;可操作用于根据采集的日志文件数据生成对练习 web应用以执 行web应用的安全分析的至少一个HTTP请求的生成装置;可操作用于向web应用传达HTTP 请求的传达装置;可操作用于接收对HTTP请求的至少一个HTTP响应的接收装置;可操作 用于分析HTTP响应以执行web应用的验证的分析装置;以及可操作用于输出验证的结果的 输出装置。
[0007] 从又一方面来看,本发明提供一种动态扫描web应用的系统,该系统包括:计算机 可读存储介质;以及被配置为发起可执行操作的处理器,可执行操作包括:从至少一个日 志文件采集日志文件数据;根据采集的日志文件数据生成对练习 web应用以执行web应用 的安全分析的至少一个HTTP请求;向web应用传达HTTP请求;接收对HTTP请求的至少一 个HTTP响应;分析HTTP响应以执行web应用的验证;并且输出验证的结果。
[0008] 从又一方面来看,本发明提供一种用于动态扫描web应用的计算机程序产品,该 计算机程序产品包括能由处理电路读取并且存储指令的计算机可读存储介质,指令用于由 处理电路执行以用于执行方法,该方法用于执行本发明的步骤。
[0009] 从又一方面来看,本发明提供一种在计算机可读介质上存储的并且能向数字计算 机的内部存储器中加载的计算机程序,该计算机程序包括当所述程序在计算机上被运行时 用于执行本发明的步骤的软件代码部分。
[0010] 另一实施例可以包括一种动态扫描web应用的系统。该系统可以包括计算机可读 存储介质和处理器。处理器可以被配置为发起可执行操作以执行在本说明内公开的各种过 程和/或功能。
[0011] 另一实施例可以包括一种用于动态扫描web应用的计算机程序产品。该计算机程 序产品可以包括具有随其体现的计算机可读程序代码的计算机可读存储介质,该计算机可 读程序代码被配置为执行在说明书内公开的各种操作和/或功能。

【专利附图】

【附图说明】
[0012] 现在将参照如以下各图中所示优选实施例仅通过示例描述本发明:
[0013] 图1是图示根据本发明的一个优选实施例的用于动态扫描web应用的系统的框 图;
[0014] 图2是图示根据本发明的一个优选实施例的动态扫描web应用的方法的流程图; 并且
[0015] 图3是图示根据本发明的一个优选实施例的安全客户端的框图。

【具体实施方式】
[0016] 所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件 实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以 统称为"电路"、"模块"或"系统"。此外,在一些实施例中,本发明的各个方面还可以实现为 在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含 计算机可用的程序代码。
[0017] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算 机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限 于一电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机 可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者 上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的 有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0018] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0019] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算 机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++ 等,还包括常规的过程式程序设计语言一诸如"C"语言或类似的程序设计语言。程序代码可 以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、 部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。 在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN) 或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务 提供商来通过因特网连接)。Java以及所有基于Java的商标和标识为Oracle和/或其附 属机构的商标或注册商标。
[0020] 下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流 程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或 框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通 用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这 些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现 流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0021] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、 其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的 指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令 的制造品(article of manufacture) 〇
[0022] 也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备 上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/ 或框图中的一个或多个方框中规定的功能/动作的过程。
[0023] 本实施例涉及动态扫描web应用。更具体而言,可以访问来自通过在先使用和/ 或开发文本应用而生成的信息日志的数据。这一信息可以由web应用安全扫描器访问以采 集关于web应用的结构的信息。取代爬取web应用或者除了爬取web应用之外,web应用安 全扫描器可以使用访问的信息以使用从与web应用的先前现实交互中生成的已知信息来 练习(exercise) web应用。因此,可以基于这些先前现实交互来测试web应用的安全。这 些先前交互可以指示如果仅实施web应用的爬取则原本可能遗漏的境况。例如使用传统爬 取功能可能未到达web应用的基于用户交互的某些领域,并且使用先前已知的安全测试解 决方案可能遗漏这样的领域。然而本发明经由来自信息日志的采集的信息可以标识web应 用的这样的领域,并且在安全测试期间访问这样的领域。因此,通过使用信息日志,web应 用安全扫描器可以标识web应用中的原本不会察觉的安全弱点、由此增强web应用安全扫 描器执行的安全分析。
[0024] 图1是图不根据本发明的一个优选实施例的用于动态扫描web应用的系统100的 框图。该系统可以包括被配置为通信地链接一个或者多个系统、比如web服务器120、一个 或者多个应用客户端130和/或安全客户端160的通信网络110。通信网络110可以是任 何类型的网络、比如先前描述的网络中的任何网络。
[0025] 系统100可以包括web服务器120。Web服务器120可以是包括至少一个处理器 的任何处理系统。Web服务器120还可以包括如这里将描述的存储器单元、比如本地存储 器和/或一个或者多个体存储设备。Web服务器120可以被配置为主控或者执行web应用 122。web应用122可以是可经由通信网络110访问的应用。Web服务器120也可以被配置 为在一个或者多个日志文件124中存储与对web应用122的客户端访问有关的信息和/或 与对这样的客户端访问的响应有关的信息。
[0026] 系统100也可以包括一个或者多个应用客户端130。应用客户端130可以是包括 至少一个处理器的任何处理系统。应用客户端130还可以包括如这里将描述的存储器单 元、比如本地存储器和/或一个或者多个体存储设备。应用客户端130可以被配置为执行 客户端应用132的一个或者多个实例。客户端应用132可以是如下应用,该应用被配置为 经由通信网络110访问web应用122以便取回web应用122提供的信息和/或向web应用 122提供信息。例如在开发web应用122期间,客户端应用132可以按照测试web应用122 的功能的web应用开发员的要求或者按照web应用122的任何其他用户的要求访问web应 用122。在本发明的一个优选实施例中,客户端应用132可以是web浏览器,但是本发明在 此方面不受限制。在示例中,客户端应用132可以是适合用于经由通信网络110与web应 用122交换信息的任何其它应用。
[0027] 应用客户端130也可以被配置为在一个或者多个日志文件134中存储与客户端应 用132对web应用122的访问有关的信息。例如在本发明的一个优选实施例中,应用客户端 130可以在日志文件134中存储从客户端应用132向web应用122传达的HTTP请求136有 关的信息和/或响应于HTTP请求136从web应用122向客户端应用132传达的HTTP响应 138。在其它实施例中,这样的信息可以被存储于web服务器120维护的日志文件124或者 这里将描述的其它日志文件中。HTTP请求136可以包括从客户端应用130向web应用122 传达的初始HTTP请求以及响应于HTTP响应138传达的postHTTP请求。相似地,HTTP响 应138可以包括从web应用122向客户端应用130传达的初始HTTP响应以及响应于post HTTP请求传达的post HTTP响应。
[0028] HTTP请求136和HTTP响应138可以统称为通信流量。通信流量可以包括统一资 源定位符(URL)、异步JavaScript和XML (AJAX)请求以及对应响应、向web应用的领域的请 求、HTTP动词、参数、数据、表单值、cookie、post请求、查询和/或正文参数、用户标识符、 口令等。可以动态生成(例如基于用户与客户端应用132的交互)、人工生成(例如基于用 户输入生成)、自动或者人工选择等URL。如这里所用,用户是人。
[0029] 在本发明的一个优选实施例中,可以经由通信网络110通信地链接web服务器120 和应用客户端130。在另一实施例中,web服务器120和特定应用客户端130可以是相同机 器。在其中web服务器120不是与应用客户端130中的一个或者多个应用客户端相同的机 器的一个实施例中,可以提供用于通信地链接web服务器120和应用客户端130的网络基 础设施。例如可以提供用于将web服务器120链接到通信网络110的服务器侧网络基础设 施140,并且可以提供用于将应用客户端130中的一个或者多个应用客户端通信地链接到 通信网络110的客户端侧基础设施150。
[0030] 网络构架140、150可以包括但不限于网络适配器、无线网络适配器、接入点、路由 器、交换机、防火墙、网关、代理设备或者服务器、反代理设备或者服务器等。就这一点而言, 网络基础设施140、150可以是通信网络110的节点。可以在web服务器120与应用客户端 130之间共享网络基础设施140、150的部件。例如如果web服务器120和应用客户端130 在相同子网上,则它们各自可以具有或者可以链接到相应网络适配器、但是共享公共路由 器、交换机、防火墙、网关等。就这一点而言,服务器侧网络基础设施140和客户端侧基础设 施150的部件可以是web服务器120和应用客户端130二者公共的,但是无需是这样的情 况。
[0031] 服务器侧网络基础设施140和/或客户端侧基础设施150也可以被配置为在一个 或者多个日志文件134中存储与客户端应用132对web应用122的访问有关的信息和/或 与对这样的访问的响应有关的信息。例如服务器侧网络基础设施140可以向一个或者多个 日志文件144存储这样的信息,并且客户端侧网络基础设施150可以向一个或者多个日志 文件154存储这样的信息。由于可以提供多个应用客户端130,所以可以在系统100的一个 或者多个部件之中分布日志文件134、154。
[0032] 可以在日志文件124、134、144和/或154中存储与在客户端应用132的实例与 web应用122之间的交互有关的各种类型的信息。这样的信息可以包括但不限于嗅探器日 志数据(例如Ethereal和/或Wireshark日志数据)、入侵保护系统(IDS)数据和/或入 侵保护系统(IPS)数据、防火墙日志数据、web应用防火墙日志数据、HTTP代理日志数据、 HTTP流量日志数据等。另外,信息可以包括URL、AJAX请求和/或响应、HTTP动词、参数、数 据、表单值、cookie、post请求、查询和/或正文参数、用户标识符、密码或者可以经由HTTP 传达的任何其它信息。日志文件124、134、144和/或154可以实施任何适当数据结构。这 样的结构的示例包括但不限于万维网联盟(W3C)日志文件、可扩展标记语言(XML)文档、逗 号分离值(CSV)、HTTP档案文件(HAR文件)等。
[0033] 系统100也可以包括安全客户端160。在本发明的一个优选实施例中,安全客户端 160可以是与应用客户端130不同的机器。在另一实施例中,安全客户端160可以是与应用 客户端130相同的机器。在其中安全客户端160是与应用客户端130不同的实施例中,安 全客户端160可以是包括至少一个处理器的任何处理系统。在这样的实施例中,安全客户 端160还可以包括如这里将描述的存储器单元、比如本地存储器和/或一个或者多个体存 储设备。
[0034] 安全客户端160可以包括安全扫描器162。安全扫描器162可以是如下应用,该应 用被配置为经由通信网络110访问web应用122以便取回web应用122提供的信息,和/ 或向web应用122提供信息。更具体而言,安全扫描器162可以与web应用122自动交互 以分析web应用122以便确定可能在web应用122中存在的安全弱点。在与web应用122 交互时,安全扫描器162可以访问采集的日志文件数据164。采集的日志文件数据164可以 是从日志文件124、134、144和/或154采集的数据汇集、采集的日志文件数据164可以包 括与124、134、144和/或154对应的数据和/或与124、134、144和/或154对应的数据。
[0035] 在本发明的一个优选实施例中,安全扫描器162可以取回日志文件124、134、144 和/或154并且采集在日志文件124、134、144和/或154中包含的数据并且在适当数据存 储设备中本地或者远程存储这样的数据而在需要时访问这样的信息以分析web应用122。 在另一实施例中,安全扫描器162可以在需要时取回日志文件124、134、144和/或154并 且采集在日志文件124、134、144和/或154中包含的数据。在更多另一实施例中,用户可 以采集在日志文件124、134、144和/或154中包含的数据,并且在适当数据存储设备中存 储这样的数据,安全扫描器162可以从该数据存储设备访问这样的信息。在本领域中已知 的导出和导入操作可以用来采集数据,但是本发明在此方面不受限制。
[0036] 可以用任何适当方式标识从日志文件124、134、144和/或154采集的数据用于采 集。例如可以在日志文件124、134、144和/或154中搜寻与web应用122关联的特定URL、 可以应用数据模式匹配以搜索日志文件124、134、144和/或154以标识与web应用122关 联的特定数据模式或者参数名等。另外,可以向一个或者多个XML文档、HAR文件或者任何 其它适当数据文件中录入来自日志文件124、134、144和/或154的数据以有助于安全扫描 器162扫描数据以标识相关信息。
[0037] 为了分析web应用122,安全扫描器162可以基于采集的日志文件数据164创建 HTTP请求166并且接收对HTTP请求166的HTTP响应168。因而,安全扫描器162可以使 用在web应用与客户端应用132中的一个或者多个客户端应用之间先前交换的信息来对 web应用122执行安全分析。这样的信息可以例如是在开发web应用122期间交换的信息、 比如用户录入的实际表单值、从用户与web应用122的实际交互(经由客户端应用132)中 创建的动态生成的URL、作为用户交互的结果而恰当提交的并且包括实际参数值的AJAX请 求。因此,安全扫描器162可以使用已知与web应用相关的信息来练习 web应用122、由此 保证在这样的测试期间使用的信息与web应用122高度地相关。
[0038] 在示例中,安全扫描器162可以处理采集的日志文件数据164以提炼与安全测试 有关的信息。例如安全扫描器162可以标识在采集的日志文件数据164中包含的HTTP请求 136并且生成对应HTTP请求166。安全扫描器162可以在HTTP请求166中包括URL、HTTP 动词、AJAX请求和/或响应、参数、数据、表单值、cookie、post请求、查询和/或正文参数、 用户标识符、密码或者可以经由HTTP传达的任何其它信息。就这一点而言,安全扫描器162 可以包括被配置为从采集的日志文件数据164解析ASCII文本并且提取相关HTTP信息的 HTTP消息解析器。HTTP消息解析器也可以匹配来自先前HTTP响应168的信息,这造成生 成后续HTTP请求166 (即有状态的解析)。可以实施有状态的解析以例如通过标记HTTP请 求166的某个参数为源于表单或者超链接的参数来利用关于HTTP参数类型的信息。在一 些情况下,cookie可以到期或者可以仅与原有HTTP请求136关联。安全扫描器162可以 刷新从采集的日志文件数据164使用的cookie以关联这样的cookie与HTTP请求166并 且保证cookie有效用于与HTTP请求166 -起使用。
[0039] 采集的日志文件数据164可以包含冗余信息。在这样的情况下,安全扫描器162 可以过滤在采集的日志文件数据164中包含的信息以例如去除与HTTP请求136和HTTP响 应138对应的冗余信息。另外,在生成HTTP请求166时,安全扫描器162可以将来自采集 的日志文件数据164的数据或者数据的至少一部分变换成web应用122可识别的一个或者 多个数据结构。
[0040] 在本发明的一个优选实施例中,HTTP请求136中的各种HTTP请求可能在它们访 问web应用提供的相同网页并且向相同表单中录入数据这一点上是冗余的。虽然向相同表 单中录入的数据可以不同,但是可以过滤HTTP请求136以排除使另一 HTTP请求136已经 解决的向表单中录入数据的过程重复的HTTP请求136,但是无需是这样的情况。
[0041] 另外,在生成HTTP请求166时,安全扫描器162可能重复一个或者多个对应HTTP 请求136录入的数据和/或录入与对应HTTP请求136录入的数据不同的数据。例如安全 扫描器162可以用与在对应HTTP请求136中包含的表单数据不同的表单数据生成HTTP请 求166、但是被配置为具体对于在web应用122中的安全弱点进行测试。在示例中,HTTP请 求166标识的URL和表单参数名可以与一个或者多个HTTP请求136标识的URL和表单参数 名相同,但是在HTTP请求166中提交的与相同表单参数名对应的参数可以不同。例如可以 在HTTP请求166中提交一个或者多个危险净荷(hazardous payloads)以对于可以在web 应用122中存在的安全弱点进行测试。因而,可以经由HTTP请求166向标识的URL提交一 个或者多个危险净荷。危险净荷可以例如是被配置为执行SQL注入、跨站点脚本编写、命令 注入的数据或者被配置为对于安全弱点测试web应用122的任何其它数据。
[0042] 在一些实例中,HTTP响应168可以标识需要的用户输入。如果在采集的日志文件 数据164中包含这样的用户输入,则安全扫描器162可以用HTTP请求166对这样的HTTP 响应168做出响应,这些HTTP请求包括来自采集的日志文件数据164的采集的数据。然而 本发明在此方面不受限制。例如,如果HTTP响应168需要涉及在计算(CAPTCHA)时使用的 挑战-响应测试,则安全扫描器162可以被配置为提示安全扫描器162的用户录入CAPTCHA 请求的用户输入。在其它境况中,安全扫描器可以用如下HTTP响应168对HTTP响应168 做出响应,该HTTP响应168包含被配置为对于web应用122的安全弱点进行测试的一个或 者多个危险净荷。
[0043] 在生成HTTP请求166和接收HTTP响应168之时,安全扫描器162可以例如通过 分析HTTP响应168来执行web应用的安全验证。安全扫描器162还可以例如通过向另一 日志文件输出结果和/或向用户呈现结果输出验证的结果。
[0044] 图2是图示根据本发明的另一实施例的动态扫描web应用的方法200的流程图。 在步骤202,可以从一个或者多个日志文件采集日志文件数据。如指出的那样,这样的日志 文件可以由各种系统来维护,各种系统例如应用客户端(客户端应用在该应用客户端上被 执行以访问web应用)主控web应用的web服务器、在其上执行有客户端应用的应用客户 端被通信地链接到的通信网络的网络基础设施、和/或主控web应用的web服务器被通信 地链接到的通信网络的网络基础设施。网络基础设施可以包括通信网络的一个或者多个节 点。
[0045] 在步骤204,可以根据采集的日志文件数据生成对练习 web应用以执行web应用的 安全分析的至少一个HTTP请求。例如HTTP请求可以标识URL、HTTP动词、AJAX请求和/ 或响应、参数、数据、表单值、cookie、post请求、查询和/或正文参数、用户标识符、密码或 者可以经由HTTP传达的任何其它信息。在步骤206,可以向web应用传达HTTP请求。
[0046] 在步骤208,可以接收对HTTP请求的至少一个HTTP响应。例如可以从web应用接 收HTTP响应。在步骤210,可以分析HTTP响应以执行web应用的验证。在步骤212,可以 例如向数据文件或者例如经由被配置为执行安全扫描器的安全客户端的显示器向用户输 出验证的结果。
[0047] 图3是图示根据本发明的一个优选实施例的安全客户端160的框图。安全客户端 160包括可以通过系统总线315或者其它适当电路装置耦合到存储器单元310的至少一个 处理器305。这样,安全客户端160可以在存储器单元310内存储程序代码。处理器305可 以经由系统总线315执行从存储器单元310访问的程序代码。例如在一个方面中,可以实 施安全客户端160为适合用于存储和/或执行程序代码的计算机。然而应当理解可以用能 够执行在本说明书内描述的功能和/或操作的包括处理器和存储器的任何系统的形式实 施安全客户端160。
[0048] 存储器单元310可以包括一个或者多个物理存储器设备、如比如本地存储器320 和一个或者多个体存储设备325。本地存储器320是指一般在实际执行程序代码期间使用 的随机存取存储器或者其它非持续存储器设备。可以实施体存储设备325为硬驱动或者其 它持久数据存储设备。安全客户端160也可以包括一个或者多个高速缓存存储器(未示 出),该一个或者多个高速缓存存储器提供至少一些程序代码的暂时存储以便减少在执行 期间必须从体存储设备325取回程序代码的次数。
[0049] 输入/输出(I/O)设备、比如键盘330、显示器335和指示设备340可选地可以耦 合到安全客户端360。I/O设备可以直接或者通过居间I/O控制器耦合到安全客户端160。 一个或者多个网络适配器345也可以耦合到安全客户端160以使安全客户端160能够变成 通过居间专有或者公用网络耦合到其它系统、计算机系统(例如web服务器)、远程打印机 和/或远程存储设备。调制解调器、线缆调制解调器和以太网卡是可以与安全客户端160 一起使用的不同类型的网络适配器345的示例。
[0050] 如在图3中描绘的那样,存储器单元310可以存储安全扫描器162。以可执行程 序代码的形式实施的安全扫描器162可以由安全客户端160执行,并且这样可以被视为安 全客户端160的一部分。安全客户端160可以访问采集的日志文件数据164。采集的日志 文件数据164可以存储于存储器单元310中或者存储于另一数据存储设备或者系统上,安 全客户端160可以从该数据存储设备或者系统访问采集的日志文件数据164。例如安全客 户端160可以在需要时从对应数据日志直接访问采集的日志文件数据164,用户可以采集 日志文件数据164并且向安全客户端160提供采集的日志文件数据164。安全扫描器162 可以执行这里描述的过程和方法以执行web应用的安全扫描、执行web应用的安全验证并 且输出安全验证的结果。如这里所用,"正在输出"和/或"输出"可以意味着在存储器单元 310中存储、例如向在存储器单元310中存储的文件写入、向显示器335或者其它外围输出 设备写入、播放可听通知、向另一系统发送或者传输、导出等。
[0051] 相似编号已经用来贯穿本说明书指代相同项。在本发明的一个优选实施例中,可 以将工作流服务器实现为丨BM? Rationa丨⑧AppScan?。IBM、Rational和AppScan 是国际商务机器公司在全球许多辖区中注册的商标。
[0052] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系构架、功能和操作。在这点上,流程图或框图中的每个方框可以 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以 基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行 规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
[0053] 这里所用术语仅为了描述具体实施例而未旨在于限制公开内容的示例实施例。如 这里所用,除非上下文另有明示,单数形式"一个"和"该"旨在于也包括复数形式。还将理 解术语"包括"在说明书中使用时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、 但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组 合。
[0054] 所附权利要求中的所有装置或者步骤加上功能要素的对应结构、材料、动作和等 效物旨在于包括用于与如具体要求保护的其它权利要求要素组合执行功能的任何结构、材 料或者动作。已经出于示例的目的而呈现本公开内容的描述,但是该描述未旨在于穷举公 开内容或者使公开内容限于公开的实施例。许多修改和变化将为本领域普通技术人员所清 楚而未脱离公开内容的范围和精神实质。选择和描述实施例以便最好地说明公开内容的原 理和实际应用并且使本领域其他普通技术人员能够对于具有如与设想的特定使用相配的 各种修改的各种实施例理解公开内容。
【权利要求】
1. 一种用于动态扫描web应用的方法,所述方法包括: 从至少一个日志文件采集日志文件数据; 根据采集的所述日志文件数据生成对练习 web应用以执行所述web应用的安全分析的 至少一个HTTP请求; 向所述web应用传达所述HTTP请求; 接收对所述HTTP请求的至少一个HTTP响应; 分析所述HTTP响应以执行所述web应用的验证;以及 输出所述验证的结果。
2. 根据权利要求1所述的方法,还包括: 过滤采集的所述日志文件数据以从采集的所述日志文件数据去除冗余信息。
3. 根据前述权利要求中的任一权利要求所述的方法,还包括: 将采集的所述日志文件数据的至少一部分变换成能由所述web应用识别的至少一个 数据结构;以及 在所述HTTP请求中包括所述数据结构。
4. 根据前述权利要求中的任一权利要求所述的方法,其中所述至少一个日志文件包括 由应用客户端维护的日志文件,客户端应用在所述应用客户端上被执行以访问所述web应 用。
5. 根据权利要求1至3中的任一权利要求所述的方法,其中所述至少一个日志文件包 括由主控所述web应用的web服务器维护的日志文件。
6. 根据权利要求1至3中的任一权利要求所述的方法,其中所述至少一个日志文件包 括由通信网络的网络基础设施维护的日志文件,在其上执行有客户端应用的应用客户端被 通信地链接到所述通信网络的网络基础设施。
7. 根据权利要求1至3中的任一权利要求所述的方法,其中所述至少一个日志文件包 括由通信网络的网络基础设施维护的日志文件,主控所述web应用的web服务器被通信地 链接到所述通信网络的网络基础设施。
8. 根据前述权利要求中的任一权利要求所述的方法,其中所述日志文件数据包括至少 一个cookie,所述方法还包括: 刷新用于所述HTTP请求的所述cookie。
9. 根据前述权利要求中的任一权利要求所述的方法,还包括: 标识在采集的所述日志文件数据中标识的至少一个URL ; 其中生成所述至少一个HTTP请求包括在所述HTTP请求中向所述URL提交危险净荷。
10. -种动态扫描web应用的系统,包括: 计算机可读存储介质; 处理器,被配置为发起可执行操作; 采集装置,可操作用于从至少一个日志文件采集日志文件数据; 生成装置,可操作用于根据采集的所述日志文件数据生成对练习 web应用以执行所述 web应用的安全分析的至少一个HTTP请求; 传达装置,可操作用于向所述web应用传达所述HTTP请求; 接收装置,可操作用于接收对所述HTTP请求的至少一个HTTP响应; 分析装置,可操作用于分析所述HTTP响应以执行所述web应用的验证;以及 输出装置,可操作用于输出所述验证的结果。
11. 根据权利要求10所述的系统,还包括: 过滤装置,可操作用于过滤采集的所述日志文件数据以从采集的所述日志文件数据去 除冗余信息。
12. 根据权利要求10或者11所述的系统,还包括: 变换装置,可操作用于将采集的所述日志文件数据的至少一部分变换成能由所述web 应用识别的至少一个数据结构;以及 包括装置,可操作用于将所述数据结构包括在所述HTTP请求中。
13. 根据权利要求10至12中的任一权利要求所述的系统,其中所述至少一个日志文 件包括由应用客户端维护的日志文件,客户端应用在所述应用客户端上被执行以访问所述 web应用。
14. 根据权利要求10至12中的任一权利要求所述的系统,其中所述至少一个日志文件 包括由主控所述web应用的web服务器维护的日志文件。
15. 根据权利要求10至12中的任一权利要求所述的系统,其中所述至少一个日志文件 包括由通信网络的网络基础设施维护的日志文件,在其上执行有客户端应用的应用客户端 被通信地链接到所述通信网络的网络基础设施。
16. 根据权利要求10至12中的任一权利要求所述的系统,其中所述至少一个日志文件 包括由通信网络的网络基础设施维护的日志文件,主控所述web应用的web服务器被通信 地链接到所述通信网络的网络基础设施。
17. 根据权利要求10至16中的任一权利要求所述的系统,其中: 所述日志文件数据包括至少一个cookie ;并且 所述系统还包括刷新装置,所述刷新装置可操作用于刷新用于所述HTTP请求的所述 cookie。
18. 根据权利要求10所述的系统,所述系统还包括: 标识装置,可操作用于标识在采集的所述日志文件数据中标识的至少一个URL ;并且 其中用于生成所述至少一个HTTP请求的所述生成装置包括用于在所述HTTP请求中向 所述URL提交危险净荷的提交装置。
19. 一种用于动态扫描web应用的计算机程序产品,所述计算机程序产品包括:能由处 理电路读取并且存储指令的计算机可读存储介质,所述指令用于由所述处理电路执行以用 于执行根据权利要求1至9中的任一权利要求所述的方法。
20. -种在计算机可读介质上存储的并且能向数字计算机的内部存储器中加载的计算 机程序,包括软件代码部分,当所述程序在计算机上被运行时,所述软件代码部分用于执行 根据权利要求1至9中的任一权利要求所述的方法。
【文档编号】H04L12/26GK104067561SQ201380006346
【公开日】2014年9月24日 申请日期:2013年1月11日 优先权日:2012年1月24日
【发明者】O·塞加尔, R·巴查, R·萨尔茨曼, R·诺丹, I·克雷驰曼, Y·阿米特, G·洛特姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1