

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Inspector SBOM 生成器全面生态系统集合
<a name="sbom-generator-ecosystem-collection"></a>

 Amazon Inspector SBOM 生成器是一款用于创建软件物料清单（SBOM）并对操作系统和编程语言支持的程序包执行漏洞扫描的工具。它支持对核心操作系统以外的各种生态系统进行扫描，确保对基础设施组件进行可靠而详细的分析。通过生成 SBOM，您可以了解现代技术堆栈的构成，识别生态系统组件中的漏洞，并了解第三方软件。

## 支持的生态系统
<a name="w2aac37c27b5"></a>

 生态系统集合将 SBOM 生成扩展到通过操作系统程序包管理器安装的程序包之外。此操作通过收集以替代方法（例如手动安装）部署的应用程序来完成。Amazon Inspector SBOM 生成器支持扫描以下生态系统：


| 生态系统 | 应用程序 | 
| --- | --- | 
|   7-Zip   |   7-Zip存档器（版本 21.07 及更高版本）   | 
|  Amazon Q Developer  |  Amazon Q Developer CLI Amazon Q VS Code extension Amazon Q JetBrains plugin  | 
|  Anthropic  |  Claude Code CLI  | 
|  Apache  |  Apache Cassandra Apache httpd Apache Struts Apache tomcat  | 
|  Atlassian  |  Jira Core Confluence Jira Software Jira Service Management  | 
|  Conda  |  Miniconda 环境 Anaconda 环境 Miniforge 环境 Mambaforge 环境  | 
| Curl |  Curl Libcurl  | 
|  Docker binaries  |  docker dockerd containerd runc  | 
| Elasticsearch | Elasticsearch | 
|  Generic AI/ML Models  |  `.gguf` – GGUF `.safetensors` – Safetensors `.onnx` – ONNX `.pt` – PyTorch `.pth` – PyTorch `.h5` – Keras / HDF5  | 
|  GitHub  |  GitHub Copilot CLI GitHub Copilot VS Code extension GitHub Copilot JetBrains plugin  | 
|  Google  |  Chrome  | 
|  HuggingFace  |  HuggingFace CLI Models Cache  | 
|  Java  |  JDK JRE Amazon Corretto  | 
|   Jenkins   |   Jenkins（版本 2.400.\* 及更高版本）   | 
|  Kiro  |  Kiro CLI  | 
|  MariaDB 和 MySQL  |  MariaDB Server（10.6\+、11.x、12.x） Oracle MySQL Server Server(8.0、8.4、9.4\+)  | 
|  Microsoft applications  |  PowerShell NuGet CLI Visual Studio Code Microsoft Edge SharePoint Server Microsoft Defender Exchange Server Visual Studio .NET Core Runtime .NET Framework ASP.NET Core Runtime Microsoft Teams Outlook for Windows Microsoft Office Microsoft 365  | 
|  Microsoft SQL Server  |  Microsoft SQL Server  | 
|  MongoDB  |  MongoDB Server(7.0\+、8.0\+)  | 
|  Nginx  |  Nginx  | 
|  Node  |  Node  | 
|  Node.JS  |  node  | 
|  Ollama  |  Ollama Ollama Model Collector  | 
|  OpenSSH  |  OpenSSH（版本 9 和 10）  | 
|  OpenSSL  |  OpenSSL  | 
|  Oracle  |  Oracle Database Server  | 
|   PHP   |   PHP（版本 8.1 及更高版本）   | 
|   Redis   |   Redis（版本 7.2 及更高版本）   | 
|  WordPress  |  core plugin theme  | 

## 7-Zip 生态系统集合
<a name="w2aac37c27b7"></a>

**受支持的应用程序**
+  7 Zip 存档器（版本 21.07 或更高版本） 

**主要功能**
+  检查7-Zip二进制文件以提取嵌入式版本信息。

**注意**  
 具体而言，它会从二进制文件中搜索产品版本值。

**支持的平台 — Windows**
+  `C:/Program Files/7-Zip/7z.exe` 
+  `C:/Program Files/7-Zip/7za.exe` 
+  `C:/Program Files/7-Zip/7zz.exe` 
+  `C:/Program Files/7-Zip/7zr.exe` 
+  `C:/Program Files (x86)/7-Zip/7z.exe` 
+  `C:/Program Files (x86)/7-Zip/7za.exe` 
+  `C:/Program Files (x86)/7-Zip/7zz.exe` 
+  `C:/Program Files (x86)/7-Zip/7zr.exe` 

**PURL 示例**  
 以下是 7-Zip 的示例程序包 URL。

```
pkg:generic/7zip/7zip@25.01
```

## Amazon Q Developer 生态系统集合
<a name="w2aac37c27b9"></a>

**受支持的应用程序**
+  Amazon Q Developer CLI 
+  Amazon Q VS Code extension 
+  Amazon Q JetBrains plugin 

**主要功能**
+  检查 `q` CLI 二进制文件中嵌入的`AmazonQ-For-CLI`标识字符串，并从 AWS 工具用户代理元数据中提取版本。
+  对于 IDE 扩展，请解析`package.json`（VS CodeJetBrains）和`META-INF/plugin.xml`（）以提取版本。

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux 和 macOS**
+  `~/.local/bin/q` 
+  `/usr/local/bin/q` 
+  `~/.vscode/extensions/amazonwebservices.amazon-q-vscode-*/` 
+  `<IDE>/plugins/amazon-q/META-INF/plugin.xml` 

**Windows**
+  `%APPDATA%\npm\q.cmd` 
+  `%USERPROFILE%\.vscode\extensions\amazonwebservices.amazon-q-vscode-*\` 
+  `%APPDATA%\JetBrains\<IDE>\plugins\amazon-q\` 

**PURL 示例**  
 以下是 Amazon Q Developer 的示例程序包 URL。

```
Sample PURL: pkg:generic/amazon/amazon-q@1.19.7?distro=linux
```

## Apache 生态系统集合
<a name="w2aac37c27c11"></a>

 本节提供有关Apache Cassandra、Apache httpdApache Struts、和Apache tomcat应用程序的详细信息。

### Apache Cassandra
<a name="w2aac37c27c11b5"></a>

**受支持的应用程序**
+  Apache Cassandra 

**主要功能**
+  发现`apache-cassandra-<specific.version>.jar`文件并将其解压以从文件内的`Implementation-Version`条目中提取版本字符串。`META-INF/MANIFEST.MF`

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux**
+  `/usr/share/cassandra/lib/` 
+  `/opt/cassandra/lib/` 

**macOS**
+  `/opt/homebrew/Cellar/cassandra/` 
+  `/usr/local/Cellar/cassandra/` 

**Windows**
+  `/Program Files/cassandra/lib/` 
+  `/Program Files/apache-cassandra/lib/` 
+  `/Program Files (x86)/cassandra/lib/` 
+  `/Program Files (x86)/apache-cassandra/lib/` 

**示例 `apache-cassandra-<specific.version>.jar/META-INF/MANIFEST.MF` 文件**  
 以下是 `apache-cassandra-<specific.version>.jar/META-INF/MANIFEST.MF` 文件中内容的示例。

```
//truncated

Manifest-Version: 1.0
Implementation-Title: Cassandra
Implementation-Version: 4.1.3
Implementation-Vendor: Apache

