接口安全性检测方法、装置、电子设备与存储介质与流程

文档序号:24643054发布日期:2021-04-13 14:04阅读:125来源:国知局
接口安全性检测方法、装置、电子设备与存储介质与流程

1.本发明涉及信息安全技术领域,尤其涉及一种接口安全性检测方法、装置、电子设备与存储介质。


背景技术:

2.在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。接口安全性检测是指对接口是否存在安全漏洞,从而导致信息泄漏进行检测。
3.在实际应用中存在信息交叉泄漏的情况,即:接口单次查询结果不会泄露信息,但将单个接口多次查询的结果或对多个接口查询的结果关联后会获得额外的信息,从而造成信息泄漏。现有技术中的接口安全性检测方法一般只关注单个接口是否存在安全漏洞,无法检测到信息交叉泄漏的情况。


技术实现要素:

4.本发明提供一种接口安全性检测方法、装置、电子设备与存储介质,用以解决现有技术中只关注单个接口是否存在安全漏洞,无法检测到多接口信息交叉泄漏风险的缺陷。
5.本发明提供一种接口安全性检测方法,包括:
6.基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
7.根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
8.将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
9.根据本发明提供的一种接口安全性检测方法,方法还包括:
10.根据所述目标系统的接口信息,确定所述目标系统中的开放接口;
11.检查所述开放接口是否符合开放标准,当所述开放接口不符合开放标准时,确定所述目标系统存在隐藏接口风险。
12.根据本发明提供的一种接口安全性检测方法,方法还包括:
13.确定第一接口的输出元素中是否包含除第三信息之外的第四信息,当包含第四信息且所述第四信息为敏感信息时,确定所述目标系统存在横向信息流溢出风险;其中,
14.所述第一接口为所述目标系统中的任意一个接口;所述第三信息为所述第一接口的输入元素所包含的敏感信息。
15.根据本发明提供的一种接口安全性检测方法,方法还包括:
16.确定第一接口的输入元素中是否同时包含身份标识信息与密码信息,当未同时包含身份标识信息与密码信息时,确定所述目标系统存在弱复杂度验证风险;
17.或,确定第一接口的输入元素中的输入限制条件,根据所述输入限制条件,当预设时间段内输入身份标识信息的次数大于预设阈值时,确定所述目标系统存在弱复杂度验证风险。
18.根据本发明提供的一种接口安全性检测方法,方法还包括:
19.根据第一接口的输入元素,当确定所述输入元素中的验证码未满足预设的安全条件时,确定所述目标系统存在弱验证码风险。
20.根据本发明提供的一种接口安全性检测方法,所述将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险,包括:
21.获取所述目标系统中各个接口的输入元素与输出元素;
22.当第二接口的输入元素与第三接口的输出元素相关时,将所述第二接口的输入元素、输出元素与所述第三接口的输入元素、输出元素关联起来,形成输入输出链条;其中,所述第二接口为所述目标系统中的任意一个接口,所述第三接口为所述目标系统中除所述第二接口之外的其他任意一个接口;
23.根据第一信息,判断是否能够从所述输入输出链条中得到第二信息,当能够得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险。
24.根据本发明提供的一种接口安全性检测方法,所述将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险,包括:
25.获取所述目标系统中各个接口的输入元素与输出元素;
26.确定第一接口集合,所述第一接口集合为所述目标系统中输入元素为第一信息的所有接口的集合;
27.将所述第一接口集合中各个接口的输出元素进行关联,当根据关联后的输出元素得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险。
28.根据本发明提供的一种接口安全性检测方法,所述基于目标系统的待测域名集,获取所述目标系统的接口信息,包括:
29.基于所述待测域名集中的域名,由多个爬虫采用动态浏览器模拟的方式爬取所述目标系统的接口信息;其中,所述多个爬虫使用代理ip地址池中的代理ip地址。
30.根据本发明提供的一种接口安全性检测方法,方法还包括:
31.以域名备案系统中的备案域名作为种子域名,开展子域名挖掘,得到目标系统的待测域名集。
32.本发明还提供一种接口安全性检测装置,包括:
33.接口信息获取模块,用于基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
34.敏感信息确定模块,用于根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
35.信息交叉泄漏风险检测模块,用于将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信
息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
36.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述接口安全性检测方法的步骤。
37.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述接口安全性检测方法的步骤。
38.本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上述任一种所述接口安全性检测方法的步骤。
39.本发明提供的接口安全性检测方法、装置、电子设备与存储介质,通过对多个接口的接口信息的交叉关联,实现了对多接口信息交叉泄漏风险的检测,有助于提高接口安全性。
附图说明
40.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1是本发明提供的接口安全性检测方法的流程示意图之一;
42.图2为本发明实施例所涉及的多接口信息交叉泄漏风险检测的示意图;
43.图3是本发明提供的接口安全性检测装置的结构示意图;
44.图4是本发明提供的电子设备的结构示意图。
具体实施方式
45.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.下面结合图1

