Как извлечь данные из Андроид-устройств

Извлечь данные Андрои

Здравствуйте! Сегодня речь пойдет о форензики мобильных устройств. В этой статье вы узнаете как специалисты форензики извлекают данные из Android-девайсов.

Вас также может заинтересовать статья «Как криминалисты восстанавливают данные».

Как извлечь данные из Андроид

Итак, существует несколько способов извлечения данных из Андроид устройств. Все они делятся на три группы:

  • Извлечение на логическом уровне
  • Извлечение на уровне файловой системы
  • Извлечение на физическом уровне

Сейчас я подробно разберу каждый из способов. Но для начала дисклеймер!

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

Извлечение данных на логическом уровне

Самый легкий способ логического извлечения — пресловутое резервное копирование с помощью Android Debug Bridge. Делается это очень просто — достаточно включить в настройках Андроид-устройства отладку по ЮСБ, подключить его к компьютеру и ввести эту команду:

Первый ключ, -apk, говорит ADB сделать бекап APK-приложения; второй, -shared, включает в бэкап данные приложений и содержимое карты памяти, если последняя имеется; третий, -all, позволяет добавить в резервную копию все приложения, в том числе системные  (это может пригодиться при расследовании инцидентов, связанных с заражением вредоносными программа).

Все это хорошо, но не идеально. Потому что современные устройства позволяют сохранять в такую резервную копию далеко не все. К примеру, в него не входит ни список контактов, ни СМС-сообщения, только маленькая часть из файла logs.db.

Чтобы решить эту проблему, разработчики криминалистического ПО, например Magnet Forensics и Oxygen Software, включают в свои инструменты так называемые приложения-агенты. Этот инструмент устанавливаются на Андроид устройство и позволяют извлечь все необходимые базы данных. Например, mmssms.db, который содержит сведения о отправленных и полученных СМС и ММС. Как вы уже поняли, зачастую форензик-софтом для логического извлечения используется все тот же ADB, а полученный бекап распаковывается и обогащается данными, извлеченными приложением-агентом. Кстати, если вы хотите сами распаковать такой бэкап, то благодаря бесплатному инструменту adbextractor вы сможете с легкостью это сделать:

В результате получите tar-архив с содержимым вашего ADB-бэкапа.

Извлечение данных на уровне файловой системы

Так как в последнее время, особенно с выходом Android Nougat, смартфоны с шифрованием перестали быть редкостью, этот способ извлечения данных наиболее приемлем. Как вы наверняка знаете, просто так получить полный доступ к файловой системе пользовательского раздела нельзя, для этого нужны права суперпользователя. На этом подробно останавливаться я не буду. Уверен, в вашем арсенале найдется с десяток инструментов, позволяющих получить заветный root-доступ на Android-девайсе (а если нет, то могу порекомендовать Magisk).

Как вы понимаете, это не самый гуманный способ, особенно если говорить о мобильной криминалистике, ведь он оставляет массу следов в памяти устройства, например добавит приложение SuperSU, а в случае KingoRoot и еще парочку бесполезных приложений. Тем не менее временами приходится использовать и такие сомнительные методы: здесь главные — все тщательно документировать. Разумеется, не все root-методы одинаково вредны, иногда можно получить временный root-доступ, который вполне себе криминалистически правильный.

Есть и более приемлемый способ — так называемый Nandroid-бэкап. Здесь на помощь криминалисту приходят всевозможные кастомные рекавери-прошивки, например TWRP. Кстати, ребята из Oxygen Software сделали свои собственные, очищенные от всевозможного мусора и максимально приближенные к криминалистическим стандартам, о них мы поговорим позже, когда займемся извлечением данных на физическом уровне.

Вернемся к TWRP и Nandroid. Такой бэкап, в отличие от пресловутого ADB, позволяет сделать практически точную копию состояния вашего Android-девайса в определенный момент времени, а это значит, что абсолютно все данные приложений достанутся криминалистам. И да, сложный графический пароль ваши данные едва ли спасет. А вот заблокированный загрузчик очень даже может, так как в этом случае прошить кастомное рекавери едва ли получится. Такие смартфоны очень расстраивают криминалистов, уж поверьте мне.

Итак, что же нам понадобится для создания Nandroid-бэкапа? Рассмотрим на примере самых распространенных Android-девайсов — тех, что произведены группой компаний Samsung. Во-первых, нужен подходящий образ рекавeри, его можно найти на официальном сайте TWRP. Во-вторых, свеженькая (а иногда и не очень свеженькая) версия Odin — он-то и позволит залить прошивку в смартфон.

