avatar Artículo

Herramientas open-source para analizar tu entorno de AWS

Este artículo es la segunda parte de una serie sobre herramientas open-source, enfocándose en herramientas para inventario, análisis y evaluación de seguridad del entorno de AWS.

Open-Source tools and AWS

Explora cómo integrar herramientas open-source populares con servicios AWS para mejorar flujos de trabajo de desarrollo y gestión de infraestructura.

3 articles

In progress
Herramientas open-source para analizar tu entorno de AWS

1. Introducción

En este artículo, nos enfocaremos en el inventario, análisis y evaluación de seguridad del entorno de AWS.

Algunas herramientas open-source podrían aparecer en varias categorías (en este mismo artículo o entre los 3 artículos de herramientas open-source). Pensé que era mejor no mezclar información entre categorías cuando una herramienta podría ser parte de varias de ellas.

2. Inventario y análisis de tu entorno

Estas herramientas open-source son útiles para analizar todo tu entorno de AWS:

  • General
    • cloudmapper: Analiza tu entorno de AWS
    • prowler: Análisis rápido de tu entorno de AWS
  • IAM (específico)
    • AirIAM: Detecta recursos IAM no utilizados: usuarios, claves de acceso, roles, grupos, políticas y adjuntos de políticas

2.1. cloudmapper

CloudMapper te ayuda a analizar tu entorno de Amazon Web Services (AWS).

Basado en componentes de Python.

Por qué usarlo: Analiza tu entorno de AWS: revisa el estado de la cuenta, inventario de recursos (todos los recursos en todas las regiones y uso de regiones), recursos IAM (activos/inactivos), recursos públicos (ec2, elb, elbv2, rds, redshift, ecs, autoscaling, cloudfront y apigateway) y finalmente hallazgos de seguridad (algunos).

Lista de los comandos de esta herramienta: cloudmapper-commands

El atajo es:

  1. Ejecuta el comando collect para obtener tus recursos (puedes filtrar las regiones que desees usando --regions 'eu-west-1,eu-west-2'… us-east-1 siempre se agregará)

  2. Luego ejecuta el comando report (se generará una página html con toda la información)

cloudmapper-report-1 cloudmapper-report-2 cloudmapper-report-3

Un comando específico que me gusta es el iam_report porque te permite revisar permisos no utilizados en tus recursos IAM:

cloudmapper-iam_report

¿Es popular?: En GitHub: Watch 135; Fork 759; Stars 5.3K

¿Actualizado recientemente? No. El último commit fue el 25 de julio de 2022 (956 commits). Además, alguna funcionalidad original de esta herramienta ahora está obsoleta (generación de diagramas de red)

URL: https://github.com/duo-labs/cloudmapper

Hay un proyecto CDK para ejecutar en el servicio Fargate las capacidades de recopilación y auditoría de CloudMapper todas las noches, en múltiples cuentas, enviando cualquier hallazgo de auditoría a un canal de Slack y manteniendo una copia de los metadatos recopilados en un bucket de S3. Este es el diagrama de la solución https://github.com/duo-labs/cloudmapper/blob/main/auditor/README.md

2.2. prowler

Prowler es una herramienta de seguridad Open Source… y encontrarás toda esta información en la siguiente sección (esto es para inventario y análisis del entorno).

prowler tiene la funcionalidad de realizar una verificación rápida de inventario. Te dará en la consola información sobre el número de cada recurso que tienes, y en archivos json/csv generados encontrarás información sobre cuál es el recurso específico (región, servicio de aws, tipo de recurso, id de recurso y ARN)

Por qué usarlo: Realiza un análisis rápido de tu entorno de AWS (unos pocos segundos).

prowler-inventory-1 prowler-inventory-2

Y este es el informe del archivo CSV:

prowler-inventory-csv

¿Es popular?: En GitHub: Watch 122; Fork 1.1k; Stars 7.6K

¿Actualizado recientemente? Último commit ayer (en el momento en que escribo este post). Total de commits 2271

URL: https://github.com/prowler-cloud/prowler

2.3. AirIAM

AirIAM escanea patrones de uso de IAM existentes y proporciona un método simple para migrar configuraciones de IAM a un plan de Terraform de tamaño correcto. Identifica usuarios, roles, grupos, políticas y adjuntos de políticas no utilizados y los reemplaza con un código de Terraform de Mínimos Privilegios modelado para gestionar AWS IAM.

AirIAM fue creado para promover la gestión de IAM inmutable y controlada por versiones para reemplazar los métodos manuales y propensos a errores de hoy.

Por qué usarlo: Herramienta de escaneo de IAM para detectar recursos no utilizados (basado en las APIs de Amazon Access Advisor) y la creación de plantillas de terraform de tus recursos IAM.

