随着时间的推移,咱们在实践中也不断的演进咱们的服务部署方案,但愿WEB防御,不仅是单独的云WAF来保护服务,而有其它的相关服务,对WAF进行加强加固的合理配合。咱们使用Openresty+系统构建了WAF,而在实际的应用场景中,WAF也要嵌入咱们的已有防御体系中,与其它系统一块儿协同工做。咱们从最开始的服务无保护状态,到日志分析威胁,到流量镜像,都是渐进发展的过程,有了基本的蓝图构想,可使用各类技术手段去完成安全防御系统的建设。算法
从多种的角度出发,咱们能够基于被保护系统,构建复合的安全保护方案,代码审计、WAF、反抓站DDOS、日志分析、蜜罐、IDS等各类安全子系统,构建较丰富立体的安全防御系统解决方案,但最开始的系统,每每都是只有纯业务系统,并无更多的安全系统为其护航,面对各类攻击,显的比较脆弱,被黑客利用漏洞,上传木马、篡改页面等危险攻击操做。安全
典型的WEB服务,都会涉及到域名解析,负载均衡和代理服务的,多层WEB服务结构,而WEB服务的保护会涉及到,对源代码的安全审计,便于发现被挂马和被恶意篡改的威胁问题。能够用不少的开源审计工具,也能够买商业审计工具,来进行按期的代码审计。审计工具只是一种威胁发现的手段,当咱们挖掘出了一些威胁规则,能够经过WAF提供的接口服务,将涉及工具的检查规则,转换成WAF能够理解的安全策略规则,推送给WAF系统进行拦截。服务器
在没有WAF系统以前,或者说,若是不用传统的7层流量监听的WAF,咱们也能够把各个WEB服务应用的访问志进行落地收集,而后经过大数据统计的方式,挖掘日志中存在的威胁,识别抓站,进行CC或是DDOS的防御,而后经过告诉代理服务器,对统计出的威胁目标进行封禁。今天,基于ZK、Kafka、Spark的大数据工具,能够很好的完成数据统计分析任务,优良的算法,能够实时高效的进行防御拦截攻击。cookie
由于有负载均衡和代理服务器存在,让日志收集能够变的更集中方便。session
大数据分析当然很好, 可是作HTTP请求到日志落地也会损失一些数据,好比Post、session、cookies这些数据的检查,使用直接7层HTTP流量分析的模式能够获取更多的一手数据。这种状况,在服务的7层引入了WAF防火墙拦截监听服务,这种传统WAF模式,能够更直接深刻到HTTP请求的协议的内部数据,过去咱们将业务系统的日志,直接发给反抓站系统,当引入云WAF的时候,咱们也能够经过WAF向其推送数据。负载均衡
以前都是业务系统经过向kafka队列推送数据给反抓站系统进行数据分析,若是使用WAF向反抓站系统推日志数据也能够,是对地集群内的结点收集发送数据有管理成本。对反抓站系统来讲WAF就是一个拦截模块,对于WAF来讲反抓站就是一个分析模块, 反抓站能够把分析的结果告诉WAF进行拦截,子系统之间进行互动。模块化
WAF与业务服务的链接方式,把原有域名指向,指向WAF集群,再由WAF集群回源到服务的负载均衡,完成http流量的分的拦截到放过,交给原有业务服务响应。WAF系统自己也提供了相似REST接口,将代码审计的威胁和反抓站DDOS的威胁,经过接口传给WAF拦截。这种模式,意味着,如是有人直接攻击WAF,使用UDP等垃圾数据攻击。这种状况,保留流量包pcap的原始数据,对后期分析就比较有意义了。工具
若是咱们不想把WAF和业务进行串接,只想作流量监听,咱们也能够不把DNS指向WAF集群,而是在代量服务那层经过HTTP-MIRROR等相似镜像技术,将HTTP流量复制一份到WAF,而后不作回源,将流量引入fake upstream,fake upsatream的响应会被上层的服务丢弃,若是咱们想将威胁流量和威胁流量进行分开引流,能够再加入一个honeypot的upstream,收集威胁流量,这样主干业务上,请求的都是正常请求响应的,而在镜像给WAF的流量中,能够识别生产流量中存在的威胁请求,将威胁请求切到honeypot上进行威胁分流,由于不回源,只能作分类,不能作诱导性的数据收集,串接WAF的方式就能够,但若是真是把威胁流量引到真的honeypot上,honeypot自己也会发出报警,并收集payload。大数据
若是不知足于,只是将威胁流量记录到Honeypot上,也能够将流量在动态切换到Honeypot的服务时, 经过pcap录制技术将流量包记载,相似netflow的模式,按时间分割流量保存,并可重放。这样就不只仅有日志文本、payload、还有原始的请求包,经过相似wireshark等工具仔细分析,后期也能够经过重放技术,把当时攻击发生时的流量,重放到靶机测机上,进行案发现场分析。spa
关WAF日志部分,WAF经过传统的Syslog吐出高中低危的报警事件和数据,更便于咱们对攻击的行为的分析和定位,咱们也能够将syslog日志数据收集到,自建的数据中心中,进行后期的分析与预警,有了报警数据,咱们也能够将数据与其它子系统进行数据对碰。
围绕被保护的WEB构建代码审计服务、WAF、反抓站分析、蜜罐、日志分析报警和Payload流量记载等多种方式,来监听WEB服务,发现攻击威胁,定位威胁。能够根据实际的应用场景和自身状况,选择商用服务、开源服务、或是自主构建安全系统均可以。 采用模块化的构建方法,每一个子系统可能都有多种的实现解决方案,但始终离不开的都是流量的监听、数据落地、与后期分析、预警报告等阶段,后面咱们也会选择使用具体的工具,来完成图上的安全系统建设。