|
||||||
|
摘要 档案传输协定(File Transfer Protocol, FTP)是一个被广泛应用的协定,它使得我们能够在网络上方便地传输文件。早期 FTP 并没有涉及安全问题,随着互连网应用的快速增长,人们对安全的要求也不断提高。在介绍了 FTP 的基本特徵,从两个方面探讨了 FTP 安全问题的解决方案:协定在安全功能方面扩展;协定自身的安全问题以及用户如何防范之。 1. 简介 1.1 FTP 的一些特性 早期对 FTP 的定义指出,FTP 是一个 ARPA 计算机网络上主机间文件传输的用户级协定。其主要功能是方便主机间的文件传输,并且允许在其他主机上进行方便的存储和文件处理。而现在 FTP 的应用范围则是 Internet。 根据 FTP STD 9 定义,FTP 的目标包括:
关 FTP 的一些其他性质包括:FTP可以被用户在终端使用,但通常是给程序使用的。FTP 中主要采用了传输控制协定(Transmission Control Protocol,TCP),和 Telnet 协议。 2.FTP的安全扩展 2.1 一些安全地进行文件传输实践 a. 通过FTP传输预先被加密的文件 2.2 在RFC 2228 之前的FTP并不安全 虽然 FTP 采用 Telnet 协议执行 connection control 操作,而且 Telnet 协议来又增补了认证和加密选项,但在 RFC 1123 中禁止在 connection control 中进行 TELNET 选项协商。另外 TELNET 协议也没有提供完整性保护,而且也没有 data connection 的保护。 2.3 扩展命令 3. 协议的安全问题及防范措施[AO99] 3.1 防范反弹攻击(The Bounce Attack) a. 漏洞 FTP 规范定义了“代理FTP”机制,即服务器间交互模型。支持客户建立一个 FTP 控制连接,然在两个服务间传送文件。同时FTP规范中对使用 TCP 的端口号没有任何限制,而从 0⌒1023 的 TCP 端口号保留用众所周知的网络服务。所以,通过“代理FTP”,客户可以命令 FTP服务器攻击任何一台机器上的众所周知的服务。 b. 反弹攻击 客户发送一个包含被攻击的机器和服务的网络地址和端口号的FTP“PORT” 命令。这时客户要求FTP服务器向被攻击的服务发送一个文件,这个文件中应包含与被攻击的服务相关的命令(例如:SMTP、NNTP)。由是命令第三方去连接服务,而不是直接连接,这样不仅使追踪攻击者变得困难,还能避开基网络地址的访问限制。 最简单的办法就是封住漏洞。首先,服务器最好不要建立 TCP 端口号在 1024 以下的连接。如果服务器收到一个包含TCP端口号在1024以下的PORT命令,服务器可以返回消息 504 中定义为“对这种叁数命令不能实现”)。其次,禁止使用 PORT 命令也是一个可选的防范反弹攻击的方案。大多数的文件传输只需要 PASV 命令。这样做的缺点是失去了使用“代理FTP”的可能性,但是在某些环境中并不需要“代理FTP”。 d. 遗留问题 光控制 1024 以下的连接,仍会使用户定义的服务(TCP端口号在1024以上)遭受反弹攻击。 3.2 有限制的访问(Restricted Access) a. 需求 对一些FTP服务器来说,基网络地址的访问控制是非常渴望的。例如,服务器可能希望限制来自某些地点的对某些文件的访问(例如为了某些文件不被传送到组织以外)。另外,客户也需要知道连接是有所期望的服务器建立的。 b. 攻击 攻击者可以利用这样的情况,控制连接是在可信任的主机之上,而数据连接却不是。 c. 防范措施 在建立连接前,双方需要同时认证远端主机的控制连接,数据连接的网络地址是否可信(如在组织之内)。 d. 遗留问题 基网络地址的访问控制可以起一定作用,但还可能受到“地址盗用(spoof)”攻击。在 spoof 攻击中,攻击机器可以冒用在组织内的机器的网络地址,从而将文件下载到在组织之外的未授权的机器上。 3.3 保护密码(Protecting Passwords) a. 漏洞 第一、在 FTP 标准中,FTP 服务器允许无限次输入密码。第二、“PASS”命令以明文传送密码。 b. 攻击 强力攻击有两种表现:在同一连接上直接强力攻击;和服务器建立多个、并行的连接进行强力攻击。 c. 防范措施 对第一种中强力攻击,建议服务器限制尝试输入正确口令的次数。在几次尝试失败,服务器应关闭和客户的控制连接。在关闭之前,服务器可以发送返回码 421(服务不可用,关闭控制连接”)。另外,服务器在相应无效的“PASS”命令之前应暂停几秒来消减强力攻击的有效性。若可能的话,目标操作系统提供的机制可以用来完成上述建议。 对第二种强力攻击,服务器可以限制控制连接的最大数目,或探查会话中的可疑行为并在以拒绝该站点的连接请求。 密码的明文传播问题可以用 FTP 扩展中防止窃听的认证机制解决。 d. 遗留问题 然而上述两种措施的引入又都会被“业务否决”攻击,攻击者可以故意的禁止有效用户的访问。
在 FTP 标准中中,所有在网络上被传送的数据和控制信息都未被加密。为了保障 FTP 传输数据的私密性,应尽可能使用强壮的加密系统。
a. 漏洞 当“USER”命令中的用户名被拒绝时,在FTP标准中中定义了相应的返回码 530。而当用户名是有效的但却需要密码,FTP将使用返回码331。 b. 攻击 攻击者可以通过利用 USER 操作返回的码确定一个用户名是否有效。 c. 防范措施 不管如何,两种情况都返回331。 3.6 端口盗用Port Stealing a. 漏洞 当使用操作系统相关的方法分配端口号时,通常都是按增序分配。 b. 攻击 攻击者可以通过规律,根据当前端口分配情况,确定要分配的端口。他就能做手脚:预先占领端口,让合法用户无法分配;窃听信息;伪造信息。 c. 防范措施 由操作系统无关的方法随机分配端口号,让攻击者无法预测。 4. 结论 |
||||||
|
||||||