Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CureIAM — Limpeza de contas com permissões excessivas na infraestrutura GCP em escala. | Kitploit
Ferramentas/GitHubGitHub/gojek/cureiam
Segurança de Infraestrutura em NuvemAuditoria de ConfiguraçãoSegurança na NuvemDevSecOpsGerenciamento de Identidade e Acesso (IAM)
GitHubgojek/cureiam

CureIAM

Limpeza de contas com permissões excessivas na infraestrutura GCP em escala.

Ver Repositório
7267há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CureIAM

Limpeza automatizada de contas IAM com permissões excessivas na infraestrutura GCP

CureIAM é um mecanismo fácil de usar, confiável e de alto desempenho para aplicação do Princípio do Menor Privilégio na infraestrutura em nuvem GCP. Ele permite que equipes de DevOps e Segurança limpem rapidamente contas na infraestrutura GCP que receberam permissões além do necessário. CureIAM obtém recomendações e insights do GCP IAM Recommender, os pontua e aplica essas recomendações automaticamente diariamente. Ele cuida do agendamento e de todos os outros aspectos da execução desses jobs de aplicação em escala. Foi construído sobre as APIs do GCP IAM Recommender e o framework Cloudmarker.

Principais recursos

Descubra o que torna o CureIAM escalável e pronto para produção.

  • Orientado por configuração: todo o fluxo de trabalho do CureIAM é orientado por configuração. Vá para a seção Config para saber mais.
  • Escalável: é projetado para escalar devido à sua abordagem orientada por plugins, multiprocesso e multithread.
  • Gerencia agendamento: a parte de agendamento está incorporada no próprio código do CureIAM; configure o horário e o CureIAM será executado diariamente nesse horário.
  • Orientado por plugins: a base de código do CureIAM é completamente orientada a plugins, o que significa que você pode conectar e usar os plugins existentes ou criar novos para adicionar mais funcionalidades.
Baixar ferramenta
  • Rastreie insights acionáveis: toda ação que o CureIAM realiza é registrada para fins de auditoria. Ele pode fazer isso em armazenamento de arquivos e no Elasticsearch. Se desejar, você pode criar outros plugins de armazenamento para enviar esses dados para outros sistemas de rastreamento.
  • Pontuação e aplicação: cada recomendação obtida pelo CureIAM é pontuada com base em vários parâmetros, resultando em pontuações como safe_to_apply_score, risk_score, over_privilege_score. Cada pontuação tem uma finalidade diferente. safe_to_apply_score identifica a capacidade de aplicar a recomendação automaticamente, com base no limite definido no arquivo de configuração CureIAM.yaml.
  • Uso

    Como o CureIAM é construído em Python, você pode executá-lo localmente com estes comandos. Antes de executar, certifique-se de ter um arquivo de configuração pronto em um dos seguintes locais: /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml ou CureIAM.yaml, e que haja um arquivo JSON de conta de serviço presente no diretório atual, preferencialmente com o nome cureiamSA.json. Esta chave privada da SA pode ter qualquer nome, mas para a construção da imagem Docker, é preferível usar este nome. Certifique-se de referenciar este arquivo na configuração do GCP cloud.

    root@kitploit:~
    # Instalar dependências necessárias
    $ pip install -r requirements.txt
    
    # Executar CureIAM agora
    $ python -m CureIAM -n
    
    # Executar CureIAM como agendador
    $ python -m CureIAM
    
    # Ver ajuda do CureIAM
    $ python -m CureIAM --help
    

    O CureIAM também pode ser executado em um ambiente Docker (completamente opcional) e pode ser usado para CI/CD com implantação em cluster K8s.

    root@kitploit:~
    # Construir imagem Docker a partir do Dockerfile
    $ docker build -t cureiam . 
    
    # Executar a imagem como agendador
    $ docker run -d cureiam 
    
    # Executar a imagem agora
    $ docker run -f cureiam -m cureiam -n 
    

    Configuração

    O arquivo de configuração CureIAM.yaml é o coração do mecanismo CureIAM. Tudo o que o mecanismo faz é baseado no pipeline configurado neste arquivo. Vamos dividi-lo em diferentes seções para simplificar a visualização.

    1. Vamos configurar a primeira seção, que é a configuração de logging e do agendador.
    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 subseção da configuração usa o módulo de logging Rich e agenda o CureIAM para executar diariamente às 16:00.

    1. A próxima seção configura diferentes módulos que PODEMOS usar no pipeline. Isso fica na seção plugins do CureIAM.yaml. Você pode pensar nesta seção como uma declaração para 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 uma dessas declarações de plugin deve ter o seguinte formato:

    root@kitploit:~
      plugins:
        <nome-do-plugin>:
          plugin: <caminho-da-classe-em-python>
          params:
            param1: val1
            param2: val2
    

    Por exemplo, para o plugin CureIAM.stores.esstore.EsStore, que é este arquivo e a classe EsStore. Todos os parâmetros definidos no yaml devem corresponder à declaração na função __init__() da mesma classe do plugin.

    1. Uma vez definidos os plugins, o próximo passo é definir como configurar o pipeline para auditoria. E fica assim:
    root@kitploit:~
      audits:
        IAMAudit:
          clouds:
            - gcpCloud
          processors:
            - gcpIamProcessor
          stores:
            - filestore
            - esstore
    

    A partir disso, podem ser criadas múltiplas auditorias. A criada aqui é denominada IAMAudit com três plugins em uso: gcpCloud, gcpIamProcessor, filestores e esstore. Observe que são os mesmos nomes de plugins definidos no Passo 2. Novamente, isso é como definir o pipeline, não executá-lo de fato. Ele será considerado para execução com a definição do próximo passo.

    1. Diga ao CureIAM para executar as auditorias definidas no passo anterior.
    root@kitploit:~
      run:
        - IAMAudits
    

    E isso completa toda a configuração do CureIAM. Você pode encontrar o exemplo completo aqui. Este conceito de pipeline orientado por configuração é herdado do framework Cloudmarker.

    Dashboard

    O JSON indexado no Elasticsearch usando o plugin Elasticsearch store pode ser usado para gerar dashboards no Kibana.

    Contribua

    [Por favor, faça isso!] Estamos abertos a qualquer tipo de contribuição para melhorar a funcionalidade principal e a documentação do CureIAM. Em caso de dúvida, faça um PR!

    Créditos

    Equipe de Segurança do Produto Gojek ❤️

    Demonstração

    <>

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

    NOVAS ATUALIZAÇÕES Maio 2023 v0.2.0

    Refatoração

    • Divisão do código grande em várias funções pequenas
    • Movimentação de todos os plugins para a pasta plugins: Esstore, files, Cloud e GCP.
    • Correções para problemas de divisão por zero
    • Migração para a nova versão principal do Elastic
    • Alteração na configuração do arquivo CureIAM.yaml
    • Testado na versão 3.9.X do Python

    Atualizações de bibliotecas

    Adicionando a versão nas bibliotecas para evitar problemas de compatibilidade reversa.

    • Elastic==8.7.0 # anteriormente 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

    Arquivos Docker

    • Adicionando Docker Compose para Elastic e Kibana local na pasta elastic
    • Adicionando .env-ex Altere .env-ex para .env antes de executar o docker
    root@kitploit:~
    Executando docker compose: docker-compose -f docker_compose_es.yaml up 
    

    Recursos

    • Adicionando a capacidade de executar varredura sem aplicar a recomendação. Por padrão, se mode_scan for false, mode_enforce não será executado.
    root@kitploit:~
          mode_scan: true
          mode_enforce: false
    
    • Desativando temporariamente a função de e-mail.