Курсовая работа на тему: "Анализ шифрования резервной копии Huawei"

У нас на сайте представлено огромное количество информации, которая сможет помочь Вам в написании необходимой учебной работы. 

Но если вдруг:

Вам нужна качественная учебная работа (контрольная, реферат, курсовая, дипломная, отчет по практике, перевод, эссе, РГР, ВКР, диссертация, шпоры...) с проверкой на плагиат (с высоким % оригинальности) выполненная в самые короткие сроки, с гарантией и бесплатными доработками до самой сдачи/защиты - ОБРАЩАЙТЕСЬ!

Курсовая работа на тему:

"Анализ шифрования резервной копии Huawei"

Оглавление

Введение                                                                                                         3

1.      Цели и задачи                                                                                        4

2.      Исследование шифрования резервных копий Huawei на основе пользовательского пароля                                                                 5

2.1.       Методы создания резервной копии Huawei .  .  .  .  .  .  . . .        5

2.1.1.         Локальное резервное копирование    .  .  .  .  .  .  . . .        5

2.1.2.         Резервное копирование на ПК .  .  .  .  .  .  .  .  .  . . .        6

2.2.   Методы шифрования  . . . . . . . . . . . . . . . . . . . . .        7

3.      Исследование  приложения  HiSute  и его компонентов           8

3.1.   HiSuite для Windows    . . . . . . . . . . . . . . . . . . . . .        8

3.1.1.  Анализ трафика USB . . . . . . . . . . . . . . . . .        8

3.1.2.   Анализ HiSuite . . . . . . . . . . . . . . . . . . . . .      10

3.2.   HiSuite для Mac OS  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .      10

3.2.1.  Анализ трафика USB . . . . . . . . . . . . . . . . .      10

3.2.2.   Анализ HiSuite . . . . . . . . . . . . . . . . . . . . .      11

3.3.   Анализ KoBackup  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .      12

3.3.1.         Обратный инжиниринг приложения KoBackup  . .      12

3.3.2.         Вывод пароля шифрования    .  .  .  .  .  .  .  .  .  .  . . .      13

4.      Проверка результатов                                                                      16

Заключение                                                                                                 19

Список литературы                                                                                 20

Введение

В современном мире данные, хранящиеся на мобильных устрой- ствах, могут служить одними из главных доказательств виновности или невиновности подозреваемого в преступлении.Исследованием этих данных занимаются эксперты в области цифровой криминалистики. Однако извлекать информацию из мобильных устройств становится все труднее из-за непрерывных обновлений и использования функций ее шифрования, или же вовсе невозможно из-за утраты или поломки смартфона. Резервные данные обычно хранятся в зашифрованном виде с целью защиты конфиденциальности пользователей. Данные в зашиф- рованном виде не могут быть прочитаны экспертами из области цифро- вой криминалистики, поэтому важно уметь преобразовывать зашифро- ванные резервные данные в форму, которая может быть проинтерпре- тирована человеком или программно. Для создания инструментария разбора резервныхкопий необходимо ориентироваться в многообразии методов шифрования этих резервных копий.

Согласно исследованию мирового рынка смартфонов [5], во втором

квартале 2018 года компания Huawei заняла второе место в мире, пре- взойдя долю смартфонов Apple, с долей рынка 20,9% для устройств Samsung, 15,8% для Huawei и 12,1% для Apple. Как видно, распростра- ненность смартфонов Huawei возросла, поэтому возможность получать данные из их устройств становится все более существенной для цифро- вых криминалистов. Однако при анализе резервных копий возникает проблема, заключающаяся в том, что все резервные копии Huawei за- шифрованы, у компании реализован свой проприетарный протокол для создания резервных копий. При этом данные резервных копий шифру- ются либо на основе введенного пользователем пароля, либо без него. Для разбора резервных копий необходимо знать, какой алгоритм шиф- рования и с какими параметрами используется в каждом из случаев.

1.       Цели и задачи

Целью данного исследования является изучение механизма созда- ния резервных копий смартфонов Huawei в случае, когда пароль не задан пользователем, и создание прототипа программы, извлекающей данные из резервных копий.

 

Для достижения цели были поставлены следующие задачи:

1.     Изучить существующие решения.

2.     Проанализировать приложение на смартфоне с целью выявления применяемых алгоритмов шифрования.

3.     Проанализировать приложение для компьютера.

4.     Проанализировать USB трафик между ними.

5.     Разработать инструмент, дешифрующий данные резервной копии.

2.       Исследование шифрования резервных копий Huawei на основе пользователь- скогопароля

В статье [4] авторы проводят исследование шифрования резервных копий Huawei, основанного на пароле, введенном пользователем. С по- мощью обратного инжиниринга программ HiSuite и KoBackup они вы- явили алгоритмы генерации ключей и шифрования, которые будут бо- лее подробно рассмотрены в данной работе. Также изучили алгоритмы верификации пароля и предложили способы атаки на пароль и рас- шифровки резервных данных.

В исследовании [4] и подобных работах подробно разобрано шифро- вание резервной копии с паролем пользователя, но отсутствует инфор- мация про алгоритм генерации пароля по умолчанию. Данная курсовая работа ставит целью устранить этот пробел.

 

2.1.      Методы создания резервной копии Huawei

Создание резервных копий смартфонов Huawei может проводиться как на телефоне (локальное копирование), так и на компьютере. Резерв- ная копия может включать в себя сторонние приложения, файлы баз данных различных приложений и медиа файлы, среди которых изоб- ражения, аудиозаписи, документы и видео.

 

2.1.1.     Локальное резервное копирование

Копирование выполняется на смартфоне, и данные резервного ко- пирования хранятся либо в памяти устройства, либо на SD карте, либо на съемном USB накопителе. При введенном пользовательском пароле данные шифруются, иначе — нет (рис. 1). Приложение, управляющее процессом создания резервной копии на смартфоне — KoBackup.apk.

Как видно из рис. 1, шифрование данных в случае локального ко- пирования без заданного пароля не производится, поэтому этот случай

выходит за рамки данной работы; в ней анализируется вариант резерв- ного копирования при помощи ПК.

 

2.1.2.     Резервное копирование на ПК

Рис. 1: Список зашифрованных файлов при локальном и ПК копиро-вании, C (ciphertext) — зашифрован, P (plaintext) — нет, [4]

В случае создания резервной копии на компьютере используется программа HiSuite. В процессе копирования HiSuite обменивается дан- ными с KoBackup.apk, установленным наустройстве, при помощи USB (рис. 2). Шифрование файлов резервной копии, сохраняемых на ком- пьютере, в этом случае также зависит от того, задан пароль пользова- телем или нет (рис.1).

 

Рис. 2: Модули комплекса, используемые для резервного копирования.

2.2.      Методы шифрования

В ходе исследования [4] авторами было выяснено, что алгоритм шифрования данных и генерации ключа зависит от значения целочис- ленного параметра  ”type_attch”.  Он  может  принимать  значения  0,  2,  3, но файлы баз данных шифруются только при значениях 2, 3. Этот параметр хранится в файле info.xml, создающемся после выполнения резервного копирования. На рис. 3 представлены функции генерации ключей и алгоритмы шифрования, соответствующие значениям пара- метра ”type_attch”.

 

3.1.      HiSuite для Windows

3.1.1.     Анализ трафика USB

Для решения поставленных задач был взят HiSuite версии 9.0.3.300_OVE.

Существуют сборки HiSuite под Windows и под Mac OS, они обе были изучены в данной работе.

Рис. 3: Алгоритмы шифрования, генерации ключей, [4]

3.       Исследование приложения HiSute и его компонентов

Как видно из рис. 2, общение между приложением KoBackup для смартфона и приложением HiSuite для персонального компьютера про- исходит посредством USB. Для анализа данных, передаваемых по USB, существуют средства перехвата пакетов трафика. Захват пакетов был проведен инструментом USB Packet Capture (USBPcap) [8], просмотр их содержимого проводился в Wireshark [9]. Трафик был проанализирован в различных ситуациях работы приложения: при создании копии и ее восстановлении. В каждом из этих случаев были просмотрены данные и установлено, что существуют команды (рис. 4), исходящие от ком- пьютера, для инициирования различных действий на телефоне, однако все они зашифрованы, сериализованы или сжаты, отчего нечитаемы.

 

 

 

 

Рис. 4: Пример шифрованного запроса, посылаемого на смартфон. На начальных этапах создания резервной копии в трафике мож-

но увидеть шифрованные запросы с компьютера и ответы с телефо- на (рис. 5), представляющие собой короткие команды WRTE, OKAY,

CLSE, OPEN и т.д. А также, в самом конце процесса, компьютер полу- чает ответ, в виде данных результирующих файлов (зашифрованные базы данных (рис. 6), медиафайлы, info.xml, содержащий метаинфор- мацию о резервной копии).

Рис. 5: Пример ответа с телефона.

Рис. 6: Данные файла резервной копии в конечном виде, приходящего на компьютер.

Так как данные передаваемых файлов, полученные из трафика, пол- ностьюсовпадали с данными из созданной резервной копии, хранящей- ся на компьютере,можно было сделать вывод, что процесс шифрования файлов осуществляется на смартфоне. Пользовательский пароль вво- дится на компьютере, а значит, он передается в какой-то из команд, предшествующих передаче файлов. Каким образом передается пароль, используемый в случае, если пользователь не задал собственный, на данном этапе установить не удалось. Поэтому для решения этого во- проса было принято решение исследовать алгоритмы, использующиеся в HiSuite.

3.1.2.     Анализ HiSuite

Вначале были изучены ресурсы HiSuite, среди которых было най- дено два приложения, устанавливаемых программой на телефон и участвующих в процессе резервного копирования, — HiSuite.apk и KoBackup.apk. Также обнаружены XML-документы с переводами раз- личных строк из графического интерфейса HiSuite на множество язы- ков, что впоследствии оказалось полезно в изучении программы.

Изучение HiSuite проводилось в интерактивном дизассемблере IDA Pro [7], предоставляющем возможности статического и динамического анализа программ.

Код, получившийся после дизассемблирования, был сложен для ста- тического анализа, так как был обфусцирован. Причиной для такого вывода послужило наличие в нем множества конструкций, исполнение которых в конечном итоге не влияет на результат выполнения функции, и команд, до которых исполнение программы никогда не дойдет.

Однако, используя информацию из XML-файлов для перевода язы- ка, удалось отследить некоторые функции, вызывающиеся в процессе создания резервной копии, например, проверкавведенного пользовате- лем пароля на корректность или формирование имени директории для сохранения резервной копии.

Также IDA имеет плагин, позволяющий в некоторых случаях пре- образовать ассемблерный код функции в псевдокод. Для HiSuite эта возможность была недоступна, что сильно затрудняло анализ кода, по- этому было решено изучить приложение под Mac OS.

 

3.2.      HiSuite для Mac OS

3.2.1.     Анализ трафика USB

Перед анализом приложения был проанализирован USB трафик. Отличий от трафика приложения на Windows не было найдено. Так  же можно было видеть запросы с компьютера, ответы смартфонного приложения, названия баз данных и данные результирующих прило-

жений.

 

3.2.2.     Анализ HiSuite

Программа была проанализирована с помощью дизассемблера для Mac OS и Linux Hopper [1]. В отличие от версии HiSuite для Windows, получившийся код не был обфусцирован, тем самым он был более удо- бен для анализа. Также его изучение было облегчено возможностью Hopper преобразовывать ассемблерный код в псевдокодна Objective-C. В коде удалось найти несколько функций, используемых для созда- ния запроса на проведение резервного копирования. Особый интерес из них  представляет  функция ”backupRequestWithRequestModel”, т.к. в ней определяются начальные данные, необходимые для проведения резервного копирования, в том числе и пароль, пользовательский или

нет.

С помощью метода ”useWord” проверяется, введен пароль пользо- вателем или нет, ”var_40” содержит в себе строку пользовательского пароля и используется, когда пароль задан, а в случае с резервным ко- пированием без пароля, в коде программы можно увидеть указатель на фиксированную строку, используемую вместо пароля (рис. 7). Hopper имеет функциональность, позволяющую смотреть непосредственно на данные, лежащие в исполняемом файле по определенному адресу, что оказалось полезно в данном случае для извлечения нужной нам строки.

 

Рис. 7: Фрагмент кода метода, участвующего в создании резервной ко- пии.

Для подтверждения предположения о том, что полученный пароль такой же и в сборке под Windows, было решено изучить клиентскую часть приложения ”KoBackup”, располагаемую нателефоне.

 

