作者:Frank@爱奇艺技术产品团队
01 普遍业务风险 ——行业的共同的问题
爱奇艺在快速发展过程中, 业务越来越多,越来越复杂,用户的权益和信息价值越来越高, 我们面临的业务安全的挑战也就越来越大。
除了传统的网络黑客的入侵,攻击以外,新的业务形态带来的新型风险: 比如撞库盗号,盗播盗看,很多的营销活动招引大量的薅羊毛的行为, 刷量, 刷人气, 恶意发布不良信息等风险, 社交场景下的拉粉和不良信息恶意传播, 支付场景下的欺诈, 所有这些风险一旦被黑产利用, 都可能对企业的稳定运营带来大的冲击。
以下总结了各种业务会遇到的风险
01 会员:撞库盗号,账号分享,批量注册
02 视频:盗播盗看,广告屏蔽,刷量作弊
03 活动:薅羊毛
04 直播:挂站人气,恶意图文
05 电商:恶意下单,订单欺诈
06 支付:盗号盗卡,洗钱,恶意下单,恶意提现
07 其他:钓鱼邮件,恶意爆破,短信轰炸
02 解决方案 ——安全+风控
针对新的业务形态会遇到的问题,除了一方面是要用常规安全解决方案去解决,另外我们也要对业务做充分的风险评估和及时控制。
常规安全解决方案是加强安全制度和体系建设,推动安全开发和安全运维,关注边界安全, 数据安全和纵深防御。
后者是我们要重点为给公司带来核心价值的关键业务,从风险管控上保护好他们。
03 业务上线运营——问题多多
业务在上线运营以后, 不是说没有关注风险评估和控制,但是以前的做法存在有非常多的问题,这里举四类主要的问题:
一. 各自为战
1 各业务方多以安全事件驱动, 多数仅做事前单点防御, 经验数据无法共享
2 单点防御容易被黑产各个击破, 无法做到跨业务跨团队的联防联控
3 低水平重复建设, 平台资源浪费
二. 拍脑袋"规则"
1 大量的风控规则是专家决策为主,阈值基本拍脑袋而定
2 没有引入数据分析或者机器学习等能力, 对事件本质缺乏足够认识及数据支撑, 造成正常用户误杀, 损伤用户体验, 导致用户流失
三. 反应过慢
1 不能快速识别攻击变化进行调整,无法进行积极对抗
2 业务代码耦合,依赖业务开发, 测试和上线,占用业务排期
3 某些前置/内置规则容易成为业务关键路径, 对业务稳定性造成影响
四. 手段单一
1 可用特征维度不多, 严重依赖于IP, 公共出口误杀严重,引发投诉
2 以限频, 限流, 黑白名单, 图文验证为主, 黑白名单难以维护, 无生命周期
04 目标风控系统——用云服务来解决业务的问题
要解决业务在上线运营以后遇到的问题,我们需要将风控服务,以云服务的方式提供业务,让业务关注业务本身, 让跨业务支持的统一风控云服务来对其进行保障。
到底要提供给业务团队怎么样的风控服务呢?
这里列一下我们的设计目标, 这些目标的达成也就能解决前面说的问题。
一. 联防联控
1各业务联合, 在模型,规则,数据等方面进行共享, 联合布控协同防御
二. 数据驱动, 智能对抗
1 全站全网数据支撑, 基于数据进行决策
2 利用机器学习实现智能异常特征发现
三. 策略灵活, 有效对抗
1 独立服务, 快速迭代
2 支持业务的风险多样运营需求
3 模型,规则, 策略快速实施, 快速反应
四. 维度和拦截手段多样
1 不依赖单一维度和单一行为
2 云和端结合, 多种拦截手段应对
五. 延迟可控, 低耦合可降级
1 在实时风控场景下, 快速决策, 不能明显增加业务延迟, 自身有问题情况下, 不能影响业务
六. 快速实现, 高效部署
1 能够快速完成架构. 实现和持续迭代
2 能够面向私有云的复杂拓扑, 快速部署
05 风控服务的架构
一. 风控服务组成
我们的风控服务是由三大子服务组成:
麦哲伦(Magellan)主要包括业务接入(接入层),三大服务引擎(数据查询,规则执行,模型调用),面向风控团队的管理平台(服务资源管理, 模型规则管理,生命周期管理,上下线管理,维度数据管理),面向业务方的运营平台(风险事件管理,仿真,风险处置,监控预警,数据查询和仪表盘,规则清单)。
哥伦布(Columbus)主要面向对业务数据的特征工程,大规模异常检测和深度学习,知识图谱,实时特征,离线特征,环境特征以及安全画像,并对外提供模型可实时调用接口或者模型输出缓存。
郑和(Zhenghe)是安全知识仓库,是面向业务风控和其他安全控制所需的各类安全基础数据和威胁情报。
二. 风控 – 部署
利用云平台能力高效构建和发布:
2.5*4个人月从零开始开发构建上线服务, 并对外提供了基于HTTP/RPC的实时风控和近实时风控以及基于离线数据的离线风控.如何把风控服务在复杂的云环境部署下去。
我们会在一个主IDC里,部署运营中心和管理平台。这一块可以快速切换IDC部署,如果这个主IDC有问题, 可以快速切换到另一个IDC。对于真正贴近业务的三大服务引擎,则是基本上所有有受保护的业务的IDC都有进行部署, 以保证业务可以就近访问, 降低访问延。
三. 风控 – 引擎
查询引擎
1 Magellan子服务的的核心,主要负责进行实时和离线数据批量查询及聚合
2 构建为参数/特征组合提供给规则引擎, 模型引擎
规则引擎
1负责进行规则匹配
2支持自定义执行策略如: 命中退出, 全部执行, 条件退出等
3支持多种规则类型, 如:评分卡, 决策树, 决策表, 普通规则等
模型引擎
1通过查询引擎查上来的一些参数特征,负责进行特征处理及算法执行,以达到和Columbus子服务的协同, 并服务于规则引擎。
四. 风控 – 运营
业务如果把风险评估交付给风控,Magellan必须满足其复杂的运营需求:
一 风控服务
业务风险评估,接入登记,根据场景实施初始规则和模型,逐步迭代。
二 事件查询/处置/回溯
查询被识别为风险案例的上下文,特征,模型结果,数据标注等信息.供运营进行案例分析及后续仿真
三 事件监控和报警
业务/风险数据监控看板,智能报警
四 adhoc/Daily数据分析
Adhoc/Daily数据报表,风险数据分析,模型/规则贡献度分析,仿真效果分析等
五 离线/在线仿真
基于案例库中的正/反例,结合仿真环境进行模型/策略仿真.利用数据平台进行贡献度, 线上效果比对等分析。
六 审批上线
规则模型变更及时通知业务方,风控运营团队,相关业务方,相关负责人确认审批上线。
五.风控 – 数据
风控最重要的还是数据。
风控通过Columbus子服务从业务方获取的海量的近实时或者离线业务数据, 并把数据进行清洗和特征工程,形成基础数据,这些基础数据存在HDFS-HBase里面,通过数据分析和机器学习的方法, 产生各类标签,画像和模型, 经过安全专家确认, 产出的安全规则和可用的模型缓存。
针对业务数据获取和处理, 对于实时数据 ,利用Apache Flink构建, 实现图特征工程, 多维频次特征工程, 多数据流Complex Event Processing处理, 达到毫秒级延时.
Columbus的多渠道业务数据采集和处理
1 实时数据:基于Apache Flink
构建: 图特征工程, 多维频次特征,多数据流Complex Event Processing,毫秒级延时
2 近实时数据:基于Apache Spark
构建:异常检测,流式特征工程,,秒级延时
3 离线数据: 基于Apache Spark,Impala/Hive
构建:安全画像,用户画像,全业务数据, 小时/天级延时
安全画像
Columbus的安全画像
对全站业务数据分析和提炼以后
形成海量的多维度标签刻画
为风控的每一次处理
丰富上下文场景和实体特征
安全画像作为风控最重要的一个业务数据的积累。通过潜在的数据提炼以后,形成海量的多维度度标签刻画。我们整个安全画像的话,包括他通过哪一个IP等等。目前大概有600多种标签,数据总数已经超过19亿。
Zhenghe安全知识仓库
Zhenghe系统是安全云的包括威胁情报在内的基础安全数据集
1 全网安全数据监测和收集,包括 自采,共享和第三方采购
2 对业务安全而言重点关注 – IP信誉分, IP分类识别, 公共出口识别, 代理IP识别, 手机号信誉分, 虚假小号识别等
3 威胁标记类型210个,涵盖13个维度,总共记录数约16亿条
IP信誉分
融合爱奇艺内部多个系统的数据
参考第三方数据
综合衡量一个IP的长期行为
得到一个-100到100的信誉分
六.风控 – 平台
Columbus的核心是异常检测
如果黑产完全和正常用户一样的话
其实是达不到获利的目的的
所以异常检测对安全来说
也是风控平台的一个基本功能
Columbus主要是通过自研的方式
实现各种异常检测的功能
在该核心功能的基础上
构建了整个哥伦布系统的上层架构
实现面向风控Magellan服务的能力
一 预处理特征工程
预处理工具
低级特征工程库:
对数特征,归一化特征,主成份特征 …
高级特征工程库:
FPGrowth关联特征,k-means距离特征, 多维自动关联 …
二 离线检测
低级异常检测算法库:
多种分布模型, 单维度异常检测 …
高级的异常检测算法库:
基于FPGrowth关联的多维异常检测 …
三 在线监测
流式异常检测:
基于FPGrowth关联流式, 基于CEP…
基于时间序列的异常检测:
基于基线曲线预测, 基于深度学习时间序列
四 基础工具库
自动化数据解析,存储和导入等工具
七.设备指纹
对风控而言, 还要提一下其依赖服务: 设备指纹。
风控需要一个好的设备指纹的服务,要让所有的端都能够采集设备纬度,形成一个指纹,这个指纹多维签发的, 而且在云端会做大量的黑产分析,联合安全画像进行沉淀。
因为这些数据都是用户提供上来的,必须要做一个防伪的检测,从多维度数据里面查出提供的维度数据矛盾和不真实。
八.验证手段
1.图文验证码
传统的复杂图文验证码
2.滑动验证码
基于滑动的人机行为识别进行验证
3.上下行短信验证
发送下行或者上行短信进行验证
4.基于信任设备的验证
信任设备可以为其他端进行授权和验证
5.基于安全盾APP的验证
安装爱奇艺安全盾APP可以为其他应用进行
动态口令(OTP), 推送一键确认, 扫码确认
其他: 暂时放行+事后处置,
降级体验或者权益
A业务标识+B业务拦截
(A业务识别风险以后只做标识画像,
然后B业务进行拦截,
这样非常有利于让黑产无法识破规则策略)
06 风控服务的成果
1.业务覆盖:
涵盖帐号, 会员, 活动, 支付, 播放反作弊,
社交, IT, 直播等重要业务
2.服务质量:
日均请求量超24亿, 延时5ms以内, 无故障运行
3.柔性风控:
平时重监控, 战时重对抗. 注重用户体验
4.核心亮点:
事前, 事后纵深防御体系,
结合事中跨业务联防联控及实时流式异常检测,
机器撞库接近100%抑制
在这里重点讲一下我们对机器撞库盗号的防御成果。
会员账号的安全关系到爱奇艺会员付费战略的顺利实施以及爱奇艺良好口碑的建立。
然而,对于互联网公司来说,帐号的撞库风险在登录、注册、找密等环节普遍存在。
目前,“黑产”主要通过第三方网站大量泄漏的用户数据,在这些潜在风险的地方,进行账号检存操作,然后通过存在的账号测试对应密码检存;或者寻找无任何防御的登录接口进行撞库。账号与密码一旦被黑产所获悉,会员权益有被分享的风险,进而导致爱奇艺会员营收的损失与口碑的下降,甚至由于大量隐私泄露,触犯最新出台的《网络安全法》,引起刑事诉讼。
对黑产来说,他们拿到其他网站泄露的账号(用户名和密码),会到爱奇艺这边做帐号的检测,检查帐号在爱奇艺是否存在,是不是会员,如果是会员则就把这个帐号盗取了。
对黑产来说, 撞库效率是非常关键的, 要求用最快的时间检测最多的账号。目前黑产已经形成非常完整的产业链,有专人负责开发撞库软件, 并软件下发给手上有各种失窃账号数据的人,这些人利用各种物料(例如拨号器, 代理等)实施检测,,检测结果快速汇聚整理,并寻求下游的分享或者售卖。
我们是如何把这个问题解决掉呢?
安全风控服务, 从登录、注册、验证码等多个风险点的联防联控入手,利用流式异常检测引擎、智能评分卡和多业务数据流复杂事件关联等结合进行实时对抗,以期从根本上解决账号大规模泄露的风险。
这个问题的解决的难点在哪里呢?
黑产手上的IP非常多, 包括各种代理和动态拨号获取的IP,其构建的检测请求的客户端特征也可以进行快速的伪造,机器撞库根本上是追求低成本高效率,也就是一个IP在被风控识别出为撞库源之前完成尽可能多的撞库请求,这也要求在1s内尽可能完成更多的撞库请求,这还包括了验证码的告破解率。
因此,面对快速多变的对手, 依赖拍脑袋的高频阈值控制是很容易被黑产绕过的。对风控而言, 主要是解决三点:
1 使用流式检测手段,尽可能快的识别出物料维度(例如IP等)+客户端多维特征的异常组合, 这些异常组合能够尽快的进入到拦截标注集中发挥作用,在失效之前对后续同一组合的请求导入到验证阶段,这个依赖于我们的大规模流式异常检测的能力。
2 利用稳定的攻击行为特征(客户端多维特征)加上安全画像刻画物料(例如IP等)的历史行为特征协同验证阶段的行为特征进行组合拼接,从而形成大量的临时拼接标注,并进入到拦截标注集中发挥作用,在失效之前对后续同一组合的请求导入到验证阶段,这非常有利于我们预测黑产的一个新的维度组合从而快速拦截。
3 命中的检出拦截标注或者临时拼接标注会进入到安全画像分析出物料维度(例如IP等)的历史行为特征以及归纳出稳定的攻击行为特征(多维特征组合),用于后续持续临时拼接, 这个依赖于安全画像服务。
从整个对抗的成果来看,共实时拦截黑产撞库请求超过2亿次,从我们自己的监控来看从2017年4月中旬开始,每日撞库成功的账号数目降至个位数,此外,从各大社交网站舆情监控来, 用户反馈被盗号的情况也基本上消失。
机器撞库盗号攻击基本消失
07 风控服务的心得
拥抱业务:安全只有拥抱业务才能体现价值
云端结合:立足于云,服务为云,结合与端
精细运营:业务安全需要持续运营
协同联动:多点多层次跨业务防御
二八原则:优先解决主要风险
数据驱动:充分挖掘数据价值