(原创文章)羊毛党何去何从

来源:互联网 发布:ubuntu 16.04 中文字体 编辑:程序博客网 时间:2024/04/27 08:49

曾几何时,互联网兴趣了“薅羊毛”这个词,同时开始了一个新兴的职业:“羊毛党”。从月入首付的打车软件羊毛党,到日入万元的外卖羊毛党,当前该职业已渗透当互联网行业的方方面面。同时也催生了更多的上下游,给企业带来了不小的影响。

 同时,各路羊毛网站也随之产生,大量的用户穿梭在各大网站间体验薅羊毛的快感。

 

 

 

 

作为互联网企业的一员,携程同样遇到了如上情况。为此,携程内部进行了大量的防护实践,并有了一定效果。

 

防范“恶意用户”主要通过对用户的各种数据进行分析,从中提取用户的特征,进而从普通用户中识别出“恶意用户”,进行一定的控制,减少损失。

用户数据主要分为:注册数据、登录数据、活动数据、验证码请求数据,关键功能点数据等。通过这些数据进行模型匹配后,产生大量恶意的数据,及黑名单,黑名单包括ip、用户id、手机号、设备号、邮箱等维度。业务系统根据这些黑名单及相应的风险等级,来限制黑名单用户的功能。

 

 

技术架构图

 

安全大数据平台:集成了消息队列、流式计算、elasticsearch等技术,其中收集了安全分析所用到的各种数据。

规则计算引擎:通过一些规则分析安全大数据平台中的数据,从其中可以抓到大量的恶意用户,目前的规则可以抓取恶意注册、恶意登录、爬虫、恶意领券等数据;恶意数据维度包括IP、手机号、设备号、邮箱、用户ID等。

行业共享黑名单数据:生态圈内的恶意共享数据;

打码平台数据:主要为手机号数据

人工录入数据:系统管理员手动录入的数据,多为白名单数据;

风险库:将规则计算引擎、行业共享黑名单、打码平台数据集中存储到风险库中;

风险动态计算引擎:综合风险库中的各种数据,实时计算出指定数据的风险等级;

对外接口:提供风险数据查询接口,查询具体数据的风险等级;

 

 

离线数据etl计算

 

 

 

 

整体架构

 

基于整体架构设计,在防护上的应用。划分成几大模块:

 

一. 数据源:

(1) 用户行为日志(来源于kafka的请求数据,日均百万pv数据,流式进行数据计算)

(2) 接口调用命中日志(单个api千万次调用,调用数据elasticsearch以及hbase方式落地,切乎使用关系数据库mysql方式,单表上亿即引发性能瓶颈)

(3) 准实时用户tag(根据用户当前维度,关联维度数据行为,通过规则引擎流式storm计算,对风险用户准实时打tag

(4) 生态圈黑名单数据(和外部进行实时黑名单数据对接,数据实时入库)

 

二. 数据统计层:通过规则计算和底层tag数据缓存进redis提高api调用性能,redis单个查询控制在1ms

(1) 动态黑名单(通过etl离线规则计算数据,规则命中定时过期数据)

(2) 固定黑名单(定期过期):内部数据针对规则生效(含白名单规则定期过滤),外部恶意数据含有效期过期

 

三. 规则管理:含规则设置,效果展示和分析,审计等模块

(1) 字段数据维护:灵活维护底层数据字段

(2) 规则维护(自开发规则引擎,类似drools):支持四则规则运算,可进行复杂规则配置及多规则判定(毫秒级规则计算)

(3) 实时规则下发:动态规则实时生效

(4) 规则命中展现:不同规则拦截,放行及不同规则命中率展示,无效规则进行改进

(5) 审计模块:定期对规则,字段数据进行review

 

四. 对外接口服务

(1) 传递参数:前端通过api接口传递对应有效参数,如:ipua,设备指纹等参数传给风控接口

(2) 风控接口接收参数通过redis缓存数据判断,规则引擎实时计算10ms内返回风险值给前端

(3) 前端通过返回值进行不同的挑战控制(放行,图片验证码,短信验证码,禁止)等来对风险进行防护

(4) 风控对命中数据落地,进行后期规则建模

 

携程在自身海量数据积累的基础上,结合整体行业数据以及建立的风控架构体系,形成了一套有效的防护体系机制,同时携程也建立了携程安全云平台https://security.ctrip.com/,并将相关技术和生态圈公司免费共享。

0 0