發(fā)布源:深圳維創(chuàng)信息技術(shù)發(fā)布時(shí)間:2020-10-28 瀏覽次數(shù): 次
前幾期大概講述了安全體系架構(gòu)的概述以及管理層面的安全體系架構(gòu),這一期來講講業(yè)務(wù)在設(shè)計(jì)時(shí)制定安全架構(gòu)的落地實(shí)施。
一、 確定業(yè)務(wù)接口因?yàn)闃I(yè)務(wù)的特殊性,業(yè)務(wù)接口可能不止是web層面的,有些業(yè)務(wù)為了保證傳輸速率甚至有可能是udp協(xié)議傳輸,也有些業(yè)務(wù)走的是socket協(xié)議,首先就是要確定你的業(yè)務(wù)接口走的是什么協(xié)議,以下以TCP-HTTP協(xié)議為主,其他協(xié)議的架構(gòu)安全會(huì)在后期敘述。
二、 業(yè)務(wù)邏輯設(shè)計(jì)通過上面步驟確定好了業(yè)務(wù)接口后,需要按照業(yè)務(wù)的邏輯去設(shè)計(jì)架構(gòu)(以下均為http接口設(shè)計(jì)架構(gòu)),舉例,某業(yè)務(wù)分為以下幾點(diǎn),API接口與客戶對(duì)接,靜態(tài)資源展示企業(yè)信息,管理接口對(duì)應(yīng)企業(yè)內(nèi)部人員審核等工作,客戶接口對(duì)應(yīng)客戶的管理工作。
在資金并不充足的情況下(不投入廠商安全設(shè)備),那么對(duì)應(yīng)的架構(gòu)應(yīng)該如何設(shè)計(jì)呢?邏輯架構(gòu)圖(可用性部分):首先要有代理服務(wù)器,保證應(yīng)用服務(wù)器不會(huì)直接暴露在公網(wǎng)上。
其次要有日志服務(wù)器,匯總應(yīng)用日志與攻擊日志,防御服務(wù)器可以自己組建,各種腳本的匹配來確定請(qǐng)求是否合法。
由互聯(lián)網(wǎng)訪問的請(qǐng)求首先經(jīng)過代理服務(wù)器,這么做的好處在于會(huì)保護(hù)應(yīng)用服務(wù)器的真實(shí)IP與端口,舉個(gè)例子,應(yīng)用服務(wù)器對(duì)外接口是443,那么在代理服務(wù)器僅需要代理443端口對(duì)應(yīng)應(yīng)用服務(wù)器的443端口,其他端口全部封閉,那么應(yīng)用服務(wù)器上多余的端口是在互聯(lián)網(wǎng)無法掃描到的,另外代理服務(wù)器上僅做轉(zhuǎn)發(fā),性能上消耗會(huì)很小,一臺(tái)應(yīng)用服務(wù)器上跑一個(gè)應(yīng)用,然后通過代理服務(wù)器匯總,會(huì)很大程度上方便人員進(jìn)行統(tǒng)一管理,不會(huì)造成應(yīng)用堆砌的現(xiàn)象。
通過代理服務(wù)器轉(zhuǎn)發(fā)進(jìn)來的請(qǐng)求,首先進(jìn)行行為異常分析,此處可以是使用廠商設(shè)備,也可以自研腳本,根據(jù)經(jīng)費(fèi)情況自行選擇合適的方案。
關(guān)于防御服務(wù)器,有幾點(diǎn)想跟大家分享,第一是WAF,第二是防CC攻擊。
首先WAF我們都知道是通過正則表達(dá)式做內(nèi)容匹配,如果內(nèi)容匹配上則判定為攻擊,那么就會(huì)產(chǎn)生三個(gè)問題:第一是正則的繞過第二是正則的業(yè)務(wù)阻斷第三是正則書寫本身的bug
第一點(diǎn)舉個(gè)例子好了,目前開源的WAF中規(guī)則寫的不錯(cuò)的就是modsecurity了,以它舉例,規(guī)則基本上每周都會(huì)有更新,但是繞過方法還是屢見不鮮,沒有哪種防御是能完全阻斷攻擊的,總會(huì)有各種各樣沒有被發(fā)現(xiàn)或已經(jīng)被發(fā)現(xiàn)的漏洞,時(shí)常關(guān)注信息,及時(shí)查漏補(bǔ)缺方能在一定程度上體現(xiàn)安全性。
第二點(diǎn)是所有WAF的一個(gè)硬傷,因?yàn)闃I(yè)務(wù)是不固定的,隨時(shí)可能有業(yè)務(wù)信息觸發(fā)了WAF的規(guī)則而導(dǎo)致業(yè)務(wù)阻斷,這也是為什么知名廠商WAF要先觀察一段時(shí)間調(diào)優(yōu)后才能開啟阻斷的原因。
第三點(diǎn)還是以modsecurity舉例,畢竟是開源代碼都能看到,正則表達(dá)式本身因?yàn)闀鴮懙膯栴},會(huì)有很多模糊匹配或者聯(lián)合匹配,當(dāng)這些匹配內(nèi)容過大的時(shí)候就會(huì)因?yàn)樽兿郉oS攻擊,這在modsecurity3中也是被證實(shí)的,同樣的問題在日志寫入的時(shí)候也會(huì)發(fā)生,導(dǎo)致i/o讀寫通道堵塞引起的DoS攻擊同樣在modsecurity2中被證實(shí)。
安全無止境,并不是設(shè)備的堆砌,腳本的堆砌就能保證業(yè)務(wù)的安全可用,這點(diǎn)是我通過以上3個(gè)問題重點(diǎn)想要說的。
關(guān)于防CC攻擊,一般的防CC設(shè)置是判定為是CC攻擊,阻斷,而非丟棄,這塊我有不同的看法,假如說一個(gè)正常訪問請(qǐng)求我響應(yīng)需要100k的相應(yīng)包,一個(gè)阻斷包(返回403或自定義頁面)假設(shè)需要5k,但是流量還是通過入口進(jìn)來了,尤其是云服務(wù)器有的可能是按量付費(fèi),那我們是不是應(yīng)該思考一下如何讓非法流量不能通過入口進(jìn)來?傳統(tǒng)的抗DDoS設(shè)備做的流量清洗或者黑洞閥值不會(huì)設(shè)置的很低,那么這塊要如何做?后期我會(huì)分享出來我的解決辦法。
三、 業(yè)務(wù)架構(gòu)圖設(shè)計(jì)根據(jù)邏輯架構(gòu)圖來制定業(yè)務(wù)的整體現(xiàn)實(shí)架構(gòu)(可用性部分)通過負(fù)載均衡實(shí)現(xiàn)代理服務(wù)器的雙活,大程度保證訪問不會(huì)中斷,同時(shí)應(yīng)用服務(wù)器使用主備雙服務(wù)器,數(shù)據(jù)庫也是主備雙活,很大程度上保證了業(yè)務(wù)的可用性,防御服務(wù)器集群用來分析入侵行為,日志服務(wù)器用來匯總業(yè)務(wù)相關(guān)的所有日志。
當(dāng)然防御服務(wù)器集群是至少3臺(tái)以上,并且每臺(tái)都會(huì)向下兼容應(yīng)用服務(wù)器,這么做的目的在于,行為分析是十分耗資源的一件事,搭建集群會(huì)降低單一服務(wù)器的運(yùn)算壓力,并且不用擔(dān)心出現(xiàn)單點(diǎn)故障。
同時(shí)保證每個(gè)業(yè)務(wù)接口的入口均為獨(dú)立入口,這樣可以將業(yè)務(wù)分離出來,也方便防御服務(wù)器做單一業(yè)務(wù)的規(guī)則,保證規(guī)則的準(zhǔn)確性。
Copyright © 2021 深圳市維創(chuàng)信息技術(shù)有限公司 版權(quán)所有