Ключ от всех дверей: как хакеры взламывают пароли офисных сотрудников
По данным центра мониторинга и реагирования на кибератаки Solar JSOC компании «Ростелеком», подбор учетных данных применяется в 18% атак и стоит на третьем месте по популярности среди методик хакеров.
Практически у каждого офисного сотрудника есть учетная запись в корпоративной сети. Придумать пароль для своего аккаунта – первое, что надо сделать сотруднику при выходе на новую работу. Но многие относятся к этой задаче халатно: помимо рабочей, у каждого человека есть множество личных «учеток», а придумать и запомнить надежные пароли к каждой из них и сложно, и лень. Увы, выбор часто делается в пользу простейших комбинаций типа «1234Qwerty» – таким «грешат» и небольшие организации, и крупные компании. В итоге корпоративные аккаунты, которые должны быть защищены от посторонних глаз, становятся для хакеров легкой добычей и простой точкой доступа к ИТ-системам компании. Как именно это происходит и какие пароли злоумышленникам не по плечу, рассказываем ниже.
Многие пользователи уверены, что их аккаунт не может заинтересовать злоумышленников, особенно если речь идет о корпоративной «учетке». На самом деле хакера интересует абсолютно любой аккаунт, который поможет ему проникнуть во внутреннюю сеть той или иной компании, закрепиться в ней, развить атаку и впоследствии украсть конфиденциальные данные или получить контроль над ИТ-инфраструктурой организации.
Для проведения одних атак используются ошибки в разработке программного обеспечения, из-за которых система не блокирует многочисленные неправильные попытки ввода учетных данных. Для других – недостаточная осведомленность пользователей в вопросах создания и управления паролями. Ниже мы приводим примеры самых распространенных ошибок и ненадежных паролей, выявленных в компаниях-заказчиках «Ростелекома» в ходе внешних и внутренних тестирований на проникновение и анализа защищенности веб-приложений. В рамках подобных проектов эксперты-безопасники выступают в роли хакеров и по согласованию с заказчиком взламывают его ИТ-системы, чтобы определить их слабые места. Все данные собраны за в 2019 и первую половину 2020 года.
Недостатки механизмов аутентификации
Наиболее распространенным недостатком в механизмах аутентификации внешних систем и приложений стало отсутствие защиты от атак подбора учетных данных. Он был обнаружен в 46% исследуемых систем. В них, в частности, не отслеживалось и не ограничивалось количество неудачных попыток аутентификации, отсутствовали временные задержки между попытками ввода пароля.
Также у 21% компаний была слабая парольная политика, то есть пароли не соответствовали современным требованиям по длине и набору символов. А ведь именно парольные политики не дают пользователям создавать простейшие комбинации.
Уязвимыми могут быть и сложные, на первый взгляд, пароли. Дело в том, что, кроме атак полного перебора (так называемого bruteforce), злоумышленники часто применяют атаки по словарю. Они основаны на том, что владелец аккаунта использует не случайный набор символов, а реально существующие слова или распространенные комбинации. Тогда злоумышленники запускают программу, которая автоматически подбирает подходящее слово из специальных баз данных (словарей). Однако единицы сервисов и систем при создании и смене паролей проверяют их наличие в подобных публичных словарях и списках утечек.
Ошибки пользователей при создании паролей
К сожалению, не все проблемы по защите систем и данных решаются на стороне разработчиков и администраторов. Важную (если не ключевую) роль здесь играют сами пользователи. Проводя работы по тестированию на проникновение, эксперты «Ростелеком» часто видят:
- использование простых словарных паролей (например, !QAZ2wsx, February2020). Повторимся, что пароль может отвечать всем требованиям парольной политики, но все еще быть слабым, поскольку присутствует в публичных словарях;
- использование паролей по умолчанию. Учетные данные «admin:admin» пока не ушли в прошлое, хотя и звучат как шутка. При этом, как и в первом случае, такие пароли можно легко найти в специализированных словарях или документации к программному обеспечению;
- использование имени пользователя в качестве пароля. Несомненно, пароль, совпадающий с логином, легко запомнить. При этом он может быть длинным, со специальным символом, добавлением цифры в конец либо взамен одной из букв, но для злоумышленника это все равно выглядит так: «нашел имя пользователя – пароль в подарок»;
- использование одного пароля для нескольких учетных записей. Именно эта ошибка позволяет злоумышленниками проводить атаки Credential Stuffing (когда для взлома аккаунта используются учетные данные, украденные ранее на других сервисах). Так что повторное использование пароля может стать для хакера универсальным ключом от всех «дверей»;
- создание паролей по шаблону (например, SomeGoodLongPass1, SomeGoodLongPass2 и т.д.). Использование шаблонов чаще встречается в системах, где требуется периодическая смена пароля. Эта проблема чем-то схожа с использованием одной и той же комбинации на разных ресурсах: если пароль был украден ранее, то злоумышленник сможет просто менять цифру и легко получать доступ к «учетке» пользователя.
Как действуют хакеры?
Но это все теория. Давайте теперь на практике посмотрим, как же хакеры подбирают пароли от ваших аккаунтов. Ниже описаны несколько случаев, связанных с подбором паролей, которые встречались в проектах по тестированию на проникновение.
Пример 1. Без словарей и автоматизированных инструментов
Во время одного из исследований эксперты обнаружили административный интерфейс ApacheMQ. Естественно, от посторонних глаз его защищала форма аутентификации.
Для начала мы решили проверить пару «admin:admin», и это действительно сработало. Как можно прочитать в документации, «admin:admin» являются учетными данными по умолчанию, которые не сменили после установки. А это значит, что, подобрав пароль от ApacheMQ, хакер мог бы легко проникнуть во внутреннюю сеть заказчика», — рассказал руководитель отдела анализа защищённости Solar JSOC компании «Ростелеком» Александр Колесов.
Если предположить, что пароль сменили бы на случайную последовательность символов той же длины (например, «Ha?z9»), то подбор занял бы до 5 лет, а примерная скорость подбора составила бы 50 паролей/сек.
Пример 2. Автоматизируем подбор паролей
В другом проекте (получение доступа к веб-приложению компании-заказчика) учетные данные «admin:admin», к счастью, уже не сработали. Зато при исследовании публично доступных сценариев и содержимого приложения специалисты «Ростелекома» обнаружили ряд активных учетных записей пользователей. Осталось только подобрать к ним пароль. Выяснилось, что в веб-приложении клиента не было защиты от атак с использованием подбора данных, поэтому достаточно было написать сценарий, который в автоматическом режиме начал перебирать различные комбинации.
Спустя 3 часа комбинация была подобрана. Как оказалось, в аккаунте использовался словарный пароль, что и привело к его компрометации. Если бы вместо этого пользователь придумал случайную комбинацию символов той же длины, что и словарный пароль, ее подбор занял бы более 17 млн лет.
Пример 3. Password Spraying
Однако чаще всего корпоративные учетные записи подключены к Active Directory (специальное хранилище данных обо всех объектах сети). Если злоумышленник начнет подбирать пароль по словарю к учеткам, то система это «увидит» и заблокирует сразу всех пользователей AD. Хакер же преследует иную цель: он хочет проникнуть во внутренний периметр компании, оставаясь незамеченным. Это накладывает определенные ограничения на проведение атак с подбором учетных данных.
Чтобы этого избежать, применяется атака типа Password Spraying, которая предполагает поочередное введение одного и того же пароля к каждой из доступных учетных записей. К примеру, берется 100 учетных записей и 1 пароль, который пытаются «примерить» ко всем имеющимся «учеткам», потом берется 2-й пароль и т.д. Так как это делается с большой разницей во времени, пользователи не будут заблокированы. Обычно для проведения атаки хакеры используют заранее подготовленный список учетных записей, который могут, например, собрать из открытых источников или в результате эксплуатации других уязвимостей.
В одном из проектов для дальнейшего продвижения в сети нашим специалистам необходимо было получить учетные данные хотя бы одного доменного пользователя (это корпоративная учетная запись, которая позволит получить доступ к почте и подобным корпоративным сервисам). Атаку Password Spraying решили провести на одном из корпоративных сайтов, расположенных в интернете. Каждый день с интервалом 40-70 минут проводились попытки входа со слабыми паролями из публичного словаря. Несмотря на достаточно медленный перебор (не более 10 паролей в день), учетные данные активного пользователя удалось найти на 12 день. Очевидно, что подобрать случайную последовательности из 9 символов за примерно 120 попыток практически невозможно», — отметил Александр Колесов.
Надежный пароль — какой он?
Так как же придумать пароль, который сможет защитить системы и обрабатываемые в них данные от несанкционированного доступа? Национальный институт технологий и стандартов (NIST) выпускает рекомендации по цифровой идентификации личности (Digital Identity Guidelines), которые в том числе касаются реализации парольных политик и предъявляемых к паролям требований. Многие компании по всему миру следуют данным рекомендациям при разработке и обслуживании систем.
Когда-то NIST рекомендовал обращать внимание на алфавит паролей, но сегодня на первое место ставится его длина. Институт рекомендует использовать длинные парольные фразы вместо коротких буквенно-цифровых комбинаций со специальными символами. При этом длина пароля должна составлять не менее 8 знаков.
Также важно проверять, содержится ли устанавливаемый пароль в словарях или среди ранее скомпрометированных паролей. В случае если комбинация была обнаружена, стоит объяснить пользователю, почему именно его вариант пароля отклонен.
Также не стоит забывать о двухфакторной аутентификации (когда, помимо пароля, пользователю надо ввести, например, одноразовый код, высланный на телефон). Это усилит защиту от несанкционированного доступа, поскольку, кроме информации о пароле, злоумышленнику необходимо дополнительно обладать еще одним фактором, например, физическим устройством пользователя.
Двухфакторная аутентификация в настоящее время является лучшей защитой от таких атак, как словарный и полный перебор пароля, Credential Stuffing и Password Spraying. Но в то же время она требует дополнительных затрат на организацию со стороны компании, а восстановить доступ в случае потери второго фактора (например, телефона с приложением для генерации одноразового кода) достаточно сложно.
Как применять парольные фразы?
Со случайными последовательностями символов и словарными паролями все более-менее интуитивно понятно: словарные пароли — плохо, а случайные, более 8 символов — хорошо. А вот с фразами возникают вопросы: что это и какой длины она должна быть?
Парольная фраза — это последовательность слов, например, RosePuppyShelfForest. Ее основное преимущество – простота запоминания.
Активный словарный запас русско- и англоговорящего человека составляет 10–20 тысяч слов. Предположим, что потенциальный злоумышленник обладает словарем из 15 000 активно употребляемых слов и использует его при подборе. Сравним энтропию (то есть уровень сложности) парольных фраз, которые можно составить из предполагаемого словаря, и случайных последовательностей символов различной длины.
Как видно из таблиц, парольные фразы из 4 слов по уровню энтропии сопоставимы со случайной последовательностью из 8–9 символов. Следовательно, парольная фраза должна содержать не менее 4 случайных слов. Стоит отметить, что при включении в парольные фразы специальных символов и цифр их сложность будет только возрастать.
Выводы
Для защиты систем и данных требуются комплексные действия со стороны как разработчиков, так и пользователей. Первым — следует выстраивать ИБ-защиту с учетом возможных атак подбора данных, внедрять двухфакторную аутентификацию и помогать пользователям придумывать сложные и надежные комбинации, прописывая необходимые требования в политиках безопасности. А вторым — стоит использовать генераторы паролей, не ориентироваться на минимальные парольные требования и помнить, что для злоумышленников нет «неинтересных» аккаунтов — любой может попасть в фокус их внимания.