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

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

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

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

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

Категории

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

CureIAM

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

Репозиторий
7263 лет назадПроверено 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.
Скачать инструмент