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