0

一般:要扫描的代码是 .java 文件(Java EE),依赖项作为单独的 JAR 提供

目标: 如何为 checkmarx 提供构建项目所需的所有 Java 依赖项,以尽可能完善并完成扫描?我对检测依赖项本身的问题不感兴趣,也不希望将这些问题包含在 checkmarx 报告中。

原因: 没有依赖关系的扫描没有返回任何结果,这对于代码库的大小和复杂性来说有点不寻常。我在本地拥有所有依赖项,并且可以在我的 IDE 中构建项目(想法)。当我压缩文件夹并通过 Web 界面上传它以进行新扫描时,我看不到任何方法告诉 Chekmarx 有关依赖项(CLI 和 maven 插件只有在扫描中包含或排除文件和目录的选项)。我没有使用 maven checkmarx 插件,因为它需要 Checkmarx 扫描仪机器无法访问的资源(包括依赖项)。

我目前正在探索的方法是将依赖项分解到项目源文件夹中,以便解析导入并且 Checkmarx 可以构建项目。然而,一些依赖 JAR 包括 java 源文件,其他仅包括类文件,并且看起来 Checkmarx CxSAST 不支持扫描类文件(也不是 JAR)。如果我可以扫描代码,我可以通过在 Web 界面中标记它们并将它们从报告中排除来过滤掉在依赖项中发现的任何问题。

4

1 回答 1

1

如果它们不是您维护的代码,则不需要依赖项进行静态分析。如果您没有看到结果,则很可能在您的代码中没有识别出源或汇。

下载扫描日志并在接近尾声时查找与Find_Interactive_Inputs和类似的查询的结果数量Find_Interactive_Outputs。如果一个或两个计数为零,则您正在扫描的代码没有可识别的源/接收器。这对于类库 jar 或者如果您使用的是 SAST 无法识别的框架并不少见。通常可以通过 CxQL 调整查询以识别源/接收器,如果确实存在查找它们的模式。

于 2021-05-08T00:24:35.180 回答