NT安全漏洞及其解决建议(1)
引言
Windows NT越来越受欢迎。Internet上采用NT平台作为服务器的站点越来越多,同时,众多企业已经采用NT平台作为企业计算和内部网Intranet的解决方案。本文讨论了Windows NT系统上的重大安全漏洞,包括两大部分:第一,NT服务器和工作站的安全漏洞;第二,关于浏览器和NT机器的两个严重安全漏洞。随着新的安全漏洞被发现,或在基本产品上被改变,本文也将作更新。
概况
Windows NT所采用的存储数据库和加密过程导致了一系列安全漏洞值得探讨。特别地,NT把用户信息和加密口令保存于NT Registry中的SAM文件中,即安全帐户管理(Security Accounts Management)数据库。加密口令分两个步骤完成。首先,采用RSA MD4系统对口令进行加密。第二步则是令人迷惑的缺乏复杂度的过程,不添加任何“调料”,比如加密口令时考虑时间的因素。结果,NT口令比UNIX口令更加脆弱,更容易受到一本简单词典的攻击。由于有这么多与NT口令有关的安全问题,Microsoft已经在NT第5.0版中加密口令时增加一个步骤。
这里描述的某些安全漏洞是很严重的。在最坏的情况下,一个黑客可以利用这些漏洞来破译一个或多个DomainAdministrator帐户的口令,并且对NT域中所有主机进行破坏活动。
NT服务器和工作站的安全漏洞
1.安全漏洞:安全帐户管理(SAM)数据库可以由以下用户被复制:Administrator帐户,Administrator组中的所有成员,备份操作员,服务器操作员,以及所有具有备份特权的人员。
解释:SAM数据库的一个备份拷贝能够被某些工具所利用来破解口令。NT在对用户进行身份验证时,只能达到加密RSA的水平。在这种情况下,甚至没有必要使用工具来猜测那些明文口令。能解码SAM数据库并能破解口令的工具有:PWDump和NTCrack。实际上,PWDump的作者还有另一个软件包,PWAudit,它可以跟踪由PWDump获取到的任何东西的内容。
减小风险的建议:严格限制Administrator组和备份组帐户的成员资格。加强对这些帐户的跟踪,尤其是Administrator帐户的登录(Logon)失败和注销(Logoff)失败。对SAM进行的任何权限改变和对其本身的修改进行审计,并且设置发送一个警告给Administrator,告知有事件发生。切记要改变缺省权限设置来预防这个漏洞。
改变Administrator帐户的名字,显然可以防止黑客对缺省命名的帐户进行攻击。这个措施可以解决一系列的安全漏洞。为系统管理员和备份操作员创建特殊帐户。系统管理员在进行特殊任务时必须用这个特殊帐户注册,然后注销。所有具有Administrator和备份特权的帐户绝对不能浏览Web。所有的帐户只能具有User或者Power User组的权限。
采用口令过滤器来检测和减少易猜测的口令,例如,PASSPROP (Windows NT Resource Kit提供),ScanNT (一个商业口令检测工具软件包)。使用加强的口令不易被猜测。Service Pack 3可以加强NT口令,一个加强的口令必须包含大小写字母,数字,以及特殊字符。使用二级身份验证机制,比如令牌卡(Token Card),可提供更强壮的安全解决方案,它比较昂贵。
2.安全漏洞:每次紧急修复盘(Emergency Repair Disk - ERD)
在更新时,整个SAM数据库被复制到%system%repairsam._。
解释:在缺省的权限设置下,每个人对该文件都有“读”(Read)的访问权,Administrator和系统本身具有“完全控制”(Full Control)的权利,Power User有“改变”(Change)的权利。SAM数据库的一个备份拷贝能够被某些工具所利用,来破解口令。NT在对用户进行身份验证时,只能达到加密RSA的水平。在这种情况下,甚至没有必要使用工具来猜测那些明文口令。能解码SAM数据库并能破解口令的工具有:PWDump和NTCrack。
减小风险的建议:确保%system%repairsam在每次ERD更新后,对所有人不可读。严格控制对该文件的读权利。不应该有任何用户或者组对该文件有任何访问权。最好的实践方针是,不要给Administrator访问该文件的权利,如果需要更新该文件,Administrator暂时改变一下权利,当更新操作完成后,Administrator立即把权限设置成不可访问。
3.安全漏洞:SAM数据库和其它NT服务器文件可能被NT的SMB所读取,SMB是指服务器消息块(ServerMessage Block),Microsoft早期LAN产品的一种继承协议。
解释:SMB有很多尚未公开的“后门”,能不用授权就可以存取SAM和NT服务器上的其它文件。SMB协议允许远程访问共享目录,Registry数据库,以及其它一些系统服务。通过SMB协议可访问的服务的准确数目尚未有任何记载。另外,如何控制访问这些服务的方法也尚未有任何记载。
利用这些弱点而写的程序在Internet上随处可见。执行这些程序不需要Administrator访问权或者交互式访问权。另一个漏洞是,SMB在验证用户身份时,使用一种简易加密的方法,发送申请包。因此,它的文件传输授权机制很容易被击溃。
SAM数据库的一个备份拷贝能够被某些工具所利用,来破解口令。NT在对用户进行身份验证时,只能达到加密RSA的水平。在这种情况下,甚至没有必要使用工具来猜测那些明文口令。能解码SAM数据库并能破解口令的工具有:PWDump和NTCrack。当前,对于使用SMB进行NT组网,还没有任何其它可选的方法。
减小风险的建议:在防火墙上,截止从端口135到142的所有TCP和UDP连接,这样可以有利于控制,其中包括对基于RPC工作于端口135的安全漏洞的控制。最安全的方法是利用代理(Proxy)来限制或者完全拒绝网络上基于SMB的连接。然而,限制SMB连接可能导致系统功能的局限性。在内部路由器上设置ACL,在各个独立子网之间,截止端口135到142。
4.安全漏洞:特洛伊木马(Trojan Horses)和病毒,可能依靠缺省权利作SAM的备份,获取访问SAM中的口令信息,或者通过访问紧急修复盘ERD的更新盘。
解释:特洛伊木马(Trojan Horses)和病毒,可以由以下各组中的任何成员在用缺省权限作备份时执行(缺省地,它们包括:Administrator管理员,Administrator组成员,备份操作员,服务器操作员,以及具有备份特权的任何人),或者在访问ERD更新盘时执行(缺省地,包括任何人)。例如,如果一个用户是Administrator组的成员,当他在系统上工作时,特洛伊木马可能做出任何事情。
减小风险的建议:所有具有Administrator和备份特权的帐户绝对不能浏览Web。所有的帐户只能具有User或者Power User组的权限。
5.安全漏洞:能够物理上访问Windows NT机器的任何人,可能利用某些工具程序来获得Administrator级别的访问权。
解释:Internet上有些工具程序,可以相对容易地获得Administrator特权(比如NTRecover,Winternal Software的NTLocksmith)。
减小风险的建议:改善保安措施。
6.安全漏洞:重新安装Widnows NT软件,可以获得Administrator级别的访问权。
解释:重新安装整个的操作系统,覆盖原来的系统,就可以获得Administrator特权。
减小风险的建议:改善保安措施。
7.安全漏洞:Widnows NT域中缺省的Guest帐户。
解释:如果Guest帐户是开放的,当用户登录失败的次数达到设置时,他可以获得NT工作站的Guest访问权,从而进入NT域。
减小风险的建议:据说NT第4版已经解决了这个问题,升级到第4版吧。关闭Guest帐户,并且给它一个难记的口令。
8.安全漏洞:某些系统程序的不适当使用,比如ftp.exe,rasdial.exe, telnet.exe。
解释:这些程序无疑给侵入者提供了进一步攻击的手段,如果他们发现了服务器上的安全漏洞,进而可以攻击整个网络。
减小风险的建议:删除掉不经常使用的系统程序。
9.安全漏洞:所有用户可能通过命令行方式,试图连接管理系统的共享资源。
解释:任何一个用户可以在命令行下,键入\IPaddressC$ (或者\IPaddressD$, \IPaddressWINNT$)试图连接任意一个NT平台上管理系统的共享资源。
减小风险的建议:限制远程管理员访问NT平台。
10.安全漏洞:由于没有定义尝试注册的失败次数,导致可以被无限制地尝试连接系统管理的共享资源。
解释:这样的系统设置相当危险,它无疑于授权给黑客们进行连续不断地连接尝试。
减小风险的建议:限制远程管理员访问NT平台。
11.安全漏洞:如果系统里只有一个Administrator帐户,当注册失败的次数达到设置时,该帐户也不可能被锁住。
解释:这种情况(系统里只有一个Administrator帐户)是NT的一个预先考虑过的特征,然而,它也成为一种风险。这种情况适用于NT域和NT工作站。
减小风险的建议:除了系统缺省创建的Administrator帐户,还应该创建至少一个具有管理员特权的帐户,并且,把缺省Administrator帐户改成另外一个名字。
12.安全漏洞:具有管理员特权的帐户在达到注册失败的次数时将被锁住,然而,30分钟后自动解锁。
解释:帐户策略(Accounts Policy)中的设置。
减小风险的建议:对于所有管理员帐户,应该使用难猜的口令。
13.安全漏洞:缺省地,Windows NT在注册对话框中显示最近一次注册的用户名。
解释:这是NT的一个预先考虑过的特征,然而,它也成为一种风险,给潜在的黑客提供了信息。
减小风险的建议:在域控制器上,修改Registry中Winlogon的设置,关闭这个功能。
14.安全漏洞:Windows NT和Windows 95的客户可以保存口令于文件中,以便快速缓冲。
解释:任何人可能通过访问内存来获取加密的口令,或者通过访问Windows NT工作站的ADMINST.PWD文件,以及Windows 95的ADMINST.PWL,来读取口令,以获得缺省管理员的访问权。尤其在Windows 95上,这个文件很容易得到。
减小风险的建议:严格限制NT域中Windows 95客户的使用。限制Windows NT工作站上的管理员特权。
15.安全漏洞:Windows NT口令可能被非NT平台进行同步。
解释:如果Windows 95中的“Change Windows Password”工具在Windows NT系统中已被授权,就可以作到这一点。结果是一个强的口令被一个弱的口令所替代。
减小风险的建议:在与Windows NT平台连接时,不能运行“Change Windows Password”工具。
16.安全漏洞:管理员有能力从非安全的工作站上进行远程登录。
解释:这种能力带来许多潜在的对系统的严重攻击。
减小风险的建议:加强计算机设施的保安工作是可行的。关闭系统管理员的远程能力,对管理员只允许直接访问控制台。可以从[用户管理器] [帐户策略] (User Manager, Policies)进行设置。使用加密的对话,在管理员的属性中,限制他可以从哪些工作站上进行远程登录。
由于远程管理员访问很危险,商业机构必须要测试和评估与此相关的风险,以满足业务的需要。在实施计划中,必须作出决定,来如何控制和限制这种风险。
17.安全漏洞:N T上的缺省Registry权限设置有很多不适当之处。
解释:Registry的缺省权限设置是对“所有人”“完全控制”(Full Control)和“创建”(Create)。这种设置可能引起Registry文件的删除或者替换。
减小风险的建议:对于Registry,严格限制只可进行本地注册,不可远程访问。在NT工作站上,限制对Registry编辑工具的访问。使用第三方工具软件,比如Enterprise Administrator (Mission Critical Software),锁住Registry。或者,至少应该实现的是,把“所有人”缺省的“完全控制”权利改成只能“创建”。实际上,如果把这种权利设置成“只读”,将会给系统带来许多潜在的功能性问题,因此,在实现之前,一定要小心谨慎地进行测试。NT 4.0引入了一个Registry Key用来关闭非管理员的远程Registry访问。在NT服务器上,这是一个缺省的Registry Key,对于NT工作站,必须把这个Registry Key添加到Registry数据库中。
18.安全漏洞:有可能远程访问NT平台上的Registry。
解释:在Windows 95上,或者系统管理共享资源上,运行REGEDT.EXE,将允许交互地,远程地访问NT域服务器。
减小风险的建议:严格限制Windows 95客户的使用。使用Registry审计。制定规章制度限制管理员的操作程序,禁止这样的访问,或者明确授权给指定的几个系统管理员。
……