Руководство по парольной политике. Часть 1
1. Примечание переводчика
Оригинальный материал и этот перевод находятся под действием лицензииCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International.
2. Введение
Пароли повсеместно используются в современном мире. Если у вас есть учетная запись на компьютере, то наверняка будет хотя бы один пароль. Пароли использовались в компьютерах с момента появления вычислительной техники. Первой операционной системой с реализованным механизмом аутентификации на основе пароля стала Compatible Time-Sharing System (CTSS), представленная в Массачусетском технологическом институте в 1961 году.
Пароли — это самая простая форма реализации информационной безопасности. В течение многих лет эксперты пробовали сделать пароли более сложными для взлома, применяя различные правила создания и использования паролей (т.н. парольные политики).
Однако, при всей технической простоте реализации, парольная политика нередко оказывает спорное влияние на уровень безопасности информационных систем. Необоснованно завышенные требования к сложности и сменяемости паролей часто приводят к тому, что пользователи их просто забывают, после чего надоедливо отвлекают безопасников просьбами сменить пароль. Распространенными среди пользователей практиками являются также запись сложного пароля на стикере, который виден всем окружающим, или изменение только последнего символа пароля при появлении требования об установке нового пароля.
Поэтому, чтобы эффективно противодействовать злоумышленнику, парольная политика должна иметь реальное обоснование и не приводить пользователей в замешательство и расстройство. Некоторые крупные игроки в области стандартизации информационных технологий (NIST, Microsoft и пр.) недавно разработали новые парольные политики, основанные на двух базовых принципах:
- Использование данных о техниках и тактиках действий злоумышленников.
- Облегчение пользователям создания, запоминания и использования надежных паролей (учет человеческого фактора).
Цель этого документа — не изобретать велосипед, но объединить новые руководства по парольной политике в одном месте. Создать универсальную парольную политику, которую можно использовать везде, где это потребуется.
2.1 Обзор лучших практик
Каким бы стойким ни был пароль, эффективная защита может быть достигнута только при комплексном подходе с применением разнообразных механизмов. Подходы к реализации парольной политики можно ранжировать следующим образом (от более предпочтительных к менее):
2.1.1. Многофакторная аутентификация (МФА)
МФА — это самый эффективный метод защиты, и, хотя в руководстве ему посвящён отдельный раздел, здесь он заслуживает особого упоминания. МФА должна быть приоритетным вариантом при проектировании системы аутентификации для всех пользователей и везде, где это возможно. Особенно она необходима для безопасности доступа администраторов и других привилегированных учетных записей. Понятно, что МФА сама по себе не является панацеей хотя бы потому, что далеко не во всех информационных системах возможна её техническая реализация. Кроме того, даже при использовании МФА иметь стойкий пароль полезно, поскольку он используется как один из факторов.
2.1.2 Менеджер паролей
Инструмент позволяет создавать и хранить уникальные и сложные пароли для каждой учетной записи. Использование менеджеров паролей может значительно повысить безопасность и удобство авторизации пользователей.
2.1.3 Политика создания и применения паролей пользователями
Этот подход наиболее полно описан в данном руководстве, поскольку он является самым распространенным в настоящее время. Вместе с тем, большая часть рекомендаций актуальна для всех трех методов.
3. Обзор рекомендаций
Краткое описание рекомендаций по парольной политике представлено в таблице ниже. Детальная информация по каждой рекомендации раскрыта в главе 5.
Общая цель эффективной парольной политики — позволить пользователям легко создавать достаточно надежные пароли для доступа к системе, а затем отслеживать и ограничивать попытки доступа для обнаружения/предотвращения их несанкционированного использования.
4. Насколько важен пользовательский пароль?
Ввиду повсеместного использования паролей для доступа к компьютерным системам всех типов, очевидно, что пароли очень важны. Но существует ли компромисс между безопасностью и удобством использования? Не привели ли попытки разработать политику, чтобы сделать более безопасными применяемые пароли, к фактическому снижению уровня безопасности системы из-за человеческого фактора? В известной статье Алекса Вайнерта (Microsoft) «Your Pa$word doesn’t matter» приведено описание реальных атак на пользовательские пароли, развеяны распространенные мифы о надежности паролей и поведении пользователей. Обобщенная информация представлена в следующей таблице:
Из всех распространенных атак, перечисленных выше, надежность пароля имеет значение только в двух случаях:
- проводимые онлайн: перебор учетных записей (password spraying, password guessing);.
- проводимые офлайн: перебор паролей, взлом (brute force, database extraction, cracking).
Давайте рассмотрим их подробнее.
4.1 Атаки, проводимые онлайн
Password Guessing или Hammering — это систематический подбор пароля злоумышленником к одной целевой учетной записи. Перебор проводится преимущественно по словарям и по утечкам, найденным в Интернете.
Password Spraying — это вариант атаки, при котором злоумышленник использует те же списки паролей, но нацеливается на множество общедоступных или легко определяемых (например, общий формат имени учетной записи) учетных записей пользователей.
В случае с Password Guessing кажется, что здесь важна надежность пароля, но на самом деле гораздо важнее мониторинг и ограничение неудачных попыток входа. При наличии разумных ограничений и мониторинга тот факт, что современные технологии позволяют перебирать миллиарды паролей в секунду, не имеет значения, поскольку учетная запись будет заблокирована, а администратор безопасности — уведомлен об инциденте. Именно поэтому более распространенной формой атаки стал Password Spraying, но чтобы он был эффективным, злоумышленнику необходимо избегать блокировки учетных записей. Добиться этого можно, если узнать формат имени учетной записи, принятый в целевой организации. В таком случае атака заключается в переборе ограниченного словаря паролей, но в отношении множества учетных записей, что не приводит к их блокировке и позволяет злоумышленнику не попадать в поле зрения команды защитников.
Даже в этих случаях более сложный пароль не является лучшим решением. Гораздо более эффективным и простым для пользователей вариантом будет использование более длинных, сложных и разнообразных имен учетных записей. Действенным способом обнаружения атак типа Password Spraying является использование специальных сигнальных учетных записей. Это действительные аккаунты с минимальными привилегиями, которые соответствуют принятой парольной политике, но не предназначены для доступа. Попытки авторизации с их помощью свидетельствуют о компьютерной атаке, расследование которой позволяет администраторам информационной безопасности заранее обнаружить угрозу и не допустить компрометации паролей настоящих учетных записей.
4.2 Атаки, проводимые офлайн
Это единственный вариант, когда сложность пароля по-настоящему имеет значение. При такой атаке злоумышленник уже завладел базой данных учетных записей/паролей целевой компании, в которой пароли хранятся в хэшированном виде (вместо обычных текстовых паролей, что было бы слишком просто). В дальнейшем злоумышленник восстанавливает настоящие пароли из найденных хэш-сумм методом перебора с применением одного из множества свободно распространяемых инструментов (например, John the Ripper или L0phtCrack) или специальной программой, разработанной для этого самим злоумышленником.
Мы не будем подробно описывать принцип работы этих программ (существует множество открытых источников по взлому паролей), но в общем случае злоумышленник может сделать следующее:
- Создать «брут-машину»: стандартное компьютерное оборудование с высокопроизводительной видеокартой, которое может вычислять и проверять несколько миллиардов несложных хэшей (MD5, SHA1, NTLM и т.д.) в секунду. Легкодоступные установки для добычи криптовалют (майнеры) могут без труда достичь скорости перебора в 100 миллиардов хэшей в секунду, а хорошо финансируемые злоумышленники (прогосударственные группировки) могут достичь скорости и в 100-1000 раз выше.
- Перебрать все возможные пароли. При использовании майнера и предположении, что мощность словаря пароля составляет 96 символов, бездумное перебирание всех вариантов пароля займёт следующее время:
3. Ускорить перебор, используя дополнительные техники и знания:
- изучив целевую организацию, злоумышленник может выяснить алгоритм хэширования и специфичные для неё правила генерации паролей (минимальная/максимальная длина, сложность и т. д.);.
- использовать списки паролей, полученные в результате предыдущих взломов (огромное количество паролей уже находятся в свободном доступе). После хеширования проводится проверка на совпадение с хэшами в целевой базе данных. По статистике, это позволяет взломать около 70% паролей пользователей;.
- если это не сработает, злоумышленник может составить список всех популярных фраз, текстов песен, заголовков новостей, частых запросов поисковых систем, википедии, популярных статей и т.д. Или взять готовый — подобные списки доступны в различных сообществах «хэшбрейкеров». Таким образом можно подобрать еще 5-7% паролей пользователей;.
- наконец, злоумышленник может использовать предугаданные шаблоны (например, пароль всегда начинается с заглавной буквы, затем 3-6 строчных букв, 2-4 цифры и восклицательный знак в конце) и подобрать более длинные пароли (до 12 символов). Это позволяет вскрыть еще 5-7% пользовательских паролей.
4. В случае использования «соли» для хранения паролей в базе (применения к хэшу дополнительного преобразования, усложняющего автоматический перебор), данные техники применяются не для всех хэшей, а для одного. Вместе с тем, атака проводится с высокой вероятностью успеха почти в 85% и за относительно короткий промежуток времени, что позволяет злоумышленнику перейти к следующей учетной записи и последовательно перебрать их все.
Здесь стоит отметить следующее:
- данный метод перебора работает только в том случае, когда у атакующего есть база учетных записей/паролей. Как злоумышленник получил ее? Если уровень доступа атакующего достаточен, чтобы получить базу данных, то целью он, скорее всего, уже владеет;
- если база данных учетных записей/паролей, полученная злоумышленником, не относится к цели, то взломанный пароль все равно нужно попробовать на реальной учетной записи в целевой системе;
- человек вряд ли сможет создать надежный пароль, который выдержит описанные попытки взлома. Если противодействие им необходимо, используйте длинный и сложный пароль, сгенерированный автоматически. Например, созданный и управляемый менеджером паролей;
- технические возможности для взлома хэшей постоянно растут. Неужели мы будем постоянно гнаться за ними, делая пароли всё длиннее, сложнее и труднее для запоминания, пытаясь справиться с одним-единственным сценарием атаки? Очевидно, будет лучше использовать более комплексный подход.
Таким образом, необходимости использования паролей со сложностью выше определенного разумного уровня нет. Так почему бы не разработать политику, поощряющую достаточно надежные пароли, которые легко создавать, запоминать и использовать? Данное руководство призвано помочь с этим, и мы продолжим в следующей части
Перевод: Аделина Любимова, Origin Security