CN106709333B - 一种应用编程的安全性检测方法及装置 - Google Patents
一种应用编程的安全性检测方法及装置 Download PDFInfo
- Publication number
- CN106709333B CN106709333B CN201510784255.6A CN201510784255A CN106709333B CN 106709333 B CN106709333 B CN 106709333B CN 201510784255 A CN201510784255 A CN 201510784255A CN 106709333 B CN106709333 B CN 106709333B
- Authority
- CN
- China
- Prior art keywords
- detection
- request content
- api request
- rule
- 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.)
- Active
Links
Classifications
-
- 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/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种应用编程的安全性检测方法及装置,用于消除现有技术中APP存在的安全威胁,提高API安全性和可用性。本发明实施例方法包括:接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果;若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
Description
技术领域
本发明涉及应用编程接口(Application Programming Interface,简称API)技术领域,具体涉及一种应用编程的安全性检测方法及装置。
背景技术
API大规模兴起,大量的API提供者把自己的API通过API管理平台向公众开发者开发,API提供了一组功能,通过调用API可以实现API提供的功能。公众开发者可以基于API自行开发应用程序(Application,简称APP),APP通过调用API实现APP的功能。
API管理平台提供鉴权、流控、API编排和管理等。而在API管理安全方面,API管理平台提供的主要功能有鉴权、SLA流控、密钥管理、身份安全令牌(token)、日志审计等。如图1所示,图1是一种基于API管理平台调用API的场景应用图。在图1中,包括API管理平台、APP、终端和后端服务器,后端服务器可以向API管理平台提供一个或多个可以被APP调用的API,API被APP调用从而实现相应功能。API被调用过程中,API管理平台完成对API的安全检测,包括上述鉴权、SLA流控、密钥管理、身份安全令牌(token)、日志审计等,但是针对APP发送的一些应用数据、信息内容等,现有API管理平台却没有相应的安全威胁检测策略,使得基于API开发得到的APP存在安全威胁,限制了API的使用范围。
发明内容
针对上述技术缺陷,本发明实施例提供了一种应用编程的安全性检测方法及装置,用于解决现有技术APP产生的应用数据的安全性问题,以提高API安全性和可用性。
本发明第一方面提供了一种应用编程的安全性检测方法,可包括:
接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;
根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;
根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果;
若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
优选地,上述字段信息可以是API名称(通过统一资源定位符(Uniform ResourceLocator,简称URL)表示)、业务内容等。
可以看出,本发明实施例在接收了API请求内容后,根据预设检测规则,对API请求内容进行检测,得到一个安全检测结果,在本发明实施例中所说的API请求内容包括至少一个字段信息,而安全检测结果用于指示该API请求内容检测通过或者不通过。根据该预设检测规则,对预设时间段内收到的N个由同一个APP发送的API请求内容进行安全检测,然后得到N个安全检测结果,之后,利用预设统计算法,对该N个安全检测结果进行统计,得到统计结果,若该统计结果符合策略触发条件,则对该APP执行相应的安全处理策略。在本发明实施例中,API管理平台能够根据APP发送的API请求内容进行安全威胁检测,以消除APP存在的威胁,也确保了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请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则。
在本发明一些实施例中,上述根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果包括:根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。可以看出,本发明实施例中可以通过API去分析APP所发送的API请求内容,以实现对API七层及以上内容的分析来实现消除APP威胁。而在根据API请求内容确认出APP存在相应的安全威胁时,API(API管理平台)可以对APP执行例如限流、拒绝访问等操作。
本发明第二方面提供了一种应用编程的安全性检测装置,可包括:
处理模块,用于接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;
检测模块,用于根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;
统计模块,用于根据预设统计算法,对N个安全检测结果进行统计,得到统计结果,所述N个安全检测结果为所述检测模块对所述处理模块从所述APP接收到的N个所述API请求内容进行安全检测得到,每一个安全检测结果对应一个API请求内容;
所述处理模块还用于,若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
在本发明一些实施例中,上述检测模块具体用于,检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果。
进一步地,上述检测模块用于,检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息;若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在本发明一些实施例中,上述检测模块还用于在根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果之前,根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则。
在本发明一些实施例中,上述统计模块具体用于,根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。
在本发明另一些实施例中,上述统计模块具体用于,根据次数统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行次数统计,得到统计次数,所述统计次数为所述统计结果。
在本发明一些实施例中,上述处理模块具体用于,若所述统计结果大于或等于预设阀值,对所述APP执行相应的安全处理策略,所述安全处理策略包括限流、告警和拒绝访问中的至少一种。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中一种基于API管理平台调用API的场景应用图;
图2为本发明实施例提供的应用程序的安全性检测应用场景示意图;
图3为本发明实施例提供的应用编程的安全性检测方法的流程示意图;
图4为本发明实施例提供的检测子规则之间的关系状态机生成图;
图5为本发明实施例为本发明实施例提供的匹配流程示意图;
图6为本发明一些实施例提供的应用编程的安全性检测装置的结构示意图;
图7为本发明另一些实施例提供的应用编程的安全性检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种应用编程的安全性检测方法,用于消除APP存在的威胁,确保API的安全性和可用性。本发明实施例还相应地提供了一种应用编程的安全性检测装置。
请参阅图2,图2为本发明实施例提供的应用程序的安全性检测应用场景示意图。在图2中,包括APP、路由器、检测引擎、统计引擎、消息处理器和后端服务器。其中,路由器、检测引擎和统计引擎为API管理平台中的功能模块。路由器完成对API的基本安全检测,包括鉴权、SLA流控、密钥管理、身份安全令牌(token)、日志审计等。后端服务器可以向API管理平台提供一个或多个可以被APP调用的API,API被APP调用从而实现相应功能。API被调用过程中,APP发送API请求内容,API请求内容包括至少一个字段信息。该API请求内容被路由器接收,然后路由器将API请求内容发送给检测引擎,检测引擎完成对该API请求内容进行安全检测,得到相应的安全检测结果。安全检测结果发送给统计引擎。统计引擎根据其内置的统计算法,对该APP对应的一段时间内的多个安全检测结果进行统计,得到统计结果,并将统计结果发送给路由器。在路由器中设置有安全处理策略,路由器判断该统计结果是否符合策略触发条件,在符合时,选择相应的安全处理策略,并对该APP执行该安全处理策略,以对每一个APP进行检测,且是根据APP发送的内容进行检测,来实现消除APP安全威胁,从而提高API的安全范围,提高其可用性。
下面将以具体实施例,对本发明技术方案进行详细介绍。
请参阅图3,图3为本发明实施例提供的应用编程的安全性检测方法的流程示意图;如图3所示,一种应用编程的安全性检测方法可包括:
310、接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;
其中,API请求内容为APP发送的信息,在API请求内容中包括多个字段信息,字段信息可以是URL、7层及以上应用数据、业务内容等。例如请求API管理平台调用API转发数据报文,那么,该API请求内容包括URL、数据报文等,数据报文作为一个字段信息看待。
步骤310具体可以是由API管理平台中如图2所示的路由器实现。
320、根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;
步骤320具体由图2中的检测引擎实现。
330、根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果;
其中,步骤330具体可以由图2所示的统计引擎实现。
需要说明,本发明实施例中可以通过一定周期来计算同一个APP所发送的API请求内容,例如预设一个时间段10秒,针对这10秒所接收到的同一个APP发送的N个API请求内容进行安全检测,得到N个安全检测结果。然后,对这N个安全检测结果进行统计,得到统计结果。
当然,上述预设时间段是以周期形式存在的,例如,T1作为周期起点,T2作为周期终点,那么该预设时间段等于T2-T1。下一个预设时间段将以T2作为周期起点,T3作为周期终点,下一个预设时间段等于T3-T2。其中,T3-T2=T2-T1。
还需要说明,在每一个预设时间段内会存在多个APP向API管理平台发送API请求内容,那么分别对不同的APP执行本发明实施例的操作,以实现对单个APP进行安全威胁检测。
340、若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
可以看出,本发明实施例在接收了API请求内容后,根据预设检测规则,对API请求内容进行检测,得到一个安全检测结果,在本发明实施例中所说的API请求内容包括至少一个字段信息,而安全检测结果用于指示该API请求内容检测通过或者不通过。根据该预设检测规则,对预设时间段内收到的N个由同一个APP发送的API请求内容进行安全检测,然后得到N个安全检测结果,之后,利用预设统计算法,对该N个安全检测结果进行统计,得到统计结果,若该统计结果符合策略触发条件,则对该APP执行相应的安全处理策略。在本发明实施例中,API管理平台能够根据APP发送的API请求内容进行安全威胁检测,以消除APP存在的威胁,也确保了API的安全性和可用性,从而提高API的使用范围。
上述API请求内容中包括至少一个字段信息,在本发明实施例中,在进行安全检测时需要对每一个字段信息进行单独检测,那么针对每一个字段信息,本发明实施例中提供了对应的检测子规则。因此,在本发明一些实施例中,上述步骤320具体包括:检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果。
进一步地,针对每一个字段信息,其对应着若干个属性信息,例如,字段信息的长度(length)、范围(range)和类型(type)等。进一步地,上述检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则包括:检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息。
进一步地,在该API请求内容中的所有字段信息均匹配对应的检测子规则时,确定所述API请求内容检测通过并得到所述安全检测结果包括:若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果。
进一步地,在该API请求内容中的任意一个字段信息不匹配对应的检测子规则,确定所述API请求内容检测不通过并得到所述安全检测结果包括:若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
进一步地,一些字段信息中存在具体内容,比如数据报文,那么还需要对字段信息的具体内容进行安全检测。以转发数据报文为例,在数据报文中包括头域和数据内容,那么还可以预设对应的规则,在对字段信息的属性信息进行安全检测后,利用规则对头域和数据内容进行安全检测,从而完全地实现在本发明实施例中对7层及以上应用数据、业务内容进行安全检测,以消除APP的安全威胁。
在本发明一些实施例中,在步骤320之前还可以执行步骤:根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则。
需要说明,在本发明实施例中,在API管理平台中设置了一个检测规则列表,该检测规则列表中保存所有预设检测规则,每一个预设检测规则绑定可以对应一种类型的API请求内容。在每一个预设检测规则中包括多个检测子规则,每一个检测子规则用于检测API请求内容中的一个字段信息。每一个检测子规则中又包括若干检测参数,例如参数名称、属性、类型、长度、顺序、范围等。预设检测规则可以json格式表示以及保存。编译加载时按检测参数进行合并编译,可以是DFA\D2FA\MAPPING\CHAIN等。运行时根据检测参数提取对应的规则库进行校验,支持first/multi match两种方式。
具体实现代码如下:
基于上述实现代码,请参阅图4和图5,图4为本发明实施例提供的检测子规则之间的关系状态机生成图,图5为本发明实施例为本发明实施例提供的匹配流程示意图。在图4中,先利用检测子规则A进行匹配,若匹配进入到检测子规则B,检测子规则B若匹配进入到检测子规则C。
由图5可以知道,在本发明实施例中,利用确定的安全规则对API请求内容中的字段信息进行逐一匹配,在匹配过程中任意一个字段信息匹配失败则确定该API请求内容匹配失败,安全检测结果为检测不通过即不匹配。若所有字段信息匹配成功,则确定该API请求内容匹配成功,该安全检测结果为检测通过即匹配。
当然,还可以是一种类型的API绑定一个检测规则列表,那么API管理平台中将包括多个检测规则列表,每一个检测规则列表都对应着一个API,该检测规则列表中的预设检测规则是针对调用该API时发送的API请求内容。例如,通过可以一下代码实现:
在本发明一些实施例中,步骤330中的统计算法设置在API管理平台(具体是在统计引擎)中,统计算法可以是熵值统计算法或次数统计算法,当然还可以为其它类似于该两种算法的统计算法。可以选择一种统计算法对统计结果进行统计,具体包括:根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果;或者,根据次数统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行次数统计,得到统计次数,所述统计次数为所述统计结果。
进一步地,本发明实施例中还在API管理平台(路由器)中预置了安全处理策略,例如限流、拒绝访问、告警等。若API管理平台(路由器)在判断出该统计结果大于或等于预设阀值时,说明该APP存在相应的安全威胁。由于统计结果是根据安全检测结果得到的,而安全检测结果是根据字段信息的多个属性信息得到的,因此,统计结果可以是根据属性信息来进行统计,例如,若API请求内容中的多个字段信息的长度都超过设定的检测参数,那么在统计时,得到的统计结果可以反映出该APP发送的数据报文太大,那么可以对该APP进行限流或者拒绝访问或者告警等。
请参阅图6,图6为本发明实施例提供的应用编程的安全性检测装置的结构示意图;如图6所示,一种应用编程的安全性检测装置可包括:
处理模块610,用于接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;
检测模块620,用于根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;
统计模块630,用于根根据预设统计算法,对N个安全检测结果进行统计,得到统计结果,所述N个安全检测结果为所述检测模块620对所述处理模块610从所述APP接收到的N个所述API请求内容进行安全检测得到,每一个安全检测结果对应一个API请求内容;
所述处理模块610还用于,若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
在本发明一些实施例中,上述检测模块620具体用于,检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在本发明一些实施例中,上述检测模块620进一步具体用于,检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息;若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在本发明一些实施例中,上述检测模块620进一步具体用于,检测所述字段信息的内容是否匹配对应检测子规则中对应的检测参数;若所有字段信息的内容均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息的内容不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在本发明一些实施例中,上述检测模块620还用于,在根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果之前,根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则。
在本发明一些实施例中,上述统计模块630具体用于,根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。
在本发明一些实施例中,上述统计模块630具体用于根据次数统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行次数统计,得到统计次数,所述统计次数为所述统计结果。
在本发明一些实施例中,上述处理模块610具体用于,若所述统计结果大于或等于预设阀值,对所述APP执行相应的安全处理策略,所述安全处理策略包括限流、告警和拒绝访问中的至少一种。
其中,上述处理模块610可以由图2中的路由器实现,上述检测模块620可以由图2中的检测引擎实现,上述统计模块630可以图2中的统计引擎实现,详细内容可以参照在方法实施例中的介绍。
请参考图7,图7为本发明实施例提供的应用编程的安全性检测装置另一结构示意图,其中,可包括至少一个处理器701(例如CPU,Central Processing Unit),至少一个网络接口或者其它通信接口,存储器702,和至少一个通信总线,用于实现这些装置之间的连接通信。所述处理器701用于执行存储器中存储的可执行模块,例如计算机程序。所述存储器702可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
如图7所示,在一些实施方式中,所述存储器702中存储了程序指令,程序指令可以被处理器701执行,所述处理器701具体执行以下步骤:接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息;根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过;根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果;若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略。
在一些实施方式中,所述处理器701还可以执行以下步骤:检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在一些实施方式中,所述处理器701还可以执行以下步骤:检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息;若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在一些实施方式中,所述处理器701还可以执行以下步骤:检测所述字段信息的内容是否匹配对应检测子规则中对应的检测参数;若所有字段信息的内容均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息的内容不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
在一些实施方式中,所述处理器701还可以执行以下步骤:根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则。
在一些实施方式中,所述处理器701还可以执行以下步骤:根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。
在一些实施方式中,所述处理器701还可以执行以下步骤:根据次数统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行次数统计,得到统计次数,所述统计次数为所述统计结果。
在一些实施方式中,所述处理器701还可以执行以下步骤:若所述统计结果大于或等于预设阀值,对所述APP执行相应的安全处理策略,所述安全处理策略包括限流、告警和拒绝访问中的至少一种。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种应用程序的安全性检测方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种应用程序的安全性检测方法,其特征在于,包括:
接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息,所述字段信息包括API名称或业务内容;
根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过,所述安全检测指对所述至少一个字段信息进行检测;
根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果;
若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略;
所述根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果之前包括:
根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则;
所述根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果包括:
检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;
若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果;
所述根据预设统计算法,对预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行统计,得到统计结果包括:
根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。
2.根据权利要求1所述的方法,其特征在于,所述检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则包括:
检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息;
所述若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果包括:
若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;
所述若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果包括:
若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
3.根据权利要求1所述的方法,其特征在于,所述检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则包括:
检测所述字段信息的内容是否匹配对应检测子规则中对应的检测参数;
所述若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果包括:
若所有字段信息的内容均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;
所述若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果包括:
若任意一个字段信息的内容不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
4.根据权利要求1所述的方法,其特征在于,所述若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略包括:
若所述统计结果大于或等于预设阈 值,对所述APP执行相应的安全处理策略,所述安全处理策略包括限流、告警和拒绝访问中的至少一种。
5.一种应用程序的安全性检测装置,其特征在于,包括:
处理模块,用于接收应用程序APP发送的应用编程接口API请求内容,所述API请求内容包括至少一个字段信息,所述字段信息包括API名称或业务内容;
检测模块,用于根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果,所述安全检测结果用于指示所述API请求内容检测通过或者检测不通过,所述安全检测指对所述至少一个字段信息进行检测;
统计模块,用于根据预设统计算法,对N个安全检测结果进行统计,得到统计结果,所述N个安全检测结果为所述检测模块对所述处理模块从所述APP接收到的N个所述API请求内容进行安全检测得到,每一个安全检测结果对应一个API请求内容;
所述处理模块还用于,若所述统计结果符合策略触发条件,对所述APP执行相应安全处理策略;
所述检测模块还用于,在根据预设检测规则,对所述API请求内容进行安全检测得到安全检测结果之前,根据所述API请求内容,从检测规则列表中选择所述API请求内容对应的预设检测规则,所述检测规则列表中包括若干预设检测规则;
所述检测模块具体用于,检测所述API请求内容中的字段信息是否匹配所述预设检测规则中对应的检测子规则,所述预设检测规则包括若干检测子规则,每一个检测子规则用于检测所述API请求内容中的一个字段信息;若所述API请求内容中的所有字段信息均匹配对应的检测子规则,则确定所述API请求内容检测通过并得到所述安全检测结果;若所述API请求内容中的任意一个字段信息不匹配对应的检测子规则,则确定所述API请求内容检测不通过并得到所述安全检测结果;
所述统计模块具体用于,根据熵值统计算法,对所述预设时间段内从所述APP接收到的N个所述API请求内容的安全检测结果进行熵值统计,得到熵值结果,所述熵值结果为所述统计结果。
6.根据权利要求5所述的装置,其特征在于,
所述检测模块进一步具体用于,检测所述字段信息的属性信息是否匹配对应检测子规则中对应的检测参数,所述检测子规则中包括若干检测参数,所述字段信息包含若干个属性信息,每一个检测参数用于检测对应字段信息中的一个属性信息;若所有字段信息的所有属性信息均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息中的任意一个属性信息不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
7.根据权利要求5所述的装置,其特征在于,
所述检测模块进一步具体用于,检测所述字段信息的内容是否匹配对应检测子规则中对应的检测参数;若所有字段信息的内容均匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测通过并得到所述安全检测结果;若任意一个字段信息的内容不匹配对应的检测子规则中对应的检测参数,则确定所述API请求内容检测不通过并得到所述安全检测结果。
8.根据权利要求5所述的装置,其特征在于,
所述处理模块具体用于,若所述统计结果大于或等于预设阈 值,对所述APP执行相应的安全处理策略,所述安全处理策略包括限流、告警和拒绝访问中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510784255.6A CN106709333B (zh) | 2015-11-16 | 2015-11-16 | 一种应用编程的安全性检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510784255.6A CN106709333B (zh) | 2015-11-16 | 2015-11-16 | 一种应用编程的安全性检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106709333A CN106709333A (zh) | 2017-05-24 |
CN106709333B true CN106709333B (zh) | 2019-11-22 |
Family
ID=58931582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510784255.6A Active CN106709333B (zh) | 2015-11-16 | 2015-11-16 | 一种应用编程的安全性检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106709333B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332861B (zh) * | 2017-08-11 | 2020-11-10 | 杭州奇亿云计算有限公司 | 一种基于OAuth协议的开放平台架构系统 |
CN111709026B (zh) * | 2020-06-10 | 2023-10-24 | 深圳知释网络技术有限公司 | 静态安全检测方法、装置、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549144B2 (en) * | 2005-02-22 | 2009-06-16 | Microsoft Corporation | Custom API modeling for source code static analysis simulator |
CN102347941B (zh) * | 2011-06-28 | 2015-10-14 | 北京奇虎科技有限公司 | 一种基于开放平台的安全应用控制方法 |
CN103379090B (zh) * | 2012-04-12 | 2018-10-30 | 腾讯科技(北京)有限公司 | 一种开放平台访问的频率控制方法和系统、频率服务器 |
US20140215614A1 (en) * | 2013-01-30 | 2014-07-31 | Samsung Electronics Co., Ltd. | System and method for a security assessment of an application uploaded to an appstore |
CN104503768B (zh) * | 2015-01-04 | 2018-05-04 | 华为技术有限公司 | 一种应用程序编程接口调用方法及设备 |
-
2015
- 2015-11-16 CN CN201510784255.6A patent/CN106709333B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106709333A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9432389B1 (en) | System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object | |
US11330016B2 (en) | Generating collection rules based on security rules | |
CN109766700A (zh) | 访问文件的控制方法及装置、存储介质、电子装置 | |
US9438623B1 (en) | Computer exploit detection using heap spray pattern matching | |
CN106302346A (zh) | Api调用的安全认证方法、装置、系统 | |
CN109491905A (zh) | 前端测试方法、装置及电子设备 | |
CN110266737B (zh) | 一种跨域资源共享的漏洞检测方法、装置、设备及介质 | |
CN107294982A (zh) | 网页后门检测方法、装置及计算机可读存储介质 | |
CN106156133B (zh) | 控制表单重复提交的方法、装置及系统 | |
CN104143008B (zh) | 基于图片匹配检测钓鱼网页的方法及装置 | |
CN107046518A (zh) | 网络攻击的检测方法及装置 | |
CN108696490A (zh) | 账号权限的识别方法及装置 | |
CN108282440A (zh) | 一种安全检测方法、安全检测装置及服务器 | |
CN107645478A (zh) | 网络攻击防御系统、方法及装置 | |
CN109670974A (zh) | 一种风险监控方法及装置、电子终端 | |
CN104967540B (zh) | 服务器状态检测方法和装置 | |
CN106790291A (zh) | 一种入侵检测提示方法及装置 | |
CN106709333B (zh) | 一种应用编程的安全性检测方法及装置 | |
CN109547426A (zh) | 业务响应方法及服务器 | |
CN110365712A (zh) | 一种分布式拒绝服务攻击的防御方法及系统 | |
CN108400955A (zh) | 一种网络攻击的防护方法及系统 | |
CN106713242A (zh) | 数据请求的处理方法及处理装置 | |
CN108769016A (zh) | 一种业务报文的处理方法及装置 | |
CN106934272A (zh) | 一种应用信息的校验方法和装置 | |
US10831887B2 (en) | System and method for monitoring the integrity of a component delivered to a client system by a server system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |