CN116094772A - 接口攻击的检测方法、装置、电子设备及存储介质 - Google Patents

接口攻击的检测方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116094772A
CN116094772A CN202211678179.7A CN202211678179A CN116094772A CN 116094772 A CN116094772 A CN 116094772A CN 202211678179 A CN202211678179 A CN 202211678179A CN 116094772 A CN116094772 A CN 116094772A
Authority
CN
China
Prior art keywords
access
user agent
information
access request
triplet
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
Application number
CN202211678179.7A
Other languages
English (en)
Inventor
秦弼时
李世勇
陈卉敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211678179.7A priority Critical patent/CN116094772A/zh
Publication of CN116094772A publication Critical patent/CN116094772A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供了一种接口攻击的检测方法、装置、电子设备及存储介质,涉及信息流、网络安全、人工智能以及机器学习等技术领域。具体实现方案为:获取接口的访问请求;基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及键信息对应的值信息;基于所述多个访问三元组,检测所述访问请求是否为攻击。本公开的技术,能够有效地提高接口攻击的检测效率。

Description

接口攻击的检测方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,具体涉及信息流、网络安全、人工智能以及机器学习等技术领域,尤其涉及一种接口攻击的检测方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,越来越多的接口暴露在互联网上,通过接口可以实现各种功能,如注册账号、发帖回帖、发送即时消息等。
合法的接口访问请求通常来自客户端,如浏览器ios或者Android的应用(Application;App)等。黑产通过滥用合法客户端,来访问接口,从而实现攻击。
发明内容
本公开提供了一种接口攻击的检测方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种接口攻击的检测方法,包括:
获取接口的访问请求;
基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;
基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及所述键信息对应的值信息;
基于所述多个访问三元组,检测所述访问请求是否为攻击。
根据本公开的另一方面,提供了一种接口攻击的检测装置,包括:
请求获取模块,用于获取接口的访问请求;
标识获取模块,用于基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;
三元组获取模块,用于基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及所述键信息对应的值信息;
检测模块,用于基于所述多个访问三元组,检测所述访问请求是否为攻击。
根据本公开的再一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。
根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。
根据本公开的技术,能够有效地提高接口攻击的检测效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的示意图;
图2是根据本公开第二实施例的示意图;
图3是根据本公开第三实施例的示意图;
图4是根据本公开第四实施例的示意图;
图5是用来实现本公开实施例的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本
领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于
手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存
在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
传统识别接口攻击的方法,通常需要借助Token/Sign机制,这一方法
需要配合客户端的软件开发工具包(Software Development Kit;SDK),并对Token/Sign产出机制进行保护。具体地,需要前端SDK和后端接口
共同接入,且必须逐个接口接入,否则接口无法被保护;而通常情况下,后端通常有几十甚至上百个的接口,要对这些接口逐一接入比较困难。因此,现有的接口攻击的检测方案,接入成本高,接口攻击的检测效率低。
图1是根据本公开第一实施例的示意图;如图1所示,本实施例提供一种接口攻击的检测方法,具体可以包括如下步骤:
S101、获取接口的访问请求;
本实施例的接口的访问请求可以为浏览器发送的访问请求,也可以为各类移动应用程序(Application;APP)发送的访问请求,或者也可以为其他任意类型的接口的访问请求。
S102、基于访问请求,从预先建立的用户代理(User Agent;UA)簇信息库中获取匹配的目标UA簇的标识;
S103、基于目标UA簇的标识和访问请求,获取多个访问三元组;
各访问三元组包括目标UA簇的标识、访问请求的头部(Header)的键(Key)信息以及键信息对应的值(Value)信息。
S104、基于多个访问三元组,检测访问请求是否为攻击。
本实施例的接口攻击的检测方法的执行主体为接口攻击的检测装置。该装置可以部署在服务器的流量入口位置处,以对所有接口的访问请求进行检测,识别属于接口攻击的流量,以进行有效地阻止,以避免攻击带来的风险。
本实施例中,各访问三元组中的UA信息为目标UA簇的标识,即指的是一类UA的信息,与单个UA相比,包含的流量更多,因此,可以避免单个UA的流量过少,接口攻击检测的准确性差。
对于当前的访问请求,其头部Header中包括有多少个Key,则对应地可以获取到多少个访问三元组。
本实施例中,预先建立的UA簇信息库中可以包括多个UA簇,每个UA簇对应一个UA簇标识,在每个UA簇中可以包括有至少两个已聚类的UA信息。
本实施例的接口攻击的检测方法,可以在不接入JavaScript(简称JS)SDK前提下,对云端接口提供保护,能够有效地降低接入成本,提高接口攻击的检测效率。而且,本实施例的接口攻击检测方法,可以适用于检测任意接口的任意攻击,接口攻击检测的动态防护性能非常强,能够及时、准确、全面、持续地进行接口攻击地检测,并识别风险,有效地提高接口攻击的检测效率,增强接口的防护能力。
图2是根据本公开第二实施例的示意图;如图2所示,本实施例提供一种接口攻击的检测方法,具体可以包括如下步骤:
S201、获取接口的访问请求;
S202、从访问请求中,获取UA信息;
具体地,在访问请求的头部Header中携带有相应的UA信息,获取即可。
S203、基于UA信息的各片段、预先建立的UA簇信息库中各UA簇中的各已聚类的UA信息的各片段以及各片段的预设权重,分别计算UA信息与各UA簇中的各已聚类的UA信息之间的编辑距离;
本实施例的UA簇信息库中包括多个UA簇,每个UA簇中可以包括至少两个已聚类的UA信息。每个UA簇对应一个UA簇标识。每个UA簇内的至少两个已聚类的UA信息之间的编辑距离小于预设距离阈值。
本实施例中,在同一个UA簇内,任意两个已聚类的UA信息之间的编辑距离在计算时,需要考虑UA信息中各片段的权重。具体地,UA中可以包括多个片段,每个片段标识不同的信息。在计算两个UA之间的编辑距离时,为每个片段配置预设权重。
假设UA可以包括有n个片段,各片段的预设权重可以分别标识为Wn,这样,两个UA之间的编辑距离可以表示为:两个UA的片段1之间的编辑距离*W1+两个UA的片段2之间的编辑距离*W2+……+两个UA的片段n之间的编辑距离*Wn。
其中,两个UA的片段之间的编辑距离,可以理解为:将两个UA的片段编辑一致,需要编辑字符的数量。
例如,UA1为:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/58.0.3029.110Safari/537.36;该UA1可以分为三个片段,第一个片段Mozilla/5.0(Windows NT 10.0;Win64;x64)表示操作系统的版本信息,第二个片段AppleWebKit/537.36(KHTML,like Gecko)表示引擎的版本信息,第三个片段Chrome/58.0.3029.110Safari/537.36表示浏览器的版本信息。
UA2为:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/62.0.3143.10Safari/537.36;同理,将该UA2可以分为三个片段,第一个片段Mozilla/5.0(Windows NT 10.0;Win64;x64)表示操作系统的版本信息,第二个片段AppleWebKit/537.36(KHTML,like Gecko)表示引擎的版本信息,第三个片段Chrome/62.0.3143.10Safari/537.36表示浏览器的版本信息。
按照上述计算方式,首先,计算UA1的三个片段分别与UA2的对应的片段之间的编辑距离;UA1的第一个片段和UA2的第一个片段完全相同,对应的编辑距离为0。UA1的第二个片段和UA2的第二个片段也完全相同,对应的编辑距离也为0。UA1的第三个片段中的“58.0.3029.110”和UA2的第三个片段中的“62.0.3143.10”不同,对应的编辑距离为7。三个片段的预设权重分别为W1、W2和W3;按照上述两个UA之间的编辑距离的计算公式,计算上述UA1和UA2之间的编辑距离可以等于0*W1+0*W2+7*W3。具体地,三个片段的预设权重W1、W2和W3,可以根据经验或者各片段的重要性等来配置。
本实施例中,还可以基于经验,配置一个预设距离阈值。若两个UA之间的编辑距离小于该预设距离阈值时,可以认为这两个UA可以聚类在一个UA簇中。例如,上述UA1和UA2之间的编辑距离小于预设距离阈值时,可以聚类在一个UA簇中。
按照上述方式,可以将采集到的所有访问请求的UA信息进行聚类处理,建立UA簇信息库。该UA簇信息库中可以包括有多个UA簇,每个UA簇对应一个UA簇标识。每个UA簇中可以包括有至少两个已聚类的UA信息。
对于当前访问请求的UA信息,可以按照上述编辑距离的计算方式,计算当前的该UA信息与各UA簇中的各已聚类的UA信息之间的编辑距离。
S204、获取UA信息与编辑距离最近的已聚类的UA信息之间的编辑距离;
具体地,基于上述计算得到的UA信息与各UA簇中的各已聚类的UA信息之间的编辑距离,可以从中获取UA信息与编辑距离最近的已聚类的UA信息之间的编辑距离。其中,UA信息与编辑距离最近的已聚类的UA信息之间的编辑距离,即为UA信息与各UA簇中的各已聚类的UA信息之间的编辑距离中的最小编辑距离。也就是说,本实施例中,将最小的编辑距离,也称为最近的编辑距离。
S205、检测该编辑距离是否小于预设距离阈值;若是,执行步骤S206;否则,该编辑距离大于或者等于预设距离阈值时,执行步骤S207;
本实施例中预设距离阈值可以根据经验来设置。
S206、获取与UA信息的编辑距离最近的已聚类的UA信息对应的UA簇的标识,作为目标UA簇的标识;执行步骤S208;
此时,经过上述步骤S202-S206,可以基于UA信息,从UA簇信息库中获取与UA信息的编辑距离最近的目标UA簇的标识。进一步地,可以将该UA信息,更新至UA簇信息库中目标UA簇中。该方式获取的目标UA簇的标识非常准确。
S207、确定访问请求中的UA信息在UA簇信息库中不存在聚类,暂时认为该访问请求为正常流量,放行即可,结束。
本实施例中,之所以要进行聚类,是由于在全局流量中,由于存在各类移动APP的访问请求,其UA明显不同于标准浏览器的UA,例如:OBUA UCBrowser/8.6.0.199Mobile,就是一种非标准浏览器的UA信息。要准确对这类为数不少的非标准UA进行建模,需要扩大数据源。通过对UA聚类,可以将相似的UA聚合在一起;同时极大的缩小了状态空间,否则由于每一个UA下流量较少,无法产出有意义的评分。本实施例中,对于不存在聚类的UA,也作为正常流量放行,以避免检测错误。但是对于不存在聚类的UA,接口攻击的检测装置需要记录下来UA信息,并定期检测这些UA中是否存在聚类,若存在,更新至UA簇信息库中。
S208、基于目标UA簇的标识和访问请求,获取多个访问三元组,各访问三元组包括目标UA簇的标识、Header Key以及对应的Header Value;执行步骤S209;
S209、检测是否存在预先计算的各访问三元组的评分;若存在,执行步骤S210;若不存在,执行步骤S214;
若不存在预先计算的各访问三元组的评分,则可以说明各访问三元组的流量较少,未达到预设数量阈值,此时对应的访问请求暂时作为正常流量,放行。本实施例中,可以假定访问请求对应的多个访问三元组中,只要存在一个访问三元组的评分不存在,即获取不到,都认为该访问请求为正常流量。
该步骤S209之前,还可以包括如下步骤:
(a)周期性地获取各访问三元组的访问特征信息;
(b)基于各访问三元组的访问特征信息,采用预先训练的可信评分模型,获取各访问三元组的评分。
例如,各访问三元组的访问特征信息,可以包括各访问三元组的流量、IP以及历史行为维度的访问特征信息。
具体地,对于各访问三元组,获取当前时刻之前的预设时间长度内的如下访问特征信息:基于该访问三元组发起的访问请求的次数、基于该访问三元组发起的正常访问请求的次数、基于该访问三元组发起的恶意攻击的次数、基于该访问三元组发起的访问请求中风险IP对应的访问请求的次数、以及基于该访问三元组发起的访问请求中对应的IP的数量、基于该访问三元组发起的访问请求中存在浏览器风险的访问请求的数量、基于该访问三元组发起的访问请求中对应的用户的数量、和基于该访问三元组发起的访问请求中风险用户的数量中的至少一个。
例如,预设时间长度内,基于该访问三元组发起的正常访问请求的次数越多,恶意攻击的次数越少,标识该访问三元组越可信。基于该访问三元组发起的访问请求中风险IP对应的访问请求的次数越多,标识该访问三元组越不可信。基于该访问三元组的访问请求中对应的IP的数量越少,标识恶意攻击的可能性越大,标识该访问三元组越不可信。基于该访问三元组发起的访问请求中存在浏览器风险的访问请求的数量越多,标识该访问三元组越不可信。基于该访问三元组发起的访问请求中对应的用户的数量越多,标识该访问三元组越可信;反之,基于该访问三元组发起的访问请求中对应的用户的数量越少,标识恶意攻击可能性越大,该访问三元组越不可信。基于该访问三元组发起的访问请求中风险用户的数量越多,标识该访问三元组越不可信。
上述访问特征信息,为访问三元组的流量、IP以及历史行为维度的部分特征信息。实际应用中,还可以获取更多、更丰富的访问特征信息,在此不再一一举例赘述。
本实施例的预设时间长度可以为1小时,2小时,或者其他时间长度。实际应用中,为了获取更加准确、更加全面、更加丰富地访问三元组的特征信息,可以同时获取当前时刻之前,多个不同预设时间长度内的上述特征信息,以更加准确地获取各访问三元组的评分。然后,将各访问三元组的访问特征信息,输入至可信评分模型中,该可信评分模型可以预测并输出对应的评分。
若可信评分模型预测的评分的分值越接近于0,表示该访问三元组越可信。而输出的分值越高,表示该访问三元组越不可信。
本实施例中,由于各访问三元组的UA簇可能聚类较多的流量,所以需要预先周期性采用可信评分模型,获取各访问三元组的评分,以提高接口攻击检测的效率。
本实施例的周期性的时长可以根据接口的访问流量的特性来设置,例如可以为每天一次,也可以为每隔几小时一次,或者其他周期时长,在此不做限定。
当然,可选地,也可以在接收到访问请求后,采用可信评分模型,在线计算各访问三元组的评分,相对于上述提前周期性的预先计算而言,会导致接口攻击检测比较耗时。
需要说明的是,在本实施例的技术方案中,由于访问三元组中的UA簇标识是聚类的UA簇信息,所以对应的访问三元组特征信息包括的特征数量可能较为丰富,内容较多。若在线实时计算各访问三元组的评分时,会比较耗时,所以本实施例中是周期性地预先计算各访问三元组的评分。其中访问三元组也需要周期性地预先统计并获取到。例如,可以周期性地统计周期内的所有访问请求,并获取到相应的所有访问三元组。并分析各访问三元组对应的访问的数量是否达到预设数量阈值。若未达到,可以不预先计算并获取对应的访问三元组的评分。
例如,对于某个访问三元组的访问请求的数量仅为1条、2条或者个位数,还不足得到该访问三元组的准确地评分,此时可以不预先计算该访问三元组的评分。等待该访问三元组对应的访问请求的数量达到预设数量阈值,再进行计算。基于上述原因,导致不存在预先计算的某些访问三元组的评分。
S210、获取预先计算的各访问三元组的评分;执行步骤S211;
S211、检测多个访问三元组中各访问三元组的评分中是否存在大于预设评分阈值的评分,若存在,执行步骤S212;若不存在,执行步骤S214;
S212、确实访问请求为攻击;执行步骤S213;
S213、拦截访问请求,结束。
S214、确定该访问请求为正常流量,放行即可,结束。
本实施例中,访问请求对应的多个访问三元组的评分中,只要有一个访问三元组的评分大于预设评分阈值,则认为该访问三元组是不可信的,对应地,可以认为该访问请求为攻击。否则,当访问请求对应的所有访问三元组的评分均小于或者等于预设评分阈值时,认为该访问请求为正常访问请求,即该访问请求为一个正常流量。
本实施例中,基于各访问三元组的评分检测访问请求是否为攻击的检测方式,非常准确、高效。
本实施例的可信评分模型,在训练的时候,采用可信的访问请求数据进行训练。例如,该可信评分模型的训练,具体可以包括如下步骤:
(1)获取多条可信访问请求;
例如,可以通过控制JS SDK向安全云端发送多条可信访问请求;并从安全云端获取多条可信访问请求;和/或
可以基于自动化测试套件,收集所有已知的安全浏览器列表,例如,可以包括全版本的Chrome、Firefox等浏览器。然后操控已知的安全浏览器列表中的浏览器向安全云端发起HTTP访问请求,这些访问请求也为可信访问请求。对应地,安全云端可以接收到多条可信访问请求;进而可以从安全云端获取到多条可信访问请求。
或者可选地,实际应用中,还可以获取多条原始访问请求;按照预设的可信访问请求筛选策略,从多条原始访问请求中筛选出多条可信访问请求。
该实现方式中的多条原始访问请求,可以为后端的服务器接收到的真实的访问流量。但是这些访问流量中有些是用户的正常的、可信的访问请求;而有些可能是恶意攻击。所以,需要按照预设的可信访问请求筛选策略,从多条原始访问请求中筛选出多条可信访问请求。
例如,预设的可信访问请求筛选策略可以基于用户的正常的历史访问请求统计的策略。例如,可以包括UA是合法浏览器的UA、Key的取值要合理、Key的顺序要合理、Value的取值要合理中的至少一个。例如,浏览器的可信访问请求的头部Header的Key中应包含内容类型Content-Type。IE浏览器的可信访问请求中不应包含允许跨域访问的标识Access-Control-Allow-Origin。对IE浏览器来说,其可信访问请求中的编码类型Accept-Encoding的取值不应包含br。
(2)基于各可信访问请求,获取对应的多个访问三元组;
对于各可信访问请求,可以先获取该可信访问请求的UA信息,然后从UA簇信息库中获取该UA信息匹配的目标UA簇标识,详细可以参考上述实施例的方式,在此不再赘述。
然后基于各可信访问请求对应的UA簇标识,获取各可信访问请求对应的多个访问三元组。对应地,每一条可信访问请求,可以获取到多个访问三元组。每一个访问三元组包括UA簇标识、Header Key以及Header Value。
(3)获取各访问三元组的访问特征信息;并配置各访问三元组的可信标签为0;即评分为0;
本实施例中,各访问三元组的访问特征信息的获取方式,参考上述实施例的记载,在此不再赘述。
本实施例中,配置各访问三元组的可信标签为0,即配置各访问三元组的评分为0。本实施例的评分规则,要求访问三元组的评分越低,即越接近于0,则标识访问三元组越可信;相反地,若访问三元组的评分越高,即越远离0,则标识访问三元组越不可信。
(4)基于各访问三元组的特征信息和可信标签,对可信评分模型进行训练。
本实施例中,选择多条可信访问请求对应的所有访问三元组的特征信息和对应的可信标签,对可信评分模型进行训练。由于访问请求为可信访问请求,对应的访问三元组也均为可信访问三元组,对应的可信标签评分都是0。可以理解为,本实施例中,对可信评分模型进行训练的训练数据均为正样本数据。通过该训练,可以使得可信评分模型学习基于访问三元组的访问特征信息,对访问三元组进行打分的能力。
训练完成后的可信评分模型,在使用时,对访问三元组的打分越低,表示访问三元组越可信,而对访问三元组的打分越高,表示访问三元组越
不可信。具体可以结合预设的评分阈值来使用。例如,若可信评分模型对访问三元组的打分小于或者等于预设的评分阈值,则可以确定该访问三元组是可信的;而若可信评分模型对访问三元组的打分大于预设的评分阈值,则可以确定该访问三元组是不可信的。
例如,训练时,将各每个访问三元组的特征信息,输入至该可信评
分模型,该可信评分模型基于输入的信息,预测一个评分。并基于可信标签的分值0和预测的评分,调整可信评分模型的参数,使得可信评分模型的预测评分与可信标签的分值趋于接近。采用多个可信访问请求的多个访
问三元组的访问特征信息和对应的可信标签,按照上述方式,对该可信评分模型进行不断地训练,可以使得模型收敛,得到该可信评分模型。
本实施例的接口攻击检测方法,能够动态地进行接口攻击的检测,并检测到访问请求为攻击时,及时拦截该访问请求。本实施例的技术方案,可以适用于对任意类型的接口的任意类型的访问请求进行检测,接口攻击
检测的动态防护性能非常强,能够及时、准确、全面、持续地检测到接口攻击,有效地提高接口攻击的检测效率,增强接口的防护能力。
本实施例的接口攻击的检测方法,在应用时,部署在接入方的后端。在检测时,所有流量都进入接入方后端,采用本实施例的接口攻击的检测方法,可以对进入的所有流量进行检测,并在流量为接口攻击时,进行拦
截。该方案,在不用接入JS SDK前提下,即可对云端接口提供保护,而且能够实现对各类接口进行安全防护,避免接口遭受风险攻击。
图3是根据本公开第三实施例的示意图;如图3所示,本实施例提供一种接口攻击的检测装置300,包括:
请求获取模块301,用于获取接口的访问请求;
标识获取模块302,用于基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;
三元组获取模块303,用于基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及所述键信息对应的值信息;
检测模块304,用于基于所述多个访问三元组,检测所述访问请求是否为攻击。
本实施例的接口攻击的检测装置300,通过采用上述模块实现接口攻击的检测的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图4是根据本公开第四实施例的示意图;如图4所示,本实施例提供一种接口攻击的检测装置400,包括上述图3所示的同名同功能模块:请求获取模块401、标识获取模块402、三元组获取模块403和检测模块404。
在本实施例中,标识获取模块402,用于:
从所述访问请求中,获取用户代理信息;
基于所述用户代理信息,从所述用户代理簇信息库中获取与所述用户代理信息的编辑距离最近的所述目标用户代理簇的标识。
在本公开的一个实施例中,标识获取模块402,用于:
基于所述用户代理信息和所述用户代理簇信息库中各所述用户代理簇中的各已聚类的用户代理信息的各片段以及各片段的预设权重,分别计算所述用户代理信息与各所述用户代理簇中的各已聚类的用户代理信息之间的编辑距离;
获取与所述用户代理信息的编辑距离最近的所述已聚类的用户代理信息对应的所述用户代理簇的标识,作为所述目标用户代理簇的标识。
如图4所示,在本公开的一个实施例中,接口攻击的检测装置400还包括:
确定模块405,用于确定所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离,小于预设距离阈值。
在本公开的一个实施例中,检测模块404,还用于:
若所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离大于或者等于所述预设距离阈值,确定所述访问请求为正常流量。
在本公开的一个实施例中,检测模块404,用于:
获取预先计算的各所述访问三元组的评分;
若所述多个访问三元组中各所述访问三元组的评分中存在大于预设评分阈值,确实所述访问请求为攻击。
在本公开的一个实施例中,检测模块404,用于:
若未获取到各所述访问三元组的评分,或者获取到的各所述访问三元组的评分,均小于所述预设评分阈值,确定所述访问请求为正常流量。
如图4所示,在本公开的一个实施例中,接口攻击的检测装置400还包括:
特征获取模块406,用于周期性地获取各所述访问三元组的访问特征信息;
评分模块407,用于基于各所述访问三元组的访问特征信息,采用预先训练的可信评分模型,获取各所述访问三元组的评分。
如图4所示,在本公开的一个实施例中,接口攻击的检测装置400还包括:
拦截模块408,用于若所述访问请求为攻击,拦截所述访问请求。
本实施例的接口攻击的检测装置400,通过采用上述模块实现接口攻击的检测的实现原理以及技术效果,与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如本公开的上述方法。例如,在一些实施例中,本公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的本公开的上述方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的上述方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种接口攻击的检测方法,包括:
获取接口的访问请求;
基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;
基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及所述键信息对应的值信息;
基于所述多个访问三元组,检测所述访问请求是否为攻击。
2.根据权利要求1所述的方法,其中,基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识,包括:
从所述访问请求中,获取用户代理信息;
基于所述用户代理信息,从所述用户代理簇信息库中获取与所述用户代理信息的编辑距离最近的所述目标用户代理簇的标识。
3.根据权利要求2所述的方法,其中,基于所述用户代理信息,从所述用户代理簇信息库中获取与所述用户代理信息的编辑距离最近的所述目标用户代理簇的标识,包括:
基于所述用户代理信息和所述用户代理簇信息库中各所述用户代理簇中的各已聚类的用户代理信息的各片段以及各片段的预设权重,分别计算所述用户代理信息与各所述用户代理簇中的各已聚类的用户代理信息之间的编辑距离;
获取与所述用户代理信息的编辑距离最近的所述已聚类的用户代理信息对应的所述用户代理簇的标识,作为所述目标用户代理簇的标识。
4.根据权利要求3所述的方法,其中,获取与所述用户代理信息的编辑距离最近的所述已聚类的用户代理信息对应的所述用户代理簇的标识,作为所述目标用户代理簇的标识之前,所述方法还包括:
确定所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离,小于预设距离阈值。
5.根据权利要求4所述的方法,其中,所述方法还包括:
若所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离大于或者等于所述预设距离阈值,确定所述访问请求为正常流量。
6.根据权利要求1所述的方法,其中,基于所述多个访问三元组,检测所述访问请求是否为攻击,包括:
获取预先计算的各所述访问三元组的评分;
若所述多个访问三元组中各所述访问三元组的评分中存在大于预设评分阈值,确实所述访问请求为攻击。
7.根据权利要求6所述的方法,其中,基于所述多个访问三元组,检测所述访问请求是否为攻击,还包括:
若未获取到各所述访问三元组的评分,或者获取到的各所述访问三元组的评分,均小于所述预设评分阈值,确定所述访问请求为正常流量。
8.根据权利要求6所述的方法,其中,获取预先计算的各所述访问三元组的评分之前,所述方法还包括:
周期性地获取各所述访问三元组的访问特征信息;
基于各所述访问三元组的访问特征信息,采用预先训练的可信评分模型,获取各所述访问三元组的评分。
9.根据权利要求1-8任一所述的方法,其中,基于所述多个访问三元组,检测所述访问请求是否为攻击之后,所述方法还包括:
若所述访问请求为攻击,拦截所述访问请求。
10.一种接口攻击的检测装置,包括:
请求获取模块,用于获取接口的访问请求;
标识获取模块,用于基于所述访问请求,从预先建立的用户代理簇信息库中获取匹配的目标用户代理簇的标识;
三元组获取模块,用于基于所述目标用户代理簇的标识和所述访问请求,获取多个访问三元组;各所述访问三元组包括目标用户代理簇的标识、所述访问请求的头部的键信息以及所述键信息对应的值信息;
检测模块,用于基于所述多个访问三元组,检测所述访问请求是否为攻击。
11.根据权利要求10所述的装置,其中,所述标识获取模块,用于:
从所述访问请求中,获取用户代理信息;
基于所述用户代理信息,从所述用户代理簇信息库中获取与所述用户代理信息的编辑距离最近的所述目标用户代理簇的标识。
12.根据权利要求11所述的装置,其中,所述标识获取模块,用于:
基于所述用户代理信息和所述用户代理簇信息库中各所述用户代理簇中的各已聚类的用户代理信息的各片段以及各片段的预设权重,分别计算所述用户代理信息与各所述用户代理簇中的各已聚类的用户代理信息之间的编辑距离;
获取与所述用户代理信息的编辑距离最近的所述已聚类的用户代理信息对应的所述用户代理簇的标识,作为所述目标用户代理簇的标识。
13.根据权利要求12所述的装置,其中,所述装置还包括:
确定模块,用于确定所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离,小于预设距离阈值。
14.根据权利要求13所述的装置,其中,所述检测模块,还用于:
若所述用户代理信息与编辑距离最近的所述已聚类的用户代理信息之间的编辑距离大于或者等于所述预设距离阈值,确定所述访问请求为正常流量。
15.根据权利要求10所述的装置,其中,所述检测模块,用于:
获取预先计算的各所述访问三元组的评分;
若所述多个访问三元组中各所述访问三元组的评分中存在大于预设评分阈值,确实所述访问请求为攻击。
16.根据权利要求15所述的装置,其中,所述检测模块,用于:
若未获取到各所述访问三元组的评分,或者获取到的各所述访问三元组的评分,均小于所述预设评分阈值,确定所述访问请求为正常流量。
17.根据权利要求15所述的装置,其中,所述装置还包括:
特征获取模块,用于周期性地获取各所述访问三元组的访问特征信息;
评分模块,用于基于各所述访问三元组的访问特征信息,采用预先训练的可信评分模型,获取各所述访问三元组的评分。
18.根据权利要求10-17任一所述的装置,其中,所述装置还包括:
拦截模块,用于若所述访问请求为攻击,拦截所述访问请求。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
CN202211678179.7A 2022-12-26 2022-12-26 接口攻击的检测方法、装置、电子设备及存储介质 Pending CN116094772A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211678179.7A CN116094772A (zh) 2022-12-26 2022-12-26 接口攻击的检测方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211678179.7A CN116094772A (zh) 2022-12-26 2022-12-26 接口攻击的检测方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116094772A true CN116094772A (zh) 2023-05-09

