CN113014587A - 一种api检测方法、装置、电子设备及存储介质 - Google Patents
一种api检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113014587A CN113014587A CN202110244089.6A CN202110244089A CN113014587A CN 113014587 A CN113014587 A CN 113014587A CN 202110244089 A CN202110244089 A CN 202110244089A CN 113014587 A CN113014587 A CN 113014587A
- Authority
- CN
- China
- Prior art keywords
- api
- detected
- detection
- determining
- detection result
- 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
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/1433—Vulnerability analysis
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及计算机技术领域,尤其涉及一种API检测方法、装置、电子设备及存储介质。本申请实施例获取数据源的配置信息;数据源包括服务发现源、API网关和API发现源中的至少一种;然后,根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;对API日志文件中待检测的API进行检测,得到检测结果。由于本申请实施例根据获取到的数据源的配置信息,获取系统的API日志文件,并对API日志文件中的待检测的API进行检测,从而提高检测效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序接口(ApplicationProgramming Interface,API)检测方法、装置、电子设备及存储介质。
背景技术
随着移动应用、智能设备的爆发增长以及微服务架构在互联网行业的普及,众多物联网、人工智能、零售商、媒体、政府和金融服务等公司公布了大量网络应用程序接口WebAPI,尤其是基于应用层协议的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对应的调用时间;
根据查找结果,确定所述待检测的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,并对待检测的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对应的安全检测结果,无需人工参与实现对待检测的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的标识及对应的调用时间;
所述检测单元具体用于:
通过所述检测引擎的标识对应的目标检测引擎,根据所述待检测的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进行匹配;
若匹配成功,则确定所述待检测的API对应的安全检测结果为检测通过;或者,若匹配失败,则确定所述待检测的API对应的安全检测结果为存在安全风险。
一种可选的实施方式为,所述检测单元具体用于:
根据所述数据源的配置信息,确定所述系统对应的网关;
根据所述待检测的API的标记信息,获得所述待检测的API对应的网关信息,并确定所述待检测的API对应的网关;
根据预设的网络协议,生成所述待检测的API对应的模拟请求消息;
调用所述待检测的API,向除所述待检测的API对应的网关之外的系统对应的其他网关发送所述模拟请求消息,获得所述其他网关返回的响应信息;
若所述响应信息与第一预设断言一致,则确定所述待检测的API对应的安全检测结果为检测通过;或者,若所述响应信息与第一预设断言不一致,则确定所述待检测的API对应的安全检测结果为存在安全风险。
一种可选的实施方式为,所述检测单元具体用于:
根据预设的测试账号管理信息,获取第一测试账号和第二测试账号;所述第一测试账号的权限高于所述第二测试账号的权限;
基于所述数据源的配置信息,确定所述待检测的API对应的待检测的服务器;
根据所述预设的网络协议,生成所述待检测的API对应的模拟请求消息;
通过所述待检测的API,分别使用所述第一测试账号和所述第二测试账号向所述待检测的服务器发送所述模拟请求消息,并接收所述待检测的服务器返回的第一响应信息和第二响应信息;所述第一响应消息为所述待测试的服务器接收使用所述第一测试账号发送模拟请求消息后返回的响应消息;所述第二响应消息为所述待测试的服务器接收使用所述第二测试账号发送模拟请求消息后返回的响应消息;
若所述第一响应信息、所述第二响应信息和第二预设断言为第一关系,则确定所述待检测的API对应的安全检测结果为检测通过;所述第一关系为所述第一响应信息与所述第二响应信息不一致,以及所述第一响应信息和所述第二响应信息中不包含所述第二预设断言;或者,若所述第一响应信息、所述第二响应信息和所述第二预设断言为除所述第一关系之外的其他关系,则确定所述待检测的API对应的安全检测结果为存在安全风险。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现上述第一方面任一种的API检测方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面任一种的API检测方法。
第二方面至第四方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种API检测方法的示意流程图;
图2为本申请实施例提供的一种逻辑乱序攻击检测条件设置界面示意图;
图3为本申请实施例提供的一种逻辑乱序攻击检测方法的示意流程图;
图4为本申请实施例提供的一种异常参数攻击检测条件设置界面示意图;
图5为本申请实施例提供的一种异常参数攻击检测方法的示意流程图;
图6为本申请实施例提供的一种敏感信息检测配置界面示意图;
图7为本申请实施例提供的一种敏感信息检测方法的示意流程图;
图8为本申请实施例提供的一种后门检测方法的示意流程图;
图9为本申请实施例提供的一种内外网检测方法的示意流程图;
图10为本申请实施例提供的一种垂直越权检测设置界面中的预置请求数据的子界面示意图;
图11为本申请实施例提供的一种预置结果参数的子界面示意图;
图12为本申请实施例提供的一种直越权检测方法的示意流程图;
图13为本申请实施例提供的一种API检测装置的结构框图;
图14为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
下面对文中出现的一些术语进行解释:
(1)API:应用程序编程接口(Application Programming Interface)的缩写。是一些预先定义的接口(如函数、HTTP接口等,本文所指的API为HTTP接口),用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码、或理解内部工作机制的细节。
(2)数据标记管理:提供编辑数据信息以及根据指定条件查询的功能,主要包括:数据结构关联(比如为某个API关联所属网关、所属前端、适用环境及版本号等信息)、可用状态、安全标签(比如某个API是否包含敏感信息传入/传出,是否需要认证,是否需要进行网络隔离,等保定级、是否为“未公开接口”等)等等。
(3)API安全检测:对API从信息安全维度进行人工或自动化地分类、安全检测、安全监控及安全处置。
(4)系统“后门”:计算机行业通常意义上所说的“后门”泛指研发人员(包括所有可以接触到系统代码、服务器设备的开发、测试、运维等岗位)因某种原因有意或无意的,在系统中预留隐藏某些可以绕过安全性控制而获取对程序或系统访问权的方法。包括但不限于:隐藏的API(下文所述地“后门”API)、已公开API中的隐藏参数(下文所述地“后门”参数)、硬编码的隐藏口令/密码、测试阶段忘记删除的调试代码/脚本工具以及产品说明书上未提及的一切隐藏功能或隐藏的访问方式;这些被有意或无意制造出来的“后门”一旦被制造者或黑客伺机利用,可能给系统造成巨大损失。与“后门”API、“后门”参数相对应的,就是“已公开”API,“已公开”参数。
(5)服务发现源:对于可用性要求极高的业务系统,分布式服务架构往往会被广泛使用。而服务注册与发现则是在分布式服务架构中必然会涉及到的技术,业界目前常用的服务注册与服务发现工具有Consul、ZooKeeper、etcd、Eureka等。可以把这类工具作为一个“数据源”、即服务发现源,展开API服务搜集工作。
(6)API网关:两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。任何一个应用系统如果需要被其他系统调用,就需要暴露API,这些API代表着一个一个的功能点。如果两个系统中间通信,在系统之间加上一个“中介者”协助API的调用,这个“中介者”就是API网关。随着“微服务”架构在互联网行业的普及,API网关逐渐成为软件系统中必不可少的组件之一。目前常见的、可以被用作API网关的装置有:Nginx等。
(7)API发现源:伴随着互联网业务对开发时效性的提高,基于应用层协议的API接口被开发出来后、开发人员往往没有足够的时间编写API说明文档,也就无法始终保证API与说明书同步更新;不少厂商和组织针对这种痛点推出新的技术规范和框架,比如Swagger、smart-doc、doclever;只要开发人员按照相应规范编写代码,API说明文档就能自动被生成和展示。这种规范或框架技术在此文被成为“API发现源”。
(8)断言:自动化检测方法/系统中,计算机要想自动判断执行某种设计(方法)后的结果是否符合人类的预期、就需要人类给定一个“期望结果”;这个“期望结果”就可以被理解为“断言”。
目前,API的检测方法比较繁琐,主要通过人工对系统的API进行检测,维护API接口的安全,检测效率较低。
基于上述问题,如图1所示,本申请实施例提供一种API检测方法,包括以下步骤:
步骤S101、获取数据源的配置信息;数据源包括服务发现源、API网关和API发现源中的至少一种;
在一些实施例中,本申请实施例可通过数据库获取数据源的配置信息。
步骤S102、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
在一些实施例中,本申请实施例可根据数据源的配置信息,确定与数据源对应的系统,并与数据源对应的系统建立连接;本申请实施例在与系统建立连接后,获取系统中的API日志文件。
步骤S103、对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对应的前置API的标识、回溯时长和回溯配对。
需要说明的是,API日志文件中包括各个业务执行过程中调用的标识及对应的调用时间;回溯配对是指在回溯时长内,API日志文件中待检测的API的数量与前置API的数量相同。
具体实施中,本申请实施例根据上述条件1对待检测的API进行的漏洞检测为逻辑乱序攻击检测。
在一些实施例中,本申请实施例在用户在条件设置界面中设定检测条件后,通过设定的检测引擎的标识对应的目标检测引擎,并根据待检测的API对应的前置API的标识,在API日志文件中,查找目标时间之前的回溯时长内是否存在待检测的API对应的前置API,并根据查找结果,确定待检测的API对应的漏洞检测结果。
需要说明的是,本申请实施例中的目标时间为待检测的API对应的调用时间。
在一些实施例中,本申请实施例在API日志文件中,查找到目标时间之前的回溯时长内存在待检测的API对应的前置API,则确定待检测的API对应的漏洞检测结果为检测通过。
在另一些实施例中,本申请实施例在API日志文件中,未查找到目标时间之前的回溯时长内存在待检测的API对应的前置API,则确定待检测的API对应的漏洞检测结果为存在漏洞风险。
具体实施中,本申请实施例在确定待检测的API对应的漏洞检测结果为存在漏洞风险时,触发告警通知。
例如,如图2所示,用户可通过逻辑乱序攻击检测条件设置界面,设置需要进行逻辑乱序攻击检测的待检测的API,以及与待检测的API对应的前置API,设置进行逻辑乱序攻击检测时所使用的检测引擎的名称、回溯时长,以及回溯配对;根据用户预先设置的检测条件,对待检测的API进行检测,即在API日志文件中查找待检测的API对应的调用时间之前的回溯时长内是否存在前置API,并根据查找结果,确定待检测的API对应的漏洞检测结果。
在一些实施例中,本申请实施例根据检测条件中的回溯配对的设置不同,对待检测的API进行不同的检测。
在一些实施例中,本申请中的检测条件中的回溯配对被设置为“否”时,本申请实施例在对待检测的API进行漏洞检测时,通过在API日志文件中查找在目标时间之前的回溯时长内是否存在前置API,确定待检测的API的漏洞检测结果。
在另一些实施例中,本申请实施例在用户在条件设置界面中设定检测条件回溯配对为“是”后,对待检测的API进行漏洞检测时,通过在API日志文件中查找目标时间之前的回溯时长内的前置API的数量是否满足回溯配对的条件,确定待检测的API对应的漏洞检测结果。
具体实施中,本申请实施例在API日志文件中,待检测的API的调用时间之前的回溯时长内,是否存在前置API;若存在前置API,则确定前置API的数量是否满足回溯配对的要求;若满足回溯配对的要求,则确定待检测的API的漏洞检测结果为检测通过。
如图3所示,本申请实施例提供一种逻辑乱序攻击检测方法,其中,以检测通过为例,包括以下步骤:
步骤S301、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S302、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
需要说明的是,API日志文件中包括各个业务执行过程中调用的API的标识及对应的调用时间;
步骤S303、根据通过条件设置界面接收到的待检测的API的标识,从API日志文件中查找待检测的API;
步骤S304、通过条件设置界面接收到检测条件;
需要说明的是,检测条件包括:检测引擎的标识、与待检测的API对应的前置API的标识、回溯时长和回溯配对;
步骤S305、通过检测引擎的标识对应的目标检测引擎,根据待检测的API对应的前置API的标识,在API日志文件中,确定目标时间之前的回溯时长内存在待检测的API对应的前置API;
需要说明的是,目标时间为待检测的API对应的调用时间;
步骤S306、确定检测条件中是否设定回溯配对,若是,则执行步骤S307,若否,则执行步骤S308;
步骤S307、确定查找到的前置API的数量满足回溯配对的条件;
步骤S308、确定待检测的API的逻辑乱序攻击检测结果为检测通过。
条件2、检测条件包括:检测引擎的标识、待检测参数及对应的正常值范围、第一预设阈值。
具体实施中,本申请实施例根据上述条件2对待检测的API进行的漏洞检测为异常参数攻击检测。
在一些实施例中,本申请实施例根据检测条件中设定的待检测参数,确定在API日志文件中,与待检测的API对应的待检测参数的参数信息,并将确定出的待检测参数的参数信息与待检测参数对应的正常值范围进行比对,根据比对结果确定待检测的API对应的漏洞检测结果。
例如,如图4所示,用户可通过异常参数攻击检测条件设置界面设定检测条件,包括设定检测引擎名称、待检测的API、待检测参数、待检测参数的相关信息的正常值范围以及告警阈值次数。本申请实施例根据设定的检测条件,对待检测的API对应的检测参数进行异常参数攻击检测,根据待检测参数的参数信息与待检测参数对应的参数信息的正常值范围的比对结果,确定待检测的API的异常参数攻击检测结果。
在一些实施例中,本申请实施例根据检测条件中的告警阈值次数的设置不同,对待检测的API进行不同的检测。
在一些实施例中,本申请中的检测条件中的告警阈值次数被设置为“否”时,本申请实施例在对待检测的API进行漏洞检测时,将待检测参数的参数信息与待检测参数对应的正常值范围进行比对,根据比对结果确定待检测的API的漏洞检测结果。
具体实施中,本申请实施例中的待检测参数的参数信息处于待检测参数对应的正常值范围之内,确定待检测的API的漏洞检测结果为检测通过。或者,本申请实施例中的待检测参数的参数信息处于待检测参数对应的正常值范围之外,确定待检测的API的漏洞检测结果为存在漏洞风险,即确定待检测的API受到攻击。
在另一些实施例中,本申请中的检测条件中的告警阈值次数被设置为“是”时,在异常参数攻击检测条件设置界面中设置第一预设阈值以及告警时间;本申请实施例在对待检测的API进行漏洞检测时,在检测到待检测参数的参数信息处于待检测参数对应的正常值之外,增加待检测的API对应的告警次数。
本申请实施例根据待检测的API的告警次数与第一预设阈值X的关系,确定待检测的API对应的漏洞检测结果。
具体实施中,若待检测的API的告警次数小于第一预设阈值X,则确定待检测的API的漏洞检测结果为检测通过;
若待检测的API的告警次数不小于第一预设阈值X,确定待检测的API在设定的告警时间内的告警次数;若待检测的API在设定的告警时间内的告警次数达到X-1,则确定待检测的API对应的漏洞检测结果为存在漏洞风险。
例如,第一预设阈值为5,告警时间为5小时,在检测到待检测的API的告警次数达到5时,重新统计待检测的API的告警次数,若待检测的API在5小时内的告警次数达到5-1次,即4次时,确定待检测的API对应的漏洞检测结果为存在漏洞风险。
具体实施中,本申请实施例在确定待检测的API对应的漏洞检测结果为存在漏洞风险时,触发告警通知。
如图5所示,本申请实施例提供一种异常参数攻击检测方法,其中以设置告警阈值次数为例,包括以下步骤:
步骤S501、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S502、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
步骤S503、根据通过条件设置界面接收到的待检测的API的标识,从API日志文件中查找待检测的API;
步骤S504、通过条件设置界面接收到检测条件;
需要说明的是,检测条件包括:检测引擎的标识、待检测参数及对应的正常值范围、第一预设阈值;
步骤S505、在API日志文件中,确定待检测的API对应的待检测参数的参数信息;
步骤S506、确定待检测参数的参数信息是否处于待检测参数对应的正常值范围之外,若是,则执行步骤S507,若否,则执行步骤S511;
步骤S507、增加待检测的API对应的告警次数;
步骤S508、确定待检测的API对应的告警次数是否小于第一预设阈值X,若是,则执行步骤S511,若否,则执行步骤S509;
步骤S509、确定待检测的API在告警时间内的告警次数,是否小于X-1;若是,则执行步骤S511,若否,则执行步骤S510;
步骤S510、确定待检测的API的异常参数攻击检测结果为存在漏洞风险;
步骤S511、确定待检测的API的异常参数攻击检测结果为检测通过。
方式二、安全检测。
在一些实施例中,本申请实施例通过获取待检测的API的标记信息,在API日志文件中查找待检测的API,对待检测的API进行安全检测,得到待检测的API对应的安全检测结果。
具体实施中,本申请实施例中对待检测的API进行的安全检测包括后门检测、敏感信息检测、垂直越权检测、内外网检测。下面分别针对上述四种安全检测方式对待检测的API的安全检测过程进行说明。
安全检测方式1、敏感信息检测。
在一些实施例中,本申请实施例确定待检测的API在设定时间段的调用次数,若确定待检测的API对应的安全检测结果未达到第二预设阈值,则确定待检测的API对应的安全检测结果为检测通过;或者,若待检测的API的调用次数达到第二预设阈值,则确定待检测的API对应的安全检测结果为存在安全风险。
需要说明的是,本申请实施例中的待检测的API的标记信息包括敏感信息。
具体实施中,本申请实施例在确定待检测的API对应的安全检测结果为存在安全风险后,触发告警通知,通知用户对安全风险进行处理。
需要说明的是,本申请实施例中的敏感信息检测并不能在初次使用时完成对待检测的API的敏感信息检测,并实现告警通知,敏感信息检测的实现需要基于一定的历史数据。例如,敏感信息检测在使用一天后,才能够生效,实现对待检测的API的安全检测。
具体实施中,本申请实施例根据通过获取待检测的API的标记信息,根据待检测的API的敏感标记,建立敏感信息API监控矩阵,记录符合敏感标记的待检测的API的调用次数。
需要说明的是,本申请实施例中的记录粒度为小时,且历史汇总维度为当天调用次数,本周调用次数和本月调用次数。
在一些实施例中,本申请实施例基于待检测的API的敏感信息,确定待检测的API对应的敏感参数,并针对确定出的各个敏感参数,分别执行如下操作:
本申请实施例从待检测的API中确定包含敏感参数的各个目标API,并根据各个目标API在设定时间段的调用次数,确定敏感参数在设定时间段的调用次数。
在一些实施例中,本申请实施例将敏感参数的调用次数与第三预设阈值进行比较,根据比较结果确定敏感参数对应的安全检测结果;若敏感参数的调用次数未达到第三预设阈值,则确定敏感参数对应的安全检测结果为检测通过;或者,若敏感参数的调用次数达到第三预设阈值,则确定敏感参数对应的安全检测结果为存在安全风险。
具体实施中,本申请实施例在确定待检测的API对应的安全检测结果为存在安全风险后,触发告警通知,通知用户对安全风险进行处理。
需要说明的是,本申请实施例中的安全检测结果为存在安全风险时,是表示待检测的API存在调用异常的现象,即表示待检测的API存在敏感信息泄露的风险。
在一些实施例中,本申请实施例可通过可视化界面设置告警配置,告警配置包括以下至少一种配置:
1)M周期内,待检测的API的调用次数超过历史同期平均调用次数N%,触发告警通知。
2)当前小时(或天)内,待检测的API的调用次数超过历史某个小时(或天)调用次数的最大值,触发告警通知。
3)M周期内,敏感参数的调用次数超过历史同期平均调用次数N%,触发告警通知。
4)当前小时(或天)内,敏感参数的调用次数超过历史某个小时(或天)调用次数的最大值,触发告警通知。
例如,如图6所示,用户可通过敏感信息检测配置界面从已配置的数据源信息中选取需要进行敏感检测的服务发现源,API网关和API发现源;并根据API的标记信息选取包含敏感信息的API作为待检测的API;用户可通过统计频率模块设置统计待检测的API的调用次数,其中,汇总维度默认为:当天调用次数、本周调用次数和本月调用次数;并且,用户可通过告警配置模块设置敏感检测的告警配置,且告警配置区域模块为非必填项,当告警配置区域模块为空时,则不统计待检测的API在设置的时间范围内的调用次数;并且,用户可通过敏感参数设置模块设置待检测的敏感参数,通过点击参数设置模块的“加号”区域,增加敏感参数设置模块,实现对同一个API下的多个参数告警统计配置;另外,用户还可通过设置生成可视化统计图实现在显示界面中增加一张可视化的统计图,若将生成可视化统计图设置为“否”时,只新增一条监控数据,不在显示界面中进行显示。
如图7所示,本申请实施例提供一种敏感信息检测方法,其中,以检测API为例,包括以下步骤:
步骤S701、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S702、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
步骤S703、获取待检测的API的标记信息;
步骤S704、根据待检测的API的标记信息,在API日志文件中查找待检测的API;
需要说明的是,待检测的API的标记信息包括敏感信息;
步骤S705、确定待检测的API在设定时间段的调用次数;
步骤S706、确定待检测的API的调用次数是否达到第二预设阈值,若是,则执行步骤S707,若否,则执行步骤S708;
步骤S707、确定待检测的API对应的安全检测结果为存在安全风险;
步骤S708、确定待检测的API对应的安全检测结果为检测通过。
安全检测方式2、后门检测。
在一些实施例中,本申请实施例通过获取API的配置信息,确定已公开的API,并将待检测的API与已公开的API进行匹配,若匹配成功,则确定待检测的API对应的安全检测结果为检测通过,表示待检测的API为已公开的API;若匹配失败,则确定待检测的API对应的安全检测结果为存在安全风险。
具体实施中,本申请实施例中的待检测的API与已公开的API匹配失败,表示待检测的API可能为以下几种情形:
(1)待检测的API是业务必须的正常功能,但研发人员未按照指定方式公开或上报该待检测的API;系统可自动告知开发人员及时公开其说明文档完成上报,将待检测的API的配置信息修改为已公开。
(2)待检测的API是为了方便测试使用的功能,系统上线前并未作废;系统可直接将该待检测的API当做后门处理。
(3)待检测的API为研发人员预留的后门。
如图8所示,本申请实施例提供一种后门检测方法,包括以下步骤:
步骤S801、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S802、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
步骤S803、获取待检测的API的标记信息和API的配置信息;
步骤S804、根据待检测的API的标记信息,在API日志文件中查找待检测的API;
步骤S805、根据API的配置信息,确定已公开的API;
步骤S806、确定待检测的API与已公开的API是否匹配成功,若是,执行步骤S807,若否,执行步骤S808;
步骤S807、确定待检测的API对应的安全检测结果为检测通过;
步骤S808、确定待检测的API对应的安全检测结果为存在安全风险。
安全检测方式3、内外网检测。
目前,随着微服务架构的盛行,一套业务系统会存在海量的API和多个API网关,且API和API网关为多对多的对应关系时,会存在由于某种配置错误,同一个API可能从多个API网关被调通;当某个API进攻内网使用管理功能,一旦被暴露在外网,会大大提高敏感信息泄露,管理后台被攻击等风险发生的记录。
基于上述问题,本申请实施例提供一种内外网检测方法,用以检测API与网关的连接关系,从而降低风险的发生几率。
实施中,本申请实施例根据数据源的配置信息,确定系统对应的网关;并根据待检测的API的标记信息,获得待检测的API对应的网关信息,进而确定待检测的API对应的网关。
具体实施中,本申请实施例根据预设的网络协议,生成待检测的API对应的模拟请求消息。
需要说明的是,本申请实施例中的模拟请求消息为根据预设的网络协议,模拟用户在网页上点击待检测的API后,待检测的API生成的请求消息。
在一些实施例中,本申请实施例在生成待检测的API对应的模拟请求消息后,调用待检测的API,向除待检测的API对应的网关之外的系统对应的其他网关发送模拟请求消息,并获得其他网关返回的响应信息。
在一些实施例中,本申请实施例若确定接收到的相应信息与第一预设断言一致,则确定待检测的API对应的安全检测结果为检测通过,表示待检测的API不存在内外网隔离失败。
在另一些实施例中,本申请实施例若确定接收到的相应信息与第一预设断言不一致,则确定待检测的API对应的安全检测结果为存在安全风险,表示待检测的API存在内外网隔离失败。
如图9所示,本申请实施例提供一种内外网检测方法,包括以下步骤:
步骤S901、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S902、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
步骤S903、获取待检测的API的标记信息;
步骤S904、根据待检测的API的标记信息,在API日志文件中查找待检测的API;
步骤S905、根据数据源的配置信息,确定系统对应的网关;
具体实施中,本申请实施例根据API网关确定系统对应的网关;
步骤S906、根据待检测的API的标记信息,获得待检测的API对应的网关信息,并确定待检测的API对应的网关;
步骤S907、根据预设的网络协议,生成待检测的API对应的模拟请求消息;
需要说明的是,模拟请求消息为根据预设的网络协议生成的模拟用户点击API后生成的请求消息;
步骤S908、调用待检测的API,向除待检测的API对应的网关之外的系统对应的其他网关发送模拟请求消息,获得其他网关返回的响应信息;
步骤S909、确定响应信息与第一预设断言是否一致,若是,则执行步骤S910,若否,则执行步骤S911;
步骤S910、确定待检测的API对应的安全检测结果为检测通过;
步骤S911、确定待检测的API对应的安全检测结果为存在安全风险。
安全检测方式4、垂直越权检测。
目前,随着微服务架构的盛行,一套业务系统会存在海量的API和多种权限、角色,且API和权限角色为多对多的对应关系,使得检测每个API针对不同的账号的权限控制是否失效的工作量巨大,一旦发生漏测,会导致存在垂直越权问题的API被暴露在生产环境中,会大大提高敏感信息泄露、业务被攻击失效的风险发生的几率。
基于上述问题,本申请实施例提供一种垂直越权检测方法,用以提高API权限检测的效率,降低风险的发生几率。
在一些实施例中,本申请实施例根据预设的测试账号管理信息,获取第一测试账号和第二测试账号。
需要说明的是,本申请实施例中的第一测试账号的权限高于第二测试账号的权限。
在一些实施例中,本申请实施例根据数据源的配置信息,确定待检测的API对应的待检测的服务器;并根据预设的网络协议,生成待检测的API对应的模拟请求消息。
具体实施中,本申请实施例在生成模拟请求消息后,通过待检测的API,分别使用第一测试账号和第二测试账号待检测的服务器发送模拟请求消息,并接收待检测的服务器返回的第一响应信息和第二响应信息。
需要说明的是,第一响应消息为待测试的服务器接收使用第一测试账号发送模拟请求消息后返回的响应消息;第二响应消息为待测试的服务器接收使用第二测试账号发送模拟请求消息后返回的响应消息。
本申请实施例根据待检测的API的标记信息,确定待检测的API的HTTP方法、应属网关、URL路径、请求体等基本信息;并基于待检测的API的基本信息,确定UA、UB两个账号的HTTP协议的登录的API信息。系统登录账号后自动生成UA和UB的会话标识,分别记为CA、CB。
在一些实施例中,本申请实施例根据预设的网络协议HTTP协议,生成待检测的API对应的模拟请求消息,并分别通过UA和UB,调用待检测的API向待检测的服务器发送模拟请求消息,接收到待检测的服务器返回的两个响应RA和RB。
在一些实施例中,本申请实施例根据第一响应信息、第二响应信息和第二预设断言确定待检测的API的安全检测结果。
具体实施中,若第一响应信息、第二响应信息和第二预设断言为第一关系,则确定待检测的API对应的安全检测结果为检测通过。
需要说明的是,第一关系为第一响应信息与第二响应信息不一致,以及第一响应信息和第二响应信息中不包含第二预设断言。
在另一些实施例中,若第一响应信息、第二响应信息和第二预设断言为除第一关系之外的其他关系,则确定待检测的API对应的安全检测结果为存在安全风险。
在一些实施例中,本申请实施例中第一响应信息、第二响应信息和第二预设断言之间的关系包括但不限于以下几种:
(1)RA和RB不一样,且RA和RB均不包括第二预设断言,表示待检测的API不存在垂直越权的问题。
(2)RA和RB不一样,且RA或RB包括第二预设断言,表示待检测的API存在垂直越权的问题。
(3)RA和RB一样,且RA和RB均不包括第二预设断言,表示无法确定待检测的API是否存在垂直越权的问题,因此触发疑似告警。
(4)RA和RB一样,且RA或RB包括第二预设断言,表示待检测的API存在垂直越权的问题。
(5)其他情况、记录功能异常,触发疑似告警。
例如,如图10所示,用户通过垂直越权检测设置界面中的预置请求数据的子界面设置需要进行检测的服务发现源名称、API网关名称、API发现源名称、服务名称、以及进行测试的账号1和账号2,其中,账号1为超管账号UA,账号2为空权限账号UB,服务发现源、API网关、API发现源和服务从已配置的服务发现源数据、API网关数据、API发现源数据以及API服务数据中选取。如图11所示,用户在完成预置请求数据的设置后,通过点击下一步进入预置结果参数的子界面中,设置结果参数,包括账号1对应的响应结果1RA,账号2对应的响应结果2RB,响应断言,以及响应结果与响应断言的比对配置以及处理设置;其中,用户可设置多个响应断言以及多种比对配置和处理配置。
如图12所示,本申请实施例提供一种垂直越权检测方法,包括以下步骤:
步骤S1201、获取数据源的配置信息;
需要说明的是,数据源包括服务发现源、API网关和API发现源中的至少一种;
步骤S1202、根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
步骤S1203、获取待检测的API的标记信息;
步骤S1204、根据待检测的API的标记信息,在API日志文件中查找待检测的API;
步骤S1205、根据预设的测试账号管理信息,获取第一测试账号和第二测试账号;
需要说明的是,第一测试账号的权限高于第二测试账号的权限;
步骤S1206、基于数据源的配置信息,确定待检测的API对应的待检测的服务器;
步骤S1207、根据预设的网络协议,生成待检测的API对应的模拟请求消息;
步骤S1208、通过待检测的API,分别使用第一测试账号和第二测试账号向待检测的服务器发送模拟请求消息,并接收待检测的服务器返回的第一响应信息和第二响应信息;
需要说明的是,第一响应消息为待测试的服务器接收使用第一测试账号发送模拟请求消息后返回的响应消息;第二响应消息为待测试的服务器接收使用第二测试账号发送模拟请求消息后返回的响应消息;
步骤S1209、确定第一响应信息、第二响应信息和第二预设断言之间的关系是否为第一关系,若是,则执行步骤S1210,若否,则执行步骤S1211;
步骤S1210、确定待检测的API对应的安全检测结果为检测通过;
步骤S1211、确定待检测的API对应的安全检测结果为存在安全风险。
基于同一发明构思,本申请实施例中还提供了一种API检测装置,由于该装置解决问题的原理与本申请实施例API检测方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图13所示,本申请实施例提供一种API检测装置,包括:
第一获取单元1301,用于获取数据源的配置信息;数据源包括服务发现源、API网关和API发现源中的至少一种;
第二获取单元1302,用于根据数据源的配置信息,与数据源对应的系统建立连接,并从数据源对应的系统获取API日志文件;
检测单元1303,用于对API日志文件中待检测的API进行检测,得到检测结果。
一种可选的实施方式为,检测单元1303具体用于:
根据通过条件设置界面接收到的待检测的API的标识,从API日志文件中查找待检测的API;
按照设定的检测条件,对待检测的API进行漏洞检测,得到待检测的API对应的漏洞检测结果;检测条件为通过条件设置界面接收到的检测条件。
一种可选的实施方式为,检测条件包括:检测引擎的标识、与待检测的API对应的前置API的标识和回溯时长;API日志文件中包括各个业务执行过程中调用的API的标识及对应的调用时间;
检测单元1303具体用于:
通过检测引擎的标识对应的目标检测引擎,根据待检测的API对应的前置API的标识,在API日志文件中,查找目标时间之前的回溯时长内是否存在待检测的API对应的前置API;目标时间为待检测的API对应的调用时间;
根据查找结果,确定待检测的API对应的漏洞检测结果。
一种可选的实施方式为,检测条件还包括回溯配对;回溯配对是指在回溯时长内,API日志文件中待检测的API的数量与前置API的数量相同;
检测单元1303具体用于:
若查找到的前置API的数量满足回溯配对的条件,则确定待检测的API对应的漏洞检测结果为检测通过。
一种可选的实施方式为,检测条件包括:检测引擎的标识、待检测参数及对应的正常值范围;检测单元1303具体用于:
在API日志文件中,确定待检测的API对应的待检测参数的参数信息;
将待检测参数的参数信息与待检测参数对应的正常值范围进行比对;
根据比对结果确定待检测的API对应的漏洞检测结果。
一种可选的实施方式为,检测条件还包括第一预设阈值;检测单元1303具体用于:
若待检测参数的参数信息处于待检测参数对应的正常值范围之外,则增加待检测的API对应的告警次数;
根据告警次数与第一预设阈值的关系,确定待检测的API对应的漏洞检测结果。
一种可选的实施方式为,对API日志文件中待检测的API进行检测,得到检测结果之前,第一获取单元1301还用于:
获取待检测的API的标记信息;
检测单元1303具体用于:
根据待检测的API的标记信息,在API日志文件中查找待检测的API;
对待检测的API进行安全检测,得到待检测的API对应的安全检测结果。
一种可选的实施方式为,检测单元1303具体用于:
确定待检测的API在设定时间段的调用次数;
若待检测的API的调用次数未达到第二预设阈值,则确定待检测的API对应的安全检测结果为检测通过;或者,若待检测的API的调用次数达到第二预设阈值,则确定待检测的API对应的安全检测结果为存在安全风险。
一种可选的实施方式为,待检测的API的标记信息包括敏感信息;在确定待检测的API在设定时间段的调用次数之后,检测单元1303还用于:
基于待检测的API的敏感信息,确定待检测的API对应的敏感参数;
针对各个敏感参数,分别执行如下操作:
确定包含敏感参数的各个目标API;
根据各个目标API在设定时间段的调用次数,确定敏感参数在设定时间段的调用次数;
若敏感参数的调用次数未达到第三预设阈值,则确定敏感参数对应的安全检测结果为检测通过;或者,若敏感参数的调用次数达到第三预设阈值,则确定敏感参数对应的安全检测结果为存在安全风险。
一种可选的实施方式为,在对待检测的API进行安全检测,得到待检测的API对应的安全检测结果之前,第一获取单元1301还用于:
获取API的配置信息;
根据API的配置信息,确定已公开的API;
检测单元1302具体用于:
将待检测的API与已公开的API进行匹配;
若匹配成功,则确定待检测的API对应的安全检测结果为检测通过;或者,若匹配失败,则确定待检测的API对应的安全检测结果为存在安全风险。
一种可选的实施方式为,检测单元1303具体用于:
根据数据源的配置信息,确定系统对应的网关;
根据待检测的API的标记信息,获得待检测的API对应的网关信息,并确定待检测的API对应的网关;
根据预设的网络协议,生成待检测的API对应的模拟请求消息;
调用待检测的API,向除待检测的API对应的网关之外的系统对应的其他网关发送模拟请求消息,获得其他网关返回的响应信息;
若响应信息与第一预设断言一致,则确定待检测的API对应的安全检测结果为检测通过;或者,若响应信息与第一预设断言不一致,则确定待检测的API对应的安全检测结果为存在安全风险。
一种可选的实施方式为,检测单元1303具体用于:
根据预设的测试账号管理信息,获取第一测试账号和第二测试账号;第一测试账号的权限高于第二测试账号的权限;
基于数据源的配置信息,确定待检测的API对应的待检测的服务器;
根据预设的网络协议,生成待检测的API对应的模拟请求消息;
通过待检测的API,分别使用第一测试账号和第二测试账号向待检测的服务器发送模拟请求消息,并接收待检测的服务器返回的第一响应信息和第二响应信息;第一响应消息为待测试的服务器接收使用第一测试账号发送模拟请求消息后返回的响应消息;第二响应消息为待测试的服务器接收使用第二测试账号发送模拟请求消息后返回的响应消息;
若第一响应信息、第二响应信息和第二预设断言为第一关系,则确定待检测的API对应的安全检测结果为检测通过;第一关系为第一响应信息与第二响应信息不一致,以及第一响应信息和第二响应信息中不包含第二预设断言;或者,若第一响应信息、第二响应信息和第二预设断言为除第一关系之外的其他关系,则确定待检测的API对应的安全检测结果为存在安全风险。
与图1所示的API检测方法基于同一发明构思,本申请实施例还提供了一种电子设备。电子设备的结构可以如图14所示,包括存储器131,通讯模块133以及一个或多个处理器132。
存储器131,用于存储处理器132执行的计算机程序。存储器131可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
处理器132,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器132,用于调用存储器131中存储的计算机程序时实现上述检测方法。
通讯模块133用于与终端进行通信,获取数据。
本申请实施例中不限定上述存储器131、通讯模块133和处理器132之间的具体连接介质。本公开实施例在图14中以存储器131和处理器132之间通过总线134连接,总线134在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线134可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例中的API检测方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种应用程序接口API检测方法,其特征在于,包括:
获取数据源的配置信息;所述数据源包括服务发现源、API网关和API发现源中的至少一种;
根据所述数据源的配置信息,与所述数据源对应的系统建立连接,并从所述数据源对应的系统获取API日志文件;
对所述API日志文件中待检测的API进行检测,得到检测结果。
2.根据权利要求1所述的方法,其特征在于,对所述API日志文件中待检测的API进行检测,得到检测结果,包括:
根据通过条件设置界面接收到的待检测的API的标识,从所述API日志文件中查找待检测的API;
按照设定的检测条件,对所述待检测的API进行漏洞检测,得到所述待检测的API对应的漏洞检测结果;所述检测条件为通过所述条件设置界面接收到的检测条件。
3.根据权利要求2所述的方法,其特征在于,所述检测条件包括:检测引擎的标识、与所述待检测的API对应的前置API的标识和回溯时长;所述API日志文件中包括各个业务执行过程中调用的API的标识及对应的调用时间;
所述按照设定的检测条件,对所述待检测的API进行漏洞检测,得到所述待检测的API对应的漏洞检测结果,包括:
通过所述检测引擎的标识对应的目标检测引擎,根据所述待检测的API对应的前置API的标识,在所述API日志文件中,查找目标时间之前的所述回溯时长内是否存在所述待检测的API对应的前置API;所述目标时间为所述待检测的API对应的调用时间;
根据查找结果,确定所述待检测的API对应的漏洞检测结果。
4.根据权利要求3所述的方法,其特征在于,所述检测条件还包括回溯配对;所述回溯配对是指在所述回溯时长内,所述API日志文件中所述待检测的API的数量与所述前置API的数量相同;
所述根据查找结果,确定所述目标API对应的漏洞检测结果,包括:
若查找到的所述前置API的数量满足所述回溯配对的条件,则确定所述待检测的API对应的漏洞检测结果为检测通过。
5.根据权利要求2所述的方法,其特征在于,所述检测条件包括:检测引擎的标识、待检测参数及对应的正常值范围;所述按照设定的检测条件,对所述待检测的API进行漏洞检测,得到所述待检测的API对应的漏洞检测结果,包括:
在所述API日志文件中,确定所述待检测的API对应的所述待检测参数的参数信息;
将所述待检测参数的参数信息与所述待检测参数对应的正常值范围进行比对;
根据比对结果确定所述待检测的API对应的漏洞检测结果。
6.根据权利要求5所述的方法,其特征在于,所述检测条件还包括第一预设阈值;所述根据比对结果确定所述待检测的API对应的漏洞检测结果;包括:
若所述待检测参数的参数信息处于所述待检测参数对应的正常值范围之外,则增加所述待检测的API对应的告警次数;
根据所述告警次数与所述第一预设阈值的关系,确定所述待检测的API对应的漏洞检测结果。
7.根据权利要求1所述的方法,其特征在于,所述对所述API日志文件中待检测的API进行检测,得到检测结果之前,所述方法还包括:
获取所述待检测的API的标记信息;
对所述API日志文件中待检测的API进行检测,得到检测结果,包括:
根据所述待检测的API的标记信息,在所述API日志文件中查找待检测的API;
对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果。
8.根据权利要求7所述的方法,其特征在于,所述对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果,包括:
确定所述待检测的API在设定时间段的调用次数;
若所述待检测的API的调用次数未达到第二预设阈值,则确定所述待检测的API对应的安全检测结果为检测通过;或者,若所述待检测的API的调用次数达到第二预设阈值,则确定所述待检测的API对应的安全检测结果为存在安全风险。
9.根据权利要求8所述的方法,其特征在于,所述待检测的API的标记信息包括敏感信息;在确定所述待检测的API在设定时间段的调用次数之后,所述方法还包括:
基于所述待检测的API的敏感信息,确定所述待检测的API对应的敏感参数;
针对各个敏感参数,分别执行如下操作:
确定包含所述敏感参数的各个目标API;
根据各个所述目标API在所述设定时间段的调用次数,确定所述敏感参数在所述设定时间段的调用次数;
若所述敏感参数的调用次数未达到第三预设阈值,则确定所述敏感参数对应的安全检测结果为检测通过;或者,若所述敏感参数的调用次数达到第三预设阈值,则确定所述敏感参数对应的安全检测结果为存在安全风险。
10.根据权利要求7所述的方法,其特征在于,在所述对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果之前,还包括:
获取所述API的配置信息;
根据所述API的配置信息,确定已公开的API;
对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果,包括:
将所述待检测的API与所述已公开的API进行匹配;
若匹配成功,则确定所述待检测的API对应的安全检测结果为检测通过;或者,若匹配失败,则确定所述待检测的API对应的安全检测结果为存在安全风险。
11.根据权利要求7所述的方法,其特征在于,所述对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果,包括:
根据所述数据源的配置信息,确定所述系统对应的网关;
根据所述待检测的API的标记信息,获得所述待检测的API对应的网关信息,并确定所述待检测的API对应的网关;
根据预设的网络协议,生成所述待检测的API对应的模拟请求消息;
调用所述待检测的API,向除所述待检测的API对应的网关之外的系统对应的其他网关发送所述模拟请求消息,获得所述其他网关返回的响应信息;
若所述响应信息与第一预设断言一致,则确定所述待检测的API对应的安全检测结果为检测通过;或者,若所述响应信息与第一预设断言不一致,则确定所述待检测的API对应的安全检测结果为存在安全风险。
12.根据权利要求7所述的方法,其特征在于,所述对所述待检测的API进行安全检测,得到所述待检测的API对应的安全检测结果,包括:
根据预设的测试账号管理信息,获取第一测试账号和第二测试账号;所述第一测试账号的权限高于所述第二测试账号的权限;
基于所述数据源的配置信息,确定所述待检测的API对应的待检测的服务器;
根据所述预设的网络协议,生成所述待检测的API对应的模拟请求消息;
通过所述待检测的API,分别使用所述第一测试账号和所述第二测试账号向所述待检测的服务器发送所述模拟请求消息,并接收所述待检测的服务器返回的第一响应信息和第二响应信息;所述第一响应消息为所述待测试的服务器接收使用所述第一测试账号发送模拟请求消息后返回的响应消息;所述第二响应消息为所述待测试的服务器接收使用所述第二测试账号发送模拟请求消息后返回的响应消息;
若所述第一响应信息、所述第二响应信息和第二预设断言为第一关系,则确定所述待检测的API对应的安全检测结果为检测通过;所述第一关系为所述第一响应信息与所述第二响应信息不一致,以及所述第一响应信息和所述第二响应信息中不包含所述第二预设断言;或者,若所述第一响应信息、所述第二响应信息和所述第二预设断言为除所述第一关系之外的其他关系,则确定所述待检测的API对应的安全检测结果为存在安全风险。
13.一种API检测装置,其特征在于,所述装置包括:
第一获取单元,用于获取数据源的配置信息;所述数据源包括服务发现源、API网关和API发现源中的至少一种;
第二获取单元,用于根据所述数据源的配置信息,与所述数据源对应的系统建立连接,并从所述数据源对应的系统获取API日志文件;
检测单元,用于对所述API日志文件中待检测的API进行检测,得到检测结果。
14.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现权利要求1~12中任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现权利要求1~12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110244089.6A CN113014587B (zh) | 2021-03-05 | 2021-03-05 | 一种api检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110244089.6A CN113014587B (zh) | 2021-03-05 | 2021-03-05 | 一种api检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014587A true CN113014587A (zh) | 2021-06-22 |
CN113014587B CN113014587B (zh) | 2023-06-06 |
Family
ID=76406451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110244089.6A Active CN113014587B (zh) | 2021-03-05 | 2021-03-05 | 一种api检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014587B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392410A (zh) * | 2021-08-17 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 接口安全性检测方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804644A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 接口日志存储方法、装置、计算机设备和存储介质 |
CN110113394A (zh) * | 2019-04-19 | 2019-08-09 | 浙江数链科技有限公司 | Api调用方法和装置 |
CN110162979A (zh) * | 2019-05-27 | 2019-08-23 | 北京百度网讯科技有限公司 | 一种Web API的安全测试方法、装置、电子设备及存储介质 |
-
2021
- 2021-03-05 CN CN202110244089.6A patent/CN113014587B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804644A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 接口日志存储方法、装置、计算机设备和存储介质 |
CN110113394A (zh) * | 2019-04-19 | 2019-08-09 | 浙江数链科技有限公司 | Api调用方法和装置 |
CN110162979A (zh) * | 2019-05-27 | 2019-08-23 | 北京百度网讯科技有限公司 | 一种Web API的安全测试方法、装置、电子设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392410A (zh) * | 2021-08-17 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 接口安全性检测方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113014587B (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112905261B (zh) | 一种应用程序接口api管控方法、装置及电子设备 | |
CN109525558A (zh) | 数据泄露检测方法、系统、装置及存储介质 | |
CN112385196B (zh) | 用于报告计算机安全事故的系统和方法 | |
CN113111951B (zh) | 数据处理方法以及装置 | |
CN116155771A (zh) | 网络异常测试方法、装置、设备、存储介质和程序 | |
WO2021174870A1 (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
CN110442582B (zh) | 场景检测方法、装置、设备和介质 | |
Ládi et al. | Message format and field semantics inference for binary protocols using recorded network traffic | |
CN110830500B (zh) | 网络攻击追踪方法、装置、电子设备及可读存储介质 | |
CN113098852B (zh) | 一种日志处理方法及装置 | |
CN113014587B (zh) | 一种api检测方法、装置、电子设备及存储介质 | |
CN110941632A (zh) | 一种数据库审计方法、装置及设备 | |
CN111988322B (zh) | 一种攻击事件展示系统 | |
CN111245800B (zh) | 网络安全测试方法和装置、存储介质、电子装置 | |
CN113364766B (zh) | 一种apt攻击的检测方法及装置 | |
CN113904828B (zh) | 接口的敏感信息检测方法、装置、设备、介质和程序产品 | |
CN115659346A (zh) | 一种多方安全计算平台的功能测试方法及装置 | |
CN113282506A (zh) | 测试数据获取方法、装置、设备及计算机可读存储介质 | |
CN112581129A (zh) | 区块链交易数据治理方法及装置、计算机设备及存储介质 | |
CN113806555A (zh) | 用于app的运营异常识别方法、系统、装置及存储介质 | |
CN111427710A (zh) | 应用程序中组件的通信方法、装置、设备及存储介质 | |
CN112637873A (zh) | 基于无人系统无线通信网络的鲁棒性测试方法及装置 | |
CN110414251A (zh) | 数据监测方法和装置 | |
CN112541183B (zh) | 数据处理方法及装置、边缘计算设备、存储介质 | |
CN117614705A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |