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