CN104067561A - 通过使用web流量信息动态扫描web应用 - Google Patents

通过使用web流量信息动态扫描web应用 Download PDF

Info

Publication number
CN104067561A
CN104067561A CN201380006346.6A CN201380006346A CN104067561A CN 104067561 A CN104067561 A CN 104067561A CN 201380006346 A CN201380006346 A CN 201380006346A CN 104067561 A CN104067561 A CN 104067561A
Authority
CN
China
Prior art keywords
journal file
web application
http request
web
arbitrary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380006346.6A
Other languages
English (en)
Other versions
CN104067561B (zh
Inventor
O·塞加尔
R·巴查
R·萨尔茨曼
R·诺丹
I·克雷驰曼
Y·阿米特
G·洛特姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104067561A publication Critical patent/CN104067561A/zh
Application granted granted Critical
Publication of CN104067561B publication Critical patent/CN104067561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

从至少一个日志文件采集日志文件数据。可以根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求。可以向web应用传达HTTP请求。可以接收对HTTP请求的至少一个HTTP响应。可以分析HTTP响应以执行web应用的验证。可以输出验证的结果。

Description

通过使用WEB流量信息动态扫描WEB应用
技术领域
在本说明书内公开的一个或者多个实施例涉及Web安全扫描器。
背景技术
Web应用安全扫描器是自动测试web应用的安全状况的软件工具。这些扫描器尝试对在web应用内的安全问题、比如结构化查询语言(SQL)注入、跨站点脚本编写、命令注入和其它安全弱点进行定位。为了使用这样的扫描器,用户通常配置扫描的范围和限制,并且提供登录信息。用户然后可以人工或者自动爬取web应用以允许扫描器采集关于web应用的结构的信息、与web应用关联的统一资源定位符(URL)、cookie和目录。爬取的目的是从web应用采集资源以便对这些资源中的每个资源的弱点检测。然后操纵并且向web应用提交在爬取web应用期间获得的信息以对web应用执行测试,并且对从web应用接收的响应执行验证。
因此,在本领域中需要解决前述问题。
发明内容
在本说明书内公开的一个或者多个示例涉及动态扫描web应用。一个实施例可以包括从至少一个日志文件采集日志文件数据。可以根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个超文本传送协议(HTTP)请求。可以向web应用传达HTTP请求。可以接收对HTTP请求的至少一个HTTP响应。可以分析HTTP响应以执行web应用的验证。可以输出验证的结果。
从第一方面来看,本发明提供一种用于动态扫描web应用的方法,该方法包括:从至少一个日志文件采集日志文件数据;根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求;向web应用传达HTTP请求;接收对HTTP请求的至少一个HTTP响应;分析HTTP响应以执行web应用的验证;以及输出验证的结果。
从又一方面来看,本发明提供一种动态扫描web应用的系统,该系统包括:计算机可读存储介质;被配置为发起可执行操作的处理器;可操作用于从至少一个日志文件采集日志文件数据的采集装置;可操作用于根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求的生成装置;可操作用于向web应用传达HTTP请求的传达装置;可操作用于接收对HTTP请求的至少一个HTTP响应的接收装置;可操作用于分析HTTP响应以执行web应用的验证的分析装置;以及可操作用于输出验证的结果的输出装置。
从又一方面来看,本发明提供一种动态扫描web应用的系统,该系统包括:计算机可读存储介质;以及被配置为发起可执行操作的处理器,可执行操作包括:从至少一个日志文件采集日志文件数据;根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求;向web应用传达HTTP请求;接收对HTTP请求的至少一个HTTP响应;分析HTTP响应以执行web应用的验证;并且输出验证的结果。
从又一方面来看,本发明提供一种用于动态扫描web应用的计算机程序产品,该计算机程序产品包括能由处理电路读取并且存储指令的计算机可读存储介质,指令用于由处理电路执行以用于执行方法,该方法用于执行本发明的步骤。
从又一方面来看,本发明提供一种在计算机可读介质上存储的并且能向数字计算机的内部存储器中加载的计算机程序,该计算机程序包括当所述程序在计算机上被运行时用于执行本发明的步骤的软件代码部分。
另一实施例可以包括一种动态扫描web应用的系统。该系统可以包括计算机可读存储介质和处理器。处理器可以被配置为发起可执行操作以执行在本说明内公开的各种过程和/或功能。
另一实施例可以包括一种用于动态扫描web应用的计算机程序产品。该计算机程序产品可以包括具有随其体现的计算机可读程序代码的计算机可读存储介质,该计算机可读程序代码被配置为执行在说明书内公开的各种操作和/或功能。
附图说明
现在将参照如以下各图中所示优选实施例仅通过示例描述本发明:
图1是图示根据本发明的一个优选实施例的用于动态扫描web应用的系统的框图;
图2是图示根据本发明的一个优选实施例的动态扫描web应用的方法的流程图;并且
图3是图示根据本发明的一个优选实施例的安全客户端的框图。
具体实施方式
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。Java以及所有基于Java的商标和标识为Oracle和/或其附属机构的商标或注册商标。
下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
本实施例涉及动态扫描web应用。更具体而言,可以访问来自通过在先使用和/或开发文本应用而生成的信息日志的数据。这一信息可以由web应用安全扫描器访问以采集关于web应用的结构的信息。取代爬取web应用或者除了爬取web应用之外,web应用安全扫描器可以使用访问的信息以使用从与web应用的先前现实交互中生成的已知信息来练习(exercise)web应用。因此,可以基于这些先前现实交互来测试web应用的安全。这些先前交互可以指示如果仅实施web应用的爬取则原本可能遗漏的境况。例如使用传统爬取功能可能未到达web应用的基于用户交互的某些领域,并且使用先前已知的安全测试解决方案可能遗漏这样的领域。然而本发明经由来自信息日志的采集的信息可以标识web应用的这样的领域,并且在安全测试期间访问这样的领域。因此,通过使用信息日志,web应用安全扫描器可以标识web应用中的原本不会察觉的安全弱点、由此增强web应用安全扫描器执行的安全分析。
图1是图示根据本发明的一个优选实施例的用于动态扫描web应用的系统100的框图。该系统可以包括被配置为通信地链接一个或者多个系统、比如web服务器120、一个或者多个应用客户端130和/或安全客户端160的通信网络110。通信网络110可以是任何类型的网络、比如先前描述的网络中的任何网络。
系统100可以包括web服务器120。Web服务器120可以是包括至少一个处理器的任何处理系统。Web服务器120还可以包括如这里将描述的存储器单元、比如本地存储器和/或一个或者多个体存储设备。Web服务器120可以被配置为主控或者执行web应用122。web应用122可以是可经由通信网络110访问的应用。Web服务器120也可以被配置为在一个或者多个日志文件124中存储与对web应用122的客户端访问有关的信息和/或与对这样的客户端访问的响应有关的信息。
系统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交换信息的任何其它应用。
应用客户端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响应。
HTTP请求136和HTTP响应138可以统称为通信流量。通信流量可以包括统一资源定位符(URL)、异步JavaScript和XML(AJAX)请求以及对应响应、向web应用的领域的请求、HTTP动词、参数、数据、表单值、cookie、post请求、查询和/或正文参数、用户标识符、口令等。可以动态生成(例如基于用户与客户端应用132的交互)、人工生成(例如基于用户输入生成)、自动或者人工选择等URL。如这里所用,用户是人。
在本发明的一个优选实施例中,可以经由通信网络110通信地链接web服务器120和应用客户端130。在另一实施例中,web服务器120和特定应用客户端130可以是相同机器。在其中web服务器120不是与应用客户端130中的一个或者多个应用客户端相同的机器的一个实施例中,可以提供用于通信地链接web服务器120和应用客户端130的网络基础设施。例如可以提供用于将web服务器120链接到通信网络110的服务器侧网络基础设施140,并且可以提供用于将应用客户端130中的一个或者多个应用客户端通信地链接到通信网络110的客户端侧基础设施150。
网络构架140、150可以包括但不限于网络适配器、无线网络适配器、接入点、路由器、交换机、防火墙、网关、代理设备或者服务器、反代理设备或者服务器等。就这一点而言,网络基础设施140、150可以是通信网络110的节点。可以在web服务器120与应用客户端130之间共享网络基础设施140、150的部件。例如如果web服务器120和应用客户端130在相同子网上,则它们各自可以具有或者可以链接到相应网络适配器、但是共享公共路由器、交换机、防火墙、网关等。就这一点而言,服务器侧网络基础设施140和客户端侧基础设施150的部件可以是web服务器120和应用客户端130二者公共的,但是无需是这样的情况。
服务器侧网络基础设施140和/或客户端侧基础设施150也可以被配置为在一个或者多个日志文件134中存储与客户端应用132对web应用122的访问有关的信息和/或与对这样的访问的响应有关的信息。例如服务器侧网络基础设施140可以向一个或者多个日志文件144存储这样的信息,并且客户端侧网络基础设施150可以向一个或者多个日志文件154存储这样的信息。由于可以提供多个应用客户端130,所以可以在系统100的一个或者多个部件之中分布日志文件134、154。
可以在日志文件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文件)等。
系统100也可以包括安全客户端160。在本发明的一个优选实施例中,安全客户端160可以是与应用客户端130不同的机器。在另一实施例中,安全客户端160可以是与应用客户端130相同的机器。在其中安全客户端160是与应用客户端130不同的实施例中,安全客户端160可以是包括至少一个处理器的任何处理系统。在这样的实施例中,安全客户端160还可以包括如这里将描述的存储器单元、比如本地存储器和/或一个或者多个体存储设备。
安全客户端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对应的数据。
在本发明的一个优选实施例中,安全扫描器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可以从该数据存储设备访问这样的信息。在本领域中已知的导出和导入操作可以用来采集数据,但是本发明在此方面不受限制。
可以用任何适当方式标识从日志文件124、134、144和/或154采集的数据用于采集。例如可以在日志文件124、134、144和/或154中搜寻与web应用122关联的特定URL、可以应用数据模式匹配以搜索日志文件124、134、144和/或154以标识与web应用122关联的特定数据模式或者参数名等。另外,可以向一个或者多个XML文档、HAR文件或者任何其它适当数据文件中录入来自日志文件124、134、144和/或154的数据以有助于安全扫描器162扫描数据以标识相关信息。
为了分析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高度地相关。
在示例中,安全扫描器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一起使用。
采集的日志文件数据164可以包含冗余信息。在这样的情况下,安全扫描器162可以过滤在采集的日志文件数据164中包含的信息以例如去除与HTTP请求136和HTTP响应138对应的冗余信息。另外,在生成HTTP请求166时,安全扫描器162可以将来自采集的日志文件数据164的数据或者数据的至少一部分变换成web应用122可识别的一个或者多个数据结构。
在本发明的一个优选实施例中,HTTP请求136中的各种HTTP请求可能在它们访问web应用提供的相同网页并且向相同表单中录入数据这一点上是冗余的。虽然向相同表单中录入的数据可以不同,但是可以过滤HTTP请求136以排除使另一HTTP请求136已经解决的向表单中录入数据的过程重复的HTTP请求136,但是无需是这样的情况。
另外,在生成HTTP请求166时,安全扫描器162可能重复一个或者多个对应HTTP请求136录入的数据和/或录入与对应HTTP请求136录入的数据不同的数据。例如安全扫描器162可以用与在对应HTTP请求136中包含的表单数据不同的表单数据生成HTTP请求166、但是被配置为具体对于在web应用122中的安全弱点进行测试。在示例中,HTTP请求166标识的URL和表单参数名可以与一个或者多个HTTP请求136标识的URL和表单参数名相同,但是在HTTP请求166中提交的与相同表单参数名对应的参数可以不同。例如可以在HTTP请求166中提交一个或者多个危险净荷(hazardouspayloads)以对于可以在web应用122中存在的安全弱点进行测试。因而,可以经由HTTP请求166向标识的URL提交一个或者多个危险净荷。危险净荷可以例如是被配置为执行SQL注入、跨站点脚本编写、命令注入的数据或者被配置为对于安全弱点测试web应用122的任何其它数据。
在一些实例中,HTTP响应168可以标识需要的用户输入。如果在采集的日志文件数据164中包含这样的用户输入,则安全扫描器162可以用HTTP请求166对这样的HTTP响应168做出响应,这些HTTP请求包括来自采集的日志文件数据164的采集的数据。然而本发明在此方面不受限制。例如,如果HTTP响应168需要涉及在计算(CAPTCHA)时使用的挑战-响应测试,则安全扫描器162可以被配置为提示安全扫描器162的用户录入CAPTCHA请求的用户输入。在其它境况中,安全扫描器可以用如下HTTP响应168对HTTP响应168做出响应,该HTTP响应168包含被配置为对于web应用122的安全弱点进行测试的一个或者多个危险净荷。
在生成HTTP请求166和接收HTTP响应168之时,安全扫描器162可以例如通过分析HTTP响应168来执行web应用的安全验证。安全扫描器162还可以例如通过向另一日志文件输出结果和/或向用户呈现结果输出验证的结果。
图2是图示根据本发明的另一实施例的动态扫描web应用的方法200的流程图。在步骤202,可以从一个或者多个日志文件采集日志文件数据。如指出的那样,这样的日志文件可以由各种系统来维护,各种系统例如应用客户端(客户端应用在该应用客户端上被执行以访问web应用)主控web应用的web服务器、在其上执行有客户端应用的应用客户端被通信地链接到的通信网络的网络基础设施、和/或主控web应用的web服务器被通信地链接到的通信网络的网络基础设施。网络基础设施可以包括通信网络的一个或者多个节点。
在步骤204,可以根据采集的日志文件数据生成对练习web应用以执行web应用的安全分析的至少一个HTTP请求。例如HTTP请求可以标识URL、HTTP动词、AJAX请求和/或响应、参数、数据、表单值、cookie、post请求、查询和/或正文参数、用户标识符、密码或者可以经由HTTP传达的任何其它信息。在步骤206,可以向web应用传达HTTP请求。
在步骤208,可以接收对HTTP请求的至少一个HTTP响应。例如可以从web应用接收HTTP响应。在步骤210,可以分析HTTP响应以执行web应用的验证。在步骤212,可以例如向数据文件或者例如经由被配置为执行安全扫描器的安全客户端的显示器向用户输出验证的结果。
图3是图示根据本发明的一个优选实施例的安全客户端160的框图。安全客户端160包括可以通过系统总线315或者其它适当电路装置耦合到存储器单元310的至少一个处理器305。这样,安全客户端160可以在存储器单元310内存储程序代码。处理器305可以经由系统总线315执行从存储器单元310访问的程序代码。例如在一个方面中,可以实施安全客户端160为适合用于存储和/或执行程序代码的计算机。然而应当理解可以用能够执行在本说明书内描述的功能和/或操作的包括处理器和存储器的任何系统的形式实施安全客户端160。
存储器单元310可以包括一个或者多个物理存储器设备、如比如本地存储器320和一个或者多个体存储设备325。本地存储器320是指一般在实际执行程序代码期间使用的随机存取存储器或者其它非持续存储器设备。可以实施体存储设备325为硬驱动或者其它持久数据存储设备。安全客户端160也可以包括一个或者多个高速缓存存储器(未示出),该一个或者多个高速缓存存储器提供至少一些程序代码的暂时存储以便减少在执行期间必须从体存储设备325取回程序代码的次数。
输入/输出(I/O)设备、比如键盘330、显示器335和指示设备340可选地可以耦合到安全客户端360。I/O设备可以直接或者通过居间I/O控制器耦合到安全客户端160。一个或者多个网络适配器345也可以耦合到安全客户端160以使安全客户端160能够变成通过居间专有或者公用网络耦合到其它系统、计算机系统(例如web服务器)、远程打印机和/或远程存储设备。调制解调器、线缆调制解调器和以太网卡是可以与安全客户端160一起使用的不同类型的网络适配器345的示例。
如在图3中描绘的那样,存储器单元310可以存储安全扫描器162。以可执行程序代码的形式实施的安全扫描器162可以由安全客户端160执行,并且这样可以被视为安全客户端160的一部分。安全客户端160可以访问采集的日志文件数据164。采集的日志文件数据164可以存储于存储器单元310中或者存储于另一数据存储设备或者系统上,安全客户端160可以从该数据存储设备或者系统访问采集的日志文件数据164。例如安全客户端160可以在需要时从对应数据日志直接访问采集的日志文件数据164,用户可以采集日志文件数据164并且向安全客户端160提供采集的日志文件数据164。安全扫描器162可以执行这里描述的过程和方法以执行web应用的安全扫描、执行web应用的安全验证并且输出安全验证的结果。如这里所用,“正在输出”和/或“输出”可以意味着在存储器单元310中存储、例如向在存储器单元310中存储的文件写入、向显示器335或者其它外围输出设备写入、播放可听通知、向另一系统发送或者传输、导出等。
相似编号已经用来贯穿本说明书指代相同项。在本发明的一个优选实施例中,可以将工作流服务器实现为 IBM、Rational和AppScan是国际商务机器公司在全球许多辖区中注册的商标。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系构架、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
这里所用术语仅为了描述具体实施例而未旨在于限制公开内容的示例实施例。如这里所用,除非上下文另有明示,单数形式“一个”和“该”旨在于也包括复数形式。还将理解术语“包括”在说明书中使用时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组合。
所附权利要求中的所有装置或者步骤加上功能要素的对应结构、材料、动作和等效物旨在于包括用于与如具体要求保护的其它权利要求要素组合执行功能的任何结构、材料或者动作。已经出于示例的目的而呈现本公开内容的描述,但是该描述未旨在于穷举公开内容或者使公开内容限于公开的实施例。许多修改和变化将为本领域普通技术人员所清楚而未脱离公开内容的范围和精神实质。选择和描述实施例以便最好地说明公开内容的原理和实际应用并且使本领域其他普通技术人员能够对于具有如与设想的特定使用相配的各种修改的各种实施例理解公开内容。

