3.安全测试思路
许多软件安全测试经验告诉我们,做好软件安全性测试的必要条件是:一是充分了解软件安全漏洞,而是评估软件安全风险,三是拥有高效的软件安全测试技术和工具。
1)充分了解软件安全漏洞
评估一个软件系统的安全程度,需要从设计、实现和部署三个环节同时着手。例如CC 标准对软件安全性的评估方式,首先确定软件产品对应的保护策略(Protec,tion Profile,PP)。 一个PP定义了一类软件产品的安全特性模板,例如数据库的PP、防火墙的PP等。然后根据PP 再提出具体的安全功能需求,如用户的身份认证实现。最后,确定安全对象以及是如何满足对应的安全功能需求的。因此,一个安全软件的三个环节,哪个出问题都不行。我们要对这三个环节可能产生的安全漏洞有深刻的认识。
2)评估软件安全风险
当做完安全性测试后,软件是否能够达到预期的安全程度呢?这是安全性测试人员最关心的问题,因此需要建立对测试后的安全性评估机制。一般从以下两个方面进行评估。
一是安全性缺陷数据评估。如果发现软件的安全性缺陷和漏洞越多,可能遗留的缺陷也越多。进行这类评估时,必须建立基线数据作为参照,否则评估起来没有依据就无法得到正确的结论。
二是采用漏洞植入法来进行评估。采用漏洞植入法时,先让不参加安全测试的特定人员在软件中预先植入一定数量的漏洞,最后测试完后看有多少植入的漏洞被发现,以此来评估软件的安全性测试做得是否充分。
3)采用安全测试技术和工具
可使用专业的具有特定功能的安全扫描软件来寻找潜在的漏洞,将已经发现的缺陷纳入缺陷库,然后通过自动化测试方法来使用自动化缺陷库进行测试。
安全测试是用来验证集成在软件内的保护机制是否能够在实际中保护系统免受非法的侵入。一句通俗的话说:软件系统的安全当然必须能够经受住正面的攻击,但是也必须台邑够经受住侧面的和背后的攻击。