- Чтение и аналитика базы данных iPhone для контроля менеджеров по продажам
- Анализ базы данных iPhone в QlikView: зачем
- Анализ баз данных мобильных устройств iPhone: список интересующих вопросов
- Создаем модель QlikView на основе баз данных iPhone
- Аналитика устройств и конфиденциальность
- Программно-техническая экспертиза бэкапа iPhone(часть 2)
Чтение и аналитика базы данных iPhone для контроля менеджеров по продажам
Сегодня решил написать пост на интересную тему, хотя с ней и не часто сталкиваешься в процессе разработки приложений QlikView. Итак, ниже – небольшая инструкция по чтению базы данных iPhone (включая историю звонков, смс, списка заметок и контактов и прочее), а также идеи по использованию этих данных для управления качеством работы подчиненных.
Анализ базы данных iPhone в QlikView: зачем
Очень полезные данные можно извлечь из iPhone и iPad сотрудников, если подойти к задаче креативно. Предположим, что вы работаете руководителем крупного подразделения по продажам. У вас находятся десяток менеджеров по продажам в подчинении, которые используют корпоративную сотовую связь и мобильные телефоны (также выдает компания на время работы сотрудника). Особо ценно, что в QlikView мы можем связать эти данные с полной базой данных CRM по истории взаимодействия с клиентом, тем самым, получая глубокую аналитику по коммуникациям с клиентами.
!НА ЗАМЕТКУ Для реализации данной задачи, у вас должно быть разрешение на использование персональных данных сотрудников в корпоративных целях.
Анализ баз данных мобильных устройств iPhone: список интересующих вопросов
На какие вопросы может получить ответ руководитель подразделения
- С кем именно из клиентов общался продажник и сколько времени затратил на звонок клиенту?
- Сколько звонков было сделано в различных временных разрезах? (день/неделя/месяц)
- Каково соотношение входящих/исходящих звонков?
- Соответствуют ли записи по звонкам в CRM реальным данным?
Вопросы могут быть и другие, а спектр аналитики не ограничен лишь этими данными.
Создаем модель QlikView на основе баз данных iPhone
Детали каждой таблицы разбирать не буду, но основная идея будет всем понятна после прочтения инструкции ниже.
Составляем модель данных со следующими таблицами:
Создаем календарь для связи со временем звонков и смс.
Шаг 0
Прежде, чем начать разработку:
- Не нужно специально делать джейлбрейк iPhone для доступа к данным, хотя можете использовать и вскрытый айфон (это уже ваш личный выбор).
- По умолчанию iPhone сохраняет только 100 последних звонков в истории. Можно чаще подгружать данные в модель, чтобы звонки не терялись. Но если необходимо, лимит количества сохраняемых звонков можно изменить в айфоне с джейлбрейком. Как это сделать читаем тут.
- Ограничений по смс-данным в айфон я не заметил.
Итак, приступаем к работе
Шаг 1
Получаем записи базы данных
База данных, которая сейчас работает в iPhone — SQLite,поэтому вам нужен будет ODBC драйвер (качаем его здесь). Есть две его версии (32-битная и 64-битная). Запустите ту версию, которая вам нужна для соединения с базой данных SQLite 3.
Для получения файлов на ваш ПК, делаем резервную копию iPhone через iTunes (на всякий случай, инструкция здесь).
После получения резервной копии iPhone-а, выгружаем файлы *.db.
iTunes размещает резервные копии в следующих директориях:
- WindowsVistaиWindows7: Пользователи(Имя пользователя)AppDataRoamingApple ComputerMobileSyncBackup
- Windows XP:Documents and Settings(Имя пользователя)Application DataApple ComputerMobileSyncBackup
- Mac:
!НА ЗАМЕТКУ: Если вы не видите директории AppData или Application Data, вам нужно включить показ скрытых файлов (инструкция для Windows Vista и Windows 7).
Когда вы зайдете в эту директорию, вы увидите файлы с декодированными именами. Вот то, что нам нужно:
Шаг 2
Указываем путь к файлам
Итак, у нас есть:
2) База данных (вам нужно просто добавить или изменить расширение файлов на файлах бэкапа).
А теперь просто подключаем новые источники данных в наше приложение QlikView или Qlik Sense 🙂
Но еще две штуки, которые нужно учесть:
- Убедитесь, что в коннекторе указано верное название файла. Будет примерно такой формат:
- ODBC CONNECT TO [SQLite3 Datasource;Database= ];
- Даты в формате Unix и их конвертация в привычный читабельный формат:
- Date(MakeDate(1970, 1, 1) + ( /60/60/24), ‘DD/MM/YYYY hh:mm:ss[.fff] TT’) как дата
Вот и все! Наслаждайтесь новыми открытиями с Qlik!
Источник
Аналитика устройств и конфиденциальность
Ваши данные, используемые функцией «Аналитика», надежно защищены, и только Вы решаете, чем поделиться.
Аналитика устройства iOS
Аналитика iPhone может включать подробную информацию об аппаратном обеспечении и спецификациях операционной системы, статистику производительности, а также данные о том, как Вы используете устройства и приложения. На основе собранных данных невозможно установить Вашу личность. Личные данные либо совсем не включаются в отчеты, либо обрабатываются с помощью технологий сохранения конфиденциальности, таких как дифференцированная конфиденциальность, либо удаляются из всех отчетов перед их отправкой в Apple. Эта информация доступна на устройстве iOS. Чтобы ознакомиться с ней, откройте «Настройки» > «Конфиденциальность» > «Аналитика и улучшения» и коснитесь «Данные Аналитики».
Если Вы согласились предоставлять Apple эту информацию и на Вашем устройстве включены службы геолокации, в компанию Apple также может отправляться информация о местонахождении Ваших устройств для анализа возможных технических проблем (например, данные о силе сотового сигнала или сигнала Wi‑Fi в определенном месте). Эти аналитические данные геолокации могут включать сведения о местонахождении, например, геопозицию Ваших устройств, отправляемую раз в день, или геопозицию устройства при завершении вызова или отклонении платежа при покупке. Вы можете в любой момент выключить Службы геолокации для функции «Аналитика». Для этого откройте «Настройки» > «Конфиденциальность» > «Службы геолокации» > «Системные службы» и выключите параметр «Аналитика iPhone».
Если Вы согласитесь отправлять в Apple данные аналитики, полученные от нескольких устройств, на которых выполнен вход в одну учетную запись iCloud, мы сможем соотносить некоторые данные об использовании приложений Apple на этих устройствах посредством синхронизации, защищенной сквозным шифрованием. Весь процесс устроен таким образом, чтобы компания Apple не получала данных, на основе которых можно установить Вашу личность.
Вы также можете полностью выключить Аналитику устройства. Для этого откройте «Настройки» > «Конфиденциальность» > «Аналитика и улучшения» и выключите параметр «Делиться Аналитикой iPhone». Если Ваши часы Apple Watch и iPhone объединены в пару, выключите параметр «Делиться для iPhone и часов».
Используя эти функции, Вы даете компании Apple, ее дочерним организациям и агентам согласие на передачу, сбор, хранение, обработку и использование всей указанной информации, как описано выше.
Источник
Программно-техническая экспертиза бэкапа iPhone(часть 2)
Цель программно-технической экспертизы бэкапа iPhone – это получение данных и артефактов из бэкапов iTunes без модифицирования какой-либо информации.
На Mac OS X скачайте и установите необходимые модули Питона (pycrypto, M2crypto, construct и progressbar).
Загрузите и установите Mercurial (http://mercurial.selenic.com/) для загрузки исходного кода iphone-dataprotection из репозитория Google.
Расшифровка обычных бэкапов:
В обычных бэкапах ключи классов защиты хранятся в Резервной сумке с ключами и шифруются на ключе 0x835. Для того чтобы получить ключи классов защиты из Резервной сумки с ключами, нужно знать ключ 0x835. Проблема заключается в том, что ключ 0x835 вычисляется только на самом устройстве. Следовательно, расшифровка защищенных файлов из обычного бэкапа невозможна без получения доступа к устройству. Поэтому, если физического доступа к устройству не будет, то при программно-технической экспертизе бэкапа мы получим меньше информации по сравнению с тем, если бы таким доступом мы обладали.
Ниже по шагам описано, как расшифровать файлы из обычного бэкапа, если мы получим физический доступ к устройству. При загрузке iOS служба ядра IOAESAccelerator вычисляет ключ 0x835, шифруя фиксированное число 01010101010101010101010101010101 на ключе UID. UID – это уникальный для каждого устройства аппаратный ключ шифрования, зашитый в чип AES. iOS не может напрямую прочитать аппаратный ключ (UID), но может использовать UID для вычисления ключа 0x835 в режиме ядра. UID также недоступен для пользовательских приложений и библиотек. Ограничение на доступ к UID можно обойти, пропатчив службу ядра IOAESAccelerator.
Шаги извлечения ключа 0x835 из iPhone
1. Сделайте jailbreak вашего iPhone
*Если вы не хотите делать jailbreak вашего телефона, то для получения ключей шифрования следуйте шагам, описанным в статье “Программно-техническая экспертиза iPhone”.
2. На iPhone установите OpenSSH из Cydia. OpenSSH позволяет подключиться к устройству по SSH.
3. На рабочей станции Mac OS X скачайте утилиты device_infos, kernel_patcher и Cyberduck.
4. Подсоедините iPhone и рабочую станцию к одной Wi-Fi сети.
5. На OS X запустите Cyberduck и подсоединитесь к iPhone, набрав его IP адрес и используя root в качестве логина, а alpine в качестве пароля.
6. Скопируйте исполняемые файлы device_infos и kernel_patcher в корневую папку iPhone.
7. Запустите терминал на MAC и подсоединитесь к iPhone по SSH, набрав его IP адрес и используя root в качестве логина, а alpine в качестве пароля.
8. Чтобы изменить права для device_infos и kernel_patcher, выполните на SSH терминале следующие команды
9. Пропатчте службу ядра IOAESAccelerator, чтобы появилась возможность использовать аппаратный ключ шифрования (UID) из пользовательских процессов. Скрипт kernel_patcher модифицирует ядро и применяет необходимые патчи к службе IOAESAccelerator.
*Если ядро уже пропатчено, то скрипт выдаст сообщение kernel patching failed.
*Скрипт kernel_patcher работает только на устройствах с iOS 5.
10. Запустите скрипт device_infos с параметром key835. Скрипт вычисляет ключ 0x835 и показывает его на мониторе. Если запустить device_infos без параметра, то скрипт вычислит все ключи шифрования и сохранит их в plist-файле (Рисунок 9).
Как только ключ 0x835 получен, можно расшифровать Резервную сумку с ключами и достать ключи классов защиты данных. Позже с помощью ключей классов защиты данных мы расшифруем защищенные файлы в бэкапе.
11. На терминале с Mac OS X перейдите в папку iphone-dataprotection. Запустите скрипт backup_tool.py, передав ему в качестве параметра путь к папке с бэкапом iTunes.
*Если параметр output_path не указан, то скрипт создаст папку [iPhone UDID]_extract в папке с бэкапом и извлечет файлы во вновь созданную папку.
В бэкапе база данных связки ключей sqlite хранится в виде plist-файла (Keychain-backup.plist). Содержимое plist-файла зашифровано на ключах классов защиты элементов связки ключей. Поэтому элементы связки ключей можно прочитать только после их расшифровки.
Запустите скрипт keychain_tool.py и введите значение ключа 0x835. Скрипт расшифрует Резервную сумку с ключами, достанет ключи классов защиты с идентификаторами от 6 до 11 (перечислены в Таблице 6) и расшифрует элементы связки ключей.
Скрипт делает дамп всех паролей, сертификатов и закрытых ключей из файла бэкапа связки ключей.
Расшифровка зашифрованных бэкапов:
В зашифрованных бэкапах ключи классов защиты перемещаемых данных (идентификаторы с 6 по 8 в Таблице 6) хранятся в Резервной сумке с ключами и защищены паролем iTunes; ключи классов защиты ThisDeviceOnly (идентификаторы с 9 по 11 в Таблице 6) также хранятся в Резервной сумке с ключами, но помимо пароля iTunes защищены еще и ключом 0x835. В большинстве случаев данные из зашифрованного бэкапа перемещаемы, так как они защищены только паролем iTunes и не привязаны к конкретному устройству. Каждый файл в бэкапе шифруется алгоритмом AES 256 в режиме CBC на уникальном ключе. Ключи шифрования файлов хранятся в Резервной сумке с ключами и защищаются паролем iTunes. Для того чтобы, расшифровать Резервную сумку с ключами, забрать ключи классов защиты и расшифровать файлы бэкапа необходимо знать пароль iTunes. Если же узнать пароль iTunes не представляется возможным, то и информации при проведении программно-технической экспертизы мы получим гораздо меньше. iTunes не накладывает каких-либо ограничений на сложность пароля, и поэтому можно попробовать провести атаку перебором и угадать пароль. Зашифрованные бэкапы привносят дополнительные сложности в процесс извлечения данных, а при достаточно сложном пароле процедура расшифровки бэкапа может вообще оказаться невозможной.
iTunes сохраняет зашифрованный пароль от бэкапа в связке ключей iPhone. Если пароль от бэкапа неизвестен, но физический доступ к устройству у нас есть, мы сможем узнать пароль от бэкапа, прочитав элементы связки ключей. На iPhone с jailbreak’ом все элементы связки ключей можно получить с помощью утилиты keychain_dumper. Использование утилиты описано в посте keychain-dumper-usage.
Утилиты наподобие iPhone Backup Extractor и iPhone Backup Browser с зашифрованными бэкапами лучше не использовать, так как такие утилиты только читают и парсят Manifest.mbdb файл и составляют файловую структуру. Но сами файлы открыть не получится, так как их содержимое зашифровано.
Ниже по шагам расписана процедура расшифровки файлов из зашифрованного бэкапа при условии, что пароль iTunes нам известен.
Запустите утилиту backup_tool.py и введите пароль iTunes. Если пароль неизвестен, то модифицируйте скрипт и добавьте к нему скрипт подбора пароля перебором. В качестве входного параметра скрипт Backup_tool.py получает введенный пользователем пароль. Скрипт затем расшифровывает Резервную сумку с ключами, достает все ключи шифрования и расшифровывает файлы в бэкапе.
*Если параметр output_path не указан, то скрипт создаст папку [iPhone UDID]_extract в папке с бэкапом и извлекет файлы во вновь созданную папку.
В зашифрованном бэкапе база данных связки ключей sqlite хранится в виде plist-файла (Keychain-backup.plist). Содержимое plist-файла зашифровано на ключах классов защиты перемещаемых данных и ключах классов защиты ThisDeviceOnly.
Чтобы прочитать перемещаемые элементы связки ключей, запустите скрипт keychain_tool.py и введите пароль iTunes.
Чтобы прочитать элементы связки ключей классов ThisDeviceOnly, запустите скрипт keychain_tool.py и введите ключ 0x835.
Скрипт делает дамп всех паролей, сертификатов и закрытых ключей из файла бэкапа связки ключей.
Программно-техническая экспертиза файлов бэкапа позволяет экспертам получить доступ ко всей информации, содержащейся на телефоне до момента снятия резервной копии. Возможно также, что в анализируемой системе будут более старые версии файлов бэкапа или другие бэкапы iPhone с ценной информацией.
Чтобы просмотреть список доступных бэкапов, откройте iTunes, перейдите в меню Edit‑>Preferences (на Windows) или iTunes->Preferences (на Mac) и выберите вкладку Devices. На вкладке отображены все доступные бэкапы (см. Рисунок 10).
iTunes предоставляет возможность удалять файлы бэкапа. Для удаления существующего бэкапа iPhone, в окне Device Preferences (окно показано на рисунке выше), выберите нужный бэкап и нажмите на кнопку Delete Backup… Чтобы восстановить удаленный бэкап, эксперты могут воспользоваться различными утилитами восстановления данных. Восстановить удаленные файлы с компьютера гораздо легче, чем с телефона.
В бэкапе iPhone хранится много пользовательской информации. В Таблице 7 перечислены типичные файлы, которые могут представлять интерес для экспертов.
Контакты и личные данные (имя, email, дата рождения, место работы и.т.п.)
Источник