Claims (20)

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中的任一权利要求所述的方法。
CN201380006346.6A 2012-01-24 2013-01-11 用于动态扫描web应用的方法和系统 Active CN104067561B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/357,251 US9213832B2 (en) 2012-01-24 2012-01-24 Dynamically scanning a web application through use of web traffic information
US13/357,251 2012-01-24
PCT/IB2013/050266 WO2013111027A1 (en) 2012-01-24 2013-01-11 Dynamically scanning a web application through use of web traffic information

Publications (2)

Publication Number Publication Date
CN104067561A true CN104067561A (zh) 2014-09-24
CN104067561B CN104067561B (zh) 2018-01-02

Family

ID=48798366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380006346.6A Active CN104067561B (zh) 2012-01-24 2013-01-11 用于动态扫描web应用的方法和系统

Country Status (5)

Country Link
US (2) US9213832B2 (zh)
CN (1) CN104067561B (zh)
DE (1) DE112013000387B4 (zh)
GB (1) GB2515663B (zh)
WO (1) WO2013111027A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213832B2 (en) 2012-01-24 2015-12-15 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
CN105306587A (zh) * 2015-11-13 2016-02-03 网易(杭州)网络有限公司 业务数据的处理方法、装置与系统
CN106156634A (zh) * 2016-07-13 2016-11-23 成都知道创宇信息技术有限公司 一种识别Web程序漏洞的方法
CN107204991A (zh) * 2017-07-06 2017-09-26 深信服科技股份有限公司 一种服务器异常检测方法及系统
CN107332720A (zh) * 2017-08-22 2017-11-07 河钢股份有限公司承德分公司 一种收集交换机日志的装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990183B2 (en) * 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US10521288B2 (en) * 2012-11-07 2019-12-31 International Business Machines Corporation Collaborative application testing
US10108801B2 (en) * 2012-11-15 2018-10-23 Qualys, Inc. Web application vulnerability scanning
WO2016085499A1 (en) * 2014-11-26 2016-06-02 Hewlett Packard Enterprise Development Lp Determine vulnerability using runtime agent and network sniffer
US9923916B1 (en) * 2015-06-17 2018-03-20 Amazon Technologies, Inc. Adaptive web application vulnerability scanner
US9853940B2 (en) 2015-09-24 2017-12-26 Microsoft Technology Licensing, Llc Passive web application firewall
CN105491111B (zh) * 2015-11-24 2019-04-16 镇江恒驰科技有限公司 一种基于wcf的物联网通信方法
JP6801267B2 (ja) * 2016-07-04 2020-12-16 富士通株式会社 評価プログラム、評価方法、評価装置および情報処理装置
US10171290B1 (en) * 2016-08-25 2019-01-01 Sprint Communications Company L.P. Systems and methods for real-time correction of core applications
US11522901B2 (en) * 2016-09-23 2022-12-06 OPSWAT, Inc. Computer security vulnerability assessment
US10542025B2 (en) * 2017-12-26 2020-01-21 International Business Machines Corporation Automatic traffic classification of web applications and services based on dynamic analysis
US11374959B2 (en) * 2018-11-26 2022-06-28 International Business Machines Corporation Identifying and circumventing security scanners
US10769220B1 (en) * 2019-04-09 2020-09-08 Coupang Corp. Systems, apparatuses, and methods of processing and managing web traffic data
US11663339B2 (en) * 2019-07-31 2023-05-30 International Business Machines Corporation Security testing based on user request
US10855717B1 (en) * 2019-09-16 2020-12-01 Whitehat Security, Inc. Systems and methods of intelligent and directed dynamic application security testing
US11297091B2 (en) 2019-09-24 2022-04-05 Bank Of America Corporation HTTP log integration to web application testing
CN111314326B (zh) * 2020-02-01 2022-06-21 深信服科技股份有限公司 Http漏洞扫描主机的确认方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138426A1 (en) * 2003-11-07 2005-06-23 Brian Styslinger Method, system, and apparatus for managing, monitoring, auditing, cataloging, scoring, and improving vulnerability assessment tests, as well as automating retesting efforts and elements of tests
CN101212353A (zh) * 2006-12-28 2008-07-02 国际商业机器公司 用于数据获取和分析的系统和方法
CN101902470A (zh) * 2010-07-14 2010-12-01 南京大学 一种基于表单特征的Web安全漏洞动态检测方法
CN101933001A (zh) * 2008-01-31 2010-12-29 雅虎公司 在集群系统中执行软件性能测试作业

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE414943T1 (de) * 2000-03-03 2008-12-15 Ibm System zur bestimmung von schwächen von web- anwendungen
US6981180B1 (en) 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US6574617B1 (en) 2000-06-19 2003-06-03 International Business Machines Corporation System and method for selective replication of databases within a workflow, enterprise, and mail-enabled web application server and platform
US7027975B1 (en) * 2000-08-08 2006-04-11 Object Services And Consulting, Inc. Guided natural language interface system and method
GB2373418A (en) * 2001-03-16 2002-09-18 Kleinwort Benson Ltd Method and system to provide and manage secure access to internal computer systems from an external client
US6944670B2 (en) * 2002-03-13 2005-09-13 Commatch Ltd. Method and apparatus for multiple processing of a plurality of communication protocols on a single processing machine
ATE459048T1 (de) * 2002-03-26 2010-03-15 Nokia Siemens Networks Oy Verfahren und vorrichtung zum komprimieren von protokollierungsaufzeichnungsinformationen
US7602731B2 (en) * 2004-12-22 2009-10-13 Intruguard Devices, Inc. System and method for integrated header, state, rate and content anomaly prevention with policy enforcement
US7626940B2 (en) * 2004-12-22 2009-12-01 Intruguard Devices, Inc. System and method for integrated header, state, rate and content anomaly prevention for domain name service
WO2007038584A1 (en) 2005-09-27 2007-04-05 Stanley, Morgan Computer networks for providing a test environment
EP1994486B1 (en) * 2006-03-22 2015-03-04 BRITISH TELECOMMUNICATIONS public limited company Method and apparatus for automated testing of software
US20070288840A1 (en) * 2006-06-13 2007-12-13 David Andrew Girle System and method for parsing large xml documents transported across networks as xml encapsulated chunks
US8370929B1 (en) 2006-09-28 2013-02-05 Whitehat Security, Inc. Automatic response culling for web application security scan spidering process
US7984015B2 (en) 2006-10-20 2011-07-19 Oracle International Corporation Database workload capture and replay architecture
CN101399658B (zh) 2007-09-24 2011-05-11 北京启明星辰信息技术股份有限公司 一种安全日志分析方法及系统
KR101001132B1 (ko) 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 웹 어플리케이션의 취약성 판단 방법 및 시스템
US8286225B2 (en) * 2009-08-07 2012-10-09 Palo Alto Research Center Incorporated Method and apparatus for detecting cyber threats
KR101510432B1 (ko) * 2010-12-22 2015-04-10 한국전자통신연구원 트래픽 분석 장치
CN102185930B (zh) 2011-06-09 2013-04-03 北京理工大学 一种sql注入漏洞检测方法
US9213832B2 (en) 2012-01-24 2015-12-15 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138426A1 (en) * 2003-11-07 2005-06-23 Brian Styslinger Method, system, and apparatus for managing, monitoring, auditing, cataloging, scoring, and improving vulnerability assessment tests, as well as automating retesting efforts and elements of tests
CN101212353A (zh) * 2006-12-28 2008-07-02 国际商业机器公司 用于数据获取和分析的系统和方法
CN101933001A (zh) * 2008-01-31 2010-12-29 雅虎公司 在集群系统中执行软件性能测试作业
CN101902470A (zh) * 2010-07-14 2010-12-01 南京大学 一种基于表单特征的Web安全漏洞动态检测方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213832B2 (en) 2012-01-24 2015-12-15 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
CN105306587A (zh) * 2015-11-13 2016-02-03 网易(杭州)网络有限公司 业务数据的处理方法、装置与系统
CN105306587B (zh) * 2015-11-13 2019-04-12 网易(杭州)网络有限公司 业务数据的处理方法、装置与系统
CN106156634A (zh) * 2016-07-13 2016-11-23 成都知道创宇信息技术有限公司 一种识别Web程序漏洞的方法
CN106156634B (zh) * 2016-07-13 2019-06-14 成都知道创宇信息技术有限公司 一种识别Web程序漏洞的方法
CN107204991A (zh) * 2017-07-06 2017-09-26 深信服科技股份有限公司 一种服务器异常检测方法及系统
CN107332720A (zh) * 2017-08-22 2017-11-07 河钢股份有限公司承德分公司 一种收集交换机日志的装置

