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
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
7267hace 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.
Descargar herramienta
  • 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.