使用 Static Analyzer Command Line Utility

Static Analyzer Command Line Utility (SAClientUtil) 用于生成可在 AppScan on CloudAppScan 360° 中扫描的 IRX。支持将 appscan prepare 命令与 AppScan 360° Static Analysis 一起使用。

什么是 IRX 文件?

IRX 是一种安全且加密的 zip 存档,其中包含运行程序的完整静态分析所需的信息。它在创建期间以及(通过 SSL)传输到云期间进行加密。

在内部,IRX 存档包含以下文件和工件:

  • 可部署程序工件的专用、加密表示,从已部署的源代码构建(例如 Java 字节码或 .Net MSIL)。要了解静态分析扫描支持哪些语言,请参阅 静态分析的系统要求
  • 通过程序部署的任何运行时脚本文件,可对这些文件进行分析以查找安全漏洞(例如 .js (Javascript) 或 .rb (Ruby) 文件)。
  • 描述程序的应用程序或项目层次结构和关系或依赖关系的 Static Analyzer 配置文件。这允许在应用程序中跨项目边界进行准确而完整的安全性分析。
  • 创建存档期间生成的 Static Analyzer 日志文件(用于诊断和支持)。

生成 IRX 文件

使用 appscan prepareappscan.sh prepare 生成 IRX。

语法:

appscan.sh prepare -c <configuration_file> -d <save_path> -jdk <jdk_path> -l <log_path> -n <file_name> -v, -X,--debug

描述:

生成 IRX 文件。

注: 扫描代码或生成 IRX 文件时,可能会收到有关更新到最新 Static Analyzer Command Line Utility 的消息。该消息将提供更新或拒绝更新的指导。

可选标志/设置:

  • -acceptssl:接受使用不受信任的证书。
    注: 此设置可用于所有 SAClientUtil 命令。
    重要: 我们强烈建议为客户机与 AppScan 360° 之间的通信安装的证书是可信证书。请参阅设置 AppScan 360° 环境
  • -c:此选项用于配置扫描。

  • -d:指定 -d <save_path>,其中 <save_path> 是用于保存 IRX 文件的目录。

  • -dr, --dryrun:指定 -dr or --dryrun 以发现并验证扫描目标,但不生成 .irx 文件。

  • -jdk:指定 -jdk <jdk_path> 以指示用于代替缺省 JDK 11 的 JDK 安装路径。如果使用配置文件 (-c <configuration_file>) 并使用 jdk_path 属性,则配置文件中指定的值优先。

  • -l:指定 -l <log_path>,其中 <log_path> 是用于保存日志文件的目录。

  • -n:指定 -n <file_name>,其中 <file_name> 是 IRX 文件名。您可以指定带有或不带有 .irx 文件扩展名的文件名。如果指定不带有扩展名的文件名,生成文件时将自动添加扩展名。

  • -s:指定 -s <value> 以指示扫描速度和深度,其中 <value>simplebalanceddeepthorough
    • simple 扫描会对您的文件执行表面级别的分析,以找出最紧急的问题进行补救。完成所需的时间最少。
    • balanced 扫描提供有关安全性问题的分析和识别的中等详细程度,并且完成所需时间比“简单”扫描略长。

    • deep 扫描会对您的文件执行更全面的分析以识别漏洞,通常需要更长的时间才能完成。

    • thorough 扫描执行全面分析以识别最全面的漏洞列表,并且完成所需时间最长。

      注: 扫描速度不一定与代码中发现的相对数量的漏洞相关。例如,thorough 分析可能会排除 simple 扫描中可能会报告的误报,从而报告更少数量的漏洞。
      注: 此可选参数区分大小写。如果未指定扫描速度,则缺省情况下,客户机实用程序将执行 deep 扫描。
  • -sco, --sourceCodeOnly:指定 -sco--sourceCodeOnly 仅扫描源代码文件。此设置禁用扫描其他受支持的文件类型,如 .dll.exe.jar.war.sln 等。

    当您只能访问源代码、希望运行更快的扫描,或更注重扫描速度而不是扫描深度时,仅源代码扫描将非常有用。如果您只能访问构建输出,或更注重扫描深度而不是扫描速度时,请选择备用扫描选项。

    注: 有关包含的仅限源代码的文件类型的列表,请参阅 静态分析语言支持
  • -t, --thirdParty:缺省情况下,在 IRX 文件生成期间不会扫描第三方 Java 和 .NET 代码。可通过遵循 管理第三方 Java 和 .NET 排除 中的指示信息来修改第三方代码排除设置。要包含第三方代码,请在发出 prepare 命令时指定 -t--thirdParty 选项。

    如果您是扫描中通常排除的第三方代码的开发人员,应使用该设置来包含第三方代码。

  • -v,--verbose:指定 -v--verbose 可在生成 IRX 文件期间显示更多参考输出。

  • -X,--debug:指定 -X--debug 可在调试方式下运行整个命令。以调试方式运行时,将生成更多日志文件用于故障诊断。

提示: 对于所有命令,选项都可以按任意顺序使用。

示例:

要生成将使用此配置文件 c:\my_config_files\my_config.xml 并将 IRX 文件保存到 c:\my_irx_files\my_scan.irx 的 IRX 文件,请发出以下命令:

appscan.sh prepare -c c:\my_config_files\my_config.xml -d c:\my_irx_files -n my_scan.irx