SDP是一套開放的技術(shù)架構(gòu),它的理念與零信任理念非常相似。國內(nèi)國際很多安全大廠都在推出基于SDP技術(shù)的零信任產(chǎn)品??梢哉fSDP是目前最好的實現(xiàn)零信任理念的技術(shù)架構(gòu)之一。
為什么說SDP技術(shù)好呢?
首先,SDP系出名門。
SDP是國際云安全聯(lián)盟(CSA)推出的一套技術(shù)架構(gòu)。CSA的SDP工作組的組長是原CIA的CTO——Bob Flores。CIA就是美國中央情報局啊,電影里常常見到的那個特工組織。
Bob Flores把CIA、美國國防部(DoD)、美國國家安全局(NSA)里面很多實用技術(shù)拿出來,放到了SDP架構(gòu)里。所以如果你去翻看SDP的白皮書的話,可以看到很多地方會寫,SDP中這部分技術(shù)源自國防部的某某技術(shù),那部分技術(shù)在安全局里是經(jīng)過驗證的……
其次,SDP技術(shù)不是紙上談兵,SDP誕生之初,就經(jīng)歷過重重考驗。
SDP技術(shù)推出之后,CSA曾經(jīng)4次組織黑客大賽來檢驗SDP。大賽有來自100多個國家的黑客們參加,總共發(fā)起過幾百億次攻擊。4次大賽,沒有一次,沒有一個人能攻破SDP的防御。
SDP黑客大賽
每次黑客大賽開始之前,CSA都會向黑客們介紹SDP的架構(gòu)——SDP包括三個組件:
1、網(wǎng)關(guān)(Gateway):負(fù)責(zé)保護(hù)業(yè)務(wù)系統(tǒng),防護(hù)各類網(wǎng)絡(luò)攻擊,只允許來自合法客戶端的流量通過;2、客戶端(Client):負(fù)責(zé)驗證用戶身份,把訪問請求轉(zhuǎn)發(fā)給網(wǎng)關(guān);3、管控端(Controller):負(fù)責(zé)身份認(rèn)證、配置策略,管控整個過程。
黑客大賽 #1
2014的RSA大會上,舉辦了第一次SDP黑客大賽。CSA給黑客們提供了SDP客戶端。黑客們可以模擬一個來自內(nèi)部的攻擊者。黑客只要能登上SDP網(wǎng)關(guān)保護(hù)的目標(biāo)服務(wù)器,獲取服務(wù)器上的一個指定文件,就算成功。
比賽持續(xù)了一周。黑客們總共發(fā)起過超過一百萬次端口掃描。因為SDP網(wǎng)關(guān)只允許合法用戶連接,其他任何探測都會被攔截。所以,黑客們的掃描估計都被網(wǎng)關(guān)攔截掉了。從目標(biāo)服務(wù)器的監(jiān)控日志看,這次比賽,沒有任何一個黑客成功連接到目標(biāo)系統(tǒng)。(這次比賽大多數(shù)攻擊來自阿根廷)
黑客大賽 #2
2014 IAPP-CSA大會上,CSA組織了第二次黑客大賽。因為上次黑客們都沒摸到攻擊目標(biāo),SDP多層防護(hù)的第一層都沒有被攻破。所以,這次CSA特意提供了SDP各個組件的IP地址,作為攻擊目標(biāo)。另外,CSA還提供了一個與攻擊目標(biāo)一模一樣的參照環(huán)境。黑客們可以隨意研究SDP的工作原理。
比賽持續(xù)了一個月,來自104個國家的黑客發(fā)起了1100萬次攻擊!大多數(shù)攻擊是DDoS攻擊,當(dāng)然也有端口掃描和直接針對443端口的定向攻擊。(攻擊大多數(shù)來自美國)SDP網(wǎng)關(guān)會屏蔽來自攻擊者IP的所有請求。被保護(hù)的端口只會向合法用戶的IP動態(tài)開放,對非法用戶來說,端口始終是關(guān)閉的(后文有實驗展示效果)。SDP網(wǎng)關(guān)抗住了全部攻擊。這次黑客們還是沒人能挑戰(zhàn)成功。
黑客大賽 #3
2015年的RSA大會上,第三次SDP黑客大賽開始,難度再次降低,不但提供之前所有信息,還提供了Bob Flores老人家的賬號密碼。另外,CSA還公布了登錄目標(biāo)服務(wù)器時捕獲的數(shù)據(jù)包,攻擊者可以利用這些數(shù)據(jù)包進(jìn)行復(fù)制。黑客只需要攻破SDP的設(shè)備驗證機(jī)制就算挑戰(zhàn)成功。
比賽持續(xù)了1周時間,即便難度降低,依舊沒有人能夠入侵目標(biāo)服務(wù)器。比賽期間總共探測到了超過1百萬次針對SDP管控端的服務(wù)器攻擊。
其中有3551次,攻擊者已經(jīng)構(gòu)造了正確的數(shù)據(jù)包格式,插入了正確的賬號ID,但是GMAC認(rèn)證沒有通過。(這次的攻擊者來自中國的最多)這次黑客們失敗的原因主要是SDP的設(shè)備檢測功能。攻擊者沒法偽造設(shè)備上獨特的密碼令牌,無法偽造出數(shù)據(jù)包中的數(shù)字簽名。簽名檢驗不過,還是無法建立tcp連接。
黑客大賽 #4
經(jīng)過前三次的大賽,CSA認(rèn)為SDP的安全性已經(jīng)得到很好的證明了。雖然SDP未必能阻擋國家級的黑客組織攻擊,但是足以抵抗平時生活中藏在暗處伺機(jī)而動的大部分黑客。
2016年RSA大會的第四次SDP黑客大賽,主要是測試SDP的高可用性,以及SDP的多云架構(gòu)。(多個云端環(huán)境各部署一個SDP網(wǎng)關(guān)進(jìn)行保護(hù)。)
如上圖所示,兩個SDP網(wǎng)關(guān)各自保護(hù)一個云上環(huán)境。用戶可以通過任意一個云端轉(zhuǎn)發(fā)至最終的業(yè)務(wù)系統(tǒng)。所以,SDP網(wǎng)關(guān)只要保證有一個網(wǎng)關(guān)存活,就可以保證整個業(yè)務(wù)系統(tǒng)的高可用性。如果黑客可以癱瘓兩個網(wǎng)關(guān),則會導(dǎo)致業(yè)務(wù)系統(tǒng)中斷。
比賽中有來自191個攻擊者的上百萬次攻擊。業(yè)務(wù)系統(tǒng)沒有產(chǎn)生一次中斷。(攻擊者大多來自美國)。這次比賽證明了SDP的高可用架構(gòu)還是相當(dāng)成功的。
為什么SDP能抵抗這么多黑客的攻擊?
總結(jié)下來,是因為SDP的5重防御機(jī)制:
1、SPA(單包授權(quán)認(rèn)證):網(wǎng)關(guān)只有接收到了客戶端發(fā)出的SPA包,驗證合法之后,才對該客戶端的IP開放指定端口。這個技術(shù)可以屏蔽絕大多數(shù)非法用戶的網(wǎng)絡(luò)攻擊,讓漏洞掃描、DDoS等攻擊方式都失效。
2、MTLS(雙向認(rèn)證):網(wǎng)關(guān)跟客戶端的通信是加密的,而且是雙向認(rèn)證,網(wǎng)關(guān)認(rèn)證用戶,用戶也要認(rèn)證網(wǎng)關(guān)。雙向的認(rèn)證保證了中間人攻擊無法奏效。
3、動態(tài)防火墻:經(jīng)過SPA認(rèn)證后,網(wǎng)關(guān)會放行指定端口。但端口放行是暫時的,幾秒內(nèi)沒有操作,端口就會自動關(guān)閉。最大限度提高防護(hù)強(qiáng)度。
4、設(shè)備驗證:SDP不止驗證用戶身份,還要驗證用戶設(shè)備。設(shè)備的驗證包括設(shè)備健康狀態(tài)的驗證,如是否裝了殺毒軟件等等。設(shè)備驗證還包括設(shè)備證書的驗證,只有合法設(shè)備才會安裝證書,證書參與通信數(shù)據(jù)的加密過程。保證連接都是來自合法設(shè)備的。
5、應(yīng)用綁定:用戶只能訪問有授權(quán)的應(yīng)用。這符合“最小化授權(quán)”原則,保證了威脅無法橫向蔓延。
SDP對抗DDoS
CSA的人做過如下兩個小實驗,具體說明SDP是如何抵抗各類攻擊的。
常見的DDoS攻擊有三種:
?。?)http攻擊:與服務(wù)器建立大量http連接,讓服務(wù)器耗盡精力,無力服務(wù)正常用戶。
?。?)Tcp syn攻擊:通過向服務(wù)器發(fā)送大量syn包,讓服務(wù)器始終處于等待狀態(tài)。
(3)udp反射攻擊:偽造udp請求發(fā)給第三方dns或ntp服務(wù)器,把udp包中的發(fā)起者改為攻擊目標(biāo)的IP,讓第三方服務(wù)器反射并放大自己的攻擊,對攻擊目標(biāo)造成大量沖擊。
SDP針對三種攻擊的防護(hù)機(jī)制分別是:
(1)http攻擊:SDP根本不與非法用戶建立http連接。
?。?)Tcp syn攻擊:SDP會把所有非法syn包直接丟掉,不會等待。
(3)udp反射攻擊:SDP可以對一些非公開的dns或ntp進(jìn)行保護(hù),避免惡意udp包觸達(dá)這些服務(wù)。
下面通過一次模擬的syn flood攻擊,看看SDP的真實防護(hù)效果。
實驗環(huán)境是這樣的:四臺虛擬機(jī),一臺是好人,一臺是黑客,一臺SDP網(wǎng)關(guān),一臺是被保護(hù)的系統(tǒng)。一個流量監(jiān)測工具,始終監(jiān)測SDP網(wǎng)關(guān)和被保護(hù)系統(tǒng)上面的流量。
第一回合:關(guān)閉SDP網(wǎng)關(guān)。
黑客和好人都能通過SDP網(wǎng)關(guān)的虛擬機(jī)轉(zhuǎn)發(fā)到被保護(hù)系統(tǒng)。當(dāng)黑客的大量流量發(fā)起之后,被保護(hù)系統(tǒng)被淹沒,好人根本無法與系統(tǒng)建立連接。
下圖是SDP網(wǎng)關(guān)和被保護(hù)系統(tǒng)的流量圖。
可以看到黑客發(fā)起攻擊之后,SDP網(wǎng)關(guān)上的流量猛增(下圖中的Outside SDP),同時被保護(hù)系統(tǒng)上的流量也猛增(下圖中的Inside SDP)。注意下圖中兩者只是單位不同(Mbps、Kbps),其實所承受的流量是完全一致的。
此時,好人基本上是無法連接到被保護(hù)系統(tǒng)的,大量的服務(wù)器資源都被黑客占用,服務(wù)器已經(jīng)被癱瘓掉了。
第二回合:開啟SDP網(wǎng)關(guān)
開啟SDP網(wǎng)關(guān)之后,由于黑客沒有合法的用戶身份,沒有SDP客戶端,所以黑客發(fā)起的流量是無法通過SDP網(wǎng)關(guān)的。攻擊完全接觸不到被保護(hù)系統(tǒng)。
從下圖中可以看出,黑客攻擊開始后,只有SDP網(wǎng)關(guān)(圖中上部的Outside SDP)的流量有一個猛增。被保護(hù)系統(tǒng)的流量始終維持穩(wěn)定。
在SDP網(wǎng)關(guān)的保護(hù)下,好人能正常連接被保護(hù)系統(tǒng),服務(wù)器能正常工作。
從上面的實驗可以看出,SDP網(wǎng)關(guān)確實具有抗DDoS的效果,可以讓合法用戶在黑客攻擊時,不受影響,繼續(xù)正常業(yè)務(wù)工作。
SDP防漏洞掃描
通常黑客的攻擊都是從探測端口,收集情報開始的。黑客后續(xù)怎么進(jìn)攻完全依賴于前期收集到的目標(biāo)的弱點。所以能否掃描到目標(biāo)的端口,對接下來的進(jìn)攻是至關(guān)重要的。
如果用Nmap掃描工具對SDP網(wǎng)關(guān)做一次掃描的話,結(jié)果一定是下圖這樣。圖中第三行顯示,Nmap對SDP網(wǎng)關(guān)的IP地址進(jìn)行了所有端口的掃描,結(jié)果發(fā)現(xiàn),沒有一個端口是開放的。
沒有端口開放,對黑客來說,就代表了這里根本沒有運行任何服務(wù)。也就是說,SDP網(wǎng)關(guān)在黑客眼里是“隱形”的。沒有人能攻擊他看不到的東西。
當(dāng)然,在合法用戶的眼里,SDP網(wǎng)關(guān)肯定不是隱形的。不然合法用戶也無法正常工作了。合法用戶來的時候,SDP網(wǎng)關(guān)會在防火墻上創(chuàng)建一個特定的規(guī)則,如下圖所示。他會只針對這個合法用戶的IP創(chuàng)建一條放行規(guī)則——允許來自合法用戶IP的數(shù)據(jù)包通過。這條規(guī)則是針對合法用戶的IP的,來自其他IP的非法請求還是無法通過SDP網(wǎng)關(guān)。
通過這個功能,SDP網(wǎng)關(guān)相當(dāng)于給被保護(hù)系統(tǒng)加了一層隱身防護(hù)罩。黑客看不到被保護(hù)系統(tǒng),像SQL注入、漏洞攻擊、 XSS, CSRF等等攻擊根本無從發(fā)起。
這是一個相當(dāng)簡潔有效的防護(hù)手段。在SDP網(wǎng)關(guān)面前,絕大多數(shù)網(wǎng)絡(luò)攻擊都是失效的。
SDP適用場景總結(jié)
SDP架構(gòu)需要用戶安裝客戶端,所以SDP對終端的安全控制更強(qiáng),客戶端和網(wǎng)關(guān)聯(lián)動能產(chǎn)生更嚴(yán)密的防護(hù)效果。但客戶端也限制了SDP的應(yīng)用場景。一些公開的網(wǎng)站沒法用SDP保護(hù)。
SDP特別適用于合作伙伴、供應(yīng)商、第三方人員、分支機(jī)構(gòu)等等特定人群訪問業(yè)務(wù)系統(tǒng)的場景。這些系統(tǒng)需要在互聯(lián)網(wǎng)上開放,以便第三方人員訪問。但是又不需要向全世界所有人開放,引來黑客攻擊。這種場景下,SDP能保證合法用戶正常連接,對未知用戶“隱形”。SDP在這類場景下是相當(dāng)能打的。