本帖最后由 杨童 于 2023-9-27 17:37 编辑
本案例意在介绍: 1、AF封锁XFF IP的实现效果和能力边界(8048和其他版本(8085及以上和以下)的对比) 2、SIP+AF在反向代理场景下搭配的效果(安全事件效果呈现+处置封锁的注意事项) 3、反向代理场景下的解决方案(复习一下XFF是什么,有什么用,怎么用)
注意事项: 本案例基于SIP 3.0.81版本、AF的8048和8081/8090版本进行演示(SIP3081和AF8090截止发帖都是内测版本,实际上线可能有所不同,真实项目请提前联系400确认) 8048是专门用于重保/攻防场景的旧架构的版本,有很多针对攻防场景的特性能力,以XFF场景举例8048是功能最全的版本
--------------------------------------------------------------------------------------
一、8048和其他版本的对比总结 1、AF8048版本的封锁XFF IP有三种方式: a)手动添加临时黑名单封锁:在临时黑名单中添加业务类型的黑名单,添加后攻击者不管是攻击还是正常访问,都会触发封锁,注意是代理和非代理都会封锁,也就是说攻击者不管是经过代理还是直连业务都无法访问 具体效果如下图,管理员手动添加一条业务封锁策略,封禁了攻击者IP192.168.31.135 当攻击者再次攻击或访问业务时,会自动生成两条策略,第一条是全局封锁,定义了源+目,封锁时间是自定义的;第三条是封锁XFF IP的,只有10分钟
b)安全策略的联动封锁模块触发添加临时黑名单:策略自动在临时黑名单中添加一条,注意这里是仅封锁XFF IP,不会封锁真实IP,也就是说封禁后攻击者无法通过代理方式访问业务,但是不经过代理直连的话是可以访问的,举个例子---攻击者IP为A,安全策略触发联动封锁后,所有报文XFF IP是A的都会封禁,但是攻击者如果不通过代理直接用IP地址A去访问业务,还是可以访问的。 效果如下图,自动生成一条业务封锁策略,封锁时间10分钟
c)SIP代理封锁联动AF添加临时黑名单:和手动添加临时黑名单封锁效果完全一致 演示图如下,管理员在SIP-重保中心-联动封锁-手动封锁-代理封锁中添加了一条攻击者IP并下发到AF AF会新建一条业务封锁策略,显示来源为SIP 当攻击者再次访问业务或攻击时,AF会再生成两条规则,所以SIP下发代理封锁的和管理员手动添加的业务封锁效果是一样的
2、除了8048以外,8085以下的版本(不包括8085),都没有业务封锁功能,所以这些版本都无法手动添加临时封锁策略封禁XFF IP,新架构8085开始有业务封锁按钮,用8090的bate版测试效果和8048一致(实际项目建议先详细咨询400具体能力是否有偏差)
3、SIP下发的代理封锁指令效果为:给没有业务封锁模块的AF下发指令时,在AF上会新增全局封锁,无法封锁XFF IP,所以即使这样封锁了攻击者IP,也只是禁止了攻击者直连,无法阻断代理攻击,还是需要依靠安全策略里边联动封锁来封锁XFF。
这里有个问题就是根据8090AF的环境实测(9月1号的包,版本还在内侧),SIP下发代理封锁配置到了AF上还是全局封锁,不是业务封锁,并不能实现XFF封锁。注意这是内侧版本,如果要用新架构做封锁XFF建议咨询400具体明确一下什么版本开始支持此能力
--------------------------------------------------------------------------------------
二、AF/SIP的XFF相关配置介绍
1、AF7.4-8.0.26版本开始支持识别XFF字段:在【对象】-【安全防护策略模版】-【WEB应用防护】-新增模版,点击【高级配置】-【高级功能防护】里【日志记录设置】-选择头部字段“X-Forwarded-For” 2、AF8.0.32开始,AF WEB应用防护策略支持根据HTTP数据包的XFF字段中IP数据进行联动封锁:在【对象】-【安全防护策略模版】-【WEB应用防护】-新增模版,点击【高级配置】-【高级功能防护】里【X-Forwarded-For】-选择头部字段“X-Forwarded-For”,勾选启用并填写代理服务器的IP即可 AF8.0.48操作路径示例:在【策略】-【安全策略】-【安全防护策略】新增业务防护策略,【策略优化项】业务访问场景选择【访问源经过源地址转换或CDN】,启用“X-Forwarded-For”并填写代理服务器的IP即可 3、STA从3.0.14开始支持记录XFF字段:在【策略管理】-【安全策略】-【网站攻击检测】设置的【日志设置】模块中勾选记录源IP,添加记录X-Forwarded-For字段。 注意:从标准版本STA3.0.36版本(旧架构)、STA新架构版本、VSTA3.0.31C版本开始都默认开启记录XFF字段功能,无需界面配置。 --------------------------------------------------------------------------------------
三、AF和SIP关于XFF攻击效果的呈现,日志分析
1、AF在设置好代理服务器后,正常的代理攻击日志应该如: 下图的测试环境是做了两层代理,代理服务器IP为10.10.0.1和10.20.0.1,代理IP的流量路径先到10.10.0.1到10.20.0.1再到防火墙,同时已经配置好了代理服务器IP,日志中数据包的X-Forwarded-For字段显示了两个IP,表示报文插入了两层XFF IP,日志中的XFF IP字段显示的是最原始的攻击者的IP 192.168.31.135,联动封锁就会根据此IP进行处置;
如果不设置代理服务器IP,或者少设置一个IP,这里的XXF IP的判断顺序就是根据报文X-Forwarded-For字段最右侧的IP来判断,如下图,将代理服务器的IP删除之后,上方XFF IP显示的就是10.10.0.1了,这时候设备联动封锁会根据这个IP来设置,这样就可能出现误判,所以需要提前设定好代理服务器IP地址 2、SIP上的日志效果根据数据来源分为两种,分别为STA和AF的,两种类型的日志区别如下:
AF上传来的日志,SIP会根据AF传来的源目IP显示攻击者和受害者,不会显示AF日志里边的XFF IP,所以会导致SIP上日志的准确性有偏差,如下图,AF上传来的日志原始数据包内容是有X-Forwarded-For字段的,但是SIP并不会二次分析数据,而是直接把AF传来的日志显示出来,根据AF日志的源和目的直接显示了攻击者和受害者。所以这里的问题是,如果直接在SIP根据攻击者信息封锁的话,就会把代理服务器IP给封了。
3、STA传来的日志相比AF更细致,会显示出来代理服务器,点击代理右上角还能看到具体有哪些代理服务器的IP;
4、关于SIP的联动处置,针对代理场景,当前SIP也只是能够在重保中心-联动封锁-手动封锁-代理封锁栏目设置封禁XFF,处置中心的响应策略剧本不能封XFF,所以在上一步根据STA日志检索到真实攻击者后,不建议直接用联动处置来调用AF封禁,因为这样只能在AF形成全局黑名单,并不能封禁XFF IP,所以建议使用联动封锁中的代理封锁模块来封禁,这样才能完整的屏蔽掉攻击IP。
--------------------------------------------------------------------------------------
四、反向代理介绍/XFF介绍/解决方案介绍QA
Q:反向代理是什么? A:在用户和服务器之间存在一个代理服务器,用户访问业务时,目的地址就是这个代理服务器,代理服务器收到请求后代理这个请求和后端服务器建立连接,代理用户到服务器之间的流量,对于用户来说,用户访问的就是代理服务器,对于服务器来说,就是代理服务器来请求的自己的服务,用户和真实服务器都不知道对方的存在。这就是反向代理
Q:反向代理带来了哪些问题? A:根据第一条所述,用户和真实服务器都感知不到对方的存在,它们都认为代理服务器就是对端,那么流量路径中的安全设备也一样感知不到用户或者服务器是谁,典型的问题就是安全日志中发现攻击者是代理服务器,或者被攻击者是代理服务器,这就导致无法分析和处置安全事件
Q:怎么解决第二个问题? A:这里就引入了X-Forwarded-For字段,简称XFF,原理就是报文在经过代理服务器时,代理服务器将代理前的源IP插入到报文头部,这样报文从代理设备发出后,后续的设备就可以根据这个字段识别出代理前的IP了,安全设备就可以基于此溯源到真实访问者
Q:怎么在代理服务器插入XFF字段? A:这个涉及到代理服务器开发层面的问题,需要具体代理设备是否支持。以深信服负载均衡AD设备举例,AD在代理时做HTTP报文头部改写就可以实现XFF字段的插入。
Q:经过多层代理设备怎么办? A:XFF是支持多层显示的,以AD负载均衡举例,多个AD串联时可以同时配置头部改写来插入XFF字段,第一个XFF IP会在字段最左侧,后续插入的XFF IP依次往后排列,分析安全事件时,最左侧的XFF IP就是攻击者,如下图 |