应用程序编程接口API的识别方法、装置和电子设备与流程

文档序号:31720975发布日期:2022-10-04 23:15阅读:116来源:国知局
应用程序编程接口API的识别方法、装置和电子设备与流程
应用程序编程接口api的识别方法、装置和电子设备
技术领域
1.本发明涉及互联网技术领域,尤其涉及一种应用程序编程接口api的识别方法、装置和电子设备。


背景技术:

2.随着互联网技术的快速发展,电子设备可以通过应用程序编程接口(application programming interface,api)来实现数据的调用传输,这也意味着api的调用关系着网络的安全性。通常,相关企业会将合法的api公开以供用户使用,但是会存在企业未公开的api被泄露,而导致企业网站被攻击;因此为了防止网站被攻击,准确的识别api尤为重要。
3.现有技术中,获取流量数据后,对流量数据进行分析,得到对应的统一资源定位符(uniform resource locator,url)数据,并将得到的url数据作为api,而本领域技术人员可知,api一定对应url,但url不一定是api,所以将url数据直接作为api,会降低api识别的准确性。


技术实现要素:

4.针对现有技术存在的问题,本发明提供一种应用程序编程接口api的识别方法、装置和电子设备。
5.本发明提供一种应用程序编程接口api的识别方法,所述方法包括:
6.获取网络流量;
7.确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
8.在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
9.根据本发明提供的一种应用程序编程接口api的识别方法,所述识别所述网络流量中的api,包括:
10.解析所述网络流量中的路径字段特征;所述路径字段特征包括绝对路径字段特征和/或相对路径字段特征;
11.确定所述路径字段特征是否为api规则库中的api特征;
12.在确定所述路径字段特征为所述api规则库中的api特征时,基于所述路径字段特征确定所述网络流量中的所述api。
13.根据本发明提供的一种应用程序编程接口api的识别方法,所述基于所述路径字段特征确定所述网络流量中的所述api之后,所述方法还包括:
14.输出所述api。
15.根据本发明提供的一种应用程序编程接口api的识别方法,所述方法还包括:
16.在确定所述路径字段特征不为所述api规则库中的api特征时,对所述路径字段特征进行告警标记。
17.根据本发明提供的一种应用程序编程接口api的识别方法,所述识别所述网络流
量中的api,包括:
18.在确定所述网络流量的格式为预设格式时,基于所述预设格式识别所述网络流量中的所述api。
19.根据本发明提供的一种应用程序编程接口api的识别方法,在所述确定所述路径字段特征是否为api规则库中的api特征之前,所述方法还包括:
20.获取每个api的api特征;所述api特征包括api的绝对路径特征和/或api的相对路径特征;
21.将每个所述api的api特征记录在所述api规则库中。
22.本发明还提供一种应用程序编程接口api的识别装置,所述装置包括:
23.第一获取单元,用于获取网络流量;
24.确定单元,用于确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
25.识别单元,用于在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
26.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述应用程序编程接口api的识别方法的步骤。
27.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述应用程序编程接口api的识别方法的步骤。
28.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述应用程序编程接口api的识别方法的步骤。
29.本发明提供的一种应用程序编程接口api的识别方法、装置和电子设备,在获取网络流量后,先确定网络流量中是否包含指示api格式的预设字段特征,在确定网络流量中包含指示api格式的预设字段特征时,识别网络流量中的api。可知,本发明是基于网络流量中是否包含api格式的特征来识别api的,从而提高了识别api的准确性。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明提供的应用程序编程接口api的识别方法的流程示意图;
32.图2是本发明提供的应用程序编程接口api的识别装置的结构示意图;
33.图3是本发明提供的电子设备的实体结构示意图。
具体实施方式
34.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.下面结合图1描述本发明的应用程序编程接口api的识别方法。
36.图1是本发明提供的应用程序编程接口api的识别方法的流程示意图,如图1所示,该应用程序编程接口api的识别方法包括以下步骤:
37.步骤101、获取网络流量。
38.示例地,电子设备可以从其他设备获取网络流量,也可以从自身的存储设备中获取网络流量,也可以从服务器获取网络流量;在获取到网络流量时,从网络流量中过滤出http流量,该http流量即为本发明中需要分析的网络流量。
39.步骤102、确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征。
40.其中,字段特征包括字段名称和字段名称对应的字段值。
41.示例地,预设字段特征可以包括swagger:2.0或open api:3.0.0,其中,swagger是字段名称,2.0是字段值,即为字段swagger对应的版本号2.0;open api是字段名称,3.0.0是字段值,即为字段open api对应的版本号3.0.0。
42.open api规范(open api specification,oas)是一种基于restful架构对api进行格式化描述的一种规范,如果一个架构符合表述性状态转移(representational state transfer,rest)原则,就称它为restful架构;目前v3.0版本的open api规范(也就是swaggerv2.0规范)已经发布并开源在github上。
43.示例地,在获取到http流量时,电子设备解析http流量中是否包含预设字段的字段值,若确定http流量中包含预设字段的字段值,即,http流量中包含swagger:2.0或open api:3.0.0,则表明该网络流量是基于调用api产生的,通过进一步解析网络流量可以识别api;若确定http流量中的字段值中不包含预设字段的字段值,即,http流量中的字段值中不包含swagger:2.0或open api:3.0.0,则表明该网络流量不是基于调用api产生的,也就无需再继续解析网络流量,可以节约电子设备的网络资源。
44.步骤103、在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
45.示例地,在确定网络流量的数据信息中包含api格式的特征,即包括swagger:2.0或open api:3.0.0时,电子设备可以从网络流量的数据信息中识别并获取api。
46.本发明提供的应用程序编程接口api的识别方法,在获取网络流量后,先确定网络流量中是否包含指示api格式的预设字段特征,在确定网络流量中包含指示api格式的预设字段特征时,识别网络流量中的api。可知,本发明是基于网络流量中是否包含api格式的特征来识别api的,从而提高了识别api的准确性。
47.可选地,步骤103具体可通过以下方式实现:
48.在确定所述网络流量中包含所述预设字段特征时,解析所述网络流量中的路径字段特征;所述路径字段特征包括绝对路径字段特征和/或相对路径字段特征;
49.确定所述路径字段特征是否为api规则库中的api特征;
50.在确定所述路径字段特征为所述api规则库中的api特征时,基于所述路径字段特征确定所述网络流量中的所述api。
51.示例地,在确定网络流量的数据信息中包含api格式的特征,即包括swagger:2.0
或open api:3.0.0时,则表明该网络流量是基于调用api产生的,进一步解析网络流量中的路径字段特征,可以得到绝对路径字段特征和/或相对路径字段特征。
52.其中,绝对路径字段特征包括绝对路径字段的字段名称和对应的字段值,相对路径字段特征包括相对路径字段的字段名称和对应的字段值。api规则库中存储有api的绝对路径字段特征和相对路径字段特征。
53.若网络流量中的路径字段特征同时包括绝对路径字段特征和相对路径字段特征,则将解析出的网络流量中的绝对路径字段特征与api规则库中存储的api的绝对路径字段特征进行匹配,同时将解析出的网络流量中api的相对路径字段特征与api规则库中存储的api的相对路径字段特征进行匹配,若网络流量中的绝对路径字段特征与相对路径字段特征皆匹配成功,则表明解析出的网络流量中的api为api规则库中记录的api。
54.示例地,绝对路径字段可以采用paths表示,相对路径字段可以采用basepath表示。
55.例如,api规则库中包括10个api的api特征,其中,第1个api的api特征包括字段1、字段1对应的字段值,字段2、字段2对应的字段值;第2个api的api特征包括字段3、字段3对应的字段值,字段4、字段4对应的字段值;第3个api的api特征包括字段5、字段5对应的字段值,字段6、字段6对应的字段值,若从网络流量中解析得到的路径字段为字段5,且路径字段对应的字段值与字段5对应的字段值相同,则路径字段和对应的字段值与第3个api的api特征完全匹配,则表明该网络流量中的api为公开的api。
56.若网络流量中的路径字段特征只包括绝对路径字段特征,且与api规则库匹配成功时,则该绝对路径字段特征即为api;同理,若网络流量中的路径字段特征只包括相对路径字段特征,且与api规则库匹配成功时,则该相对路径字段特征即为api;若网络流量中的路径字段特征既包括绝对路径字段特征,又包括相对路径字段特征,则将解析得到的绝对路径字段特征和相对路径字段特征组合确定为api。
57.本发明提供的应用程序编程接口api的识别方法,通过解析网络流量中的路径字段特征,且在路径字段特征与api规则库中的api特征匹配时,可以判断网络流量中的api为api规则库中记录的api。
58.可选地,所述基于所述路径字段特征确定所述网络流量中的所述api之后,所述方法还包括:
59.输出所述api。
60.示例地,在基于路径字段特征确定网络流量中的api之后,输出该api给用户,以使用户获取该api。
61.可选地,在确定所述路径字段特征不为所述api规则库中的api特征时,对所述路径字段特征进行告警标记。
62.示例地,在确定解析出的网络流量中的绝对路径字段特征和/或相对路径字段特征没有包括在api规则库中,则表明该路径字段特征不是公开的api的特征,可能存在安全隐患,导致网站被攻击,则可对路径字段特征进行告警标记。
63.例如,api规则库中包括10个api的api特征,其中,第1个api的api特征包括字段1、字段1对应的字段值,字段2、字段2对应的字段值;第2个api的api特征包括字段3、字段3对应的字段值,字段4、字段4对应的字段值;第3个api的api特征包括字段5、字段5对应的字段
值,字段6、字段6对应的字段值;若从网络流量中解析得到的api的路径字段和对应的字段值与api规则库中任意一个api的api特征都不匹配,则表明该网络流量中的api不为api规则库中记录的api。
64.本发明提供的应用程序编程接口api的识别方法,基于解析网络流量得到的路径字段特征,可以为用户输出公开的api,也可以对未公开的api进行告警标记,以提示用户存在的安全隐患。
65.可选地,所述识别所述网络流量中的api,包括:
66.在确定所述网络流量的格式为预设格式时,基于所述预设格式识别所述网络流量中的所述api。
67.示例地,预设格式可以为json数据交换格式。在确定所述网络流量的格式为预设格式时,本发明可以基于json数据交换格式解析并识别网络流量中的api;在确定网络流量的格式不是预设格式时,停止解析该网络流量。
68.可选地,在所述确定所述路径字段特征是否为api规则库中的api特征之前,所述方法还包括:
69.获取每个api的api特征;所述api特征包括api的绝对路径特征和/或api的相对路径特征;
70.将每个所述api的api特征记录在所述api规则库中。
71.示例地,本发明可以获取各企业公开的api,并基于json数据交换格式解析获取到每个api的绝对路径特征和/或每个api的相对路径特征,并将每个api的绝对路径特征和/或相对路径特征作为api的api特征记录在api规则库中;其中,api规则库中记录的每个api的api特征均可以为已公开api的api特征。
72.本发明提供的应用程序编程接口api的识别方法,基于api的api特征创建的api规则库,可以为api的查询提供便利,并基于api规则库可以识别未公开的api。
73.下面对本发明提供的应用程序编程接口api的识别装置进行描述,下文描述的应用程序编程接口api的识别装置与上文描述的应用程序编程接口api的识别方法可相互对应参照。
74.图2是本发明提供的应用程序编程接口api的识别装置的结构示意图,参照图2,该应用程序编程接口api的识别装置包括第一获取单元201、确定单元202和识别单元203;其中:
75.第一获取单元201,用于获取网络流量;
76.确定单元202,用于确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
77.识别单元203,用于在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
78.本发明提供的应用程序编程接口api的识别装置,在获取网络流量后,先确定网络流量中是否包含指示api格式的预设字段特征,在确定网络流量中包含指示api格式的预设字段特征时,识别网络流量中的api。可知,本发明是基于网络流量中是否包含api格式的特征来识别api的,从而提高了识别api的准确性。
79.基于上述任一实施例,所述识别单元203具体用于:
80.解析所述网络流量中的路径字段特征;所述路径字段特征包括绝对路径字段特征和/或相对路径字段特征;
81.确定所述路径字段特征是否为api规则库中的api特征;
82.在确定所述路径字段特征为所述api规则库中的api特征时,基于所述路径字段特征确定所述网络流量中的所述api。
83.基于上述任一实施例,所述应用程序编程接口api的识别装置还包括:
84.输出单元,用于输出所述api。
85.基于上述任一实施例,所述应用程序编程接口api的识别装置还包括:
86.标记单元,用于在确定所述路径字段特征不为所述api规则库中的api特征时,对所述路径字段特征进行告警标记。
87.基于上述任一实施例,所述识别单元203具体用于:
88.在确定所述网络流量的格式为预设格式时,基于所述预设格式识别所述网络流量中的所述api。
89.基于上述任一实施例,所述应用程序编程接口api的识别装置还包括:
90.第二获取单元,用于获取每个api的api特征;所述api特征包括api的绝对路径特征和/或api的相对路径特征;
91.记录单元,用于将每个所述api的api特征记录在所述api规则库中。
92.图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(communications interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行上述各方法提供的应用程序编程接口api的识别方法,该方法包括:获取网络流量;
93.确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
94.在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
95.此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
96.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的应用程序编程接口api的识别方法,该方法包括:获取网络流量;
97.确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
98.在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
99.又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的应用程序编程接口api的识别方法,该方法包括:获取网络流量;
100.确定所述网络流量中是否包含预设字段特征;所述预设字段特征为指示api格式的特征;
101.在确定所述网络流量中包含所述预设字段特征时,识别所述网络流量中的api。
102.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
103.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
104.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1