检查包漏洞¶
警告
此功能为实验性功能,可能会有重大更改。有关更多信息,请参阅Conan 稳定性部分。
conan audit
命令(在 Conan 2.14.0 中引入)用于检查 Conan 包中的已知漏洞。
默认情况下,Conan 提供对 ConanCenter 提供商的访问,这是一个公共提供商,用于检查 ConanCenter 包中的漏洞,它使用 JFrog Advanced Security 扫描包。
请求令牌¶
要使用该命令,您首先需要在 https://audit.conan.io/register 注册免费服务。注册后,您将收到一封包含激活链接的电子邮件。点击此链接将带您到一个显示您的个人访问令牌的页面。
拥有令牌后,您可以使用它来验证 conancenter
提供商。
$ conan audit provider auth conancenter --token=<your_token>
注意
在命令行中使用 --token
可能会在 shell 历史记录中暴露您的令牌。为防止这种情况,请将其设置为以提供商名称大写命名的环境变量。例如,对于 conancenter,请使用:CONAN_AUDIT_PROVIDER_TOKEN_CONANCENTER=<token>
。
扫描包¶
验证成功后,您可以使用 conan audit scan
和 conan audit list
命令检查包中的漏洞。
conan audit scan
将检查给定包及其依赖项的漏洞。
conan audit list
将列出给定包的漏洞,而不检查其依赖项。
$ conan audit list openssl/1.1.1w
Requesting vulnerability info for: openssl/1.1.1w
******************
* openssl/1.1.1w *
******************
2 vulnerabilities found:
- CVE-2023-5678 (Severity: Medium, CVSS: 5.3)
Issue summary: Generating excessively long X9.42 DH keys or checking
excessively long X9.42 DH keys or parameters may be very slow. Impact summary:
Applications that use the functions DH_generate_key() to generate an X9.42 DH
key may exper...
url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=db925ae2e65d0d925adef429afc37f75bd1c2017
- CVE-2024-0727 (Severity: Medium, CVSS: 5.5)
Issue summary: Processing a maliciously formatted PKCS12 file may lead OpenSSL
to crash leading to a potential Denial of Service attack Impact summary:
Applications loading files in the PKCS12 format from untrusted sources might
terminate ...
url: https://github.com/alexcrichton/openssl-src-rs/commit/add20f73b6b42be7451af2e1044d4e0e778992b2
Total vulnerabilities found: 2
Summary:
- openssl/1.1.1w 2 vulnerabilities found
Vulnerability information provided by JFrog. Please check https://jfrog.com/advanced-security/ for more information.
You can send questions and report issues about the returned vulnerabilities to conan-research@jfrog.com.
要扫描包的整个依赖图,最简单的方法是使用 conan audit scan
命令并提供 conanfile 的路径,就像您使用其他 Conan 命令(例如 conan install
)一样。
例如,对于包含 conanfile.txt 的项目
[requires]
libpng/1.5.30
openssl/1.1.1w
您可以运行
$ conan audit scan .
请注意,所有这些命令都支持各种输出格式,例如 JSON 和 HTML。
$ conan audit scan . -f=html > report.html
这将生成一份 HTML 报告,其中包含在给定包及其依赖项中发现的漏洞,报告内容将类似于

扫描还具有阈值选项 --severity-level
,它允许您设置漏洞的最低严重级别。如果发现的任何漏洞超过阈值,该命令将返回非零退出代码。默认情况下,它设置为 9.0(临界),但您可以将其设置为较低的值,以便在报告中包含较低严重级别的漏洞。要禁用阈值,请将其设置为 100.0。
$ conan audit scan . --severity-level=5.0
...
The package openssl/1.1.1w has a CVSS score 5.3 and exceeded the threshold severity level 5.0.
添加私有提供商¶
您可以将自己的私有提供商添加到 conan audit
子命令使用的提供商列表中。目前,仅支持 JFrog Advanced Security 提供商。
注意
要使用这些私有提供商,您的 Artifactory 许可证应包含 JFrog Curation 的订阅。
要添加提供商,推荐的方法是首先在 Artifactory 中创建一个特定用户作为只读用户,该用户可以不授予任何额外权限。然后,在为该用户创建访问令牌后,您可以使用以下命令添加提供商
$ conan audit provider add myprovider --type=private --url=https://your.artifactory.url --token=<your_token>
注意
您可以使用环境变量向提供商进行身份验证,而不是在命令行中使用 --token
参数(这可能会在 shell 历史记录中暴露您的令牌)。将 CONAN_AUDIT_PROVIDER_TOKEN_<PROVIDER_NAME>
环境变量设置为令牌值,将 <PROVIDER_NAME> 替换为大写的提供商名称,并使用下划线 (_) 而不是连字符 (-)。
例如,对于 myprovider,请使用:CONAN_AUDIT_PROVIDER_TOKEN_MYPROVIDER=<token>
。
请注意 --type=private
参数,它指定提供商是私有提供商,并且提供的 URL 应该是 Artifactory 实例的基本 URL。
现在,您可以通过使用 -p
/ --provider
参数指定提供商名称,在 请求数量不受限制 的情况下,将该提供商与 conan audit scan
和 conan audit list
命令一起使用。
$ conan audit scan . -p=myprovider
另请参阅
有关所有
conan audit
子命令及其选项的详细参考文档,请查阅 conan audit 命令参考。在专门的博客文章中阅读更多内容。
请查阅 conan audit 命令参考 以了解其他安全相关功能。