图4描述本发明的接口安全性检测方法、装置、电子设备与存储介质。
47.图1为本发明提供的接口安全性检测方法的流程图,如图1所示,本发明提供的接口安全性检测方法,包括:
48.步骤101、基于目标系统的待测域名集,获取所述目标系统的接口信息。
49.目标系统是指需要做接口安全性检测的网络系统。目标系统能够对外提供网络服务,如一个购物网站系统,一个新闻网站系统均可作为目标系统。目标系统并不限定于单个的网站,如同属于同一组织的多个网站也可视为同一目标系统。例如,同属于阿里巴巴集团的淘宝网与天猫网可属于同一目标系统。
50.目标系统通过ip地址或域名的形式提供网络服务接口。例如,用户通过域名cn.unionpay.com访问银联系统。
51.为了保证接口安全性检测的全面性,需要对目标系统的全部接口进行安全性检测。
52.但在通常情况下,目标系统并非所有接口都已经被记录,有些接口属于未被记录的隐藏接口,因此只有先找出这些隐藏接口,才能对目标系统的全部接口进行安全性检测。
53.在本步骤中,通过目标系统的待测域名集,来获取目标系统尽可能多的接口的接口信息。
54.目标系统的待测域名集包含了能够访问目标系统的多个域名。本领域技术人员很容易理解,用户并非只能通过主页域名才能访问目标系统,通过目标系统的其他域名,如二级子页面的域名,同样可以访问目标系统。此外,根据之前的描述,属于同一组织的不同网站也可以属于同一目标系统,因此同一组织的不同网站的域名也包含在同一待测域名集中。目标系统的待测域名集就是这些能够访问目标系统的域名的集合。
55.例如,一个目标系统可根据业务不同有多个域名,如一个视频网站,其子频道“电视剧”与子频道“电影”会有不同的域名;目标系统中的同一个业务根据终端类型的不同会有不同的域名,如视频网站中的子频道“电视剧”对应有手机端域名和电脑端域名。目标系统的待测域名集包含了不同业务所对应的域名,也包含了不同类型的终端所对应的域名。
56.目标系统具体所对应的网络服务系统不同,则对应的待测域名集会存在差异。例如,阿里巴巴集团的网络服务系统所对应的待测域名集与腾讯集团的网络服务系统所对应的待测域名集显然是不一样的。
57.此外,目标系统在不同时间段所对应的待测域名集也可能存在差异。例如,目标系统的域名发生调整,目标系统增加新的业务,目标系统增加了测试域名,都会使得目标系统的待测域名集发生变化。
58.目标系统的待测域名集中包含了大量的有效域名。在本步骤中,通过爬虫遍历访问这些域名所指向的网页,从而获取目标系统的接口信息。
59.目标系统的接口信息至少包括接口的输入元素以及接口的输出元素。
60.接口的输入元素是指用户完成某一项业务时所输入的元素,如用户在登录时所输入的账号、密码。接口的输入元素可通过由接口传递的请求数据获得。例如,用户在进行登录操作时,会输入账号、密码等信息。用户使用的客户端根据该登录操作生成请求数据(包括账号、密码等信息)并发送给对应的接口,从接口接收到的请求数据中可以得到接口的输入元素。如某一通过登录接口所传递的请求数据包括:账号=12345678,密码=abcdef,以及一些其他信息。在该请求数据中,账号与密码属于输入元素。
61.接口的输出元素是指目标系统基于接口的输入元素所生成的响应结果。例如,目标系统对登录操作的请求数据的响应结果包括:登录成功后的提示信息,或登录失败的提示信息。这些响应结果可以作为接口的输出元素。
62.在其他实施例中,目标系统的接口信息还包括接口的类型信息。目标系统的接口可能有多种,如登录接口、账号找回接口、查询接口等,接口的类型信息用于描述接口的具体种类。
63.在本实施例中,在获取目标系统的接口信息时,采用动态浏览器模拟与代理池并发的方式实现接口信息的爬取。
64.在采用爬虫爬取信息时,网站的风控系统会对频繁请求的ip地址进行封禁,且很
多接口可能是由js(javascript)动态加载得到的,而非静态html资源。在本实施例中,通过动态浏览器模拟与代理池并发这两种方式来避免这些因素的干扰。
65.具体的说,代理池包含有大量的代理ip地址,代理池并发是指代理池可以为分布式爬虫采集系统中的多个爬虫(如上千个爬虫)分别提供有效的代理ip地址,确保每个爬虫获得的都是对应网站有效的代理ip地址,从而保障爬虫快速稳定的运行。代理池中的ip地址会不间断地更新,以保证代理池中有足够多的代理ip地址供爬取使用。
66.一些动态网页的接口可能是由js(javascript)动态加载得到的,如果采用爬虫静态解析这些网页容易造成api接口漏报。在本发明中,采用动态浏览器模拟的方式来避免这一问题。在一个实施例中,可基于puppetteer实现动态浏览器模拟。此外,为了避免被服务器识别出爬虫的特征,可基于puppetteer同时模拟出多种类型的浏览器来进行爬取,如ie、chrome、firefox等各类常见浏览器。基于puppetteer实现动态浏览器模拟时,可支持ajax/fetch/jsonp/websocket请求的发现和动态解析抓取功能。此外还可结合ecmascript/await的特性,实现高效的异步抓取,以进一步提升爬取性能。
67.如何基于puppetteer实现动态浏览器模拟,以及如何结合ecmascript/await的特性来实现高效的异步抓取是本领域技术人员的公知常识,在本实施例中不做进一步的陈述。
68.所获取的目标系统的接口信息可做进一步的识别分类,如基于动态请求对接口信息做识别分类,如ajax、jsonp等。
69.经过识别分类的接口信息可在后续步骤中使用。
70.步骤102、根据所述输入元素以及所述输出元素,确定敏感信息。
71.敏感信息是指对接口安全具有影响的信息。通过对接口的输入元素以及输出元素的处理,可以确定其中的敏感信息。
72.以输入元素为例,其确定敏感信息的过程为:
73.步骤1021、通过特征规则的方式确定目标系统的网页上各个表单的输入元素的类型。
74.表单(form)在网页中主要负责数据采集功能。根据表单可以得到对应的输入元素。
75.在本实施例中,采用特征规则的方式判断输入元素的类型。
76.所述特征规则可以是正则表达式,如某一身份证号验证的规则为:
77.(身份证|身份证号|chinese id no).*。
78.某一接口的输入框tag信息为:身份证号/手机号,符合上述身份证号类型规则,即可认为该接口的输入元素包括身份证号。
79.步骤1022、根据所述输入元素的类型,确定敏感信息。
80.输入元素可以包括多种类别的信息,这些信息有些是人人可见的信息,有些关乎网络安全,在本步骤中需要将它们区分出来。
81.在之前的步骤中,已经得到了输入元素的类型,因此,在本实施例中,根据预先设置的输入元素类型与敏感信息的映射关系,可以确定输入元素是否属于敏感信息。如某一输入元素是身份证号,则该输入元素是敏感信息,另一输入元素是信息输入时间,通常情况下,该输入元素不属于敏感信息。
82.敏感信息还可以进一步分为高敏感信息和普通敏感信息。如账号密码、支付密码、查询密码、短信验证码等内容可被认为是高敏感信息;账户信息、身份信息、轨迹信息等可被认为是普通敏感信息。
83.高敏感信息与普通敏感信息的确定也可以通过输入元素类型与高敏感信息/普通敏感信息的映射关系来实现。
84.步骤103、将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险。
85.信息交叉泄漏是指:基于发现的一些问题在线接口,通过一些攻击手段可获取相关用户的部分信息。如需获取用户的完整信息,可对各源头泄露数据进行关联交叉。
86.信息交叉泄漏风险有不同的表现形式。
87.第一种表现形式的信息交叉泄漏风险为:接口1的输入元素与输出元素都不是敏感信息,接口2的输入元素是接口1的输出元素,接口2的输出元素是敏感信息。正常情况下,第三方并不知道接口2的输入元素,因此无法得到作为接口2输出元素的敏感信息。但若第三方将接口1的输入元素、输出元素与接口2的输入元素、输出元素关联起来,且能得到接口1的输入元素,那么作为敏感信息的接口2的输出元素就会被泄露。
88.第二种表现形式的信息交叉泄漏风险为:接口1的输出元素为3

