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
-
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.
-
Descomprima el archivo descargado con el siguiente comando:
unzip inspector-sbomgen.zip
-
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.
-
-
(Opcional) Compruebe la autenticidad e integridad de la herramienta mediante el siguiente comando:
sha256sum < inspector-sbomgen
-
Compare los resultados con el contenido del archivo
checksums.txt
.
-
-
Otorgue permisos de ejecución a la herramienta mediante el siguiente comando:
chmod +x inspector-sbomgen
-
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
con el ID de tu imagen y imagen:etiqueta
con la ruta a la salida que desea guardar. output_path.json
# generate SBOM for container image ./inspector-sbomgen container
--image image:tag
-ooutput_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
, container
directory
,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-regionregion
--aws-iam-role-arnrole_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-regionyour_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
-
Autenticate en tu registro de contenedores. Por ejemplo, si lo usaDocker, puede autenticarse en su registro mediante el Docker
login
comando: -
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
con el nombre de la imagen que se va a escanear:imagen:etiqueta
./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
con el nombre de la imagen que desea escanear y imagen:etiqueta
con un nombre de usuario que tenga acceso a la imagen: tu_nombre de usuario
./inspector-sbomgen container --image
image:tag
--usernameyour_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
con tu nombre de usuario, tu_nombre de usuario
con el password.txt
.txt
archivo que incluye la contraseña o el token en una sola línea, y
con el nombre de la imagen que se va a escanear: imagen:etiqueta
INSPECTOR_SBOMGEN_USERNAME=
your_username
\ INSPECTOR_SBOMGEN_PASSWORD=`catpassword.txt
` \ ./inspector-sbomgen container --imageimage: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" } ] } ] }