http工作原理:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。
业务系统在进行编码时,容易忽视安全的编码规范,导致一些HTTP的异常语句允许被执行,从而带来HTTP的安全风险。同时再来对业务系统进行整改时,又相对困难,且对业务有一些的影响,所以需要通过额外的防护手段来进行有检测的识别这些异常访问的风险,并对其进行拦截。
AF拦截HTTP功能介绍:
AF对HTTP协议访问过程中,出现的协议异常的数据进行检测和识别,当与所配置的检测规范所匹配时,拦截其访问行业,减少安全风险。
(1)方法过滤:对目前业务系统只允许指导的方法进行访问,非指定的一律进行拦截;
(2)HTTP头部字段SQL注入检测:对HTTP指导的头部字段进行SQL注入的检测,当检测到该字段也存在SQL注
入语句时,进行拦截;
(3)溢出检测:对HTTP指定字段的长度进行检测,如超出指定长度,即对其进行拦截;
(4)协议异常:对异常的协议进行检测和拦截,如“Content-Type头部字段”出现了重复的识别和拦截。
(1)主要障碍:业务系统中,允许了一些异常的HTTP请求被执行,异常业务系统存在一定的安全风险,而目前对业务系统的情况比较了解,但直接修复业务系统自身存在障碍,所以需要有手段可以在不改变业务系统的情况下,实现这些HTTP协议异常数据的识别和拦截。
(2)功能价值:可以通过部署AF在WEB服务器前端,对访问数据中心的Web应用业务流量进行深度检测,发现匹配到所配置的异常HTTP请求数据后,对其进行拦截,达到防护效果。
(1)需要明确所防护网站的端口是否是标准80端口。
(2)需要明确所防护网站是否是采用https加密传输。
(3)需要明确业务系统的“正常访问”或“异常访问”都有哪些。
(2)进入【对象】-【安全策略模板】-【WEB应用防护】,完成对象模板新增。手动开启并配置“预制条件”中收集的正常/异常HTTP数据,完成【HTTP异常检测】功能配置;
(3)进入【策略】-【安全策略】-【安全防护策略】,完成【业务防护策略】关于“WEB应用防护”功能的策略配置。
(4)验证上一步所配置策略有效性有效性,是否可达预期。
(5)点击【监控】-【安全日志】,是否可查看到相应的“WEB应用防护”日志。
配置案例如下:
在AF上已完成常规的WEB安全防护,同时我们与用户提出,他有业务系统目前没有需要使用“put”方法的需求,但实际put方法在他的业务系统里可被执行,希望通过AF把所有put访问的HTTP请求都进行拦截。
1、定义业务对象:【对象】——【网络对象】界面新增“IP地址对象”,如下图:
(2)【对象】-【安全策略模板】-【WEB应用防护】中,定义“WEB应用防护”模板,重点注意需要配置【高级配置】-【HTTP异常检测】的功能,确认【方法过滤】功能的“PUT方法”为勾选状态(勾选即为拦截状态)。因为端口是标准80端口,所以端口也保持默认即可,配置如图:
3、【策略】-【安全策略】-【安全防护策略】中,添加“业务防护策略”,此次只介绍“WEB应用防护”,所以只添加这一个功能的策略,配置如图:
4、通过“xhack”工具,抓取访问目标业务系统的正常访问数据,同时把使用的方法手动改为“PUT方法”,然后再发起请求,检测到数据被拦截,截图如下:
5、AF日志查看:在【监控】-【日志】-【安全日志】中,查询相应的日志记录,截图如下: