“让我们从头开始,从一个很好的地方开始。”
电影《音乐之声》中玛利亚的建议同样适用于构建有效的应用安全程序。这是充满障碍的道路,对于尚未侧重安全性的企业来说,这可能非常遥远且复杂,甚至还无法开始。
其他企业则可能愿意部署前面的步骤,这是一件好事。Manicode Security公司联合创始人Jim Manico建议:“企业需要去尝试、犯错,并坚持适合自己的方法。”
近日在罗马举行的2016年OWASP AppSec大会,专家们与来自全球各地近700名与会者探讨了“从哪里开始”的问题。下面是从这些讨论和对话中总结的技巧。
创建应用安全程序的第一步
“从管理的角度来看,企业可研究OWASP的SAMM(软件保证成熟度模型)框架,并将从中大大受益,”Minded
Security公司首席执行官Matteo
Meucci建议,“SAMM带领企业了解他们应该如何管理威胁建模、如何执行安全测试、如何执行安全代码审查、如何管理漏洞等。”
SAMM工具集可通过图形说明企业拥抱应用安全程序的能力。通过利用该仪表板,企业可建立发展成为更成熟企业的路线图。
Meucci称:“SAMM可很好地帮助企业了解在哪里投资以及如何改进。”
企业的应用安全程序通常是在软件设计和构建后,即侧重对应用的测试。然而,在AppSec大会很多人都认为在后期阶段查看安全问题并不够。
“有些企业从动态分析(动态应用安全测试DAST)开始,这只是在应用发布之前,”应用测试公司Checkmarx产品营销主管Amit
Ashbel称,“这有时候会导致发布延迟,而且,开发人员需要从头来过去解决问题。实际上,你应该在代码编写时静态形势下分析代码,在最后的动态分析应该只是最后的检查,不会对项目带来影响,因为漏洞已经被修复。”
对应用安全的静态和动态测试
Manico对这种非此即彼的立场有着不同的看法,他指出“任何明智的应用安全程序都应该同时涉及静态和动态测试”。单独依靠任一种测试都不足够。
Meucci同意称这种非此即彼的做法有风险。
“这些项目通常会失败,”Meucci称,“他们失败的原因不是因为开发人员没有时间回过头去修复发现的漏洞,而是因为他们发现了太多漏洞不知道如何解决。”
风险分析公司Security Innovation国际渠道销售总监Tony Luzza称:“这个问题是两面的,首先,首席信息安全官(CISO)在开发生命周期的后期才得到应用渗透测试结果,其次,他们将发现的结果交给不懂安全或者不具备修复漏洞技能的团队。”
对于开发后进行测试的企业,很多人都有着错误的假设:他们可以发现漏洞、优先处理它们,并在修复漏洞后可销售软件。这并不是成功的做法,而且可能会有漏洞未被发现。为什么呢?软件团队承受着巨大的压力,他们要在规定时间内推出产品。而且运行整个测试和发布过程是巨大的噩梦,特别是当存在很多安全漏洞需要对软件架构进行更改时。
根据专家表示,最好的建议是:尽早测试以及频繁测试。在编码阶段使用静态应用安全测试(SAST)并使用动态测试来捕捉可能溜走的漏洞。
Ashbel称:“企业通常忘记这并不是只使用一种类型的测试来节省资金。”
但这只是开始,想要构建有效的应用安全程序,还有很多工作要做。
“你应该进行静态测试和动态测试,但这只是成熟安全软件开发生命周期的部分元素,”Manico称,“还应该考虑安全标准和要求、架构风险分析、设计风险分析、DevOps基础设施、安全框架和库。考虑开发人员培训、测试规划、卓越可用性中心,评估安全指标、测试评估和成熟安全SDLC的其他方面。”
作者:Sean Martin
来源:51CTO