风控安全产品系统设计的思考与实践
本篇文章会从系统架构设计的角度分享在对业务安全风控相关基础安全产品进行系统设计时遇到的问题难点及其解决方案。内容包括三部分1风控业务架构2基础安全产品的职责3基础安全产品相关系统架构的设计要点。文章会以总-分的形式进行阐述。懂的不多做的太少。欢迎批评、指正。风控业务架构我把风控业务架构的分层分为6层分别是组件层、业务层、决策层、能力层、计算层、可视层。以下基建为基础安全产品的简称。组件层组件层的职责是数据收集与行为反制。从接口、设备、行为三个维度进行数据收集接收决策层的指令进行行为反制。为了保证数据的收集数据的可靠性就衍生出了壳、混淆、反调试等加固策略。更详细的思考在我的《风控安全产品的探索之路》这篇文章中感兴趣可跳转阅读这里就不再赘述。【领域专家系列】去哪儿移动安全产品的探索之路 - 码头工人 - 博客园业务层业务层的职责是风控数据透传与风控决策结果处理。将风控所需要的数据透传至决策层业务层获取到决策层数据后根据决策层结果选择执行风险反制或业务逻辑。透传数据一般包括风控数据和业务补充数据。决策层决策层的职责是风控能力应用。决策层是整个风控业务的核心将风控能力高效连接起来有效、合理地应用能力层、计算层所具备的能力。这一层的难点在于工程而非安全领域例如如何设计调用链路降低计算时长、如何处理超高并发流量、如何保护下游风控内部系统等。其中包括风控参数预处理、风控能力应用组件/名单/模型等、风险决策规则引擎、反制决策观测/登录/验证码/行为验证/封禁。能力层能力层的职责是识别基础安全风险。该层包括设备指纹、环境检测、接口防护、验证码、IP风险、手机号风险、链路风险等。能力层是风控系统的基石它的能力决定了一个风控系统识别风险能力的下限。会从资源、接口、设备、链路、行为等维度进行系统性风险扫描。计算层能力层的职责是补充风险识别能力。该层包括数据引擎、规则引擎、风险名单、识别模型、风险预警。计算层是对基础安全风险识别能力的补充它的能力决定了一个风控系统识别风险能力的上限。从频率统计、策略规则、风险名单、模型识别、风险预警等维度对能力层进行能力补充。可视层可视层的职责是提升运维效率。该层包括运维报表、引擎配置、流量监控、事件追踪。可视层能够在事前能够分析风险潜在风险事中有效执行并降低配置错误概率事后观察风控效果。满足运营策略调整与风险管理的需求。因为目前主要深入了解与实践的是组件层和能力层的建设所以文章后续会从基建基础安全产品的视角进行系统性总结。基础安全组件落地难点接入场景多拉新激活、账号、反爬多业务线、交易多业务线、营销多业务线。接入终端多ADR多技术栈、IOS多技术栈、WX原生、非原生、WEB、TOUCH。接入组件多 防护组件指纹、环境检测、接口防护等、验证码组件、登录组件等。待解决问题架构特性在进行架构设计时我会重点关注架构的这三大特性分别是安全性、易用性、稳定性。安全性因为是安全组件其识别能力和组件自身安全性是首先要保证的。稳定性组件会应用在各个场景所以要尽可能降低由安全组件造成故障的概率。易用性尽可能降低业务接入的成本。具体案例以接口防护组件设计来举例。问题分析攻击场景以ip138查询网举例不代表本人对该网站进行过攻击攻击还原思路描述请求离开容器后通过抓包的方式获取并解析数据然后进行数据篡改、伪造鉴权最后重新构造数据并发送请求。攻击步骤1抓包2解析数据3数据篡改4伪造鉴权5构造数据6发送请求。攻击步骤防御可行性分析防止抓包1抓包在应用外进行2除App其他端防抓包基本不可防3防御性价比不高。防止解析解决方案是加密。1入侵性较强、强依赖2加解密服务稳定性要求高3业务响应时长上升。系统设计系统架构描述系统分层、职责、关系以及运行规则。组件层提供接口防护组件、验证组码件和登录组件。透传层通过数据共享或业务系统透传方式透传风控参数。决策层进行入参校验、版控、能力使用以及反制决策等。能力层提供接口检测能力等。架构特性安全性关于安全性另一篇文章《业务安全相关安全产品的反思》中已经详细阐述这篇文章就不过多赘述。【领域专家系列】业务安全相关安全产品的反思 - 码头工人 - 博客园安全性的难点除了风险识别上的难点还有就是面对多个终端Android、iOS、小程序、PC、Touch其底层逻辑完全不一样。我们如何总结出统一的设计思想方法论这样的类工程问题。如防容器脱离我总结的思想就是上层与业务逻辑建立联系中层多个组件间建立联系下层与操作系统WX容器、浏览器建立联系。