弹指间,一起创业已有大半年。这大半年间,累与成果并存,痛并快乐着,这自不用多提,应该是这一行从业者的普遍感受了。现在每每反思以往,总结不足,其中一
条就是技术团队过于封闭,闷着头干活,发声不足,既不利于引入别人的好的经验,也没法将自身的成果拿出去接受批判,这其实与我们的技术宗旨是不符合的,还是需要挤出时间往外看,向外喊。
本文将会是岂安科技技术团队的抛砖石,来引出小伙伴的总结分享,更重要的是能得到外界的批评指正,帮我们出谋划策。这一篇将没什么干货,只是从我的角度对一些风险相关的概念进行通俗化的阐述,希望能讲明我们想要针对的问题是什么,我们的定位在哪里,技术的角度看需要去做什么,为什么要这么做,我们跟巨头的差别在哪里。
什么是风险
笔者学术时代的老板是作可信计算的,当年的课题便是信任与风险,所以恰巧也算是国内较早在计算机领域对风险一块有所涉猎的人之一,当时最头痛的是,虽然很多
人在这些方向都有相关的学术工作,但是对“信任”和”风险“这两个模糊的概念,从来就没有清晰公认的定义,大家都是自说自话,概念上都是迁就自己的工作,
对信任和风险都有着自己的见解,以至于光综述里总结的定义就有上百种;现在工业界也出现了类似的情况,电商已经烧了好些年头,互联网金融最近也大火,征信
风控的字眼更是随处可见,几番交道打下来,大家基本上还是在风险之上谈风险,很少对其本身去作过多的定义和阐述,具体手段也限于传统金融业经验往线上的照
搬,或者是具体漏洞的补缺,有些像手里拿着把箭在扫射。我依然执拗以为,一定要先说清楚自己面对的问题是什么,才能更加的明白自己在做什么,做起事来才能
有的放矢,不至于陷入被动的攻防战。
废话一箩筐,直接给出我个人比较认可的通俗定义,来方便阐述本文后续的概念:
风险 = probability + outcome
这
是我看到的一种比较全面的解释。很多人认为风险是带来损失的概率,也有很多人觉得风险就是最终带来的损失;就好像很多人认为坐汽车风险高(因为车祸几率
高),另一部分人觉得飞机更危险(基本就是挂了),大家的侧重点不同。而作为风险相关的从业者,个人认为两者都需要考虑,所以和很多人一样,直接做了加
法,既包含可能性,也包含潜在的损失。
什么是风控
风险本身只是人对客观事实的一个评估,重要的是如何去计算它,之后又如何去用来帮我们实现利益的最大化,这里给一张简单抽象的图来描述所谓的风控逻辑上是一个什么样的流程
这里面对信任的定义是当年从哲学论文里面摘出来的,算是相对靠谱的定义:
Trust = knowledge (weak) reduction
简要的介绍:
所谓的信任,就是利用一切可以用的知识(通俗常称为证据,或者情报等),进行一定的归纳,这些知识包括:
一些常规的检查工作,主要是做一些身份识别,合规的工作。这种是最常见的。
社交信息,主要是一些关联信息,可以通过交易、ip、手机号能找到一批其他个体的信息,可以有效的帮助判断。
历史行为,被评估者的历史行为有着极为重要的作用
上下文,当前交易/活动的具体特征,对当下的判断非常重要
其他信息。事实上,要做信任判断还需要很多其他额外的知识。只是越多越准确,那么所谓的uncertainty就越小,后续的决策才会越准确现在一般传统的就是作一些合规操作,时髦一点的就是在历史行为和社交信息这一块大做文章,来弥补传统方式信息量的不足,还可以标榜“大数据”,我们岂安科技也属于后者。
所谓的风险决策。就是利用收集的信任信息,对所有可能的结果做一个损失(损失是基本客观存在的)和概率(主要靠信任信息来推断)的判断,最终形成一个风险轮廓,来方便决策
后续的就好办了,有了具体的风险轮廓,根据企业的风险承受能力和商业模式作指引,就可以做出相应的决策了。一般而言,如果需要降低风险,需要采取措施去降低
风险,或者是损失。以现在流行的p2p举例,要么是让借贷人提供更多的材料去证明他违约的概率比较小;要么是平台会收取一定比例的担保费用,来减少违约带
来的损失。
现在的风控系统是啥样的
对风控的描述比较空泛,只是给出逻辑概念。目前大多数的企业和机构应该都是这么干的,只是有的干得比较好,有的干的更好而已:成熟度。大型、新型的企业会有一整套风控框架,里面相关的人数量和角色也多,比较成熟;小公司往往投入不足,做法也山寨。
量化能力。小一点的企业往往只能作到定性分析,就事论事,最后主要靠拍脑袋。牛一点的可以做到定量分析,这样能有个科学的定义和计算模型,才能脑袋拍得轻些。
持久性。小一点的企业往往只做当前的case;大一点的公司整个流程是持续迭代的,而且是正反馈的,这样它整个风控模型就能不断修正和完善。
至于如何去做一套完善的风控系统,这个领域已经有大量的投入和专家,可以去参考借鉴。我个人的资历比较有限,只能提供两个参考:
如果想从流程上去改善,如果你对类似CMM这样的成熟度模型感兴趣,不放参考Octave(Operationally Critical Threat,Asset, and Vulnerability Evaluation),这同样是CMU的SEI推出的,目的是提出缓解企业信息安全风险的方法论,它本身不是一套计算机系统,但在流程、理念、逻辑结构、方法论上能有比较好的启发。
如果想建一套完善的计算模型,可以参考paypal的架构。paypal应该是互联网内风控玩的最早最成熟的公司,笔者也有幸成为其国内的第一批开发,学习到很多。这个公司的商业模式就是建立在风控上,所以投入也大,虽然就技术上而言非常保守,但其整体框架绝对值得一提:
上图是我以前画过的我印象中P公司是如何处理risk的(依然是简单概念图):
最大的投入是通过运营作人工分析,一方面可以更细致更准确的去处理各种高风险交易;另一方面在于找到了很多新的攻击,人工标注产生了很多样本,这点是最关键的。
大量的分析师通过数据仓库去做模型、做规则。最早的时候还没有hadoop,他们靠商业的teradata来作这件事,算是先驱了。大部分模型、规则也简单,顶多是logistic regression,胜在数据量大,以及庞大的ops团队支撑
相当数量的开发人员,去开发模型需要的数据,从数据库里面计算出来,形成统一的变量接口,然后线上的系统就是在不停的跑了。
整个过程是循环的,在线系统标注的高危交易会被继续人工分析,然后成为新一轮的素材来实现整套风控系统的不断演化和改进(Ocatave也是提出了类似这种迭代的模型)。
开发、ops、分析师三个角色明确分工,有机结合在一起。这是目前国内大部分公司是很缺乏的。
整套系统里面每一块都比较保守,有各自固有的问题,但胜在整个框架很好。体制的优势决定了其依然是现存的最成功的风控系统,岂安科技的两大系统(warden和redq)也都是受此影响很多。
然而,以上只是描述了一个有钱公司的成熟系统是啥样的,现实世界中,只有极少数公司能做到这个程度。很多公司(尤其是中小型互联网公司)是这样干的:
系统的脆弱点比较多,尤其是业务搬迁到互联网后,暴露点增多。各种漏洞(技术上的和业务上的)层出不穷,黑产业的日益发达也带来了更多的影响。
资源较少。一些金融相关的可能还好,大部分公司对此投入不足,忙不过来。
可利用的现成的技术少。风控通常是比较复杂和昂贵的,只有大公司用的起,小公司投入不起,往往就是穿个裤衩就要面对各种攻击了。
上述几点造成,大部分公司根本没能力去做详尽的数据收集和量化计算,也就很难有个成熟的风控模型或是系统去应对互联网上频繁出现的攻击,最终就变成了打地鼠模式:
每当恶意(带来损失)的事件发生,被动的去应对,而且只能作事后处理。
每次事件的处理只能作就事论事的防范。这次一锤子不能帮你打下一锤子
量化能力上还是比较难对风险作定量分析,关注的指标只能是命中率(打中多少衰神加分)和误杀率(打中多少福神扣分)
当带来风险的主体比较难区分,伪装的比较好的时候,这锤子就敲不下去了。比如现在一大危害羊毛党,很难和正常用户区分开来,造成无法防范
当风险攻击来得异常频繁和快速,锤子也来不及敲。最近短信轰炸的攻击行为忽然冒起,没有健壮的风控系统保护,只能素手无策。
这个就是我们感受到的骨感的现实。
*本文作者:岂安科技(bigsec)专注于互联网业务安全风险控制,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)