• 【云计算】WAF简介、功能特性、部署方式等


    之前写了一篇《WAF防御能力评测及工具》,是站在安全运维人员选型WAF产品的角度来考虑的(优先从测试角度考虑是前职业病,毕竟当过3年游戏测试?!)。本篇文章从WAF产品研发的角度来YY如何实现一款可靠的WAF,灵感来自ModSecurity等,感谢开源。

    本片文章包括三个主题

    (1) WAF实现
    WAF包括哪些组件,这些组件如何交互来实现WAF防御功能
    (2)WAF规则(策略)维护
    规则(策略)如何维护,包括获取渠道,规则测试方法以及上线效果评测
    (3) WAF支撑
    WAF产品的完善需要哪些信息库的支撑

    一、WAF实现

    WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检测(规则模块),做不同的防御动作(动作模块),并将防御过程(日志模块)记录下来。不管硬件款,软件款,云款,核心都是这个,而接下来围绕这句话来YY WAF的实现。WAF的实现由五个模块(配置模块、协议解析模块、规则模块、动作模块、错误处理模块)组成

    1. 配置模块

    设置WAF的检测粒度,按需开启,如图所示

    WAF的实现 - 碳基体 - 碳基体

    2. 协议解析模块(重点)

    协议解析的输出就是下一个模块规则检测时的操作对象,解析的粒度直接影响WAF防御效果。对于将WAF模块寄生于web 服务器的云WAF模式,一般依赖于web 服务器的解析能力。

    WAF的实现 - 碳基体 - 碳基体

    3. 规则模块(重点)

    重点来了,这块是WAF的核心,我将这块又细分为三个子模块。

    (1) 规则配置模块

    IP黑白名单配置、 URL黑白名单配置、以及挑选合适的规则套餐。

    WAF的实现 - 碳基体 - 碳基体

    (2)规则解析模块

    主要作用是解析具体的规则文件,规则最好采用统一的规则描述语言,便于提供给第三方定制规则,ModSecurity这方面做得非常优秀。

    规则文件由四部分组成,分为变量部分、操作符部分,事务函数部分与动作部分。

    WAF的实现 - 碳基体 - 碳基体

    WAF的实现 - 碳基体 - 碳基体

    (3)规则检测模块

    上一步我们设置了各种变量,接下来就是按照一定的逻辑来做加减乘除了。

    WAF的实现 - 碳基体 - 碳基体

    4. 动作模块(重点)

    通过规则检测模块,我们识别了请求的好恶,接下来就是做出响应,量刑处理,不仅仅是拦截。

    WAF的实现 - 碳基体 - 碳基体

    5. 日志模块(重点)

    日志处理,非常重要,也非常火热,内容丰富到完全可以从WAF独立出来形成单独的安全产品(e.g.日志宝)而采用提供接口的方式来支撑WAF。对于数据量巨大的云WAF,都会有单独的大数据团队来支撑架构这一块,包括数据存储(e.g. hdfs) ,数据传输(kafka),数据离线分析(hadoop/spark),数据实时分析(storm),数据关联分析(elasticsearch)等等,以后另开一篇单独说明。

    WAF的实现 - 碳基体 - 碳基体

    6. 错误处理模块

    以上模块运行错误时的异常处理

    二、WAF规则(策略)维护

    WAF需要修炼一图以蔽之

    WAF的实现 - 碳基体 - 碳基体

    三、WAF支撑信息库

    WAF需要修炼一图以蔽之

    WAF的实现 - 碳基体 - 碳基体

    以上支撑库几乎所有的安全人员都在重复地做,而资源没有共享的原因,一是内部不可说;二是没有采取统一的描述语言无法汇合,唉,安全从业人员的巴别塔。

    参考资料:

    http://blog.163.com/yang_h_h/blog/static/4903699201211254043410/

    http://www.freebuf.com/sectool/54221.html

    http://www.2cto.com/Article/201307/227948.html

    http://security.ctocio.com.cn/224/12994224.shtml

  • 相关阅读:
    使用arcpy添加grb2数据到镶嵌数据集中
    使用python把gdb格式的文本文件转为utf-8的格式
    Spring Cloud
    windows 下nginx配置php支持
    nginx开启gzip
    ant design 修改tab样式
    使用arcpy替换工程文件中的栅格图层数据源异常
    cenos 安装hadoop
    失败
    linux挂载新硬盘
  • 原文地址:https://www.cnblogs.com/junneyang/p/5888370.html
Copyright © 2020-2023  润新知