3.如何对溢出攻击进行防护?
说到防护,首先定时更新有效补丁,微软个官方补丁发布下载地址是http://www.microsoft.com/china/。但如果攻击者用的是尚未发布补丁的攻击程序呢?所以打补丁是有效,但不是惟一的方法。下面就来看看如何手动设置,对溢出攻击进行防御。
第一步:在Windows 2000/2003,可以建立一个用户,如boxer,密码最好用大于8位的数字与字母的混合方式,而且如果觉得还不够强壮,可以在用户的名称前面加上一个$。这样,可以建立一个隐藏账户,入侵时攻击者无法利用“net user boxer password”命令来修改这个用户的密码。另外强调一点,那个用户必须是USER组的。
第二步:对于Windows 2000/2003,建立用户后,打开C:\WINNT\System32(系统安装在C盘),找到cmd.exe,用右键选择“属性”项,在“安全”标签下修改cmd.exe的访问权限,只保留刚刚新建立的boxer用户对cmd.exe的完全控制权限,将其他用户全部删除,尤其是Everyone(见图5)。

图5 之后,找到net.exe文件,按照cmd.exe的方法进行设置,如果在找到net.exe的同时,还发现了net1.exe,也要一同设置一样的权限,完成上述限制后,最基本的防御措施就完成了。
在Windows XP下,cmd.exe的“属性”选项里已经没有了“安全”标签,可以点击“开始→运行”,输入gpedit.msc,打开“组策略”窗口。
在组策略中,依次展开“计算机配置→Windows 设置→软件限制策略”,右击后,选择“创建新的策略”(见图6)。然后,继续展开“软件限制策略→其他规则”项,右击该项,选择“新键散列规则”。在弹出窗口中点击“浏览”按钮,选择C:\WINNT\System32下的cmd.exe文件,设置“安全级别”为“不允许的”(见图7)。对net.exe文件执行同样的操作,进行限制。

图6

图7 Windows XP中经过设置后任何用户将不能调用cmd.exe和net.exe命令了。此方法只适合在溢出程序被发布后没有相关的补丁情况下进行应急防护,如果用户不需要用到cmd.exe及net.exe命令。推荐此利用方式禁止运行。
另外还有一种情况就是一些攻击者可能通过其他途径得到用户电脑上某些软件的操控权限,如FTP服务、WEB服务等,在这种情况下很可能出现利用Windows系统本身的TFTP服务进行木马上传或本地溢出程序。所以,最后再来讲解一下防止攻击者利用TFTP:进入C:\WINNT\System32\Drivers\Etc,用“记事本”打开文件services,把TFTP端口改为0(见图8)。这样,攻击者就无法通过使用TFTP指令传输溢出程序了。当然,为了更好的安全性,也可以将TFTP.EXE文件,按前面介绍的方法,添加为只能让boxer用户才能使用的命令。

图8 通过上面操作后,一般用户的电脑就能防御大部分针对个人用户的溢出攻击了