3.3.      Анализ KoBackup

3.3.1.     Обратный инжиниринг приложения KoBackup

Существует 2 варианта установки KoBackup.apk на смартфон: вруч- ную из Play Market или при первом запуске HiSuite, приложение уста- навливается автоматически, из ресурсов HiSuite.

Был взят KoBackup.apk из ресурсов HiSuite и декомпилирован с по- мощью JADX [11], декомпилятора из dex1 в java. Полученный код на java изучен при помощи статического анализа.

1dex(dalvik executable) — исполняемый файл в Dalvik, регистровой виртуальной машине для вы- полнения программ на Android

В процессе изучения кода было установлено, что в случае создания копии данных с компьютера, приложение на смартфоне работает как привязанная служба2. Также обнаружен метод, разбирающий сообще- ние с компьютера и вызывающий один универсальный способ шифрова- ния, с параметрами, полученными из сообщения. Таким образом, для расшифровки резервной копии без пользовательского пароля можно использовать метод, предложенный в исследовании [4].

Также был найден метод, инициализирующий некоторые парамет- ры, полученные в сообщении от HiSuite, которые необходимы для даль- нейшей работы.

Было принято решение изменить исполняемый код KoBackup и до- бавить вывод пароля в лог.

 

3.3.2.     Вывод пароля шифрования

Приложение было дизассемблировано с использованием инструмен- та apktool [3], преобразующего исполняемые файлы для Android в файлы smali3, и обратно. Далее был изменен метод, устанавливаю- щий пароль, и добавлен вызов стандартной функции вывода логов (android.util.Log.e()), с сообщением, содержащим значение переменной, отведенной под пароль.

После изменения была испробована обычная установка модифици- рованного приложения на смартфон, с помощью ADB4, однако воз- никала ошибка ”install_failed_shared_user_incompatible”. При-чиной этой ошибки являлось то, что приложение имеет значение ”android.uid.phone” у параметра sharedUserId, описываемого в манифе- сте. Данное значение параметра означает, что приложение делитресур- сы с некоторыми другими системными программами, установленными на телефоне. Система безопасности Android сверяет подписи приложе-

2Привязанная служба — сервис Android, работающий в фоновом режиме, пока другая компонента приложения(в данном случае HiSuite) привязана к нему.

3это язык ассемблера для виртуальной машины Android Dalvik, основанный на языке ассемблера Jasmin Java.

4ADB (Android Debug Bridge) – инструмент, входящий в Android-SDK и позволяющий управлять устройством на базе Android.

ний с таким же идентификатором с подписью устанавливаемого прило- жения, в случае если они не совпадают, установка прерывается с данной ошибкой.

Приложение Android подписывается закрытым ключом. С каждым таким ключом связан открытый сертификат, содержащий хеши файлов приложения, с помощью которого устройства исервисы могут убедить- ся в безопасности приложений и их обновлений. Если внести вручную изменения в любой из файлов, их хеши не будут совпадать с исходны- ми, и приложение непройдет проверку, поэтому требуется подписывать приложения заново после изменения. Однако из-за отсутствия закры- того ключа невозможно получить сертификат, проходящий проверкусовместимости с другими приложениями, подписанными тем же клю- чом.

Для решения возникшей проблемы понадобилось отключить на

смартфоне проверки системы безопасности, препятствующие установке измененного KoBackup.apk.

Был взят смартфон модели Honor 6X, на нем проведено разблоки- рование загрузчика и получение root прав через twrp [6].

На следующем этапе проведена установка программы Lucky Patcher5

и отключена верификация подписей приложения и проверка целостно- сти apk.

После отключения проверок, приложение установилось, однако при запуске приложения происходило немедленное его закрытие. Это было связано с тем, что при простой сборке apktool отсутствовали нужные для прохождения проверки совместимости сертификаты, имеющиеся у исходного приложения.

Решение этой проблемы заключалось в использовании ключа сборки

–copy-original. При его использовании в результирующий архив копиру- ются сертификаты исходного приложения, необходимые для прохожде- ния проверки безопасности. После того, как все проблемы, связанные с установкой  и запуском приложения были решены, были сняты  логи

5Lucky Patcher - патчер приложений, позволяющий получить дополнительные возможности в Android играх и приложениях, например можно отключить проверку лицензии, бесплатно покупать    во внутриигровых магазинах и блокировать рекламу.

