当测试人员在进行软件安全测试,发现了安全漏洞时,他们要如何管理,并区分这些漏洞的优先级?
在软件中发现安全缺陷是一件事,而确保问题处理行当确是另外一件事。我执行的许多渗透测试和web安全评估中,我发现处理这类问题极具挑战。发现漏洞,并把具体发现和解决方案以正式执行的形式存档。虽然解决方案还未完成,包括给高级安全问题的解决方案,如SQL注入、跨站脚本和缺乏安全套接层,以及登录信息泄漏。这与束之高阁的软件和示实现的安全控制并无两样。
过了审查阶段,第二重要的阶段就是软件安全测试部分。如果你跳过这一部分,那么测试流程只会创建更多的债务,而不是解决债务。一旦接收了来自大咨询师或没无法改变的现的成报告后,你以及负责任的一方就必须决定出什么是需要解决的。即使所发现的已经区分优先级,但没有人会像你的团队那样了解你的环境、文化以及风险承受能力。
显然,你不可能修复所有事情,但你却可以修复你的业务中出现的重要的问题。我建议把你的发现分成两类:一类是关键的,这些问题可能当即就被利用,对业造成损害;另一类是非关键的,这些可能一些被利用的问题,可能不好的实践,尤其结合一些其它的发现。你可以根据他们对敏感信息的风险,解决的难易度(时间、复杂性等),以及组织上的其它标准一些来区分优先级。