Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CureIAM — Bereinigen Sie Konten über Berechtigungen in der GCP-Infrastruktur im großen Maßstab. | Kitploit
Tools/GitHubGitHub/gojek/cureiam
Cloud-Infrastruktur-SicherheitKonfigurationsprüfungCloud-SicherheitDevSecOpsIdentitäts- & Zugriffsmanagement (IAM)
GitHubgojek/cureiam

CureIAM

Bereinigen Sie Konten über Berechtigungen in der GCP-Infrastruktur im großen Maßstab.

Repository anzeigen
726vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CureIAM

Automatisierte Bereinigung von überprivilegierten IAM-Konten in der GCP-Infrastruktur

CureIAM ist eine benutzerfreundliche, zuverlässige und leistungsstarke Engine zur Durchsetzung des Least-Privilege-Prinzips auf der GCP-Cloud-Infrastruktur. Sie ermöglicht DevOps- und Sicherheitsteams, schnell Konten in der GCP-Infrastruktur zu bereinigen, die mehr Berechtigungen haben als nötig. CureIAM ruft die Empfehlungen und Erkenntnisse vom GCP IAM Recommender ab, bewertet sie und setzt diese Empfehlungen automatisch auf täglicher Basis durch. Es kümmert sich um die Planung und alle anderen Aspekte der Ausführung dieser Durchsetzungsaufträge in großem Maßstab. Es basiert auf den GCP IAM Recommender APIs und dem Cloudmarker-Framework.

Hauptfunktionen

Entdecken Sie, was CureIAM skalierbar und produktionsreif macht.

  • Konfigurationsgesteuert: Der gesamte Arbeitsablauf von CureIAM ist konfigurationsgesteuert. Springen Sie zum Konfigurationsabschnitt, um mehr darüber zu erfahren.
  • Skalierbar: Es ist aufgrund seines plugin-gesteuerten, multiprocess- und multithreaded-Ansatzes auf Skalierbarkeit ausgelegt.
  • Behandelt Zeitplanung: Die Zeitplanung ist direkt in den CureIAM-Code eingebettet, konfigurieren Sie die Zeit, und CureIAM wird täglich zu dieser Zeit ausgeführt.
  • Plugin-gesteuert: Der CureIAM-Codebase ist vollständig plugin-orientiert, was bedeutet, dass vorhandene Plugins eingesteckt oder neue erstellt werden können, um die Funktionalität zu erweitern.
  • Verfolgung umsetzbarer Erkenntnisse: Jede Aktion, die CureIAM ausführt, wird zu Prüfzwecken aufgezeichnet. Dies kann in einem Dateispeicher und in einem Elasticsearch-Speicher erfolgen. Bei Bedarf können andere Speicher-Plugins erstellt werden, um die Daten an andere Speicherorte zu übertragen.
  • Bewertung und Durchsetzung: Jede von CureIAM abgerufene Empfehlung wird anhand verschiedener Parameter bewertet, darunter Bewertungen wie safe_to_apply_score, risk_score, over_privilege_score. Jede Bewertung dient einem anderen Zweck. Der safe_to_apply_score identifiziert die Fähigkeit, eine Empfehlung automatisiert anzuwenden, basierend auf dem in der CureIAM.yaml-Konfigurationsdatei festgelegten Schwellenwert.

Verwendung

Da CureIAM mit Python erstellt wurde, können Sie es lokal mit diesen Befehlen ausführen. Stellen Sie vor dem Ausführen sicher, dass eine Konfigurationsdatei in einem der folgenden Pfade bereit liegt: /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml oder CureIAM.yaml, und dass sich eine JSON-Datei für das Servicekonto im aktuellen Verzeichnis befindet, vorzugsweise mit dem Namen cureiamSA.json. Dieser private Schlüssel des Servicekontos kann beliebig benannt werden, aber für den Docker-Image-Build wird dieser Name bevorzugt. Stellen Sie sicher, dass Sie diese Datei in der Konfiguration für die GCP-Cloud referenzieren.

root@kitploit:~
# Install necessary dependencies
$ pip install -r requirements.txt

# Run CureIAM now
$ python -m CureIAM -n

# Run CureIAM process as schedular
$ python -m CureIAM

# Check CureIAM help
$ python -m CureIAM --help

CureIAM kann auch in einer Docker-Umgebung ausgeführt werden; dies ist vollkommen optional und kann für CI/CD mit K8s-Cluster-Bereitstellung verwendet werden.

root@kitploit:~
# Build docker image from dockerfile
$ docker build -t cureiam . 

# Run the image, as schedular
$ docker run -d cureiam 

