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