CN108322458A - Web应用入侵检测方法、系统、计算机设备和存储介质 - Google Patents
Web应用入侵检测方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108322458A CN108322458A CN201810090868.3A CN201810090868A CN108322458A CN 108322458 A CN108322458 A CN 108322458A CN 201810090868 A CN201810090868 A CN 201810090868A CN 108322458 A CN108322458 A CN 108322458A
- Authority
- CN
- China
- Prior art keywords
- intrusion
- request
- web
- detection
- function
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols 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)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种Web应用入侵检测方法、系统、计算机设备和存储介质。该方法包括:当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和包括多个字节码文件的工具包;字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;当接收到客户终端通过代理服务器发送的HTTP请求时,根据HTTP请求执行相应的业务函数,对携带了代理服务器添加的入侵模拟字符串的请求体进行业务处理;当业务函数调用相应的接口函数时,利用接口函数中的检测代码对处理后的请求体是否仍包含入侵模拟字符串进行检测,若是,检测结果为Web应用存在入侵风险;根据检测结果生成HTTP响应,将HTTP响应返回至代理服务器。采用本方法能够提高检测效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种Web应用入侵检测方法、系统、计算机设备和存储介质。
背景技术
近年来随着网络技术的广泛应用,越来越多的企业将Web应用程序(以下简称“Web应用”)作为重要的业务途径,因而对于Web应用的安全提出了更高的要求。为了提高Web应用安全性,需要对Web应用进行入侵检测,以发现Web应用可能存在的安全漏洞。入侵检测是对Web应用对应数据流中的攻击事件(又称“入侵事件”)进行检测。目前针对Web应用的攻击涵盖了从操作系统、Web应用到Web应用数据库等各个层次。攻击的形式主要包括SQL注入和非法注入等。传统方式人工通过黑盒的方式对Web应用进行入侵检测,或者人工输入一些接口名称到sqlmap等第三方检测工具,利用第三方检测工具对接口名称对应的Web应用进行入侵检测。人工触发对入侵事件进行检测时效性差,难以实现对入侵事件的实时检测,检测效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够对Web应用进行入侵检测以及有效提高检测效率的Web应用入侵检测方法、系统、计算机设备和存储介质。
一种Web应用入侵检测方法,所述方法包括:
当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;利用所述入侵检测组件在所述接口函数中添加检测代码;当接收到客户终端通过代理服务器发送的HTTP请求时,所述HTTP请求包括请求体,所述请求体包括所述代理服务器添加的入侵模拟字符串;根据所述HTTP请求执行相应的业务函数,对所述请求体进行业务处理;在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当业务处理后的请求体仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险;根据所述检测结果生成所述HTTP请求对应的HTTP响应,将所述HTTP响应返回至所述代理服务器;使所述代理服务器对所述检测结果进行记录。
一种Web应用入侵检测方法,所述方法包括:
接收客户终端发送的HTTP请求,所述HTTP请求包括请求体;在所述请求体中添加预设的入侵模拟字符串,对所述HTTP请求进行更新;将更新后的HTTP请求发送至Web服务器,所述Web服务器根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;利用所述入侵检测组件在所述接口函数中添加检测代码;所述Web服务器根据更新后的HTTP请求执行相应的业务函数,对所述请求体进行业务处理,在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当业务处理后的请求体仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险,根据所述检测结果生成所述HTTP请求对应的HTTP响应;接收所述Web服务器返回的所述HTTP响应,对所述检测结果进行记录。
一种Web应用入侵检测系统,所述系统包括:客户终端、代理服务器和Web服务器;所述Web服务器上运行了Web应用;
所述客户终端,用于向所述代理服务器发送的HTTP请求,所述HTTP请求包括请求体;
所述代理服务器,用于在所述请求体中添加预设的入侵模拟字符串,对所述HTTP请求进行更新,将更新后的HTTP请求发送至所述Web服务器;
所述Web服务器,用于在Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;利用所述入侵检测组件在所述接口函数中添加检测代码;
所述Web服务器还用于根据更新后的HTTP请求执行相应的业务函数,对所述请求体进行业务处理,在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险,根据所述检测结果生成所述HTTP请求对应的HTTP响应,将所述HTTP响应返回至所述代理服务器;
所述代理服务器还用于对所述检测结果进行记录。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
上述Web应用入侵检测方法、系统、计算机设备和存储介质,当Web应用启动时,根据预先配置的启动参数可以加载入侵检测组件以及包括多个字节码文件的工具包;利用入侵检测组件,可以在相应字节码文件中的接口函数中添加检测代码;客户终端可以通过代理服务器向Web服务器发送HTTP请求;代理服务器可以通过在HTTP请求的请求体中添加预设的入侵模拟字符串来对HTTP请求进行更新;Web服务器根据更新后的HTTP请求可以执行相应的字节码文件,利用字节文件中的业务函数对请求体进行业务处理,利用字节文件中的插入了检测代码的接口函数可以对业务处理后的请求体是否仍包含入侵模拟字符串进行检测;根据检测结果可以判断Web应用是否存在入侵风险,进而可以生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器,可以使代理服务器对检测结果进行记录。由于只要用户通过客户端访问Web应用,即可触发Web服务器利用入侵检测组件自动对Web应用进行入侵检测,可以实现实时检测,且可以提高检测效率;采用入侵模拟字符串可以模仿用户多种多样的恶意访问,多种多样的恶意访问可以采用相同的入侵检测机制,且该入侵检测机制是根据入侵模拟字符串的有无判断Web应用是否存在入侵风险,检测逻辑简单,从而可以提高入侵检测效率。
附图说明
图1为一个实施例中Web应用入侵检测方法的应用场景图;
图1A为另一个实施例中Web应用入侵检测方法的应用场景图;
图2为一个实施例中Web应用入侵检测方法的流程示意图;
图3为一个实施例中入侵检测组件在字节码文件中插入检测代码的示意图;
图4为另一个实施例中Web应用入侵检测方法的流程示意图;
图5为一个实施例中Web应用入侵检测系统的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的Web应用入侵检测方法,可以应用于如图1所示的应用环境中。其中,客户终端102通过网络与代理服务器104进行通信,代理服务器104通过网络与Web服务器106进行通信。其中,客户终端102可以是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,但并不局限于此。代理服务器104与Web服务器106分别可以是独立的服务器,也可以是多个服务器组成的服务器集群。
本申请提供的Web应用入侵检测方法,可以应用于Web应用的生产环境,也可以应用于Web应用的测试环境。当该方法应用于Web应用的测试环境时,代理服务器104与Web服务器106分别可以是物理服务器,也可以是虚拟服务器。
当代理服务器104为虚拟服务器时,可以在客户终端102对应的物理机上实现,也可以在其他的物理机上实现。如图1A所示,代理服务器104可以通过在物理机上运行代理程序实现。代理程序为用于创建HTTP代理服务器的应用程序。代理程序中预安装了入侵模拟组件。
当Web服务器106为虚拟服务器时,可以在客户终端102对应的物理机上实现,也可以在其他的物理机上实现。代理服务器104与Web服务器106可以在同一物理机上实现,也可以在不同的物理机上实现。如图1A所示,Web服务器106可以通过在物理机(又称“宿主机”)上部署虚拟机,并在虚拟机中运行目标软件来实现。目标软件为用于创建Web服务器的软件,如Tomcat软件等。物理机中预存储了入侵检测组件。通过目标软件创建的Web服务器106上运行了Web应用。当Web应用启动时,Web服务器106获取预先配置的启动参数,根据启动参数加载入侵检测组件和工具包。该工具包可以是多个Jar包(Java Archive,Java归档数据包),每个Jar包包括多个字节码文件。字节码文件包括业务函数或接口函数。Web服务器106利用入侵检测组件在多个接口函数中添加检测代码。
客户终端102上运行了用于访问Web应用的客户端。当用户在客户端进行输入操作时,客户终端102根据输入操作生成HTTP请求,将HTTP请求发送至代理服务器104。HTTP请求包括请求头和请求体。代理服务器104利用入侵模拟组件在请求体中添加预设的入侵模拟字符串,以对HTTP请求进行更新,将更新后的HTTP请求发送至Web服务器106。入侵模拟字符串用于模拟用户对Web应用的恶意访问。Web服务器106根据更新后的HTTP请求执行相应的字节码文件。具体的,Web服务器106通过业务函数对请求体进行业务处理,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测。若是,检测结果为Web应用存在入侵风险;反之,检测结果为Web应用不存在入侵风险。Web服务器106根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器104。代理服务器104对检测结果进行记录,供相关人员进行查询。上述整个入侵检测过程,当用户通过客户端访问Web应用时,Web服务器利用入侵检测组件自动对Web应用进行入侵检测,可以实现实时检测,且可以提高检测效率。
在一个实施例中,如图2所示,提供了一种Web应用入侵检测方法,以该方法应用于图1中的Web服务器为例进行说明,包括以下步骤:
步骤202,当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数。
步骤204,利用入侵检测组件在接口函数中添加检测代码。
为了提高Web应用安全性,在Web应用发布之前需要对Web应用进行入侵检测,以发现Web应用可能存在的安全漏洞。本申请提供的Web应用入侵检测方法,可以应用于Web应用的生产环境,也可以应用于Web应用的测试环境。以下将以应用于Web应用的测试环境为例进行描述。
当需要对Web应用进行入侵检测时,测试人员可以启动Web服务器上运行的Web应用。Web服务器可以是物理服务器,也可以是通过在宿主机上部署虚拟机,并在虚拟机中运行目标软件实现的虚拟服务器。以下将以Web服务器为虚拟服务器为例进行描述。
宿主机上预先存储了Web应用正常运行所必需的工具包。该工具包可以是多个Jar包,如虚拟机操作系统的Jar包,目标软件对应的Jar包以及Web应用对应的Jar包等。换言之,该工具包以Jar包的方式记录了多段业务代码,Web应用利用该工具包可以实现多种业务功能。每个Jar包包括对相应业务代码进行编译得到的多个字节码文件。每个字节码文件对应着业务代码全局唯一的一个类或者API接口(Application Programming Interface,应用程序编程接口)的定义信息,由此每个字节码文件包括多个函数,如业务函数或接口函数。多个函数之间存在调用关系。
值得注意的是,面向接口编程的Web应用,为了提高兼容性,底层的API接口相同或相似,换言之,不同Web应用正常运行需要的字节码文件中的接口函数相同或相似。不同的Web应用正常运行需要的工具包可能存在差异,但只要Web应用对应的软件开发工具包(如JDK软件开发工具包)相似,且用于创建Web服务器的目标软件的版本相似,则不同的Web应用正常运行需要的字节码文件中的接口函数相同或相似。由于不同的Web应用的字节码文件中的接口函数相同或相似,且Web服务器执行字节码文件时,最终均会执行到底层的接口函数,而这些接口函数均提前加入了检测代码,从而该入侵检测方法对于多种Web应用是通用的。
宿主机上还预先存储了入侵检测组件。入侵检测组件可以是对Web应用进行入侵检测的插件,包括多个关注类以及每个关注类对应的注入点。关注类是指能够获取到用于判断是否存在入侵风险信息的关键的类,本实施例关注类可以是存在接口函数的类。注入点包括目标函数,检测代码以及检测代码在目标函数中的插入位置。其中,关注类包括多个函数,目标函数是指需要插入检测代码的函数,本实施例目标函数可以是预设的多个接口函数。检测代码用于对Web应用存在入侵风险进行检测。容易理解,不同的字节码文件对应的关注类和注入点可以不同。
当Web应用启动时,Web服务器根据启动参数加载预先存储在宿主机上的工具包和入侵检测组件。Web服务器的启动参数可以是相关人员预先通过目标软件配置的。可以理解,根据Web服务器上运行的操作系统的不同,启动参数对应的配置方式可以不同。例如,在Windows系统中,可以通过窗口页面的方式进行配置;在Linux系统中,可以通过命令行的方式进行配置。启动参数可以是入侵检测组件和工具包分别在宿主机的存储路径。Web服务器的启动参数仅需配置一次,后续Web服务器根据启动参数可以自动加载工具包和入侵检测组件,可以减少频繁配置的繁琐,从而可以提高Web应用入侵检测效率。
当Web服务器根据启动参数加载工具包和入侵检测组件时,入侵检测组件对工具包中多个字节码文件对应的类是否属于关注类分别进行检测。当字节码文件对应的类属于关注类时,入侵检测组件获取该关注类对应的目标函数,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码。在字节码文件的接口函数中预先插入检测代码,可以为后续根据用户随时对Web应用的访问检测Web应用是否存在入侵风险做准备。
传统方式为了实现实时检测,在生成Web应用时直接将检测代码注入业务代码,利用检测代码和业务代码编译生成Web应用,在Web应用运行时通过执行检测代码进行检测。虽然在Web应用中注入检测代码可以实现实时检测,但需要将检测代码与生成Web应用的业务代码绑定,使得Web应用重用性差,不易扩展。将检测代码与生成Web应用的业务代码绑定还会影响Web应用的开发效率和测试效率。例如,在测试时,需要在已经完成打包的业务代码中加入第三方工具包重新打包;在测试完成之后,为了适应生产环境,又需要将加入的第三方工具包去掉。本实施例当需要进行入侵检测时仅需在每次Web应用启动时加载入侵检测组件,无需对Web应用作任何改变,可以将Web应用的业务代码与检测代码分离,使得Web应用无需绑定额外的第三方工具包,从而可以减少对Web应用重用性以及扩展性的影响。
步骤206,当接收到客户终端通过代理服务器发送的HTTP请求时,HTTP请求包括请求体,请求体包括代理服务器添加的入侵模拟字符串;根据HTTP请求执行相应的业务函数,对请求体进行业务处理。
步骤208,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险。
当需要对Web应用进行入侵检测时,测试人员可以通过客户终端访问Web服务器。客户终端上运行了浏览器或APP(Application,应用程序)等客户端。客户终端的互联网访问方式被预先配置为通过代理服务器进行互联网访问。当测试人员在客户端进行输入操作时,客户终端根据测试人员的输入操作生成HTTP请求,将HTTP请求发送至配置的代理服务器。HTTP请求包括请求头和请求体。
实际操作中用户对在客户端对Web应用的恶意访问方式多种多样,传统方式需要针对每种恶意访问方式开发对应的正则匹配规则,不仅开发效率低,且由于检测逻辑复杂,使得对Web应用入侵检测的效率较低。本实施例在代理服务器上预安装了入侵模拟组件。入侵模拟组件可以是用于在请求体中添加入侵模拟字符串的插件。添加的方式可以是直接在HTTP请求中插入入侵模拟字符串,也可以在将HTTP请求中测试人员输入的信息替换为入侵模拟字符串,对此不做限制。在HTTP请求中添加入侵模拟字符串可以模仿用户对Web应用多种多样的恶意访问。入侵模拟字符串可以是预设的任意字符串,如“qpzm 123”等。代理服务器利用入侵模拟组件对HTTP请求进行更新,将更新后的HTTP请求发送至Web服务器。
HTTP请求的请求体记录了请求类型,Web服务器根据请求类型确定HTTP请求需要实现的业务功能,如登录、检索等。如前面所述,Web应用可以利用多个字节码文件实现多种业务功能,换言之,多个字节码文件的不同组合可以使Web应用实现不同的业务功能。Web服务器根据HTTP请求需要实现的业务功能,执行具有相应业务功能的多个字节码文件。具体的,Web服务器根据HTTP请求执行相应的业务函数,对请求体进行业务处理。
需要说明的是,Web应用自身可能存在对入侵风险的防御机制,例如,过滤特殊字符串、对指定字符串进行转义,开启或关闭某项功能等。在业务处理过程中,Web服务器可以利用Web应用自身的防御机制,对HTTP请求中的入侵模拟字符串进行过滤。
在进行业务处理过程中,当业务函数调用相应的接口函数时,Web服务器利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测。Web服务器通过检测业务处理后的请求体是否仍包含入侵模拟字符串,判断Web应用是否存在入侵风险,即判断Web应用是否存在安全漏洞。容易理解,若检测结果为处理后的请求体未包含入侵模拟字符串,表示Web应用不存在入侵风险,或即使存在也已被Web应用利用自身的防御机制过滤掉,从而表示Web应用自身在该业务功能的防御机制较为完善。反之,表示Web应用自身在该业务功能的防御机制不够完善,在相应的字节码文件中存在安全漏洞,需要修补。
需要说明的是,实现不同业务功能的多个字节码文件中,至少一个字节码文件存在添加了检测代码的接口函数。步骤210,根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器;使代理服务器对检测结果进行记录。
Web服务器预存了多个接口函数标识分别与一种或多种入侵事件标识的对应关系。接口函数标识可以是接口函数的函数名等。入侵事件标识可以是入侵事件的类型名称,如SQL注入(通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗Web服务器执行恶意的SQL命令)、命令注入、XXE(针对使用XML交互的Web应用程序的攻击方法)、SSRF(服务器端请求伪造)、反序列化等。
当检测结果为处理后的请求体仍包含入侵模拟字符串时,Web服务器获取被执行的字节码文件中接口函数的函数标识,根据接口函数标识与入侵事件标识的对应关系,识别HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成该HTTP请求对应的HTTP响应。当检测结果为处理后的请求体未包含入侵模拟字符串时,表示Web应用不存在入侵风险。
Web服务器根据检测结果生成HTTP请求对应的HTTP响应。检测结果包括Web应用是否存在入侵风险,以及当存在入侵风险时对应入侵事件的类型名称等信息。Web服务器将HTTP响应返回至代理服务器。代理服务器对检测结果进行存储,以方便Web应用的开发人员或测试人员进行查询。
本实施例中,当Web应用启动时,根据预先配置的启动参数可以加载入侵检测组件以及包括多个字节码文件的工具包;利用入侵检测组件,可以在相应字节码文件中的接口函数中添加检测代码;客户终端可以通过代理服务器向Web服务器发送HTTP请求;代理服务器可以通过在HTTP请求的请求体中添加预设的入侵模拟字符串来对HTTP请求进行更新;Web服务器根据更新后的HTTP请求可以执行相应的字节码文件,利用字节文件中的业务函数对请求体进行业务处理,利用字节文件中的插入了检测代码的接口函数可以对业务处理后的请求体是否仍包含入侵模拟字符串进行检测;根据检测结果可以判断Web应用是否存在入侵风险,进而可以生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器,可以使代理服务器对检测结果进行记录。由于只要用户通过客户端访问Web应用,即可触发Web服务器利用入侵检测组件自动对Web应用进行入侵检测,可以实现实时检测,且可以提高检测效率;采用入侵模拟字符串可以模仿用户多种多样的恶意访问,多种多样的恶意访问可以采用相同的入侵检测机制,且该入侵检测机制是根据入侵模拟字符串的有无判断Web应用是否存在入侵风险,检测逻辑简单,从而可以提高入侵检测效率。
在一个实施例中,根据预先配置的启动参数加载入侵检测组件和工具包的步骤包括:根据预先配置的启动参数加载入侵检测组件;入侵检测组件包括回调对象;当根据预先配置的启动参数加载工具包时,获取回调对象,根据回调对象生成对入侵检测组件的回调指令;入侵检测组件还包括多个关注类以及每个关注类对应的目标函数和检测代码;利用入侵检测组件在接口函数中添加检测代码的步骤包括:根据回调指令运行入侵检测组件;使入侵检测组件对多个字节码文件对应的类是否属于关注类分别进行检测,当字节码文件对应的类属于关注类时,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码。
宿主机上预先存储的工具包包括多个字节码文件。每个字节码文件多个函数,如业务函数或接口函数。多个函数之间存在调用关系。宿主机上预先存储的入侵检测组件包括多个关注类以及每个关注类对应的一个或多个注入点。注入点包括目标函数,检测代码以及检测代码在目标函数中的插入位置。例如,如图3所示,工具包包括多个字节码文件A、B和C,其中,字节码文件A对应的类包括业务函数A1~A4,字节码文件B对应的类包括业务函数B1~B2和接口函数B3,字节码文件C对应的类包括业务函数C1~C3、C6以及接口数C4~C5。入侵检测组件包括多个关注类X和Y,其中,关注类X对应多个注入点X1~X3,关注类Y对应多个注入点Y1~Y2。
不同类型的入侵事件对应检测代码可以采用相同的检测逻辑,即判断HTTP请求中检测是否存在入侵模拟字符串。容易理解,不同类型的入侵事件对应检测代码在业务代码的检测位置和检测参数可以不同,即需要注入的接口函数的名称和位置不同。
相关人员预先通过目标软件配置Web服务器的启动参数。启动参数可以是入侵检测组件和工具包分别在宿主机的存储路径,从而将入侵检测组件和工具包作为Web服务器的加载项。在将入侵检测组件配置为Web服务器加载项时,入侵检测组件向虚拟机添加一个回调对象,且该回调对象的回调条件为加载工具包。当需要启动Web应用时,Web服务器根据启动参数加载工具包和入侵检测组件。当Web服务器根据启动参数加载工具包时,产生一个对入侵检测组件的回调指令。入侵检测组件根据回调指令对工具包中多个字节码文件对应的类是否属于关注类分别进行检测。当字节码文件对应的类属于关注类时,入侵检测组件获取该关注类对应的目标函数,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码。例如,在上述举例中,若字节码文件B对应的类属于关注类Y,且字节码文件B中的接口函数B3与目标函数Y1的函数名相同,则在接口函数B3的相应位置插入检测代码Y1。
本实施例中,通过将入侵检测组件配置为Web服务器的加载项,可以使Web服务器加载工具包时通知入侵检测组件进行检测代码的添加,从而自动做好入侵检测准备,进而可以实现实时检测,提高检测效率;选择将检测代码插入接口函数,是由于不同业务功能的字节码文件最终均会执行到底层的接口函数,且不同的Web应用的字节码文件中的接口函数相同或相似,从而可以提高该入侵检测方法对于多种Web应用的通用性。
在一个实施例中,检测代码包括回调对象和检测逻辑代码;利用检测代码对处理后的请求体是否仍包含入侵模拟字符串进行检测的步骤包括:在处理后的请求体中捕获相应的输入信息;利用回调对象生成对检测逻辑代码的回调指令;根据回调指令执行检测逻辑代码,对输入信息否仍包含入侵模拟字符串进行检测。
入侵检测组件插入接口函数的检测代码包括回调对象和检测逻辑代码。其中,回调对象的回调条件为存在业务函数对检测代码所在接口函数的调用指令。不同类型的入侵事件对应检测逻辑代码可以相同或相似,但需要插入不同的接口函数。
Web服务器根据HTTP请求执行相应的业务函数,对请求体进行业务处理。在进行业务处理过程中,当业务函数调用相应的接口函数时,Web服务器利用回调对象产生一个对检测逻辑代码的回调指令,根据回调指令运行相应的检测逻辑代码,利用检测逻辑代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测。
本实施例中,在接口函数中添加对检测逻辑代码的回调对象,可以实现在业务函数调用接口函数时自动进行入侵检测,从而实现接口函数一旦被调用即可触发入侵检测,从而实现实时检测,提高检测效率。
在一个实施例中,根据检测结果生成HTTP请求对应的HTTP响应的步骤包括:当检测结果为处理后的请求体仍包含入侵模拟字符串时,获取被执行的字节码文件对应的接口函数的函数标识;获取预存的多个接口函数标识分别与一种或多种入侵事件标识的对应关系;根据对应关系识别HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成对应的HTTP响应。
通过执行不同的接口函数可以检测不同的入侵事件。执行一种接口函数可以实现一种或多种类型入侵事件的检测,换言之,接口函数与入侵事件之间存在一对一或一对多的对应关系。Web服务器对多个接口函数标识分别与一种或多种入侵事件标识的对应关系进行存储。例如,在上述举例中,接口函数B3对应的入侵事件标识可以是SQL注入或XXE,接口函数C4对应的入侵事件标识可以是SSRF等。
检测结果包括Web应用是否存在入侵风险,以及当存在入侵风险时对应入侵事件的类型名称、发生位置等信息。当检测结果为处理后的请求体仍包含入侵模拟字符串时,Web服务器获取被执行的字节码文件对应的接口函数的函数标识,根据接口函数标识与入侵事件标识的对应关系,识别HTTP请求对应的入侵事件标识。根据入侵事件标识对应的接口函数标识,Web服务器根据相应接口函数在相应字节码文件中的位置确定入侵事件的发生位置。Web服务器根据检测结果生成HTTP请求对应的HTTP响应。Web服务器根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器。
本实施例中,根据预存储的多个接口函数标识分别与一种或多种入侵事件标识的对应关系,可以直接根据执行的接口函数判断入侵事件的类型,提高检测效率。
在一个实施例中,如图4所示,提供了一种Web应用入侵检测方法,以该方法应用于图1中的代理服务器为例进行说明,包括以下步骤:
步骤402,接收客户终端发送的HTTP请求,HTTP请求包括请求体。
步骤404,在请求体中添加预设的入侵模拟字符串,对HTTP请求进行更新。
步骤406,将更新后的HTTP请求发送至Web服务器,Web服务器根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;Web服务器根据更新后的HTTP请求执行相应的业务函数,对请求体进行业务处理,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险,根据检测结果生成HTTP请求对应的HTTP响应。
步骤408,接收Web服务器返回的HTTP响应,对检测结果进行记录。
在一个实施例中,HTTP请求还包括请求头,在请求体中添加预设的入侵模拟字符串的步骤包括:在请求头中将用于表征是否需要进行入侵检测的开关标志位设置为第一预设值或第二预设值;当开关标志位为第一预设值时,在请求体中添加预设的入侵模拟字符串。
代理服务器在HTTP请求的请求头中添加是否需要进行入侵检测的开关信息。具体的,HTTP请求的请求头包括用于表征是否需要进行入侵检测的开关标志位。代理服务器利用入侵模拟组件将该开关标志位设置为第一预设值或第二预设值。只有开关标志位为第一预设值时,Web服务器才需要按照上述方式对HTTP请求Web应用是否存在入侵风险进行检测。在另一个实施例中,代理服务器对当前的互联网访问环境进行检测,在当前的互联网访问环境较为安全时,代理服务器可以将该开关标志位设置为第二预设值,使得Web服务器无需进行入侵检测,可以减少对Web服务器资源的占用。
在一个实施例中,检测结果包括入侵事件的类型;方法还包括:根据入侵事件对应的接口函数,在相应的字节码文件中确定入侵事件的发生位置;根据入侵事件的发生位置和类型生成对Web应用的改进文件;将改进文件发送至指定终端,使指定终端根据改进文件对Web应用进行改进。
当检测结果为处理后的请求体未包含入侵模拟字符串时,表示Web应用不存在入侵风险,或即使存在也已被过滤掉。需要说明的是,Web应用自身可能存在对入侵事件的防御机制,容易理解,若检测结果为处理后的请求体未包含入侵模拟字符串,表示Web应用自身在该业务功能的防御机制较为完善;反之,表示Web应用自身在该业务功能的防御机制不够完善,在相应的字节码文件中存在安全漏洞,需要修补。
代理服务器对Web服务器返回的HTTP相应携带的检测结果进行存储。HTTP相应携带的检测结果包括Web应用是否存在入侵风险,以及当存在入侵风险时对应入侵事件的类型名称、发生位置等信息。入侵事件的发生位置可以是Web服务器根据入侵事件对应的接口函数在相应字节码文件中的位置确定的。代理服务器入侵事件确定Web应用可能存在的安全漏洞,根据入侵事件的发生位置确定该安全漏洞对应的需要修补的业务代码的位置,根据入侵事件的类型分析该安全漏洞的产生原因及改善措施,根据Web应用可能存在的安全漏洞以及该安全漏洞的产生原因、改善措施以及对应的需要修补的业务代码的位置等生成对Web应用的改进文件。代理服务器将改进文件发送至指定终端,使指定终端根据改进文件对Web应用进行改进。
本实施例中,根据对入侵事件的检测结果生成对Web应用的改进文件,并根据入侵事件的发生位置和类型对需要改进的Web应用对应业务代码的位置和原因给出指引,实现通过入侵检测逐步完善Web应用的目的,且可以提高Web应用改进效率。
应该理解的是,虽然图2和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种Web应用入侵检测系统,包括:客户终端502、代理服务器504和Web服务器506;Web服务器上运行了Web应用;其中:
客户终端502,用于向代理服务器发送的HTTP请求,HTTP请求包括请求体。
代理服务器504,用于在请求体中添加预设的入侵模拟字符串,对HTTP请求进行更新,将更新后的HTTP请求发送至Web服务器。
Web服务器506,用于在Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码。
Web服务器506还用于根据更新后的HTTP请求执行相应的业务函数,对请求体进行业务处理,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险,根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器。
代理服务器504还用于对检测结果进行记录。
在一个实施例中,Web服务器506还用于根据预先配置的启动参数加载入侵检测组件;入侵检测组件包括回调对象;当根据预先配置的启动参数加载工具包时,获取回调对象,根据回调对象生成对入侵检测组件的回调指令;入侵检测组件还包括多个关注类以及每个关注类对应的目标函数和检测代码;根据回调指令运行入侵检测组件;使入侵检测组件对多个字节码文件对应的类是否属于关注类分别进行检测,当字节码文件对应的类属于关注类时,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码。
在一个实施例中,检测代码包括回调对象和检测逻辑代码;Web服务器506还用于在处理后的请求体中捕获相应的输入信息;利用回调对象生成对检测逻辑代码的回调指令;根据回调指令执行检测逻辑代码,对输入信息否仍包含入侵模拟字符串进行检测。
在一个实施例中,Web服务器506还用于当检测结果为处理后的请求体仍包含入侵模拟字符串时,获取被执行的字节码文件对应的接口函数的函数标识;获取预存的多个接口函数标识分别与一种或多种入侵事件标识的对应关系;根据对应关系识别HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成对应的HTTP响应。
在一个实施例中,HTTP请求还包括请求头,代理服务器504还用于在请求头中将用于表征是否需要进行入侵检测的开关标志位设置为第一预设值或第二预设值;当开关标志位为第一预设值时,在请求体中添加预设的入侵模拟字符串。
在一个实施例中,检测结果包括入侵事件的类型;代理服务器504还用于根据入侵事件对应的接口函数,在相应的字节码文件中确定入侵事件的发生位置;根据入侵事件的发生位置和类型生成对Web应用的改进文件;将漏洞改进文件发送至指定终端,使指定终端根据改进文件对Web应用进行改进。
关于Web应用入侵检测系统的具体限定可以参见上文中对于Web应用入侵检测方法的限定,在此不再赘述。上述Web应用入侵检测系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多个接口函数标识分别与一种或多种入侵事件标识的对应关系。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Web应用入侵检测方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;当接收到客户终端通过代理服务器发送的HTTP请求时,HTTP请求包括请求体,请求体包括代理服务器添加的入侵模拟字符串;根据HTTP请求执行相应的业务函数,对请求体进行业务处理;在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险;根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器;使代理服务器对检测结果进行记录。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预先配置的启动参数加载入侵检测组件;入侵检测组件包括回调对象;当根据预先配置的启动参数加载工具包时,获取回调对象,根据回调对象生成对入侵检测组件的回调指令;入侵检测组件还包括多个关注类以及每个关注类对应的目标函数和检测代码;根据回调指令运行入侵检测组件;使入侵检测组件对多个字节码文件对应的类是否属于关注类分别进行检测,当字节码文件对应的类属于关注类时,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码。
在一个实施例中,检测代码包括回调对象和检测逻辑代码;处理器执行计算机程序时还实现以下步骤:在处理后的请求体中捕获相应的输入信息;利用回调对象生成对检测逻辑代码的回调指令;根据回调指令执行检测逻辑代码,对输入信息否仍包含入侵模拟字符串进行检测。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测结果为处理后的请求体仍包含入侵模拟字符串时,获取被执行的字节码文件对应的接口函数的函数标识;获取预存的多个接口函数标识分别与一种或多种入侵事件标识的对应关系;根据对应关系识别HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成对应的HTTP响应。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收客户终端发送的HTTP请求,HTTP请求包括请求体;在请求体中添加预设的入侵模拟字符串,对HTTP请求进行更新;将更新后的HTTP请求发送至Web服务器,Web服务器根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;Web服务器根据更新后的HTTP请求执行相应的业务函数,对请求体进行业务处理,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险,根据检测结果生成HTTP请求对应的HTTP响应;接收Web服务器返回的HTTP响应,对检测结果进行记录。
在一个实施例中,HTTP请求还包括请求头,处理器执行计算机程序时还实现以下步骤:在请求头中将用于表征是否需要进行入侵检测的开关标志位设置为第一预设值或第二预设值;当开关标志位为第一预设值时,在请求体中添加预设的入侵模拟字符串。
在一个实施例中,检测结果包括入侵事件的类型;处理器执行计算机程序时还实现以下步骤:根据入侵事件对应的接口函数,在相应的字节码文件中确定入侵事件的发生位置;根据入侵事件的发生位置和类型生成对Web应用的改进文件;将改进文件发送至指定终端,使指定终端根据改进文件对Web应用进行改进。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;当接收到客户终端通过代理服务器发送的HTTP请求时,HTTP请求包括请求体,请求体包括代理服务器添加的入侵模拟字符串;根据HTTP请求执行相应的业务函数,对请求体进行业务处理;在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险;根据检测结果生成HTTP请求对应的HTTP响应,将HTTP响应返回至代理服务器;使代理服务器对检测结果进行记录。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预先配置的启动参数加载入侵检测组件;入侵检测组件包括回调对象;当根据预先配置的启动参数加载工具包时,获取回调对象,根据回调对象生成对入侵检测组件的回调指令;入侵检测组件还包括多个关注类以及每个关注类对应的目标函数和检测代码;根据回调指令运行入侵检测组件;使入侵检测组件对多个字节码文件对应的类是否属于关注类分别进行检测,当字节码文件对应的类属于关注类时,根据目标函数在字节码文件对应的接口函数中插入相应的检测代码
在一个实施例中,检测代码包括回调对象和检测逻辑代码;计算机程序被处理器执行时还实现以下步骤:在处理后的请求体中捕获相应的输入信息;利用回调对象生成对检测逻辑代码的回调指令;根据回调指令执行检测逻辑代码,对输入信息否仍包含入侵模拟字符串进行检测。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测结果为处理后的请求体仍包含入侵模拟字符串时,获取被执行的字节码文件对应的接口函数的函数标识;获取预存的多个接口函数标识分别与一种或多种入侵事件标识的对应关系;根据对应关系识别HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成对应的HTTP响应。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收客户终端发送的HTTP请求,HTTP请求包括请求体;在请求体中添加预设的入侵模拟字符串,对HTTP请求进行更新;将更新后的HTTP请求发送至Web服务器,Web服务器根据预先配置的启动参数加载入侵检测组件和工具包;工具包包括多个字节码文件,字节码文件包括业务函数和接口函数;利用入侵检测组件在接口函数中添加检测代码;Web服务器根据更新后的HTTP请求执行相应的业务函数,对请求体进行业务处理,在进行业务处理过程中,当业务函数调用相应的接口函数时,利用接口函数中的检测代码对业务处理后的请求体是否仍包含入侵模拟字符串进行检测,当业务处理后的请求体仍包含入侵模拟字符串时,检测结果为Web应用存在入侵风险,根据检测结果生成HTTP请求对应的HTTP响应;接收Web服务器返回的HTTP响应,对检测结果进行记录。
在一个实施例中,HTTP请求还包括请求头,计算机程序被处理器执行时还实现以下步骤:在请求头中将用于表征是否需要进行入侵检测的开关标志位设置为第一预设值或第二预设值;当开关标志位为第一预设值时,在请求体中添加预设的入侵模拟字符串。
在一个实施例中,检测结果包括入侵事件的类型;计算机程序被处理器执行时还实现以下步骤:根据入侵事件对应的接口函数,在相应的字节码文件中确定入侵事件的发生位置;根据入侵事件的发生位置和类型生成对Web应用的改进文件;将改进文件发送至指定终端,使指定终端根据改进文件对Web应用进行改进。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种Web应用入侵检测方法,所述方法包括:
当Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;
利用所述入侵检测组件在所述接口函数中添加检测代码;
当接收到客户终端通过代理服务器发送的HTTP请求时,所述HTTP请求包括请求体,所述请求体包括所述代理服务器添加的入侵模拟字符串;根据所述HTTP请求执行相应的业务函数,对所述请求体进行业务处理;
在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当业务处理后的请求体仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险;
根据所述检测结果生成所述HTTP请求对应的HTTP响应,将所述HTTP响应返回至所述代理服务器;使所述代理服务器对所述检测结果进行记录。
2.根据权利要求1所述的方法,其特征在于,所述根据预先配置的启动参数加载入侵检测组件和工具包的步骤包括:
根据预先配置的启动参数加载所述入侵检测组件;所述入侵检测组件包括回调对象;
当根据预先配置的启动参数加载工具包时,获取所述回调对象,根据所述回调对象生成对所述入侵检测组件的回调指令;所述入侵检测组件还包括多个关注类以及每个关注类对应的目标函数和检测代码;
所述利用所述入侵检测组件在所述接口函数中添加检测代码的步骤包括:
根据所述回调指令运行所述入侵检测组件;使所述入侵检测组件对多个字节码文件对应的类是否属于所述关注类分别进行检测,当所述字节码文件对应的类属于所述关注类时,根据所述目标函数在所述字节码文件对应的接口函数中插入相应的检测代码。
3.根据权利要求1所述的方法,其特征在于,所述检测代码包括回调对象和检测逻辑代码;所述利用所述检测代码对处理后的请求体是否仍包含所述入侵模拟字符串进行检测的步骤包括:
在处理后的请求体中捕获相应的输入信息;
利用所述回调对象生成对所述检测逻辑代码的回调指令;
根据所述回调指令执行所述检测逻辑代码,对所述输入信息否仍包含所述入侵模拟字符串进行检测。
4.根据权利要求1所述的方法,其特征在于,所述根据所述检测结果生成所述HTTP请求对应的HTTP响应的步骤包括:
当检测结果为处理后的请求体仍包含所述入侵模拟字符串时,获取被执行的字节码文件对应的接口函数的函数标识;
获取预存的多个接口函数标识分别与一种或多种入侵事件标识的对应关系;
根据所述对应关系识别所述HTTP请求对应的入侵事件标识,利用识别到的入侵事件标识生成对应的所述HTTP响应。
5.一种Web应用入侵检测方法,所述方法包括:
接收客户终端发送的HTTP请求,所述HTTP请求包括请求体;
在所述请求体中添加预设的入侵模拟字符串,对所述HTTP请求进行更新;
将更新后的HTTP请求发送至Web服务器,所述Web服务器根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;利用所述入侵检测组件在所述接口函数中添加检测代码;所述Web服务器根据更新后的HTTP请求执行相应的业务函数,对所述请求体进行业务处理,在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当业务处理后的请求体仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险,根据所述检测结果生成所述HTTP请求对应的HTTP响应;
接收所述Web服务器返回的所述HTTP响应,对所述检测结果进行记录。
6.根据权利要求5所述的方法,其特征在于,所述HTTP请求还包括请求头,所述在所述请求体中添加预设的入侵模拟字符串的步骤包括:
在所述请求头中将用于表征是否需要进行入侵检测的开关标志位设置为第一预设值或第二预设值;
当所述开关标志位为第一预设值时,在所述请求体中添加预设的入侵模拟字符串。
7.根据权利要求5所述的方法,其特征在于,所述检测结果包括所述入侵事件的类型;所述方法还包括:根据所述入侵事件对应的接口函数,在相应的字节码文件中确定所述入侵事件的发生位置;
根据所述入侵事件的发生位置和类型生成对所述Web应用的改进文件;
将所述改进文件发送至指定终端,使所述指定终端根据所述改进文件对所述Web应用进行改进。
8.一种Web应用入侵检测系统,所述系统包括:客户终端、代理服务器和Web服务器;所述Web服务器上运行了Web应用;
所述客户终端,用于向所述代理服务器发送的HTTP请求,所述HTTP请求包括请求体;
所述代理服务器,用于在所述请求体中添加预设的入侵模拟字符串,对所述HTTP请求进行更新,将更新后的HTTP请求发送至所述Web服务器;
所述Web服务器,用于在Web应用启动时,根据预先配置的启动参数加载入侵检测组件和工具包;所述工具包包括多个字节码文件,所述字节码文件包括业务函数和接口函数;利用所述入侵检测组件在所述接口函数中添加检测代码;
所述Web服务器还用于根据更新后的HTTP请求执行相应的业务函数,对所述请求体进行业务处理,在进行业务处理过程中,当所述业务函数调用相应的接口函数时,利用所述接口函数中的检测代码对业务处理后的请求体是否仍包含所述入侵模拟字符串进行检测,当仍包含所述入侵模拟字符串时,检测结果为所述Web应用存在入侵风险,根据所述检测结果生成所述HTTP请求对应的HTTP响应,将所述HTTP响应返回至所述代理服务器;
所述代理服务器还用于对所述检测结果进行记录。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任意一项或5至7任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任意一项或5至7任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810090868.3A CN108322458B (zh) | 2018-01-30 | 2018-01-30 | Web应用入侵检测方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810090868.3A CN108322458B (zh) | 2018-01-30 | 2018-01-30 | Web应用入侵检测方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108322458A true CN108322458A (zh) | 2018-07-24 |
CN108322458B CN108322458B (zh) | 2020-05-19 |
Family
ID=62888254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810090868.3A Active CN108322458B (zh) | 2018-01-30 | 2018-01-30 | Web应用入侵检测方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108322458B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032519A (zh) * | 2019-04-22 | 2019-07-19 | 广州腾讯科技有限公司 | 云函数调试方法、装置、计算机设备及存储介质 |
CN112906018A (zh) * | 2021-02-01 | 2021-06-04 | 北京金山云网络技术有限公司 | 权限控制方法、装置、服务器以及计算机存储介质 |
CN113535559A (zh) * | 2021-07-14 | 2021-10-22 | 杭州默安科技有限公司 | 一种应用接口覆盖率统计方法和系统 |
CN113765859A (zh) * | 2020-06-05 | 2021-12-07 | 北京神州泰岳软件股份有限公司 | 网络安全过滤方法及装置 |
CN116049823A (zh) * | 2023-03-31 | 2023-05-02 | 北京微步在线科技有限公司 | 一种内存马检测方法、装置、计算机设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346948A (zh) * | 2011-09-07 | 2012-02-08 | 无锡国科微纳传感网科技有限公司 | 一种周界入侵检测方法和系统 |
CN102411690A (zh) * | 2011-12-31 | 2012-04-11 | 中国信息安全测评中心 | 一种Android平台下应用软件的安全漏洞挖掘方法和装置 |
CN102782693A (zh) * | 2009-12-30 | 2012-11-14 | 金雅拓股份有限公司 | 防止故障攻击的Javacard虚拟机字节码执行保护 |
CN103095681A (zh) * | 2012-12-03 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 一种检测漏洞的方法及装置 |
CN104363285A (zh) * | 2014-11-18 | 2015-02-18 | 东方网力科技股份有限公司 | 一种网络通信程序生成方法及装置 |
CN105404498A (zh) * | 2014-09-16 | 2016-03-16 | 网宿科技股份有限公司 | 移动智能终端下转发应用程序内流量的方法 |
US20160098563A1 (en) * | 2014-10-03 | 2016-04-07 | Sourceclear, Inc. | Signatures for software components |
CN105791261A (zh) * | 2015-12-28 | 2016-07-20 | 华为技术有限公司 | 一种跨站脚本攻击的检测方法和检测设备 |
CN106489145A (zh) * | 2015-12-28 | 2017-03-08 | 华为技术有限公司 | web网站的访问方法、装置及Web网站系统 |
-
2018
- 2018-01-30 CN CN201810090868.3A patent/CN108322458B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102782693A (zh) * | 2009-12-30 | 2012-11-14 | 金雅拓股份有限公司 | 防止故障攻击的Javacard虚拟机字节码执行保护 |
CN102346948A (zh) * | 2011-09-07 | 2012-02-08 | 无锡国科微纳传感网科技有限公司 | 一种周界入侵检测方法和系统 |
CN102411690A (zh) * | 2011-12-31 | 2012-04-11 | 中国信息安全测评中心 | 一种Android平台下应用软件的安全漏洞挖掘方法和装置 |
CN103095681A (zh) * | 2012-12-03 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 一种检测漏洞的方法及装置 |
CN105404498A (zh) * | 2014-09-16 | 2016-03-16 | 网宿科技股份有限公司 | 移动智能终端下转发应用程序内流量的方法 |
US20160098563A1 (en) * | 2014-10-03 | 2016-04-07 | Sourceclear, Inc. | Signatures for software components |
CN104363285A (zh) * | 2014-11-18 | 2015-02-18 | 东方网力科技股份有限公司 | 一种网络通信程序生成方法及装置 |
CN105791261A (zh) * | 2015-12-28 | 2016-07-20 | 华为技术有限公司 | 一种跨站脚本攻击的检测方法和检测设备 |
CN106489145A (zh) * | 2015-12-28 | 2017-03-08 | 华为技术有限公司 | web网站的访问方法、装置及Web网站系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032519A (zh) * | 2019-04-22 | 2019-07-19 | 广州腾讯科技有限公司 | 云函数调试方法、装置、计算机设备及存储介质 |
CN110032519B (zh) * | 2019-04-22 | 2022-07-19 | 广州腾讯科技有限公司 | 云函数调试方法、装置、计算机设备及存储介质 |
CN113765859A (zh) * | 2020-06-05 | 2021-12-07 | 北京神州泰岳软件股份有限公司 | 网络安全过滤方法及装置 |
CN112906018A (zh) * | 2021-02-01 | 2021-06-04 | 北京金山云网络技术有限公司 | 权限控制方法、装置、服务器以及计算机存储介质 |
CN113535559A (zh) * | 2021-07-14 | 2021-10-22 | 杭州默安科技有限公司 | 一种应用接口覆盖率统计方法和系统 |
CN113535559B (zh) * | 2021-07-14 | 2024-07-12 | 杭州默安科技有限公司 | 一种应用接口覆盖率统计方法和系统 |
CN116049823A (zh) * | 2023-03-31 | 2023-05-02 | 北京微步在线科技有限公司 | 一种内存马检测方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108322458B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108322458A (zh) | Web应用入侵检测方法、系统、计算机设备和存储介质 | |
Drewry et al. | Flayer: Exposing Application Internals. | |
CN108256334B (zh) | 漏洞测试方法、装置、计算机设备和存储介质 | |
US20120017280A1 (en) | APPARATUS AND METHOD FOR DETECTING, PRIORITIZING AND FIXING SECURITY DEFECTS AND COMPLIANCE VIOLATIONS IN SAP® ABAPtm CODE | |
US11888885B1 (en) | Automated security analysis of software libraries | |
CN111090581B (zh) | 智能合约测试方法、装置、计算机设备和存储介质 | |
CN104537308B (zh) | 提供应用安全审计功能的系统及方法 | |
CN105224869A (zh) | 组件测试方法和装置 | |
EP2782311A1 (en) | Methods of testing a firewall, and apparatus therefor | |
Zhang et al. | Ripple: Reflection analysis for android apps in incomplete information environments | |
CN109726134B (zh) | 接口测试方法和系统 | |
CN110209569A (zh) | 接口测试方法、接口测试装置及存储介质 | |
CN108400978A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN106778264A (zh) | 一种移动客户端的应用程序分析方法及分析系统 | |
CN115309566A (zh) | 一种服务接口的动态管理方法及系统 | |
CN110493064A (zh) | 防火墙管理方法、装置、计算机设备和存储介质 | |
CN107301346A (zh) | 一种利用白名单机制实现安卓设备app快速安全检测方法 | |
CN106682513A (zh) | 一种目标样本文件的检测方法和装置 | |
CN116383833A (zh) | 软件程序代码的测试方法及其装置、电子设备、存储介质 | |
CN114138651B (zh) | 测试数据的生成方法及装置 | |
CN113590465B (zh) | 一种基于SDK自动生成mock服务的方法 | |
CN111563260B (zh) | 一种面向安卓应用程序的Web注入代码执行漏洞检测方法及系统 | |
CN113282507A (zh) | 一种基于威胁建模的通用安全测试生成方法 | |
CN112612555A (zh) | 第三方库的调用链获取方法、装置、设备及存储介质 | |
CN107798244A (zh) | 一种检测远程代码执行漏洞的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256644 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |