Зберігання користувальницьких паролів в Google Chrome на Android

image
Привіт Хабр! Я молодий розробник, який спеціалізується на Android-розробці та інформаційної безпеки. Не так давно я задався питанням: яким чином Google Chrome зберігає збережені паролі користувачів? Аналізуючи інформацію з мережі і файли самого хрому (особливо інформативною була стаття), я виявив певні подібності та відмінності в реалізації збереження паролів на різних платформах, і для демонстрації написав додатки для добування паролів з Android версії браузера.

Як це працює?
Як ми можемо знати з різних публікацій в мережі на цю тему, Google Chrome на ПК зберігає паролі своїх користувачів в наступній директорії:

«C:\Users\SomeUser\AppData\Local\Google\Chrome\User Data\Default\» у файлі "Login Data".
Даний файл є базою даних SQLite, і його цілком можна відкрити і подивитися. В таблиці logins ми можемо бачити такі, які нас цікавлять поля: origin_url (адреса сайту), username_value (логін), password_value(пароль). Пароль представлений байтовим масивом, і зашифрований через машинний ключ, індивідуальний для кожної системи. Детальніше можна дізнатися з цієї статті. Таким чином, якась ніяка захист в Windows клієнта присутня.

Android
Але так як я більше захоплююся На ом, то забрав мою увагу на себе, відповідно, Android-клієнт браузера.

«Расковыряв» пакет Google Chrome (com.android.chrome), я виявив, що його структура дуже нагадує структуру ПК-клієнта, і не склало труднощів знайти точно таку ж базу даних, відповідає за зберігання паролів користувача. Повний шлях до БД наступний: "/data/data/com.android.chrome/app_chrome/Default/Login Data". В цілому, ця база даних дуже схожа на свою «старшу сестру» з ПК-версії, маючи лише одне, але дуже значна відмінність — паролі тут зберігаються у відкритому вигляді. Виникає питання: чи можна програмно витягнути паролі з бази? Відповідь виявився досить очевидним — так, якщо у вашої програми є root-права.

Реалізація
Для більшої наочності було вирішено зробити свій інструмент для добування паролів з бази даних браузера.

Якщо описати його роботу в двох словах, то воно працює так:

  • Отримує root.
  • Копіює базу даних Chrome у свою директорію.
  • За допомогою chmod отримує доступ до копії БД.
  • Відкриває БД, і витягує інформацію про логіни і паролі.
Додаток було розміщено в Google Play.

Висновок
Як висновок з проведеної роботи, можна сказати, що при наявності root-прав, витягнути базу паролів браузера і відправити її на свій сервер — завдання цілком вирішуване, і цей факт повинен змушувати задуматися над тим, чи варто довіряти яким-небудь додатком права суперкористувача.

Сподіваюся, ця стаття була інформативною. Спасибі за увагу!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.