Also Published As

Publication number Publication date
GB2515663B (en) 2017-08-30
US20130191920A1 (en) 2013-07-25
CN104067561B (zh) 2018-01-02
US9208309B2 (en) 2015-12-08
US9213832B2 (en) 2015-12-15
DE112013000387T5 (de) 2014-09-04
WO2013111027A1 (en) 2013-08-01
US20130191913A1 (en) 2013-07-25
GB201413442D0 (en) 2014-09-10
GB2515663A (en) 2014-12-31
DE112013000387B4 (de) 2020-08-27

Similar Documents

Publication Publication Date Title
CN104067561A (zh) 通过使用web流量信息动态扫描web应用
US10387656B2 (en) Integrated interactive application security testing
CN103888490B (zh) 一种全自动的web客户端人机识别的方法
CN110855676B (zh) 网络攻击的处理方法、装置及存储介质
US8285778B2 (en) Protecting web application data
CN112583815B (zh) 一种操作指令管理方法、装置
CN107104924B (zh) 网站后门文件的验证方法及装置
US20220198025A1 (en) Web Attack Simulator
CN110808840A (zh) 业务处理方法及装置、电子设备、存储介质
Suteva et al. Evaluation and testing of several free/open source web vulnerability scanners
CN112988599B (zh) 一种页面调试方法、装置、电子设备和存储介质
EP3433782B1 (en) Integrated interactive application security testing
CN108322427A (zh) 一种对访问请求进行风控的方法与设备
CN103647652B (zh) 一种实现数据传输的方法、装置和服务器
CN106209487B (zh) 用于检测网站中网页的安全漏洞的方法及装置
CN110581841B (zh) 一种后端反爬虫方法
US11297091B2 (en) HTTP log integration to web application testing
Jaswal Mastering Metasploit: Take your penetration testing and IT security skills to a whole new level with the secrets of Metasploit
CN105959278B (zh) 一种调用vpn的方法、设备和系统
Vasileios Grammatopoulos et al. A web tool for analyzing FIDO2/WebAuthn Requests and Responses
CA3204750A1 (en) Web attack simulator
CN110278178A (zh) 一种登录方法、设备及可读存储介质
Rehim Effective python penetration testing
Hammoudeh et al. The Study on Assessment of Security Web Applications.
CN105933310A (zh) 防盗链方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant