步骤三:检查目录许可

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

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

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

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

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

步骤四:对数据库也进行和上面同样的设置

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

步骤五:关上后门

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

另一个真实的因后门而引发安全问题的例子是Solaris操作系统的早期版本的[Ctrl]K错误。上世纪90年代早期的Solaris用户只需以一般用户身份登陆并按两次[Ctrl]K可以获得root权限。

为了寻找后门,必须完整地检查源代码,查找基于非预期参数的条件跳转语句。例如,如果某个程序是通过双击图标而被调用的,那么要确保代码不会因为从命令行用特殊参数调用而跳转到某个管理或特权模式。

小结:同基础测试一样,安全测试必须系统的进行,以上五个步骤为此提供了系统化的方法。在依其行事之前,你可以对你的系统进行基础的安全测试而不必招致巨大的花费。这个方法不会使你一夜之间变成一个安全专家,但是只要你理解所要测试的系统,它会帮助你了解基础的安全知识。如果想确保你的系统比较安全,或者使黑客和解密组织把你的系统作为目标的机会更小的话,那按照这些步骤来做吧。