人怕出名猪怕壮 遁于无名只求安全
日期:2006-08-06 荐:
您是否有过这样的经历:多年以来日复一日地恪守着某条规则,到头来却发现自己从未怀疑过的规则居然不对?小时候,为了把我从游泳池里骗出来,妈妈吓唬我说,午饭后半小时之内进水会引发严重的抽筋、甚至会丧命。几年前,一篇读者文摘戳穿了这个谎言。 其实成年以后,我常常游泳,并且还有一个私家游泳池。我的孩子、邻居和其他喜欢游泳的人饭后在我的池子里游泳时,我从没见过有人抽筋。所以读者文摘上的那篇文章应该不至于让我太感震惊,因为从身边的经历,我早知道这个道理的。但实际上,我却一直对摆在面前的事实证据视而不见。 无名安全(Security by Obscurity)的情况和这个很像。虽然有证据表明无名安全是非常有用的,但几乎所有的计算机安全“专家”都认为无名安全没什么大不了。我觉得无名安全应该成为任一台计算机安全计划的一部分,实际上,无名安全完全可以胜任这个角色。 先忍住怒气,不去抨击那些安全专家,深入地解释一下这个问题。首先,我并没有说无名安全真正安全,我只是说它应该成为许多计算机安全策略的一个重要组成部分。 可以通过好几种方式实现无名安全,但最基本的一点是,不要再什么都采用默认设置一路“NEXT”下去,需要多做几步: 1 重命名权限高的管理员账户,给予不太惹眼的名字 2 服务器的名称对于其支持角色不要太明显 3 尽可能在非默认端口上运行服务 4 在非默认目录安装危险性高的软件,比如面向网络的Web服务器 5 尽可能把配置文件重命名,不要使用默认的名字 总之,如果不是必须以众所周知的默认名称安装到默认位置,就不要这样做。为什么要给恶意攻击者和自动恶意软件进入自己系统的机会呢? 举例来讲,Windows管理员应该重命名自己的管理员账号,改成不太明显的名字,比如,PeterC。Exchange管理员账号不应该叫做ExchangeAdmin,磁带备份服务账号不应该叫做Tapebackup。 安全专家会说,在Windows里,通过众人皆知的管理员的SID(Security Identifier,安全标识符),500,可以轻而易举地识别出管理员账号。确实是这样,不过,大多数攻击都是自动的,不做SID列举运算。黑客可以做SID列举运算,但是大多数黑客都不做。 看看无名安全怎样帮助避开SQL Slammer蠕虫的吧。如果被SQL Slammer击中了,说明你做错了三件事。首先,没有打SQL补丁,虽然补丁发布已经半年多了。其次,没有通过起保护作用的VPN就把SQL连到了危险的网络世界。第三,SQL服务器在默认的1434端口运行。 解决以上所有的问题,并不那么容易。在一个大企业里,持续不断的补丁更新是一项艰巨的任务,尤其想要测试某关键应用程序时更是如此。在多点之间设置VPN也是非常非常难做的事情。 三个中,最容易的解决方法就是改变SQL端口,比如,43143,或者别的TCP/IP端口。在安装时就可以改变默认端口,对于现有的客户端和服务器,也只需要更新注册表入口就可以完成。 这样,就看到无名安全的作用了。这只是其中一个小例子,我还做了好多其它的试验。我在1434和1435端口上分别安装了SQL服务器,前者一天中要受到上百次攻击尝试,而后者在一年多的时间里却没有受到哪怕一次骚扰,无论是自动的恶意软件还是黑客都没有注意到这个无名小卒。黑客可以发现除默认端口外的这个SQL服务器,因为SQL口令是空白的,但即便如此,仅仅改变一个端口,把位置变成无名,就可以起到这么大的作用。 相比于Windows管理员,Unix/Linux管理员更不乐意改变默认端口。建议更改默认的RPC程序号,因为很多恶意脚本依赖于这个号。建议重命名root账号,不要使用容易被盯上的名字。并且重命名对系统不会带来任何危害,不信的话可以试试看。 所以,不要再口口声声说无名安全技术没有用了,为自己考虑考虑吧。我,嘿嘿,要到游泳池里吃午饭去了。
标签: