不知道用户异常行为如何管控?这个开源项目了解一下

栏目: 软件资讯 · 发布时间: 5年前

内容简介:了解更多牛x开源项目与工具

点击蓝色“ TJ君 ”关注我,

了解更多牛x开源项目与工具

不知道用户异常行为如何管控?这个开源项目了解一下

当我们的产品用户越来越多的用户加入,流量越来越大。各种牛逼投资机构开始看上了你的时候,很多灰色地带的黑手也开始盯上了你这块流量蛋糕。这时候,对于用户异常行为的防护就会变得越来越重要。但是,往往现实总是那么残酷,无法拒绝的业务需求与不得不做的安全管控,在一定的成本控制之下,对于人力的投入选择变得异常艰难。对于这样的场景,TJ给大家推荐下面这个开源项目:

- 项目名称:陌陌风控系统静态规则引擎

- Github:https://github.com/momosecurity/aswan

架构介绍

不知道用户异常行为如何管控?这个开源项目了解一下 后台介绍

  1. 名单管理

    为名单型策略提供基础的数据管理功能。

    名单数据的维度包括:用户ID、IP、设备号、支付账号、手机号。后续也可以根据自己的需求扩充其他的维度。

    名单包含三个类型:黑、白、灰名单

    名单必须属于某个项目(用于确定名单的范围),可以在名单管理-名单项目管理中添加项目。

    不知道用户异常行为如何管控?这个开源项目了解一下

  2. 名单型策略

    描述符为**{参数名:单选,假设是“用户ID”} {操作码:在/不在} {XX项目:单选,可选全局} 的 {维度:单选}{方向:黑/白/灰名单}**

    示例:用户ID 在 初始项目 的 用户黑名单 中

    不知道用户异常行为如何管控?这个开源项目了解一下

  3. 布尔型策略

    不传阈值的布尔型,描述符为 {参数名:单选,假设是"账号ID"} {操作码:是/不是} {内置函数:异常用户} 示例:账号ID是异常用户

    传阈值的布尔型,描述符为 {参数名:单选,假设是"账号ID"} {操作码:大于/小于/等于/不等于} {内置函数:历史登录次数} {阈值:170} 示例:账号ID历史登录次数大于100

    不知道用户异常行为如何管控?这个开源项目了解一下

    内置函数 是什么?就是自定义的一些逻辑判断函数,只需要满足要求返回布尔值即可。比如注册时间是否在某个范围以内,当前设备是否是常用设备。

  4. 时段频控型策略

    描述符为 同一 {计数维度:单选,假设是“设备”} 在 {时段:时间跨度} 内限制 {阈值:整数N} 次 某动作 示例:同一设备一天内限制操作10次. 可是我怎么知道当前已经有多少次呢?这就需要上报,上报后将计数 详见第9条  数据源管理

    不知道用户异常行为如何管控?这个开源项目了解一下

  5. 限用户数型策略

    描述符为 同一 {计数维度:单选,假设是“设备”} 在 {时段:时间跨度} 内限制 {阈值:整数N} 个用户

    示例:同一设备当天限10个用户 此策略同样需要上报的数据,且由于与用户相关,因此上报数据中必须包含user_id字段(在数据源中需配置) 详见第9条 数据源管理

    不知道用户异常行为如何管控?这个开源项目了解一下

  6. 规则管理

    管控原子:命中某条策略后的管控动作,比如拦截... 把上面2--5中所述的策略原子按照优先级组合起来,由上向下执行,直到命中某条策略,则返回对应策略的管控原子。此模块更多是重交互,完成策略的配置、组合、权重等等

    不知道用户异常行为如何管控?这个开源项目了解一下

  7. 日志管理

    所有命中策略的日志均在此展示,也会包含审计相关的日志, 下一期会基于此日志,开放拦截溯源功能不知道用户异常行为如何管控?这个开源项目了解一下

    不知道用户异常行为如何管控?这个开源项目了解一下

  8. 权限配置

    供权限设置使用,精确限定某个用户能看哪些页面的数据。 详见 其它 -- 权限管理。

  9. 数据源配置

    示例策略:同一设备一天内限制登录1000次 那么每次登陆就需要上报一条数据,系统会分类计数,并分类存储。 存储的名字叫啥?就是此处要配置的数据源。对于此策略,只需要配置数据源,命名为login_uid, 字段包含uid, uid类型是string。然后程序就能根据uid为维度计数,并自动计算指定时间窗口内是否超出指定阈值。

    重要:由于逻辑必然依赖时间信息,为通用且必需字段,timestamp为默认隐含字段,类型是时间戳(精确到秒,整数)

