另一个例子,几年前,我给一个安全实验室里的一个非常重要的系统作测试。通过配置失误的权限,我可以在很短的时间内破坏整个实验室以及所有17个被认为是安全的机器。在端口扫描之后,我发现每个服务器都运行了一个FTP监听器,而且每个都允许匿名访问,使得我可以访问每个服务器系统。
FTP监听器给了我对每台机器上真正存放密码文件的访问权限,真是一个巨大的配置失误。由于权限如此设置,我不仅可以下载存放密码的文件,而且可以通过把密码文件中的密码修改后再上传给服务器覆盖源文件而使这些用户“中毒”。当然我将自己授予了root访问权,从而取得了机器的管理员权限。
如果正确地设置了目录权限,我就不能访问被指定给匿名用户使用的FTP目录以外的任何东西。因此,我本不能够得到真正存放密码的文件,更别提将其替换了。当然,如果他们曾经做过任何自己的端口扫描,就像我在步骤一里提到的,那么用这种方法我将哪里也到不了。
步骤四:对数据库也进行和上面同样的设置
文件系统不是唯一因权限设置不当而会受到攻击的对象。大多数的数据库系统有很多安全漏洞。它们的默认权限设置通常不正确,如打开了不必要的端口、创建了很多演示用户。一个著名的例子是Oracle的演示用户Scott,密码为Tiger。加强数据库安全的措施与操作系统一样:关闭任何不需要的端口、删除或禁用多余的用户,并只给一个用户完成其任务所必需的权限。
步骤五:关上后门
你对必须经过几个步骤来测试被应用程序包装得很深的功能感到厌倦了吗?能够建立一个直观的快捷方式吗?其实大家都这么想。问题在于这些快捷方式——也被叫做后门,经常被忽略或遗忘,而有时它们又会不经意地连同应用程序一起被发布。任何严格的安全测试程序都因该包括检查程序代码中不经意留下的后门。
另一个真实的因后门而引发安全问题的例子是Solaris操作系统的早期版本的[Ctrl]K错误。上世纪90年代早期的Solaris用户只需以一般用户身份登陆并按两次[Ctrl]K就可以获得root权限。
为了寻找后门,必须完整地检查源代码,查找基于非预期参数的条件跳转语句。例如,如果某个程序是通过双击图标而被调用的,那么要确保代码不会因为从命令行用特殊参数调用而跳转到某个管理或特权模式。
--------------------------------------------------------------------------------
安全测试是正常软件测试的一部分吗?
你所在的单位会例行对新的应用程序进行安全测试吗?为了确保一个应用程序是安全的你会采取哪些处理过程和方法?将你的意见寄给我们,我们会在以后进行讨论。
--------------------------------------------------------------------------------
同基础测试一样,安全测试必须系统的进行,以上五个步骤为此提供了系统化的方法。在依其行事之前,你可以对你的系统进行基础的安全测试而不必招致巨大的花费。这个方法不会使你一夜之间变成一个安全专家,但是只要你理解所要测试的系统,它会帮助你了解基础的安全知识。如果想确保你的系统比较安全,或者使黑客和解密组织把你的系统作为目标的机会更小的话,那就按照这些步骤来做吧。
文章来源于领测软件测试网 https://www.ltesting.net/