Введение 5
1. Постановка задачи 7
2. Обзор 8
2.1. Инструменты и технологии 8
2.1.1. Библиотека Vk.Net 8
2.1.2. Протокол OAuth 2.0 9
2.1.3. DevTools 9
2.1.4. Fiddler 9
2.1.5. Jailbreak 10
2.1.6. Протоколы SSL/TLS 10
2.2. Существующие решения 11
3. Архитектура 14
4. Особенности реализации 16
4.1. Получение данных с помощью программного интерфейса API ВКонтакте 16
4.2. Реализация веб-клиента для извлечения данных из ВКонтакте 18
4.2.1. Авторизация с известным логином и паролем 18
4.2.2. Двухфакторная авторизация 19
4.2.3. Ввод CAPTCHA 20
4.2.4. Получение пользовательских данных 20
4.2.5. Реализация работы методов с использованием cookies 23
4.3. Имитация работы мобильного клиента ВКонтакте для извлечения данных 23
4.3.1. Перехват HTTPS-трафика мобильного устройства 24
4.3.2. Авторизация 24
4.3.3. Двухфакторная авторизация 27
4.3.4. Извлечение пользовательских данных 28
5. Апробация 29
5.1. Сравнение методов 30
5.2. Результат интеграции в Belkasoft X 30
6. Заключение 32
Список литературы 34
Сегодня невозможно представить жизнь человека без различных цифровых устройств. Используя возможности гаджетов, люди ежедневно обмениваются сообщениями, фотографиями, файлами, аудио- и видеодокументами. Информация такого типа может быть полезна для цифровой криминалистики. Объем передаваемых данных является большим, поэтому анализировать данные вручную оказывается затруднительным. Шифрование информации, используемое для обеспечения безопасности пользователей в социальных сетях и мессенджерах, также создает препятствие для анализа. При этом данные могут храниться разными способами: в облачных хранилищах, во внутренней памяти устройств, на внешних накопителях. Специалистам в области цифровой криминалистики необходимы инструменты для простого и быстрого извлечения информации из хранилищ. В данной работе будут реализованы три способа получения данных из облачного хранилища VK.
VK 1 является лидером среди социальных сетей в России [27]. Проектов, в которых реализуется извлечение различных данных из ВКонтакте, немного, и они либо являются коммерческими с закрытым исходным кодом, либо содержат устаревшую информацию. Различные статьи, находящиеся в свободном доступе, в большинстве случаев не содержат в себе полезных для исследования материалов. Вследствие этого, необходимо самим реализовать методы для извлечения данных. Появляются следующие задачи: изучить клиент-серверное взаимодействие, работу социальной сети ВКонтакте, трафик приложения ВКонтакте, его взаимодействие с различными устройствами.
Компания «Белкасофт» производит разработку инструмента Belkasoft X [15], который позволяет получать разнообразную информацию из различных источников, быстро анализировать и делиться с другими экспертами. Компанией была поставлена задача исследовать и реализовать методы извлечения данных из облачного хранилища системы ВКонтакте. Для того, чтобы в будущем интегрировать данный инструмент в проект Belkasoft X, реализация методов будет происходить на языке программирования C#.
Получение данных из облачного хранилища требует прохождения авторизации. Для этого можно использовать один из следующих способов:
• с помощью логина и пароля,
• с помощью токена авторизации,
• с помощью файлов cookies.
Так как логин и пароль могут быть не всегда известны, то нужны альтернативные способы преодоления этапа авторизации. Так, например, с помощью ключа доступа, хранящегося на устройстве, можно успешно реализовать работу методов получения данных из социальной сети. Другим способом может послужить авторизация с использованием cookie, которые создаются при входе в аккаунт с использованием браузера.
В данной работе будет рассмотрено три метода извлечения информации:
1. через API ВКонтакте стандартными средствами;
2. путем имитации работы браузерного клиента для системы ВКонтакте;
3. через имитацию работы системы ВКонтакте на мобильном устройстве.
В рамках данной работы были получены следующие результаты:
• Выполнен обзор существующих методов для извлечения данных из социальной сети “ВКонтакте”.
• Реализована процедура извлечения данных из облачного хранилища “ВКонтакте” с помощью открытого программного интерфейса (API):
• по токену,
• логину и паролю.
• Реализована имитация веб-клиента для получения информации из “ВКонтакте”:
• поддержаны авторизация и двухфакторная авторизация с известными логином и паролем;
• поддержана авторизация с известными cookies.
• Реализована имитация мобильного клиента “ВКонтакте” для извлечения данных:
• поддержаны авторизация и двухфакторная авторизация.
• Проведена апробация:
• выполнена загрузка данных в тестовый аккаунт,
• выполнена выгрузка данных из тестового и личного аккаунтов,
• произведено сравнение результатов.
• Произведена интеграция результатов в продукт Belkasoft X.
Код проекта закрыт и принадлежит компании ООО ”Белкасофт”.