Ключ от всех дверей: как хакеры взламывают пароли офисных сотрудников

Практически у каждого офисного сотрудника есть учётная запись в корпоративной сети.  Придумать пароль для своего аккаунта – первое, что надо сделать сотруднику при выходе на новую работу.  Но многие относятся к этой задаче халатно: помимо рабочей, у каждого человека есть множество личных «учёток», а придумать и запомнить надежные пароли к каждой из них и сложно, и лень. Увы, выбор часто делается в пользу простейших комбинаций типа «1234Qwerty» – таким «грешат» и небольшие организации, и крупные компании. В итоге корпоративные аккаунты, которые должны быть защищены от посторонних глаз, становятся для хакеров легкой добычей и простой точкой доступа к ИТ-системам компании.

   
   

Как именно это происходит и какие пароли злоумышленникам не по плечу?

Проникнуть в сеть

По данным центра мониторинга и реагирования на кибератаки Solar JSOC компании «Ростелеком», подбор учётных данных применяется в 18% атак и стоит на третьем месте по популярности среди прочих методик хакеров. Многие пользователи уверены, что их аккаунт не может заинтересовать злоумышленников, особенно если речь идёт о корпоративной «учётке». На самом деле хакера интересует абсолютно любой аккаунт, который поможет ему проникнуть во внутреннюю сеть той или иной компании, закрепиться в ней, развить атаку и впоследствии украсть конфиденциальные данные или получить контроль над ИТ-инфраструктурой организации.  

Многие пользователи уверены, что их аккаунт не может заинтересовать злоумышленников, особенно если речь идёт о корпоративной «учётке». На самом деле хакера интересует абсолютно любой аккаунт, который поможет ему проникнуть во внутреннюю сеть той или иной компании.

Для проведения одних атак используются ошибки в разработке программного обеспечения, из-за которых система не блокирует многочисленные неправильные попытки ввода учётных данных. Для других – недостаточная осведомленность пользователей в вопросах создания и управления паролями.

«Ростелеком» во время внешних и внутренних тестирований на проникновение и анализа защищенности веб-приложений выявил самые распространённые ошибки и ненадёжные пароли в компаниях-заказчиках. В рамках подобных проектов эксперты-безопасники выступают в роли хакеров и по согласованию с заказчиком взламывают его ИТ-системы, чтобы определить их слабые места. Все данные собраны за в 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 случайных слов. Стоит отметить, что при включении в парольные фразы специальных символов и цифр их сложность будет только возрастать.

Выводы

Для защиты систем и данных требуются комплексные действия со стороны как разработчиков, так и пользователей. Первым – следует выстраивать ИБ-защиту с учетом возможных атак подбора данных, внедрять двухфакторную аутентификацию и помогать пользователям придумывать сложные и надежные комбинации, прописывая необходимые требования в политиках безопасности. А вторым – стоит использовать генераторы паролей, не ориентироваться на минимальные парольные требования и помнить, что для злоумышленников нет «неинтересных» аккаунтов – любой может попасть в фокус их внимания.