雖然各種威脅在持續(xù)發(fā)展演變,但是文件傳輸協(xié)議(通常稱為FTP)基本上還是跟幾年前一樣,而且還在大范圍的使用。
FTP主要用來傳輸大文件,它就是為了這個目的設計的。FTP是一種客戶端服務器(主從模式)協(xié)議,它使用控制和數(shù)據(jù)兩條通道進行文件傳輸??刂仆ǖ烙脕磉M行身份認證,并給服務器發(fā)送命令。該協(xié)議本身不支持加密,因此,在控制通道中發(fā)送的所有流量都是直接發(fā)送的,或者說是未加密的,這是該協(xié)議的弱點之一。在企業(yè)中,F(xiàn)TP服務通常被用來處理那些不敏感的內(nèi)容,而且跟其他敏感信息系統(tǒng)都是完全隔離的。人們還得保證FTP服務能夠及時更新。配置錯誤的以及結(jié)構(gòu)不合理的FTP服務可能會成為企業(yè)中重要的安全漏洞。
企業(yè)確保關(guān)鍵FTP安全的最佳做法是什么?FTP安全狀況達到可以傳輸敏感數(shù)據(jù)的地步了嗎,或者說有什么好的方法可以讓FTP更安全?如果FTP還不夠安全,不足以用來傳輸敏感數(shù)據(jù),那么有哪些協(xié)議可以替代它呢?我們會在本文中回答這些問題。
FTP無處不在,這一點不可否認。就像其他廣泛使用的技術(shù)一樣,F(xiàn)TP也開始成為攻擊者易于攻擊的目標。這么多年來,攻擊者已經(jīng)有了許多使用FTP以及利用FTP漏洞的經(jīng)驗。有關(guān)FTP服務安全性的討論很激烈,一般來說,人們沒有就哪種方法能最好地保護FTP安全達成共識。主要是由于商業(yè)需要,才讓這項服務繼續(xù)存在,而沒有使用其他更加安全的替代產(chǎn)品。對我來說,任何使用或者考慮使用FTP的企業(yè)都應該先問自己以下三個問題:
a.我們真的需要FTP嗎?
b.我們怎樣才能安全地設置FTP(我將會解釋這個自相矛盾的情況)?
c.有沒有既安全又容易使用的FTP替代產(chǎn)品?
第一問題很有趣。從技術(shù)上講,答案是否定的。其實市面上有許多更加安全的其他技術(shù),我們將在后面討論。然而,實際的答案卻是肯定的,因為FTP應用非常廣泛,而且具有跨平臺的支持性,大多數(shù)企業(yè)都被迫選擇支持FTP。
我花了相當多的時間對過濾設備(即防火墻)上的FTP連接進行故障排除,了解到FTP的控制和數(shù)據(jù)通道設計不是很適合在數(shù)據(jù)包穿越多個不同的網(wǎng)絡設備環(huán)境中使用。給你們舉個例子,初始化一個網(wǎng)絡代理后面的公司網(wǎng)絡以及負載均衡環(huán)境中服務器之間的FTP會話,并不是那么簡單的故障排除工作。
正如我先前提到的,F(xiàn)TP是一個客戶端服務器協(xié)議,使用單獨的控制和數(shù)據(jù)通道進行文件傳輸??刂仆ǖ烙脕磉M行身份認證,并給服務器發(fā)送命令。這種身份認證機制比較脆弱,因為認證信息沒有經(jīng)過加密就直接發(fā)送到服務器,使得這種網(wǎng)絡傳輸很容易被竊聽。在一般的FTP實施過程中,一些典型的安全漏洞讓這個問題更加復雜化。
盡管FTP存在安全弊端,但是許多企業(yè)還是選擇它進行大容量的數(shù)據(jù)傳輸。大多數(shù)工作站、應用程序,甚至網(wǎng)絡過濾設備都內(nèi)置了對FTP的支持。其他產(chǎn)品可能會更加安全,但是它們還是無法與FTP的便利性和低成本相抗衡。
讓我們暫且假設FTP是唯一的選擇。那么,我們可以來仔細研究幾種能夠讓這項服務達到一定安全性的方法。我先從網(wǎng)絡設計階段開始,我們可以把FTP服務限制在專用虛擬局域網(wǎng)網(wǎng)段上。這一般需要從你的交換機、路由器或者防火墻設備中分出一個單獨的專用網(wǎng)段來管理FTP服務。這種做法有多方面的目的。不僅能使你專門使用防火墻的一部分來防護這個網(wǎng)段,并進行漸進政策(控制源IP)控制和簡化故障排除(主動/被動連接);而且會給你提供一個阻塞點(choke point),從而監(jiān)視和使用網(wǎng)絡安全設備,比如IDS或者IPS。在這種情況下,阻塞點方法可以非常方便的進行監(jiān)測和預防,你能夠監(jiān)視利用FTP服務(比如IDS)相關(guān)漏洞而發(fā)起的攻擊,或者主動攔截利用IPS對FTP服務的攻擊等。
下一步,我們需要側(cè)重于讓管理FTP的服務器本身變得更為強大(盡管我在上文中提到首先要進行網(wǎng)絡設計,但是我不建議在所有的安全強化步驟完成之后才對服務器進行處理)。我建議大家不僅僅要考慮應用最新補丁,按照因特網(wǎng)安全中心(CIS)的標準來設置服務器,還要考慮更多的東西。當受到攻擊的時候,F(xiàn)TP服務往往會引起嚴重的附加損失。這是因為,在許多情況下,F(xiàn)TP服務是具有高優(yōu)先級的過程(比如,作為根用戶),如果被攻擊者成功利用的話,攻擊者會得到系統(tǒng)級的權(quán)限。
在服務器上隔離FTP服務,可以很大程度的防止這種漏洞利用攻擊。這與基于網(wǎng)絡的隔離有所不同,這種隔離是通過處理服務的硬件實現(xiàn)的。FTP隔離可以通過在虛擬環(huán)境(開源Xen系統(tǒng)管理程序)中運行FTP服務或者改變根目錄(chroot)來實現(xiàn)。在改變根目錄這種方法中,管理員能夠在處理過程中改變磁盤根目錄,這基本上限制了超出自身限制范圍的操作以及訪問文件系統(tǒng)敏感區(qū)域的能力。改變根目錄可以用幾種方法實現(xiàn);有些例子用“/etc/ftpchroot”為特定用戶確定一個chroot環(huán)境,有些則使用“ftp-chroot”登錄類。這兩種方法都建議FTP后臺程序在ls支持下重新編譯,所以沒有特殊的依賴關(guān)系。
最后,目前有一種易于安全維護的FTP替代品,叫做Secure Shell(SSH)。與FTP不一樣,SSH以加密的形式發(fā)送所有內(nèi)容。SSH使用加密的傳輸服務,并且把一個文件傳輸代理放在最高層,避免了FTP服務普遍的安全缺陷和復雜性。為了簡單起見,我認為SCP(主要是文件傳輸)、SFTP(運行在SSH上面的、全新的文件傳輸協(xié)議)和以SSH為通道的FTP會話,每種服務都使用了SSH,它們都可以作為FTP可以接受的、更加安全的替代品。在這個分類中比較奇怪的是FTPS(SSL上的FTP)。說實話,我認為FTPS作為 FTP替代品不可行,因為它與防火墻不兼容。使用更加安全的協(xié)議需要進行服務隔離,并且要采取適當?shù)姆掌靼踩珡娀襟E。
FTP另外一個有趣的替代品可能就是數(shù)字內(nèi)容傳輸服務了,它能夠提供安全的文件傳輸,又能簡化管理。它往往是基于云的服務,其中包括文件跟蹤、傳輸通知、流程集成工具以及可編寫腳本的API等功能。雖然這些服務原本是為了數(shù)字內(nèi)容的傳輸而設計的,但我想它們也可以為企業(yè)提供好的文件傳輸服務。
FTP是一個敏感的話題。有些用戶喜歡它的便利性,但是總的來講,網(wǎng)絡和安全團隊并沒有被這一點所迷惑。人們能夠指出FTP的多項缺點,并且指出可以替代它的解決方法。有許多方法可以與FTP共存,但如果你的企業(yè)更適合使用像SSH這樣更加安全的產(chǎn)品,我強烈建議您用它取代FTP。