23
ОСОБЕННОСТИ ХРАНЕНИЯ ПОЛЬЗОВА Т ЕЛЬСКИХ ДАННЫХ ПОПУЛЯРНЫМИ МЕССЕНДЖЕРАМИ WINDOWS PHONE Полторжицкий Артём [email protected]

Особенности хранения данных популярными мессенджерами на мобильных устройствах

Embed Size (px)

Citation preview

ОСОБЕННОСТИ Х

РАНЕНИЯ

ПОЛЬЗОВАТЕЛЬСКИХ

ДАННЫХ ПОПУЛ

ЯРНЫМИ

МЕССЕНДЖЕРА

МИ WIN

DOWS

PHONE

Полторжицкий Артём[email protected]

57%

24%

7%

3%2%

2%2% Android

iOSSeries 40UnknownWindows PhoneSymbianOSSamsungBlackBerry OSNokia UnknownLinuxSony EricssonLGbadaPlaystationWinVistaNintendo 3DSMeeGoOther

Рынок смартфонов

АЛГОРИ

ТМ

ИЗУЧЕНИЯ

1.Выбор социальных сетей для исследования

2.Поиск путей получения исполняемых файлов приложения

3.Реверс приложений и анализ сохраняемых данных

Алгоритм изучения

Социальные сети в России

VK

Одноклассники

Facebook

GOOGLE+

Skype

Twitter

Instagram

Viber

Whatsapp

LinkedIn

0 0.05 0.1 0.15 0.2 0.25 0.3

28.00%

24.00%

18.00%

15.00%

12.00%

10.00%

7.00%

5.00%

5.00%

4.00%

Количество людей, использующих платформу хотя бы раз в месяц по отношению к общему населению РФ

Пути получения файлов приложений

1.Полный дамп памяти устройства

2. Уязвимость SD-карты

Плюсы:+ Получение всех файлов всех приложений+ Полный доступ к изолированному хранилищу

Минусы:- Статичность получаемых данных- Длительность операции

Плюсы:+ Получение всех файлов приложений на SD-карте+ Быстрота операции+ Динамичность данных

Минусы:- Приложения только с SD-карты

Уязвимость SD-карты

• Пользователь djamol на XDA-Developers

http://forum.xda-developers.com/windows-phone-8/development/access-wpsystem-folder-t2853795 • Директория WPSystem на SD-карте

содержит все файлы приложений• По умолчанию WPSystem имеет

атрибуты доступа System и Hidden

ПРИЛОЖ

ЕНИЯ

СОЦИАЛЬНЫХ СЕТЕ

Й

Facebook

Изолированное хранилище

Facebook

settings.dat

Facebook

Получение токена доступа1. Декомпиляция

Из MSDN:

public static byte[] Protect(byte[] userData,byte[] optionalEntropy)

public static byte[] Unprotect(byte[] encryptedData,byte[] optionalEntropy)

Facebook

Получение токена доступа2. Расшифрование

byte[] arr1 = Convert.FromBase64String(enc_token);

byte[] res = ProtectedData.Unprotect(arr1, null);

return Encoding.UTF8.GetString(res, 0, res.Length);

Facebook

Результат

ВКонтакте

Изолированное хранилище

Токен доступа

ВКонтакте

Список друзей

Файл AppGlobalState

Файл FriendsOf_{User_Id}

ВКонтакте

Сообщения пользователяКаждый чат – отдельный файлПример названия файла MSG1237163_1264True- 1237163 – Идентификатор пользователя- 1264 – Идентификатор собеседника/общей беседы- True/False – является ли чат беседой с одним или

несколькими пользователями

Twitter

Изолированное хранилище

Все данные хранятся в папке

LocalState

• Настройки

• Токен доступа (auth 1.0)

• Тестовые сообщения

пользователю

• Лента твитов

• Подписчики и подписки

• Другие данные

Twitter

Токен доступаФайл UserAccounts.dat

Токен доступа

Twitter

Получение ConsumerKey и

ConsumerSecret

Преобразование в строку для передачи

Twitter

Текстовые сообщенияФайл

{USER_ID}.DirectMessages.dat

Выводы

1.Пользовательские данные защищены недостаточно надежно

2.Кэширование пользовательских данных может приводить к компрометации пользователя

Пути решения

1.Учитывать особенности платформы, под которую ведется разработка

2.Усложнение реверса (псевдошифрование данных, обфускация исходных кодов)

СПАСИБО ЗА ВНИМАНИЕ!ВОПРОСЫ?