一种防止APP爬虫的方法与流程

文档序号:33554237发布日期:2023-03-22 11:10阅读:39来源:国知局
一种防止APP爬虫的方法与流程
一种防止app爬虫的方法
技术领域
1.本发明涉及应用安全领域,特别涉及一种防止app爬虫的方法。


背景技术:

2.当前在app反爬虫这一方面,主要使用的是http安全链接和ssl证书锁定技术,应对hook技术下的中间人攻击显的力不从心,当前存在如图(1)所示的app爬虫技术,在hook调用签名方法后,服务端无法分辨非法请求,将被随意抓取数据。


技术实现要素:

3.本发明要解决的技术问题是克服现有技术的缺陷,提供一种防止app爬虫的方法。
4.本发明提供了如下的技术方案:
5.本发明提供一种防止app爬虫的实现方法,结合使用多种技术保证设备参数的来源可靠,并用其进行设备风险管控,包括以下步骤:
6.s1、使用ssl证书锁定技术对抓包做初步预防。反爬虫第一步是防止数据被抓包。在传统的中间人伪造证书、抓取报文的场景下,ssl证书锁定技术非常有效,发现证书错误直接断开请求来使中间人抓包失效。
7.s2、ssl证书锁定技术通常情况下很有效,但是在hook技术下,使用xposed可以绕过证书锁定认证代码,类似于切面技术,在证书核验方法中,不执行校验逻辑,而在返回时直接返回校验正确,使得ssl证书锁定技术形同虚设。为应对此种情形,此处使用检测手段去检测xposed框架的存在,阻止攻击者使用该框架做非法绕过,若存在此框架,则屏蔽app网络。xposed框架的hook原理是将自己注入到应用中,所以检测方法是,只要在应用中引用到xposed独有的类就可以判定,例如使用反射手段去反射类xposedhelper,若反射成功,则说明被hook。
8.s3、极端情况下,hook检测也有可能被绕过,s2中所述hook检测手段的问题在于,因为是安卓中的java代码做的检测,如果攻击者使用反编译等手法,理论上可以找到对应的函数名和相关参数,然后使用精细的hook代码让检测逻辑直接返回检测通过。为防御此情况,首先使用两个本地签名函数对报文进行签名,在函数中加密设备参数,用以在下一步进行风险管控。设备参数可选用deviceid和蓝牙mac地址。因本地方法中获得的参数不可被hook修改,从而严格保证了设备参数的准确性。具体签名手段使用二段签名,一个本地函数针对设备参数,使用md5算法和盐z1生成签名字符串c1,另一个本地函数针对整个报文请求参数,使用md5算法,根据请求地址uri选用不同的盐z2生成签名字符串c2,组合成c1-c2签名。c2段签名使用不同的加密盐,可以分担加密盐被爆破的风险。
9.s4、此步骤是计算设备风险值,对设备进行风险定级和管控。s3中签名的请求到达服务端网关后,首先获取请求参数中的设备参数生成签名,比对来源参数中的c1段签名,设此时风险项a1。同理比对c2段签名,设此时风险项a2。若通过签名,则比对时间戳有效期,设此时风险项a3。若时间戳验证通过则比对随机串参数,设此时风险项a4。设备根权限标志参
数设风险项a5。设备系统版本低于预设值,设风险项a6。单接口同c1段签名请求qps超过阈值q,设为风险项a7。通过网关,走完业务逻辑再次返回网关时,若响应码错误,设为风险a8。ip地址变化,设风险项a9。定位经纬度参数变化量超过阈值s,设风险项a10。对a1至a10项,分别设置权重值x1至x10,出现参数比对错误或不符阈值要求的请求,拒绝请求外,依据设备参数记录下风险信息。每次请求出现错误时,重新计算风险值,统计每个风险项出现错误的次数yn。设风险值阈值为p。通过下面式子得出是否属于风险设备。
[0010][0011]
若判定出现风险设备,则对设备响应屏蔽指令,之后在该设备上的app将不能使用任何账户进行服务访问。
[0012]
与现有技术相比,本发明的有益效果如下:
[0013]
1.用户无感知,对比通常的频繁弹出验证码进行爬虫验证的方式,用户体验更好;
[0014]
2.溯源精确,控制粒度小;攻击异常出现时,可依据设备参数追踪到设备上该app的所有行为,便于分析问题;在设备维度的屏蔽控制,不会影响同一公网ip下的其他用户,优于其他方法中异常出现时对ip的控制;
[0015]
3.安全性高;二段签名,第一段进行设备签名,第二段签名应对不同的uri使用了不同的加密盐,爆破难度大,安全性高;该方法给出的极端情形下终端检测被绕过的兜底手段,风险值计算和风险设备管控;
[0016]
4.无业务侵入性;不同于埋点检测等方法侵入业务代码导致项目维护变的困难;该方法具有业务无关性,可在项目中快速的加入,应用简便。
附图说明
[0017]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0018]
图1是本发明实施例爬虫场景示意图;
[0019]
图2是本发明的防止app爬虫方法示意图。
具体实施方式
[0020]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
[0021]
实施例1
[0022]
如图1-2,本发明提供一种防止app爬虫的方法,该方法的实现包括以下步骤:
[0023]
s1、使用ssl证书锁定技术初步防止中间人抓包。做hook检测,反射xposed中的类检测是否存在xposed框架,保证设备没有xposed环境,从而保证证书锁定没有被绕过。
[0024]
s2、终端获取当前时间戳参数,生成随机参数,获取设备root权限状态,设备系统版本参数,设备经纬度参数,使用本地方法用设备参数生成c1段签名,使用全部参数生成c2段签名,拼接c1-c2作为整个报文的签名,发送到服务端。
[0025]
s3、服务端校验签名和参数正确性,对所有出现的错误,进行风险记录,每当出现
风险错误,重新计算设备风险值,当风险值超过阈值则响应屏蔽设备指令,并拒绝该设备所有请求。
[0026]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:
1.一种防止app爬虫的方法,其特征在于,包括以下步骤:s1.使用ssl证书锁定技术进行初步中间人抓包预防;s2.做hook检测,保证xposed框架没有被使用,从而保证证书锁定技术不会被绕过;s3.使用本地方法获取设备参数,组合生成签名串c1,将设备参数、安全参数、业务参数一起进行签名生成签名串c2,拼接为c1-c2二段签名,放入请求报文中作为整个报文的签名;s4.服务端网关收到报文后,进行签名计算,对比携带的每段签名,若不正确,拒绝此次请求外,根据c1段保存错误信息,并依据风险次数、风险权值计算设备风险值,风险值到达一定阈值,则响应屏蔽设备指令,屏蔽后将拒绝该设备使用app的任何服务。

技术总结
本发明公开了一种防止APP爬虫的方法,在应对APP爬虫时,给系统提供了一种控制粒度更小,安全更高的方法。本发明的有益效果如下:用户无感知,对比通常的频繁弹出验证码进行爬虫验证的方式,用户体验更好;溯源精确,控制粒度小;攻击异常出现时,可依据设备参数追踪到设备上该APP的所有行为,便于分析问题;在设备维度的屏蔽控制,不会影响同一公网IP下的其他用户,优于其他方法中异常出现时对IP的控制;安全性高;二段签名,第一段进行设备签名,第二段签名应对不同的URI使用了不同的加密盐,爆破难度大,安全性高;该方法具有业务无关性,可在项目中快速的加入,应用简便。应用简便。应用简便。


技术研发人员:陈武林
受保护的技术使用者:天翼电子商务有限公司
技术研发日:2022.10.28
技术公布日:2023/3/21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1