И самое главное — не забудьте вставить карту памяти, иначе придется сохранять бэкап прямо в память смартфона/планшета, а это приведет к уничтожению данных, находящихся в свободной области! Помнишь, мы тут мобильной криминалистикой занимаемся, а значит, чем меньше изменений мы вносим, тем лучше!

Ну что, вы готовы? Если да, то запускайте свежезагруженный Odin, переводите смартфон в Download Mode (чтобы это сделать, выключи его, а затем зажми кнопку увеличения громкости, Home и Power) и подключайте к компьютеру. Нажимаете на PDA и выбирайте предварительно загруженный файл с рекавери — а теперь Start!

Как только вы справитесь с этой непосильной задачей, можно перезагружать смартфон в свеженькое кастомное рекавери — для этого при перезагрузке нужно зажать кнопку уменьшения громкости и Home. Если вы все сделали правильно, то, скорее всего, увидите восемь довольно крупных кнопок, на одной из которых белым по серому будет написано Backup. Она-то нам и нужна. Теперь выберите подходящее имя, поставьте галочку на разделе Data (именно он содержит пользовательские данные), и можно начинать резервное копирование.

Извлечение данных Android
Извлечение данных Android. Создание Nandroid-бэкапа через TWRP

Вот так, все ваши данные в руках криминалистов!

Извлечение данных на физическом уровне

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

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

Сделать побитовую копию можно даже при помощи стандартной утилиты dd и netcat. Для этого на исследуемом устройстве должен быть терминал, если его нет, то придется самостоятельно установить (не забывайте все тщательно документировать, записывая предпринимаемые шаги, чтобы позже воспользоваться этим при написании заключения). Готовы? Поехали!

Откройте терминал на своем компьютере, перейдите в директорию, в которой вы планируете сохранить побитовую копию своего (или исследуемого) Android-девайса, и воспользуйся следующей командой:

Теперь ADB может взаимодействовать с netcat через порт 8888. Возьмите смартфон (или планшет) и в терминале введи следующую команду:

В моем случае раздел с пользовательскими данными шестнадцатый по счету, у вас, разумеется, все может быть по-другому. Чтобы понять, где прячется пользовательский раздел, можете воспользоваться командой mount. Теперь самое время начать преобразовывать извлекаемые данные в побитовую копию. В терминале на своем компьютере введите:

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

Давайте разберем еще один вариант создания физического образа Android-девайса — с помощью кастомного рекавeри. Помните, я говорил, что ребята из Oxygen Software сделали свои собственные, «чистые» рекавери для подобных целей? Так вот, одним из таких мы сейчас и воспользуемся. Нашим подопытным будет Samsung Galaxy S5 Duos под управлением Android 6.0.1.

Первое, что нам нужно сделать, — это перевести его в Download Mode. Думаю, вы знаете, как это сделать. Выбираем пункт «Подключить устройство», далее «Samsung Android дамп (модифицированный образ восстановления)», выбираем модель и версию, и самое сложное: удерживая кнопку увеличения громкости и Home, необходимо кликнуть по кнопке загрузки кастомного рекавери. Если вам хватило ловкости (мне вот с трудом), то все должно закончиться хорошо и телефон перезагрузится в режим восстановления. На телефоне должен появиться Oxygen Software, а на мониторе же покажется что-то вроде этого:

вытащить данные андроид
Как извлечь данные из Андроид. Устройство в режиме восстановления Oxygen

Как видите, теперь устройство имеет root-доступ, а это значит, что мы с легкостью сможем получить побитовую копию. Более того, «Мобильный криминалист: Детектив» поможет нам проанализировать извлеченные данные и даже восстановить удаленные, в том числе из уже известных вам баз SQLite.

мобильная криминалистика
Мобильная криминалистика. Опции извлечения данных

Вот такая вот магия!

Файловые системы Андроид-устройств

Итак, у нас есть пара физических образов (надеюсь, они нешифрованные). Самое время приступить к анализу имеющихся на них данных. Для начала давайте определимся, какие файловые системы вам могут встретиться. Их довольно много, хотя, конечно, самая распространенная сейчас ext4, которая используется в Android-девайсах начиная с Gingerbread (2.3). Если с ext4 все более или менее понятно, то с некоторыми другими — не совсем.

