1. 白十三的码路首页
  2. 安全

最佳实践 | 抵御爬虫攻击——拦截器升级

优化拦截器后的单个ip在不同分钟单位出现访问的次数明显降低,在攻击者端的表现是每个ip攻击的频率明显减少,所以最终服务器的压力得到缓解。


某客户攻击情况总结

本文根据分析过程分为3个阶段进行描述;


note∶本文有关的客户名称统一用”客户”进行描述,被攻击的域名用”域名A”进行描述。


第一阶段∶域名A被攻击反馈及分析、策略制定及上线与拦截

此阶段描述∶在”2020-08-1410∶24″ATD工程师收到客户的反馈,域名A可能被攻击,随即ATD工程师查看该域名的请求情况,通过观察图1-1中A处请求量异常增长并批量查看日志,发现攻击者在攻击一个接口,但这种攻击并未被识别。ATD系统工程师分析未识别原因是usermaxpv的设置在此攻击场景下存在问题,随后修改相应的参数,并分析攻击行为,在图1-1的B处(2020-08-1411∶10)添加了一条策略。并在图1-1中C处(2020-08-1411∶40)开启了拦截,但客户反馈nginx压力大,ATD系统工程师切换识别威胁的拦截为测试模式,并且清理拦截器拦截信息(2020-08-1412∶10)。最后,在”2020-08-1412∶15″客户有关人员反馈当前服务器抗压能力比较强,所以暂停了拦截操作。


策略上线后,选择2020-08-141300∶00-2020-08-1422∶00∶00这段时间作为分析,通过统计出识别出的唯一IP数量和请求的唯一IP数量发现(如图1-2和1-3),识别出的IP数占请求的IP数的比值在90%以上。


最佳实践 | 抵御爬虫攻击——拦截器升级
图1-1-第一阶段域名A的请求数
最佳实践 | 抵御爬虫攻击——拦截器升级
图1-2-策略上线后的识别的IP数(单位∶小时)

最佳实践 | 抵御爬虫攻击——拦截器升级
图1-3-策略上线后的请求的IP数(单位∶小时)

第二阶段∶重新开启拦截器并优化拦截器性能
此阶段描述

在图2-1中E处(2020-08-1520∶00,ATD工程师正式开启拦截器,,可以发现,此域名的请求数有了大幅下降。但发现开启拦截器后拦截的有些IP仍能成功访问此域名被攻击的接口,所以发现需要对拦截器进行优化。对拦截器优化之后,在图2-1中F处(2020-08-1817∶06)将优化的拦截器进行了上线,可以观察到此域名的请求数有了明显的下降了。
拦截器正式开启后,选择2020-08-16 06∶00–2020-08-1615∶00∶00这段时间作为分析,通过统计出识别出的唯一IP数量和请求的唯一IP数量发现(如图2-2和2-3),识别出的IP数占请求的IP数的比值在84%以上。

最佳实践 | 抵御爬虫攻击——拦截器升级
图2-1-第二阶段域名A的请求数∶

最佳实践 | 抵御爬虫攻击——拦截器升级
图2-2-拦截器正式开启后的识别的IP数(单位∶小时)
最佳实践 | 抵御爬虫攻击——拦截器升级
图2-3-拦截器正式开启后请求的IP数(单位∶小时)

第三阶段∶优化后的拦截器的域名A请求与识别情况
此阶段描述

从图3-1可以观察到,此域名每分钟的请求数大概维持在一个恒定的较低水平,相比一开始的域名被攻击时的请求数来说,服务器的压力已大大减少。优化后的拦截器上线后,选择2020-08-25 06∶00∶00-2020-08-2515∶00∶00这段时间作为分析,通过统计出识别出的唯一IP数量和请求的唯一IP数量发现,识别出的IP数占请求的IP数的比值在95%以上。

最佳实践 | 抵御爬虫攻击——拦截器升级
图3-1-第三阶段域名A的请求数∶
最佳实践 | 抵御爬虫攻击——拦截器升级
图3-2-拦截器正式开启后的识别的IP数(单位∶小时)
最佳实践 | 抵御爬虫攻击——拦截器升级
图3-3-拦截器正式开启后请求的IP数(单位∶小时)

总结

最佳实践 | 抵御爬虫攻击——拦截器升级

图4-域名A每小时被访问的IP数
最佳实践 | 抵御爬虫攻击——拦截器升级
图5-域名A每小时被识别出的IP数
最佳实践 | 抵御爬虫攻击——拦截器升级

图6-域名A每分钟时被访问的IP数
最佳实践 | 抵御爬虫攻击——拦截器升级
图7-域名A每分钟被识别出的IP数


最佳实践 | 抵御爬虫攻击——拦截器升级
图8-域名A识别出的威胁的唯一IP数

从图3-1中可以看出域名A在拦截器优化后的请求数有了明显的下降,但从图4中可以看出域名A每小时被访问的IP数基本相同,说明攻击者从发起攻击开始到现在(2020-08-1317∶56∶00–2020-08-27)一直在进行攻击,只不过由于开启了拦截器拦截了攻击者大部分的访问量。而从图6中可以看出,在优化了拦截器后,攻击者的每分钟攻击的IP数有了明显下降。从图4可以看出域名A每小时访问的IP数变化不大,而结合图6说明在优化拦截器之前的单个IP在不同分钟单位出现访问的次数是较高的;但优化了拦截器后的单个IP在不同分钟单位出现访问的次数明显降低了,这在攻击者端的表现是每个IP攻击的频率明显减少了,所以最终服务器的压力得到缓解。


图5和图7分别为域名A每小时被识别出的IP数和域名A每分钟被识别出的IP数,并且图4和图5、图6和图7为识别的IP数和请求的IP数在时间单位上——对应。对于图6 和图7来说,由于ATD的静默机制,对同一识别类型的同一IP,5min分钟内只会识别一次,所以在以分钟为单位进行分析的时候,识别出的IP数占请求的IP数的比值会降低;但以小时为单位分析时,识别的IP数占请求的IP数的比值不会受到静默机制的影响。


从图8中可以观察出,在攻击者发起攻击直到现在(2020-08-1317∶56∶00–2020-08-27),域名A识别出的威胁的唯一IP数为∶653028


PS∶拦截器优化


在优化之前的拦截器采用的方法是通过防火墙规则来匹配7层协议中的IP,但由于防火墙的规则比较多,导致匹配时CPU占用过高,性能和吞吐量下降。所以将匹配的方法改成了用”ipset”工具进行IP匹配,这个匹配工具匹配速度快,占用资源少,使得在原来的基础上拦截器性能得到了提高。


原创文章,作者:白山码路长,如若转载,请注明出处:http://blog.baishan.com/cloud-security/protect-against-reptile-attacksinterceptor-upgrade

发表评论

登录后才能评论