资源描述
论FTP安全漏洞及其防范措施
论FTP安全漏洞及其防范措施
摘要: 文件传输协议(File Transfer Protocol,FTP)是一个被广泛应用的协议,它能够在网络上方便地传输文件。早期FTP并没有涉及安全问题,随着互连网应用的快速增长,人们对安全的要求也不断提高。在介绍了FTP协议的基本特征后,从几个方面探讨了FTP安全问题的解决方案,协议在安全功能方面扩展;协议自身的安全漏洞以及用户如何防范。
关键词:文件传输协议 安全漏洞 防范
1 FTP概述
1.1 选题的背景及其意义
FTP的全称是File Transfer Protocol(文件传输协议)。协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。在用户的本地计算机(FTP客户)与网络上的一台远程计算机(FTP服务器)建立了FTP连接后,就可以进行文件传输了。高效和安全的传输文件和信息是网络中心需要解决的一个实际问题。公开和毫无防范地使用FTP被视为安全政策范围内的信息透露,那是因为FTP原模式中不包含安全维护。使用FTP与服务器建立连接时,客户必须提供ID和密码。但是这种安全信息被直接用明码电文传输。因此,FTP存在很多安全问题与漏洞。为了防止恶意的,如 THEBOUNCE攻击、口令强迫破解攻击、端口偷窃等对FTP服务器进行破坏以至关键性数据被窃听。
FTP被广泛应用,自建立后其主框架相当稳定,二十多年没有什么变化,但是在Internet迅猛发展的形势下,其安全问题还是日益突出出来。现行研究的很多安全功能扩展和对协议中安全问题的防范也正是近年来人们不懈努力的结果,而且在一定程度上缓解了FTP的安全漏洞问题。FTP服务同数字授权、数字验证、数字签名结合访问控制机制结合和动态口令技术的建立以及完善了用户口令机制,使FTP服务的安全大大提高,可以解决大部分已知FTP漏洞攻击和基于TCP方法的攻击威胁。
1.2 FTP如何连接
首先,我们将考虑如何在已有帐户的两台计算机间传送文件。用户在本地计算机上运行FTP客户程序时,像TELNET一样,FTP需要指定将要交换文件的计算机,这可以用以下的命令来完成:
C:\windows\ftp 远程主机名
远程主机为用户要连接的计算机,这就开始了FTP程序,且连接到了这名字的远程主机上。当有的系统不能处理某些域名地址时,可以使用远程主机的IP地址。远程计算机可是INTERNET上的任一主机,不管其操作系统为UXIN、NT、MACINTOSH,还是DOS系统。
当FTP作好与远程计算机的连接后,要求输入注册名和口令,下面是一个连接实例:
c:\windows\ftp
220 noya FTP srver(UNIX System V Release 4.0) ready.
Name(noya:mzw):mzw
Password:
230 User mzw logged in.
ftp>
远程主机如果是DOS和Macintosh这样的系统,FTP可能只需键入注册名,因为这类操作系统上没有口令安全保护。这些计算机上,避免不必要的存取,通常由中止FTP的服务软件来处理的。
1.3 FTP主要功能
1.3.1 传送单个文件
FTP可在两个方向传输文件。它可在本地计算机上取一文件将它送到远程计算机上,或者在远程计算机上取一文件将它放在本地计算机上。这可由get、put命令来实现。
get命令:get是把远程主机上的文件获取到本地来,用如下格式:
ftp> get 源文件 目标文件
源文件是用户要COPY的远程计算机上文件的名字,目标文件是用户要在本地创建的名字。目标文件名字是任意的,如果省略不要,COPY的名字将同源文件的名字。以下的例子中,将以guest为用户名登陆到主机上,将help.txt文件从中获取过来:
c:\windows\ftp
connected to noya.
user: guest
331 password:
230 User guest logged in.
ftp> get help.txt
200 PORT commadn successful.
150 ASCII data connection for comments.
226 ASCII Transfer complete.
1634 bytes recevied in 0.052 seconds (30Kbytes/s)
ftp> quit
221 Goodbye.
put 命令:put是把本地的文件送到远程主机上,其格式如下:
ftp>put 源文件 目标文件
1.3.2 多文件的传输
我们前面讨论的get和put命令一次只能传输一个文件。有时,如果想一次传输多个文件,可用mput、mget命令来实现。格式如下:
ftp> mput 文件名列表
ftp> mget 文件名列表
1.3.3 FTP中的目录
在FTP中,涉及的两套目录:你的本地目录和远程计算机的目录,在远程主机上改变目录可用如下命令:
ftp> cd 目录名
该命令工作起来与通常SHELL的CD命令一样,不同的是它只在远程计算机上有效。这些可以总结如下:
如果没有指定目录,LCD让你返回到你注册的缺少目录。
如果此目录是以/开始,不管你的当前位置(绝对位置)而移到指定的目录。
如果目录是..,它将在当前目录向上移一级。
如果目录以字母式字符开始,它将此目录视为当前的子目录。
当不能确定当前所处的目录时,可以用pwd命令来查看自己的位置。
ftp> pwd
lcd命令的规则同UNIX的CD命令一样,但它改变的是本地计算机的目录。
1.4 匿名FTP
迄今为止,我们所讨论的都是在与已有帐户的计算机间传送文件,用户如想传送文件必须在此计算机上注册名和口令,这对用户和远程主机管理人员都将是麻烦的,匿名FTP(anonymous FTP)可超过此限制。它允许没有注册名和口令的用户以anonymous或FTP用户登录来访问计算机上的某些文件,当然,会有很大的限制。匿名用户一般只能获取文件,不能在远程计算机上建立新文件或修改已存在的文件,并且对可以COPY的文件也有严格的限制。并且anonymous不能访问INTERNET上所有的主机,只能访问提供此服务的主机。
当匿名FTP启动时,有一称作anonymous或FTP的特殊注册名。如果开启FTP,连接到某一远端计算机上,并以anonymous或FTP作为注册名,FTP可接受任何字串作口令。但一般要求用电子邮件的地址作为口令,这样服务的管理员知道谁在使用那些匿名FTP用户所特别许可的文件。许多FTP文档是由学校或公司的个人非正式经营的,当用户登录时,他们会要求用户限制访问数据的数量或者限制每天访问数据的时间。这些在你首次进入时会显示出来,请遵守这些规定,以免引起不必要的麻烦。登录到匿名FTP服务器之后,可以多次使用cd和dir命令查看可以获得的资料信息。匿名FTP除不需要口令外,其它功能与操作像标准FTP一样。
1.5 FTP服务器的安装实现
1.5.1 安装Serv-U
下载软件Serv-U并安装。出于安全因素的考虑,不适合安装到系统盘,需修改安装路径,安装完毕,运行该程序。第一次运行Serv-U时,会出现Serv-U的配置向导。需设置服务器的IP地址、是否接受匿名登录、建立帐户并对该帐户设置主目录和帐号管理权限。
1.5.2 Serv-U管理器配置
在LocalServer(本地服务器)中: stop server可停止FTP服务; start server可开启FTP服务; set/change password可设置和修改管理员密码;在Set-tings(设置)中:General/Max. upload speed可设置最大上传速率(kb/s); General/Max. download speed可设置最大下载速率(kb/s); General/Max. no. ofusers可设置连接到本服务器的最多用户数量;为保证服务器以正常速度运行,上述信息的配置是十分必要的;在Activity(活动状态)中可显示当前登录的用户IP地址及当前工作状态等信息,便于管理员管理站点;若有用户执行非法操作或恶意攻击FTP站点,管理员可使用Blocked IPs来禁止某些IP访问本服务器; Session log(系统日志)可记录所有登录到本服务器的操作信息;若有多个账户具有相同的访问权限和IP控制规则,则可将其设成一个Groups组,对组进行的任何设置将同时对该组所有帐户起作用,从而减轻了配置和管理账户的工作。
1.5.3 Serv-U中账户管理
添加和删除账户:在左边窗口中右键单击“us-ers”,选new user,依次设置user name、password、Home directory、Lock the user in the home directory即创建了一个新账户。若要删除某账户,则在左边窗口中选中账户名称,右键单击Delete User即可完成。DirAccess(目录存取属性)设置:①文件操作;②目录操作;③子目录操作。
1.6 实例
网络中心建立FTP站点的主要步骤和方法。首先选择Windows 2000操作系统,再在服务器上安装和运行Serv-U,由于Serv-U不适宜安装在系统区内,本例安装路径为D: \Program Files\RhinoSof.tcom\Serv-U。配置FTP服务器:Serv-U中设置: IP address(IP地址)为“219. 244. 57. 189”; Domain name(域名)为“xustftp. com”;Allow anonymous access(接受匿名登录):依据本例需求选择“No”; Create namedaccount(建立账号):选择“Yes”;Account login name(登录名):输入“network001”; Password(密码): suc-cess001;Home directory(主目录): E: \ftp; Lock theuser in the home directory(将用户锁定在主目录中):选择“Yes”; Account admin privilege(账号管理权限):使用默认值“No privilege”。Serv-U管理器中的set/change password(设置/修改管理员密码)输入jhzmilu,每次开启Serv-U需输入该密码。为了提高安全性,该密码应设置较复杂。并设置最大上传速率、最大下载速率、连接到本服务器的最多用户数量等信息。FTP站点的管理:创建账户network002、net-work003到network010;密码为success002、suc-cess003到success010;主目录为E: \ftp并锁定于主目录。如用户network002把个人的信息资源上传到指定的目录E: \ftp\002下,也可以对该目录下的文件进行删除和重命名,而除管理员外,其他用户对该目录和文件只有浏览和下载的权限。综上所述,中心的FTP站点就初步搭建完成了,不仅为所有用户提供了公共资源的共享,同时提供了每位用户个人空间,使其可以上传个人优秀的资源与所有用户共享。访问FTP站点的方法:一般采用两种访问方式,一是使用FTP客户端,在FTP客户端安装和运行客户端软件,完成文件传输。另一种是使用web浏览器。运行web浏览器,在地址栏中键入FTP站点IP地址,若允许匿名登录,则在浏览器中显示站点的所有资源;若FTP站点设置了身份验证,则在弹出窗口中输入用户名或密码,即可登录站点。
2 FTP存在的安全问题以及解决方法
2.1分析FTP的连接找出安全漏洞
FTP的连接一般是有两个连接,一个是客户和服务器传输命令的连接,另一个是数据传送的连接。FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(PasvMode),先介绍这两种不同模式连接方式的分别。先假设客户端为C,服务端为S。Port模式:当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进去数据连接),当服务端S收到这个Port命令后,就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。Pasv模式:当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
两种看起来其实都是没什么问题,但其实都隐藏着安全方面的问题。对于Port模式,这种模式多是用于因为服务端有防火墙,无法使用Pasv在服务端打开端口让客户端去连接而被逼使用,但由于连接本身是由服务端本身向外连接,这本身就存在了一个安全的问题了,因为如果这个连接一旦被黑客攻击,由于连接是由服务器本身向外连,防火墙将不会有任何动作去处理这个连接。对于Pasv模式,看起来是比Port模式安全很多不过认真想一想的话,还是会发现它本身的问题。由于服务端会打开一个端口等客户端去连接,但如果这个打开的端口并没有检测连接的IP是哪个客户端的IP,那么安全问题的出现了。因为有很多FTP服务器打开的数据端口等客户端连接是随机的,但都会在一定范围内,例如是20000-21000这些端口间。如果FTP服务器并没有在接收数据端口的连接时检测连接过来的IP是不是已经是合法登陆的用户的话,那么其他并没有登陆的用户就很有机会写程序攻击这个连接了。
解决方法既然是公网FTP服务器,就难免会遭遇一些恶意攻击,轻则丢失文件,重则造成FTP服务器甚至整个系统崩溃。怎样才能最大限度地保证它的安全性呢?
操作系统的选择FTP服务器首先是基于操作系统而运作的,因而操作系统本身的安全性就决定了FTP服务器安全性的级别。虽然windows 98/Me一样可以架设FTP服务器,但由于其本身的安全性就不强,易受攻击,因而最好不要采用。最好采用windows 2000及以上版本,并记住及时打上补丁。
2.1.1 THEBOUNCE攻击
针对FTP服务标准,攻击者可以使用FTP“代理”机制,送一个包含网络地址和被攻击服务器端口号的FTP端口命令到一台FTP服务器,这时,攻击者就可以利用第三台FTP服务器去攻击其它客户或服务器,并且很难被追踪。例如:一个客户上传一个包含SMTP命令的文件到一个FTP服务器,然后利用一个适当的端口命令指示服务器打开第三个机器的SMTP端口。最后,客户指示服务器传送包含SMTP命令的文件到第三个机器。这时,客户就可以在第三个器上伪造邮件而不是直接使用本机连接。
2.1.2 口令强迫破解攻击
由于FTP服务器允许无限制输入口令,故攻击者可以编写一个程序,使其自动循环从口令字典里取单词强迫猜测用户口令,直到获得口令,进而攻击服务器。
2.1.3 端口偷窃
许多开放系统分发动态端口号给增加的命令。依靠一个合法的传输,攻击者可以观测到服务器分发端口号的流动并猜测下一个将分配的端口,攻击者可制造一个连接到这个端口以拒绝另一个合法用户的连接能力。由于FTP服务使用明文传输文件,所以攻击者可偷窃合法用户的文件或加入伪造的文件到一个经过验证的客户的数据流。
2.2 对FTP的安全漏洞进行研究解决
2.2.1 使用防火墙
端口是计算机和外部网络相连的逻辑接口,也是计算机的第一道屏障,端口配置正确与否直接影响到主机的安全,一般来说,仅打开你需要使用的端口,将其他不需要使用的端口屏蔽掉会比较安全。限制端口的方法比较多,可以使用第三方的个人防火墙,如天网个人防火墙等,这里只介绍Windows自带的防火墙设置方法。
(1)利用TCP/IP筛选功能
在Windows 2000和Windows XP中,系统都带有TCP/IP筛选功能,利用它可以简单地进行端口设置。以Windows XP为例,打开“本地连接”的属性,在“常规”选项中找到“Internet协议(TCP/IP)”,双击它打开该协议的属性设置窗口。点击右下方的“高级”按钮,进入“高级TCP/IP设置”。在“选项”中选中“TCP/IP筛选”并双击进入其属性设置。这里我们可以设置系统只允许开放的端口,假如架设的FTP服务器端口为21,先选中“启用TCP/IP筛选(所有适配器)”,再在TCP端口选项中选择“只允许”,点“添加”,输入端口号21,确定即可。这样,系统就只允许打开21端口。要开放其他端口,继续添加即可。这可以有效防止最常见的139端口入侵。缺点是功能过于简单,只能设置允许开放的端口,不能自定义要关闭的端口。如果你有大量端口要开放,就得一个个地去手工添加,比较麻烦。
(2)打开Internet连接防火墙
对于Windows XP系统,自带了“Internet连接防火墙”功能,与TCP/IP筛选功能相比,设置更方便,功能更强大。除了自带防火墙端口开放规则外,还可以自行增删。在控制面板中打开“网络连接”,右击拨号连接,进入“高级”选项卡,选中“通过限制或止来自Internet的对此计算机的访问来保护我的计算机和网络”,启用它。系统默认状态下是关闭了FTP端口的,因而还要设置防火墙,打开所使用的FTP端口。点击右下角的“设置”按钮进入“高级设置”,选中“FTP服务器”,编辑它。由于FTP服务默认端口是21,因而除了IP地址一栏外,其余均不可更改。在IP地址一栏中填入服务器公网IP,确定后退出即可即时生效。如果架设的FTP服务器端口为其他端口,比如22,则可以在“服务”选项卡下方点“添加”,输入服务器名称和公网IP后,将外部端口号和内部端口号均填入22即可。IIS的安全性比较差,平均每两三个月就要出一两个漏洞。所幸的是,微软会根据新发现的漏洞提供相应的补丁,这就需要你不断更新,安装最新补丁。
(3)将安装目录设置到非系统盘,关闭不需要的服务
一些恶意用户可以通过IIS的溢出漏洞获得对系统的访问权。把IIS安放在系统分区上,会使系统文件与IIS同样面临非法访问,容易使非法用户侵入系统分区。另外,由于IIS是一个综合性服务组件,每开设一个服务都将会降低整个服务的安全性,因而,对不需要的服务尽量不要安装或启动。
(4)允许匿名连接
FTP最大的安全漏洞在于其默认传输密码的过程是明文传送,很容易被人嗅探到。而IIS又是基于Windows用户账户进行管理的,因而很容易泄漏系统账户名及密码,如果该账户拥有一定管理权限,则更会影响到整个系统的安全。设置为“只允许匿名连接”,可以免却传输过程中泄密的危险。进入“默认FTP站点”,在属性的“安全账户”选项卡中,将此选项选中。
(5)置主目录及其权限
IIS可以将FTP站点主目录设为局域网中另一台计算机的共享目录,但在局域网中,共享目录很容易招致其他计算机感染的病毒攻击,严重时甚至会造成整个局域网瘫痪,不到万不得已,最好使用本地目录并将主目录设为NTFS格式的非系统分区中。这样,在对目录的权限设置时,可以对每个目录按不同组或用户来设置相应的权限。右击要设置的目录,进入“共享和安全→安全”中设置,如非必要,不要授予“写入”权限。
(6)尽量不要使用默认端口号21。
(7)启用日志记录,以备出现异常情况时查询原因。
如果你要建立一个FTP服务器,建议就是选择一个比较稳定和安全的FTP程序,然后在真正投入使用前对于上面所提及到的安全问题都检测一下,上述的安全功能扩展和对协议中安全问题的防范在一定程度上缓解了FTP的安全问题。
2.2.2 建立口令、用户名保护机制
为防止口令被强迫破解,首先应限制送入正确口令前的输入次数,在3一5次后关闭和客户的连接,其次,可采取在错误口令输入回复时加入几秒延迟,以降低破解攻击效率.采取这两种方法提高了FTP服务器的安全性,但是却很可能造成对合法用户的拒绝服务攻击.这就需要对用户名也加以保护,我们可以采用在使用错误用户名登录三次后,拒绝使用此用户名硬件地址再次登录服务器以防止攻击者造成合法用户的拒绝服务.对干口令、用户名保护更好的方法还是建立在身份认证基础上的动态口令机制,动态口令是单向散列函数理论的扩展—报文摘要理论及技术的应用.当一个用户在FTP服务器上首次注册时,系统分配给用户一个种子值一个迭代值,这两个值就构成一个原始口令,同时在服务器上还保留用户自己知道的通行短语.当客户和服务器连接时,客户端和服务器端分别利用MD4或MD5散列算法和通行短语计算本次口令.这样,就形成了交叉信任关系,更好的提高了口令的安全性。
2.2.3 限制FTP的TCP端口数据连接
FTP规范假定数据连接依靠TCP协议,TCP端口0一1023保留给已知的服务。例如,邮件服务、网络新闻、WWW服务、FTP服务等.为避免THEBONUCE攻击这些已知服务,应该使服务器不能打开低于1024号TCP数据端口的数据连接,当接到低干1024fCP端口一号的端口命令,应返回504信息(命令不能实现)。
2.2.4 建立数字授权、数字验证、数字签名机制
使用限制低于1024号TCP端口数据连接虽然能防止利用THEBOUNCE攻击,攻击已知服务,但是却不能防范高于023号TCP端口的服务。使用禁止端口命令,却又失去了FTP“代理”功能,而这种功能在慢速连接的环境中又很有用。对于这种情况,如果我们知道是谁在使用这种“代理机制”,就可以解决这个问题。故限制访问的方法可解决这个问题,可是目前的限制访问是建立在网络地址的基础上,这样就可能遭受基于IP地址欺骗的攻击,所以需要建立数字授权、数字验证、数字签名机制作为限制访问的基础。首先由数字授权服务器向用户发放数字证书。当用户向FTP服务器发连接请求时,FTP服务器先对连接进行数字验证,根据结果判断用户的访问权限及记录,对服务器和客户通信内容加数字签名以防IP欺骗或端口偷窃。
2.2.5 对需保密内容使用数据加密机制
由于FTP规范使用明文传输,当攻击者使用端口偷窃时,将可能造成文件失密,故可对需加密文件使用公钥加密体制,这样就充分保障了传输的文件的可靠性。
2.2.6 对于匿名FTP服务的安全考虑
匿名FTP服务指的是对用户使用最少的验证就可使其访问公共数据区。对于这种用户一定要严格限制其访问权限,并必须禁止使用FTP“代理”机制。其次还包含:(l)确保拥有最新的FTP daemon/服务器版本。(2)设定FTP目录时,匿名FTP根目录“一ftp”和其下级目录不属FTP帐户所有或根本不在同一组内。(3)只有:root拥有FTP根目录及其下级目录。(4)文件包含FTP daemon使用的和在一ftp/bin和一ftp/etc下的文件和库也应象FTP根目录一样保护。(5) etc/Passwd文件中不应包含系统的/etc,/pas、wd文件中已有的帐户名和加密口令。(6)不允许匿名用户编写目录或文件。(7)不要把系统文件放在ftp /etc目录一下。一种安全可靠的FTP服务体系结构图2所示FTP服务体系结构是以数字授权、数字验证、数字签名为基础,使用选择性受控的访问。
3 总结
该部分要重写,主要是写本文所做的主要工作以及今后努力的方向(指研究工作)。
文件传输协议如今被广泛应用在文件传输及网络通信方面。本文首先阐述了FTP的主要功能如传送单个文件、传送多个文件等,并介绍了FTP的主要目录、匿名FTP如FTP服务器的安装和实现,并详细说明了Ser-U的安装和管理器的配置。然后,着重从THEBOUNCE攻击、口令强迫破解攻击、端口偷窃方面论述了FTP存在的安全问题,并从安装防火墙、建立口令保护机制、限制FTP的TCP端口数据连接、数字签名等方面论述了对于FTP存在的问题目的解决方法。
本文对FTP存在的问题及防范措施进行了尽可能详尽的分析,但是由于本人知识面有限,对FTP的认识也不是非常全面,难免存在这样那样的问题,并且计算机技术发展非常迅速,安全漏洞及机制层出不穷,FTP的研究仍是一个长期而艰巨的工作。
4 参考文献
[1]使用FTP的主要风险以及如何克服这些风险.中国金融电脑[M],2006.8
[2]张维,李书明,魏霞.设置与利用FTP协议[M].电脑开发与应用,2000.5
[3]聂丹.FTP的安全问题及解决方案.辽东学院信息技术学院,2004.8.
[4]谢希仁.计算机网络[M].北京:电子工业出版社,1999
[5]王广义,武传胜.FTP的安全问题.鞍山钢铁学院学报第24卷第4期,2001.8
[6]邓宁,华中和.FTP服务的安全缺陷和解决方法空军雷达学院院报,2002.3
[7]张浩东.FTP服务的设置与安全管理.中国农业发展银行汕头市分行华南金融电脑,2003年3月10日第3期
[8]黎丽.简析FTP服务器的安全.黄石理工学院学报第4期,2005年8月 第21卷
[9]李梦阳.一种提高文件传输协议FTP安全性的策略.吉林大学农学部公共教学中心
[10]唐伟.在Windows下实现配置FTP服务器.南京审计学院计算机时代, 2004年第5期
[11]李书明,赵明俊.FTP服务的管理与应用.计算机时代,1999.12
展开阅读全文