随着互联网的高速发展,Web应用越来越为丰富,但Web服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL注入、网页篡改、网页挂马等安全事件,频繁发生。因此WAF应运而生。

一、WAF是什么?

WAF全称为Web应用防火墙(WEB Application Firewall),虽然名字中有“防火墙”三个字,但Web应用防火墙和传统防火墙是完全不同的产品,和Web安全网关也有很大区别。

传统防火墙只是针对一些底层(网络层、传输层)的信息进行阻断,而Web应用防火墙则深入到应用层,主要提供 SQL注入、XSS跨站、代码执行、命令执行、文件上传等Web漏洞进行检测和防御阻断,这是Web应用安全防火墙和传统防火墙的本质区别。

Web应用防火墙与Web安全网关的差异在于,后者保护企业的上网行为免受侵害,而WEB应用防火墙是专门为保护基于Web应用程序而设计的。

二、WAF的使用场景

随着互联网与物联网技术的快速发展,网络威胁复杂多样。安全建设和黑客攻击一直就是一场道与魔的对抗博弈。

作为服务提供方,必须对黑客攻击者做到知己知彼,才能采取准确有效的安全对策来应对非法攻击。黑客常用的攻击方法可以说是变幻莫测,不过仔细分析后也会发现整个攻击的过程是有规律可循的,一般的黑客攻击过程大致如下:


如上图所示,黑客的攻击入侵过程主要包含两部分:一是突破用户安全防线,即恶意探测和边界突破两个环节;二是黑客成功进入用户网络后,通过持续的渗透、安装工具、横向移动等步骤,最终实现数据窃取或破坏等目的。

显然,黑客开启入侵的第一步即是“恶意探测”,通常也可理解为踩点扫描。黑客为了对攻击目标进行多方了解,最常用的途径就是利用扫描工具对目标用户网络进行端口及漏洞扫描,查看服务器的运行状态等基本信息,一旦发现安全漏洞就会利用其实施攻击,最终达到非法入侵的目的。

因此,要想降低安全事件发生的概率,我们必须从源头阻止黑客的攻击。通过防扫描的方式阻止黑客“恶意探测”,让用户在第一时间发现安全威胁并阻止黑客扫描行为,从而提升黑客攻击成本,为自身赢得宝贵的应对时间,大幅度降低黑客侵入企业内网的风险。


目前常见的WAF都具备攻击请求检测和拦截功能,主要处理逻辑是正常请求和攻击请求的区分。现主流的区分方式主要有规则匹配和机器学习。

(1)规则匹配。这种区分方法是使用时间最长、准确率最高最为可控的一种方式。目前比较成熟,适用与RCE远程命令执行类漏洞的攻击防护(如Fastjson RCE 远程代码执行漏洞),目前被大部分WAF所采用。不过由于这种方式是根据请求的特征来识别攻击,所以当新型攻击出现时,需要根据攻击payload进行防护规则更新,且随着规则集合的不断迭代,规则更新及时性带来安全挑战。

(2)机器学习。使用已知的攻击请求数据作为黑样本,使用正常业务请求作为白样本,利用机器学习算法计算出模型,常见的有SVM、KNN等。这种方式相比较于规则匹配,不用维护规则,但对于未知攻击同样无法识别。

三、京东数科WAF-数科盾


数科盾是京东数科安全团队自主研发的Web应用安全防火墙,适合业务场景的Web应用安全防火墙。使用分布式架构,多节点多活,故障自动切换,具备处理大流量、高并发的能力。能快速响应业务请求,支持规则自定义,贴合业务,适配多种复杂网络环境。

四、产品优势

1.旁路拦截

我们的WAF分为检测模块和请求转发模块,请求转发模块使用nginx改造,将请求转发给WAF检测模块,检测模块检测请求是否是攻击,如果是攻击请求,则由转发模块负责拦截该请求。将攻击检测作为微服务旁路运行,提升了系统的稳定性。

2.机器学习

(1)离线机器学习


所有的模型以及阈值我们是通过WEBIDS进行模型的计算以及阈值的计算和调试,在WebIDS中效果达到理想值才会上线WAF系统。

通过WebIDS系统收集的样本进行去重->建立数学模型->编写数学模型->设定异常阈值->测试新的请求->判断模型是否能够捕获攻击->将模型推送到waf。

(2)线上机器学习

数学模型包括:

3.超时控制

在Nginx将请求转发给WAF检测的时候,会对WAF检测进行计时,如果请求检测超过规定时间,Nginx将跳过检测,直接将请求转发给业务Server,避免业务出现高延迟;

4.高并发

我们的WAF使用分布式架构,处理能力是多节点的总和。在实际环境测试中,16核32GB内存的服务中可以达到10WTPS;

5.低延迟

我们的WAF在处理请求时使用并行处理,处理上大大降低延迟,实际测试中平均延迟在1ms以内。

五、基于语义分析检测SQL注入

在SQL注入数学模型下进行攻击检测,会发现依然有一定误报和漏报。在不断尝试下我们通过词法、语法分析的方法对SQL注入攻击行为进行更为精细的检测,主要流程包括:递归解码、模板组成、词法分析、语法分析、HMM打分和SVM分类。

1.递归解码

Urlencode、json、 phpserialize、 base64 等格式的解码,每解出来一个都会进入下面的流程,以及json以及kv结构的解析,例如id=1、{“id”:“1”} 中提取value 1 每提取一个都进入下面流程;

2.模板组成

注入模板如下:

通过上一层解析出来的纯净payload,将value=1和value=1//AND//1915=1915模板进行组装形成。

3.词法分析

将上一层组成的SQL注入模板进行分析,获得词法树。
select* from t where v = “1”

select * from t where v = ‘1’

select * from t where v = 1

select * from t where v =“1//AND//1915=1915”
(ps:下图为啥有方块?老板要求的,咱也不敢说,咱也不敢问)

select * from t where v = ‘1//AND//1915=1915’

select * from t where v = 1//AND//1915=1915

4.语法分析


上一层的SQL模板首先我们确定都是满足SQL语法bnf99标准,其中Str1 和 Str2 会作为一个token=88就是str的进行SQL解析且不会命中SQL注入。

第一、二行词法都会将字符串解析为88但第三行词法分析后的结果为:token=125 146 61 146 125 68 125,语法解析器认为 int或者str类型=用户变量是合理合法的,但是如果int=int,str=str虽然也是合法的但是不合理,对于这种合法不合理的请求有可能是通过闭合构造注入语句。

5.绕过的一些语法问题


所有的空格、//、/test/、–、--,之类的字符都会处理成为token 146 来处理所以符合了语法合法性要求则可以进行下一步处理。

6.HMM打分和SVM分类

这需要WEBIDS提供大量的注入样本,多维度来计算到底什么样的语法树是可能为注入,需要大量的维度和样本来说明再次说明实现思路不做详细演示了,通过HMM计算近似样本的值在阈值内的会使用SVM对进行分类,实际运算中HMM运行效率比较高用来快速排除不是注入可能性高的数据(降低延迟),可能性的再利用SVM的正负样本进行分类。

以上举例因篇幅有限不能将所有实例进行演示,只是将常见场景做功能性说明。

六、数科盾后续功能规划

后续WAF产品的完善将从两个层面进行:
(1)WAF产品自身功能的完善,包括CC攻击检测及防御能力,与VMS扫描平台、HIDS主机入侵检测平台、蜜罐、堡垒机、防火墙等安全产品进行联动;

(2)业务安全功能,与业务安全及风控团队进行对接,感知并解决一些特定场景的安全风险问题,对业务安全风险问题进行阻断。

七、WAF引擎公测计划

WAF是数科基础安全产品的重要组成部分,也是业务纵深防御的第一道安全防线,安全的本质是对抗博弈的过程,为了验证数科WAF的安全防护能力,后续数科安全将联合国内顶级SRC举办WAF引擎众测公测活动,验证SQL注入、RCE命令执行等核心功能的安全防护能力,对每个成功绕过WAF引擎的Payload黑样本进行奖励,以攻促防。【END】

本文作者:京东数科 刘明浩
文章来源:“京东数科技术说”微信公众号
原文链接: https://mp.weixin.qq.com/s/1-d3QVwCwjqtGWEmQxgj-Q.
更多技术干货欢迎关注“京东数科技术说”微信公众号,我们只凭技术说话!

