Всем доброго времени суток. Закончились предновогодние авралы и зимние каникулы и пора уже что-нибудь написать в блог. Первую запись в этом году я хочу посвятить ликбезу по методам кражи паролей в противовес одной из предыдущих публикаций: Когда вас «взломали» не обязательно бежать менять все пароли. Сразу стоит уточнить, что материал направлен на неспециалистов по защите информации и носит ознакомительный характер. Хотя, возможно, специалисты тоже подчерпнут для себя что-то новое.
Как бы все не ненавидели пароли, это по сей день остается наиболее популярным средством идентификации, но, к сожалению, иногда у нас их крадут. Частично проблему помогает решить двухфакторная аутентификация, но лишь частично и лишь для наиболее критичных сервисов.
По статистике наиболее распространенными причинами потери контроля над аккаунтами становятся две вещи: использование простых (словарных) паролей и социальная инженерия. В этой статье я расскажу об основных методах взлома паролей естественно с целью повышения осведомленности в этом вопросе у широкой аудитории (использование материалов в деструктивных целях карается законом, автор ответственности не несет и прочее бла-бла-бла).
- Угадывание
Да, все так просто. Ваш пароль могут тупо угадать. Помните все эти эпизоды в голливудских фильмах, когда герои взламывают чей-то компьютер и в качестве пароля пробуют имена детей, бабушек, дедушек, дядь, теть, клички домашних животных жертвы и т. д.? Так вот, это действительно один из действенных способов взлома и этот архаичный метод эффективен до сих пор. Ведь сейчас все публикуют тонны информации о себе в социальных сетях и если пароль основан на каких-то данных, связанных с личностью владельца взламываемого аккаунта, то подбор пароля — дело времени (это как раз является причиной того, почему пароли нужно периодически менять).
Противодействие методу: в общем, надеюсь, вы поняли, что «tanyushka1990» — это плохой пароль, даже если Танюшка это не вы, а ваша любимая внучка. Используйте не угадываемые интуитивно пароли. Периодически (не реже раза в год) меняйте пароли хотя бы к критичным аккаунтам.
- Социальная инженерия
Социальная инженерия понятие достаточно широкое. Социальный инженер может взаимодействовать с жертвой как лично, так и по телефону, но чаще всего взаимодействует по электронным каналам связи — мессенджеры, соцсети, электронная почта. И здесь мы не будем рассматривать методы социнженерии как таковые, тут я лучше посоветую почитать классику жанра — книгу В. Саймона и К. Митника «Искусство обмана». Здесь нам важно то, что методы социальной инженерии в плане кражи паролей направлены на то, чтобы заставить жертву саму отдать свой пароль. Один из примеров выглядит так: злоумышленник представляется новым системным администратором и говорит сотруднику вашей организации, что ему нужен пароль от электронной почты этого сотрудника для проведения каких-нибудь сферических вакуумных тестов. Другой пример, когда личный контакт злоумышленника с жертвой отсутствует: веерная рассылка с фишинговой ссылкой и тревожным сообщением (например, на ваш аккаунт нажаловались, его заблокировали и вам «нужно» пройти по ссылке для разблокировки). Фишинговая ссылка ведет на страницу, заранее подготовленную злоумышленником и один в один похожую на страницу авторизации какого-нибудь популярного сервиса, например: vk.com, gmail.com, facebook.com и т. д. Что происходит дальше: жертва, думая, что это легальный сервис, вводит свой логин и пароль, эти идентификационные данные отправляются злоумышленнику, выдается сообщение об ошибке (ну кто из нас никогда не ошибался при вводе пароля? всякое бывает!) и далее пользователь перенаправляется на настоящую страницу авторизации, ведь грязное дело уже сделано и жертву нет смысла держать на поддельной странице. Кстати, если кто-то еще не знает, почему Windows просит нажать сочетание клавиш Alt-Ctrl-Del перед входом в систему, настоятельно советую загуглить и почитать.
Противодействие методу: обычно на предприятиях используются гибридные методы противодействия социальной инженерии (на тех предприятиях естественно, где вообще озаботились вопросами защиты информации), но нужно понимать, что поскольку социальный инженер может провзаимодействовать с жертвой и без использования каких-либо каналов связи (и, соответственно отфильтровать, заблокировать, отследить его сообщения мы не сможем), то единственным действительно эффективным методом противодействия является информирование сотрудников (ну, или себя самого, если речь идет о личной безопасности) о методах социальной инженерии. Ведь в наши дни мало кто поведется на наследство нигерийского принца или на развод «Мама, закинь денег на номер ХХХХ. Потом объясню», а ведь когда-то эти методы работали.
- Подглядывание
Здесь только вскользь упомяну о таких очевидных вещах, как о паролях на стикерах, которые приклеены к монитору или на бумажках под клавиатурой. Под подглядыванием здесь можно понимать и подглядывание процесса набора пароля. То есть пароль лучше вводить, когда за процессом никто не наблюдает. Есть люди с интересными способностями. Например, один мой знакомый поспорил со мной, что посмотрит, как я ввожу пароль на ноутбуке, а потом повторит ввод этого пароля сам. И действительно повторил. Я очень удивился, так как владею слепым десятипальцевым набором и могу ввести свой пароль очень быстро. Оказалось, что у знакомого какая-то особенная фотографическая память. Опасный человек =)
То есть подглядывание помогает злоумышленнику быстро получить готовый пароль и не прибегать к другим более сложным или ресурсоемким техникам, о которых речь пойдет далее. Но подглядывание пароля «глазами» это не единственный способ. Например, если вы вводили свой пароль на чужом компьютере и случайно сохранили пароль, вышли из аккаунта, но не очистили данные, то кто-то другой может не только войти в аккаунт не зная пароля (это еще полбеды), но и выудить этот пароль в явном виде, вставив в адресную строку браузера на странице где введен логин и пароль (замаскирован звездочками) вот такой простой скрипт:
Скрипт
javascript:(function(){var%20s,F,j,f,i;%20s%20=%20%22%22; %20F%20=%20document.forms;%20for(j=0;%20j<F.length;%20++j) %20{%20f%20=%20F[j];%20for%20(i=0;%20i<f.length;%20++i) %20{%20if%20(f[i].type.toLowerCase()%20==%20%22password%22) %20s%20+=%20f[i].value%20+%20%22\n%22;%20}%20}%20if %20(s)%20alert(%22Passwords%20in%20forms%20on%20this %20page:\n\n%22%20+%20s);%20else%20alert(%22There%20are %20no%20passwords%20in%20forms%20on%20this %20page.%22);})();
[свернуть]
Если пароль используется на других аккаунтах, то злоумышленник может получить доступ и к ним тоже. Вот поэтому специалисты по безопасности категорически не рекомендуют использовать один и тот же пароль для разных аккаунтов.
Противодействие методу: не вводите пароль, когда кто-то стоит рядом и смотрит на ваши руки. Не вводите пароль на недоверенных устройствах. Если все же пришлось, позаботьтесь об очистке информации о паролях и cookies. К тому же на недоверенных устройствах могут быть установлены кейлоггеры.
- Подбор паролей по словарям
Мы плавно перешли от интуитивных и мошеннических техник угона паролей к техническим. Первая из них это подбор паролей по словарям. Пожалуй, даже неспециалисты в области информационной безопасности слышали из новостей о крупных утечках паролей к почтовым ящикам на разных почтовых сервисах. Как потом выяснилось большинство из этих утечек было связано не со взломами серверов поставщика услуг, а с банальным подбором паролей к почтовым ящикам по словарям. Большинство паролей «взломанных» почтовых ящиков представляли из себя комбинации типа «123456», «qwerty» и тому подобные. В разделе «Материалы» я выложил парочку словарей с паролями (их можно пополнять самостоятельно), которые можно использовать как в различных инструментах типа John the Ripper или Hydra, либо для проверки банальным поиском есть ли в словаре ваш пароль. Если есть, то срочно меняем!
Противодействие методу: использование сложных, не словарных паролей.
- Брутфорс
Название метода происходит от двух английских слов: brute — грубая и force — сила. Из названия интуитивно понятно, чем этот метод отличается от предыдущего — здесь просто перебираются все возможные комбинации пароля. Метод затратен по времени и по ресурсам, ведь для подбора таким методом нужны немалые вычислительные ресурсы. Поэтому к такому методу злоумышленники прибегают только в крайних случаях. Уменьшить время подбора может позволить, например, знание точной длины пароля или знание того, что в пароле точно нет специальных символов и цифр. Таким образом, сокращается количество возможных комбинаций.
Противодействие методу: использование длинных хаотичных паролей и периодическая смена паролей.
- Радужные таблицы
Все кому в последние годы приходилось восстанавливать пароль к какому-либо сервису должны были заметить, что если раньше некоторые сервисы просто присылали вам ваш пароль на электронную почту, то теперь вам нужно сразу же придумать новый пароль. Это связано с тем, что ни один уважающий себя сервис не хранит пароли в открытом виде. Хранятся пароли в виде хешей. Если коротко, то хешем называется результат преобразования текста (в нашем случае — пароля) некой необратимой математической функцией. Результат преобразования распространенным алгоритмом MD5 слова «password» (без кавычек) выглядит следующим образом: 5f4dcc3b5aa765d61d8327deb882cf99. Примерно в таком виде и хранятся наши пароли у провайдеров услуг, и поскольку считается, что функции необратимые, то сами провайдеры вроде как не могут знать наш пароль и выслать нам его в открытом виде. Подробнее о хешировании можно почитать здесь.
Радужные таблицы, если очень грубо говорить позволяют восстановить пароль по хэшу. Полный процесс конечно гораздо сложнее, чем кажется. Поэтому, кому интересно ознакомиться с технологией подробнее, можно начать со страницы в википедии. Казалось бы, что с помощью радужных таблиц можно было бы взломать почти любой пароль, но и тут есть свои сложности для злоумышленника. Если при брутфорсе нужны временные и ресурсные затраты на сам перебор, то в случае радужных таблиц то же самое нужно для генерации этих самых таблиц. При этом любой набор радужных таблиц будет иметь множество ограничений, к ним относятся: ограничение на длину пароля, ограничение на набор символов, ограничение на конкретный алгоритм хэширования. В сети в общем доступе можно найти радужные таблицы для подбора паролей не длиннее 6 символов, которые содержат только буквы английского алфавита обоих регистров, но без спецсимволов и цифр. Но вот уже за что-то посерьезнее просят денег.
Противодействие методу: засолка хешей. К сожалению, данный вид противодействия доступен только на уровне администраторов сервисов и никак не зависит от действий конечного пользователя.
- Гибридные методы
Под гибридными методами понимается сочетание различных методов, приведенных выше, в совокупности. На самом деле, пример использования методов «брутфорс» + «подглядывание» уже был приведен выше. Например, злоумышленник может подсмотреть не пароль целиком, а лишь символы, из которых состоит пароль. Это позволит ему в параметрах при брутфорсе указать только нужные символы, а все остальные исключить из перебора, тем самым существенно сократив количество возможных комбинаций.
Еще один пример гибридного метода: берется словарное слово и в нем делаются замены букв на спецсимволы. Например, берется словарный пароль «password» и пробуются комбинации «password123», «[email protected]», «pa$$w0rd» и т. д.
Противодействие гибридным методам заключается в использовании всех методик противодействия, приведенных выше.