公司前段时间发生了用户账号被盗事件,虽然和我负责的模块没有太大关系,但也促使我去思考,如何从产品设计上去做好安全防范工作,保护用户的利益。
事情的经过是这样的,用户在我们的移动平台上进行着登录操作、业务操作、支付操作(用的自己公司的支付平台),这样或多或少都有些资金留在平台上,不良分子通过盗取用户账号进入到支付钱包用钱包里面的余额给自己手机充值,幸运的是因为支付没有推广起来,用户钱包的金额不是太大。
通过公司用户资金被盗事件,做为产品人员是可以通过一些技术手段或者风控规则来减少此类事情发生的,那究竟怎么来设计呢?
我的想法是这样,首先要构建风控体系,建立模型来对用户的每一个操作行为进行跟踪和量化赋值,而这些量化的赋值也是要根据历史数据来设定,一旦用户的操作行为超出了对应赋值分数的阀值,系统就是启动安全保护机制,采取对应的措施进行限制。
系统层面的规则设计:
登陆阶段:
1、登录频次类规则:对同一用户、手机号、设备号进行频次及失败登陆次数的监控。当在短时间内频繁登录失败,可以在一定的失败次数后(如三次)要求用户输入图形码或者手机验证码进行登陆,防止账号密码被暴力验证。当频繁登陆异常超过最高等级的安全阀值时(如密码错误5次),就可以 禁止该账户在某段时间内进行任何操作。
2、设备更换规则:账号可以和设备指纹进行绑定,但一旦更换设备进行登陆,系统识别出不符合该用户历史行为规则及设备时,需要用户输入手机验证码进行登录。
3、IP地址不一致:当该账户登陆的地址与常用登陆的IP地址不一致时,系统会进行短信或者邮件等提醒,如网易、魔兽战网。
操作阶段:
1、不正常的页面浏览访问及操作路径:系统对用户的页面访问及操作路径与历史访问记录进行对比判断,当风控系统判断出和用户历史的操作记录不一致时(如我们的用户平时都是在白天进行账号登陆操作,突然某天在夜间或者凌晨进行账号的登陆操作,那系统可以判断为异常),自动采取安全保护机制,根据不同的安全阀值进行短信提醒、强制验证码登录或者禁止在某段时间内进行任何操作。
支付阶段:
1、设置支付密码:对大额支付都需要进行支付密码或者支付验证码操作。
2、不符合正常常理的规则:同一个账号或者设备在极短的时间内在2个不同的城市进行支付操作,此时风控系统就要启动对该账号的保护机制;
3、不正常的支付行为:同一个账号支付额度和支付次数与历史记录不付时,如该账号历史平均日支付次数在5次,金额在500-1000之间,一旦该账号的支付行为和历史支付的记录不符,风控系统就要介入进行保护。
本人也只是粗略的描述下自己对于当前业务下场景下账号被盗风控的想法,要真正建立起一套完整的风控规则,还需要在业务发展中不断去完善优化。