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