(2)需要进行测试风险控制
在正式开始渗透测试之前,测试人员应当了解在测试中可能发生的风险,并针对风险制定有效的控制措施。如:渗透测试的扫描不采用带有拒绝服务的策略,渗透测试安排在业务低峰期进行等。
一:利用渗透测试,除了可以较为全面地进行系统安全评估之外,还可以针对某些安全测试,比如对软件系统访问控制模块的测试、弱口令测试等。这些安全专项测试使用一 般的软件功能测试、模糊测试,甚至包括逆向分析等手段很难有效完成。
与逆向分析和模糊测试相比较,渗透测试可以挖掘一些这两种方法无法发现的漏洞。例如,访问控制缺陷。目前几乎所有的网络安全设备都使用了基于角色的访问控制策略。通过逆向分析和模糊测试很难发现这种访问控制策略存在的漏洞,或者即使在模糊测试过程中发生了这种未授权的访问,但对于模糊测试工具而言,它并不理解这样的逻辑是否正确。类似的情况还有密码被猜测漏洞、配置漏洞、多因素漏洞等等。
渗透测试考虑的是以黑客方法和思路,从单点上找到利用途径,证明是否存在问题,帮助客户提高认识,能够解决一些急迫的问题,但无法针对系统做完备性的安全测试。
3)静态代码安全测试
主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。