//truncated
```

**PURL 示例**  
 以下是 `Apache Cassandra` 应用程序的示例程序包 URL。

```
Sample PURL: pkg:generic/apache/cassandra@4.1.3
```

### Apache httpd
<a name="w2aac37c27c11b7"></a>

**受支持的应用程序**
+  Apache httpd 

**注意**  
 漏洞评估仅适用于 Apache httpd 版本 2.0 及更高版本。

**主要功能**
+  解析 `/include/ap_release.h` 文件以提取安装宏，其中包含主要标识符字符串、次要标识符字符串和补丁标识符字符串。

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Unix**
+  `/usr/local/apache2/include/` 

**Windows**
+  `/Apache24/include/` 
+  `/Program Files/Apache24/include/` 
+  `/Program Files (x86)/Apache24/include/` 

**示例 `ap_release.h` 文件**  
 以下是 `ap_release.h` 文件中内容的示例。

```
//truncated

#define AP_SERVER_BASEVENDOR "Apache Software Foundation"
#define AP_SERVER_BASEPROJECT "Apache HTTP Server"
#define AP_SERVER_BASEPRODUCT "Apache"

#define AP_SERVER_MAJORVERSION_NUMBER 2
#define AP_SERVER_MINORVERSION_NUMBER 4
#define AP_SERVER_PATCHLEVEL_NUMBER   1
#define AP_SERVER_DEVBUILD_BOOLEAN    0

//truncated
```

**PURL 示例**  
 以下是 `Apache httpd` 应用程序的示例程序包 URL。

```
Sample PURL: pkg:generic/apache/httpd@2.4.1
```

### Apache Struts
<a name="w2aac37c27c11b9"></a>

**受支持的应用程序**
+  Apache Struts 

**主要功能**
+  发现`struts2-core-<specific.version>.jar`文件（通常部署在应用程序服务器上的 Web 应用程序`WEB-INF/lib/`目录中），然后将其解压以从文件内的`Implementation-Version`条目中提取版本字符串。Java `META-INF/MANIFEST.MF`

**支持的平台**  
 Amazon Inspector SBOM 生成器会扫描跨平台的常见Java应用程序服务器路径中的安装情况：

**Linux**
+  `/opt/tomcat/` 
+  `/usr/share/tomcat/` 
+  `/var/lib/tomcat/` 
+  `/usr/local/tomcat/` 
+  `/opt/wildfly/` 
+  `/opt/jboss/` 
+  `/opt/jetty/` 

**Windows**
+  `/Program Files/Apache Software Foundation/` 
+  `/Program Files (x86)/Apache Software Foundation/` 

**示例 `struts2-core-<specific.version>.jar/META-INF/MANIFEST.MF` 文件**  
 以下是 `struts2-core-<specific.version>.jar/META-INF/MANIFEST.MF` 文件中内容的示例。

```
//truncated

Manifest-Version: 1.0
Implementation-Title: Struts 2 Core
Implementation-Version: 6.4.0
Implementation-Vendor: Apache Software Foundation

//truncated
```

**PURL 示例**  
 以下是 `Apache Struts` 应用程序的示例程序包 URL。

```
Sample PURL: pkg:generic/apache/struts@6.4.0
```

### Apache tomcat
<a name="w2aac37c27c11c11"></a>

**受支持的应用程序**
+  Apache tomcat 

**注意**  
 漏洞评估仅适用于 Apache tomcat 版本 9.0 及更高版本。

**主要功能**
+  解压缩 `catalina.jar` 文件以提取 `META-INF/MANIFEST.MF` 文件中的安装宏，该文件包含版本字符串。

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux**
+  `/opt/tomcat/lib/` 
+  `/usr/share/tomcat/lib` 
+  `/var/lib/tomcat/lib/` 

**macOS**
+  `/Library/Tomcat/lib/` 
+  `/usr/local/tomcat/lib` 

**Windows**
+  `/Program Files/Apache Software Foundation` 
+  `/Program Files (x86)/Apache Software Foundation/` 

**示例 `catalina.jar/META-INF/MANIFEST.MF` 文件**  
 以下是 `catalina.jar/META-INF/MANIFEST.MF` 文件中内容的示例。

```
//truncated

Implementation-Title: Apache Tomcat
Implementation-Vendor: Apache Software Foundation
Implementation-Version: 10.1.31

//truncated
```

**PURL 示例**  
 以下是 `Apache tomcat` 应用程序的示例程序包 URL。

```
Sample PURL: pkg:generic/apache/tomcat@10.1.31
```

## Atlassian 生态系统集合
<a name="w2aac37c27c13"></a>

 本节提供有关Atlassian服务器产品和应用程序的详细信息。

### Atlassian Server Products
<a name="w2aac37c27c13b5"></a>

**受支持的应用程序**
+ Jira Core
+ Confluence

**主要功能**
+  Jira Core— 解析 Maven POM 属性`atlassian-jira-webapp`以提取版本信息。
+  Confluence— 解析 Maven POM 属性`confluence-webapp`以提取版本信息。

**支持的平台**  
 Amazon Inspector SBOM 生成器会扫描常见安装路径中的安装：

**Linux**
+  `/opt/atlassian/jira/atlassian-jira/META-INF/maven/com.atlassian.jira/atlassian-jira-webapp/pom.properties` 
+  `/opt/atlassian/confluence/confluence/META-INF/maven/com.atlassian.confluence/confluence-webapp/pom.properties` 

**PURL 示例**  
 以下是Atlassian服务器 URLs 产品的示例软件包。

```
// Jira Core
pkg:generic/atlassian/jira-core@10.0.1?distro=linux

// Confluence
pkg:generic/atlassian/confluence@9.2.7?distro=linux
```

### Atlassian Applications
<a name="w2aac37c27c13b7"></a>

**受支持的应用程序**
+ Jira Software
+ Jira Service Management

**主要功能**
+  Jira Software— 通过 `jira-software-application` JAR 进行检测并从 Maven POM 属性中提取版本。
+  Jira Service Management— 通过 `jira-servicedesk-application` JAR 进行检测并从 Maven POM 属性中提取版本。

**支持的平台**  
 Amazon Inspector SBOM 生成器会扫描常见安装路径中的安装：

**Linux**
+  `/opt/atlassian/jira/atlassian-jira/WEB-INF/application-installation/jira-software-application/jira-software-application-*.jar` 
+  `/opt/atlassian/jira/atlassian-jira/WEB-INF/application-installation/jira-servicedesk-application/jira-servicedesk-application-*.jar` 

**PURL 示例**  
 以下是Atlassian应用程序 URLs 的示例软件包。

```
// Jira Software
pkg:generic/atlassian/jira-software@10.3.9?distro=linux

// Jira Service Management
pkg:generic/atlassian/jira-service-management@10.3.9?distro=linux
```

## Claude Code 生态系统集合
<a name="w2aac37c27c15"></a>

**受支持的应用程序**
+  Claude Code CLI（Anthropic） 

**主要功能**
+  Claude Code作为 npm 软件包 (`@anthropic-ai/claude-code`) 分发。扫描器发现 `claude` CLI 二进制文件，并使用标准 npm `<prefix>/bin/<binary>` 进行布局对其进行解析`package.json`。`<prefix>/lib/node_modules/@anthropic-ai/claude-code/package.json`
+  版本是从的`Version:`字段中读取的`package.json`。

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux 和 macOS**
+  `/usr/bin/claude` 
+  `/usr/local/bin/claude` 
+  `~/.local/bin/claude` 
+  `~/.npm-global/bin/claude` 

**Windows**
+  `%APPDATA%\npm\claude.cmd` 

**PURL 示例**  
 以下是 Claude Code 的示例程序包 URL。

```
Sample PURL: pkg:generic/anthropic/claude-code@1.0.5?distro=linux
```

## Conda 生态系统集合
<a name="w2aac37c27c17"></a>

**受支持的应用程序**
+  Miniconda 环境 
+  Anaconda 环境 
+  Miniforge 环境 
+  Mambaforge 环境 

**主要功能**
+  解析每个 conda 环境mamba中conda和在每个 conda 环境中写入的`conda-meta/*.json`包记录。
+  根据 [CEP](https://github.com/conda/ceps/blob/main/cep-0026.md) 26 提取软件包名称、版本、构建字符串、子目录（目标平台）和存档类型（`conda`或`tar.bz2`）。
+  生成 P conda ackage URLs。
+  过滤掉macOS资源分支文件 (`._*`) 并跳过名称或版本为空的记录。

**支持的平台**  
 对于本地主机扫描，Amazon Inspector SBOM 生成器会扫描以下安装程序默认路径和每个用户路径的 conda-meta 目录。对于容器、目录和档案扫描，Amazon Inspector SBOM 生成器可检测树中任何位置的`conda-meta/*.json`记录。

**Linux**
+  `/opt/conda` 
+  `/opt/miniconda3`, `/opt/anaconda3`, `/opt/miniforge3` 
+  `/root/miniconda3`, `/root/anaconda3`, `/root/miniforge3` 
+  `/home/<user>/miniconda3`, `/home/<user>/anaconda3`, `/home/<user>/miniforge3` 
+  `~/.conda/envs/<env>` 

**macOS**
+  `/opt/miniconda3`, `/opt/anaconda3` 
+  `/opt/homebrew/anaconda3`, `/usr/local/anaconda3` 
+  `/opt/homebrew/Caskroom/miniconda/base`, `/opt/homebrew/Caskroom/miniforge/base` 
+  `/Users/<user>/miniconda3`, `/Users/<user>/anaconda3`, `/Users/<user>/miniforge3` 
+  `~/.conda/envs/<env>` 

**Windows**
+  `C:\ProgramData\miniconda3`, `C:\ProgramData\anaconda3`, `C:\ProgramData\miniforge3` 
+  `C:\Users\<user>\miniconda3`, `C:\Users\<user>\anaconda3`, `C:\Users\<user>\miniforge3` 
+  `C:\Users\<user>\.conda\envs\<env>` 

**`conda-meta`记录路径示例**  
 以下是conda包裹记录的示例路径。

```
/opt/miniforge3/conda-meta/numpy-1.24.0-py311h64a7726_0.json
```

**PURL 示例**  
 以下是特定于平台 URLs 的软件包和conda软件包的示例包。`noarch` conda

```
pkg:conda/numpy@1.24.0?build=py311h64a7726_0&subdir=linux-64&type=conda
pkg:conda/flask@3.0.0?build=pyhd8ed1ab_0&subdir=noarch&type=conda
```

## Curl 生态系统集合
<a name="w2aac37c27c19"></a>

 本节提供有关Curl和Libcurl应用程序的详细信息。

### Curl
<a name="w2aac37c27c19b5"></a>

**受支持的应用程序**
+  Curl 

**支持的平台**
+  Unix – Linux 和 macOS 
  +  /usr/local/bin/curl 

**主要特点 — Curl**
+  检查curl二进制文件以提取嵌入式版本信息。

**注意**  
 具体而言，它会在二进制可执行文件`.rodata`部分（Linux 上的 ELF 二进制文件）、部分（Windows 上的 PE 二进制文件）或 \_\_cstring `.rdata` 部分（macOS 上的 MacHO 二进制文件）中搜索版本字符串。

**Curl version string**  
 以下是嵌入在Curl二进制文件中的版本字符串的示例：

```
curl/8.14.1
```

 从字符串中提取版本`8.14.1`以标识`Curl`版本。

**示例 PURL（卷曲）**  
 以下是一个 `Curl` 版本文件的示例程序包 URL。

```
Sample PURL: pkg:generic/curl/curl@8.14.1
```

### Libcurl
<a name="w2aac37c27c19b7"></a>

**受支持的应用程序**
+  Libcurl 

**支持的平台**
+  Unix – Linux 和 macOS 
  +  /usr/local/bin/curl/curlver.h 

**主要特点 — Libcurl**
+  检查curlver.h以提取嵌入式版本信息Libcurl。

**注意**  
 具体而言，它从定义的`LIBCURL_VERSION_MAJOR``LIBCURL_VERSION_MINOR`、和`LIBCURL_VERSION_PATCH`变量中提取版本。

**Libcurl version string**  
 以下是`curlver.h`文件中版本变量的示例：

```
#define LIBCURL_VERSION_MAJOR 8
    #define LIBCURL_VERSION_MINOR 14
    #define LIBCURL_VERSION_PATCH 1
```

 从这些行中提取版本`8.14.1`以标识`Libcurl`版本。

**示例 PURL (Libcurl)**  
 以下是一个 `Libcurl` 版本文件的示例程序包 URL。

```
Sample PURL: pkg:generic/curl/libcurl@8.14.1
```

## Docker binaries 生态系统集合
<a name="w2aac37c27c21"></a>

**受支持的应用程序**
+  docker (docker version 20.10.18\+) 
+  dockerd (docker version 20.10.18\+) 
+  containerd (docker version 20.10.18\+) 
+  runc (docker version 29.0.0\+) 

**注意**  
 漏洞评估仅适用于 25.0.0\+ Docker 版本。可能会收集早期版本的Docker二进制文件，但不再支持它们。Docker

**主要功能**
+  检查Docker静态二进制文件以提取版本信息。

**支持的平台**  
 SBOM 生成器会按照 Docker 的静态二进制文件安装文档中推荐的安装路径扫描二进制文件：

**Linux**
+  `/usr/bin/` 

**macOS**
+  `/usr/local/bin/` 

**Windows**
+  `C:/Program Files/Docker/` 

**PURL 示例**  
 以下是 Docker 的示例程序包 URL。

```
pkg:generic/docker/docker@29.4.0
pkg:generic/docker/dockerd@29.4.0
pkg:generic/docker/containerd@2.2.2
pkg:generic/docker/runc@1.3.5
```

## Elasticsearch 生态系统集合
<a name="w2aac37c27c23"></a>

**受支持的应用程序**
+  Elasticsearch 

**注意**  
 漏洞评估仅适用于 7.17.0 Elasticsearch 版。

**主要功能**
+  **Version**— 解压缩`elasticsearch-<specific.version>.jar`文件以提取包含Elasticsearch版本字符串`META-INF/MANIFEST.MF`的文件中的安装宏。

**支持的平台**
+  **Linux**— `/etc/elasticsearch/lib` `/opt/elasticsearch/lib/`、和 `/usr/share/elasticsearch/lib/` 
+  **macOS** – `/usr/local/var/lib/elasticsearch/lib/` 
+  **Windows**— `/elasticsearch/` `/Program Files (x86)/Elastic/elasticsearch/lib/`、和 `/Program Files/Elastic/elasticsearch/lib/` 

**示例 `elasticsearch-<specific.version>.jar/META-INF/MANIFEST.MF` 文件**  
 以下是一个`elasticsearch-<specific.version>.jar/META-INF/MANIFEST.MF`文件示例。

```
//truncated

Manifest-Version: 1.0
Module-Origin: git@github.com:elastic/elasticsearch.git
X-Compile-Elasticsearch-Version: 8.19.0-SNAPSHOT
X-Compile-Lucene-Version: 9.12.1
X-Compile-Elasticsearch-Snapshot: true

//truncated
```

**PURL 示例**  
 以下是`elasticsearch-<specific.version>.jar/META-INF/MANIFEST.MF`文件的软件包 URL 示例。

```
pkg:generic/elastic/elasticsearch@8.19.0-SNAPSHOT
```

## Generic AI/ML Models 生态系统集合
<a name="w2aac37c27c25"></a>

**受支持的应用程序**
+  跨常用框架和工具本地存储的 AI/ML 模型文件 

**主要功能**
+  根据文件扩展名检测 AI/ML 模型文件：`.gguf``.safetensors`、`.onnx`、`.pt`、`.pth`、和`.h5`。
+  扫描常用 AI/ML 框架和本地推理工具使用的常用模型目录。
+  检测到的文件以组件类型的`machine-learning-model`组件形式生成。

**注意**  
 对于此收集器检测到的组件，不会生成 PURL。

**支持的平台**  
 Amazon Inspector SBOM 生成器会扫描跨平台通用路径中的模型文件：

**Linux 和 macOS**
+  `~/.keras/models` 
+  `~/.cache/lm-studio/models` 
+  `~/.local/share/nomic.ai/GPT4All` 
+  `~/.jan/models` 
+  `~/.cache/llama.cpp` 
+  `~/.tabby/models` 
+  `~/.local/share/localai/models` 
+  `~/text-generation-webui/models` 
+  `~/ComfyUI/models` 
+  `~/stable-diffusion-webui/models` 

## GitHub Copilot 生态系统集合
<a name="w2aac37c27c27"></a>

**受支持的应用程序**
+  GitHub Copilot CLI 
+  GitHub Copilot VS Code extension 
+  GitHub Copilot JetBrains plugin 

**主要功能**
+  Copilot跨三个安装表面进行检测：npm-distributed CLI（通过 npm 布局从二进制路径`package.json`解析）、VS Code 扩展（`github.copilot-<version>`在目录中`package.json`解析；不包括`github.copilot-chat-*`单独的扩展） JetBrains 和插件（`META-INF/plugin.xml`元素的解析）。`<version>`

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux 和 macOS**
+  `/usr/bin/github-copilot-cli` 
+  `/usr/local/bin/github-copilot-cli` 
+  `~/.local/bin/github-copilot-cli` 
+  `~/.vscode/extensions/github.copilot-*/` 
+  `<IDE>/plugins/github-copilot/META-INF/plugin.xml` 

**Windows**
+  `%APPDATA%\npm\github-copilot-cli.cmd` 
+  `%USERPROFILE%\.vscode\extensions\github.copilot-*\` 
+  `%APPDATA%\JetBrains\<IDE>\plugins\github-copilot\` 

**PURL 示例**  
 以下是 GitHub Copilot 的示例程序包 URL。

```
Sample PURL: pkg:generic/github/copilot@0.1.36?distro=linux
```

## Google 生态系统集合
<a name="w2aac37c27c29"></a>

**受支持的应用程序**
+  Google Chrome 
+  Puppeteer（支持 puppeteer 库；不包括 puppeteer-core） 

**注意**  
 Puppeteer 支持 puppeteer 库。不包括 Puppeteer core。

**支持的构件**  
 Amazon Inspector 从以下途径收集 Google Chrome 信息：
+  `chrome/VERSION` 文件（构建源） 
+  `chrome.exe` 文件（Windows Chrome 安装） 
+  `puppeteer` 文件（安装） 

 对于每一个支持的构件，Sbomgen 会解析并收集 chrome 文件或 puppeteer 文件。对于 puppeteer 安装，会根据 puppeteer 版本收集相应的 Chromium 版本。有关更多信息，请参阅 Puppeteer 网站上的[支持的浏览器](https://pptr.dev/supported-browsers)。

 当 `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD` 环境变量被设置为 `true` 时，评估将被跳过，并且 `skip_chromium_download=true` 限定符将被添加到 Puppeteer 程序包 URL 中。

**示例 `chrome/VERSION` 版本文件**  
 以下是 `chrome/VERSION` 版本文件的示例。

```
MAJOR=130
MINOR=0
BUILD=6723
PATCH=58
```

**PURL 示例**  
 以下是一个 `chrome/VERSION` 版本文件的示例程序包 URL。

```
Sample PURL: pkg:generic/google/chrome@131.0.6778.87
```

**示例 `puppeteer` 版本文件**  
 以下是 `puppeteer` 版本文件的示例。

```
{
"name": "puppeteer",
"version": "23.9.0",
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
"keywords": [
  "puppeteer",
  "chrome",
  "headless",
  "automation"
]
}
```

**PURL 示例**  
 以下是一个 `puppeteer` 版本文件的示例程序包 URL。

```
Sample PURL: pkg:generic/google/puppeteer@23.9.0
```

**PURL 示例**  
 以下是 `puppeteer` 版本文件的带有跳过限定符的示例程序包 URL。

```
pkg:generic/google/puppeteer@22.15.0?distro=linux&skip_chromium_download=true
```

## HuggingFace 生态系统集合
<a name="w2aac37c27c31"></a>

**受支持的应用程序**
+  HuggingFace`hf`CLI 

**主要功能**
+  提取由安装的本地缓存 AI/ML 模型 HuggingFace 
+  生成 Pack HuggingFace age URLs 
+  目前不支持`hf download --local-dir`使用下载的模型 

**路径示例**  
 以下是缓存HuggingFace模型路径的示例。

```
/home/ec2-user/.cache/huggingface/hub/models--MiniMaxAI--MiniMax-M2.5/snapshots/<hash>
```

**PURL 示例**  
 以下是HuggingFace模型的软件包网址示例。组件类型为`machine-learning-model`。

```
pkg:huggingface/MiniMaxAI/MiniMax-M2.5@<hash>
```

## Java 生态系统集合
<a name="w2aac37c27c33"></a>

**受支持的应用程序**
+  Oracle JDK 
+  Oracle JRE 
+  Amazon Corretto 

**主要功能**
+  提取 Java 安装的字符串。
+  识别包含 Java 运行时的目录路径。
+  将供应商标识为 Oracle JDK、Oracle JRE 和 Amazon Corretto。

 Amazon Inspector SBOM 生成器会扫描以下安装路径和平台上的 Java 安装：
+  macOS: `/Library/Java/JavaVirtualMachines` 
+  Linux 32-bit: `/usr/lib/jvm` 
+  Linux 64-bit: `/usr/lib64/jvm` 
+  Linux (generic): `/usr/java and /opt/java` 

**示例 Java 版本信息**  
 以下是 Oracle Java 发行版的示例。

```
// Amazon Corretto
IMPLEMENTOR="Amazon.com Inc."
IMPLEMENTOR_VERSION="Corretto-17.0.11.9.1"
JAVA_RUNTIME_VERSION="17.0.11+9-LTS"
JAVA_VERSION="17.0.11"
JAVA_VERSION_DATE="2024-04-16"
LIBC="default"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.incubator.foreign jdk.incubator.vector jdk.internal.le jdk.internal.opt jdk.internal.vm.ci jdk.internal.vm.compiler jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jpackage jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.rmi jdk.net jdk.nio.mapmode jdk.random jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported jdk.unsupported.desktop jdk.xml.dom jdk.zipfs"
OS_ARCH="x86_64"
OS_NAME="Darwin"
SOURCE=".:git:7917f11551e8+"