Так, вам может встретиться F2FS — файловая система с открытым исходным кодом, созданная Samsung. Ее, кстати, также облюбовали разработчики из Motorola. Если вдруг в ваши  руки попадет устройство пре-Gingerbread, то, вполне возможно, вы столкнетесь с YAFFS2 — еще одной файловой системой с открытым исходным кодом. Так к чему я это все? Ах да! Чем больше вы любите Linux, тем проще вам справиться со всеми этими файловыми системами. Разумеется, коммерческие программные комплексы я в расчет не беру — эти без проблем разделаются с любой из них.

Восстановление удаленных данных

Перед тем как начать исследовать полученные данные, очень неплохой идеей будет восстановить, насколько это возможно, все удаленное. Здесь мы поговорим о внутренней памяти Android-девайса, так как с microSD-картой все более или менее понятно. Если же вы вдруг запутались в своем программном арсенале — для этой цели можете воспользоваться TestDisk.

Вы уже знаете, что такое карвинг (а если кто не знает — это метод восстановления данных, основанный на анализе не метаданных, а содержимого файлов). Разумеется, эта техника сработает и здесь.

Утилиты PhotoRec или Scalpel прекрасно справятся с этой задачей. Первый, между прочим, даже включен в качестве модуля в небезызвестный опенсорсный криминалистический инструмент Autopsy. Кстати, для исследования ext4 вы легко можете воспользоваться этим инструментом.

Восстановить удаленные файлы, если мы говорим об ext4, также может помочь extundelete — этот инструмент прошерстит весь журнал раздела в поисках удаленных данных. Коммерческие инструменты, разумеется, тут вне конкуренции — все тот же «Мобильный криминалист» с легкостью восстановит все необходимое сразу после снятия физического образа.

Естественно, не вся удаленная информация кроется в удаленных файлах. Как и в iOS, в Android большинство приложений (особенно это касается мессенджеров и веб-браузеров, которые, в общем-то, служат чуть ли не главными источниками цифровых доказательств) хранит информацию в базах данных SQLite. В предыдущей статье вы уже познакомился с инструментами, позволяющими восстанавливать удаленные записи из таких баз, если же вам хочется поковыряться в них самому, я настоятельно рекомендую просмотрщик баз данных SQLite, являющийся частью «Мобильного криминалиста» Oxygen Software.

восстановление данных андроид
Просмотрщик баз данных SQLite «Мобильного криминалиста»

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

Анализ Android-приложений

Я долго думал, какое же приложение взять в качестве примера, в итоге решил остановиться на ну очень популярном мессенджере — WhatsApp. Он поразительно часто встречается как на iOS-девайсах, так и на Android.

Разумеется, коммерческие инструменты вроде «Мобильного криминалиста» сделают грязную работу за тебя и продемонстрируют всю переписку, включая удаленные сообщения, по результатам анализа извлеченных данных. Но мы пойдем другим путем и проанализируем данные этого приложения вручную.

Для начала вам нужно найти следующий каталог:

Первое, что должно броситься в глаза, — это два файла с именем me. Первый имеет расширение jpg и хранит юзерпик, второй без расширения — в нем вы найдете номер, с которым ассоциируется WhatsApp-аккаунт. Если вы перейдете в /files/Avatars, то найдете миниатюры юзерпиков всех контактов пользователя.

Ну вот мы и добрались до самого лакомого кусочка — msgstore.db. Как вы, наверное, догадались, это база данных в формате SQLite, которая содержит информацию о переданных и полученных сообщениях. Думаю, вы уже знаете, что с ней делать. Найти ее можно здесь:

Что касается изображений, видео и голосовых сообщений — все это богатство вы сможете найти на microSD-карте:

Выводы

Теперь вы понимаете, что извлечь данные из Андроид даже очень легко. Разумеется, здесь тоже есть свои подводные камни, шифрование например. Заблокированный загрузчик также может спасти ваши данные далеко не всегда — JTAG и Chip-off еще никто не отменял, хотя здесь шансы успешного извлечения несколько уменьшаются. А вкупе с пасскодом и шифрованием (если у вас Android 7.0, то, скорее всего, оно активировано по умолчанию; если вы обновились до нее с предыдущей версии, то стоит это проверить) эта особенность сделает ваш смартфон или планшет настоящей Крепостью Одиночества.

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *