網頁

2014年9月9日 星期二

有關FTP自動開port (hole punching)

問題:

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_sabotage
http://tools.ietf.org/html/rfc2663
http://www.practicallynetworked.com/support/linksys_ftp_port.htm

沒有留言:

張貼留言