我的员工没有安全专家。依靠安全测试服务是否有意义?
在员工中缺少安全专家的情况下,你很有可能会从外部的安全测试服务中选择一家厂商。在内部培养安全技能过于昂贵,也过于费时,并不是一个理想的选择。这一技能还要随着时间的推移不断提升。
因为依赖外部合作伙伴可能是唯一可行的选择,在第三方安全测试服务时主要考虑要素有:
了解组织的应用攻击面
解决预算问题
了解深入的测试分析
决定分析的频率
应用攻击表面
首先,了解需要测试的范围很重要。有一些问题需要安全测试人员回答,如有多少应用需要测试,他们托管在哪里以及谁开发的他们?项目经理也应该做好准备回答关于风险等级的问题。这些问题包括:哪些应用程序管理着最敏感的数据,哪些负责最有价值的操作,以及哪些代表着最大的风险?这些等级将有助于优化测试活动。没有回答这些问题,那么深入的决策很有可能会滥用资源。
原始预算可能会严格控制在测试项目上。尤其是在没有内部开发预测的小企业中,预算可能是一个最重要的问题。以预算内对外部厂商进行评估可以用帮助快速缩小领域,尤其是在决定采用深度测试分析时。
所有的评估和测试活动并都不是一样的。当评估第三方法测试服务时,了解具体将要哪类测试很重要。这决定了评估将提供的安全级别的洞察力。
静态测试在空闲时查看应用代码或二进制档。动态测试检查正在运行的系统,并执行测试来决定的,或试图决定应用现在的漏洞显示的行为。如静态和动态测试这样的自动分析只依靠工具来努力把代码模式或请求与响应配对匹配。
自动分析相对较便宜,但也存在一定的局限。例如,自动化测试只能识别出一些特定类型的漏洞,而对于确定依赖于应用的业务上下文环境的漏洞有哪些,它却是无能为力了。除了因为自动分析的局限性而引入的漏报率外,自动化安全测试尝尝可以识别出误报,这时分析会强调出可能是漏洞,而实际还没有被利用的。
手动分析比较昂贵,因为它依赖于安全分析师来执行测试。这提高了漏洞类型可识别的概率,所以期望手动测试过滤出误报是很可行的。然而,复杂的手动测试成本可能会成为阻碍,即使对于有着大量资源的组织来说也是一项负担。
安全前景一直在变化着,而且最重要的应用程序通常属于主动开发类型。安全测试并不是一次性行为。
使用外部的测试机构或服务对于不大型组织和小企业都是最常见的策略,只要他们需要引入安全测试功能和技能。但是,确保这些机构能完全理解什么样的测试将会按预期执行很重要。另外,了解组织的攻击层面和应用风险级别有助于确保测试预测的分配最优化。