测试这些东西能够帮助发现危害系统的途径,禁用和删除不必须的账户是一种消除找到的缺陷的一种方法。对于通讯端口也有一个相似的方法:禁用任何系统运行所不需要的用户ID.如果某个用户ID不能被禁用,那么至少改变它的默认密码,使其不易被破解。

  你会问,怎样才算一个好的密码?它地长度至少为六到八个字符,并含有一个特殊字符。密码必须足够长,以使其不易被破解,但是必须能够容易记住??这是难以两全的。我喜欢使用缩写词或者容易记忆的设备。千万别用任何易猜的单词或习语,这是一个常见的密码失误。同样的,不要使用字典中的单个词语。我记忆深刻的差密码之一是ROLLTIDE,这是我在阿拉巴马州大学一台被丢弃的机器上发现的(这所大学运动队的昵称是Crimson Tide)。

  步骤三:检查目录许可在关闭了无用端口并禁用了多余的账号后,仔细检查一下程序所用到的数据库和服务器目录的权限设置。很多攻击利用了配置失误的权限,这种方法经常被用来攻击Web服务器。

  例如,使用CGI脚本的Web站点有时允许写访问。通过它,一个恶意的供给者可以很简单地在CGI二进制目录下放置一个文件。然后他能够调用这个脚本文件,Web服务器会运行它,典型地在管理员权限下。能够写并执行脚本是非常危险的,要开放这些权限应该格外小心。

  另一个例子,几年前,我给一个安全实验室里的一个非常重要的系统作测试。通过配置失误的权限,我可以在很短的时间内破坏整个实验室以及所有17个被认为是安全的机器。在端口扫描之后,我发现每个服务器都运行了一个FTP监听器,而且每个都允许匿名访问,使得我可以访问每个服务器系统。

  FTP监听器给了我对每台机器上真正存放密码文件的访问权限,真是一个巨大的配置失误。由于权限如此设置,我不仅可以下载存放密码的文件,而且可以通过把密码文件中的密码修改后再上传给服务器覆盖源文件而使这些用户“中毒”。当然我将自己授予了root访问权,从而取得了机器的管理员权限。

  如果正确地设置了目录权限,我不能访问被指定给匿名用户使用的FTP目录以外的任何东西。因此,我本不能够得到真正存放密码的文件,更别提将其替换了。当然,如果他们曾经做过任何自己的端口扫描,像我在步骤一里提到的,那么用这种方法我将哪里也到不了。

  步骤四:对数据库也进行和上面同样的设置文件系统不是因权限设置不当而会受到攻击的对象。大多数的数据库系统有很多安全漏洞。它们的默认权限设置通常不正确,如打开了不必要的端口、创建了很多演示用户。一个的例子是Oracle的演示用户Scott,密码为Tiger.加强数据库安全的措施与操作系统一样:关闭任何不需要的端口、删除或禁用多余的用户,并只给一个用户完成其任务所必需的权限。

  步骤五:关上后门你对必须经过几个步骤来测试被应用程序包装得很深的功能感到厌倦了吗?能够建立一个直观的快捷方式吗?其实大家都这么想。问题在于这些快捷方式??也被叫做后门,经常被忽略或遗忘,而有时它们又会不经意地连同应用程序一起被发布。任何严格的安全测试程序都因该包括检查程序代码中不经意留下的后门。