软件安全测试的几个原则(2)

发表于:2015-01-04来源:uml.org.cn作者:娃娃点击数: 标签:安全测试
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上就十分的重要。 4. 最小特权 最小特权原则规定:确定只授予执行操作所必需的最少访问权

  测试采取的防护措施是否正确装配好,有关系统的补丁是否打上就十分的重要。

  4. 最小特权

  最小特权原则规定:确定只授予执行操作所必需的最少访问权,并且对于该访问权只准许使用所需的最少时间。

  当软件给出了某些部分的访问权时,一般会出现滥用与那个访问权相关的特权的风险。例如,我们假设您出去度假并把您家的钥匙给了您的朋友,好让他来喂养您的宠物、收集邮件等等。尽管您可能信任那位朋友,但总是存在这样的可能:您的朋友未经您同意就在您的房子里开派对或发生其它您不喜欢的事情。

  一位程序员可能希望访问某种数据对象,但只需要从该对象上进行读。不过,不管出于什么原因,通常该程序员实际需要的不仅是必需的特权。通常,该程序员是在试图使编程更容易一些。

  如果软件设置的访问权结构不是“完全访问或根本不准访问”,那么最小特权原则会非常有效。

  5. 分隔

  分隔背后的基本思想是如果我们将系统分成尽可能多的独立单元,那么我们可以将对系统可能造成损害的量降到最低。

  通常,如果攻击者利用了代码中的缓冲区溢出,对磁盘进行原始写并胡乱修改内核所在内存中的任何数据。没有保护机制能阻止他这样做。因此,系统进行适度的分隔显得十分重要,软件要能直接支持本地磁盘上永远不能被擦去的日志文件,这意味着直到

  攻击者闯入时,才不能保持精确的审计信息。

  适度使用的分隔,将利于系统的管理,但是对每一个功能都进行分隔,那么系统将很难管理。

  三、安全性测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力, 根据安全指标不同测试策略也不同,如果遵循相同的原则,去证明软件的安全性,将有利于软件安全测试的工作规范的进行,有利于软件安全测试工作的发展。

  安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如,①想方设法截取或破译口令;②专门定做软件破坏系统的保护机制;③故意导致系统失败,企图趁恢复之机非法进入;④试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。

  安全测试用来验证集成在系统内的保护机制是否能够在实际中保护系统不受到非法的侵入。俗话说: “ 系统的安全当然必须能够经受住正面的攻击 —但是它也必须能够经受住侧面的和背后的攻击。 ”

  在安全测试过程中,测试者扮演着一个试图攻击系统的个人角色。测试者可以尝试去通过外部的手段来获取系统的密码,可以使用可以瓦解任何防守的客户软件来攻击系统;可以把系统“制服”,使得别人无法访问;可以有目的地引发系统错误,期望在系统恢复过程中侵入系统;可以通过浏览非保密的数据,从中找到进入系统的钥匙等等。

  只要有足够的时间和资源,好的安全测试就一定能够最终侵入一个系统。系统设计者的任务就是要把系统设计为想要攻破系统而付出的代价大于攻破系统之后得到的信息的价值。

原文转自:http://www.uml.org.cn/Test/201112223.asp