一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

API资产的确定方法及异常调用的预警方法与流程

2022-11-09 22:39:12 来源:中国专利 TAG:

api资产的确定方法及异常调用的预警方法
技术领域
1.本技术涉及网络安全技术领域,特别涉及一种api资产的确定方法、api接口异常调用的预警方法、电子设备及计算机可读存储介质。


背景技术:

2.api接口(application programming interface,应用程序接口),是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。
3.本技术中涉及的api接口主要是web(www是world wide web(环球信息网)的缩写,也可以简称为web,中文名字为“万维网”)服务的应用程序接口。api接口作为web服务的重要组成部分,通过api接口,用户可以获得或修改数据,实现程序间的连接,但同时也为攻击者提供了攻击web服务器的机会,攻击者可以通过精心构造的数据包,获得服务器权限,敏感数据等关键信息。所以,对api接口的发现与分析至关重要。现有技术一般是通过api网关或人工梳理登记的管理平台,将web服务器的api接口进行登记,再对这些已知的api接口进行分析。
4.但是api接口会随着web服务的更新迭代,也随之变化,仅通过人工梳理的方法,很容易造成疏漏,而且人工梳理很难获取api接口除uri(uniform resource identifier,统一资源标识符)的其他特征。部署api网关同样也需要消耗一定的资源,并增加了开发的复杂性。攻击者对api接口的攻击越来越频繁,如果不能即时的梳理api接口,很难发现攻击者造成的危害,使web服务暴露在危险之中。


技术实现要素:

