引言:SSH廣泛部署在許多公司的服務(wù)器和PC上,在平板電腦、智能手機(jī)、家用寬帶“貓”和路由器上,甚至在一些車載娛樂(lè)和引擎管理系統(tǒng)上都有廣泛應(yīng)用。
SSH廣泛部署在許多公司的服務(wù)器和PC上,在平板電腦、智能手機(jī)、家用寬帶“貓”和路由器上,甚至在一些車載娛樂(lè)和引擎管理系統(tǒng)上都有廣泛應(yīng)用。
SSH為用戶和機(jī)器到機(jī)器的會(huì)話提供了安全連接和傳輸協(xié)議。因而它幾乎成為系統(tǒng)管理員和支持人員的必備工具。它往往支持管理員訪問(wèn)更高級(jí)的特權(quán)、執(zhí)行管理任務(wù),或訪問(wèn)包含敏感信息的特定服務(wù)器。損害擁有特權(quán)訪問(wèn)的賬戶可能會(huì)導(dǎo)致破壞應(yīng)用程序、泄露環(huán)境中的數(shù)據(jù),并成為泄露企業(yè)網(wǎng)絡(luò)關(guān)鍵系統(tǒng)和使企業(yè)遭受攻擊的起點(diǎn)。企業(yè)敏感信息在遭到泄露后,其修復(fù)成本高昂,并會(huì)給企業(yè)團(tuán)隊(duì)和公司聲譽(yù)帶來(lái)巨大破壞。
與允許遠(yuǎn)程主機(jī)或設(shè)備連接到計(jì)算機(jī)的任何服務(wù)一樣,SSH也可被攻擊或?yàn)E用。攻擊者通過(guò)攻擊要求連接的身份驗(yàn)證就可以經(jīng)由SSH破壞企業(yè)的系統(tǒng)。這種攻擊可使用竊取的口令或密碼短語(yǔ)實(shí)現(xiàn),而且往往與失竊的SSH密鑰有密切關(guān)聯(lián)。
對(duì)于如何使用安全協(xié)議,SSH有一些基本的控制。但SSH服務(wù)一般是由本地的配置文本文件控制的。運(yùn)行SSH的每個(gè)系統(tǒng)都有其自己版本的配置文件,并定義如下方面:如何提供服務(wù)、如何建立連接、如何對(duì)連接進(jìn)行認(rèn)證、哪些人可以訪問(wèn)等。各種SSH服務(wù)的配置就是在有人或程序試圖連接時(shí)所實(shí)施的規(guī)則。不幸的是,系統(tǒng)和應(yīng)用程序管理員都可以訪問(wèn)控制著企業(yè)最敏感數(shù)據(jù)的關(guān)鍵基礎(chǔ)架構(gòu),并且可以輕松地濫用其特權(quán)而改變規(guī)則。這種不受管理的狀態(tài)勢(shì)必給企業(yè)帶來(lái)惡夢(mèng)。
有研究發(fā)現(xiàn),很多超級(jí)用戶(管理員)和終端用戶都在使SSH協(xié)議時(shí)留下了后門:為L(zhǎng)inux的root用戶或Windows的超級(jí)用戶提供訪問(wèn)幾乎每一臺(tái)服務(wù)器、虛擬機(jī)、企業(yè)內(nèi)的云服務(wù)的訪問(wèn)權(quán)。此后門一般是不受企業(yè)控制的一個(gè)未經(jīng)許可的且不受管理的賬戶,當(dāng)然違反了企業(yè)的策略。此外,為了圖自己方便,管理員常常嵌入SSH用戶密鑰,以實(shí)現(xiàn)一次性登錄的“快感”。其簡(jiǎn)單的想法是不必再鍵入口令或密碼短語(yǔ),但這會(huì)使企業(yè)遭受攻擊。
SSH密鑰分為兩種類型:用戶密鑰和主機(jī)密鑰。主機(jī)密鑰用于在連接的建立期間提供認(rèn)證的安全通道,不妨把它比喻為電子商務(wù)網(wǎng)站W(wǎng)eb服務(wù)器上的SSL證書(shū),其目的是為了保護(hù)連接。但它又不同于網(wǎng)站的證書(shū),主機(jī)密鑰一般是不實(shí)施管理的。在安裝好服務(wù)器時(shí)主機(jī)密鑰就創(chuàng)建好了,并且?guī)缀醪贿M(jìn)行更新。
目前,在用戶進(jìn)行身份驗(yàn)證和將其登錄憑據(jù)(口令)暴露給服務(wù)器之前,驗(yàn)證到主機(jī)的連接是終端用戶的責(zé)任。一般來(lái)說(shuō),用戶會(huì)默認(rèn)信任要訪問(wèn)的主機(jī)。而粗心大意的用戶有可能接受一個(gè)不可信任的連接,并且造成中間人攻擊竊取其口令的機(jī)會(huì)。然而,由于主機(jī)密鑰存在于每個(gè)服務(wù)器的操作系統(tǒng)中,它本身就具有靜態(tài)屬性,而且又沒(méi)有集中管理和自動(dòng)的密鑰輪換過(guò)程,所以多數(shù)SSH企業(yè)的配置一般都不將主機(jī)密鑰用于用戶訪問(wèn)。
而用戶密鑰則不同,它提供了不同類型的功能。這種密鑰可以代替用戶名和口令,而且可被用于認(rèn)證一個(gè)系統(tǒng)的賬戶。
企業(yè)中的這種密鑰最經(jīng)常的合法使用是支持從一臺(tái)機(jī)器到另一個(gè)機(jī)器的自動(dòng)連接,為的是執(zhí)行自動(dòng)化的或安排好的任務(wù)。這些服務(wù)仍要求賬戶(常被稱為功能賬戶或服務(wù)賬戶)登錄,并且創(chuàng)建這種賬戶是為了給應(yīng)用程序而非用戶使用。
問(wèn)題是,SSH密鑰被許可后,就很難實(shí)施控制。在SSH配置中,我們可以選擇允許密鑰的使用或不允許。如果允許了,那么我們需要做的就是將用戶密鑰放在一個(gè)目標(biāo)系統(tǒng)上,從而被人用于獲得訪問(wèn)控制。
用于認(rèn)證的SSH用戶密鑰的使用在企業(yè)內(nèi)可能擁有合法目的。有些企業(yè)使用腳本,從而可以半自動(dòng)化地將密鑰分發(fā)給已知的服務(wù)器。在企業(yè)建立新的基礎(chǔ)架構(gòu)而腳本環(huán)境又對(duì)其不了解時(shí),或是管理人員手工移動(dòng)了密鑰時(shí),就會(huì)出現(xiàn)問(wèn)題。
在典型的部署中,SSH依賴于在每個(gè)系統(tǒng)上配置的本地認(rèn)證和訪問(wèn)控制。對(duì)于幾臺(tái)服務(wù)器和幾個(gè)賬戶,這種配置是容易管理的。而隨著主機(jī)和賬戶數(shù)量的增加,管理負(fù)擔(dān)會(huì)激增,甚至難以管理或產(chǎn)生危險(xiǎn)。
下面的內(nèi)容提供的是一些基本指南。
首先,公司的用戶賬戶需要集中管理,即在一個(gè)地方管理。在公司需要禁用對(duì)賬戶的訪問(wèn)時(shí),可集中進(jìn)行。你可以想像一下,在一位管理人員要離開(kāi)公司時(shí),企業(yè)不得不在十臺(tái)、上百臺(tái)甚至更多服務(wù)器上禁用一個(gè)賬戶時(shí)的情形。即使遺漏一臺(tái)服務(wù)器都有可能允許非法進(jìn)入企業(yè),從而將整個(gè)基礎(chǔ)架構(gòu)暴露給攻擊。
其次,借助最集中化的訪問(wèn)管理系統(tǒng),你還可以管理哪臺(tái)服務(wù)器或服務(wù)器組可被允許訪問(wèn)。記住,并非每個(gè)用戶賬戶都應(yīng)當(dāng)要求訪問(wèn)每個(gè)系統(tǒng),限制訪問(wèn)是一種基本的安全工具。
第三,為角色創(chuàng)建管理組,并向組中增加用戶賬戶,然后允許基于角色的訪問(wèn)控制。為已經(jīng)定義的組創(chuàng)建訪問(wèn)和認(rèn)證要比對(duì)用戶單獨(dú)進(jìn)行調(diào)整要更高效。
第四,對(duì)多個(gè)系統(tǒng)進(jìn)行集中化認(rèn)證的另一個(gè)好處是口令管理。只需記住一個(gè)口令要比記住大量口令要好得多。要求定期改變口令是一種很好的實(shí)踐,當(dāng)企業(yè)可以在一個(gè)地方管理賬戶時(shí),改變口令要容易得多。
第五,會(huì)話的兩端需要知道來(lái)自用戶的SSH密鑰和給用戶的SSH密鑰,以便保證通道的安全。當(dāng)用戶試圖連接時(shí),企業(yè)應(yīng)選擇一種可以自動(dòng)使密鑰可用的解決方案。預(yù)先將密鑰嵌入到服務(wù)器上不但效率低下,而且在日后用戶離開(kāi)公司或變更角色時(shí),容易忘記刪除。
第六,企業(yè)的管理和支持人員已經(jīng)使用SSH很長(zhǎng)時(shí)間了。管理員應(yīng)當(dāng)認(rèn)識(shí)到的一種行為是,用戶們已經(jīng)習(xí)慣于創(chuàng)建自己的SSH用戶密鑰。企業(yè)應(yīng)選擇一種可允許將用戶生成的密鑰傳送到一個(gè)可管理框架并能集中控制的解決方案。
在你決定用哪些進(jìn)行認(rèn)證之后,就需要與默認(rèn)的SSH行為對(duì)抗。
SSH工具套件允許企業(yè)以多種方式訪問(wèn)服務(wù)器和設(shè)備,列示如下:
1.登錄到遠(yuǎn)程服務(wù)器或設(shè)備上的外殼程序;
2.在遠(yuǎn)程服務(wù)器或設(shè)備上僅執(zhí)行一個(gè)命令;
3.保障文件傳送的安全;
4.高效安全地備份、復(fù)制、鏡像文件;
5.轉(zhuǎn)發(fā)或建立網(wǎng)絡(luò)端口的隧道;
6.全面加密的VPN;
7.轉(zhuǎn)發(fā)遠(yuǎn)程主機(jī)上的X窗口;
8.通過(guò)加密的代理服務(wù)器連接去瀏覽Web;
9.安全地裝載遠(yuǎn)程服務(wù)器上的目錄,使其作為本地計(jì)算機(jī)的一個(gè)文件系統(tǒng);
10.通過(guò)上文討論的一種或幾種機(jī)制自動(dòng)地遠(yuǎn)程監(jiān)視和管理服務(wù)器。
默認(rèn)情況下,如果用戶擁有一個(gè)合法的主機(jī)或用戶密鑰,就可以使用任何SSH出入口進(jìn)入服務(wù)器。如果密鑰失竊或被復(fù)制,攻擊者就可以使用任何“門”訪問(wèn)上述機(jī)制的所有功能。
為確保SSH的正確使用,集中化的SSH控制還需要包括如下兩方面:
1.對(duì)每個(gè)SSH的出入口都設(shè)置獨(dú)立的訪問(wèn)控制,從而嚴(yán)格控制可作為用戶正常角色的SSH功能部分,以及服務(wù)器上可用的出入口。
2.要確保所購(gòu)買的SSH解決方案對(duì)每個(gè)出入口都能真正實(shí)施控制。有些產(chǎn)品可能僅擁有前面所討論的三個(gè)控制,但仍可能留下七種其它方法可被攻擊者利用來(lái)破壞安全性和數(shù)據(jù)。