Как хакеры воруют личные данные и пароли

Любые пользовательские данные, от паролей к развлекательным сервисам до электронных копий документов, востребованы у злоумышленников. Украденные данные можно использовать для вывода денег на счета злоумышленников, заказа товаров или услуг или продать киберпреступникам.

Что воруют?

На форумах, где собираются продавцы и покупатели вредоносного ПО, можно найти немало предложений о продаже стилеров. 

Стилер (от английского to steal, воровать) — определенный класс троянов (малвари, вирусов — как хотите), функционал которых полностью состоит из кражи сохраненных в системе паролей и отправка их «автору».

 Стиллер может:

• Собирать данные из браузеров:

• Пароли

• Данные автозаполнения

• Платежные карты

• Файлы cookies

• Копировать файлы:

• Все файлы из конкретной директории (Desktop, например)

• Файлы, имеющие определенное расширение (.txt, .docx)

• Файлы конкретных приложений (файлы криптокошельков, сессии мессенджеров)

• Передавать данные о системе:

• Имя, версия операционной системы

• Имя пользователя

• IP-адрес

• И многое другое

• Красть аккаунты из различных приложений (FTP-клиенты, VPN, RDP и другие)

• Создавать снимки экрана

• Загружать файлы из интернета

Самые многофункциональные экземпляры, например Azorult, собирают полноценный «слепок» компьютера жертвы и ее данных:

• полная информация о системе (список установленных программ, запущенных процессов, имя пользователя, компьютера, версия системы);

• технические характеристики «железа» (информация о видеокарте, центральном процессоре, подключенном мониторе);

• сохраненные пароли, платежные карты, куки-файлы, история посещений с практически всех известных браузеров (более 30 штук);

• пароли почтовых клиентов, FTP-клиентов, IM-клиентов;

• файлы мессенджеров (Skype, Telegram);

• файлы игрового клиента Steam;

• файлы более 30 программ-криптокошельков;

• снимок экрана;

• произвольно заданные оператором файлы по «маске» (например, маска «%USERPROFILE%\Desktop\ *.txt,*.jpg,*.png,*.zip,*.rar,*.doc» означает, что нужно отправить с компьютера жертвы все файлы с рабочего стола, которые имеют указанные расширения).

Зачем собирать какие-то текстовые файлы или, тем более, все файлы с рабочего стола? Дело в том, что в этой папке обычно хранятся востребованные и актуальные для пользователя файлы. Среди них вполне может быть текстовый файл, содержащий пароли, которые должны быть всегда под рукой. Или, например, рабочие документы, содержащие конфиденциальные данные организации, в которой работает жертва.

Как крадут пароли из браузеров?

Все стилеры, когда дело доходит до кражи данных из браузеров (паролей, информации о банковских картах, данных автозаполнения), действуют по практически одинаковой схеме.

Google Chrome и браузеры на основе Chromium

В браузерах, созданных на основе открытого исходного кода Chromium, сохраненные пароли защищены с помощью DPAPI (Data Protection API). При этом используется собственное хранилище браузера, выполненное в виде базы данных SQLite. Извлечь пароли из базы может только тот пользователь операционной системы, который их создал, а также только на том компьютере, на котором они были зашифрованы. Это обеспечивается особенностями реализации шифрования: ключ шифрования включает в себя в определенном виде информацию о компьютере и пользователе системы. Для обычного пользователя вне браузера и без специальных утилит эти данные недоступны.

Но все это не является препятствием для стилера, уже проникшего на компьютер: он запущен с правами этого самого пользователя, и в этом случае процесс получения всех сохраненных данных в браузере сводится к следующему:

1 Получение файла базы данных. Chromium-браузеры хранят этот файл по стандартному и неизменному пути. Для того чтобы избежать проблем с доступом к нему (например, использование его в данный момент браузером), стилеры могут скопировать файл в другое место либо завершить все процессы браузера.

2 Чтение зашифрованных данных. Как уже было сказано, браузеры используют БД SQLite, прочитать данные из нее можно стандартными инструментами.

3 Расшифровка данных. Исходя из описанного выше принципа защиты данных, кража самого файла БД не поможет получить данные, т. к. их расшифровка должна проходить на компьютере пользователя. Но это не проблема: расшифровка осуществляется прямо на компьютере жертвы вызовом функции CryptUnprotectData. Никаких дополнительных данных злоумышленнику не нужно — все сделает DPAPI, так как вызов был сделан от имени пользователя системы. В результате функция возвращает пароли в «чистом», читабельном виде. Сохраненные пароли, данные банковских карт, история посещений — все это получено и готово к отправке на сервер злоумышленника.

Firefox и браузеры на его основе

В Firefox-браузерах для шифрования используется Network Security Services — набор библиотек от Mozilla для разработки защищенных приложений, в частности библиотека nss3.dll.

1 Получение файла базы данных. Firefox-браузеры, в отличие от браузеров на базе Chromium, используют генерацию случайного имени профиля пользователя, что делает расположение файла с зашифрованными данными не определяемым заранее. Однако в силу того, что злоумышленник знает путь до папок с профилями пользователей, ему не составит труда перебрать их, «заглядывая» внутрь и проверяя на наличие файла с определенным именем (имя файла с зашифрованными данными, наоборот, не зависит от пользователя и всегда одинаково). При этом данные могут остаться, даже если пользователь удалил браузер, чем и пользуются некоторые стилеры (например, KPOT).

2 Чтение зашифрованных данных. Данные могут храниться либо так же, как в Chromium, в формате SQLite, либо в виде JSON с полями, содержащими зашифрованные данные.

3 Расшифровка данных. Для расшифровки данных стилеру необходимо подгрузить библиотеку nss3.dll, а затем вызвать несколько функций и получить расшифрованные данные в читаемом виде. Некоторые стилеры имеют функции работы напрямую с файлами браузера, что позволяет не зависеть от этой библиотеки и работать даже при удаленном браузере. Если пользователь воспользовался функцией защиты данных с помощью мастер-пароля, расшифровка без знания (или подбора) этого пароля невозможна. К сожалению, эта функция по умолчанию отключена, а для ее включения придется забраться глубоко в меню настроек. Данные готовы к отправке злоумышленнику.

Internet Explorer и Microsoft Edge

В версиях Internet Explorer 4.x–6.0 сохраненные пароли и данные автозаполнения хранились в так называемом Protected Storage. Для их получения (не только данных IE, но и других приложений, которые используют это хранилище) стилеру необходимо подгрузить библиотеку pstorec.dll и простым перечислением получить все данные в открытом виде.

В версиях 7 и 8 браузера Internet Explorer применяется несколько другой подход: для хранения используется Credential Store, шифрование осуществляется с использованием «соли». К сожалению, эта «соль» одинакова и хорошо известна, а потому стилер может также вызовом уже знакомой нам функции CryptUnprotectData получить все сохраненные пароли.

Internet Explorer 9 и Microsoft Edge используют новый тип хранилища — Vault. Но и оно не обещает ничего нового: стилер подгружает vaultcli.dll, вызывает несколько функций оттуда и получает все сохраненные данные.

Таким образом, даже череда изменений способа хранения данных не спасает от чтения данных стилерами.

Пользователи часто доверяют все критически важные данные браузеру: удобно, когда пароли и данные банковской карты автоматически подставляются в нужные поля. Но мы не рекомендуем доверять настолько важную информацию браузерам — используемые ими методы защиты не являются препятствием для вредоносного ПО.

Используйте специальное ПО для хранения паролей от веб-аккаунтов и данных банковских карт, либо защитные решения с соответствующими технологиями. Не загружайте и не запускайте подозрительные файлы, не переходите по ссылкам из подозрительных писем — в общем, соблюдайте необходимые меры предосторожности.