CN116432190B - 接口未授权访问检测方法、装置、计算机设备及存储介质 - Google Patents
接口未授权访问检测方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116432190B CN116432190B CN202310711628.1A CN202310711628A CN116432190B CN 116432190 B CN116432190 B CN 116432190B CN 202310711628 A CN202310711628 A CN 202310711628A CN 116432190 B CN116432190 B CN 116432190B
- Authority
- CN
- China
- Prior art keywords
- data set
- interface
- data
- parameter
- response
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 163
- 230000004083 survival effect Effects 0.000 claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 24
- 230000007123 defense Effects 0.000 claims abstract description 7
- 238000001514 detection method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 description 72
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 230000010354 integration Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006833 reintegration Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了接口未授权访问检测方法、装置、计算机设备及存储介质。方法包括:获取已知接口信息和未知接口信息;对已知接口信息进行分层,以得到分层数据集;确定规律性,以得到第一数据集;对第一数据集进行拆分、去重和整合,以得到最终接口数据集;对已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重,以得到目标接口参数集;根据最终接口数据集以及目标接口参数集确定存活接口;确定接口正确权限校验特征,以得到共有特征数据集;判断接口是否存在未授权访问漏洞;若存在,则进行接口未授权访问漏洞防御。通过实施本发明实施例的方法可实现有效识别与防御多变的接口未授权访问漏洞攻击行为。
Description
技术领域
本发明涉及接口检测方法,更具体地说是指接口未授权访问检测方法、装置、计算机设备及存储介质。
背景技术
传统的接口未授权访问漏洞检测与防御方法是基于对已知接口进行重放请求,由于其过于依赖已有数据包中的数据,只能对已有接口进行未授权访问漏洞检测与防御,无法对未知接口进行未授权访问漏洞检测与防御,同时也忽略了接口请求参数对未授权访问漏洞的影响,导致在未授权访问漏洞问题上往往出现大量误报、漏报。因此,当前的接口未授权访问漏洞检测与防御方法无法有效识别与防御多变的接口未授权访问漏洞攻击行为。
因此,有必要设计一种新的方法,实现有效识别与防御多变的接口未授权访问漏洞攻击行为。
发明内容
本发明的目的在于克服现有技术的缺陷,提供接口未授权访问检测方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:接口未授权访问检测方法,包括:
获取已知接口信息和未知接口信息;
对所述已知接口信息进行分层,以得到分层数据集;
确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;
对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;
对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;
根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;
利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求,以得到接口正确权限校验特征,以得到共有特征数据集;
根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;
若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
其进一步技术方案为:所述已知接口信息包括:认证数据集、已知接口数据集、请求参数数据集、响应参数数据集;所述未知接口信息包括Js文件地址、接口地址、接口请求参数及对应的参数值数据集。
其进一步技术方案为:所述对所述已知接口信息进行分层,以得到分层数据集,包括:
根据所述已知接口信息和未知接口信息进行合并去重,以得到新接口集;
对所述新接口集内的数据进行分割,以得到分层数据集。
其进一步技术方案为:所述确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集,包括:
对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
其进一步技术方案为:所述对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集,包括:
将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;
连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
其进一步技术方案为:所述利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求,以得到接口正确权限校验特征,以得到共有特征数据集,包括:
通过HTTP请求方式中的POST请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;
收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;
判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;
若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的POST请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终POST请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;
根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;
合并所述第四数据集以及所述第三数据集,以得到第五数据集;
提取所述第五数据集的共有特征,以得到共有特征数据集。
其进一步技术方案为:所述根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞,包括:
将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;
通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集P中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;
根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
本发明还提供了接口未授权访问检测装置,包括:
信息获取单元,用于获取已知接口信息和未知接口信息;
分层单元,用于对所述已知接口信息进行分层,以得到分层数据集;
规律确定单元,用于确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;
组合单元,用于对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;
参数处理单元,用于对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;
接口探测单元,用于根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;
特征确定单元,用于利用所述目标接口参数集对所述存活URL数据集进行进行HTTP GET请求和HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集;
判断单元,用于根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;
防御单元,用于若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过利用已知接口数据与未知接口数据生成规律性接口数据,以请求数据包中参数数据与响应数据包中参数数据形成最终请求参数数据,通过请求参数数据对接口数据集进行请求获得接口正确权限校验特征,最后请求接口响应数据包中是否存在接口正确权限校验特征判断接口是否存在未授权访问漏洞,再以接口正确权限校验特征对未授权访问漏洞进行防御,从而精准实现接口未授权访问漏洞检测与防御,有效识别与防御多变的接口未授权访问漏洞攻击行为。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的接口未授权访问检测方法的应用场景示意图;
图2为本发明实施例提供的接口未授权访问检测方法的流程示意图;
图3为本发明实施例提供的接口未授权访问检测装置的示意性框图;
图4为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的接口未授权访问检测方法的应用场景示意图。图2为本发明实施例提供的接口未授权访问检测方法的示意性流程图。该接口未授权访问检测方法应用于服务器中。该服务器与终端进行数据交互,通过对已知接口和未知接口进行信息收集以及规律性判断,以获得更多接口信息,通过信息收集的参数及参数值对接口进行请求并获得接口正确权限校验特征,进而通过接口正确权限校验特征判断接口是否存在未授权访问漏洞,当接口存在未授权访问漏洞时,通过接口正确权限校验特征防御未授权访问漏洞。
图2是本发明实施例提供的接口未授权访问检测方法的流程示意图。如图2所示,该方法包括以下步骤S110至S190。
S110、获取已知接口信息和未知接口信息。
在本实施例中,所述已知接口信息包括:认证数据集、已知接口数据集、请求参数数据集、响应参数数据集;所述未知接口信息包括Js文件地址、接口地址、接口请求参数及对应的参数值数据集。
具体地,所述已知接口信息通过在网络端部署流量采集装置采集接口通信HTTP请求数据包以及对应的应答数据包实现,所述的已知接口信息包括以下内容:
针对某HOST Hn,收集所有与Hn通信的HTTP请求数据包请求头中的认证参数及对应的认证参数值Cn,C1,C2,C3,C4,……Cn整合去重后得到Hn的认证数据集Hnc{C1,C2,C3,C4,……Cn},Cn为{认证参数:认证参数对应的值}结构;
针对某HOST Hn,收集当与Hn通信的HTTP请求数据包请求头中存在认证参数及对应的认证值时该请求数据包请求行中的接口地址An,A1,A2,A3,A4,……An整合去重后得到Hn的已知接口数据集Hna{1,A2,A3,A4,……An};
针对某HOST Hn,收集所有与Hn通信的HTTP请求数据包请求正文和请求行中的参数及其对应的参数值qn,q1,q2,q3,q4……,qn整合去重后得到请求参数数据集Hnq{q1,q2,q3,q4……,qn},qn为{参数:参数对应的值}结构;
针对某HOST Hn,收集所有与Hn通信的HTTP请求数据包对应的应答数据包响应正文中的参数及其值pn,p1,p2,p3,p4……,pn整合去重后得到响应参数数据集Hnp{p1,p2,p3,p4……,pn},pn为{参数:参数对应的值}结构。
对于未知接口信息的获取:存在算法F1,该算法针对某HOST Hn,收集以HTTP协议请求Hn后得到的对应应答数据包响应正文中的Js文件地址、接口地址、接口请求参数及对应的参数值;
算法F1具体如下,针对某HOSTHn,计算F1(Hn)得到Js文件地址、接口地址、接口请求参数及对应的参数值数据集W{J{J1,J2,J3,J4,……Jn},A{A1,A2,A3,A4,……An},P{P1,P2,P3,P4,……Pn}},数据集J为Js文件地址集,数据集A为接口地址集,数据集P为接口请求参数及对应的参数值集,数据集P为{参数:参数对应的值}结构;此后,存在算法F2,该算法针对参数值数据集W进行进一步计算以得到最终的数据集W;
算法F2具体如下,针对参数值数据集W,即计算F2(F1(Hn)),算法F2会循环判断数据集W中Js文件地址集J是否存在存在数据Jn,若Jn∈J即数据集J中存在数据,则从Js文件地址集中取出数据Jn,调用算法F1对数据Jn进行计算即计算F1(Jn)得到结果集W1{J1{J11,J12,J13,J14,……J1n},A1{A11,A12,A13,A14,……A1n},P1{P11,P12,P13,P14,……P1n}},数据集P1为{参数:参数对应的值}结构,并且将结果集W1中J1集合并至参数值数据集W中J集并进行去重,将结果集W1中A1集合并至参数值数据集W中A集并进行去重,将结果集W1中P1集合并至参数值数据集W中P集并进行去重,若JnJ即数据集J中不存在数据,输出最终的数据集W{J{},A{A1,A2,A3,A4,……An}, P{P1,P2,P3,P4,……Pn}}。将最终参数值数据集W中数据重新整合为Wfin{J{},A{A1,A2,A3,A4,……An},P{P1,P2,P3,P4,……Pn}}。
S120、对所述已知接口信息进行分层,以得到分层数据集。
在本实施例中,分层数据集是指针对数据集Wfin,将数据集Wfin中的接口集A与收集的已知接口数据集Hna进行合并和去重,获得新接口集Hw{Hw1,Hw2,Hw3,Hw4,……Hwn},将新接口集Hw中的数据进行分层处理后形成的结果。
具体地,针对该新接口集Hw,存在算法F3,将新接口集Hw中的数据进行分层处理;
算法F3具体实现如下,针对新接口集Hw,算法F3对新接口集Hw每一个数据Hwn以”/”进行分割并将分割后的各个数据组成新的数据集C1{sp1,sp2,sp3,sp4……spn},之后,算法F3会判断数据集C1中的数据spn属于接口目录还是接口文件,如果数据spn属于接口目录,生成目录数据Dj{j:spn}(j为当前接口目录对应的目录级数),如果数据spn属于接口文件,生成文件数据F{“f”:spn},并将数据D1,D2,D3……Dj,F整合成新的数据集CHn{D1,D2,D3……Dj,F},算法F3对新接口集Hw中的所有数据计算完成后,对每一个数据Hwn的计算结果CHn进行整合,组成新的数据集即分层数据集CH{CH1,CH2,CH3,CH4,……CHn},即F3(Hw{Hw1,Hw2,Hw3,Hw4,……Hwn})= CH{CH1,CH2,CH3,CH4,……CHn}。
S130、确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集。
在本实施例中,第一数据集是指分层数据集存在规律性的数据组成的集合。
具体地,对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
在本实施例中,针对分层数据集CH{CH1,CH2,CH3,CH4,……CHn},存在算法F4,对数据集CH中的数据集CHn中的各个数据与数据集CH中除CHn之外的数据集中的对应数据进行规律性判断;
算法F4具体实现如下,判断CHn中是否存在Dj,若存在,则对CHn中Dj的值spn即DCHnj与数据集CH中除CHn之外的数据集中对应的Dj的值spn即Dexcept(CHn)j进行规律性判断,即计算F4(DCHnj, Dexcept(CHn)j),若F4(DCHnj, Dexcept(CHn))=1,证明CHn中Dj的值spn即DCHnj与其他一个或多个数据集CH中除CHn之外的数据集中对应的值spn即Dexcept(CHn)j存在规律性,生成符合DCHnj, Dexcept(CHn)j规律性的所有数据,ADj1{j:D1},ADj2{j:D2},ADj3{j:D3},ADj4{j:D4},……ADjn{j:Dn}(j为接口目录对应的目录级数),若F4(DCHnj, Dexcept(CHn)j)=0,证明CHn中Dj的值spn与其他一个或多个数据集CH中除CHn之外的数据集中对应的Dexcept(CHn)j的值不存在规律性,将判断CHn中F的值spn即FCHn与数据集CH中除CHn之外的数据集中对应的F的值spn即Fexcept(CHn)进行规律性判断,即计算F4(FCHn,Fexcept(CHn)),若F4(FCHn,Fexcept(CHn))=1,证明CHn中F的值spn即FCHn与其他一个或多个数据集CH中除CHn之外的数据集中对应的F的值spn即Fexcept(CHn)存在规律性,生成符合FCHn、Fexcept(CHn)规律性的所有数据AF1{“f”:F1},AF2{“f”:F2},AF3{“f”:F3},AF4{“f”:F4},……AFn{“f”:Fn},若F4(FCHn、Fexcept(CHn))=0,证明CHn中F的值spn即FCHn与其他一个或多个数据集CH中除CHn之外的数据集中对应的F的值spn即Fexcept(CHn))不存在规律性,若CHn中不存在Dj,则直接计算F4(FCHn、Fexcept(CHn)),若F4(FCHn、Fexcept(CHn))=1,生成符合FCHn、Fexcept(CHn)规律性的所有数据AF1{“f”:F1},AF2{“f”:F2},AF3{“f”:F3},AF4{“f”:F4},……AFn{“f”:Fn},将数据ADj1,ADj2,ADj3,ADj4,……ADjn,AF1,AF2,AF3,AF4,……AFn去重整合成新的数据集GAn{ADj1,ADj2,ADj3,ADj4,……ADjn,AF1,AF2,AF3,AF4,……AFn},将数据集CH中所有数据CH1,CH2,CH3,CH4,……CHn经过算法F4计算后获得的数据集GA1,GA2,GA3,GA4……,GAn整理成新的数据集GZ{GA1,GA2,GA3,GA4……,GAn},将数据集CH{CH1,CH2,CH3,CH4,……CHn}与GZ{ GA1,GA2,GA3,GA4……,GAn}合并成新的数据集即第一数据集GF{GF1,GF2,GF3,GF4,GF5,……GFn}。
S140、对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;
在本实施例中,最终接口数据集是指对第一数据集中数据进行重新排列组合以生成新的接口数据集。
在一实施例中,上述的步骤S140可包括步骤S141~S142。
S141、将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;
S142、连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
在本实施例中,针对数据集GF{GF1,GF2,GF3,GF4,GF5,……GFn},存在算法F5,对数据集GF中数据进行重新排列组合以生成新的接口数据集;
算法F5具体实现如下,针对数据集GF中的数据集GFn,若GFn中数据与GFn中其他数据或与数据集GF中除GFn之外的数据集中的数据存在相同键值,即存在相同的j(j为接口目录对应的目录级数)或”f”,则将相同键j或键”f”对应的值统计成一级目录数据集DF1{D11,D12,D13,D14,……D1n}、二级目录数据集DF2{D21,D22,D23,D24,……D2n}、……j级目录数据集DFj{Dj1,Dj2,Dj3,Dj4,……Djn}、文件数据集DF{DF1,DF2,DF3,DF4,……DFn}。生成目录数据集和文件数据集后,算法F5会将一级目录数据集DF1中的各个数据D11,D12,D13,D14,……D1n与文件数据集DF中的各个数据DF1,DF2,DF3,DF4,……DFn以”/”连接组成新的接口地址数据集DF1{D11DF1,D11DF2,……,D11DFn,D12DF1,D12DF2,……,D12DFn,……,D1nDF1,D1nDF2,……,D1nDFn};将一级目录数据集DF1中的各个数据DF1,DF2,DF3,DF4,……DFn与二级目录数据集DF2中的各个数据D21,D22,D23,D24,……D2n再与文件数据集DF中的各个数据DF1,DF2,DF3,DF4,……DFn以”/”连接组成新的接口地址数据集DF2{D11D21DF1,D11D21DF2,……,D11D21DFn,D12D21DF1,D12D21DF2,……,D12D21DFn,……,D1nD21DF1,D1nD21DF2,……,D1nD21DFn,D11D22DF1,D11D22DF2,……,D11D22DFn,D12D22DF1,D12D22DF2,……,D12D22DFn,……,D1nD22DF1,D1nD22DF2,……,D1nD22DFn,……,D1nD2nDFn};将一级目录数据集DF1中的各个数据D11,D12,D13,D14,……D1n与二级目录数据集DF2中的各个数据D21,D22,D23,D24,……D2n再与j级目录数据集DFj中的各个数据Dj1,Dj2,Dj3,Dj4,……Djn最后与文件数据集DF中的各个数据DF1,DF2,DF3,DF4,……DFn以”/”连接组成新的接口地址数据集DFj{D11D21D31……Dj1DF1,D11D21D31……Dj1DF2,……, D11D21D31……Dj1DF1,D11D21D31……Dj1DFn}。在计算获得所有接口地址数据集后,算法F5会将接口数据集DF1,DF2,DF3……DFj合并成新的接口数据集即最终接口数据集DFf{DFf1,DFf2,DFf3,DFf4,……DFfn}。
S150、对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集。
在本实施例中,目标接口参数集是指对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理形成的结果。
具体地,针对某HOST Hn收集的请求参数数据集Hnq{q1,q2,q3,q4……,qn}、响应参数数据集Hnp{p1,p2,p3,p4……,pn}、认证数据集Hnc{C1,C2,C3,C4,……Cn}、接口参数数据集P{P1,P2,P3,P4,……Pn},将Hnq、Hnp、P合并成新的接口参数数据集PF{PF1,PF2,PF3,……PFn},存在算法F6,对接口参数数据集PF进行处理;
算法F6具体实现如下,针对接口参数数据集PF Hnc{C1,C2,C3,C4,……Cn}与认证数据集Hnc{C1,C2,C3,C4,……Cn},算法F6会判断接口参数数据集PF中是否与认证数据集Hnc存在交集,若PF∩Hnc≠,则将接口参数数据集PF与认证数据集Hnc的交集中的数据从数据集PF中删除。接口参数数据集PF经算法F6进行计算后得到新的接口参数数据集即目标接口参数集Pf{Pf1,Pf2,Pf3,……Pfn}。
S160、根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集。
在本实施例中,存活URL数据集是指将Hn与最终接口数据集中的每个数据通过”/”进行拼接得到URL数据,将URL数据组成的数据集。
具体地,针对最终接口数据集DFf{DFf1,DFf2,DFf3,DFf4,……DFfn},将Hn与目标接口参数集Pf{Pf1,Pf2,Pf3,……Pfn}中的每个数据通过”/”进行拼接得到URL数据DU1,DU2,DU3,DU4,……,DUn,将URL数据DU1,DU2,DU3,DU4,……,DUn组成URL数据集DU{DU1,DU2,DU3,DU4,……,DUn}。存在算法F7,对URL数据集DU中的URL数据进行处理;
算法F7具体实现如下,针对URL数据集DU{DU1,DU2,DU3,DU4,……,DUn},算法P7会通过HTTP请求方式中的HEAD请求方式对DUn进行HTTP请求,即计算P7(DUn),若P7(DUn)=1,证明以HEAD请求方式请求DUn后获得的对应应答响应数据包响应行中状态码不为404。将所有P7(DUn)=1时对应的DUn整合成存活URL数据集UC{UC1,UC2,UC3,……,UCn}。
S170、利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求和HTTPPOST请求,以得到接口正确权限校验特征,以得到共有特征数据集。
在本实施例中,共有特征数据集是指接口不存在未授权访问漏洞即接口正确权限校验特征的共有特征构成的集合。
在一实施例中,上述的步骤S170可包括步骤S171~ S179。
S171、通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
S172、当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;
S173、收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;
S174、判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;
S175、若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的POST请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
S176、若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终GET请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;
S177、根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;
S178、合并所述第四数据集以及所述第三数据集,以得到第五数据集;
S179、提取所述第五数据集的共有特征,以得到共有特征数据集。
具体地,针对存活URL数据集UC{UC1,UC2,UC3,……,UCn},存在算法F8,对存活URL数据集UC{UC1,UC2,UC3,……,UCn}进行处理以获得HTTP GET请求方式请求接口时接口不存在未授权访问漏洞即接口正确权限校验特征;
算法F8具体实现如下,针对存活URL数据集UC{UC1,UC2,UC3,……,UCn},算法F8首先会通过HTTP请求方式中的GET请求方式并使用目标接口参数集Pf{Pf1,Pf2,Pf3,……Pfn}中的所有接口参数数据Pf1,Pf2,Pf3,……Pfn对每一个存活URL数据集UC中的数据UC1,UC2,UC3,……,UCn进行HTTP请求,待所有HTTP请求完成后,算法F8会收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为数据集RGTshort1{RGPshort11,RGPshort12,RGPshort13,……,RGPshort1n},之后算法F8会收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至接口参数数据集后去重形成新的接口参数数据集Pf1{Pf11,Pf12,Pf13,……Pf1n},若接口参数数据集Pf1长度大于接口参数数据集Pf长度即len(Pf1)>len(Pf),再次通过HTTP请求方式中的GET请求方式并使用接口参数数据集Pf1中的所有接口参数数据Pf11,Pf12,Pf13,……Pf1n对每一个存活URL数据集UC中的数据UC1,UC2,UC3,……,UCn进行HTTP请求并重复上述收集数据过程得到数据集RGTshort2{RGPshort21,RGPshort22,RGPshort23,……,RGPshort2n}、数据集Pf2{Pf21,Pf22,Pf23,……Pf2n},再次判断数据集Pf2长度是否大于数据集Pf1长度,若len(Pf2)仍大于len(Pf1),则使用接口参数数据集Pf2继续重复上述请求过程以及收集数据过程,循环n次后,若len(Pfn)=len(Pfn-1),则停止请求过程并收集最后一次进行GET请求后响应数据包中状态码不为200的对应的请求URL UCt1,UCt2,UCt3,……,UCtn,获得最终GET请求方式下接口参数数据集Pfn{Pfn1,Pfn2,Pfn3,……Pfnn},数据RGTshort1,RGTshort2,RGTshort3,……,RGTshortn以及数据UCt1,UCt2,UCt3,……,UCtn,将数据Pfn1,Pfn2,Pfn3,……Pfnn重新整合为GET参数数据集PGF{PFG1,PGF2,PGF3,PGF4,……,PGFn},数据RGTshort1,RGTshort2,RGTshort3,……,RGTshortn整合成数据集RGTshort{RGTshort1,RGTshort2,RGTshort3,……,RGTshortn},数据UCt1,UCt2,UCt3,……,UCtn整合成UCt{UCt1,UCt2,UCt3,……,UCtn}。
针对数据集UCt{UCt1,UCt2,UCt3,……,UCtn},存在算法F9,对数据集UCt{UCt1,UCt2,UCt3,……,UCtn}进行处理以获得HTTP POST请求方式请求接口时接口不存在未授权访问漏洞即接口正确权限校验特征;
算法F9具体实现如下,针对数据集UCt{UCt1,UCt2,UCt3,……,UCtn},算法F9,算法F9首先会通过HTTP请求方式中的POST请求方式并使用接口参数数据集Pf{Pf1,Pf2,Pf3,……Pfn}中的所有接口参数数据Pf1,Pf2,Pf3,……Pfn对数据集UCt中每一个数据UCt1,UCt2,UCt3,……,UCtn进行HTTP请求,待所有HTTP请求完成后,算法F9会收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为数据集RPTshort1{RPPshort11,RPPshort12,RPPshort13,……,RPPshort1n},之后算法F9会收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至接口参数数据集后去重形成新的接口参数数据集Pf1{Pf11,Pf12,Pf13,……Pf1n},若接口参数数据集Pf1长度大于接口参数数据集Pf长度即len(Pf1)>len(Pf),再次通过HTTP请求方式中的POST请求方式并使用接口参数数据集Pf1中的所有接口参数数据Pf11,Pf12,Pf13,……Pf1n对数据集UCt中的每一个数据UC1,UC2,UC3,……,UCn进行HTTP请求并重复上述收集数据过程得到数据集RPTshort2{RPPshort21,RPPshort22,RPPshort23,……,RPPshort2n}、数据集Pf2{Pf21,Pf22,Pf23,……Pf2n},再次判断数据集Pf2长度是否大于数据集Pf1长度,若len(Pf2)仍大于len(Pf1),则使用接口参数数据集Pf2继续重复上述请求过程以及收集数据过程,循环n次后,若len(Pfn)=len(Pfn-1),则停止请求过程,获得最终POST请求方式下接口参数数据集Pfn{Pfn1,Pfn2,Pfn3,……Pfnn},数据RPTshort1,RPTshort2,RPTshort3,……,RPTshortn,将数据Pfn1,Pfn2,Pfn3,……Pfnn重新整合为POST参数数据集PPF{PPG1,PPF2,PPF3,PPF4,……,PPFn},数据RPTshort1,RPTshort2,RPTshort3,……,RPTshortn整合成数据集RPTshort{RPTshort1,RPTshort2,RPTshort3,……,RPTshort};
针对数据集RPTshort{RPTshort1,RPTshort2,RPTshort3,……,RPTshort}与数据集 RGTshort{RGTshort1,RGTshort2,RGTshort3,……,RGTshortn,将RPTshort与RGTshort合并成新的数据集RFTshort{RFTshort1,RFTshort2,RFTshort3,RFTshort4,……,RFTshortn},存在算法F10,对数据集RFTshort中的数据提取共有特征;
算法F10具体实现如下,针对数据集RFTshort{RFTshort1,RFTshort2,RFTshort3,RFTshort4,……,RFTshortn},存在值N(默认10,可人工设定),算法F10会从数据集RFTshort中随机挑选N个数据集并判断N个数据集交集是否为,若N个数据集交集不为/>,则收集该交集DJTshort≠/>,若该N个数据集交集为空集,则继续从数据集RFTshort中随机挑选N个数据集并保证该N个数据集不完全相同于上一次进行判断时的N个数据集,继续循环该N个数据集的交集空集判断,直至N个数据集交集不为空集并收集该交集即共有特征数据集DJTshort。
S180、根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;
在一实施例中,上述的步骤S180可包括步骤S181~ S183。
S181、将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;
S182、通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;
S183、根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
在本实施例中,针对共有特征数据集DJTshort,存在算法F11,通过DJTshort判断接口是否存在未授权访问漏洞;
算法F11具体实现如下,针对DJTshort,存活URL数据集UC{UC1,UC2,UC3,……,UCn}、GET参数数据集PGF{PFG1,PGF2,PGF3,PGF4,……,PGFn}、数据集UCt{UCt1,UCt2,UCt3,……,UCtn},POST参数数据集PPF{PPG1,PPF2,PPF3,PPF4,……,PPFn},算法F11首先将数据集UCt{UCt1,UCt2,UCt3,……,UCtn}中的各个数据UCt1,UCt2,UCt3,……,UCtn从存活URL数据集UC{UC1,UC2,UC3,……,UCn}去除,去除后得到数据集UCg{UCg1,UCg2,UCg3,UCg4,……,UCgn},之后通过HTTP请求方式中的GET请求方式对数据集UCg中的各个数据使用GET参数数据集PGF{PFG1,PGF2,PGF3,PGF4,……,PGFn}中的所有数据进行请求,并收集UCg1,UCg2,UCg3,UCg4,……,UCgn对应的应答响应数据包中的响应正文内容中的参数及其参数值形成数据集PZGfin{PZG1,PZG2,PZG3,……,PZGn},若PZGn∩DJTshort=DJTshort,则证明响应参数数据集PZGn对应的请求URL UCgn不存在未授权访问漏洞,若PZGn∩DJTshort≠DJTshort,则证明响应参数数据集PZGn对应的请求URL UCgn存在未授权访问漏洞,将存在未授权访问漏洞的URL UCgn整合成数据集AGbug{AG1,AG2,AG3,……,AGn}。
之后,算法F11会通过HTTP请求方式中的POST请求方式对数据集UCt中的各个数据使用POST参数数据集PPF{PPG1,PPF2,PPF3,PPF4,……,PPFn}中的所有数据进行请求,并收集UCt1,UCt2,UCt3,……,UCtn对应的响应状态码为200的应答响应数据包中的响应正文内容中的参数及其参数值形成数据集PZPfin{PZP1,PZP2,PZP3,……,PZPn},若PZPn∩DJTshort=DJTshort,则证明响应参数数据集PZPn对应的请求URL UCtn不存在未授权访问漏洞,若PZPn∩DJTshort≠DJTshort,则证明响应参数数据集PZPn对应的请求URL UCtn存在未授权访问漏洞,将存在未授权访问漏洞的URL UCtn整合成数据集APbug{AP1,AP2,AP,……,APn},将数据集AGbug{ AG1,AG2,AG3,……,AGn}与数据集APbug{AP1,AP2,AP,……,APn}合并成新的数据集AFbug{AFbug1,AFbug2,AFbug3,……,AFbugn}。
S190、若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
若所述接口不存在未授权访问漏洞,则进入结束步骤。
在本实施例中,针对新的数据集AFbug{AFbug1,AFbug2,AFbug3,……,AFbugn},存在算法F12,用于防御接口未授权访问漏洞。
算法F12具体实现如下,通过流量管控设备实时对与某HOST Hn通信的HTTP流量进行监控,若发现某HTTP请求数据包中某HOST Hn与通信接口地址组成的URL Un存在数据集AFbug中,对该HTTP请求数据包进行拦截,收集该URL Un对应的HTTP请求数据包中的认证参数及其值,并整合为数据集TC{TC1,TC2,TC3,……,TCn},若数据集TC=或数据集TC中的所有数据中任意键对应的值为空,证明存在未授权访问漏洞的URL正在被未授权访问,将DJTshort以JSON格式并作为响应正文响应该请求数据包。
举个例子:通过外部网络与H1之间的流量采集设备采集与H1通信HTTP请求数据包中的信息数据,采集的接口信息数据包括与H1通信HTTP请求数据包中认证参数及对应的认证参数值、与H1通信HTTP请求数据包请求头中存在认证参数及对应的认证值时该请求数据包请求行中的接口地址、与H1通信的HTTP请求数据包请求正文和请求行中的参数及其对应的参数值、与H1通信的HTTP请求数据包对应的应答数据包响应正文中的参数及其值,假设收集到10个互不相同的认证参数及对应的认证参数值、50个互不相同的接口地址、100个互不相同的请求正文和请求行中的参数及其对应的参数值、100个互不相同的响应正文中的参数及其值,即采集的数据为:
认证参数数据集H1c:{ C1,C2,C3,C4,……C10};
接口数据集H1a:{A1,A2,A3,A4,……A50};
请求参数数据集H1q:{q1,q2,q3,q4……q100};
响应参数数据集H1p:{p1,p2,p3,p4……,p100};
使用算法F1通过HTTP协议对H1进行请求,并收集对应应答数据包响应正文中的Js文件地址、接口地址、接口请求参数及对应的参数值,在本实施例中,通过算法F1对H1进行计算得到Js文件地址、接口地址、接口请求参数及对应的参数值数据集W{J{ J1,J2,J3,J4,J5},A{ A1,A2,A3,A4……A10},P{ P1,P2,P3,P4,……P10}}。获得数据集W后,算法F2中会判断W中Js文件地址集中是否存在数据,Js文件地址集此时存在数据J1,J2,J3,J4,J5,算法F2从Js文件地址集中取出J1并调用算法F1进行计算,在本实施例中,J1经算法F1计算得到数据集W1{J1{},A1{ A11,A12,},P1{{P11,P12,P13,P14}},将数据集W1整合至数据集W,获得新的数据集W{J{J2,J3,J4,J5},A{ A1,A2,A3,A4,……A12},P{ P1,P2,P3,P4,……P14}}。在本实施例中,算法F2中经过五次循环后,数据集W{J{},A{ A1,A2,A3,A4,……A20},P{ P1,P2,P3,P4,……P40}}中数据集J中已无数据,获得最终数据集Wfin{J{},A{ A1,A2,A3,A4,……A20},P{ P1,P2,P3,P4,……P40}}。
数据集Wfin中的接口集A{ A1,A2,A3,A4,……A20}与收集的接口数据集H1a{ A1,A2,A3,A4,……A50}进行合并去重,获得新的接口集Hw{Hw1,Hw2,Hw3,Hw4,……Hw70}。
在本实施例中,算法F3对接口集Hw中的数据Hw1以”/”进行分割并将分割后的各个数据组成新的数据集C1{ sp1,sp2,sp3},获得数据集C1{ sp1,sp2,sp3}后,算法F3对数据集C1{sp1,sp2,sp3}进行目录文件判断后得到新的数据集CH1{D1{1:sp1},D2{2:sp2},F{“f”:sp3}}。在本实施例中,算法F3对Hw1,Hw2,Hw3,Hw4,……Hw70进行计算后获得数据集CH{ CH1{D1{1:sp1},D2{2:sp2},F{“f”:sp3}},CH2{D1{1:sp1},F{“f”:sp2}},CH3{F{“f”:sp1}},CH4{D1{1:sp1},D2{2:sp2},F{“f”:sp3}},……CH70{F{“f”:sp1}}}。
将通过算法F4判断步骤S3获得的数据集CH中数据集CH1,CH2,CH3,……CH70中各个对应数据之间的规律性。在本实施例中,F4(DCH11,DCH31)=1且F4(FCH1,Fexcept(CH1))=0,即CH1中D1的值sp1与CH3中D1的值sp1存在规律性并且CH1中F的值sp3与CH2,CH3,CH4,……,CH70中F的值不存在规律性,生成符合CH1中D1的值sp1与CH3中D1的值sp1规律性的所有数据AD11{1:D1},AD12{1:D2},AD13{1:D3},AD14{1:D4},AD11,AD12,AD13,AD14去重整合为GA1{ AD11{1:D1},AD12{1:D2},AD13{1:D3},AD14{1:D4}}。在本实施例中,CH1,CH2,CH3,……CH70经算法F4计算后获得GZ{GA1{ AD11{1:D1},AD12{1:D2},AD13{1:D3},AD14{1:D4}},GA2{AD21{2:D1},AD22{2:D2},AD23{2:D3}},GA3{AF1{“f”:F1},AF2{“f”:F2},AF3{“f”:F3},AF4{“f”:F4},AF5{“f”:F5}}},CH{CH1,CH2,CH3,CH4,……CHn0}与GZ{GA1,GA2,GA3}合并成新的数据集GF{GF1,GF2,GF3,GF4,GF5,……GF73}。
数据集GF{GF1,GF2,GF3,GF4,GF5,……GF73}经拆分去重后生成一级目录数据集DF1{D11,D12,D13,D14,……D110},二级目录数据集DF2{D21,D22,D23,D24,……D215},文件数据集DF{DF1,DF2,DF3,DF4,……DF75}。在获得目录数据集、文件数据集后,算法F5将通过”/”连接不同的目录数据集中的数据与文件数据集中的数据并将其整合为数据集DFf。在本实施例中,经算法F5计算后,获得最终接口数据集DFf{DFf1,DFf2,DFf3,DFf4,……DFf11250}。
将获得的请求参数数据集、响应参数数据集进行合并去重处理。在本实施例中,请求参数数据集H1q{ q1,q2,q3,q4……,q100}、响应参数数据集H1p{ p1,p2,p3,p4……,p100}、数据集P{ P1,P2,P3,P4,……P400}合并去重后获得接口参数数据集PF{ PF1,PF2,PF3,……PF210}。算法F6将判断接口参数数据集PF{ PF1,PF2,PF3,……PF210}与获得的认证参数数据集H1c{ C1,C2,C3,C4,……C10}是否存在非空交集,若存在,则将交集从接口参数数据集PF中删除。在本实例中PF∩H1c={PF201,PF202,PF203,……,PF210},接口参数数据集PF删除交集{PF201,PF202,PF203,……,PF210}后获得新的接口参数数据集Pf{Pf1,Pf2,Pf3,……Pf200}。
将H1与得到的最终接口数据集最终接口数据集DFf{DFf1,DFf2,DFf3,DFf4,……DFf11250}中的各个数据以”/”进行拼接得到URL数据DU1,DU2,DU3,DU4,……,DU11250,将URL数据DU1,DU2,DU3,DU4,……,DU11250组成URL数据集DU{ DU1,DU2,DU3,DU4,……,DU11250}。算法F7将对URL数据集DU{ DU1,DU2,DU3,DU4,……,DU11250}中的URL数据进行存活判断。在本实施例中,URL数据集DU{ DU1,DU2,DU3,DU4,……,DU11250}经算法F7计算后获得存活URL数据集UC{UC1,UC2,UC3,……,UC500}。
通过算法F8使用获得的目标接口参数数据集Pf{Pf1,Pf2,Pf3,……Pf200}中所有参数及其值对获得的存活URL数据集UC{UC1,UC2,UC3,……,UC500}中所有URL数据进行HTTPGET请求以获得HTTP GET请求方式请求接口时接口不存在未授权访问漏洞即接口正确权限校验特征。在本实施例中,使用接口参数数据集Pf中所有参数及其值对存活URL数据集UC中所有数据进行第一次请求后,获得数据集RPTshort1{RPPshort11,RPPshort12,RPPshort13,RPPshort14,RPPshort15},接口参数数据集Pf1{Pf11,Pf12,Pf13,……Pf1210},此时len(Pf1)>len(Pf),再次通过接口参数数据集Pf1中所有数据对存活URL数据集UC{UC1,UC2,UC3,……,UC500}中所有URL数据进行HTTP GET请求,在第五次循环后,len(Pf5)=len(Pf4)。获得最终GET参数数据集PGF{PFG1,PGF2,PGF3,PGF4,……,PGF230},数据集RGTshort{RGTshort1,RGTshort2,RGTshort3,RGTshort4,RGTshort5},最终响应状态码不为200的URL数据集UCt{UCt1,UCt2,UCt3,……,UCt200}。
获得URL数据集UCt{UCt1,UCt2,UCt3,……,UCt200}后,通过算法F9使用获得的接口参数数据集Pf{Pf1,Pf2,Pf3,……Pf200}中所有参数及其值对URL数据集UCt{UCt1,UCt2,UCt3,……,UCt200}中所有URL进行HTTP POST请求以获得HTTP POST请求方式请求接口时接口不存在未授权访问漏洞即接口正确权限校验特征。在本实施例中,使用接口参数数据集Pf中所有参数及其值对存活URL数据集UCt中所有数据进行第一次请求后,获得数据集RPTshort1{RPPshort11,RPPshort12,RPPshort13},接口参数数据集Pf1{Pf11,Pf12,Pf13,……Pf1205},此时len(Pf1)>len(Pf),再次通过接口参数数据集Pf1中所有数据对URL数据集UCt中所有URL数据进行HTTP POST请求,在第三次循环后,len(Pf3)=len(Pf2)。获得最终POST参数数据集PPF{PPG1,PPF2,PPF3,PPF4,……,PPF215},数据集RPTshort{RPTshort1,RPTshort2,RPTshort3}。
在获得数据集RGTshort和数据集RPTshort后,将数据集RGTshort和数据集RPTshort合并为数据集RFTshort{RFTshort1,RFTshort2,RFTshort3,RFTshort4,……,RFTshort8},再通过算法F10对数据集RFTshort中的数据提取共有特征。在本实施例中,算法F10从数据集RFTshort中随机挑选N=8个数据集,RFTshort1∩RFTshort2∩RFTshort3∩RFTshort4∩RFTshort5∩RFTshort6∩RFTshort7∩RFTshort8=DJTshort≠,获得接口不存在未授权访问漏洞时的共有特征数据集DJTshort。
通过算法F11使用获得的接口不存在未授权访问漏洞时的共有特征数据集DJTshort对接口是否存在未授权访问漏洞进行判断。在本实施例中,算法F11首先将数据集UCt{UCt1,UCt2,UCt3,……,UCt200}中的各个数据从存活URL数据集UC{UC1,UC2,UC3,……,UC500}去除,去除后得到数据集UCg{UCg1,UCg2,UCg3,UCg4,……,UCg300},之后通过HTTP请求方式中的GET请求方式对数据集UCg中的各个数据使用获得的GET参数数据集PGF{PFG1,PGF2,PGF3,PGF4,……,PGF230}中的所有数据进行请求,并收集UCg1,UCg2,UCg3,UCg4,……,UCg300对应的应答响应数据包中的响应正文内容中的参数及其参数值形成数据集PZGfin{PZG1,PZG2,PZG3,……,PZG300}。在本实施例中,PZG1∩DJTshort≠DJTshort,PZG11∩DJTshort≠DJTshort,PZG41∩DJTshort≠DJTshort,PZG96∩DJTshort≠DJTshort,PZG124∩DJTshort≠DJTshort,PZG166∩DJTshort≠DJTshort,PZG198∩DJTshort≠DJTshort,PZG222∩DJTshort≠DJTshort,PZG284∩DJTshort≠DJTshort,PZG294∩DJTshort≠DJTshort,故UCg1,UCg11,UCg41,UCg96,UCg124,UCg166,UCg198,UCg222,UCg284,UCg294存在未授权访问漏洞,将UCg1,UCg11,UCg41,UCg96,UCg124,UCg166,UCg198,UCg222,UCg284,UCg294整合成数据集AGbug{AG1,AG2,AG3,……,AG10}。
获得数据集AGbug{AG1,AG2,AG3,……,AG10}后,在本实施例中,算法F11会通过HTTP请求方式中的POST请求方式对数据集UCt中的各个数据使用POST参数数据集PPF{PPG1,PPF2,PPF3,PPF4,……,PPF215}中的所有数据进行请求,并收集UCt1,UCt2,UCt3,……,UCt200对应的响应状态码为200的应答响应数据包中的响应正文内容中的参数及其参数值形成数据集PZPfin{PZP1,PZP2,PZP3,……,PZP200}。在本实施例中,PZP9∩DJTshort≠DJTshort,PZP64∩DJTshort≠DJTshort,PZP87∩DJTshort≠DJTshort,PZP133∩DJTshort≠DJTshort,PZP175∩DJTshort≠DJTshort,故UCt9,UCt64,UCt87,UCt133,UCt175存在未授权访问漏洞,将UCt9,UCt64,UCt87,UCt133,UCt175整合成数据集APbug{AP1,AP2,AP,AP4,AP5},将数据集AGbug{AG1,AG2,AG3,……,AG10}与数据集APbug{AP1,AP2,AP,AP4,AP5}合并为数据集AFbug{AFbug1,AFbug2,AFbug3,……,AFbug15}。
通过算法F12进行接口未授权访问漏洞防御。在本实施例中,算法F12检测到某HTTP请求数据包中H1与通信接口以”/”连接后形成的URL在步骤S9获得数据集AFbug{AFbug1,AFbug2,AFbug3,……,AFbug15}中,对此请求数据包进行拦截,并收集到该HTTP请求数据包中的认证参数及其值数据集TC{“Cookie”:””},此时数据集TC中的Cookie键值为空,故该通信接口为未授权访问接口且正在被未授权访问,将获得的DJTshort以JSON格式并作为响应正文响应该请求数据包。
上述的接口未授权访问检测方法,通过利用已知接口数据与未知接口数据生成规律性接口数据,以请求数据包中参数数据与响应数据包中参数数据形成最终请求参数数据,通过请求参数数据对接口数据集进行请求获得接口正确权限校验特征,最后请求接口响应数据包中是否存在接口正确权限校验特征判断接口是否存在未授权访问漏洞,再以接口正确权限校验特征对未授权访问漏洞进行防御,从而精准实现接口未授权访问漏洞检测与防御,有效识别与防御多变的接口未授权访问漏洞攻击行为。
图3是本发明实施例提供的一种接口未授权访问检测装置300的示意性框图。如图3所示,对应于以上接口未授权访问检测方法,本发明还提供一种接口未授权访问检测装置300。该接口未授权访问检测装置300包括用于执行上述接口未授权访问检测方法的单元,该装置可以被配置于服务器中。具体地,请参阅图3,该接口未授权访问检测装置300包括信息获取单元301、分层单元302、规律确定单元303、组合单元304、参数处理单元305、接口探测单元306、特征确定单元307、判断单元308以及防御单元309。
信息获取单元301,用于获取已知接口信息和未知接口信息;分层单元302,用于对所述已知接口信息进行分层,以得到分层数据集;规律确定单元303,用于确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;组合单元304,用于对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;参数处理单元305,用于对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;接口探测单元306,用于根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;特征确定单元307,用于利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求以及HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集;判断单元308,用于根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;防御单元309,用于若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
在一实施例中,所述分层单元302包括接口去重子单元以及分割子单元。
接口去重子单元,用于根据所述已知接口信息和未知接口信息进行合并去重,以得到新接口集;分割子单元,用于对所述新接口集内的数据进行分割,以得到分层数据集。
在一实施例中,所述规律确定单元303,用于对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
在一实施例中,所述组合单元304包括拆分子单元以及连接子单元。
拆分子单元,用于将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;连接子单元,用于连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
在一实施例中,所述特征确定单元307包括第一请求子单元、第一整理子单元、收集子单元、长度判断子单元、更新子单元、第二整合子单元、第四数据集确定子单元、合并子单元以及提取子单元。
第一请求子单元,用于通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;第一整理子单元,用于当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;收集子单元,用于收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;长度判断子单元,用于判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;更新子单元,用于若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;第二整合子单元,用于若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终POST请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;第四数据集确定子单元,用于根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;合并子单元,用于合并所述第四数据集以及所述第三数据集,以得到第五数据集;提取子单元,用于提取所述第五数据集的共有特征,以得到共有特征数据集。
在一实施例中,所述判断单元308包括去除子单元、数据收集单元以及漏洞确定单元。
去除子单元,用于将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;数据收集单元,用于通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;漏洞确定单元,用于根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述接口未授权访问检测装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述接口未授权访问检测装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
请参阅图4,图4是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图4,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种接口未授权访问检测方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种接口未授权访问检测方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取已知接口信息和未知接口信息;对所述已知接口信息进行分层,以得到分层数据集;确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求,以得到接口正确权限校验特征,以得到共有特征数据集;根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
其中,所述已知接口信息包括:认证数据集、已知接口数据集、请求参数数据集、响应参数数据集;所述未知接口信息包括Js文件地址、接口地址、接口请求参数及对应的参数值数据集。
在一实施例中,处理器502在实现所述对所述已知接口信息进行分层,以得到分层数据集步骤时,具体实现如下步骤:
根据所述已知接口信息和未知接口信息进行合并去重,以得到新接口集;对所述新接口集内的数据进行分割,以得到分层数据集。
在一实施例中,处理器502在实现所述确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集步骤时,具体实现如下步骤:
对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
在一实施例中,处理器502在实现所述对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集步骤时,具体实现如下步骤:
将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
在一实施例中,处理器502在实现所述利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求以及HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集步骤时,具体实现如下步骤:
通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终GET请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;合并所述第四数据集以及所述第三数据集,以得到第五数据集;提取所述第五数据集的共有特征,以得到共有特征数据集。
在一实施例中,处理器502在实现所述根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞步骤时,具体实现如下步骤:
将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集P中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
应当理解,在本申请实施例中,处理器502可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取已知接口信息和未知接口信息;对所述已知接口信息进行分层,以得到分层数据集;确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求以及HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集;根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
其中,所述已知接口信息包括:认证数据集、已知接口数据集、请求参数数据集、响应参数数据集;所述未知接口信息包括Js文件地址、接口地址、接口请求参数及对应的参数值数据集。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对所述已知接口信息进行分层,以得到分层数据集步骤时,具体实现如下步骤:
根据所述已知接口信息和未知接口信息进行合并去重,以得到新接口集;对所述新接口集内的数据进行分割,以得到分层数据集。
在一实施例中,所述处理器在执行所述计算机程序而实现所述确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集步骤时,具体实现如下步骤:
对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集步骤时,具体实现如下步骤:
将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
在一实施例中,所述处理器在执行所述计算机程序而实现所述利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求以及HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集步骤时,具体实现如下步骤:
通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终GET请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;合并所述第四数据集以及所述第三数据集,以得到第五数据集;提取所述第五数据集的共有特征,以得到共有特征数据集。。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞步骤时,具体实现如下步骤:
将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集P中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.接口未授权访问检测方法,其特征在于,包括:
获取已知接口信息和未知接口信息;
对所述已知接口信息进行分层,以得到分层数据集;
确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;
对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;
对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;
根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;
利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求和HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集;
根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;
若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
2.根据权利要求1所述的接口未授权访问检测方法,其特征在于,所述已知接口信息包括:认证数据集、已知接口数据集、请求参数数据集、响应参数数据集;所述未知接口信息包括Js文件地址、接口地址、接口请求参数及对应的参数值数据集。
3.根据权利要求1所述的接口未授权访问检测方法,其特征在于,所述对所述已知接口信息进行分层,以得到分层数据集,包括:
根据所述已知接口信息和未知接口信息进行合并去重,以得到新接口集;
对所述新接口集内的数据进行分割,以得到分层数据集。
4.根据权利要求1所述的接口未授权访问检测方法,其特征在于,所述确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集,包括:
对所述分层数据集中的任一个数据集中的各个数据与所述分层数据集中其他数据集中的对应数据进行规律性判断,以得到第一数据集。
5.根据权利要求4所述的接口未授权访问检测方法,其特征在于,所述对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集,包括:
将所述第一数据集进行拆分并去重,以生成若干级目录数据集以及文件数据集;
连接不同级目录数据集中的数据与文件数据集中的数据,并将所连接的数据整合为数据集,以得到最终接口数据集。
6.根据权利要求1所述的接口未授权访问检测方法,其特征在于,所述利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求和HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集,包括:
通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
当所有HTTP请求完成后,收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,并将其整理为第三数据集;
收集所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的响应正文长度大于最小响应正文长度中的响应参数及其响应参数对应的值,并将其添加至目标接口参数集后,去重形成新接口参数数据集;
判断所述新接口参数数据集的长度是否大于目标接口参数集的长度;
若所述新接口参数数据集的长度大于目标接口参数集的长度,则更新所述目标接口参数集为新接口参数数据集,并执行所述通过HTTP请求方式中的GET请求方式并使用所述目标接口参数集中的所有接口参数数据对所述存活URL数据集中每一个数据进行HTTP请求;
若所述新接口参数数据集的长度不大于目标接口参数集的长度,则整合最终GET请求方式下所有新接口参数数据集以及所有第三数据集、最终响应状态码不为200的URL数据集;
根据所述URL数据集通过HTTP请求方式中的POST请求方式确定对应的所有HTTP请求数据包对应的响应状态码为200的应答响应数据包中的最小长度响应正文内容中的参数及其参数值,以得到第四数据集;
合并所述第四数据集以及所述第三数据集,以得到第五数据集;
提取所述第五数据集的共有特征,以得到共有特征数据集。
7.根据权利要求6所述的接口未授权访问检测方法,其特征在于,所述根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞,包括:
将URL数据集中的各个数据从存活URL数据集去除,以得到第六数据集;
通过HTTP请求方式中的GET请求方式对第六数据集中的各个数据使用GET参数数据集中的所有数据进行请求,并收集对应的应答响应数据包中的响应正文内容中的参数及其参数值形成第六数据集;
根据所述第六数据集通过HTTP请求方式中的POST请求方式确定接口是否存在未授权访问漏洞。
8.接口未授权访问检测装置,其特征在于,包括:
信息获取单元,用于获取已知接口信息和未知接口信息;
分层单元,用于对所述已知接口信息进行分层,以得到分层数据集;
规律确定单元,用于确定所述分层数据集中各个对应数据之间的规律性,以得到第一数据集;
组合单元,用于对所述第一数据集进行拆分、去重和整合,以得到最终接口数据集;
参数处理单元,用于对所述已知接口信息和未知接口信息中的请求参数数据集、响应参数数据集进行合并和去重处理,以得到目标接口参数集;
接口探测单元,用于根据所述最终接口数据集以及目标接口参数集确定存活接口,以得到存活URL数据集;
特征确定单元,用于利用所述目标接口参数集对所述存活URL数据集进行HTTP GET请求和HTTP POST请求,以得到接口正确权限校验特征,以得到共有特征数据集;
判断单元,用于根据所述共有特征数据集判断所述接口是否存在未授权访问漏洞;
防御单元,用于若所述接口存在未授权访问漏洞,则进行接口未授权访问漏洞防御。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310711628.1A CN116432190B (zh) | 2023-06-15 | 2023-06-15 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310711628.1A CN116432190B (zh) | 2023-06-15 | 2023-06-15 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116432190A CN116432190A (zh) | 2023-07-14 |
CN116432190B true CN116432190B (zh) | 2023-09-08 |
Family
ID=87094768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310711628.1A Active CN116432190B (zh) | 2023-06-15 | 2023-06-15 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432190B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688540B (zh) * | 2024-02-01 | 2024-04-19 | 杭州美创科技股份有限公司 | 接口敏感数据泄露检测防御方法、装置及计算机设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105337985A (zh) * | 2015-11-19 | 2016-02-17 | 北京师范大学 | 一种攻击检测方法及系统 |
CN107918731A (zh) * | 2016-10-11 | 2018-04-17 | 百度在线网络技术(北京)有限公司 | 用于控制对开放接口进行访问的权限的方法和装置 |
WO2020006909A1 (zh) * | 2018-07-05 | 2020-01-09 | 平安科技(深圳)有限公司 | 一种url去重方法及装置 |
CN110704566A (zh) * | 2019-09-30 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 基于地理位置的数据采集方法、装置、及计算机设备 |
CN113382011A (zh) * | 2021-06-18 | 2021-09-10 | 金陵科技学院 | 一种api接口防止重放攻击的方法 |
CN113505068A (zh) * | 2021-07-09 | 2021-10-15 | 杭州遥望网络科技有限公司 | 一种http接口自动化测试方法、装置、设备及存储介质 |
CN113961940A (zh) * | 2021-12-21 | 2022-01-21 | 杭州海康威视数字技术股份有限公司 | 基于权限动态更新机制的越权检测方法及装置 |
CN114826946A (zh) * | 2022-06-29 | 2022-07-29 | 深圳红途科技有限公司 | 未授权访问接口的检测方法、装置、设备及存储介质 |
CN115378655A (zh) * | 2022-07-26 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 漏洞检测方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212305B2 (en) * | 2018-04-27 | 2021-12-28 | Check Point Web Applications And Api Protection Ltd. | Web application security methods and systems |
US11190514B2 (en) * | 2019-06-17 | 2021-11-30 | Microsoft Technology Licensing, Llc | Client-server security enhancement using information accessed from access tokens |
DE102021213115A1 (de) * | 2021-11-22 | 2023-05-25 | Robert Bosch Gesellschaft mit beschränkter Haftung | Schutz von anwendungsprogrammierschnittstellen |
-
2023
- 2023-06-15 CN CN202310711628.1A patent/CN116432190B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105337985A (zh) * | 2015-11-19 | 2016-02-17 | 北京师范大学 | 一种攻击检测方法及系统 |
CN107918731A (zh) * | 2016-10-11 | 2018-04-17 | 百度在线网络技术(北京)有限公司 | 用于控制对开放接口进行访问的权限的方法和装置 |
WO2020006909A1 (zh) * | 2018-07-05 | 2020-01-09 | 平安科技(深圳)有限公司 | 一种url去重方法及装置 |
CN110704566A (zh) * | 2019-09-30 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 基于地理位置的数据采集方法、装置、及计算机设备 |
CN113382011A (zh) * | 2021-06-18 | 2021-09-10 | 金陵科技学院 | 一种api接口防止重放攻击的方法 |
CN113505068A (zh) * | 2021-07-09 | 2021-10-15 | 杭州遥望网络科技有限公司 | 一种http接口自动化测试方法、装置、设备及存储介质 |
CN113961940A (zh) * | 2021-12-21 | 2022-01-21 | 杭州海康威视数字技术股份有限公司 | 基于权限动态更新机制的越权检测方法及装置 |
CN114826946A (zh) * | 2022-06-29 | 2022-07-29 | 深圳红途科技有限公司 | 未授权访问接口的检测方法、装置、设备及存储介质 |
CN115378655A (zh) * | 2022-07-26 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 漏洞检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
移动应用广告生态系统安全分析关键技术研究;董枫;《中国博士学位论文全文数据库 信息科技辑》(第9期);第I138-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116432190A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107104978B (zh) | 一种基于深度学习的网络风险预警方法 | |
CN111355697B (zh) | 僵尸网络域名家族的检测方法、装置、设备及存储介质 | |
CN107968791B (zh) | 一种攻击报文的检测方法及装置 | |
CN108768883B (zh) | 一种网络流量识别方法及装置 | |
US8923152B2 (en) | Random data stream sampling | |
CN116432190B (zh) | 接口未授权访问检测方法、装置、计算机设备及存储介质 | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
CN109831487A (zh) | 分片文件验证方法及终端设备 | |
CN109842588B (zh) | 网络数据检测方法及相关设备 | |
CN110808994B (zh) | 暴力破解操作的检测方法、装置及服务器 | |
CN107634964B (zh) | 一种针对waf的测试方法及装置 | |
Naik et al. | A ransomware detection method using fuzzy hashing for mitigating the risk of occlusion of information systems | |
Naik et al. | Augmented YARA rules fused with fuzzy hashing in ransomware triaging | |
CN113946546B (zh) | 异常检测方法、计算机存储介质及程序产品 | |
CN105100023B (zh) | 数据包特征提取方法及装置 | |
CN105337739A (zh) | 安全登录方法、装置、服务器及终端 | |
JP5732372B2 (ja) | ソフトウェア検知ルール生成装置、ソフトウェア検知ルール生成方法およびソフトウェア検知ルール生成プログラム | |
CN112583827A (zh) | 一种数据泄露检测方法及装置 | |
CN109361674B (zh) | 旁路接入的流式数据检测方法、装置以及电子设备 | |
CN111552842A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN115348189A (zh) | 基于sav架构的报文匹配方法、装置和计算机设备 | |
CN111901324B (zh) | 一种基于序列熵流量识别的方法、装置和存储介质 | |
CN111310176B (zh) | 一种基于特征选择的入侵检测方法和装置 | |
CN114095265A (zh) | Icmp隐蔽隧道检测方法、装置及计算机设备 | |
WO2020199789A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |