业务安全通用解决方案——WAF数据风控

作者:南浔@阿里云安全

“你们安全不要阻碍业务发展”、“这个安全策略降低用户体验,影响转化率”——这是甲方企业安全部门经常听到合作团队抱怨。但安全从业者加入公司的初衷绝对不是“阻碍业务发展”,那么安全解决方案能否成为“业务促进者”,而非“业务阻碍者”呢?答案是肯定。

安全和业务接耦,对客户透明的安全产品,如防火墙、IDS、WAF等就很少遭受到类似的吐槽。

但回归到互联网业务安全场景,现在业务安全防控常见场景往往如下:

场景一:

安全:“登陆流量报警了,有人在刷库"

业务:“我看下,这是个登录入口是给哪个业务开放的,已经很久没人维护过了”

BOSS:“有什么方法可以快速止血吗?”​

安全、业务:“这个小入口之前都没有接入过风控系统,只能账号回捞事后处置了”

BOSS:……

场景二:

安全:“这个安全策略需要你们把用户登录的IP发给我。”业务开发改造N天上线。

安全:“这里有一部分IP不对啊,是不是取的网关的内网IP。”

业务开发:……

场景三:

业务开发:“安全让我们纪录user-agent、浏览记录,现在业务的响应时间很多都消耗在打日志上了。做这些有业务价值吗?”

安全:……

这些场景核心问题都在于业务安全解决方案通常嵌入业务逻辑中。那互联网业务安全有没有如同防火墙一样通用的解决方案呢?要解答这个问题我们先探究业务安全的“通用安全风险”。

0x01 业务安全通用安全风险

要找到业务安全的通用风险,首先得定义什么状态才算业务“安全”。当安全工程师被客户问到“这个产品是否安全?”,他往往会考虑各种安全细节问题,业务类的是否会被撞库、是否存在信息泄漏,系统类的是否有注入、水平权限控制等问题。但这些安全细节问题,往往并非问题“是否安全”的答案。

客户所需要的“安全”是一个平衡。没有绝对安全的系统,再健壮的系统也有可能因为安全问题而遭受资损,同时为系统提高安全性也并非零成本。 所以客户需要的“安全”是安全成本和安全资损的平衡。为一个DMZ区的博客服务器专门配备一个安全工程师不是客户需要的“安全”。节约安全成本却导致大规模的撞库事件也不是客户希望的“安全”。

回归到业务安全场景,会发现一个共同特征。只有达到一定规模,批量利用,业务安全漏洞才会造成业务影响。一次Web攻击可能就写入webshell导致机器沦陷,但有限次的撞库、垃圾注册、垃圾消息、刷单造成的威胁是企业可以承受的。而攻击者要达到大规模,批量性的目的,都要通过机器来自动化实现。可以得出结论——大规模、批量性的机器风险是业务安全领域面临的通用风险。

0x02 通用解决方案需求分析

上节已经得出大规模、批量性的机器风险是业务安全领域面临的最大痛点,那么要实现通用的“解决机器风险方案”有哪些需求。针对机器风险业界防御手段已经很成熟——针对人类知识(验证码)、针对人类固有特征(行为识别)、消耗机器成本(POW)等。但业界仍无整合这些防御手段提供通用普适的业务安全解决方案,问题主要有两点——无法做到业务透明和快速部署。

业务透明:

现有的人机识别方案,客户需要前端、后端的改造进行接入,甚至于业务需要配合安全方案进行业务逻辑的调整。安全侵入业务主逻辑,有时候安全甚至成为业务的负担。

快速部署:

机器风险防御手段过于复杂,无法快速部署,进而导致业务系统无法通过配置简单的实现全站部署防控。而业务系统往往有无数的小流量入口,这些未进行部署的入口往往成为漏洞。

0x03 通用解决方案具体实现

如何实现“业务透明”、“快速部署”的通用机器风险解决方案呢?核心是能够以中间人的方式介入浏览器和业务服务器之间,实现如下需求:

  1. 在页面注入相应的Javascript脚本;
  2. Javascript脚本采集数据并hook用户所有触发提交操作的事件,将数据在用户发起请求时注入请求中;
  3. 能够代理转发浏览器与业务服务器的请求,并解析请求内容;

现在中间人攻击工具(MITMf)已经相当成熟,而逆向应用中间人攻击工具的思路似乎可以达成这些需求。在业务服务器与浏览器之间部署WAF服务,用户在浏览网站时由WAF注入前端需要数据采集的JS,同时JS在前端hook用户的请求事件,用户发起请求时将采集的风险识别数据注入,请求再次到达反向代理时,由反向代理提取相应风险识别数据提交风控大脑进行综合决策判断是阻断用户请求还是发起二次校验挑战。

WAF数据风控服务在业务服务器与浏览器之间的交互流程如下图:

关键的业务风险防控采用三层漏斗模型进行层层过滤,达到透明阻断业务风险的目标。这三层漏斗模型分别是:阻断机器从而杜绝攻击者批量攻击的风险,异常流量分析识别部分漏网的机器行为及行为轨迹异常的不良用户,征信模型基于对于用户的信誉评分拒绝不良用户,最终达到将服务推送给目标用户的目的。

阻断机器:

  1. 针对人类固有特征进行机器识别,基于JS实现的可信前端采集用户行为数据,通过线上实时模型来发现机器行为进行阻断;
  2. 消耗机器攻击成本从而让攻击得不偿失,基于POW(proof of work)原理,通过服务端下发问题消耗前端的计算量。对于有足够空余CPU资源的普通用户少量的计算并不消耗成本,而攻击者需要达到批量攻击的效果则会占用极大的计算资源,让攻击得不偿失。

流量分析:

通过机器学习对网络流量中的异常流量进行识别,从而拦截一些行为轨迹异常的不良用户,常见思路如下:

  1. 浏览轨迹,比如在互联网金融场景,正常用户会在注册后对比多款理财产品最后进行下单,而“羊毛党”往往在群里得到活动信息就会直奔活动页面薅羊毛;
  2. URL聚类,在网络购物场景,正常用户购买某款商品之前一般会在同类目商品中进行选择;
  3. 浏览频率,在UGC网站上,用户浏览和评论的一般是有一定时间间隔,频繁秒回的用户极有可能是在发垃圾消息。

征信模型:

伴随互联网诞生有一句经典的论断“在互联网上,没人知道你是一条狗”。然而业务安全场景,识别用户身份、评估用户信誉是业务风控的重要依据。
借鉴现实社会成熟的征信系统,且现在互联网已经是一个成熟的生态闭环。通过设备指纹标示用户,基于用户在互联网的活动记录进行信誉评分,并辅以失信用户名单,从而对bypass前两层的高风险用户进行拦截。

0x04 WAF数据风控服务的价值

回归到文章开始的问题,业务安全防控如何成为“业务促进者”,WAF数据风控服务能否达成这个目标?答案是肯定的。

WAF数据风控服务有两大优势,而这两大优势在保障企业业务安全同时也达到了促进业务发展提速的目标。

第一,业务透明,业务开发资源可以专注的投入在业务代码上,降低企业达成安全需求的成本。

第二,快速部署,WAF数据风控服务可以快速进行全站部署,快速实现对网站业务风险的保障。如同安全带的发明保障驾驶员的安全性同时进而让汽车能够更安全的以更高的速度行驶,对全站进行业务风险防控后也可以让企业真正把业务推送给目标用户,从而让企业的业务发展提速。

作者:南浔@阿里云安全,更多安全类文章,请访问阿里聚安全博客

