Группа исследователей TeamSIK из Института безопасности информационных технологий, входящего в Общество Фраунгофера, провела анализ самых популярных Android-решений для хранения и организации паролей, представленных в официальном каталоге Google Play. Так, исследователи внимательно изучили работу My Passwords, Informaticore Password Manager, LastPass, Keeper, F-Secure KEY, Dashlane Password Manager, Keepsafe, Avast Passwords и 1Password. Каждое из этих приложений насчитывает от 100 000 до 50 000 000 установок. И, как оказалось, все приложения имеют хотя бы одну проблему с безопасностью.
«Итоговые результаты вызывали у нас серьезное беспокойство и показали, что менеджеры паролей, несмотря на все заявления [разработчиков], не обеспечиваются достаточными механизмами защиты для хранения паролей и учетных данных. Вместо этого они злоупотребляют доверием пользователей и подвергают их огромному риску», — пишут исследователи.
Как оказалось, парольные менеджеры порой хранят пароли в виде открытого текста, а в их коде можно обнаружить ключи шифрования, которые там, очевидно, забыли случайно. В некоторых случаях добраться до паролей пользователя без особенного труда сможет любое вредоносное приложение, проникшее на устройство.
Почти все найденные уязвимости уже были устранены, хотя у некоторых разработчиков на создание патчей ушли долгие месяцы. Информация о багах, которые еще не были исправлены, не разглашается. Впрочем, после изучения обнаруженных экспертами уязвимостей и багов, все равно встает вопрос, действительно ли использование менеджеров паролей снижает риски и улучшает безопасность, или только добавляет новых проблем?
Ниже перечислены все найденные аналитиками проблемы. Ссылки ведут на подробное описание и разбор каждого отдельного случая на сайте TeamSIK.
MyPasswords
- SIK-2016-019: Чтение приватных данных из локальной директории через интегрированный в приложение HTMLViewer.
- SIK-2016-020: Похищение и последующая расшифровка мастер-пароля.
- SIK-2016-043: Баг позволяет бесплатно разблокировать премиальные функции.
Informaticore Password Manager
- SIK-2016-021: Мастер-пароль хранится в зашифрованном виде, но ключ для расшифровки можно найти в коде самого приложения.
LastPass
- SIK-2016-022: Мастер-ключ, защищающий хранящийся на устройстве мастер-пароль, захардкожен в код приложения и одинаков для всех девайсов.
- SIK-2016-023: Утечка конфиденциальных данных через интегрированный в приложение браузер.
- SIK-2016-024: На Android ниже версии 4.1 внутренний браузер LastPass позволяет читать файлы из локальной директории приложения. Может использоваться для похищения мастер-пароля (см. SIK-2016-022).
Keeper
- SIK-2016-025: Сброс секретного вопроса и обход всей дальнейшей аутентификации.
- SIK-2016-026: Инъекция данных в БД без какой-либо аутентификации.
F-Secure KEY Password Manager
- SIK-2016-027: Мастер-пароль хранится в формате открытого текста в локальной директории приложения.
Dashlane
- SIK-2016-028: Уязвимость во встроенном браузере позволяет получить доступ на чтение в локальной директории приложения (без root-прав).
- SIK-2016-029: Поисковые запросы встроенного браузера может перехватить man-in-the-middle атакующий. Кроме того, все поисковые запросы сливают logcat output.
- SIK-2016-030: Уязвимость в Android позволяет извлечь зашифрованный мастер-пароль из Android AccountManager не имея root-прав.
- SIK-2016-031: Встроенный браузер использует автозаполнение на сайтах, но не умет различать поля ввода пароля на разных поддоменах.
Hide Pictures Keep Safe Vault
- SIK-2016-032: Мастер-пароль или PIN хранится в формате обычного текста в директории приложения.
Avast Passwords
- SIK-2016-033: Приложение может автоматически заполнять формы ввода пароля в других приложениях, однако их легитимность определяется лишь по имени пакета, так что подделка приложений не исключается.
- SIK-2016-034: Разработчики еще работают над этой проблемой.
- SIK-2016-035: Менеджер предлагает шаблоны для создания записей для популярных сайтов, к примеру, Facebook. Но эти шаблоны используют небезопасные HTTP URL, и последующий авто-вход тоже производится посредством HTTP.
- SIK-2016-037: С бэкэндом приложение тоже сообщается через HTTP, используя лишь собственный криптографический протокол. Данный протокол уязвим, так что есть возможность расшифровать передаваемую информацию.
- SIK-2016-054: Разработчики еще работают над этой проблемой.
1Password
- SIK-2016-038: Встроенный браузер 1Password 6.3.3 не различает поддомены, когда автоматически подставляет пароли в веб-формы.
- SIK-2016-039: Встроенный браузер по умолчанию работает с HTTP. Таким образом, если зайти на google.com, откроется http://google.com, а не https://google.com.
- SIK-2016-040: Названия и URL сайтов в базе данных приложения не шифруются.
- SIK-2016-041: Встроенный браузер позволяет извлекать данные из приватной директории data, а также получить доступ к файлу БД и файлу, содержащему shared preferences приложения.
- SIK-2016-042: Когда пользователь создает запись с учетными данными для какого-то сайта, данные об этом домене передаются на сервер разработчика. И все ради получения соответствующей иконки.