- PVSM.RU - https://www.pvsm.ru -

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud

После прочтения этой [1] статьи мне захотелось провести исследование другого менеджера паролей на наличие похожих уязвимостей.

В комментариях к статье пользователем Dark_Angel [2] был задан вопрос:

А что скажите насчет SafeInCloud?

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 1


Исследование проводилось над бесплатной Windows версией SafeInCloud v.19.0.2

При первом знакомстве с продуктом он произвел на меня очень хорошее впечатление.
Однако при дальнейшем исследовании была выявлена точно такая же уязвимость.

В отличии от 1Password, SafeInCloud хранит все ваши пароли в открытом виде даже в заблокированном состоянии(после первой разблокировки).

Для получения пароля от базы данных достаточно просто прочитать память приложения. Обфускация данных полностью отсутствует! Мастер-пароль(и все остальные пароли и записи) не перезаписывается никогда после первой удачной разблокировки базы данных, даже если пользователь заблокирует её.

Ваши пароли могут утечь в случаях:

+ Отправка отчёта об ошибке в каком-либо ПО. Очень часто разработчики делают дампы памяти всех приложений в целях отладки.
+ Если Вы пользуетесь компьютером не только Вы.
+ При получении физического доступа к компьютеру злоумышленников.
+ При запуске вредоносного ПО.
+ Что-нибудь ещё…

Приложение под Windows написано на .net, что значительно упрощает анализ исходного кода.

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 2

Приложение написано на .net

После успешной расшифровки базы данных (XDatabase) расшифрованная база и мастер-пароль сохраняются как поля класса в Singleton instanc'е класса DatabaseModel.

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 3

Установка полей с базой данных и мастер-паролем от неё

Все записи и пароли хранятся в памяти в открытом виде даже после блокировки приложения пользователем. Мастер-пароль лежит в открытом виде рядом.

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 4

Пароль хранится в свойстве Password, _database — поле класса XDatabase, содержащего расшифрованную базу данных.

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 5
База данных в формете XML.

При повторной разблокировке приложение выполняет элементарную проверку:

Извлечение мастер-пароля из заблокированного менеджера паролей SafeInCloud - 6

Если пароль, введенный пользователем, совпал с сохраненным в памяти — разблокировка выполнена.

Для автоматизации извлечения мастер-пароля была написана простая утилита SafeInCloudExtractor [3].
Утилита выполняет извлечение мастер-пароля и локальный путь к файлу базы данных.

А каким менеджером пароля пользуетесь Вы? Напишите в комментариях!

Автор: hex_none

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/312444

Ссылки в тексте:

[1] этой: https://habr.com/ru/post/441166

[2] Dark_Angel: https://habr.com/ru/users/dark_angel/

[3] SafeInCloudExtractor: https://github.com/hexnone/SafeInCloudExtractor

[4] Источник: https://habr.com/ru/post/444904/?utm_campaign=444904