Отсутствие общих или стандартных учетных записей (например, "root", "admin" или "sa")
Описание
Это требование подразумевает, что в системе не должно быть общих или стандартных учетных записей, таких как "root", "admin" или "sa". Каждая учетная запись должна быть уникальной и привязанной к конкретному пользователю, чтобы обеспечить более высокий уровень безопасности и контроля доступа.
Почему это важно
- Улучшение безопасности: Общие учетные записи могут быть легко скомпрометированы, так как их учетные данные могут быть известны многим пользователям.
 - Отслеживание действий пользователей: Уникальные учетные записи позволяют отслеживать действия каждого пользователя, что упрощает аудит и расследование инцидентов.
 - Снижение риска несанкционированного доступа: Удаление стандартных учетных записей уменьшает вероятность несанкционированного доступа к системе.
 
Способы реализации с примерами
Запрет на создание общих учетных записей: Настройте систему так, чтобы она не позволяла создавать учетные записи с общими именами, такими как "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)
Проблема: В этом коде отсутствует проверка на создание общих учетных записей, что может привести к уязвимости системы.
Причины, к которым может привести несоблюдение требования
- Несанкционированный доступ: Наличие общих учетных записей может привести к тому, что злоумышленники получат доступ к системе, используя известные учетные данные.
 - Отсутствие ответственности: Общие учетные записи затрудняют отслеживание действий пользователей, что может привести к проблемам с безопасностью и ответственностью.
 - Увеличение рисков: Стандартные учетные записи могут быть легко скомпрометированы, что увеличивает риски для всей системы.
 
Рекомендации
- Запретите создание общих или стандартных учетных записей в системе.
 - Обеспечьте, чтобы каждая учетная запись была уникальной и привязанной к конкретному пользователю.
 - Проводите регулярные проверки на наличие общих учетных записей и отключайте их при обнаружении.
 - Обучайте пользователей важности использования уникальных учетных записей и надежных паролей.