Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

FTP 服務程式安全性弱點深度剖析與防護對策

編輯:關於伺服器

FTP (File Transfer Protocol) 歷經數十年演進,支援多用戶並發、上傳下載、遠端指令執行、虛擬目錄、權限控制,仍是檔案傳輸主流協定。但其協定特性 (雙通道) 與常見實作缺陷,構成顯著攻擊面。本文剖析 PORT/PASV 模式通道劫持、目錄遍歷、權限繞過等核心弱點,並給出防護建議。

一、FTP 雙通道機制與兩種傳輸模式

  • 指令通道:Client ↔ Server TCP 21 (預設),傳送 FTP 指令與回應。
  • 資料通道:每次傳輸 (LIST、RETR、STOR) 動態建立,模式決定發起方:
模式指令流程資料通道發起方防火牆友善度
PORT (主動模式)Client 送 PORT h1,h2,h3,h4,p1,p2 告知 Server 其開放的資料埠Server 主動連向 Client (Source Port 20 → Client Port)差 — Client 端防火牆常阻擋入站連線
PASV (被動模式)Server 回 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2) 告知其開放資料埠Client 主動連向 Server佳 — 僅需 Server 開放被動埠範圍

二、PORT 模式:Server 發起連線的隱性風險

PORT 模式常用於 Server 端有防火牆無法開放被動埠時。但 Server 主動發起外連 繞過自身防火牆入站規則,若資料通道被劫持 (TCP Session Hijacking),防火牆不會攔截此「合法外連」,導致資料外洩或注入惡意內容。此為協定架構限制,難以完美修復;建議僅允許 PASV 模式,封鎖 PORT 指令。

三、PASV 模式:被動埠劫持攻擊

PASV 模式下 Server 在預設範圍 (如 20000-21000) 隨機開放埠等待 Client 連線。若 Server 未驗證資料通道來源 IP 是否為已驗證的指令通道 Client,攻擊者可掃描開放埠並搶先連線劫持資料通道。

攻擊情境

  1. 合法 Client C (IP 12.12.12.12) 登入,Server S 開放埠 20000 等待資料連線。
  2. 攻擊者 H (IP 11.11.11.11) 掃描發現 20000 開放,立即發起連線搶佔。
  3. 若 S 未綁定來源 IP 驗證,H 成功劫持。若 C 下達 RETR secret.pdf,檔案將傳送給 H。
  4. H 可持續掃描/佔用被動埠,造成大面積傳輸劫持或拒絕服務。

修復對策

  • 資料通道來源 IP 綁定驗證:Server 接受資料連線時,比對來源 IP 與指令通道 Client IP,不符即拒絕。現代 FTP 伺服器 (vsftpd、ProFTPD、FileZilla Server、Serv-U 新版) 均內建此保護。
  • 縮小被動埠範圍、配合防火牆限制存取來源。

四、應用層實作缺陷:目錄遍歷與權限繞過

缺陷類型典型表現代表案例影響
無目錄限制 (Anonymous/無認證)登入即見完整檔案系統,可讀寫任意路徑早期 aftp、簡易 FTP Daemon全盤資料外洩、惡意程式植入
有認證但無 Chroot/Jail使用者可 CWD ../ 跳出家目錄xftpd (xfocus)跨用戶資料竊取、系統檔案讀取
路徑正規化缺陷CWD /home/user/../../etc、Unicode/雙重編碼繞過舊版 SlimFTPd、Wu-FTPDDirectory Traversal Vulnerability (CVE 多枚)

五、建置安全 FTP 服務的檢核清單

  1. 選擇成熟、持續更新的 FTP 伺服器軟體 (vsftpd、ProFTPD、FileZilla Server、Serv-U Enterprise、IIS FTP 7.5+)。
  2. 強制啟用 PASV 模式,禁用 PORT;設定被動埠範圍 (如 50000-51000) 並在防火牆對應開放。
  3. 啟用資料通道 IP 綁定驗證 (現代軟體預設開啟,確認配置)。
  4. 強制 Chroot/Jail:每用戶/群組鎖定於家目錄,絕對路徑不可逃逸。
  5. 最小權限 ACL:唯讀目錄僅授 LIST/READ;上傳目錄授 WRITE/APPEND,嚴禁 EXECUTE。
  6. 啟用 TLS/SSL (FTPS):加密指令與資料通道,防竊聽、防中間人。
  7. 強制強密碼策略、帳號鎖定、IP 白名單 (管理帳號)。
  8. 完整審計日誌:記錄登入、指令、檔案操作、錯誤,定期分析異常。
  9. 上線前滲透測試:掃描被動埠劫持、目錄遍歷、匿名登入、暴力破解;發布測試版收集回饋。
💡 總結:FTP 安全不僅在軟體選型,更在「協定弱點補強 (PASV IP 綁定) + 應用層隔離 + 傳輸加密 + 審計」的纵深部署。若非必要,建議改用 SFTP (SSH File Transfer Protocol) 或 HTTPS WebDAV,單一加密通道、無協定雙通道複雜度、原生強認證,架構上更安全。
Copyright © Windows教程網 All Rights Reserved