SBOMGenerador Amazon Inspector - Amazon Inspector

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

SBOMGenerador Amazon Inspector

Una lista de materiales de software (SBOM) es una lista estructurada formalmente de los componentes, bibliotecas y módulos necesarios para crear una pieza de software. El Amazon Inspector SBOM Generator (Sbomgen) es una herramienta que produce archivos, imágenes de contenedores, directorios, sistemas locales y compilados Go y Rust binarios. SBOM Sbomgenbusca archivos que contengan información sobre los paquetes instalados. Cuando Sbomgen encuentra un archivo relevante, extrae los nombres de los paquetes, las versiones y otros metadatos. Sbomgenluego transforma los metadatos del paquete en un CycloneDXSBOM. Puede usarlo Sbomgen para generarlo CycloneDX SBOM como un archivo o en STDOUT y enviarlo SBOMs a Amazon Inspector para la detección de vulnerabilidades. También puede utilizarlo Sbomgen como parte de la integración CI/CD, que escanea automáticamente las imágenes de los contenedores como parte de su proceso de implementación.

Tipos de paquetes compatibles

Sbomgenrecopila el inventario de los siguientes tipos de paquetes:

  • Alpine APK

  • Debian/Ubuntu DPKG

  • Red Hat RPM

  • C#

  • Go

  • Java

  • Node.js

  • PHP

  • Python

  • Ruby

  • Rust

Comprobaciones de configuración de imágenes de contenedores compatibles

Sbomgenpuede escanear archivos Dockerfiles independientes y crear un historial a partir de las imágenes existentes para detectar problemas de seguridad. Para obtener más información, consulte Comprobaciones de Dockerfile de Amazon Inspector.

Instalación de Sbomgen

Sbomgen solo está disponible para los sistemas operativos Linux.

Debe tenerlo Docker instalado si quiere analizar las imágenes Sbomgen almacenadas en caché local. Dockerno es necesario para analizar las imágenes exportadas como .tar archivos o las imágenes alojadas en registros de contenedores remotos.

Amazon Inspector recomienda que se ejecute Sbomgen desde un sistema con, como mínimo, las siguientes especificaciones de hardware:

  • Núcleo cuádruple CPU

  • 8 GB RAM

Para instalar Sbomgen
  1. Descargue el archivo Sbomgen zip más reciente de la versión correcta URL para su arquitectura:

    LinuxAMD64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip

    LinuxARM64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/arm64/inspector-sbomgen.zip

    Como alternativa, puede descargar versiones anteriores del archivo zip de Amazon Inspector SBOM Generator.

  2. Descomprima el archivo descargado con el siguiente comando:

    unzip inspector-sbomgen.zip

  3. Compruebe si hay los siguientes archivos en el directorio extraído:

    • inspector-sbomgen— Esta es la herramienta que ejecutará para generarSBOMs.

    • README.txt: la documentación para usar Sbomgen.

    • LICENSE.txt: archivo que contiene la licencia de software de Sbomgen.

    • licenses: carpeta que contiene información de licencia de los paquetes de terceros utilizados por Sbomgen.

    • checksums.txt— Este archivo proporciona los hashes de la Sbomgen herramienta.

    • sbom.json— Esto es CycloneDX SBOM para la Sbomgen herramienta.

    • WhatsNew.txt— Este archivo contiene un registro de cambios resumido, para que pueda ver rápidamente los principales cambios y mejoras entre Sbomgen versiones.

  4. (Opcional) Compruebe la autenticidad e integridad de la herramienta mediante el siguiente comando:

    sha256sum < inspector-sbomgen

    1. Compare los resultados con el contenido del archivo checksums.txt.

  5. Otorgue permisos de ejecución a la herramienta mediante el siguiente comando:

    chmod +x inspector-sbomgen

  6. Con los siguientes comandos, verifique si Sbomgen se ha instalado correctamente:

    ./inspector-sbomgen --version

    Debería ver un resultado similar a este:

    Version: 1.X.X

Uso de Sbomgen

En esta sección se describen diferentes formas de utilizarlaSbomgen. Puedes obtener más información sobre cómo usarlo a Sbomgen través de los ejemplos integrados. Para ver estos ejemplos, ejecuta el list-examples comando:

./inspector-sbomgen list-examples

Genera una imagen SBOM para un contenedor y muestra el resultado

Se puede utilizar Sbomgen para generar imágenes SBOMs para contenedores y enviar el resultado a un archivo. Esta capacidad se puede activar mediante el container subcomando.

Comando de ejemplo:

En el siguiente fragmento, puede reemplazar imagen:etiqueta con el ID de tu imagen y output_path.json con la ruta a la salida que desea guardar.

# generate SBOM for container image ./inspector-sbomgen container --image image:tag -o output_path.json
nota

El tiempo y el rendimiento del escaneo dependen del tamaño de la imagen y del número de capas reducido. Las imágenes más pequeñas no solo mejoran Sbomgen el rendimiento, sino que también reducen la posible superficie de ataque. Las imágenes más pequeñas también mejoran los tiempos de creación, descarga y carga de las imágenes.

Cuando se usa Sbomgen con ScanSbom, el Amazon Inspector Scan API no procesará los paquetes SBOMs que contengan más de 2000 paquetes. En este escenario, el Amazon Inspector Scan API devuelve una respuesta de HTTP 400.

Si una imagen incluye archivos multimedia o directorios masivos, considere excluirlos del Sbomgen uso del --skip-files argumento.

Genere y SBOM a partir de directorios y archivos

Se puede utilizar Sbomgen para generar a SBOMs partir de directorios y archivos. Esta capacidad se puede activar mediante los archive subcomandos directory o. Amazon Inspector recomienda utilizar esta función cuando desee generar una SBOM desde una carpeta de proyecto, como un repositorio git descargado.

Ejemplo de comando 1

El siguiente fragmento muestra un subcomando que genera un a SBOM partir de un archivo de directorio.

# generate SBOM from directory ./inspector-sbomgen directory --path /path/to/dir -o /tmp/sbom.json
Ejemplo de comando 2

El siguiente fragmento muestra un subcomando que genera un a SBOM partir de un archivo comprimido. Los únicos formatos de archivo admitidos son.zip, y.tar. .tar.gz

# generate SBOM from archive file (tar, tar.gz, and zip formats only) ./inspector-sbomgen archive --path testData.zip -o /tmp/sbom.json

Genere un archivo SBOM a partir de Go nuestros binarios Rust compilados

Se puede utilizar Sbomgen para generar a SBOMs partir de Rust binarios Go y compilados. Puede habilitar esta capacidad a través del subcomando: binary

./inspector-sbomgen binary --path /path/to/your/binary

Envíe una SBOM a Amazon Inspector para identificar la vulnerabilidad

Además de generar unaSBOM, puedes enviar una SBOM para escanearla con un solo comando desde Amazon Inspector ScanAPI. Amazon Inspector evalúa el contenido de las cuatro vulnerabilidades antes SBOM de devolver los resultados a. Sbomgen En función de sus datos, los resultados se pueden mostrar o escribir en un archivo.

nota

Debe tener un activo Cuenta de AWS con permisos de lectura InspectorScan:ScanSbom para poder utilizar esta función.

Para habilitar esta capacidad, debe pasar el --scan-sbom argumento a SbomgenCLI. También puede pasar el --scan-sbom argumento a cualquiera de los siguientes Sbomgen subcomandos:archive,,binary, containerdirectory,localhost.

nota

El Amazon Inspector Scan API no SBOMs procesa más de 2000 paquetes. En este escenario, el Amazon Inspector Scan API devuelve una respuesta de HTTP 400.

Puede autenticarse en Amazon Inspector mediante un AWS perfil o un IAM rol con los siguientes AWS CLI argumentos:

--aws-profile profile --aws-region region --aws-iam-role-arn role_arn

También puede autenticarse en Amazon Inspector proporcionando las siguientes variables de entorno aSbomgen.

AWS_ACCESS_KEY_ID=$access_key \ AWS_SECRET_ACCESS_KEY=$secret_key \ AWS_DEFAULT_REGION=$region \ ./inspector-sbomgen arguments

Para especificar el formato de respuesta, utilice el --scan-sbom-output-format cyclonedx argumento o --scan-sbom-output-format inspector argumento.

Ejemplo de comando 1

Este comando crea una versión SBOM para la última Alpine Linux versión, analiza y escribe los resultados de la vulnerabilidad en un JSON archivo. SBOM

./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ --scan-sbom-output-format cyclonedx \ --outfile /tmp/inspector_scan.json
Ejemplo de comando 2

Este comando se autentica en Amazon Inspector mediante AWS credenciales como variables de entorno.

AWS_ACCESS_KEY_ID=$your_access_key \ AWS_SECRET_ACCESS_KEY=$your_secret_key \ AWS_DEFAULT_REGION=$your_region \ ./inspector-sbomgen container --image alpine:latest \ -o /tmp/sbom.json \ --scan-sbom \ --scan-sbom-output-format inspector
Ejemplo de comando 3

Este comando se autentica en Amazon Inspector mediante el ARN para un IAM rol.

./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ --outfile /tmp/inspector_scan.json --aws-iam-role-arn arn:aws:iam::123456789012:role/your_role

Personalice los escaneos para excluir archivos específicos

Al analizar y procesar una imagen de contenedor, Sbomgen escanea el tamaño de todos los archivos de esa imagen de contenedor. Puede personalizar los escaneos para excluir archivos específicos o destinarlos a paquetes específicos.

Para reducir el consumo de disco, RAM el tiempo de ejecución transcurrido y omitir los archivos que superen el umbral indicado, utilice el --max-file-size argumento junto con el container subcomando:

./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000

Desactive el indicador de progreso

Sbomgenmuestra un indicador de progreso giratorio que puede provocar un exceso de caracteres de barra en los entornos de CI/CD.

INFO[2024-02-01 14:58:46]coreV1.go:53: analyzing artifact | \ / | \ / INFO[2024-02-01 14:58:46]coreV1.go:62: executing post-processors

Puede desactivar el indicador de progreso utilizando el argumento: --disable-progress-bar

./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --disable-progress-bar

Autenticarse en registros privados con Sbomgen

Al proporcionar sus credenciales de autenticación de registro privado, puede generarlas SBOMs a partir de contenedores alojados en registros privados. Puede proporcionar estas credenciales mediante los siguientes métodos:

Autenticar con credenciales almacenadas en caché (recomendado)

Para este método, se autentica en el registro del contenedor. Por ejemplo, si lo usaDocker, puede autenticarse en el registro de su contenedor mediante el comando de registro:Docker. docker login

  1. Autenticate en tu registro de contenedores. Por ejemplo, si lo usaDocker, puede autenticarse en su registro mediante el Docker login comando:

  2. Después de autenticarte en el registro de tu contenedor, úsala Sbomgen en una imagen de contenedor que esté en el registro. Para usar el ejemplo siguiente, sustituya imagen:etiqueta con el nombre de la imagen que se va a escanear:

./inspector-sbomgen container --image image:tag

Autenticarse mediante el método interactivo

Para este método, proporciona tu nombre de usuario como parámetro y te Sbomgen pedirá que introduzcas la contraseña de forma segura cuando sea necesario.

Para usar el ejemplo siguiente, sustituya imagen:etiqueta con el nombre de la imagen que desea escanear y tu_nombre de usuario con un nombre de usuario que tenga acceso a la imagen:

./inspector-sbomgen container --image image:tag --username your_username

Autenticate mediante el método no interactivo

Para este método, guarde la contraseña o el token de registro en un .txt archivo.

nota

El usuario actual solo debería poder leer este archivo. El archivo también debe contener la contraseña o el token en una sola línea.

Para usar el ejemplo siguiente, sustituya tu_nombre de usuario con tu nombre de usuario, password.txt con el .txt archivo que incluye la contraseña o el token en una sola línea, y imagen:etiqueta con el nombre de la imagen que se va a escanear:

INSPECTOR_SBOMGEN_USERNAME=your_username \ INSPECTOR_SBOMGEN_PASSWORD=`cat password.txt` \ ./inspector-sbomgen container --image image:tag

Ejemplos de resultados de Sbomgen

El siguiente es un ejemplo de una SBOM imagen de contenedor inventariada utilizando. Sbomgen

{ "bomFormat": "CycloneDX", "specVersion": "1.5", "serialNumber": "urn:uuid:828875ef-8c32-4777-b688-0af96f3cf619", "version": 1, "metadata": { "timestamp": "2023-11-17T21:36:38Z", "tools": [ { "vendor": "Amazon Web Services, Inc. (AWS)", "name": "Amazon Inspector SBOM Generator", "version": "1.0.0", "hashes": [ { "alg": "SHA-256", "content": "10ab669cfc99774786301a745165b5957c92ed9562d19972fbf344d4393b5eb1" } ] } ], "component": { "bom-ref": "comp-1", "type": "container", "name": "fedora:latest", "properties": [ { "name": "amazon:inspector:sbom_generator:image_id", "value": "sha256:c81c8ae4dda7dedc0711daefe4076d33a88a69a28c398688090c1141eff17e50" }, { "name": "amazon:inspector:sbom_generator:layer_diff_id", "value": "sha256:eddd0d48c295dc168d0710f70364581bd84b1dda6bb386c4a4de0b61de2f2119" } ] } }, "components": [ { "bom-ref": "comp-2", "type": "library", "name": "dnf", "version": "4.18.0", "purl": "pkg:pypi/dnf@4.18.0", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib/python3.12/site-packages/dnf-4.18.0.dist-info/METADATA" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-dnf@4.18.0-2.fc39?arch=noarch&distro=39&epoch=0" } ] }, { "bom-ref": "comp-3", "type": "library", "name": "libcomps", "version": "0.1.20", "purl": "pkg:pypi/libcomps@0.1.20", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib64/python3.12/site-packages/libcomps-0.1.20-py3.12.egg-info/PKG-INFO" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-libcomps@0.1.20-1.fc39?arch=x86_64&distro=39&epoch=0" } ] } ] }