# Run the image now
$ docker run -f cureiam -m cureiam -n 

Konfiguration

Die Konfigurationsdatei CureIAM.yaml ist das Herz der CureIAM-Engine. Alles, was die Engine tut, basiert auf der in dieser Konfigurationsdatei konfigurierten Pipeline. Lassen Sie uns dies in verschiedenen Abschnitten aufschlüsseln, um die Konfiguration übersichtlicher zu gestalten.

  1. Konfigurieren wir zunächst den ersten Abschnitt, der die Protokollierungskonfiguration und die Zeitplanungskonfiguration umfasst.
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"

Dieser Unterabschnitt der Konfiguration verwendet das Rich-Protokollierungsmodul und plant CureIAM so, dass es täglich um 16:00 Uhr ausgeführt wird.

  1. Der nächste Abschnitt konfiguriert verschiedene Module, die wir in der Pipeline verwenden KÖNNTEN. Dies fällt unter den plugins-Abschnitt in der CureIAM.yaml. Sie können sich diesen Abschnitt als Deklaration für verschiedene Plugins vorstellen.
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

Jede dieser Plugin-Deklarationen muss folgende Form haben:

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

Zum Beispiel für das Plugin CureIAM.stores.esstore.EsStore, welches diese Datei und die Klasse EsStore ist. Alle in yaml definierten Parameter müssen mit der Deklaration in der __init__()-Funktion derselben Plugin-Klasse übereinstimmen.

  1. Sobald Plugins definiert sind, besteht der nächste Schritt darin, zu definieren, wie die Pipeline für Audits definiert wird. Und das sieht wie folgt aus:
root@kitploit:~
  audits:
    IAMAudit:
      clouds:
        - gcpCloud
      processors:
        - gcpIamProcessor
      stores:
        - filestore
        - esstore

Daraus können mehrere Audits erstellt werden. Das hier erstellte heißt IAMAudit und verwendet drei Plugins: gcpCloud, gcpIamProcessor, filestores und esstore. Beachten Sie, dass dies dieselben Plugin-Namen sind, die in Schritt 2 definiert wurden. Auch dies ist wie das Definieren der Pipeline, nicht das tatsächliche Ausführen. Es wird für die Ausführung mit der Definition im nächsten Schritt berücksichtigt.

  1. Teilen Sie CureIAM mit, die im vorherigen Schritt definierten Audits auszuführen.
root@kitploit:~
  run:
    - IAMAudits

Und das ergibt die gesamte Konfiguration für CureIAM. Das vollständige Beispiel finden Sie hier. Dieses konfigurationsgesteuerte Pipeline-Konzept wurde vom Cloudmarker-Framework übernommen.

Dashboard

Das JSON, das mit dem Elasticsearch-Speicher-Plugin in Elasticsearch indiziert wird, kann zur Erstellung eines Dashboards in Kibana verwendet werden.

Mitwirken

[Bitte machen Sie es!] Wir suchen jede Art von Beitrag, um die Kernfunktionalität und Dokumentation von CureIAM zu verbessern. Im Zweifelsfall einfach einen PR erstellen!

Danksagungen

Gojek Product Security Team ❤️

Demo

<>

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

NEUE AKTUALISIERUNGEN Mai 2023 0.2.0

Refactoring

  • Aufteilung des großen Codes in mehrere kleine Funktionen
  • Verschieben aller Plugins in den Plugins-Ordner: Esstore, files, Cloud und GCP.
  • Hinzufügen von Korrekturen für Division-durch-Null-Probleme
  • Migration auf eine neue Hauptversion von Elastic
  • Änderung der Konfiguration in der Datei CureIAM.yaml
  • Getestet mit Python-Version 3.9.X

Bibliotheksaktualisierungen

Hinzufügen der Version in der Bibliothek, um Abwärtskompatibilitätsprobleme zu vermeiden.

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

Docker-Dateien

  • Hinzufügen von Docker Compose für lokales Elastic und Kibana im elastic-Verzeichnis
  • Hinzufügen von .env-ex Ändern Sie .env-ex in .env, bevor Sie Docker ausführen
root@kitploit:~
Running docker compose: docker-compose -f docker_compose_es.yaml up 

Funktionen

  • Hinzufügen der Möglichkeit, einen Scan durchzuführen, ohne die Empfehlung anzuwenden. Standardmäßig wird mode_enforce nicht ausgeführt, wenn mode_scan auf false gesetzt ist.
root@kitploit:~
      mode_scan: true
      mode_enforce: false
  • Vorübergehendes Deaktivieren der E-Mail-Funktion.
Tool herunterladen