1,接口的输出元素为3

2,3

1和3

2都只是信息3的一部分,单独不存在风险。但若第三方将3

1和3

2进行补全,得到完整的信息3,且信息3是敏感信息,那么作为敏感信息的信息3就会被泄露。
89.针对不同表现形式的信息交叉泄漏风险,可通过不同的步骤进行风险检测。
90.对于第一种表现形式的信息交叉泄漏风险,可通过以下步骤进行风险检测:
91.步骤1031、获取所述目标系统中各个接口的输入元素与输出元素。
92.步骤1032、当第二接口的输入元素与第三接口的输出元素相关时,将所述第二接口的输入元素、输出元素与所述第三接口的输入元素、输出元素关联起来,形成输入输出链条。
93.在本步骤中,第二接口是目标系统中的任意一个接口,第三接口为目标系统中除第二接口之外的其他任意一个接口。例如,一个接口的输入元素与输出元素为a

b,另一个接口的输入元素与输出元素为b

c,那么可以将它们关联起来,形成输入输出链条a

b

c。
94.本领域技术人员很容易理解,上述描述方式并不意味着输入输出链条只能由两个接口的接口信息关联而成。在前述的例子中,若目标系统中还有另一个接口的输入元素与输出元素为c

d,那么此时具有输入元素与输出元素b