airiam-image

Este es otro ejemplo analizando otra cuenta de AWS y exportando los resultados en un archivo txt:

airmiam-file

¿Es popular?: En GitHub: Watch 15; Fork 68; Stars 673

¿Actualizado recientemente? No. El último commit fue el 2 de agosto de 2022. En total, 426 commits.

URL: https://github.com/bridgecrewio/AirIAM

Actualizado:

La primera vez que usé esta herramienta, la funcionalidad de generación de plantillas de Terraform funcionó bien, pero ahora recibo un error y no pude usarla. Sin embargo, creo que esta herramienta es útil para encontrar estos recursos iam no utilizados

2.4. Resumen: ¿Qué herramienta debo usar para analizar mi entorno

Depende de lo que quieras hacer:

  • Análisis completo del entorno de AWS: cloudmapper
  • Obtener un inventario rápido del entorno de AWS: prowler
  • Análisis rápido de recursos IAM no utilizados: AirIAM
  • Aplicar mínimo privilegio a roles IAM (revisar qué permisos no estás usando): cloudmapper

3. Evaluación de seguridad

Hay muchas herramientas diferentes para realizar una evaluación de seguridad de tu entorno.

  • General
    • prowler: evaluaciones de mejores prácticas de seguridad, auditorías, respuesta a incidentes, monitoreo continuo, endurecimiento y preparación forense
    • Scoutsuite: herramienta de auditoría de seguridad multi-nube, que permite la evaluación de la postura de seguridad de entornos en la nube
    • cloudsploit: Escaneos de seguridad en la nube para detectar posibles configuraciones incorrectas y riesgos de seguridad
    • steampipe sí, DE NUEVO. Asegura que los recursos en la nube cumplan con benchmarks de seguridad como CIS, NIST y SOC2.
  • IAM
    • cloudsplaining: Herramienta de evaluación de seguridad IAM

3.1. prowler

Esta es la segunda vez que menciono prowler en este artículo en dos categorías diferentes.

Prowler es una herramienta de seguridad Open Source para realizar evaluaciones de mejores prácticas de seguridad, auditorías, respuesta a incidentes, monitoreo continuo, endurecimiento y preparación forense de AWS y Azure.

Contiene más de 240 controles que cubren CIS, PCI-DSS, ISO27001, GDPR, HIPAA, FFIEC, SOC2, AWS FTR, ENS y marcos de seguridad personalizados.

Hay 4 categorías disponibles:

  • secrets
  • trust-boundaries
  • internet-exposed
  • forensics-ready

Hay 3 Marcos de Cumplimiento disponibles:

  • cis_1.4_aws
  • cis_1.5_aws
  • ens_rd2022_aws

severidad:

  • informational
  • low
  • medium
  • high
  • critical

Por qué usarlo: Herramienta de seguridad para realizar evaluaciones de mejores prácticas de seguridad, auditorías, respuesta a incidentes, monitoreo continuo, endurecimiento y preparación forense.

Por defecto, prowler escaneará todas las regiones de AWS. Si quieres analizar solo algunas regiones puedes usar el siguiente comando -f us-east-1 eu-west-1 ...

prowler-1 prowler-2

Y este es el informe del archivo HTML:

prowler-report-1 prowler-report-2

¿Es popular?: En GitHub: Watch 122; Fork 1.1k; Stars 7.6K

¿Actualizado recientemente? Último commit ayer (en el momento en que escribo este post). Total de commits 2271

URL: https://github.com/prowler-cloud/prowler

3.2. Scoutsuite

Scout Suite es una herramienta de auditoría de seguridad multi-nube de código abierto, que permite la evaluación de la postura de seguridad de entornos en la nube. Usando las APIs expuestas por los proveedores de nube, Scout Suite recopila datos de configuración para inspección manual y resalta áreas de riesgo. En lugar de revisar docenas de páginas en las consolas web, Scout Suite presenta una vista clara de la superficie de ataque automáticamente.

Scout Suite fue diseñado por consultores/auditores de seguridad. Está destinado a proporcionar una vista orientada a la seguridad en un momento específico de la cuenta en la nube en la que se ejecutó. Una vez que se han recopilado los datos, todo el uso puede realizarse sin conexión.

Por qué usarlo: Habilita la evaluación de la postura de seguridad de entornos en la nube.

Por defecto, scoutsuite escaneará todas las regiones de AWS. Si quieres analizar solo algunas regiones puedes usar el siguiente comando -r us-east-1 eu-west-1 ...

scoutsuite-1 scoutsuite-2

¿Es popular?: En GitHub: Watch 113; Fork 816; Stars 5K

¿Actualizado recientemente?: No. El último commit fue el 5 de septiembre de 2022 (6101 commits en total)

URL: https://github.com/nccgroup/ScoutSuite

No encontré información sobre qué marcos de seguridad está usando o más información sobre los controles de seguridad. Sin embargo, ¡los hallazgos en el informe de auditoría son útiles y tienes que revisarlos!

3.3. cloudsploit

CloudSploit de Aqua es un proyecto de código abierto diseñado para detectar riesgos de seguridad en cuentas de infraestructura en la nube, incluyendo Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Oracle Cloud Infrastructure (OCI) y GitHub. Estos scripts están diseñados para devolver una serie de posibles configuraciones incorrectas y riesgos de seguridad.

Cumplimiento:

  • hipaa
  • PCI
  • CIS (nivel 1 y 2)

Por qué usarlo: detectar posibles configuraciones incorrectas y riesgos de seguridad en tu cuenta de AWS

cloudsploit-1

Sin embargo, en la consola el resultado no es claro:

cloudsploit-2

Una mejor solución es generar el informe en un archivo csv agregando el siguiente comando --csv=file.csv. Después de convertir el csv en una tabla se verá así:

cloudsploit-3

¿Es popular?: En GitHub: Watch 70; Fork 575; Stars 2.5k

¿Actualizado recientemente?: Sí. El último commit fue hace 3 semanas (3449 commits en total)

URL: https://github.com/aquasecurity/cloudsploit

No encontré cómo escanear solo algunas regiones. En la documentación oficial solo se incluye cómo suprimir todos los resultados de una región ./index.js --suppress *:us-east-1:*. Y para excluir más de una región puedes usar algo como esto --suppress "*:ap-*-*:*" --suppress "*:af-*-*:*" ...

3.4. steampipe

Mencioné esta herramienta en mi primer artículo sobre open-source cuando hablé sobre capacidades de Extend CLI aquí

Steampipe es la interfaz universal para APIs, y puedes usar SQL para consultar infraestructura en la nube, SaaS, código, logs y más.

Además, voy a mostrarte dos nuevas capacidades:

  • Check: Asegura que los recursos en la nube cumplan con benchmarks de seguridad como CIS, NIST y SOC2.
    • Las mejores prácticas de seguridad de AWS contienen 180 controles
    • CIS v1.50 contiene 63 controles
  • Visualize: Ver dashboards preconstruidos o construir los tuyos propios.

Por qué usarlo: para mí, el benchmark de mejores prácticas de seguridad de AWS con 180 controles y el CIS nivel 1.5 con 63 son suficientes para considerar usar esta herramienta para realizar un análisis de seguridad.

steampipe-2 steampipe-3 steampipe-4

¿Es popular?: En GitHub: Watch 32; Fork 171; Stars 4.6k

¿Actualizado recientemente? Sí, último commit hace 2 días. Total de commits 2007

URL: https://github.com/turbot/steampipe

Más información (checks y dashboard):

3.5. cloudsplaining

Cloudsplaining es una herramienta de evaluación de seguridad IAM de AWS que identifica violaciones de mínimo privilegio y genera un informe HTML priorizado por riesgo.

La evaluación identifica dónde no se usan restricciones de ARN de recursos e identifica otros riesgos en políticas IAM:

  • Escalada de privilegios
  • Exposición de recursos
  • Modificación de infraestructura
  • Exfiltración de datos

CloudMapper te ayuda a analizar tus entornos de Amazon Web Services (AWS) (usando Python)

Por qué usarlo: La herramienta te proporciona un informe con algunos riesgos en políticas IAM (customer/inline/AWS) y los principales IAM (IAM Users, Groups y Roles).

cloudsplaining-1 cloudsplaining-2

¿Es popular?: En GitHub: Watch 29; Fork 143; Stars 1.6K

¿Actualizado recientemente? Sí. Último commit hace 3 días (347 commits en total)

URL: https://github.com/salesforce/cloudsplaining

3.6. Resumen: ¿Qué herramienta debo usar para realizar evaluaciones de seguridad en mi cuenta

¡Esta es mi opinión personal. Si tienes una diferente, házmelo saber en los comentarios al final de este artículo!

  • Evaluación de seguridad general: prowler o steampipe
  • Evaluación de seguridad basada en CIS 1.5: steampipe, prowler o cloudsploit
  • Herramienta más completa de evaluación de seguridad basada en marcos: steampipe
  • Evaluación de seguridad específica de IAM: cloudsplaining

4. Próximos pasos

El siguiente artículo relacionado con herramientas open-source será:

  • Cómo ayudarte con tu código: para generarlo (IaC), validarlo (política como código y cumplimiento) y analizarlo (análisis estático/credenciales) -> aquí
Este artículo está licenciado bajo CC BY 4.0 por el autor.