复杂风控场景下,如何打造一款高效的规则引擎

| 在互联网时代,安全现已成为企业的命脉。美团信息安全团队需求选用各种办法和手法来保证事务安全,然后确保美团渠道上的用户和商户利益不会遭到损害。

本文首要介绍了美团在打造自有规矩引擎Zeus(中文名“宙斯”)的进程中,信息安全团队遇到的应战以及对应的解决0 7 9 ; b计划,并共享了许多踩过– Y q的坑,一同还有一些考虑和总结。希望对从事安全范畴相[ [ d A , 5关作业的同学能够有所启示或者帮C _ O助。

背景

美团App每天都面对着各类的诈骗、盗号、做弊、套现以及营销活动被歹意刷单、歹意抢占资源等危险。而事务安全团队选用的首要办法和手t q d法便是在事M t ~务恳求中辨认出谁、# $ q D Z U z在什么时间、通过什么方法、做了什么事。这个辨认逻辑的拟定进程叫做战略的出产。一同,还要对现已完结出产的战略进行快& i 9速的验证和落地,以防止危险改^ 2 X 9变后战略失a $ C e Y C t m效。从发现危险通过战略出产、验证,再到终究的落地布置,全流程的处理速度7 R S f和作用将决议整个事务的胜败。

在事务展开初期,咱们能够通过硬编码的方法将风控逻辑布置在事务逻辑中完结,但美团的事务比较杂乱,从最初的团购形式,通过与群众点评、摩拜、猫眼等事务的交融,展开到涵盖餐饮、到店、猫眼、外卖、金融、酒) * m t U x店、旅行、大交通等多个垂直范畴。跟着事务的快速展开,适用于初期的硬编码方法呈现了战略分散无法办理、逻辑同事务强耦合、战略更新迭代率受限于开发、对接本钱高级多种问题。此刻,咱们需求有一套可装备化的规矩办理渠道,然后完结风控战略与事务解耦、快速布置、验证。

但规矩引擎的建造) U ] u :初期,会晤临着各种困难和应战,首要包含以下几个方面:

  • 在事务层面:垂直范畴多,包含几( c V乎一切的吃喝玩乐服务。美团细分事务多达百个。服务用户人物多(用户、商户、供应商、渠道商),买卖频率高,日订单量大。
  • 在危险层面:存在用户做弊、商家刷单、账号盗用冒用、付出和信贷等多种危险, V s Y % { | E
  • 在企业外部环境层面:黑产已构成自下而上的产业链,攻击方法晋级比较快速。
复杂风控场景下,如何打造一款高效的规则引擎

针对以上这些应战,咱们打造了自l y N v 7有的规矩引擎 Zeus(中文“宙斯”,来源于“宙斯盾”作战体系的启示,希望规矩引擎渠道能同“宙斯盾”一样成为先进的中心作战决议计划体系,完结对危险的精准、高效冲击)。

L ; T ( Q面,咱们就来具体介绍一下,美团信息安全团队在体系构建进程中面对的应战以及对应的解决计划。

应战与计划

1. 事务多-接入本钱高

规矩引擎最早仅仅事n 7 p x p C .务体系中的一个函数,逐渐演化成了独立的服务。而这个独C | i R立服务与事务后台& = a } ^ p y W的交互是单点方法,即事务后台在n & } / b要害动作节点前调用规矩[ ^ w i引擎,判别“有没有危险”。但这样每次新添加一个事务或新呈现一K | ( h $ ?个危险场景时,规矩引擎和事务都要从头进行对接联调。频频地调整给上下流团队都带来了不小的担负,而且在频频的更改中,体系质量也难以保证。怎么快捷、快速地完结事务接入是体系规划的中心方针之一。

在接入本钱上,一次性会集接入往往是最快t x & = k捷的+ 9 % | ;方法。因而咱们挑选在每个事务都会通用节点接入规矩引擎,例如:用户中心、商户中| R e P * l心、订单中心、收银台等均为各类事务的通用节点,规矩引擎同这些通用节点对& – y _ n 4 q (接,事务在调用通用节点时,通用节点调用规矩引擎即可完结事务的接入。

复杂风控场景下,如何打造一款高效的规则引擎

跟着美团事务和场景品种的增多,现在也存在不通过通用节点的事务。因而,咱们需求供给通用的接入接口,现在事务侧直接调用一个独立服务接口即可取得风控判别。

2. 危险点多-逻辑杂乱T w 9 | ? ! R | 3、逻辑复用

危险点多且事务多,进一步添加了场景、战略逻辑的杂乱度。表达式言语可支撑的逻辑核算规模有限,杂乱的逻辑若仍通过硬编码完结,会存在功率低、不易复用等问题。

受模块化思维启示,C j u 咱们将杂乱的逻辑封装成模版,完结装备| 2 o b a #化,并支撑逻辑复用。这样就大大提高了规矩引擎可完结的逻辑规模。现在,咱们现已建造的几类常用的封装逻辑如下:

  1. 扩展函数:首要用于数据O f E ; H %格式的提取和处理,比方字符串、数组等格式转换、数据提取等。通过扩展函数功用,对事务侧数j . k { o ~据格式要求大大下降,也下降了事务侧数据处理的担负。
  2. 累计因子:在事务中会高频运用到与累计相关的逻辑。例如,在登陆、下单、付出等事情需求同IP的UserID进行计数核算,核算成果作为特征引用在规矩中。规矩引擎引进了内部研发M O 6 { e的高效事情计数服务,完结累计通用逻辑的封装,比方支撑累计周期、计数/求和/最近几回、累计值等核算逻辑装备化等等。
  3. 决议计划表因子:部分事务中需求引擎处理的判别条件较多,各条件又彼此9 / ) * K 7 ;组合,存在多种决议计划计划的状况,这就需求用精确、简练的方法来描述这类杂乱逻辑。在低频运用时,咱们a ? . [能够通过硬编码的case-when、if-else等句子完结,但在实时性和装备化上不尽人意。终究,咱们通过决议计划表将多个独立的条件和多个动作直接地联络、清晰地表示出来,并完结了逻辑的封装。
  4. 名单库因子:与V 2 b 7名单库联动进程中,将查询u ? | z F V d名单的逻辑进行封装。
  5. 工具因子:将一堆规矩进行打包– 8 –构成大的逻辑调集,并对组成的规矩设置评分。在履行时输出评分成果并完结跨场景、r l x B K u h跨事务运用,一同将大逻辑进行“黑盒”处理,简化逻辑复用时的装备、沟通本钱。

危险点多的另一个应战点是在多事务中会存在同质性,即拟定的危险t A F 4 + 4 =战略是可复用的。当一百条规矩需求复用在几十个场景中,逐个装备的功率太低,不只一致性难以保证,后续的修正也是问题。一同又衍变出部分复用、部分差异化,让事务直接复用场景行不通。因而,咱们引进【规矩组】的概2 9 . 8 S念,将规矩聚类办理。比方众包5 d l d 8 x t )辨认规矩组、虚假设备规矩组、涉黄内容辨认规矩组等。事务在运i R L用时,可在自己的场景中进行差异化的运v x h u ` `用。

3. 危险} ; K C H a % _ l改变快、长期对立-作用验证速度

当外部危险改变时,f D a P风控的对立也需求及时呼应,这是一个抢夺“主导权”的竞赛。风控通过对不同阶段的组合冲击,完结战略的健壮性,包含用于辨认有没有危险的根底对立阶段、引导节奏混淆视听的“短平快”阶段、诱敌深入的“高精尖”阶段。对应体系需求支撑不同阶段的战略装备、迭代和验证需求。而在战略迭代和布置阶段,需v V l i : I 7求特别注意因装备错误导致的误射中问题。

参阅开发环境分类:测验环境、预发布环境和出产环境。规矩引擎在规矩的C + / X u u F布置和迭代上,可通过符号、双跑和回溯功用,咱们通F e p & k b 3过运用实时线上流量和历史数据来验证战略的有用性。

  • 符号:规矩在场景中的状况,符号状况的规矩逻辑将灰度履行,即:与收效规^ 8 (矩相似会实时履行,但决议计划信息不实时回来给上游事务方,不影响决议计划。一同用户可在实时日志查询中查看符号规矩的射中状况。
  • 双跑:规矩在场景中的状况,双跑状况的规矩逻辑将灰度履行,但仅会呈现在修正收效规矩、因子(因子修正导致引用规矩的逻辑履行改变)时,才会存在的状况。
  • 回溯:规矩在场景中的状况= z J Q,回溯状况的规矩逻辑将灰度履行,但仅运用回放的历史数据{ { u 4 U L

通过这些功用,能够下降战略迭代的危险,缩短战略布置上线的时间周期= 0 – % j 8 !

思路总结

在确认清楚应战和解决计划之后,规矩引擎的整体建造思路就现已构成了。现今,规G 9 c矩引擎跟着事务的快速扩张& Y 7 5 m 7 j m Y,由一个内部体系逐渐展开为服务多个风控团队的公共渠道。

从初期首要9 x ` j D z # X环绕风控防控痛点进行建立的表达式. P y 0 x I v ! K服务包,晋级? I ~ v E ~ R U到装备化渠道,在装备功率和履行功s d } ) o M m q l率也得到了很大的提高。一同,跟着人工( A # h L智能技能的运用和风控对立进入白热化,规矩引擎也将从装备化快速迭代至自动化、智能化。

复杂风控场景下,如何打造一款高效的规则引擎

1. 确认中心快速证明、快速落地

在体系建d Z 0 H C # B造中,进行了充分的2 X ; S j # p证明后$ Z m就需求快速落地,防止因长项目周期需求发作裂变而导致不可控。在初期,咱们现已建立了aviator表达式服务包并稳定服务。因而,装备化渠( b & u 0 M p n道建立时仍根据表达式言语,引进场景、规矩、因子、决议计划等概r V #念建立,将战略的履行分为履行层和核算层。

复杂风控场景下,如何打造一款高效的规则引擎

履行层:通过场景取得一堆规矩调集,规矩履行完结后将其成果和对应的决议计划回来。

成果和:在规矩履行时会进行其构成因子核算。

2. 根e w U e z据人物,进行定向提效

规矩引擎建立的初衷之一是提高风控对立的整体功率。在对立进程中,咱们需求各种人物配合,例如开发建造体系、战略拟定者、战略运用者和危险用户等,因而需求针对各类人物定向展开x X 6 & j ]提效作业。

(1)危险用户处理提效(危险用户)

事务现已能够实时取得风p Y A l s ! R控的决议计划,但发现危险用户会在许多场景下重复攻击。对这 } T N V G类用户的处理,除了对当次行为阻断,还要阻断其未来的行为,因而就有名单办理的诉求。咱们通过与名单库的联动,提高该类用户的处理功率。

例如:在美团金融项目场景下,严峻逾V ~ & y = A z [ 2期的用户会参加禁贷名单,再次申贷时取b w S消其借款资历。

复杂风控场景下,如何打造一款高效的规则引擎

(2)事务接入提效(事务方)

除了} 6 x上面介绍的统一接入外,还有一种常见的状况:事务无法在发起恳求时就将履行所需求的悉z L 4 :数参数预备好,此刻X v Y T ] s 3 P就需求引擎能自动获取外部数据。针对这类状况,规矩引擎通过数据接口的方法完结了外部数据的弥补,在战略履行时根据核算需求动态获取相关的参数。在完结与外部数据联动的功用后,大大下降了运用规矩引擎事务方数据预备阶段的压力,从悉数参数预备简化为仅供给中心参数即可,剩余参数按需引擎自行调度即可。

复杂风控场景下,如何打造一款高效的规则引擎

(3)战略办理提效(产品)

战略产品是规矩引擎的首要用户,首要的作业流程是环绕战略办理、剖析、验证进行提效。怎么办理大量的规矩和运用场景?怎样快s % G 5速验证战略有用性、评价误伤率?客诉反$ Y & % i应问题,怎么快速还原规矩射中状况?针对这些维度,咱们J C T分别供给不同的产品功用进行提效。

  • 在战略办理层面,可通过规A ` L 6 9 5矩组方法* . 3、因子工具等e 7 / q ( s } P D,进行同类规矩调集的办理、打包和复用。
  • 在规矩剖析层面,可通过实时查询规矩的履行具体数据和将规矩履行流程进行回放提高剖析功率。
  • 在战略验证层面,供给符号、双跑和回溯提高战略验证速度。

(4)工程功率提效(工程师)

杂乱的逻辑且具有通用性就能够对特征逻辑封装,防止工程师重复进行逻辑开发作业,释放出的开发o 9 W 1 5 _ @资源能够进行其它维度的提效。

(5)算法/模型接入提效(算法工程师)

当对立晋级时,战略的发生者由人变为算法/模型。而机器7 h 2 W M K D n l的出产功率远远高于人,人工搬运算法/模型会成为迭代功率的瓶颈,怎样跟算法、模型渠道进行快速联动呢?最简单、快速y ] i z g的方法便是运用引擎供给的外部数据联动方法,将模型成果包装成数据接口运用。0 N p M但在实践进程中,咱们发现模型的出入参数较多且存在改变,t p U E整体的) Q – C ) ]装备化功率低,模型运用和迭代频率受约束。公司内部供给的深度学习仍是算法工程渠道,现在主攻核算、练习等场景,在上下流运用供给规范化的数据产出,但无法同相似引擎的渠道对接。

因而,仅0 V 1 } H X 5 }聚集在引擎与算法渠道的联动上,可通过建造调度模块完结:1.练习样本预处理–>2.算法渠道对接–&g9 ` g 8 c 7 wt;3.自动化生成接口–>4m , D ^.自动注册接口/战略至引擎–>5.评价任* d 2务发动–>6.评价成果处理(战略上下线、样本数据沉积)–&gt1 K w Q l;1.练习样本预处理的闭环流程。

复杂风控场景下,如何打造一款高效的规则引擎

3. 发现问题、横O 0 h = 5 ; $ ]– $ I R扩展、兼容更多场景

跟着引擎在多事务场景的运用,咱们发现几个实时引擎欠好处理的场景。比方拉新场景,需求结合“注册+登陆+u r $ 8 e ^买卖”等多种行为2 5 x G _ L C 0 K来判别是否有“薅羊毛”等黑灰产行为q ` 2 f N,需求将许多事情放到一同去综合判定。当h 0 O Q M e u发现危险时,或在当前时间点漏过的变异危险在发现之后,需求对历史数据进行回捞,这些在实时引擎中都不太好完结。当前已有的异步引擎也无法很好地b ( 5 U进行掩盖。为了防止做“重复造轮子”的事情,团队充分地评论了实时、异步和离线引擎的定位和服务鸿沟。

复杂风控场景下,如何打造一款高效的规则引擎
复杂风控场景下,如何打造一款高效的规则引擎

在实时引擎现已掩盖的逻辑根底上,咱们引进新的封装逻辑-个别因子,大局因子完结SQL句子的装备化办理,然后完结批量累计、聚合特征的核算,比方:近一年某商家的均匀下单金额,近30天商户大盘下单均值,规范差等批数据的杂乱逻辑。并根据Spark和实时引擎底层,完结多流和批数据的处理,解决上述场景无法处理的一些问题。

4. 事务实践成果

买卖安全

战略产品在日常作业中,通过对事务剖析发现危险、发掘危险特征并运用在战略中。通过Zeus完结战略的布置和运用,大大下降了事务危险,提高危险防控功率。例如:在某事务地推场景中发现B、C端联合刷单危险,以返利、送赠品收到诱骗下单。

复杂风控场景下,如何打造一款高效的规则引擎

金融安全

金融风控首要有反诈骗和信l ; m h M u用安全。反诈骗同事务安全在战略形态上相同,e @ r $ X 7 [都是判别有无危险,在决议计# = q S 4划成果上是通过和回绝。因$ ; } F * 7而,通过普通决议计划即可满意事务需求。

但信用安全会比前两者杂乱一些,在决议计划上,除了通过和回绝外,关于通过的恳求要进行分层完结金融的差异化定价。5 D t : : C B ?因而,需求在规矩引擎中引X 1 0 B进更多功用,R O c 7 x M H来满意m H v 3 + m事务需求。首要包含:

  • 路由场景:可支撑多层,决议计划流形式,即一堆规矩的调集,支撑按照逻辑进行分流,满意指定条件能够指定走向在每个节点进行条件设置,完结终究流向。例如:关于某分x 7 * Q j { ^ 7期场景用户申请一笔借款,需求通过诈骗辨认、信用评价后方可给出终究的额度、定价。
  • 决议计划衍生参数:适用于杂乱的多级路由决议计划场景Key-Value型数据,在决议计划中指定衍生参数信息然后在路由场景中发生大局传递变量,比方:流转过不同的场景需求将用户进行等级分类。
  • 决议计划附加信息:适用于杂乱决议计划^ f i N z场景Key-Value型数据,在决议计划中指定附加信息然后完结更多决议计划信息的核算及回来,比方:参加风控名单库,参加什么危险类型、危险等级、名单类型。
复杂风控场景下,如何打造一款高效的规则引擎

未来展开V P : K 7 4 :与考虑

现在规矩引擎正处于装备化阶段,正在向自动化、智能化的阶段展开,然后不断提高战略的办理和迭代的速度。但事务间的智能化诉求和进程不同,渠道能够供给更多集成保V X y F 1 0管服务,然后提高各事务的@ ( 4 J ? J G智能化掩盖度。

其次,引擎依然存在无法处理的几个问题:

一些长期周期特征无法快速运用的问题,例如近一年的Z m / i时间周期。怎么将离线引擎和实时引擎在特征核算上组合,完P / . o F I 2 Y结特征的快速出产、验证和运用,然后扩展引擎的核算能力规模、提高风控事务的对立功率。

当前引擎的接入对非杂乱逻辑需求的事务就比较重。而接入本钱是各事务接入时重点评价的因素,怎么完结快速、低本钱的事务接入(包含技能接入和人员操作接入),考虑供给模块化的引擎核算服务能力适用于各类事务诉求,完结按需接入,比较“臃肿”的大局接入会更快速和快捷。但这种在引擎侧怎样更好地办理这些模块,也是一个应战。

最后,事务流量和战略的增长速度仍在高速增长,引擎的稳定性u | } 9和战略办理功率也需求继续提高。

踩过的坑

1. 怎么完结产品功用高聚合架构上低耦合

规矩引擎建造时兼容各类R ) ! S | V _ ~ r事务场景,具备了极高的灵活性,一同本身也相对杂乱。从顶层的路由场景到底层的参数(路由场景-场景-规矩组-规矩-决议计划-因子-参y a v e数-数据接口-参数)每一个节点、节点间都是由用户装备的,在产品上希望用户的操作流程是连接的,在一个操作流程中解决尽量多的问题。体系架构上,包含装备层、履行层、核算层、数据获取层等,0 F D u 0 ( p ] XM H u a层之间彼此依赖,对终究引擎的输出成果负责,底层上需求尽量的解耦合,才将下降单模块对引擎的影响。但在实践中,跟着事务诉求的增多,渐渐就呈现来产品上的低耦G Q 9 { w L 0合、架构上的高耦合状况。m o ! r B 2

例如:在用户修正{ D [ s q d出产战T p a 5 Y l略时的强制更新流程优化项? h D P J O E目中 ,就涉p x } E B G # 7 w及了这个问题。在产品功用上用户修正战略–>双版别W B ( 3 + #战略并行履行–V / & = & P T>两版别数据核验–>修正完结;但在体系架构上,上述的产品流= r { k k #程就发生? X w f u ) : ,了体系架构高耦合Q 9 0 ; { , f L Z,即出产修正双版别问题,装备层、履行层、核算层高度耦合。项目一期上线后在性能上、后续功用扩展性上都有瓶颈。随后,技能项目优化装备层的缓存形式,选用增量更新方法。产品功用上添加用户进入修正形式后修正。从头立项后,完结了用户修正流程闭环、体系架构上仅装备层兼容双版别,履行层和核算层无耦合。

因而,在产品功用规划上除了用户闭环操作外,还需求考虑是否低耦合。在技能优化时需求前瞻性的w k & +展开去耦合项目。

2. 怎么平衡I 7 R : v 7 a H =体系杂乱度与事务需求

跟着接入事务的增多,又需求兼容新事务定制化Z l } /需求,就面对这一个问题:定制化的功用不具有通用性6 = U i b [,大量定制功用将加剧渠道的杂乱度。这个问题一直困扰引擎建造团。,n p . 6 # M现在,咱们选用的或许不是最优但比较有用的办法。首要通过定、Y 8 U T g判、看Gap,将事务需求转化为体系模块晋级功用和非体系功用:

  • :从G 9 =头界说“定h V . $制和通用”。在现实中有些定制化需求其实是事务速度现已远远领先于其它事务,一切需求看上去是定制化,实际上是未来可预见性的问题。
  • :将i a N 7 j ^ m事务需求进行分类,判别需求是针对骨干流程仍是分支节点。
  • 看GapV + I需求同当前建造状况比对差距。

关于体系模块晋级功用,可逐个完结。关于非体系功用,可通过供给公共对接服务的外挂来完结。

3. 特别需求“防呆”规划

人工操作会存在各类误操作引起的危险问题,在产品规划上,用户操作简练的初衷是好I @ @ d $ p h 6的,但需求添加防止错误发作的约束方法。在实践中这些“防呆”设置大大下降了人工误操作Case,例如:

  • 事务高峰期封版—>禁止事务高峰期时改变战略。
  • 下降无逻辑验证的误伤状况–>战略上线前,强制符号验证履行是否契合事务预期;修正出产上运用的战略,强制双跑验证修正后的逻辑履行是否契i q I ^ I合事务预期。
  • 下降逻辑装备错误几率–&gtx } * L / C } D I;战略布置时强制测验逻辑正确性。
  • 惯性操作–>验证数据成果强制回填等。

4. 产品功用最佳实践的意外惊喜

要供认一个现实便是,最了解功用运用的或许o ? U不是规矩引擎的产品司理。V m t K { +在规矩引擎的建造中呈现了这样的} Y V K @ R R”惊喜”,例如:

  1. 规矩组功用建造初期方针是完结规矩的高效办理、复r L e用。在A事务场景根据规矩组除完结规矩的高效办理、复用外,还完结了决议计划核算。但这种用U $ x法在跟着其事务的展开杂乱度添加,现已不再利于战略高效办理,现在还在寻找更优的解决计划。
  2. 累计因子的功用是将对多条恳求进行计数或求和逻辑进行封装。B事务根据上述功p M _ % M用上仍是完结了事情行为记载、多事情时序性Y ? 7 g累计和阻拦行为的累计。现在在其事务下广泛运用并有用地辨认了跨事情危险。

总结而言,做好事务定期运用回访和运用监控对错常有必要的。

招聘信息

美团信息安悉数3 W s i E ,正在招聘实习生,事务方M 0 a 6向包含:安全后端开发机器学习算法自然言语处理风控战略数据开发Web前端测验开发产品司理产品运营安全与隐私合规等。作业地址:北京/上海。O t v欢迎感兴趣的同学发送简历至:tech@meituan.com(邮件标题注明:美团信息安全团队)

阅读更多技能文章,P c I请扫码重视微信大众号-美团技能团队!

复杂风控场景下,如何打造一款高效的规则引擎

发表评论

提供最优质的资源集合

立即查看 了解详情