системных сообщений командой ADB – logcat, в период создания бэка- па с пользовательским паролем. Действительно, в снятых сообщениях, можно было видеть заданный нами пароль (рис. 8). Операция была повторена еще раз, для резервного копирования без пароля, и строка пароля, полученная в этом случае, совпадала с той, что была извлечена из HiSuite для операционной системы Mac OS.

 

 

Рис. 8: Пользовательский пароль ”123456”, выведенный в лог.

4.       Проверка результатов

Для подтверждения верности полученных результатов, пароля и ме- тодов расшифровки данных, на языке C# было реализовано тестовое приложение. В его основе лежит написанный наPython скрипт [10] для дешифрации резервных копий, созданных с использованием пользова- тельского пароля.

На вход программе подается зашифрованная резервная копия (рис. 9), созданная без пароля, и вводится пароль (рис. 10). На выходе получаются расшифрованные данные, в частности, файлы баз данных (рис. 11), содержимое которых теперь можно прочитать в тестовом при- ложении (рис. 12).

 

Рис. 9: Данные зашифрованной базы данных в hex-редакторе.

 

Рис. 10: Ввод начальной информации, директории с резервной копией, пароля.

 

 

 

Рис. 11: Данные дешифрованной базы данных в hex-редакторе.

Рис. 12: Расшифрованные базы данных, содержимое таблицы sms_tb базы данных sms.db

Заключение

В рамках данной курсовой были выполнены следующие задачи:

 

1.     Изучены алгоритмы шифрования, используемые в создании ре- зервных копий без пользовательского пароля.

2.     Получена строка, используемая в качестве пароля.

3.     Предложены алгоритмы для расшифровки резервных копий.

4.     Реализовано тестовое приложение для дешифрации данных, с ис- пользованием предложенных алгоритмов.

Результаты данной работы в ближайшее время будут интегрирова- ны в Belkasoft Evidence Center [2].

Автор выражает признательность компании Belkasoft за предостав- ление темы данной курсовой работы. А также отдельную благодарность ее сотрудникам, Никите Тимофееву и МихаилуВиноградову, за ценные советы при планировании исследования, рекомендации по оформлению курсовой и предоставленное оборудование.

Список литературы

[1]     Apps Cryptic. Домашняя страница продукта Hopper. URL: https://www.hopperapp.com/index.html (online; accessed: 15-04- 2020).

[2]     Belkasoft. Домашняя страница продукта Belkasoft Evidence Center 2020. 2019. URL: https://belkasoft.com/ec (online; accessed: 2019-12-18).

[3]     Connor Tumbleson Ryszard Wiśniewski. A tool for reverse engineering Android apk files. URL: https://ibotpeaches.github.io/ Apktool/ (online; accessed: 15-04-2020).

[4]     Decrypting password-based encrypted backup data for Huawei smartphones / Myungseo Park, Giyoon Kim, Younjai Park et al. // Digital Investigation. 2019. 01. Vol. 28.

[5]     Holst   Arne.    Global    market    share   held    by   leading    smartphone vendors from    4th       quarter    2009         to         3rd quarter 2019.URL:                              https://www.statista.com/statistics/271496/ global-market-share-held-by-smartphone-vendors-since-4th-quarte

[6]     LLC   Team   Win.   TeamWin   -   TWRP. –     URL: https://twrp.me/

(online; accessed: 15-04-2020).

[7]     SA Hex-Rays. About IDA. URL: https://www.hex-rays.com/ products/ida/ (online; accessed: 2019-12-18).

[8]     USBPcap.  USBPcap  -  USB  Packet  capture  for  Windows. –    URL:

https://desowin.org/usbpcap/ (online; accessed: 2019-12-18).

[9]     Wireshark. Wireshark User’s Guide. URL: https://www. wireshark.org/docs/wsug_html_chunked/ (online; accessed: 2019-12-18).

[10]     dfirfpi.   Huawei   backup decryptor. –    2019. –   URL: https://blog. digital-forensics.it/2019/07/huawei-backup-decryptor.html (online; accessed: 2019-12-18).

[11]     skylot. Инструмент декомпиляции JADX. URL: https://github. com/skylot/jadx (online; accessed: 15-04-2020).