問題:
Nessus偵測到的FTP server風險。在同一個區網內的device皆可以借由ftp偷取ftp server上的資訊。
主要原因是因為FTP的protocol在加上router自動hole punching所造成的安全性風險。
環境:
A: ftp client (192.168.1.100)A1: another ftp client (192.168.1.101)
B: ftp client's router
C: ftp server with public ip
流程:
A ---> B ---> C (A送出ftp command: PORT ip:port)C就會replay
在過程中B會因為看到 dst的 port為21 port,因此會偷改 PORT ip:port 為 PORT external_ip:random_port
因此在ftp server端是分辨不出來是否為同一個來源,只知道是在B之下的一個client。
因此 A1利用wireshark或是其他的軟體可以偽造一個 PORT 192.168.1.101:port的封包給 C,C分辨不出來,就會回資訊給B,B會忠實的再回給A1。A1就可以拿到別人的資料。
如何避免這個風險 ?
方法一: ftp server不要用21 port。但此時ftp client端的router要自己手動設portforwarding。
方法二: 使用安全的 tls + ftp 或 ftps,但perforamance會掉很多。
Reference:
https://wiki.filezilla-project.org/Network_Configuration#Malicious_routers.2C_firewalls_and_data_sabotagehttp://tools.ietf.org/html/rfc2663
http://www.practicallynetworked.com/support/linksys_ftp_port.htm