陌陌风控系统静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为。

【名词解释】

策略原子:基于用户行为数据进行异常判断的基础元素,如设备黑名单、手机号黑名单等

管控原子:用户命中策略原子后对应的管控措施,如短信验证码、滑动验证码等;

规则:基于不同业务点建立的规则ID,由多条策略原子+管控原子构成;

错误提示码:用于前端规则命中后的提示,便于运营人员排查问题,解决问题。

【方案设计简介】

规则配置:用于不同业务点的规则配置;

策略配置:用于设置策略原子及策略原子;

数据源配置:基于业务数据而设置的数据来源key,用于风控策略的运算;

数据统计:用户命中规则的数据统计与展示;

【使用说明】

当一个业务需要接入风控系统进行管控时,通过以下步骤进行配置

1. 建立该业务数据源,业务方需要向此数据源推送业务相关数据;

2. 建立该业务所需要的策略原子,部分策略原子需要依赖该业务数据源;

3. 新建规则配置,设置策略名称、权重、策略原子组、管控原子、提示语,完成规则配置;

4. 业务方调用此配置,进行业务风控;

快速启动

  1. 本项目依赖redis, mysql, mongodb,因此需准备环境并更改配置项
 # 为了简单可以使用docker安装 # docker安装文档地址(以ubuntu为例): https://docs.docker.com/install/linux/docker-ce/ubuntu/ mongo: docker run -d --name mongo -v $HOME/docker_volumes/mongodb:/data/db -p 27017:27017 mongo:latest mysql: docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -v $HOME/docker_volumes/mysql:/var/lib/mysql -v $HOME/docker_volumes/conf/mysql:/etc/mysql/conf.d -p 3306:3306 mysql:5.6 redis: docker run -d --name redis -p 6379:6379 -v $HOME/docker_volumes/redis:/var/lib/redis redis:latest
  1. 在mysql中创建risk_control库
 docker exec -it mysql mysql -h 127.0.0.1 -u root -p # 后续需输入密码 若以上述方式安装mysql,密码为root. CREATE DATABASE risk_control CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 创建数据库时指定编码格式,规避乱码问题(注意: 此编码格式在mysql低版本上可能有兼容性问题)
  1. 安装所需依赖,本项目基于python2.7进行开发,可运行pip install -r requirements.txt安装依赖包
  2. 初始化django运行所需的表并创建账户,并可以预生成一些数据(可选)
 # 在www目录下 python manage.py makemigrations && python manage.py migrate # 创建管理员账户 此处详见 其它操作--增加用户 python manage.py createsuperuser # 后续 依次输入用户名、密码、邮箱 即可创建一个管理员账号 # 如果希望对系统有一个直观的感受,可以使用如下指令来预注入一些数据 python manage.py init_risk_data
  1. 启动服务
 # 在aswan下以nohup的方式启动服务进程、管理后台、拦截日志消费进程 bash start.sh

后台介绍

  1. 名单管理
  2. 为名单型策略提供基础的数据管理功能。
  3. 名单数据的维度包括:用户ID、IP、设备号、支付账号、手机号。后续也可以根据自己的需求扩充其他的维度。
  4. 名单包含三个类型:黑、白、灰名单
  5. 名单必须属于某个项目(用于确定名单的范围),可以在名单管理-名单项目管理中添加项目。
  1. 名单型策略
  2. 描述符为**{参数名:单选,假设是“用户ID”} {操作码:在/不在} {XX项目:单选,可选全局} 的 {维度:单选}{方向:黑/白/灰名单}**
  3. 示例:用户ID 在 初始项目 的 用户黑名单 中
  1. 布尔型策略
  2. 不传阈值的布尔型,描述符为 {参数名:单选,假设是"账号ID"} {操作码:是/不是} {内置函数:异常用户} 示例:账号ID是异常用户
  3. 传阈值的布尔型,描述符为 {参数名:单选,假设是"账号ID"} {操作码:大于/小于/等于/不等于} {内置函数:历史登录次数} {阈值:170} 示例:账号ID历史登录次数大于100
  4. 内置函数是什么?就是自定义的一些逻辑判断函数,只需要满足要求返回布尔值即可。比如注册时间是否在某个范围以内,当前设备是否是常用设备。
  5. 时段频控型策略
  6. 描述符为 同一 {计数维度:单选,假设是“设备”} 在 {时段:时间跨度} 内限制 {阈值:整数N} 次 某动作 示例:同一设备一天内限制操作10次. 可是我怎么知道当前已经有多少次呢?这就需要上报,上报后将计数 详见第9条 数据源管理
  1. 限用户数型策略
  2. 描述符为 同一 {计数维度:单选,假设是“设备”} 在 {时段:时间跨度} 内限制 {阈值:整数N} 个用户
  3. 示例:同一设备当天限10个用户 此策略同样需要上报的数据,且由于与用户相关,因此上报数据中必须包含user_id字段(在数据源中需配置) 详见第9条 数据源管理
  4. 规则管理
  5. 管控原子:命中某条策略后的管控动作,比如拦截... 把上面2--5中所述的策略原子按照优先级组合起来,由上向下执行,直到命中某条策略,则返回对应策略的管控原子。此模块更多是重交互,完成策略的配置、组合、权重等等
  1. 日志管理
  2. 所有命中策略的日志均在此展示,也会包含审计相关的日志,下一期会基于此日志,开放拦截溯源功能。
  1. 权限配置
  2. 供权限设置使用,精确限定某个用户能看哪些页面的数据。 详见 其它 -- 权限管理。
  3. 数据源配置
  4. 示例策略:同一设备一天内限制登录1000次 那么每次登陆就需要上报一条数据,系统会分类计数,并分类存储。 存储的名字叫啥?就是此处要配置的数据源。对于此策略,只需要配置数据源,命名为login_uid, 字段包含uid, uid类型是string。然后程序就能根据uid为维度计数,并自动计算指定时间窗口内是否超出指定阈值。
  5. 重要:由于逻辑必然依赖时间信息,为通用且必需字段,timestamp为默认隐含字段,类型是时间戳(精确到秒,整数)

