避免沙堆建楼 做好软件安全测试(3)

发表于:2015-03-06来源:不详作者:娃娃点击数: 标签:安全测试
(4)权限过大 如果赋予过大的权限,就可能导致只有普通用户权限的恶意用户利用过大的权限做出危害安全的操作。例如没有对能操作的内容做出限制,

(4)权限过大

如果赋予过大的权限,就可能导致只有普通用户权限的恶意用户利用过大的权限做出危害安全的操作。例如没有对能操作的内容做出限制,就可能导致用户可以访问 超出规定范围的其他资源。进行安全性测试时必须测试应用程序是否使用了过大的权限,重点要分析在各种情况下应该有的权限,然后检查实际中是否超出了给定的 权限。权限过大问题本质上属于设计空间过大问题,所以在设计时要控制好设计空间,避免设计空间过大造成权限过大的问题。

做好安全性测试的建议

许多软件安全测试经验告诉我们,做好软件安全性测试的必要条件是:一是充分了解软件安全漏洞,二是评估安全风险,三是拥有高效的软件安全测试技术和工具。

(1)充分了解软件安全漏洞

评估一个软件系统的安全程度,需要从设计、实现和部署三个环节同时着手。我们先看一下Common Criteria是如何评估软件系统安全的。首先要确定软件产品对应的Protection Profile(PP)。一个PP定义了一类软件产品的安全特性模板。例如数据库的PP、防火墙的PP等。然后,根据PP再提出具体的安全功能需求,如用 户的身份认证实现。最后,确定安全对象以及是如何满足对应的安全功能需求的。因此,一个安全软件的三个环节,哪个出问题都不行。

(2)安全性测试的评估

当做完安全性测试后,软件是否能够达到预期的安全程度呢?这是安全性测试人员最关心的问题,因此需要建立对测试后的安全性评估机制。一般从以下两个方面进 行评估。①安全性缺陷数据评估。如果发现软件的安全性缺陷和漏洞越多,可能遗留的缺陷也越多。进行这类评估时,必须建立基线数据作为参照,否则评估起来没 有依据就无法得到正确的结论。②采用漏洞植入法来进行评估。漏洞植入法和可靠性测试里的故障插入测试是同一道理,只不过这里是在软件里插入一些有安全隐患 的问题。采用漏洞植入法时,先让不参加安全测试的特定人员在软件中预先植入一定数量的漏洞,最后测试完后看有多少植入的漏洞被发现,以此来评估软件的安全 性测试做得是否充分。

(3)采用安全测试技术和工具

可使用专业的具有特定功能的安全扫描软件来寻找潜在的漏洞,将已经发生的缺陷纳入缺陷库,然后通过自动化测试方法来使用自动化缺陷库进行轰炸测试。例如,使用一些能够模拟各种攻击的软件来进行测试。

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

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