不知道用户异常行为如何管控?这个开源项目了解一下

调用样例

  1. 调用查询服务

    假设存在id为1的规则,则可以通过如下方式查询是否命中策略

curl 127.0.0.1:50000/query/ -X POST -d '{"rule_id": "1", "user_id": "10000"}' -H "Content-Type:application/json"
  1. 调用上报服务

    假设存在名称为test的数据源, 且数据源含有的数据是: {"ip": "string", "user_id": "string", "uid": "string"}

curl 127.0.0.1:50000/report/ -X POST -d '{"source": "test", "user_id": "10000", "ip": "127.0.0.1", "uid": "abcabc112333222", "timestamp": 1559049606}' -H "Content-Type:application/json"
  1. 关于服务拆分

    开源样例中,为了简化安装部署,查询和上报揉进了一个服务。实际场景中,显然读写应该分离。

    1.可以直接此方式部署2份,域名不同,一份用于查询(上报接口不被访问),一份用于上报(查询接口不被访问),流量分发在nginx层完成

    2.risk_server.py中修改配置URL_2_HANDLERS,选择您需要的服务接口部署

内置函数的扩展

  1. 不带阈值的内置函数扩展

    是否异常用户 内置函数为例

    代码见 aswan/buildin_funcs/sample.py 中的 is_abnormal 方法

  2. 带阈值的内置函数布尔型策略扩展

    历史登录次数 内置函数为例

    代码见 aswan/buildin_funcs/sample.py 中的 user_login_count 方法

    注意:阈值计算不包含在内置函数中进行,控制流详见 aswan/buildin_funcs/base.py

其它

增加用户

考虑到企业用户大多数为域账户登录,因此推荐使用LDAP认证模块直接集成。但考虑到大家的场景不一样,因此也可以手动增加用户,样例代码如下:

# coding=utf-8
from django.contrib.auth.models import User

username = 'username'
password = 'password'
email = 'email@momo.com'
first_name = '测'
last_name = '试'
# 普通用户
User.objects.create_user(username=username, password=password, email=email, first_name=first_name, last_name=last_name)
# 管理员账户
User.objects.create_superuser(username=username, password=password, email=email, first_name=first_name, last_name=last_name)

添加完成后,让用户登录,然后管理员配置权限即可。

权限管理

目前的权限模型包含如下元素,可在对应的页面进行配置。

不知道用户异常行为如何管控?这个开源项目了解一下

具体图示如下:

不知道用户异常行为如何管控?这个开源项目了解一下

不知道用户异常行为如何管控?这个开源项目了解一下

不知道用户异常行为如何管控?这个开源项目了解一下

配置相关

目前Django部分的配置均存放于 www/settings 目录,非Django部分的配置均位于 config 目录下。

为了在不同环境加载不同的配置,我们使用了RISK_ENV这个环境变量,系统在运行时会自动通过这个环境变量的值加载对应的配置文件。

为了方便项目启动,在未设置这个值时,系统默认会加载 develop 环境的配置。而在执行测试时(python manage.py test)时,RISK_ENV的值必须是 test 。

往期推荐

大家好,我是TJ

一个励志推荐10000款开源项目与 工具 的程序猿

不知道用户异常行为如何管控?这个开源项目了解一下

欢迎关注我,了解更多牛x东东


以上所述就是小编给大家介绍的《不知道用户异常行为如何管控?这个开源项目了解一下》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pattern Recognition and Machine Learning

Pattern Recognition and Machine Learning

Christopher Bishop / Springer / 2007-10-1 / USD 94.95

The dramatic growth in practical applications for machine learning over the last ten years has been accompanied by many important developments in the underlying algorithms and techniques. For example,......一起来看看 《Pattern Recognition and Machine Learning》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具