c的接口为所述第二接口,具有输入元素与输出元素c

d的接口为所述第三接口,可进一步得到输入输出链条a

b

c

d。
95.步骤1033、根据第一信息,判断是否能够从所述输入输出链条中得到第二信息,当能够得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险。
96.在本步骤中,第一信息为所述输入输出链条中的一部分,通常为输入输出链条中的输入元素(即输入输出链条的第一条信息)。第一信息可以为易于获取的敏感信息,也可以为非敏感信息。
97.图2为本发明实施例所涉及的多接口信息交叉泄漏风险检测的示意图,如图2所
述,可从同一目标系统的多个接口中,分别提取输入元素与输出元素,形成各自的输入元素

输出元素对。若某一接口a的输入元素与另一接口b的输出元素相关,如两者一致,那么可以将两个接口的输入元素、输出元素关联起来。例如,接口a的输入元素为a,输出元素b,对应的输入元素

输出元素对可表示为a

b,接口b的输入元素为c,输出元素为a,对应的输入元素

输出元素对可表示为c

a。那么可以将两者关联起来,形成输入输出链条c

a

b。在该输入输出链条中,c可以视为输入元素,a和b都可以视为输出元素。此外,若另有一个接口c的输入元素为d和e,输出元素为a,对应的输入元素

输出元素对可表示为d+e

a。接口a的输入元素

输出元素对还可以和接口c的输入元素

输出元素对关联起来,形成另一输入输出链条d+e

a

b。在该输入输出链条中,d和e可以视为输入元素,a和b都可以视为输出元素。本领域技术人员很容易理解,根据目标系统中的接口信息,可以形成多个输入输出链条。
98.在得到上述的输入输出链条后,可对目标系统是否存在信息交叉泄漏风险进行判断。
99.在本实施例中,可从之前关联操作所得到的多个输入输出链条中选取一个输入输出链条作为判断依据,如选取输入元素最少、输出元素最多的输入输出链条。例如,输入输出链条c

a

b中的输入元素为c,输入输出链条d+e

a

b中的输入元素为d和e,因此选取输入输出链条c

a

