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