面对黑客攻击,京东数科WAF建设这样做!相关推荐

  1. 收购快钱做线下支付,京东数科与蚂蚁终有一战?

    经过几次转型谋"生路"后的京东数科,虽然主打着以科技为核心发展道路,但也难藏在金融及线下支付上的野心. 当藏着的野心被逼上台面时,京东数科与蚂蚁集团之间的战火将起. 京东数科收购快 ...

  2. IPO的京东数科,不做下一个蚂蚁金服

    作者:中国软件网 陈杨 校对:中国软件网 海策 同样以电商发家的京东.阿里,二者从成立那天起便注定"摩擦"不断. 时至今日,京东.淘宝.天猫已成为大家生活中不可或缺的一部分,二者之 ...

  3. 薅一天吃一年?!揭秘京东数科11.11背后的反黑产“暗战”

    在某电商平台购物节期间,大二学生晓敏凌晨3点被一串"夺命连环call"震醒,拿起手机后,他瞬间清醒,这个"羊毛"必须得薅! 信息提示,该平台出现一个巨大漏洞,用 ...

  4. 万人「变阵冲刺」,京东数科没有终点

    [深几度·深度报道系列] 2019年3月,莫雄剑听闻老同事郭沐要来京东数科智能城市部,他兴奋中又有几分隐忧. 郭沐做出这种选择不难理解,他当时工作进入瓶颈期.一年前,微软亚洲研究院城市计算领域负责人郑 ...

  5. 企业网站被黑客攻击了怎么办

    如果客户的企业网站被攻击了怎么办,因为做网站建设的朋友或者在维护网站的朋友都应该知道,有很多企业网站会经常被植入木马或是被黑客攻击,造成我们的网站打不开,或是打开后进入的不是我们公司自己的网站,而是链 ...

  6. 京东数科七层负载 | HTTPS硬件加速 (Freescale加速卡篇)

    京东数科JDDLB作为京东数科最重要的公网流量入口,承接了很多重要业务的公网流量.目前,已完全接替商业设备F5承载所有的流量,并在数次618.双十一大促中体现出优越的功能.性能优势. 一.京东数科JD ...

  7. 京东数科2020双十一备战实录

    2020年9月14日,京东数科正式进入11.11备战阶段.本次参与大促备战的团队共计19支,包括支付.中台.消金.运维及客服等,并继续由开放中台侧质量管理部组织各方开展备战工作. 中台侧负责人施李荣在 ...

  8. 京东数科 Mr.AI在未来生长

    插画 / RON 他们致力于以AI驱动产业数字化,为最前沿的技术赋予最大的商业和社会价值.他们是一群在未来生长的人,能将AI技术融入到产业中洞悉前景,并具备将未来全景图变成现实的能力  本文首发于南方 ...

  9. BSC链上项目再遭黑客攻击,“黑色5月”阴云持续?

    来源 | 成都链安 责编 | 晋兆雨 头图 | 付费下载于视觉中国 事件概览 北京时间6月3日11时11分,区块链安全平台监测显示,BSC链上项目PancakeHunny遭遇黑客攻击.据统计,此次攻击 ...

最新文章

  1. Linux网络设备子系统
  2. 用WSDL定义Web服务
  3. jquery的closest方法和parents方法的区别
  4. CoreOS集成Kubernetes核心组件Kubelet
  5. 【机器学习】LR与最大熵模型的关系
  6. php广告任务网源码_THINKPHP仿我爱广告任务网|任务网站源码下载基于PHP+MYSQL的在线广告打码任务网站源码...
  7. Linux(CentOS 6.7)下配置Mono和Jexus并且部署ASP.NET MVC3、4、5和WebApi(跨平台)
  8. scenebuilder各控件属性介绍_Flutter 全栈式——基础控件
  9. 动态表格数据序号从1开始_EXCEL对面的表姐看过来,你真的会给表格添加序号吗?...
  10. TFS中的统一集成(九)
  11. ubuntu php mysql5.6_Ubuntu16.04搭建php5.6Web服务器环境
  12. Oracle的where子句
  13. 不是计算机专业,哪个专业更适合学习web前端
  14. 从字符串中检索字符实现翻页
  15. L1-040 最佳情侣身高差-PAT团体程序设计天梯赛GPLT
  16. 使用Nero6刻录软件刻录光盘镜像
  17. android apk 重新签名工具,安卓apk重新签名教程,快来定制自己的apk吧
  18. 100道经典AI面试题帮你搞定算法offer!
  19. 传说中的蝴蝶效应?--MAC地址克隆竟然惹祸了!
  20. 三季度企业付款及时性指数发布;北京写字楼供需失衡明年仍会加剧 | 美通企业日报...

热门文章

  1. 下一代云计算模式:Docker正掀起个性化商业革命
  2. Hadoop是做什么的,hadoop集群搭建作用
  3. 阿里云ACP云计算备考经验
  4. 教师资格证报名显示内核服务器错误,中小学教师资格证报考支付卡状态失效是怎么回事?..._教师资格考试_帮考网...
  5. 基础语法和变量day2学习内容
  6. Selenium in Python - 少了PhantomJS,日子照样还得过
  7. 推荐国外经典计算机教材9本
  8. C语言在坐标轴上输出曲线,C语言图形输出习题
  9. 得到APP互联网营销分析
  10. Centos hydra安装