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
726há 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.
  • 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
Baixar ferramenta
  • Desativando temporariamente a função de e-mail.