Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CureIAM — Очистка учетных записей по разрешениям в инфраструктуре GCP в масштабе | Kitploit
Инструменты/GitHubGitHub/gojek/cureiam
Безопасность облачной инфраструктурыАудит конфигурацииБезопасность облачных средDevSecOpsУправление идентификацией и доступом (IAM)
GitHubgojek/cureiam

CureIAM

Очистка учетных записей по разрешениям в инфраструктуре GCP в масштабе

Репозиторий
72673 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CureIAM

Автоматическая очистка чрезмерно привилегированных IAM-аккаунтов в GCP инфраструктуре

CureIAM — это простой в использовании, надежный и производительный механизм для обеспечения принципа наименьших привилегий в облачной инфраструктуре GCP. Он позволяет командам DevOps и безопасности быстро очищать аккаунты в GCP, которым были предоставлены избыточные разрешения. CureIAM получает рекомендации и аналитику от GCP IAM Recommender, оценивает их и автоматически применяет эти рекомендации на ежедневной основе. Он берет на себя планирование и все остальные аспекты выполнения таких задач по применению политик в масштабе. CureIAM построен на основе API GCP IAM Recommender и фреймворка Cloudmarker.

Ключевые возможности

Узнайте, что делает CureIAM масштабируемым и готовым к промышленной эксплуатации.

  • Управление через конфигурацию : Весь рабочий процесс CureIAM управляется через конфигурацию. Перейдите к разделу Config, чтобы узнать больше.
  • Масштабируемость : Он спроектирован для масштабирования благодаря подходу, основанному на плагинах, многопроцессорности и многопоточности.
  • : Планирование встроено непосредственно в код CureIAM; настройте время, и CureIAM будет запускаться ежедневно в это время.
Встроенное планирование
  • Плагинная архитектура: Кодовая база CureIAM полностью ориентирована на плагины, что позволяет подключать и использовать существующие плагины или создавать новые для добавления функциональности.
  • Отслеживание практических действий: Каждое действие, выполняемое CureIAM, записывается для аудита. Это можно делать в файловом хранилище и в хранилище Elasticsearch. При желании можно создать другие плагины хранилищ для передачи данных в другие системы.
  • Оценка и применение: Каждая рекомендация, полученная CureIAM, оценивается по различным параметрам, после чего вычисляются такие оценки, как safe_to_apply_score, risk_score, over_privilege_score. Каждая оценка служит своей цели. safe_to_apply_score определяет возможность автоматического применения рекомендации на основе порога, заданного в конфигурационном файле CureIAM.yaml.
  • Использование

    Поскольку CureIAM написан на Python, вы можете запустить его локально с помощью этих команд. Перед запуском убедитесь, что у вас есть готовый конфигурационный файл в одном из следующих мест: /etc/CureIAM.yaml, ~/.CureIAM.yaml, ~/CureIAM.yaml или CureIAM.yaml, а также JSON-файл сервисного аккаунта в текущем каталоге с именем, желательно, cureiamSA.json. Этот закрытый ключ SA может называться как угодно, но для сборки Docker-образа предпочтительно использовать это имя. Убедитесь, что в конфигурации для облака GCP указан этот файл.

    root@kitploit:~
    # Установка необходимых зависимостей
    $ pip install -r requirements.txt
    
    # Запуск CureIAM сейчас
    $ python -m CureIAM -n
    
    # Запуск процесса CureIAM в режиме планировщика
    $ python -m CureIAM
    
    # Просмотр справки CureIAM
    $ python -m CureIAM --help
    

    CureIAM также можно запустить в среде Docker — это полностью опционально и может использоваться для CI/CD с развертыванием в кластере K8s.

    root@kitploit:~
    # Сборка Docker-образа из Dockerfile
    $ docker build -t cureiam . 
    
    # Запуск образа в режиме планировщика
    $ docker run -d cureiam 
    
    # Запуск образа сейчас
    $ docker run -f cureiam -m cureiam -n 
    

    Конфигурация

    Конфигурационный файл CureIAM.yaml является сердцем движка CureIAM. Всё, что делает движок, основано на конвейере, настроенном в этом файле. Давайте разберем его на разделы, чтобы конфигурация выглядела проще.

    1. Настроим первый раздел — конфигурацию логирования и планировщика.
    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"
    

    Этот подраздел конфигурации использует модуль логирования Rich и планирует запуск CureIAM ежедневно в 16:00.

    1. Следующий раздел — настройка различных модулей, которые МОЖНО использовать в конвейере. Он находится в разделе plugins файла CureIAM.yaml. Этот раздел можно рассматривать как объявление различных плагинов.
    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
    

    Каждое объявление плагина должно быть в таком виде:

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

    Например, для плагина CureIAM.stores.esstore.EsStore (это файл и класс EsStore). Все параметры, определённые в YAML, должны соответствовать объявлению в функции __init__() того же класса плагина.

    1. После определения плагинов необходимо настроить конвейер аудита. Это делается так:
    root@kitploit:~
      audits:
        IAMAudit:
          clouds:
            - gcpCloud
          processors:
            - gcpIamProcessor
          stores:
            - filestore
            - esstore
    

    Можно создать несколько аудитов. В данном примере создан аудит с именем IAMAudit, использующий три плагина: gcpCloud, gcpIamProcessor, filestores и esstore. Обратите внимание, что это те же имена плагинов, которые были определены в шаге 2. Это снова похоже на объявление конвейера, а не его запуск. Фактический запуск будет определён на следующем шаге.

    1. Укажите CureIAM, какие аудиты запускать из предыдущего шага.
    root@kitploit:~
      run:
        - IAMAudits
    

    На этом конфигурация CureIAM завершена. Полный пример можно найти здесь. Концепция конфигурируемого конвейера унаследована из фреймворка Cloudmarker.

    Панель мониторинга

    JSON, который индексируется в Elasticsearch с помощью плагина хранилища Elasticsearch, можно использовать для создания панели мониторинга в Kibana.

    Вклад в проект

    [Пожалуйста, участвуйте!] Мы ищем любые виды вклада для улучшения основной функциональности и документации CureIAM. Если сомневаетесь, создавайте PR!

    Авторы

    Команда безопасности продукта Gojek ❤️

    Демонстрация

    <>

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

    НОВЫЕ ОБНОВЛЕНИЯ Май 2023 0.2.0

    Рефакторинг

    • Разделение большого кода на множество мелких функций
    • Перемещение всех плагинов в папку plugins: Esstore, files, Cloud и GCP
    • Исправление ошибок деления на ноль
    • Переход на новую мажорную версию Elastic
    • Изменение конфигурации в файле CureIAM.yaml
    • Протестировано на Python версии 3.9.X

    Обновления библиотек

    Добавление версий в библиотеки для предотвращения проблем обратной совместимости.

    • Elastic==8.7.0 # ранее 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-файлы

    • Добавление Docker Compose для локального Elastic и Kibana в папке elastic
    • Добавление .env-ex Переименуйте .env-ex в .env перед запуском docker
    root@kitploit:~
    Запуск docker compose: docker-compose -f docker_compose_es.yaml up 
    

    Возможности

    • Добавлена возможность выполнять сканирование без применения рекомендаций. По умолчанию, если mode_scan равен false, mode_enforce не запускается.
    root@kitploit:~
          mode_scan: true
          mode_enforce: false
    
    • Временно отключена функция отправки email.
    Скачать инструмент