Перейти к содержанию

Проверка, что используемая учетная запись службы не является учетной записью по умолчанию

Описание

Учетные записи служб (service accounts) используются для автоматизации задач и предоставления приложению необходимых прав доступа к ресурсам. Использование учетных записей по умолчанию может представлять серьезную угрозу безопасности, так как они часто имеют известные настройки и могут быть легко скомпрометированы. Это требование подразумевает, что все учетные записи служб должны быть настроены с уникальными, безопасными учетными данными и правами доступа.

Почему это важно

  1. Снижение рисков безопасности: Учетные записи по умолчанию могут быть известны злоумышленникам, что делает их уязвимыми для атак.
  2. Улучшение контроля доступа: Уникальные учетные записи служб позволяют более точно настраивать права доступа, что помогает следовать принципу наименьших привилегий.
  3. Соответствие стандартам безопасности: Многие стандарты безопасности требуют использования уникальных учетных записей для автоматизированных процессов.

Способы реализации с примерами

Создание уникальных учетных записей служб: При настройке учетных записей служб всегда создавайте уникальные учетные записи с индивидуальными правами доступа.

Пример:

# Создание новой учетной записи службы в Google Cloud
gcloud iam service-accounts create my-custom-service-account \
    --description="My custom service account" \
    --display-name="My Custom Service Account"

Настройка прав доступа: Убедитесь, что учетные записи служб имеют только те права доступа, которые необходимы для выполнения их задач.

Пример:

# Присвоение роли учетной записи службы
gcloud projects add-iam-policy-binding my-project \
    --member="serviceAccount:my-custom-service-account@my-project.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

Регулярный аудит учетных записей служб: Проводите регулярные проверки и аудит учетных записей служб, чтобы убедиться, что они не являются учетными записями по умолчанию и имеют соответствующие права доступа.

Пример:

def audit_service_accounts():
    service_accounts = get_service_accounts()  # Функция для получения учетных записей служб
    for account in service_accounts:
        if is_default_account(account):  # Проверка на учетную запись по умолчанию
            print(f"Warning: {account} is a default service account.")

Использование безопасных методов аутентификации: Убедитесь, что учетные записи служб используют безопасные методы аутентификации, такие как ключи API или OAuth 2.0.

Пример:

from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(
    'path/to/service-account.json'
)

Примеры уязвимого кода

# Пример уязвимого кода на Python
def connect_to_service():
    # Использование учетной записи по умолчанию
    service_account = "default_service_account"
    # Логика подключения к сервису

Проблема: В этом коде используется учетная запись по умолчанию, что делает систему уязвимой для атак.

Причины, к которым может привести несоблюдение требования

  1. Несанкционированный доступ: Злоумышленники могут использовать известные учетные записи по умолчанию для получения доступа к системе.
  2. Уязвимости безопасности: Учетные записи по умолчанию могут иметь избыточные права доступа, что увеличивает риск компрометации.
  3. Проблемы с управлением: Учетные записи по умолчанию могут затруднить управление доступом и аудит.

Рекомендации

  • Всегда создавайте уникальные учетные записи служб с индивидуальными правами доступа.
  • Регулярно проводите аудит учетных записей служб и проверяйте их на наличие учетных записей по умолчанию.
  • Используйте безопасные методы аутентификации для учетных записей служб.
  • Обучайте сотрудников важности использования уникальных учетных записей и управления доступом.