Существует бесчисленное множество руководств, которые должны помочь эксперту-криминалисту получить доступ к зашифрованным данным, восстановив оригинальные пароли пользователя. Большинство подобных руководств рассчитано на эксперта-универсала, обладающего навыками целой команды специалистов и расследующего дело государственной важности. Реальность вносит свои коррективы. В этой статье мы расскажем о том, какие шаги можно проделать при неограниченных ресурсах, а какие – если рабочее время эксперта ограничено.
Криптографическая защита сильно эволюционировала за последнее десятилетие. Ушли в прошлое искусственно ослабленные экспортными ограничениями алгоритмы шифрования, а производители стали искусственно замедлять проверку пароля с учётом возможностей современных аппаратных ускорителей. Сегодня для успешного восстановления пароля недостаточно просто ускорить атаку, подключив вычислительные ресурсы одной или нескольких видеокарт; использование аппаратных ускорителей для перебора паролей превратилось из преимущества в жизненную необходимость.
Если преступник выбрал достаточно пароль, длина которого хотя бы минимально превышает сложность пароля усреднённого пользователя ПК, то шансов восстановить его лобовой атакой практически нет. Шанс получить доступ к зашифрованным данным есть, но для его использования придётся потрудиться.
В то же время рекомендации специалистов о сборе информации о пользователе, членах его семьи и домашних животных с целью использовать эти данные для составления словаря интересны, но являются в большей степени благими пожеланиями, чем прямым руководством к действию. Какую именно информацию должен собрать эксперт? В каком виде из собранных данных составляется словарь для атаки? Если очевидно, что преступник не будет использовать в качестве пароля имя любимой собаки в чистом виде, то какие именно комбинации и/или мутации нужно применить к словарю? Ни в одном из известных нам руководств такие подробности не приводятся; считается, что эксперт должен самостоятельно принять решение на основе интуиции и опыта.
Интуиция и опыт – прекрасные помощники, когда речь идёт о делах государственной важности, а ресурсы и время эксперта практически не ограничены. Если же расследуется рядовое преступление, одно из множества, то время эксперта на сбор и анализ данных будет жёстко ограничено. В то же время компьютерные ресурсы (в первую очередь – вычислительное время) ограничены в меньшей степени: компьютер способен работать круглосуточно.
Таким образом, в решении задачи по взлому пароля на первое место выходит оптимизация рабочего времени эксперта, а вычислительное время компьютера или компьютерной сети, потраченное на перебор паролей, имеет хоть и важное, но меньшее значение.
Участвуя в многочисленных мероприятиях, мы часто слышим вопрос: «что можно сделать за 45 минут»? Зачастую именно столько эксперт готов потратить на настройку атаки с использованием опыта и интуиции; сколько времени потратит на перебор паролей компьютер – вопрос отдельный.
В идеальных, тепличных условиях у эксперта будет доступ к мощному оборудованию; в его распоряжение будет передано вся изъятая у подозреваемого аппаратура, использующаяся для хранения и доступа к данным, причём оборудование будет изъято максимально корректным способом, сохранив все авторизованные сессии, смонтированные зашифрованные диски и открытые соединения. У квалифицированного эксперта при этом будет достаточно времени на исследование переданной аппаратуры и не будет никаких других дел, отвлекающих от тщательного анализа улик. В таких условиях часто вскрываются даже самые стойкие пароли – как за счёт обнаруженных в найденных паролях пользователя шаблонов, так и с использованием средств, позволяющих мгновенно получить доступ к уже смонтированным зашифрованным дискам.
В этом разделе мы рассмотрим действия эксперта как раз в таких, тепличных условиях. Если ваша ситуация отличается – переходите к следующей главе.
Итак, если у вас есть время и возможность на проведение комплексного анализа цифровых улик – проведите его. Часто встречается рекомендация собрать всю доступную информацию о пользователе, на пароли которого будет совершаться атака: его имя, дату рождения, адрес, имена членов семьи и домашних животных, важные даты, девичью фамилию матери. С одной стороны, эти действия действительно имеют смысл: многие пользователи воспитаны на голливудских фильмах, и выберут в качестве пароля имя тёщи и год бракосочетания. С другой же стороны, эти действия лишены смысла, если отсутствует ещё один элемент головоломки: другие пароли того же пользователя.
Почему важно получить доступ к другим паролям пользователя? В качестве разминки попробуйте придумать, как вы будете использовать информацию о том, что пользователя зовут Александр, у него есть сын Матвей, родившийся в 2001 году, а его жену зовут Мария. Добавите эти имена в словарь? В какой транскрипции или транслитерации? С заглавной или прописной буквы? А даты будете подставлять в начало или конец пароля, или и вовсе – в середину? Мы часто приводим статистику, что многие пароли составляют из одного или двух слов, после которых идут цифры (и цифрами часто бывают даты), но эта статистика мало что говорит о конкретных паролях конкретного пользователя.
Но вот мы получили доступ к паролям, которые пользователь сохранил в браузере Chrome. Короткий список показывает нам ценность собранной ранее информации:
K#ySkL0 XenTra$ $orryM8
Таким образом, важны не только сами действия («собрать информацию»), но и их порядок. Получив доступ к паролям пользователя, можно понять, нужна ли информация о кличках его домашних животных и девичьей фамилии тёщи – или же время можно сэкономить, запустив альтернативную атаку.
Важность знания о существующих паролях пользователя, пусть и защищающих совсем другие данные или ресурсы, трудно переоценить. Список паролей пользователя поможет не только составить словарь для атаки, но и представит ценнейшие данные для анализа. На основе такого списка можно подобрать или составить наиболее релевантный список слов для словарной атаки, настроить шаблоны, маски и правила мутаций (в приведённом выше примере можно предложить мутации “l00t”). Таким образом, предлагаем следующий план действий, направленный на получение списка паролей пользователя.
Анализ компьютеров
Если у вас есть доступ к компьютеру подозреваемого с авторизованной пользовательской сессией – попробуйте извлечь из него сохранённые пароли. Сделать это можно программой Elcomsoft Internet Password Breaker, которая по нажатию единственной кнопки не только мгновенно извлечёт все сохранённые на компьютере пароли (они извлекаются из распространённых веб-браузеров и почтовых клиентов), но и создаст готовый файл, который можно подгрузить в Elcomsoft Distributed Password Recovery в качестве словаря. Если же в вашем распоряжении – лишь зашифрованные диски, то оцените перспективы взлома шифрования до того, как приметесь работать в этом направлении.
Анализ смартфонов
В современных смартфонах может содержаться огромное количество информации, включая пароли (связка ключей, сторонние утилиты хранения паролей). Впрочем, извлечь эту информацию сможет только эксперт, имеющий квалификацию и опыт работы в мобильной криминалистике. Доступ к разблокированному iPhone может помочь сбросить пароль от компьютера под управлением macOS или узнать пароль от учётной записи Microsoft, который, в свою очередь, может использоваться для входа в систему. Более того, из самого iPhone или привязанной к нему облачной учётной записи можно извлечь и сохранённые пользователем пароли – что и является нашей целью.
Другие файлы с менее стойкой защитой
Наибольший интерес представляет анализ других зашифрованных файлов пользователя, защита которых менее устойчива по сравнению с основным контентом. Мы неоднократно писали о таких файлах; классический пример – слабое шифрование в старых форматах Microsoft Office (файлы с расширениями .doc, .xls без буквы “x” на конце). Настройте атаку на эти файлы в первую очередь, и вполне возможно, что пароль удастся подобрать в разумные сроки.
Облачные сервисы
Если у вас есть возможность извлечь данные из облачного сервиса (посредством маркера аутентификации, логина с паролем или запросом к производителю) – сделайте это. По запросу от правоохранительных органов пароли пользователя, сохранённые в облаке, возвращают компании Google (пароли из браузера Chrome) и Microsoft (соответственно, пароли из браузера Edge). Apple паролей не возвращает, ссылаясь на «сквозное шифрование». Из облачного сервиса Apple iCloud пароли вы сможете извлечь только самостоятельно с использованием Elcomsoft Phone Breaker; для этого вам, однако, потребуются как логин и пароль владельца учётной записи, так и возможность пройти проверку двухфакторной аутентификации. Кроме того, для доступа к паролям («облачной связке ключей») вам также потребуется код блокировки экрана или системный пароль одного из привязанных к данной учётной записи устройств пользователя.
Что делать с найденными паролями дальше? Составьте из них словарь и попробуйте запустить по нему атаку. Очень многие пользователи устанавливают одни и те же пароли на разные ресурсы; шанс, что пароль подойдёт, достаточно велик.
Если ни один из паролей не подошёл, внимательно изучите весь список и попытайтесь уловить закономерности, по которым построены пароли. Ценна даже информация о том, что все пароли сгенерированы случайным образом: она поможет принять решение не углубляться в сбор информации о пользователе и кличках животных, сэкономив массу времени и усилий.
Выше мы описали действия в идеальных условиях – когда есть информация о пользователе, известны хотя бы некоторые его пароли. Но что делать, если атака проводится на отдельно взятый диск или документ, а о пользователе неизвестно ровным счётом ничего? Такие условия встречаются гораздо чаще «тепличных».
Первое, что стоит сделать – это отсортировать задачи по степени сложности.
Стойкость некоторых распространённых форматов приведена на следующем графике:
Как видим, скорость атаки между разными форматами может отличаться даже не в разы — на многие порядки. С другой стороны, ценность информации в зашифрованном контейнере VeraCrypt может превышать ценность информации из единственного документа. Рекомендуем упорядочить атаку таким образом, чтобы в первую очередь проверялись пароли наименее стойких форматов. Разумеется, стойкость формата (она обратно пропорциональна скорости перебора паролей) – не единственный определяющий фактор, и в ряде случаев в первую очередь будут восстанавливаться пароли к наиболее ценным данным.
Важный шаг при проведении «холодных» атак – использование паролей из многочисленных утечек. Принцип этого метода основан на том, что пользователи часто используют одни и те же пароли в силу их простоты и лёгкости в запоминании. Такие пароли могут использоваться многократно на разных ресурсах и совершенно разными пользователями. Классический пример – пароль “Password1”, в точности отвечающий политике безопасности «минимум 8 символов, как минимум одна заглавная буква и как минимум одна цифра». Подобных паролей – множество; имеет смысл использовать такие пароли в качестве словаря.
Как узнать, какие пароли пользуются популярностью среди пользователей? На этот вопрос существует точный ответ: достаточно проанализировать массовые утечки паролей из таких известных сервисов, как LinkedIn, eBay, Twitter, Dropbox и некоторых других. В результате взлома этих сервисов становились известными сотни миллионов паролей. Исследователь безопасности Mark Burnett собрал все известные утечки воедино и обработал данные, отсортировав все утёкшие пароли по популярности и отфильтровав дубликаты, получив в результате список из 10,000 наиболее распространённых паролей. Этот и подобные списки можно получить по одной из ссылок:
Анализ паролей из утечек позволил обнаружить закономерности в поведении англоязычных пользователей.
Ещё одна закономерность заключается в том, что увеличение размера словаря с 10,000 до 10 миллионов паролей не даёт заметного прироста эффективности атак и не имеет смысла ввиду тысячекратно увеличивающегося времени перебора. Соответственно, использование компактного словаря из 10,000 «утёкших» паролей с 30% вероятностью успеха является более эффективным использованием вычислительных ресурсов.
Используя список из 10,000 утёкших паролей, сместим вектор атаки на зашифрованные данные и защищённые паролем ресурсы. Вместо бесконечного увеличения вычислительной мощности системы, на которой производится перебор паролей, можно подключить словарь из 10,000 самых популярных паролей и провести быструю атаку по словарю. Даже на самых стойких форматах на системе, оборудованной графическим ускорителем, время, потраченное на такую атаку, составит считанные секунды.
Если не сработали предыдущие (достаточно быстрые) атаки, то на следующем шаге имеет смысл попробовать атаку по словарю с модификациями («мутациями»). Что именно брать в качестве словаря? Для англоязычных пользователей логичный выбор – самый подробный словарь английского языка; для восстановления паролей пользователей из других языковых групп мы предлагаем готовые оптимизированные словари.
Какие именно мутации имеет смысл использовать?
Обратите внимание: включение таких мутаций даже на средних настройках на многие порядки увеличивает пространство паролей и, соответственно, время атаки.
В большинстве инструментов для перебора паролей поддерживаются и гораздо более сложные атаки с максимально гибкими настройками. Наиболее известным (и поддерживаемым в нескольких разных продуктах, включая наш Elcomsoft Distributed Password Recovery) является синтаксис, придуманный и впервые реализованный разработчиками John The Ripper. В Elcomsoft Distributed Password Recovery этот синтаксис используется при настройке «гибридных» атак, которые позволяют гибко комбинировать слова из одного или двух словарей с практически любыми модификациями. Достаточно сказать, что любые мутации из числа поддерживаемых в EDPR можно реализовать средствами «гибридной» атаки; впрочем, делать это мы не рекомендуем: основанные на скриптовом синтаксисе гибридные атаки заметно сильнее нагружают центральный процессор в сравнении с оптимизированными мутациями.
В оригинальном John The Ripper, а также в старых версиях наших продуктов, для использования таких атак нужно было создавать и редактировать текстовые файлы, но какое-то время назад это изменилось: актуальная версия EDPR упрощает процесс, добавив визуальный редактор правил непосредственно в окно настроек атаки.
Вот краткая и неполная выжимка того, какие правила можно использовать:
{ Ротация: password -> asswordp c Заглавные буквы: password -> Password d Дублирование слова: password -> passwordpassword q Дублирование символов: password -> ppaasssswwoorrdd r Обратный порядок: password -> drowssap V Большие согласные: password -> PaSSWoRD yN Дублировать первые N знаков $X Добавить символ X в конец слова ^X Вставить символ X в начало слова @X Удалить все символы X из слова !X Не пробовать пароль, если в нём содержится символ X /X Не пробовать пароль, если в нём НЕ содержится символа X
Имея столь мощный (а с недавних пор – ещё и простой в использовании) инструмент для «умных» атак трудно удержаться от его использования, но всегда ли это имеет смысл?
Использовать гибридные атаки имеет смысл в единственном случае: вам известны хотя бы несколько паролей пользователя, и вы смогли выделить шаблон, по которому пользователь конструирует пароли. Если вы корректно определили шаблон и составили по нему действующее правило, то шанс найти очередной пароль, построенный по тому же шаблону, будет очень высок.
Если же пароли пользователя вам неизвестны, либо не удалось определить принцип, по которому пользователь выбирает пароли, то использование «гибридной» атаки – пустая трата времени.
Основная идея метода полного перебора проста: в качестве потенциальных паролей опробуются все возможные комбинации указанных символов. В качестве указанных символов могут использоваться буквы (в том числе из национальных алфавитов), цифры и специальные символы. Весьма часто ограничения на использованные символы накладывается на стороне приложения или сервиса — к примеру, позволяется использовать исключительно буквы латиницы, цифры и ограниченный набор специальных символов. В то же время политики безопасности могут диктовать минимальную длину пароля и обязательное использование тех или иных элементов (например, как минимум одной заглавной буквы, цифры или специального символа); эти знания можно использовать для того, чтобы ограничить пространство паролей для перебора и таким образом сократить продолжительность атаки.
Использование грубой силы, он же – метод полного перебора, – жест отчаяния и последний шанс обнаружить пароль. Перед тем, как вы запустите атаку методом полного перебора, определите скорость атаки конкретного файла на используемом аппаратном обеспечении, проведя тестовый запуск. Если скорость перебора достаточна высокая, оцените шанс нахождения пароля в разумный срок. Как именно это сделать?
Простейшие математические вычисления позволяют точно узнать максимальную продолжительность атаки: время, за которое можно перебрать всё пространство паролей заданной длины. Формула включает число возможных символов, из которых состоит пароль, которое возводится в степень количества знаков в пароле. Так, если в качестве возможных символов используются только буквы английского алфавита (их 26), причём как строчные, так и прописные (это ещё 26), а длина пароля — 5 знаков, то возможное число комбинаций будет таким:
(26 + 26) ^ 5 = 380,204,032
Цифры экспоненциально увеличиваются с увеличением длины пароля. Например, для 7-значных паролей одного типа общее количество составляет:
(26 + 26) ^ 7 = 1,028,071,702,528
При добавлении чисел и специальных символов из расширенного диапазона число возможных комбинаций превышает возможности метода прямого перебора:
(26 + 26 + 10 + 33) ^ 7 = 69,833,729,609,375
Чтобы узнать максимальное время, в течение которого будет гарантированно найден пароль заданной длины, достаточно разделить число комбинаций на скорость перебора для заданного типа файлов средствами доступного аппаратного обеспечения. Например, если скорость перебора на компьютере для файла составит 10 миллионов комбинаций в секунду, на восстановление пароля из первого примера (5 букв, оба регистра) уйдёт не более пяти минут. Если скорость составляет 100 паролей в секунду (например, вы пытаетесь взломать зашифрованный последней версией Microsoft Office документ без использования GPU), а пароль содержит не менее 7 символов из расширенного диапазона, то максимальное время атаки увеличивается примерно до 700 миллиардов секунд или ~ 22 тысяч лет.
Основная сложность в переборе паролей состоит в том, что в большинстве случаев ни длина пароля, ни наборы использованных символов заранее неизвестны, поэтому приходится либо пробовать все возможные комбинации, либо – в первую очередь! – использовать альтернативный подход.
Мы постарались написать «руководство по взлому паролей здорового человека» в качестве противопоставления многочисленным советам, которые специалисты по безопасности любят давать всесильным экспертам, восстанавливающим сферические пароли в вакууме. С какой именно целью нужно «собрать максимум информации о пользователе»? Как, а главное – нужно ли эту информацию использовать? Действительно ли нужны «продвинутые» атаки или можно обойтись несколькими простыми, с настройками «по умолчанию»? Надеемся, что в нашей статье вы нашли ответы на все эти вопросы.
Производительное решение для восстановление паролей к десяткам форматов файлов, документов, ключей и сертификатов. Аппаратное ускорение с использованием потребительских видеокарт и лёгкое масштабирование до 10,000 рабочих станций делают решение Элкомсофт оптимальным для исследовательских лабораторий и государственных агентств.
Официальная страница Elcomsoft Distributed Password Recovery »
Elcomsoft Internet Password Breaker мгновенно находит пароли для веб-сайтов, учётных записей, а также почтовых ящиков, хранимые в различных приложениях. Поддерживая все популярные браузеры, а также все версии Outlook Express, Microsoft Outlook, Windows Mail и Windows Live Mail, Elcomsoft Internet Password Breaker поможет вам получить логин и пароль для большого количества ресурсов.