Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CureIAM — Pulisci gli account per le autorizzazioni nell'infrastruttura GCP su larga scala | Kitploit
Strumenti/GitHubGitHub/gojek/cureiam
Sicurezza dell'Infrastruttura CloudAudit di ConfigurazioneSicurezza CloudDevSecOpsGestione Identità e Accessi (IAM)
GitHubgojek/cureiam

CureIAM

Pulisci gli account per le autorizzazioni nell'infrastruttura GCP su larga scala

Vedi Repository
72673 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CureIAM

Pulizia automatica degli account IAM con permessi eccessivi sull'infrastruttura GCP

CureIAM è un motore facile da usare, affidabile e performante per l'applicazione del principio del minimo privilegio sull'infrastruttura cloud GCP. Consente ai team DevOps e Security di ripulire rapidamente gli account nell'infrastruttura GCP a cui sono stati concessi permessi superiori al necessario. CureIAM recupera raccomandazioni e approfondimenti dal GCP IAM Recommender, li valuta e li applica automaticamente su base giornaliera. Si occupa della pianificazione e di tutti gli altri aspetti dell'esecuzione di questi lavori di enforcement su larga scala. È costruito sopra le API di GCP IAM Recommender e il framework Cloudmarker.

Caratteristiche principali

Scopri cosa rende CureIAM scalabile e pronto per la produzione.

  • Configurabile : L'intero flusso di lavoro di CureIAM è guidato dalla configurazione. Vai alla sezione Config per saperne di più.
  • Scalabile : È progettato per scalare grazie al suo approccio basato su plugin, multiprocesso e multi-thread.
  • Gestione della pianificazione: La parte di pianificazione è integrata nel codice di CureIAM stesso; configura l'orario e CureIAM verrà eseguito quotidianamente a quell'ora.
  • Basato su plugin: Il codice di CureIAM è completamente orientato ai plugin, il che significa che è possibile collegare e utilizzare i plugin esistenti o crearne di nuovi per aggiungere ulteriori funzionalità.
