CN111756697B - Api安全检测方法、装置、存储介质及计算机设备 - Google Patents
Api安全检测方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN111756697B CN111756697B CN202010459764.2A CN202010459764A CN111756697B CN 111756697 B CN111756697 B CN 111756697B CN 202010459764 A CN202010459764 A CN 202010459764A CN 111756697 B CN111756697 B CN 111756697B
- Authority
- CN
- China
- Prior art keywords
- api
- request data
- target
- tested
- detection
- 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.)
- Active
Links
Images
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
-
- 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/1441—Countermeasures against malicious traffic
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提出一种API安全检测方法、装置、存储介质及计算机设备,该API安全检测方法包括接收待测请求数据,待测请求数据被用于调用应用程序的目标API;获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的;基于目标检测规则对待测请求数据进行安全检测。通过本申请实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
Description
技术领域
本申请涉及软件安全技术领域,尤其涉及一种API安全检测方法、装置、存储介质及计算机设备。
背景技术
API接口,即Application Programming Interface,应用程序接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。正是由于API功能的强大和其标准化与通用性,API接口的使用越来越广泛,包括在应用程序、数据共享交换平台、API网关等等各类场景下都主要以API接口在处理用户输入或是内部系统间通信。同时也由于API的使用广泛和功能强大,针对API的安全攻击事件也越来越多。
相关技术中,针对API安全检测方法,通常需要花费大量人力维护黑名单检测特征,难以覆盖所有业务场景从而导致攻击行为的漏报,检测效果不佳。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请在于提出一种API安全检测方法、装置、存储介质及计算机设备,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
为达到上述目的,本申请第一方面实施例提出的API安全检测方法,包括:接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API;获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的;基于所述目标检测规则对所述待测请求数据进行安全检测。
本申请第一方面实施例提出的API安全检测方法,通过接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API,并获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的,以及基于所述目标检测规则对所述待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
为达到上述目的,本申请第二方面实施例提出的API安全检测装置,包括:接收模块,用于接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API;第一获取模块,用于获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的;安全检测模块,用于基于所述目标检测规则对所述待测请求数据进行安全检测。
本申请第二方面实施例提出的API安全检测装置,通过接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API,并获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的,以及基于所述目标检测规则对所述待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
本申请第三方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器被执行时,使得计算机设备能够执行一种API安全检测方法,所述方法包括:本申请第一方面实施例提出的API安全检测方法。
本申请第三方面实施例提出的非临时性计算机可读存储介质,通过接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API,并获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的,以及基于所述目标检测规则对所述待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
本申请第四方面实施例提出的计算机设备,所述计算机设备包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述计算机设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行本申请第一方面实施例提出的API安全检测方法。
本申请第四方面实施例提出的计算机设备,通过接收待测请求数据,所述待测请求数据被用于调用应用程序的目标API,并获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的,以及基于所述目标检测规则对所述待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的API安全检测方法的流程示意图;
图2是本申请另一实施例提出的API安全检测方法的流程示意图;
图3是本申请一实施例提出的API安全检测装置的结构示意图;
图4是本申请另一实施例提出的API安全检测装置的结构示意图;
图5是本申请一个实施例提出的计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本申请一实施例提出的API安全检测方法的流程示意图。
本实施例以API安全检测方法被配置为API安全检测装置中来举例说明。
本实施例中API安全检测方法可以被配置在API安全检测装置中,API安全检测装置可以设置在服务器中,或者也可以设置在计算机设备中,本申请实施例对此不作限制。
本实施例以API安全检测方法被配置在计算机设备中为例。
需要说明的是,本申请实施例的执行主体,在硬件上可以例如为服务器或者计算机设备中的中央处理器(Central Processing Unit,CPU),在软件上可以例如为服务器或者计算机设备中的相关的后台服务,对此不作限制。
参见图1,该方法包括:
S101:接收待测请求数据,待测请求数据被用于调用应用程序的目标API。
其中,当前待进行安全检测的请求数据,可以被称为待测请求数据。
例如,用户登录请求,用户在应用程序的登录界面输入用户名密码,则应用程序会根据用户名密码生成相应的请求数据,发送至应用程序的后台服务器,由后台服务器基于该请求数据调用相应的登录验证API,对该请求数据携带的用户名密码进行合法性验证,在这样一个场景中,应用程序生成的请求数据,即可以被称为待测请求数据,也即是说,当前可以对应用程序生成的请求数据进行检测,判断该请求数据是否为针对登录验证API的攻击行为。
上述的登录验证API,即可以被称为目标API,也即是说,待测请求数据被用于调用应用程序的API,可以被称为目标API,通过待测请求数据调用目标API所能够提供的服务。
上述的待测请求数据可以包括待进行安全检测的请求数据和响应数据,对此不作限制。
一些实施例中,通过流量镜像、应用日志上报采集、RASP(Runtime applicationself-protection,运行时应用自我保护)等方式采集应用程序的程序日志,从而获取所有的请求数据并作为待测请求数据。
另外一些实施例中,也可以配置监控API,从而针对应用程序的使用情况进行监控,实时地监控调用应用程序的API的请求数据作为待测请求数据,对此不作限制。
S102:获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的。
上述接收待测请求数据,还可以将获取的待测请求数据实时上报至白名单规则引擎,该白名单规则引擎区分于相关技术中的接口安全相关攻击检测引擎,该白名单规则引擎具体是使用解析API接口的相关信息而自动生成的白名单检测规则来进行安全检测,目标检测规则的匹配过程可以是根据应用程序的标识、待测请求数据的类型、目标API的标识来逐级路由至其对应的白名单的检测规则,对此不作限制。
上述的目标API的相关信息可以例如为,目标API的参数类型、响应码、目标API的标识、目标API的名称等,对此不作限制。
上述的目标API的相关信息,可以是获取应用程序的源程序代码文件,并解析源程序代码文件,得到应用程序涉及的全部API的相关信息,由于是自动化地解析源程序代码文件,扫描得到应用程序涉及的全部API的相关信息,因此,能够有效保证生成检测规则的全面性,且降低人力成本。
S103:基于目标检测规则对待测请求数据进行安全检测。
一些实施例中,可以基于白名单规则引擎内提供的目标检测规则对待测请求数据进行安全检测,例如可以直接由白名单规则引擎基于目标检测规则对待测请求数据进行安全检测,或者,也可以由第三方的安全检测引擎从白名单规则引擎获取到目标检测规则,从而基于目标检测规则对待测请求数据进行安全检测,对此不作限制。
在具体执行的过程中,可以确定待测请求数据是否符合目标检测规则,若符合目标检测规则确定该待测请求数据为合法的请求数据,则触发基于待测请求数据调用目标API,若不符合目标检测规则,则确定该待测请求数据为不合法,则禁止基于待测请求数据调用目标API,并进行告警提示,从而在确定待测请求数据不合法时,直接禁止基于待测请求数据调用目标API,有效保障了API的安全性,并及时告知存在安全事件,便于用户及时地采取应对措施。
本实施例中,通过接收待测请求数据,待测请求数据被用于调用应用程序的目标API,并获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的,以及基于目标检测规则对待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
图2是本申请一实施例提出的API安全检测方法的流程示意图。
参见图2,该方法包括:
S201:获取应用程序的源程序代码文件。
上述的应用程序在开发的过程中,可以是基于所定义API接口规范开发得到的,API接口规范可以包含路径模板的定义(例如,标注路径和参数等),MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型),并且,API接口可以符合相关RFC(Request For Comments,是一系列以编号排定的文件,该RFC文件收集了有关互联网相关信息,例如RFC 6838),超文本传输协议HTTP((HyperText TransferProtocol)状态码,格式,文件结构,数据类型等,API接口规范还可以遵循的OpenAPI(oftenreferred to as OpenAPI,开放的应用程序编程接口)的规范,上述的API接口规范也可以是用户自定义的。
S202:解析源程序代码文件,得到应用程序涉及的全部API的相关信息。
上述在获取应用程序的源程序代码文件后,可以解析源程序代码文件,得到应用程序涉及的全部API的相关信息。
本申请实施例在具体执行的过程中,可以基于上述API接口规范编写解析工具,使得在开发应用程序的源程序代码文件的过程中,通过简单配置(例如,在JAVA程序开发语言的基础上,通过注解的方式即可给源程序代码文件添加API相关信息),从而有效地辅助全部API的相关信息的解析。
作为一个示例,在开发应用程序的源程序代码文件的过程中,可以使用Swagger解析工具按照Swagger解析工具提供的方式在开发应用程序的源程序代码文件添加简单标注,后续采用Swagger解析工具扫描源程序代码文件,以自动化地解析源程序代码文件,得到应用程序涉及的全部API的相关信息。
Swagger解析工具是一个RESTful(RESTFUL是一种网络应用程序的设计风格和开发方式)文档生成工具,能够从源程序代码文件内代码注释里面自动生成API文档,以此方便前端对接使用。
针对上述的描述,源程序代码文件的程序代码示例可以如下:
应用程序的源程序代码文件,该应用程序的源程序代码文件内添加了API相关信息的标注:
而后,可以采用Swagger解析工具扫描源程序代码文件,以自动化地解析源程序代码文件,得到应用程序涉及的全部API的相关信息。
API的相关信息的程序代码示例如下:
由于,实现从源程序代码文件直接得到应用程序涉及的全部API的相关信息,当然也可以采用其它任意可能的解析方式解析源程序代码文件,得到应用程序涉及的全部API的相关信息。
S203:根据全部API的相关信息,自动地生成与各API对应的检测规则。
可选地,根据全部API的相关信息形成格式化API接口文件;根据格式化API接口文件,自动地生成格式化API接口文件描述的各API对应的检测规则,从而便于API接口的相关信息的识别以及转化为检测规则,提升检测规则生成的规范性和生成效率。
在具体执行的过程中,可以针对每种自动解析得到应用程序涉及的全部API的相关信息的工具,可以单独通过插件适配,在Swagger解析工具内配置生成检测规则的插件,例如SwaggerAPI结果适配插件,该SwaggerAPI结果适配插件可以支持YAML(YAML是一个可读性高,用来表达数据序列化的格式)和JSON(JavaScript Object Notation,JS对象简谱)两种Swagger API接口信息结果,采用SwaggerAPI结果适配插件根据全部API的相关信息,自动地生成与各API对应的检测规则,对此不作限制。
针对上述示例,自动生成的检测规则例如:
生成接口检测与参数检测规则,例如上述示例接口参数位置为/user/{username},即如果攻击者发送请求/user/aaa/xxx则不符合安全检测规则。
生成接口参数类型检测规则,例如此处通过解析获取到username参数的类型string,而如果待测请求数据非string,则也会被识别为与安全请求数据不一致,可以进行告警提示。
生成必传参数检测规则,例如检测规则认为username参数是必传的(required:true),所以如果有攻击者发送待测请求数据/user/则也会进行告警提示。
生成响应码检测规则,检测响应结果只能为200、400和404,如果攻击导致返回了异常结果,与程序设计不一致,也可以成功检测。
生成响应内容检测规则,例如检测请求数据对应的响应数据类型,例如上述请求数据响应200时,integer($int32)返回数据应该满足User模型,即规则检测返回数据满足:
<User>
<id>integer($int64)</id>
<username>string</username>
<firstName>string</firstName>
<lastName>string</lastName>
<email>string</email>
<password>string</password>
<phone>string</phone>
<userStatus>integer($int32)</userStatus>
</User>。
可选的,用户还可以自定义生成其它检测规则,例如根据应用程序的实际功能需求去自定义生成其它的检测规则,对此不作限制,而针对用户自定义的API解析方式,也可以适配单独的自定义插件来完成上述解析动作。
S204:确定访问每个API的请求数据的参考类型。
上述访问一个API的合法的请求数据的类型,可以被称为参考类型,也即是说,该参考类型为访问每个API的请求数据的白名单记录的类型。
S205:根据应用程序的标识、参考类型,以及每个API的标识形成路由路径。
S206:在白名单规则引擎内划分出与路由路径对应的存储空间。
S207:依据路由路径,将每个API对应的检测规则存储至白名单规则引擎内对应的存储空间。
针对上述根据全部API的相关信息,自动地生成与各API对应的检测规则,可以将各API对应的检测规则存储至白名单规则引擎中,具体地,可以确定访问每个API的请求数据的参考类型,根据应用程序的标识、参考类型,以及每个API的标识形成路由路径,在白名单规则引擎内划分出与路由路径对应的存储空间,并依据路由路径,将每个API对应的检测规则存储至白名单规则引擎内对应的存储空间,由此,通过将自动化生成的与各API对应的检测规则配置在白名单规则引擎内,由白名单规则引擎去维护各个应用程序的白名单规则,无需人工维护检测规则,并且可以针对性的覆盖到每个应用程序,检测覆盖范围与检测能力均得到了有效地提升。
S208:接收待测请求数据,待测请求数据被用于调用应用程序的目标API。
其中,当前待进行安全检测的请求数据,可以被称为待测请求数据。
例如,用户登录请求,用户在应用程序的登录界面输入用户名密码,则应用程序会根据用户名密码生成相应的请求数据,发送至应用程序的后台服务器,由后台服务器基于该请求数据调用相应的登录验证API,对该请求数据携带的用户名密码进行合法性验证,在这样一个场景中,应用程序生成的请求数据,即可以被称为待测请求数据,也即是说,当前可以对应用程序生成的请求数据进行检测,判断该请求数据是否为针对登录验证API的攻击行为。
上述的登录验证API,即可以被称为目标API,也即是说,待测请求数据被用于调用应用程序的API,可以被称为目标API,通过待测请求数据调用目标API所能够提供的服务。
上述的待测请求数据可以包括待进行安全检测的请求数据和响应数据,对此不作限制。
一些实施例中,通过流量镜像、应用日志上报采集、RASP(Runtime applicationself-protection,运行时应用自我保护)等方式采集应用程序的程序日志,从而获取所有的请求数据并作为待测请求数据。
另外一些实施例中,也可以配置监控API,从而针对应用程序的使用情况进行监控,实时地监控调用应用程序的API的请求数据作为待测请求数据,对此不作限制。
S209:从白名单规则引擎内读取与目标API的标识、目标API所属应用程序的标识,以及目标API的类型对应的检测规则作为目标检测规则。
一并参见上述API的相关信息的程序代码示例,如果待测请求数据为:curl-XGET"https://app1.com/user/123456"-H"accept:application/xml",则首先通过待测请求数据的目的IP和目的端口来定位到待测请求数据对应的应用程序,再根据根据待测请求数据/user/123456来路由到对应的API接口/user/{username},最后根据API接口来获取其对应的目标检测规则,获取目标检测规则后匹配请求类型为GET符合安全校验,则再检测待测请求数据的传递参数为123456,自动识别为数字类型,与API接口对应的目标检测规则需求的字符串类型不符合,则上报安全告警事件,而若检测到待测请求数据,和自动生成的API接口的目标检测规则完全一致时,则通过安全检测。
S210:基于目标检测规则对待测请求数据进行安全检测。
在具体执行的过程中,可以确定待测请求数据是否符合目标检测规则,若符合目标检测规则确定该待测请求数据为合法的请求数据,则触发基于待测请求数据调用目标API,若不符合目标检测规则,则确定该待测请求数据为不合法,则禁止基于待测请求数据调用目标API,并进行告警提示,从而在确定待测请求数据不合法时,直接禁止基于待测请求数据调用目标API,有效保障了API的安全性,并及时告知存在安全事件,便于用户及时地采取应对措施。
本实施例中,通过接收待测请求数据,待测请求数据被用于调用应用程序的目标API,并获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的,以及基于目标检测规则对待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。根据全部API的相关信息形成格式化API接口文件;根据格式化API接口文件,自动地生成格式化API接口文件描述的各API对应的检测规则,从而便于API接口的相关信息的识别以及转化为检测规则,提升检测规则生成的规范性和生成效率。在确定待测请求数据不合法时,直接禁止基于待测请求数据调用目标API,有效保障了API的安全性,并及时告知存在安全事件,便于用户及时地采取应对措施。将各API对应的检测规则存储至白名单规则引擎中,具体地,可以确定访问每个API的请求数据的参考类型,根据应用程序的标识、参考类型,以及每个API的标识形成路由路径,在白名单规则引擎内划分出与路由路径对应的存储空间,并依据路由路径,将每个API对应的检测规则存储至白名单规则引擎内对应的存储空间,由此,通过将自动化生成的与各API对应的检测规则配置在白名单规则引擎内,由白名单规则引擎去维护各个应用程序的白名单规则,无需人工维护检测规则,并且可以针对性的覆盖到每个应用程序,检测覆盖范围与检测能力均得到了有效地提升。
图3是本申请一实施例提出的API安全检测装置的结构示意图。
参见图3,该装置300包括:
接收模块301,用于接收待测请求数据,待测请求数据被用于调用应用程序的目标API;
第一获取模块302,用于获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的;
安全检测模块303,用于基于目标检测规则对待测请求数据进行安全检测。
可选地,一些实施例中,参见图4,还包括:
第二获取模块304,用于在接收待测请求数据前,还获取应用程序的源程序代码文件;
解析模块305,用于解析源程序代码文件,得到应用程序涉及的全部API的相关信息;
第一生成模块306,用于根据全部API的相关信息,自动地生成与各API对应的检测规则。
可选地,一些实施例中,第一生成模块306,具体用于:
根据全部API的相关信息形成格式化API接口文件;
根据格式化API接口文件,自动地生成格式化API接口文件描述的各API对应的检测规则。
可选地,一些实施例中,参见图4,还包括:
确定模块307,用于确定访问每个API的请求数据的参考类型;
第二生成模块308,用于根据应用程序的标识、参考类型,以及每个API的标识形成路由路径;
划分模块309,用于在白名单规则引擎内划分出与路由路径对应的存储空间;
存储模块310,用于依据路由路径,将每个API对应的检测规则存储至白名单规则引擎内对应的存储空间。
可选地,一些实施例中,第一获取模块302,具体用于:
从白名单规则引擎内读取与目标API的标识、目标API所属应用程序的标识,以及目标API的类型对应的检测规则作为目标检测规则。
可选地,一些实施例中,安全检测模块303,具体用于:
确定待测请求数据是否符合目标检测规则;
若待测请求数据符合目标检测规则,则确定该待测请求数据为合法的请求数据;
若待测请求数据不符合目标检测规则,则确定待测请求数据不合法,并禁止基于待测请求数据调用目标API,以及进行告警提示。
需要说明的是,前述图1-图2实施例中对API安全检测方法实施例的解释说明也适用该实施例的API安全检测装置300,其实现原理类似,此处不再赘述。
本实施例中,通过接收待测请求数据,待测请求数据被用于调用应用程序的目标API,并获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的,以及基于目标检测规则对待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
图5是本申请一个实施例提出的计算机设备的结构示意图。
参见图5,本实施例的计算机设备500包括壳体501、处理器502、存储器503、电路板504和电源电路505,其中,电路板504安置在壳体501围成的空间内部,处理器502和存储器503设置在电路板504上;电源电路505,用于为计算机设备500的各个电路或器件供电;存储器503用于存储可执行程序代码;处理器502通过读取存储器503中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
接收待测请求数据,待测请求数据被用于调用应用程序的目标API;
获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的;
基于目标检测规则对待测请求数据进行安全检测。
需要说明的是,前述图1-图2实施例中对API安全检测方法实施例的解释说明也适用该实施例的计算机设备500,其实现原理类似,此处不再赘述。
本实施例中,通过接收待测请求数据,待测请求数据被用于调用应用程序的目标API,并获取与目标API对应的目标检测规则,目标检测规则是预先基于目标API的相关信息自动生成的,以及基于目标检测规则对待测请求数据进行安全检测,实现基于自动化扫描API的相关信息所生成的检测规则对API进行安全检测,降低安全检测所需要耗费的人力成本,提升安全检测规则覆盖的全面性,提升检测效果。
为了实现上述实施例,本申请实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例的API安全检测方法。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (6)
1.一种API安全检测方法,其特征在于,所述方法包括:
服务器采集应用程序的源程序代码文件和程序日志,从所述源程序代码文件中确定所述应用程序涉及的全部API的相关信息,采用SwaggerAPI结果适配插件根据所述全部API的相关信息自动地生成与各所述API对应的检测规则,并根据所述程序日志确定待测请求数据,所述待测请求数据被用于调用应用程序的目标API;
将每个API对应的检测规则自动存储至白名单规则引擎内对应的存储空间;
从所述白名单规则引擎内读取与目标API的标识、目标API所属应用程序的标识,以及目标API的类型对应的目标检测规则;
确定所述待测请求数据是否符合所述目标检测规则:
若所述待测请求数据符合所述目标检测规则,则确定该待测请求数据为合法的请求数据,
若所述待测请求数据不符合所述目标检测规则,则确定所述待测请求数据不合法,并禁止基于所述待测请求数据调用所述目标API,以及进行告警提示。
2.如权利要求1所述的API安全检测方法,其特征在于,所述采用SwaggerAPI结果适配插件根据所述全部API的相关信息自动地生成与各所述API对应的检测规则后,还包括:
确定访问所述每个API的请求数据的参考类型;
根据所述应用程序的标识、所述参考类型,以及所述每个API的标识形成路由路径;
在白名单规则引擎内划分出与所述路由路径对应的存储空间;
所述将每个API对应的检测规则自动存储至白名单规则引擎内对应的存储空间的依据是所述路由路径。
3.一种API安全检测装置,其特征在于,所述装置包括:
接收模块,用于服务器采集应用程序的源程序代码文件和程序日志,从所述源程序代码文件中确定所述应用程序涉及的全部API的相关信息,采用SwaggerAPI结果适配插件根据所述全部API的相关信息自动地生成与各所述API对应的检测规则,并根据所述程序日志确定待测请求数据,所述待测请求数据被用于调用应用程序的目标API;
存储模块,用于将每个API对应的检测规则自动存储至白名单规则引擎内对应的存储空间;
第一获取模块,用于获取与所述目标API对应的目标检测规则,所述目标检测规则是预先基于所述目标API的相关信息自动生成的;
安全检测模块,用于确定所述待测请求数据是否符合所述目标检测规则:
若所述待测请求数据符合所述目标检测规则,则确定该待测请求数据为合法的请求数据,
若所述待测请求数据不符合所述目标检测规则,则确定所述待测请求数据不合法,并禁止基于所述待测请求数据调用所述目标API,以及进行告警提示。
4.如权利要求3所述的API安全检测装置,其特征在于,还包括:
确定模块,用于确定访问所述每个API的请求数据的参考类型;
第二生成模块,用于根据所述应用程序的标识、所述参考类型,以及所述每个API的标识形成路由路径;
划分模块,用于在白名单规则引擎内划分出与所述路由路径对应的存储空间;
所述存储模块将每个API对应的检测规则自动存储至白名单规则引擎内对应的存储空间的依据是所述路由路径。
5.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1或2所述的API安全检测方法。
6.一种计算机设备,所述计算机设备包括壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述计算机设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1或2所述的API安全检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010459764.2A CN111756697B (zh) | 2020-05-27 | 2020-05-27 | Api安全检测方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010459764.2A CN111756697B (zh) | 2020-05-27 | 2020-05-27 | Api安全检测方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111756697A CN111756697A (zh) | 2020-10-09 |
CN111756697B true CN111756697B (zh) | 2023-05-12 |
Family
ID=72673534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010459764.2A Active CN111756697B (zh) | 2020-05-27 | 2020-05-27 | Api安全检测方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756697B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112468516A (zh) * | 2020-12-17 | 2021-03-09 | 全球能源互联网研究院有限公司 | 一种安全防御方法、装置、电子设备及存储介质 |
CN113806214A (zh) * | 2021-02-10 | 2021-12-17 | 京东科技控股股份有限公司 | 应用程序的测试方法、装置、计算机设备及存储介质 |
CN113392410B (zh) * | 2021-08-17 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 接口安全性检测方法、装置、计算机设备及存储介质 |
CN114900339A (zh) * | 2022-04-20 | 2022-08-12 | 北京持安科技有限公司 | 入侵检测方法、系统、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105119783B (zh) * | 2015-09-30 | 2020-01-31 | 北京奇艺世纪科技有限公司 | 网络请求数据的检测方法及装置 |
CN106528828A (zh) * | 2016-11-22 | 2017-03-22 | 山东浪潮云服务信息科技有限公司 | 一种基于多维度校验规则的数据质量检测方法 |
CN106685990B (zh) * | 2017-02-09 | 2020-07-14 | 北京东土科技股份有限公司 | 一种基于工业互联网操作系统的安全性检测方法及装置 |
CN109472135B (zh) * | 2017-12-29 | 2022-02-22 | 北京安天网络安全技术有限公司 | 一种检测进程注入的方法、装置及存储介质 |
CN109413108B (zh) * | 2018-12-18 | 2021-07-02 | 杭州安恒信息技术股份有限公司 | 一种基于安全的waf检测方法和系统 |
-
2020
- 2020-05-27 CN CN202010459764.2A patent/CN111756697B/zh active Active
Non-Patent Citations (1)
Title |
---|
姚树春 等编.互联网中的大数据采集.《大数据技术与应用》.西南交通大学出版社,2018,第163-164页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111756697A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756697B (zh) | Api安全检测方法、装置、存储介质及计算机设备 | |
CN110324311B (zh) | 漏洞检测的方法、装置、计算机设备和存储介质 | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US9349015B1 (en) | Programmatically detecting collusion-based security policy violations | |
CN106294102B (zh) | 应用程序的测试方法、客户端、服务器及系统 | |
CN111866016B (zh) | 日志的分析方法及系统 | |
CN113259392B (zh) | 一种网络安全攻防方法、装置及存储介质 | |
Falkenberg et al. | A new approach towards DoS penetration testing on web services | |
CN110059007B (zh) | 系统漏洞扫描方法、装置、计算机设备及存储介质 | |
CN108965296A (zh) | 一种用于智能家居设备的漏洞检测方法及检测装置 | |
CN113868659B (zh) | 一种漏洞检测方法及系统 | |
CN110162979A (zh) | 一种Web API的安全测试方法、装置、电子设备及存储介质 | |
CN110943984B (zh) | 一种资产安全保护方法及装置 | |
CN103581185A (zh) | 对抗免杀测试的云查杀方法、装置及系统 | |
CN109657475A (zh) | 代码漏洞排查方法、装置、设备及存储介质 | |
WO2021174870A1 (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
CN113114680A (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN113422759A (zh) | 漏洞扫描方法、电子装置和存储介质 | |
Casola et al. | A cloud SecDevOps methodology: from design to testing | |
Cheminod et al. | Detecting chains of vulnerabilities in industrial networks | |
CN113868669A (zh) | 一种漏洞检测方法及系统 | |
CN111625837B (zh) | 识别系统漏洞的方法、装置和服务器 | |
CN104052630A (zh) | 对网站执行验证的方法和系统 | |
CN116599747A (zh) | 一种网络与信息安全服务系统 | |
Mostafa et al. | Netdroid: Summarizing network behavior of android apps for network code maintenance |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |