Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CureIAM — Limpia cuentas sobre permisos en infraestructura de GCP a escala. | Kitploit
Herramientas/GitHubGitHub/gojek/cureiam
Seguridad de Infraestructura en la NubeAuditoría de ConfiguraciónSeguridad en la NubeDevSecOpsGestión de Identidad y Acceso (IAM)
GitHubgojek/cureiam

CureIAM

Limpia cuentas sobre permisos en infraestructura de GCP a escala.

Ver Repositorio
726hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CureIAM

Limpieza automatizada de cuentas IAM con permisos excesivos en infraestructura de GCP

CureIAM es un motor fácil de usar, fiable y de alto rendimiento para la aplicación del Principio de Mínimo Privilegio en la infraestructura en la nube de GCP. Permite a los equipos de DevOps y Seguridad limpiar rápidamente las cuentas en infraestructura GCP que tienen permisos otorgados más allá de los necesarios. CureIAM obtiene las recomendaciones y perspectivas del recomendador IAM de GCP, las puntúa y aplica esas recomendaciones automáticamente de forma diaria. Se encarga de la programación y todos los demás aspectos de ejecución de estos trabajos de aplicación a escala. Está construido sobre las APIs del recomendador IAM de GCP y el marco Cloudmarker.

Características clave

Descubra qué hace que CureIAM sea escalable y de nivel de producción.

  • Configurable : Todo el flujo de trabajo de CureIAM está controlado por configuración. Vaya a la sección Config para saber más.
  • Escalable : Está diseñado para escalar gracias a su enfoque basado en plugins, multiproceso y multihilo.
  • Maneja la programación : La parte de programación está integrada en el propio código de CureIAM. Configure la hora y CureIAM se ejecutará diariamente a esa hora.
  • Basado en plugins : El código de CureIAM está completamente orientado a plugins, lo que significa que se pueden conectar y usar los plugins existentes o crear nuevos para añadir más funcionalidades.
  • Seguimiento de acciones útiles : Cada acción que realiza CureIAM se registra para fines de auditoría. Puede hacerlo en un almacén de archivos y en un almacén de Elasticsearch. Si lo desea, puede crear otros plugins de almacenamiento para enviar los datos a otros almacenes con fines de seguimiento.
  • Puntuación y aplicación : Cada recomendación obtenida por CureIAM se puntúa según varios parámetros, generando puntuaciones como safe_to_apply_score, risk_score, over_privilege_score. Cada puntuación tiene un propósito diferente. Por ejemplo, safe_to_apply_score identifica la capacidad de aplicar la recomendación de forma automatizada, basándose en el umbral establecido en el archivo de configuración CureIAM.yaml.

Uso

Dado que CureIAM está construido con Python, puede ejecutarlo localmente con estos comandos. Antes de ejecutarlo, asegúrese de tener un archivo de configuración listo en /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml o CureIAM.yaml, y de que existe un archivo JSON de cuenta de servicio en el directorio actual con el nombre preferido cureiamSA.json. Esta clave privada de SA puede tener cualquier nombre, pero para la construcción de la imagen Docker se prefiere este nombre. Asegúrese de hacer referencia a este archivo en la configuración para la nube GCP.

root@kitploit:~
# Instalar dependencias necesarias
$ pip install -r requirements.txt

# Ejecutar CureIAM ahora
$ python -m CureIAM -n

# Ejecutar el proceso de CureIAM como programador
$ python -m CureIAM

# Ver ayuda de CureIAM
$ python -m CureIAM --help

CureIAM también puede ejecutarse dentro de un entorno Docker, esto es completamente opcional y se puede usar para CI/CD con despliegue en clúster K8s.

root@kitploit:~
# Construir imagen Docker desde el Dockerfile
$ docker build -t cureiam . 

# Ejecutar la imagen, como programador
$ docker run -d cureiam 

# Ejecutar la imagen ahora
$ docker run -f cureiam -m cureiam -n 

Config

El archivo de configuración CureIAM.yaml es el corazón del motor CureIAM. Todo lo que hace el motor se basa en la canalización configurada en este archivo. Vamos a desglosarlo en diferentes secciones para que la configuración parezca más sencilla.

  1. Configuremos la primera sección, que es la configuración de registro y la configuración del programador.
root@kitploit:~
  logger:
    version: 1

    disable_existing_loggers: false

    formatters:
      verysimple:
        format: >-
            [%(process)s]
            %(name)s:%(lineno)d - %(message)s
        datefmt: "%Y-%m-%d %H:%M:%S"

    handlers:
      rich_console:
        class: rich.logging.RichHandler
        formatter: verysimple

      file:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: simple
        filename: /tmp/CureIAM.log
        when: midnight
        encoding: utf8
        backupCount: 5

    loggers:
      adal-python:
        level: INFO

    root:
      level: INFO
      handlers:
        - rich_console
        - file

  schedule: "16:00"

Esta subsección de configuración utiliza el módulo de registro Rich y programa CureIAM para que se ejecute diariamente a las 16:00.

  1. La siguiente sección es para configurar diferentes módulos que podríamos usar en la canalización. Esto se encuentra en la sección plugins en CureIAM.yaml. Puede pensar en esta sección como la declaración de diferentes plugins.
root@kitploit:~
  plugins:
    gcpCloud:
      plugin: CureIAM.plugins.gcp.gcpcloud.GCPCloudIAMRecommendations
      params:
        key_file_path: cureiamSA.json

    filestore:
      plugin: CureIAM.plugins.files.filestore.FileStore

    gcpIamProcessor:
      plugin: CureIAM.plugins.gcp.gcpcloudiam.GCPIAMRecommendationProcessor
      params:
        mode_scan: true
        mode_enforce: true
        enforcer:
          key_file_path: cureiamSA.json
          allowlist_projects:
            - alpha
          blocklist_projects:
            - beta
          blocklist_accounts:
            - [email protected]
          allowlist_account_types:
            - user
            - group
            - serviceAccount
          blocklist_account_types:
            - None
          min_safe_to_apply_score_user: 0
          min_safe_to_apply_score_group: 0
          min_safe_to_apply_score_SA: 50

    esstore:
      plugin: CureIAM.plugins.elastic.esstore.EsStore
      params:
        # Change http to https later if your elastic are using https
        scheme: http
        host: es-host.com
        port: 9200
        index: cureiam-stg
        username: security
        password: securepassword

Cada una de estas declaraciones de plugin debe tener esta forma:

root@kitploit:~
  plugins:
    <nombre-plugin>:
      plugin: <nombre-clase-como-ruta-python>
      params:
        param1: val1
        param2: val2

Por ejemplo, para el plugin CureIAM.stores.esstore.EsStore que es este archivo y la clase EsStore. Todos los parámetros definidos en yaml deben coincidir con la declaración en la función __init__() de la misma clase de plugin.

  1. Una vez definidos los plugins, el siguiente paso es definir cómo configurar la canalización para la auditoría. Y se hace así:
root@kitploit:~
  audits:
    IAMAudit:
      clouds:
        - gcpCloud
      processors:
        - gcpIamProcessor
      stores:
        - filestore
        - esstore

Se pueden crear múltiples auditorías a partir de esto. La creada aquí se llama IAMAudit con tres plugins en uso: gcpCloud, gcpIamProcessor, filestores y esstore. Note que estos son los mismos nombres de plugin definidos en el Paso 2. Nuevamente, esto es como definir la canalización, no ejecutarla realmente. Se considerará para su ejecución con la definición del siguiente paso.

  1. Indique a CureIAM que ejecute las auditorías definidas en el paso anterior.
root@kitploit:~
  run:
    - IAMAudits

Y esto completa toda la configuración para CureIAM. Puede encontrar el ejemplo completo aquí. Este concepto de canalización controlada por configuración se hereda del marco Cloudmarker.

Dashboard

El JSON indexado en Elasticsearch mediante el plugin de almacenamiento Elasticsearch se puede utilizar para generar un panel en Kibana.

Contribuir

[¡Por favor, hágalo!] Buscamos cualquier tipo de contribución para mejorar la funcionalidad principal de CureIAM y su documentación. En caso de duda, ¡haga un PR!

Créditos

Equipo de Seguridad de Producto de Gojek ❤️

Demo

<>

=============

NUEVAS ACTUALIZACIONES Mayo 2023 0.2.0

Refactorización

  • Dividir el código grande en múltiples funciones pequeñas
  • Mover todos los plugins a la carpeta plugins: Esstore, files, Cloud y GCP.
  • Añadir correcciones para problemas de división por cero
  • Migración a la nueva versión principal de elastic
  • Cambiar la configuración en el archivo CureIAM.yaml
  • Probado en la versión de Python 3.9.X

Actualizaciones de librerías

Añadir la versión en las librerías para evitar problemas de compatibilidad inversa.

  • Elastic==8.7.0 # antes 7.17.9
  • elasticsearch==8.7.0
  • google-api-python-client==2.86.0
  • PyYAML==6.0
  • schedule==1.2.0
  • rich==13.3.5

Archivos Docker

  • Añadir Docker Compose para Elastic y Kibana locales en elastic
  • Añadir .env-ex Cambiar .env-ex a .env antes de ejecutar docker
root@kitploit:~
Ejecutar docker compose: docker-compose -f docker_compose_es.yaml up 

Características

  • Añadir la capacidad de ejecutar escaneo sin aplicar la recomendación. Por defecto, si mode_scan es false, mode_enforce no se ejecutará.
root@kitploit:~
      mode_scan: true
      mode_enforce: false
  • Desactivar temporalmente la función de correo electrónico.
Descargar herramienta