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