业务安全通用解决方案——WAF数据风控的更多相关文章

  1. 一个方便且通用的导出数据到 Excel 的类库

    一个方便且通用的导出数据到 Excel 的类库 起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分 ...

  2. Tech 助力Fin ,大数据风控系统赋能掌众金服!

    胡亚海 首席技术官  CTO 北京航空航天大学  博士 深耕互联网领域近20年,先后任职于普天信息技术研究院.摩托罗拉.宇龙酷派.百度等知名企业,曾主导宇龙酷派公司全员从WinCE向Android转型 ...

  3. BAT、网易、京东等如何做大数据风控的?

    大数据风控目前应该是前沿技术在金融领域的最成熟应用,相对于智能投顾.区块链等还在初期的金融科技应用,大数据风控目前已经在业界逐步普及,从BATJ这样的大企业,到交易规模比较大的网贷平台,再到做现金贷. ...

  4. 量化派基于Hadoop、Spark、Storm的大数据风控架构--转

    原文地址:http://www.csdn.net/article/2015-10-06/2825849 量化派是一家金融大数据公司,为金融机构提供数据服务和技术支持,也通过旗下产品“信用钱包”帮助个人 ...

  5. 亿级用户下的新浪微博平台架构 前端机(提供 API 接口服务),队列机(处理上行业务逻辑,主要是数据写入),存储(mc、mysql、mcq、redis 、HBase等)

    https://mp.weixin.qq.com/s/f319mm6QsetwxntvSXpKxg 亿级用户下的新浪微博平台架构 炼数成金前沿推荐 2014-12-04 序言 新浪微博在2014年3月 ...

  6. 人物传记Kyle Tedford:数据环境生变,银行大数据风控怎么办?

    数据是金融业务的基石,监管集中清查大数据公司,很多东西在发生根本性改变,资金方做"甩手掌柜"的好日子不会重现.那些缺乏自主风控能力的金融机构,在未来的行业竞争中,恐无以立足了.近日 ...

  7. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  8. EAIntroView–高度可定制的iOS应用欢迎页通用解决方案

    简介 高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo. 项目主页: EAIntroView 最新示例: 点击下载 入门 安装 安装后,引入” EAIntroView.h”并设 ...

  9. tableZen maxHeight 解决方案 如果数据条数小于N,不进行高度设置,超过N条,直接设置高度,解决原生iview Table 对于右侧固定列,不能计算出正确数值的解决方案

    tableZen maxHeight 解决方案 如果数据条数小于N,不进行高度设置,超过N条,直接设置高度,解决原生iview Table 对于右侧固定列,不能计算出正确数值的解决方案 if (thi ...

随机推荐

  1. U盘安装centos7 无法进入安装界面,进入dracut命令的解决办法。

    最近想要装一个centos7 玩一玩,就从网上下了个镜像,用UltraISO制作了安装U盘,准备在旧电脑上装一个. 结果始终无法进入安装界面,而是进入了dracut命令行. 从网上找了解决方法:

  2. XML 特殊字符

    XML转义字符 以下为XML标志符的数字和字符串转义符 "     (" 或 ") '     (' 或 ') &     (& 或 & ...

  3. yii 验证问题

    yii 版本2.08 yii 验证码问题 1.模型里加入'verifyCode', 'captcha','message'=>'error','captchaAction' => 'tes ...

  4. 使用Fiddler关于“由于目标计算机积极拒绝,无法连接。”的解决方案

    今天使用Fiddler的时候遇到下面这个问题:在地址栏想打开个一般处理程序,出现连接本机失败的提示,如下图: 而这在我没打开Fiddler的时候是显示正常的. 查看Fiddler,在嗅探 -> ...

  5. 二.TimesTen原理及应用场景

    声明:本文章转自麻袋爸爸 一,TimesTen应用场景 在谈论TimesTen内存数据库应用场景之前,我们先来介绍一下什么是内存数据库,及其工作原理吧.内存数据库,顾名思义就是将数据存放在内存中,并通 ...

  6. CPT单臂路由

    路由器配置:Router>enableRouter#configure terminal        进入全局配置模式Router(config)#int fa0/1        进入端口R ...

  7. Jenkins持续集成 & .NET

    最近受累于测试环境每次发布都很麻烦,而且我们有多个测试环境,因此专门抽时间做了Jenkins的配置和研究. 折腾了两天终于绿灯以后,先来个截图,BlueOcean UI还是很nice的. 环境搭建 找 ...

  8. POJ 2718 Smallest Difference【DFS】

    题意: 就是说给你一些数,然后要求你使用这些数字组成2个数,然后求他们的差值最小. 思路: 我用的双重DFS做的,速度还比较快,其中有一个很重要的剪枝,若当前搜索的第二个数后面全部补零与第一个数所产生 ...

  9. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  10. android shape的使用(转)

    shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="ut ...