WEB应用防火墙知识点整理(面试复习用)

时间:2024-03-17 13:07:37

一、简单WAF介绍
WEB应用防火墙知识点整理(面试复习用)
WEB应用防火墙知识点整理(面试复习用)WEB应用防火墙知识点整理(面试复习用)


二、WAF-配管

上面看到的是WAF的引擎层,其实WAF还有一层[配管](配置管理控制台)。

配管是和用户、安全专家(运维)交互。用户配置域名、配置防护、安全专家配置规则、规则发布等。

实现的域名解析到引擎层和规则下发到引擎层。


三、配管架构图
WEB应用防火墙知识点整理(面试复习用)
WEB应用防火墙知识点整理(面试复习用)


四、配管域名相关

网站配置: DNS配置模式、 透明代理模式。

DNS配置模式:通过修改域名解析的方式,将被防护域名的访问流量指向WAF;WAF根据域名配置的源站服务器地址,将处理后的请求转发回源站服务器。

透明代理模式:将所配置的源站服务器公网IP的80端口接收到的HTTP协议的流量直接牵引到WAF,经WAF处理后再将正常的访问流量回注给源站服务器。

WAF透明代理模式满足条件:

  1. WAF实例为包年包月模式;

  2. 源站服务器部署在阿里云ECS,且ECS实例所在地域为华北2(北京);

  3. 源站ECS实例拥有公网IP或已绑定弹性公网IP(EIP);

DNS配置模式:非云解析DNS、云解析DNS。

非云解析DNS( 网站的DNS解析没有托管在阿里云云解析DNS):

  1. 用户配置的网站数据传递给配管;
    2. 配管对参数检验。转换成rsPolicyMo(用于存入配管数据库,和用户交互数据)、gfMo(用于下发Ddos高防服务);
  2. 分配Vip和Cname;
  3. 开启防护功能中的精准访问控制(acl), 配管只是把数据先保存到配管数据库再下发到Etcd, 引擎去Etcd拉取配置,所有的防护功能都是这种增量模式拉取配置;
  4. 开启防护功能中的CC安全防护(cc), 配管处理同上;
  5. 开启防护功能中的WEB应用攻击防护,配管处理同上;
  6. 调用Ddos高防接口, 用户开启阿里云默认提供的最大5Gbps的DDoS基础防护能力;
  7. 调用dns接口(内部接口), 把用户域名解析到阿里云分配的Cname地址,该Cname地址解析到Vip(用户域名 —> 阿里云Cname —> Vip);
  8. 域名相关数据保存到配管数据库;

如果其中一个环节出错了,在try catch finally 回滚处理,通过flag判断哪个环节出错,作相应的回滚处理。

步骤和数据的处理其实都有一定的复杂性。

下面图片是当时用户配置的网站数据 —> rsPolicyMo —> gfMo 之间的转换,配管在很多数据的处理上都有一定的复杂性。
WEB应用防火墙知识点整理(面试复习用)
WEB应用防火墙知识点整理(面试复习用)
WEB应用防火墙知识点整理(面试复习用)


云解析模式 ( 网站的DNS解析托管在阿里云云解析DNS):

  1. 其他操作和非云解析模式保持一致。
  2. 调用阿里云云解析DNS解析管理接口的获取解析记录列表接口, 获取用户网站域名和源站服务器IP地址。
  3. 调用阿里云云解析DNS批量管理接口的批量添加解析记录接口, 更新域名的解析记录,将网站Web请求转发到WAF进行监控。WEB应用防火墙知识点整理(面试复习用)WEB应用防火墙知识点整理(面试复习用)

透明代理模式 :按照集团内部引流相关接口规范调用,没有太大复杂性,Eip的生命周期管理复杂性会大一些。

Eip生命周期步骤:
 1. 需要用户先授权,授权后在user_profile表中记录(is_ecs_authorized =1);
2. 调用ECS open api同步授权用户的Eip,添加新的Eip, 删除旧的Eip;
3. 先删除引流再删除Eip;
4. 从user_eip表中淘汰未授权的uid,并删除相应的引流、Eip
5. 删除用户时,删除user_eip记录和相应的引流、Eip。

其中任何环节出问题(远程接口),不删除配管的数据,置为删除状态,下一次定时任务处理,多次失败后人工处理。


五、配管规则相关

规则相关:规则的添加、删除、修改、查询;规则组的添加、删除、修改、查询就是很简单的管理功能更,规则组其实有一个字段,保存了规则的主键。

复杂度相对高一点的是规则的发布:
1. 把所有的规则组和规则打成一条很大的记录;
2. 和上一个规则集全集版本对比,对比哪些规则是新增,哪些被删除,哪些是修改;
3. 生成发布单,按照发布模式(逐台、zone、region)生成引擎批次(批次状态有未开始、进行中、已完成);
4. 引擎会定时来拉取规则,会上报一个版本号,当引擎在灰度批次且版本号小于当前规则集版本号或等于0才允许引擎拉取;
5. master机器对每个不同类型的版本会启动一个消费线程,监听/修改批次的状态、引擎的拉取情况,开始下一批次,修改发布单的状态;
6. 任何阶段发布单状态可暂停,暂停阶段可以使用人工分批和自动分批继续发布;
7. 任何阶段发布单可退出,成功拉取的保持新规则,尚未拉取的不再拉取,正在拉取的需要保证拉取完成;
8. 正在拉取的引擎可跳过;
9. 回滚,就是把上一个发布单置为最新的发布单,再次发布;
WEB应用防火墙知识点整理(面试复习用)