记一次大促活动中的“羊毛党”对抗

Author: 0x584A

Date: 文章首次写在2019年8月,目前已不在文中所述的公司了

认识羊毛党

PS:文中引用了少量汤总的PPT (https://vipread.com/library/topic/1341) 内容,如有侵权请联系删减,谢谢!

1999年央视春晚小品《昨天・今天・明天》:宋丹丹饰演的白云大妈为了给老伴织一件毛衣,利用给生产队放羊的便利条件,揪羊毛搓毛线,被扣上“薅社会主义羊毛”的罪名。受这一人物的启发,人们便力图把每一分钱都花在刀刃上,享受精打细算乐趣的人群称为“羊毛党”。

如今的羊毛党以多种形式存在于网络里,采用伪造IP地址、虚拟多台电脑设备等,用软件同时控制多台智能终端做为肉机,在社区软件里组成关联群,招聘“兼职人员”。专业的羊毛党可以用极低的成本获取极高的收入,致使许多电商、O2O平台损失惨重,甚至被搞垮。

如熟知的手机墙:
image

http://www.scio.gov.cn/xwfbh/gbwxwfbh/xwfbh/gab/Document/1657073/1657073.htm

熟知的猫池设备:
image

比较典型实例:

x信翼支付新用户注册送话费:https://zhuanlan.zhihu.com/p/24322376

  • 2016年10月,x信旗下的翼支付,在部分省份开展“新注册用户送10到15元的抵用券”的活动。
  • 职业刷客申x远,早早就盯上了该活动。他先找到专门提供手机卡的卡商,弄到上万张手机号码。再找到作为黑客集散中心的软件平台,利用这些手机号批量操作,成功注册上万个翼支付新用户。整个流程他轻车熟路,只花了半天时间。注册成本是2000元。
  • 拿到代金券后,他找到一家x宝店家,专门提供话费充值服务,转手将代金券8折卖出。而x宝店再以9.5折卖给买家,进行手机充值。整个活动薅羊毛10万元。这条产业链环环相扣,所有的人,将翼支付的10万元利益,瓜分殆尽。

CCTV1有过类似报道 :《焦点访谈》 20190827 挖出“黑账号” 斩断“黑链条”

被薅的几起事件及黑产时间线

201_0218 微信小程序砍价活动券

  • 运营商反馈大量手机号短信发送失败;

  • 确认来自微信小程序的授权注册登录,无需输入短信验证码即可注册会员

  • 注册账号分享活动获取优惠卷;
  • 合计损失:2_.__W

201_0520 520活动被刷导致的服务异常

  • 下午四点收到第三方短信平台推送活动信息,触发12w活跃用户;
  • 阿里云WAF的监控告警,提示QPS达到1183;
  • 客服收到白帽子攻击预告邮件,通过电话与提交威胁情报的白帽子沟通确认,流量来源为520活动;
  • 该活动已经被黑产人员制作了对应工具;

因大量 sql 查询出现大数据集(20个酒店的1k条房型价格策略记录情况)导致数据库从库 cpu 满负荷,到 17:20 cpu 恢复正常,期间导致接口查询慢,上游 cn\_search 因调用超时导致http链接耗尽,用户反复重试导致 gateway(统一网关)、cn_search(搜索接口) 连接池打满,首页白屏持续一个小时。

image

201_0616 1元购200元优惠券活动

通过查看 WAF 日志,被薅羊毛的时间集中在凌晨 2:00-2:30 分,3:30 左右促销报备,1元换购券已经被领取完毕。

image

综合日志回溯,这次活动疑为有组织薅羊毛团队干的,具有用户真实率高、威胁识别量少、满足短频快的特点。

201_0620 活动加固人机防护

随后在 620活动 中上线了人机防护模块,这个功能从 520活动 开始就在做了,只是因为需要拉通整个中台的涉及人员做花了很多时间(为什么这样懂的都懂,会心一笑就好)。

经过上述几次活动的挑战已经紧急增加了人机防护策略,但从结果上来看也仅仅只是延缓了时长(我并不知道当初为什么要将活动门口设的这么低,可能真就钱多想烧一下。):

image


黑产时间线

针对活动卷被薅的情况我尝试去溯源,还原一下 520活动616活动620活动 传播的途径,复盘一下时间线。

520活动黑产时间线

在5月20号之前,黑产已经研发出针对XXX领取拉新活动的100入住券

自动化工具:

image

线报活动官网文章:

image

可以看到,这是一个较完善的自动化软件工具,具有批量账号、接码平台、批量请求、滑动验证码识别及爬虫代理。随后在5月20号活动日当天,黑产线报活动上线了XXX相关卷。

线报1:

image

线报2:

image

综合 CDN日志、WAF日志、NGINX日志 的流量峰值图,活动在 17:20 左右达到拦截的顶峰。

616活动黑产时间线

在这个活动中也是类似的。

线报1:

image

线报2:

image

黑产在活动上线后开始关注,随后在凌晨 1:00 左右开始曝光该活动,1:30 获卷成功后开始在线报活动中上线,2:00-3:00 陆续领完本次活动券发行的卷

image

对抗中的难点

所谓道高一尺魔高一丈,目前总结下来与羊毛党的对抗是一场持久化的工作,而且需要通力配合构建完整的防范体系才行。但有些实际问题不得不进行反思:

问:“系统开小差”、“白屏页”、“安全拦截” 怎么办?

  • 答:开4G就可以绕过基于IP的威胁拦截策略,但个例无所谓属于正常的营销拉新的范畴。

问:事后追回发布的券可以吗?

  • 答:不行,客诉、和第三方舆论扛不住(说实话,这些人不要脸的样子真的很恶心)

image
image
image

问:羊毛党是如何销赃的?

  • 答:贴吧或第三方平台倒卖

image
image
image
image
image

总结防范羊毛党

首先就是引入了人机防护,因520业务中断事件后,发现目前网关层没有有效的安全鉴权以及验证策略,导致业务长期处于爬虫和黑产威胁状态。根据防爬风险管理、人机验证等安全设备,梳理了阿里云现有活动防御规则列表,供业务方参与到安全工作的决策中来,让其自行选择是否启用“主动防护策略”中的规则项。

被动策略

为业务系统提供保护的基础防护能力,包含黑客攻击防护,恶意特征拦截,抗流量攻击等,为大促活动提供基本安全保障。

但是呢,如何和业务争取安全上的基线是很有学问的东西。事前你不但要将威胁讲清楚,及保障安全的基本底线不能被砍除,事中要持续保障业务,事后还要有成果产出,俗称晒肌肉。

主动策略

开启黑白名单(公司IP均为白名单)。
人机识别防护(无痕验证模式的黑产模拟器识别与防护),大数据学习提供了基于请求逻辑与参数模型匹配的安全&黑产识别与防护能力。(这部分是基于阿里自身安全产品的情报库功能)。
目录扫描,以及威胁情报库,CC防护更严格的提供了黑产的识别与拦截能力。
APP增强防护,提供了基于APP与网关接口的爬虫识别与模拟器识别拦截能力。
精准访问控制,配合APP增强防护,可针对促销接口进行更细粒度黑产识别与拦截能力。

活动中黑产拦截数据的提升:

616活动:
活动落地页请求:382209、清洗后有效请求:143034、防护后总请求:135723
黑产拦截率:62.58%
有效活动访问率:35.51%

620活动:
活动落地页请求:265622、清洗后有效请求:59696、防护后总请求:54967
黑产拦截率:77.53%
有效活动访问率:20.69%

Diff:620活动因提升了安全策略配置,黑产拦截效果约提升了 15% 。

image

image

除了所使用的安全防护类产品,借助了阿里云产品所提供的防护规则(阿里云自维护的黑产威胁情报库,及IP和用户操作行为阻断库),业务中加入了风控系统对用户身份的识别,小程序后端代码中也调用了阿里提供的风险控制API,综合起来多维度策略阻断羊毛党的行为。

个人思考

后续准备打入敌方内部,做到事前及事中威胁感知,减少二十四小时人肉值守,及时对活动做好防范避免被敌方打的措手不及,严重造成公司损失及社会形象受损。

持续升级安全防护策略,总之原则是避免一切自动脚本操作的可能,让它必须人工操作,因为人工成本是最高的,羊毛不是特别大的话一般就不薅了。但也要注意不要增加正常用户的复杂度(在这点上安全是会给业务让步的)。

如果上诉均没有达到防范效果,引入拨号的电话语音验证码,一般猫池购买的卡,是分类的:只能收发短信、只能用于电话、较贵的卡具有短信\拨号\上网功能,所以大部分电话语音拨过去都是空号。如接码平台能识别语音和验证码,从安全上将增加了双方对抗的成本。还有就是加强验证环境的管控,人工介入活动审计日志,实时升级防护规则策略。

  • 如何打击低级刷单?
  • 是否增加业务蜜罐,避免误伤、客诉、将计就计(钓鱼)
  • 结束了吗?并没有…这是个长期的活…

image

参考

https://www.qcgzxw.cn/742.html

http://www.ifuun.com/a20174211836967

https://www.anquan.org/news/2731