Author: 0x584A
Date: 文章首次写在2019年8月,目前已不在文中所述的公司了
认识羊毛党
PS:文中引用了少量汤总的PPT (https://vipread.com/library/topic/1341) 内容,如有侵权请联系删减,谢谢!
1999年央视春晚小品《昨天・今天・明天》:宋丹丹饰演的白云大妈为了给老伴织一件毛衣,利用给生产队放羊的便利条件,揪羊毛搓毛线,被扣上“薅社会主义羊毛”的罪名。受这一人物的启发,人们便力图把每一分钱都花在刀刃上,享受精打细算乐趣的人群称为“羊毛党”。
如今的羊毛党以多种形式存在于网络里,采用伪造IP地址、虚拟多台电脑设备等,用软件同时控制多台智能终端做为肉机,在社区软件里组成关联群,招聘“兼职人员”。专业的羊毛党可以用极低的成本获取极高的收入,致使许多电商、O2O平台损失惨重,甚至被搞垮。
如熟知的手机墙:
http://www.scio.gov.cn/xwfbh/gbwxwfbh/xwfbh/gab/Document/1657073/1657073.htm
熟知的猫池设备:
比较典型实例:
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(搜索接口) 连接池打满,首页白屏持续一个小时。
201_0616 1元购200元优惠券活动
通过查看 WAF 日志,被薅羊毛的时间集中在凌晨 2:00-2:30 分,3:30 左右促销报备,1元换购券已经被领取完毕。
综合日志回溯,这次活动疑为有组织薅羊毛团队干的,具有用户真实率高、威胁识别量少、满足短频快的特点。
201_0620 活动加固人机防护
随后在 620活动 中上线了人机防护模块,这个功能从 520活动 开始就在做了,只是因为需要拉通整个中台的涉及人员做花了很多时间(为什么这样懂的都懂,会心一笑就好
)。
经过上述几次活动的挑战已经紧急增加了人机防护策略,但从结果上来看也仅仅只是延缓了时长(我并不知道当初为什么要将活动门口设的这么低,可能真就钱多想烧一下。
):
黑产时间线
针对活动卷被薅的情况我尝试去溯源,还原一下 520活动、616活动、620活动 传播的途径,复盘一下时间线。
520活动黑产时间线
在5月20号之前,黑产已经研发出针对XXX领取拉新活动的100入住券。
自动化工具:
线报活动官网文章:
可以看到,这是一个较完善的自动化软件工具,具有批量账号、接码平台、批量请求、滑动验证码识别及爬虫代理。随后在5月20号活动日当天,黑产线报活动上线了XXX相关卷。
线报1:
线报2:
综合 CDN日志、WAF日志、NGINX日志 的流量峰值图,活动在 17:20 左右达到拦截的顶峰。
616活动黑产时间线
在这个活动中也是类似的。
线报1:
线报2:
黑产在活动上线后开始关注,随后在凌晨 1:00 左右开始曝光该活动,1:30 获卷成功后开始在线报活动中上线,2:00-3:00 陆续领完本次活动券发行的卷。
对抗中的难点
所谓道高一尺魔高一丈,目前总结下来与羊毛党的对抗是一场持久化的工作,而且需要通力配合构建完整的防范体系才行。但有些实际问题不得不进行反思:
问:“系统开小差”、“白屏页”、“安全拦截” 怎么办?
- 答:开4G就可以绕过基于IP的威胁拦截策略,但个例无所谓属于正常的营销拉新的范畴。
问:事后追回发布的券可以吗?
- 答:不行,客诉、和第三方舆论扛不住(
说实话,这些人不要脸的样子真的很恶心
)
问:羊毛党是如何销赃的?
- 答:贴吧或第三方平台倒卖
总结防范羊毛党
首先就是引入了人机防护,因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% 。
除了所使用的安全防护类产品,借助了阿里云产品所提供的防护规则(阿里云自维护的黑产威胁情报库,及IP和用户操作行为阻断库),业务中加入了风控系统对用户身份的识别,小程序后端代码中也调用了阿里提供的风险控制API,综合起来多维度策略阻断羊毛党的行为。
个人思考
后续准备打入敌方内部,做到事前及事中威胁感知,减少二十四小时人肉值守,及时对活动做好防范避免被敌方打的措手不及,严重造成公司损失及社会形象受损。
持续升级安全防护策略,总之原则是避免一切自动脚本操作的可能,让它必须人工操作,因为人工成本是最高的,羊毛不是特别大的话一般就不薅了。但也要注意不要增加正常用户的复杂度(在这点上安全是会给业务让步的
)。
如果上诉均没有达到防范效果,引入拨号的电话语音验证码,一般猫池购买的卡,是分类的:只能收发短信、只能用于电话、较贵的卡具有短信\拨号\上网功能,所以大部分电话语音拨过去都是空号。如接码平台能识别语音和验证码,从安全上将增加了双方对抗的成本。还有就是加强验证环境的管控,人工介入活动审计日志,实时升级防护规则策略。
- 如何打击低级刷单?
- 是否增加业务蜜罐,避免误伤、客诉、将计就计(钓鱼)
- 结束了吗?并没有…这是个长期的活…
参考
https://www.qcgzxw.cn/742.html
http://www.ifuun.com/a20174211836967
https://www.anquan.org/news/2731