并非所有的自动化软件安全评估方法都是平等的
在规划应用程序的测试策略时,评估各种测试方法选项的适用性和可能的有效性非常重要。自动应用程序安全性测试的两种最常见方法是静态应用程序安全性测试(SAST)和动态应用程序安全性测试(DAST)。
SAST涉及对静态的应用程序工件进行测试,如源代码或应用程序二进制文件。测试工具回顾应用程序源代码或二进制代码来构建模型,然后执行各种类型的分析,如语义,数据流或控制流,以基于针对应用程序类型,语言等调整的一组规则来识别潜在的漏洞。和应用程序框架的使用。DAST涉及通过发送输入和分析应用程序的响应来测试正在运行的应用程序,以查看这些请求/响应模式是否指示存在安全漏洞。

评估SAST时需要考虑几个问题。第一个潜在的障碍是没有访问应用程序源代码。通常情况下,内部开发的软件可以使用这种软件,但是在某些情况下,内部安全控制或组织政策会使您难以(甚至不可能)获得源代码。此外,如果您打算测试第三方软件,除非您已经协商此访问权限,否则您可能无法访问源代码。没有源代码访问权限,静态分析可能不在表格中。虽然有一些工具和提供程序能够基于应用程序二进制文件启用安全性静态分析,但通常需要使用调试符号或其他编译器设置编译的二进制文件,
如果您的静态分析工具不支持应用程序的语言,则可能会遇到第二个潜在的障碍。如果你有一个用Go语言编写的应用程序,但是你的静态分析工具只支持Java和.NET,那么这个工具对于测试目标应用程序是没有用的。大多数静态分析工具对Java和.NET等通用企业开发语言都有很好的支持,但是缺少对其他语言的支持,或者对其他语言的支持不够成熟。同样,您还必须考虑您的静态分析工具是否支持应用程序类型。通常,这些工具有两个主要组件 - 构建要测试的应用程序模型的分析器以及在测试期间应用于模型的规则。大多数商业静态分析工具都支持Web应用程序,而且很多都支持移动应用程序,但是如果您正在寻找测试物联网应用程序,则需要考虑该应用程序的规则集有多成熟。缺少或不太成熟的规则集会导致测试效果不佳。
如果您的静态分析工具不支持任何正在使用的应用程序框架,则最终的潜在障碍是。这对于Web应用程序来说是最常见的问题,但也可以应用于其他应用程序类型。如果您有一个使用Spring框架以Java编写的Web应用程序,那么了解静态分析工具是否有能力检测到重要的Spring结构的使用,以及基于Spring处理用户请求的方式。
正如对SAST工具的评估可以发现测试中潜在的问题一样,查看动态应用程序安全测试(DAST)也会带来障碍。大多数商用的DAST工具都是用来测试Web应用程序的,因此,您必须确认相关应用程序实际上是一个Web应用程序。有开源和商业的模糊工具和框架可以用来测试其他类型的应用程序,比如服务器守护进程,但是这些技术的适用性以及利用这些技术所需的专业知识水平可能会使他们不那么有吸引力当开始制定一个测试程序。
假设应用程序是基于Web的,则必须询问您的DAST工具是否支持测试目标应用程序。并非所有的DAST工具都能够测试使用不同Web应用程序开发方法(如单页应用程序(SPA))编写的API或Web应用程序。关键的是,您还必须确定您是否有权测试相关系统。对于内部开发的软件,希望是简单明了的。您既可以使用生产实例,也可以使用预生产版本的应用程序进行安全测试。但是,对于由供应商,合作伙伴或其他第三方开发或托管的软件,测试访问可能更为复杂。最好是协商安全测试的权利,以及修复的要求,在申请获得过程中,事实上这很难做到。了解你测试这些系统的能力对于确定可以采取什么样的测试方法至关重要。
并非所有的自动评估方法都是平等的。为应用程序开发自动化测试策略时,将测试方法和测试工具与目标应用程序的特性相匹配非常重要。如果不能正确执行此操作,将导致无效或效果不佳的测试,但将自动化测试工具与应用程序正确匹配可以为您提供有关应用程序安全性的宝贵信息。