调用样例

  1. 调用查询服务
  2. 假设存在id为1的规则,则可以通过如下方式查询是否命中策略
curl 127.0.0.1:50000/query/ -X POST -d '{"rule_id": "1

esxi root 密码规则_陌陌风控系统静态规则引擎aswan相关推荐

  1. ESXi root 密码重置

    忘记ESXi root密码?不慌,这里有4种方法来重置. 密码是大家容易忘记的东西,ESXi的root密码也不例外.没有root密码,你将失去对主机的控制,所以知道如何重置ESXi root 密码很重 ...

  2. mysql 重置root密码 远程访问_重置mysql的root密码以及设置mysql远程登陆权限

    root 密码忘记,重置mysql的root密码 :t 一.修改mysql的配置文件my.cnf 1. 在[mysqld]的段中加上一句:skip-grant-tables [mysqld] data ...

  3. mysql 8 修改root密码忘记_忘记mysql8或者mariadb5及以上 的root密码如何更改

    实验环境 操作系统:lsb_release -a No LSB modules are available. Distributor ID:Ubuntu Description:Ubuntu 20.0 ...

  4. 阿里云 mysql 修改root密码修改_设置及修改MySQL root用户密码 - MySQL中文参考手册...

    设置及修改MySQL root用户密码MySQL数据库用户安全策略介绍 安装mysql数据库后,默认的管理员root密码是空,这很不安全,因此需要设置一个密码为root设置密码 删除无用的MySQL库 ...

  5. 阿里云 mysql 修改root密码修改_怎样修改数据库root密码

    在 Linux 中修改 MySQL 或 MariaDB 的 Root 密码 如果你是第一次安装 MySQL 或 MariaDB,你可以执行 mysql_secure_installation 脚本来实 ...

  6. 基于flink与groovy实现全实时动态规则智能营销与风控系统

    前言:本文是对视频课程<基于flink与groovy实现亿用户级实时动态规则智能运营系统>的介绍说明: 本项目极具行业实用价值,可为各企业开发人员提供系统设计思路与灵感,而且,它不光可用于 ...

  7. mysql 中文排序是什么规则_什么是 MySQL 的排序规则(Collation)?

    什么是 MySQL 的排序规则(Collation)? 马富天 2020-01-19 14:56:58 15 [摘要]当我们在使用 navicate for mysql 等第三方客户端管理界面新建一个 ...

  8. 没有mysql不能设置root密码怎么办_无法给MySQL root用户修改密码的解决方法

    本人编译安装完MySQL数据库,想给root用户修改密码,结果无法修改,并且报错,报错大概信息如下: mysqladmin: connect to server at 'localhost' fail ...

  9. 华为的型号命名规则_电力电缆产品的型号命名规则

    电力电缆型号的组成是有一定规则的,例如:控制电缆型号代表为KVV.计算机电缆型号代表为DJYVP.橡套电缆型号代表有YZ.YC.YH等等,这些型号代码均由以下九大规则构成的. 一.绝缘代码-Z油浸纸, ...

最新文章

  1. Jmeter之完整的HTTP接口测试
  2. h5实现手机端等级进度条
  3. 常考数据结构与算法:括号序列
  4. PHP处理图片(orientation)旋转问题
  5. C++中lock_guard的学习
  6. 数据库mdf和ldf文件_如何将SQL数据库文件(MDF和LDF)移动到另一个位置
  7. 从无到有axure原型设计_Axure|微信原型制作
  8. sql server 2008使用教程
  9. 用Wineskin在Mac上运行exe文件
  10. 计算机网络毕业论文格式模板范文,计算机毕业论文格式模板范文(计算机毕业论文选题)...
  11. NOIP2016排名(1~745)
  12. 组合数计算(从1000到1e9的组合数各类求法)
  13. 用trace32分析内核死机
  14. 干货|如何轻松安装和永久激活photoshop cs6
  15. java catch后面_java 异常被catch后 将会继续执行的操作
  16. lopa分析_LOPA分析:使能条件和修正因子在场景识别方法中的应用
  17. 学科实践活动感悟50字_社会实践活动的自我评价50字
  18. 看得见风和日丽,看不见风起“云”涌
  19. 牛客小白月赛24J--多项式取模
  20. Matlab实现拉格朗日插值函数

热门文章

  1. 十分钟搞定特征值和特征向量
  2. BPEL4WS基础知识
  3. PNAS新研究:剑桥学者发现,有些 AI 模型无法被计算
  4. 2019.3.23 捕获异常
  5. ThinkPHP3(添加,修改,删除)
  6. Dede更新提示DedeTag Engine Create File False的解决办法
  7. sqlalchemy外键和relationship查询
  8. MySql分页存储过程
  9. Spire.Pdf 的各种操作总结
  10. OpenCV图像或视频显示在VC对话框中的方法