¶ 一、功能简介
在软件开发和部署过程中,为帮助开发团队和安全团队识别安全漏洞和提高开源组件的可管理性,我们提供了五种通用的检测模式。根据实际的需求和环境,选择适合的检测方法,并结合安全最佳实践,以确保项目的可靠性和安全性。
¶ 二、五大检测模式
¶ 2.1 标准扫描
- 使用场景:尽可能对文件中各种类型的文件进行扫描
- 检测模式说明:标准扫描从项目中全方位扫描源代码、二进制、容器镜像、固件的混合扫描模式。选择后,将尽可能对文件中各种类型的文件进行扫描,来获取最全面的开源组件信息和存在的漏洞,扫描速度略慢。
- 扫描配置
配置项 | 建议 | 作用 | 作用范围 |
---|---|---|---|
是否编译 | 建议默认开启,用户无需手动指定 | 开启后,对 maven 项目的扫描会使用模拟构建的方式,检测结果更准确;关闭后,扫描速度更快 | 只针对 Maven (Java)包管理器的 源代码检测 有效 |
漏洞真实影响评估 | 建议默认开启,用户无需手动指定 | 开启后,扫描时会深入分析漏洞是否会被真实触发; 关闭后, 将不分析此 | 只针对 Java 和 JavaScript 的 源代码检测 生效 |
同源性分析 | 开启后会增加检测耗时,这个一般根据实际情况选择是否开启 | 开启后,扫描时会同步溯源代码片段,识别项目中是否存在相似代码和抄袭代码的问题;关闭后, 将不分析此项 | 只针对有 源代码 的检测生效 |
安卓制品深度扫描 | 开启后会 严重增加检测耗时 ,这个一般根据实际情况选择是否开启 | 开启后,针对安卓制品的扫描能力更强,但耗时较高; 关闭后,扫描速度更快 | 只针对 APK 或 AAR 文件 的扫描生效 |
¶ 2.2 二进制扫描
- 使用场景:扫描文件中的二进制(如可执行文件、jar 等制品),不对文件中的代码进行扫描
- 检测模式说明:专门针对二进制文件进行检测,识别二进制文件中的开源组件和存在的漏洞
- 扫描配置:
配置项 | 建议 | 作用 | 作用范围 |
---|---|---|---|
安卓制品深度扫描 | 开启后会 严重增加检测耗时 ,这个一般根据实际情况选择是否开启 | 开启后,针对安卓制品的扫描能力更强,但耗时较高; 关闭后,扫描速度更快 | 只针对 APK 或 AAR 文件 的扫描生效 |
¶ 2.3 依赖配置扫描
- 使用场景:扫描文件中的源代码(必须使用了包管理)
- 检测模式说明:通过分析项目源代码中的依赖配置文件,识别项目中使用的开源组件和存在的漏洞。它能够检测项目所依赖的开源库及其版本,并提供与这些库相关的漏洞信息。通过分析 Maven 的 pom.xml、Python 的 requirements.txt 等依赖配置文件,依赖配置扫描 能够帮助您识别项目中使用的开源组件和潜在的安全风险。
- 扫描配置:
配置项 | 建议 | 作用 | 作用范围 |
---|---|---|---|
是否编译 | 建议默认开启,用户无需手动指定 | 开启后,对 maven 项目的扫描会使用模拟构建的方式,检测结果更准确;关闭后,扫描速度更快 | 只针对 Maven (Java)包管理器的 源代码检测 有效 |
漏洞真实影响评估 | 建议默认开启,用户无需手动指定 | 开启后,扫描时会深入分析漏洞是否会被真实触发; 关闭后, 将不分析此 | 只针对 Java 和 JavaScript 的 源代码检测 生效 |
同源性分析 | 开启后会增加检测耗时,这个一般根据实际情况选择是否开启 | 开启后,扫描时会同步溯源代码片段,识别项目中是否存在相似代码和抄袭代码的问题;关闭后, 将不分析此项 | 只针对有 源代码 的检测生效 |
¶ 2.4 容器镜像扫描
- 使用场景:扫描对象是容器镜像
- 检测模式说明:专门针对容器镜像进行检测,识别镜像中的开源组件和存在的漏洞
- 扫描配置:无需配置
¶ 2.5 固件扫描
- 使用场景:扫描对象是固件
- 检测模式说明:专门针对固件文件进行检测,识别固件中的开源组件和存在的漏洞
- 扫描配置:无需配置
¶ 三、常见问题
¶ 问:一般推荐使用哪些检测模式?
答:如果对检测速度没有特别要求,一般建议直接使用 标准扫描;如果只对源代码扫描,比如 Java、Go、Python 这些使用包管理的项目,使用 依赖配置扫描 模式速度较快(注意⚠️:如果是 C/C++,可能没有使用包管理器,那么应该使用 标准扫描);如果只对二进制,比如 Jar 包、可执行文件等,可以使用 二进制扫描
¶ 问:传结构复杂的制品或者压缩包能够解析到那些?
答:对于制品或压缩包,我们会首先对文件进行解包:常见的压缩格式都能够解压,如 zip、tar、tar.gz、jar、war、rar 、aar 、apk、ipa 等;除了 依赖配置扫描 只会解压一层,其他的检测模式我们会一直解压,直到解压不了为止。