Family

ID=86186108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211678179.7A Pending CN116094772A (zh) 2022-12-26 2022-12-26 接口攻击的检测方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116094772A (zh)

Similar Documents

Publication Publication Date Title
EP4099170A1 (en) Method and apparatus of auditing log, electronic device, and medium
CN112242984B (zh) 检测异常网络请求的方法、电子设备和计算机程序产品
CN110610196B (zh) 脱敏方法、系统、计算机设备和计算机可读存储介质
CN111400357A (zh) 一种识别异常登录的方法和装置
CN112953938B (zh) 网络攻击防御方法、装置、电子设备及可读存储介质
WO2024098699A1 (zh) 实体对象的威胁检测方法、装置、设备及存储介质
CN110941823B (zh) 威胁情报获取方法及装置
CN111586695B (zh) 短信识别方法及相关设备
CN113328994A (zh) 一种恶意域名处理方法、装置、设备及机器可读存储介质
CN114157480A (zh) 网络攻击方案的确定方法、装置、设备和存储介质
CN114417118A (zh) 一种异常数据处理方法、装置、设备以及存储介质
CN113904943A (zh) 账号检测方法、装置、电子设备和存储介质
CN112769595A (zh) 异常检测方法、装置、电子设备及可读存储介质
CN110995687B (zh) 一种猫池设备识别方法、装置、设备及存储介质
CN113452700B (zh) 处理安全信息的方法、装置、设备以及存储介质
CN115589339B (zh) 网络攻击类型识别方法、装置、设备以及存储介质
CN113590447B (zh) 埋点处理方法和装置
CN116094772A (zh) 接口攻击的检测方法、装置、电子设备及存储介质
CN116248340A (zh) 接口攻击的检测方法、装置、电子设备及存储介质
CN115378746B (zh) 网络入侵检测规则生成方法、装置、设备以及存储介质
CN116341023B (zh) 基于区块链的业务地址验证方法、装置、设备及存储介质
US20230156034A1 (en) Real-time threat detection for encrypted communications
CN117478434B (zh) 边缘节点网络流量数据处理方法、装置、设备及介质
CN115865519B (zh) 适用于网络攻防虚拟仿真的数据处理方法及系统
CN115664726A (zh) 一种恶意beacon通信的检测方法和装置

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