// JDK
IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION="19"
JAVA_VERSION_DATE="2022-09-20"
LIBC="default"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.jvmstat jdk.attach jdk.charsets jdk.zipfs jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.incubator.concurrent jdk.incubator.vector jdk.internal.le jdk.internal.opt jdk.internal.vm.ci jdk.internal.vm.compiler jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jpackage jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.rmi jdk.net jdk.nio.mapmode jdk.random jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported jdk.unsupported.desktop jdk.xml.dom"
OS_ARCH="x86_64"
OS_NAME="Darwin"
SOURCE=".:git:53b4a11304b0 open:git:967a28c3d85f"
```

**PURL 示例**  
 以下是 Oracle Java 发行版的示例程序包 URL。

```
Sample PURL:
# Amazon Corretto
pkg:generic/amazon/amazon-corretto@21.0.3 
# Oracle JDK
pkg:generic/oracle/jdk@11.0.16
# Oracle JRE
pkg:generic/oracle/jre@20
```

## Jenkins 生态系统集合
<a name="w2aac37c27c35"></a>

**受支持的应用程序**
+  Jenkins 核心 

**注意**  
 漏洞评估适用于 2.400.\* 及更高Jenkins版本。

**主要功能**
+  通过读取包含版本字符串`jenkins.war`的文件从`META-INF/MANIFEST.M`文件中提取Jenkins版本信息。

 Amazon Inspector SBOM 生成器在跨平台的常见安装路径中查找 Jenkins 的安装：

**Linux**
+  `/usr/share/jenkins/jenkins.war` 
+  /usr/share/java/jenkins.war 

**macOS**
+  `/opt/homebrew/opt/jenkins-lts/libexec/jenkins.war` 

**Windows**
+  `/Program Files/Jenkins/Jenkins.war` 
+  `/Program Files (x86)/Jenkins/Jenkins.war` 

**示例文件**  
 以下是不同版本`jenkins.war/META-INF/MANIFEST.MF`的文件示例。

```
Manifest-Version: 1.0
Created-By: Maven WAR Plugin 3.4.0
Build-Jdk-Spec: 21
Implementation-Title: Jenkins war
Main-Class: executable.Main
Implementation-Version: 2.516.2
Jenkins-Version: 2.516.2
```

```
Manifest-Version: 1.0
Jenkins-Version: 2.414.1
Implementation-Title: Jenkins
Implementation-Version: 2.414.1
Built-By: kohsuke
Created-By: Apache Maven 3.8.6
```

**样本 PURLs**  
 以下是 Jenkins LTS 版本 URLs 的 2.516.2 版和自动化服务器版本的 2.414 版的软件包。Jenkins

```
LTS: pkg:generic/jenkins/jenkins-core-lts@2.516.2.1
Regular: pkg:generic/jenkins/jenkins-core@2.414
```

## Kiro CLI 生态系统集合
<a name="w2aac37c27c37"></a>

**受支持的应用程序**
+  Kiro CLI（亚马逊 AI 编码助手） 

**主要功能**
+  检查`kiro-cli`二进制文件（或`kiro-cli.appimage`）以提取嵌入式版本信息。
+  在二进制可执行文件`.rodata`部分（开启的 ELF 二进制文件Linux）或`__cstring`部分（开启的 Mach-O 二进制文件）中查找版本字符串。macOS版本是从 AWS 工具用户代理字符串模式中提取`Version<X.Y.Z>/`的。

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux**
+  `~/.local/bin/kiro-cli` 
+  `/usr/bin/kiro-cli` 
+  `~/Applications/kiro-cli.appimage` 

**macOS**
+  `/Applications/Kiro CLI.app/Contents/MacOS/kiro-cli` 
+  `~/.local/bin/kiro-cli` 

**PURL 示例**  
 以下是 Kiro CLI 的示例程序包 URL。

```
Sample PURL: pkg:generic/amazon/kiro@1.29.5?distro=linux
```

## MariaDB和MySQL生态系统集合
<a name="w2aac37c27c39"></a>

### MariaDB
<a name="w2aac37c27c39b3"></a>

**受支持的应用程序**
+  MariaDB Server（10.6\+、11.x、12.x） 

**主要功能**
+  使用数据库特定的模式从数据库服务器二进制文件和头文件中提取版本信息。
+  标识包含数据库服务器安装的目录路径。
+  使用数据驱动的文件类型检测自动区分MariaDB和MySQL安装。

 SBOM 生成器在跨平台的常见MariaDB安装路径中查找安装：

**Linux**
+  `/usr/bin/mariadbd` 
+  `/usr/sbin/mariadbd` 
+  `/usr/local/bin/mariadbd` 

**macOS**
+  `C:/Program Files (x86)/MariaDB/include/mysql/mariadb_version.h (MariaDB)` 
+  `C:/Program Files/MariaDB/include/mysql/mariadb_version.h (MariaDB)` 

**Windows**
+  `C:/Program Files (x86)/MariaDB/include/mysql/mariadb_version.h (MariaDB)` 
+  `C:/Program Files/MariaDB/include/mysql/mariadb_version.h (MariaDB)` 

**PURL 示例**  
以下是MariaDB服务器的软件包 URL 示例。

```
# MariaDB Server

pkg:generic/mysql/mariadb-server@10.11.8
```

### MySQL 生态系统集合
<a name="w2aac37c27c39b5"></a>

**受支持的应用程序**
+  Oracle MySQL Server Server(8.0、8.4、9.4\+) 

**主要功能**
+  使用数据库特定的模式从数据库服务器二进制文件和头文件中提取版本信息。
+  标识包含数据库服务器安装的目录路径。
+  使用数据驱动的文件类型检测自动区分MySQL和MariaDB安装。

 SBOM 生成器在跨平台的常见MySQL安装路径中查找安装：

**Linux**
+  `/usr/local/bin/mysqld` 
+  `/usr/bin/mysqld` 
+  `/usr/sbin/mysqld` 

**macOS**
+  `/usr/local/mysql/include/mysql_version.h (MySQL)` 

**Windows**
+  `C:/Program Files/MySQL/MySQL Server/include/mysql_version.h (MySQL)` 
+  `C:/Program Files (x86)/MySQL/MySQL Server/include/mysql_version.h (MySQL)` 

**PURL 示例**  
以下是MySQL服务器的软件包 URL 示例。

```
# Oracle MySQL Server

pkg:generic/mysql/mysql-server@8.0.43
```

## Microsoft applications 生态系统集合
<a name="microsoft-app-ecosystem-collection"></a>

 以下微软应用程序由 Amazon Inspector SBOM 生成器清点。由于 Microsoft CVRF API 的限制，只有在 2021 年（或更高版本）发布的这些应用程序的版本才支持在 InspectorScan API 中进行检测。调查结果将映射到 Microsoft KBs 或 CVEs （如果适用）。

**支持的微软应用程序（2021 年以上）**
+ PowerShell
+ NuGet CLI
+ Visual Studio Code
+ Microsoft Edge
+ SharePoint Server
+ Microsoft Defender
+ Exchange Server
+ Visual Studio
+ .NET Core Runtime
+ .NET Framework
+ ASP.NET Core Runtime
+ Microsoft Teams
+ Outlook for Windows
+ Microsoft Office
+ Microsoft 365

**主要功能**
+  PowerShell— 检查`pwsh.exe`文件以提取嵌入式版本信息。
+  NuGet CLI— 检查`nuget.exe`文件以提取嵌入式版本信息。
+  Visual Studio Code— 检查`Code.exe`文件以提取嵌入式版本信息。
+  Microsoft Edge— 检查`msedge.exe`文件以提取嵌入式版本信息。
+  SharePoint Server— 检查`Microsoft.SharePoint.dll`文件以提取嵌入式版本信息。
+  Microsoft Defender— 检查`MsMpEng.exe`文件以提取嵌入式版本信息。
+  Exchange Server— 检查`Exsetup.exe`文件以提取嵌入式版本信息。
+  Visual Studio— 解析`state.json`文件以从`catalogInfo.productDisplayVersion`字段中检索版本字符串。
+ .NET Core Runtime— 在安装路径中搜索`Microsoft.NETCore.App.deps.json`文件并从以下文件路径模式中提取版本字符串。

  ```
  Microsoft.NETCore.App/<VERSION>/Microsoft.NETCore.App.deps.json
  ```
+ .NET Framework— 解析 Windows 注册表并读取文件元数据以检测已安装的.NET 框架版本。扫描器会检查以下注册表项和值以及文件。
  + **Registry Key**（<VERSION\_SUB\_KEY>代表.NET 框架版本v2.0.50727，例如v3.5、或v4\\Full）

    ```
    HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\<VERSION_SUB_KEY>
    ```

    ```
    HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\<VERSION_SUB_KEY>
    ```
  + **Registry Value**
    + Install— 表示是否安装了.NET 框架版本。
    + Version— 已安装.NET 框架版本（版本 4.0 或更低版本）
    + Release-映射到已安装的.NET Framework 版本（版本 4.5 或更高版本）的REG\_DWORD值
  + **DLL Files**

    扫描仪从`mscorlib.dll`和中提取文件版本`System.dll`。如果这些文件存在，它们将作为嵌套文件组件添加到 SBOM 中。对于.NET Framework 版本 4.5 或更高版本，将文件中最大的文件版本报告为版本。
+ ASP.NET Core Runtime— 在安装路径中搜索`Microsoft.AspNetCore.App.deps.json`文件并从以下文件路径模式中提取版本字符串。

  ```
  Microsoft.AspNetCore.App/<VERSION>/Microsoft.AspNetCore.App.deps.json
  ```
+ Outlook for Windows— 解析 Windows 注册表，并从以下注册表项中提取版本。

  ```
  HKLM\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages\Microsoft.OutlookForWindows_<VERSION>_<ARCH>__8wekyb3d8bbwe
  ```
+ Microsoft Teams— 解析 Windows 注册表，并从以下注册表项中提取版本。

  ```
  HKLM\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\PackageRepository\Packages\MSTeams_<VERSION>_<ARCH>__8wekyb3d8bbwee
  ```
+ Microsoft Office 365 / Microsoft 365— 解析 Windows 注册表，并从以下注册表项和值中提取版本。
  + 注册表密钥

    ```
    HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration
    ```
  + 注册表值
    + VersionToReport— 微软 Office 版本
    + ProductReleaseIds— 产品清单 IDs。这用于识别已安装的 Office 产品。有关产品的更多信息 IDs，请参见[https://learn.microsoft.com/en-us/troubleshoot/microsoft-365-apps/office-suite-issues/product-ids-supported-office-deployment-click-to-run](https://learn.microsoft.com/en-us/troubleshoot/microsoft-365-apps/office-suite-issues/product-ids-supported-office-deployment-click-to-run)Microsoft网站。
+ Microsoft Office Suite— 通过检查以下可执行文件来收集已安装的每个 Office 应用程序：
  + `EXCEL.EXE` – Microsoft Excel
  + `WINWORD.EXE` – Microsoft Word
  + `POWERPNT.EXE` – Microsoft PowerPoint
  + `OUTLOOK.EXE` – Microsoft Outlook

   Windows 注册表中的版本号用作每个已安装的 Office 应用程序的权威版本号。

**示例 `state.json` 文件**  
 以下是用于收集已安装Visual Studio版本`state.json`的文件示例。

```
{
    "icon": {
        "mimeType": "image/svg+xml",
        "fileName": "product.svg"
    },
    "updateDate": "2025-11-06T05:05:35.6517471Z",
    "installDate": "2025-11-06T05:05:35.6527436Z",
    "enginePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
    "installationName": "VisualStudio/17.14.19+36623.8",
    "catalogInfo": {
        "id": "VisualStudio/17.14.19+36623.8",
        "buildBranch": "d17.14",
        "buildVersion": "17.14.36623.8",
        "localBuild": "build-lab",
        "manifestName": "VisualStudio",
        "manifestType": "installer",
        "productDisplayVersion": "17.14.19",
// truncated
```

示例 PURL

 以下是每个软件包的 URL 示例Microsoft Applications。

```
// PowerShell
Sample PURL: pkg:generic/microsoft/powershell@7.5.3

// NuGet CLI
Sample PURL: pkg:generic/microsoft/nuget@6.14.0

// Visual Studio Code
Sample PURL: pkg:generic/microsoft/visualstudiocode@1.104.2

// Microsoft Edge
Sample PURL: pkg:generic/microsoft/edge@140.0.3485.94

// SharePoint Server
Sample PURL: pkg:generic/microsoft/sharepoint@23.38.219.1

// Microsoft Defender
Sample PURL: pkg:generic/microsoft/defender@4.18.23110.3

// Exchange Server
Sample PURL: pkg:generic/microsoft/exchangeserver@15.2.2562.17

// Visual Studio
Sample PURL: pkg:generic/microsoft/visualstudio@17.14.19

// .NET Core Runtime
Sample PURL: pkg:generic/microsoft/dotnet@8.0.18

// .NET Framework
Sample PURL: pkg:generic/microsoft/dotnet-framework-v4.8.1@4.8.9320.0

// ASP.NET Core Runtime
Sample PURL: pkg:generic/microsoft/aspdotnet@8.0.18

// Microsoft Teams
Sample PURL: pkg:generic/microsoft/teams@25241.203.3947.4411

// Outlook for Windows
Sample PURL: pkg:generic/microsoft/outlookforwindows@1.2025.916.400                    

// Microsoft 365 / Office 365
Sample PURL: pkg:generic/microsoft/office@16.0.19127.20264?product_ids=O365HomePremRetail

// Microsoft Word
Sample PURL: pkg:generic/microsoft/word@16.0.19127.20264

// Microsoft Excel
Sample PURL: pkg:generic/microsoft/excel@16.0.19127.20264

// Microsoft PowerPoint
Sample PURL: pkg:generic/microsoft/powerpoint@16.0.19127.20264

// Microsoft Outlook
Sample PURL: pkg:generic/microsoft/outlook@16.0.19127.20264
```

## Microsoft SQL Server 生态系统集合
<a name="w2aac37c27c43"></a>

**受支持的应用程序**
+  Microsoft SQL Server 

**主要功能**
+  从Windows注册表中读取以发现已安装的Microsoft SQL Server实例并提取版本信息。
+  通过两步过程发现实例：读取`InstalledInstances`值，解析子密钥中的每个实例路径，然后从每个实例的`Instance Names\SQL`子密钥中读取设置信息。`Setup`
+  收集实例名称、基本版本、补丁级别、版本、Service Pack（如果存在）和注册表项路径。
+  组件版本和 PURL 使用补丁级别（完整内部版本号）。

**支持的平台 — Windows**  
 Amazon Inspector SBOM 生成器读取以下Windows注册表项以发现已安装的实例：

```
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server
```

 扫描器读取枚举实例的`InstalledInstances`值，解析子项中的每个实例路径，然后从每个实例的`Instance Names\SQL`子项中读取设置信息。`Setup`

**PURL 示例**  
 以下是实例的软件包 URL 示Microsoft SQL Server例。

```
pkg:generic/microsoft/sqlserver@16.0.1000.6
```

## MongoDB 生态系统集合
<a name="w2aac37c27c45"></a>

**受支持的应用程序**
+  MongoDB Server(7.0\+、8.0\+) 

**主要功能**
+  检查 mongod 二进制文件以提取嵌入的版本信息。

**注意**  
 mongod二进制文件的大小可以超过 200 MB。要进行扫描MongoDB，必须将 Amazon Inspector SBOM 生成器文件大小限制配置为允许文件大小超过 200 MB。

 Amazon Inspector SBOM 生成器在跨平台的常见安装路径中查找安装：MongoDB

**Linux**
+  `/usr/bin/mongod` 
+  `/usr/local/bin/mongod` 

**macOS**
+  `/usr/local/bin/mongod` 
+  `/opt/homebrew/bin/mongod` 

**Windows**
+  `C:\Program Files\MongoDB\Server\bin\mongod.exe` 

**PURL 示例**  
 以下是 MongoDB Server 的示例程序包 URL。

```
pkg:generic/mongodb/mongodb-server@8.2.4?platform=linux
```

## Nginx 生态系统集合
<a name="w2aac37c27c47"></a>

**受支持的应用程序**
+  Nginx 

**支持的平台**  
 以下是支持的平台。

**Linux**
+  /usr/sbin/nginx 
+  /usr/local/nginx 
+  /usr/local/etc/nginx 
+  /usr/local/nginx/nginx 
+  /usr/local/nginx/sbin/nginx 
+  /etc/nginx/nginx 

**Windows**
+  C:\\nginx\\nginx.exe 
+  C:\\nginx-x.y.z\\nginx.exe（x.y.z 为任意版本） 

**macOS**
+  /usr/local/etc/nginx/nginx 

**主要功能**  
 该集合可检查二进制文件，以提取嵌入式版本信息。它会在二进制可执行文件 `.rodata` 部分（针对 Linux 上的 ELF 二进制文件）、`.rdata` 部分（针对 Windows 上的 PE 二进制文件）或 `__ctring` 部分（针对 MachO 二进制文件）中搜索版本字符串。

**示例版本字符串**  
 以下是嵌入在 Nginx 二进制文件中的版本字符串的示例。

```
nginx version: nginx/1.27.5
```

 版本 `1.27.5` 被提取以识别 Nginx 版本。

**PURL 示例**  
 以下是 Nginx 的示例程序包 URL。

```
Sample PURL: pkg:generic/nginx/nginx@1.27.5
```

## Node.JS 运行时集合
<a name="w2aac37c27c49"></a>

**受支持的应用程序**
+  Node.JS 的节点运行时二进制文件 

**支持的平台**  
 以下是支持的平台。（\* 为任意版本） 

**Linux**
+  /usr/local/bin/node 
+  /usr/bin/node 
+  /nodejs/bin/node 
+  \~/.nvm/versions/node/\*/bin/node 
+  \~/.local/share/fnm/node-versions/\*/installation/bin/node 
+  \~/.asdf/installs/nodejs/\*/bin/node 
+  \~/.local/share/mise/installs/node/\*/bin/node 
+  \~/.volta/tools/image/node/\*/bin/node 

**Windows**
+  C:\\Program Files\\ n odejs\\ n ode.exe 
+  C:\\Program Files (x86)\\ n odejs\\ n ode.exe 
+  \~\\AppData\\ Roaming\\ fnm\\ n 节点版本\\ \*\\ 安装\\ n ode.exe 

**macOS**
+  /opt/homebrew/Cellar/node/\*/bin/node 

**主要功能**  
 该集合可检查二进制文件，以提取嵌入式版本信息。它会在二进制可执行文件 `.rodata` 部分（针对 Linux 上的 ELF 二进制文件）、`.rdata` 部分（针对 Windows 上的 PE 二进制文件）或 `__ctring` 部分（针对 MachO 二进制文件）中搜索版本字符串。

**示例版本字符串**  
 以下是嵌入在Node.JS运行时二进制文件中的版本字符串的示例。

```
node.js/v24.11.1
```

 提取`24.11.1`版本以标识Node.JS运行时版本。

**PURL 示例**  
 以下是 Node.JS 的示例程序包 URL。

```
Sample PURL: pkg:generic/nodejs/node@24.11.1
```

## Ollama 生态系统集合
<a name="w2aac37c27c51"></a>

**受支持的应用程序**
+  Ollama（本地 LLM 运行时） 

**主要功能**
+  检查`ollama`二进制文件（或`ollama.exe`开启Windows）以提取嵌入式版本信息。
+  Ollama是一个Go二进制文件，其版本是在编译时通过注入的`-ldflags -X`，它以波浪号前缀的字符串形式出现在二进制文件的数据部分中（例如，）。`~0.21.0`在Homebrew构建的macOS二进制文件中，版本也可以出现在Go模块构建信息中，如。`ollama\tv<version>`

**支持的平台**  
 Amazon Inspector SBOM 生成器会跨平台扫描常见安装路径中的安装：

**Linux**
+  `/usr/local/bin/ollama` 
+  `/usr/bin/ollama` 
+  `~/.local/bin/ollama` 

**macOS**
+  `/Applications/Ollama.app/Contents/MacOS/ollama` 
+  `/usr/local/bin/ollama` 
+  `/opt/homebrew/bin/ollama` 

**Windows**
+  `%LOCALAPPDATA%\Programs\Ollama\ollama.exe` 
+  `%ProgramFiles%\Ollama\ollama.exe` 

**示例版本字符串**  
 以下是嵌入在 Ollama 二进制文件中的版本字符串的示例。

```
~0.21.0
```

 版本 `0.21.0` 被提取以识别 Ollama 版本。

**PURL 示例**  
 以下是 Ollama 的示例程序包 URL。

```
Sample PURL: pkg:generic/ollama/ollama@0.21.0?distro=linux
```

## Ollama Model Collector 生态系统集合
<a name="w2aac37c27c53"></a>

**受支持的应用程序**
+  Ollama CLI 

**主要功能**
+  提取由安装的本地缓存 AI/ML 模型 Ollama 
+  生成 Pack Ollama age URLs 

**路径示例**  
 以下是缓存Ollama模型路径的示例。

```
/usr/share/ollama/.ollama/models/manifests/registry.ollama.ai/library/gemma4/latest
```

**PURL 示例**  
 以下是Ollama模型的软件包网址示例。组件类型为`machine-learning-model`。

```
pkg:ollama/gemma4@<hash>
```

## OpenSSH 生态系统集合
<a name="w2aac37c27c55"></a>

**受支持的应用程序**
+  OpenSSH（版本 9） 
+  OpenSSH（版本 10） 

**支持的平台 Linux/macOS**
+  `/usr/sbin/sshd` 
+  `/usr/local/sbin/sshd` 

**支持的平台 Windows**
+  `C:/Windows/System32/OpenSSH/sshd.exe` 
+  `C:/Program Files/OpenSSH/sshd.exe` 
+  `C:/Program Files (x86)/OpenSSH/sshd.exe` 
+  `C:/OpenSSH/sshd.exe` 

**主要功能**
+  检查 `sshd` 二进制文件以提取嵌入的版本信息。
+  查找二进制可执行文件 `.rodata` 部分（针对 Linux 上的 ELF 二进制文件）、`__cstring` 部分（针对 MacOs 上的 Mach-O 二进制文件）或 `.rdata` 部分（针对 Windows 上的 PE 二进制文件）中的版本字符串。

**示例版本字符串**  
 以下是嵌入在 OpenSSH 二进制文件中的版本字符串的示例。

```
OpenSSH_9.9p2
```

 版本 `9.9p2` 被提取以识别 OpenSSH 版本。

**PURL 示例**  
 以下是 OpenSSH 的示例程序包 URL。

```
Sample PURL: pkg:generic/openssh/openssh@9.9p2
```

## OpenSSL 生态系统集合
<a name="w2aac37c27c57"></a>

**受支持的应用程序**  
 对 OpenSSL 库和开发程序包的支持仅限于使用官方 OpenSSL 为 3.0.0 及以上版本构建的软件。该软件还必须遵循语义版本控制。不支持自定义或分支的 OpenSSL 版本以及低于 3.0.0 的版本。

 Amazon Inspector SBOM 生成器为每个已安装的 OpenSSL 实例提取关键程序包信息。

**主要功能**
+  从 OpenSSL 标头文件中提取基本 SEMVER 版本字符串 
+  识别包含 OpenSSL 安装的目录路径 

 Amazon Inspector SBOM 生成器通过扫描各平台上的常见安装路径中的 `opensslv.h` 文件来查找 OpenSSL 安装。

**Linux/Unix 的示例安装路径**  
 以下是 Linux/Unix 的示例安装路径。

```
/usr/local/include/openssl/opensslv.h
/usr/local/ssl/include/openssl/opensslv.h
/usr/local/openssl/include/openssl/opensslv.h
/usr/local/opt/openssl/include/openssl/opensslv.h
/usr/include/openssl/opensslv.h
```

 Amazon Inspector SBOM 生成器通过解析 `opensslv.h` 文件并查找版本定义来提取版本信息。

```
# define OPENSSL_VERSION_MAJOR  3
# define OPENSSL_VERSION_MINOR  4
# define OPENSSL_VERSION_PATCH  0
```

**PURL 示例**  
 以下是 OpenSSL 版本的示例程序包 URL。

```
Sample PURL: pkg:generic/openssl/openssl@3.4.0
```

## Oracle 数据库服务器集合
<a name="w2aac37c27c59"></a>

**受支持的应用程序**
+  Oracle Database 

**支持的平台 Linux**
+  `/opt/oracle` 
+  `/u01/app/oracle` 

**注意**  
 漏洞评估仅适用于 Oracle 数据库服务器版本 19 及更高版本。

**主要功能**
+  检查 Oracle 二进制文件以提取嵌入的版本信息。
+  在二进制可执行文件 `.rodata` 部分（针对 Linux 上的 ELF 二进制文件）中查找版本字符串。
+  版本信息遵循包含 RDBMS 版本字符串的特定格式。

**示例版本字符串**  
 以下是嵌入在 Oracle Database 二进制文件中的版本字符串的示例：

```
RDBMS_23.7.0.25.01DBRU_LINUX.X64_240304
```

 版本 `23.7.0.25.01` 被提取以识别 Oracle Database 版本。

**PURL 示例**  
 以下是 Oracle Database 的示例程序包 URL。

```
Sample PURL: pkg:generic/oracle/database@23.7.0.25.01
```

## PHP 生态系统集合
<a name="w2aac37c27c61"></a>

**受支持的应用程序**
+  PHP（版本 8.1 及更高版本） 

**主要功能**
+  使用嵌入式版本字符串从PHP二进制可执行文件中提取版本信息。
+  标识包含PHP二进制文件的目录路径。
+  自动检测标准PHP二进制文件和版本化安装，例如`php8.1``php8.2`、和。`php8.3`

 Amazon Inspector SBOM 生成器在跨平台的常见安装路径中查找安装：PHP

**Linux**
+  `usr/bin/php8.1 through /usr/bin/php8.9` 
+  `/usr/sbin/php8.1 through /usr/sbin/php8.9` 
+  `/usr/local/bin/php, /usr/bin/php, /usr/sbin/php` 
+  `/usr/local/bin/php8.1 through /usr/local/bin/php8.9`（版本化二进制文件） 

**macOS**
+  `/opt/homebrew/bin/php` 
+  `/usr/bin/php` 
+  `/usr/local/bin/php` 

**Windows**
+  `C:/php/php.exe` 
+  `C:/php8.1/php.exe through C:/php8.9/php.exe`（版本化目录） 

**PHP版本提取示例**  
 Amazon Inspector SBOM 生成器使用以下模式搜索嵌入式版本字符串，从而从PHP二进制文件中提取版本信息。

```
X-Powered-By: PHP/8.4.12
```

 `8.4.12`是从此模式中提取的，用于标识PHP版本。

**PURL 示例**  
 以下是PHP模式的软件包 URL 示例。

```
pkg:generic/php/php@8.4.12
```

## Redis 生态系统集合
<a name="w2aac37c27c63"></a>

**受支持的应用程序**
+  Redis（版本 7.2 及更高版本） 

**主要功能**
+  使用嵌入式版本字符串从Redis`redis-server`二进制可执行文件中提取版本信息。
+  在二进制可执行文件`.rodata`部分（开启的 ELF 二进制文件Linux）或`__cstring`部分（开启的 Mach-O 二进制文件）中搜索版本字符串。macOS

 Amazon Inspector SBOM 生成器在跨平台的常见安装路径中查找安装：Redis

**Linux**
+  `/usr/bin/redis-server` 
+  `/usr/local/bin/redis-server` 

**macOS**
+  `/opt/homebrew/bin/redis-server` 
+  `/usr/local/bin/redis-server` 

**示例版本字符串**  
 以下是嵌入在Redis二进制文件中的版本字符串的示例。

```
redis-7.2.6
```

 版本 `7.2.6` 被提取以识别 Redis 版本。

**PURL 示例**  
 以下是 Redis 的示例程序包 URL。

```
pkg:generic/redis/redis@7.2.6
```

## WordPress 生态系统集合
<a name="w2aac37c27c65"></a>

**支持的组件**
+  WordPress 核心 
+  WordPress 插件 
+  WordPress 主题 

**主要功能**
+  WordPress 核心 – 解析 `/wp-includes/version.php` 文件以从 \$wp\_version 变量中提取版本值。
+  WordPress 插件 – 解析 `/wp-content/plugins/<WordPress Plugin>/readme.txt` 文件或 `/wp-content/plugins/<WordPress Plugin>/readme.md` 文件以提取 `Stable` 标签作为版本字符串。
+  WordPress 主题 – 解析 `/wp-content/themes/<WordPress Theme>/style.css` 文件以从版本元数据中提取版本。

**示例 `version.php` 文件**  
 以下是 WordPress 核心 `version.php` 文件的示例。

```
// truncated

/**
* The WordPress version string.
*
* Holds the current version number for WordPress core. Used to bust caches
* and to enable development mode for scripts when running from the /src directory.
*
* @global string $wp_version
*/
$wp_version = '6.5.5';

// truncated
```

**PURL 示例**  
 以下是 WordPress 核心的示例程序包 URL。

```
Sample PURL: pkg:generic/wordpress/core/wordpress@6.5.5
```

**示例 `readme.txt` 文件**  
 以下是 WordPress 插件 `readme.txt` 文件的示例。

```
=== Plugin Name ===
Contributors: (this should be a list of wordpress.org userid's)
Donate link: https://example.com/
Tags: tag1, tag2
Requires at least: 4.7
Tested up to: 5.4
Stable tag: 4.3
Requires PHP: 7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

// truncated
```

**PURL 示例**  
 以下是 WordPress 插件的示例程序包 URL。

```
Sample PURL: pkg:generic/wordpress/plugin/exclusive-addons-for-elementor@1.0.0
```

**示例 `style.css` 文件**  
 以下是 WordPress 主题 `style.css` 文件的示例。

```
/*
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Requires at least: 6.4
Tested up to: 6.5
Requires PHP: 7.0
Version: 1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/
```

**PURL 示例**  
 以下是 WordPress 主题的示例程序包 URL。

```
Sample PURL: pkg:generic/wordpress/theme/avada@1.0.0
```