5.本技术实施例提供了api资产的确定方法,用以减少人工梳理造成的疏漏和特征不足,提高web服务的安全性。
6.本技术实施例提供了一种api资产的确定方法,包括:
7.获取web服务的api接口的历史访问日志;
8.对所述历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径;
9.将所述访问路径相同的历史访问日志进行归并,得到归并后的目标访问日志;
10.对所述目标访问日志的历史参数进行特征分析,获得所述访问路径对应的api接口的特征阈值,并将所述api接口的特征阈值确定为api资产。
11.在一实施例中,所述对所述目标访问日志的历史参数进行特征分析,获得所述访问路径对应的api接口的特征阈值,包括:
12.根据所述目标访问日志的历史参数,统计预设时间段内指定参数值的出现次数,获得所述访问路径对应的api接口的流行度特征的特征阈值。
13.在一实施例中,所述对所述目标访问日志的历史参数进行特征分析,获得所述访
问路径对应的api接口的特征阈值,包括:
14.根据所述目标访问日志的历史参数,统计不同字段特征的最大值、均值、方差或中位数中的任意一种或多种,获得所述访问路径对应的api接口的字段特征的特征阈值。
15.在一实施例中,所述对所述目标访问日志的历史参数进行特征分析,获得所述访问路径对应的api接口的特征阈值,包括:
16.根据所述目标访问日志的历史参数,提取有效载荷信息中的参数特征和数值型特征的均值,最大值,最小值,方差以及中位数中的任意一种或多种,获得所述访问路径对应的api接口的参数特征和数值型特征的特征阈值。
17.在一实施例中,所述获取web服务的api接口的历史访问日志,包括:
18.获取web服务的历史日志数据;
19.对所述历史日志数据进行解析,获得每个访问请求的目标字段信息;
20.根据所述目标字段信息,对所述历史日志数据进行过滤筛选,获得调用api接口的历史访问日志。
21.在一实施例中,所述对所述历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径,包括:
22.从每个访问请求的访问地址中获取统一资源标识符和域名;
23.将所述统一资源标识符按照拆分标识符,拆分为路径部分和参数部分;
24.将所述路径部分和所述域名一起组成所述访问路径。
25.在一实施例中,所述根据所述路径部分,得到所述访问请求的访问路径,包括:
26.若所述路径部分包含随机字符串,将所述随机字符串替换为指定字符;
27.将所述域名与替换后的路径部分一起组成所述访问路径。
28.在一实施例中,所述方法还包括:从所述历史访问日志中提取api资产。
29.本技术实施例提供了一种api接口异常调用的预警方法,包括:
30.获取web服务的api接口的实时访问日志;
31.从所述实时访问日志中提取实时访问路径和实时访问参数值;
32.通过检测模型对所述实时访问路径对应的实时访问参数值进行分析,确定所述实时访问路径对应的api接口是否出现异常调用,并在出现异常调用时输出告警信息;
33.其中,所述检测模型是根据不同访问路径对应的api接口的特征阈值训练得到的;所述不同访问路径对应的api接口的特征阈值是通过获取web服务的api接口的历史访问日志,对所述历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径,将所述访问路径相同的历史访问日志进行归并,得到归并后的目标访问日志,之后对所述目标访问日志的历史参数进行特征分析得到。
34.本技术实施例还提供了一种电子设备,所述电子设备包括:
35.处理器;
36.用于存储处理器可执行指令的存储器;
37.其中,所述处理器被配置为执行上述api资产的确定方法或api接口异常调用的预警方法。
38.本技术实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述api资产的确定方法或上述api接口异常调
用的预警方法。
39.本技术上述实施例提供的技术方案,通过获取web服务的api接口的历史访问日志;对历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径;将访问路径相同的历史访问日志进行归并,得到同一访问路径对应的目标访问日志;对目标访问日志的历史参数进行特征分析,获得访问路径对应的api接口的特征阈值,并将所述api接口的特征阈值确定为api资产。上述技术方案,仅通过分析历史访问日志,即可自动确定api接口的特征阈值,不需要额外部署api网关,降低了人工梳理api接口的工作量,极大了提高了效率,避免了疏漏,降低了成本,提高了安全性。
附图说明
40.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
41.图1为本技术一实施例提供的电子设备的结构示意图;
42.图2是本技术实施例提供的一种api资产的确定方法的流程示意图;
43.图3是图2对应实施例中步骤s210的细节流程图;
44.图4是本技术实施例提供的特征分析的三个部分内容对比示意图;
45.图5是本技术一实施例提供的payload信息的示意图;
46.图6是本技术实施例提供的一种api接口异常调用的预警方法的流程示意图;
47.图7为本技术一实施例示出的一种api资产的确定装置的框图;
48.图8为本技术一实施例示出的一种api接口异常调用的预警装置的框图。
具体实施方式
49.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
50.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
51.图1是本技术实施例提供的电子设备的结构示意图。该电子设备100可以用于执行本技术实施例提供的api资产的确定方法以及api接口异常调用的预警方法。如图1所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本技术下述实施例提供的api资产的确定方法以及api接口异常调用的预警方法。
52.所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(cpu)、图像处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
53.所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上
可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的api资产的确定方法以及api接口异常调用的预警方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
54.在一实施例中,图1示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
55.所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
56.在一实施例中,用于实现本技术实施例的api资产的确定方法以及api接口异常调用的预警方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
57.在一实施例中,用于实现本技术实施例的api资产的确定方法以及api接口异常调用的预警方法的示例电子设备100可以被实现为诸如服务器、台式电脑等智能终端。
58.图2是本技术实施例提供的一种api资产的确定方法的流程示意图。如图2所示,该方法包括:步骤s210-步骤s240。
59.步骤s210:获取web服务的api接口的历史访问日志。
60.www是world wide web(环球信息网)的缩写,也可以简称为web,中文名字为“万维网”。web服务是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等web客户端的请求并返回相应响应。
61.api接口是指web服务的应用程序接口,通过该api接口可以访问web服务。历史访问日志是相对实时访问日志而言的,是当前时刻之前或一段时间之前的访问日志,访问日志用于记录浏览器等web客户端从web服务上请求网页数据的行为,一条访问请求的访问日志可以包括源ip地址(nternet protocol address,互联网协议地址)、目的ip地址、访问的uri(统一资源标识符)、访问的域名、访问时发送的payload(有效载荷)等信息。
62.在一实施例中,web服务的api接口的历史访问日志可以直接存储在web服务器中。在另一实施例中,如图3所示,上述步骤s210具体可以包括以下步骤s211-步骤s213。
63.步骤s211:获取web服务的历史日志数据。
64.其中,web服务的历史日志数据包括api接口的历史访问日志和非api接口的历史访问日志。为进行区分,二者一起统称为历史日志数据。
65.步骤s212:对所述历史日志数据进行解析,获得每个访问请求的目标字段信息。
66.其中,历史日志数据中的一条记录可以认为是一个访问请求。目标字段信息可以包括源ip地址、目的ip地址、访问的uri、访问的域名、访问时发送的payload等信息。
67.步骤s213:根据所述目标字段信息,对所述历史日志数据进行过滤筛选,获得调用api接口的历史访问日志。
68.对历史日志数据进行过滤筛选,仅保留需要分析的属于api接口的历史访问日志。举例来说,对于uri字段来说,以jpg、txt等结尾的uri会被过滤掉,因为这些uri通常是静态资源页面,并不是api接口,故可以从历史日志数据中去除uri以jpg、txt结尾的日志,得到api接口的历史访问日志。
69.步骤s220:对所述历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径。
70.其中,访问地址可以是url(统一资源定位符),也就是网页地址。具体的,从每个访问请求的访问地址中获取uri和域名;将所述uri按照拆分标识符,拆分为路径部分和参数部分;将所述路径部分和所述域名一起组成所述访问路径。
71.拆分标识符是指将uri拆分为路径部分和参数部分的标志,拆分标识符之前的部分称为路径部分,拆分标识符之后的部分称为参数部分。举例来说,一个访问请求的uri可能是“/v1/info/create?token=******”,拆分标识符可以是“?”,从而uri可以拆分为“/v1/info/create”和“token=******”,“/v1/info/create”称为路径部分,“token=******”称为参数部分。在一实施例中,域名和路径部分一起组成访问请求的访问路径,举例来说,域名“www.baidu.com”和路径部分“/v1/info/create”一起组成访问路径,从而便于将访问路径作为唯一标识,在步骤s230将访问路径相同的历史访问日志进行归并。
72.在另一实施例中,若所述路径部分包含随机字符串,将所述随机字符串替换为指定字符;将所述域名与替换后的路径部分一起组成所述访问路径。
73.需要说明的是,如果uri中存在一些随机字符串,影响了uri的归并,可以采用替换的方式,先进行替换,再进行归并。如一个访问请求的uri为“/v1/21wq23ewqewq1/create?token=******”,其中,随机字符串“21wq23ewqewq1”每次访问都会变换,针对于这种,可以将随机字符串“21wq23ewqewq1”替换为指定字符“*”,得到“/v1/*/create?token=******”,路径部分变为“/v1/*/create”。之后将域名和替换的路径部分一起组成访问路径,将访问路径作为唯一标识再执行步骤s230进行归并。
74.步骤s230:将所述访问路径相同的历史访问日志进行归并,得到归并后的目标访问日志。
75.其中,归并是指将访问路径相同的历史访问日志划分到一起。为进行区分,同一访问路径对应的历史访问日志称为目标访问日志。举例来说,可以将域名为“www.baidu.com”,uri的路径部分为“/v1/info/create”的历史访问日志进行归并,得到“www.baidu.com/v1/info/create”对应的目标访问日志,从而提高特征阈值的分析准确性。
76.步骤s240:对所述目标访问日志的历史参数进行特征分析,获得所述访问路径对应的api接口的特征阈值,并将所述api接口的特征阈值确定为api资产。
77.其中,历史参数可以包括源ip地址、目的ip地址、访问的uri、访问的域名、访问时发送的payload等信息。api接口以及api接口的特征阈值均属于api资产。
78.特征分析是指提取目标访问日志中这些历史参数的特征,比如访问某个uri的次数,某个目的ip地址的出现次数、url(uniform resource locator,统一资源定位符)的长度,payload的长度等。
79.其中,特征阈值是指特征的极限值,可以包括最大值、最小值等。例如url的最大长
度,payload的最大长度。
80.举例来说,访问某个uri的次数,某个目的ip地址的出现次数、uri的最大长度,payload的最大长度等均可作为访问路径对应的api接口的特征阈值。举例来说,当实时访问日志中某个url的长度超过上述url的最大长度(即超过特征阈值),则可以认为出现了api接口的异常调用。
81.如图4所示,特征分析可以包括三个部分,流行度特征、字段特征和payload特征。下面对三种特征的特征阈值获得方式分别展开描述,本技术实施例可以提取其中任意一种、二种或三种特征的特征阈值。
82.其中,流行度特征用于表征指定参数值在一段时间内的出现次数。在一实施例中,上述步骤s240可以包括:根据所述目标访问日志的历史参数,统计预设时间段内指定参数值的出现次数,获得所述访问路径对应的api接口的流行度特征的特征阈值。
83.举例来说,指定参数值的出现次数可以是预设时间段内某个源ip地址的出现次数,某个uri的出现次数。如图4所示,流行度特征可以包括源ip地址的流行度,目的ip地址的流行度,调用uri的流行度,源ip地址对应此uri的流行度等等。其中,流行度特征的特征阈值可以是流行度的具体值。流行度是指在一段时间内的出现次数。
84.在一实施例中,上述步骤s240可以包括:根据所述目标访问日志的历史参数,统计不同字段特征的最大值、均值、方差或中位数中的任意一种或多种,获得所述访问路径对应的api接口的字段特征的特征阈值。
85.如图4所示,字段特征可以包括url参数的长度、payload的长度、请求响应的时间长度,请求的时间是否在工作时间、响应包的长度、请求头的长度等等。字段特征的特征阈值可以包括字段特征的最大值、均值、方差或中位数中的任意一种或多种。举例来说,目标访问日志中url参数的最大长度可以作为访问路径对应的api接口的字段特征的特征阈值。
86.在一实施例中,上述步骤s240还可以包括:根据所述目标访问日志的历史参数,提取有效载荷信息中的参数特征和数值型特征的均值,最大值,最小值,方差以及中位数中的任意一种或多种,获得所述访问路径对应的api接口的参数特征和数值型特征的特征阈值。
87.有效载荷信息(payload)中的参数特征和数值型特征可以统称为payload特征。其中,参数特征包括参数、参数值的类型、层级、父参数。如图5所示,是payload的格式,存在第一层的参数deviceid,center,org,walq,根据参数值的类型,这4个参数可以记录为deviceid_string_0,center_json_0,org_json_0,walq_string_0,其中,0代表第0层,string代表它的参数值是字符串类型,json代表参数值是json类型。同理,下一层的参数userid可以记录为userid_json_1_org,除去第0层的参数,都需要带上它的父参数进行区分,这样payload的参数特征就可以提取出来。举例来说,“userid_json_1_org”就是其中一个参数特征(称为key),“userid”表示参数,“json”表示参数值的类型,“1”表示层级,“org”表示父参数。本技术实施例可以将key和参数值作为payload特征进行存储。
88.其中,数值型特征是指参数特征的特征值,举例来说,参数特征walq_string_0的特征值就是参数值(如wlaqtest)的长度。参数特征org_json_0的特征值就是参数org包含的key的个数,如果参数特征是int型的,则特征值就是它的参数值。数值型特征的特征阈值可以是上述特征值的均值,最大值,最小值,方差以及中位数中的一种或多种。举例来说,当实时访问日志中某个请求的payload信息中包含未出现过的参数特征,则可以认为出现了
api的异常调用。举例来说,当实时访问日志中某个请求的payload信息中某个参数的参数值超过该参数的最大值,也可以认为出现了api的异常调用。
89.在另外一个实施例中,上述方法还包括:从历史访问日志中提取api资产。
90.基于上述任一实施例中得到的api接口的特征阈值后,可以基于api接口的特征阈值,发现api接口,并从历史访问日志中提取api接口的特征阈值和api接口等api资产,从而能够自动发现并提取api资产。
91.图6是本技术实施例提供的一种api接口异常调用的预警方法的流程示意图。如图6所示,该方法包括:
92.步骤s610:获取web服务的api接口的实时访问日志。
93.其中,实时访问日志是相当于上文的历史访问日志而言的,可以认为是当前时刻的访问日志,或者最近一段时间的访问日志。
94.步骤s620:从所述实时访问日志中提取实时访问路径和实时访问参数值。
95.实时访问路径可以参照上文步骤s220对于访问路径的获得方式。实时访问参数值可以包括上述流行度特征的特征值、字段特征的特征值、参数特征以及数值型特征的特征值。
96.步骤s630:通过检测模型对所述实时访问路径对应的实时访问参数值进行分析,确定所述实时访问路径对应的api接口是否出现异常调用,并在出现异常调用时输出告警信息;
97.其中,所述检测模型是根据不同访问路径对应的api接口的特征阈值训练得到的;而不同访问路径对应的api接口的特征阈值可以采用上文实施例提供的api资产的确定方法获得。
98.其中,检测模型用于判断是否出现api异常调用,检测模型中规定了出现api异常调用时实时访问参数值与特征阈值之间的关系。举例来说,实时访问参数值超过特征阈值时,认为出现异常调用。特征阈值可以参照上文api资产的确定方法实施例中的描述,从历史访问日志中提取得到。
99.举例来说,参数phonenum代表电话号数字长度,基于历史访问日志统计的长度是11位(即特征阈值),但是实时访问参数值中指示电话号数字长度大于11,且返回的状态是正常,很有可能是攻击者伪造了payload信息,按照检测模型的判断,可以认为是出现了异常的api调用,可以发出告警信息。
100.进一步的,一线运营人员可以对告警信息进行管理,如是误报可以通过人工干预的方法,修改检测模型中的特征阈值,降低误报,提高准确率。此外,api接口除了提供给管理人员对网络安全进行监控,还可以提供给业务线的开发人员,分析api的调用情况和特征阈值,指导业务线迭代优化开发api接口。
101.下述为本技术装置实施例,可以用于执行本技术上述api资产的确定方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术api资产的确定方法实施例。
102.图7为本技术一实施例示出的一种api资产的确定装置的框图,如图7所示,该装置包括:
103.日志获取模块610,用于获取web服务的api接口的历史访问日志;
104.地址拆分模块620,用于对所述历史访问日志中每个访问请求的访问地址进行拆
分,获得每个访问请求的访问路径;
105.日志归并模块630,用于将所述访问路径相同的历史访问日志进行归并,得到归并后的目标访问日志;
106.特征分析模块640,用于对所述目标访问日志的历史参数进行特征分析,获得所述访问路径对应的api接口的特征阈值,并将所述api接口的特征阈值确定为api资产。
107.上述装置中各个模块的功能和作用的实现过程具体详见上述api资产的确定方法中对应步骤的实现过程,在此不再赘述。
108.图8为本技术一实施例示出的一种api接口异常调用的预警装置的框图。如图8所示,该装置包括:
109.日志获取模块710,用于获取web服务的api接口的实时访问日志;
110.地址拆分模块720,用于从所述实时访问日志中提取实时访问路径和实时访问参数值;
111.异常检测模块730,用于通过检测模型对所述实时访问路径对应的实时访问参数值进行分析,确定所述实时访问路径对应的api接口是否出现异常调用,并在出现异常调用时输出告警信息;
112.其中,所述检测模型是根据不同访问路径对应的api接口的特征阈值训练得到的;所述不同访问路径对应的api接口的特征阈值是通过获取web服务的api接口的历史访问日志,对所述历史访问日志中每个访问请求的访问地址进行拆分,获得每个访问请求的访问路径,将所述访问路径相同的历史访问日志进行归并,得到归并后的目标访问日志,之后对所述目标访问日志的历史参数进行特征分析得到。
113.上述装置中各个模块的功能和作用的实现过程具体详见上述api接口异常调用的预警方法中对应步骤的实现过程,在此不再赘述。
114.在本技术所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
115.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
116.功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的
存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献