隨着時間的推移,咱們在實踐中也不斷的演進咱們的服務部署方案,但願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服務,發現攻擊威脅,定位威脅。能夠根據實際的應用場景和自身狀況,選擇商用服務、開源服務、或是自主構建安全系統均可以。 採用模塊化的構建方法,每一個子系統可能都有多種的實現解決方案,但始終離不開的都是流量的監聽、數據落地、與後期分析、預警報告等階段,後面咱們也會選擇使用具體的工具,來完成圖上的安全系統建設。