一個網(wǎng)絡(luò)有多少IP和端口向外暴露,就有多少可以被攻擊的點。暴露面越小,網(wǎng)絡(luò)越安全。
零信任里面有一些可以實現(xiàn)“零暴露面”的隱身技術(shù),可以讓企業(yè)免疫網(wǎng)絡(luò)攻擊。
下面我就來介紹其中三種。
隱身技術(shù)1:SDP端口隱藏
SDP技術(shù)是用來實現(xiàn)零信任理念的最好的技術(shù)框架之一。SDP技術(shù)可以把攻擊面降低到最小,甚至完全不暴露端口,實現(xiàn)“零”攻擊面。
大家都知道,一個網(wǎng)站需要把端口映射到互聯(lián)網(wǎng)上,才能被外部用戶訪問。
SDP可以做到——讓一個網(wǎng)站只對合法用戶映射端口,不對非法用戶映射端口。
就像下圖這樣,只有合法用戶能連接到業(yè)務(wù)系統(tǒng)。非法用戶完全“看不到”被保護的業(yè)務(wù)系統(tǒng)和網(wǎng)絡(luò)。壞人去嘗試進行連接的話,會發(fā)現(xiàn)這個IP地址上什么網(wǎng)站都沒有。但是同時好人卻可以完全正常地使用。
被保護的網(wǎng)絡(luò)就像隱身了一樣,壞人根本看不到,摸不著。包括下圖中列舉的各類網(wǎng)絡(luò)攻擊都無從發(fā)起。有了SDP就相當于對所有網(wǎng)絡(luò)攻擊都免疫了。
這么神奇的效果是怎么實現(xiàn)的呢?介紹端口隱身的原理之前,我先科普一下啥是端口,黑客怎么攻擊端口。
什么是端口
如果一個服務(wù)器是一個大樓的話,端口就像大樓的各個出入口。不同的入口可以進入不同的店鋪、不同的區(qū)域。對服務(wù)器來說,不同的端口對應(yīng)了不同的服務(wù)程序。
每個服務(wù)器程序都是通過“端口”跟外面的用戶通信的。例如,我們平時用瀏覽器打開百度的時候,就是通過百度的443端口跟百度的服務(wù)器程序通信的。瀏覽器地址欄里真實的URL是www.baidu.com:443,你一般看不到443,是因為瀏覽器把端口隱藏了,沒顯示出來。不信你在url后面輸入:443試試,打開的是同一個界面。
訪問https網(wǎng)站是通過服務(wù)器的443端口,訪問http網(wǎng)站是通過服務(wù)器的80端口,建立SSH連接是通過22端口,發(fā)送郵件是通過25端口……
黑客怎么攻擊端口
黑客一般會先收集服務(wù)器都開了哪些端口,猜測服務(wù)器提供什么服務(wù),然后分別制定相應(yīng)的攻擊計劃。
所以,端口是攻防的關(guān)鍵。各類網(wǎng)絡(luò)攻擊基本都是以“端口”為目標的。如果端口沒有暴露出來的話,黑客就沒有可攻擊的目標。
1、利用漏洞攻擊
黑客用端口掃描工具(例如Nmap)可以從端口的返回信息中了解到很多服務(wù)器的信息。例如,服務(wù)器的操作系統(tǒng)、中間件、通信協(xié)議等等。
壞人知道了目標服務(wù)器的信息,就可以利用相應(yīng)的漏洞去攻擊。互聯(lián)網(wǎng)上有很多公開的漏洞庫。只要在漏洞庫里搜索,就能查到漏洞。
操作系統(tǒng)、中間件等軟件廠家會從漏洞庫里查找自己的漏洞,并進行修復(fù)升級。但軟件出新版了,用戶不一定立馬跟著升級。大部分用戶用的都是帶著漏洞的舊版本。
對黑客來說,這些服務(wù)器和用戶,都成了靶子。黑客可以隨意攻擊,讓服務(wù)器癱瘓、或者竊取機密信息。
2、DDoS攻擊
除了利用漏洞,黑客還有更簡單粗暴的攻擊方法。
如果發(fā)現(xiàn)目標服務(wù)器某個端口是暴露的,直接利用大批的肉雞傀儡機進行流量攻擊,把服務(wù)器的資源占滿,直接就能給服務(wù)器搞癱瘓。
3、自動信息收集
看到這,你可能會想,端口直接暴露在互聯(lián)網(wǎng)上確實危險,但是哪有那么多人這么無聊,每天在網(wǎng)上掃描漏洞、肆意進攻啊。有的話也輪不到我吧。
我告訴你,錯了!每天有很多爬蟲在大規(guī)模地自動掃描。
就像百度會不斷地爬全世界的所有網(wǎng)頁一樣,很多黑客組織會搞一套集群每天去掃全世界所有的服務(wù)器。下圖就是某個國內(nèi)的公開的服務(wù)器搜索引擎。去搜一個漏洞的名字,馬上能把全世界所有有這個漏洞的服務(wù)器列出來。
所以,你可能已經(jīng)在別人的目標列表里了,只不過還沒輪到,或者你還不知道而已。
一般的防御手段
網(wǎng)絡(luò)攻擊很恐怖,那現(xiàn)在一般公司是怎么防御的呢?一般有兩種手段。
一種是允許所有人訪問目標網(wǎng)站,但是訪問時會進行各種安全過濾。發(fā)現(xiàn)惡意代碼或者病毒木馬,則立即進行阻斷。
這種方法依賴于識別惡意行為的規(guī)則庫。如果一種新型的攻擊剛剛被發(fā)明,破解方法還沒被發(fā)明出來,那么很大可能這種攻擊是防御不住的。這就是常說的零日攻擊。
而且,這種防御的思路有一個缺陷,就是只要目標網(wǎng)站是暴露出來的,它就是一個靶子!壞人可以隨時去研究它,破解它。
例如,WAF是專門防御針對web的攻擊的設(shè)備,網(wǎng)上WAF的繞過教程有都很多。因為WAF是所有人都可以看到的,所有人都可以不斷地去研究它,去測試有沒有辦法繞過它的防御。
正是因為第一種方法有這種局限,所以很多重要的系統(tǒng)都是不暴露在公網(wǎng)上的。
如果需要遠程訪問這種系統(tǒng)的話,企業(yè)一般選擇通過VPN接入。
VPN的特點是它可以減小暴露面。外部用戶看不到VPN保護的業(yè)務(wù)系統(tǒng)的端口。
但是VPN還是存在一個問題,就是VPN本身還是要暴露端口的。例如SSL VPN就要暴露443端口。有端口就有漏洞!例如下圖就是我在漏洞庫里搜到的各種VPN的漏洞。
所以VPN也不是一個完美的辦法。那么有沒有辦法一個端口都不暴露呢?有!方法就是——SDP。
SDP的隱身原理
回到最開始的圖。SDP設(shè)備通常會部署在網(wǎng)絡(luò)的入口進行防御(下圖中“火”左邊的圓圈開關(guān))。被保護的網(wǎng)絡(luò)只有一個出入口。SDP就在這里把守。
1、SDP的組件
SDP需要兩個組件配合,才能實現(xiàn)隱身的效果。這兩個組件分別是SDP客戶端和SDP網(wǎng)關(guān)。
?。?)SDP客戶端安裝在用戶電腦上。
?。?)SDP網(wǎng)關(guān)部署在網(wǎng)絡(luò)入口。
2、默認關(guān)閉所有端口
SDP網(wǎng)關(guān)的默認規(guī)則是——關(guān)閉所有端口,拒絕一切連接。網(wǎng)關(guān)防火墻規(guī)則只有一條,就是deny all。默認情況下,誰來他都不理。所有人都連不上它的端口。SDP網(wǎng)關(guān)就是這么“隱身”的。
3、端口敲門
這樣的話,壞人是連不上了,但是好人怎么連呢?好人要進行一套特殊的流程才能連。這套流程叫做“端口敲門”。
打個比方,端口敲門的原理就像是,你要進入一個秘密基地,基地的大門平時是緊閉的。里面有個人守著,外面怎么敲門都不給開,除非你敲對了暗號,例如三長兩短。敲對了暗號,就給開門了。
SDP技術(shù)要求好人在連接端口之前,也要“敲門”。
?。?)SDP客戶端在跟SDP網(wǎng)關(guān)通信之前,會先發(fā)一個“敲門”用的數(shù)據(jù)包。包中帶有用戶身份和申請訪問的端口。
?。?)SDP網(wǎng)關(guān)收到敲門包之后進行驗證,看看身份合不合法,看看申請的端口有沒有授權(quán)。
?。?)如果都合格了,那么SDP網(wǎng)關(guān)會在防火墻中添加一條規(guī)則——允許來自這個用戶的IP的流量訪問某某端口。這就相當于把SDP網(wǎng)關(guān)這扇門給“敲”開了。
?。?)敲門完成之后,用戶再去訪問網(wǎng)關(guān)的端口就可以訪問通了。網(wǎng)關(guān)會把用戶的流量轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)系統(tǒng)。
注意,這個時候,壞人去訪問“同一個端口”還是不能訪問。因為網(wǎng)關(guān)只對好人的IP做了放行,壞人的IP是沒有放行的。所以壞人還是掃不到端口,看不到,摸不著。
而且目標端口,對好人也只是暫時開放,一旦好人停止操作超過一分鐘,端口就自動關(guān)了。如果好人一直在操作,那么SDP客戶端會定期去敲門,保持端口是開放的。
你可能會發(fā)現(xiàn),這里面有個問題——如果SDP網(wǎng)關(guān)默認所有的端口都是關(guān)閉的,那敲門包是怎么接收的呢?
其實,SDP會留一個端口,處于半開放的狀態(tài),只接收,不響應(yīng)。(例如,隨便一個UDP端口)
(1)端口號是網(wǎng)關(guān)事先與客戶端協(xié)商好的,例如60001
?。?)客戶端把敲門包發(fā)送到60001端口上
(2)60001端口接收數(shù)據(jù)包后不做任何響應(yīng)
?。?)壞人的掃描工具探測60001端口時,會認為這個端口啥反應(yīng)都沒有,肯定是關(guān)閉的。
以上就是SDP的端口隱身機制。
4、隱身的效果
如果拿Nmap去掃描SDP網(wǎng)關(guān)的話,結(jié)果會發(fā)現(xiàn)所有端口都是關(guān)閉狀態(tài),如下圖。但是用SDP客戶端可以正常打開網(wǎng)站。
5、SDP和VPN的對比
Gartner預(yù)言SDP會替代VPN技術(shù),主要就是因為SDP的隱身能力。VPN至少還是要暴露一個端口的(例如ssl vpn的443端口)。為什么總是聽到vpn爆出漏洞的新聞呢,就是因為vpn始終暴露端口,壞人可以隨時去嘗試攻擊,去研究你有沒有漏洞。
所以從這點來說,SDP的安全性確實更高。
隱身技術(shù)2:基于云的IP隱身
SDP可以做到端口隱藏,但IP還是需要對外映射的。不然好人也訪問不到了。
有沒有不用映射IP就能實現(xiàn)遠程訪問的技術(shù)呢?有!很多基于云的零信任產(chǎn)品會帶有這種技術(shù)。
1、云隱身的原理
這種技術(shù)的架構(gòu)如圖,包括三個部分:客戶端、云端、連接器。
?。?)連接器先主動跟云端建立隧道
?。?)客戶端的流量先發(fā)到云端,再沿隧道的回路,轉(zhuǎn)發(fā)到連接器
?。?)最后連接器再把流量轉(zhuǎn)發(fā)給內(nèi)網(wǎng)服務(wù)器
云端相當于SDP的網(wǎng)關(guān)。連接器起到連接內(nèi)網(wǎng)和云端的作用。
這種架構(gòu)下,企業(yè)不用給連接器映射IP和端口。連接器能上網(wǎng)就行。企業(yè)內(nèi)網(wǎng)只有向外的連接,沒有向內(nèi)的連接。這樣,壞人就徹底進不來了。
為什么連接器不需要對外映射IP和端口呢?
因為連接器是主動向外建立隧道,連接器本身不對外提供服務(wù)。云端跟連接器通信,是沿著隧道的回路來進行通信的。
如果想不明白的話,可以想想我們平時在家上網(wǎng)的場景。家里電腦是不對外映射IP和端口的,網(wǎng)站怎么把信息發(fā)給電腦呢?電腦主動向網(wǎng)站發(fā)起連接,網(wǎng)站是順著連接的回路把網(wǎng)頁發(fā)下來的。
2、云隱身的好處
企業(yè)不用暴露IP和端口有很多好處。
(1)首先就是不用備案了。
(2)而且,各種DDoS攻擊和漏洞掃描都不可能了。掃描工具里要填寫目標IP。企業(yè)什么IP都不暴露的話,壞人別說掃端口了,IP都不知道怎么填。
這樣,企業(yè)網(wǎng)絡(luò)就相當于徹底隱身了,耶!
3、云隱身的缺陷
這種模式又省心又安全,看似完美。但其實是有個風險點的。風險點就是云端自身的安全。云端還是要對外映射IP的。
這種模式本質(zhì)上是把風險轉(zhuǎn)嫁了,轉(zhuǎn)嫁給云端了。
4、云+SDP的結(jié)合
如果要保護云端的話,可以考慮把SDP融入進來。云端裝一個SDP的網(wǎng)關(guān)。云還是暴露IP,但是不暴露端口。
這樣,總共兩層防護,第一層是SDP隱藏端口,第二層是連接器不暴露IP。整體的安全性就比較完美了。
隱身技術(shù)3:無端模式
SDP+連接器的方式在安全性上是很好的,但是在便捷性上有一個缺點——需要用戶安裝一個客戶端。因為敲門是一個特殊的流程,有客戶端才能執(zhí)行。電腦上默認瀏覽器沒法執(zhí)行。
有端的話就難推廣。一般終端的產(chǎn)品是比較難運維的,用戶很排斥往自己的電腦上裝各種亂七八糟的東西。
能不能沒有端?能。
我看到過一個國外網(wǎng)友給自己公司DIY了一套無端的隱身方案。
1、無端模式的架構(gòu)
?。?)用戶先登錄SSO(單點登錄)系統(tǒng)
?。?)SSO通知防火墻添加一條規(guī)則——允許來自用戶IP的流量(規(guī)則標簽里加上創(chuàng)建時間)
?。?)后臺有一個回收程序,定期去檢查所有防火墻規(guī)則,對比創(chuàng)建時間,發(fā)現(xiàn)已經(jīng)過了10分鐘,就立即清除該規(guī)則。
2、無端模式的優(yōu)缺點
這種方案也能實現(xiàn)隱身的效果。用戶登錄SSO之前,防火墻是關(guān)閉的。業(yè)務(wù)系統(tǒng)在互聯(lián)網(wǎng)完全掃不到。
這種方案相當于把敲門的邏輯放到SSO系統(tǒng)里去執(zhí)行了。好處是用戶不用安裝客戶端,但是代價是企業(yè)的SSO系統(tǒng)是暴露在外的。
所以,從這個角度看,體驗上來了,但是安全性下去了。
總結(jié)
上面介紹了三種隱身技術(shù),各有利弊,各有適合的場景。三種技術(shù)還可以兩兩組合,產(chǎn)生更佳效果。
隱身技術(shù)企業(yè)帶來的價值也非常大。有隱身之后可以避免掉絕大多數(shù)的網(wǎng)絡(luò)攻擊、滲透測試。尤其是比較大的公司,內(nèi)部幾百個系統(tǒng),一個一個搞安全建設(shè)太累了,不如在統(tǒng)一入口上直接隱身,簡單有效。