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
7263 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à.
  • 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.
Scarica lo strumento