扫描方式

扫描方式将描述 AppScan on Cloud 是扫描构建输出(.dll.jar 等),还是扫描项目中特定语言的源代码文件。

AppScan Go! 中指定扫描方式,或者通过使用命令行实用程序 (CLI) 中的仅源代码选项来指定扫描方式。缺省情况下,Static Analyzer 不分析已编译语言(Java、.NET 和 C/C++)的源代码。对于这些语言,用户可以选择指定扫描方式。对于所有其他语言,扫描为仅源代码扫描。

了解不同的扫描方法对于项目的成功至关重要。每一种方法都有特定用途和要求,结果也不同。

仅源代码扫描

在软件开发生命周期的早期,未编译代码的仅源代码扫描是一个有用的工具,用于提前发现问题并确认程序化方法,然后再进行项目处理。

通常由开发人员执行并且需要访问源文件,仅源代码扫描速度较快,但未必与已编译代码的扫描一样准确。仅源代码扫描的结果会精确定位特定代码行中的漏洞;它们不会显示跟踪数据。

您可以为某些语言指定仅源代码扫描。

字节码/编译(构建输出扫描)

当准确性优先于扫描速度时,扫描构建输出不仅可以帮助您了解应用程序中漏洞存在的位置,还可以帮助您了解该漏洞的影响。扫描构建输出有时称为“数据流”扫描。

构建输出扫描需要访问完全构建的应用程序。扫描结果显示“跟踪”,显示经过应用程序的感染数据流,从感染数据进入应用程序的点到使用感染数据的点(称为“接收器”)。跟踪显示跟踪中每个点的代码行和感染变量;它的外观类似于异常堆栈跟踪。

构建输出扫描可能有其他要求,具体取决于项目类型:
  • 应用程序依赖关系应该可用,以获得最完整准确的结果。
  • 对于 Java 和 .NET,需要字节码,因此需要在运行扫描之前构建应用程序。
  • 对于 C/C++,需要 Visual Studio 解决方案。