基于遠程桌面協(xié)議(RDP)的安全威脅與防范
遠程桌面協(xié)議(Remote Desktop Protocol,簡稱RDP)是用于遠程控制系統(tǒng)較流行的通信協(xié)議之一,適用于當前大多數(shù)Windows操作系統(tǒng),通過提供圖形用戶界面,允許用戶遠程訪問服務(wù)器或其他計算機。Microsoft甚至將其定位為管理運行Windows系統(tǒng)Azure虛擬機的默認方法。
由于RDP是一種非常流行的協(xié)議,攻擊者一旦獲取訪問權(quán)限,就會使用其轉(zhuǎn)移到其他系統(tǒng),所以,RDP也成功吸引了攻擊者的目光。因為他們意識到,相較于利用沒有必勝把握的漏洞,使用RDP這種遠程訪問工具明顯更加高效——只需獲得正確的憑據(jù)即可訪問企業(yè)網(wǎng)絡(luò)。
根據(jù)最近的X-Force報告,竊取訪問這些系統(tǒng)的憑據(jù)是暗網(wǎng)上利潤最可觀的生意之一,不過,這些直接暴露的服務(wù)器并不是攻擊者使用(或者說濫用)RDP的唯一系統(tǒng),他們的目標之一是融入常規(guī)流量。
RDP如何運行?
在深入探討RDP威脅和防御之前,最好先了解一下它是如何運行的。RDP是一個雙向通信協(xié)議。它可以將服務(wù)器的屏幕輸出傳輸?shù)娇蛻舳?將鍵盤和鼠標的輸入內(nèi)容從客戶端傳輸?shù)椒?wù)器;這個過程是非對稱的,因為大多數(shù)數(shù)據(jù)都是從服務(wù)器到客戶端,但客戶端返回數(shù)據(jù)很少。客戶端和服務(wù)器在建立通信之前必須經(jīng)歷多個階段。
客戶端連接后,就與服務(wù)器使用設(shè)置(例如屏幕分辨率)、支持功能與許可證信息達成一致。然后,它們就RDP安全類型達成一致,并從兩種支持模式中進行選擇:一是標準模式,基于RC4;二是增強模式,其中RDP依賴于其他協(xié)議,例如TLS或CredSSP。
最后,客戶端與服務(wù)器必須就所需的通道數(shù)量達成一致。所謂通道即單獨的數(shù)據(jù)流,每個數(shù)據(jù)流都有自己的ID,從而構(gòu)成遠程桌面協(xié)議。這些通道可以重定向?qū)ξ募到y(tǒng)的訪問,或啟用客戶端與服務(wù)器之間的剪貼板共享。
RDP相關(guān)漏洞及APT組織
BlueKeep
2019年,研究人員發(fā)現(xiàn)了RDP中的一個關(guān)鍵漏洞,稱為“BlueKeep”,利用該漏洞(CVE-2019-0708)可遠程執(zhí)行隨機代碼,無需用戶執(zhí)行任何操作,同時無需有效憑證。這些事實結(jié)合起來可能會導(dǎo)致蠕蟲——可以在易受攻擊的系統(tǒng)間自我傳播的惡意軟件。幾年前出現(xiàn)的Wanncry惡意軟件中曾發(fā)現(xiàn)過了類似事情。BlueKeep的顯著特點是它可以連接到較老的Windows系統(tǒng)。這迫使微軟采取奇怪的步驟為其不再支持的系統(tǒng)版本制作新補丁。
DejaBlue
2019年8月,研究人員公布DejaBlue——它不是一個漏洞,而是一系列漏洞,類似于BlueKeep,允許攻擊者在沒有任何形式的身份驗證情況下劫持易受攻擊的系統(tǒng)。與BlueKeep不同的是,DejaBlue的漏洞位于較新版本的Windows中。有時候,攻擊者無需濫用漏洞,只要簡單地利用配置錯誤就能進行攻擊。RDP安全中一些常見的風(fēng)險包括:弱用戶登錄憑據(jù);未對RDP登錄服務(wù)器的行為進行記錄或監(jiān)控,這些系統(tǒng)允許攻擊者隨意嘗試蠻力或密碼噴灑攻擊;未經(jīng)任何網(wǎng)絡(luò)過濾公開暴露的系統(tǒng)。
經(jīng)常利用RDP實施攻擊的組織包括:APT41、FIN6、FIN7等組織使用RDP進行橫向移動;FLIPSIDE等組織使用RDP來竊取信息,例如,Ngrok 就是一個合法的反向代理,可以通過對RDP中的流量隧道化來滲漏受害者數(shù)據(jù);WannaCry惡意軟件可以在現(xiàn)有的遠程桌面會話中執(zhí)行惡意軟件,這種對會話的“竊取”行為通常稱為“RDP劫持”。
防范建議
雖然存在諸多安全風(fēng)險,但RDP仍然可以為我們提供很多價值。想要保護遠程桌面服務(wù)器,需要考慮許多關(guān)鍵因素。
首先,補丁管理是基礎(chǔ),確保系統(tǒng)始終保持最新狀態(tài),尤其是對于關(guān)鍵的遠程訪問服務(wù)而言,其重要性不言而喻。其次,大多數(shù)情況下,組織無需向全世界公開RDP,組織可以使用防火墻、IP限制、通過虛擬專用網(wǎng)限制訪問或使用即時訪問,后者大大降低了風(fēng)險,并且可以確保組織在需要時隨時訪問該服務(wù)。再次,確保不要為啟用RDP的帳戶使用易于猜測的密碼。如果不需要,不要允許遠程訪問所有系統(tǒng)用戶。
此外,實現(xiàn)某種形式的自動帳戶鎖定非常有意義,可以防止攻擊者通過暴力破解來猜測密碼。組織可能還需要啟用網(wǎng)絡(luò)級別身份驗證或NLA——這是一種緩解措施,可防止對RDP隧道的意外訪問。
監(jiān)控和取證工件
無論組織的RDP設(shè)置多么安全,總會有攻擊者抓到機會的時候。這時,組織需要依靠日志記錄和監(jiān)控來分析正在發(fā)生的事情。
RDP取證工件的重要來源包括:命令quser、qwinsta和qprocess提供有關(guān)RDP用戶、會話和進程的信息;Microsoft-Windows-Terminal-Services-RemoteConnectionManager和Windows-TerminalServices-LocalSessionManager通知客戶端網(wǎng)絡(luò)連接以及RDP會話的起止; 最后,Microsoft-Windows-Security-Auditing包括認證嘗試成功或失敗的事件。
盡管RDP確實存在諸多風(fēng)險,而且攻擊者對遠程訪問工具的興趣也日趨高漲,但這并不意味著組織不能以安全和可控的方式部署它們。如果組織充分考慮上述預(yù)防措施,并設(shè)置了足夠的日志記錄和監(jiān)控策略,應(yīng)該會收到不錯的效果。
【本文是51CTO專欄作者“安全牛”的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】