Scarica lo strumento
  • Tracciamento delle azioni significative: Ogni azione intrapresa da CureIAM viene registrata per scopi di audit, può farlo in un file store o in un elasticsearch store. Se lo desideri, puoi creare altri plugin per memorizzare i dati in altri archivi per il tracciamento.
  • Valutazione ed enforcement: Ogni raccomandazione recuperata da CureIAM viene valutata in base a vari parametri, dopodiché vengono calcolati punteggi come safe_to_apply_score, risk_score, over_privilege_score. Ogni punteggio ha uno scopo diverso. safe_to_apply_score identifica la capacità di applicare automaticamente la raccomandazione, in base alla soglia impostata nel file di configurazione CureIAM.yaml.
  • Utilizzo

    Poiché CureIAM è scritto in Python, puoi eseguirlo localmente con questi comandi. Prima di eseguirlo, assicurati di avere un file di configurazione pronto in /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml o CureIAM.yaml e che sia presente un file JSON del service account nella directory corrente, preferibilmente con nome cureiamSA.json. Questa chiave privata del service account può avere qualsiasi nome, ma per la creazione dell'immagine Docker è preferibile usare questo nome. Assicurati di fare riferimento a questo file nella configurazione per il cloud GCP.

    root@kitploit:~
    # Installa le dipendenze necessarie
    $ pip install -r requirements.txt
    
    # Esegui CureIAM ora
    $ python -m CureIAM -n
    
    # Esegui CureIAM come scheduler
    $ python -m CureIAM
    
    # Controlla l'aiuto di CureIAM
    $ python -m CureIAM --help
    

    CureIAM può essere eseguito anche in un ambiente Docker, completamente opzionale e può essere usato per CI/CD con deployment su cluster K8s.

    root@kitploit:~
    # Costruisci l'immagine Docker dal dockerfile
    $ docker build -t cureiam .
    
    # Esegui l'immagine come scheduler
    $ docker run -d cureiam
    
    # Esegui l'immagine ora
    $ docker run -f cureiam -m cureiam -n
    

    Configurazione

    Il file di configurazione CureIAM.yaml è il cuore del motore CureIAM. Tutto ciò che il motore fa si basa sulla pipeline configurata in questo file. Analizziamolo in diverse sezioni per semplificare la configurazione.

    1. Configuriamo la prima sezione, che riguarda la registrazione (logging) e la pianificazione.
    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"
    

    Questa sottosezione della configurazione utilizza il modulo di logging Rich e pianifica l'esecuzione di CureIAM ogni giorno alle 16:00.

    1. La sezione successiva serve per configurare diversi moduli che POTREMMO utilizzare nella pipeline. Questa rientra nella sezione plugins di CureIAM.yaml. Puoi pensare a questa sezione come alla dichiarazione dei vari plugin.
    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
    

    Ogni dichiarazione di plugin deve avere questa forma:

    root@kitploit:~
      plugins:
        <plugin-name>:
          plugin: <class-name-as-python-path>
          params:
            param1: val1
            param2: val2
    

    Ad esempio, per il plugin CureIAM.stores.esstore.EsStore che è questo file e la classe EsStore. Tutti i parametri definiti nello yaml devono corrispondere alla dichiarazione nella funzione __init__() della stessa classe plugin.

    1. Una volta definiti i plugin, il passo successivo è definire come strutturare la pipeline per l'audit. Ecco come si presenta:
    root@kitploit:~
      audits:
        IAMAudit:
          clouds:
            - gcpCloud
          processors:
            - gcpIamProcessor
          stores:
            - filestore
            - esstore
    

    Da questa possono essere creati più audit. Quello creato qui si chiama IAMAudit e utilizza tre plugin: gcpCloud, gcpIamProcessor, filestores e esstore. Nota che questi sono gli stessi nomi di plugin definiti nel Passo 2. Anche questo è come definire la pipeline, non eseguirla effettivamente. Verrà considerata per l'esecuzione con la definizione del passo successivo.

    1. Indica a CureIAM di eseguire gli audit definiti nel passo precedente.
    root@kitploit:~
      run:
        - IAMAudits
    

    E questo completa l'intera configurazione per CureIAM. Puoi trovare l'esempio completo qui. Questo concetto di pipeline guidata dalla configurazione è ereditato dal framework Cloudmarker.

    Dashboard

    Il JSON indicizzato in Elasticsearch tramite il plugin Elasticsearch store può essere utilizzato per generare una dashboard in Kibana.

    Contribuisci

    [Per favore!] Siamo alla ricerca di qualsiasi tipo di contributo per migliorare le funzionalità principali e la documentazione di CureIAM. In caso di dubbi, crea una PR!

    Crediti

    Gojek Product Security Team ❤️

    Demo

    <>

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

    NUOVI AGGIORNAMENTI Maggio 2023 0.2.0

    Refactoring

    • Suddivisione del codice grande in più piccole funzioni
    • Spostamento di tutti i plugin nella cartella plugins: Esstore, files, Cloud e GCP.
    • Aggiunta di correzioni per i problemi di divisione per zero
    • Migrazione alla nuova versione major di Elastic
    • Modifica della configurazione nel file CureIAM.yaml
    • Testato con Python versione 3.9.X

    Aggiornamenti delle librerie

    Aggiunta della versione nelle librerie per evitare problemi di retrocompatibilità.

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

    File Docker

    • Aggiunto Docker Compose per Elastic e Kibana locali in elastic
    • Aggiunto .env-ex cambia .env-ex in .env prima di eseguire docker
    root@kitploit:~
    Esecuzione di docker compose: docker-compose -f docker_compose_es.yaml up 
    

    Funzionalità

    • Aggiunta la possibilità di eseguire la scansione senza applicare la raccomandazione. Per impostazione predefinita, se mode_scan è false, mode_enforce non verrà eseguito.
    root@kitploit:~
          mode_scan: true
          mode_enforce: false
    
    • Disattivazione temporanea della funzione email.