CN114329469A - Api异常调用行为检测方法、装置、设备及存储介质 - Google Patents
Api异常调用行为检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114329469A CN114329469A CN202111608508.6A CN202111608508A CN114329469A CN 114329469 A CN114329469 A CN 114329469A CN 202111608508 A CN202111608508 A CN 202111608508A CN 114329469 A CN114329469 A CN 114329469A
- Authority
- CN
- China
- Prior art keywords
- api
- field
- calling
- preset
- abnormal
- 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.)
- Pending
Links
Images
Abstract
本申请提供一种API异常调用行为检测方法、装置、设备及存储介质,通过接收到的API调用请求确定与该API调用请求对应的调用字段的字段特征信息以及需调用的API接口,基于该API接口以及预设的API接口与异常行为判定条件的对应关系,确定与该API接口对应的目标异常行为判定条件,根据API调用请求对应的字段特征信息以及目标异常行为判定条件,判断该API调用请求对应的API调用行为是否异常,实现了异常API调用行为的检测。
Description
技术领域
本申请涉及安全技术领域,具体而言,涉及一种API异常调用行为检测方法、装置、设备及存储介质。
背景技术
随着技术的快速发展,电子设备可以通过API(Application ProgrammingInterface,应用程序接口)来实现数据的调用传输。很多开源框架鼓励开发人员使用“自动绑定”功能,它允许框架自动将HTTP请求中的参数绑定到程序变量或对象中,“自动绑定”认为它所获得的对象都是可信的。在REST(Representational State Transfer,表述性状态传递)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调用请求对应的调用字段,获取对应的字段长度值;
根据多个所述字段长度值,确定第一四分位数和第三四分位数,所述第一四分位数表示将多个所述字段长度值按照由小到大排列后第25%位对应的数,所述第一四分位数表示将多个所述字段长度值按照由小到大排列后第75%位对应的数;
将所述第三四分位数减去所述第一四分位数得到四分位距;
根据所述第三四分位数和所述四分位距确定长度上限值,并根据所述第一四分位数和所述四分位距确定长度下限值;
根据所述长度上限值和所述长度下限值确定所述预设字段长度范围。
在上述实现过程中,对历史正常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为本申请实施例二提供的API异常调用行为检测装置的结构示意图;
图6为本申请实施例三提供的设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
下面将提供多个实施例,来具体介绍API异常调用行为检测方案。
实施例一:
为解决现有技术中无法对API调用行为进行检测的问题,本申请实施例中提供了一种API异常调用行为检测方法,具体的,可以参见图1所示,图1为本申请实施例中提供的API异常调用行为检测方法的流程示意图,包括:
S11:根据接收到的API调用请求确定与该API调用请求对应的调用字段的字段特征信息、以及需调用的API接口。
在一种示例中,步骤S11中的API调用请求中可以直接携带有字段特征信息和需调用的API接口的信息,此时,直接从API调用请求中进行相关信息的提取即可。在另外一种示例中,可以对API调用请求中的调用字段进行特征分析,从而得到对应的字段特征信息。
步骤S11中的字段特征信息包括但不限于字段集合、字段长度以及字段变化频繁度中的至少一种,也即是说,步骤S11可以包括:
根据当前接收到的API调用请求确定与该API调用请求对应的调用字段的字段集合和/或字段长度;
和/或,
根据接收到的针对该API接口的多条API调用请求,确定与该多条API调用请求对应的字段变化频繁度,字段变化频繁度表征这多条API调用请求对应的调用字段间字段的变化程度。
本实施例中的字段变化频繁度包括但不限于第一字段变化频繁度和第二字段变化频繁度中的至少一种,下面对获取第一字段变化频繁度和第二字段变化频繁度的步骤进行具体介绍:
针对预设时长范围内接收到的对于该API接口的多条API调用请求,统计第一预设情况的出现次数,将该次数作为第一字段变化频繁度;第一预设情况为:相邻两次API调用请求对应的调用字段不同。
针对预设时长范围内接收到的对于该API接口的多条API调用请求,统计目标API调用请求组中API调用请求的数量,将该数量作为第二字段变化频繁度;目标API调用请求组由连续接收到的多条API调用请求组成,且相邻两次API调用请求对应的调用字段不同。
应当说明的是,开发人员可以根据实际应用情况对第一预设情况进行灵活设置,比如可以将第一预设情况设置为:相邻三次、四次或五次API调用请求对应的调用字段不同。本实施例中,两条API调用请求对应的调用字段之间存在至少一个调用字段不同时,即可认为这两条API调用请求对应的调用字段不同。比如,针对该API接口,两条相邻的API调用请求对应的调用字段分别为{用户名、住址、电话号码}、{用户名、住址},此时可判定为满足第一预设情况。
为便于理解,下面结合具体示例对第一字段变化频繁度和第二字段变化频繁度进行具体说明。
第一字段变化频繁度:假设在预设时长范围内针对该API接口,依次接收到5条API调用请求,各API调用请求对应的调用字段分别为:[A,B,C],[A,B],[A,B,C],[C,D],[C,D],第1次到第4次请求中,相邻请求对应的调用字段均不相同,对应的第一预设情况的出现次数为3,也即,第一字段变化频繁度为3。
第一字段变化频繁度:假设在预设时长范围内针对该API接口,依次接收到7条API调用请求,各API调用请求对应的调用字段分别为:[A,B,C],[A,B],[A,B,C],[C,D],[C,D],[D,E],[C,D],第1次到第4次请求中,相邻请求对应的调用字段均不相同,因此第1次到第4次对应的这4条API调用请求,组成一个目标API调用请求组,该目标API调用请求组中API调用请求的数量为4,也即对应的第二字段变化频繁度为4。同理,第5次到第7次请求中,相邻请求对应的调用字段均不相同,因此第5次到第7次对应的这3条API调用请求,组成一个目标API调用请求组,该目标API调用请求组中API调用请求的数量为3,也即对应的第二字段变化频繁度为3。
上述的预设时长范围可以由开发人员根据实际情况灵活设置,本实施例中,是将一个预设时长范围作为一个统计单位来统计对应的第一字段变化频繁度,在其他实施例中,也可以将预设数量的API调用请求作为一个统计单位,比如,针对该API接口,每当接收到10条API调用请求时,就针对这10条API调用请求统计对应的第一字段变化频繁度。
S12:基于该API接口以及预设的API接口与异常行为判定条件的对应关系,确定与该API接口对应的目标异常行为判定条件。
下面首先对预设的API接口与异常行为判定条件的对应关系进行介绍。
执行步骤S12的设备上可以预先存储有API接口与异常行为判定条件的对应关系,具体来说,针对每一API接口,可以预先对历史正常API调用行为或历史异常API调用行为进行统计分析,根据统计分析结果设置对应API接口的异常行为判定条件。
本实施例中,针对每一API接口预设的异常行为判定条件包括但不限于以下条件中的至少一种:
第一异常行为判定条件:待检测API调用请求对应的字段集合不在预设正常字段集合中;
第二异常行为判定条件:待检测API调用请求对应的字段长度不在预设字段长度范围内;
第三异常行为判定条件:待检测API调用请求对应的第一字段变化频繁度大于预设第一字段变化频繁度阈值;
第四异常行为判定条件:待检测API调用请求对应的第二字段变化频繁度大于预设第二字段变化频繁度阈值。
当然了,不同API接口对应的异常行为判定条件的类型可以并不相同,比如可以针对某一API接口预设上述第一异常行为判定条件和第二异常行为判定条件,针对另一API接口预设上述第三异常行为判定条件和第四异常行为判定条件,具体的设置方式可以由开发人员根据实际情况灵活设置。针对上述第三异常行为判定条件和第四异常行为判定条件,需要接收到多条待检测API调用请求才能进行后续的异常检测,所以对于一些重要的API接口可以设置第一异常行为判定条件和第二异常行为判定条件,以便于在实际应用过程中可以实时快速检测出异常调用行为。
在一些实施方式中,可以在确定待检测API调用请求对应的字段特征信息满足其对应的所有异常行为判定条件时,才判定该待检测API调用请求对应的API调用行为异常,否则,判定为正常;在另外的一些实施方式中,可以在确定待检测API调用请求对应的字段特征信息满足其对应的异常行为判定条件中的至少一种条件时,就判定该待检测API调用请求对应的API调用行为异常。
可以理解的是,在正常调用过程中,不同API接口对应的被调用字段、字段长度或者被调用频繁度等可能并不相同,所以可以针对每一API接口,统计分析其对应的正常调用模式,基于正常调用模式确定上述预设正常字段集合,和/或预设字段长度范围,和/或预设第一字段变化频繁度阈值,和/或第二字段变化频繁度阈值。
针对每一API接口,下面基于正常调用模式对确定其对应的异常行为判定条件的过程进行具体介绍。
请参见图2所示,确定预设正常字段集合的步骤可以包括:
S201:针对每一API接口,获取多条历史正常API调用请求。
S202:针对每一历史正常API调用请求对应的调用字段,获取对应的字段集合样本,得到多个字段集合样本。
对于某一API接口,假设某一历史正常API调用请求的数据格式如下:
{“p1”:“v1”,“p2”:“v2”,…,“pn”:“vn”}。
针对该历史正常API调用请求,获取得到对应的字段集合样本:
[p1,p2,p3,…,pn]。
S203:对多个字段集合样本中每一字段的调用频繁度进行统计分析,根据统计分析结果确定预设正常字段集合。
调用频繁度表征了相应的所述调用字段在多个所述字段集合样本中出现的频繁程度。
假设获取到m条历史正常API调用请求,则可以对应获取到m个字段集合样本,假设获取的字段集合样本如下表1所示:
表1:字段集合样本
序号 | 字段集合样本 |
1 | [p1,p2] |
2 | [p1,p2,p3,…,pn] |
… | … |
m | [p3,p5] |
基于上述字段集合样本,可以对各字段集合样本中每一字段的调用频繁度进行统计分析,根据统计分析结果确定预设正常字段集合,具体来说,可以采用关联规则算法对每一字段的调用频繁度进行分析,比如可以使用Apriori算法对频繁模式进行挖掘,得到对应的频繁项集,将该频繁项集确定为预设正常字段集合。
请参见图3所示,本实施例中确定预设字段长度范围的步骤可以包括:
S301:针对每一API接口,获取多条历史正常API调用请求。
S302:针对每一历史正常API调用请求对应的调用字段,获取对应的字段长度值,得到多个字段长度值。
S303:根据多个字段长度值,确定第一四分位数Q1和第三四分位数Q3。
第一四分位数表示将多个字段长度值按照由小到大排列后第25%位对应的数,第一四分位数表示将多个字段长度值按照由小到大排列后第75%位对应的数。
S304:根据第三四分位数Q3和第一四分位数Q1确定四分位距IQR。
具体的,可以根据公式IQR=Q3-Q1计算四分位距。
S305:根据第三四分位数Q3和四分位距IQR确定长度上限值,并根据第一四分位数Q1和四分位距IQR确定长度下限值。
步骤S305中可以根据公式ub=Q3+IQR*1.5计算长度上限值,根据公式lb=Q1-IQR*1.5计算长度下限值。
S306:根据长度上限值和长度下限值确定预设字段长度范围。
在其他实施例中,可以根据其他方式设置长度上限值和长度下限值,比如可以直接将步骤S302中获取到的最大字段长度值作为长度上限值,将步骤S303中获取到的最小字段长度值作为长度下限值,或者使用聚类算法对多个字段长度值进行分类,确定长度上限值和长度下限值。
请参见图4所示,本实施例中确定预设第一字段变化频繁度阈值与预设第二字段变化频繁度阈值的步骤可以包括:
S401:针对每一API接口,获取预设时长范围内接收到的多条历史正常API调用请求。
可以理解的是,上述步骤S201、步骤S301以及步骤S401中,针对每一API接口,可以获取某一时间段内所有调用该API接口的历史正常API调用请求作为样本数据。
S402:统计第二预设情况的出现次数,将该次数作为第一字段变化频繁度阈值,并统计目标历史正常API调用请求组中历史正常API调用请求的数量,将该数量作为第二字段变化频繁度阈值。
步骤S402中的第二预设情况为:相邻两次历史正常API调用请求对应的调用字段不同;目标历史正常API调用请求组由连接接收到的多条历史正常API调用请求组成,且相邻两次历史正常API调用请求对应的调用字段不同。
这里的第二预设情况及目标历史正常API调用请求组与上述第一预设情况和目标API调用请求组的含义、以及设置方式类似,区别在于:第一预设情况和目标API调用请求组是针对多个待检测API调用请求而言的,而第二预设情况及目标历史正常API调用请求组是针对历史正常API请求而言的,因此不再赘述。
S13:根据字段特征信息以及目标异常行为判定条件,判断API调用请求对应的API调用行为是否异常。
在一个具体的示例中,假设预先针对步骤S11中需调用的API接口设置有以下四个目标异常行为判定条件:
第一目标异常行为判定条件:调用该API接口的API调用请求对应的字段集合不在预设正常字段集合中;
第二目标异常行为判定条件:调用该API接口的API调用请求对应的字段长度不在预设字段长度范围内;
第三目标异常行为判定条件:调用该API接口的API调用请求对应的第一字段变化频繁度大于预设第一字段变化频繁度阈值;
第四目标异常行为判定条件:调用该API接口的API调用请求对应的第二字段变化频繁度大于预设第二字段变化频繁度阈值。
当确定步骤S11中获取得到的字段特征信息满足上述目标异常行为判定条件中的至少一种时,则判定API调用请求对应的API调用行为异常。
需要格外说明的是,针对步骤S11中的API接口,当接收到的待检测的多条API调用请求对应的字段特征信息满足第三目标异常行为判定条件和/或第四目标异常行为判定条件时,可以判定这多条API调用请求对应的API调用行为均异常,或者至少存在一个API异常调用行为,此时可以对用户进行异常提示,或者对这多条API调用请求进行拦截。另外,当待检测的多条API调用请求对应有多个不同的第二字段变化频繁度时,在一种示例中,可以在确定至少存在一个第二字段变化频繁度大于预设第二字段变化频繁度阈值时,就判定满足第四目标异常行为判定条件;在另外一种示例中,可以在确定第二字段变化频繁度均大于预设第二字段变化频繁度阈值时,才判定满足第四目标异常行为判定条件。
本实施例中,执行上述步骤的设备可以根据实际检测过程中,接收到的待检测API调用请求以及检测结果,对相应API接口对应的异常行为判定条件进行更新,具体是对异常行为判定条件中预设正常字段集合、和/或预设字段长度范围、和/或预设第一字段变化频繁度阈值、和/或预设第二字段变化频繁度阈值进行更新。
具体的,在上述步骤S13之后,还可以包括以下步骤:
针对该API接口,获取检测结果正常的API调用请求对应的调用字段的字段特征信息;
根据该字段特征信息对相应目标异常行为判定条件中的相应阈值进行更新。
比如,可以针对每一API接口,获取一天内检测结果正常的API调用请求对应的调用字段的字段集合,针对这一天内接收到的正常API调用请求对应的字段集合,可以按照上述方式确定出对应的正常字段集合,在一种实施方式中,可以直接将该正常字段集合作为最新的预设正常字段集合,或者也可以对本次计算得到的正常字段集合与原先的预设正常字段集合求交集,将交集作为最新的预设正常字段集合。更新预设字段长度范围、预设第一字段变化频繁度阈值以及预设第二字段变化频繁度阈值的方式可以参照更新预设正常字段集合的方式,这里不再赘述。
本实施例中根据实际检测情况对异常行为判定条件中的内容进行更新,进一步提升了检测结果的准确性。
最后需要说明的是,上述步骤S11、S12与步骤S13可以由终端执行,也可以由服务器执行;或者步骤S11由终端执行,终端根据API调用请求确定出对应的字段特征信息与需调用的API接口后,将该字段特征信息与该API接口的信息发送给服务器,由服务器执行步骤S12和步骤S13。
实施例二:
本实施例提供一种API异常调用行为检测装置,请参见图5所示,包括:第一确定模块501、第二确定模块502以及判断模块503,其中,第一确定模块501用于根据接收到的API调用请求确定与所述API调用请求对应的调用字段的字段特征信息、以及需调用的API接口,第二确定模块502用于基于该API接口以及预设的API接口与异常行为判定条件的对应关系,确定与该API接口对应的目标异常行为判定条件,判断模块503用于根据字段特征信息以及目标异常行为判定条件,判断该API调用请求对应的API调用行为是否异常。
在一种示例中,API调用请求中可以直接携带字段特征信息和需调用的API接口的信息,第一确定模块501用于直接从API调用请求中提取出相关信息。在另外一种示例中,第一确定模块501用于对API调用请求中的调用字段进行特征分析,从而得到对应的字段特征信息。
在示例性的实施例中,第一确定模块501用于根据当前接收到的API调用请求确定与该API调用请求对应的调用字段的字段集合、和/或字段长度;和/或,用于根据接收到的针对该API接口的多条API调用请求,确定与该多条API调用请求对应的字段变化频繁度,字段变化频繁度表征这多条API调用请求对应的调用字段间字段的变化程度。
本实施例中的字段变化频繁度包括但不限于第一字段变化频繁度和第二字段变化频繁度中的至少一种。
在示例性的实施例中,第一确定模块501用于针对预设时长范围内接收到的对于该API接口的多条API调用请求,统计第一预设情况的出现次数,将该次数作为第一字段变化频繁度;第一预设情况为:相邻两次API调用请求对应的调用字段不同。
在示例性的实施例中,第一确定模块501用于针对接收到的对于该API接口的多条API调用请求,统计目标API调用请求组中API调用请求的数量,将该数量作为第二字段变化频繁度;目标API调用请求组由连续接收到的多条API调用请求组成,且相邻两次API调用请求对应的调用字段不同。
在示例性的实施例中,API异常调用行为检测装置还包括存储模块,用于存储API接口与异常行为判定条件的对应关系,具体来说,针对每一API接口,可以预先对历史正常API调用行为或历史异常API调用行为进行统计分析,根据统计分析结果设置对应API接口的异常行为判定条件。
本实施例中,针对每一API接口预设的异常行为判定条件包括但不限于以下条件中的至少一种:
第一异常行为判定条件:待检测API调用请求对应的字段集合不在预设正常字段集合中;
第二异常行为判定条件:待检测API调用请求对应的字段长度不在预设字段长度范围内;
第三异常行为判定条件:待检测API调用请求对应的第一字段变化频繁度大于预设第一字段变化频繁度阈值;
第四异常行为判定条件:待检测API调用请求对应的第二字段变化频繁度大于预设第二字段变化频繁度阈值。
在示例性的实施例中,判断模块503用于在确定待检测API调用请求对应的字段特征信息满足其对应的所有异常行为判定条件时,判定该待检测API调用请求对应的API调用行为异常,否则,判定为正常;在另外的一些实施方式中,判断模块503用于在确定待检测API调用请求对应的字段特征信息满足其对应的异常行为判定条件中的至少一种条件时,判定该待检测API调用请求对应的API调用行为异常。
可以理解的是,在正常调用过程中,不同API接口对应的被调用字段、字段长度或者被调用频繁度等可能并不相同,所以可以针对每一API接口,统计分析其对应的正常调用模式,基于正常调用模式确定上述预设正常字段集合,和/或预设字段长度范围,和/或预设第一字段变化频繁度阈值,和/或第二字段变化频繁度阈值。
在示例性的实施例中,API异常调用行为检测装置还包括第一阈值确定模块,用于确定预设正常字段集合,具体用于:针对每一API接口,获取多条历史正常API调用请求,针对每一历史正常API调用请求对应的调用字段,获取对应的字段集合样本,对多个字段集合样本中每一字段的调用频繁度进行统计分析,根据统计分析结果确定预设正常字段集合。
在示例性的实施例中,API异常调用行为检测装置还包括第二阈值确定模块,用于确定预设字段长度范围,具体用于:针对每一API接口,获取多条历史正常API调用请求,针对每一历史正常API调用请求对应的调用字段,获取对应的字段长度值,得到多个字段长度值,根据多个字段长度值,确定第一四分位数Q1和第三四分位数Q3,根据第三四分位数Q3和第一四分位数Q1确定四分位距IQR,根据第三四分位数Q3和四分位距IQR确定长度上限值和长度下限值,根据长度上限值和长度下限值确定预设字段长度范围。
在示例性的实施例中,API异常调用行为检测装置还包括第三阈值确定模块,用于确定预设第一字段变化频繁度阈值与预设第二字段变化频繁度阈值,具体用于:针对每一API接口,获取多条历史正常API调用请求,统计第二预设情况的出现次数,将该次数作为第一字段变化频繁度阈值,并统计目标历史正常API调用请求组中历史正常API调用请求的数量,将该数量作为第二字段变化频繁度阈值。
其中,第二预设情况为:相邻两次历史正常API调用请求对应的调用字段不同;目标历史正常API调用请求组由连接接收到的多条历史正常API调用请求组成,且相邻两次历史正常API调用请求对应的调用字段不同。
在示例性的实施例中,API异常调用行为检测装置还包括更新模块,用于针对每一API接口,获取检测结果正常的API调用请求对应的调用字段的字段特征信息,根据该字段特征信息对相应异常行为判定条件中的相应阈值进行更新。
实施例三:
基于同一发明构思,本申请实施例提供一种设备,请参见图6所示,包括处理器601和存储器602,所述存储器602中存储有计算机程序,所述处理器601执行所述计算机程序,以实现上述实施例一中API异常行为检测方法的步骤,在此不再赘述。
应当说明的是,本实施例中的设备可以是PC(Personal Computer,个人电脑)、手机、平板电脑、笔记本电脑、虚拟主机等。也可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
可以理解,图6所示的结构仅为示意,设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。
处理器601可以是一种集成电路芯片,具有信号处理能力。上述处理器601和可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。
存储器602可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一中API异常行为检测方法的各步骤,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种API异常调用行为检测方法,其特征在于,包括:
根据接收到的API调用请求确定与所述API调用请求对应的调用字段的字段特征信息、以及需调用的API接口;
基于预设的API接口与异常行为判定条件的对应关系,确定与所述API接口对应的目标异常行为判定条件;
根据所述字段特征信息以及所述目标异常行为判定条件,判断所述API调用请求对应的API调用行为是否异常。
2.如权利要求1所述的API异常调用行为检测方法,其特征在于,所述字段特征信息包括:字段集合和字段长度中的至少一种,所述根据接收到的API调用请求确定与所述API调用请求对应的调用字段的字段特征信息,包括:
根据当前接收到的API调用请求确定与该API调用请求对应的调用字段的字段集合、和/或字段长度;
当所述API调用请求为多条时,所述字段特征信息包括:多条所述API调用请求对应的字段变化频繁度,所述根据接收到的API调用请求确定与所述API调用请求对应的调用字段的字段特征信息,包括:
根据接收到的针对所述API接口的多条API调用请求,确定与该多条API调用请求对应的字段变化频繁度,所述字段变化频繁度表征各所述API调用请求对应的调用字段间字段的变化程度。
3.如权利要求2所述的API异常调用行为检测方法,其特征在于,所述字段变化频繁度包括:第一字段变化频繁度和第二字段变化频繁度中的至少一种,所述根据接收到的针对所述API接口的多条API调用请求,确定与该多条API调用请求对应的字段变化频繁度,包括:
针对预设时长范围内接收到的对于所述API接口的多条API调用请求,统计第一预设情况的出现次数,将该次数作为第一字段变化频繁度;所述第一预设情况为:相邻两次所述API调用请求对应的调用字段不同;
和/或,
针对预设时长范围内接收到的对于所述API接口的多条API调用请求,统计目标API调用请求组中API调用请求的数量,将该数量作为第二字段变化频繁度;所述目标API调用请求组由连续接收到的多条所述API调用请求组成,且相邻两次所述API调用请求对应的调用字段不同。
4.如权利要求3所述的API异常调用行为检测方法,其特征在于,所述根据所述字段特征信息以及所述目标异常行为判定条件,判断所述API调用请求对应的API调用行为是否异常,包括:
确定所述字段特征信息满足以下目标异常行为判定条件中的至少一种时,判定所述API调用请求对应的API调用行为异常;
第一目标异常行为判定条件:所述字段集合不在预设正常字段集合中;
第二目标异常行为判定条件:所述字段长度不在预设字段长度范围内;
第三目标异常行为判定条件:所述第一字段变化频繁度大于预设第一字段变化频繁度阈值;
第四目标异常行为判定条件:所述第二字段变化频繁度大于预设第二字段变化频繁度阈值。
5.如权利要求4所述的API异常调用行为检测方法,其特征在于,所述方法还包括确定所述预设正常字段集合的步骤:
针对所述API接口,获取多条历史正常API调用请求;
针对每一所述历史正常API调用请求对应的调用字段,获取对应的字段集合样本得到多个字段集合样本;
对多个所述字段集合样本中每一所述调用字段的调用频繁度进行统计分析,根据统计分析结果确定所述预设正常字段集合,所述调用频繁度表征相应的所述调用字段在多个所述字段集合样本中出现的频繁程度。
6.如权利要求4所述的API异常调用行为检测方法,其特征在于,所述方法还包括确定所述预设字段长度范围的步骤:
针对所述API接口,获取多条历史正常API调用请求;
针对每一所述历史正常API调用请求对应的调用字段,获取对应的字段长度值;
根据多个所述字段长度值,确定第一四分位数和第三四分位数,所述第一四分位数表示将多个所述字段长度值按照由小到大排列后第25%位对应的数,所述第一四分位数表示将多个所述字段长度值按照由小到大排列后第75%位对应的数;
将所述第三四分位数减去所述第一四分位数得到四分位距;
根据所述第三四分位数和所述四分位距确定长度上限值,并根据所述第一四分位数和所述四分位距确定长度下限值;
根据所述长度上限值和所述长度下限值确定所述预设字段长度范围。
7.如权利要求4所述的API异常调用行为检测方法,其特征在于,所述方法还包括确定所述预设第一字段变化频繁度阈值与所述预设第二字段变化频繁度阈值的步骤:
针对所述API接口,获取预设时长范围内接收到的多条历史正常API调用请求;
统计第二预设情况的出现次数,将该次数作为第一字段变化频繁度阈值;并统计目标历史正常API调用请求组中历史正常API调用请求的数量,将该数量作为第二字段变化频繁度阈值;所述第二预设情况为:相邻两次所述历史正常API调用请求对应的调用字段不同;所述目标历史正常API调用请求组由连接接收到的多条所述历史正常API调用请求组成,且相邻两次所述历史正常API调用请求对应的调用字段不同。
8.一种API异常调用行为检测装置,其特征在于,包括:
第一确定模块,用于根据接收到的API调用请求确定与所述API调用请求对应的调用字段的字段特征信息、以及需调用的API接口;
第二确定模块,用于基于预设的API接口与异常行为判定条件的对应关系,确定与所述API接口对应的目标异常行为判定条件;
判断模块,用于根据所述字段特征信息以及所述目标异常行为判定条件,判断所述API调用请求对应的API调用行为是否异常。
9.一种设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,以实现如权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时,以实现如权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111608508.6A CN114329469A (zh) | 2021-12-24 | 2021-12-24 | Api异常调用行为检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111608508.6A CN114329469A (zh) | 2021-12-24 | 2021-12-24 | Api异常调用行为检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329469A true CN114329469A (zh) | 2022-04-12 |
Family
ID=81012573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111608508.6A Pending CN114329469A (zh) | 2021-12-24 | 2021-12-24 | Api异常调用行为检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329469A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146737A (zh) * | 2022-07-21 | 2022-10-04 | 中国电信股份有限公司 | 匹配模型的建模方法、防护实现方法及相关设备 |
CN116244106A (zh) * | 2023-03-22 | 2023-06-09 | 中航信移动科技有限公司 | 一种民航数据的数据检测方法、存储介质及电子设备 |
-
2021
- 2021-12-24 CN CN202111608508.6A patent/CN114329469A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146737A (zh) * | 2022-07-21 | 2022-10-04 | 中国电信股份有限公司 | 匹配模型的建模方法、防护实现方法及相关设备 |
CN115146737B (zh) * | 2022-07-21 | 2024-03-29 | 中国电信股份有限公司 | 匹配模型的建模方法、防护实现方法及相关设备 |
CN116244106A (zh) * | 2023-03-22 | 2023-06-09 | 中航信移动科技有限公司 | 一种民航数据的数据检测方法、存储介质及电子设备 |
CN116244106B (zh) * | 2023-03-22 | 2023-12-29 | 中航信移动科技有限公司 | 一种民航数据的数据检测方法、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062809B (zh) | 一种线上测试用例生成方法、装置及电子设备 | |
CN108090567B (zh) | 电力通信系统故障诊断方法及装置 | |
US9614867B2 (en) | System and method for detection of malware on a user device using corrected antivirus records | |
CN110417778B (zh) | 访问请求的处理方法和装置 | |
CN114329469A (zh) | Api异常调用行为检测方法、装置、设备及存储介质 | |
CN108491321B (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN108390856B (zh) | 一种DDoS攻击检测方法、装置及电子设备 | |
CN107276851B (zh) | 一种节点的异常检测方法、装置、网络节点及控制台 | |
CN113489713A (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN112738094A (zh) | 可扩展的网络安全漏洞监测方法、系统、终端及存储介质 | |
CN109815702B (zh) | 软件行为的安全检测方法、装置及设备 | |
CN111062040A (zh) | 一种确定未知漏洞的方法、服务器及计算机可读存储介质 | |
CN109558315B (zh) | 测试范围的确定方法、装置及设备 | |
CN111030974A (zh) | 一种apt攻击事件检测方法、装置及存储介质 | |
CN113051571B (zh) | 一种误报漏洞的检测方法、装置及计算机设备 | |
CN114513341B (zh) | 恶意流量检测方法、装置、终端及计算机可读存储介质 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN115643044A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN110891097B (zh) | 一种跨设备用户识别方法及装置 | |
CN114422186A (zh) | 一种攻击检测方法、装置、电子设备及存储介质 | |
CN109165127B (zh) | 问题接口的定位方法、装置及电子设备 | |
CN112699369A (zh) | 一种通过栈回溯检测异常登录的方法及装置 | |
CN111614675B (zh) | 请求执行方法、设备、系统及介质 | |
CN113225332B (zh) | 用户登录管理方法、装置、终端设备及存储介质 | |
CN110166421B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100032 NO.332, 3rd floor, Building 102, 28 xinjiekouwai street, Xicheng District, Beijing Applicant after: Qianxin Technology Group Co.,Ltd. Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd. Address before: 100032 NO.332, 3rd floor, Building 102, 28 xinjiekouwai street, Xicheng District, Beijing Applicant before: Qianxin Technology Group Co.,Ltd. Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc. |