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

Отсутствие общих или стандартных учетных записей (например, "root", "admin" или "sa")

Описание

Это требование подразумевает, что в системе не должно быть общих или стандартных учетных записей, таких как "root", "admin" или "sa". Каждая учетная запись должна быть уникальной и привязанной к конкретному пользователю, чтобы обеспечить более высокий уровень безопасности и контроля доступа.

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

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

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

Запрет на создание общих учетных записей: Настройте систему так, чтобы она не позволяла создавать учетные записи с общими именами, такими как "admin" или "root".

Пример:

def create_user(username, password):
    if username in ["admin", "root", "sa"]:
        raise ValueError("Учетная запись с таким именем недопустима.")
    # Логика создания пользователя
    save_user_to_db(username, password)

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

Пример:

def register_user(username, password):
    if is_username_taken(username):
        raise ValueError("Имя пользователя уже занято.")
    # Логика регистрации пользователя
    save_user_to_db(username, password)

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

Пример:

def audit_user_accounts():
    common_accounts = ["admin", "root", "sa"]
    for account in get_all_user_accounts():
        if account.username in common_accounts:
            disable_account(account)  # Отключение общей учетной записи

Обучение пользователей: Обучайте пользователей важности использования уникальных учетных записей и безопасных паролей.

Пример:

def send_security_tips(user_email):
    tips = "Пожалуйста, используйте уникальные имена пользователей и надежные пароли."
    send_email(user_email, tips)

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

# Пример уязвимого кода на Python
def create_user(username, password):
    # Нет проверки на наличие общих учетных записей
    save_user_to_db(username, password)

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

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

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

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

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