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

针对短信验证码攻击的防护方法、装置、介质及程序产品与流程

2022-07-31 04:38:16 来源:中国专利 TAG:


1.本技术涉及金融科技(fintech)领域,尤其涉及一种针对短信验证码攻击的防护方法、装置、介质及程序产品。


背景技术:

2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变。在金融科技领域中经常会碰到需要验证用户身份合法性或者真实性,而短信验证码就是使用较为频繁的验证手段。
3.目前,短信验证码接口被恶意攻击方攻击,从而威胁系统安全或者用户账户安全的事件频发。而现在对于短信验证码的防护仅采用固定的防护措施,如手机号或者ip(internet protocol,网际协议)地址拦截,会被攻击方频繁多变地攻击方式所突破。
4.因此,如何防护针对短信验证码接口的频发变换的攻击方式成为了亟待解决的技术问题。


技术实现要素:

5.本技术提供一种针对短信验证码攻击的防护方法、装置、介质及程序产品,以解决如何防护针对短信验证码接口的频发变换的攻击方式的技术问题。
6.第一个方面,本技术提供一种针对短信验证码攻击的防护方法,包括:
7.实时获取短信验证码接口的访问流量,并利用流量聚类模型对访问流量进行聚类识别,以识别访问流量中利用短信验证码进行攻击的目标访问流量,目标访问流量与流量聚类模型中的攻击流量簇相对应;
8.判断第一预设时段内访问流量的流量命中率是否满足第一预设要求,流量命中率用于表征:在第一预设时段内,目标访问流量在访问流量中所占的比例;
9.若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序,目标对象的身份识别标识包含在目标访问流量中,第一防护程序用于启动短信验证之外的身份验证方式;
10.若通过访问监视程序,确定目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求,则执行第二防护程序,以限制目标对象进行短信验证;
11.若在执行了第二防护程序后,利用流量聚类模型仍能识别到目标访问流量,则执行第三防护程序,以中断目标访问流量,和/或,输出警示信息,警示信息用于提示用户存在短信验证攻击。
12.在一种可能的设计中,第一预设要求包括:流量命中率大于或等于80%。
13.在一种可能的设计中,第二预设要求,包括:
14.在第二预设时段内,目标对象重复访问短信验证码接口的次数大于或等于预设次数阈值,和/或,次数占总访问次数的比例大于或等于预设比例阈值。
15.在一种可能的设计中,总访问次数包括:从第一次获取访问流量开始到当前时刻,
目标对象重复访问短信验证码接口的第一总访问次数。
16.在一种可能的设计中,总访问次数包括:在第二预设时段内,目标对象重复访问短信验证码接口的第二总访问次数。
17.在一种可能的设计中,该方法还包括:
18.将实时获取的访问流量存储到流量聚类模型的训练数据库中;
19.根据预设训练要求以及训练数据库确定训练数据集,并根据预设编码模型,对训练数据集进行编码,以确定多个具有预设位数的字符串;
20.根据各个字符串之间的位差异,对所有字符串进行第一聚类处理,以确定一个或多个字符簇,字符簇包括多个字符串,位差异值包括:在任意两个字符串上位置相同但字符不同的差异数据位的数量,每个字符串存在预设数量个数据位;
21.根据各个字符簇之间的距离,对所有字符簇进行第二聚类处理,以确定一个或多个聚类簇,聚类簇中包括至少一个字符簇;
22.当聚类簇的数据量比例大于预设比例阈值时,确定聚类簇为攻击流量簇,数据量比例用于表征聚类簇的数据量占训练数据集的总数据量的比例。
23.在一种可能的设计中,根据各个字符串之间的位差异,对所有字符串进行第一聚类处理,以确定多个字符簇,包括:
24.循环对任意两个字符串进行按位比较,直至完成所有字符串之间的按位比较;
25.其中,当任意两个字符串之间位差异值小于或等于预设差异阈值时,确定这两个字符串归属于同一个字符簇。
26.在一种可能的设计中,根据各个字符簇之间的距离,对所有字符簇进行第二聚类处理,以确定一个或多个聚类簇包括:
27.根据预设距离模型确定各个字符簇相互之间的各个平均距离;
28.当平均距离小于或等于预设距离阈值时,确定对应的多个字符簇归属于同一个聚类簇。
29.在一种可能的设计中,攻击流量簇按照预设更新要求进行周期性更新,预设更新要求包括:调整预设比例阈值,和/或,从训练数据库中获取新的训练数据集,以重新确定聚类簇。
30.第二方面,本技术提供一种针对短信验证码攻击的防护装置,包括:
31.获取模块,用于实时获取短信验证码接口的访问流量;
32.处理模块,用于:
33.利用流量聚类模型对访问流量进行聚类识别,以识别访问流量中利用短信验证码进行攻击的目标访问流量,目标访问流量与流量聚类模型中的攻击流量簇相对应;
34.判断第一预设时段内访问流量的流量命中率是否满足第一预设要求,流量命中率用于表征:在第一预设时段内,目标访问流量在访问流量中所占的比例;
35.若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序,目标对象的身份识别标识包含在目标访问流量中,第一防护程序用于启动短信验证之外的身份验证方式;
36.若通过访问监视程序,确定目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求,则执行第二防护程序,以限制目标对象进行短信验证;
37.若在执行了第二防护程序后,利用流量聚类模型仍能识别到目标访问流量,则执行第三防护程序,以中断目标访问流量,和/或,输出警示信息,警示信息用于提示用户存在短信验证攻击。
38.第三个方面,本技术提供一种电子设备,包括:
39.存储器,用于存储程序指令;
40.处理器,用于调用并执行所述存储器中的程序指令,执行第一方面所提供的任意一种可能的针对短信验证码攻击的防护方法。
41.第四方面,本技术提供一种存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行第一方面所提供的任意一种可能的针对短信验证码攻击的防护方法。
42.第五方面,本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所提供的任意一种可能的针对短信验证码攻击的防护方法。
43.本技术提供了一种针对短信验证码攻击的防护方法、装置、介质及程序产品,通过实时获取短信验证码接口的访问流量,并利用流量聚类模型对访问流量进行聚类识别,以确定目标访问流量;根据目标访问流量判断流量命中率是否满足第一预设要求;若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序;当目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求是,执行第二防护程序,以限制目标对象进行短信验证;当利用流量聚类模型仍能识别到目标访问流量时,执行第三防护程序,以中断目标访问流量和/或输出警示信息。解决了如何防护针对短信验证码接口的频发变换的攻击方式的技术问题。达到了提高当短信验证码接口被以多种方式攻击时的防卫灵活性和有效性的技术效果。
附图说明
44.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
45.图1为本技术实施例提供的一种针对短信验证码攻击的防护方法的应用场景示意图;
46.图2为本技术提供的一种针对短信验证码攻击的防护方法的流程示意图;
47.图3为本技术实施提供的另一种针对短信验证码攻击的防护方法的流程示意图;
48.图4为本技术实施例提供的对训练数据集d进行编码的示意图;
49.图5为本技术实施例提供的一种针对短信验证码攻击的防护装置的结构示意图;
50.图6为本技术提供的一种电子设备的结构示意图。
51.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
52.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,包括但不限于对多个实施例的组合,都属于本技术保护的范围。
53.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
54.下面对本技术所涉及到的专业名词作出解释:
55.短信验证码:发送到手机验证用户当前操作的真实性与正确性的一串随机数字或字母。
56.短信验证码攻击:指短信验证码接口被恶意调用,攻击者通过某种手段频繁的调用短信验证码发送接口,给系统安全带来威胁,并对系统资源分配带来损失。
57.无监督机器学习:根据没有被标记的训练样本,学习数据的特点,解决模式识别中的问题,称之为无监督学习。
58.聚类:将物理或抽象对象的集合划分为在某个方面或维度类似的对象组成的多个类的过程。
59.层次聚类算法:通过某种相似性测度计算节点之间的相似性,并按相似度由高到低排序,逐步重新连接每个节点。
60.本技术发明人经过长期工作和实践研究发现,现有的防止短信验证码攻击的技术方案一般是针对所有访问流量,设置防止某种固定的攻击方式的策略。例如,限制重复发送的时间间隔、限制ip(internet protocol,网际协议)地址、限制手机号等等,仅针对于不变手机号和不变的ip的攻击方式才有效,一旦攻击手段升级,如访问ip动态变化或发送手机号动态变化,则起不到防止攻击的作用。随着技术的升级,自动识别图形验证码的内容已不再是难事,一旦攻击方掌握了自动识别图形验证码技术,那么图像验证码代替短信验证码的防护手段则也会立马失效。
61.此外现有的防止短信验证码攻击的技术方案,都是通过预先设定某种固定的拦截方法来防止攻击,然而攻击方在利用短信验证码接口进行攻击的过程中,其处于主动一方,可以不断的尝试各种攻击方式,预先设定的固定防止攻击的方式很容易被突破。
62.为解决上述问题,本技术的发明构思是:
63.设计一种能够动态的对防护方式做出调整的防护方法。而实现动态防护的技术障碍在于,怎样设置动态切换条件,或者说本领域技术人员无法从现有技术中得到动态切换的依据,导致无法实现动态切换。
64.本技术发明人经过仔细研究,发现可以根据实际的攻击手段及流量特点作为动态切换的依据。理由如下:正常客户合理发送验证码的流量数据和恶意攻击的方式发送验证码的流量数据存在非常明显的不同特点。
65.具体表现在,正常业务流量访问发送验证码接口,具有一定的随机性,客户只有在
需要输入验证码的时候才会获取验证码,同一个手机号码短时间内不会频繁的发送获取验证码的请求。另外不同客户发送验证码的访问ip,手机号码,手机号码所属区域,手机号码运营商,访问频次等都会有一定的随机性,短时间内不会集中于某个区域或者某一类手机号。而恶意攻击发送验证码的流量数据,往往有集中式的流量访问特点,比如以某一个固定频率发送,或者发送验证码请求的手机号具有连续性或者重复性的特点,亦或者访问ip重复等等。
66.因此,本技术通过这两种访问流量数据的不同的特点,利用聚类算法训练模型,来识别访问流量是正常流量还是恶意攻击流量。并且通过建立攻击型流量模型,对实时的访问流量进行识别,根据识别结果,实时的调整或输出拦截的策略,建立多层次的动态防护体系,以应对攻击手段的频繁变化。解决了固定单一的防护手段容易被攻击方突破的技术问题。
67.图1为本技术提供的一种针对短信验证码攻击的防护方法的应用场景示意图。如图1所示,攻击方101向短信验证码接口102发起多轮攻击,使得短信验证码接口102的访问流量出现异常,现有技术中,此时会以一个固定的防护策略来进行单层防护,而本技术,则会根据访问流量的不同特性进行攻击类型识别,从而调用多层防护程序103来进行灵活的防护,大大提高了应对短信验证码攻击的灵活性和防护能力。
68.下面具体介绍本技术提供的状态针对短信验证码攻击的防护方法。
69.图2为本技术实施例提供的一种针对短信验证码攻击的防护方法的流程示意图。如图2所示,该针对短信验证码攻击的防护方法的具体步骤,包括:
70.s201、实时获取短信验证码接口的访问流量,并利用流量聚类模型对访问流量进行聚类识别,以识别访问流量中利用短信验证码进行攻击的目标访问流量。
71.在本步骤中,目标访问流量与流量聚类模型中的攻击流量簇相对应。
72.在本实施例中,对短信验证码接口的实时的访问流量,提取该访问流量的特征,然后进行特征编码或者特征向量化处理,通过判断该访问流量与各个簇中成员流量的平均距离,如果该平均距离在某个攻击流量簇的预设距离范围内,则认为,该新获取的实时的访问流量是属于该攻击流量簇。
73.需要说明的是,预设的流量聚类模型中包含至少一个攻击流量簇,每个攻击流量簇中包含多个簇中成员流量。
74.s202、判断第一预设时段内访问流量的流量命中率是否满足第一预设要求。
75.在本步骤中,若是,则执行步骤s203;否则,返回步骤s201。
76.需要说明的是,流量命中率用于表征:在第一预设时段内,目标访问流量在访问流量中所占的比例。
77.具体的,设置时间窗口t1即第一预设时段,统计t1时间内获取的所有访问流量,若该第一预设时段内所有访问流量的流量命中率满足了预设的条件,则表示,该第一预设时段内的访问流量的相似性很大,具有流量攻击的特点,可以输出预先设定的第一层防攻击策略即第一防护程序。
78.在一种可能的设计中,第一预设要求包括:流量命中率大于或等于80%。
79.具体的,第一预设时段内所有访问流量中有大于或等于80%的访问流量都命中预设的流量聚类模型中的攻击流量簇,则该第一预设时段内的访问流量的相似性很大,具有
流量攻击的特点,执行s203。
80.s203、执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序。
81.在本步骤中,目标对象的身份识别标识包含在目标访问流量中,第一防护程序用于启动短信验证之外的身份验证方式。
82.具体的,第一防护程序是短信验证码以外的身份验证方式,包括:图形验证码防护、人脸识别、指纹识别等等。
83.在执行第一访问程序之后,开启访问监视程序,包括:
84.对各个命中相似的攻击流量簇的访问流量即目标访问流量,开始统计单个ip地址和/或单个手机号的访问次数。
85.需要说明的是,目标对象可以通过ip地址和/或手机号进行识别。
86.s204、若通过访问监视程序,确定目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求,则执行第二防护程序。
87.在本步骤中,第二防护程序用于限制目标对象进行短信验证。
88.在一种可能的设计中,第二预设要求,包括:
89.在第二预设时段内,目标对象重复访问短信验证码接口的次数大于或等于预设次数阈值,和/或,次数占总访问次数的比例大于或等于预设比例阈值。
90.在一种可能的设计中,总访问次数包括:从第一次获取访问流量开始到当前时刻,目标对象重复访问短信验证码接口的第一总访问次数。
91.在另一种可能的设计中,总访问次数包括:在第二预设时段内,目标对象重复访问短信验证码接口的第二总访问次数。
92.具体的,执行第一防护程序如图形验证码防护程序后,即添加图形验证码以后,对对命中攻击流量簇的目标访问流量开始统计单个ip地址和单个手机号的访问次数,如果特定时间段即第二预设时段内,单个ip或手机号出现重复访问超总流量的50%,则可以输出第二层防护策略即执行第二防护程序,对单个ip或手机号进行限流,和/或拉黑该ip地址,和/或中断该手机号发送访问流量。
93.s205、若在执行了第二防护程序后,利用流量聚类模型仍能识别到目标访问流量,则执行第三防护程序,以中断目标访问流量,和/或,输出警示信息。
94.在本步骤中,警示信息用于提示用户存在短信验证攻击。
95.具体的,如果开启了第二防护程序后,仍然出现攻击型流量,则可以输出第三层防护策略即第三防护程序,对命中模型簇即攻击流量簇的访问流量都执行中断处理,和/或,发出告警,以便于人工介入。
96.需要说明的是,如果s203-s205中没有继续监测到攻击流量,即目标访问流量,则证明防护有效,那么在预设时间后,即可解除第一防护程序、第二防护程序以及第三防护程序,以优化用户的交互体验。可选的,也可以逐一按一定顺序解除防护程序。比如,开启第三防护程序后,在检测到没有目标访问流量继续进行攻击行为后,可以先关闭第一防护程序,或者第三防护程序,再关闭第二防护程序。本领域技术人员可以根据实际需要对关闭顺序进行设定,本技术不作限定。
97.本技术实施例提供了一种针对短信验证码攻击的防护方法,通过实时获取短信验证码接口的访问流量,并利用流量聚类模型对访问流量进行聚类识别,以确定目标访问流
量;根据目标访问流量判断流量命中率是否满足第一预设要求;若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序;当目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求是,执行第二防护程序,以限制目标对象进行短信验证;当利用流量聚类模型仍能识别到目标访问流量时,执行第三防护程序,以中断目标访问流量和/或输出警示信息。解决了如何防护针对短信验证码接口的频发变换的攻击方式的技术问题。达到了提高当短信验证码接口被以多种方式攻击时的防卫灵活性和有效性的技术效果。
98.在本技术中,预设的流量聚类模型还可以不断进行迭代优化,以新获取的访问流量训练旧模型,得到新模型后替换掉旧模型,即在图2所示实施例的基础上,还可以对流量聚类模型进行训练优化。下面介绍流量聚类模型的优化过程。需要说明的是,预设的流量聚类模型可以采用有监督机器学习模型,如:随机森林模型,人工神经网络模型等,但是需要预先标注数据,以明确哪些是攻击流量,哪些是正常访问流量。
99.图3为本技术实施提供的另一种针对短信验证码攻击的防护方法的流程示意图。如图3所示,该针对短信验证码攻击的防护方法的具体步骤包括:
100.s301、实时获取短信验证码接口的访问流量。
101.在本实施例中,采集t时间(t时间,包括:第一历史时刻到第二历史时刻这个时间段,或者是从第一历史时刻到当前时刻的时段)内系统中短信验证码接口(即发送短信验证码的接口)的访问流量。
102.可选的,访问流量包括三个方面的数据:
103.第一部分来自网关日志,如:访问ip地址;
104.第二部分来自业务系统,如设备标识,lbs(location based services,基于位置的服务,用于表示地理位置,即经纬度信息),手机号码,访问时间,访问间隔(与上一次访问流量的时间间隔)等;
105.第三部分则需要结合外部数据源和/或资料库才能获取到,如访问ip地址归属地,手机号归属地,运营商等等。
106.在一种可能的设计中,该访问流量的属性特征包括:访问者ip,访问者设备的mac(media access control address,媒体存取控制位址)地址,访问者ip地址归属地,lbs(location based services,基于位置的服务,用于表示地理位置,即经纬度信息),手机号码,手机号归属地,运营商,访问时间,访问间隔(与上一次访问流量的时间间隔)等。
107.s302、将实时获取的访问流量存储到流量聚类模型的训练数据库中。
108.在本步骤中,训练数据库作为训练数据池,汇集了一段时间内所有的短信验证码接口的访问流量数据。
109.s303、根据预设训练要求以及训练数据库确定训练数据集,并根据预设编码模型,对训练数据集进行编码,以确定多个具有预设位数的字符串。
110.在本步骤中,根据预设格式要求,对训练数据库中的原始训练数据进行预处理,以确定训练数据集,训练数据集中包括多个训练样本,每个训练样本包括多个特征属性。
111.在本实施例中,定义为训练数据集d={d1,d2,...,di,...,dn},其中,训练数据集中的任意一个元素di={d1,d2,...,di,...,dm},每个元素代表每一次的访问流量,di代表每一次访问流量的特征属性。
112.在训练数据库中存储实时的访问流量后,还需要执行本步骤,进行预处理。因为训练数据库中的访问流量数据来自不同的系统,需要将这些访问流量数据进行统一格式化处理。
113.进一步的,每个访问流量中各个特征属性的取值的确认方式如下:
114.根据系统访问的唯一标识seqno(sequence number,序列号)将访问流量中的各项数据连接成宽表数据,即训练数据集。其中,ip地址归属地,手机号归属地,运营商这些信息需借助外部数据源或资料库补齐,并且,访问时间间隔是衍生维度,需通过计算得到。
115.具体的,根据访问者的ip地址获取ip地址归属地,然后再将归属地转换为全国行政区划代码。如:ip为183.xxx.xx.xxx,其归属地是sh市cn区,sh市cn区的全国行政区划代码为310105000000。手机号码归属地和ip地址归属地类似,查询出手机号码的归属地,然后再转化为全国行政区划代码。针对运营商找个特征属性,也可以对各个运营商设立对应的编码,如1、2和3分别代表移动、联通和电信。
116.访问时间间隔表示的是当前的访问距离上一次访问的间隔,可以通过当前访问时间与上一次的访问时间计算得出。具体的,根据访问接口的时间先后顺序对数据进行升序排序,以第一条数据为基准,第一条数据的访问时间间隔定义为0,依次计算后一条数据与前一条数据的访问时间间隔,以秒为单位。如:前一次访问流量访问时间为2021-09-10 15:01:32,当前流量的访问时间为2021-09-10 15:02:33,则访问间隔为61秒。
117.接下来,通过预设编码模型,如simhash算法,对s303预处理后的训练数据集d进行编码。需要说明的是,预设编码模型的作用是为了便于后续步骤比较不同的训练数据集d,或者训练数据集d中不同的访问流量的相似性。
118.simhash算法的输入是一个向量,输出是一个f位的签名值,通过这个签名值即可实现对比相似性的作用。在本实施例中,将每一个特征(即访问流量di,或者访问流量di的特征属性di)映射为64维空间的一个向量。这一步可以理解为,将一个特征转换为具有64位编码的数组,如{101010,

,11},其中,1代表满足某个维度的要求或分类规则,0则代表不满足,然后将这个数组映射成一个64维度的特征向量,如{1,-1,1,-1,1,-1,...,1,1}
t
,签名值为1,则映射到特征向量时也为1,签名值为0,则映射到特征向量时,对应为-1。当然,也可以有其它的映射方式,本领域技术人员可以自行选择,本技术不作限定。
119.然后,将一个访问流量中所包含的各个特征属性所对应的向量进行加权求和,加权的系数等于该特征属性的权重,得到的和向量即表征了这个访问流量。亦或者,将一个训练数据集中所包含的各个访问流量所对应的向量进行加权求和,得到的和向量即表征了这个训练数据集。
120.最后,为了得到一个64位的hash签名,需要进一步将和向量进行压缩,如果该和向量的某一维大于0,则最终hash签名的对应位为1,否则为0。这样的压缩相当于只留下了和向量所在象限的信息,而64位的签名可以表示多达2
64
个象限,因此只保存所在象限的信息也足够表征一个原始高维向量了。
121.图4为本技术实施例提供的对训练数据集d进行编码的示意图。如图4所示,将训练数据集d中的每条数据即访问流量di都看作一个向量,di中每个维度di看作访问流量的特征。针对每个维度,设置不同的权重,如访问ip地址,手机号,访问时间间隔三个维度能起到更大的作用,权重设置大一些,设备标识,运营商信息,手机号归属地等相对来说起到的作
用小,权重可以设置小一些。设权重向量为w={w1,w2,...,wi,...,wm},wi表示每个di中di维度的权重。假设编码后的数据集为p={p1,p2,...,pi,...,pn},pi表示一次访问流量的64位hash签名。
122.需要说明的是,本步骤中的具有预设位数的字符串,包括:64位hash签名。
123.s304、根据各个字符串之间的位差异,对所有字符串进行第一聚类处理,以确定一个或多个字符簇。
124.在本步骤中,字符簇包括多个字符串,位差异值包括:在任意两个字符串上位置相同但字符不同的差异数据位的数量,每个字符串存在预设数量个数据位。
125.在本实施例中,循环对任意两个字符串进行按位比较,直至完成所有字符串之间的按位比较;其中,当任意两个字符串之间位差异值小于或等于预设差异阈值时,确定这两个字符串归属于同一个字符簇。
126.具体的,将s303所得到的各个字符串,如二进制编码的64位签名,两两进行循环按位对比,当某一位上的编码,如二进制编码不一致时,这两个字符串的位差异加1,而当两个字符串之间的位差异值小于或等于3时,可以将这两个字符串对应的访问流量合并为一个字符簇。随着循环对比的不断进行,字符簇中的字符串就可能会增加,因此,每个字符簇中至少包含两个字符串,或者说每个字符簇至少对应两个访问流量。
127.循环多次对比各个访问流量对应的字符串,直至所有的字符串都进行过一次按位比对后,结束本步骤,进入到s305。
128.s305、根据各个字符簇之间的距离,对所有字符簇进行第二聚类处理,以确定一个或多个聚类簇。
129.在本步骤中,聚类簇中包括至少一个字符簇。
130.在本实施例中,根据预设距离模型确定各个字符簇相互之间的各个平均距离;当平均距离小于或等于预设距离阈值时,确定对应的多个字符簇归属于同一个聚类簇。
131.具体的,假设有两个字符簇a和b,字符簇a={a1,a2,a3,...,an},字符簇b={b1,b2,b3,...,bm},ai和bi分别表示两个字符簇中的元素,字符簇a中各元素ai与字符簇b中各元素的位差异值li={l
i1
,l
i2
,l
i3
,...,l
in
},则两个字符簇的平均距离可以用公式(1)来表示:
[0132][0133]
其中,l
avg
表示平均距离,n表示字符簇a中字符串的数量,m表示字符簇b中字符串的数量。
[0134]
可选的,当两个字符簇的平均距离小于或等于3时,将这两个字符簇合并为一个聚类簇。每两个簇之间的平均距离都计算完毕后,选择距离在3以内且距离最小的两个簇合并。按此种方式不断迭代,当剩余的字符簇不足以继续合并时结束本步骤,进入s306。
[0135]
s306、当聚类簇的数据量比例大于预设比例阈值时,确定聚类簇为攻击流量簇。
[0136]
在本步骤中,数据量比例用于表征聚类簇的数据量占训练数据集的总数据量的比例。
[0137]
需要说明的是,攻击流量簇按照预设更新要求进行周期性更新,预设更新要求包括:调整预设比例阈值,和/或,从训练数据库中获取新的训练数据集,以重新确定聚类簇。
[0138]
具体的,在本实施例中,如果最终某个聚类簇占据的访问流量超过t时间内总访问
流量的60%,该聚类簇对应的访问流量为攻击性流量的概率比较大。进一步的,计算并输出最大的聚类簇所占总访问流量的比值r,以及该聚类簇的平均距离d
avg
,与该聚类簇中点最远的距离d
max
,该聚类簇中点最近的距离d
min
。用m来标识该流量聚类模型m={r,d
avg
,d
max
,d
min
}。如果没有占比大于预设比例的聚类簇,则表示t时间内没有攻击性流量。
[0139]
s307、利用流量聚类模型对访问流量进行聚类识别,以识别访问流量中利用短信验证码进行攻击的目标访问流量。
[0140]
在本步骤中,目标访问流量与流量聚类模型中的攻击流量簇相对应。
[0141]
s308、判断第一预设时段内访问流量的流量命中率是否满足第一预设要求。
[0142]
在本步骤中,若是,则执行步骤s309;否则,返回步骤s307。
[0143]
需要说明的是,流量命中率用于表征:在第一预设时段内,目标访问流量在访问流量中所占的比例。
[0144]
s309、执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序。
[0145]
在本步骤中,目标对象的身份识别标识包含在目标访问流量中,第一防护程序用于启动短信验证之外的身份验证方式。
[0146]
s310、若通过访问监视程序,确定目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求,则执行第二防护程序。
[0147]
在本步骤中,第二防护程序用于限制目标对象进行短信验证。
[0148]
s311、若在执行了第二防护程序后,利用流量聚类模型仍能识别到目标访问流量,则执行第三防护程序,以中断目标访问流量,和/或,输出警示信息。
[0149]
在本步骤中,警示信息用于提示用户存在短信验证攻击。
[0150]
步骤s307~s311的具体实现原理及名词解释可以参考s201~s205,在此不再赘述。
[0151]
还需要说明的是,s302~s306可以设置在s307~s311之前,也可以设置在s307~s311之后,亦或者是两者同步进行,本领域技术人员可以根据实际需要进行设定,本技术不作限定。
[0152]
本技术实施例提供了一种针对短信验证码攻击的防护方法,通过获取短信验证码接口的访问流量,并利用流量聚类模型对访问流量进行聚类识别,以确定目标访问流量;根据目标访问流量判断流量命中率是否满足第一预设要求;若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序;当目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求是,执行第二防护程序,以限制目标对象进行短信验证;当利用流量聚类模型仍能识别到目标访问流量时,执行第三防护程序,以中断目标访问流量和/或输出警示信息。解决了如何防护针对短信验证码接口的频发变换的攻击方式的技术问题。达到了提高当短信验证码接口被以多种方式攻击时的防卫灵活性和有效性的技术效果。
[0153]
图5为本技术实施例提供的一种针对短信验证码攻击的防护装置的结构示意图。该针对短信验证码攻击的防护装置500可以通过软件、硬件或者两者的结合实现。
[0154]
如图5所示,该针对短信验证码攻击的防护装置500包括:
[0155]
获取模块501,用于实时获取短信验证码接口的访问流量;
[0156]
处理模块502,用于:
[0157]
利用流量聚类模型对访问流量进行聚类识别,以识别访问流量中利用短信验证码进行攻击的目标访问流量,目标访问流量与流量聚类模型中的攻击流量簇相对应;
[0158]
判断第一预设时段内访问流量的流量命中率是否满足第一预设要求,流量命中率用于表征:在第一预设时段内,目标访问流量在访问流量中所占的比例;
[0159]
若是,则执行第一防护程序,并开启对发起短信验证的目标对象的访问监视程序,目标对象的身份识别标识包含在目标访问流量中,第一防护程序用于启动短信验证之外的身份验证方式;
[0160]
若通过访问监视程序,确定目标对象在第二预设时段内重复访问短信验证码接口的次数满足第二预设要求,则执行第二防护程序,以限制目标对象进行短信验证;
[0161]
若在执行了第二防护程序后,利用流量聚类模型仍能识别到目标访问流量,则执行第三防护程序,以中断目标访问流量,和/或,输出警示信息,警示信息用于提示用户存在短信验证攻击。
[0162]
在一种可能的设计中,第一预设要求包括:流量命中率大于或等于80%。
[0163]
在一种可能的设计中,第二预设要求,包括:
[0164]
在第二预设时段内,目标对象重复访问短信验证码接口的次数大于或等于预设次数阈值,和/或,次数占总访问次数的比例大于或等于预设比例阈值。
[0165]
在一种可能的设计中,总访问次数包括:从第一次获取访问流量开始到当前时刻,目标对象重复访问短信验证码接口的第一总访问次数。
[0166]
在一种可能的设计中,总访问次数包括:在第二预设时段内,目标对象重复访问短信验证码接口的第二总访问次数。
[0167]
在一种可能的设计中,处理模块502,还用于:
[0168]
将实时获取的访问流量存储到流量聚类模型的训练数据库中;
[0169]
根据预设训练要求以及训练数据库确定训练数据集,并根据预设编码模型,对训练数据集进行编码,以确定多个具有预设位数的字符串;
[0170]
根据各个字符串之间的位差异,对所有字符串进行第一聚类处理,以确定一个或多个字符簇,字符簇包括多个字符串,位差异值包括:在任意两个字符串上位置相同但字符不同的差异数据位的数量,每个字符串存在预设数量个数据位;
[0171]
根据各个字符簇之间的距离,对所有字符簇进行第二聚类处理,以确定一个或多个聚类簇,聚类簇中包括至少一个字符簇;
[0172]
当聚类簇的数据量比例大于预设比例阈值时,确定聚类簇为攻击流量簇,数据量比例用于表征聚类簇的数据量占训练数据集的总数据量的比例。
[0173]
在一种可能的设计中,处理模块502,还用于:
[0174]
循环对任意两个字符串进行按位比较,直至完成所有字符串之间的按位比较;
[0175]
其中,当任意两个字符串之间位差异值小于或等于预设差异阈值时,确定这两个字符串归属于同一个字符簇。
[0176]
在一种可能的设计中,处理模块502,还用于:
[0177]
根据预设距离模型确定各个字符簇相互之间的各个平均距离;
[0178]
当平均距离小于或等于预设距离阈值时,确定对应的多个字符簇归属于同一个聚类簇。
[0179]
在一种可能的设计中,攻击流量簇按照预设更新要求进行周期性更新,预设更新要求包括:调整预设比例阈值,和/或,从训练数据库中获取新的训练数据集,以重新确定聚类簇。
[0180]
值得说明的是,图5所示实施例提供的装置,可以执行上述任一方法实施例中所提供的方法,其具体实现原理、技术特征、专业名词解释以及技术效果类似,在此不再赘述。
[0181]
图6为本技术实施例提供的一种电子设备的结构示意图。如图6所示,该电子设备600,可以包括:至少一个处理器601和存储器602。图6示出的是以一个处理器为例的电子设备。
[0182]
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
[0183]
存储器602可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0184]
处理器601用于执行存储器602存储的计算机执行指令,以实现以上各方法实施例所述的方法。
[0185]
其中,处理器601可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0186]
可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。当所述存储器602是独立于处理器601之外的器件时,所述电子设备600,还可以包括:
[0187]
总线603,用于连接所述处理器601以及所述存储器602。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
[0188]
可选的,在具体实现上,如果存储器602和处理器601集成在一块芯片上实现,则存储器602和处理器601可以通过内部接口完成通信。
[0189]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述各方法实施例中的方法。
[0190]
本技术实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的方法。
[0191]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由本技术的权利要求书指出。
[0192]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献