b作为判断依据。在其他实施例中,也可以对关联操作所得到的所有输入输出链条分别进行判断,或者对关联操作所得到的部分(大于一个)输入输出链条分别进行判断。
100.在具体判断时,若基于第一信息以及多个接口的持续输入输出,能够得到第二信息且第二信息为敏感信息,则认为目标系统存在信息交叉泄漏风险。具体的说,在输入输出链条上,将输入元素作为第一信息。从输入元素出发,在所述输入输出链条上移动的步长超过预设阈值后所得到的输出结果中,发现有敏感信息(即第二信息),那么目标系统存在多个接口的信息交叉泄漏风险。
101.例如,有如下输入输出链条:
102.a

b

c

d

e

f

g;
103.输入元素a为第一信息,若阈值大小预先设置为1,那么从输入元素开始,在输入输出链条上移动的步长超过阈值1时,所得到的多个输出结果包括c、d、e、f、g。在这些输出结果中确定是否存在敏感信息,如果存在,则认为目标系统存在信息交叉泄漏风险。
104.在上述过程中,之所以要设置阈值,是因为信息交叉泄漏风险涉及到多个接口。通过设置阈值,可实现对多个接口的输入元素输出元素进行判断,而非对单个接口的输入输出元素进行判断。
105.本实施例中所涉及的敏感信息可以是前述的高敏感信息,也可以是普通敏感信息。作为敏感信息的第二信息并不局限于一个,输入输出链条的输出元素中若包含有多个敏感信息,那么所述多个敏感信息均可被称为第二信息。
106.对于第二种表现形式的信息交叉泄漏风险,可通过以下步骤进行风险检测:
107.步骤1034、获取所述目标系统中各个接口的输入元素与输出元素。
108.步骤1035、确定第一接口集合,所述第一接口集合为所述目标系统中输入元素为第一信息的所有接口的集合。
109.目标系统中有多个接口,其中一些接口的输入元素一致,如都是身份证号,那么可
以将这些接口集中起来,形成第一接口集合。本领域技术人员应当理解,第一接口集合的数量可以不止一个,各个第一接口集合在后续的步骤中单独进行处理。
110.步骤1036、将所述第一接口集合中各个接口的输出元素进行关联,当根据关联后的输出元素得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险。
111.第一接口集合中的一些接口的输出元素之间可能存在一定的关联关系。例如,某一接口的输出元素为手机号码前三位+后四位,另一个接口的输出元素为手机号码的中间七位(除去前两位以及后两位)。将这两个接口的输出元素关联起来,可以得到手机号码这一敏感信息。当存在这一情况时,认为目标系统存在信息交叉泄漏风险。
112.举一个具体的例子,有以下接口:
113.接口1,输入元素为银行卡号,输出元素为身份证号;
114.接口2,输入元素为身份证号,输出元素为信用卡账号,手机号码前三位+后四位;
115.接口3,输入元素为身份证号,手机号码前三位+后四位,输出元素为手机号补全;
116.接口4,输入元素为手机号,输出元素为姓名。
117.将上述接口的输入元素与输出元素进行关联,形成输入输出链,发现只要有银行卡号信息和4个接口,即可通过信息关联,获取姓名、身份证、银行卡以及手机号码,从而造成信息交叉泄漏。
118.本发明实施例提供的接口安全性检测方法通过对多个接口的接口信息的交叉关联,实现了对多接口信息交叉泄漏风险的检测,有助于提高接口安全性。
119.基于上述任一实施例,在本发明实施例中,方法还包括:
120.根据所述目标系统的接口信息,确定所述目标系统中的开放接口;
121.检查所述开放接口是否符合开放标准,当所述开放接口不符合开放标准时,确定所述目标系统存在隐藏接口风险。
122.隐藏接口是指:由于系统开发迭代或管理问题等原因,某些接口可能被弃用或被替换了,但是为了保证系统稳定性,可能会在一段时间内仍保留旧有接口,且对于原有的认证过程、功能实现、数据交互等功能不做过多的升级改造,安全性及稳定性较差。若此类接口被攻击者扫描发现,则可能出现包括横向信息流溢出问题、弱复杂度枚举验证问题,导致信息泄露。
123.在本实施例中,对目标系统中的所有接口逐个进行检查,确定其中的开放接口。所述开放接口是指允许输入和/或输出数据的接口。一个接口是否是开放接口,可以根据用户权限而发生变化。例如,接口a只针对管理员开放,那么接口a对于管理员属于开放接口,对于普通用户就不是开放接口。
124.开放标准描述了目标系统中的开放接口。开放标准可遵循行业标准,也可以由目标系统开发者/经营者自行规定。
125.当目标系统中有开放接口不符合开放标准,则说明这一开放接口存在信息泄漏风险,整个目标系统存在隐藏接口风险。例如,接口a只针对管理员开放,但在检查中发现接口a同样开放给了普通用户,那么接口a不符合开放标准,该接口存在信息泄漏风险。
126.本发明实施例提供的接口安全性检测方法通过对目标系统中的各个接口的检查,确定开放接口,然后对开放接口是否符合开放标准进行判断,从而实现了对目标系统隐藏
接口风险的检测。
127.基于上述任一实施例,在本发明实施例中,方法还包括:
128.确定第一接口的输出元素中是否包含除第三敏感信息之外的第四敏感信息,当包含第四敏感信息时,确定所述目标系统存在横向信息流溢出风险;其中,
129.所述第一接口为所述目标系统中的任意一个接口;所述第三敏感信息为所述第一接口的输入元素所包含的敏感信息。
130.横向信息流溢出是指:当在某些输入表单框中输入某些普通认证数据之后,其回复数据除了请求的目标,可能会额外携带或显示一些其他敏感数据。
131.在本实施例中,通过特征规则方式(如关键词匹配、正则表达式等)可以判断出第一接口的输出元素是否包含敏感信息,如果包含了敏感信息,且存在与第一敏感信息不同的其他敏感信息,那么可以认为第一接口的输出元素中包含了新的敏感信息,目标系统存在横向信息流溢出风险。
132.本发明实施例提供的接口安全性检测方法通过对目标系统中的接口的输出元素是否包含敏感信息的检查,实现了对目标系统横向信息流溢出风险的检测。
133.基于上述任一实施例,在本发明实施例中,方法还包括:
134.确定第一接口的输入元素中是否同时包含身份标识信息与密码信息,当未同时包含身份标识信息与密码信息时,确定所述目标系统存在弱复杂度验证风险;
135.或,确定第一接口的输入元素中的输入限制条件,根据所述输入限制条件,当预设时间段内输入身份标识信息的次数大于预设阈值时,确定所述目标系统存在弱复杂度验证风险。
136.弱复杂度验证包括:无认证或单一认证,用户枚举。
137.无认证或单一认证是指不需要提交用户信息或不需要提交密码;用户枚举是指不限制用户名在一段时间内的提交次数。
138.在本实施例中,身份标识信息可以是用户的账户信息,也可以是诸如姓名、身份证号码、社保号码的身份信息。
139.当用户在执行某一接口的操作时,如果只需要输入身份标识信息,而不需要输入密码,就能够得到该操作的结果,或者对用户输入身份标识信息的次数不做限制,或虽然有限制,但限制条件十分宽松,不能满足安全条件,就认为目标系统存在弱复杂度验证风险。
140.本发明实施例提供的接口安全性检测方法通过对目标系统中的接口的输入元素是否同时包含身份标识信息与密码信息,或输入身份标识信息的次数是否大于预设阈值的检查,实现了对目标系统弱复杂度验证风险的检测。
141.基于上述任一实施例,在本发明实施例中,方法还包括:
142.当确定第一接口的输入元素中的验证码未满足预设的安全条件时,确定所述目标系统存在弱验证码风险。
143.验证码是保证网络安全的一种重要手段。但如果验证码本身的安全性不高,那么也将会对网络安全造成影响。
144.弱验证码包括:短信验证码爆破和图形验证码绕过。如果验证码的验证逻辑处理不严谨,仍会导致被绕过。
145.验证码未满足预设的安全条件的常见情形包括:短信验证码的长度不足、短信验
证码无时效限制或有效时间过长、图形验证码未加时间戳。
146.本发明实施例提供的接口安全性检测方法通过对目标系统中的接口的输入元素是否满足预设的安全条件的判断,实现了对目标系统弱验证码风险的检测。
147.基于上述任一实施例,在本发明实施例中,方法还包括:
148.以域名备案系统中的备案域名作为种子域名,开展子域名挖掘,得到目标系统的待测域名集。
149.在之前的实施例中,目标系统的预测域名集都是预先获取的。在本实施例中,将对目标系统的预测域名集的获取过程进行说明。
150.获取目标系统的待测域名集可包括以下步骤:
151.步骤s1、以域名备案系统中的备案域名作为种子域名,开展子域名挖掘。
152.所谓的子域名挖掘是指以种子域名为基础,挖掘出其他可用的子域名。子域名挖掘具有多种实现方式。在本实施例中,为了扩展子域名的获取面,可采用多种域名挖掘方式相结合的方法来挖掘子域名。
153.例如,通过谷歌证书透明化、子域名暴力枚举以及passivedns三种方式获取域名。
154.谷歌证书透明化是由谷歌公司发起的项目,该项目的目的是提供一个开放的审计和监控系统,可以让任何域名所有者或者ca(certificate authority,数字证书管理机构)确定证书是否被错误签发或者被恶意使用,从而提高https网站的安全性。利用谷歌证书透明化所提供的数据可以实现子域名的挖掘。
155.子域名暴力枚举是指以枚举的方式将一定范围的子域名一一列举出来。
156.passivedns是指dns日志(域名服务)解析数据库,采用passivedns可以追踪解析国内所有域名的解析情况并追踪到目标子域名列表。
157.步骤s2、对挖掘得到的子域名进行清洗以及有效性验证,得到目标系统的待测域名集。
158.对子域名挖掘的结果进行清洗,包括:去除明显不符合域名生成规则的子域名,去除重合的域名等。
159.对子域名进行有效性验证是指对子域名当前是否有效进行验证,即判断能否通过子域名访问目标系统。如何做有效性判断是本领域技术人员的公知常识,因此不在此处做重复说明。
160.在之前的描述中已经提到,子域名挖掘可以采用多种实现方式。不同的实现方式会得到不同的子域名挖掘结果。在对挖掘所得到的子域名进行清洗与有效性验证时,可以先对不同实现方式挖掘得到的子域名分别进行清洗以及有效性验证,得到不同实现方式下的有效子域名集;然后将不同实现方式下的有效子域名集进行汇总、去重,最终得到目标系统的待测域名集。也可以先对不同实现方式挖掘得到的子域名先汇总,然后对汇总得到的所有子域名进行清洗以及有效性验证,最终得到目标系统的待测域名集。在本实施例中,不对具体的实现过程进行限定。
161.为了提升效率,在进行子域名挖掘时刻采用多线程调度的方式;在进行子域名暴力枚举时,可采用massdns;在对子域名做有效性验证的过程中,dns解析和http请求可使用异步多线程的方式。
162.本发明实施例提供的接口安全性检测方法以域名备案系统中的备案域名作为种
子域名,开展子域名挖掘,能够获得尽可能多的域名,从而能够全面的检测到目标系统的接口,从而保证了接口安全性。
163.下面对本发明提供的接口安全性检测装置进行描述,下文描述的接口安全性检测装置与上文描述的接口安全性检测方法可相互对应参照。
164.基于上述任一实施例,图3为本发明实施例提供的接口安全性检测装置的示意图,如图3所示,本发明实施例提供的接口安全性检测装置包括:
165.接口信息获取模块301,用于基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
166.敏感信息确定模块302,用于根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
167.信息交叉泄漏风险检测模块303,用于将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
168.本发明实施例提供的接口安全性检测装置通过对多个接口的接口信息的交叉关联,实现了对多接口信息交叉泄漏风险的检测,有助于提高接口安全性。
169.图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(communications interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行接口安全性检测方法,该方法包括:
170.基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
171.根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
172.将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
173.此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
174.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在
非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的接口安全性检测方法,该方法包括:
175.基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
176.根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
177.将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
178.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的接口安全性检测方法,该方法包括:
179.基于目标系统的待测域名集,获取所述目标系统的接口信息;其中,所述待测域名集包括能够访问所述目标系统的多个域名;所述接口信息包括接口的输入元素以及接口的输出元素;
180.根据所述接口的输入元素以及所述接口的输出元素,确定敏感信息;
181.将所述目标系统中多个接口的接口信息进行关联,当根据第一信息以及所述关联后的多个接口的接口信息,得到第二信息且所述第二信息为敏感信息时,确定所述目标系统存在信息交叉泄漏风险;其中,所述第二信息与所述第一信息不属于同一接口的接口信息。
182.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
183.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
184.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1