">淘宝商城事件中体现的一个技术问题:如何预防和防范恶意用户行为。
最近,由于淘宝商城涨价引起的中小卖家围攻大卖家的事件愈演愈烈。事件的各方都有自己的道理,而且从各自的角度看,都感觉很委屈。
我不想去讨论这件事里的是是非非,只想探讨一个很多网站都遇到的技术问题:如何反欺诈/反恶意用户行为。为了应对这次淘宝商城事件,淘宝的技术团队现在一定在加班开发防范恶意网购行为的技术。其实,很多网站也都有类似的需求:Google、百度需要防范恶意点击,新浪微博需要封堵小广告,赶集、58需要删除虚假发贴.。.
我曾经作为技术总监,在Google美国总部负责建立了Google的反欺诈/反恶意行为的技术平台,积累一些经验和方法。这里和各位朋友们分享一下。
首先,从宏观上看,有几个方面需要网站的领导了解:
1)好的产品机制是解决欺诈或恶意行为的最有效的方法。如果恶意行为普遍的发生在大量用户身上,那么要好好反思一下自己的产品机制了。这和社会制度有相通之处:好的制度使人向善,坏的制度诱人向恶。在合适的机制下,恶意行为的用户应该是少数人,当然这些少数人会大量重复的进行恶意行为以实现他们的商业目的。
2)防范恶意行为是一场博弈。你的对手在不断的学习你,研究你。道高一尺,魔高一丈。所以,一切方法都不是静止的,而是应该不断变化,不断改进的。
3)时刻关注对正常用户的影响。打击恶意行为的任何动作都可能有负作用。如果这些动作使正常用户在网站上的正常行为受到影响,那么就得不偿失了。
然后,我们来看看防范欺诈和恶意行为的战术方法都有哪些:
1)发现反常的用户行为。反常可以从以下的一些角度寻找:
反常的速率。例如,用户点击页面的速度,购买的频率。
反常的数量。例如,用户购买商品的数量和金额。
反常的动作。例如,一些正常用户不常做的动作,比如“登出账户”。
反常的分布。例如,用户的cookie age。
2)发现关联的用户账户。恶意用户是少数人,他们需要建立大量的账户来实施恶意行为,所以找到关联的、可能由相同的人建立的账户很有帮助。判断账户关联的线索非常多,比如cookie、IP、用户名、email、地址、电话、信用卡号.。.
3)关注新账户。因为有历史,所以老用户容易被判断。新用户的风险比较高,需要有特别的关注
4)数据挖掘技术。通过机器学习,可以找出很多因素和恶意用户的相关程度。很多人觉得数据挖掘、机器学习很神秘,其实简单的将,这些技术就是把定性的东西定量化。比如,从前面的方法(1)(2)(3),你可以找到很多可能发现恶意用户的线索。把这些线索数字化,然后把历史的数据输入模型,你就可以定量地预测出未来的一个用户是否为恶意用户的概率了。
5)根据前面的恶意用户的概率,我们可以把一个用户分为黑、灰、白三类。黑的(明确的恶意用户)就自动封闭了,白的(明确正常用户)就自动放行并且未来尽量避免干扰。灰的需要进一步处理,往往会安排更多的检查方法,比如打个电话给用户。
6)延迟任何反馈信息给恶意用户。恶意用户和网站在博弈。他们越快了解网站是否发现了他们,就会越快做出改进。因此,我们对恶意用户的处置需要做一些迷惑处理,从而使恶意用户花更长的时间才能知道自己已被发现。
实施好这些方法,恶意行为就应该可以被控制住了。简单的讲,一个用户偶尔的一次恶意行为是很难被防范的,但是使用这些方法可以使试图多次实行恶意行为的成本变得很高,从而击退恶意用户。
最后,忍不住说一句,这次淘宝商城事件也说明了过度依赖单一渠道的风险。无论反应激烈的中小卖家,还是无辜被攻击的大卖家,都非常集中的依赖淘宝作为销售渠道。一旦这个渠道出现了系统性问题,那么这些卖家就会受到严重的影响。在技术领域,类似这种问题被称作单点故障(single point of failure),它是各个技术团队非常注意和避免发生的问题。