静态分析扫描故障诊断

AppScan 360° 中的扫描故障诊断与 AppScan on Cloud 中的略有不同。按照此处的指导在 AppScan 360° 中进行 SAST 扫描问题故障诊断。

扫描故障诊断首先由用户执行,如果未找到解决方案,则上报给管理员。用于故障诊断的常规路径如下:
  1. 用户查看错误消息。
  2. 用户查看常见错误案例。
  3. 如果问题仍然存在,用户将下载扫描日志并上报给管理员。
  4. 管理员调查用户提供的信息。
  5. 如果问题仍然存在,管理员将上报给 HCL 支持人员。

用户:请复审错误消息

AppScan Central Platform,转至失败的扫描的扫描页面。执行以下任一项操作:
  • 选择应用程序 > (应用程序) > 查看所有扫描 > (扫描名称),或者
  • 选择扫描 > (扫描名称)
查看扫描页面上显示的错误消息。常见错误案例如下所述。
重要: 记下扫描标识和执行标识:
  • 扫描标识是 URL 的一部分。查找 /scans/ 后面的字符串。例如,在以下 URL 中,扫描标识为 6ecf4111-adf9-47a8-852b-625ff4c954ef
    < ASCP service URL>/70f7db22-1bea-4f55-babc-5668f1f723f4/scans/6ecf4111-adf9-47a8-852b-625ff4c954ef/scanOverview
  • 执行标识列在概述选项卡的扫描详细信息下。

用户:查看常见错误案例

最常见的错误包括:

开源

错误:扫描失败。您的订阅不允许进行开源扫描。 
有关激活“开源”扫描的信息,请与您的销售代表联系。 
如果您需要进一步的帮助,请联系我们的技术支持团队

您尝试了扫描开源文件。 AppScan 360° 不支持开源扫描。

如果您上载了 ZIP 文件进行扫描,请查看 ZIP 文件的内容。

  • 如果 ZIP 仅包含开源文件,请上载包含非开源文件的 ZIP 文件,然后重试扫描。
  • 如果 ZIP 文件包含 appscan-config.xml 配置文件,请查看文件中列出的属性。 AppScan 360° 不支持 openSourceOnly 属性。如果列出了 openSourceOnly="true",请删除此属性并重试扫描。
    注: 请在此处查看 appscan-config.xml 支持的属性。
如果您上载了 IRX:
  1. 重新运行 appscan prepare,确认目标文件不是开源文件,并且未使用 openSourceOnly 参数。
    注: 请在此处查看 appscan prepare 支持的参数。
  2. 如果问题仍然存在,请下载扫描日志并上报给管理员

无 IPVA/IRX 损坏

错误:无法成功完成扫描。扫描失败,因为 IRX 未正确创建。 
可能是由于配置不正确或缺少依赖项。 
如果您需要额外的帮助,请联系我们的技术支持团队。

在扫描的 IRX 生成步骤期间出现问题。

如果您上载了 IRX:

  • 如果您有权访问 appscan prepare 运行的位置,请检查运行过程中创建的 logs.zip 文件中是否存在错误。
  • SAClientUtil/logs/client.log 文件中查找错误。
  • 要进行更深入的 IRX 调查,请上报给管理员

如果您上载了 ZIP,请下载扫描日志并上报给管理员

未知错误

错误。发生了未知错误。

存在几种可能性。下载扫描日志并上报给扫描管理员以进行进一步调查。

用户:下载扫描日志以上报给管理员

要下载扫描日志:
  • ASCP 用户界面:
    1. 在扫描页面(应用程序 > 应用程序 > 查看所有扫描 > (扫描名称)扫描 > (扫描名称))中,复制扫描详细信息下列出的执行标识
    2. 在扫描页面的右上角,选择管理扫描 > 下载日志

      AppScan 360° 将 ZIP 文件下载到本地系统。记下下载的位置。

    3. 解压缩 ZIP 文件的内容。
  • 从命令行:

    <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID}/ 下载与扫描相关的目录内容。

扫描管理员:调查用户提供的信息

访问扫描日志

要访问扫描日志:

  1. <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID}/ 下载与扫描相关的目录内容。
  2. 解压缩日志文件并检查是否有错误。
  3. 解决所有错误,然后重试扫描。

调查存在无 IPVA/IRX 损坏错误的 IRX

  1. <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID}/ 下载与扫描相关的目录内容。
  2. 将下载的文件复制到本地系统。
  3. 使用 7-ZIP 或类似工具,右键单击 IRX 文件,然后单击打开存档

  4. 双击 internal.scan 将其打开。

  5. 检查根目录中的 .log 文件以及日志文件夹中的日志是否有任何错误。
  6. 解决所有错误,然后重试扫描。

调查具有开源错误的 IRX

注: AppScan 360° 不支持开源扫描。
如果扫描失败并显示错误“您的订阅不允许进行开源扫描。”并且您上载了 IRX 进行扫描,请检查 IRX 文件中是否存在错误:
  1. <fileStorageRoot>/SaaSWorkingDirectory/SaaSStorage/Scans/<scanID>/<ExecutionID}/ 下载与扫描相关的目录内容。
  2. 使用 7-ZIP 或类似工具,右键单击 IRX 文件,然后单击打开存档

  3. 打开 scan.manifest 文件进行检查。
    如果 Total Languages Found = 1,并且 Language 部分唯一的条目是 Open Source,则 IRX 文件仅为开源扫描生成,或者指向了仅包含开源文件的位置:
    • 确认目标位置包含非开源文件。

      AppScan 360° 不支持开源扫描。

    • 确认 appscan prepare 命令或 appscan-config.xml 文件中未使用不受支持的属性或参数。如果列出了 openSourceOnly="true”,请删除此属性。

      AppScan 360° 不支持在 appscan prepareappscan-config.xml 中使用 openSourceOnly 属性。

  4. 重试扫描。

调查其他错误案例

开源文件类型

验证期间发现问题。 
准备操作仅发现开源文件类型。要运行仅开源扫描,请使用 -oso 标志。 
要运行安全和开源扫描,请包含其他支持的文件类型。

您已尝试运行仅开源扫描,或尝试了运行第三方扫描,但扫描需要额外配置。

AppScan 360° 不支持仅开源扫描。

验证扫描配置:
  • 确认 appscan prepare 命令中未使用不受支持的参数。如果列出了 openSourceOnly="true”-oso,请删除此参数。

    AppScan 360° 不支持在 appscan prepare 中使用 openSourceOnly-oso 参数。

  • 如果您上载了 IRX 并打算在只有第三方库的位置运行扫描,请启用第三方扫描。执行以下任一项操作:
    1. 将第三方标志添加到 appscan prepare 以选取第三方库并重试扫描。

      命令应类似于:appscan prepare -tp

    2. thirdParty="true” 添加到 appscan-config.xml 并重试扫描。

      可以在使用 CLI 配置 IRX 文件生成中找到一个示例

  • 如果您上载了 ZIP 并打算在只有第三方库的位置运行扫描,请启用第三方扫描:
    • 如果要扫描第三方代码,请将 thirdParty="true” 添加到 appscan-config.xml,然后重试扫描。

无已知文件类型

发现期间未找到已知的扫描文件类型。 
请指定包含 .class、.jar、.war、.ear、.dll、.exe、PHP、Ruby、NPM 程序包或 JavaScript 文件的位置。

您尝试了扫描不包含任何可扫描文件的位置。

验证目标位置中的文件是否是有效的文件类型。在静态分析语言支持中检查支持的文件类型列表。

如果使用了 appscan-config.xml,请检查目标路径是否为有效位置。

无可扫描文件

验证期间发现问题。 
未找到可扫描的文件。如果您尝试扫描第三方代码,请使用 --thirdParty 选项生成 IRX 文件。如果您尝试扫描开源代码,请使用 -oso 选项生成 IRX。关于支持的文件类型列表,请参阅 https://help.hcl-software.com/appscan/ASoC/src_language_support.html#src_language_support__table_ylp_rn5_jw
  • 如果您打算在只有第三方库的位置运行扫描,您必须启用第三方扫描。执行以下任一项操作:
    1. 将第三方标志添加到 appscan prepare 以选取第三方库并重试扫描。

      命令应类似于 appscan prepare -tp

    2. thirdParty="true” 添加到 appscan-config.xml 并重试扫描。

      可以在使用 CLI 配置 IRX 文件生成中找到一个示例

  • 如果您打算运行数据流分析扫描,请确认目标扫描位置包含 Java、.NET 或 C/C++ 正确的已编译文件类型,然后重试扫描。

  • 如果您打算运行仅源代码扫描,请确认目标位置包含正确的源代码文件类型,然后重试扫描。
  • 如果打算运行仅源代码扫描,请从 appscan prepare 命令或 appscan-config.xml 中删除 –sco 标志,然后重试扫描。

扫描管理员:与 HCL 支持人员合作

如果在应用此处呈现的故障诊断指导后,您仍然不确定导致扫描失败的原因,请联系 HCL 客户支持人员,以获得更多帮助。准备好向支持人员提供以下信息:
  • 执行标识
  • 扫描标识
  • 准备器 Pod 标识(如适用)
  • 分析器 Pod 标识(如适用)
  • AppScan 360° 的扫描页面上或 service.log 中报告的任何错误。
  • 日志 ZIP 文件。
  • 有关正在扫描的应用程序/项目的详细信息。
  • 有关问题故障诊断和/或解决中执行的步骤的详细信息。
注: 将 Pod 上的任何重要信息和扫描详细信息备份到安全位置。缺省情况下,Pod 上的数据将在 10 天后被清除。