Passwords, passwords never change...
Почти каждый пользователь сети Интернет имеет хотя бы один аккаунт или хотя бы однажды оставлял свои данные в различных службах. Почтовые сервисы, социальные сети, облачные хранилища, онлайн-игры и многое другое, – в одном Facebook уже более 1 млрд учетных данных. Естественно, что, имея большую аудиторию, компании стараются обеспечивать хорошую защищенность своих серверов и сервисов. Однако, если пользователи не прилагают усилий к защите своих аккаунтов и вообще не соблюдают минимальных мер информационной безопасности, все усилия извне могут оказаться напрасны.
Зачем взламывают аккаунты? Многие могут сказать, что у них ничего «секретного» нет и вообще они «только музыку слушают». Однако, получив доступ к пользовательскому аккаунту, злоумышленник иногда может завладеть следующей информацией:
- Персональные данные;
- Платежные данные: история операций, платежная информация и др.;
- Переписка, включающая файлы с копиями паспортов, приватные фотографии и другие критичные документы.
Захватив контроль над аккаунтом, атакующий затем может задействовать его для рассылки спама, вирусов, атаки на других пользователей: в частности, попросить всех друзей по социальной сети перевести деньги на номер телефона под каким-нибудь предлогом.
Некоторые могут сказать: «мне нечего скрывать». Но задумайтесь, так ли это? Например, знаменитостям, фотографии которых были выложены в сеть, наверное, тоже было нечего скрывать, но вряд ли они хотели подобного.
Не стоит забывать и о том, что компрометация даже одного «неинтересного» аккаунта может привести ко взлому более критичных данных того же пользователя (многие применяют один пароль для разных сервисов). Помимо этого, через почтовый ящик возможен доступ к разным ресурсам, которые привязаны к нему с помощью функциональности восстановления пароля. Цепочка аккаунтов может рухнуть как карточный домик, если, допустим, будет восстановлен пароль к аккаунту в соцсети, а через него успешно совершена авторизация на тех сайтах, которые используют для аутентификации страницу пользователя в Facebook, ВКонтакте, LinkedIn и т. д.
Парольные политики на сервисах
Для того, чтобы пользователи не смогли довольствоваться простейшими паролями, существуют парольные политики. Они определяют требования к длине, типам символов, сложности паролей и т. д. В ходе данного исследования мы решили разобраться, какие политики используются на различных веб-сервисах и как компании защищаются от слабых паролей.
Рассмотрим два возможных вектора атак на пользовательские аккаунты.
Злоумышленник собрал базу данных пользователей какого-то сервиса и пытается подобрать пароли к ним в режиме «онлайн». В принципе, он может задействовать большой словарь на десятки гигабайт и для каждого аккаунта попробовать найти нужную комбинацию символов. Но если на одну попытку будет тратиться одна секунда, результата можно не дождаться. А после трех попыток авторизации, сервис попросит ввести captcha, и автоматизированный перебор станет невозможен.
У злоумышленника оказалась БД сервиса с хешами паролей. Он пытается подобрать пароли по словарю или полным перебором, но обнаруживает, что хеши – это, например, bcrypt (scrypt), «соленый» sha512 или подобные комбинации, что снижает скорость работы на несколько порядков. Ждать результатов придется так же долго, как и в первом случае.
Было решено протестировать только самые популярные пароли, обладатели которых станут первыми жертвами в обоих вышеприведенных случаях. Чтобы не допустить их использования, при регистрации многие сайты дают рекомендации по выбору оптимальной комбинации символов. Давайте проверим, насколько подобные советы способны защитить пользователей.
Попытаемся ответить на следующие вопросы для каждого сервиса:
- Предъявляет ли сервис какие-либо рекомендации к паролю явно (свод правил на странице регистрации и т. п.)?
- Какими правилами должен руководствоваться пользователь при выборе комбинации символов? Например, нигде не содержится в явном виде каких-либо рекомендаций, но если пароль не подходит по каким-либо параметрам, сервис об этом сообщает.
- С какими слабыми паролями получилось зарегистрироваться?
- Присутствуют ли какие-либо механизмы защиты от несанкционированной авторизации, например, двухфакторная аутентификация?
- Какие ограничения использовали сервисы во время регистрации или восстановления пароля?
Методология
Требования сервисов к паролям
Для анализа был определен набор правил, по сути — компиляция рекомендаций множества сервисов, популярных и не очень. Далее была произведена оценка предлагаемых ресурсами требований с помощью штрафных баллов. За каждый недочет, который может в итоге привести к «ослаблению» пароля, засчитывался балл. И, напротив, «уходили в минус» сервисы с оптимальными рекомендациями. Чем меньше баллов, тем лучше устроена парольная политика сервиса.
Конечно, хуже всего, если правил создания паролей нет вообще, и большое количество штрафных баллов тут не требует пояснений. Однако подход, при котором сервис требует создавать комбинацию не длиннее 12 символов или запрещает использовать символ @, также «ослабляет» пароли, поэтому и здесь штрафные очки оправданы.
Также был сформирован небольшой список паролей, которые в той или иной степени удовлетворяют этим правилам, но при этом являются словарными и часто используемыми. Если сервис позволял зарегистрироваться с одной из предложенных комбинаций, он получал баллы.
Тестовые словарные пароли
Для тестирования возможности установки простых паролей были выбраны пароли из нескольких известных словарей:
• Топ-100 самых плохих паролей (https://stricture-group.com/files/adobe-top100.txt)
• Топ-10000 (https://uwnthesis.wordpress.com/2012/08/30/top-10000-passwords-are-used-by-98-8-of-all-users/)
• Словарь RockYou – один из самых популярных словарей для атаки методом перебора
Достижения
Поскольку на сегодняшний день «ачивки» можно встретить везде где только можно, в качестве антинаград был придуман ряд таких вот «достижений»: информационные и практические.
Практические
Информационные
После заполнения сервиса по всем таблицам, он получал какое-то определенное количество баллов. Градация представлена ниже:
Данная методика не является стандартизированной и не может претендовать на полноту, однако ее цель – в первую очередь, дать представление о состоянии парольных политик веб-сервисов.
Двухфакторная аутентификация
Поскольку в первую очередь исследовались парольные политики, то наличие или отсутствие 2FA (Two Factor Authentication) никак не влияло на итоговый балл.
В ходе тестирования было проанализировано 80 сервисов. Из них почти половина (43) имеет возможность включения двухфакторной аутентификации. Ни в одном она не применялась по умолчанию, а для некоторых приходилось специально искать в Интернете инструкции. Так, есть замечательный ресурс https://twofactorauth.org, на котором представлено огромное количество популярных сервисов и возможность включения на них 2FA. Наличие этой опции, возможность ее активации и правильное использование являются мощным механизмом обеспечения дополнительной безопасности.
Тестирование парольных политик веб-сервисов
В результате тестирование было проанализировано 80 крупнейших ресурсов различного назначения:
- почтовые сервисы
- социальные сети
- электронная коммерция
- платежные сервисы
- игровые сервисы
- криптовалюта
- хранение файлов и совместная разработка
Полное исследование доступно по следующей ссылке:http://dsec.ru/ipm-research-center/research/testing_the_password_policy_web_services/
Ниже представлена таблица, которая наглядно демонстрирует, какие сервисы больше всего беспокоятся о защите аккаунтов своих пользователей, буквально заставляя их создавать и использовать сложные пароли. Здесь же присутствуют и рекордсмены по количеству штрафных баллов, которые в погоне за популярностью забывают о безопасности.
Ниже расскажу о некоторых «результатах» для некоторых из них.
Почтовые сервисы
Почтовые сервисы – самые популярные из исследованных ресурсов. Помимо обычной переписки, они повсеместно используются для регистрации в других службах и приложениях. Проникнув в почтовый аккаунт, можно с помощью функции восстановления паролей получить доступ к другим сервисам, где зарегистрирован пользователь.
У половины крупнейших почтовых сервисов дела с защитой от простых паролей обстоят неплохо. За исключением одной службы, остальные не стали принимать в ходе тестирования простейшие комбинации. Однако если к простому паролю добавить хоть одну цифру/символ или изменить начальный символ на заглавный, он сразу становился приемлемым.
Социальные сети
Это самые популярные сервисы в мире сегодня: у одного только Facebook свыше миллиарда пользователей. Неудивительно, что с помощью соцсетей даже устраивают политические перевороты.
Обычно аккаунт человека в такой сети – не просто электронный набор данных типа John117, а описание конкретной личности. Люди не всегда понимают, что их профили могут быть взломаны, и предоставляют подробную информацию о себе. Иногда, проникнув в аккаунт в социальной сети, злоумышленник может завладеть критичными данными человека и доступом ко всему его кругу общения.
Большинство исследуемых сервисов предъявляет только минимальные требования к длине пользовательского пароля.
Очень «порадовал» сервис MeetMe, предложивший не утруждать себя и остановиться на пароле длиной от 3 до 12 символов.
В большинстве случаев все или подавляющее количество тестируемых паролей подошли. Получается, что соцсетям все равно, какой пароль вы придумаете.С парольными политиками соцсетей дела обстоят неважно. Об этом свидетельствуют как общие оценки, так и огромное количество «достижений». Понятно, что это сделано для удобства: пользователь должен быстрее зарегистрироваться в соцсети, ему ничего не должно мешать, а вопросы безопасности остаются «за кадром». Выбрал слабый пароль – твои проблемы.
Электронная коммерция
Поскольку онлайн-магазины и предприятия электронной коммерции позволяют приобретать товары и услуги, пользователям удобно оставлять им свои персональные данные, сообщать о месте жительства и вообще давать всю свою контактную информацию. Неплохо было бы, чтобы эти сервисы запрещали устанавливать пароли типа 123456. Посмотрим, что происходит на самом деле.
Оказалось, что сервисы электронной коммерции, как и соцсети, не любят предъявлять какие-то конкретные правила и требования к сложности пароля. Исключения – разве что Amazon, eBay и Best Buy.
Подобную «беззаботность» по отношению к паролям можно объяснить желанием привлечь и удержать покупателей. Если пользователь тратит на оформление покупки или регистрацию на одном сервисе две минуты, а на другом тридцать секунд, при условии, что ассортимент и цены приблизительно равны, он наверняка пойдет совершать покупки на второй сервис.
Статистика показывает (хоть выборка и невелика), что только в 10 % онлайн-магазинов существует какая-либо парольная политика. За исключением одного, все конкурсанты могут составить «достойную» конкуренцию социальным сетям. И это при том, что все вполне представляют себе, какие перспективы перед злоумышленником открывает взлом аккаунта пользователя сервиса электронной коммерции. С его помощью можно получить данные о заказах, истории платежей, персональную информацию. В конце концов, можно «освоить» чужие бонусы или заказать пользователю большое количество товаров на дом. Интересный факт: при попытке восстановить пароль Ozon.ru дает не ссылку для создания нового, а актуальный пароль в открытом виде.
Выводы
Не всегда даже самые крупные сервисы уделяют достаточное внимание защите от создания простых паролей, а значит, и безопасности аккаунтов пользователей. Лишь единицы из самых популярных ресурсов Интернета предъявляют серьезные требования к аутентификации. В ходе исследования, победителями оказались широко известные ресурсы: Gmail, Apple Store, MEGA, WebMoney, eBay. Однако большинство – проиграло. В ежедневных сводках утечек информации присутствуют даже специализированные ресурсы, на которых публикуются аккаунты пользователей тех или иных сервисов, специализированные скрипты для брутфорса учетных записей и многое другое.
Такое отношение к безопасной аутентификации можно объяснить погоней сервисов за аудиторией. Здесь необходимо выбрать «золотую середину»: слишком сложные правила заставят потратить ощутимо больше времени на регистрацию, что может отпугнуть пользователя. С другой стороны, полное отсутствие политик обязательно повлечет за собой возникновение инцидентов.
Впрочем, как бы ни старались разработчики сервисов, если пользователь сам не будет заботиться о своей защите, ему никто не поможет.
Популярные заблуждения
- Добавь больше символов – и пароль уже безопасен.
Повышение устойчивости пароля к перебору – субъективная задача, которая зачастую решается незамысловато: просто добавь букв/цифр. Нередко требование включить заглавную букву, цифры и увеличить длину до 8 символов и более выливается в использование Qwerty123 и подобных комбинаций. Статистика показывает, что в 90 % случаев пользователь в качестве заглавной буквы возьмет 1-й символ пароля. А с вероятностью 50 % каждый придуманный самостоятельно пароль попадает в 13 самых распространенных масок для атаки перебором.
- Данные, которые хранятся на сайтах, никому не нужны (и даже: «пусть взламывают, от того, что кто-нибудь запостит спам на каком-то местном форуме с моего аккаунта, ничего не изменится»).
Об этом уже не раз писалось – возможно чтение приватной переписки, использование аккаунта для фишинговых атак и многое другое. Любая информация может стать орудием в руках опытного злоумышленника. В частности, взлом почтовых аккаунтов может привести к компрометации всех сервисов, которые к ним привязаны.
- Сложный пароль трудно запомнить, буду использовать один везде либо придумаю правило их создания!
Имена поэтов, названия городов, дата + название сервиса: Antongmail98, Anton1998, RainbowDash и т. п. Почему бы тогда злоумышленнику на другом сервисе не попробовать, помимо вышеозначенных, еще Antonyahoo98,Anton1999, PinkiePie? А метрика сложности по этим паролям подскажет, что на их подбор потребуется более 30 дней.
Сервисам и разработчикам не стоит полностью полагаться на пользователей, а последние не должны безоговорочно доверять интернет-службам. Если ресурс допускает возможность создания пароля длиной менее 8 символов, не осуществляет проверок, халатно относится к собственным рекомендациям, стоит ли вообще доверять ему управление своими данными?
Комментарии (17)
mjr27
17.07.2015 13:51+9Меня в последние годы преследует ощущение, что авторы рекомендаций насчет «f13r23faef32#R@Fefa» вот таких паролей никогда в жизни не держали в руках смартфон.
dom1n1k
17.07.2015 19:33+4Меня как-то умилил форум (из разряда тех, где регистрируешься ради пары сообщений — я уже даже не помню его названия!), который требовал длинного и сложного пароля с цифрами, заглавными, спецсимволами… Имел хитрую капчу. Всё нужно было вводить дважды.
А в конце — сюрпрайз! — пароль приходит на почту в открытом виде.
armab
18.07.2015 14:50+1Не всегда даже самые крупные сервисы уделяют достаточное внимание защите от создания простых паролей, а значит, и безопасности аккаунтов пользователей.
У меня немного другое мнение. Раздражают сервисы с подобной политикой:
- ваш пароль должен содержать 8+ символов
- 8? ок, теперь в пароле должна быть заглавная буква
- есть заглавная? Теперь добавьте спец-символ
- добавили? ок, ок, теперь должна быть хотя бы одна цифра
- прошло 6 месяцев, теперь поменяйте пароль снова
Верные методы распугать всех пользователей. И такие методы чаще используются в рунете, чего не скажешь про западный рынок.
Мое утверждение такое: сервис изначально должен работать так, чтоб его было очень-очень сложно/неэффективно брутофорсить (Rate limiting, распознавание/блок опасной активности итд) и система защиты должна быть достаточно стойкой без необходимости раздражать пользователя слишком строгой парольной политикой. В итоге хорошо давать рекомендации (strong/weak), но нельзя заставлять пользователя устанавливать пароль, который он в итоге забудет.
Хорошо работающая система безопасности практически невидима для пользователя!
Защита пароля от перебора — это проблема сервиса, а не проблема пользователя!
Очень важно соблюсти баланс.zt3f Автор
18.07.2015 18:49+2И такие методы чаще используются в рунете, чего не скажешь про западный рынок.
Статистика показывает что нет.
чтоб его было очень-очень сложно/неэффективно брутофорсить
Можно насобирать логинов (почтовых адресов) пользователей и прогнать их по одному, двум паролям. Если все сделано для удобства и нет явно каких либо правил для установки пароля, то наверняка кто-нибудь да «попадется».
(Rate limiting, распознавание/блок опасной активности итд)
И другие замечательные вещи, которые нужно долго и правильно настраивать, и которые могут в итоге только усугубить ситуацию.armab
18.07.2015 21:31И другие замечательные вещи, которые нужно долго и правильно настраивать
Какие еще есть техники/приемы применимые на практике?
Те что можно реально улучшить/как дополнительно защититься, оставив непопулярную парольную политику в качестве крайней меры?zt3f Автор
19.07.2015 00:02+1На самом деле если посмотреть — что если сервиса, у которого пользователям можно установить пароль 1234, то любые меры по сути буду (как по мне) выглядеть так:
То есть какие-то методы, приемы чтобы прикрыть «дыру», при этом проблема сама не решается на корню. Очень хорошая статья, как не выбирая f13r23faef32#R@lo, сделать себе хороший пароль.
reff
20.07.2015 13:42+1Проще было бы оставить классическую схему, в которой «зелёный» это хорошо/плюс, а «красный» это плохо/минус.
Аварийная остановка чего-нибудь (лифт, станок, etc) всегда, Карл, всегда, срабатывает при нажатии красной кнопки.
iago
Я вот не понимаю ограничения в виде обязательного использования цифр и/или спецсимволов. Я еще в детстве придумал пароль-предложение из любимой игры, написанный с ошибкой, т.к. в 12 лет я не очень хорошо знал английский. Я уверен, что эти 18 символов никто не взломает по радужным таблицам, я не хочу запоминать что-то вида «f13r23faef32#R@Fefa», мне больше нравится «IdontWannaWorkToday». Криптостойкость, я уверен, сравнимая, а простота запоминания очевидна.
dmitryredkin
Требовтели спецсимволов в паролях должны гореть в аду.
samodum
Должны гореть те, кто НЕ допускает спецсимволов в паролях
dmitryredkin
И эти тоже, разумеется.
ozonar
А ещё есть те, кто запрещает спецсимволы, но требуют обязательную цифру.
gospodinmir
Этот сервис подсказывает, что сочетание трех практически любых (кроме тех, что состоят из одного символа) слов дают довольно криптостойкий пароль.
К примеру, пароль «HelloDigitalSecurity» — несильно уступает «f13r23faef32#R@lo», но явно удобнее.
Dywar
Да, только как вы думаете, если 100 000 человек введут такие фразы, сколько одинаковых и хорошо известных мы получим? :)
Писать пароль с ошибкой в слове конечно круто, но держать в голове эту ошибку не самое приятное.
Хотя такой пароль безусловно сложный для брута, словарей с известными фразами меньше чем обычных.
UPD:
Если речь идет о полном переборе, то разницы в паролях 'HelloDigitalSecurity' и 'f13r23faef32#R@lo' нет.
phil_b
Почему нет разницы между 'HelloDigitalSecurity' и 'f13r23faef32#R@lo'? Мне всегда казалось, что подключение дополнительных словарей (upper, special symbols, cyrillic + smth else) даст большую вариативность, а потому большее время на перебор, разве нет?
zt3f Автор
Просто если с точки зрения полного перебора для «HelloDigitalSecurity» — здесь 20 символов, нижний и верхний регистр и для полного перебора нужно будет около 2*10^34 операций. Для f13r23faef32#R@lo — 16 символов, нижний, верхний, числа и спецсимволы ~4*10^31. Полный перебор и для 1 и 2-ого закончится например почти никогда, даже если подключить все вычислительные мощности планеты.
С другой стороны можно просто собрать кучу книг, парсить форумы для составления словаря из написанных выражений, чтобы потом попробовать прогнать. Наверняка кто-то да напишет заветную фразу IdontWannaWorkToday ( или можно будет скомбинировать). Вообще много рекомендаций использовать предложения в качестве пароля, но со знаками пунктуации, пробелами и тп.
По поводу HelloDigitalSecurity — просто название компании скомбинированное с каким-нибудь словариком+ правила. Но вот — f13r23faef32#R@lo — не понятно что с этим делать уже.
Dywar
Даст, вы правы. Но время постоянно меняется, а пароли остаются (в том же диапазоне).