Взлом пользовательских паролей — одно из самых распространённых преступлений в Сети, оставляющее далеко позади DoS-атаки и создание бот-сетей. Почему же хакерам так легко удаётся вскрывать пароли? А всё дело в пресловутом человеческом факторе.
Самая главная причина — мы подсознательно выбираем такие пароли, которые очень сложно угадать и запомнить посторонним людям, но с которыми «на раз» справляется обычный персональный компьютер. Поговорим о том, как на самом деле хакеры вскрывают пароли, и как с этим бороться.
В марте 2013 года известный американский интернет-журнал Ars Technica провёл любопытный эксперимент: его редактор Нэйт Андерсон, никогда раньше не занимавшийся взломом паролей, вооружился свободно доступным в интернете софтом, крупнейшей за последние годы базой хэшей паролей сайта RockYou, также за секунды найденной в Сети, и за какие-то несколько часов взломал чуть меньше половины из загруженного на специализированном форуме списка с 16449 MD5-хэшей, получив порядка восьми тысяч пользовательских паролей в обычной текстовой форме.
Повторим, Андерсон до этого вообще никогда в жизни не занимался вломом паролей. Поэтому, впечатлившись его успехами, в мае 2013 года редакция Ars Technica решила повторить эксперимент с тем же самым списком MD5-хэшей, но уже с участием трёх профессиональных взломщиков. На сей раз результаты оказались ещё более сокрушительными.
Больше всего паролей удалось раскрыть эксперту Stricture Consulting Group Джереми Госни. Используя обычный серийный компьютер на процессоре AMD с видеокартой Radeon 7970, он за двадцать часов взломал 14734 паролей, то есть 90% списка. Второе место занял Йенс Штойбе, ведущий разработчик бесплатного ПО oclHashcat-plus, предназначенного, конечно же, для взлома паролей: используя чуть более мощную машину с двумя видеокартами Radeon 6990, он всего лишь за час с небольшим расшифровал 13486 хэшей, то есть 82% из списка. Ещё один хакер, скрывшийся за псевдонимом radiх, за тот же час вскрыл 62% паролей, но при этом он ещё и подробно комментировал свои действия.
Как же действуют специалисты по взлому, и почему пользовательские пароли так легко расшифровать?
Прежде всего, взламываются «простые» пароли, на что уходит меньше всего времени, а затем, как в любой компьютерной игре, хакер переходит на более высокие уровни, требующие значительно большего времени и особых навыков.
Для начала, запускается подбор по принципу «грубой силы», позволяющий расшифровать более половины паролей длиной от одного до шести символов включительно, в число которых входят по 26 латинских букв нижнего и верхнего регистров, 10 цифр и 33 прочих символов, в сумме — 95. В результате мы имеем весьма скромное число комбинаций, которое среднестатистический десктоп способен рассчитать за считанные минуты.
Удлинение пароля всего на один-два символа радикально увеличивает число вариантов, и полный перебор всех комбинаций будет занимать уже несколько дней. Поэтому специалисты обычно выбирают, к примеру, пароли, состоящие только из букв нижнего регистра, длиной до 8 символов, а также пароли из чисел длиной до 12 символов. Метод «грубой силы» с такими параметрами позволяет расшифровать значительный процент длинных паролей.
Использование метода подбора для более сложных паролей нерационально, поскольку оно может затянуться на годы, и здесь взломщик уже переходит к использованию специальным образом составленных словарных списков, которые подготовлены на основе реальных пользовательских паролей, «засветившихся» при различных утечках. К примеру, самую большую базу англоязычных паролей за последние годы «предоставил» в распоряжение хакеров сайт RockYou в декабре 2009 года. В результате банальной SQL-инъекции хакерам удалось завладеть базой данных более 32 миллионов пользователей, включая логины, пароли и прочую информацию в простой текстовой форме. База RockYou немедленно была включена во все хакерские «словари», которые с тех пор неоднократно пополнялись в результате всё новых утечек, в том числе после взлома социальной сети LinkedIn в 2012 году, когда «утекло» ещё 6,5 миллиона парольных кэшей.
Базы, подобные RockYou или LinkedIn, представляют особую ценность, поскольку содержат реальные пользовательские пароли, а не просто произвольные комбинации. Для расчёта вариантов существуют специальные правила замены и подбора, что даёт ещё больше потенциальных паролей. А если проанализировать тематику сайта, интересы и профессии его пользователей, то можно добавить ещё более тонкие алгоритмы расчёта со специфическими шаблонами и масками.
Любопытно, что пользователи крупных общедоступных сайтов, прежде всего, всевозможных социальных сетей, редко утруждают себя придумыванием сложных паролей, наивно полагая, что размещаемая там информация не представляет особого интереса для злоумышленников. Более того, из 32 миллионов паролей RockYou 290 тысяч представляли собой до боли знакомую комбинацию «123456», а ещё несколько десятков тысяч — похожие сочетания с разным количеством цифр. Наконец, многие пользовали используют одинаковые пароли на разных сервисах, а при взломе паролей на одном сайте, далеко не каждый станет менять его и на всех остальных сайтах. Поэтому словарный подбор остаётся одной из самых мощных и эффективных технологий взлома, позволяющий, по разным оценкам, расшифровать до 60-70% пользовательских паролей на любом общедоступном сайте.
Для взлома оставшегося массива паролей используются гибридные атаки, сочетающие элементы «грубой силы» со словарным подбором. Например, при задании паролей некоторые предпочитают добавлять к одному из своих старых паролей длиной 7-8 символов по одной-две цифре в начало или в конец. Понятно, что с точки зрения безопасности, такие пароли уже не выдерживают никакой критики. Подобные «привычные» способы «улучшения» старых паролей отлично известны специалистам, поэтому такие шаблоны нисколько не повышают их устойчивость.
Ещё один тип гибридных атак сочетает «грубую силу» со статистическим методом на основе цепей Маркова, что позволяет использовать уже полученные данные о характерных особенностях расшифрованных паролей для конкретного сайта, чтобы предсказать возможные пароли других пользователей.
Гибридные атаки в разных вариантах, а также «индивидуальные» настройки масок и шаблонов могут занимать существенное время, но в результате они способны раскрыть до всех 100% паролей для отдельно взятого сайта (среднестатистиски — от 60 до 90%). А если учесть, что более двух третей пользовательских паролей взламывается простыми средствами за считанные часы, предоставляя полезную информацию для анализа, то талантливый профессионал может сократить общее время взлома до разумного минимума.
Почему же хакеры так просто и быстро взламывают пользовательские пароли? Прежде всего, из-за того, что их придумывают люди. Обычные шаблоны и привычки хорошо известны профессионалам, а современная техника, в частности, обычные «бытовые» графические ускорители позволяют быстро просчитать все возможные комбинации: к примеру, Radeon HD7970 способен перебрать более 8 миллиардов вариантов в секунду.
Именно поэтому для промышленного использования рекомендуются специализированные генераторы паролей, использующие алгоритмы, не позволяющие выявить стабильные шаблоны и предотвращающие возможность взлома «грубой силой» за разумный отрезок времени, в течение которого расшифровываемые пароли будут уже заменены другими.
Наконец, ещё одна причина заключается в том, что далеко не все общедоступные сайты реально озабочены безопасностью пользовательских паролей, и используют для создания хэшей достаточно простые алгоритмы, которые обеспечивали бы взамен низкую нагрузку на серверы. Даже некоторые крупные сайты до сих пор применяют печально зарекомендовавший себя алгоритм SHA1 — его устойчивость не укрепило даже добавление «соли», то есть уникального набора битов к каждому паролю перед зашифровкой.
После всех этих подробностей специализированный сайт корпорации Intel, «проверяющий» стойкость паролей, вызывает приступы хохота, когда выдаёт 6 лет на взлом пароля BandGeek2014, подбираемого профессионалом, в худшем случае, за час.
Как же всё-таки максимально защититься от взлома пароля? Гарантированно — никак. Самые общие рекомендации предполагают использование паролей длиной не менее 11-12 символов, включающих в себя буквенные символы в разных регистрах, цифры и прочие символы. При этом в пароле не должен просматриваться никакой явный шаблон, что уже делает эту задачу маловыполнимой для человека. Можно использовать автоматические генераторы паролей, однако уже то, что они написаны незнакомыми людьми, вызывает некоторые сомнения. И, наконец, не используйте на разных сайтах одинаковые пароли, и как можно чаще меняйте их, чтобы взлом одного малозначительного для вас аккаунта не привёл к хищению важных данных с другого. В общем, жить становится всё сложнее и сложнее.