Você está na página 1de 603

Machine Translated by Google

Machine Translated by Google

Perícia Forense Móvel Prática


Quarta edição

Investigue e analise forensemente dispositivos iOS, Android e Windows


10

Rohit Tamma
Oleg Skulkin
Heather Mahalik
Satish Bommisetty
Machine Translated by Google

BIRMINGHAM - MUMBAI
Machine Translated by Google
Machine Translated by Google

Quarto Forense Móvel Prático


Edição

Copyright © 2020 Packt Publishing

Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida, armazenada em um sistema de recuperação ou transmitida de
qualquer forma ou por qualquer meio, sem a permissão prévia por escrito do editor, exceto no caso de breves citações incorporadas em artigos críticos ou
resenhas.

Todo esforço foi feito na preparação deste livro para garantir a precisão das informações apresentadas. No entanto, as informações contidas neste
livro são vendidas sem garantia, expressa ou implícita. Nem os autores, nem a Packt Publishing ou seus revendedores e distribuidores serão
responsabilizados por quaisquer danos causados ou supostamente causados direta ou indiretamente por este livro.

A Packt Publishing se esforçou para fornecer informações de marca registrada sobre todas as empresas e produtos mencionados neste livro pelo uso
apropriado de maiúsculas. No entanto, a Packt Publishing não pode garantir a precisão dessas informações.

Editor de Comissionamento: Vijin Boricha


Editor de aquisição: Rohit Rajkumar
Editor de Desenvolvimento de Conteúdo: Ronn Kurien
Editor Sênior: Rahul Dsouza
Editor técnico: Dinesh Pawar
Editor de Texto: Safis Editing
Coordenador do Projeto: Vaidehi Sawant
Revisor: Safis Editing
Indexador: Rekha Nair
Designer de Produção: Deepika Naik

Primeira publicação: julho de 2014


Segunda edição: maio de 2016
Terceira edição: janeiro de 2018
Quarta edição: abril de 2020

Referência de produção: 1090420

Publicado por Packt Publishing Ltd.


Livery Place
35 Livery Street
Birmingham B3
2PB, Reino Unido.

ISBN 978-1-83864-752-0

www.packt.com
Machine Translated by Google

Packt.com

Assine nossa biblioteca digital on-line para obter acesso total a mais de 7.000
livros e vídeos, bem como ferramentas líderes do setor para ajudá-lo a planejar seu
desenvolvimento pessoal e avançar em sua carreira. Para obter mais informações,
visite nosso site.
Machine Translated by Google

Por que assinar?


Gaste menos tempo aprendendo e mais tempo codificando com eBooks e vídeos práticos
de mais de 4.000 profissionais do setor

Melhore seu aprendizado com Skill Plans criados especialmente para você

Receba um e-book ou vídeo grátis todos os meses

Totalmente pesquisável para facilitar o acesso a informações vitais

Copiar e colar, imprimir e marcar o conteúdo

Você sabia que a Packt oferece versões eBook de todos os livros publicados, com arquivos
PDF e ePub disponíveis? Você pode atualizar para a versão eBook em www.packt.com e como
cliente do livro impresso, você tem direito a um desconto na cópia do eBook. Entre em contato
conosco em customercare@packtpub.com para mais detalhes.

Em www.packt.com, você também pode ler uma coleção de artigos técnicos gratuitos, inscrever-
se em uma variedade de boletins informativos gratuitos e receber descontos e ofertas exclusivas
em livros e e-books da Packt.
Machine Translated by Google

Contribuintes
Machine Translated by Google

Sobre os autores
Rohit Tamma é um gerente de programa sênior que atualmente trabalha
com a Microsoft. Com mais de 10 anos de experiência na área de segurança,
sua experiência abrange funções de gerenciamento e consultoria técnica nas
áreas de segurança de aplicativos e nuvem, segurança móvel, testes de
penetração e codificação segura. Rohit também é co-autor de Learning Android
Forensics, da Packt, que explica várias maneiras de realizar análises forenses em
plataformas móveis. Você pode contatá-lo no Twitter em @RohitTamma.

Quero agradecer sinceramente a Satish Bommisetty, meu ex-colega e mentor, que me inspirou no início de
minha carreira e me apoiou ao longo da jornada deste livro. Também quero agradecer à equipe da Packt por
seu apoio contínuo e ajuda para levar este livro à quarta edição. E, finalmente, este livro é para meus pais, a
quem devo tudo.

Oleg Skulkin é analista forense digital sênior no Group-IB, um dos líderes


globais na prevenção e investigação de crimes de alta tecnologia e fraudes online.
Ele possui várias certificações, incluindo GCFA, GCTI e MCFE. Oleg também é
co-autor do Windows Forensics Cookbook e Learning Android Forensics, ambos
da Packt, bem como de muitas postagens de blog e artigos sobre perícia digital,
resposta a incidentes e caça a ameaças que você pode encontrar online. Você
pode contatá-lo no Twitter em @oskulkin.

Gostaria de agradecer à minha família e à equipe de análise forense digital e resposta a incidentes do Group-
IB por seu amor e apoio, bem como à equipe da Packt e aos meus coautores por tornar este livro possível.

Heather Mahalik é diretora sênior de inteligência digital da Cellebrite.


Ela é instrutora sênior e autora do SANS Institute, e também é a líder do curso
FOR585 Smartphone Forensic Analysis In-Depth. Com 18 anos de experiência em
forense digital, ela continua a prosperar em investigações de smartphones, forense
digital, desenvolvimento e instrução de cursos forenses e pesquisa sobre análise
de aplicativos e forense de smartphones.
Machine Translated by Google

Satish Bommisetty é um arquiteto de segurança que atualmente trabalha com JDA.


Suas principais áreas de interesse incluem segurança de aplicativos móveis e da Web,
segurança em nuvem e análise forense de iOS. Ele se apresentou em conferências de
segurança, como ClubHACK e C0C0n. Satish é um dos principais caçadores de
recompensas de bugs e está listado nos corredores da fama do Google, Facebook,
PayPal, Microsoft, Yahoo, Salesforce e muito mais, por identificar e relatar suas
vulnerabilidades de segurança. Você pode contatá-lo no Twitter em @satishb3.
Machine Translated by Google

Sobre os revisores
Igor Mikhaylov trabalha como examinador forense há 22 anos.
Durante esse tempo, ele participou de muitos seminários e aulas de treinamento das
principais empresas forenses digitais (como Guidance Software, AccessData e
Cellebrite) e departamentos forenses de organizações governamentais da Federação
Russa. Ele tem experiência e habilidades em computação forense, resposta a incidentes,
forense de telefone celular, forense de chip-off, forense de malware, recuperação de
dados, análise de imagem digital, forense de vídeo e big data. Ele escreveu três tutoriais
sobre análise forense de telefones celulares e resposta a incidentes para examinadores
forenses russos.

O detetive Chad Prda serviu na aplicação da lei por mais de 16 anos.


Ao longo de sua distinta carreira, ele obteve várias certificações, incluindo Advanced
Peace Officer, Advanced Interview and Interrogation e Expert in Mobile Forensics. O
detetive Prda serviu na SWAT por 8 anos como instrutor de armas de fogo e atirador
de elite (atirador).

Mais tarde, ele se mudou para investigações criminais, especializando-se em


investigações de mídia social, forense móvel e mapeamento celular, além de
testemunhar em vários casos criminais como testemunha especialista e estudar no
Instituto Nacional de Forense de Computadores do Serviço Secreto dos Estados Unidos.
Machine Translated by Google

Packt está procurando por autores como você

Se você estiver interessado em se tornar um autor da Packt, visite authors.packt pub.com


e inscreva-se hoje. Trabalhamos com milhares de desenvolvedores e profissionais de
tecnologia, assim como você, para ajudá-los a compartilhar suas ideias com a comunidade
global de tecnologia. Você pode fazer uma inscrição geral, candidatar-se a um tema
quente específico para o qual estamos recrutando um autor ou enviar sua própria ideia.
Machine Translated by Google

Índice
Folha de rosto

Direitos autorais e créditos


Quarta Edição Forense Móvel Prática

Sobre Packt

Por que assinar?


Contribuintes

Sobre os autores

Sobre os revisores

Packt está procurando por autores como você


Prefácio

Para quem é este livro

O que este livro cobre

Para obter o máximo deste livro

Baixe as imagens coloridas


Convenções usadas

Isenção de responsabilidade

Entrar em contato

Avaliações

1. Introdução à perícia forense móvel

A necessidade de perícia móvel

Entendendo a perícia móvel

Desafios em forense móvel

O processo de extração de evidências de telefone celular

A fase de admissão de evidências

A fase de identificação

A autoridade legal
Dados que precisam ser extraídos

A marca, modelo e informações de identificação do dispositivo

Mídia de armazenamento de dados

Outras fontes de evidências potenciais

A fase de preparação

A fase de isolamento

A fase de processamento
Machine Translated by Google

A fase de verificação
A fase de documentação e relatório
A fase de arquivamento
Abordagens forenses práticas móveis
Entendendo os sistemas operacionais móveis 
Android
iOS

telefone do Windows

Sistema móvel de nivelamento de ferramentas forenses


extração manual

análise lógica
Despejo Hexadecimal

Chip-off
micro leitura

Métodos de aquisição de dados


Aquisição física
Aquisição lógica
aquisição manual
Evidências potenciais armazenadas em telefones celulares
Exame e análise
Regras de evidência

Boas práticas forenses


Protegendo as evidências
Preservando as evidências
Documentando as evidências e mudanças
Comunicando

Resumo
1. Seção 1: Análise forense do iOS

2. Compreendendo o interior dos dispositivos iOS


Modelos e hardware do iPhone

Identificando o modelo de hardware correto


Entendendo o hardware do iPhone
Modelos e hardware do iPad

Entendendo o hardware do iPad


Os sistemas de arquivos HFS Plus e APFS
O sistema de arquivos HFS Plus
O volume HFS Plus
Machine Translated by Google

O sistema de arquivos APFS


A estrutura APFS

Disposição do disco

o sistema operacional do iphone

A arquitetura do iOS

segurança do iOS

Senhas, Touch ID e Face ID

Assinatura de código

Sandboxing

Criptografia

Proteção de dados

Randomização de layout de espaço de endereço (ASLR)

Separação de privilégios

Proteção contra pilha

Prevenção de Execução de Dados (DEP)

Limpeza de dados

Bloqueio de Ativação

A loja de aplicativos

Jailbreak

Resumo

3. Aquisição de dados de dispositivos iOS

Modos de operação de dispositivos iOS


Modo normal

Modo de recuperação

modo DFU

Configurando o ambiente forense

Proteção por senha e potenciais desvios

Aquisição lógica

Aquisição lógica prática com libimobiledevice

Aquisição lógica prática com a Belkasoft Acquisition Tool

Aquisição lógica prática com Magnet ACQUIRE

Aquisição do sistema de arquivos

Jailbreak prático

Aquisição prática de sistema de arquivos com ferramentas gratuitas

Aquisição prática de sistema de arquivos com Elcomsoft iOS Forensic Toolkit

Resumo

4. Aquisição de dados de backups do iOS


Machine Translated by Google

Trabalhando com backups do iTunes

Criando e analisando backups com o iTunes

Entendendo a estrutura de backup

info.plist

manifest.plist

status.plist

manifest.db

Extraindo backups não criptografados

iBackup Viewer

iExplorer

Manipulando arquivos de backup criptografados


Elcomsoft Phone Breaker

Trabalhando com backups do iCloud

Extraindo backups do iCloud

Resumo

5. Análise e recuperação de dados do iOS

Interpretando carimbos de data/hora do iOS

carimbos de data/hora do Unix

Tempo absoluto do Mac

Hora do WebKit/Chrome

Trabalhando com bancos de dados SQLite

Conectando a um banco de dados

Explorando comandos especiais do SQLite

Explorando consultas SQL padrão

Acessando um banco de dados usando ferramentas comerciais

Principais artefatos – arquivos importantes do banco de dados do iOS

Contatos do catálogo de endereços

Imagens do catálogo de endereços

Histórico de chamadas

Mensagens do Serviço de Mensagens Curtas (SMS)

Eventos do calendário

Notas

Favoritos e histórico do Safari


correio de voz

gravações
Interação do dispositivo

Números de telefone
Machine Translated by Google

Listas de propriedades

Arquivos plist importantes


Outros arquivos importantes
dicionário local
Fotos
Miniaturas

Papel de parede

Aplicativos baixados de terceiros


Recuperando registros SQLite excluídos
Resumo
6. Ferramentas forenses do iOS

Trabalhando com o Cellebrite UFED Physical Analyzer


Recursos do Analisador Físico Cellebrite UFED
Aquisição e análise lógica avançada com Cellebrite UFED
Analisador Físico
Trabalhando com Magnet AXIOM
Recursos do Magnet AXIOM
Aquisição lógica e análise com Magnet AXIOM
Trabalhando com o Belkasoft Evidence Center
Recursos do Belkasoft Evidence Center
Aquisição lógica e análise com Belkasoft Evidence Center
Trabalhando com o Elcomsoft Phone Viewer
Recursos do Elcomsoft Phone Viewer

Análise do sistema de arquivos com Elcomsoft Phone Viewer


Resumo
2. Seção 2: Análise forense do Android

7. Entendendo o Android
A evolução do Android

A arquitetura do Android

A camada do kernel do Linux


A camada de abstração de hardware
bibliotecas

Máquina Virtual Dalvik (DVM)


ARTE

A camada de estrutura da API Java


A camada de aplicativos do sistema

segurança do Android
Machine Translated by Google

Kernel seguro

O modelo de permissão

Caixa de areia do aplicativo

IPC seguro

Assinatura do aplicativo

Linux com segurança aprimorada (SELinux)

FDE

Armazenamento de chaves do Android

TE

Inicialização verificada

A hierarquia de arquivos do Android

O sistema de arquivos do Android

Visualizando sistemas de arquivos em um dispositivo Android

Sistemas de arquivos comuns encontrados no Android

Sistemas de arquivos de memória flash

Sistemas de arquivos baseados em mídia

Pseudosistemas de arquivos

Resumo

8. Configuração forense do Android e técnicas de pré-extração de dados

Configurando um ambiente forense para Android

Instalando o software

Instalando as ferramentas da plataforma Android

Criando um dispositivo virtual Android

Conectando um dispositivo Android a uma estação de trabalho

Identificando o cabo do dispositivo

Instalando drivers de dispositivo

Acessando o dispositivo conectado

A ponte de depuração do Android

Depuração USB

Acessando o dispositivo usando adb

Detectando dispositivos conectados

Matando o servidor ADB local

Acessando o adb shell

Comandos básicos do Linux

Manipulando um dispositivo Android

Técnicas de desvio de bloqueio de tela

Usando o ADB para ignorar o bloqueio de tela


Machine Translated by Google

Excluindo o arquivo gesto.key

Atualizando o arquivo settings.db

Verificando o modo de recuperação modificado e a conexão ADB

Piscando uma nova partição de recuperação

Usando ferramentas automatizadas

Usando o Gerenciador de dispositivos Android

Ignorar usando Find My Mobile (somente para telefones Samsung)

ataque de manchas

Usando a opção esqueci a senha/esqueci o padrão

Ignorando telas de bloqueio de terceiros inicializando no modo de segurança

Desvio seguro de depuração USB usando chaves ADB

Desvio seguro de depuração USB no Android 4.4.2

Falhando a IU da tela de bloqueio no Android 5.x

Outras técnicas

Obtendo acesso root

O que é enraizamento?

Entendendo o processo de enraizamento

Fazendo root em um dispositivo Android

Acesso raiz - shell ADB

Resumo

9. Técnicas de extração de dados do Android

Noções básicas sobre técnicas de extração de dados


Extração manual de dados

Extração lógica de dados

Extração de dados pull ADB

Usando o SQLite Browser para visualizar os dados

Extraindo informações do dispositivo

Extraindo registros de chamadas

Extraindo SMS/MMS

Extraindo informações do histórico do navegador

Análise de redes sociais/bate-papos de mensagens instantâneas

Extração de backup ADB

Extração de dumpsys ADB

Usando provedores de conteúdo

Extração de dados físicos

Imaging um telefone Android

Imaging um cartão de memória (SD)


Machine Translated by Google

Grupo de Ação de Teste Conjunto

A técnica do chip-off

Resumo

10. Análise e recuperação de dados do Android

Analisando e extraindo dados de arquivos de imagem do Android usando o Autopsy

ferramenta

A plataforma de autópsia

Adicionando uma imagem à autópsia

Analisando uma imagem usando Autopsy

Noções básicas sobre técnicas para recuperar arquivos excluídos do cartão SD e th

e memoria interna

Recuperando dados excluídos de um cartão SD externo

Recuperando dados apagados da memória interna

Recuperando arquivos excluídos analisando arquivos SQLite

Recuperando arquivos usando técnicas de escultura de arquivo

Recuperando contatos usando sua conta do Google

Resumo

11. Análise de aplicativos Android, malware e engenharia reversa

Analisando aplicativos Android amplamente usados para recuperar dados valiosos

Análise do aplicativo Android do Facebook

Análise do aplicativo WhatsApp para Android

Análise do aplicativo Skype para Android

Análise do aplicativo Gmail para Android

Análise do aplicativo Google Chrome para Android

Técnicas para fazer engenharia reversa em um aplicativo Android

Extraindo um arquivo APK de um dispositivo Android

Etapas para fazer engenharia reversa de aplicativos Android

Android malware

Tipos de malware Android

Como o malware Android se espalha?

Identificando malware Android

Resumo

3. Seção 3: Análise forense do Windows e aplicativos de terceiros 12. Análise

forense do Windows Phone

SO Windows Phone

Modelo de segurança do Windows 10 Mobile

câmaras
Machine Translated by Google

Criptografia

Modelo baseado em capacidade

Sandboxing de aplicativos

Sistema de arquivos do Windows Phone

Aquisição de dados

Métodos de aquisição de ferramentas forenses comerciais

Extração de dados sem o uso de ferramentas comerciais


Métodos de extração de dados do cartão SD

Principais artefatos para exame

Extraindo contatos e SMS

Extraindo histórico de chamadas

Extraindo o histórico da internet

Resumo

13. Análise de arquivos de aplicativos de terceiros

Introdução a aplicativos de terceiros

Aplicativos de bate-papo

aplicativos de GPS

Aplicativos seguros

Aplicações financeiras

Aplicativos de redes sociais

Codificação versus criptografia

Armazenamento de dados de aplicativos iOS, Android e Windows Phone

aplicativos iOS

aplicativos Android

Aplicativos do Windows Phone

Métodos forenses usados para extrair dados de aplicativos de terceiros


Ferramentas comerciais

Detetive forense de oxigênio

AXIOMA magnético

UFED Analisador Físico

Ferramentas de código aberto/livres

Trabalhando com Autópsia

Outros métodos de extração de dados do aplicativo

Resumo

Outros livros que você pode gostar

Deixe um comentário - deixe outros leitores saberem o que você pensa


Machine Translated by Google

Prefácio
A análise forense de telefones celulares é a ciência de recuperar dados de
um telefone celular sob condições forenses sólidas. Esta é a quarta edição do
nosso bem-sucedido livro Practical Mobile Forensics , que aprofunda os conceitos
de perícia móvel e sua importância no mundo atual.
Este livro se concentra em ensinar as mais recentes técnicas forenses na
investigação de dispositivos móveis em várias plataformas móveis. Você
aprenderá técnicas forenses em várias versões do sistema operacional,
incluindo iOS 12, iOS 13, Android 9, Android 10 e Windows 10. Você se
aprofundará nas mais recentes ferramentas forenses de código aberto e móveis
comerciais, permitindo analisar e recuperar dados com eficácia. Você aprenderá
como inspecionar o dispositivo, recuperar dados da nuvem e documentar com
êxito os relatórios de suas investigações. Você explorará a engenharia reversa
de aplicativos e formas de identificar malware. Você também encontrará a análise
de aplicativos populares de terceiros, como Facebook e WhatsApp.

Ao final deste livro, você terá dominado várias técnicas forenses móveis para
analisar e extrair dados de dispositivos móveis com a ajuda de soluções de
código aberto.
Machine Translated by Google

Para quem é este livro


Este livro destina-se a examinadores forenses com pouca ou apenas experiência
básica em perícias móveis ou soluções de código aberto para perícias móveis. Este
livro também será útil para profissionais de segurança de computadores, pesquisadores e
qualquer pessoa que esteja buscando uma compreensão mais profunda dos componentes internos móveis.
Alguma compreensão das práticas forenses digitais seria útil.
Machine Translated by Google

O que este livro cobre

O Capítulo 1, Introdução à perícia forense móvel, apresenta os conceitos da perícia forense móvel,
seus valores centrais e os desafios envolvidos. Este capítulo também fornece uma visão geral das
abordagens práticas e das melhores práticas envolvidas na realização de perícias móveis.

O Capítulo 2, Compreendendo os componentes internos dos dispositivos iOS, fornece uma visão
sobre a análise forense do iOS. Você aprenderá sobre o layout do sistema de arquivos, recursos de
segurança e como os arquivos são armazenados em um dispositivo iOS.

O Capítulo 3, Aquisição de dados de dispositivos iOS, discute ferramentas que o ajudarão a obter
dados de dispositivos iOS para posterior exame forense. Nem todas as ferramentas são criadas iguais,
por isso é importante entender as melhores ferramentas para fazer o trabalho corretamente.

O Capítulo 4, Aquisição de dados de backups do iOS, discute os arquivos de backup do dispositivo


iOS em detalhes, incluindo usuários, arquivos forenses, criptografados e de backup do iCloud, e os
métodos para conduzir seu exame forense.

O Capítulo 5, Análise e recuperação de dados do iOS, avança na investigação forense,


mostrando ao examinador como analisar os dados recuperados dos arquivos de backup. As áreas
que contêm dados de potencial valor probatório serão explicadas em detalhes.

Capítulo 6, iOS Forensic Tools, para fins de familiaridade, orienta você no uso de várias ferramentas
comerciais, como Elcomsoft iOS Forensic Toolkit, Cellebrite (UFED4PC, Touch e Physical Analyzer),
BlackLight, Oxygen Forensic Detective, AccessData MPE+, EnCase, Belkasoft Evidence Center, MSAB
XRY e muitos outros, que estão disponíveis para aquisição forense e análise de dispositivos iOS. Este
capítulo fornece detalhes dos processos necessários para realizar aquisições e análises de dispositivos
iOS.
Machine Translated by Google

O Capítulo 7, Compreendendo o Android, apresenta os fundamentos da plataforma


Android, seus recursos de segurança integrados e seu sistema de arquivos. Este capítulo
estabelece o conhecimento forense básico que será útil nos próximos capítulos.

O Capítulo 8, Configuração forense do Android e técnicas de extração de pré-dados, informa o


que considerar ao configurar um ambiente de exame forense digital. Informações passo a passo
sobre como fazer root em um dispositivo Android e ignorar o recurso de bloqueio de tela são
fornecidas neste capítulo.

O Capítulo 9, Técnicas de extração de dados do Android, ajuda você a identificar os locais


confidenciais em um dispositivo Android e explica várias técnicas lógicas e físicas que podem
ser aplicadas ao dispositivo para extrair as informações necessárias.

O Capítulo 10, Análise e recuperação de dados do Android, explica como extrair dados
relevantes, como registros de chamadas, mensagens de texto e histórico de navegação de um
arquivo de imagem. Também abordaremos técnicas de recuperação de dados, com as quais
podemos recuperar dados que foram excluídos de um dispositivo.

O Capítulo 11, Análise de aplicativos Android, malware e engenharia reversa, explica


que, embora as técnicas de extração e recuperação de dados discutidas nos capítulos
anteriores forneçam acesso a dados valiosos, a análise de aplicativos neste capítulo nos ajuda
a adquirir informações sobre as especificidades de um aplicativo, como preferências e
permissões.

O Capítulo 12, Windows Phone Forensics, discute os Windows Phones, que não ocupam muito
espaço no mercado móvel. Portanto, a maioria dos profissionais forenses não está familiarizada
com os formatos de dados, bancos de dados incorporados e outros artefatos existentes no
dispositivo. Este capítulo fornece uma visão geral da análise forense do Windows Phone,
descrevendo vários métodos de aquisição e exame de dados em dispositivos Windows Mobile.

O Capítulo 13, Analisando arquivos de aplicativos de terceiros, apresenta os vários


aplicativos vistos em dispositivos Android, dispositivos iOS e Windows Phones. Cada
aplicativo irá variar de acordo com as versões e dispositivos, mas suas
Machine Translated by Google

estruturas subjacentes são semelhantes. Veremos como os dados são armazenados e por
que os arquivos de preferência são importantes para sua investigação.
Machine Translated by Google

Para obter o máximo deste livro


Certifique-se de ter um dispositivo móvel de teste no qual possa experimentar as
técnicas explicadas no livro. Não tente essas técnicas em seu telefone pessoal.

Algumas das técnicas explicadas no livro, como fazer root em um dispositivo, são
específicas da marca e do sistema operacional em execução no dispositivo. Certifique-
se de pesquisar e reunir informações suficientes antes de tentar essas técnicas.

Se você estiver usando a versão digital deste livro, aconselhamos que você
mesmo digite os comandos. Isso ajudará você a evitar possíveis erros
relacionados à cópia e colagem de código.
Machine Translated by Google

Baixe as imagens coloridas


Também fornecemos um arquivo PDF com imagens coloridas
das capturas de tela/diagramas usados neste livro. Você pode baixá-lo aqui: http://ww
w.packtpub.com/sites/default/files/downloads/9781838647520_ColorImages.pdf
Machine Translated by Google

Convenções usadas

Há uma série de convenções de texto usadas ao longo deste livro.

CodeInText: indica palavras de código em texto, nomes de tabelas de banco de dados, nomes de pastas, nomes

de arquivos, extensões de arquivos, nomes de caminho, URLs fictícios, entrada do usuário e identificadores do
Twitter. Aqui está um exemplo: "Monte o arquivo de imagem de disco WebStorm 10*.dmg baixado como outro
disco em seu sistema."

Um bloco de código é definido da seguinte forma:

html, corpo, #mapa


{ altura: 100%; margem:
0; preenchimento: 0 }

Quando queremos chamar sua atenção para uma parte específica de um bloco de código, as linhas ou itens
relevantes são colocados em negrito:

[padrão]
exten => s,1,Dial(Zap/1|30) exten =>
s,2,Voicemail(u100) exten =>
s,102,Voicemail(b100) exten => i,1,Voicemail
( s0 )

Qualquer entrada ou saída de linha de comando é escrita da seguinte forma:

$ mkdir css $
cd css

Negrito: indica um novo termo, uma palavra importante ou palavras que você vê na tela. Por exemplo,
palavras em menus ou caixas de diálogo aparecem no texto assim. Aqui está um exemplo: "Selecione
informações do sistema no painel de administração."

Avisos ou notas importantes aparecem assim.

Dicas e truques aparecem assim.


Machine Translated by Google

Isenção de responsabilidade

As informações contidas neste livro devem ser usadas apenas de maneira


ética. Não use nenhuma informação do livro se você não tiver permissão
por escrito do proprietário do equipamento. Se você realizar ações ilegais,
provavelmente será preso e processado em toda a extensão da lei. A Packt
Publishing não assume nenhuma responsabilidade se você fizer uso indevido
de qualquer informação contida no livro. As informações aqui contidas devem
ser usadas apenas durante os testes de ambientes com a devida autorização
por escrito dos responsáveis apropriados.
Machine Translated by Google

Entrar em contato

O feedback dos nossos leitores é sempre bem-vindo.

Comentários gerais: Se você tiver dúvidas sobre qualquer aspecto deste


livro, mencione o título do livro no assunto de sua mensagem e envie um e-mail
para customercare@packtpub.com.

Errata: Embora tenhamos tomado todos os cuidados para garantir a precisão de


nosso conteúdo, erros acontecem. Se você encontrou um erro neste livro, ficaríamos
gratos se você nos relatasse. Visite www.packtpub.com/support/errata , selecione seu
livro, clique no link Errata Submission Form e insira os detalhes.

Pirataria: Se você encontrar cópias ilegais de nossos trabalhos em qualquer forma


na Internet, ficaríamos gratos se você nos fornecesse o endereço do local ou o nome
do site. Entre em contato conosco em copyright@packt.com com um link para o material.

Se você estiver interessado em se tornar um autor: Se houver um tópico no qual


você seja especialista e no qual esteja interessado, seja escrevendo ou contribuindo
para um livro, visite authors.packtpub.com.
Machine Translated by Google

Avaliações

Por favor, deixe um comentário. Depois de ler e usar este livro, por que não
deixar um comentário no site em que o comprou? Os leitores em potencial podem
ver e usar sua opinião imparcial para tomar decisões de compra, nós da Packt
podemos entender o que você pensa sobre nossos produtos e nossos autores
podem ver seus comentários sobre o livro. Obrigado!

Para obter mais informações sobre Packt, visite packt.com.


Machine Translated by Google

Introdução à perícia móvel

Não há dúvida de que os dispositivos móveis se tornaram parte de nossas vidas e


revolucionaram a maneira como realizamos a maioria de nossas atividades. Como
resultado, um dispositivo móvel agora é um enorme repositório que contém informações
confidenciais e pessoais sobre seu proprietário. Isso, por sua vez, levou ao surgimento
da perícia forense de dispositivos móveis, um ramo da perícia forense digital que lida com a
recuperação de dados de um dispositivo móvel. Este livro ajudará você a entender as técnicas
forenses em três plataformas principais — Android, iOS e Windows. Passaremos por vários
métodos que podem ser usados para coletar evidências de diferentes dispositivos móveis.

Neste capítulo, abordaremos os seguintes tópicos:

A necessidade de perícia móvel


Entendendo a perícia móvel
Desafios em forense móvel
O processo de extração de evidências de telefone celular
Abordagens forenses práticas móveis
Evidências potenciais armazenadas em telefones celulares
Exame e análise
Regras de evidência
Boas práticas forenses
Machine Translated by Google

A necessidade de perícia móvel

De acordo com relatórios Statista (statista.com), espera-se que o número de usuários


de telefones celulares no mundo ultrapasse 5 bilhões até 2020. O mundo está
testemunhando a migração de tecnologia e usuários de desktops para telefones celulares.
A maior parte do crescimento no mercado móvel pode ser atribuída à demanda contínua
por smartphones.

De acordo com um relatório da Ericsson, o tráfego global de dados móveis atingirá 71


exabytes por mês até 2022, de 8,8 exabytes em 2017, uma taxa composta de
crescimento anual de 42%. Os smartphones de hoje, como o iPhone da Apple e a série
Samsung Galaxy, são formas compactas de computadores com alto desempenho,
armazenamento enorme e funcionalidade aprimorada. Os telefones móveis são o
dispositivo eletrônico mais pessoal que um usuário acessa. Eles são usados para
executar tarefas de comunicação simples, como chamadas e mensagens de texto,
enquanto ainda fornecem suporte para navegação na Internet, e-mail, tirar fotos e vídeos,
criar e armazenar documentos, identificar locais com serviços de GPS e gerenciar tarefas
de negócios.

À medida que novos recursos e aplicativos são incorporados aos telefones celulares, a
quantidade de informações armazenadas nos dispositivos cresce continuamente.

Os telefones celulares tornaram-se portadores de dados portáteis, acompanhando todos os


seus movimentos. Com a crescente prevalência de telefones celulares na vida cotidiana das
pessoas e no crime, os dados adquiridos de telefones se tornaram uma fonte inestimável de
evidências para investigações relacionadas a casos criminais, civis e até mesmo de alto
perfil. É raro conduzir uma investigação forense digital que não inclua um telefone. Registros
de chamadas de dispositivos móveis e dados de GPS foram usados para ajudar a resolver a
tentativa de atentado em Times Square, Nova York, em 2010.

Os detalhes do caso podem ser encontrados em https:// www.forensicon.com/ forensics-blotter/ cell-phone-email


-forensics-investigation-cracks-nyc-times-square-car-bombing-case/.
Machine Translated by Google

A ciência por trás da recuperação de evidências digitais de telefones


celulares é chamada de perícia forense móvel, e vamos analisá-la na próxima seção.
Evidência digital é definida como informações e dados armazenados,
recebidos ou transmitidos por um dispositivo eletrônico usado para
investigações. A prova digital abrange todo e qualquer dado digital que possa
ser usado como prova em um caso.
Machine Translated by Google

Entendendo a perícia móvel


A perícia digital é um ramo da ciência forense com foco na recuperação e investigação
de dados brutos residentes em dispositivos eletrônicos ou digitais. O objetivo do
processo é extrair e recuperar qualquer informação de um dispositivo digital sem alterar
os dados presentes no dispositivo. Ao longo dos anos, a perícia digital cresceu junto
com o rápido crescimento de computadores e vários outros dispositivos digitais. Existem
vários ramos da perícia digital com base no tipo de dispositivo digital envolvido, como
perícia forense de computador, perícia forense de rede e perícia forense móvel.

A perícia forense móvel é um ramo da perícia forense digital que lida com a
aquisição e recuperação de evidências de dispositivos móveis. Forensicalmente
sólido é um termo usado extensivamente na comunidade forense digital para
qualificar e justificar o uso de uma tecnologia ou metodologia forense específica. Um
dos princípios fundamentais que orientam o exame forense sólido é que a evidência
original não deve ser alterada de nenhuma forma.
Isso é extremamente difícil com dispositivos móveis. Algumas ferramentas forenses
requerem um vetor de comunicação com o dispositivo móvel e, portanto, a proteção
contra gravação padrão não funcionará durante a aquisição forense.

Outros métodos de aquisição forense podem envolver a remoção de um chip ou


a instalação de um bootloader personalizado no dispositivo móvel antes da extração de
dados para exame forense. Nos casos em que o exame ou aquisição de dados não for
possível sem alterar a configuração do dispositivo, o procedimento e as alterações devem
ser cuidadosamente testados e documentados para referência posterior. Seguir a
metodologia e as diretrizes adequadas é crucial ao examinar os dispositivos móveis, pois
isso gera os dados mais valiosos. Como acontece com qualquer coleta de provas, não
seguir o procedimento adequado durante o exame pode resultar em perda ou dano de
provas ou torná-las inadmissíveis no tribunal.

O processo forense móvel é dividido em três categorias principais: apreensão, aquisição


e exame/ análise. Face dos examinadores forenses
Machine Translated by Google

alguns desafios ao apreender o dispositivo móvel como fonte de evidência. Na cena do


crime, se o dispositivo móvel for encontrado desligado, você, como examinador, deve
colocar o dispositivo em uma bolsa de Faraday para evitar alterações caso o dispositivo
seja ligado automaticamente. Os sacos de Faraday são projetados especificamente para
isolar um telefone de uma rede.

Se o telefone for encontrado ligado, desligá-lo traz muitas preocupações. Se o


telefone estiver bloqueado por um PIN ou senha, ou criptografado, será necessário
ignorar o bloqueio ou determinar o PIN para acessar o dispositivo. Os telefones
celulares são dispositivos em rede e podem enviar e receber dados por meio de
diferentes fontes, como sistemas de telecomunicações, pontos de acesso Wi-Fi e
Bluetooth. Portanto, se o telefone estiver em execução, um criminoso pode apagar com
segurança os dados armazenados no telefone executando um comando de limpeza
remota. Quando um telefone é ligado, ele deve ser colocado em uma bolsa de Faraday.
Se possível, antes de colocar um dispositivo móvel em uma bolsa de Faraday, você deve
desconectá-lo da rede para proteger as evidências ativando o modo de voo e desativando
todas as conexões de rede (Wi-Fi, GPS, pontos de acesso e assim por diante). Isso
também preservará a bateria, que irá descarregar enquanto estiver em uma bolsa de
Faraday, e protegerá contra vazamentos na bolsa de Faraday. Uma vez que o dispositivo
móvel é apreendido corretamente, o examinador pode precisar de várias ferramentas
forenses para adquirir e analisar os dados armazenados no telefone.

A aquisição forense de dispositivos móveis pode ser realizada usando vários


métodos, que serão definidos posteriormente. Cada um desses métodos afeta a
quantidade de análise necessária, que será discutida com mais detalhes nos próximos
capítulos. Se um método falhar, outro deve ser tentado.
Várias tentativas e ferramentas podem ser necessárias para adquirir a
quantidade máxima de dados do dispositivo móvel.

Os telefones celulares são sistemas dinâmicos que apresentam muitos desafios para
extrair e analisar evidências digitais. O rápido aumento no número de diferentes tipos
de telefones celulares de diferentes fabricantes dificulta o desenvolvimento de um
único processo ou ferramenta para examinar todos os tipos de dispositivos. Os telefones
celulares estão evoluindo continuamente à medida que as tecnologias existentes
progridem e novas tecnologias são introduzidas. Além disso, cada celular é projetado
com uma variedade de sistemas operacionais integrados. Portanto, especial
Machine Translated by Google

conhecimentos e habilidades são necessários de especialistas forenses para adquirir


e analisar os dispositivos.
Machine Translated by Google

Desafios em forense móvel


Um dos maiores desafios forenses quando se trata da plataforma móvel é o fato de
que os dados podem ser acessados, armazenados e sincronizados em vários dispositivos.
Como os dados são voláteis e podem ser rapidamente transformados ou excluídos
remotamente, é necessário mais esforço para a preservação desses dados.
A perícia móvel é diferente da perícia forense computacional e apresenta desafios únicos
para os examinadores forenses.

A aplicação da lei e os examinadores forenses muitas vezes lutam para obter evidências
digitais de dispositivos móveis. A seguir estão algumas das razões para isso:

Diferenças de hardware: o mercado está inundado com diferentes modelos de telefones


celulares de diferentes fabricantes. Os examinadores forenses podem encontrar diferentes
tipos de modelos móveis que diferem em tamanho, hardware, recursos e sistema
operacional. Além disso, com um curto ciclo de desenvolvimento de produtos, novos
modelos surgem com muita frequência. À medida que o cenário móvel muda a cada dia
que passa, é fundamental que você se adapte a todos os desafios e se mantenha
atualizado sobre as técnicas forenses de dispositivos móveis em vários dispositivos.

Sistemas operacionais móveis: ao contrário dos computadores pessoais,


onde o Windows domina o mercado há anos, os dispositivos móveis usam amplamente
mais sistemas operacionais, incluindo o iOS da Apple, o Android do Google, o BlackBerry
OS da RIM, o Windows Phone OS da Microsoft, o webOS da HP e muitos outros. Mesmo
dentro desses sistemas operacionais, existem diversas versões, o que dificulta ainda
mais a sua tarefa.
Recursos de segurança da plataforma móvel: as plataformas móveis modernas
contêm recursos de segurança integrados para proteger os dados e a privacidade do
usuário. Esses recursos atuam como um obstáculo durante a aquisição e exame forense.
Por exemplo, os dispositivos móveis modernos vêm com mecanismos de criptografia
padrão da camada de hardware para a camada de software. Pode ser necessário
quebrar esses mecanismos de criptografia para extrair dados dos dispositivos. A disputa
de criptografia do FBI contra a Apple foi um divisor de águas nesse sentido, onde a
implementação de segurança
Machine Translated by Google

da Apple impediu o FBI de invadir um iPhone apreendido de um invasor no caso


de San Bernardino.
Prevenção da modificação de dados: Uma das regras fundamentais da
perícia é garantir que os dados do dispositivo não sejam modificados. Em
outras palavras, qualquer tentativa de extrair dados do dispositivo não deve
alterar os dados presentes nesse dispositivo. Mas isso não é praticamente possível
com celulares, porque apenas ligar um dispositivo pode alterar os dados desse
dispositivo. Mesmo que um dispositivo pareça estar desligado, os processos em
segundo plano ainda podem ser executados. Por exemplo, na maioria dos celulares,
o despertador ainda funciona mesmo quando o telefone está desligado. Uma
transição repentina de um estado para outro pode resultar na perda ou modificação
de dados.
Técnicas anti-forenses: Técnicas anti-forenses, como ocultação de dados,
ofuscação de dados, falsificação de dados e limpeza segura, tornam as
investigações em mídia digital mais difíceis.
Recuperação de senha: Se o dispositivo estiver protegido por uma senha, o
examinador forense precisa obter acesso ao dispositivo sem danificar os dados do
dispositivo. Embora existam técnicas para contornar o bloqueio de tela, elas nem
sempre funcionam em todas as versões do sistema operacional.
Falta de recursos: Conforme mencionado anteriormente, com o crescente número
de telefones celulares, a quantidade de ferramentas exigidas por um perito criminal
também aumenta. Acessórios de aquisição forense, como cabos USB, baterias e
carregadores para diferentes telefones celulares, devem ser mantidos para adquirir
esses dispositivos.
Natureza dinâmica da evidência: A evidência digital pode ser facilmente alterada
intencionalmente ou não. Por exemplo, navegar em um aplicativo em um telefone
pode alterar os dados armazenados por esse aplicativo no dispositivo.

Redefinição acidental: os telefones celulares fornecem recursos para redefinir tudo.


Reiniciar um dispositivo acidentalmente enquanto o examina pode resultar na
perda de dados.
Alteração do dispositivo: As formas possíveis de alterar os dispositivos podem
variar desde mover dados de aplicativos ou renomear arquivos até modificar o
sistema operacional do fabricante. Neste caso, a experiência do suspeito deve ser
levada em consideração.
Blindagem de comunicação: os dispositivos móveis se comunicam por
meio de redes celulares, redes Wi-Fi, Bluetooth e infravermelho. como dispositivo
Machine Translated by Google

comunicação pode alterar os dados do dispositivo, a possibilidade de comunicação


posterior deve ser eliminada após a captura do dispositivo.
Falta de disponibilidade de ferramentas: Existe uma grande variedade de dispositivos móveis.
É necessário usar uma combinação de ferramentas, pois uma única ferramenta pode não
suportar todos os dispositivos ou executar todas as funções necessárias. Portanto, pode ser
difícil escolher a ferramenta certa para um determinado telefone.
Programas maliciosos: o dispositivo pode conter malware ou software malicioso, como um
vírus ou cavalo de Tróia. Esses programas podem tentar se espalhar por outros dispositivos
em uma interface com fio ou sem fio
um.
Questões legais: os dispositivos móveis podem estar envolvidos em crimes que
ultrapassam fronteiras geográficas. Para lidar com essas questões multijurisdicionais, o
examinador forense deve estar familiarizado com a natureza do crime e as leis regionais.

Vamos dar uma olhada no processo de extração de evidências na próxima seção.


Machine Translated by Google

O processo de extração de evidências de

telefone celular

A extração de evidências e o exame forense de diferentes dispositivos móveis


podem diferir com base em vários fatores. No entanto, seguir um processo de
exame consistente ajudará o examinador forense a garantir que as evidências
coletadas de cada telefone sejam bem documentadas e que os resultados sejam
confiáveis. Não existe um processo padrão bem estabelecido para perícia móvel.

No entanto, o diagrama a seguir fornece uma visão geral das considerações


do processo para a extração de evidências de dispositivos móveis. Todos os
métodos usados na extração de dados de dispositivos móveis devem ser testados,
validados e bem documentados:

Processo de extração de evidências de telefone celular


Um ótimo recurso para lidar e processar dispositivos móveis pode ser encontrado em http:// digita
l-forensics.sans.org/ media/ mobile-device-forensic-process-v3.pdf.

Conforme mostrado no diagrama anterior, a análise forense em um dispositivo móvel


inclui várias fases, desde a fase de coleta de evidências até a fase de arquivamento. O
Machine Translated by Google

As seções a seguir fornecem uma visão geral de várias considerações em


todas as fases.
Machine Translated by Google

A fase de admissão de evidências

A fase de coleta de evidências é a fase inicial e envolve a documentação que captura as


informações de propriedade e o tipo de incidente em que o dispositivo móvel esteve envolvido e
descreve o tipo de dados que o solicitante está buscando.
O desenvolvimento de objetivos específicos para cada exame é a parte crítica desta fase.
Serve para esclarecer seus objetivos. Antes do início do processo de apreensão física, você
deve estar familiarizado com as leis federais, estaduais e locais relativas aos direitos de um
indivíduo. Se os procedimentos corretos não forem seguidos, a investigação pode ser
considerada ilegal em um tribunal. O procedimento e a legalidade podem variar dependendo se
você é um agente do governo ou um particular. Por exemplo, nos Estados Unidos, os direitos
da quarta emenda impedem qualquer busca ou apreensão por um agente do governo sem um
mandado de busca adequado. O mandado de busca deve autorizar claramente a apreensão do
dispositivo móvel, bem como o tipo de dados que precisam ser coletados.

Após uma apreensão bem-sucedida, deve-se ter cuidado para garantir que uma cadeia de
custódia seja estabelecida não apenas para o dispositivo, mas também para os dados
coletados.

De acordo com o NIST (https:// csrc.nist.gov/), cadeia de custódia refere-se a um processo


que rastreia o movimento de evidências através de sua coleta, proteção e ciclo de vida de
análise, documentando cada pessoa que manuseou a evidência, a data/ hora em que foi
coletada ou transferida e o objetivo da transferência.

Além disso, ao pegar o dispositivo, tome cuidado para não modificar nenhum dado presente no
dispositivo. Ao mesmo tempo, nenhuma oportunidade de ajudar na investigação deve ser
perdida. Por exemplo, no momento de apreender o aparelho, se o aparelho estiver
desbloqueado, tente desabilitar a senha.
Machine Translated by Google

A fase de identificação
O examinador forense deve identificar os seguintes detalhes para cada
exame de um dispositivo móvel:

A autoridade legal
Os dados que precisam ser extraídos
A marca, modelo e informações de identificação do dispositivo
Mídia de armazenamento de dados

Outras fontes de evidências potenciais

Discutiremos cada um deles nas seções a seguir.


Machine Translated by Google

A autoridade legal
É importante que o examinador forense determine e documente qual autoridade
legal existe para a aquisição e exame do dispositivo, bem como quaisquer limitações
impostas à mídia antes do exame do dispositivo. Por exemplo, se a investigação do
dispositivo estiver sendo conduzida com base em um mandado, a busca deve ser
limitada apenas às áreas definidas no mandado. Em suma, antes da apreensão do
dispositivo, você precisa responder às seguintes perguntas:

Se não houver um mandado de busca, o proprietário do dispositivo consentiu


com a busca?
Se existir um mandado de busca, o dispositivo está incluído no mandado
original?
Se o dispositivo estiver incluído na garantia, ela também define quais dados
podem ser coletados?
Se for uma investigação corporativa, o dispositivo é propriedade de um indivíduo
ou de seu empregador?
A política corporativa permite a coleta e posterior análise?
Machine Translated by Google

Dados que precisam ser extraídos

Você identificará o quão aprofundado o exame precisa ser baseado nos


dados solicitados. O objetivo do exame faz uma diferença significativa
na seleção das ferramentas e técnicas para examinar o telefone e
aumenta a eficiência do processo de exame.
Machine Translated by Google

A marca, modelo e informações


de identificação do dispositivo
Como parte do exame, identificar a marca e o modelo do telefone ajuda a determinar quais
ferramentas funcionariam com o telefone. Quando disponível, é recomendável capturar os
seguintes detalhes do dispositivo apreendido:

O fabricante do dispositivo
O número do modelo do dispositivo
O número de série do dispositivo móvel
A cor do dispositivo

O papel de parede visível na tela do dispositivo ou papel de parede da tela de bloqueio


A presença de quaisquer componentes de hardware (como câmera frontal, fone de
ouvido e assim por diante)
Uma descrição de quaisquer detalhes específicos exclusivos do dispositivo (arranhões, tela
quebrada e assim por diante)

A seguir, vamos examinar a mídia de armazenamento de dados.


Machine Translated by Google

Mídia de armazenamento de dados

Muitos telefones celulares oferecem uma opção para estender a memória com dispositivos
de armazenamento removíveis. Nos casos em que essa mídia removível for encontrada
em um telefone celular submetido a exame, o cartão de armazenamento deve ser removido
e processado usando técnicas forenses digitais tradicionais. Também é aconselhável
adquirir o cartão enquanto estiver no dispositivo móvel para garantir que os dados
armazenados na memória do aparelho e no cartão estejam vinculados para facilitar a análise.
Isso será discutido em detalhes nos próximos capítulos.
Machine Translated by Google

Outras fontes de evidências potenciais


Os telefones celulares funcionam como boas fontes de impressão digital e
outras evidências biológicas. Essas evidências devem ser coletadas antes do exame
do telefone celular para evitar problemas de contaminação, a menos que o método
de coleta danifique o dispositivo. Os examinadores devem usar luvas ao manusear
as provas.
Machine Translated by Google

A fase de preparação
Uma vez identificado o modelo do celular, a fase de preparação envolve a pesquisa
sobre o celular específico a ser examinado e os métodos e ferramentas apropriados
a serem usados para aquisição e exame.
Isso geralmente é feito com base no modelo do dispositivo, sistema operacional
subjacente, sua versão e assim por diante. Além disso, as ferramentas que precisam
ser usadas durante um exame deverão ser determinadas com base no dispositivo em
questão, bem como no escopo e nos objetivos do exame.
Machine Translated by Google

A fase de isolamento
Os telefones celulares foram projetados para se comunicar por meio de redes de telefonia celular,
Bluetooth, infravermelho e recursos de rede sem fio (Wi-Fi).
Quando um telefone está conectado a uma rede, novos dados são adicionados ao telefone por
meio de chamadas recebidas, mensagens e dados de aplicativos, o que modifica as evidências no
telefone.

A destruição completa dos dados também é possível por meio de acesso remoto ou
comandos de limpeza remota. Por esta razão, o isolamento do dispositivo das fontes de
comunicação é importante antes da aquisição e exame do dispositivo. O isolamento da rede
pode ser feito colocando o telefone em um pano de proteção contra radiofrequência e, em
seguida, colocando o telefone no modo avião ou voo. O modo avião desativa os canais de
comunicação de um dispositivo, como rádio celular, Wi-Fi e Bluetooth. No entanto, se o dispositivo
estiver bloqueado por tela, isso não será possível. Além disso, como o Wi-Fi agora está disponível
em aviões, alguns dispositivos agora têm o acesso Wi-Fi ativado no modo avião.

Uma solução alternativa é o isolamento do telefone por meio do uso de bolsas de Faraday, que
bloqueiam os sinais de rádio de ou para o telefone. Os sacos de Faraday contêm materiais que
bloqueiam campos elétricos estáticos externos (incluindo ondas de rádio).
Assim, os sacos de Faraday protegem os dispositivos móveis apreendidos de interferência externa
para evitar limpeza e rastreamento. Para trabalhar mais convenientemente com dispositivos
apreendidos, também existem tendas e quartos de Faraday.
Machine Translated by Google

A fase de processamento
Depois que um telefone é isolado das redes de comunicação, o processamento real
do telefone móvel começa. Um dos desafios que você enfrentará nesta fase é identificar
quais ferramentas usar, pois isso é afetado por diversos fatores, como preço, facilidade
de uso, aplicabilidade e assim por diante. O software forense móvel é altamente caro e,
diferentemente da perícia forense de computador, às vezes você pode ter que usar
várias ferramentas para acessar os dados. Ao selecionar uma ferramenta, verifique se
ela possui recursos integrados para manter a integridade forense. Manter a integridade
forense requer uma ferramenta que empacote os dados coletados em um formato que
provavelmente não pode ser facilmente modificado ou alterado.

O telefone deve ser adquirido usando um método testado que seja repetível e seja o
mais forense possível. A aquisição física é o método preferido, pois extrai os dados
brutos da memória e o dispositivo geralmente é desligado durante o processo de
aquisição. Na maioria dos dispositivos, o menor número de alterações ocorre no
dispositivo durante a aquisição física. Se a aquisição física não for possível ou falhar,
deve-se tentar adquirir o sistema de arquivos do dispositivo móvel. Uma aquisição
lógica sempre deve ser realizada, pois pode conter apenas os dados analisados e
fornecer ponteiros para examinar a imagem bruta da memória. Esses métodos de
aquisição são discutidos em detalhes em capítulos posteriores.
Machine Translated by Google

A fase de verificação
Depois de processar o telefone, você precisa verificar a precisão dos dados extraídos
do telefone para garantir que os dados não tenham sido modificados. A verificação dos
dados extraídos pode ser realizada de várias formas:

Comparando os dados extraídos com os dados do aparelho: Verifique se os


dados extraídos do dispositivo correspondem aos dados exibidos pelo dispositivo, se
aplicável. Os dados extraídos podem ser comparados com os do próprio dispositivo
ou com um relatório lógico, o que for preferido. Lembre-se, manusear o dispositivo
original pode fazer alterações na única evidência - o próprio dispositivo.

Usando várias ferramentas e comparando os resultados: Para garantir a precisão,


use várias ferramentas para extrair os dados e comparar os resultados.

Usando valores de hash: Todos os arquivos de imagem devem ser hash após a
aquisição para garantir que os dados permaneçam inalterados. Se a extração do
sistema de arquivos for suportada, você pode extrair o sistema de arquivos e calcular
hashes para os arquivos extraídos. Posteriormente, qualquer hash de arquivo extraído
individualmente é calculado e verificado em relação ao valor original para verificar a
integridade dele. Qualquer discrepância nos valores de hash deve ser explicável (por
exemplo, o dispositivo foi ligado e adquirido novamente, então os valores de hash são
diferentes).
Machine Translated by Google

A fase de documentação e
relatório
O perito criminal é obrigado a documentar, ao longo do processo de exame, tudo o que foi feito
durante a aquisição e o exame. Depois de concluir a investigação, os resultados devem passar
por alguma forma de revisão por pares para garantir que os dados sejam verificados e a
investigação seja concluída. Suas notas e documentação podem incluir informações como as
seguintes:

A data e hora de início do exame


A condição física do telefone
Fotos do telefone e componentes individuais
Status do telefone quando recebido—ligado ou desligado
Marca e modelo do telefone
Ferramentas usadas para a aquisição
Ferramentas usadas para o exame
Dados encontrados durante o exame
Notas da revisão por pares

Ao longo da investigação, é importante garantir que as informações extraídas e


documentadas de um dispositivo móvel possam ser apresentadas com clareza a qualquer outro
examinador ou a um tribunal. A documentação é uma de suas habilidades mais importantes.
Criar um relatório forense de dados extraídos de um dispositivo móvel durante a aquisição e
análise é importante. Isso pode incluir dados em papel e formato eletrônico.

Suas descobertas devem ser documentadas e apresentadas de maneira que as evidências


falem por si mesmas quando em tribunal. Os resultados devem ser claros, concisos e
repetíveis. A linha do tempo e a análise de links, recursos oferecidos por muitas ferramentas
forenses móveis comerciais, ajudarão a relatar e explicar as descobertas em vários dispositivos
móveis. Essas ferramentas permitem unir os métodos por trás da comunicação de vários
dispositivos.
Machine Translated by Google

A fase de arquivamento
Preservar os dados extraídos de um telefone celular é uma parte importante do
processo geral. Também é importante que os dados sejam retidos em um formato
utilizável para o processo judicial em andamento, para referência futura, caso o
arquivo de evidência atual seja corrompido e para requisitos de manutenção de registros.
Os processos judiciais podem continuar por muitos anos antes de chegar a uma
sentença final, e a maioria das jurisdições exige que os dados sejam retidos por longos
períodos de tempo para fins de apelação. À medida que o campo e os métodos
avançam, novos métodos para extrair dados de uma imagem física bruta podem surgir
e, em seguida, você pode revisitar os dados obtendo uma cópia dos arquivos.

Agora que entendemos como funciona o processo de extração de evidências,


veremos as diferentes abordagens na prática forense móvel.
Machine Translated by Google

Abordagens forenses
práticas móveis
Semelhante a qualquer investigação forense, existem várias abordagens que podem
ser usadas para a aquisição e exame/análise de dados de telefones celulares. O
tipo de dispositivo móvel, o sistema operacional e a configuração de segurança
geralmente determinam o procedimento a ser seguido em um processo forense.
Cada investigação é distinta com suas próprias circunstâncias, por isso não é
possível desenhar uma única abordagem processual definitiva para todos os casos.
Os detalhes a seguir descrevem as abordagens gerais seguidas na extração de
dados de dispositivos móveis.
Machine Translated by Google

Entendendo os sistemas operacionais móveis

Um dos principais fatores na aquisição de dados e exame/análise de um telefone


celular é o sistema operacional. De telefones celulares de baixo custo a smartphones,
os sistemas operacionais móveis percorreram um longo caminho com muitos recursos.
Os sistemas operacionais móveis afetam diretamente como você pode acessar o
dispositivo móvel. Por exemplo, o Android oferece acesso no nível do terminal,
enquanto o iOS não oferece essa opção.

Uma compreensão abrangente da plataforma móvel ajuda o examinador forense a


tomar decisões forenses sólidas e conduzir uma investigação conclusiva. Embora
exista uma grande variedade de dispositivos móveis inteligentes, com o
desaparecimento do Blackberry, atualmente dois sistemas operacionais principais
dominam o mercado, ou seja, Google Android e Apple iOS (seguido pelo Windows
Phone em um distante terceiro lugar). Mais informações podem ser encontradas em
https://www.idc.co m/promo/smartphone-market-share/os. Este livro cobre a análise
forense dessas três plataformas móveis. Forneceremos uma breve visão geral dos
principais sistemas operacionais móveis.
Machine Translated by Google

Android

O Android é um sistema operacional baseado em Linux e é uma plataforma de código


aberto do Google para telefones celulares. O Android é o sistema operacional para
smartphones mais usado no mundo. Fontes mostram que o iOS da Apple está em
segundo lugar (https://www.idc.com/promo/smartphone-market-share/os). O Android foi
desenvolvido pelo Google como uma opção aberta e gratuita para fabricantes de hardware
e operadoras de telefonia. Isso torna o Android o software de escolha para empresas que
precisam de um sistema operacional leve, personalizável e de baixo custo para seus
dispositivos inteligentes sem desenvolver um novo sistema operacional do zero.

A natureza aberta do Android incentivou ainda mais os desenvolvedores a criar


um grande número de aplicativos e carregá-los no Google Play. Mais tarde, os
usuários finais podem baixar os aplicativos do Android Market, o que torna o Android
um poderoso sistema operacional. Estima-se que a Google Play Store tenha 3,3
milhões de aplicativos no momento em que este livro foi escrito. Mais detalhes sobre
o Android são abordados no Capítulo 7, Compreendendo o Android.
Machine Translated by Google

iOS
iOS, anteriormente conhecido como sistema operacional do iPhone, é um sistema operacional
móvel desenvolvido e distribuído exclusivamente pela Apple Inc. O iOS está evoluindo para
um sistema operacional universal para todos os dispositivos móveis da Apple, como iPad,
iPod Touch e iPhone. O iOS é derivado do macOS e, portanto, é baseado em um sistema
operacional semelhante ao Unix. O iOS gerencia o hardware do dispositivo. As tecnologias
necessárias para implementar aplicativos nativos também são fornecidas pelo iOS. Ele
também vem com vários aplicativos de sistema, como Mail e Safari, que fornecem serviços de
sistema padrão ao usuário. Os aplicativos nativos do iOS são distribuídos pela App Store, que
é monitorada de perto pela Apple.
Mais detalhes sobre o iOS são abordados no Capítulo 2, Compreendendo as
partes internas dos dispositivos iOS.
Machine Translated by Google

telefone do Windows

O Windows Phone é um sistema operacional móvel proprietário desenvolvido


pela Microsoft para smartphones e PCs de bolso. É o sucessor do Windows Mobile
e destina-se principalmente ao mercado consumidor, e não ao mercado corporativo.
O sistema operacional Windows Phone é semelhante ao sistema operacional
Windows para desktop, mas é otimizado para dispositivos com uma pequena
quantidade de armazenamento. Os fundamentos do Windows Phone e as técnicas
forenses são discutidos no Capítulo 12, Windows Phone Forense.
Machine Translated by Google

Sistema móvel de nivelamento de ferramentas forenses

A aquisição e análise forense de telefones celulares envolvem esforço manual e o uso


de ferramentas automatizadas. Há uma variedade de ferramentas disponíveis para
realizar perícias móveis. Todas as ferramentas têm seus prós e contras, e é fundamental
que você entenda que nenhuma ferramenta é suficiente para todos os fins. Portanto,
entender os vários tipos de ferramentas forenses móveis é importante para os
examinadores forenses.

Ao identificar as ferramentas apropriadas para a aquisição e análise forense de


telefones celulares, um sistema de classificação de ferramentas forenses para
dispositivos móveis desenvolvido por Sam Brothers (mostrado no diagrama a
seguir) é útil para os examinadores:

Pirâmide de nivelamento de ferramentas de telefone celular (Sam Brothers, 2009)

O objetivo do sistema de classificação de ferramentas forenses de dispositivos móveis


é permitir que um examinador categorize ferramentas forenses com base na
metodologia de exame da ferramenta. À medida que você se move da base da pirâmide para
Machine Translated by Google

No topo, os métodos e ferramentas utilizados para análise geralmente tornam-se


mais técnicos e sofisticados e exigem tempos de análise mais longos. Existem
vantagens e desvantagens de diferentes técnicas utilizadas em cada camada.
O examinador forense deve estar ciente dessas questões antes de aplicar uma
técnica específica. As evidências podem ser completamente destruídas se o método
ou ferramenta não for utilizado adequadamente. Esse risco aumenta à medida que
você sobe na pirâmide. Assim, é necessário um treinamento adequado para obter a
maior taxa de sucesso na extração de dados de dispositivos móveis.

Cada ferramenta forense móvel existente pode ser classificada em um ou mais dos
cinco níveis. As seções a seguir contêm uma descrição detalhada de cada nível.
Machine Translated by Google

extração manual

O método de extração manual envolve simplesmente percorrer os dados no


dispositivo e visualizar os dados no telefone diretamente por meio do uso do teclado
ou da tela sensível ao toque do dispositivo. A informação descoberta é então
documentada fotograficamente. O processo de extração é rápido e fácil de usar e
funcionará em quase todos os telefones. Esse método está sujeito a erros humanos,
como a falta de certos dados devido à falta de familiaridade com a interface. Nesse
nível, não é possível recuperar informações excluídas e obter todos os dados.

Existem algumas ferramentas, como o Project-A-Phone, que foram desenvolvidas para


ajudar um examinador a documentar facilmente uma extração manual. No entanto, isso
também pode resultar na modificação de dados. Por exemplo, visualizar um SMS não
lido irá marcá-lo como lido.
Machine Translated by Google

análise lógica
A análise lógica envolve conectar o dispositivo móvel ao hardware forense
ou a uma estação de trabalho forense por meio de um cabo USB, um cabo RJ-45,
infravermelho ou Bluetooth. Uma vez conectado, o computador inicia um comando e
o envia ao dispositivo, que é interpretado pelo processador do dispositivo. Em
seguida, os dados solicitados são recebidos da memória do dispositivo e enviados de
volta para a estação de trabalho forense. Mais tarde, você pode revisar os dados.

A maioria das ferramentas forenses atualmente disponíveis funciona nesse


nível do sistema de classificação. O processo de extração é rápido e fácil de usar
e requer pouco treinamento para você. Por outro lado, o processo pode gravar dados
no celular e alterar a integridade da evidência. Além disso, os dados excluídos
geralmente não são acessíveis com este procedimento.
Machine Translated by Google

Despejo Hexadecimal

Um despejo hexadecimal, também conhecido como extração física, é obtido


conectando um dispositivo a uma estação de trabalho forense e inserindo um código
não assinado ou um gerenciador de inicialização no telefone e instruindo o telefone a
despejar a memória do telefone para o computador. Como a imagem bruta resultante
está em formato binário, é necessário conhecimento técnico para analisá-la. O processo
é barato, fornece mais dados ao examinador e permite a recuperação de arquivos
excluídos do espaço não alocado do dispositivo na maioria dos dispositivos.
Machine Translated by Google

Chip-off
Chip-off refere-se à aquisição de dados diretamente do chip de memória presente
no dispositivo. Nesse nível, o chip é removido fisicamente do dispositivo e um leitor
de chip ou um segundo telefone é usado para extrair os dados armazenados nele.
Esse método é tecnicamente mais desafiador, pois uma ampla variedade de tipos de
chip é usada em celulares. O processo é caro e requer conhecimento em nível de
hardware, pois envolve a dessoldagem e o aquecimento do chip de memória. O
treinamento é necessário para executar com sucesso uma extração de lascas.
Procedimentos inadequados podem danificar o chip de memória e tornar todos
os dados irrecuperáveis. Quando possível, recomenda-se que os outros níveis de
extração sejam tentados antes do chip-off, uma vez que este método é destrutivo por
natureza. Além disso, as informações que saem da memória estão em formato bruto
e precisam ser analisadas, decodificadas e interpretadas. O método chip-off é preferido
em situações em que é importante preservar o estado da memória exatamente como
existe no dispositivo. Também é a única opção quando um dispositivo está danificado,
mas o chip de memória está intacto.

O chip em um dispositivo geralmente é lido usando o método Joint Test Action


Group (JTAG) . O método JTAG envolve conectar-se a Test Access Ports
(TAPs) em um dispositivo e forçar o processador a transferir os dados brutos
armazenados no chip de memória. O método JTAG é geralmente usado com
dispositivos operacionais, mas inacessíveis por meio de ferramentas padrão. Ambas
as técnicas também funcionam mesmo quando a tela do dispositivo está bloqueada.
Machine Translated by Google

micro leitura
O processo de microleitura envolve visualizar e interpretar manualmente os
dados vistos no chip de memória. O examinador usa um microscópio eletrônico
e analisa as portas físicas no chip e, em seguida, traduz o status da porta para
0s e 1s para determinar os caracteres ASCII resultantes. Todo o processo é
demorado e caro, e requer amplo conhecimento e treinamento em memória e
sistema de arquivos. Devido aos tecnicismos extremos envolvidos na leitura
micro, ela só é tentada para casos de alto perfil equivalentes a uma crise de
segurança nacional depois que todos os outros níveis de técnicas de extração
foram esgotados. O processo raramente é executado e não está bem documentado
neste momento. Além disso, atualmente não há ferramentas comerciais disponíveis
para realizar uma microleitura.
Machine Translated by Google

Métodos de aquisição de dados


A aquisição de dados é o processo de geração de imagens ou extração
de informações de um dispositivo digital e outras mídias conectadas. A aquisição
de dados de um telefone celular não é tão simples quanto uma aquisição forense
de disco rígido padrão. Os pontos a seguir dividem os três tipos de métodos de
aquisição forense para telefones celulares: físico, lógico e manual.
Esses métodos podem ter alguma sobreposição com alguns níveis discutidos no
sistema de nivelamento de ferramentas forenses móveis. A quantidade e o tipo de
dados que podem ser coletados variam dependendo do tipo de método de
aquisição usado. Embora abordemos esses métodos em detalhes nos próximos
capítulos, o que se segue é uma breve descrição deles.
Machine Translated by Google

Aquisição física
A aquisição física de um dispositivo móvel nada mais é do que uma cópia bit a bit do
armazenamento físico. Com acesso direto à memória flash, as informações podem ser
adquiridas do dispositivo por meio de extração física. A memória flash é uma memória
não volátil e é usada principalmente em cartões de memória e unidades flash USB como
armazenamento de estado sólido. O processo cria uma cópia bit a bit de um sistema de
arquivos inteiro, semelhante à abordagem adotada em investigações forenses de
computador. A aquisição física é capaz de adquirir todos os dados presentes em um
dispositivo, incluindo os dados excluídos e o acesso a espaço não alocado na maioria dos
dispositivos.
Machine Translated by Google

Aquisição lógica
A aquisição lógica trata da extração de objetos de armazenamento lógico, como
arquivos e diretórios, que residem em um sistema de arquivos. A aquisição lógica
de telefones celulares é realizada usando a interface de programação do aplicativo
do fabricante do dispositivo para sincronizar o conteúdo do telefone com um
computador. Muitas ferramentas forenses podem realizar uma aquisição lógica. É
muito mais fácil para uma ferramenta forense organizar e apresentar dados extraídos
por aquisição lógica. No entanto, o analista forense deve entender como ocorre a
aquisição e se o celular foi modificado de alguma forma durante o processo.
Dependendo do telefone e das ferramentas forenses usadas, todos ou alguns dos
dados são adquiridos. Uma aquisição lógica é fácil de realizar e recupera apenas os
arquivos em um telefone celular e não recupera dados contidos em espaço não
alocado.
Machine Translated by Google

aquisição manual
Com telefones celulares, a aquisição física geralmente é a melhor opção e a
aquisição lógica é a segunda melhor opção. A extração manual deve ser a
última opção ao realizar a aquisição forense de um telefone celular.
Tanto a aquisição lógica quanto a manual podem ser usadas para validar
descobertas nos dados físicos. Durante a aquisição manual, o examinador utiliza
a interface do usuário para investigar o conteúdo da memória do telefone. O
dispositivo é usado normalmente por meio de teclado ou tela sensível ao toque e
navegação de menu, e o examinador tira fotos do conteúdo de cada tela. A
extração manual apresenta um maior grau de risco na forma de erro humano e há
uma chance de excluir evidências. A aquisição manual é fácil de realizar e adquire
apenas os dados que aparecem em um telefone celular.

A seguir, vamos ver a quantidade de informação que pode ser extraída de


telefones celulares.
Machine Translated by Google

Evidências potenciais armazenadas em

telefones celulares

A gama de informações que podem ser obtidas a partir de telefones celulares é


detalhada nesta seção. Os dados em um telefone celular podem ser encontrados em
vários locais - cartão SIM, cartão de armazenamento externo e memória do telefone, por
exemplo. Além disso, o provedor de serviços também armazena informações relacionadas
à comunicação. Este livro concentra-se principalmente nos dados adquiridos da memória
de um telefone. As ferramentas de extração de dados de dispositivos móveis recuperam
dados da memória de um telefone. Embora os dados recuperados durante a aquisição
forense dependam do modelo móvel, em geral, os seguintes dados são comuns em
todos os modelos e úteis como evidência. Observe que a maioria dos artefatos a seguir
contém carimbos de data/hora:

Catálogo de endereços: contém nomes de contatos, números de telefone, endereços


de e-mail e assim por diante.
Histórico de chamadas: Contém as chamadas discadas, recebidas e perdidas e a duração
das chamadas.

SMS: Contém mensagens de texto enviadas e recebidas.


MMS: contém arquivos de mídia, como fotos e vídeos enviados e recebidos.

E-mail: Contém mensagens de e-mail enviadas, redigidas e recebidas.


Histórico do navegador da Web: contém o histórico dos sites que foram visitados.

Fotos: contém fotos que foram capturadas com a câmera do celular, baixadas
da internet e transferidas de outros dispositivos.

Vídeos: contém vídeos capturados com a câmera do celular, baixados da


internet e transferidos de outros dispositivos.

Música: contém arquivos de música baixados da internet e transferidos de outros


dispositivos.
Machine Translated by Google

Documentos: Contém documentos criados a partir dos aplicativos


do dispositivo, baixados da internet e transferidos de outros dispositivos.

Calendário: Contém entradas de calendário e compromissos.


Comunicação de rede: Contém localizações de GPS.
Mapas: contém lugares que o usuário visitou, direções pesquisadas e
mapas pesquisados e baixados.
Dados de redes sociais: contém dados armazenados por
aplicativos, como Facebook, Twitter, LinkedIn, Google+ e WhatsApp.
Dados excluídos: contém informações excluídas do telefone.

A seguir, veremos rapidamente a etapa final da investigação:


exame e análise.
Machine Translated by Google

Exame e análise
Esta é a etapa final da investigação e visa descobrir os dados presentes no
dispositivo. O exame é feito aplicando métodos científicos e bem testados para
estabelecer resultados de forma conclusiva. A fase de análise é focada em separar os
dados relevantes do resto e sondar os dados que são de valor para o caso subjacente.
O processo de exame começa com uma cópia das evidências adquiridas usando algumas
das técnicas descritas anteriormente, que serão abordadas em detalhes nos próximos
capítulos. O exame e a análise usando ferramentas de terceiros geralmente são
realizados importando o despejo de memória do dispositivo para uma ferramenta forense
móvel que recuperará automaticamente os resultados. Compreender o caso também é
crucial para realizar uma análise direcionada dos dados. Por exemplo, um caso sobre
pornografia infantil pode exigir o foco em todas as imagens presentes no dispositivo, em
vez de olhar para outros artefatos.

É importante que você tenha um conhecimento razoável de como funcionam as


ferramentas forenses usadas para o exame. O uso proficiente dos recursos e opções
disponíveis em uma ferramenta irá acelerar drasticamente o processo de exame.
Às vezes, devido a falhas de programação no software, uma ferramenta pode não
ser capaz de reconhecer ou converter bits em um formato compreensível para você.
Portanto, é crucial que você tenha as habilidades necessárias para identificar
tais situações e usar ferramentas ou softwares alternativos para construir os
resultados. Em alguns casos, um indivíduo pode adulterar intencionalmente as
informações do dispositivo ou excluir/ocultar alguns dados cruciais. Os analistas
forenses devem entender as limitações de suas ferramentas e, às vezes, compensá-las
para obter os melhores resultados possíveis.
Machine Translated by Google

Regras de evidência

Os tribunais confiam cada vez mais nas informações contidas em um telefone


celular como evidência vital. A evidência prevalecente no tribunal requer um
bom entendimento das regras de evidência. A perícia móvel é uma disciplina
relativamente nova, e as leis que ditam a validade das evidências não são
amplamente conhecidas e também diferem de país para país. No entanto, existem
cinco regras gerais de evidência que se aplicam à perícia digital e precisam ser
seguidas para que a evidência seja útil. Ignorar essas regras torna as evidências
inadmissíveis e seu caso pode ser descartado. Estas cinco regras são
admissíveis, autênticas, completas, confiáveis e críveis:

Admissível: Esta é a regra mais básica e uma medida de validade e


importância da evidência. As evidências devem ser preservadas e reunidas
de forma que possam ser usadas em tribunal ou em outro lugar. Muitos
erros podem ser cometidos e levar um juiz a considerar uma prova
inadmissível. Por exemplo, evidências coletadas por meio de métodos
ilegais são comumente consideradas inadmissíveis.
Autêntico: A evidência deve estar ligada ao incidente de forma relevante
para provar algo. O examinador forense deve ser responsável pela origem
da prova.
Completa: Quando a evidência é apresentada, ela deve ser clara e
completa e deve refletir toda a história. Não basta coletar evidências que
mostrem apenas uma perspectiva de um incidente. Apresentar evidências
incompletas é mais perigoso do que não fornecer nenhuma evidência, pois
pode levar a um julgamento diferente.
Confiável: as evidências coletadas do dispositivo devem ser confiáveis.
Isso depende das ferramentas e da metodologia utilizada. As técnicas
utilizadas e as provas recolhidas não devem pôr em causa a autenticidade
das provas. Se você usou algumas técnicas que não podem ser
reproduzidas, a evidência não é considerada, a menos que aqueles que a
consideram, como o juiz e o júri, sejam instruídos a fazê-lo. Isso incluiria
possíveis métodos destrutivos, como extração de lascas.
Machine Translated by Google

Credível: Um examinador forense deve ser capaz de explicar, com clareza e


concisão, quais processos ele usou e como a integridade da evidência foi preservada.
As evidências apresentadas por você devem ser claras, fáceis de entender e
verossímeis para o júri.

Agora vamos ver as melhores práticas.


Machine Translated by Google

Boas práticas forenses


As boas práticas forenses se aplicam à coleta e preservação de
evidências. A falta de boas práticas forenses pode até tornar inúteis as
evidências coletadas perante um tribunal. A modificação da evidência,
intencional ou acidental, pode afetar um caso. Portanto, entender as melhores
práticas é fundamental para os examinadores forenses.
Machine Translated by Google

Protegendo as evidências
Com recursos avançados de smartphones, como Find My iPhone e apagamentos
remotos, proteger um telefone celular de forma que não possa ser apagado
remotamente é de grande importância. Além disso, quando o telefone está ligado
e tem serviço, ele recebe constantemente novos dados. Para proteger as
evidências, use o equipamento e as técnicas certas para isolar o telefone de todas
as redes. Com o isolamento, o telefone é impedido de receber novos dados que
possam causar a exclusão dos dados ativos. Dependendo do caso, outras técnicas
forenses, como correspondência de impressões digitais, podem ser necessárias
para estabelecer uma conexão entre o dispositivo e seu proprietário. Se o dispositivo
não for manuseado de maneira segura, as evidências físicas podem ser adulteradas
involuntariamente e inutilizadas.

Também é importante coletar todos os periféricos, mídias associadas, cabos,


adaptadores de energia e outros acessórios presentes no local. No local da
investigação, se o dispositivo estiver conectado a um computador pessoal, puxá-
lo diretamente interromperá a transferência de dados. Em vez disso, é
recomendável capturar a memória do computador pessoal antes de puxar o
dispositivo, pois contém detalhes significativos em muitos casos.
Machine Translated by Google

Preservando as evidências
À medida que as evidências são coletadas, elas devem ser preservadas em um estado
aceitável no tribunal. Trabalhar diretamente nas cópias originais das evidências pode
alterá-las. Portanto, assim que você recuperar uma imagem de disco ou arquivos
brutos, crie uma cópia mestre somente leitura e duplique-a. Para que as provas sejam
admissíveis, deve haver um método científico para validar que as provas apresentadas
são exatamente iguais às originais coletadas. Isso pode ser feito criando um valor de
hash forense da imagem.

Um hash forense é usado para garantir a integridade de uma aquisição, calculando


um valor criptograficamente forte e não reversível da imagem/ dados.

Depois de duplicar a imagem ou os arquivos brutos do disco, calcule e verifique os


valores de hash do original e da cópia para garantir que a integridade da evidência
seja mantida. Quaisquer alterações nos valores de hash devem ser documentadas e
explicáveis. Todo processamento ou exame adicional deve ser realizado em cópias
das evidências. Qualquer uso do dispositivo pode alterar as informações armazenadas
no aparelho. Portanto, execute apenas as tarefas que são absolutamente necessárias.
Machine Translated by Google

Documentando as evidências
e mudanças
Sempre que possível, deve ser criado um registo de todos os dados visíveis.
Recomenda-se fotografar o dispositivo móvel junto com qualquer outra mídia
encontrada, como cabos, periféricos e assim por diante. Isso será útil se surgirem
dúvidas mais tarde sobre o meio ambiente. Não toque ou coloque as mãos no
dispositivo móvel ao fotografá-lo. Certifique-se de documentar todos os métodos e
ferramentas usados para coletar e extrair as evidências.
Detalhe suas anotações para que outro examinador possa reproduzi-las. Seu
trabalho deve ser reproduzível; se não for, um juiz pode considerá-lo inadmissível.
É importante documentar todo o processo de recuperação, incluindo todas as
alterações feitas durante a aquisição e exame. Por exemplo, se a ferramenta
forense usada para a extração de dados fatiar a imagem do disco para armazená-la,
isso deve ser documentado. Todas as alterações no dispositivo móvel, incluindo
reinicialização e sincronização, devem ser documentadas nas notas do caso.
Machine Translated by Google

Comunicando
Relatório é o processo de preparação de um resumo detalhado de todas as etapas tomadas e
conclusões alcançadas como parte de um exame. Os relatórios devem incluir detalhes sobre todas as
ações importantes realizadas por você, os resultados da aquisição e quaisquer inferências tiradas dos
resultados. A maioria das ferramentas forenses vem com recursos de relatório integrados que irão gerar
automaticamente os relatórios enquanto fornecem espaço para personalização ao mesmo tempo. Em
geral, um relatório pode conter os seguintes detalhes:

Detalhes da agência relatora


identificador de caso

investigador forense
Identidade do remetente
Data de recebimento da prova
Detalhes do dispositivo apreendido para exame, incluindo número de série, marca e modelo

Detalhes do equipamento e ferramentas usadas no exame


Descrição das etapas realizadas durante o exame
Cadeia de documentação de custódia
Detalhes das descobertas ou problemas identificados
Evidências recuperadas durante o exame, desde mensagens de bate-papo, histórico do
navegador e registros de chamadas até mensagens excluídas e assim por diante
sobre

Quaisquer imagens capturadas durante o exame


Informações sobre exames e análises
Conclusão do relatório
Machine Translated by Google

Resumo
Os dispositivos móveis modernos armazenam uma ampla gama de informações, como SMS,
registros de chamadas, histórico do navegador, mensagens de bate-papo, detalhes de localização
e assim por diante. Portanto, eles costumam ser um fator-chave em vários casos criminais,
reconstrução de eventos, casos corporativos e jurídicos e muito mais. A análise forense de
dispositivos móveis também vem com seus próprios desafios e conceitos que estão fora dos
limites da análise forense digital tradicional. Deve-se ter extremo cuidado ao manusear o
dispositivo, desde a fase de coleta de evidências até a fase de arquivamento.
Os examinadores responsáveis por dispositivos móveis devem entender os diferentes
métodos de aquisição e as complexidades de manipulação de dados durante a análise.
Extrair dados de um dispositivo móvel é metade da batalha. O sistema operacional, os
recursos de segurança e o tipo de smartphone determinarão a quantidade de acesso que
você tem aos dados. É importante seguir práticas forenses sólidas e garantir que as
evidências sejam inalteradas durante a investigação.

O próximo capítulo fornecerá uma visão sobre a análise forense do iOS. Você aprenderá sobre
o layout do sistema de arquivos, recursos de segurança e como os arquivos são armazenados
em um dispositivo iOS.
Machine Translated by Google

Seção 1: Análise forense do iOS

Esta seção fornecerá uma visão geral dos dispositivos iOS, como iPhones e iPads,
bem como uma visão geral dos sistemas operacionais e sistemas de arquivos que
eles executam. Você aprenderá sobre os diferentes tipos de métodos de aquisição
forense, incluindo aquisição lógica e aquisição de sistema de arquivos, o processo de
jailbreak, realização de análise forense nas fontes de artefatos mais comuns e como
trabalhar com software forense móvel popular.

Esta seção será composta pelos seguintes capítulos:

Capítulo 2, Compreendendo o interior dos dispositivos iOS


Capítulo 3, Aquisição de dados de dispositivos iOS
Capítulo 4, Aquisição de dados de backups do iOS
Capítulo 5, Análise e recuperação de dados do iOS
Capítulo 6, Ferramentas forenses do iOS
Machine Translated by Google

Entendendo as partes internas do iOS


Dispositivos

De acordo com a Apple, havia 1,4 bilhão de dispositivos Apple ativos em 2019, 900
milhões dos quais rodando no iOS. Embora o iOS seja o principal sistema
operacional (SO) para tablets em todo o mundo, o Android continua sendo o principal
sistema operacional para smartphones. Independentemente das estatísticas, se você
for um examinador forense, é provável que precise conduzir um exame de um dispositivo
iOS.

Para realizar um exame forense de um dispositivo iOS, você, como examinador,


deve entender os componentes internos e o funcionamento interno desse dispositivo.
Desenvolver uma compreensão dos componentes subjacentes de um dispositivo móvel
ajudará você a entender os pontos críticos envolvidos no processo forense, incluindo
quais dados podem ser adquiridos, onde os dados são armazenados e quais métodos
podem ser usados para acessar os dados desse dispositivo.
Portanto, antes de nos aprofundarmos no exame dos dispositivos iOS, é necessário
entender os diferentes modelos existentes e seus componentes internos. Ao longo
deste livro, realizaremos aquisições e análises forenses em dispositivos iOS, incluindo
iPhone, iPad e Apple Watch.

O objetivo deste capítulo é apresentar a você a tecnologia do dispositivo iOS.


Abordaremos detalhes que muitas vezes podem passar despercebidos, mas irão
ajudá-lo durante sua investigação forense. Você deve entender os diferentes dispositivos
iOS e como os dados são armazenados nesses dispositivos antes de poder extraí-los
com sucesso.

Neste capítulo, abordaremos os seguintes tópicos em detalhes:

Modelos e hardware do iPhone


Modelos e hardware do iPad
O Hierarchical File System (HFS) Plus e o Apple File System
(APFS) sistemas de arquivos
Machine Translated by Google

o sistema operacional do iphone


Machine Translated by Google

Modelos e hardware do iPhone


O iPhone está entre os smartphones mais populares do mercado. A Apple lançou o
iPhone de primeira geração em junho de 2007. Desde o primeiro lançamento, o iPhone
tornou-se extremamente popular devido a seus muitos recursos inovadores e usabilidade.
Desde então, a introdução do iPhone redefiniu todo o mundo da computação móvel. Os
consumidores começaram a procurar telefones mais rápidos e eficientes. Vários modelos
de iPhone já existem, com diferentes recursos e capacidades de armazenamento para
atender às necessidades do consumidor.

Os iPhones lançados desde a terceira edição do Practical Mobile Forensics


— o iPhone XR, XS, XS Max, 11 e 11 Pro — podem ser desafiadores quando se trata de
lidar com métodos de aquisição forense de sistema de arquivos. Assim como os dispositivos
lançados desde o iPhone 5, não há nenhum método ou ferramenta disponível para
recuperar fisicamente os dados desses dispositivos, a menos que sejam desbloqueados.
No entanto, a aquisição lógica pode ser obtida se o iPhone estiver desbloqueado.
Métodos de aquisição para extração de dados estão disponíveis e serão discutidos no
Capítulo 3, Aquisição de dados de dispositivos iOS e Capítulo 4, Aquisição de dados de
backups iOS. Agora, vamos aprender como identificar o modelo de hardware correto.
Machine Translated by Google

Identificando o modelo de hardware correto

Antes de examinar um iPhone, é necessário identificar o modelo de hardware


correto e a versão do firmware instalado no dispositivo. Conhecer os detalhes
do iPhone ajuda você a entender os pontos críticos e as possibilidades de obter
evidências de um iPhone. Por exemplo, em muitos casos, a senha do dispositivo
é necessária para obter uma imagem lógica. Dependendo da versão do iOS,
modelo do dispositivo e complexidade da senha, pode ser possível obter a
senha do dispositivo usando um ataque de força bruta.

Existem várias maneiras de identificar o hardware de um dispositivo. A maneira mais fácil de


identificar o hardware de alguns dispositivos é observar o número do modelo exibido na parte
traseira do dispositivo. Para tornar essa tarefa ainda mais simples, você pode usar os artigos
da Base de Conhecimento da Apple. Mais informações sobre modelos de iPhone podem ser
encontradas em https://support.apple.com/en-in/HT201296.

A versão do firmware de um iPhone pode ser encontrada acessando a opção


Configurações e navegando até Geral | Sobre | Versão do software, conforme
mostrado na captura de tela a seguir. O objetivo do firmware é habilitar
determinados recursos e auxiliar no funcionamento geral do dispositivo:
Machine Translated by Google

A tela Sobre do iPhone, exibindo a versão de software 13.2

Alternativamente, a ferramenta de linha de comando ideviceinfo que está disponível


na biblioteca de software libimobiledevice (http://www.libimobiledevice.org/) pode ser usado
para identificar o modelo do iPhone e sua versão do iOS.

Para obter informações sobre o modelo do iPhone e sua versão do iOS em uma estação
de trabalho Windows 10, siga estas etapas:

1. Baixe os binários mais recentes no seguinte link: https://dev.azure.co m/libimobiledevice-


win32/imobiledevice-net/_build/results?buildId=419 (clique em Artefatos | Binários para
iniciar o download).
2. Descompacte o arquivo com binários x86 ou x64, dependendo do seu
versão da estação de trabalho.

3. Abra o prompt de comando e altere o diretório para aquele com


binários (use o comando cd para isso).
4. Conecte o iPhone à sua estação de trabalho usando um cabo Universal Serial Bus
(USB) (para as versões mais recentes do iOS, a senha também é necessária) e
execute o comando ideviceinfo com a opção -s , conforme mostrado no código a
seguir:

$ ideviceinfo -s
Machine Translated by Google

A saída do comando ideviceinfo exibe o identificador do iPhone, seu nome interno e a


versão do iOS, conforme mostrado na captura de tela a seguir:

A saída de ideviceinfo exibindo a versão de firmware 13.2

Algumas outras ferramentas, como o iExplorer, fornecerão acesso a informações


semelhantes do dispositivo iOS, conforme mostrado na captura de tela a seguir. Os métodos
para recuperar informações do dispositivo iPhone também funcionarão em dispositivos iPad.
Aqui, o iExplorer está sendo usado para obter informações do dispositivo de um iPhone:
Machine Translated by Google

iExplorer exibindo informações do dispositivo

Cada versão do iPhone vem com recursos aprimorados ou recém-adicionados.


Conforme declarado anteriormente neste capítulo, conhecer os detalhes do iPhone ajuda
a entender os pontos críticos e as possibilidades de obter evidências dele.
Você deve conhecer o modelo do dispositivo para garantir que as ferramentas
e metodologias implantadas ofereçam suporte a esse iPhone específico. Além disso, o
tamanho do armazenamento interno do iPhone deve ser determinado para garantir que o
contêiner de evidências seja grande o suficiente para toda a imagem forense. A maioria
das ferramentas não o alertará se não houver espaço em disco suficiente na unidade de
evidência até que o espaço acabe. Isso desperdiçará tempo e forçará você a adquirir o
dispositivo uma segunda vez. Finalmente, os recursos de rede do dispositivo também
devem ser observados para que você possa isolar adequadamente o dispositivo para
evitar acesso remoto ou limpeza durante o exame. Isso será discutido mais adiante no
Capítulo 3, Aquisição de dados de dispositivos iOS.

Novamente, alguma familiaridade com o hardware do dispositivo iPhone ajudará


você a determinar como lidar com o dispositivo durante uma investigação forense.
Machine Translated by Google

Certos modelos reforçam a criptografia de disco completo, enquanto os modelos mais antigos não.
Dispositivos criptografados requerem etapas adicionais durante uma aquisição, se o acesso for possível.
Você deve estar preparado para todos os obstáculos que podem ser obrigados a superar durante as
fases de aquisição e análise da investigação. Além disso, conhecer os recursos que o iPhone possui –
e a versão inicial e atual do iOS – faz diferença nos dados que você poderá recuperar do dispositivo. A
Apple não é consistente com os locais de armazenamento de dados nas versões do iOS. Portanto, você
deve conhecer a versão original instalada quando o telefone foi usado pela primeira vez para garantir que
as ferramentas forenses não ignorem dados que possam ajudar na investigação.

Mais informações sobre como identificar modelos de iPhone podem ser encontradas em https://su
pport.apple.com/en-us/HT201296.
Machine Translated by Google

Entendendo o hardware do iPhone

O iPhone é uma coleção de módulos, chips e componentes eletrônicos de diferentes


fabricantes. Devido às complexidades do iPhone, a lista de componentes de hardware é
extensa e cada dispositivo deve ser pesquisado quanto aos componentes internos.

Por exemplo, o iPhone 11 possui um processador A13 Bionic; 64 GB, 128 GB ou 256 GB
de armazenamento; 4GB de RAM; uma tela de cristal líquido Liquid Retina de 6,1
polegadas (LCD); e uma matriz de câmera traseira de 12 MP com lente dupla.

Imagens internas para todos os iPhones podem ser encontradas na seção desmontagem de http
s://www.ifixit.com/Device/iPhone.
Machine Translated by Google

Modelos e hardware do iPad

O iPhone da Apple mudou a forma como os telefones celulares são produzidos e usados.
Da mesma forma, o iPad, uma versão do tablet lançada em janeiro de 2010,
anulou as vendas de notebooks. Com o iPad, as pessoas podem gravar vídeos,
tirar fotos, tocar música, ler livros, navegar na internet e fazer muito mais. Vários
modelos de iPad agora existem – por exemplo, iPad Air 3 e iPad Pro – com
diferentes recursos e capacidades de armazenamento. Mais informações sobre
como identificar modelos de iPad podem ser encontradas em https://support.apple.
com/en-in/HT201471.

Assim como no iPhone, nem todas as versões do iPad são compatíveis com a aquisição do
sistema de arquivos. Além disso, a Apple altera os locais de armazenamento de dados nas
versões do iOS, o que também afeta os dispositivos iPad. Você deve estar ciente dos diferentes
modelos, a versão do iOS lançada e atualmente instalada, a capacidade de armazenamento,
os vetores de acesso à rede e muito mais.
Machine Translated by Google

Entendendo o hardware do iPad


Um dos fatores-chave do sucesso dos dispositivos Apple iOS é a seleção
adequada de seus componentes de hardware. Assim como o iPhone, o iPad
também é uma coleção de módulos, chips e componentes eletrônicos de
diferentes fabricantes. Imagens internas para todos os iPads podem ser
encontradas na seção desmontagem de https://www.ifixit.com/Device/iPad.
Machine Translated by Google

Os sistemas de arquivos
HFS Plus e APFS
Para entender melhor o processo forense de um dispositivo iOS, é útil conhecer o
sistema de arquivos usado. Originalmente, o sistema de arquivos usado no iPhone e em
outros dispositivos Apple iOS era o HFSX. Esta é uma variação do HFS Plus, com uma
grande diferença. O HFSX diferencia maiúsculas de minúsculas, enquanto o HFS Plus não
diferencia maiúsculas de minúsculas. Outras diferenças serão discutidas mais adiante neste capítulo.
O APFS foi introduzido em junho de 2016 como substituto do HFS Plus e se tornou
o sistema de arquivos padrão para dispositivos iOS com o lançamento do iOS 10.3 e para
dispositivos macOS com o lançamento do macOS 10.13.
Machine Translated by Google

O sistema de arquivos HFS Plus

Em 1996, a Apple desenvolveu um novo sistema de arquivos, HFS, para acomodar o


armazenamento de grandes conjuntos de dados. Em um sistema de arquivos HFS, o
meio de armazenamento é representado como volumes. Os volumes HFS são divididos em
blocos lógicos de 512 bytes. Os blocos lógicos são numerados do primeiro ao último em um
determinado volume e permanecerão estáticos com o mesmo tamanho dos blocos físicos, ou
seja, 512 bytes. Esses blocos lógicos são agrupados em blocos de alocação, que são usados
pelo sistema de arquivos HFS para rastrear dados de maneira mais eficiente.
O HFS usa um valor de 16 bits para endereçar blocos de alocação, o que limita
o número de blocos de alocação a 65.535. Para superar a alocação ineficiente
de espaço em disco e algumas das limitações do HFS, a Apple introduziu o
sistema de arquivos HFS Plus (http://dubeiko.com/development/FileSystems/
HFSPLUS/tn1150.html ).

O sistema de arquivos HFS Plus foi projetado para suportar tamanhos de arquivo maiores. Os
setores em volumes HFS geralmente têm 512 bytes de tamanho. Esses setores formam
blocos de alocação. O número de tais blocos depende do tamanho do volume. O HFS Plus
usa endereços de bloco de 32 bits para endereçar blocos de alocação. O HFS Plus usa
registro no diário por padrão. O registro no diário é o processo de registro de todas as
transações no disco, o que ajuda a evitar a corrupção do sistema de arquivos. As principais
características do sistema de arquivos HFS Plus incluem o seguinte: uso eficiente do espaço
em disco, suporte a Unicode para nomes de arquivos, suporte para bifurcações de nomes,
compactação de arquivos, registro em diário, redimensionamento dinâmico, desfragmentação
dinâmica e capacidade de inicializar em sistemas operacionais diferentes do macOS.
Machine Translated by Google

O volume HFS Plus


O volume HFS Plus contém várias estruturas internas para gerenciar a organização dos
dados. Essas estruturas incluem um cabeçalho, um cabeçalho alternativo e cinco arquivos
especiais: um arquivo de alocação, um arquivo de estouro de extensões, um arquivo de
catálogo, um arquivo de atributos e um arquivo de inicialização. Entre os cinco arquivos, três
arquivos (o arquivo de estouro de extensões, o arquivo de catálogo e o arquivo de atributos)
usam uma estrutura B-Tree. Esta é uma estrutura de dados que permite que os dados sejam
pesquisados, visualizados, modificados ou removidos com eficiência. A estrutura de volume
do HFS Plus é mostrada no diagrama a seguir:
Machine Translated by Google

A estrutura de volume do HFS Plus

A estrutura do volume é descrita a seguir:

Reservado (1024 bytes): Isso é reservado para informações do carregador de inicialização.


Cabeçalho do volume: armazena as informações do volume, como o tamanho dos blocos
de alocação, um carimbo de data/hora de quando o volume foi criado e
Machine Translated by Google

metadados sobre cada um dos cinco arquivos especiais.


Arquivo de Alocação: Este arquivo é usado para rastrear quais blocos de alocação estão em

uso pelo sistema. O formato do arquivo consiste em 1 bit para cada bloco de alocação. Se o
bit estiver definido, o bloco está em uso. Se não estiver definido, o bloco está livre.

Extents Overflow File: Este arquivo registra os blocos de alocação que são alocados quando

o tamanho do arquivo excede oito blocos, o que ajuda na localização dos dados reais quando
referidos. Blocos defeituosos também são registrados no arquivo.

Arquivo de Catálogo: Este arquivo contém informações sobre a hierarquia de arquivos e


pastas, que é usado para localizar qualquer arquivo e pasta dentro do volume.

Arquivo de atributos: Este arquivo contém registros de atributos de dados sequenciais,


registros de atributos de dados bifurcados e registros de atributos de extensão.
Arquivo de inicialização: Este arquivo contém as informações necessárias para auxiliar
na inicialização de um sistema que não possui suporte ao HFS Plus.
Cabeçalho de volume alternativo: Este é um backup do cabeçalho de volume e é usado
principalmente para reparar o disco.
Reservado (512 bytes): É reservado para uso da Apple e é utilizado durante o processo de
fabricação.

Em seguida, vamos ver o sistema de arquivos APFS.


Machine Translated by Google

O sistema de arquivos APFS

APFS é um novo sistema de arquivos para iOS, macOS, tvOS e watchOS. É um sistema de arquivos de
64 bits e suporta mais de 9 quintilhões de arquivos em um único volume. A seguir, uma lista de suas
principais características:

Clones: São cópias instantâneas de arquivos ou diretórios.


As modificações são gravadas em outro lugar e continuam a compartilhar os blocos

não modificados; as alterações são salvas como deltas do arquivo clonado.


Instantâneos: Instâncias somente leitura Point-in-Time (PIT) do sistema de arquivos.

Compartilhamento de espaço: permite que vários sistemas de arquivos compartilhem o


mesmo espaço livre subjacente em um volume físico.
Criptografia: Existem três modos, como segue: Sem criptografia
Criptografia de chave única Criptografia de várias chaves
com chaves por arquivo para dados de arquivo e uma chave
separada para metadados confidenciais

Dependendo do hardware, é usado o modo de codebook otimizado baseado no padrão de


criptografia avançada XEX com roubo de texto cifrado (AES-XTS) ou o modo de criptografia
de encadeamento de bloqueio de criptografia padrão avançado (AES-CBC) .

Proteção contra travamento: Este é um novo esquema de metadados copy-on-write; é usado para
garantir que as atualizações do sistema de arquivos sejam protegidas contra falhas.
Arquivos esparsos: permitem que o tamanho lógico dos arquivos seja maior que o espaço físico
que ocupam no disco.
Dimensionamento rápido de diretórios: calcula rapidamente o espaço total usado por uma
hierarquia de diretórios, permitindo que seja atualizado à medida que a hierarquia evolui.
Machine Translated by Google

A estrutura APFS
Assim, o APFS é estruturado em um único container que pode conter um ou mais
volumes. A estrutura do APFS é apresentada no diagrama a seguir:

Visão geral da estrutura do APFS

Cada estrutura de sistema de arquivos no APFS começa com um cabeçalho de bloco.


O cabeçalho do bloco começa com uma soma de verificação (o algoritmo de soma de
verificação de Fletcher é usado) para todo o bloco e também contém a versão copy-on-write
do bloco, o ID do bloco e o tipo de bloco.

A estrutura APFS pode ser explicada da seguinte forma:

O Container Superblock contém informações sobre o tamanho do bloco, o número


de blocos e ponteiros para o gerenciador de espaço para esta tarefa, o
Machine Translated by Google

IDs de bloco de todos os volumes e um ponteiro para um mapa de bloco B-Tree


(que contém entradas para cada volume, junto com seu ID e deslocamento).
Os nós são usados para armazenar diferentes tipos de entradas. Eles podem fazer
parte de uma B-Tree ou existir por conta própria e podem conter entradas flexíveis
ou de tamanho fixo.
O Space Man(ager) gerencia os blocos alocados no contêiner APFS e
armazena o número de blocos livres e um ponteiro para o Arquivo de Informações
de Alocação.
O arquivo de informações de alocação armazena o comprimento, a versão e o deslocamento do
arquivo de alocação.

As B-Trees gerenciam vários nós e contêm o deslocamento do nó raiz.

Um Volume Superblock contém o nome do volume, seu ID e um carimbo de data/


hora.

Quanto aos arquivos de alocação, eles são bitmaps simples e não possuem cabeçalho
de bloco e ID de tipo.
Machine Translated by Google

Disposição do disco

Por padrão, o sistema de arquivos é configurado como duas partições de disco lógico: a
partição do sistema (raiz ou firmware) e a partição de dados do usuário.

A partição do sistema contém o sistema operacional e todos os aplicativos pré-carregados


usados com o iPhone. A partição do sistema é montada como somente leitura, a menos
que uma atualização do sistema operacional esteja em andamento ou o dispositivo tenha
jailbreak. A partição é atualizada somente quando uma atualização de firmware é executada
no dispositivo. Durante este processo, toda a partição é formatada pelo iTunes sem afetar
nenhum dos dados do usuário. A partição do sistema ocupa apenas uma pequena parte do
espaço de armazenamento, normalmente entre 0,8 GB e 4 GB, dependendo do tamanho
da unidade NAND. Como a partição do sistema foi projetada para permanecer em um
estado de fábrica durante toda a vida útil do iPhone, geralmente há poucas informações
úteis de evidência que podem ser obtidas dela. Se o dispositivo iOS estiver com jailbreak,
os arquivos contendo informações sobre o jailbreak e os dados do usuário podem residir na
partição do sistema. O jailbreak de um dispositivo iOS permite que o usuário tenha acesso
root ao dispositivo, mas anula a garantia do fabricante. O jailbreak será discutido mais
adiante neste capítulo.

A partição de dados do usuário contém todos os dados criados pelo usuário, desde
músicas e contatos até dados de aplicativos de terceiros. A partição de dados do usuário
ocupa a maior parte da memória NAND e é montada no diretório /private/var no
dispositivo. A maioria das informações comprobatórias pode ser encontrada nesta partição.
Durante uma aquisição do sistema de arquivos, o conteúdo da partição de dados do usuário
deve ser capturado e salvo como um arquivo .tar . Os dados adquiridos podem ser facilmente
extraídos e analisados pela maioria das ferramentas forenses móveis comerciais.
Machine Translated by Google

o sistema operacional do iphone

O iOS é o sistema operacional móvel proprietário mais avançado e rico em recursos


da Apple. Foi lançado com a primeira geração do iPhone. Quando introduzido, foi
nomeado iPhone OS, e mais tarde foi renomeado iOS para refletir a natureza
unificada do sistema operacional que alimenta todos os dispositivos Apple iOS,
como o iPhone, iPod touch, iPad e Apple TV. O iOS é derivado das principais
tecnologias do OS X e é simplificado para ser compacto e eficiente para dispositivos
móveis.

Ele utiliza uma interface multitoque, onde gestos simples são usados para operar e
controlar o dispositivo, como deslizar o dedo pela tela para mover para a próxima
página ou beliscar os dedos para ampliar. Em termos simples, o iOS auxilia no
funcionamento geral do dispositivo.
Machine Translated by Google

A arquitetura do iOS

O iOS é um intermediário entre os componentes de hardware do dispositivo e os aplicativos na


tela. Os aplicativos não interagem diretamente com o hardware subjacente. Em vez disso, eles
fazem isso por meio de uma interface de sistema bem definida que os protege de alterações de
hardware. Essa abstração facilita a criação de aplicativos que funcionam em dispositivos com diferentes
recursos de hardware.

A arquitetura do iOS consiste em quatro camadas: a camada Cocoa Touch, a camada de mídia,
a camada de serviços principais e a camada de sistema operacional principal. Cada camada é
composta por vários frameworks que auxiliam na construção de uma aplicação, conforme
ilustrado no diagrama a seguir:

As camadas do iOS

Essas camadas podem ser descritas da seguinte forma:

Cocoa Touch: Esta camada contém as principais estruturas necessárias para desenvolver
a interface visual para aplicativos iOS. Estruturas neste
Machine Translated by Google

A camada fornece a infra-estrutura básica de aplicativos e suporta


tecnologias-chave, como entrada baseada em toque, multitarefa e muitos
serviços de sistema de alto nível.

Mídia: Esta camada fornece as estruturas gráficas, de áudio e vídeo para criar
a melhor experiência multimídia disponível em um dispositivo móvel.
As tecnologias nesta camada ajudam os desenvolvedores a criar aplicativos
com ótima aparência e som.

Serviços principais: essa camada fornece os serviços fundamentais do


sistema necessários para os aplicativos. Nem todos esses serviços são usados
pelos desenvolvedores, embora muitas partes do sistema sejam construídas
sobre eles. Essa camada contém tecnologias que permitem suporte para
serviços de localização, iCloud e mídia social.

Núcleo do sistema operacional: essa camada é a camada base e fica


diretamente sobre o hardware do dispositivo. Essa camada lida com
funcionalidades de baixo nível e fornece serviços como rede (soquetes
Berkeley Software Distribution (BSD) ), gerenciamento de memória,
threading (threads de Interface de Sistema Operacional Portátil (POSIX) ),
manipulação de sistema de arquivos, acesso a acessórios externos e
comunicação entre processos. (CIP).

Agora que aprendemos sobre a arquitetura do iOS, vamos dar uma olhada na
segurança do iOS.
Machine Translated by Google

segurança do iOS

Versões mais recentes do iOS foram projetadas com segurança em seu núcleo.
No nível mais alto, a arquitetura de segurança do iOS é a seguinte:
Machine Translated by Google
Machine Translated by Google

A arquitetura de segurança do iOS

Os dispositivos Apple iOS, como iPhone, iPad e iPod Touch, são projetados com camadas
de segurança. Os recursos de hardware de baixo nível protegem contra ataques de
malware e os recursos de sistema operacional de alto nível impedem o uso não autorizado.
Uma breve visão geral dos recursos de segurança do iOS é fornecida nas seções a seguir.
Machine Translated by Google

Senhas, Touch ID e Face ID


As senhas restringem o acesso não autorizado ao dispositivo. Depois que uma senha
é definida, toda vez que você ligar ou ativar o dispositivo, ele solicitará a senha para
acessar o dispositivo. Os dispositivos iOS suportam senhas simples e complexas. O
iOS 9 lançou a opção de usar uma senha simples de seis dígitos em vez da opção
herdada de quatro dígitos. O iPhone 5S e posteriores também suportam impressões
digitais Touch ID como uma senha, que são copiadas com uma senha simples ou
complexa. O iPhone X e posteriores suportam uma nova forma biométrica de bloquear
o dispositivo - Face ID - para que os usuários possam usar seus rostos como senhas.
E é ainda mais seguro, pois a chance de um estranho desbloquear seu iPhone com
o Touch ID é de 1 em 50.000, mas com o Face ID é de 1 em 1.000.000.
Machine Translated by Google

Assinatura de código

A assinatura de código impede que os usuários baixem e instalem aplicativos


não autorizados no dispositivo. A Apple diz o seguinte sobre isso:

"Assinatura de código é o processo pelo qual seu aplicativo iOS compilado é lacrado e identificado como seu. Além
disso, os dispositivos iOS não executam um aplicativo ou carregam uma biblioteca a menos que seja assinado por uma
parte confiável. Para garantir que todos os aplicativos venham de um fonte conhecida e aprovada e não foram adulterados,
o iOS exige que todos os códigos executáveis sejam assinados usando um certificado emitido pela Apple."
Machine Translated by Google

Sandboxing
O sandbox reduz a exploração de execução pós-código, colocando o aplicativo
em uma área estritamente restrita. Os aplicativos instalados no dispositivo iOS são
colocados em área restrita e um aplicativo não pode acessar os dados armazenados
por outro. Essencialmente, um sandbox é um mecanismo que impõe controles
refinados que limitam o acesso de um aplicativo a arquivos, recursos de rede,
hardware e muito mais.
Machine Translated by Google

Criptografia
Em dispositivos iOS (começando com o iPhone 4), todo o sistema de arquivos é
criptografado com uma chave de sistema de arquivos, que é calculada a partir da chave
de hardware exclusiva do dispositivo. Essa chave é armazenada no armazenamento apagável,
que existe entre os níveis de sistema operacional e hardware do dispositivo. Esta é a razão que
Os métodos Joint Test Action Group (JTAG) e chip-off não são métodos de aquisição
úteis, pois todo o despejo de dados será criptografado.
Machine Translated by Google

Proteção de dados
A proteção de dados foi projetada para proteger os dados em repouso e dificultar os
ataques off-line. Ele permite que os aplicativos aproveitem a senha do dispositivo do
usuário, em conjunto com a criptografia de hardware do dispositivo, para gerar uma chave
de criptografia forte. Posteriormente, a chave de criptografia forte é usada para criptografar os
dados armazenados no disco. Essa chave protege os dados contra acesso não autorizado quando
o dispositivo está bloqueado, de modo que as informações críticas são protegidas mesmo se o
dispositivo estiver comprometido.
Machine Translated by Google

Disposição do Espaço de Endereçamento

Randomização (ASLR)
ASLR é uma técnica de mitigação de exploração introduzida com o iOS 4.3. O
ASLR randomiza a localização do objeto do aplicativo na memória, dificultando
a exploração das vulnerabilidades de corrupção de memória.
Machine Translated by Google

Separação de privilégios
O iOS é executado com o princípio do privilégio mínimo (PoLP). Ele contém duas
funções de usuário: root e mobile. Os processos mais importantes do sistema são
executados com privilégios de usuário root. Todos os outros aplicativos aos quais o usuário
tem acesso direto, como navegador e aplicativos de terceiros, são executados com
privilégios de usuário móvel.
Machine Translated by Google

Proteção contra pilha


A proteção contra pilhagem é um mecanismo de mitigação de exploração. Ele
protege o dispositivo contra ataques de estouro de buffer colocando um valor
aleatório e conhecido (chamado stack canary) entre um buffer e os dados de
controle na pilha.
Machine Translated by Google

Prevenção de Execução de Dados (DEP)


DEP é um mecanismo de técnica de mitigação de exploração por meio do
qual um processador pode distinguir as partes da memória que são códigos
executáveis dos dados. Por exemplo, em um ataque de injeção de código, um invasor
tenta injetar um vetor e executá-lo. Mas a DEP impede isso porque reconhece a parte
injetada como dados e não como código.
Machine Translated by Google

Limpeza de dados

O iOS fornece a opção Apagar todo o conteúdo e configurações para limpar os dados em
um iPhone. Esse tipo de limpeza de dados apaga as configurações e informações do
usuário removendo as chaves de criptografia que protegem os dados. Como as chaves de
criptografia são apagadas do dispositivo, não é possível recuperar os dados excluídos, nem
mesmo durante as investigações forenses. Estão disponíveis outros métodos de limpeza
que substituem os dados na memória do dispositivo. Mais informações sobre limpeza podem
ser encontradas em https://support.apple.com/en-in/HT201274.
Machine Translated by Google

Bloqueio de Ativação

O Bloqueio de Ativação, introduzido com o iOS 7, é um impedimento de roubo que


funciona aproveitando o Find My iPhone. Quando o Find My iPhone está ativado,
ele ativa o Bloqueio de Ativação, e o ID Apple e a senha do usuário serão
necessários para desativar o Find My iPhone, para apagar o dispositivo e reativá-lo.
Machine Translated by Google

A loja de aplicativos

A App Store é uma plataforma de distribuição de aplicativos para iOS, desenvolvida e


mantida pela Apple. É uma loja online centralizada onde os usuários podem navegar e
baixar aplicativos gratuitos e pagos. Esses aplicativos expandem a funcionalidade de um
dispositivo móvel. No primeiro trimestre de 2019, havia 2,2 milhões de aplicativos na App
Store.

Os aplicativos disponíveis na App Store geralmente são escritos por desenvolvedores


terceirizados. Os desenvolvedores usam o Xcode e o kit de desenvolvimento de software
iOS (SDK) para desenvolver aplicativos. Mais tarde, eles enviam o aplicativo para aprovação
da Apple. A Apple segue um extenso processo de revisão para verificar se o aplicativo está
de acordo com as diretrizes da empresa. Se a Apple aprovar o aplicativo, ele será publicado
na App Store, onde os usuários poderão baixá-lo ou comprá-lo. O rigoroso processo de
revisão torna a App Store menos propensa a malware, mas não 100% segura.

O XcodeGhost, o malware da Apple que infectou 50 aplicativos na Apple App Store, foi
detectado em setembro de 2015. Esse malware foi incorporado ao Xcode, o que dificultou
sua detecção e afetou mais de 500 milhões de usuários em todo o mundo. Uma vez
detectado, a Apple removeu imediatamente os aplicativos infectados.
Machine Translated by Google

Jailbreak
Jailbreaking é o processo de remoção de limitações impostas pelo sistema operacional móvel da Apple por

meio do uso de exploits de software e hardware. O jailbreak permite que o código não assinado seja executado

e obtenha acesso root no sistema operacional. O motivo mais comum para o jailbreak é expandir o conjunto

limitado de recursos imposto pela App Store da Apple e instalar aplicativos não aprovados. O jailbreak pode ajudar

na aquisição forense, mas anulará a garantia do usuário, possivelmente bloqueará o dispositivo e pode não suportar

a restauração das configurações de fábrica.

Se você desbloquear um dispositivo, é melhor presumir que ele será desbloqueado para sempre
e a garantia não é mais válida.

Muitas ferramentas de jailbreak publicamente disponíveis adicionam um instalador de aplicativo não oficial

ao dispositivo, como o Cydia, que permite aos usuários instalar muitos aplicativos, ferramentas, ajustes e

aplicativos de terceiros a partir de um repositório de arquivos online. O software baixado do Cydia abre

infinitas possibilidades em um dispositivo que um dispositivo sem jailbreak nunca seria capaz de fazer. As

ferramentas de jailbreak mais populares são Pangu, TaiG, Electra e Unc0ver. Nem todas as versões do iOS podem

ser desbloqueadas. A tabela a seguir ajudará você a escolher a ferramenta de jailbreak apropriada de acordo com

o dispositivo que você possui e sua versão do iOS:

Versão Data de lançamento Ferramenta

iPhone OS 1.0 29 de junho de 2007 (sem nome)

iPhone OS 2.0 11 de julho de 2008 Ferramenta Pwnage


Machine Translated by Google

iPhone OS 3.0 17 de junho de 2009 Ferramenta Pwnage

iOS 4.0 21 de junho de 2010 Ferramenta Pwnage

iOS 5.0 12 de outubro de 2011 redsn0w

iOS 6.0 19 de setembro de 2012 redsn0w

iOS 7.0 - 7.0.6 18 de setembro de 2013 evasi0n7

iOS 7.1 - 7.1.2 29 de maio de 2014 Pangu

iOS 8.0 - 8.1 17 de setembro de 2014 Pangu8

iOS 8.1.1 - 8.4 17 de novembro de 2014 TaiG, PP Jailbreak

iOS 8.4.1 13 de agosto de 2015


Etason JB

iOS 9.0 16 de setembro de 2015 Pangu9

iOS 9.1 21 de outubro de 2015 Pangu9


Machine Translated by Google

iOS 9.3.5 25 de agosto de 2016 Fénix

iOS 10.0 - 10.1.1 13 de setembro de 2016 Yalu

iOS 11.0 - 11.1.2 19 de setembro de 2017 Libério

iOS 11.0 - 11.1.2 19 de setembro de 2017 Electra1112

iOS 11.0 - 11.4.1 7 de julho de 2018 Electra1131

iOS 11.0 - 11.4.1 14 de outubro de 2018 Descobrir

iOS 12.0 - 12.2,


17 de setembro de 2019 Chimera, Unc0ver
12.4 - 12.4.2

iOS 12.3 - 13.2.3 10 de novembro de 2019 checkra1n

Agora aprendemos sobre o processo de jailbreak e vimos as diferentes ferramentas de


jailbreak atualmente disponíveis.
Machine Translated by Google

Resumo
A primeira etapa no exame forense de um dispositivo iOS deve identificar o modelo do
dispositivo. O modelo de um dispositivo iOS pode ser usado para ajudá-lo, como examinador,
a desenvolver uma compreensão dos componentes e capacidades subjacentes do dispositivo,
que podem ser usados para orientar os métodos de aquisição e exame. Dispositivos iOS
legados não devem ser desconsiderados, pois podem aparecer como parte de uma investigação.
Você deve estar ciente de todos os dispositivos iOS, pois os dispositivos antigos às vezes ainda
estão em uso e podem estar vinculados a uma investigação criminal.

O próximo capítulo fornecerá ferramentas que ajudarão na obtenção de dados de dispositivos


iOS para posterior exame forense. Nem todas as ferramentas são criadas iguais, por isso é
importante conhecer as melhores ferramentas para fazer o trabalho corretamente.
Machine Translated by Google

Aquisição de dados de dispositivos iOS


Um dispositivo iOS recuperado de uma cena de crime pode ser uma rica fonte
de evidências. Pense em como um smartphone é pessoal para um usuário; nada
mais que é digital chega perto. Raramente saímos de casa ou mesmo andamos fora
delas sem nossos smartphones ao alcance do braço. É literalmente um vislumbre dos
aspectos mais pessoais de um ser humano, quase como um diário de nossas atividades
diárias. De acordo com várias referências de notícias, os iPads de Oscar Pistorius foram
examinados por um especialista em dispositivos móveis e apresentados durante seu
julgamento para mostrar sua atividade na Internet horas antes da morte de sua namorada.
Quando um dispositivo iOS pode fornecer acesso a uma chamada arma fumegante,
você, como examinador, deve garantir que sabe como manusear, adquirir e analisar
adequadamente o dispositivo.

Existem diferentes maneiras de adquirir dados forenses de um dispositivo iOS.


Embora cada método tenha seus prós e contras, o princípio fundamental de
qualquer método de aquisição é obter o máximo de dados possível.

Neste capítulo, abordaremos os seguintes tópicos:

Modos de operação do dispositivo iOS


Proteção por senha e potenciais desvios
Aquisição lógica
Aquisição do sistema de arquivos
Machine Translated by Google

Modos de operação de dispositivos iOS


Antes de mergulharmos nas técnicas forenses e nos métodos de aquisição, é
importante conhecer os diferentes modos de operação de um dispositivo iOS. Muitas
ferramentas e métodos forenses exigem que você coloque o dispositivo em um dos modos
de operação. Compreender os modos de operação do dispositivo iOS é necessário para
executar uma ação específica no dispositivo.

Embora a maioria das ferramentas comerciais demonstre as etapas adequadas para


colocar o dispositivo em um modo específico, você deve entender o que esse modo
representa. Os dispositivos iOS são capazes de funcionar em diferentes modos de operação:
modo normal, modo de recuperação e modo de atualização de firmware do dispositivo (DFU) .
Algumas ferramentas forenses exigem que você saiba qual modo o dispositivo
está utilizando no momento. Definiremos cada modo nesta seção.

Observe que quando o termo iPhone é mencionado, deve-se entender que a afirmação
permanece verdadeira para todos os dispositivos iOS.
Machine Translated by Google

Modo normal
Quando um iPhone é ligado, seu sistema operacional é inicializado; este modo é conhecido
como modo normal. A maioria das atividades regulares (chamadas, mensagens de texto e
assim por diante) executadas em um iPhone serão executadas no modo normal.

Quando um iPhone é ligado internamente, ele passa por uma cadeia de inicialização
segura, conforme mostrado no diagrama a seguir. Isso não ocorre em dispositivos com
jailbreak. Cada etapa do processo de inicialização contém componentes de software
que são assinados criptograficamente pela Apple para garantir a integridade:

Uma cadeia de inicialização segura de um iPhone no modo normal

*A ROM de boot, por sua vez, verifica se o Low-Level Bootloader (LLB) é assinado pela Apple
e o carrega. O LLB é carregado e verificado pela ROM de inicialização, mas isso ocorre
apenas em dispositivos com processador A9 ou anterior da série A

A ROM de inicialização, conhecida como ROM segura, é uma memória somente leitura
(ROM) e é o primeiro código significativo executado em um iPhone (https://www.apple.com/
business/docs/iOS_Security_Guide.pdf ). Uma explicação do processo de inicialização para
dispositivos iOS é definida nas seguintes etapas:
Machine Translated by Google

1. O código da ROM de inicialização contém a autoridade de certificação raiz da Apple


(CA) chave pública, que é usada para verificar a assinatura do próximo estágio antes de
permitir seu carregamento.
2. Quando o iPhone é iniciado, o processador do aplicativo executa o código da ROM de
inicialização.
3. A ROM de boot, por sua vez, verifica se o Bootloader de baixo nível
(LLB) é assinado pela Apple e o carrega. O LLB é carregado e verificado pela ROM de
inicialização, mas isso ocorre apenas em dispositivos com processador A9 ou anterior da
série A.
4. Quando o LLB termina suas tarefas, ele verifica e carrega o carregador de boot de
segundo estágio (iBoot). O iBoot verifica e carrega o kernel do iOS.
5. O kernel do iOS, por sua vez, verifica e executa todos os aplicativos do usuário.

Quando um dispositivo iOS está nesse estado, é possível obter uma parte acessível
ao usuário por meio de aquisição forense. Na maioria das vezes, isso inclui uma aquisição
lógica, que será discutida mais adiante neste capítulo.
Machine Translated by Google

Modo de recuperação

Durante o processo de inicialização, se uma etapa não puder carregar ou verificar a


próxima etapa, a inicialização será interrompida e o iPhone exibirá a tela mostrada na
captura de tela a seguir:

Modo de recuperação do dispositivo iOS

Este modo é conhecido como modo de recuperação e é necessário para realizar atualizações
ou restaurar o iPhone. Para entrar no modo de recuperação, execute as seguintes etapas:

1. Desligue o dispositivo.
2. Mantenha pressionado o botão Home do iPhone e conecte o dispositivo a um
computador por meio de um cabo USB. O dispositivo deve ligar.
3. Continue segurando o botão Home até que a tela Conectar ao iTunes apareça. Em
seguida, você pode soltar o botão Home (em um dispositivo iOS com jailbreak, esta
tela pode aparecer com ícones diferentes). A maioria das ferramentas forenses e
métodos de extração irão alertá-lo sobre o estado atual do dispositivo iOS.

4. Para sair do modo de recuperação, reinicie o iPhone. No iPhone 6s e anteriores,


isso pode ser concluído mantendo pressionados os botões Home e Sleep/Power
até que o logotipo da Apple apareça. No iPhone 7 e iPhone 7 Plus, isso pode ser
feito segurando o botão Lateral e o botão Diminuir volume
Machine Translated by Google

junto. No iPhone 8 e posterior, você faz isso clicando no botão Aumentar volume, depois
clicando no botão Diminuir volume e mantendo pressionado o botão Lateral.

Você pode ler mais sobre o modo de recuperação em dispositivos iOS em https:// support.apple.com/ en-in/ HT20
1263.

Normalmente, o processo de reinicialização retorna o iPhone do modo de recuperação para


o modo normal. Essa mesma metodologia se aplica ao Apple Watch. Você pode enfrentar
uma situação em que o iPhone reinicia constantemente no modo de recuperação. Isso é
conhecido como loop de recuperação. Um loop de recuperação pode ocorrer quando o
usuário ou examinador tenta fazer o jailbreak do dispositivo iOS e ocorre um erro. Para tirar o
dispositivo de um loop de recuperação, o dispositivo deve estar conectado ao iTunes para que
um backup possa ser restaurado no dispositivo.

Isso faz alterações nas evidências, portanto, certifique-se de ter validado seus métodos de
aquisição em um dispositivo de teste antes de tentar usar seus métodos em evidências reais.
Machine Translated by Google

modo DFU
Durante o processo de inicialização, se a ROM de inicialização não puder carregar ou verificar o
LLB ou iBoot (em dispositivos mais recentes), o iPhone entrará no modo de atualização de
firmware do dispositivo (DFU) . O modo DFU é um modo de diagnóstico de baixo nível e foi
projetado para realizar atualizações de firmware para iPhones.

Para entrar no modo DFU, execute as seguintes etapas para iPhone 8 e posterior:

1. Conecte o dispositivo à sua estação de trabalho por meio de um cabo USB.


2. Pressione o botão Aumentar volume e solte-o rapidamente.
3. Pressione o botão Diminuir volume e solte-o rapidamente.
4. Segure o botão Lateral e pressione o botão Diminuir volume novamente.
5. Após 5 segundos, solte o botão Lateral, mas continue segurando o botão Diminuir
volume até ver a tela Recuperação.

Siga estas etapas para o iPhone 7:

1. Conecte o dispositivo à sua estação de trabalho por meio de um cabo USB.


2. Ao mesmo tempo, pressione e segure os botões Lateral e Diminuir volume.
3. Solte o botão Lateral, mas continue segurando o botão Diminuir volume até ver a tela
Recuperação.

Siga estas etapas para o iPhone 6s e versões anteriores:

1. Conecte o dispositivo à sua estação de trabalho por meio de um cabo USB.


2. Ao mesmo tempo, pressione e segure os botões Início e Superior (ou Lateral)
botões.
3. Solte o botão superior (ou lateral) e continue segurando o botão inicial
botão.

No iPhone 6s e anteriores, nada será exibido na tela quando o dispositivo estiver no


modo DFU.

Para verificar se o iPhone está no modo DFU no macOS, inicie um relatório do sistema e vá para
a opção USB. Você deve ver algo semelhante ao
Machine Translated by Google

captura de tela a seguir:

As informações do sistema MacBook exibindo um dispositivo no modo DFU

A seguir, veremos rapidamente as ferramentas necessárias para configurar o


ambiente forense.
Machine Translated by Google

Configurando o ambiente forense


Atualmente, temos algumas ferramentas que podem ser usadas por
examinadores forenses móveis para adquirir e analisar dispositivos iOS usando
sistemas macOS e Windows como hosts. Por exemplo, o Elcomsoft iOS Forensic
Toolkit possui versões para macOS e Windows; quanto a ferramentas gratuitas e de
código aberto, a biblioteca libimobiledevice pode ser usada – não apenas em estações
de trabalho forenses macOS e Windows, mas também em Linux!

Vamos apresentá-lo a essas ferramentas com exercícios práticos, é claro, incluindo


aquisições práticas de lógica e sistema de arquivos, e até mesmo jailbreak, mais
adiante neste capítulo. Mas vamos começar com a proteção por senha e possíveis
desvios, pois, sem a senha, não podemos extrair nada de um dispositivo iOS
moderno.
Machine Translated by Google

Proteção por senha e potenciais


desvios
Queremos começar com a má notícia: se você estiver examinando um iPhone com iOS 8 ou
mais recente, e especialmente se for um dispositivo mais recente, por exemplo, o iPhone 6s,
suas chances de desbloqueá-lo não são boas.

Claro que existem algumas soluções baseadas em hardware, como IP-BOX 3, mas todas elas
funcionam apenas ocasionalmente, e o uso de uma delas pode até resultar em bricking do
dispositivo. Com o iOS 11, esse problema se torna ainda mais grave – mesmo que o dispositivo
sob exame não esteja protegido por senha, você precisará da senha de qualquer maneira, pois
ela deve ser digitada para confirmar a confiança entre o dispositivo e sua estação de trabalho.

Então, o que um examinador forense móvel deve fazer? Use os arquivos de bloqueio!
Os arquivos de bloqueio, que são armazenados como um arquivo plist em computadores
confiáveis, permitem que você induza o dispositivo a acreditar que está desbloqueado ou
confiável na estação de trabalho forense.

Os arquivos de bloqueio estão localizados nos seguintes locais:

/var/db/lockdown no macOS
C:\ProgramData\Apple\Lockdown no Windows 7 e versões posteriores

Você deve estar ciente de que o desbloqueio com um arquivo de bloqueio só funciona se o
dispositivo foi desbloqueado com uma senha pelo menos uma vez após a última reinicialização.

Existem também algumas técnicas avançadas que existem. Isso inclui moldes de
impressão digital para enganar o Touch ID, máscaras para enganar o Face ID e espelhamento
NAND para contornar os limites de entrada de senha.

A primeira técnica foi demonstrada pela primeira vez por Jason Chaikin. Ele
demonstrou como contornar o Touch ID levantando o nome de outra pessoa
Machine Translated by Google

impressão digital com materiais de moldagem comuns, como molde dental e Play
Doh.

A segunda técnica foi demonstrada como prova de conceito pela empresa


vietnamita de segurança cibernética Bkav. Eles criaram uma máscara que pode
ser usada para enganar o recurso Face ID usando uma combinação de impressão
tridimensional, maquiagem e imagens bidimensionais.

A última técnica foi demonstrada por Sergei Skorobogatov, pesquisador


associado sênior do Grupo de Segurança do Cambridge Computer Laboratory.
Essa técnica permite contornar os limites de entrada de senha soldando o chip de
memória flash do iPhone e clonando-o. Essa técnica deve funcionar em qualquer
dispositivo iOS até o iPhone 6s Plus.
Machine Translated by Google

Aquisição lógica
Uma aquisição lógica capta uma parte do que é acessível ao usuário; em outras
palavras, o que está incluído em um backup do iTunes. Isso significa que não obteremos
nenhum arquivo excluído, mas, graças às listas gratuitas dos bancos de dados SQLite e
ao espaço não alocado, podemos recuperar registros excluídos, incluindo SMS e outros bate-
papos, histórico de navegação e assim por diante. Discutiremos a recuperação de dados
SQLite e artefatos excluídos no Capítulo 5, Análise e recuperação de dados do iOS.

A aquisição lógica é a maneira mais simples de verificar se o dispositivo está


desbloqueado, pois simplesmente usa o mecanismo de backup integrado. A maioria das
ferramentas e métodos que suportam a aquisição lógica de dispositivos iOS falhará se o
dispositivo estiver bloqueado. Alguns pensam que, se uma imagem física for capturada,
há pouca ou nenhuma necessidade de uma aquisição lógica. No entanto, nem todos os dados
são analisados em uma imagem física, e é por isso que ter acesso a uma imagem lógica, que
resulta em dados legíveis, ajudará você a se aprofundar na imagem física em busca de
artefatos para apoiar sua investigação forense.

A aquisição lógica é a maneira mais rápida, fácil e econômica de obter acesso aos dados
armazenados em um dispositivo iOS. Há uma variedade de ferramentas, desde comerciais
até gratuitas, capazes de capturar imagens lógicas. A maioria dessas ferramentas requer
que o dispositivo seja desbloqueado ou que o acesso ao arquivo plist da máquina host esteja
prontamente disponível.
Machine Translated by Google

Aquisição lógica prática com


libimobiledevice
Ter a teoria sob seu controle é bom, mas colocar isso em prática é muito melhor.
Vamos criar uma imagem lógica de um iPhone executando iOS 13.2 com
libimobiledevice, que já deve estar instalado em sua estação de trabalho, pois o
usamos para coleta de informações do dispositivo no capítulo anterior.

OK vamos começar:

1. Em primeiro lugar, vamos criptografar nossos backups. Conecte o dispositivo


iOS à sua estação de trabalho e inicie o prompt de comando. Altere o diretório
para aquele que contém libimobiledevice e digite o seguinte comando:

criptografia de backup idevicebackup2.exe em <your_password>

2. Se você vir a criptografia de backup habilitada com sucesso, então


você fez tudo certo e os backups serão criptografados. Isso ajudará você, o
examinador forense, a obter mais informações sobre as senhas dos usuários,
o histórico de navegação do Safari e muito mais.

3. É hora de criar o backup — nossa imagem lógica do dispositivo iOS. Para fazer
isso, digite o seguinte comando:

idevicebackup2 backup --full <the_folder_you_want_the_image_to_be_saved>

É isso. Você pode ver o processo de imagem lógica na captura de tela a


seguir:
Machine Translated by Google

Imagiologia lógica do iPhone com libimobiledevice

Em seguida, vamos ver a aquisição lógica com a Belkasoft Acquisition Tool.


Machine Translated by Google

Aquisição lógica prática com


a Belkasoft Acquisition Tool
Como a aquisição lógica é a opção mais comum para dispositivos iOS modernos,
demonstraremos como usar mais algumas ferramentas gratuitas. A primeira é a ferramenta
de aquisição Belkasoft. Essa ferramenta pode ser usada não apenas para aquisição de
dispositivos iOS, mas também para discos rígidos e até dados em nuvem.

Vamos adquirir um iPhone com iOS 13.2.3 usando a Belkasoft Acquisition Tool:

1. Inicie a Belkasoft Acquisition Tool e escolha o dispositivo móvel


opção:

Escolhendo a fonte

2. Na próxima janela, escolha a opção Apple:


Machine Translated by Google

Escolhendo o tipo de celular

3. Agora, escolha o método de aquisição e o caminho da imagem:


Machine Translated by Google

Escolhendo o método de aquisição

A ferramenta é capaz de criar um backup do iTunes se o dispositivo não estiver


com jailbreak e executar a extração do sistema de arquivos, se estiver.

4. Aguarde até que a tarefa seja concluída com sucesso. Você encontrará a imagem lógica
do seu dispositivo na pasta escolhida na etapa anterior:
Machine Translated by Google

Criando o backup

O backup pode ser analisado pelo Belkasoft Evidence Center e por muitas
outras ferramentas forenses móveis.
Machine Translated by Google

Aquisição lógica prática com


Ímã ADQUIRIR
Outra ferramenta gratuita capaz de aquisição lógica é o ACQUIRE da Magnet
Forensics. Vamos realizar uma aquisição lógica novamente, desta vez usando um
dispositivo com iOS 12.2:

1. Inicie o Magnet ACQUIRE e escolha o dispositivo que deseja criar a imagem


da lista:
Machine Translated by Google

Escolhendo o dispositivo

2. Escolha o tipo de imagem que deseja adquirir. Queremos adquirir uma


imagem lógica e nosso dispositivo não está com jailbreak, então vamos
Machine Translated by Google

escolha a opção Rápida:

Escolhendo o tipo de imagem

3. Você pode adicionar uma descrição da fonte de evidência, se necessário, e escolher


a pasta onde você deseja que a imagem seja salva:
Machine Translated by Google

Escolhendo a pasta de destino, o nome da imagem e as informações da imagem

4. Aguarde a finalização das tarefas com sucesso; você verá um resumo do


processo de aquisição:
Machine Translated by Google

Criando a imagem

Todos os dados extraídos serão salvos na pasta de destino em um arquivo ZIP.


Além disso, a pasta de destino conterá um arquivo TXT com o registro do processo
de aquisição e informações da imagem.

A próxima seção o guiará pelo jailbreak e pela aquisição do sistema de


arquivos.
Machine Translated by Google

Aquisição do sistema de arquivos

Secure Enclave trouxe novos desafios para os examinadores forenses do iOS. Não
podemos extrair as chaves de criptografia necessárias para descriptografar a imagem
do dispositivo, portanto, realizar a aquisição física é inútil. Mas há aquisição do sistema
de arquivos. Infelizmente, na maioria dos casos, é necessário que o dispositivo iOS
seja desbloqueado. A próxima seção mostrará como fazer o jailbreak de um iPhone
rodando iOS 11.4.1 com Electra e um iPhone rodando iOS 13.2 com Checkra1n.
Machine Translated by Google

Jailbreak prático
Para realizar a aquisição do sistema de arquivos, precisamos que nosso dispositivo iOS seja desbloqueado.
As etapas para desbloquear um dispositivo iOS executando 11.4.1 são as seguintes:

1. Baixe o Electra em: https://github.com/coolstar/electra-ipas/raw/master/E


lectra1141-1.3.2.ipa.

2. Baixe o Cydia Impactor (http://www.cydiaimpactor.com/), execute-o e conecte o dispositivo à sua estação


de trabalho:

Executando o Cydia Impactor

3. Arraste e solte o arquivo Electra IPA na janela do Cydia Impactor .

4. Digite qualquer Apple ID na nova janela (você pode registrar um novo para
cada dispositivo que você examinar).

5. Faça logon com este ID Apple em https://appleid.apple.com/ e gere uma senha


específica do aplicativo na seção Segurança. Cole esta senha na próxima
janela. Aguarde o término do processo.

6. No telefone, vá para Configurações | Geral | Gerenciamento de dispositivos | identificação da Apple


e toque em Confiar:
Machine Translated by Google

Verificando o desenvolvedor

7. Coloque o telefone no modo Avião, desligue a Siri e reinicie o dispositivo.

8. Toque no ícone Electra no Springboard e escolha Jailbreak. Se o


processo terminar com sucesso, você encontrará o ícone do Cydia no
Springboard:
Machine Translated by Google

Desbloqueando o dispositivo

Agora, o telefone está desbloqueado e pronto para a aquisição do sistema de arquivos.

O Checkra1n é baseado em uma vulnerabilidade e exploração de bootrom e oferece suporte a uma ampla
variedade de dispositivos iOS, mesmo aqueles executando o iOS 13.2 mais recente (no momento da redação
deste artigo). Aqui estão as etapas para fazer o jailbreak de um dispositivo iOS executando 13.2:

1. Baixe o Checkra1n em: https://checkra.in/.


Machine Translated by Google

2. Execute o aplicativo. No momento da redação deste artigo, o Checkra1n está disponível apenas
para macOS.

3. Conecte o dispositivo e coloque-o no modo DFU:

Colocando o dispositivo no modo DFU

4. Aguarde o término do processo de exploração:


Machine Translated by Google

processo de exploração

Depois que o dispositivo for reinicializado, você encontrará o ícone checkra1n no


Springboard - o dispositivo agora está com jailbreak e pronto para aquisição do sistema
de arquivos.

Para obter mais técnicas de jailbreak, consulte a seção Jailbreaking do Capítulo 2,


Compreendendo o interior dos dispositivos iOS.
Machine Translated by Google

Aquisição prática de sistema de arquivos com


ferramentas gratuitas

É hora de executar a aquisição do sistema de arquivos. Tudo o que precisamos é iproxy de


libimobiledispositivo:

1. Abra uma janela do prompt de comando e execute o iproxy com o seguinte


Parâmetros:

2. Abra outra janela do prompt de comando, altere o diretório para aquele em que deseja
armazenar sua imagem e execute o seguinte comando:

ssh root@127.0.0.1 -p 4444 "tar -cf - /private/var/" > userdata.tar Para se conectar via SSH, você
será solicitado a fornecer a senha necessária. A senha padrão para SSH é alpine.

Assim que o processo terminar, você encontrará a imagem do sistema de arquivos criada no
diretório para o qual você mudou antes de executar o comando anterior. É um arquivo TAR e pode
ser aberto com vários arquivadores, como o 7-Zip:
Machine Translated by Google

Conteúdo da imagem do sistema de arquivos

Em seguida, vamos dar uma olhada no Elcomsoft iOS Forensic Toolkit.


Machine Translated by Google

Aquisição prática de sistema de arquivos com


Elcomsoft iOS Forensic Toolkit
Obviamente, as ferramentas comerciais são mais estáveis e confiáveis. Uma das ferramentas capazes

de adquirir sistemas de arquivos é o Elcomsoft iOS Forensic Toolkit. Aqui, vamos adquirir um dispositivo
iOS com jailbreak executando o iOS 12.4.3.

As etapas para fazer isso são as seguintes:

1. Conecte o dispositivo à sua estação de trabalho e inicie o Toolkit.cmd.


2. Escolha a porta a ser usada para conexão SSH (o padrão é 22, mas como usamos checkra1n para
jailbreak, a porta é 44) e digite a senha (o padrão é alpine):

3. Para adquirir o sistema de arquivos do dispositivo, digite F:


Machine Translated by Google

4. Escolha o nome da imagem e inicie o processo.

Uma vez finalizado o processo, teremos uma imagem do sistema de arquivos pronta para
ser analisada com uma ferramenta forense móvel de nossa escolha.
Machine Translated by Google

Resumo
A primeira etapa no exame forense do dispositivo iOS é adquirir os dados do dispositivo.
Existem várias maneiras diferentes de adquirir dados de um dispositivo iOS. Este
capítulo abordou técnicas de aquisição lógica e de sistema de arquivos, bem como
jailbreak e métodos para contornar senhas.

Embora a aquisição do sistema de arquivos seja o melhor método para obter forense
a maioria dos dados de dispositivos iOS, arquivos de backup podem existir ou ser o
único método para extrair dados do dispositivo.

O próximo capítulo discutirá os arquivos de backup do dispositivo iOS em detalhes,


incluindo usuários, arquivos forenses, criptografados e backup do iCloud, e os métodos
que você pode executar para conduzir seu exame forense.
Machine Translated by Google

Aquisição de dados do iOS


backups
No capítulo anterior, cobrimos técnicas para adquirir dados de um dispositivo iOS, que incluiu
aquisição lógica e de sistema de arquivos. Este capítulo aborda técnicas para adquirir um
backup de arquivos do dispositivo em um computador ou iCloud, usando o protocolo de
sincronização da Apple.

A aquisição física de um dispositivo iOS fornece a maioria dos dados em uma


investigação, mas você também pode encontrar muitas informações nos backups do iOS. Os
usuários de dispositivos iOS têm várias opções para fazer backup dos dados presentes em
seus dispositivos. Os usuários podem optar por fazer backup dos dados em seu computador,
usando o software iTunes da Apple ou no serviço de armazenamento em nuvem da Apple
conhecido como iCloud. Sempre que um iPhone é sincronizado com um computador ou com
o iCloud, ele cria um backup copiando os arquivos selecionados do dispositivo. O usuário
pode determinar o que está contido no backup, portanto, alguns backups podem ser mais
abrangentes do que outros. Além disso, o usuário pode fazer backup em um computador e no
iCloud e os dados derivados de cada local podem ser diferentes. Isso geralmente ocorre
devido às limitações de armazenamento gratuito do iCloud. O usuário pode simplesmente
fazer backup de fotos e contatos no iCloud, mas pode fazer um backup completo de todos os
dados em seu computador. Conforme mencionado anteriormente, a aquisição física fornece
o melhor acesso a todos os dados no dispositivo iOS; no entanto, os backups podem ser a
única fonte disponível de evidência digital, especialmente se estivermos lidando com os
dispositivos iOS mais recentes.

Neste capítulo, abordaremos os seguintes tópicos:

Trabalhando com backups do iTunes


Criando e analisando backups com o iTunes
Extraindo backups não criptografados
Manipulando arquivos de backup criptografados
Trabalhando com backups do iCloud
Machine Translated by Google

Trabalhando com backups do iTunes


Uma grande quantidade de informações é armazenada em qualquer computador que tenha
sido previamente sincronizado com um dispositivo iOS. Esses computadores, geralmente
chamados de computadores host, podem ter dados históricos e certificados de desvio de
senha. Em uma investigação criminal, pode ser obtido um mandado de busca e apreensão
de um computador pertencente a um suspeito, a fim de acessar os certificados de backup e
bloqueio. Para todos os outros casos, é necessário consentimento ou acesso permitido. A
análise forense de arquivos de backup do iOS envolve principalmente a análise de um backup
offline produzido por um iPhone ou iPad. Os dados do Apple Watch estarão contidos no
backup do iPhone com o qual estão sincronizados.

O método de backup do iTunes também é útil nos casos em que outros tipos de aquisição
não são viáveis. Nessa situação, você basicamente cria um backup do iTunes do dispositivo
e o analisa usando um software forense. Assim, é importante que você entenda
completamente o processo de backup e as ferramentas envolvidas, para garantir que as
ferramentas sejam capazes de criar um backup forense sem contaminar os dispositivos com
outros dados existentes no iTunes.

Os arquivos de backup do iPhone podem ser criados usando o software iTunes, que
está disponível para as plataformas macOS e Windows. O iTunes é um utilitário gratuito
fornecido pela Apple para sincronização e gerenciamento de dados entre dispositivos iOS e
o computador. O iTunes usa o protocolo de sincronização proprietário da Apple para copiar
dados do dispositivo iOS para um computador. Por exemplo, um iPhone pode ser
sincronizado com um computador usando um cabo ou Wi-Fi. O iTunes oferece uma opção
para um backup criptografado, mas, por padrão, ele cria um backup não criptografado
sempre que um iPhone é sincronizado. Os backups criptografados, quando quebrados,
fornecem acesso adicional aos dados armazenados no dispositivo iOS.
Isso será discutido mais adiante neste capítulo.

Os usuários costumam criar arquivos de backup para proteger seus dados caso o
dispositivo seja danificado ou perdido. Um backup forense é criado para atuar como a
melhor evidência ou os dados são simplesmente extraídos de arquivos de backup iOS
existentes para procurar informações legadas. Por exemplo, se você estiver sob investigação
Machine Translated by Google

e você exclui arquivos ou limpa seu iPhone, seus arquivos de backup em seu iCloud e seu Mac
ainda existem. Dependendo se o iTunes ou o iCloud foi usado, podem existir vários backups para
o mesmo dispositivo. Você terá que analisar cada backup forense para descobrir artefatos
relacionados à investigação.

O iTunes está configurado para iniciar automaticamente o processo de sincronização assim que
o dispositivo iOS estiver conectado ao computador. Para evitar a troca de dados não intencional
entre o dispositivo iOS e o computador, desative o processo de sincronização automática antes de
conectar sua prova à estação de trabalho forense. A captura de tela na Etapa 2 do processo a
seguir ilustra a opção que desativa a sincronização automática no iTunes versão 12.9.4.102.

Para desativar a sincronização automática no iTunes, execute as seguintes etapas:

1. Navegue até Editar | Preferências | Dispositivos.


2. Marque Impedir que iPods, iPhones e iPads sincronizem automaticamente e clique no
botão OK, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

Desativando a sincronização automática no iTunes

3. Conforme visto na captura de tela anterior, os arquivos de backup do iOS existem no


sistema. Se fosse uma estação de trabalho forense, esses arquivos de backup não
existiriam ou seriam removidos permanentemente para evitar contaminação cruzada.
Machine Translated by Google

4. Depois de verificar as configurações de sincronização, conecte o dispositivo


iOS ao computador usando um cabo Universal Serial Bus (USB) . Se o
dispositivo conectado não estiver protegido por senha ou já tiver sido
conectado ao computador recentemente, o iTunes reconhecerá imediatamente
o dispositivo; caso contrário, você terá que digitar a senha. Isso pode ser
verificado pelo ícone do iPhone exibido no lado esquerdo da interface do
iTunes, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

Um iPhone reconhecido pelo iTunes

5. Antes que o iTunes possa acessar o iPhone, você deve ativar a confiança entre
o computador e o telefone. Você será solicitado a pressionar Continuar no
computador (conforme destacado na captura de tela a seguir) e selecionar
Machine Translated by Google

Confie no iPhone. Com o iOS 11, você também deve inserir a senha do
dispositivo:

iTunes solicita permissões de acesso

6. Assim que o iTunes reconhecer o dispositivo, um único clique no ícone do


iPhone exibe o resumo do iPhone, incluindo o nome do iPhone, capacidade,
versão do firmware, número de série, espaço livre e número de telefone. A
página Resumo do iPhone também exibe as opções para criar backups. O
processo de criação de um backup será discutido na seção a seguir.

Agora, estamos prontos para começar a fazer backup do dispositivo. A próxima seção
o guiará por esse processo.
Machine Translated by Google

Criando e analisando backups


com o iTunes
Nesta seção, vamos orientá-lo sobre como fazer backup de um dispositivo iOS com
o iTunes da Apple. Estamos usando a versão 12.10.2.3 do iTunes e um iPhone
executando a versão 13.2 do iOS. Execute as seguintes etapas:

1. Conecte o dispositivo e clique no ícone do iPhone exibido no lado esquerdo


da interface do iTunes.

2. Vá para a seção Backups, onde você pode escolher o backup


destino (computador local ou iCloud) e se está criptografado, conforme
ilustrado na captura de tela a seguir:
Machine Translated by Google

Seção de backups do iTunes


Os backups criptografados do iTunes contêm dados que os não criptografados não contêm,
incluindo senhas, configurações de Wi-Fi e histórico de navegação na web, portanto, certifique-se
de criar backups criptografados para fins forenses.

3. Clique no botão Fazer backup agora e aguarde a conclusão do processo.


Depois de concluído, a data e a hora do backup mais recente serão alteradas.

Se você quiser usar o iTunes e salvar o backup em um drive externo, observe as


seguintes instruções (estamos usando o iTunes versão 12.10.2.3 e Windows 10):

1. Renomeie a pasta de backup original.


2. Conecte a unidade externa e crie uma pasta de backup nela.
3. Abra o prompt de comando e digite o seguinte comando:

mklink /J "C:\Usuários\<nome de usuário>\AppData\Roaming\Apple


Computador\MobileSync\Backup" "f:\Backup"

4. Agora, você pode criar um backup local regular e ele será salvo em seu
unidade externa.

Agora, temos o backup pronto para análise posterior. Vamos olhar para dentro
para entender sua estrutura.
Machine Translated by Google

Entendendo o backup
estrutura
Quando o backup do iPhone é feito em um computador, os arquivos de backup são
armazenados em um diretório de backup, que existe como uma string hexadecimal de 40
caracteres e corresponde ao Identificador Único de Dispositivo (UDID) do dispositivo. Os
dispositivos mais novos mudaram o formato UDID - agora é uma string de 24 caracteres,
então seus backups são nomeados de acordo. O processo de backup pode levar um tempo
considerável, dependendo do tamanho dos dados armazenados no iPhone durante o primeiro
backup. A localização do diretório de backup no qual seus dados de backup são armazenados
depende do sistema operacional do computador. A tabela a seguir exibe uma lista dos sistemas
operacionais comuns e os locais padrão do diretório de backup do iTunes:

Sistema
Localização do diretório de backup
operacional

C:\Documents and Settings\<nome de usuário>\Application Data\Apple


Windows XP
Computador\MobileSync\Backup\

janelas C:\Users\<nome de usuário>\AppData\Roaming\Apple


Vista/7/8/10 Computador\MobileSync\Backup\

~/Biblioteca/Suporte de aplicativos/MobileSync/Backup/
Mac OS
(~ representa a pasta pessoal)
Machine Translated by Google

Durante a primeira sincronização, o iTunes cria um diretório de backup e


faz um backup completo do dispositivo. Atualmente, nas sincronizações subsequentes,
o iTunes faz backup apenas dos arquivos que são modificados no dispositivo e
atualiza o diretório de backup existente. Isso nem sempre foi verdade, pois, no
passado, um novo backup era criado toda vez que o backup do dispositivo iOS era
feito. Além disso, quando um dispositivo é atualizado ou restaurado, o iTunes inicia
automaticamente um backup e faz um backup diferencial. Um backup diferencial tem
o mesmo nome do diretório de backup, mas é anexado com um traço (-), a data do
backup da International Organization for Standardization (ISO) , um traço (-) e a
hora no formato de 24 horas com segundos ([UDID]+ '-' + [Data]+'-'+[Carimbo de
hora]).

O backup do iTunes pode fazer uma cópia de tudo no dispositivo, incluindo contatos,
mensagens SMS ( Short Message Service ) , fotos, calendários, músicas, registros
de chamadas, arquivos de configuração, documentos, chaves, configurações de
rede, cache de aplicativos da web offline, favoritos , cookies, dados do aplicativo (se
selecionado) e muito mais. Por exemplo, e-mails e senhas não serão extraídos se o
backup não estiver criptografado. O backup também contém detalhes do dispositivo,
como número de série, UDID, detalhes do Módulo de Identificação do Assinante
(SIM) e número de telefone. Essas informações também podem ser usadas para
provar uma relação entre o backup e o dispositivo móvel.

O diretório de backup contém quatro arquivos padrão, juntamente com os arquivos individuais (até iOS 9) ou
pastas (iOS 10 e mais recentes). Até o iOS 9, esses quatro arquivos eram info.plist, manifest.plist, status.plist e
manifest.mbdb, mas a partir do iOS 10, temos os seguintes arquivos padrão:

info.plist
manifest.plist
status.plist
manifest.db

Esses arquivos armazenam detalhes sobre o backup e o dispositivo do qual ele foi
derivado.
Machine Translated by Google

info.plist
O arquivo info.plist armazena detalhes sobre o dispositivo de backup e geralmente contém as
seguintes informações:

Aplicativos: Esta é a lista de aplicativos instalados no dispositivo.


Versão de compilação: este é o número da versão de compilação do iOS.

Nome do dispositivo e nome de exibição: este é o nome do dispositivo, que


normalmente inclui o nome do proprietário.
GUID: Este é o identificador exclusivo global (GUID) do dispositivo.
ICCID: Este é o Identificador de Cartão de Circuito Integrado (ICCID), que é o número de
série do SIM.
IMEI: Esta é a Identidade Internacional de Equipamento Móvel (IMEI), que é usada
para identificar exclusivamente o celular.
Aplicativos instalados: Esta é a lista de aplicativos instalados.
Data do último backup: Este é o registro de data e hora do último backup bem-sucedido.
MEID: Este é o Mobile Equipment Identifier (MEID) do dispositivo.
Número de telefone: Este é o número de telefone do dispositivo no momento do
backup.
Nome do produto: este é o nome do dispositivo (por exemplo, iPhone X).
Tipo de produto e versão do produto: Este é o modelo do dispositivo e a versão do firmware.

Número de série: Este é o número de série do dispositivo.


Identificador de destino e identificador exclusivo: este é o UDID do dispositivo. Arquivos
do iTunes: contém informações sobre fotos, pastas, notas de voz e preferências do
iTunes. Configurações do iTunes: contém informações sobre aplicativos excluídos e
biblioteca de aplicativos. Versão do iTunes: Esta é a versão do iTunes usada para criar o
backup.

Vamos agora dar uma olhada no arquivo manifest.plist .


Machine Translated by Google

manifest.plist
O arquivo manifest.plist descreve o conteúdo do backup e normalmente contém as seguintes
informações:

Bolsa de chaves de backup : A bolsa de chaves de backup contém um conjunto de chaves de classe
de proteção de dados que são diferentes das chaves na bolsa de chaves do sistema, e os dados de
backup são criptografados novamente com as novas chaves de classe. As chaves no porta-chaves
Backup facilitam o armazenamento de backups de forma segura.
Versão: Esta é a versão de backup.
Data: Este é o carimbo de data/hora de quando um backup foi criado ou atualizado
pela última vez.
ManifestKey: Esta é a chave usada para criptografar manifest.db (envolto com classe de
proteção 4).
WasPasscodeSet: identifica se uma senha foi definida no dispositivo quando ele foi sincronizado
pela última vez.
Bloqueio: contém detalhes do dispositivo, o nome do último computador de backup e outros
perfis de sincronização remota.
Aplicativos: esta é uma lista de aplicativos de terceiros instalados no dispositivo de backup,
seus números de versão e identificadores de pacote.
IsEncrypted: identifica se o backup está criptografado. Para
backups criptografados, o valor é True; caso contrário, é Falso.

Em seguida, veremos o arquivo status.plist .


Machine Translated by Google

status.plist
O arquivo status.plist armazena detalhes sobre o status do backup e geralmente
contém as seguintes informações:

IsFullBackup: identifica se o backup foi um backup completo do dispositivo.

UUID: Este é o UUID do dispositivo.


Data: Este é o carimbo de data/hora da última vez que o backup foi modificado.
BackupState: Identifica se o backup é novo ou atualizado.

SnapshotState: identifica se o processo de backup foi concluído com êxito.

Agora, veremos o arquivo manifest.db .


Machine Translated by Google

manifest.db
manifest.db é um banco de dados SQLite que contém uma lista de todos os arquivos e
pastas extraídos do iPhone por meio do mecanismo de backup. A tabela Arquivos do banco de dados
inclui as seguintes colunas:

fileID: Este é um hash Secure Hash Algorithm 1 (SHA1) do domínio, mais o símbolo - e o
caminho relativo do arquivo ou pasta. Por exemplo, ae94e0607ca39a88c18aca095cb5b4f8471291a0
é o hash SHA1 para
CameraRollDomain-Media/PhotoData/Thumbnails/V2/DCIM/102APPLE.

domínio: Este é o domínio ao qual o arquivo ou pasta pertence (todos os arquivos no iOS são
divididos em vários domínios, por exemplo, CameraRollDomain e HomeDomain). parentePath:
Este é o caminho relativo para o arquivo (incluindo o nome do arquivo) ou pasta. sinalizadores:
Estes são os sinalizadores de arquivo. arquivo: Este é um arquivo .plist incorporado . Esses
arquivos .plist incluem as seguintes informações importantes, entre outras:

LastModified: Este é o registro de data e hora da última modificação do arquivo no


formato Unix.
Nascimento: Este é o registro de data e hora de criação do arquivo no formato Unix. Os
campos são mostrados na captura de tela a seguir:
Machine Translated by Google

O conteúdo do manifest.db

Você pode exportar facilmente este binário incorporado .plist usando, por exemplo, o DB
Browser for SQLite (DB4S). Para isso, observe os seguintes passos:

1. Abra manifest.db usando o botão Open Database.


2. Vá para a guia Pesquisar dados.
3. Clique em uma célula na coluna do arquivo.
4. No painel Editar célula do banco de dados, use o botão Exportar para salvar os dados
como um arquivo .plist , conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

Exportando um arquivo .plist incorporado com DB4S

Desde o iOS 10, os arquivos não são mais nomeados com strings hexadecimais de
40 caracteres. Em vez disso, você verá uma lista de pastas nomeadas com strings
hexadecimais de 2 caracteres, que contêm os arquivos que você costumava ver nas
versões anteriores, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

arquivos de backup do iPhone

Agora que você entende a estrutura de backup, vamos aprender como


extrair dados valiosos dela.
Machine Translated by Google

Extraindo backups não criptografados


Existem muitas ferramentas gratuitas e comerciais disponíveis para analisar dados de
backups não criptografados. Essas ferramentas analisam o banco de dados manifest.db ,
restauram os nomes dos arquivos e criam a estrutura do arquivo que os usuários veem
no dispositivo iOS. Algumas ferramentas populares incluem iBackup Viewer, iExplorer
e ferramentas forenses comerciais, como Belkasoft Evidence Center, Magnet AXIOM
e UFED Physical Analyzer.
Machine Translated by Google

iBackup Viewer
O iBackup Viewer é uma ferramenta gratuita para Windows e macOS que pode
ser baixada em http://www.imactools.com/iphonebackupviewer/.

A ferramenta espera que o backup esteja localizado no local padrão, mas você
pode alterá-lo para o local de sua escolha, por exemplo, uma unidade externa.

Para extrair o backup, observe os seguintes passos:

1. Se o backup que você deseja analisar não estiver salvo no local padrão,
clique no hiperlink Preferências na tela principal e escolha o local correto,
conforme ilustrado na captura de tela a seguir:

Escolhendo o local do backup

2. Você verá os backups disponíveis no local escolhido. Clique naquele que


você deseja examinar.
Machine Translated by Google

Você verá possíveis fontes de evidências disponíveis, incluindo contatos, histórico


de chamadas, mensagens, calendário, notas, correios de voz e histórico de
navegação, conforme mostrado na captura de tela a seguir:

Fontes de evidências potenciais

3. É importante observar que você pode navegar pelo backup como um sistema de
arquivos, usando o modo Raw Data (o último ícone na captura de tela anterior),
conforme mostrado na captura de tela a seguir:

O modo de dados brutos

Com a ajuda desta ferramenta, você pode facilmente visualizar e exportar arquivos de seu
interesse. Claro, não é a única ferramenta capaz de resolver tais tarefas. Vejamos outro —
iExplorer.
Machine Translated by Google

iExplorer
Uma versão gratuita do iExplorer está disponível em https://macroplant.com/iexplorer.
Esta ferramenta suporta Windows e macOS e também é capaz de navegar pelos
backups do iTunes. Aqui está como usá-lo:

1. Inicie o iExplorer e clique em Procurar backups do iTunes.


2. Para adicionar um backup de um local personalizado, clique em Adicionar/Modificar backup
Localização.
3. Agora, clique no botão Add Backup Location e escolha o caminho, conforme
ilustrado na captura de tela a seguir:

Adicionando um caminho personalizado

4. Os backups de seu local personalizado agora devem estar disponíveis.

Além disso, há uma opção interessante - o iExplorer pode coletar bancos de dados SQLite para
você. Para fazer isso, clique no botão Raw Databases para levá-lo ao
Machine Translated by Google

seguinte tela (você aprenderá mais sobre análise forense do SQLite no próximo
capítulo):

Opção de bancos de dados brutos do iExplorer

Você também pode navegar pelo backup como uma lista de arquivos e pastas com a ajuda do
iExplorer; use o painel esquerdo para isso. Além disso, você pode usar o Backup
Machine Translated by Google

botão Explorer e, em seguida, o painel principal para navegar pelo backup.

Como você pode ver, existem ferramentas suficientes capazes de extrair dados valiosos de
um backup do iTunes, mesmo que esteja criptografado. Claro, geralmente é possível se
você souber a senha. Mas e se você não fizer isso? Você aprenderá como contorná-lo na
próxima seção.
Machine Translated by Google

Manipulando arquivos de backup criptografados

Para backups criptografados, os arquivos de backup são criptografados usando o


algoritmo Advanced Encryption Standard-256 (AES-256) no modo Cipher Block
Chaining (CBC) , com uma chave exclusiva e um vetor de inicialização nulo (IV). As
chaves de arquivo exclusivas são protegidas com um conjunto de chaves de classe da
bolsa de chaves Backup. As chaves de classe no chaveiro de backup são protegidas
com uma chave derivada da senha definida no iTunes por meio de 10.000 iterações da
função de derivação de chave baseada em senha 2 (PBKDF2). No iOS 10.2, esse
mecanismo foi atualizado, então agora existem 10.000.000 de iterações.

Muitas ferramentas gratuitas e comerciais fornecem suporte para análise de arquivo


de backup criptografado se a senha for conhecida. Infelizmente, nem sempre é
verdade, então às vezes os examinadores forenses precisam quebrar essas senhas.
A próxima seção o guiará por esse processo, com o Elcomsoft Phone Breaker.
Machine Translated by Google

Elcomsoft Phone Breaker

Elcomsoft Phone Breaker é uma ferramenta comercial acelerada por


unidade de processamento gráfico (GPU) da Elcomsoft, desenvolvida para a
plataforma Windows. A ferramenta pode descriptografar um arquivo de backup
criptografado quando a senha de backup não está disponível. A ferramenta fornece
uma opção para iniciar um ataque de força bruta de senha no backup criptografado se
a senha de backup não estiver disponível. Elcomsoft Phone Breaker tenta recuperar a
senha de texto simples que protege o backup criptografado, usando um dicionário e
ataques de força bruta. Senhas relativamente curtas e simples podem ser recuperadas
em um período de tempo razoável. No entanto, se o backup estiver protegido por uma
senha forte e complexa, quebrá-lo pode levar uma eternidade.

A ferramenta está disponível aqui (incluindo a versão de avaliação gratuita): https://www.elcomsoft.co


m/eppb.html.

Para aplicar força bruta à senha de backup, execute as seguintes etapas:

1. Inicie a ferramenta Elcomsoft Phone Breaker e a tela principal da ferramenta


aparecerá, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Tela principal do Elcomsoft Phone Breaker

2. Navegue até Assistente de Recuperação de Senha | Escolha a fonte | Backup do


dispositivo iOS. Navegue até o arquivo de backup que deseja quebrar e selecione
o arquivo Manifest.plist .
3. Configure o padrão de força bruta na seção Ataques e clique no botão Iniciar para
iniciar o ataque de força bruta, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

Processo de recuperação de senha

Se o ataque de força bruta for bem-sucedido, a ferramenta exibe a senha na tela principal.

Se você tiver um iPhone com iOS 11 ou posterior e sua senha, poderá redefinir a senha real e
fazer um backup com uma nova senha conhecida.
Aqui está como fazê-lo:

1. No iPhone, vá para Configurações | Geral | Reiniciar.


2. Escolha Redefinir todas as configurações e digite a senha do dispositivo. É
importante observar que nenhum dado será excluído.
3. Depois que as configurações forem redefinidas, você poderá criar um novo backup
com uma senha de sua escolha.

Se a senha do Screen Time estiver definida, você também precisará dela para redefinir a senha de backup.
Machine Translated by Google

Trabalhando com backups do iCloud


O iCloud é um serviço de armazenamento e computação em nuvem da Apple, lançado em
outubro de 2011. O serviço permite que os usuários mantenham dados como calendários,
contatos, lembretes, fotos, documentos, favoritos, aplicativos, notas e muito mais
sincronizados em vários dispositivos compatíveis (dispositivos iOS com iOS 5 ou posterior;
computadores com macOS X 10.7.2 ou posterior; e Microsoft Windows), usando uma conta
iCloud centralizada. O serviço também permite que os usuários façam backup sem fio e
automaticamente de seus dispositivos iOS no iCloud. O iCloud também fornece outros
serviços, como Find My iPhone (para rastrear um telefone perdido e limpá-lo remotamente) e
Find My Friends (para compartilhar localizações com amigos e notificar o usuário quando um
dispositivo chegar a um determinado local).

A inscrição no iCloud é gratuita e simples de realizar com um ID Apple.


Quando você se inscreve no iCloud, a Apple concede a você acesso a 5 GB de
armazenamento remoto gratuito. Se precisar de mais armazenamento, você pode adquirir
o plano de atualização. Para manter seus dados seguros, a Apple obriga os usuários a
escolher uma senha forte ao criar um ID Apple para usar com o iCloud. A senha deve ter
no mínimo oito caracteres, incluindo um número, uma letra maiúscula e uma letra minúscula.

Os dispositivos iOS executados no iOS 5 e posterior permitem que os usuários façam


backup das configurações e dados do dispositivo no iCloud. Os dados de backup incluem
fotos, vídeos, documentos, dados de aplicativos, configurações do dispositivo, mensagens,
contatos, calendários, e-mails e chaveiro, conforme mostrado na captura de tela a seguir.
Você pode ativar o backup do iCloud em seu dispositivo navegando para Configurações |
Senhas e Contas | iCloud | iCloud:
Machine Translated by Google

Opções de backup do iCloud no iPhone


Machine Translated by Google

O iCloud pode fazer backup de seus dados automaticamente quando seu telefone estiver
conectado, bloqueado e conectado ao Wi-Fi. Ou seja, os backups do iCloud representam
uma cópia atualizada e quase em tempo real das informações armazenadas no dispositivo,
desde que haja espaço disponível para criar um backup atual.

Você também pode iniciar um backup do iCloud a partir de um computador conectando o


dispositivo ao iTunes e escolhendo a opção iCloud. Os backups do iCloud são incrementais;
ou seja, uma vez concluído o backup inicial do iCloud, todos os backups subsequentes
copiam apenas os arquivos que foram alterados no dispositivo. O iCloud protege seus
dados criptografando-os quando são transmitidos pela Internet, armazenando-os em um
formato criptografado no servidor e usando tokens seguros para autenticação.

Os aplicativos integrados da Apple (por exemplo, Mail e Contatos) usam um token seguro
para acessar os serviços do iCloud. O uso de tokens seguros para autenticação elimina a
necessidade de armazenar a senha do iCloud em dispositivos e computadores.
Machine Translated by Google

Extraindo backups do iCloud


Os backups online armazenados no iCloud geralmente são recuperados
quando o dispositivo iOS original é danificado, atualizado ou perdido. Para extrair
um backup do iCloud, você deve saber o ID Apple e a senha do usuário. Com o ID
Apple e a senha conhecidos, você pode fazer login em https://www.icloud.com/ e
obtenha acesso a contatos, notas, e-mails, calendários, fotos, lembretes e muito mais.
Você também pode usar ferramentas forenses para extrair dados do iCloud. Por
exemplo, você pode usar a Belkasoft Acquisition Tool, uma ferramenta gratuita da
Belkasoft que pode ser baixada em: https://belkasoft.com/get.

Para extrair os dados do iCloud, execute as seguintes etapas:

1. Inicie a ferramenta de aquisição Belkasoft.


2. Escolha a opção Nuvem.
3. Escolha iCloud.
4. Digite o login e a senha do ID Apple e clique em Avançar.
5. Escolha os artefatos que deseja baixar e a pasta de destino na qual deseja
colocá-los, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google
Machine Translated by Google

Tipos de dados disponíveis para download

6. Digite o código de verificação.


7. Aguarde a conclusão do processo. Você encontrará os arquivos na pasta que
escolheu.

Se você preferir backups completos, a melhor escolha é o Elcomsoft Phone Breaker.

Para baixar o backup do iCloud, siga estas etapas:

1. Inicie o Elcomsoft Phone Breaker.


2. Escolha a opção Backups.
3. Insira o ID Apple e a senha ou use um token extraído anteriormente.
4. Se o ID Apple estiver protegido com autenticação de dois fatores (2FA), insira o
código no campo correspondente.
5. Escolha o backup que deseja baixar, conforme ilustrado na
captura de tela a seguir:
Machine Translated by Google

Escolhendo o backup para download

Após a conclusão do download, você pode analisar o backup com a ferramenta de


sua escolha — por exemplo, uma das ferramentas discutidas ao longo deste capítulo.
Machine Translated by Google

Resumo
Os backups de dispositivos iOS contêm informações essenciais que podem ser sua
única fonte de evidência. As informações armazenadas nos backups do iOS incluem
fotos, vídeos, contatos, e-mails, registros de chamadas, contas e senhas de usuários,
aplicativos e configurações do dispositivo. Este capítulo explicou como criar arquivos
de backup e recuperar dados de backups do iTunes e do iCloud, incluindo arquivos de
backup criptografados, sempre que possível.

O capítulo seguinte, Capítulo 5, Análise e recuperação de dados do iOS, vai mais


longe na investigação forense, mostrando como analisar os dados recuperados dos
arquivos de backup.
Machine Translated by Google

Análise e recuperação de dados do iOS


Um aspecto fundamental da análise forense de dispositivos iOS é examinar e analisar os dados adquiridos para

interpretar as evidências. Nos capítulos anteriores, você aprendeu várias técnicas para adquirir dados de

dispositivos iOS. Qualquer tipo de imagem adquirida contém centenas de arquivos de dados que geralmente são

analisados pelas ferramentas descritas nos capítulos anteriores. Mesmo quando os dados são analisados pela

ferramenta forense, uma análise manual pode ser necessária para descobrir artefatos adicionais ou simplesmente

validar suas descobertas.

Este capítulo ajudará você a entender como os dados são armazenados em dispositivos iOS e o guiará pelos

principais artefatos que devem ser examinados em cada investigação para recuperar o máximo de dados possível.

Neste capítulo, abordaremos os seguintes tópicos:

Interpretando carimbos de data/hora do iOS

Trabalhando com bancos de dados SQLite

Artefatos principais – arquivos importantes do banco de dados do iOS

Listas de propriedades

Outros arquivos importantes

Recuperando registros SQLite excluídos


Machine Translated by Google

Interpretando carimbos de data/hora do iOS

Antes de examinar os dados, é importante entender os diferentes formatos de carimbo de data/


hora usados em dispositivos iOS. Os carimbos de data/hora encontrados em dispositivos iOS são
apresentados no carimbo de data/ hora Unix ou no formato de hora absoluta do Mac . Você, como
examinador, deve garantir que as ferramentas convertam corretamente os carimbos de data/hora.
O acesso aos arquivos SQLite brutos permitirá que você verifique esses carimbos de data/
hora manualmente. Você aprenderá como decodificar cada formato de timestamp nas próximas
seções.
Machine Translated by Google

carimbos de data/hora do Unix

Um registro de data e hora do Unix é o número de segundos decorridos desde o horário da


época do Unix, que começou à meia-noite de 1º de janeiro de 1970. Um registro de data e
hora do Unix pode ser convertido facilmente, usando o comando date em uma estação de
trabalho Mac ou usando um conversor online de época do Unix, como https://www.epoc

hconverter.com/.

O comando date é mostrado no seguinte trecho de código:

$ data -r 1557479897
Sexta, 10 de maio 12:18:17 MSK 2019

Você também pode encontrar timestamps do Unix em um formato


de milissegundo ou nanossegundo. Isso não é um grande problema; existem vários
conversores online, como http://currentmillis.com/, conforme destacado na captura
de tela a seguir:

Um timestamp Unix em milissegundos convertido com http://currentmillis.com/


Machine Translated by Google

A época Unix é o formato mais comum para dispositivos iOS, mas também
existem outros, incluindo horário absoluto do Mac e horário do WebKit/Chrome.
Machine Translated by Google

Tempo absoluto do Mac

Os dispositivos iOS adotaram o uso do tempo absoluto do Mac com o iOS 5. O tempo
absoluto do Mac é o número de segundos decorridos desde a hora da época do Mac,
que começou à meia-noite de 1º de janeiro de 2001. A diferença entre a hora da época
do Unix e a hora do Mac é exatamente 978.307.200 segundos. Isso significa que você
pode converter facilmente a hora do Mac para a época do Unix e usar os mesmos
métodos para finalmente convertê-la em um registro de data e hora legível por humanos.
Claro, existem alguns conversores online, como https://www.epochconverter.com/
coredata, como mostrado na captura de tela a seguir:

Um carimbo de data/hora do Mac convertido com https://www.epochconverter.com/coredata

Claro, também existem ferramentas offline para conversão de carimbo de data/


hora. Vamos apresentá-lo a um deles na próxima seção.
Machine Translated by Google

Hora do WebKit/Chrome

Ao analisar os dados do aplicativo iOS, especialmente para navegadores da web como


Google Chrome, Safari e Opera, você pode se deparar com outro formato de carimbo de
data/ hora — hora do WebKit/ Chrome. Este é o número de microssegundos desde a meia-
noite de 1º de janeiro de 1601. Também existe um conversor online para isso: https://www.epoc
hconverter.com/webkit.

Se você não gosta ou não quer usar conversores online por algum motivo, também pode usar uma
ferramenta gratuita: o DCode da Digital Detective. Essa ferramenta pode ser usada para converter
carimbos de data/ hora em vários formatos diferentes, incluindo hora Unix (segundos e milissegundos),
hora absoluta do Mac e hora do WebKit/ Chrome, conforme mostrado na captura de tela a seguir:

Um timestamp do WebKit/Chrome convertido com DCode

Muitos conjuntos forenses comerciais para dispositivos móveis converterão facilmente carimbos de
data/hora extraídos para você automaticamente, mas, em alguns casos, é extremamente difícil
Machine Translated by Google

importante para validá-lo, então é uma obrigação para você entender claramente os formatos
de carimbo de data/hora.
Machine Translated by Google

Trabalhando com bancos de dados SQLite

O SQLite é uma biblioteca em processo de software livre que implementa um


mecanismo de banco de dados SQL transacional, de configuração zero e independente. Este
é um banco de dados completo com várias tabelas, gatilhos e exibições contidos em um único
arquivo de plataforma cruzada. Como o SQLite é portátil, confiável e pequeno, é um formato de
banco de dados popular que aparece em muitas plataformas móveis.

Os dispositivos Apple iOS, assim como outros smartphones e tablets, fazem uso intenso de
bancos de dados SQLite para armazenamento de dados. Muitos dos aplicativos integrados —
como Telefone, Mensagens, Correio, Calendário e Notas — armazenam dados em bancos de
dados SQLite. Além disso, aplicativos de terceiros instalados no dispositivo também utilizam
bancos de dados SQLite para armazenamento de dados.

Os bancos de dados SQLite são criados com ou sem uma extensão de arquivo. Eles
normalmente têm as extensões de arquivo .sqlitedb ou .db , mas alguns bancos de dados
também recebem outras extensões.

Os dados nos arquivos SQLite são divididos em tabelas que contêm os dados reais. Para
acessar os dados armazenados nos arquivos, você precisa de uma ferramenta capaz de lê-los.
A maioria das ferramentas forenses móveis comerciais, como Belkasoft Evidence
Center, Magnet AXIOM e Cellebrite Universal Forensic Extraction Device (UFED) Physical
Analyzer, fornecem suporte para o exame de bancos de dados SQLite. Se você não possui uma
dessas ferramentas, algumas boas ferramentas gratuitas são as seguintes:

Navegador de banco de dados para SQLite (DB4S): pode ser baixado de htt
p://sqlitebrowser.org/.
Cliente de linha de comando SQLite: pode ser baixado em http://ww
w.sqlite.org/.

SQLiteStudio (https://sqlitestudio.pl): Este é um gerenciador SQLite multiplataforma gratuito com


suporte para Windows 9x/2k/XP/2003/Vista/7/8/10, macOS e Linux.
Machine Translated by Google

SQLiteSpy: Esta é uma ferramenta gratuita de interface gráfica do usuário


(GUI) para Windows. Você pode baixá-lo em http://www.yunqa.de/delphi/doku.php/p
roducts/sqlitespy/index.

O macOS inclui o utilitário de linha de comando SQLite (sqlite3) por padrão. Este
utilitário de linha de comando pode ser usado para acessar arquivos individuais e
executar consultas SQL em um banco de dados. Nas seções a seguir, usaremos o
utilitário de linha de comando sqlite3 e outras ferramentas e navegadores SQLite para
recuperar dados de vários bancos de dados SQLite. Antes de recuperar os dados, os
comandos básicos que você precisará aprender são explicados nas seções a seguir.
Machine Translated by Google

Conectando a um banco de dados


O exame manual dos arquivos de banco de dados SQLite do iOS é possível com o uso de
ferramentas gratuitas. Veja a seguir um exemplo de como examinar um banco de dados usando
comandos nativos do Mac no Terminal:

1. Certifique-se de que a imagem do seu dispositivo esteja montada como somente leitura
para evitar que alterações sejam feitas na evidência original.
2. Para se conectar a um banco de dados SQLite a partir da linha de comando, execute o
sqlite3 no Terminal inserindo seu arquivo de banco de dados. Isso fornecerá um prompt
SQL onde você pode emitir consultas SQL, conforme mostrado no seguinte bloco de
código:

$ sqlite3 sms.db
SQLite versão 3.28.0 2019-04-15 14:49:49 Digite
".help" para dicas de uso.

3. Para desconectar, use o comando .exit . Isso fecha o cliente SQLite e


retorna ao Terminal.

A próxima seção o guiará pela análise de bancos de dados, usando os comandos integrados
do sqlite3 .
Machine Translated by Google

Explorando comandos
especiais do SQLite

Depois de se conectar a um banco de dados, você pode usar vários comandos SQLite
integrados, conhecidos como comandos de ponto , e que podem ser usados para obter
informações dos arquivos do banco de dados.

Você pode obter a lista de comandos especiais emitindo o comando .help no prompt do
SQLite. Estes são comandos específicos do SQLite e não requerem um ponto e vírgula no
final. Os comandos de ponto mais comumente usados incluem o seguinte:

.tables: lista todas as tabelas dentro de um banco de dados. A captura de tela


a seguir exibe a lista de tabelas encontradas no banco de dados sms.db :

.schema table-name: exibe a instrução SQL CREATE que foi usada para construir a
tabela. A captura de tela a seguir exibe o esquema para a tabela de manipulação do
banco de dados sms.db :

.dump nome-da-tabela: despeja todo o conteúdo de uma tabela em instruções


SQL. O exemplo na captura de tela a seguir mostra o despejo da tabela handle , que
se encontra dentro do banco de dados sms.db :
Machine Translated by Google

.output file-name: Isso redireciona a saída para um arquivo no disco em vez


de mostrá-lo na tela. .headers on: Isso exibe o título da coluna sempre que
você emite um SELECT
declaração.

.help: Exibe a lista de comandos de ponto SQLite disponíveis. .exit:


Isso desconecta do banco de dados e sai do shell de comando
SQLite. .mode: Isso define o modo de saída; pode ser .csv, HTML,
guias e outros
sobre.

Certifique-se de que não haja espaço entre o prompt do SQLite e o comando dot;
caso contrário, todo o comando será ignorado.
Machine Translated by Google

Explorando consultas SQL padrão


Além dos comandos de ponto SQLite, consultas SQL padrão como SELECT,
INSERT, ALTER e DELETE podem ser emitidas para bancos de dados SQLite na
linha de comando. Ao contrário dos comandos de ponto do SQLite, as consultas
SQL padrão esperam um ponto e vírgula no final do comando.

A maioria dos bancos de dados que você examinará conterá apenas um número
razoável de registros, portanto, você pode emitir uma
imprime
instrução
todosSELECT
os dados
* ,contidos
que
na tabela. Isso será abordado em detalhes ao longo deste capítulo.
Machine Translated by Google

Acessando um banco de dados


usando ferramentas comerciais

Embora um exame manual dos arquivos de banco de dados SQLite do iOS seja possível
com o uso de ferramentas gratuitas, a maioria dos examinadores prefere o suporte
comercial antes de pesquisar manualmente os arquivos para exame. A seguir está um
exemplo de como examinar um banco de dados usando SQLite, que está incluído no
Belkasoft Evidence Center.

Para abrir e analisar um banco de dados, basta seguir alguns passos simples, listados
aqui:

1. Inicie o Belkasoft Evidence Center e navegue até Exibir | SQLite Viewer e


escolha o arquivo de banco de dados que deseja examinar.
2. Uma vez escolhido o banco de dados, ele é imediatamente aberto com o
SQLite Viewer e está pronto para ser examinado, conforme ilustrado na
captura de tela a seguir:
Machine Translated by Google

banco de dados sms.db aberto com o SQLite Viewer do Belkasoft Evidence Center

Por que um examinador precisa usar esses visualizadores comerciais em vez de


gratuitos e de código aberto? Por exemplo, este visualizador específico oferece
suporte a bancos de dados SQLite danificados ou parcialmente substituídos. Além
disso, a ferramenta suporta a extração de dados de freelists, Write-Ahead Log (WAL)
e espaço não alocado, conforme ilustrado na captura de tela a seguir:
Machine Translated by Google

Espaço não alocado do banco de dados como visto no SQLite Viewer do Belkasoft Evidence Center

Claro, existem algumas ferramentas gratuitas e de código aberto disponíveis para


recuperação de dados SQLite. Você aprenderá mais sobre essas ferramentas nas seções a seguir.
Machine Translated by Google

Artefatos principais – arquivos importantes


do banco de dados do iOS

Os sistemas de arquivos e backups extraídos de acordo com as instruções no


Capítulo 3, Aquisição de dados de dispositivos iOS e Capítulo 4, Aquisição de dados
de backups iOS, devem conter os seguintes bancos de dados SQLite que podem
ser importantes para sua investigação. Se esses arquivos não forem recuperados,
verifique se você adquiriu o dispositivo iOS corretamente. Os arquivos mostrados
nas seções a seguir são extraídos por aquisição lógica de um dispositivo executando
iOS. Como a Apple adiciona novos recursos aos aplicativos integrados a cada
versão do iOS, o formato dos arquivos pode variar para diferentes versões do iOS.
Machine Translated by Google

Contatos do catálogo de endereços

O catálogo de endereços contém muitas informações sobre os contatos pessoais do


proprietário. Com exceção de aplicativos de terceiros, o catálogo de endereços contém
entradas de contato para todos os contatos armazenados no dispositivo. O banco de dados
do catálogo de endereços pode ser encontrado em /HomeDomain/Library/AddressBook.sqlitedb.
O arquivo AddressBook.sqlitedb contém várias tabelas, das quais três são de particular
interesse:

ABPerson: contém o nome, organização, notas e mais para cada


contato.
ABMultiValue: contém números de telefone, endereços de e-mail, localizadores
uniformes de recursos (URLs) do site e muito mais para as entradas na tabela
ABPerson . A tabela ABMultiValue usa um arquivo record_id para associar as informações
de contato a um ROWID da tabela ABPerson .
ABMultiValueLabel: Esta tabela contém etiquetas para identificar o tipo de
informação armazenada na tabela ABMultiValue .

Alguns dos dados armazenados no arquivo AddressBook.sqlitedb podem ser de aplicativos


de terceiros. Você deve examinar manualmente as pastas de arquivos do aplicativo para
garantir que todos os contatos sejam contabilizados e examinados.

Embora todos os comandos a seguir possam ser executados nativamente em um Mac,


usaremos o DB4S para examinar os bancos de dados mais comuns encontrados em
dispositivos iOS. Esta é uma ferramenta gratuita que simplifica o processo e fornece uma
visão clara dos dados para você. Depois que o banco de dados é carregado, você pode
elaborar consultas para examinar os dados mais relevantes para você e exportar o catálogo de
endereços para um arquivo .csv chamado AddressBook.csv, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

O arquivo AddressBook.sqlitedb no DB4S

Na captura de tela anterior, você pode ver a consulta sugerida para analisar
os dados das tabelas ABPerson e ABMultiValue .
Machine Translated by Google

Imagens do catálogo de endereços

Além dos dados da agenda, cada contato pode conter uma imagem associada a ele.
Esta imagem é exibida na tela sempre que o usuário recebe uma chamada de um
determinado contato. Essas imagens podem ser criadas por aplicativos de terceiros que
tenham acesso aos contatos do dispositivo. Muitas vezes, o contato está vinculado a
uma foto de perfil de aplicativo de terceiros. O banco de dados de imagens do catálogo
de endereços pode ser encontrado em
/HomeDomain/Library/AddressBook/AddressBookImages.sqlitedb.

As imagens do catálogo de endereços podem ser analisadas manualmente, mas o


uso de um software comercial torna esse processo muito mais prático. A maioria das
ferramentas gratuitas e comerciais fornecerá acesso às imagens do catálogo de
endereços. No entanto, algumas ferramentas não farão o link entre o gráfico e o contato,
o que pode exigir alguma reconstrução manual. Às vezes, as soluções gratuitas
funcionam melhor ao analisar dados simples de dispositivos iOS. Em seguida,
examinaremos as imagens do catálogo de endereços no iExplorer, que foi apresentado
no Capítulo 4, Aquisição de dados de backups do iOS.

No exemplo da captura de tela a seguir, o iExplorer combinou dados de contato com a


imagem automaticamente:
Machine Translated by Google

Examinando as imagens do catálogo de endereços no iExplorer

As mesmas miniaturas podem ser encontradas na tabela ABThumbnailImage, na


coluna de dados . Você pode corresponder a foto ao contato manualmente,
usando a coluna record_id da tabela ABThumbnailImage de AddressBookImages.sqlitedb
e a coluna ROWID da tabela ABPerson de AddressBook.sqlitedb.
Machine Translated by Google

Histórico de chamadas

Chamadas telefônicas ou FaceTime feitas, perdidas e recebidas pelo usuário são registradas no histórico
de chamadas junto com outros metadados, como duração da chamada, data e hora. O banco de dados
do histórico de chamadas pode ser encontrado em /HomeDomain/Library/CallHistoryDB/
CallHistory.storedata. O arquivo CallHistory.storedata foi introduzido com o iOS 8 e está atualmente em
uso no momento da escrita (iOS 13.2).

A tabela ZCALLRECORD no banco de dados CallHistory.storedata contém o histórico de


chamadas. É importante observar que apenas um número limitado de chamadas pode ser
armazenado no banco de dados ativo. Só porque o banco de dados remove o registro mais antigo

quando o espaço é necessário, não significa que esses dados sejam excluídos. Está simplesmente nas
páginas gratuitas do arquivo de banco de dados SQLite e pode ser recuperado usando ferramentas
forenses ou manualmente. As colunas mais importantes na tabela ZCALLRECORD são as seguintes:

ZDATE: Esta coluna contém os carimbos de data/hora das chamadas no formato de hora
absoluta do Mac.
ZDURATION: Esta coluna contém a duração das chamadas.
ZLOCATION: Esta coluna contém as localizações dos números de telefone.
ZADDRESS: Esta coluna contém os números de telefone.
ZSERVICE_PROVIDER: Esta coluna contém os provedores de serviços, por exemplo,
Telefone, WhatsApp, Telegrama e assim por diante.

Você pode executar as seguintes consultas no DB4S para analisar o histórico de chamadas.
Depois, você pode exportá-lo para um arquivo .csv , conforme mostrado na captura de tela a
seguir:
Machine Translated by Google

Examinando CallHistory.storedata no DB4S

Desta vez, a consulta é bastante simples, pois todas as colunas de interesse estão na mesma tabela.
Observe que usamos datetime para converter registros de data e hora absolutos do Mac em datas
legíveis por humanos.
Machine Translated by Google

Mensagens do Serviço de Mensagens


Curtas (SMS)

O banco de dados SMS contém mensagens de texto e multimídia que foram enviadas e
recebidas pelo dispositivo, juntamente com o número de telefone da parte remota, data e hora
e outras informações da operadora. A partir do iOS 5, os dados do iMessage também são
armazenados no banco de dados do SMS. O iMessage permite que os usuários enviem
mensagens SMS e Multimedia Messaging Service (MMS) por meio de uma rede celular ou
Wi-Fi para outros usuários de iOS ou macOS, fornecendo assim uma alternativa ao SMS. O
banco de dados SMS pode ser encontrado em
/HomeDomain/Library/SMS/sms.db.

Você pode executar as seguintes consultas no DB4S para analisar as mensagens SMS.
Depois, você pode exportá-lo para um arquivo .csv , conforme mostrado na captura
de tela a seguir:
Machine Translated by Google

Examinando sms.db no DB4S

Há outro subdiretório interessante que pode ser encontrado em /


HomeDomain/Library/SMS/—Drafts. Dentro, há mais subpastas, cada uma contendo um
arquivo message.plist. Cada arquivo é uma lista de propriedades com mensagens de
rascunho que o usuário começou a digitar, mas não enviou. Você aprenderá mais sobre
listas de propriedades nas próximas seções.
Machine Translated by Google

Eventos do calendário

Os eventos do calendário que foram criados manualmente pelo usuário ou sincronizados


usando um aplicativo de e-mail ou outros aplicativos de terceiros são armazenados no banco de
dados do Calendário . O banco de dados do Calendário pode ser encontrado em

/HomeDomain/Library/Calendar/Calendar.sqlitedb.

A tabela CalendarItem no arquivo Calendar.sqlitedb contém o resumo dos eventos do calendário,


descrição, data de início, data de término e muito mais. Você pode executar as seguintes consultas
no DB4S para analisar o calendário, conforme ilustrado na captura de tela a seguir:

Examinando calendar.sqlitedb no DB4S

Como você pode ver, a tabela CalendarItem armazena datas no formato de hora absoluta do
Mac, então adicionamos 978307200 para revelar os timestamps reais, com a ajuda da função
datetime .
Machine Translated by Google

Notas
O banco de dados do Notes contém as notas criadas pelo usuário usando o aplicativo Notes
interno do dispositivo . O Notes é o aplicativo mais simples, geralmente contendo as informações
mais sensíveis e confidenciais. O banco de dados do Notes pode ser encontrado em /
HomeDomain/Library/Notes/notes.sqlite.

As tabelas ZNOTE e ZNOTEBODY no arquivo notes.sqlite contêm o título de cada nota, conteúdo,
data de criação, data de modificação e muito mais. Você pode executar as seguintes consultas
para analisar o banco de dados do Notes :

Examinando notas no DB4S

Essa consulta mescla dados de duas tabelas, então usamos ZOWNER de ZNOTEBODY, Z_PK de
ZNOTE e uma cláusula WHERE para fazer isso.
Machine Translated by Google

Favoritos e histórico do Safari


O navegador Safari usado em um dispositivo iOS permite que os usuários marquem seus
sites favoritos. O banco de dados de favoritos pode ser encontrado em /HomeDomain/
Library/Safari/Bookmarks.db. Os dados do marcador podem ser extraídos com uma consulta
muito simples, conforme ilustrado na captura de tela a seguir:

Examinando marcadores no DB4S

O histórico de navegação pode ser encontrado em History.db, em /HomeDomain/Library/


Safari/. As informações mais importantes sobre os sites visitados podem ser extraídas das
tabelas history_items e history_visits , conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Examinando o histórico no DB4S

Além do Safari, outros navegadores podem ser usados para armazenar dados em um
dispositivo iOS. Por esse motivo, recomendamos o uso de uma ferramenta criada para
analisar o histórico da Internet, para garantir que os dados não sejam esquecidos. Boas
ferramentas forenses para resolver essa tarefa são AXIOM da Magnet Forensics, Physical
Analyzer da Cellebrite e algumas outras.
Machine Translated by Google

correio de voz

O banco de dados do correio de voz contém metadados sobre cada correio de voz
armazenado no dispositivo, que inclui o número de telefone do remetente, número de retorno
de chamada, carimbo de data/hora e duração da mensagem, entre outros. As gravações do
correio de voz são armazenadas como arquivos de áudio Adaptive Multi-Rate (AMR) que
podem ser reproduzidos por qualquer media player que suporte o codec AMR (por exemplo,
QuickTime Player). O banco de dados do correio de voz pode ser encontrado em /HomeDomain/
Library/Voicemail/voicemail.db.
Machine Translated by Google

gravações
O banco de dados de gravações contém metadados sobre cada gravação armazenada no
dispositivo, que inclui o carimbo de data/hora, sua duração, sua localização no dispositivo e
muito mais. O banco de dados pode ser encontrado em /MediaDomain/Media/Recordings.
Os metadados podem ser extraídos com a consulta mostrada na captura de tela a seguir:

Examinando gravações no DB4S

Como você pode ver na captura de tela anterior, os arquivos reais com gravações são
armazenados no mesmo diretório.
Machine Translated by Google

Interação do dispositivo

Existe um banco de dados SQLite que registra como o usuário interage com
diferentes aplicativos. Esse banco de dados é chamado de interaçãoC.db e está
localizado em /HomeDomain/Library/CoreDuet/People. A tabela ZINTERACTIONS
contém informações sobre se o usuário lê uma mensagem, envia uma mensagem,
realiza uma chamada e assim por diante. Você pode extrair essas informações da
tabela com a consulta mostrada na captura de tela a seguir:

Examinando interações no DB4S

Além disso, verifique se você examinou a tabela ZCONTACTS — ela contém


informações sobre os contatos que estiveram envolvidos nas interações do usuário com
o dispositivo, se aplicável.
Machine Translated by Google

Números de telefone

Você pode obter informações sobre todos os números de telefone utilizados pelo usuário,
mesmo que tenham trocado de telefone e restaurado a partir de um backup, analisando
o arquivo CellularUsage.db localizado em /WirelessDomain/Library/Databases. A consulta
para extrair esses dados é mostrada na captura de tela a seguir:

Extraindo números de telefone

Como você pode ver, não há apenas números de telefone disponíveis, mas também o
Identificador de Cartão de Circuito Integrado (ICCID) do cartão do Módulo de
Identidade do Assinante (SIM ).
Machine Translated by Google

Listas de propriedades

Uma lista de propriedades, comumente chamada de plist, é um formato de dados estruturados


usado para armazenar, organizar e acessar vários tipos de dados em um dispositivo iOS, bem como
em um dispositivo macOS. plist são formatados em binário e podem ser visualizados usando um
editor de lista de propriedade, que é capaz de ler ou converter o formato binário em um formato
ASCII ( American Standard Code for Information Interchange ) .

Os arquivos Plist podem ou não ter uma extensão de arquivo .plist . Para acessar os dados
armazenados nesses arquivos, você precisa de uma ferramenta que possa lê-los. Algumas das
boas ferramentas gratuitas incluem o seguinte:

plist Editor Pro, que pode ser baixado em http://www.icopybot.com/p


list-editor.htm.
O utilitário de linha de comando plutil no macOS.

Você pode visualizar arquivos plist usando o Xcode. O macOS inclui o utilitário de linha de
comando plutil por padrão. Este utilitário de linha de comando pode converter facilmente os
arquivos formatados em binário em arquivos legíveis por humanos. Além disso, a maioria das
ferramentas forenses comerciais inclui grande suporte para analisar arquivos plist.

A captura de tela a seguir exibe o arquivo com.apple.mobile.ldbackup.plist :


Machine Translated by Google

O com.apple.mobile.ldbackup.plist no plist Editor Pro

Como você pode ver, este plist revela as últimas datas de backup local e na nuvem
(no horário absoluto do Mac, é claro), o fuso horário em que foi criado, bem como o
fato de que o backup é criptografado.
Machine Translated by Google

Arquivos plist importantes


As imagens de disco brutas ou o backup extraído no Capítulo 3, Aquisição de dados de dispositivos iOS e Capítulo 4,
Aquisição de dados de backups iOS, devem conter os seguintes arquivos plist que são importantes para uma investigação.
Os arquivos exibidos são extraídos de um backup do dispositivo iOS 13.2. Os locais dos arquivos podem variar para sua
versão do iOS.

A seguir estão os arquivos plist que contêm dados que podem ser relevantes para sua investigação:

arquivo plist Descrição

Contém o número

de telefone em
/HomeDomain/Library/Preferences/com.apple.commcenter.shared.plist

usar

Contém
informações
sobre o
endereço de e-
mail usado para o
Apple ID e os
números de
telefone das
/HomeDomain/Library/Preferences/com.apple.identityservices.idstatuscache.plist
pessoas com quem
o usuário interagiu
via

FaceTime ou

iMessage usando
este ID

/HomeDomain/Library/Preferences/com.apple.mobile.ldbackup.plist Contém os

carimbos de data/
hora dos últimos
backups do
iTunes e do

iCloud, o
Machine Translated by Google

último fuso
horário de
backup do iTunes e se
era
criptografado ou
não

Contém a lista
de aplicativos
não utilizados
que foram
/HomeDomain/Library/Preferences/com.apple.MobileBackup.DemotedApps.plist
descarregados
automaticamente
pelo sistema
operacional

Contém a lista
de favoritos do
usuário

/HomeDomain/Library/Preferences/com.apple.mobilephone.speeddial.plist contatos,
incluindo
seus nomes e
números de
telefone

Contém
informações

/HomeDomain/Library/Preferences/com.apple.preferences.datetime.plist sobre o fuso


horário definido
pelo usuário

Contém a lista
de aplicativos
que usam
/RootDomain/Library/Caches/locationd/clients.plist
localização

Serviços

/RootDomain/Library/Preferences/com.apple.MobileBackup.plist Contém
informações
sobre a última
restauração do
backup, incluindo
o
Machine Translated by Google

restaurar início
data, duração
da

transferência
de arquivo,
número de

arquivos
transferidos, dispositivo de origem

Exclusivo
Dispositivo
identificador
(UDID) e
breve

Contém o nome
do dispositivo
/SystemPreferencesDomain/SystemConfiguration/com.apple.mobilegestalt.plist
atribuído pelo
usuário

Contém
informações
sobre pontos
/SystemPreferencesDomain/SystemConfiguration/com.apple.wifi.plist de acesso sem
fio usados pelo
proprietário do
dispositivo

Contém
informações
sobre o número
de telefone do
dispositivo,
operadora de
/WirelessDomain/Library/Preferences/com.apple.commcenter.plist rede,
ICCIDs e
identidades de
assinantes
móveis
internacionais
(IMSIs)

É claro que os arquivos plist não contêm tanta informação quanto os bancos de dados SQLite, mas ainda podem
ser úteis durante seus exames forenses. Em seguida, veremos alguns outros arquivos que
Machine Translated by Google

também pode ser útil.


Machine Translated by Google

Outros arquivos importantes

Além dos arquivos SQLite e plist , vários outros locais podem conter
informações que podem ser valiosas para uma investigação.

As outras fontes incluem o seguinte:

dicionário local
Fotos
Miniaturas
Papel de parede

Aplicativos baixados de terceiros

Vejamos cada um deles.


Machine Translated by Google

dicionário local
A lista de palavras adicionadas pelo usuário do dispositivo ao dicionário é armazenada em um
arquivo de texto simples LocalDictionary , localizado em /KeyboardDomain/Library/Keyboard/.
Como o arquivo é texto simples, você pode usar seu editor de texto favorito.
Machine Translated by Google

Fotos
As fotos são armazenadas em um diretório localizado em /CameraRollDomain/Media/
DCIM, que contém as fotos tiradas com a câmera integrada do dispositivo, capturas
de tela, selfies, fluxo de fotos, fotos excluídas recentemente e miniaturas que as
acompanham. Alguns aplicativos de terceiros também armazenam fotos tiradas neste
diretório. Cada foto armazenada na pasta DCIM contém dados EXIF ( Exchangeable
Image File Format ). Os dados EXIF armazenados na foto podem ser extraídos
usando o ExifTool, que pode ser baixado em https://sno.phy.queens u.ca/~phil/exiftool/.
Os dados EXIF podem conter informações geográficas quando uma foto é marcada
com a geolocalização do usuário se o usuário tiver ativado as permissões de localização
no dispositivo iOS.
Machine Translated by Google

Miniaturas
Outra fonte de artefatos importantes relacionados a fotos são os arquivos ithmb . Você
pode encontrar esses arquivos em /CameraRollDomain/Media/PhotoData/Thumbnails.
Esses arquivos contêm miniaturas não apenas para fotos reais no dispositivo, mas
também para fotos excluídas. E, claro, existe uma ferramenta para analisar esses
arquivos, o iThmb Converter, que pode ser baixado em http://www.ithmbconverter.com/
en/downlo ad/ e é mostrado na captura de tela a seguir:

Examinando 3304.ithmb com iThmb Converter

Como esses arquivos podem conter miniaturas de fotos excluídas, eles não devem
ser ignorados pelos examinadores forenses. Além do mais, alguns deles contêm
miniaturas bastante grandes, então ficará claro o que foi retratado.
Machine Translated by Google

Papel de parede

Os papéis de parede de fundo atuais definidos para o dispositivo iOS podem ser recuperados
dos arquivos LockBackgroundThumbnail.jpg e LockBackgroundThumbnaildark.jpg encontrados
em /HomeDomain/Library/SpringBoard.

A imagem do papel de parede pode conter informações de identificação sobre o usuário que
podem ajudar no caso de uma pessoa desaparecida ou que podem ser encontradas em um
dispositivo iOS recuperado de uma investigação de roubo.
Machine Translated by Google

Aplicativos baixados
de terceiros
Aplicativos de terceiros baixados e instalados da App Store, incluindo aplicativos
como Facebook, WhatsApp, Viber, Threema, Tango, Skype e Gmail, contêm uma
grande quantidade de informações úteis para uma investigação. Alguns aplicativos de
terceiros usam codificação Base64, que precisa ser convertida para fins de visualização
e criptografia. Aplicativos que criptografam o arquivo de banco de dados podem impedir
que você acesse os dados que residem nas tabelas. A criptografia varia entre esses
aplicativos, com base no aplicativo e nas versões do iOS.

Um subdiretório com um identificador exclusivo universal (UUID) é criado para cada


aplicativo instalado no dispositivo no diretório /private/var/mobile/Containers/Data/
Application. A maioria dos arquivos armazenados no diretório do aplicativo está no formato
SQLite e plist . Cada arquivo deve ser examinado quanto à relevância. Recomendamos o
uso do Belkasoft Evidence Center, Cellebrite UFED Physical Analyzer, Elcomsoft Phone
Viewer e Magnet AXIOM quando possível para extrair esses artefatos rapidamente, antes
de voltar e executar consultas manualmente e analisar os dados.

Além disso, as informações sobre os aplicativos instalados podem ser obtidas


no banco de dados applicationState.db, localizado em /HomeDomain/Library/FrontBoard.
Este é outro banco de dados SQLite e pode ser analisado com um visualizador
apropriado à escolha do examinador.
Machine Translated by Google

Recuperando registros SQLite excluídos

Os bancos de dados SQLite armazenam os registros excluídos no próprio banco de dados,


portanto, é possível recuperar dados excluídos, como contatos, mensagens SMS, calendários,
notas, e-mail, correio de voz e muito mais, analisando o banco de dados SQLite
correspondente. Se um banco de dados SQLite for aspirado ou desfragmentado, a
probabilidade de recuperar os dados excluídos é mínima. A quantidade de limpeza exigida
por esses bancos de dados depende muito da versão do iOS, do dispositivo e das
configurações do usuário no dispositivo.

Um arquivo de banco de dados SQLite compreende uma ou mais páginas de tamanho fixo, que são
usadas apenas uma vez. O SQLite usa um layout de árvore B de páginas para armazenar índices e
conteúdo da tabela. Informações detalhadas sobre o layout da árvore B podem ser encontradas em http

s://github.com/NotionalLabs/SQLiteZer/blob/master/_resources/Sqlite_carving_extractA

ndroidData.pdf.

As ferramentas forenses comerciais fornecem suporte para recuperar dados excluídos


de arquivos de banco de dados SQLite, mas nem sempre recuperam todos os dados, nem
suportam a extração de dados de todos os bancos de dados em um dispositivo iOS.
Recomenda-se que cada banco de dados contendo artefatos-chave seja examinado quanto
a dados excluídos. Os principais artefatos ou bancos de dados já discutidos neste livro
devem ser examinados usando analisadores gratuitos, visualizadores hexadecimais ou até
mesmo sua ferramenta forense para determinar se o usuário excluiu artefatos relevantes
para a investigação.

Para esculpir um banco de dados SQLite, você pode examinar os dados em hexadecimal
bruto ou usar sqliteparse.py, um script Python gratuito desenvolvido por Mari DeGrazia. O
script Python pode ser baixado em https://github.com/mdegrazia/SQlite-Deleted-Recor
ds-Parser.

O exemplo a seguir recupera os registros excluídos do arquivo notes.sqlitedb e despeja a


saída no arquivo output.txt . Este script deve funcionar em todos os arquivos de banco de
dados recuperados de dispositivos iOS. Para validar suas descobertas
Machine Translated by Google

Antes de executar o script, basta examinar o banco de dados em um visualizador


hexadecimal para garantir que nada seja esquecido. O código pode ser visto aqui:

$python sqliteparse.py -f notes.sqlitedb -r -o output.txt

Além disso, executar um dump de strings do arquivo de banco de dados também pode revelar
registros excluídos que podem ter sido perdidos, conforme mostrado no seguinte comando:

$strings notes.sqlitedb

Se você preferir uma GUI, Mari DeGrazia gentilmente criou uma e a colocou em sua
página do GitHub.

Outra ferramenta de código aberto que você pode usar para recuperar registros SQLite
excluídos é o Undark. Você pode baixá-lo aqui: http://pldaniels.com/undark/. Para usar a
ferramenta, execute o seguinte comando:

./undark -i sms.db > sms_database.csv

É importante observar que o Undark não diferencia entre dados atuais e excluídos, portanto,
você obterá todo o conjunto de dados, tanto reais quanto excluídos.
Machine Translated by Google

Resumo
Este capítulo cobriu várias técnicas de análise de dados e especificou os locais para
artefatos comuns no sistema de arquivos do dispositivo iOS. Ao escrever este capítulo,
pretendemos cobrir os artefatos mais populares que se relacionam com a maioria das
investigações. Claramente, é impossível cobrir todos eles. Esperamos que, uma vez que você
aprenda a extrair dados de arquivos SQLite e plist , a intuição e a persistência o ajudem a
analisar os artefatos que não foram abordados.

Lembre-se de que a maioria das ferramentas comerciais e de código aberto são capazes de
extrair dados ativos e excluídos de arquivos de banco de dados comuns, como contatos,
chamadas, mensagens SMS e muito mais, mas geralmente ignoram os arquivos de banco de
dados de aplicativos de terceiros. Nosso melhor conselho é saber como recuperar os dados
manualmente, apenas no caso de você precisar validar suas descobertas ou testemunhar como
sua ferramenta funciona.

Abordamos técnicas para recuperar registros SQLite excluídos que são úteis na maioria das
investigações de dispositivos iOS. Novamente, o método de aquisição, a codificação e os
esquemas de criptografia podem afetar a quantidade de dados que você pode recuperar durante
o exame.

No próximo capítulo, iOS Forensic Tools, apresentaremos as ferramentas forenses móveis


mais populares — Cellebrite UFED Physical Analyzer, Magnet AXIOM, Elcomsoft Phone
Viewer e Belkasoft Evidence Center.
Machine Translated by Google

Ferramentas forenses do iOS

Um examinador como você não deve apenas saber como usar ferramentas forenses,
mas também deve entender os métodos e técnicas de aquisição que são implantados
pelas ferramentas que você usa em suas investigações. Além de economizar tempo,
as ferramentas forenses também facilitam muito o processo de análise forense.
No entanto, cada ferramenta tem suas falhas. Você deve detectar quaisquer erros e
saber como corrigi-los, aproveitando outra ferramenta ou técnica. É impossível para uma
ferramenta suportar todos os dispositivos. Você é responsável por aprender e usar as
melhores ferramentas para concluir o trabalho. Conforme discutimos nos capítulos
anteriores, você deve entender como os dados são armazenados em dispositivos iOS para
garantir que a ferramenta capture todos os dados acessíveis.

Atualmente, existem várias ferramentas comerciais, como Cellebrite UFED Physical


Analyzer, BlackBag BlackLight, Oxygen Forensic Detective, Belkasoft Evidence Center,
MSAB XRY, Magnet AXIOM e outras, que estão disponíveis para aquisição e análise
forense de dispositivos iOS.
Para fins de familiaridade, este capítulo o guiará pelo uso de alguns deles e fornecerá
detalhes sobre as etapas necessárias para realizar aquisições e análises de dispositivos
iOS.

Neste capítulo, abordaremos os seguintes tópicos:

Trabalhando com o Cellebrite UFED Physical Analyzer


Trabalhando com Magnet AXIOM
Trabalhando com o Belkasoft Evidence Center
Trabalhando com o Elcomsoft Phone Viewer
Machine Translated by Google

Trabalhando com Cellebrite UFED


Analisador Físico
De acordo com o fornecedor, o Cellebrite Universal Forensic Extraction
Device (UFED) capacita as organizações de aplicação da lei, antiterrorismo
e segurança a capturar evidências forenses críticas de telefones celulares,
smartphones, PDAs e variedades de aparelhos portáteis, incluindo atualizações
para modelos recém-lançados. A ferramenta permite técnicas forenses de extração,
decodificação e análise de dados para obter dados existentes e excluídos de
diferentes dispositivos móveis. Desde fevereiro de 2019, o UFED oferece suporte à
extração de dados de quase 28.000 dispositivos móveis.
Machine Translated by Google

Características do Cellebrite UFED


Analisador Físico
A seguir estão os recursos do Cellebrite UFED Physical Analyzer:

Suporta diferentes tipos de aquisição


Extrai as chaves do dispositivo necessárias para descriptografar imagens físicas,
bem como itens de chaveiro
Descriptografa imagens físicas e itens de chaveiro
Revela senhas de dispositivos (não disponível para todos os dispositivos bloqueados)
Permite abrir um arquivo de imagem de disco bruto criptografado com uma senha
conhecida
Suporta ataques de recuperação de senha
Suporta análise avançada e decodificação de dados de aplicativos extraídos
Fornece acesso a dados físicos e lógicos extraídos na mesma interface do usuário,
facilitando a análise
Gera relatórios em vários formatos populares, incluindo Microsoft
Excel, PDF e HTML
Despeja a partição bruta do sistema de arquivos para que possa ser importada
e examinada em outra ferramenta forense
Cria um arquivo de imagem binário, além do arquivo de atalho UFED, para facilitar a
importação para outras ferramentas forenses para verificação

Vejamos agora a aquisição e análise lógica avançada.


Machine Translated by Google

Aquisição lógica avançada e


análise com Cellebrite UFED
Analisador Físico
Como mencionamos anteriormente, o Physical Analyzer pode ser usado não apenas
para analisar diferentes tipos de artefatos forenses de imagens adquiridas, mas também
para executar tipos de extração lógica e de sistema de arquivos (e até física, para
dispositivos mais antigos) de dispositivos iOS. Devido ao fato de que a aquisição física é
realmente apenas para dispositivos mais antigos, a melhor opção é uma aquisição lógica
avançada.

Vamos adquirir e analisar dados de um iPhone com iOS 13.2.3. Vamos começar:

1. Conecte o dispositivo através do cabo apropriado à sua estação de trabalho.


Certifique-se de que é confiável e inicie o Analisador Físico.

2. Vá para Extrair | Extração de dispositivos iOS. A extração de dados do dispositivo iOS


A janela do assistente aparecerá:
Machine Translated by Google

Escolhendo um tipo de extração

3. Como estamos lidando com um dispositivo iOS moderno, vamos escolher a


extração lógica avançada. Se o dispositivo for reconhecido, você verá o nome do
dispositivo, seu UDID e também sua versão do iOS:
Machine Translated by Google

Conectando o dispositivo

No nosso caso, o backup do iTunes do iPhone é protegido por uma senha


conhecida, então o melhor método é o Método 1:
Machine Translated by Google

Escolhendo um método de extração

4. Se você deseja que o backup seja criptografado (recomendado), você pode escolher
esta opção na próxima página:
Machine Translated by Google

Escolhendo se o backup deve ser criptografado ou não

5. É hora de escolher onde os dados serão salvos; no nosso caso, é a raiz do drive
D:\:
Machine Translated by Google

Escolhendo onde salvar a extração

5. Agora, o processo de aquisição será iniciado. Certifique-se de que o


dispositivo esteja conectado até o final do processo:
Machine Translated by Google

Extraindo os dados

Após a conclusão do processo de extração, os dados extraídos serão


analisados com poderosos plug-ins do Physical Analyzer. Como resultado,
você obterá um conjunto de artefatos divididos em várias categorias:
Machine Translated by Google

Dados do telefone extraídos e analisados pelo analisador físico

O mesmo pode ser dito sobre os arquivos de dados:

Arquivos de dados extraídos pelo analisador físico

Como você já deve ter notado, existem números vermelhos entre colchetes – são registros
excluídos que foram recuperados pelos plug-ins do Physical Analyzer.
Como você já sabe, não é à toa que dados excluídos podem ser recuperados de bancos de
dados SQLite, amplamente utilizados no iOS.
Machine Translated by Google

Falando sobre bancos de dados SQLite, há outro recurso incrível do Physical Analyzer que pode
ser útil para adicionar artefatos personalizados aos seus relatórios forenses móveis e analisar
dados de aplicativos desconhecidos – o assistente SQLite. Você pode encontrá-lo em Ferramentas
| Assistente do SQLite:

1. Vamos começar escolhendo um banco de dados. Obviamente, é bom escolher um aplicativo


que não seja analisado automaticamente pelo Physical Analyzer. Em nosso exemplo, este é
um aplicativo chamado Scan:

Selecionando um banco de dados

2. Certifique-se de ter selecionado a opção Incluir linhas excluídas; isso ajudará você a
recuperar dados automaticamente, mas, é claro, aumentará o
Machine Translated by Google

número de registros falsos positivos:

Iniciando o assistente SQLite

Portanto, nosso aplicativo é usado para escanear códigos QR e contém quatro colunas de
interesse – data e hora do escaneamento, latitude, longitude e resultado do escaneamento.
Todas as linhas fazem parte de ZSCSCANEVENT:
Machine Translated by Google

Escolhendo tabelas e colunas do banco de dados

3. O próximo passo é selecionar o timestamp. Você já aprendeu um pouco sobre


carimbos de data/hora do iOS e deve reconhecer o formato em
ZTIMELESSCREATIONDATE, mas mesmo que não saiba, o assistente do SQLite
faz isso para você:
Machine Translated by Google

Selecionando o formato do carimbo de data/hora

4. O modelo genérico servirá para qualquer banco de dados, mas existem alguns
modelos de Analisador Físico existentes que podem ser usados para conteúdo
típico, como Chats ou Contatos. No nosso caso, estamos usando o modelo genérico:
Machine Translated by Google

Escolhendo o modelo

Depois de escolher o modelo e os tipos de campo para a coluna, você pode executar
a consulta e adicionar os novos artefatos analisados à sua extração e, posteriormente,
ao seu relatório.
Machine Translated by Google

Trabalhando com Magnet AXIOM


O Magnet AXIOM é uma das ferramentas forenses digitais mais úteis do mercado. Ele
pode ser usado para computação forense e móvel; a versão recente do pacote introduziu
o mais novo recurso – análise forense em nuvem. Quanto a
Análise forense do iOS, ele pode ser usado para aquisições lógicas e de sistema de
arquivos e oferece suporte a todas as versões do iOS – da mais antiga à mais recente.
Obviamente, ele também pode ser usado para analisar backups do iTunes e imagens físicas
criadas por ferramentas de terceiros, como Elcomsoft iOS Forensic Toolkit.

Um dos melhores recursos do Magnet AXIOM é sua capacidade de iniciar o processamento


de dados de extração em tempo real, para que você não precise esperar que o processo
de aquisição seja concluído para iniciar sua análise forense.
Machine Translated by Google

Características do Magnet AXIOM


A seguir estão as características do Magnet AXIOM:

Suporta aquisições lógicas e de sistema de arquivos (para dispositivos com jailbreak)


Suporta backups do iTunes criptografados e não criptografados
Recupera mais de 500 tipos de artefatos
Funciona com outras ferramentas forenses móveis populares, como Cellebrite
UFED e XRY
Inclui visualizadores SQLite e plist integrados
Cria os chamados Portable Cases para que você possa compartilhar todo o conjunto
de dados com seus colegas de equipe e terceiros
Pode gerar relatórios em vários formatos populares, como Microsoft
Excel, PDF e HTML
Machine Translated by Google

Aquisição lógica e análise


com Magnet AXIOM
Como você deve se lembrar, a aquisição mais comum para dispositivos iOS
modernos é um tipo lógico. Aqui está como você adquiriria um dispositivo iOS com
o Magnet AXIOM:

1. Comece criando um novo caso:


Machine Translated by Google

Criando um novo caso

2. Como estamos lidando com um dispositivo iOS, escolheremos o MOBILE


opção:
Machine Translated by Google

Selecionando a fonte de evidência

3. Existem várias opções para escolher, mas no nosso caso, a opção iOS é a mais
indicada:

Selecionando a fonte de evidência

4. Existem três opções para aquisição de evidências - podemos escolher uma


imagem já adquirida (por exemplo, um backup do iTunes ou uma imagem do
sistema de arquivos adquirida por uma ferramenta de terceiros), extrair dados do
dispositivo ou usar o GrayKey para aquisição. Vamos escolher a segunda opção:

Escolhendo adquirir evidências


Machine Translated by Google

5. Nosso dispositivo foi reconhecido e está pronto para a geração de imagens. Se você não vê o seu
dispositivo, use a opção DESCONHECIDO:

Selecionando o dispositivo

6. Existem dois tipos de extração – Rápida e Completa. A opção Completo só estará disponível se o
dispositivo que você deseja adquirir estiver com jailbreak. No nosso caso não é:

Escolhendo o tipo de imagem

7. Você será solicitado a inserir a senha para o backup. Como você deve se lembrar, desta forma,
você pode obter mais dados, por isso é altamente recomendável:
Machine Translated by Google

Criptografando o backup

8. Antes de iniciar a aquisição e o processamento, você pode, por exemplo,


escolher palavras-chave de interesse, usar o Magnet.AI para categorizar
chats ou configurar o Dynamic App Finder:
Machine Translated by Google
Machine Translated by Google

Detalhes do
processamento O Dynamic App Finder é um recurso Magnet IEF e AXIOM que é capaz de localizar bancos de dados
de aplicativos de bate-papo móveis em potencial localizados em imagens. Você pode ler mais sobre esse recurso em: https://
www.magnetforensics.com/ mobile-forensics/ using-dynamic-app-finder-to-recover-more-mo
bile-artefatos/.

9. Você pode personalizar ARTEFATOS MÓVEIS a partir daqui. Por exemplo, se você
estiver interessado apenas em artefatos de bate-papo, é melhor escolher apenas
esses tipos de artefatos, pois eles reduzirão o tempo de processamento:

Selecionando artefatos móveis

10. O botão ANALISAR EVIDÊNCIA iniciará o processo de aquisição e análise:


Machine Translated by Google

Imaging a fonte de evidência

11. Existem duas janelas para Magnet AXIOM – Processar e Examinar.


O primeiro pode ser usado para monitorar o processo de aquisição e processamento da fonte
de evidência, enquanto o segundo pode ser usado para analisar os dados extraídos e
analisados. Como mencionamos anteriormente, você pode iniciar a análise antes que a fase
de processamento termine. Tudo o que você precisa fazer é clicar em CARREGAR NOVOS
RESULTADOS no Magnet Examine:

Carregando novos resultados

12. Uma vez terminada a fase de processamento, você pode encontrar os dados analisados no
Seção MÓVEL do Magnet Examine:
Machine Translated by Google

A seção MÓVEL

Mas, claro, não incluirá tudo; existem outras seções valiosas nas quais você pode
encontrar evidências extraídas do dispositivo iOS, como CHAT, MÍDIA e
DOCUMENTOS.
Machine Translated by Google

Trabalhando com evidências Belkasoft


Centro
Belkasoft Evidence Center é outra ferramenta forense digital popular capaz de realizar a
aquisição e análise de dispositivos iOS. Assim como o AXIOM, ele pode ser usado para
análise forense de computadores, dispositivos móveis e nuvem.

Um dos melhores recursos do Belkasoft Evidence Center é sua capacidade de lidar com
backups danificados do iTunes. Portanto, se você possui um backup que nenhuma de suas
ferramentas é capaz de processar, experimente o Belkasoft Evidence Center; de acordo com
nossa experiência, ele irá processá-lo com sucesso.
Machine Translated by Google

Características do Belkasoft Evidence


Centro
A seguir estão os recursos do Belkasoft Evidence Center:

Suporta aquisições lógicas e de sistema de arquivos (para dispositivos com jailbreak)


Suporta backups do iTunes criptografados e não criptografados
Suporta backups danificados do iTunes
Recupera mais de 700 tipos de artefatos
Funciona com outras ferramentas forenses móveis populares, como Cellebrite
UFED e XRY
Inclui visualizadores SQLite e plist integrados
Inclui um módulo de script gratuito, BelkaScript, que permite aos examinadores escrever
seus próprios scripts para automatizar algumas tarefas comuns
Pode gerar relatórios em vários formatos populares, como Microsoft
Excel, PDF e HTML
Machine Translated by Google

Aquisição lógica e análise


com Belkasoft Evidence Center
Como o processamento e a análise de backup são um dos melhores recursos do Belkasoft
Evidence Center, vamos orientá-lo neste processo aqui:

1. Vamos começar criando um novo caso:

Criando um novo caso

2. Existem várias opções aqui - você pode processar uma imagem adquirida
anteriormente, como um backup do iTunes, ou optar por extrair dados de um
dispositivo primeiro. Vamos começar com a aquisição lógica. Escolha a opção Móvel:
Machine Translated by Google

Escolhendo a fonte de dados

3. Como estamos lidando com um dispositivo iOS, escolha Apple. Você verá uma lista
de dispositivos disponíveis:
Machine Translated by Google

Dispositivos disponíveis para aquisição

4. Nosso dispositivo não está com jailbreak, então nossa escolha é a aquisição lógica ou o
backup do iTunes:
Machine Translated by Google

Escolhendo o método de aquisição

5. Uma vez concluída a aquisição, você pode escolher os artefatos de seu


interesse. Certifique-se de escolher apenas artefatos relacionados ao iOS;
isso diminuirá o tempo de processamento:
Machine Translated by Google

Escolhendo tipos de dados

6. Após o término do processamento, os artefatos extraídos serão exibidos na


guia Visão geral:
Machine Translated by Google

Guia Visão geral

7. Finalmente, se você quiser navegar no sistema de arquivos de sua imagem forense,


use a guia Sistema de arquivos:
Machine Translated by Google

A guia Sistema de arquivos

Outras guias disponíveis também podem ser úteis - a guia Painel mostra todas as informações
disponíveis sobre o caso em que você está trabalhando no momento, a guia Gerenciador de
tarefas permite monitorar o andamento do processamento e a guia Resultados da pesquisa
mostra os resultados da pesquisa por palavra-chave.
Machine Translated by Google

Trabalhando com Elcomsoft Phone


Visualizador

Elcomsoft Phone Viewer é uma ferramenta capaz de analisar e visualizar


dados extraídos não apenas de dispositivos iOS, mas também de
dispositivos BlackBerry 10 e Windows Phone. Ele fornece acesso forense
somente para leitura a imagens lógicas e de sistema de arquivos, bem como a
dados extraídos da nuvem.
Machine Translated by Google

Recursos do Elcomsoft Phone


Visualizador

A seguir estão os recursos do Elcomsoft Phone Viewer:

Analisa atividades online, incluindo histórico de navegação na web,


favoritos e abas abertas.
Fornece acesso a dados sincronizados, senhas e dados do usuário, incluindo
mensagens, registros de chamadas e contatos.
Ele categoriza os arquivos multimídia para que seja mais fácil entender se uma foto
foi recebida em uma mensagem ou foi tirada com a câmera do telefone.

Agrega dados de localização de diferentes fontes.


Suporta imagens lógicas, imagens do sistema de arquivos e backups do iTunes e
iCloud.
Machine Translated by Google

Análise de sistema de arquivos com Elcomsoft


Visualizador de telefone

O Elcomsoft Phone Viewer não oferece suporte à aquisição de dispositivos, mas pode analisar
e ajudá-lo a visualizar os dados que foram extraídos com Elcomsoft iOS Forensic Toolkit, Elcomsoft
Cloud eXtractor ou quase qualquer outra ferramenta capaz de aquisição de dispositivos iOS.

Para explorar uma imagem do sistema de arquivos que foi criada anteriormente com Elcomsoft
iOS Forensic Toolkit, siga estas etapas:

1. Inicie o Elcomsoft Phone Viewer e escolha os dados apropriados


fonte. No nosso caso, esta é a imagem do dispositivo iOS:

Escolhendo a fonte de dados

2. Escolha o arquivo que deseja importar e o artefato que deseja analisar:


Machine Translated by Google

Escolhendo tipos de dados

3. Aguarde o término do processo de extração:

Processo de extração

Como resultado, você obterá as informações do dispositivo, bem como os


artefatos analisados divididos em várias categorias:
Machine Translated by Google

Artefatos analisados

Agora você pode facilmente visualizar, filtrar e exportar quaisquer dados que
possam ser de interesse para o seu exame – basta clicar no ícone correspondente.
Machine Translated by Google

Resumo
As ferramentas forenses são úteis para um examinador, pois não apenas economizam
tempo, mas também facilitam muito o processo. No entanto, nem todo mundo tem um
orçamento grande o suficiente para comprar ferramentas comerciais para obter a aquisição do
iOS. Embora existam ferramentas gratuitas para aquisição, o suporte pode ser limitado e várias
extrações podem ser necessárias para obter a mesma quantidade de dados que uma ferramenta
comercial.

Para dispositivos com jailbreak, o dispositivo iOS pode ser conectado a uma estação de
trabalho forense para exame ao vivo por meio de SSH, que é como algumas das ferramentas
adquirem os dados necessários. No entanto, este não é um método recomendado para
aqueles que são novos na perícia móvel. Para tais fins, este capítulo apresentou várias
ferramentas forenses disponíveis para iOS e incluiu as etapas que você precisa seguir para
realizar a aquisição e a análise.

Você deve seguir outras etapas para validar e entender cada ferramenta que pode ser
usada como parte de uma investigação. Recomendamos que você adquira dispositivos de
teste com dados conhecidos para garantir que nada seja esquecido, as evidências não tenham
sido alteradas e que os métodos forneçam acesso aos dados de interesse, sempre que possível.

O próximo capítulo apresentará a análise forense do Android e abordará os


conceitos fundamentais da plataforma Android.
Machine Translated by Google

Seção 2: análise forense do Android

Esta seção abordará tudo o que você precisa saber sobre perícia em dispositivos
Android. Começaremos entendendo a plataforma Android e seu sistema de arquivos e,
em seguida, abordaremos os tópicos de configuração, aquisição/extração e recuperação.
Também veremos malware para Android e como fazer engenharia reversa de aplicativos
Android usando ferramentas de código aberto.

Este capítulo é composto pelos seguintes capítulos:

Capítulo 7, Entendendo o Android


Capítulo 8, Configuração forense do Android e técnicas de pré-extração de dados
Capítulo 9, Técnicas de extração de dados do Android
Capítulo 10, Análise e recuperação de dados do Android
Capítulo 11, Análise de aplicativos Android, malware e engenharia reversa
Machine Translated by Google

Entendendo o Android
Nos capítulos anteriores, cobrimos detalhes sobre dispositivos iOS, incluindo a estrutura do
sistema de arquivos, artefatos principais, arquivos de backup e métodos de aquisição e análise.
A partir deste capítulo, vamos nos concentrar na plataforma Android e em como realizar análises
forenses em dispositivos Android. Ter um bom entendimento do ecossistema Android, restrições de
segurança, sistemas de arquivos e outros recursos seria útil durante uma investigação forense.

Obter conhecimento desses fundamentos ajudaria um especialista forense a tomar decisões


informadas durante a condução de uma investigação.

Abordaremos os seguintes tópicos neste capítulo:

A evolução do Android
A arquitetura do Android

segurança do Android
A hierarquia de arquivos do Android
O sistema de arquivos do Android
Machine Translated by Google

A evolução do Android

Android é um sistema operacional móvel baseado em Linux desenvolvido


para dispositivos móveis com tela sensível ao toque. Ele é desenvolvido por um
consórcio de empresas conhecido como Open Handset Alliance (OHA), sendo o
principal colaborador e comerciante comercial o Google. O sistema operacional Android
evoluiu significativamente desde sua data de lançamento inaugural. O Android foi
lançado oficialmente ao público em 2008, com a versão Android 1.0. Com o lançamento
do Android 1.5 Cupcake em 2009, nasceu a tradição de nomear as versões do Android
com nomes de confeitaria. Os nomes das versões também foram divulgados em ordem
alfabética pelos próximos 10 anos. No entanto, em 2019, o Google anunciou que estava
encerrando a nomenclatura baseada em confeitaria e estava usando ordenação
numérica para versões futuras. Nos anos iniciais, as versões do Android eram
atualizadas mais de duas vezes por ano, mas nos anos mais recentes, as atualizações
de versão são feitas uma vez por ano. A atualização principal mais recente do Android
é o Android 11, a décima primeira versão principal do sistema operacional Android,
anunciada pelo Google em 19 de fevereiro de 2020.

A seguir, uma visão geral do histórico de versões do Android no momento da redação:

Versão Nome da versão Ano de lançamento

Android 1.0 Torta de maçã 2008

Android 1.1 Pão de banana 2009

Android 1.5 Bolinho 2009


Machine Translated by Google

Android 1.6 Rosquinha 2009

Android 2.0 éclair 2009

Android 2.2 Froyo 2010

Android 2.3 Pão de gengibre 2010

Android 3.0 Favo de mel 2011

Android 4.0 Sanduíche de sorvete 2011

Android 4.1 Jujuba 2012

Android 4.4 Kit Kat 2013

Android 5.0 Pirulito 2014

Android 6.0 marshmallow 2015

Android 7.0 torrone 2016


Machine Translated by Google

Android 8.0 Oreo 2017

Android 9.0 Torta 2018

Android 10.0 Q 2019

Android 11 R 2020

Essa evolução também afetou drasticamente as considerações de segurança do


Android e como as técnicas forenses são aplicadas. Por exemplo, as versões
iniciais do Android não tinham um mecanismo Full Disk Encryption (FDE) para
armazenar dados em um formato criptografado no dispositivo. Como resultado,
extrair dados do dispositivo era muito mais fácil para um investigador forense do
que atualmente. Com cada atualização de versão do Android, mais e mais recursos
de segurança, como permissões de aplicativos, ambiente de execução confiável
(TEE) e kernel seguro, foram adicionados para melhorar a segurança da plataforma
em geral, mas ao mesmo tempo complicar o processo de extração de dados .
Abordaremos esses recursos de segurança em detalhes nas outras seções deste
capítulo.

Agora que sabemos sobre a história e as versões do Android, veremos a


arquitetura do Android na próxima seção.
Machine Translated by Google

A arquitetura do Android

Para entender efetivamente os conceitos forenses ao lidar com o Android, você deve
ter um conhecimento básico da arquitetura do Android. Assim como um computador,
qualquer sistema de computação que interaja com o usuário e execute tarefas
complicadas requer um sistema operacional para lidar com as tarefas de forma eficaz.
Este sistema operacional (seja um sistema operacional de desktop ou um sistema
operacional de telefone celular) é responsável por gerenciar os recursos do sistema,
para fornecer uma maneira de os aplicativos se comunicarem com o hardware ou
componentes físicos para realizar determinadas tarefas. O Android é atualmente o
sistema operacional móvel mais popular projetado para alimentar dispositivos móveis.
Você pode descobrir mais sobre isso em https://developer.android.c
om/about/android.html.

O Android, como um sistema operacional de código aberto, libera seu código sob
a Licença Apache, uma das muitas licenças de código aberto. Na prática, isso
significa que qualquer pessoa (especialmente fabricantes de dispositivos) pode acessá-
lo, modificá-lo livremente e usar o software de acordo com os requisitos de qualquer
dispositivo. Esta é uma das principais razões para sua ampla aceitação. Jogadores
notáveis que usam Android incluem Samsung, HTC, Sony e LG.

Como em qualquer outra plataforma, o Android consiste em uma pilha de camadas


executadas uma acima da outra. Para entender o ecossistema Android, é essencial
ter uma compreensão básica do que são essas camadas e o que elas fazem.

O diagrama a seguir resume as várias camadas envolvidas no


Pilha de software Android:
Machine Translated by Google
Machine Translated by Google

Arquitetura Android
Esta imagem é modificada com base no trabalho criado e compartilhado pelo Android Open
Source Project: https://developer.android.com/guide/platform Licença:
https://creativecommons.org/licenses/by/4.0/

Cada uma dessas camadas executa várias operações que suportam funções
específicas do sistema operacional. Cada camada fornece serviços para as camadas
situadas acima dela. Vamos examiná-los com um pouco mais de detalhes.
Machine Translated by Google

A camada do kernel do Linux


O sistema operacional Android é construído sobre o kernel do Linux, com
algumas mudanças arquitetônicas feitas pelo Google. Existem várias razões para
escolher o kernel do Linux. Mais importante ainda, o Linux é uma plataforma portátil
que pode ser compilada facilmente em diferentes hardwares. O kernel atua como
uma camada de abstração entre o software e o hardware presentes no dispositivo.
Considere o caso de uma câmera. O que acontece quando você tira uma foto
usando o botão da câmera no seu dispositivo? Em algum momento, a instrução de
hardware (pressionar um botão) deve ser convertida em uma instrução de software
(para tirar uma foto e armazená-la na galeria). O kernel contém drivers para facilitar
este processo. Quando o usuário pressiona o botão, a instrução vai para o driver da
câmera correspondente no kernel, que envia os comandos necessários para o
hardware da câmera, semelhante ao que ocorre quando uma tecla é pressionada
em um teclado. Em palavras simples, os drivers no comando do kernel controlam o
hardware subjacente. Conforme mostrado no modelo de arquitetura do Android, o
kernel contém drivers relacionados a Wi-Fi, Bluetooth, Universal Service Bus
(USB), áudio, exibição e assim por diante.

O kernel do Linux é responsável por gerenciar as principais funcionalidades do


Android, como gerenciamento de processos, gerenciamento de memória, segurança
e rede. O Linux é uma plataforma comprovada quando se trata de segurança e
gerenciamento de processos. O Android aproveitou o sistema operacional de código
aberto Linux existente para construir uma base sólida para seu ecossistema.
Cada versão do Android tem uma versão diferente do kernel Linux subjacente.
A versão Oreo Android é conhecida por usar o kernel Linux 3.18 ou 4.9, enquanto a
versão Pie é conhecida por usar o kernel Linux 4.4, 4.9 ou 4.14. Android Q, tem
como alvo o kernel Linux 4.9, 4.14 ou 4.19. O kernel real depende do dispositivo
individual.
Machine Translated by Google

A camada de abstração de hardware


Os recursos de hardware do dispositivo são expostos à estrutura Java de
alto nível por meio da camada de abstração de hardware (HAL). O HAL consiste
em vários módulos de biblioteca que implementam interfaces para um tipo específico
de componente de hardware. Isso permite que os fornecedores de hardware
implementem a funcionalidade sem alterar o sistema de nível superior.
Machine Translated by Google

bibliotecas
A próxima camada na arquitetura do Android consiste nas bibliotecas nativas do
Android. As bibliotecas são escritas em C ou C++ e ajudam o dispositivo a lidar
com diferentes tipos de dados. Por exemplo, as bibliotecas SQLite são úteis para
armazenar e recuperar os dados de um banco de dados. Outras bibliotecas incluem
Media Framework, WebKit, Surface Manager e Secure Sockets Library (SSL).

A biblioteca do Media Framework atua como a interface principal para fornecer


um serviço para as outras bibliotecas subjacentes. A biblioteca WebKit fornece
páginas da web em navegadores da web e a biblioteca do Surface Manager mantém
os gráficos. Na mesma camada, temos o Android Runtime (ART) e as bibliotecas
principais. ART é responsável pela execução de aplicativos em dispositivos Android.
O termo tempo de execução refere-se ao tempo desde que um aplicativo é iniciado
até que seja encerrado.
Machine Translated by Google

Máquina Virtual Dalvik (DVM)


Todos os aplicativos que você instala no dispositivo Android são escritos na linguagem
de programação Java. Quando um programa Java é compilado, obtemos bytecode.
Uma máquina virtual (VM) é um aplicativo que atua como um sistema operacional, ou
seja, é possível executar uma instância do sistema operacional Windows em um Mac
ou vice-versa, usando uma VM. Java Virtual Machine (JVM) é uma VM que pode
executar o bytecode mencionado anteriormente. Mas as versões do Android anteriores
ao Android 5.0 usavam algo chamado DVM para executar seus aplicativos.

O DVM executa o bytecode Dalvik, que é o bytecode Java convertido pelo


compilador Dalvik Executable (DEX) . Assim, os arquivos .class são convertidos em
arquivos dex usando a ferramenta dx . O bytecode Dalvik, quando comparado com o
bytecode Java, é mais adequado para ambientes com pouca memória e baixo
processamento. Além disso, observe que o bytecode da JVM consiste em um ou mais
arquivos .class , dependendo do número de arquivos Java presentes em um aplicativo,
mas o bytecode Dalvik é composto de apenas um arquivo dex . Cada aplicativo Android
executa sua própria instância de DVM. Esse é um aspecto crucial da segurança do
Android e será abordado em detalhes no Capítulo 8, Configuração forense do Android
e técnicas de pré-extração de dados.

O diagrama a seguir fornece uma visão de como o DVM do Android difere do JVM do
Java:
Machine Translated by Google

JVM versus DVM

Agora que entendemos as diferenças básicas entre JVM e DVM,


vamos dar uma olhada rápida no ART.
Machine Translated by Google

ARTE
A partir da versão Android 5.0 Lollipop em diante, Dalvik foi substituído por ART.
Versões anteriores do Android usavam compilação just-in-time (JIT) com Dalvik (as
operações executadas com frequência são identificadas e compiladas dinamicamente
para código de máquina nativo). Essa execução nativa desses bytecodes usados com
frequência, chamados de rastreamentos, fornece melhorias significativas de desempenho.

Ao contrário do Dalvik, o ART usa compilação antecipada (AOT) , que compila


aplicativos inteiros em código de máquina nativo após a instalação. Isso
aumenta automaticamente o tempo de instalação de um aplicativo, mas uma grande
vantagem é que isso elimina a interpretação do Dalvik e a compilação JIT baseada em
rastreamento, aumentando assim a eficiência e reduzindo o consumo de energia. O
ART usa um utilitário chamado dex2oat que aceita arquivos DEX como entrada e gera
um executável de aplicativo compilado para o dispositivo de destino. Com o ART, os
arquivos DEX (.odex) otimizados foram substituídos pelos executáveis Executáveis e
Vinculados (ELF) .
Machine Translated by Google

A camada de estrutura da API Java


A estrutura do aplicativo é a camada responsável por lidar com o funcionamento básico
de um telefone, como gerenciamento de recursos, atendimento de chamadas e assim por
diante. Este é o bloco através do qual os aplicativos instalados no dispositivo conversam
diretamente com ele. A seguir estão alguns dos blocos importantes na camada de estrutura
do aplicativo:

Gerenciador de Telefonia: Este bloco gerencia todas as chamadas de voz.


Provedor de Conteúdo: Este bloco gerencia o compartilhamento de dados entre
diferentes aplicativos.
Resource Manager: Este bloco gerencia diversos recursos utilizados nas
aplicações.

A camada final é a camada de aplicativos do sistema, que será discutida a seguir.


Machine Translated by Google

A camada de aplicativos do sistema

Esta é a camada superior onde o usuário pode interagir diretamente com o


dispositivo. Existem dois tipos de aplicativos: aplicativos pré-instalados e aplicativos
instalados pelo usuário. Aplicativos pré-instalados, como discador, navegador da
Web e contatos, acompanham o dispositivo. Os aplicativos instalados pelo usuário
podem ser baixados de diferentes locais, como Google Play Store, Amazon
Marketplace e assim por diante. Tudo o que você vê em seu telefone (contatos, e-
mail, câmera e assim por diante) é um aplicativo.

Até agora, aprendemos sobre a arquitetura do Android e os blocos de construção


importantes. Vamos agora nos aprofundar em alguns dos recursos de segurança
inerentes ao sistema operacional Android.
Machine Translated by Google

segurança do Android

O Android foi projetado com foco específico na segurança. O Android como


plataforma oferece e aplica certos recursos que protegem os dados do usuário
presentes no celular por meio de segurança multicamadas. Existem certos padrões
seguros que protegerão o usuário e certas ofertas que podem ser aproveitadas pela
comunidade de desenvolvimento para criar aplicativos seguros. Como investigador
forense, entender os aspectos internos da segurança do Android é crucial, pois
ajuda a identificar as melhores técnicas a serem aplicadas em uma determinada
situação, as limitações técnicas de certas técnicas e assim por diante.

As próximas seções nos ajudarão a entender mais sobre os recursos e


ofertas de segurança do Android.

Uma explicação detalhada sobre a segurança do Android pode ser encontrada em https:// source.android.com/ securit

s/.
Machine Translated by Google

Kernel seguro

O kernel está no centro da segurança de qualquer sistema operacional. Ao


escolher o Linux, que evoluiu como uma plataforma confiável ao longo dos anos, o
Android estabeleceu uma base de segurança muito sólida. A maioria dos recursos
de segurança inerentes ao kernel do Linux são adotados automaticamente pelo
Android. Por exemplo, o modelo de permissão baseado em usuário do Linux, de
fato, funcionou bem para o Android. Como mencionado anteriormente, há muitos códigos
específicos incorporados ao kernel do Linux. Com cada lançamento de versão do Android,
a versão do kernel também mudou. A tabela a seguir mostra as versões do Android e
suas versões de kernel correspondentes:

versão do Android Versão do kernel do Linux

1 2.6.25

1,5 2.6.27

1.6 2.6.29

2.2 2.6.32

2.3 2.6.35

3.0 2.6.36
Machine Translated by Google

4.0 3.0.1

4.1 3.0.31

4.2 3.4.0

4.2 3.4.39

4.4 3.8

5.0 3.16.1

6.0 3.18.1

7,0 4.4.1

8,0 4.10

9,0 4.4, 4.9 e 4.14

10,0 4.9, 4.14 e 4.19


Machine Translated by Google

O kernel do Linux traz automaticamente alguns de seus recursos de segurança inerentes, como
os seguintes, para a plataforma Android:

Um modelo de permissões baseado no usuário


Isolamento de processos em execução (caixa de proteção do aplicativo)
Comunicação segura entre processos (IPC)

Vamos agora aprender sobre cada um desses recursos.


Machine Translated by Google

O modelo de permissão
Conforme mostrado na captura de tela a seguir, qualquer aplicativo Android deve
receber permissões para acessar funcionalidades confidenciais, como internet,
discador e assim por diante, pelo usuário. Isso oferece uma oportunidade para o
usuário saber com antecedência qual funcionalidade do dispositivo está sendo
acessada pelo aplicativo. Simplificando, requer a permissão do usuário para realizar
qualquer tipo de atividade maliciosa (roubar dados, comprometer o sistema e assim
por diante).

Esse modelo ajuda o usuário a evitar ataques, mas se o usuário não souber e
conceder muitas permissões, isso o deixará em apuros (lembre-se: quando se trata
de instalar malware em qualquer dispositivo, o elo mais fraco é sempre o usuário).
Machine Translated by Google

O modelo de permissão no Android

Até o Android 6.0, os usuários precisavam conceder as permissões durante o tempo de instalação.
Os usuários tinham que aceitar todas as permissões ou não instalar o aplicativo.
Machine Translated by Google

Mas, a partir do Android 6.0, os usuários concedem permissões aos aplicativos


enquanto o aplicativo está em execução. Este novo sistema de permissão também
dá ao usuário mais controle sobre a funcionalidade do aplicativo, permitindo que o
usuário conceda permissões seletivas. Por exemplo, um usuário pode negar o acesso
de um determinado aplicativo à sua localização, mas fornecer acesso à Internet. O
usuário pode revogar as permissões a qualquer momento acessando a tela de
configurações do app. Do ponto de vista forense, isso significa que o tipo de
informação que pode ser extraída de um dispositivo depende não apenas do
dispositivo e dos aplicativos instalados, mas também das permissões configuradas pelo usuário.
Machine Translated by Google

Caixa de areia do aplicativo

Nos sistemas Linux, cada usuário recebe um identificador de usuário exclusivo (UID) e os
usuários são segregados para que um usuário não possa acessar os dados de outro usuário.
No entanto, todos os aplicativos de um determinado usuário são executados com os
mesmos privilégios. Da mesma forma, no Android, cada aplicativo é executado como um
usuário único. Em outras palavras, um UID é atribuído a cada aplicativo e é executado como
um processo separado. Esse conceito garante uma caixa de proteção do aplicativo no nível do kernel.
O kernel gerencia as restrições de segurança entre os aplicativos fazendo uso de conceitos
existentes do Linux, como UID e identificador de grupo (GID). Se um aplicativo tentar fazer
algo mal-intencionado, digamos, ler os dados de outro aplicativo, isso não é permitido, pois o
aplicativo não tem privilégios de usuário. Portanto, o sistema operacional protege um aplicativo
de acessar os dados de outro aplicativo.
Machine Translated by Google

IPC seguro

O Android oferece IPC seguro, por meio do qual uma atividade em um aplicativo pode
enviar mensagens para outra atividade no mesmo ou em um aplicativo diferente. Para
conseguir isso, o Android fornece mecanismos IPC: Intents, Services, Content Providers
e assim por diante. Isso é mais relevante para desenvolvedores que codificam aplicativos
de terceiros para a plataforma Android. Nos bastidores, as ferramentas forenses exploram
alguns desses conceitos para obter acesso às informações do dispositivo.
Machine Translated by Google

Assinatura do aplicativo
É obrigatório que todos os aplicativos instalados sejam assinados digitalmente.
Os desenvolvedores podem colocar seus aplicativos na Play Store do Google somente
após assinar os aplicativos. A chave privada com a qual o aplicativo é assinado é
mantida pelo desenvolvedor. Usando a mesma chave, um desenvolvedor pode fornecer
atualizações para seu aplicativo, compartilhar dados entre os aplicativos e assim por
diante. Aplicativos não assinados, se tentados a serem instalados, serão rejeitados
pelo Google Play ou pelo instalador do pacote no dispositivo Android. No Android 8.0
e superior, os usuários devem navegar até a configuração Instalar aplicativos
desconhecidos para executar aplicativos não assinados, conforme mostrado na captura
de tela a seguir:
Machine Translated by Google

Instalar tela de aplicativos desconhecidos no Android

Agora que temos algum conhecimento básico sobre aplicativos


assinados digitalmente, vamos ver um dos recursos de segurança do Android.
Machine Translated by Google

Linux com segurança aprimorada


(SELinux)
SELinux é um recurso de segurança que foi introduzido no Android 4.3 e totalmente
aplicado no Android 5.0. Até essa adição, a segurança do Android era baseada no
Controle de Acesso Discricionário (DAC), o que significa que os aplicativos podem
solicitar permissões e os usuários podem conceder ou negar essas permissões.
Assim, o malware pode causar estragos nos telefones obtendo essas permissões. Já
o SE Android utiliza o Mandatory Access Control (MAC), que garante que os
aplicativos funcionem em ambientes isolados. Portanto, mesmo que um usuário
instale um aplicativo de malware, o malware não pode acessar o sistema operacional
e corromper o dispositivo. O SELinux é usado para impor o MAC em todos os
processos, incluindo os executados com privilégios de root. No SELinux, qualquer
coisa que não seja explicitamente permitida é, por padrão, negada. O SELinux pode
operar em um dos dois modos globais: Modo permissivo , que registra as negações
de permissão, mas não as impõe; e o modo Enforcing , que registra e também aplica
as negações de permissão. Mais detalhes sobre o SELinux podem ser encontrados
em https://source.android.com/security/selinux/concepts.
Machine Translated by Google

FDE
Com o Android 6.0 Marshmallow, o Google determinou o FDE para a maioria dos
dispositivos, desde que o hardware atenda a determinados padrões mínimos.
Criptografia é o processo de conversão de dados em texto cifrado usando uma chave
secreta. Em dispositivos Android, FDE refere-se ao processo de criptografar todos os
dados do usuário usando uma chave secreta. Essa chave, por sua vez, é criptografada
pelo número de identificação pessoal (PIN)/padrão/senha do dispositivo definido pelo
usuário. Depois que um dispositivo é criptografado, todos os dados criados pelo usuário são
criptografados automaticamente antes de gravá-los no disco, e todas as leituras
descriptografam automaticamente os dados antes de retorná-los ao processo de chamada.
O FDE no Android funciona apenas com um Embedded Multimedia Card (eMMC) e
dispositivos flash semelhantes que se apresentam ao kernel como dispositivos de bloco.

A partir do Android 7.x, o Google decidiu mudar o recurso de criptografia de FDE para
criptografia baseada em arquivo (FBE). No FBE, arquivos diferentes são criptografados
com chaves diferentes. Ao fazer isso, esses arquivos podem ser acessados de forma
independente, sem a necessidade de descriptografar a partição completa. Como resultado,
o sistema agora pode exibir notificações abertas ou acessar arquivos relacionados à
inicialização sem ter que esperar até que o usuário desbloqueie o telefone.
Machine Translated by Google

Armazenamento de chaves do Android

Android Keystore é usado para proteger chaves criptográficas sensíveis de


acesso não autorizado. As chaves armazenadas em um Keystore podem ser usadas
para executar operações criptográficas, mas nunca podem ser extraídas fora do
Keystore. Os Keystores com suporte de hardware fornecem segurança no nível do
hardware, ou seja, mesmo que o sistema operacional seja comprometido, as chaves
no módulo de hardware ainda estarão seguras.
Machine Translated by Google

TE
Um TEE é uma área isolada (normalmente, um microprocessador separado) destinada a
garantir a segurança dos dados armazenados em seu interior e também a executar
código com integridade. O processador principal em dispositivos móveis é considerado
não confiável e não pode ser usado para armazenar dados secretos (como chaves
criptográficas). Portanto, um TEE é usado especificamente para realizar tais operações, e
o software executado no processador principal delega quaisquer operações que exijam o
uso de dados secretos ao processador TEE.
Machine Translated by Google

Inicialização verificada

O Verified Boot tenta garantir que todo o código executado em um dispositivo


Android venha de uma fonte legítima, e não de um invasor ou fraude. Ele
estabelece uma cadeia completa de confiança e evita o carregamento lateral de
qualquer outro sistema operacional. Durante a inicialização do dispositivo, cada
estágio valida a integridade e autenticidade do próximo estágio antes de entregar a execução.

Vamos agora examinar as várias partições e sistemas de arquivos disponíveis em


um dispositivo Android.
Machine Translated by Google

A hierarquia de arquivos do Android

Para realizar análises forenses em qualquer sistema (desktop ou móvel), é importante


entender a hierarquia de arquivos subjacente. Uma compreensão básica de como o
Android organiza seus dados em arquivos e pastas ajuda um analista forense a restringir
sua pesquisa a problemas específicos. Assim como qualquer outro sistema operacional,
o Android usa várias partições. Este capítulo fornece uma visão sobre algumas das
partições mais importantes e o conteúdo armazenado nelas.

Vale a pena mencionar novamente que o Android usa o kernel do Linux. Portanto, se
você estiver familiarizado com sistemas semelhantes ao Unix, entenderá muito bem
a hierarquia de arquivos no Android. Para aqueles que não estão muito familiarizados
com o modelo Linux, aqui estão algumas informações básicas: no Linux, a hierarquia
de arquivos é uma única árvore, com o topo da árvore sendo denotado como / (chamado
de raiz ) . Isso é diferente do conceito de organização de arquivos em unidades (como
no Windows). Quer o sistema de arquivos seja local ou remoto, ele estará presente na
raiz.

A hierarquia de arquivos do Android é uma versão personalizada dessa hierarquia


Linux existente. Com base no fabricante do dispositivo e na versão subjacente do
Linux, a estrutura dessa hierarquia pode sofrer algumas alterações insignificantes. A
seguir está uma lista de pastas importantes que são comuns à maioria dos
dispositivos Android. Algumas das pastas listadas são visíveis apenas por meio do
acesso root. O enraizamento é o processo de obtenção de acesso privilegiado em
um dispositivo Android. Mais detalhes sobre como fazer root e executar os comandos
adb (que são mostrados na lista a seguir) são abordados em detalhes no Capítulo 8,
Configuração forense do Android e técnicas de pré-extração de dados:

/boot: como o nome sugere, esta partição contém as informações e os arquivos


necessários para inicializar o telefone. Ele contém o kernel e o disco de memória
de acesso aleatório (RAM) , portanto, sem essa partição, o telefone não pode
iniciar seus processos. Os dados que residem na RAM são ricos em valor e
devem ser capturados durante uma aquisição forense.
Machine Translated by Google

/system: Esta partição contém arquivos relacionados ao sistema além


do kernel e do disco RAM. Esta pasta nunca deve ser excluída, pois isso
tornará o dispositivo não inicializável. O conteúdo desta partição pode ser
visualizado usando o seguinte comando:

/ partição do sistema

* /recovery: Isso é projetado para fins de backup e permite que o dispositivo


para inicializar no modo de recuperação. No modo de recuperação, você pode
encontrar ferramentas para reparar a instalação do telefone. /data: Esta é a partição
que contém os dados de cada aplicação.
A maioria dos dados pertencentes ao usuário, como contatos, SMS e
números discados, são armazenados nesta pasta. Esta pasta tem uma
importância significativa do ponto de vista forense, pois contém dados
valiosos. O conteúdo da pasta de dados pode ser visualizado usando o
seguinte comando:
Machine Translated by Google

/partição de dados

* /cache: Esta é a pasta usada para armazenar os dados acessados com


frequência e alguns dos logs para uma recuperação mais rápida. A partição /
cache também é importante para uma investigação forense, pois os dados que
residem aqui podem não estar mais presentes na partição /data . /misc: Como o
* nome sugere, esta pasta contém informações sobre diversas configurações.
Essas configurações definem principalmente o estado do dispositivo, ou seja,
ligado/desligado. Informações sobre configurações de hardware, configurações de
USB e assim por diante podem ser acessadas nesta pasta. /sdcard: Esta é a
partição que contém todas as informações presentes no cartão Secure Digital
(SD) . É valioso porque pode conter
Machine Translated by Google

informações como fotos, vídeos, arquivos, documentos e assim por diante.

Agora que entendemos a hierarquia de arquivos do Android e vimos as pastas


importantes nela, vamos dar uma olhada no sistema de arquivos na próxima seção.
Machine Translated by Google

O sistema de arquivos do Android

Compreender o sistema de arquivos é uma parte essencial das


metodologias forenses. O conhecimento sobre as propriedades e a estrutura de
um sistema de arquivos prova ser útil durante a análise forense. O sistema de
arquivos refere-se à maneira como os dados são armazenados, organizados e
recuperados de um volume. Uma instalação básica pode ser baseada em um volume
dividido em várias partições; aqui, cada partição pode ser gerenciada por um sistema de
arquivos diferente. Como no Linux, o Android utiliza pontos de montagem e não unidades (isto é, C: ou E:)

No Linux, a montagem é um ato de anexar um sistema de arquivos adicional ao sistema de arquivos


atualmente acessível de um computador. Os sistemas de arquivos no Linux não são acessados por nomes
de unidades, mas são organizados em uma hierarquia de vários níveis com um diretório chamado root no
topo. Cada novo sistema de arquivos é adicionado a esta única árvore de sistema de arquivos quando ele é
montado.

Não faz diferença se o sistema de arquivos existe no dispositivo local ou em um


dispositivo remoto. Tudo está em uma única hierarquia que começa com root. Cada
sistema de arquivos define suas próprias regras para gerenciar os arquivos no volume.
Dependendo dessas regras, cada sistema de arquivos oferece uma velocidade diferente
para recuperação de arquivos, segurança, tamanho e assim por diante. O Linux usa vários
sistemas de arquivos, assim como o Android. Do ponto de vista forense, é importante
entender quais sistemas de arquivos são usados pelo Android e identificar os sistemas de
arquivos importantes para a investigação. Por exemplo, o sistema de arquivos que
armazena os dados do usuário é nossa principal preocupação, ao contrário de um sistema
de arquivos usado para inicializar o dispositivo.
Machine Translated by Google

Visualizando sistemas de arquivos em um


dispositivo Android

Os sistemas de arquivos suportados pelo kernel do Android podem ser determinados


verificando o conteúdo do arquivo de sistemas de arquivos proc
na pasta.
desteOarquivo
conteúdo
pode ser
visualizado usando o comando # cat /proc/filesystems:

Sistemas de arquivos em um dispositivo Android


Machine Translated by Google

Na saída anterior, a primeira coluna informa se o sistema de arquivos está montado no


dispositivo. Aqueles com a propriedade nodev não são montados no dispositivo.

A segunda coluna lista todos os sistemas de arquivos presentes no dispositivo. Um simples


comando mount exibe diferentes partições disponíveis no dispositivo, como segue:

Partições no dispositivo Android

Em seguida, vamos ver os sistemas de arquivos comuns no Android.


Machine Translated by Google

Sistemas de arquivos comuns encontrados em


Android
Os sistemas de arquivos presentes no Android podem ser organizados basicamente em três categorias principais, como

segue:

Sistemas de arquivos de memória flash

Sistemas de arquivos baseados em mídia

Pseudosistemas de arquivos

Vejamos cada um deles em detalhes.


Machine Translated by Google

Sistemas de arquivos de memória flash

A memória flash é um tipo de memória não volátil (NVM) constantemente


alimentada que retém dados na ausência de uma fonte de alimentação. A memória flash
pode ser apagada e reprogramada em unidades de memória chamadas blocos. Embora
os sistemas de arquivos suportados variem de acordo com o dispositivo e o kernel
subjacente do Linux, os sistemas de arquivos de memória flash comuns são os seguintes:

Tabela de alocação de arquivo estendida (exFAT) é um sistema de arquivos


proprietário da Microsoft que foi criado para ser usado em unidades flash, como
cartões de memória USB e cartões SD. Devido aos requisitos de licença, não faz
parte do kernel padrão do Linux. Mesmo assim, alguns fabricantes fornecem
suporte para esse sistema de arquivos.
Flash Friendly File System (F2FS) foi lançado em fevereiro de 2013 para oferecer
suporte a dispositivos Samsung executando o kernel Linux 3.8. O F2FS depende de
métodos estruturados em log que otimizam a memória flash NAND. Os recursos de
suporte offline são um destaque deste sistema de arquivos, embora ainda seja
transitório e esteja sendo atualizado.
Yet Another Flash File System 2 (YAFFS2) é um sistema de arquivos de
código aberto lançado em 2002. Ele foi projetado principalmente para ser rápido ao
lidar com o flash NAND. O YAFFS2 utiliza Out-of- band (OOB), e isso muitas vezes
não é capturado ou decodificado corretamente durante a aquisição forense, o que
dificulta a análise. Discutiremos isso mais adiante no Capítulo 9, Técnicas de extração
de dados do Android.
YAFFS2 foi o lançamento mais popular em um ponto e ainda é amplamente usado
em dispositivos Android. YAFFS2 é um sistema de arquivos estruturado em log. A
integridade dos dados é garantida, mesmo no caso de uma queda repentina de
energia. Em 2010, houve um anúncio afirmando que nas versões posteriores ao
Gingerbread, os dispositivos passariam do YAFFS2 para o quarto sistema de
arquivos estendido (EXT4). Atualmente, o YAFFS2 não é suportado por versões
mais recentes do kernel, mas alguns fabricantes de dispositivos móveis ainda podem
continuar a apoiá-lo.
Robust File System (RFS) suporta memória flash NAND em dispositivos
Samsung. O RFS pode ser resumido como uma tabela de alocação de arquivos 16
(FAT16) ou sistema de arquivos FAT32, em que o registro no diário é ativado
Machine Translated by Google

através de um log de transações. Muitos usuários reclamam que a Samsung deveria ficar com o EXT4. O RFS é

conhecido por ter tempos de atraso que retardam os recursos do Android.

O próximo na fila são os sistemas de arquivos baseados em mídia.


Machine Translated by Google

Sistemas de arquivos baseados em mídia

A seguir estão alguns dos sistemas de arquivos baseados em mídia suportados por
dispositivos Android.

O Extended File System (EXT), que foi introduzido em 1992 especificamente


para o kernel do Linux, foi um dos primeiros sistemas de arquivos e usava um sistema de
arquivos virtual. EXT2, EXT3 e EXT4 são as versões subsequentes.
O registro no diário é a principal vantagem do EXT3 sobre o EXT2. Com EXT3, se houver
um desligamento inesperado, não há necessidade de verificar o sistema de arquivos. O
sistema de arquivos EXT4 ganhou importância com dispositivos móveis implementando
processadores dual-core. O sistema de arquivos YAFFS2 é conhecido por ter um gargalo em
sistemas dual-core. Com a versão Gingerbread do Android, o sistema de arquivos YAFFS foi
trocado pelo EXT4.

A seguir estão os pontos de montagem que usam EXT4 no celular Samsung Galaxy:

/dev/block/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 /dev/block/ 0


mmcblk0p3 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered
0 0 / dev/block/mmcblk0p8 /cache ext4
rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered 0 0 /dev/block/
mmcblk0p12 /data ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,
data=ordered,n oauto_da_alloc,discard 0 0

Virtual File Allocation Table (VFAT) é uma extensão dos sistemas de arquivos FAT16
e FAT32. O sistema de arquivos FAT32 da Microsoft é compatível com a maioria dos
dispositivos Android. É suportado por quase todos os principais sistemas operacionais,
incluindo Windows, Linux e macOS. Isso permite que esses sistemas leiam, modifiquem e
excluam facilmente os arquivos presentes na parte FAT32 do dispositivo Android. A maioria
dos cartões SD externos são formatados usando o sistema de arquivos FAT32.

Observe a seguinte saída, que mostra que os pontos de montagem /sdcard


e /secure/asec usam o sistema de arquivos VFAT:
Machine Translated by Google

saída do comando de montagem no Android

A categoria final é pseudo sistemas de arquivos.


Machine Translated by Google

Pseudosistemas de arquivos

Pseudo sistemas de arquivos, como o nome sugere, não são arquivos reais, mas um agrupamento lógico
de arquivos. A seguir estão alguns dos pseudosistemas de arquivos importantes no Android:

O sistema de arquivos raiz (rootfs) é um dos principais componentes do Android e contém todas as
informações necessárias para inicializar o dispositivo. Quando o dispositivo inicia o processo de
inicialização, ele precisa acessar muitos arquivos principais e, portanto, monta o sistema de arquivos
raiz. Conforme mostrado na saída da linha de comando de montagem anterior , esse sistema de
arquivos é montado em / (pasta raiz ).
Portanto, este é o sistema de arquivos no qual todos os outros sistemas de arquivos são
montados lentamente. Se este sistema de arquivos estiver corrompido, o dispositivo não poderá
ser inicializado.

O sistema de arquivos sysfs monta a pasta /sys , que contém informações sobre a configuração do
dispositivo. A saída a seguir mostra várias pastas no diretório sys em um dispositivo Android:

Pastas no diretório /sys no Android

Como os dados presentes nessas pastas estão principalmente relacionados à configuração, isso geralmente
não é muito significativo para um investigador forense. Mas pode haver algumas circunstâncias em que
podemos querer verificar se uma configuração específica foi ativada no telefone e analisar essa pasta pode
ser útil nessas condições.
Machine Translated by Google

Observe que cada pasta consiste em um grande número de arquivos. Capturar esses dados por
meio de aquisição forense é o melhor método para garantir que esses dados não sejam alterados
durante um exame.

O sistema de arquivos devpts apresenta uma interface para a sessão do Terminal


em um dispositivo Android. Está montado em /dev/pts. Sempre que uma conexão
Terminal é estabelecida, por exemplo, quando um shell adb é conectado a um
dispositivo Android, um novo nó é criado em /dev/pts. A seguir está a saída
mostrando isso quando o adb shell está conectado ao dispositivo:

shell@Android:/ $ ls -l /dev/pts ls -l /dev/pts crw------- shell


shell 136, 0 26/10/2013 16:56 0

O sistema de arquivos cgroup significa grupos de controle. Os dispositivos


Android usam esse sistema de arquivos para rastrear seu trabalho. Eles são
responsáveis por agregar as tarefas e acompanhá-las. Esses dados geralmente
não são muito úteis durante a análise forense.
O sistema de arquivos proc contém informações sobre estruturas de dados do
kernel, processos e outras informações relacionadas ao sistema no diretório /proc .
Por exemplo, o diretório /sys contém arquivos relacionados aos
parâmetros do kernel. Da mesma forma, /proc/filesystems exibe a lista de
sistemas de arquivos disponíveis no dispositivo. O seguinte comando mostra
todas as informações sobre a unidade central de processamento (CPU) do dispositivo:
Machine Translated by Google

Saída do comando cpuinfo em um dispositivo Android

Da mesma forma, existem muitos outros arquivos úteis que fornecem informações
valiosas quando você os percorre.

O sistema de arquivos tmpfs é um recurso de armazenamento temporário no dispositivo


que armazena os arquivos na RAM (memória volátil). A principal vantagem de usar a
RAM é o acesso e a recuperação mais rápidos. Mas assim que o dispositivo for
reiniciado ou desligado, esses dados não estarão mais acessíveis.
Portanto, é importante que um investigador forense examine os dados na RAM antes
que ocorra a reinicialização do dispositivo ou extraia os dados por meio de métodos de
aquisição de RAM.

As ferramentas forenses de hoje podem facilmente montar esses sistemas de arquivos e


exibir o conteúdo em uma tela de interface gráfica do usuário (GUI) , permitindo assim
que os investigadores forenses naveguem e analisem facilmente os arquivos. Nos primeiros
dias da análise forense do Android, um investigador normalmente precisava executar um conjunto
de comandos do Linux ou do Windows para formatar e visualizar esses sistemas de arquivos.
Machine Translated by Google

Resumo
Neste capítulo, cobrimos os recursos subjacentes do sistema operacional
Android, sistemas de arquivos e outros detalhes que são úteis em uma
investigação forense. Aprendemos sobre recursos de segurança interessantes
integrados ao Android. Ao contrário do iOS, existem várias variantes do Android,
pois muitos dispositivos executam o sistema operacional Android e cada um pode
ter sistemas de arquivos diferentes e recursos exclusivos. O fato de o Android ser
aberto e personalizável também muda o campo de atuação da perícia digital.
Esse conhecimento será útil para entender as técnicas de aquisição forense.

No próximo capítulo, discutiremos como configurar uma estação de trabalho


forense antes de realizar a análise.
Machine Translated by Google

Configuração forense do Android e pré


Técnicas de extração de dados
No capítulo anterior, cobrimos os fundamentos da arquitetura do Android, recursos de
segurança, sistemas de arquivos e outros recursos. Ter um ambiente forense estabelecido antes do
início de um exame é importante, pois garante que os dados sejam protegidos enquanto você, como

examinador, mantém o controle da estação de trabalho. Este capítulo explicará o processo de — e o


que considerar ao — configurar um ambiente de exame forense digital. É fundamental que você
mantenha o controle do ambiente forense em todos os momentos; isso evita a introdução de
contaminantes que poderiam afetar a investigação forense.

Abordaremos os seguintes tópicos neste capítulo:

Configurando um ambiente forense para Android


Conectando um dispositivo Android a uma estação de trabalho
Técnicas de desvio de bloqueio de tela
Obtendo acesso root
Machine Translated by Google

Configurando um ambiente
forense para Android
Como examinador forense, você pode encontrar uma grande variedade de celulares ao
longo de sua investigação. Portanto, é necessário ter um ambiente básico configurado
sobre o qual você possa construir com base nos requisitos. Também é muito importante que
você mantenha controle total sobre o ambiente o tempo todo para evitar situações
inesperadas. A criação de um ambiente de laboratório adequado é uma parte essencial do
processo forense. A configuração forense do Android geralmente envolve as seguintes
etapas:

1. Comece com um ambiente de computador novo ou forense estéril. Esse


significa que outros dados não estão presentes no sistema ou estão contidos de forma
a impedir que contaminem a presente investigação.

2. Instale o software básico necessário para se conectar ao dispositivo. As ferramentas


e metodologias forenses do Android funcionarão nas plataformas Windows, Linux e
macOS.
3. Obtenha acesso ao dispositivo. Você deve ser capaz de habilitar as configurações
ou ignorá-las para permitir que os dados sejam extraídos do dispositivo Android.

4. Emita comandos para o dispositivo usando os métodos definidos neste capítulo


e no Capítulo 9, Técnicas de extração de dados do Android.

As seções a seguir fornecem orientação sobre como configurar uma estação de


trabalho forense Android básica.
Machine Translated by Google

Instalando o software
O Android Software Development Kit (SDK) ajuda o mundo do desenvolvimento a
criar, testar e depurar aplicativos para execução no Android. O SDK do Android vem com
o Android Studio, o ambiente de desenvolvimento integrado (IDE) oficial para o
desenvolvimento de aplicativos Android. O Android Studio fornece documentação valiosa
e outras ferramentas que podem ser de grande ajuda durante a investigação de um
dispositivo Android. Como alternativa, você pode baixar apenas as ferramentas da
plataforma, que são componentes do Android SDK e incluem ferramentas que podem
interagir com a plataforma Android, como ADB, inicialização rápida e assim por diante;
estes serão descritos com mais detalhes nas seções a seguir.

Uma boa compreensão do Android SDK ajudará você a entender as particularidades


de um dispositivo e seus dados no dispositivo.

O Android Studio consiste em bibliotecas de software, APIs, ferramentas, emuladores e outros


materiais de referência. Ele pode ser baixado gratuitamente em https:// developer.android.com/ studio/
inde x.html. As ferramentas da plataforma podem ser baixadas em https:// developer.android.com/ studio/ releases/
ferramentas de plataforma.

Durante uma investigação forense, ter essas ferramentas ajuda você a se conectar e
acessar dados em dispositivos Android. O Android SDK é atualizado com muita frequência,
por isso é importante verificar se sua estação de trabalho também permanece atualizada.
O Android SDK pode ser executado no Windows, Linux e macOS.
Machine Translated by Google

Instalando as ferramentas da plataforma Android

Uma instalação funcional do Android SDK ou das ferramentas da plataforma Android é


obrigatória durante a investigação de um dispositivo forense. A versão Windows do Android
Studio tem cerca de 718 MB e é bastante pesada em comparação com o software para as
ferramentas da plataforma, que tem apenas 20 MB.

A seguir está o procedimento passo a passo para instalar as ferramentas da plataforma


Android em uma máquina com Windows 10:

1. Antes de instalar o Android Studio ou as ferramentas da plataforma, certifique-se de


que seu sistema tenha o Java Development Kit (JDK) instalado, pois o Android SDK
depende do Java SE Development Kit.

O JDK pode ser baixado em http:// www.oracle.com/ technetwork/ java/ javase/ downloads/ index.html.

2. Baixe a versão mais recente das ferramentas da plataforma em https://developer.


android.com/studio/releases/platform-tools.

3. Clique com o botão direito do mouse e extraia os arquivos ZIP para uma pasta. O local
de instalação é de sua escolha e deve ser lembrado para acesso futuro. Neste exemplo,
vamos extraí-lo para a pasta C:\.
4. Abra o diretório (C:\platform-tools) e observe que as seguintes ferramentas
estão listadas:
Machine Translated by Google

Ferramentas da plataforma Android

Isso conclui a instalação básica da ferramenta Android. Se você estiver


instalando a versão completa do Android Studio, ainda deverá ver a pasta de
ferramentas da plataforma no diretório Android recém-instalado.
Machine Translated by Google

Criando um dispositivo virtual Android


Com o Android Studio, você pode criar um dispositivo virtual Android (AVD), também
chamado de emulador, que é frequentemente usado por desenvolvedores na criação de
novos aplicativos; no entanto, um emulador também tem importância do ponto de vista
forense. Os emuladores são úteis ao tentar entender como os aplicativos se comportam
e são executados em um dispositivo. Isso pode ser útil para confirmar certas descobertas
desenterradas durante uma investigação forense.

Além disso, ao trabalhar em um dispositivo executado em uma plataforma mais


antiga, você pode criar um emulador para a mesma plataforma. Além disso, antes de
instalar uma ferramenta forense em um dispositivo real, o emulador pode ser usado para
descobrir como uma ferramenta forense funciona e altera o conteúdo em um dispositivo
Android. Para criar um novo AVD (na estação de trabalho Windows), siga as seguintes etapas:

1. Abra o Android Studio e navegue até Ferramentas | Gerenciador AVD. O


A janela do Android Virtual Device Manager é mostrada na captura de tela a
seguir:
Machine Translated by Google

Gerenciador de dispositivos virtuais Android

2. Clique em Create Virtual Device para criar um novo dispositivo virtual. No


telas a seguir, selecione o hardware apropriado, a imagem do sistema, o nível da
API, o nome do AVD e assim por diante e prossiga. Por exemplo, a captura de tela
a seguir mostra o Android Pie sendo selecionado:
Machine Translated by Google

Configuração do dispositivo virtual

3. Uma mensagem de confirmação é exibida quando o dispositivo é criado


com sucesso. Agora, selecione o AVD e clique no botão Play. 4. Isso deve
iniciar o emulador. Observe que isso pode levar alguns
minutos, ou até mais, dependendo da CPU e da RAM da estação de
trabalho. O emulador consome uma quantidade significativa de recursos no
sistema. Após uma inicialização bem-sucedida, o AVD será executado, conforme
mostrado na captura de tela a seguir:
Machine Translated by Google

O emulador do Android

De uma perspectiva forense, analistas e pesquisadores de segurança podem aproveitar a


funcionalidade de um emulador para entender o sistema de arquivos, armazenamento de
dados e assim por diante. Os dados criados ao trabalhar em um emulador são armazenados
em seu diretório pessoal em uma pasta chamada android. Por exemplo, em nosso
exemplo, os detalhes sobre o emulador Pixel_XL_API_28 que criamos anteriormente são
armazenados em C:\Users\Rohit\.android\avd\Pixel_XL_API_28.avd.

Dentre os diversos arquivos presentes neste diretório, destacam-se os que interessam a um


analista forense:

cache.img: Esta é a imagem de disco da partição /cache (lembre-se que discutimos


a partição /cache de um dispositivo Android no Capítulo 7,
Machine Translated by Google

Entendendo o Android).
sdcard.img: Esta é a imagem de disco da partição do cartão SD.
Userdata-qemu.img: Esta é a imagem de disco da partição /data . A partição /
data contém informações valiosas sobre o usuário do dispositivo.

Agora que entendemos as etapas para configurar o ambiente, vamos


conectar o dispositivo Android a uma estação de trabalho forense.
Machine Translated by Google

Conectando um dispositivo Android a uma


estação de trabalho

A aquisição forense de um dispositivo Android usando ferramentas de código aberto exige


que você conecte o dispositivo a uma estação de trabalho forense. A aquisição forense de
qualquer dispositivo deve ser realizada em uma estação de trabalho forense estéril. Isso
significa que a estação de trabalho é estritamente usada para perícia e não para fins pessoais.
usar.

Observe que sempre que um dispositivo é conectado a um computador, alterações podem ser
feitas no dispositivo; você deve ter controle total de todas as interações com o dispositivo Android
vezes.

As etapas a seguir devem ser executadas por você para conectar com
êxito o dispositivo a uma estação de trabalho. Observe que a proteção contra
gravação pode impedir a aquisição bem-sucedida do dispositivo, pois os comandos
podem precisar ser enviados ao dispositivo para extrair informações. Todas as etapas
a seguir devem ser validadas em um dispositivo de teste antes de experimentá-las em
evidências reais.
Machine Translated by Google

Identificando o cabo do dispositivo


A interface USB física de um dispositivo Android permite que ele se conecte a um
computador para compartilhar dados, como músicas, vídeos e fotos. Essa interface USB
pode mudar de fabricante para fabricante e também de dispositivo para dispositivo. Por
exemplo, alguns dispositivos usam mini-USB enquanto outros usam micro-USB e USB
tipo C. Além disso, alguns fabricantes usam seus próprios formatos proprietários, como
EXT-USB, EXT micro-USB e assim por diante. O primeiro passo para adquirir um
dispositivo Android é determinar que tipo de cabo de dispositivo é necessário.

Existem diferentes tipos, como mini-USB, micro-USB e outros formatos


proprietários. A seguir, uma breve descrição dos tipos de conectores mais usados:

tipo de conector Descrição

Tem aproximadamente 7 x 3 mm de tamanho,


Mini - Um USB com dois dos cantos de um lado comprido levantados
fora.

Tem aproximadamente 6 x 1,5 mm de


Micro-B USB tamanho, com dois cantos cortados para
formar um trapézio.

Coaxial
Tem um orifício circular com um alfinete
espetado no meio. Existem diferentes tamanhos
nesta categoria, variando de 2 a 5 mm de diâmetro.
Amplamente utilizado com modelos Nokia.
Machine Translated by Google

Tem a forma de um retângulo com dois cantos


arredondados. O comprimento do retângulo varia,
D Subminiatura mas a altura é sempre de 1,5 a 2 mm. Usado
principalmente por dispositivos Samsung e LG.

Em seguida, vamos dar uma olhada rápida em como instalar drivers de dispositivo.
Machine Translated by Google

Instalando drivers de dispositivo

Para identificar o dispositivo corretamente, o computador pode precisar da instalação de


alguns drivers. Sem os drivers necessários, o computador pode não identificar e funcionar com
o dispositivo conectado. O problema é que, como o Android pode ser modificado e personalizado
pelos fabricantes, não existe um driver genérico único que funcione para todos os dispositivos
Android. Cada fabricante escreve seus próprios drivers proprietários e os distribui pela Internet,
por isso é importante identificar os drivers de dispositivo específicos que precisam ser
instalados. É claro que alguns kits de ferramentas forenses do Android (que discutiremos nos
próximos capítulos) vêm com alguns drivers genéricos ou um conjunto dos drivers mais usados;
eles podem não funcionar com todos os modelos de telefone Android.

Alguns sistemas operacionais Windows são capazes de detectar automaticamente e instalar


drivers assim que o dispositivo é conectado, mas na maioria das vezes eles falham. Os drivers
de dispositivo de todos os fabricantes podem ser encontrados em seus respectivos sites.
Machine Translated by Google

Acessando o dispositivo conectado


Se ainda não o fez, conecte o dispositivo Android desbloqueado ao computador
diretamente usando o cabo USB. O dispositivo Android aparecerá como uma nova
unidade e você poderá acessar os arquivos no armazenamento externo. Se o
dispositivo estiver bloqueado, neste momento você não poderá acessar nenhum
arquivo e pode ser necessário usar a opção Ativar armazenamento USB, que pode
ser ativada no telefone, conforme mostrado na captura de tela a seguir:

Armazenamento em massa USB na versão Android 4.1


Machine Translated by Google

Com alguns telefones Android (especialmente com HTC), o dispositivo pode expor mais
de uma funcionalidade quando conectado com um cabo USB. Por exemplo, conforme
mostrado na captura de tela a seguir, quando um dispositivo HTC é conectado, ele
apresenta um menu com quatro opções. A seleção padrão é Somente carga. Quando
a opção Unidade de disco é selecionada, ela é montada como uma unidade de disco:

Opções USB móveis HTC

Quando o dispositivo estiver montado como uma unidade de disco, você poderá
acessar o cartão SD presente no dispositivo. Do ponto de vista forense, o cartão SD
tem um valor significativo, pois pode conter arquivos importantes para uma investigação;
no entanto, os dados principais do aplicativo armazenados em /data/data permanecerão
no dispositivo e não poderão ser acessados com esses métodos.
Machine Translated by Google

A ponte de depuração do Android


Considerado um dos componentes mais cruciais na análise forense do Android, o
Android debug bridge (ADB) é uma ferramenta de linha de comando que permite
que você se comunique com o dispositivo Android e o controle. Aprenderemos sobre
o ADB em detalhes nos próximos capítulos; por enquanto, vamos nos concentrar em
uma introdução básica ao ADB. Você pode acessar a ferramenta ADB em /platform
ferramentas/.

Antes de discutirmos qualquer coisa sobre o ADB, precisamos entender


a opção de depuração USB .
Machine Translated by Google

Depuração USB
A principal função desta opção é permitir a comunicação entre o dispositivo Android e a estação
de trabalho na qual o Android SDK está instalado.
Em um telefone Samsung, você pode acessar isso em Configurações | Opções do
desenvolvedor, conforme mostrado na captura de tela a seguir:

A opção de depuração USB em um dispositivo Samsung S8

Outros telefones Android podem ter diferentes ambientes e recursos de configuração. Você
pode ter que forçar a opção Opções do desenvolvedor acessando
Machine Translated by Google

modo de construção.

No entanto, a partir do Android 4.2, o menu Opções do desenvolvedor está oculto para
garantir que os usuários não o habilitem acidentalmente. Para ativá-lo, vá para
Configurações | Sobre o telefone e toque no campo Número da compilação sete vezes.
Depois disso, as Opções do desenvolvedor estarão disponíveis no menu Configurações.
Antes do Android 4.2.2, ativar essa opção era o único requisito para se comunicar com
o dispositivo por ADB; no entanto, a partir do Android 4.2.2, o Google introduziu a opção
de depuração USB segura. Esse recurso permite apenas que hosts explicitamente
autorizados pelo usuário se conectem ao dispositivo usando ADB.

Assim, ao conectar o dispositivo a uma nova estação de trabalho via USB para acessar
o ADB, é necessário primeiro desbloquear o dispositivo e autorizar o acesso pressionando
OK na janela de confirmação, conforme mostrado na captura de tela a seguir. Se Sempre
permitir deste computador estiver marcado, o dispositivo não solicitará autorização no
futuro:

Depuração USB segura

Quando a opção de depuração USB for selecionada, o dispositivo executará o daemon


adb (adbd) em segundo plano e procurará continuamente por uma conexão USB. O
daemon geralmente será executado em uma conta de usuário shell não privilegiada e,
portanto, não fornecerá acesso aos dados completos; no entanto, em telefones com root,
o adbd será executado na conta root e, portanto, fornecerá
Machine Translated by Google

acesso a todos os dados. Não é recomendável fazer root em um dispositivo para obter acesso
total, a menos que todos os outros métodos forenses falhem. Se você optar por fazer root em um
dispositivo Android, os métodos devem ser bem documentados e testados antes de tentar com
evidências reais. O enraizamento será discutido no final deste capítulo.

Na estação de trabalho em que o Android SDK está instalado, o adbd será executado como
um processo em segundo plano. Além disso, na mesma estação de trabalho, será executado
um programa cliente, que pode ser invocado a partir de um shell emitindo o comando adb .
Quando o cliente adb é iniciado, ele primeiro verifica se um daemon adb já está em
execução. Se a resposta for negativa, ele inicia um novo processo para iniciar o daemon
adb . O programa cliente adb se comunica com o adbd local pela porta 5037.
Machine Translated by Google

Acessando o dispositivo usando adb


Depois que a configuração do ambiente estiver concluída e o dispositivo Android estiver
no modo de depuração USB, conecte o dispositivo Android à estação de trabalho forense
com um cabo USB e comece a usar o adb.
Machine Translated by Google

Detectando dispositivos conectados


O seguinte comando adb fornece uma lista de todos os dispositivos conectados à
estação de trabalho forense. Isso também listará o emulador se estiver em execução
no momento da emissão do comando. Lembre-se também de que, se os drivers
necessários não estiverem instalados, o seguinte comando mostrará uma
mensagem em branco. Se você encontrar essa situação, baixe os drivers
necessários do fabricante e instale-os:

Agora temos uma lista de dispositivos conectados à estação de trabalho. A seguir,


veremos como matar o servidor ADB local.
Machine Translated by Google

Matando o servidor ADB local


O seguinte comando mata o serviço adb local:

C:\android-sdk\platform-tools>adb.exe kill-server

Depois de matar o serviço adb local , emita o comando adb devices. Você verá que o
servidor é iniciado, conforme mostrado na captura de tela a seguir:

Agora vamos acessar o shell ADB no dispositivo Android.


Machine Translated by Google

Acessando o adb shell


O comando ADB shell permite que você acesse o shell em um dispositivo
Android e interaja com o dispositivo.

A seguir está o comando para acessar o shell adb e executar um comando ls básico
para ver o conteúdo do diretório atual:

C:\android-sdk\platform-tools>adb.exe shell shell@android:/ $ ls ls acct cache


config d data default.prop dev efs etc fábrica fstab.smdk4x12 init init.bt.rc
init.goldfish.rc init .rc init.smdk4x12.rc init.smdk4x12.usb.rc

....

O emulador do Android pode ser usado por você para executar e entender
comandos adb antes de usá-los no dispositivo. No Capítulo 9, Técnicas de
extração de dados do Android, explicaremos mais sobre como aproveitar o adb para
instalar aplicativos, copiar arquivos e pastas do dispositivo, visualizar logs do dispositivo e
breve.
Machine Translated by Google

Comandos básicos do Linux


Vamos agora dar uma olhada rápida em alguns comandos Linux comumente usados e seu
uso em relação a um dispositivo Android:

ls: O comando ls (sem opção) lista os arquivos e diretórios presentes no diretório


atual. Com a opção -l , este comando mostra arquivos e diretórios e também seu
tamanho, data e hora de modificação, o proprietário do arquivo e sua permissão e assim
por diante, conforme mostrado na seguinte saída de linha de comando:

shell@android:/ $ ls -l ls -l
drwxr-xr-x root drwxrwx---
cache do sistema dr-x------ root
raiz 17/01/2015 10:13 conta
lrwxrwxrwx root 31-05-2014 14:55 cache
raiz 17/01/2015 10:13 configuração
raiz 17/01/2015 10:13 d ->
/sys/kernel/debug
drwxrwx--x system system -rw-r--r-- 17/01/2015 10:13 dados
root root drwxr-xr-x root rootdrwxrwx-- 116 1970-01-01 05:30 default.prop 2015-01-17
x radio lrwxrwxrwx root 10:13 dev 2013-08-13 09:34 efs
raiz do 2015-01-17 10:13 etc -> /system/etc
sistema
...

Da mesma forma, a seguir estão algumas opções que podem ser usadas junto com o comando
ls:

Opção Descrição

a Lista arquivos ocultos

c Exibe arquivos por timestamp

d Exibe apenas diretórios


Machine Translated by Google

n Exibe a listagem de formato longo, com números GID


e UID.

R Exibe subdiretórios também

t Exibe arquivos com base no registro de data e hora

você Exibe o tempo de acesso ao arquivo

Dependendo dos requisitos, uma ou mais das seguintes opções podem ser usadas pelo
investigador para visualizar os detalhes:

cat: O comando cat lê um ou mais arquivos e os imprime na saída padrão,


conforme mostrado nas seguintes linhas de comando:

shell@android:/ $ cat default.prop cat


default.prop # #
ADDITIONAL_DEFAULT_PROPERTIES #
ro.secure=1 ro.allow.mock.location=0
ro.debuggable=0 persist.sys.usb.config=mtp

Para combinar vários arquivos em um, podemos usar o operador > . Para anexar
a um arquivo existente, podemos usar o operador >>.

cd: O comando cd é usado para mudar de um diretório para outro.


Isso é usado com mais frequência ao navegar de uma pasta para outra. O exemplo
a seguir mostra os comandos usados para mudar para a pasta do sistema:

shell@android:/ $ cd /sistema cd /
sistema
Machine Translated by Google

shell@android:/ sistema $

cp: O comando
cp pode ser usado para copiar um arquivo de um local para outro. A sintaxe desse

comando é a seguinte:

$ cp [opções] <fonte><destino>

chmod: O comando chmod é usado para alterar as permissões de acesso aos objetos do sistema de
arquivos (arquivos e diretórios). Também pode alterar sinalizadores de modo especial. A sintaxe desse
comando é a seguinte:

$ chmod [opção] arquivos de modo

Por exemplo, chmod 777 em um arquivo fornece permissões de leitura,


gravação e execução para todos.

dd: O comando dd é utilizado para copiar um arquivo, convertendo-o e formatando-o de


acordo com os operandos. Com o Android, o comando dd pode ser usado para criar uma
imagem bit a bit do dispositivo Android. Mais detalhes sobre imagens são abordados no
Capítulo 4, Aquisição de dados de backups do iOS.
A seguir está a sintaxe que precisa ser usada com este comando:

dd if=/test/file of=/sdcard/sample.image

rm: O comando rm pode ser usado para excluir arquivos ou diretórios. A seguir está a sintaxe

para este comando:

rm file_name

grep: O grep comando é usado para pesquisar arquivos ou saída para um determinado

padrão. A sintaxe desse comando é a seguinte:

grep [opções] padrão [arquivos]

pwd: O comando pwd exibe o diretório de trabalho atual. Por exemplo, a seguinte saída de linha
de comando mostra que o diretório de trabalho atual é /system:

shell@android:/ sistema $ pwd


pwd /sistema
Machine Translated by Google

mkdir: O comando mkdir é usado para criar um novo diretório. A


seguir está a sintaxe para este comando:

mkdir [opções] diretórios

exit: O comando exit pode ser usado para sair do shell em que você está.
Basta digitar exit no shell para sair dele.

A seguir, veremos como lidar com um dispositivo Android de forma eficiente antes
da investigação.
Machine Translated by Google

Manipulando um dispositivo Android


Manusear um dispositivo Android de maneira adequada antes da investigação forense
é uma tarefa muito importante. Deve-se ter cuidado para garantir que nossas ações não
intencionais não resultem na modificação de dados ou em qualquer outro acontecimento
indesejado. As seções a seguir lançam luz sobre certas questões que precisam ser
consideradas durante o manuseio do dispositivo nos estágios iniciais de uma investigação
forense.

Com melhorias na tecnologia, o conceito de bloqueio de dispositivos mudou


efetivamente nos últimos anos. A maioria dos usuários agora tem um mecanismo de
bloqueio por senha ativado em seu dispositivo devido ao aumento da conscientização
geral sobre segurança. Antes de examinarmos algumas das técnicas usadas para
contornar dispositivos Android bloqueados, é importante não perdermos a oportunidade de
desativar a senha quando houver uma chance.

Quando um dispositivo Android a ser analisado for acessado pela primeira vez, verifique
se o dispositivo ainda está ativo (desbloqueado). Nesse caso, altere as configurações do
dispositivo para permitir maior acesso ao dispositivo. Quando o dispositivo ainda estiver ativo,
considere executar as seguintes tarefas:

Habilitando a depuração USB: Uma vez habilitada a opção de depuração


USB, ela oferece maior acesso ao dispositivo por meio da conexão adb . Isso
é de grande importância quando se trata de extrair dados do dispositivo. A localização
da opção para habilitar a depuração USB pode mudar de dispositivo para dispositivo,
mas geralmente está em Opções do desenvolvedor em Configurações. A maioria dos
métodos de aquisição física de dispositivos Android exige que a depuração USB esteja
ativada.
Ativando a configuração Ficar acordado: Se a opção Ficar acordado for selecionada
e o dispositivo estiver conectado para carregar, o dispositivo nunca será bloqueado.
Novamente, se o dispositivo travar, a aquisição pode ser interrompida.
Aumentar o tempo limite da tela: é o tempo em que o dispositivo ficará efetivamente
ativo depois de desbloqueado. O local para acessar essa configuração varia dependendo
do modelo do dispositivo. Em um Samsung
Machine Translated by Google

telefone Galaxy S3, você pode acessar essa configuração navegando para
Configurações | Exibição | ScreenTimeout.

Além disso, conforme mencionado no Capítulo 1, Introdução à perícia forense


móvel, o dispositivo precisa ser isolado da rede para garantir que as opções de limpeza
remota não funcionem no dispositivo. O Gerenciador de dispositivos Android permite que
o telefone seja apagado ou bloqueado remotamente. Isso pode ser feito fazendo login na
conta do Google, configurada no celular. Mais detalhes sobre isso são fornecidos na
seção a seguir. Se o dispositivo Android não estiver configurado para permitir a limpeza
remota, o dispositivo só poderá ser bloqueado usando o Gerenciador de dispositivos Android.
Existem também vários produtos de software de gerenciamento de dispositivos móveis
(MDM) disponíveis no mercado, que permitem aos usuários bloquear ou limpar remotamente
o dispositivo Android. Alguns deles podem não exigir que configurações específicas sejam
ativadas no dispositivo.

Usando o software de limpeza remota disponível, é possível excluir todos os dados,


incluindo e-mails, aplicativos, fotos, contatos e outros arquivos, bem como aqueles
encontrados no cartão SD. Para isolar o dispositivo da rede, você pode colocar o dispositivo
no modo avião e desativar o Wi-Fi como precaução extra. Ativar o modo avião e desativar o
Wi-Fi funciona bem, pois o dispositivo não poderá se comunicar por uma rede celular e não
poderá
ser acessado via Wi-Fi. Remover o cartão SIM do telefone também é uma opção, mas
isso não impede efetivamente que o dispositivo se comunique por Wi-Fi ou outras redes
celulares. Para colocar o dispositivo no modo avião, pressione e segure o botão Desligar e
selecione Modo avião.

Todas essas etapas podem ser executadas quando o dispositivo Android não
estiver bloqueado; no entanto, durante a investigação, geralmente encontramos dispositivos
bloqueados. Portanto, é importante entender como ignorar o código de bloqueio se ele
estiver ativado em um dispositivo Android.
Machine Translated by Google

Técnicas de desvio de bloqueio de tela


Devido ao aumento da conscientização do usuário e à facilidade de funcionalidade,
houve um aumento exponencial no uso de opções de senha para bloquear dispositivos
Android. Isso significa que ignorar o bloqueio de tela do dispositivo durante uma
investigação forense se torna cada vez mais importante. A aplicabilidade das técnicas de
desvio de bloqueio de tela discutidas até agora é baseada na situação. Observe que alguns
desses métodos podem resultar em alterações no dispositivo. Certifique-se de testar e
validar todas as etapas listadas em dispositivos Android não comprovados. Você deve ter
autorização para fazer as alterações necessárias no dispositivo, documentar todas as
etapas realizadas e ser capaz de descrevê-las se for necessário um testemunho no tribunal.

Atualmente, existem três tipos de mecanismos de bloqueio de tela oferecidos pelo


Android. Embora existam alguns dispositivos com opções de bloqueio por voz, bloqueio
facial e bloqueio por impressão digital, limitaremos nossa discussão às três opções a
seguir, pois são as mais usadas em todos os dispositivos Android:

Bloqueio de padrão: o usuário define um padrão ou desenho no telefone e o


mesmo padrão deve ser desenhado para desbloquear o dispositivo. O Android foi o
primeiro smartphone a introduzir um padrão de bloqueio.
Código PIN: Esta é a opção de bloqueio mais comum e é encontrada em muitos
telefones celulares. O código PIN é um número de quatro dígitos que precisa ser
inserido para desbloquear o dispositivo.
Senha: Esta é uma senha alfanumérica. Ao contrário do PIN, que leva quatro
dígitos, a senha alfanumérica inclui letras e dígitos.

A seção a seguir detalha algumas técnicas que você pode usar para ignorar esses
mecanismos de bloqueio do Android. Dependendo da situação, essas técnicas podem
ajudar um investigador a contornar o bloqueio de tela.
Machine Translated by Google

Usando o ADB para ignorar o bloqueio


de tela

Se a depuração USB parece estar habilitada no dispositivo Android, é aconselhável


aproveitá-la conectando-se com adb usando uma conexão USB, conforme discutido
nas seções anteriores deste capítulo. Você deve conectar o dispositivo à estação
de trabalho forense e emitir o comando adb devices. Se o dispositivo aparecer,
significa que a depuração USB está ativada. Se o dispositivo Android estiver
bloqueado, você deve tentar ignorar o bloqueio de tela. Os dois métodos a seguir
podem permitir que você ignore o bloqueio de tela quando a depuração USB estiver
habilitada.
Machine Translated by Google

Excluindo o arquivo gesto.key


Excluir o arquivo gesto.key removerá o padrão de bloqueio do dispositivo; no entanto, é
importante observar que isso alterará permanentemente o dispositivo, pois o bloqueio de padrão
desapareceu. Isso deve ser considerado se você estiver conduzindo operações secretas. A
seguir, mostramos como o processo é feito:

1. Conecte o dispositivo à estação de trabalho forense (uma máquina Windows,


em nosso exemplo) usando um cabo USB.

2. Abra o prompt de comando e execute as seguintes instruções:

shell adb.exe
cd /data/sistema rm gesto.chave

3. Reinicie o dispositivo. Se o bloqueio de padrão ainda aparecer, basta desenhar


qualquer desenho aleatório e o dispositivo deve desbloquear sem nenhum problema.

Este método funciona quando o dispositivo está enraizado. Este método pode não ser bem-sucedido
em dispositivos não rooteados. O enraizamento de um dispositivo Android não deve ser realizado sem a
devida autorização, pois o dispositivo está alterado.
Machine Translated by Google

Atualizando o arquivo settings.db


Para atualizar o arquivo settings.db , siga as seguintes etapas:

1. Conecte o dispositivo à estação de trabalho forense usando um cabo USB.


2. Abra o prompt de comando e execute o seguinte: /
data/data/com.android.providers.settings/databases sqlite3 settings.db:

3. Saia e reinicie o dispositivo.


4. O dispositivo Android deve estar desbloqueado. Se não estiver, tente remover o
gesto.key conforme explicado anteriormente.

Vamos dar uma olhada no modo de recuperação e na conexão ADB na seção a


seguir.
Machine Translated by Google

Verificando o modo de recuperação


modificado e a conexão ADB
No Android, a recuperação refere-se à partição dedicada onde o console de recuperação
está presente. As duas principais funções de recuperação são excluir todos os dados do
usuário e instalar atualizações. Por exemplo, quando você redefine o telefone de fábrica, a
recuperação inicializa e exclui todos os dados. Da mesma forma, quando as atualizações
devem ser instaladas no telefone, isso é feito no modo de recuperação.

Existem muitos usuários entusiastas do Android que instalam uma ROM


personalizada por meio de um módulo de recuperação modificado. Este módulo de
recuperação modificado é usado principalmente para facilitar o processo de instalação da
ROM personalizada. O modo de recuperação pode ser acessado de diversas formas,
dependendo do fabricante do aparelho; informações sobre qual método é adequado para
quais dispositivos do fabricante estão facilmente disponíveis na Internet. Normalmente, isso
é feito mantendo teclas diferentes juntas, como o botão de volume e o botão liga/desliga.
Uma vez no modo de recuperação, conecte o dispositivo à estação de trabalho e tente
acessar a conexão adb . Se o dispositivo tiver um modo de recuperação que não seja
modificado, talvez você não consiga acessar a conexão adb . Versões de recuperação
modificadas do dispositivo apresentam ao usuário diferentes opções, conforme mostrado na
captura de tela a seguir:
Machine Translated by Google

A seguir, veremos como atualizar a partição de recuperação.


Machine Translated by Google

Piscando uma nova partição de recuperação


Existem mecanismos disponíveis para atualizar a partição de recuperação de um
dispositivo Android com uma imagem modificada. O utilitário fastboot facilita esse processo.
Fastboot é um protocolo de diagnóstico que vem com o pacote SDK e é usado principalmente
para modificar o sistema de arquivos flash por meio de uma conexão USB de um computador
host. Para isso, você precisa iniciar o dispositivo no modo boot loader, no qual apenas a
inicialização mais básica do hardware é realizada.

Assim que o protocolo estiver ativado no dispositivo, ele aceitará um conjunto específico de
comandos que são enviados a ele por meio do cabo USB usando uma linha de comando.
Atualizar ou reescrever uma partição com uma imagem binária armazenada no computador é
um desses comandos permitidos. Assim que a recuperação for iniciada, inicialize o dispositivo
no modo de recuperação, monte as partições /data e /system e use adb para remover o arquivo
gesto.chave . Reinicie o telefone e você poderá ignorar o bloqueio de tela; no entanto, isso
funciona apenas se o carregador de inicialização do dispositivo estiver desbloqueado. Além
disso, piscar altera permanentemente o dispositivo. Em vez de piscar, você pode usar o comando
fastboot boot para inicializar uma imagem de recuperação temporariamente para excluir o
arquivo de chave sem alterar permanentemente a partição de recuperação.
Machine Translated by Google

Usando ferramentas automatizadas

Existem várias soluções automatizadas disponíveis no mercado para desbloquear dispositivos Android.
Ferramentas comerciais, como Cellebrite e XRY, são capazes de contornar os bloqueios de tela, mas a
maioria delas exige que a depuração USB seja habilitada. Vamos agora examinar como desbloquear um
dispositivo Android usando a ferramenta de recuperação de código de bloqueio de usuário UFED. Esta
ferramenta funciona apenas nos dispositivos que suportam USB OTG. Esse processo também requer uma
câmera UFED, cabo nº 500-Bypass lock e cabo nº 501-Bypass lock. Depois que a ferramenta estiver
instalada na estação de trabalho, siga as etapas a seguir para desbloquear o dispositivo Android:

1. Execute a ferramenta na estação de trabalho e pressione 1, conforme mostrado a seguir


captura de tela:

Ferramenta de recuperação de código de bloqueio de usuário UFED

2. Agora, conecte o lado A do Cabo No. 500-Bypasslock a uma porta USB da estação de trabalho.
Além disso, conecte o lado B do Cabo No. 500-Bypasslock ao
Machine Translated by Google

Cabo nº 501- OTG e depois conecte a outra ponta ao aparelho.

3. Depois de conectada, a ferramenta solicita que você selecione o perfil de recuperação.


Selecione [1] Selecione manualmente o perfil de recuperação.
4. Agora, selecione o tipo de bloqueio usado no dispositivo e o perfil de recuperação e prossiga
seguindo as instruções na tela.

5. Depois disso, verifique se o teclado aparece na tela do dispositivo e


que está pronto para aceitar o código PIN.
6. Feche todas as janelas de mensagem que possam aparecer. Pressione 1 e pressione Enter.
Agora, faça cinco tentativas incorretas de login inserindo uma entrada aleatória e clique em
Esqueci o padrão na parte inferior do dispositivo.
7. Siga as instruções na tela, aguarde a abertura da janela da câmera e clique na janela da
câmera.
8. Use o cursor para selecionar qualquer área não vazia na tela do dispositivo,
colocando o quadrado verde sobre ele - por exemplo, selecione qualquer número na tela. Isso é
usado pela ferramenta para detectar se o dispositivo está desbloqueado. Pressione Enter para
iniciar o processo.
9. A ferramenta tentará várias combinações para desbloquear o dispositivo. Uma vez desbloqueado,
ele solicitará que você finalize o processo.

Agora aprenderemos sobre o Gerenciador de dispositivos Android e como desbloquear um dispositivo


usando-o.
Machine Translated by Google

Usando o Gerenciador de dispositivos Android

A maioria dos telefones Android mais recentes vem com um serviço chamado Android
Device Manager, que ajuda o proprietário de um dispositivo a localizar o telefone perdido.
Este serviço também pode ser usado para desbloquear um dispositivo; no entanto, isso só
é possível quando você conhece as credenciais da conta do Google configuradas no
dispositivo. Se você tiver acesso às credenciais da conta, siga estas etapas para desbloquear
o dispositivo:

1. Visite http://google.com/android/devicemanager em sua estação de trabalho.


2. Faça login usando a conta do Google configurada no dispositivo.
3. Selecione o dispositivo que deseja desbloquear e clique em Bloquear, conforme mostrado
na captura de tela a seguir:
Machine Translated by Google

Gerenciador de dispositivos Android

4. Digite uma senha temporária e clique em Bloquear novamente.


5. Depois de bem-sucedido, digite a senha temporária no dispositivo para
desbloqueie-o.

Isso pode ser feito sem conhecer as credenciais do computador no qual o login foi
salvo (ou seja, o PC do suspeito).
Machine Translated by Google

Ignorar usando Find My Mobile (para


Apenas telefones Samsung)
Usar Find My Mobile é uma técnica que vale a pena tentar se você estiver
lidando com um dispositivo Samsung; no entanto, ele só funciona se o proprietário
do dispositivo já estiver conectado à conta Samsung no dispositivo e você souber
as credenciais da Samsung configuradas no dispositivo.

Para iniciar o processo, acesse o serviço Find My Mobile a partir do navegador


da web e faça o login usando as credenciais da Samsung account cadastradas no
dispositivo, da seguinte forma:

1. Toque na opção Bloquear minha tela localizada no lado esquerdo.:


Machine Translated by Google

2. Agora, insira qualquer PIN temporário e toque no botão Bloquear. (Você


também pode ver a opção desbloquear minha tela para alguns dispositivos, que também
serve para o mesmo propósito). O telefone agora pode ser desbloqueado com o PIN
temporário definido anteriormente.

Em seguida, vamos dar uma olhada em um ataque de manchas.


Machine Translated by Google

ataque de manchas

Em casos raros, um ataque de manchas pode ser usado para deduzir a senha de um
dispositivo móvel com tela sensível ao toque. Este ataque se baseia na identificação
das manchas deixadas pelos dedos do usuário. Embora isso possa representar um método
de desvio, deve-se dizer que é improvável que um ataque de manchas funcione, já que a
maioria dos dispositivos Android é touchscreen e manchas também estarão presentes ao
usar o dispositivo; no entanto, foi demonstrado que, sob iluminação adequada, as manchas
deixadas para trás podem ser facilmente detectadas, conforme mostrado na captura de
tela a seguir.

Ao analisar as marcas de manchas, podemos discernir o padrão usado para desbloquear


a tela. É mais provável que esse ataque funcione ao identificar o bloqueio de padrão no
dispositivo Android. Em alguns casos, os códigos PIN também podem ser recuperados
dependendo da limpeza da tela. Portanto, durante uma investigação forense, deve-se
tomar cuidado ao manusear o dispositivo pela primeira vez para garantir que a tela não
seja tocada:
Machine Translated by Google

Manchas visíveis em um dispositivo sob iluminação adequada

Agora veremos o próximo método, que é a opção de senha


esquecida.
Machine Translated by Google

Usando a opção esqueci a senha/


esqueci o padrão
Se você souber o nome de usuário e a senha do endereço principal do Gmail
configurado no dispositivo, poderá alterar o PIN, a senha ou deslizar o dedo no
dispositivo. Depois de fazer um certo número de tentativas fracassadas de desbloquear
a tela, o Android oferece uma opção chamada Esqueceu o padrão? ou Esqueceu a
senha?, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Esqueci a opção de padrão em um dispositivo Android

Toque nesse link e faça login usando o nome de usuário e a senha do Gmail. Isso
permitirá que você crie um novo padrão de bloqueio ou senha para o dispositivo.

Observe que isso funciona apenas em dispositivos com Android 4.4 ou anterior.
Machine Translated by Google

Ignorando telas de bloqueio de terceiros


inicializando no modo de segurança
Se o bloqueio de tela for um aplicativo de terceiros, em vez do bloqueio embutido, ele pode ser
ignorado inicializando no modo de segurança e desativando-o. Para inicializar no modo de
segurança em um dispositivo Android 4.1 ou posterior, pressione e segure o botão liga/ desliga
até que o menu de opções de energia apareça. Em seguida, pressione e segure o botão Liga /
Desliga e você será solicitado a reiniciar seu dispositivo Android no modo de segurança. Toque
no botão OK, conforme mostrado na captura de tela a seguir:

Modo de segurança no Android

Quando estiver no modo de segurança, você pode desativar o aplicativo de tela de bloqueio de
terceiros ou desinstalá-lo completamente. Depois disso, reinicie o dispositivo e você poderá
acessá-lo sem nenhuma tela de bloqueio.
Machine Translated by Google

Desvio seguro de depuração USB


usando chaves ADB
Conforme mencionado anteriormente, ao usar a depuração USB, se a opção
Sempre permitir deste computador estiver marcada, o dispositivo não solicitará
autorização no futuro. Isso é feito armazenando certas chaves, a saber, adbkey e
adbkey.pub, no computador. Qualquer tentativa de se conectar ao adb de um
computador não confiável é negada. Nesse caso, os arquivos adbkey e adbkey.pub
podem ser extraídos do computador do suspeito e copiados para a estação de trabalho
do investigador. O dispositivo assumirá então que está se comunicando com um
computador conhecido e autorizado. Os arquivos adbkey e adbkey.pub podem ser
encontrados em C:Users<username>.android em máquinas Windows.
Machine Translated by Google

Desvio seguro de depuração USB no Android


4.4.2

Conforme explicado nas seções anteriores, o recurso seguro de depuração


USB introduzido no Android 4.4.2 permite que apenas estações de trabalho autorizadas
se conectem ao dispositivo; no entanto, há um bug nesse recurso, conforme relatado em
https://lab s.mwrinfosecurity.com/, que permite ao usuário ignorar o recurso de depuração
USB segura e conectar o dispositivo a qualquer estação de trabalho. Aqui estão as etapas
a seguir para ignorar a depuração USB segura em um dispositivo Android:

1. Em um dispositivo desbloqueado, tente usar adb. Uma mensagem de erro será


exibida pelo dispositivo.
2. Agora, navegue até o discador de emergência ou a câmera da tela de bloqueio
e execute os seguintes comandos:

$ adb kill-server $ adb


shell

3. A caixa de diálogo de confirmação será acionada e a estação de trabalho agora


pode ser autorizada sem desbloquear o dispositivo. A caixa de diálogo de
confirmação será exibida no discador de emergência, conforme mostrado na
captura de tela a seguir:
Machine Translated by Google

Depuração USB segura no Android 4.2.2

4. Uma vez conectado ao dispositivo através do adb, tente ignorar a tela de bloqueio
usando o seguinte comando:

$ adb shell pm clear com.android.keyguard

A seguir, vamos ver como contornar o bloqueio de tela travando a tela de bloqueio.
Machine Translated by Google

Falhando a IU da tela de bloqueio no


Android 5.x

Em dispositivos com Android 5.0 a 5.1.1, a tela de bloqueio de senha (não o


PIN ou os bloqueios de padrão) pode ser ignorada travando a IU da tela. Isso
pode ser feito executando as seguintes etapas, conforme explicado em https://a
ndroid.gadgethacks.com/:

1. Clique na opção Chamada de emergência na tela de bloqueio e insira qualquer


entrada aleatória (por exemplo, 10 asteriscos) na tela do discador.
2. Toque duas vezes no campo para realçar o texto digitado, conforme
mostrado na captura de tela a seguir, e selecione Copiar. Agora, cole-o no
mesmo campo:
Machine Translated by Google

Falha na interface do usuário da tela de bloqueio

3. Repita este processo para adicionar mais caracteres. Faça isso até que o campo
não destaque mais os caracteres ao tocar duas vezes.
4. Volte para a tela de bloqueio e abra o atalho da câmera. Agora, abra a tela de
notificações e toque no ícone Configurações. Em seguida, você será solicitado a
inserir uma senha.

5. Pressione e segure o campo de entrada e selecione Colar, repita este processo


várias vezes. Depois que caracteres suficientes forem colados no campo, a tela
de bloqueio falhará, permitindo que você acesse o dispositivo.
Machine Translated by Google

Agora, vamos ver mais algumas técnicas.


Machine Translated by Google

Outras técnicas
Todas as técnicas mencionadas e ferramentas comerciais disponíveis são úteis
para qualquer examinador forense, como você, tentando obter acesso aos dados em
um dispositivo Android; no entanto, pode haver situações em que nenhuma dessas
técnicas funcione. Para obter uma imagem física completa do dispositivo, técnicas
como chip-off e JTAG podem ser necessárias quando as soluções comerciais e de
código aberto falham. Uma breve descrição dessas técnicas está incluída aqui.

Enquanto a técnica chip-off remove o chip de memória de um circuito e tenta lê-lo, a


técnica JTAG envolve sondar as portas de acesso de teste JTAG (TAPs) e soldar
conectores às portas JTAG para ler dados da memória do dispositivo. A técnica de
chip-off é mais destrutiva porque, uma vez que o chip é removido de um dispositivo,
é difícil restaurá-lo ao seu estado funcional original. Além disso, é necessária experiência
para remover cuidadosamente o chip do dispositivo dessoldando o chip da placa de
circuito. O calor necessário para remover o chip também pode danificar ou destruir os
dados armazenados nesse chip, o que significa que essa técnica deve ser usada
somente quando os dados não puderem ser recuperados por ferramentas comerciais
ou de código aberto ou o dispositivo estiver danificado além do reparo. Ao usar a
técnica JTAG, as portas JTAG ajudam você a acessar o chip de memória para
recuperar uma imagem física dos dados sem a necessidade de remover o chip. Para
desativar o bloqueio de tela em um dispositivo, você pode identificar onde o código de
bloqueio está armazenado no despejo de memória física, desativar o bloqueio e copiar
esses dados de volta para o dispositivo.
Ferramentas comerciais, como o Cellebrite Physical Analyzer, podem aceitar
arquivos .bin de aquisições de chip-off e JTAG e decifrar o código de bloqueio para você.
Depois que o código for removido manualmente ou quebrado, você poderá analisar
o dispositivo usando técnicas normais.

As técnicas de chip-off e JTAG requerem extensa pesquisa e experiência para serem tentadas em
um dispositivo real. Um ótimo recurso para JTAG e chip-off em dispositivos pode ser encontrado
em https:// forensicswiki.xyz/ page/ Main_Page.
Machine Translated by Google

Nesta seção, analisamos várias maneiras de contornar um bloqueio de tela no


dispositivo Android. Agora vamos aprender o que é o enraizamento do Android.
Machine Translated by Google

Obtendo acesso root


Como um examinador forense de dispositivos móveis, é essencial que
você saiba tudo o que se relaciona a torcer e ajustar o dispositivo. Isso ajudará
você a entender o funcionamento interno do dispositivo em detalhes e entender
muitos problemas que você pode enfrentar durante sua investigação.
Enraizar telefones Android tornou-se um fenômeno comum, e você pode esperar
encontrar telefones enraizados durante exames forenses. Quando aplicável,
você também pode precisar fazer root no dispositivo para adquirir dados para
exame forense. Isso significa que é importante conhecer os meandros dos
dispositivos com root e como eles são diferentes de outros telefones. As seções
a seguir cobrem informações sobre como fazer root no Android e outros conceitos
relacionados.
Machine Translated by Google

O que é enraizamento?

A conta administrativa padrão em sistemas operacionais do tipo Unix é chamada root. No Linux,
o usuário root tem o poder de iniciar/interromper qualquer serviço do sistema, editar/excluir
qualquer arquivo, alterar os privilégios de outros usuários e assim por diante. Já aprendemos que
o Android usa o kernel do Linux e, portanto, a maioria dos conceitos do Linux também se aplica ao
Android; no entanto, a maioria dos telefones Android não permite que você faça login como usuário
root por padrão.

Fazer root em um telefone Android é obter acesso ao dispositivo para executar ações que
normalmente não são permitidas no dispositivo. Os fabricantes desejam que os dispositivos
funcionem de uma determinada maneira para usuários normais. Enraizar um dispositivo pode
anular a garantia, pois o uso de root abre o sistema para vulnerabilidades e fornece ao usuário
recursos de superusuário.

Imagine um aplicativo malicioso obtendo acesso a todo um sistema Android com acesso root.
Lembre-se de que, no Android, cada aplicativo é tratado como um usuário separado e recebe um
UID. Isso significa que os aplicativos têm acesso a recursos limitados e o conceito de isolamento
de aplicativos é aplicado. Essencialmente, fazer root em um dispositivo Android permite recursos
de superusuário e fornece acesso aberto ao dispositivo Android.

Os recursos de superusuário são semelhantes aos recursos de administrador em uma


máquina Windows e fornecem acesso privilegiado para executar ações que não podem ser
executadas por um usuário normal. Em celulares, esse acesso de superusuário é desativado
por design, mas fazer root em um telefone permite que você obtenha esse privilégio.
Machine Translated by Google

Entendendo o processo de enraizamento


Embora os fabricantes de hardware tentem impor restrições suficientes para restringir
o acesso à raiz, os hackers sempre encontraram maneiras diferentes de obter acesso à
raiz. O processo de root varia dependendo do fabricante do dispositivo subjacente; no
entanto, fazer root em qualquer dispositivo geralmente envolve explorar um bug de
segurança no firmware do dispositivo e, em seguida, copiar o binário su (superusuário)
para um local no caminho do processo atual (/system/xbin/su) e conceder a ele
permissões executáveis com o comando chmod .

Para simplificar, imagine que um dispositivo Android tenha de três a quatro partições,
que executam programas não totalmente relacionados ao Android (o Android é um deles).

O gerenciador de inicialização está presente na primeira partição e é o primeiro programa


executado quando o telefone é ligado. A principal tarefa deste gerenciador de
inicialização é inicializar outras partições e carregar a partição Android, comumente
chamada de ROM por padrão. Para ver o menu do carregador de inicialização, é
necessária uma combinação de teclas específica, como segurar o botão liga / desliga e
pressionar o botão de aumentar o volume. Este menu fornece opções para você inicializar
em outras partições, como a partição de recuperação.

A partição de recuperação lida com a instalação de atualizações no telefone, que são


gravadas diretamente na partição ROM do Android. Este é o modo que você vê quando
instala qualquer atualização oficial no dispositivo. Os fabricantes de dispositivos garantem
que apenas atualizações oficiais sejam instaladas por meio da partição de recuperação.
Isso significa que ignorar essa restrição permitiria que você instalasse/flash qualquer ROM
desbloqueada do Android. Os programas de recuperação modificados são aqueles que
não apenas permitem um processo de root mais fácil, mas também fornecem várias
opções que não são vistas no modo de recuperação normal. A captura de tela a seguir
mostra o modo de recuperação normal:
Machine Translated by Google

Modo normal de recuperação do sistema Android

A captura de tela a seguir mostra o modo de recuperação modificado:

O modo de recuperação modificado

O programa de recuperação mais usado no mundo Android é a recuperação


Clockwork, também chamada de ClockworkMod. A maioria dos métodos de root começa
exibindo uma recuperação modificada na partição de recuperação. Depois disso, você
pode emitir uma atualização, que pode fazer root no dispositivo; no entanto, você não
precisa executar todas as ações manualmente, pois o software está disponível para a
maioria dos modelos que podem fazer root no telefone com um único clique.
Machine Translated by Google

A partir do Android 7.x, o Google começou a aplicar estritamente a inicialização


verificada nos dispositivos. A inicialização verificada garante que o software no
dispositivo não seja modificado antes da inicialização no modo normal. Isso é implementado
de forma que cada estágio verifique a integridade e autenticidade do próximo estágio
antes de executá-lo. Se uma partição ou segmento específico for modificado, a verificação
de integridade falhará e o dispositivo móvel poderá não inicializar no modo normal. Mais
informações sobre inicialização verificada podem ser encontradas em https://source.android.com/secu
rity/verifiedboot/verified-boot.

Isso também significa que o root desses dispositivos Android será extremamente difícil
porque o rooting envolve ajustes no sistema operacional Android. O Marshmallow foi a
primeira versão do Android a fornecer alertas sobre a integridade do sistema, mas desde
o Android 7.x, isso se tornou obrigatório.
Machine Translated by Google

Fazendo root em um dispositivo Android

Veremos agora os diferentes métodos disponíveis para fazer root em um dispositivo Android. O

principal fator que influencia sua escolha de método é se o carregador de inicialização subjacente está
bloqueado ou desbloqueado. Obter acesso root em um dispositivo com um gerenciador de inicialização
desbloqueado é muito fácil, enquanto obter acesso root a um dispositivo com um gerenciador de
inicialização bloqueado não é tão simples, o que significa que desbloquear o gerenciador de inicialização
do seu telefone Android geralmente é o primeiro passo para fazer o root e personalizar o flash. ROMs. Isso
pode ser feito por meio do modo de inicialização rápida (discutido nas seções anteriores) ou seguindo um
procedimento de desbloqueio do carregador de inicialização específico do fornecedor. Depois que o
carregador de inicialização do dispositivo for desbloqueado, a próxima etapa é copiar o binário su e
conceder a ele permissões executáveis. Isso pode ser feito de várias maneiras.

O seguinte é como fazer root em um Samsung Galaxy S7 (International SM


Modelos G930F/FD/X, coreano SM-G930K/L/S e canadense SM-G930W8 Exynos):

1. Certifique-se de que o desbloqueio OEM esteja ativado nas opções do desenvolvedor.


2. Baixe o ODIN (disponível em https://build.nethunter.com/samsung-tools/
Odi n_3.12.3.zip) e extraia o conteúdo do arquivo para o diretório de
sua escolha.
3. Baixe a imagem TWRP (disponível em https://twrp.me/samsung/samsungg
alaxys7.html).
4. Reinicie seu dispositivo no modo de download. Para fazer isso, segure os botões Diminuir volume
+ Início enquanto o dispositivo reinicia. Depois de ver a tela de aviso do modo de download,
pressione Aumentar volume para continuar.
Inicie o Odin e coloque a imagem TWRP no slot AP; não se esqueça de desativar a
reinicialização automática. Comece a piscar a recuperação.
5. Para sair do modo download, segure Volume baixo + Home + Power; quando a tela ficar em
branco, mude imediatamente o Volume para baixo para Aumentar o volume.
6. Permita modificações no sistema deslizando para a direita.
7. Baixe o SuperSU (disponível em https://download.chainfire.eu/supersu).
Machine Translated by Google

8. Transfira o arquivo com SuperSU para o dispositivo via MTP e instale-o


através da opção TWRP correspondente.

O enraizamento é um processo altamente específico do dispositivo e, portanto, o


investigador forense precisa ser cauteloso antes de aplicar essas técnicas em qualquer
dispositivo Android. Fazer root em um dispositivo tem vantagens e desvantagens associadas
a ele. A seguir estão as vantagens do enraizamento:

O enraizamento permite a modificação do software no dispositivo para o nível mais


profundo - por exemplo, você pode fazer overclock ou underclock da CPU do
dispositivo.

Ele permite que as restrições impostas ao dispositivo por operadoras, fabricantes e assim
por diante sejam contornadas.
Para personalização extrema, novas ROMs personalizadas podem ser
baixadas e instaladas.

A seguir estão as desvantagens do enraizamento:

O enraizamento de um dispositivo deve ser feito com extremo cuidado, pois erros podem
resultar em danos irreparáveis ao software do telefone, transformando o dispositivo em
um tijolo inútil.
O enraizamento pode anular a garantia de um dispositivo.
O enraizamento resulta em maior exposição a malware e outros ataques.
Malware com acesso a todo o sistema Android pode causar estragos.

Depois que o dispositivo estiver enraizado, aplicativos como o aplicativo Superusuário


estarão disponíveis para fornecer e negar privilégios de root. Este aplicativo ajuda você a
conceder e gerenciar direitos de superusuário no dispositivo, conforme mostrado na captura
de tela a seguir:
Machine Translated by Google

Aplicativo solicitando acesso root

Veremos agora o acesso root.


Machine Translated by Google

Acesso raiz - shell ADB


Um telefone Android normal não permite que você acesse determinados diretórios e
arquivos no dispositivo. Por exemplo, tente acessar a pasta /data/data em um dispositivo
Android sem root. Você verá a seguinte mensagem:

Negação de permissão sem acesso root

Em um telefone com root, você pode executar o shell adb como root emitindo o seguinte
comando:

C:\android-sdk\platform-tools>adb.exe root

A captura de tela a seguir mostra a saída do comando anterior:

Execução bem-sucedida do comando shell em um dispositivo com root

Assim, fazer root em um telefone permite que você acesse pastas e dados que de
outra forma não seriam acessíveis. Observe também que # simboliza acesso root ou
superusuário, enquanto $ reflete um usuário normal, conforme mostrado nas linhas de
comando anteriores.
Machine Translated by Google

O Android 7.0 (Nougat) e versões posteriores oferecem suporte à criptografia baseada em arquivo
(FBE), que permite a criptografia de diferentes arquivos com diferentes chaves. Para um investigador
forense como você, é importante observar que não é possível aplicar uma raiz permanente a um
dispositivo habilitado para FBE para fins de aquisição. Em vez disso, é recomendável usar uma
metodologia de recuperação personalizada, porque a partição de recuperação é executada com privilégios de root.
Machine Translated by Google

Resumo
Neste capítulo, aprendemos como configurar uma estação de trabalho forense
adequada antes de realizar investigações em um dispositivo Android. Comece com uma
estação de trabalho forense estéril que tenha o software básico necessário e os drivers
de dispositivo instalados. Se o método de aquisição forense exigir que o dispositivo
Android seja desbloqueado, você precisará determinar o melhor método para obter
acesso ao dispositivo. Se o dispositivo tiver o recurso de depuração USB ativado, ignorar
o bloqueio de tela é apenas uma moleza. Aprendemos sobre as várias técnicas de desvio
de bloqueio de tela e ajudamos você a determinar qual delas usar em diferentes
circunstâncias. Dependendo do método de aquisição forense e do escopo da investigação,
fazer root no dispositivo deve fornecer acesso completo aos arquivos presentes no
dispositivo.
Também aprendemos sobre o root e como ele pode ser usado para obter acesso
completo ao sistema de arquivos do dispositivo e executar ações que normalmente não
são permitidas.

Agora que os conceitos básicos de obtenção de acesso a um dispositivo Android foram


abordados, abordaremos as técnicas de aquisição e descreveremos como os dados são
extraídos usando cada método no Capítulo 9, Técnicas de extração de dados do Android.
Machine Translated by Google

Extração de dados do Android


Técnicas
Usando qualquer uma das técnicas de desvio de bloqueio de tela explicadas no Capítulo
8, Configuração forense do Android e técnicas de extração de pré-dados, um examinador pode
tentar acessar um dispositivo bloqueado. Assim que o dispositivo estiver acessível, a próxima
tarefa é extrair as informações presentes no dispositivo. Isso pode ser obtido aplicando várias
técnicas de extração de dados ao dispositivo Android.

Este capítulo irá ajudá-lo a identificar os locais sensíveis presentes em um dispositivo Android
e explicar várias técnicas lógicas e físicas que podem ser aplicadas ao dispositivo para extrair as
informações necessárias.

Neste capítulo, abordaremos os seguintes tópicos:

Noções básicas sobre técnicas de extração de dados


Extração manual de dados
Extração lógica de dados
Extração de dados físicos, que abrange a geração de imagens de um dispositivo Android e
Cartão SD, JTAG e técnicas de chip-off
Machine Translated by Google

Noções básicas sobre técnicas de


extração de dados

Os dados que residem em um dispositivo Android podem ser parte integrante de


investigações civis, criminais ou internas feitas como parte de uma investigação interna
de uma empresa corporativa. Ao lidar com investigações envolvendo dispositivos
Android, você, como perito forense, precisa estar atento às questões que precisam ser
atendidas durante o processo forense; isso inclui determinar se o acesso root é permitido
(via consentimento ou autoridade legal) e quais dados podem ser extraídos e analisados
durante a investigação. Por exemplo, em um processo criminal envolvendo perseguição,
o tribunal só pode permitir que SMS, registros de chamadas e fotos sejam extraídos e
analisados no dispositivo Android pertencente ao suspeito. Nesse caso, pode fazer mais
sentido capturar logicamente apenas esses itens específicos. No entanto, é melhor obter
uma extração física completa dos dados do dispositivo e examinar apenas as áreas
admissíveis pelo tribunal. Você nunca sabe aonde sua investigação pode levar e é melhor
obter o máximo de dados possível do dispositivo imediatamente, em vez de desejar ter
uma imagem completa caso o escopo do consentimento mude. As técnicas de extração de
dados em um dispositivo Android podem ser classificadas em três tipos:

Extração manual de dados


Extração lógica de dados
Extração de dados físicos

Conforme descrito no Capítulo 1, Introduction to Mobile Forensics, a extração


manual envolve navegar pelo dispositivo normalmente e capturar qualquer informação
valiosa, enquanto a extração lógica lida com o acesso ao sistema de arquivos e a
extração física é sobre a extração de uma imagem bit a bit do dispositivo. Os métodos de
extração para cada um desses tipos serão descritos em detalhes nas seções a seguir.
Machine Translated by Google

Alguns métodos podem exigir que o dispositivo seja rooteado para acessar totalmente os
dados. Cada método tem implicações diferentes e suas taxas de sucesso dependerão da ferramenta
e do método usados, bem como da marca e modelo do dispositivo.
Machine Translated by Google

Extração manual de dados

Esse método de extração envolve a utilização da interface de usuário normal do


dispositivo móvel para acessar o conteúdo presente na memória. Você navegará pelo
dispositivo normalmente acessando diferentes menus para visualizar detalhes como
registros de chamadas, mensagens de texto e bate-papos de mensagens instantâneas.
O conteúdo de cada tela é capturado por meio de fotos e pode ser apresentado como prova.

A principal desvantagem desse tipo de exame é que apenas os arquivos acessíveis por
meio do sistema operacional (no modo UI) podem ser investigados. Deve-se ter cuidado
ao examinar manualmente o dispositivo, pois é fácil pressionar o botão errado e apagar
ou adicionar dados. A extração manual deve ser usada como último recurso para verificar
os achados extraídos usando um dos outros métodos.
Certas circunstâncias podem justificar a realização de um exame manual como primeiro
passo. Isso pode incluir casos de vida ou morte ou pessoas desaparecidas, onde uma
varredura rápida do dispositivo pode levar a polícia ao indivíduo.
Machine Translated by Google

Extração lógica de dados


As técnicas de extração lógica de dados extraem os dados presentes no dispositivo
interagindo com o sistema operacional e acessando o sistema de arquivos. Essas
técnicas são importantes porque fornecem dados valiosos, funcionam na maioria dos
dispositivos e são fáceis de usar. Mais uma vez, o conceito de enraizamento entra em
cena durante a extração dos dados. Na verdade, as técnicas lógicas não requerem
acesso root para extração de dados. No entanto, ter acesso root em um dispositivo
permite que você acesse todos os arquivos presentes em um dispositivo. Isso significa
que alguns dados podem ser extraídos em um dispositivo não rooteado enquanto o
acesso root abrirá o dispositivo e fornecerá acesso a todos os arquivos presentes no
dispositivo. Portanto, ter acesso root a um dispositivo influenciaria muito a quantidade
e o tipo de dados que poderiam ser extraídos por meio de técnicas lógicas.
As seções a seguir explicam várias técnicas que podem ser usadas para extrair
dados logicamente de um dispositivo Android.
Machine Translated by Google

Extração de dados pull ADB


Como visto anteriormente, adb é uma ferramenta de linha de comando que ajuda você a se
comunicar com um dispositivo para recuperar informações. Usando o adb, você pode extrair
dados de todos os arquivos do dispositivo ou apenas dos arquivos relevantes nos quais está
interessado. Esta é a técnica mais utilizada como parte da extração lógica.

Para acessar um dispositivo Android através do adb, a opção de depuração USB deve estar
habilitada. A partir do Android 4.2.2, devido à depuração USB segura, o host que se conecta ao
dispositivo também deve ser autorizado. Se o dispositivo estiver bloqueado e a depuração USB não
estiver habilitada, tente ignorar o bloqueio de tela usando as técnicas explicadas no Capítulo 8,
Configuração forense do Android e técnicas de pré-extração de dados.

Como examinador forense, é importante que você saiba como os dados são armazenados no
dispositivo Android e entenda onde informações importantes e confidenciais são armazenadas para
que os dados possam ser extraídos adequadamente.
Os dados do aplicativo geralmente contêm uma grande quantidade de dados do usuário que podem
ser relevantes para a investigação. Todos os arquivos pertencentes a aplicativos de interesse devem
ser examinados quanto à relevância, conforme explicado no Capítulo 10, Análise e recuperação de
dados do Android. Os dados do aplicativo podem ser armazenados em um dos seguintes locais:

Preferências compartilhadas: armazena dados em pares chave-valor em um


formato XML leve. Os arquivos de preferências compartilhadas são armazenados na
pasta shared_pref do diretório /data do aplicativo .
Armazenamento interno: armazena os dados que são privados e estão presentes na
memória interna do dispositivo. Os arquivos salvos no armazenamento interno são privados
e não podem ser acessados por outros aplicativos.
Armazenamento externo: armazena os dados que são públicos na memória externa do
dispositivo, que geralmente não possui mecanismos de segurança. Esses dados estão
disponíveis no diretório /sdcard .
Banco de dados SQLite: Esses dados estão disponíveis no banco de dados /data/data/
PackageName/ . Geralmente é armazenado com a extensão de arquivo .db . Os dados
Machine Translated by Google

presentes em um arquivo SQLite podem ser visualizados usando o navegador SQLite (http s://
sourceforge.net/projects/sqlitebrowser/) ou executando os comandos SQLite necessários nos
respectivos arquivos.

Todo aplicativo Android armazena dados no dispositivo usando uma ou mais das opções de armazenamento de
dados anteriores. Portanto, o aplicativo Contatos armazenaria todas as informações sobre os detalhes do contato
na pasta /data/data sob o nome do pacote. Observe que /data/data faz parte do armazenamento interno do seu

dispositivo, onde todos os aplicativos são instalados em circunstâncias normais. Alguns dados do aplicativo
residirão no cartão SD e na partição /data/data .

Usando adb, podemos extrair os dados presentes nesta partição para análise posterior usando o comando
adb pull . Mais uma vez, é importante observar que esse diretório só pode ser acessado em um telefone com
root.

No Android 7.0 (Nougat), um novo tipo de armazenamento chamado armazenamento criptografado do


dispositivo foi introduzido para permitir que os aplicativos armazenem certos tipos de dados nesse
armazenamento. Como resultado disso, você notará novos caminhos de arquivo, como misc_de, misc_ce,
system_de e system_ce na pasta / data . Do ponto de vista forense, esta é uma mudança muito importante
porque o que isso também significa é que, em dispositivos rodando Android Nougat, / data/ data não é o
único local onde os artefatos são armazenados, por exemplo, localização de dados SMS em dispositivos
antigos: / data/ com.android.providers.telephony/ databases/ smsmms.db e localização de dados SMS
em dispositivos Nougat: / user_de/ 0/ com.android.providers.telephony/ databases/ smsmms.db.

Em um telefone rooteado, o comando adb pull na pasta de bancos de dados do


O aplicativo Dropbox pode ser executado da seguinte forma:

O comando adb pull

Da mesma forma, em um telefone com root, toda a pasta /data pode ser extraída dessa maneira.
Conforme mostrado na captura de tela a seguir, o diretório /data completo
Machine Translated by Google

no dispositivo Android podem ser copiados para o diretório local na máquina.


Todo o diretório de dados foi extraído em 97 segundos. O tempo de extração irá
variar dependendo da quantidade de dados que residem em /data:

O diretório /data extraído para uma estação de trabalho forense

Em um dispositivo não enraizado, um comando pull no diretório /data não


extrai os arquivos, conforme mostrado na saída a seguir, pois o usuário do shell
não tem permissão para acessar esses arquivos:

Comando pull ADB em dispositivo não enraizado

Os dados copiados de um telefone rooteado por meio do processo anterior


mantêm sua estrutura de diretório, permitindo assim que um investigador navegue
pelos arquivos necessários para obter acesso às informações. Ao analisar os
dados dos respectivos aplicativos, um especialista forense pode coletar informações
críticas que podem influenciar o resultado da investigação. Observe que examinar
as pastas nativamente em sua estação de trabalho forense alterará o
Machine Translated by Google

datas e horários do conteúdo. Você deve fazer uma cópia da saída original
para usar para uma comparação de data/hora.
Machine Translated by Google

Usando o SQLite Browser para visualizar


os dados

O SQLite Browser é uma ferramenta que pode ajudar durante a análise dos
dados extraídos. O SQLite Browser permite explorar arquivos de banco de dados
com as seguintes extensões: .sqlite, .sqlite3, .sqlitedb, .db e .db3. A principal
vantagem de usar o SQLite Browser é que ele mostra os dados em forma de tabela.

Navegue até Arquivo | Abrir banco de dados para abrir um arquivo .db usando o navegador
SQLite. Conforme mostrado na captura de tela a seguir, existem três guias principais: Estrutura
do banco de dados, Procurar dados e Executar SQL. A guia Browse Data permite que você
veja as informações presentes em diferentes tabelas dentro dos arquivos .db .

Estaremos usando principalmente esta guia durante nossa análise. Alternativamente,


ferramentas como o Oxygen Forensic SQLite Viewer também podem ser usadas para o
mesmo propósito. A recuperação de dados excluídos de arquivos de banco de dados é
possível e será explicada no Capítulo 10, Análise e recuperação de dados do Android:
Machine Translated by Google

Navegador SQLite

As seções a seguir esclarecem a identificação de dados importantes


e a extração manual de vários detalhes de um telefone Android. O acesso
ao Terminal no Android foi abordado em capítulos anteriores. Na seção a
seguir, entraremos diretamente na obtenção de informações do dispositivo a
partir daí.
Machine Translated by Google

Extraindo informações do dispositivo


Conhecer os detalhes do seu dispositivo Android, como modelo, versão e
muito mais, ajudará na sua investigação. Por exemplo, quando o dispositivo
está fisicamente danificado e isso proíbe o exame das informações do
dispositivo, você pode obter detalhes sobre o dispositivo executando o
seguinte comando na pasta / system :

# cat build.prop

Isso pode ser visto na captura de tela a seguir:


Machine Translated by Google

O arquivo build.prop

Depois de extrair as informações do dispositivo, agora extrairemos os registros de chamadas.


Machine Translated by Google

Extraindo registros de chamadas

O acesso aos registros de chamadas de um telefone geralmente é necessário durante uma


investigação para confirmar certos eventos. As informações sobre os registros de chamadas são
armazenadas no arquivo contacts2.db localizado em /data/data/com.android.providers.contacts/
databases/. Conforme mencionado anteriormente, você pode usar o SQLite Browser para ver os
dados presentes neste arquivo depois de extraí-lo para uma pasta local na estação de trabalho
forense. Vamos ver como extrair logs de chamadas seguindo estas etapas:

1. Conforme mostrado na captura de tela a seguir, usando o comando adb pull , os arquivos .db
necessários podem ser extraídos para uma pasta na estação de trabalho forense:

O arquivo contacts2.db copiado para uma pasta local

2. Observe que os aplicativos usados para fazer chamadas podem armazenar os detalhes do registro de
chamadas na respectiva pasta do aplicativo. Todos os aplicativos de comunicação devem ser examinados
quanto aos detalhes do registro de chamadas, como segue:

C:\android-sdk-windows\platform-tools>adb.exe pull /data/


data/com.android.providers.contacts C:temp

Isso dará a seguinte saída:


Machine Translated by Google

3. Agora, abra o arquivo contacts2.db usando o SQLite Browser (navegando até File | Open
Database) e navegue pelos dados presentes em diferentes tabelas. A tabela de chamadas
presente no arquivo contacts2.db fornece informações sobre o histórico de chamadas. A captura
de tela a seguir destaca o histórico de chamadas junto com o nome, número, duração e data:

Em dispositivos com Android 7.0 (Nougat), os dados do registro de chamadas foram removidos do
arquivo contacts2.db . Nesses dispositivos, os dados do registro de chamadas podem ser acessados em
/data/com.android.providers.contacts/databases/calllog.db
Machine Translated by Google

Extraindo SMS/MMS
Durante uma investigação, você pode ser solicitado a recuperar as mensagens de texto que
foram enviadas e entregues a um determinado dispositivo móvel.
Portanto, é importante entender onde os detalhes são armazenados e como acessar os dados.
O arquivo mmssms.db , que está presente em /data/data/com.android.providers.telephony/
databases, contém os detalhes necessários. Assim como nos logs de chamadas, você deve
garantir que os aplicativos capazes de enviar mensagens sejam examinados para logs de
mensagens relevantes usando o seguinte comando:

adb.exe pull /data/data/com.android.providers.telephony C:\temp

Isso dará a seguinte saída:

Extraindo dados de SMS

O número de telefone pode ser visto na coluna do endereço e a mensagem de


texto correspondente pode ser vista na coluna do corpo, conforme mostrado na captura de tela a
seguir:

A tabela de chamadas no arquivo contacts2.db

Agora vamos extrair as informações do histórico do navegador.


Machine Translated by Google

Extraindo informações do
histórico do navegador

A extração de informações do histórico do navegador é uma tarefa frequentemente exigida


de um examinador forense. Além do navegador Android padrão, diferentes aplicativos de
navegador podem ser usados em um telefone Android, como o Firefox Mobile e o Google
Chrome. Todos esses navegadores armazenam seu histórico de navegação no formato
SQLite .db . Para nosso exemplo, estamos extraindo dados do navegador Android padrão
para nossa estação de trabalho forense. Esses dados estão localizados em /data/data/
com.android.browser. O arquivo chamado browser2.db contém os detalhes do histórico do
navegador. A captura de tela a seguir mostra os dados do navegador, conforme representado
pelo Oxygen Forensic SQLite Viewer. Observe que a versão de avaliação ocultará certas
informações:
Machine Translated by Google

O arquivo browser2.db no Oxygen Forensic SQLite


Viewer Observe que o comportamento mencionado acima pode mudar se o modo de navegação anônima do
navegador for usado.

Vários detalhes abordados na seção anterior não são armazenados no dispositivo se o modo de
navegação anônima do navegador for usado. A seguir, analisaremos redes sociais e bate-papos
de mensagens instantâneas.
Machine Translated by Google

Análise de redes sociais/bate-papos de mensagens


instantâneas

Aplicativos de redes sociais e bate-papo de mensagens instantâneas, como Facebook,


Twitter e WhatsApp, revelam dados confidenciais que podem ser úteis durante a investigação
de qualquer caso. A análise é praticamente a mesma de qualquer outro aplicativo Android.
Baixe os dados para uma estação de trabalho forense e analise os arquivos .db para descobrir
se você pode descobrir alguma informação confidencial. Por exemplo, vamos olhar para o
aplicativo do Facebook e tentar ver quais dados podem ser extraídos.

Primeiro, extraímos a pasta /data/data/com.facebook.katana e navegamos até a pasta


databases . O arquivo fb.db presente nesta pasta contém as informações associadas à
conta do usuário. A tabela friends_data contém informações sobre os nomes dos amigos do
usuário, juntamente com seus números de telefone, IDs de e-mail e datas de nascimento,
conforme mostrado na captura de tela a seguir.
Da mesma forma, outros arquivos podem ser analisados para descobrir se alguma
informação sensível pode ser coletada:
Machine Translated by Google

O arquivo fb.db no navegador SQLite

Da mesma forma, analisando os dados presentes na pasta /data/data , informações


sobre geolocalização, eventos de calendário, notas do usuário e muito mais podem ser obtidas.
Machine Translated by Google

Extração de backup ADB


A partir do Android 4.0, o Google implementou a funcionalidade de backup adb , que permite
aos usuários fazer backup dos dados do aplicativo em um computador usando a ferramenta
adb . Este processo não requer acesso root e, portanto, pode ser muito útil durante o exame
forense. A principal desvantagem é que ele não faz backup de todos os aplicativos instalados
no dispositivo. O recurso de backup depende do aplicativo, pois o proprietário do aplicativo
pode optar por permitir backups. Os backups são permitidos por padrão, mas o desenvolvedor
pode desativá-los se desejar. Portanto, a maioria dos aplicativos de terceiros tem isso ativado
e o comando adb backup funcionará para eles. Aqui está a sintaxe para o comando adb
backup :

adb backup [-f <arquivo>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<pacotes...>]

Vamos discutir isso em detalhes:

-f: Isto é usado para escolher onde o arquivo de backup será armazenado. Se
não especificado, o padrão é backup.ab no diretório de trabalho atual. [-apk|
noapk]: Isso é usado para escolher se deseja ou não fazer backup do
arquivo .apk . O padrão é -noapk. [-obb|-noobb]: Isso é usado para escolher se
deseja ou não fazer backup dos arquivos .obb (expansão do APK). O padrão é
-noobb. [-shared|-noshared]: Isso é usado para escolher se deseja ou não fazer
backup dos dados do armazenamento compartilhado e do cartão SD. O padrão
é -noshared. [-all]: Isso inclui todos os aplicativos para os quais os backups estão
ativados. [-system|-nosystem]: Isso é usado para escolher se deseja ou não
incluir aplicativos do sistema. O padrão é -system. [<pacotes>]: Isso é usado
para listar um nome de pacote específico para backup.

Depois que o dispositivo estiver conectado à estação de trabalho e o adb puder acessá-lo,
execute o comando adb backup -shared -all, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

O comando de backup adb

Depois que o comando é executado, o usuário precisa aprovar a permissão no


dispositivo, conforme mostrado na captura de tela a seguir. Por esse motivo, se o
dispositivo estiver com a tela bloqueada, não é possível fazer backup:

Permissão de backup no dispositivo

Um arquivo de backup do Android é armazenado como um arquivo .ab e, por padrão,


é armazenado na pasta platform-tools do Android SDK. Existem ferramentas gratuitas,
como o Android Backup Extractor, que podem converter o arquivo .ab em um
arquivo .tar , que pode ser visualizado. Android Backup Extractor pode ser baixado
em https://sourceforge.net/projects/adbextractor/. Esta ferramenta é baseada em Java
Machine Translated by Google

aplicativo, portanto, certifique-se de que o Java esteja instalado na estação de trabalho antes de usar a
ferramenta. Para converter o arquivo de backup em formato .tar , emita o seguinte comando:

java -jar abe.jar descompactar backup.ab backup.tar

Isso criará automaticamente um arquivo com a extensão .tar , que pode ser visualizado facilmente usando
ferramentas de arquivamento como WinRAR ou 7Zip. No entanto, observe que, se a senha foi digitada no
dispositivo quando o backup foi criado, o arquivo será criptografado e, portanto, você precisará fornecer a
senha como argumento no comando anterior. O arquivo de backup contém duas pastas principais — apps e
shared. As informações que estão presentes em /data/data para os aplicativos incluídos no backup. A pasta
compartilhada contém todos os dados presentes no cartão SD. a pasta contém todos os
aplicativos
Machine Translated by Google

Extração de dumpsys ADB


O comando adb dumpsys permite coletar informações sobre serviços e aplicativos em
execução no sistema. O comando adb shell dumpsys fornece saída de diagnóstico para todos
os serviços do sistema. O comando dumpsys não requer privilégios de root para ser executado
e requer apenas a depuração USB para ser habilitada como qualquer outro comando adb .
Conforme mostrado na captura de tela a seguir, para ver a lista de todos os serviços que você
pode usar com dumpsys, execute o comando adb.exe shell service list:

O comando dumpsys service list

A análise de determinados serviços dumpsys , como Wi-Fi, usuário e notificação, pode ser
útil em determinados cenários. Aqui estão alguns dos casos interessantes em que executar
o comando dumpsys pode ser útil durante a análise forense:

O serviço dumpsys iphonesubinfo pode ser usado para obter informações sobre um dispositivo
ID ou o número IMEI, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

O comando dumpsys mostrando o número IMEI

O serviço wi-fi dumpsys fornece informações sobre os pontos Wi-Fi acessados pelo usuário.
Mostra os SSIDs das conexões que foram salvas. Essas informações podem ser usadas
para localizar o usuário em um determinado local. Aqui está o comando adb dumpsys , que
fornece esta informação:

O comando dumpsys mostrando os últimos detalhes do Wi-Fi conectado

O serviço de estatísticas de uso do dumpsys fornece informações sobre


aplicativos usados recentemente, juntamente com a data de uso. Por exemplo, a
captura de tela a seguir mostra que nenhum aplicativo foi usado em 1º de fevereiro
de 2016, mas em 31 de janeiro de 2016 o navegador Google Chrome foi usado e houve
uma tentativa de fazer backup dos dados do telefone:
Machine Translated by Google

O comando dumpsys mostrando aplicativos usados recentemente

Observe que em relação à data 20160201, android: 0 vezes indica que nenhum aplicativo foi
usado. Mas para Date: 20160131, android: 1 vezes confirma que um aplicativo foi usado e as
seções posteriores fornecem mais detalhes sobre qual aplicativo foi usado e assim por diante.
Dependendo do caso que está sendo investigado, o analista forense precisa descobrir
se algum dos comandos dumpsys pode ser útil. A execução de um comando dumpsys
imediatamente após a apreensão de um dispositivo pode ser extremamente útil mais tarde. Ao
executar o comando adb shell dumpsys , você pode registrar todas as informações do serviço
dumpsys .
Machine Translated by Google

Usando provedores de conteúdo

No Android, os dados de um aplicativo não podem ser acessados por outro aplicativo
em circunstâncias normais. No entanto, o Android fornece um mecanismo através do
qual os dados podem ser compartilhados com outros aplicativos. Isso é alcançado precisamente
por meio do uso de provedores de conteúdo. Os provedores de conteúdo apresentam dados
para aplicativos externos na forma de uma ou mais tabelas. Essas tabelas não são diferentes
das tabelas encontradas em um banco de dados relacional. Eles podem ser usados por
aplicativos para compartilhar dados, geralmente por meio do esquema de endereçamento URI.
Eles são usados por outros aplicativos que acessam o provedor usando um objeto provedor-
cliente. Durante a instalação de um aplicativo, o usuário determina se o aplicativo pode ou não
obter acesso aos dados solicitados (provedores de conteúdo). Por exemplo, contatos, SMS/
MMS e um calendário são exemplos de provedores de conteúdo.

Assim, aproveitando isso, podemos criar um aplicativo que pode obter todas as informações
de todos os provedores de conteúdo disponíveis. É exatamente assim que a maioria das
ferramentas forenses comerciais funcionam. A vantagem desse método é que ele pode ser
usado em dispositivos com e sem root. Para o nosso exemplo, utilizamos o AFLogical, que
aproveita o mecanismo do provedor de conteúdo para obter acesso às informações. Esta
ferramenta extrai os dados e os salva em um cartão SD no formato CSV. As etapas a seguir
extraem as informações de um dispositivo Android usando o AFLogical Open Source Edition
1.5.2:

1. Baixe o AFLogical OSE 1.5.2 em https://github.com/nowsecure/android


-forense/downloads.

A edição AFLogical LE é capaz de extrair uma grande quantidade de informações e requer


registro por meio de perícia usando um endereço de e-mail de agência governamental ou
policial ativo. O AFLogical OSE pode extrair todos os MMSes, SMSes, contatos e registros de
chamadas disponíveis.

2. Certifique-se de que o modo de depuração USB esteja ativado e conecte o dispositivo à


estação de trabalho.
Machine Translated by Google

3. Verifique se o dispositivo é identificado emitindo os dispositivos adb.exe


comando:

Identificar dispositivo conectado

4. Salve o aplicativo AFLogical OSE no diretório inicial e execute o comando adb.exe


install AFLogical-OSE_1.5.2.apk para instalá-lo no dispositivo:

Instalando o aplicativo AFLogical

5. Uma vez instalado o aplicativo, você pode executá-lo diretamente do dispositivo e


clicar no botão Capturar presente na parte inferior do aplicativo, conforme
mostrado na captura de tela a seguir:

O aplicativo AFLogical OSE

6. O aplicativo inicia a extração de dados dos respectivos provedores de


conteúdo e, assim que o processo for concluído, uma mensagem será
exibida, conforme a imagem a seguir:
Machine Translated by Google

Mensagem exibida após a conclusão da extração

7. Os dados extraídos são salvos no cartão SD do dispositivo em um diretório chamado


forensics. As informações extraídas são armazenadas em arquivos CSV, conforme
mostrado na captura de tela a seguir. Os arquivos CSV podem ser visualizados usando
qualquer editor:

Arquivos extraídos usando AFLogical OSE

8. O arquivo info.xml presente no mesmo diretório fornece informações


sobre o dispositivo, incluindo o número IMEI, número IMSI, versão do Android,
informações sobre aplicativos instalados e assim por diante.

No entanto, observe que a instalação de aplicativos de terceiros deve ser permitida (selecionando a
opção Fontes desconhecidas) no dispositivo para que isso funcione. Outras ferramentas que podem
ajudar durante uma investigação para extrair dados logicamente serão abordadas no Capítulo 11, Análise
de aplicativos Android, malware e engenharia reversa.

Esta seção cobriu várias técnicas de aquisição lógica. Veremos agora as técnicas de
extração de dados físicos.
Machine Translated by Google

Extração de dados físicos


A extração física refere-se ao processo de obtenção de uma imagem bit a bit exata
de um dispositivo. É importante entender que uma imagem bit a bit não é o mesmo que
copiar e colar o conteúdo de um dispositivo. Se copiarmos e colarmos o conteúdo de um
dispositivo, ele copiará apenas os arquivos disponíveis, como arquivos visíveis, arquivos
ocultos e arquivos relacionados ao sistema. Este método é considerado uma imagem
lógica. Com este método, os arquivos excluídos e os arquivos inacessíveis não são
comando. Arquivos
copiados pelos recuperados (com base nascopiados
circunstâncias) excluídos
usando podem
certas ser
técnicas, que
veremos nos capítulos seguintes. Ao contrário da extração lógica, a extração física é uma
cópia exata da memória do dispositivo e inclui mais informações, como espaço livre e
espaço não alocado.

A extração de dados do Android por meio de técnicas físicas é comumente


realizada usando o comando dd , enquanto outras técnicas avançadas, como JTAG e
chip-off, também estão disponíveis, mas geralmente são difíceis de implementar e exigem
grande precisão e experiência para experimentá-las em dispositivos reais durante o curso
de uma investigação. Como acontece com qualquer outra técnica, se um indivíduo
realizar esses procedimentos incorretamente, os dados no dispositivo podem ser
corrompidos ou tornar-se irrecuperáveis, tornando-os inadmissíveis em um tribunal.
As técnicas de JTAG e chip-off são abordadas em detalhes nas seções a
seguir. No entanto, a extração de dados por meio do comando dd requer acesso root.
As seções a seguir fornecem uma visão geral de várias técnicas que podem ser
usadas para realizar a extração física.
Machine Translated by Google

Imaging um telefone Android


A geração de imagens de um dispositivo é uma das etapas mais importantes na perícia
forense de dispositivos móveis. Sempre que possível, é imperativo obter uma imagem física
de um dispositivo Android antes de executar qualquer técnica para extrair os dados diretamente
do dispositivo. Em forense, esse processo de obtenção de uma aquisição física é comumente
chamado de geração de imagens do dispositivo. Os termos imagem física, imagem forense e
imagem bruta são frequentemente usados para se referir à imagem capturada por meio desse
processo. Vamos primeiro revisitar como a geração de imagens é feita em um computador
desktop, pois isso nos ajuda a correlacionar e perceber os problemas associados à geração de
imagens em dispositivos Android. Vamos supor que um computador desktop, que não está ligado,
seja apreendido de um suspeito e enviado para perícia. Nesse caso, um examinador forense
típico removeria o disco rígido, conectaria-o a um bloqueador de gravação e obteria uma imagem
forense bit a bit usando qualquer uma das ferramentas disponíveis. O disco rígido original é então
protegido com segurança durante a geração de imagens forense dos dados.

Com um dispositivo Android, todas as áreas que contêm dados não podem ser removidas
facilmente. Além disso, se o dispositivo estiver ativo no momento de recebê-lo para exame,
não é possível analisar o dispositivo sem fazer alterações nele, pois qualquer interação
alteraria o estado do dispositivo.

Um dispositivo Android pode ter duas áreas de armazenamento de arquivos: armazenamento


interno e externo. O armazenamento interno refere-se à memória não volátil integrada.
Armazenamento externo refere-se ao meio de armazenamento removível, como um cartão micro SD.
No entanto, é importante observar que alguns dispositivos não possuem um meio de
armazenamento removível, como um cartão SD, mas dividem o espaço de armazenamento
permanente disponível em armazenamento interno e externo. Portanto, nem sempre é verdade
que o armazenamento externo é removível. Quando um cartão SD removível está presente, uma
imagem forense do cartão de memória deve ser obtida. Conforme discutido no Capítulo 7,
Compreendendo o Android, esses cartões removíveis geralmente são formatados com o sistema
de arquivos FAT32. Alguns métodos de aquisição de dispositivos móveis irão adquirir o cartão
SD através do dispositivo Android. Esse processo, embora útil, será lento devido às limitações
de velocidade dos cabos de telefone USB.
Machine Translated by Google

O Android, por padrão, não fornece acesso a diretórios internos e arquivos relacionados
ao sistema. Este acesso restrito é para garantir a segurança do dispositivo. Por exemplo,
a pasta /data/data não pode ser acessada em um dispositivo não rooteado. Essa pasta é
especialmente interessante para nós porque armazena a maioria dos dados criados pelo
usuário e muitos aplicativos gravam dados valiosos nessa pasta.
Portanto, para obter uma imagem do dispositivo, precisamos fazer root no dispositivo Android.
Fazer root em um dispositivo nos dá privilégios de superusuário e acesso a todos os dados.
É importante perceber que este livro tem enfatizado que todas as etapas tomadas devem ser
forenses e não devem fazer alterações no dispositivo sempre que possível. Fazer root em
um dispositivo Android fará alterações nele e deve ser testado em qualquer dispositivo que
você não tenha investigado anteriormente. O enraizamento é comum para dispositivos
Android, mas obter acesso root pode alterar o dispositivo de uma maneira que torne os dados
alterados ou, pior ainda, apagados. Alguns dispositivos Android, como o Nexus 4 e 5, podem
forçar a limpeza da partição de dados antes de permitir o acesso root. Isso elimina a
necessidade de fazer root no dispositivo para obter acesso porque todos os dados do usuário
são perdidos durante o processo. Lembre-se de que, embora o root forneça acesso a mais
dados quando feito com sucesso, ele também pode apagar dados ou destruir o telefone.
Portanto, você deve garantir que tenha consentimento ou direitos legais para manipular um
dispositivo Android antes de prosseguir com a raiz. Como as técnicas de root foram discutidas
no Capítulo 8, Configuração forense do Android e técnicas de pré-extração de dados,
continuaremos com o exemplo assumindo que o dispositivo está rooteado.

Veja a seguir um processo passo a passo para obter uma imagem forense de um
dispositivo Android com root:

1. Conecte o dispositivo Android à estação de trabalho e verifique se o


dispositivo é identificado emitindo o comando adb devices , conforme mostrado aqui:

Identificar dispositivos conectados

2. Assim que o acesso adb estiver pronto, as partições podem ser adquiridas do
dispositivo Android usando as seguintes etapas:
Machine Translated by Google

Usando o comando dd : O comando dd pode ser usado para criar uma


imagem bruta do dispositivo. Este comando nos ajuda a criar uma imagem
bit a bit do dispositivo Android copiando dados de baixo nível.
Inserir um novo cartão SD: Insira um novo cartão SD no dispositivo para
copiar o arquivo de imagem para este cartão. Certifique-se de que este
cartão SD foi apagado e não contém nenhum outro dado. Você também pode
precisar atestar que nenhum dado adicional está presente na unidade.
Executando o comando: O sistema de arquivos de um dispositivo Android é
armazenado em locais diferentes dentro da partição /dev . Um comando de
montagem simples em um telefone Samsung Galaxy S3 retorna a seguinte
saída:

montar a saída do comando em um dispositivo Android

3. A partir da saída anterior, podemos identificar os blocos onde as partições /system, /


data e /cache são montadas. Embora seja importante criar imagens de todos os
arquivos, a maioria dos dados está presente nas partições /data e /system . Quando
o tempo permitir, todas as partições devem ser adquiridas para integridade. Feito
isso, execute o seguinte comando para criar a imagem do dispositivo:

dd if=/dev/block/mmcblk0p12 of=/sdcard/tmp.image

No exemplo anterior, foi utilizada a partição de dados de um Samsung Galaxy S3


(onde if é o arquivo de entrada e of é o arquivo de saída).
Machine Translated by Google

O comando anterior criará uma imagem bit a bit do arquivo mmcblk0p12 (partição de dados) e
copiará o arquivo de imagem para um cartão SD. Feito isso, o arquivo de imagem dd pode ser
analisado usando o software forense disponível.

Você deve garantir que o cartão SD tenha espaço de armazenamento suficiente para conter a imagem da
partição de dados. Outros métodos estão disponíveis para adquirir dados de dispositivos com root.

Se a imagem não puder ser gravada diretamente no cartão SD, você poderá usar o comando netcat
para gravar a saída diretamente na máquina. A ferramenta netcat é uma ferramenta baseada em
Linux usada para transferir dados por uma conexão de rede.
Os dispositivos Android geralmente não vêm com o netcat instalado. Vamos ver como usar esse
comando nas etapas a seguir:

1. Para verificar se o netcat está instalado, basta abrir o shell ADB e se ele retornar dizendo
manualmente
queno
ncdispositivo.
não foi encontrado,
Você pode
o netcat
baixarterá
o netcat
que ser
compilado
do tipo nc.
parainstalado
Android em
https://sourceforge.net/projects/androidforensics-netcat/files/.

2. Empurre netcat para o dispositivo usando o seguinte comando em seu


computador:

adb push nc /dev/Case_Folder/nc

O comando deve ter criado Case_Folder em /dev e nc deve estar nele.

3. Agora, precisamos dar permissão para executar a partir do shell ADB.


Isso pode ser feito da seguinte forma:

chomd +x /dev/Case_Folder/nc

4. Abra duas janelas do Terminal com o shell ADB aberto em uma delas.
O outro será usado para ouvir os dados enviados do dispositivo.
Agora, precisamos habilitar o encaminhamento de porta por ADB do seu
computador:

adb forward tcp:9999 tcp:9999

9999 é a porta que escolhemos usar para netcat; pode ser qualquer número de porta arbitrário entre
1023 e 65535 em um sistema Linux ou Mac (1023 e abaixo são
Machine Translated by Google

reservados para processos do sistema e exigem permissão de root para usá-


los). Na outra janela do Terminal, execute o seguinte:

nc 127.0.0.1 9999 > data_partition.img

O arquivo data_partition.img agora deve ser criado no diretório atual do seu


computador. Quando a transferência dos dados terminar, o netcat terminará em
ambos os terminais e retornará ao prompt de comando. O processo pode levar
um tempo significativo, dependendo do tamanho da imagem.
Machine Translated by Google

Imaging um cartão de memória (SD)


Existem muitas ferramentas disponíveis que podem criar imagens de um cartão de
memória. O exemplo a seguir usa WinHex para criar uma imagem de disco bruta do cartão SD.
A seguir está o processo passo a passo para criar a imagem de um cartão de memória
usando o WinHex:

1. Conectando o cartão de memória: Remova o cartão SD do


slot de memória e use um leitor de cartão para conectar o cartão de memória à estação
de trabalho forense.
2. Proteja o cartão contra gravação: Abra o disco usando WinHex. Navegue até
Opções | Edit Mode e selecione Read-only Mode (=modo protegido contra gravação),
conforme mostrado na captura de tela a seguir. Isso é para garantir que o dispositivo
esteja protegido contra gravação e nenhum dado possa ser gravado nele:

Visualização WinHex do modo de edição (esquerda) e modo somente leitura WinHex ativado (direita)

3. Calculando o valor de hash: Calcule o valor de hash do cartão de memória para garantir
que nenhuma alteração seja feita em nenhum ponto durante a investigação. Navegue
até Ferramentas | Calcule o hash e escolha qualquer algoritmo de hash.

4. Criando a imagem do disco: Navegue até Arquivo | Crie uma imagem de disco, conforme
mostrado na captura de tela a seguir. Selecione a opção de imagem bruta (.dd) para criar
uma imagem. Isso conclui a geração de imagens do cartão de memória:
Machine Translated by Google

A opção de imagem de disco WinHex

Uma vez que uma imagem forense é obtida usando qualquer um dos métodos descritos anteriormente,

ela precisa ser analisada para extrair as informações relevantes. Existem várias ferramentas comerciais, como

Cellebrite e XRY, que podem analisar arquivos de imagem. A análise de imagens do Android é abordada em

detalhes no Capítulo 10, Análise e recuperação de dados do Android.


Machine Translated by Google

Grupo de Ação de Teste Conjunto

Joint Test Action Group (JTAG) envolve o uso de métodos avançados de aquisição de
dados, que envolvem a conexão a portas específicas no dispositivo e a instrução do
processador para transferir os dados armazenados no dispositivo. Usando este método, uma
imagem física completa de um dispositivo pode ser adquirida. É sempre recomendável
experimentar primeiro as outras técnicas mencionadas anteriormente, pois são fáceis de
implementar e exigem menos esforço. Um analista deve ser experiente e devidamente
treinado antes de tentar o JTAG, pois o dispositivo pode ser danificado se não for manuseado
adequadamente.

O processo JTAG geralmente envolve as seguintes etapas forenses:

1. No JTAG, as portas de acesso de teste (TAPs) do dispositivo são usadas para


acessar a CPU do dispositivo. Identificar os TAPs é a etapa principal e mais
importante. Os TAPs são identificados e a conexão é rastreada até a CPU para
descobrir qual pad é responsável por cada função. Embora os fabricantes de
dispositivos documentem recursos sobre os esquemas JTAG de um determinado
dispositivo, eles não são liberados para visualização geral. Um bom site para JTAG
em um dispositivo Android é https://forensicswiki.xyz/wik
i/index.php?title=JTAG_Forensics.
2. Os cabos são então soldados aos pinos do conector apropriado e a outra
extremidade é conectada ao dispositivo que pode controlar a CPU, conforme
mostrado na fotografia a seguir (publicada por Jim Swauger em htt p : //
www.binaryintel.com/services /jtag-chip-off-forensics/jtag-forensics/ ).
Os gabaritos JTAG podem ser usados para dispensar a soldagem de certos
dispositivos. O uso de um adaptador jig ou JTAG dispensa a necessidade de solda,
pois conecta os TAPs à CPU:
Machine Translated by Google

A configuração do JTAG

Após a conclusão das etapas anteriores, a energia deve ser aplicada para inicializar a
CPU. A tensão que deve ser aplicada depende das especificações divulgadas pelo
fabricante do hardware. Não aplique uma tensão além do número fornecido na
especificação.

Depois de aplicar a energia, um despejo completo da memória binária do flash NAND


pode ser extraído.
Analise os dados extraídos usando as técnicas e ferramentas forenses aprendidas
neste livro. Um arquivo .bin bruto será obtido durante a aquisição; a maioria das
ferramentas forenses oferece suporte à ingestão e análise desse formato de imagem.

JTAG pode parecer complicado (talvez seja), mas serve a muitos propósitos úteis e três
vantagens estão listadas aqui:

A principal vantagem dessa técnica é que ela funciona mesmo que o dispositivo não esteja
ligado.
Não requer root, ADB ou depuração USB.
Ele pode ser usado para recuperar PINs/senhas do dispositivo e, portanto, pode criar
imagens de toda a memória flash e recuperar/quebrar arquivos de senha.
Machine Translated by Google

Também é importante entender que a técnica JTAG não deve resultar na


perda de funcionalidade do dispositivo. Se remontado corretamente, o
dispositivo deve funcionar sem problemas. Embora a técnica JTAG seja
eficaz na extração de dados, apenas pessoal experiente e qualificado deve
tentar. Qualquer erro na soldagem dos pads JTAG ou na aplicação da
voltagem errada pode danificar gravemente o dispositivo.
Machine Translated by Google

A técnica do chip-off
Chip-off, como o nome sugere, é uma técnica em que os chips flash NAND são removidos do
dispositivo e examinados para extrair informações. Portanto, essa técnica funcionará mesmo
quando o dispositivo estiver protegido por senha e a depuração USB não estiver habilitada. Ao
contrário da técnica JTAG, onde o dispositivo funciona normalmente após o exame, a técnica do
chip-off geralmente resulta na destruição do dispositivo, ou seja, é mais difícil reconectar o flash
NAND ao dispositivo após o exame. O processo de reconectar o flash NAND ao dispositivo é
chamado de reballing e requer treinamento e prática.

As técnicas de chip-off geralmente envolvem as seguintes etapas forenses:

1. Todos os chips do dispositivo devem ser pesquisados para determinar qual


chip contém dados do usuário.
2. Uma vez determinado, o flash NAND é removido fisicamente do dispositivo. Isso pode
ser feito aplicando calor para dessoldar o chip:
Machine Translated by Google

Técnica de chip-
off Fonte: http://www.binaryintel.com/services/jtag-chip-off-forensics/chip-off_forensics/

3. Este é um processo muito delicado e deve ser feito com muito cuidado, pois
pode resultar em danos ao flash NAND.
4. O chip é então limpo e reparado para garantir que os conectores estejam presentes e
funcionando.

5. Usando adaptadores de dispositivos de hardware especializados, o chip agora pode ser lido.
Isso é feito inserindo o chip no dispositivo de hardware, que
Machine Translated by Google

suporta o chip flash NAND específico. Nesse processo, os dados brutos são
adquiridos do chip, resultando em um arquivo .bin .
6. Os dados adquiridos agora podem ser analisados usando técnicas forenses e
as ferramentas descritas anteriormente.

A técnica de chip-off é mais útil quando um dispositivo está danificado gravemente, bloqueado
ou inacessível. No entanto, a aplicação dessa técnica requer não apenas experiência, mas
também equipamentos e ferramentas caros.
Sempre existe o risco de danificar o flash NAND ao removê-lo e, portanto, é recomendável
experimentar primeiro as técnicas lógicas para extrair quaisquer dados.

Embora o acesso root seja obrigatório para executar qualquer uma das técnicas discutidas
anteriormente, deve-se observar aqui que, no momento da redação deste livro, nenhuma
dessas técnicas funcionaria em dispositivos com Full Disk Encryption (FDE ) ativado .
Conforme discutido no Capítulo 7, Compreendendo o Android, o Google determinou o uso de
FDE para a maioria dos dispositivos a partir do Android 6.0.
Embora algumas técnicas tenham sido demonstradas e publicadas para descriptografar a
criptografia completa do disco, elas são específicas do dispositivo e não são amplamente aplicáveis.
Machine Translated by Google

Resumo
Este capítulo cobriu várias técnicas de extração de dados manuais, lógicos e físicos.
Aprendemos quando e como aplicar essas técnicas durante uma investigação. Técnicas
lógicas extraem dados interagindo com o dispositivo usando ferramentas como ADB. As
técnicas físicas, por outro lado, acessam um conjunto maior de dados; eles são complexos e
exigem muita experiência para serem executados. A geração de imagens de um dispositivo
produz uma imagem bit a bit do dispositivo, que é posteriormente analisada por meio de
ferramentas. A geração de imagens de um dispositivo é uma das etapas principais para garantir
que os dados no dispositivo não sejam modificados. O Android 7.0 e superior representa um
novo desafio para os investigadores forenses, trazendo novos recursos de segurança e
caminhos de arquivo que podem limitar a aquisição. Com esse conhecimento, você pode realizar
a aquisição de dispositivos para extrair dados relevantes de um dispositivo Android.

No próximo capítulo, veremos como extrair dados relevantes, como registros de chamadas,
mensagens de texto e histórico de navegação de um arquivo de imagem. Também
abordaremos técnicas de recuperação de dados, com as quais podemos recuperar dados
excluídos de um dispositivo.
Machine Translated by Google

Análise de dados do Android e


Recuperação

No capítulo anterior, cobrimos várias técnicas de extração lógica e física. Na extração


física, é obtida uma imagem bit a bit do dispositivo Android, que contém informações
valiosas. Neste capítulo, aprenderemos como analisar e extrair dados relevantes, como
registros de chamadas e mensagens de texto, de um arquivo de imagem. Embora as
técnicas de extração e análise de dados forneçam informações sobre vários detalhes,
nem todas as técnicas podem fornecer informações sobre os dados excluídos. A
recuperação de dados é um aspecto crucial da perícia móvel, pois ajuda a desenterrar
os itens excluídos.

Este capítulo visa cobrir várias técnicas, que podem ser usadas por um analista
forense para recuperar os dados de um dispositivo Android.

Neste capítulo, abordaremos os dois principais tópicos a seguir:

Analisando e extraindo dados de arquivos de imagem do Android usando o


ferramenta de autópsia

Noções básicas sobre técnicas para recuperar arquivos excluídos de um cartão


SD e da memória interna
Machine Translated by Google

Analisando e extraindo dados de


Arquivos de imagem do Android usando o
ferramenta de autópsia

O termo imagem do Android refere-se à imagem física (também chamada


de imagem forense ou imagem bruta) que é obtida pela execução de qualquer
uma das técnicas de extração de dados físicos. Usando as técnicas explicadas no
Capítulo 9, Técnicas de extração de dados do Android, você pode criar imagens de
todo o bloco /data/data ou qualquer bloco específico que seja relevante para a
investigação. Depois que a imagem é obtida, um investigador como você pode
examinar manualmente o conteúdo do arquivo ou aproveitar as ferramentas
disponíveis para analisar o conteúdo. Ferramentas comerciais, como Cellebrite e
XRY, podem detalhar os dados e apresentar uma visão abrangente do conteúdo. A
autópsia é uma das ferramentas de código aberto amplamente utilizadas no mundo
forense que realiza um excelente trabalho de análise de uma imagem do Android.
Machine Translated by Google

A plataforma de autópsia

A autópsia é uma plataforma forense e atua como uma GUI para o Sleuth Kit.
Está disponível gratuitamente; você pode baixá-lo em http://www.sleuthkit.org/.
O Sleuth Kit é uma coleção de ferramentas e utilitários baseados em Unix e
Windows, que são usados para realizar análises forenses. A autópsia exibe os
resultados analisando forense um determinado volume e, assim, ajuda os
investigadores a se concentrarem nas seções relevantes dos dados. O Autopsy é
gratuito e extensível e possui vários módulos que podem ser plugados. O Autopsy
pode ser usado para carregar e analisar uma imagem do Android obtida após a extração física.
Machine Translated by Google

Adicionando uma imagem à autópsia


Depois de baixar e instalar o Autopsy, siga estas etapas para adicionar uma imagem ao
Autopsy:

1. Abra a ferramenta Autópsia e selecione a opção Criar Novo Caso, como


mostrado na captura de tela a seguir:

Criando um novo caso na autópsia

2. Insira todos os detalhes necessários do caso, incluindo o nome do caso, o local


onde os dados precisam ser armazenados e assim por diante, conforme mostrado
na captura de tela a seguir:
Machine Translated by Google

Inserção de informações do caso na autópsia

3. Insira o número do caso e os detalhes do examinador e clique em Concluir.


4. Agora, clique no botão Add Data Source, adicione o arquivo de imagem a ser
analisado e clique em Next:
Machine Translated by Google

Inserção de informações da fonte de dados na autópsia

5. Na próxima tela, você pode configurar quais módulos devem ser executados
nas imagens, conforme mostrado na captura de tela a seguir. Recomenda-
se selecionar os módulos Recent Activity, Exif Parser, Keyword Search e
Android Analyzer. Na próxima etapa, clique em Concluir:
Machine Translated by Google

Configurando módulos no Autopsy

Feito isso, a ferramenta geralmente leva alguns minutos para analisar a imagem,
dependendo de seu tamanho. Durante esse período, você poderá ver alguns erros ou
mensagens de aviso, caso sejam encontrados pela ferramenta. No entanto, o Autopsy
fornece o acesso mais rápido aos artefatos e ao sistema de arquivos quando comparado
a outras ferramentas.
Machine Translated by Google

Analisando uma imagem usando Autopsy


Depois que a imagem for carregada, expanda o arquivo presente em Fontes de dados
para ver os dados presentes na imagem. Por exemplo, a captura de tela a seguir
mostra o conteúdo da pasta /data/:
Machine Translated by Google

Analisando uma imagem na autópsia

No exemplo anterior, apenas a parte /data do dispositivo foi criada. Se a


imagem de todo o dispositivo tivesse sido capturada, a ferramenta mostraria
Machine Translated by Google

mais volumes. Dependendo dos detalhes subjacentes da investigação, partes


relevantes precisam ser analisadas. No exemplo a seguir, examinando as pastas
presentes em com.android.browser, podemos extrair a lista de vários sites visitados
pelo usuário junto com suas datas de acesso:

Analisando detalhes de navegação na autópsia

Dados valiosos, como mensagens de texto, histórico de navegação, bate-papos,


histórico de chamadas, fotos, vídeos e detalhes de localização, podem ser
descobertos analisando os dados presentes em várias seções. Na próxima seção,
veremos a recuperação de dados de um cartão SD e da memória interna.
Machine Translated by Google

Noções básicas sobre


técnicas para recuperar arquivos
excluídos do cartão SD e da memória intern
A recuperação de dados é um dos aspectos mais significativos e poderosos da análise
forense. A capacidade de recuperar dados excluídos pode ser crucial para resolver muitos casos
civis e criminais. Do ponto de vista de um usuário normal, a recuperação de dados que foram
excluídos geralmente se refere às soluções integradas do sistema operacional, como a Lixeira do
Windows. Embora seja verdade que os dados podem ser recuperados desses locais, devido ao
aumento da conscientização do usuário, essas opções nem sempre funcionam. Por exemplo, em
um computador desktop, as pessoas agora usam Shift + Delete como uma forma de excluir um
arquivo completamente de sua área de trabalho.

A recuperação de dados é o processo de recuperação de dados excluídos de um dispositivo


quando ele não pode ser acessado normalmente. Considere o cenário em que um telefone celular
foi apreendido de um terrorista. Não seria da maior importância saber quais itens foram apagados
pelo terrorista? O acesso a quaisquer mensagens SMS excluídas, fotos, números discados, dados
de aplicativos e muito mais pode ser de importância crítica, pois geralmente revelam informações
confidenciais. Com o Android, é possível recuperar a maior parte dos dados excluídos se os
arquivos do dispositivo forem adquiridos corretamente. No entanto, se não forem tomados os
devidos cuidados ao manusear o dispositivo, os dados excluídos podem ser perdidos para sempre.
Para garantir que os dados excluídos não sejam substituídos, é recomendável manter os seguintes
pontos em mente:

Não use o telefone para nenhuma atividade depois de pegá-lo. Os dados excluídos
permanecem no dispositivo até que o espaço seja necessário para alguns outros dados recebidos.
Portanto, o telefone não deve ser usado para nenhum tipo de atividade para evitar que
os dados sejam substituídos.
Mesmo quando o telefone não é usado, sem qualquer intervenção da nossa parte, os
dados podem ser substituídos. Por exemplo, um SMS recebido seria
Machine Translated by Google

ocupam espaço automaticamente, o que pode substituir os dados marcados


para exclusão. Para evitar a ocorrência de tais eventos, você deve seguir os
métodos de tratamento forense descritos nos capítulos anteriores. A solução
mais fácil é colocar o dispositivo no modo avião ou desativar todas as opções de
conectividade do dispositivo. Isso impede a entrega de novas mensagens.

Todos os sistemas de arquivos do Android têm metadados que contêm informações


sobre a hierarquia de arquivos, nomes de arquivos e assim por diante. A exclusão
realmente não apagará esses dados, mas removerá os metadados do sistema de
arquivos. Quando mensagens de texto ou quaisquer outros arquivos são excluídos do
dispositivo, eles ficam invisíveis para o usuário, mas os arquivos ainda estão presentes
no dispositivo. Essencialmente, os arquivos são simplesmente marcados para exclusão,
mas eles residem no sistema de arquivos até serem substituídos. A recuperação de
dados excluídos de um dispositivo Android envolve dois cenários: recuperação de dados
excluídos do cartão SD, como fotos, vídeos, dados de aplicativos e muito mais, e
recuperação de dados excluídos da memória interna do dispositivo. As seções a seguir
abordam as técnicas que podem ser usadas para recuperar dados excluídos do cartão
SD e da memória interna do dispositivo Android.
Machine Translated by Google

Recuperando dados excluídos de


um cartão SD externo
Os dados presentes nos cartões SD podem revelar muitas informações aos investigadores forenses.

Os cartões SD são capazes de armazenar fotos e vídeos feitos pela câmera do telefone, gravações de voz,

dados de aplicativos, arquivos em cache e muito mais. Essencialmente, qualquer coisa que possa ser

armazenada em um disco rígido de computador pode ser armazenada em um cartão SD tanto quanto o espaço

disponível permitir.

Recuperar os dados excluídos de um cartão SD externo é um processo simples. Os cartões SD podem ser

montados como um dispositivo de armazenamento em massa externo e adquiridos forense usando métodos

forenses digitais padrão, conforme discutido no Capítulo 9, Técnicas de extração de dados do Android. Conforme

mencionado nos capítulos anteriores, os cartões SD em dispositivos Android geralmente usam o sistema de arquivos

FAT32. A principal razão para isso é que o sistema de arquivos FAT32 é amplamente suportado na maioria dos

sistemas operacionais, incluindo Windows, Linux e macOS X. O tamanho máximo do arquivo em uma unidade

formatada em FAT32 é de cerca de 4 GB. Com formatos de resolução cada vez mais altos agora disponíveis, esse

limite é comumente atingido. Além disso, o FAT32 só pode ser usado em partições com menos de 32 GB de

tamanho. Portanto, o sistema de arquivos exFAT, que supera esses problemas, agora está sendo usado em alguns

dos dispositivos.

A recuperação dos dados excluídos de um cartão SD externo pode ser facilmente realizada se ele

puder ser montado como uma unidade. Portanto, se o cartão SD for removível, conecte-o a uma estação

de trabalho usando um bloqueador de gravação para aquisição.

No entanto, os dispositivos Android mais recentes geralmente não são montados como armazenamento em massa.

Isso ocorre porque esses dispositivos usam os protocolos Media Transfer Protocol (MTP) ou Picture

Transfer Protocol (PTP) em vez de armazenamento em massa USB.

O problema com o armazenamento em massa USB é que o computador precisaria de acesso exclusivo

ao armazenamento. Em outras palavras, o armazenamento externo precisa ser totalmente desconectado do

sistema operacional Android quando conectado a uma estação de trabalho. Isso levou a várias outras complicações

para aplicativos móveis.


Machine Translated by Google

Quando um dispositivo Android usa MTP, ele aparece para o computador como um dispositivo de mídia e não
como armazenamento removível, conforme mostrado na captura de tela a seguir:

Conexão de dispositivo Android usando MTP

Mas as ferramentas normais de recuperação de dados precisariam de uma unidade de montagem para realizar
uma varredura. Portanto, a maioria dos dispositivos mais recentes que usam MTP/PTP não são tratados como

uma unidade de montagem e, portanto, as ferramentas tradicionais de recuperação de dados que funcionam para
computadores não funcionam neles.

Por esse motivo, quando o dispositivo usa MTP/PTP e não está montado como uma unidade, a recuperação

pode ser feita por algumas ferramentas de recuperação de dados específicas do Android que precisam que
a opção de depuração USB esteja ativada. Quase todas as ferramentas de recuperação de dados do Android
no mercado precisam que você habilite a depuração USB para que seu dispositivo e o cartão SD possam ser
reconhecidos antes de iniciar a recuperação de dados do Android.
Machine Translated by Google

Você deve entender que os dispositivos Android podem usar espaço no cartão SD para
armazenar em cache os dados do aplicativo; portanto, é importante garantir que o máximo de dados
possível seja obtido do dispositivo antes de remover o cartão SD.
Alguns dispositivos mais antigos montam automaticamente o dispositivo como uma
unidade quando conectados por USB. É uma boa prática forense não trabalhar diretamente no
dispositivo para extração de dados, recuperação de dados e assim por diante. Portanto, uma
imagem física do cartão SD precisa ser obtida e toda a análise necessária é realizada na própria
imagem. Recomenda-se adquirir o cartão SD através do dispositivo, bem como separadamente
para garantir que todos os dados sejam obtidos. Para obter a imagem do cartão SD, dd a adb pode
ser usado enquanto o dispositivo estiver em execução para obter uma imagem do cartão SD do
dispositivo se o dispositivo não puder ser desligado devido a possíveis evidências em execução na
memória. Se o cartão SD for removido e conectado à estação de trabalho por meio de um leitor de
cartão, ele aparecerá como armazenamento em massa externo, cuja imagem pode ser obtida
usando as técnicas forenses padrão descritas nos capítulos anteriores.

Depois que a imagem é obtida, ela pode ser analisada usando qualquer ferramenta forense
padrão, como o FTK Imager. FTK Imager é uma ferramenta simples que pode ser usada para
criar e analisar imagens de disco. Está disponível para download em https://accessda
ta.com/product-download/ftk-imager-version-3.2.0.

O seguinte é um processo passo a passo para recuperar os arquivos excluídos de um


Imagem do cartão SD usando o FTK Imager:

1. Inicie o FTK Imager e clique em Arquivo, depois clique em Adicionar item de evidência...
no cardápio:

Adicionando evidências no FTK Imager


Machine Translated by Google

2. Selecione Arquivo de imagem como o tipo de evidência na caixa de diálogo Selecionar origem e
clique em Avançar:

Selecionando o tipo de arquivo no FTK Imager

3. Na caixa de diálogo Selecionar arquivo, vá para o local onde o cartão SD SDCARD.dd


arquivo de imagem está presente, selecione-o e clique em Concluir:
Machine Translated by Google

Selecionando o arquivo de imagem para análise no FTK Imager

4. O conteúdo da imagem do cartão SD é exibido no painel Exibir.


Você pode navegar pelas pastas clicando no sinal +. Quando uma pasta é
realçada, o conteúdo é mostrado no painel direito. Quando um arquivo é
selecionado, seu conteúdo pode ser visto no painel inferior. Conforme mostrado
na captura de tela a seguir, os arquivos excluídos também são mostrados com
uma marca de cruz vermelha sobre o ícone:

Arquivos excluídos mostrados com uma cruz vermelha sobre os ícones no FTK Imager
Machine Translated by Google

5. Para copiar os arquivos excluídos para a estação de trabalho, clique com o botão direito do mouse no
arquivo marcado e selecione Exportar arquivos..., conforme mostrado na captura de tela a seguir:

Recuperando imagens excluídas no FTK Imager

Também é recomendável verificar se o dispositivo possui algum aplicativo ou arquivo de backup


instalado. A versão inicial do Android não incluía um mecanismo para os usuários fazerem backup de seus
dados pessoais. Assim, vários aplicativos de backup foram usados extensivamente pelos usuários. Usando
esses aplicativos, os usuários podem fazer backup de seus dados no cartão SD ou na nuvem. Por exemplo, o
aplicativo Super Backup contém as opções para fazer backup de registros de chamadas, contatos, SMS e
muito mais, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

O aplicativo Super Backup para Android

Após a detecção de um aplicativo de backup, você deve tentar determinar onde os


dados estão armazenados. Normalmente, o caminho da pasta de backup é o cartão SD
interno. O caminho da pasta também está presente nas configurações do aplicativo de
backup. Os dados salvos em um backup podem conter informações importantes e,
portanto, procurar qualquer aplicativo de backup de terceiros no dispositivo seria muito útil.
Machine Translated by Google

Recuperando dados apagados


da memória interna
A recuperação de arquivos excluídos da memória interna de um dispositivo Android (como SMS,
contatos e dados de aplicativos) não é suportada por todas as ferramentas analíticas e pode exigir
entalhe manual. Ao contrário de algumas mídias que contêm sistemas de arquivos comuns, como
cartões SD, o sistema de arquivos pode não ser reconhecido e montado por ferramentas forenses.
Além disso, você não pode obter acesso às partições brutas da memória interna de um telefone
Android, a menos que o telefone esteja enraizado. Recomenda-se criar uma imagem do dispositivo
antes e depois do processo de root. A seguir estão alguns dos outros problemas que você pode
enfrentar ao tentar recuperar dados da memória interna em dispositivos Android:

Para obter acesso à memória interna, você pode tentar fazer root no telefone.
No entanto, o processo de root pode envolver a gravação de alguns dados na partição /
data , e esse processo pode substituir os dados de valor no dispositivo.

Ao contrário dos cartões SD, o sistema de arquivos interno aqui não é FAT32 (que é
amplamente suportado por ferramentas forenses). O sistema de arquivos interno pode
ser YAFFS2 (em dispositivos mais antigos), EXT3, EXT4, RFS ou algo proprietário criado
para rodar no Android. Portanto, muitas das ferramentas de recuperação projetadas para
uso com sistemas de arquivos do Windows não funcionarão.
Os dados de aplicativos em dispositivos Android geralmente são armazenados no formato
SQLite. Embora a maioria das ferramentas forenses forneça acesso aos arquivos do banco
de dados, eles podem precisar ser exportados e visualizados em um navegador nativo.
Você deve examinar os dados brutos para garantir que os dados excluídos não sejam
ignorados pela ferramenta forense.

Os motivos discutidos tornam difícil, mas não impossível, recuperar os dados excluídos da
memória interna. A memória interna dos dispositivos Android contém a maior parte dos dados
do usuário e as possíveis chaves para sua investigação. Como mencionado anteriormente, o
dispositivo deve estar enraizado para acessar
Machine Translated by Google

as partições brutas. A maioria das ferramentas de recuperação do Android no mercado


não destaca o fato de funcionarem apenas em telefones com root. Vamos agora dar uma
olhada em como podemos recuperar dados excluídos de um telefone Android.
Machine Translated by Google

Recuperando arquivos excluídos por análise


arquivos SQLite

O Android usa arquivos SQLite para armazenar a maioria dos dados. Dados relacionados a
mensagens de texto, e-mails e determinados dados de aplicativos são armazenados em arquivos
SQLite. Os bancos de dados SQLite podem armazenar dados excluídos no próprio banco de dados.
Arquivos marcados para exclusão pelo usuário não aparecem mais nos arquivos ativos do banco de
dados SQLite. Portanto, é possível recuperar os dados excluídos, como mensagens de texto e contatos.
Existem duas áreas em uma página SQLite que podem conter dados excluídos — blocos não
alocados e blocos livres.

A maioria das ferramentas comerciais que recuperam dados excluídos verificam os blocos não

alocados e os blocos livres das páginas SQLite. A análise dos dados excluídos pode ser feita usando
as ferramentas forenses disponíveis, como o Oxygen Forensics SQLite Viewer. A versão de teste
do SQLite Viewer pode ser usada para essa finalidade; no entanto, há certas limitações na quantidade
de dados que você pode recuperar. Você pode escrever seu próprio script para analisar os arquivos
em busca de conteúdo excluído e, para isso, precisa ter um bom entendimento do formato de arquivo
SQLite. A página http://www.sqlite.org/fileformat.html é Um bom lugar para começar. Se você não
quiser reinventar a roda e quiser reutilizar os scripts existentes, tente os scripts Python de código aberto
disponíveis (http://az4n6.blogspot.in/2 013/11/python-parser-to-recover- delete-sqlite.html) para analisar
os arquivos SQLite em busca de registros excluídos.

Para o nosso exemplo, vamos recuperar SMS excluídos de um dispositivo Android.


A recuperação de SMSs apagados de um telefone Android é frequentemente solicitada como parte da
análise forense de um dispositivo, principalmente porque as mensagens de texto contêm dados, que
podem revelar muitas informações. Existem diferentes maneiras de recuperar mensagens de texto
excluídas em um dispositivo Android. Primeiro, precisamos entender onde as mensagens estão sendo
armazenadas no dispositivo. No Capítulo 9, Técnicas de extração de dados do Android, explicamos os
locais importantes no dispositivo Android onde os dados do usuário são armazenados. Aqui está uma
rápida recapitulação disso:
Machine Translated by Google

Todo aplicativo armazena seus dados na pasta /data/data (novamente, isso requer acesso
root para adquirir dados).
Os arquivos no local, /data/data/
com.android.providers.telephony/databases, contêm detalhes sobre o SMS/MMS.

Nos locais mencionados, as mensagens de texto são armazenadas em um arquivo de


banco de dados SQLite, denominado mmssms.db. As mensagens de texto excluídas
podem ser recuperadas examinando este arquivo. Aqui estão as etapas para recuperar
SMSs excluídos usando o arquivo mmssms.db :

1. No dispositivo Android, ative o modo de depuração USB e conecte


o dispositivo para a estação de trabalho forense. Usando a ferramenta de linha de comando
adb , extraia a pasta de bancos de dados presente em /data/data/ emitindo o seguinte
comando:

adb.exe pull /data/data/com.android.providers.telephony/databases C:\temp

A saída pode ser vista a seguir:

Comando pull ADB


Uma vez que os arquivos são extraídos para a máquina local, use a ferramenta Oxygen Forensics
SQLite Viewer para abrir o arquivo mmssms.db .

2. Clique na tabela denominada sms e observe a mensagem atual sob o


Guia de dados de tabelas na ferramenta.

3. Uma forma de visualizar os dados deletados é clicando nos Blocos


contendo a guia de dados excluídos, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Recuperando mensagens SMS excluídas

Da mesma forma, outros dados residentes em dispositivos Android armazenados em


arquivos SQLite podem ser recuperados analisando o conteúdo excluído. Quando o
método anterior não fornece acesso aos dados excluídos, você deve procurar no arquivo em
formato hexadecimal bruto os dados marcados como excluídos, que podem ser gravados e
relatados manualmente.
Machine Translated by Google

Recuperando arquivos usando técnicas de


escultura de arquivo

O file carving é um método extremamente útil em forense porque permite que os dados que foram
excluídos ou ocultos sejam recuperados para análise. Em termos simples, file carving é o processo de
remontar arquivos de computador a partir de fragmentos na ausência de metadados do sistema de
arquivos. No file carving, os tipos de arquivo especificados são pesquisados e extraídos nos dados
binários para criar uma imagem forense de uma partição ou de um disco inteiro. A escultura de arquivos
recupera arquivos do espaço não alocado em uma unidade com base apenas na estrutura e no conteúdo
do arquivo, sem nenhum metadado do sistema de arquivos correspondente. Espaço não alocado refere-
se à parte da unidade que não contém mais nenhuma informação de arquivo indicada pelas estruturas do
sistema de arquivos, como a tabela de arquivos.

Os arquivos podem ser recuperados ou reconstruídos ao escanear os bytes brutos do disco e remontá-los.
Isso pode ser feito examinando o cabeçalho (os primeiros bytes) e o rodapé (os últimos bytes) de um arquivo.

Os métodos de escultura em arquivo são categorizados com base na técnica subjacente em uso. O
método de escultura de cabeçalho-rodapé depende da recuperação dos arquivos com base em suas
informações de cabeçalho e rodapé. Por exemplo, para arquivos JPEG, eles começam com 0xffd8 e
terminam com 0xffd9.

As localizações do cabeçalho e do rodapé são identificadas e tudo entre esses dois pontos finais é
esculpido. Da mesma forma, o método de escultura baseado na estrutura do arquivo usa o layout interno
de um arquivo para reconstruir o arquivo.
No entanto, as técnicas tradicionais de gravação de arquivos, como as que já explicamos, podem não
funcionar se os dados estiverem fragmentados. Para superar isso, novas técnicas, como a escultura
inteligente, usam as características de fragmentação de vários sistemas de arquivos populares para
recuperar os dados.

Depois que a imagem do telefone é obtida, ela pode ser analisada usando ferramentas como o Scalpel.
Scalpel é um poderoso utilitário de código aberto para esculpir arquivos. Esta ferramenta analisa o
Machine Translated by Google

bloqueia o armazenamento do banco de dados, identifica os arquivos excluídos e os recupera.


O Scalpel é independente do sistema de arquivos e é conhecido por funcionar em vários
sistemas de arquivos, incluindo FAT, NTFS, EXT2, EXT3, HFS e muito mais. Mais detalhes sobre
o Scalpel podem ser encontrados em https://github.com/sleuthkit/scalpel. As etapas a seguir explicam
como usar o Scalpel em uma estação de trabalho Ubuntu:

1. Instale o Scalpel na estação de trabalho Ubuntu usando o comando sudo apt-get install bisturi .

2. O arquivo scalpel.conf presente no diretório /etc/scalpel contém


informações sobre os tipos de arquivo suportados, conforme mostrado na captura de tela a
seguir:

O arquivo de configuração do bisturi


Este arquivo precisa ser modificado para mencionar os arquivos relacionados ao Android. Um arquivo
scalpel.conf de amostra pode ser baixado em https:// www.nowsecure.com/ tools-and-trainings/ #viaforensics.
Você também pode descomentar os arquivos e salvar o arquivo conf para selecionar os tipos de arquivo de sua escolha.
Feito isso, substitua o arquivo conf original pelo que foi baixado.

3. Scalpel precisa ser executado junto com o arquivo de configuração anterior na imagem dd que
está sendo examinada. Você pode executar a ferramenta usando o seguinte comando inserindo
o arquivo de configuração e o arquivo dd :
Machine Translated by Google

$ scalpel -c /home/unigeek/Desktop/scalpel-android.conf /home/unigeek/


Desktop/userdata.dd -o /home/unigeek/Desktop/rohit

Depois que esse comando é executado, a ferramenta começa a esculpir os arquivos e


construí-los de acordo, conforme mostrado na captura de tela a seguir:

Executando a ferramenta Scalpel em um arquivo dd

4. A pasta de saída que foi especificada no comando anterior agora


contém listas de pastas com base nos tipos de arquivo, conforme mostrado na captura de
tela a seguir. Cada uma dessas pastas contém dados baseados no nome da pasta. Por
exemplo, jpg 2-0 contém arquivos relacionados à extensão .jpg que foram recuperados:
Machine Translated by Google

Pasta de saída após executar a ferramenta Scalpel

5. Conforme mostrado na captura de tela anterior, cada pasta contém dados recuperados do
dispositivo Android, como imagens, arquivos PDF, arquivos ZIP e muito mais. Enquanto
algumas imagens são recuperadas completamente, outras não são totalmente recuperadas,
conforme mostrado na captura de tela a seguir:

Dados recuperados usando a ferramenta Scalpel

Aplicativos como DiskDigger podem ser instalados em dispositivos Android para recuperar
diferentes tipos de arquivos tanto da memória interna quanto dos cartões SD.
DiskDigger inclui suporte para arquivos JPG, áudio MP3 e WAV, vídeo MP4 e 3GP, formatos de
câmera raw, arquivos do Microsoft Office (DOC, XLS e PPT) e muito mais. No entanto, como
mencionado anteriormente, o aplicativo requer privilégios de root no dispositivo Android para
recuperar o conteúdo da memória interna. Essas alterações devem ser claramente documentadas
por você.
O aplicativo DiskDigger para Android opera em dois modos diferentes, modo de varredura
básica e modo de varredura completa.
Machine Translated by Google

O modo de verificação completa funciona apenas em dispositivos com root, enquanto o modo
de verificação básica funciona em qualquer dispositivo. Conforme mostrado na captura de tela
a seguir, em um telefone com root, o aplicativo localiza e exibe automaticamente as partições
disponíveis:

O aplicativo DiskDigger

Depois de selecionar a partição de memória, a ferramenta agora solicita que você selecione os tipos
de arquivos que deseja recuperar. Prossiga selecionando o arquivo
Machine Translated by Google

tipos de interesse:

A tela de seleção de arquivo do aplicativo DiskDigger

Assim que a verificação começar, o aplicativo DiskDigger mostrará automaticamente os


arquivos disponíveis para recuperação. Os arquivos recuperados podem ser salvos no
aplicativo ou diretamente no dispositivo. Assim, as técnicas de entalhe de arquivo desempenham
Machine Translated by Google

um papel muito importante na recuperação de arquivos excluídos importantes da memória


interna do dispositivo.
Machine Translated by Google

Recuperando contatos usando seu


conta do Google
Você também pode restaurar os contatos no dispositivo usando o aplicativo Contatos por meio
da conta do Google configurada no dispositivo. Isso funcionaria se o usuário do dispositivo já tivesse
sincronizado seus contatos usando a opção Configurações de sincronização disponível no Android. Esta
opção sincroniza os contatos e outros detalhes e os armazena na nuvem. Um examinador forense como
você com autoridade legal ou consentimento adequado pode restaurar os contatos excluídos se você

conseguir acessar a conta do Google configurada no dispositivo. Depois que a conta for acessada,
execute as seguintes etapas para restaurar os dados:

1. Faça login em seu aplicativo de contatos do Google no dispositivo Android usando a conta do
Google configurada. O exemplo a seguir é uma tentativa em um dispositivo OnePlus 5
executando a versão Android Pie.
2. Clique em Configurações e depois procure Restaurar, conforme mostrado a seguir
captura de tela:
Machine Translated by Google

O menu Restaurar no aplicativo Contatos

3. Clique em Restaurar e a seguinte tela aparecerá:


Machine Translated by Google

A caixa de diálogo Restaurar contatos

Como você pode ver, você pode restaurar a lista de contatos para um estado anterior
quando o backup foi feito em vários pontos no tempo. Você também pode usar a opção
Desfazer alterações no menu Configurações para restaurar os contatos para qualquer
estado nos últimos 30 dias:
Machine Translated by Google

Restaurar contatos excluídos na conta do Google

Portanto, usando qualquer uma das técnicas anteriores, um examinador forense como
você pode tentar recuperar facilmente os dados excluídos.
Machine Translated by Google

Resumo
Neste capítulo, aprendemos várias técnicas para recuperar dados excluídos de um
dispositivo Android. Este processo depende de vários fatores, que dependem
fortemente do acesso aos dados que residem na memória interna e no cartão SD.
Vimos várias técnicas para recuperar dados excluídos do cartão SD e da memória
interna. Embora a recuperação de itens excluídos do armazenamento externo, como
um cartão SD, seja fácil, a recuperação de itens excluídos da memória interna exige
um esforço considerável. Também aprendemos técnicas de análise e escultura de
arquivos SQLite, usando as quais os dados excluídos podem ser extraídos de um
dispositivo Android. Com esse conhecimento, agora você pode executar a
recuperação de dados durante uma investigação forense.

O próximo capítulo discute a análise forense de aplicativos Android e malware


e a engenharia reversa de aplicativos Android.
Machine Translated by Google

Análise de aplicativos Android,


malware e engenharia reversa
Aplicativos de terceiros são comumente usados por usuários de smartphones. Os usuários do
Android baixam e instalam vários aplicativos de lojas de aplicativos, como o Google Play. Durante
as investigações forenses, geralmente é útil realizar uma análise desses aplicativos para recuperar
dados valiosos e detectar qualquer malware.
Por exemplo, um aplicativo de cofre de fotos pode bloquear imagens confidenciais presentes
em um dispositivo. Portanto, seria de grande importância ter conhecimento para identificar a
senha do aplicativo do cofre de fotos.

Além disso, aplicativos como Facebook, WhatsApp, Skype e assim por diante são amplamente
usados hoje em dia e geralmente são a fonte de dados valiosos que auxiliam na solução de um
caso. Portanto, é importante saber que tipo de dados esses aplicativos armazenam e a localização
desses dados. Embora as técnicas de extração e recuperação de dados que discutimos nos capítulos

anteriores forneçam acesso a dados valiosos, a análise de aplicativos nos ajuda a obter informações
sobre as especificidades de um aplicativo, como preferências e permissões.

Neste capítulo, abordaremos os seguintes tópicos:

Analisando aplicativos Android amplamente usados para recuperar dados valiosos


Técnicas para fazer engenharia reversa em um aplicativo Android
Android malware
Machine Translated by Google

Analisando aplicativos Android


amplamente usados para recuperar dados valiosos

No Android, tudo o que o usuário interage é um aplicativo. Enquanto alguns aplicativos


são pré-instalados pelo fabricante do dispositivo, outros são baixados e instalados pelo
usuário. Por exemplo, até mesmo funções rotineiras, como contatos, chamadas, SMS e
assim por diante, são realizadas por meio de seus respectivos aplicativos. Assim, a
análise de aplicativos Android é crucial durante uma investigação. Vários aplicativos de
terceiros, como WhatsApp, Facebook, Skype, navegador Chrome e assim por diante, são
amplamente usados e lidam com muitas informações valiosas.
Dependendo do tipo de aplicativo, a maioria desses aplicativos armazena
informações confidenciais na memória interna do dispositivo ou no cartão SD. A
análise deles pode fornecer informações sobre os detalhes de localização do usuário,
sua comunicação com outras pessoas e muito mais. Usando as técnicas forenses
que descrevemos anteriormente, é possível obter acesso aos dados armazenados
por esses aplicativos. No entanto, você, como examinador forense, precisa
desenvolver as habilidades necessárias para converter os dados disponíveis em
dados úteis. Isso é alcançado quando você tem uma compreensão abrangente de
como o aplicativo lida com os dados.

Como discutimos nos capítulos anteriores, todos os aplicativos armazenam seus dados
na pasta /data/data por padrão. Os aplicativos também armazenam outros dados no
cartão SD, se quiserem, solicitando permissão no momento da instalação. As informações
sobre os aplicativos presentes no dispositivo podem ser obtidas inspecionando o conteúdo
da pasta /data/data , mas isso não é direto, pois requer a análise de cada pasta de
aplicativo individual nesse caminho. Como alternativa, você pode inspecionar o arquivo
packages.list presente em /data/system. Este arquivo contém informações sobre todos
os aplicativos, juntamente com seus nomes de pacotes e caminhos de dados.

Isso pode ser feito usando o seguinte comando:

# cat packages.list
Machine Translated by Google

A seguir está a saída do comando anterior:

Conteúdo do arquivo packages.list

Agora, vamos olhar especificamente para alguns aplicativos de terceiros que são amplamente usados
e lidam com dados valiosos.

Os aplicativos a seguir estão sendo abordados apenas para familiarizá-lo com o tipo de
dados que podem ser extraídos e os possíveis locais onde os dados podem ser obtidos. Você
precisará obter as permissões apropriadas e cumprir as regras legais antes de executar essas
tarefas em um dispositivo. Como explicamos no Capítulo 8, Configuração forense do Android e
técnicas de pré-extração de dados, as técnicas a seguir só funcionam depois que o dispositivo
foi rooteado.
Machine Translated by Google

Análise do aplicativo Android do Facebook

O aplicativo do Facebook para Android é um dos aplicativos de rede social mais usados. Ele
armazena suas informações na pasta /data/data , dentro do pacote com.facebook.katana .
Os detalhes a seguir fornecem uma visão geral do tipo de informação que pode ser coletada
em vários arquivos:

Contatos do Facebook: As informações sobre os contatos do Facebook do


usuário podem ser recuperadas analisando o banco de dados contacts_db2 , que
está presente no seguinte caminho: Caminho: /data/data/com.facebook.katana/
databases/contacts_db2.
O banco de dados contacts_db2 (arquivo SQLite) contém uma tabela
chamada contacts, que contém a maioria das informações do usuário, como
nome, sobrenome, nome de exibição e URL da imagem de exibição.

Notificações do Facebook: as informações sobre as notificações de um usuário


podem ser coletadas analisando o banco de dados notification_db , que está presente
no seguinte caminho: Caminho: /data/data/com.facebook.katana/databases/
notifications_db.
A tabela gql_notifications presente no caminho anterior contém as informações
do usuário. A coluna saw_state confirma se uma notificação foi vista ou não.
A coluna atualizada aponta para a hora em que a notificação foi atualizada. A
coluna gql_payload contém a notificação e as informações do remetente.

Mensagens do Facebook: Uma conversa de mensagem do Facebook pode ser


de importância crucial em vários casos e pode ser visualizada analisando o banco de
dados threads_db2 : Caminho: /data/data/com.facebook.katana/databases/
threads_db2
Vídeos do feed de notícias: A pasta /video-cache contém vídeos que foram
baixados do feed de notícias do usuário. Observe que esses não são os vídeos
postados pelo usuário, mas sim os vídeos que apareceram em seu feed de notícias:

Caminho: /data/data/com.facebook.katana/files/video-cache
Machine Translated by Google

Imagens do feed de notícias: A pasta /images contém várias imagens que aparecem
no perfil do usuário, como as de seu feed de notícias e fotos de perfil de contato. Vários
diretórios estão presentes nesta pasta e as imagens podem ser armazenadas em
formatos diferentes de .jpg, como .cnt: Caminho: /data/data/com.facebook.katana/
cache/images Dados do feed de notícias: O banco de dados newfeed_db contém
dados mostrados para o usuário em seu feed de notícias. Conforme mostrado na
captura de tela a seguir, a análise desse banco de dados forneceria informações
valiosas, como quando uma determinada história foi carregada pelo dispositivo (a coluna
fetched_at ), se uma determinada história foi vista pelo usuário (a coluna seen_state ) e
onde o os arquivos correspondentes de uma história são armazenados no dispositivo (a
coluna cache_file_path ): Caminho: /data/data/com.facebook.katana/databases/
newsfeed_db:

O arquivo newsfeed.db do Facebook analisado no navegador SQLite

Na captura de tela anterior, fetched_at especifica a data e a hora em que essas informações
são buscadas. Observe que o aplicativo usa o tempo de época do Linux, também conhecido
como tempo Unix ou tempo Posix, para armazenar essas informações. Esse formato
costuma ser usado por vários aplicativos e, portanto, vale a pena dar uma olhada. Linux
Machine Translated by Google

a hora da época é armazenada como o número de segundos (ou milissegundos)


desde a meia-noite de 1º de janeiro de 1970. Existem vários sites online, como https://w
ww.epochconverter.com/, que podem facilmente converter a hora da época do Linux em
um formato normal. Por exemplo, a captura de tela a seguir mostra a hora da época do
Linux 1.577.881.839 convertida em um formato normal:

Exemplo de formato de hora

Agora que fizemos uma análise do aplicativo do Facebook, vamos fazer uma análise
semelhante com nosso próximo aplicativo, que é o WhatsApp.
Machine Translated by Google

Análise do aplicativo WhatsApp para Android

O WhatsApp é o serviço de mensagens de bate-papo (áudio e vídeo) mais popular e é usado por
mais de um bilhão de pessoas em todo o mundo. Ele armazena suas informações na pasta /data/
data , com o nome do pacote, com.whatsapp. A seguir está uma visão geral dos arquivos importantes
que são de interesse do ponto de vista forense:

Foto do perfil do usuário: A foto do perfil do usuário é salva com o nome de


arquivo theme.jpg e está presente no seguinte caminho: Caminho: /data/data/
com.whatsapp/me.jpg
Número de telefone do usuário (associado ao WhatsApp): o arquivo me que está presente na
pasta principal contém o número de telefone associado à conta do WhatsApp do usuário. Observe
que este pode ou não ser o número de telefone associado ao SIM:

Caminho: /data/data/com.whatsapp/me
Foto de perfil de contatos: O diretório /avatars contém miniaturas das fotos de perfil dos contatos
do usuário (que usam o WhatsApp): Caminho: /data/data/com.whatsapp/files/Avatars Mensagens
de bate-papo: todas as informações relacionadas a mensagens, incluindo bate-papos e
detalhes do remetente, estão presentes no arquivo msgstore.db , que está presente no seguinte
local: Caminho: /data/data/com.whatsapp/databases/msgstore.db Arquivos do WhatsApp : A
maioria dos arquivos compartilhados com o WhatsApp, como imagens, vídeos e mensagens de
áudio, são armazenados no cartão SD no seguinte local: Caminho: /sdcard/WhatsApp/
Media

Ambos os arquivos enviados e recebidos são armazenados separadamente aqui em seus respectivos
nomes de pasta.

A seguir, veremos outro aplicativo usado para telecomunicações e especializado em fornecer bate-papo
por vídeo e chamadas de voz: o Skype.
Machine Translated by Google

Análise do aplicativo Skype para Android

O Skype é um aplicativo que oferece serviços de bate-papo por vídeo e


chamadas de voz. Os dados do aplicativo são armazenados na pasta /data/data ,
com o nome do pacote com.skype.raider. A seguir estão alguns artefatos importantes que
podem ser extraídos analisando o aplicativo Skype:

Nome de usuário e endereço IP: O arquivo shared.xml presente no


seguinte caminho contém informações sobre o nome de usuário e o último endereço
IP conectado ao Skype: Caminho: /data/data/com.skype.raider/files/shared.xml
Foto do perfil : A foto do perfil do usuário está presente no diretório /
thumbnails , cujo caminho é o seguinte: Caminho: /data/data/com.skype.raider/files/
<username>/thumbnails/ Logs de chamadas: Informações sobre os logs de
chamadas feitas no Skype está disponível no arquivo main.db. A análise
desse arquivo nos fornece muitas informações: Caminho: /data/data/
com.skype.raider/files/<username>/main.db/.

Por exemplo, a tabela de duração fornece informações sobre a duração


da chamada, o campo start_timestamp fornece a hora de início de uma
chamada e o campo creation_timestamp indica quando a chamada é iniciada
(isso inclui chamadas não atendidas). A coluna de tipo indica se a chamada
foi de entrada (valor= 1) ou de saída (valor= 2).
Mensagens de bate- mensagens tabela presente no arquivo main.db contém todos
papo: As mensagens de bate-papo. As colunas author e from_dispname
fornecem informações sobre quem escreveu a mensagem. A coluna timestamp
mostra a data/hora da mensagem. A coluna body_xml contém o conteúdo da
mensagem: Path: /data/data/com.skype.raider/files/<username>/main.db/

Arquivos transferidos: A tabela Transfers contém informações sobre os


arquivos transferidos, como o nome do arquivo, o tamanho do arquivo e sua
localização no dispositivo: Path: /data/data/com.skype.raider/files/<username>/
main .db/.
As imagens ou arquivos reais recebidos serão armazenados em um cartão
SD. Se um arquivo for baixado, ele estará na pasta Downloads em
Machine Translated by Google

a raiz do SD.
Bate-papos em grupo: a tabela ChatMembers mostra uma lista de usuários
que estão presentes em um determinado bate-papo. A coluna do adicionador
mostra o usuário que iniciou a conversa: Caminho: /data/data/com.skype.raider/
files/<username>/main.db/

Agora, faremos uma análise no aplicativo Gmail.


Machine Translated by Google

Análise do aplicativo Gmail para Android

O Gmail é um serviço de e-mail amplamente utilizado oferecido pelo Google. Os


dados do aplicativo são salvos na pasta /data/data , com o nome do pacote
com.google.android.gm. A seguir estão os artefatos importantes que podem ser
extraídos analisando o aplicativo Gmail:

Detalhes da conta: Os arquivos XML presentes em /shared_prefs confirmam os


detalhes da conta de e-mail. Detalhes de outras contas vinculadas ao e-mail atual
podem ser identificados no arquivo Gmail.xml :
Caminho: /data/data/com.google.android.gm/cache/
<username>@gmail.com Anexos: os anexos usados recentemente no envio e
recebimento de e-mails são salvos no diretório /cache . Isso é valioso porque
também nos dá acesso a itens que foram excluídos do serviço de e-mail. Cada
linha também contém um valor message_conversation .
Esse valor pode ser comparado com a tabela de conversas do anexo de
email. A coluna de nome de arquivo identifica o caminho no dispositivo onde o
arquivo está localizado. A seguir está o caminho exato para esta pasta: Caminho: /
data/data/com.google.android.gm/cache/<username>@gmail.com:

Lista de anexos presentes no diretório de cache do Gmail


Machine Translated by Google

Assunto do e-mail: O assunto deste e-mail pode ser recuperado analisando a tabela
de conversas presente no mailstore.<username>@gmail.com.db file: Path: /data/data/
com.google.android.gm/databases/mailstore .
<nome de usuário>@gmail.com.db

Histórico de pesquisa: todas as pesquisas de texto feitas no aplicativo são


armazenadas no arquivo sugestões.db , que está presente no seguinte local:

Caminho: /data/data/com.google.android.gm/databases/suggestions.db

Vamos encerrar esta seção realizando uma análise final no aplicativo Google Chrome.
Machine Translated by Google

Análise do aplicativo Google Chrome


para Android

O Google Chrome é o navegador da Web padrão no Google Pixel e em muitos outros


dispositivos, e é amplamente usado para navegar na Internet. Os dados do aplicativo
estão presentes na pasta /data/data , com o nome do pacote, com.android.chrome.
A seguir estão os artefatos importantes que podem ser extraídos analisando o
aplicativo Gmail:

Foto do perfil: a foto do perfil do usuário é armazenada com o nome de arquivo


Google Profile Picture.png no seguinte local: Caminho: /data/data/
com.android.chrome/app_chrome/Default/ Perfil do Google
Picture.png

Marcadores: o arquivo Marcadores contém informações sobre todos os


marcadores sincronizados com a conta. Detalhes como o nome do site,
URL e a hora em que foi adicionado aos favoritos podem ser coletados
analisando este arquivo: Caminho: /data/data/com.android.chrome/
app_chrome/Default/Bookmarks Histórico de navegação: o arquivo
History.db contém o histórico da web do usuário armazenado em várias
tabelas. Por exemplo, conforme mostrado na captura de tela a seguir, a tabela
keyword_search_terms contém informações sobre as pesquisas feitas usando
o navegador Chrome:
Machine Translated by Google

Histórico de navegação do Google Chrome

A tabela de segmentos contém uma lista de sites visitados pelo usuário (mas não
todos os sites). É interessante notar que o Chrome armazena os dados pertencentes
não apenas ao dispositivo, mas à conta em geral.
Em outras palavras, as informações sobre sites que foram visitados de outros
dispositivos usando a mesma conta também são armazenadas no dispositivo; por
exemplo, a tabela de URLs contém o histórico de navegação de uma conta do Google
em vários dispositivos.
Caminho: /data/data/com.android.chrome/app_chrome/Default/History.

Dados de Login: O banco de dados de Dados de Login contém as informações de login de


diferentes sites salvos no navegador. A URL do site, juntamente com o nome de usuário e a
senha, são armazenados nas respectivas tabelas:
Caminho: /data/data/com.android.chrome/app_chrome/Default/Login Data
Sites visitados com frequência: o banco de dados dos Sites principais contém uma
lista de sites visitados com frequência: Caminho: /data/data/com.android.chrome/
app_chrome/ Sites padrão/principais
Machine Translated by Google

Outros dados: outras informações, como números de telefone ou endereços de e-mail


inseridos pelo usuário durante o preenchimento de formulários em diferentes sites, são
armazenadas no banco de dados de dados da Web . Todas as tabelas presentes neste banco
de dados contêm dados de preenchimento automático:
Caminho: /data/data/com.android.chrome/app_chrome/Default/Web Data

Agora que analisamos os diferentes aplicativos de terceiros, veremos as técnicas que podemos usar
para fazer engenharia reversa de aplicativos Android.
Machine Translated by Google

Técnicas para fazer engenharia reversa de um


aplicativo Android
Você pode precisar lidar com aplicativos que representam uma barreira para acessar as
informações necessárias. Por exemplo, veja o caso da galeria em um telefone bloqueado
por um aplicativo AppLock . Nesse caso, para acessar as fotos e vídeos armazenados
na galeria, primeiro você precisa digitar a senha do AppLock. Portanto, seria interessante
saber como o aplicativo AppLock armazena a senha no dispositivo. Você pode procurar
nos arquivos de banco de dados SQLite. No entanto, se eles estiverem criptografados, é
difícil dizer que é uma senha. Os aplicativos de engenharia reversa seriam úteis nos casos
em que você deseja entender melhor o aplicativo e como o aplicativo armazena os dados.

Em termos simples, a engenharia reversa é o processo de recuperar o código-fonte de


um executável. A engenharia reversa de um aplicativo Android é feita para entender a
funcionalidade do aplicativo, o armazenamento de dados, os mecanismos de segurança
em vigor e muito mais. Antes de prosseguirmos para aprender como fazer engenharia
reversa de um aplicativo Android, aqui está uma rápida recapitulação dos aplicativos
Android:

Todos os aplicativos instalados no dispositivo Android são escritos na linguagem de


programação Java.
Quando um programa Java é compilado, obtemos bytecode. Isso é enviado para
um compilador dex, que o converte em bytecode Dalvik.
Assim, os arquivos de classe são convertidos em arquivos dex usando uma ferramenta dx.
O Android usa algo chamado Dalvik virtual machine (DVM) para executar seus
aplicativos.
O bytecode da JVM consiste em um ou mais arquivos de classe, dependendo do
número de arquivos Java presentes em um aplicativo. Independentemente disso,
um bytecode Dalvik é composto por apenas um arquivo dex.
Machine Translated by Google

Assim, os arquivos dex, arquivos XML e outros recursos necessários para executar um
aplicativo são empacotados em um arquivo de pacote do Android (um arquivo APK).
Esses arquivos APK são simplesmente coleções de itens dentro de arquivos ZIP.
Portanto, se você renomear um arquivo de extensão APK para um arquivo .zip, poderá
ver o conteúdo do arquivo. No entanto, antes de fazer isso, você precisa obter acesso ao
arquivo APK do aplicativo instalado no telefone.
Aqui está como o arquivo APK correspondente a um aplicativo pode ser acessado.
Machine Translated by Google

Extraindo um arquivo APK de um


dispositivo Android

Os aplicativos que vêm pré-instalados com o telefone são armazenados no diretório /


system/app . Aplicativos de terceiros baixados pelo usuário são armazenados na
pasta /data/app . O método a seguir ajuda você a obter acesso aos arquivos APK no
dispositivo; funciona em dispositivos rooteados e não rooteados:

1. Identifique o nome do pacote do aplicativo emitindo o # adb.exe shell pm


comando listar pacotes.

A seguir está a saída do comando anterior:

Lista de nomes de pacotes presentes no dispositivo

Conforme mostrado na saída de linha de comando anterior, a lista de nomes de


pacotes é exibida. Tente encontrar uma correspondência entre o aplicativo em questão
Machine Translated by Google

e o nome do pacote. Normalmente, os nomes dos pacotes estão muito


relacionados aos nomes dos aplicativos. Como alternativa, você pode usar o
Android Market ou o Google Play para identificar facilmente o nome do pacote. A
URL de um aplicativo no Google Play contém o nome do pacote, conforme
mostrado na captura de tela a seguir:

Aplicativo do Facebook na Google Play Store

2. Identifique o caminho completo do arquivo APK para o pacote desejado por


emitindo o comando adb shell pm path , da seguinte forma:

Identificando o caminho completo do APK

3. Puxe o arquivo APK do dispositivo Android para a estação de trabalho forense


usando o comando adb pull :
Machine Translated by Google

comando adp pull

Agora vamos analisar o conteúdo de um arquivo APK. Um pacote Android é um


contêiner para os recursos e executáveis de um aplicativo Android. É um arquivo
compactado que contém os seguintes arquivos:

AndroidManifest.xml: Contém informações sobre as permissões e


mais.

classes.dex: Este é o arquivo de classe que foi convertido em um arquivo dex pelo
compilador dex.
Res: Os recursos do aplicativo, como arquivos de imagem, arquivos de som e
outros, estão presentes neste diretório.
Lib: contém bibliotecas nativas que o aplicativo pode usar.
META-INF: contém informações sobre a assinatura do aplicativo e as somas de
verificação assinadas para todos os outros arquivos do pacote.

Depois que o arquivo APK for obtido, você poderá fazer a engenharia reversa do
aplicativo Android.
Machine Translated by Google

Etapas para fazer engenharia reversa de


aplicativos Android

Os arquivos APK podem sofrer engenharia reversa de diferentes maneiras para


obter o código original. A seguir está um método que usa as ferramentas dex2jar e JD-
GUI para obter acesso ao código do aplicativo. Para nosso exemplo, examinaremos o
arquivo com.twitter.android-1.apk . A seguir estão as etapas para fazer a engenharia
reversa com êxito do arquivo APK:

1. Renomeie a extensão do APK para ZIP para ver o conteúdo do arquivo.


Renomeie o arquivo com.twitter.android-1.apk para twitter.android-1.zip e
extraia o conteúdo desse arquivo usando qualquer aplicativo de arquivamento de
arquivos. A captura de tela a seguir mostra os arquivos que foram extraídos do
arquivo original, twitter.android-1.zip:

Arquivos extraídos de um arquivo APK

2. O arquivo classes.dex que discutimos anteriormente pode ser acessado depois


de extrair o conteúdo do arquivo APK. Este arquivo dex precisa ser
Machine Translated by Google

convertido em um arquivo de classe em Java. Isso pode ser feito usando a ferramenta
dex2jar .
3. Baixe a ferramenta dex2jar em https://github.com/pxb1988/dex2jar, solte o arquivo classes.dex
no diretório de ferramentas dex2jar e emita o seguinte comando:

C:\Users\Rohit\Desktop\Training\Android\dex2jar-0.0.9.15>d2j- dex2jar.bat classes.dex


dex2jar classes.dex -> classes-dex2jar.jar

4. Quando o comando anterior é executado com sucesso, ele cria um novo


classes -dex2jar.jar no mesmo diretório, conforme mostrado na captura de tela a seguir:

O arquivo classes-dex2jar.jar criado pela ferramenta dex2jar

5. Para visualizar o conteúdo deste arquivo JAR, você pode usar uma ferramenta como JD
GUI. Conforme mostrado na captura de tela a seguir, os arquivos presentes em um
aplicativo Android e o código correspondente podem ser vistos:
Machine Translated by Google

A ferramenta JD-GUI

Uma vez que tenhamos acesso ao código, é fácil analisar como o aplicativo
armazena os valores, permissões e outras informações que podem ser úteis para
contornar certas restrições. Quando um malware é encontrado em um dispositivo,
esse método de descompilar e analisar o aplicativo pode ser útil, pois mostrará o que
está sendo acessado pelo malware e fornecerá pistas de para onde os dados estão
sendo enviados. As seções a seguir se concentram no malware do Android em detalhes.
Machine Translated by Google

Android malware
À medida que a participação de mercado do Android continua a aumentar, também
aumentam os ataques ou malware direcionados aos usuários do Android. Malware móvel
é um termo amplo que se refere a um software que executa ações não intencionais e
inclui cavalos de Tróia, spyware, adware, ransomware e outros. De acordo com a
pandasecurity, os dispositivos Android são 50 vezes mais infectados com malware em
comparação com os dispositivos iOS (https://www.pandasecurity.com/mediacenter/mobile-
security/android-more-infected-than-ios/ ). Em 2019, o famoso malware Agent Smith sozinho
infectou quase 25 milhões de dispositivos Android, de acordo com uma reportagem do
Cybersecurity Hub (https://www.cshub.com/malware/articles/incident-of-the-week-malware-
infects- 25m-andr oid-phones).

Uma das principais razões para esta situação é que, ao contrário da App Store da
Apple, que é rigidamente controlada pela empresa, a Play Store do Google é um
ecossistema aberto sem análises de segurança iniciais detalhadas. Os desenvolvedores
de malware podem facilmente mover seus aplicativos para a Play Store e, assim,
distribuí-los. O Google agora tem um software de detecção de malware chamado
Google Bouncer, que verifica automaticamente um aplicativo carregado em busca de
malware, mas os invasores descobriram várias maneiras de não serem detectados.
Além disso, o Android oficialmente permite carregar aplicativos baixados pela
internet (side-loading), ao contrário do iOS, que não permite aplicativos não
assinados.

Por exemplo, conforme a captura de tela a seguir, quando a opção Fontes


desconhecidas é selecionada em um dispositivo Android, ela permite que o usuário
instale aplicativos baixados de qualquer site da Internet:
Machine Translated by Google

Opção de carregamento lateral no Android

As lojas de aplicativos de terceiros que hospedam aplicativos Android são conhecidas


por serem centros de malware. Isso levou o Google a lançar o recurso Verify Apps a
partir do Android 4.2, que verifica aplicativos localmente em dispositivos Android para
procurar atividades maliciosas, como abuso de SMS. Conforme mostrado na captura de
tela a seguir, o recurso Verificar aplicativos pode avisar o usuário ou, em alguns casos, pode
Machine Translated by Google

mesmo bloquear a instalação. No entanto, este é um serviço opcional, portanto, os usuários


podem desativar esse recurso se desejarem:

Verifique o recurso de aplicativos no Android

Começando com o Android Oreo, o Google lançou um novo recurso chamado Play Protect, que
é uma versão melhorada do recurso de verificação de aplicativos. A principal função do Play
Protect é bloquear ou alertar os usuários sobre aplicativos maliciosos ou nocivos que foram
instalados no dispositivo Android. Por exemplo, conforme mostrado na captura de tela a seguir,
o recurso Play Protect pode mostrar uma mensagem de aviso durante a instalação do aplicativo:
Machine Translated by Google

Recurso Play Protect

Em seguida, vamos dar uma olhada nos tipos de malware.


Machine Translated by Google

Tipos de malware Android


Existem diferentes tipos de tipos de malware que podem infectar um dispositivo
Android. A seguir estão alguns dos mais comuns:

Malware bancário: pode ser distribuído como aplicativos bancários falsos para
roubar credenciais bancárias digitadas pelos usuários ou roubar qualquer outra
informação pessoal sensível da conta do usuário. Os Trojans bancários podem
interceptar ou modificar transações bancárias e executar ações perigosas, como
enviar, excluir e interceptar mensagens SMS, bem como keylogging.

Spyware: o spyware monitora, registra e envia informações importantes do


dispositivo de destino para o servidor do invasor. Essas informações podem incluir
mensagens SMS, chamadas telefônicas gravadas, capturas de tela, keylogs, e-
mails ou quaisquer outros dados de aplicativos que possam ser de interesse do
invasor. BusyGasper, um spyware identificado por especialistas da Kaspersky Lab
no início de 2018, não só possui recursos comuns de spyware, como coletar
informações de aplicativos populares de mensagens, como WhatsApp, Viber e
Facebook, mas também possui sensores de escuta de dispositivos, incluindo
detectores de movimento.
Adware: Adware é outro tipo popular de aplicativo malicioso ou
indesejado, muito comum em dispositivos Android. É relativamente fácil
de detectar, pois a vítima receberá pop-ups e anúncios contínuos na tela do
dispositivo. Esses programas indesejados nem sempre são inofensivos, pois os
pop-ups podem resultar no download de outro malware, incluindo os tipos já
mencionados – spyware e cavalos de Troia bancários.

Ransomware: os principais alvos do ransomware são computadores e servidores


baseados em Windows, mas também existe em plataformas móveis e, em
particular, no Android. Normalmente, ele apenas bloqueia a tela do dispositivo
com uma nota de resgate, mas às vezes também criptografa os dados dos
usuários. Malware de mineração de criptografia : as criptomoedas são
extremamente populares hoje em dia, portanto, esse tipo de programa malicioso
está disponível até mesmo para plataformas móveis, como o Android. O objetivo de tais aplicações é
Machine Translated by Google

minerar criptomoeda, usando a capacidade de computação do dispositivo da


vítima. Ocasionalmente, esse tipo de malware pode até colocar em risco o hardware do smartphone.

O malware avançado também é capaz de fazer root no dispositivo e instalar novos aplicativos. Por
exemplo, o malware Android Mazar, descoberto em fevereiro de 2016, se espalha por meio de mensagens
de texto e é capaz de obter direitos de administrador em telefones, permitindo limpar aparelhos, fazer
chamadas ou ler textos.

Uma lista completa das famílias de malware do Android e seus recursos está disponível em https:// forensi
cs.spreitzenbarth.de/ android-malware/.

Depois que o malware entra em um dispositivo, ele pode executar ações perigosas, algumas das quais são
as seguintes:

Envie e leia suas mensagens de texto


Roubar dados confidenciais, como fotos, vídeos e números de cartão de crédito
Manipular arquivos ou dados presentes no dispositivo
Enviar SMS para um número de classificação premium

Infecte seu navegador e roube todos os dados digitados em suas configurações do


dispositivo Alterar
Limpe todos os dados presentes no dispositivo
Bloqueie o dispositivo até que um resgate seja pago
Exibir anúncios continuamente

Agora que entendemos os diferentes tipos de malware, veremos como o malware se espalha em seu
dispositivo.
Machine Translated by Google

Como o malware Android


se espalha?
Um dispositivo Android pode ser infectado por malware de várias maneiras diferentes.
A seguir estão algumas das maneiras possíveis:

Reembalagem de aplicativos legítimos: esse é o método mais comum


usado pelos invasores. Primeiro, o invasor baixa um aplicativo legítimo e o
desmonta. Em seguida, eles adicionam seu código malicioso e remontam o
aplicativo. O novo aplicativo malicioso agora funciona exatamente como o
aplicativo legítimo, mas também executa atividades maliciosas em segundo plano.
Esse tipo de aplicativo é comumente encontrado em lojas de aplicativos Android
de terceiros e é baixado por muitas pessoas.

Exploração de vulnerabilidades do Android: neste cenário, um invasor


explora os bugs ou vulnerabilidades descobertos na plataforma Android para
instalar seu aplicativo malicioso ou executar qualquer ação indesejada. Por
exemplo, o sequestro de instalador, identificado em 2015, foi explorado por
invasores para substituir um aplicativo Android por malware durante a instalação.

Propagação por Bluetooth e MMS: O malware também se espalha por


Bluetooth e MMS. A vítima recebe o malware quando o dispositivo está no modo
detectável, por exemplo, quando pode ser visto por outros dispositivos habilitados
para Bluetooth. No caso do MMS, o malware é anexado à mensagem, assim como os
vírus de computador são enviados por meio de anexos de e-mail. No entanto, em
ambos os métodos, o usuário deve concordar, pelo menos uma vez, em executar o
arquivo.
Aplicativo baixando uma atualização maliciosa: nesse caso, o aplicativo que foi
instalado originalmente não contém nenhum código malicioso, mas uma função
presente no código fará o download de comandos maliciosos em tempo de execução.
Isso pode ser feito por meio de uma atualização furtiva ou atualização do usuário. Por
exemplo, o malware Plankton usa atualizações furtivas que baixam diretamente um
arquivo JAR de um servidor remoto e não precisam de nenhum usuário
Machine Translated by Google

permissão. No caso de atualizações do usuário, o usuário deve permitir que o


aplicativo baixe a nova versão do aplicativo.

Instalação remota: o invasor pode comprometer as credenciais da conta do


usuário no dispositivo e, assim, instalar aplicativos remotamente no dispositivo.
Isso geralmente acontece em cenários direcionados e é menos frequente em
comparação com os dois métodos anteriores que acabamos de descrever.

Agora que examinamos as possíveis maneiras pelas quais o malware Android pode
se espalhar, vamos tentar identificar a presença de malware em seu dispositivo.
Machine Translated by Google

Identificando malware Android


Do ponto de vista forense, é importante identificar a presença de qualquer
malware no dispositivo antes de realizar qualquer análise. Isso ocorre porque o
malware pode alterar o estado do dispositivo ou o conteúdo do dispositivo,
tornando a análise ou os resultados inconsistentes. Existem ferramentas
disponíveis no mercado que podem analisar a extração física para identificar
malware. Por exemplo, o Cellebrite UFED Physical Analyzer possui a tecnologia
antimalware da BitDefender, que verifica malware. Conforme mostrado na captura
de tela a seguir, depois que a imagem física for carregada na ferramenta, o arquivo
poderá ser verificado em busca de malware:

Verificação de malware no UFED Physical Analyzer


Machine Translated by Google

Uma vez iniciada a verificação, o software BitDefender tenta descompactar os


arquivos .apk e procura por arquivos infectados ou maliciosos. Esse processo é
automático e a ferramenta aponta para os apps maliciosos, conforme a captura de tela a seguir:

Resultados do scanner de malware no UFED Physical Analyzer

A ferramenta simplesmente aponta que algo malicioso está presente no dispositivo.


O investigador forense deve então confirmar manualmente se este é um problema
válido, analisando o respectivo aplicativo. É aqui que as habilidades de engenharia
reversa que discutimos nas seções anteriores precisam ser aproveitadas. Após a
engenharia reversa do aplicativo e a obtenção do código, é recomendável que você dê
uma olhada no arquivo AndroidManifest.xml para descobrir as permissões do aplicativo.
Isso será útil para entender onde o aplicativo armazena os dados, quais recursos ele
está tentando acessar e muito mais. Por exemplo, um aplicativo Flashlight não precisa
de acesso de leitura/gravação aos dados do cartão SD ou para fazer uma ligação:
Machine Translated by Google

Permissões no arquivo AndroidManifest.xml

Como alternativa, você também pode carregar o arquivo .apk para o VirusTotal, um serviço
gratuito que pode ser usado para analisar arquivos suspeitos em busca de malware. O VirusTotal
verificará seu arquivo em 55 mecanismos antivírus. Também é importante observar que a
ferramenta pode não identificar um caso válido se os detalhes estiverem ofuscados no arquivo .apk .
Portanto, como investigador forense, é importante desenvolver as habilidades necessárias
Machine Translated by Google

habilidades para fazer engenharia reversa de qualquer aplicativo suspeito e analisar o código
para identificar comportamento malicioso.

Em algumas investigações, a natureza do malware presente em um dispositivo também pode levar a


certas conclusões cruciais, o que pode afetar o resultado do caso. Por exemplo, considere uma
investigação interna em uma corporação que envolva o envio de mensagens abusivas a outros funcionários.

Identificar o malware no dispositivo que envia as mensagens ajudaria a resolver o caso.


Machine Translated by Google

Resumo
A análise de aplicativos Android ajuda um investigador forense a procurar dados valiosos
em locais relevantes em um dispositivo. A engenharia reversa de aplicativos Android é o
processo de recuperar o código-fonte de um arquivo APK. Usando certas ferramentas,
como dex2jar, os aplicativos Android podem sofrer engenharia reversa para entender sua
funcionalidade e armazenamento de dados, identificar malware e muito mais.
Neste capítulo, realizamos análises em diferentes aplicativos Android e agora podemos
recuperar dados deles. Também aprendemos sobre diferentes tipos de malware para
Android e como identificá-los. Ferramentas como o UFED Physical Analyzer vêm com o
software BitDefender, que pode verificar automaticamente se há malware.

O próximo capítulo aborda a realização de perícia em dispositivos Windows Phone.


Machine Translated by Google

Seção 3: Análise forense do Windows e


Aplicativos de terceiros
Esta seção abordará a perícia em telefones Windows – desde a compreensão do
sistema operacional Windows Phone até a extração de dados do dispositivo.
O último capítulo abordará como realizar análises forenses em alguns dos aplicativos de
terceiros mais usados, como Facebook, WhatsApp e assim por diante. Veremos como os
dados são organizados nesses aplicativos e algumas das técnicas que podem ser
prontamente aplicadas para extrair os dados dentro deles.

Esta seção é composta pelos seguintes capítulos:

Capítulo 12, Forense do Windows Phone


Capítulo 13, Analisando arquivos de aplicativos de terceiros
Machine Translated by Google

Análise forense do Windows Phone

Apesar do Windows Phone não ser tão amplamente utilizado hoje em dia, eles ainda
podem ser encontrados durante as investigações forenses. Esses dispositivos são os mais
acessíveis do mercado, portanto, é importante entender como adquirir, analisar e decodificar
dados de Windows Phones. Localizar e interpretar evidências digitais presentes nesses
dispositivos requer conhecimento especializado do sistema operacional Windows Phone e nem
sempre é possível. As ferramentas comerciais forenses e de código aberto fornecem suporte
limitado para a aquisição de dados do usuário de dispositivos Windows. Como os Windows
Phones não ocupam muito espaço no mercado móvel, a maioria dos profissionais forenses não
está familiarizada com os formatos de dados, bancos de dados incorporados usados e outros
artefatos existentes no dispositivo. Este capítulo fornece uma visão geral da análise forense do
Windows Phone, descrevendo vários métodos de aquisição e exame de dados em dispositivos
Windows Mobile.

Neste capítulo, abordaremos os seguintes tópicos:

SO Windows Phone
Modelo de segurança do Windows 10 Mobile
Sistema de arquivos do Windows Phone
Aquisição de dados
Métodos de aquisição de ferramentas forenses comerciais
Extração de dados sem o uso de ferramentas comerciais
Principais artefatos para exame
Machine Translated by Google

SO Windows Phone
O Windows Phone é um sistema operacional móvel proprietário desenvolvido pela
Microsoft. Foi lançado como sucessor do Windows Mobile, mas não oferece
compatibilidade com versões anteriores da plataforma anterior. O Windows Phone foi
lançado em outubro de 2010 com o Windows Phone 7. O histórico de versões do
sistema operacional Windows Phone continuou com o lançamento do Windows Phone
7.5, Windows Phone 7.8, Windows Phone 8.1 e Windows Phone 10.

Apesar do fato de a Microsoft alegar que parou de desenvolver esse sistema


operacional móvel, excluindo patches de segurança, é provável que você o enfrente
como um examinador forense móvel.

As seções a seguir fornecerão mais detalhes sobre o Windows Phone, seus recursos e
seu modelo de segurança subjacente.

Ao contrário dos dispositivos Android e iOS, o Windows Phone vem com uma
nova interface, que usa os chamados tiles para aplicativos em vez de ícones, como
mostra a imagem a seguir. Estas telhas podem ser projetadas e atualizadas pelo usuário:
Machine Translated by Google

A tela inicial do Windows Phone

Semelhante a outras plataformas móveis, o Windows Phone permite a


instalação de aplicativos de terceiros. Esses aplicativos podem ser baixados
do Windows Phone Marketplace, que é gerenciado pela Microsoft. Ao
comparar o número de aplicativos disponíveis para dispositivos iOS e Android,
o Windows Phone empalidece em comparação. No entanto, os aplicativos estão
disponíveis e você deve esperar vê-los em dispositivos Windows Phone.
Machine Translated by Google

O Windows Phone introduziu novos recursos, tornando-o mais semelhante a outros


smartphones em comparação com o Windows Mobile:

Cortana: Este é o assistente pessoal do dispositivo. Foi introduzido no


Windows 8.1 e ainda está presente nos dispositivos Windows 10.
A Cortana ajuda o usuário respondendo a perguntas usando o Bing,
definindo lembretes, enviando textos e, essencialmente, usando todas as
funcionalidades para fornecer ao usuário uma experiência melhor e mais fácil.
Tudo o que a Cortana faz deixa um rastro no dispositivo.
Carteira: Armazena contas de cartão de crédito, cartões de embarque,
bilhetes, cupons e muito mais.
Geofence e configurações avançadas de localização: fornecem ao usuário
proteção adicional, pois o telefone pode detectar quando está fora de uma zona
confiável e pode se bloquear.
Recursos adicionais: são recursos como blocos dinâmicos, cores aprimoradas
e horas silenciosas.

Outros aplicativos comuns associados ao Windows Phone incluem OneDrive


(anteriormente SkyDrive), OneNote e sincronização do Office 365.
OneDrive fornece ao usuário acesso a todos os seus documentos e arquivos de qualquer
dispositivo. O OneNote é essencialmente o mesmo, mas funciona como um caderno ou
diário. O Office 365 fornece ao usuário acesso constante a seu email, calendário, contatos
e muito mais em vários dispositivos.

A introdução da sincronização de dados em vários dispositivos dificulta nosso trabalho


como examinadores forenses. É nosso trabalho determinar como a evidência foi colocada
no dispositivo. É possível afirmar definitivamente como um artefato foi colocado em um
dispositivo? Para ser honesto, isso depende. Ninguém quer ouvir essa resposta, mas
muitos fatores devem ser considerados. Qual é o aplicativo? Qual sistema operacional está
sendo executado no dispositivo? Qual é o artefato? Por exemplo, vamos considerar o
OneDrive. Se o dispositivo contiver documentos do OneDrive, o autor original deverá estar
contido nos metadados. Isso, juntamente com a verificação se o conteúdo foi ou não
compartilhado com o dispositivo, pode fornecer uma ideia de como o artefato foi criado. No
entanto, ao examinar uma entrada de calendário quando o Office 365 está instalado, pode
ser impossível afirmar se o usuário criou a entrada em seu telefone, PC ou laptop. A
sincronização é instantânea e sinalizadores de status informando onde
Machine Translated by Google

o artefato foi criado nem sempre existem. Se este artefato é realmente a prova cabal da
investigação, você precisa aplicar suas habilidades para descobrir outros artefatos que apoiem suas
descobertas. É necessário aprofundar os dados. Agora que conhecemos os detalhes do Windows
Phone e seus recursos, vamos dar uma olhada em seu modelo de segurança e ver como ele mantém
os dados
seguro.
Machine Translated by Google

Modelo de segurança do Windows 10 Mobile


O modelo de segurança do Windows Phone foi projetado para garantir que os dados
do usuário presentes no dispositivo estejam seguros e protegidos. As seções a seguir
fornecem uma breve explicação dos conceitos nos quais a segurança do Windows Phone
é construída.
Machine Translated by Google

câmaras
O Windows Phone é fortemente construído sobre os princípios de menor privilégio
e isolamento. Isso tem sido consistente desde o início do Windows Phone 7.
Para conseguir isso, o Windows Phone introduziu o conceito de câmaras. Cada câmara
tem um limite de isolamento onde os processos podem ser executados. Dependendo
da política de segurança de uma câmara específica, um processo executado nesta
câmara tem o privilégio de acessar os recursos e capacidades do sistema operacional
(https://ww w.msec.be/mobcom/ws2013/presentations/david_hernie.pdf). Existem quatro
tipos de câmaras de segurança. A seguir, uma breve descrição de cada um deles:

Trusted Computing Base (TCB): Os processos aqui têm acesso


irrestrito à maioria dos recursos do Windows Phone. Esta câmara tem privilégios
para modificar políticas e aplicar o modelo de segurança. O kernel é executado
nesta câmara.
Câmara de Direitos Elevados (ERC): Esta câmara é menos privilegiada do
que a câmara TCB. Possui privilégios para acessar todos os recursos, exceto a
política de segurança. Esta câmara é usada principalmente para serviços e
drivers de modo de usuário, que fornecem funcionalidade destinada ao uso por
outros aplicativos no telefone.
Standard Rights Chamber (SRC): Esta é a câmara padrão para aplicativos
pré-instalados, como o Microsoft Outlook Mobile 2010.
Câmara menos privilegiada (LPC): Esta é a câmara padrão para todos os
aplicativos que são baixados e instalados por meio do Marketplace Hub (também
conhecido como Windows Phone Marketplace).

Em seguida, veremos a criptografia.


Machine Translated by Google

Criptografia
O Windows Phone 8 introduziu a tecnologia BitLocker para criptografar todos os dados do
usuário armazenados no dispositivo por meio da criptografia AES de 128 bits. O usuário
pode simplesmente apertar o botão para habilitar esse recurso, e todos os dados que
residem no armazenamento interno do dispositivo serão criptografados. Além disso, o
usuário pode criptografar seu cartão SD – supondo que o dispositivo tenha um – e definir
uma senha ou PIN em seu dispositivo. Se todos esses bloqueios e a criptografia estiverem
ativados, o acesso aos dados neste dispositivo pode ser impossível, a menos que a senha
seja recuperada.
Machine Translated by Google

Modelo baseado em capacidade

Os recursos são definidos como os recursos do telefone (câmera, informações de localização,


microfone e mais) associados à segurança, privacidade e custo. O LPC tem um conjunto mínimo
de direitos de acesso por padrão. No entanto, isso pode ser expandido solicitando mais recursos
durante a instalação.
Os recursos são concedidos durante a instalação do aplicativo e não podem ser modificados ou
elevados durante o tempo de execução. Por esse motivo, é difícil carregar aplicativos de lado ou
forçar o código de inicialização personalizado para o dispositivo para obter acesso forense, pois
normalmente é rejeitado antes da inicialização.

Para instalar um aplicativo em um Windows Phone, você precisa entrar no


Marketplace com um Windows Live ID. Durante a instalação, os aplicativos são
obrigados a pedir permissão ao usuário antes de usar determinados recursos, um exemplo
disso é mostrado na captura de tela a seguir:
Machine Translated by Google

Aplicativo do Windows solicitando permissões de usuário (https://i-msdn.sec.s-msft.com/dynimg/IC752370.png)

Isso é semelhante ao modelo de permissão no Android. Isso dá ao usuário a liberdade de aprender


sobre todos os recursos que um aplicativo possui antes de instalá-lo. A lista de todos os recursos está
incluída no arquivo de manifesto do aplicativo WMAppManifest.xml , que pode ser acessado por meio
do Visual Studio ou de outros métodos definidos em https://docs.microsoft.com/e

n-us/previous-versions/windows/apps/ff769509(v=vs.105).
Machine Translated by Google

Sandboxing de aplicativos

Os aplicativos no Windows Phone são executados em um ambiente de área


restrita. Isso significa que cada aplicativo no Windows Phone é executado em sua
própria câmara. Os aplicativos são isolados uns dos outros e não podem acessar os
dados de outros aplicativos. Se algum aplicativo precisar salvar informações no
dispositivo, poderá fazê-lo usando o armazenamento isolado, que é restrito ao acesso
de outros aplicativos. Além disso, os aplicativos de terceiros instalados no Windows
Phone não podem ser executados em segundo plano; ou seja, quando o usuário
alterna para um aplicativo diferente, o aplicativo usado anteriormente é encerrado
(embora o estado do aplicativo seja preservado). Isso garante que o aplicativo não
possa realizar atividades como comunicação pela Internet quando o usuário não
estiver usando o aplicativo. Essas restrições também tornam o Windows Phone menos
suscetível a malware, mas você nunca deve presumir que qualquer dispositivo é
seguro. É apenas mais desafiador para o malware funcionar nesses dispositivos.

Até agora, vimos os quatro tipos de câmaras de segurança e agora sabemos que
o Windows Phone 8 usa a tecnologia BitLocker para criptografia. Aprendemos
sobre os diferentes recursos concedidos durante a instalação de um aplicativo e
vimos como cada aplicativo é isolado um do outro. A seguir, veremos um aspecto
importante dos Windows Phones, que é seu sistema de arquivos.
Machine Translated by Google

Sistema de arquivos do Windows Phone

O sistema de arquivos do Windows Phone é mais ou menos semelhante aos sistemas


de arquivos usados no Windows 7, Windows 8 e Windows 10. No diretório raiz, você pode
acessar diferentes arquivos e pastas disponíveis neste dispositivo.
Do ponto de vista forense, a seguir estão algumas das pastas que podem gerar dados
valiosos. Todos os diretórios listados estão localizados no diretório raiz:

Dados de aplicativos: este diretório contém dados de aplicativos no telefone, como


Outlook, Mapas e Internet Explorer.
Aplicativos: Este diretório contém os aplicativos instalados pelo usuário.
O armazenamento isolado, que é alocado ou usado por cada aplicativo, também
está localizado nesta pasta.
Meus Documentos: Este diretório contém diferentes documentos do Office, como
arquivos do Word, Excel ou PowerPoint. O diretório também inclui arquivos de
configuração e arquivos multimídia, como música ou vídeos.
Windows: Este diretório contém arquivos relacionados ao sistema operacional Windows
Phone.

O método de aquisição usado aqui determinará a quantidade de acesso ao sistema de


arquivos que você tem no dispositivo. Por exemplo, uma imagem física pode fornecer
acesso a várias partições que podem ser recuperadas do despejo de dados. Um dispositivo
Windows Phone 10 que contém 27 partições pode ser visto na captura de tela a seguir. As
partições 26 (MainOS) e 27 (Data) contêm os dados relevantes:
Machine Translated by Google

Partições do Windows Phone 10


Embora a maioria dos artefatos existam na partição de dados, é sempre uma boa prática capturar
e analisar ambos quando possível.

A partição MainOS na captura de tela anterior, partição 26, contém os dados do sistema
do Windows Phone. Como em todas as investigações do Windows, os dados do sistema
contêm artefatos relevantes para as investigações.

Neste exemplo, a partição 27 contém a partição de usuário ou dados. Dependendo do


dispositivo, os números das partições podem variar. Em nosso exemplo, a partição de
dados é mostrada na captura de tela a seguir como partição 27. Aqui, SMS, e-mail,
dados de aplicativos, contatos, registros de chamadas e histórico da Internet foram
Machine Translated by Google

recuperados usando ferramentas forenses móveis. Esses métodos serão discutidos


mais adiante neste capítulo:

Partição de dados do Windows Phone 10

O Windows Phone também mantém o registro do Windows, um banco de dados que


armazena variáveis de ambiente no sistema operacional. O registro do Windows é
basicamente um diretório que armazena configurações e opções do sistema
operacional da Microsoft. O Windows Phone não é diferente. Ao examinar um Windows
Phone, você espera ver as seções NTUSER.dat, SAM, SYSTEM, SOFTWARE,
SECURITY e DEFAULT . Embora essas seções possam ser exclusivas do telefone, elas
podem ser examinadas como as seções de registro tradicionais do Windows.

Uma investigação detalhada do caso está incluída em um artigo de Cynthia Murphy.


Isso envolve um caso criminal de invasão de domicílio e agressão sexual e detalha os
esforços de grandes mentes da comunidade forense para descobrir artefatos que
ajudaram a encerrar a investigação. Às vezes, o celular
Machine Translated by Google

dispositivo é o artefato mais importante pertencente ao caso. Para obter


mais informações, consulte https://www.sans.org/reading-room/whitepapers/forensi
cs/windows-phone-8-forensic-artifacts-35787. Agora que vimos a estrutura de
arquivos e pastas, vamos aprender como adquirir dados usando esse conhecimento.
Machine Translated by Google

Aquisição de dados
A aquisição de dados de um Windows Phone é um desafio para os examinadores
forenses, pois os métodos físicos, de sistema de arquivos e lógicos definidos nos
capítulos anteriores não são muito suportados. Além disso, o telefone pode precisar estar
em um estado específico de carga da bateria (%) para que a ferramenta comercial reconheça
e adquira o dispositivo. Essa costuma ser uma das etapas mais difíceis na aquisição de
Windows Phones.

Uma das técnicas mais comuns implementadas por ferramentas comerciais na tentativa
de aquisição de dados é a instalação de um aplicativo ou agente no dispositivo, que permite
a comunicação bidirecional para que comandos sejam enviados ao dispositivo para extrair
dados. Isso pode resultar em algumas alterações no dispositivo; no entanto, isso ainda é
válido do ponto de vista forense se o examinador seguir os protocolos padrão e tiver testado
a validade da ferramenta que está sendo usada.
Esses protocolos incluem testes adequados para garantir que nenhum dado do usuário
seja alterado (e, se alterado, documentar o que ocorreu), validação do método em um
dispositivo de teste e documentação de todas as etapas realizadas durante o processo de aquisição.
Para que este método de aquisição funcione, o aplicativo precisa ser instalado com os
privilégios do SRC. Isso pode exigir que você copie as DLLs do fabricante, que têm
privilégios mais altos, no aplicativo do usuário. Isso permite que o aplicativo acesse métodos
e recursos que geralmente são limitados a aplicativos nativos. Além disso, o dispositivo
deve estar desbloqueado ou esses métodos podem não funcionar.

A maioria dos examinadores conta com ferramentas e métodos forenses para adquirir
dispositivos móveis. Novamente, essas práticas não têm suporte para Windows Phones.
Lembre-se de que, para implantar e executar um aplicativo no Windows Phone, tanto o
dispositivo quanto o desenvolvedor devem ser registrados e desbloqueados pela Microsoft.
Essa restrição pode ser contornada desbloqueando o dispositivo usando um jailbreak
público para dispositivos Windows Phone 8 a 10.

Por muito tempo, as aquisições JTAG e chip-off foram as únicas opções para adquirir a
maioria dos Windows Phones. Tudo mudou em janeiro de 2015:
Machine Translated by Google

A Cellebrite implementou um módulo de aquisição que permitiu que os examinadores


forenses móveis extraíssem dados no nível físico da maioria dos dispositivos Lumia.

Mais tarde, o projeto Windows Phone Internals apresentou uma maneira de


desbloquear o bootloader de alguns dispositivos Lumia, incluindo 520, 521, 525, 620,
625, 720, 820, 920, 925, 928, 1020 e 1320. Isso tornou a aquisição física desses
dispositivos possíveis. Você pode aprender mais sobre este projeto em https://
www.wpinternals.net/. Agora, veremos algumas das ferramentas comerciais usadas
para métodos de aquisição.
Machine Translated by Google

Métodos de aquisição de
ferramentas forenses comerciais
Existem algumas ferramentas comerciais disponíveis que oferecem suporte
para a aquisição de dispositivos Windows Phone. O Cellebrite UFED oferece
suporte para adquirir dispositivos Windows Phone usando métodos físicos, de
sistema de arquivos e lógicos. Para determinar se o dispositivo que você está
examinando é compatível com a ferramenta, você pode baixar e usar o aplicativo
móvel UFED Phone Detective, disponível gratuitamente na App Store e no Google Play:

Procurando por dispositivos Lumia suportados


Machine Translated by Google

Alguns desses métodos de aquisição são mais robustos, obtêm um despejo físico completo dos
dados e podem contornar alguns códigos de bloqueio em dispositivos específicos.
No entanto, alguns suportes de dispositivos incluem simplesmente extrair contatos e fotos do
dispositivo. É importante que o examinador perceba que passos específicos devem ser
seguidos, conforme orientado pela ferramenta. Adquirir esses dispositivos não é fácil e, muitas vezes,
você descobrirá que a ferramenta não terá sucesso.

Quando a ferramenta parecer falhar, tente adquirir o dispositivo usando a opção


Smartphone/PDA oferecida no UFED. Para fazer isso, siga estas etapas:

1. Inicie o UFED4PC e selecione Dispositivo Móvel.


2. Selecione Procurar manualmente.

3. Selecione Smartphones.
4. Selecione o dispositivo Windows que você está tentando adquirir.
5. Experimente todos os métodos oferecidos, começando com físico, sistema de arquivos,
e lógico (nessa ordem, sempre que possível):

Métodos de extração

6. Siga todas as etapas restantes e tente todos os métodos de aquisição oferecidos até obter
sucesso.

A Cellebrite pode alertá-lo de que a aquisição não foi bem-sucedida por vários motivos. Quando
isso ocorrer, tente todas as opções para garantir que esgotou as opções comerciais disponíveis. Um
exemplo de tentativa de aquisição no UFED4PC é o seguinte:
Machine Translated by Google

1. Inicie o UFED4PC.
2. Selecione a marca e o modelo do dispositivo.
3. Selecione o método de aquisição Físico, Sistema de Arquivos ou Lógico (as
ofertas variam, dependendo do modelo do dispositivo).

Neste exemplo, apenas a aquisição lógica foi suportada. Dois métodos estão disponíveis.
A primeira opção usa um cabo, enquanto a segunda usa Bluetooth. Neste exemplo, é
necessário um cabo UFED especial. Selecionei o cabo UFED primeiro, pois o Bluetooth
exige que alterações adicionais sejam feitas no telefone durante o emparelhamento:

UFED4PC Opções de extração lógica

Ao tentar adquirir o dispositivo com o cabo USB 100, apenas os arquivos multimídia estavam
acessíveis.

Em seguida, tente a mesma aquisição, mas selecione Bluetooth. Siga as


instruções fornecidas para emparelhar o dispositivo com a estação de trabalho forense:
Machine Translated by Google

Opções de extração do UFED4PC (Bluetooth)

Com este método de aquisição, conseguimos obter contactos. Observe que não
há métodos oferecidos para obter SMS, MMS, e-mail, mensagens instantâneas,
calendário, registros de chamadas, dados de aplicativos e outros. Sugere-se que você
repita os métodos genéricos listados na captura de tela anterior usando a opção
Smartphone no UFED4PC. Até agora, examinamos alguns métodos de aquisição
usando ferramentas comerciais. Agora, vamos aprender como extrair dados sem essas
ferramentas.
Machine Translated by Google

Extração de dados sem o uso de ferramentas


comerciais

Em alguns casos, a aquisição física de dispositivos Windows Phone só é


possível com métodos avançados, como JTAG e chip-off. Mas, graças ao
pesquisador de segurança conhecido como Heathcliff, tornou-se possível realizar a
aquisição física em modelos de telefone limitados e versões de sistema operacional
com sua ferramenta chamada WPinternals (https://www.wpinternals.net).

A ferramenta suporta os seguintes modelos de telefones Lumia: 520, 521, 525, 620, 625,
720, 820, 920, 925, 928, 1020 e 1320.

Quanto às versões do sistema operacional, as seguintes são suportadas:

8.10.12393.890
8.10.12397.895
8.10.14219.341
8.10.14226.359
8.10.14234.375
8.10.15116.125
8.10.15148.160
10.0.10512.1000
10.0.10536.1004
10.0.10549.4
10.0.10581.0
10.0.10586.11
10.0.10586.36

Este método é experimental e pode resultar em bricking do dispositivo! Apesar de a porcentagem


de dispositivos emparedados ser relativamente baixa, recomendamos que você a use como
última opção.

A primeira etapa do processo de aquisição será o download de um Windows


Arquivo Full Flash Update (FFU) e os arquivos de emergência para o modelo de telefone com
o qual você está trabalhando:
Machine Translated by Google
Machine Translated by Google

Baixando arquivos FFU

Se o FFU baixado contiver uma versão do sistema operacional não compatível,


O WPinternals fará o download de outro FFU para obter arquivos adicionais:

Obtendo arquivos adicionais

Durante o processo de desbloqueio, o telefone pode reiniciar algumas vezes, mas este é um
comportamento normal:

Verificando o perfil intermitente

Depois que o perfil é encontrado, a ferramenta exibe o bootloader desbloqueado:

Bootloader desbloqueado piscando

Se o dispositivo foi atualizado com sucesso, ele é colocado no modo de armazenamento em massa:
Machine Translated by Google

Modo de armazenamento em massa

Agora, o dispositivo pode ser facilmente visualizado, por exemplo, usando o FTK Imager:

Windows Phone em FTK Imager

Agora, aprenderemos como extrair dados de cartões SD.


Machine Translated by Google

Métodos de extração de dados do cartão SD

Windows Phones podem conter cartões SD removíveis. Esses cartões podem ser
protegidos com uma chave que impede que o cartão SD seja removido e usado ou
acessado por outros dispositivos (telefones, câmeras, computadores e outros). Isso é
diferente da chave criada se o usuário criptografar o cartão SD.
Ataques de força bruta e de dicionário podem ser executados em cartões SD
criptografados pelo usuário na tentativa de acessar os dados. Ao examinar um Windows
Phone, é melhor pesquisar o dispositivo para ver se a segurança do cartão SD será um
fator ao adquirir dados do dispositivo. Nesse caso, basta seguir as etapas anteriores e
adquirir os dados do cartão SD por meio do telefone durante a extração forense.
Por favor, consulte o gráfico a seguir.

Para dispositivos onde o cartão SD pode ser removido, você tem dois cenários a
considerar. Se o dispositivo estiver ligado, você deve adquirir o telefone e o cartão SD
como estão? Se o dispositivo estiver desligado, você deve remover o cartão SD e
adquirir o dispositivo usando o FTK Imager? A resposta é, depende. Em forense,
usamos essa afirmação com frequência, mas ela permanece verdadeira. Se você deixar
o dispositivo ligado, ele deve ser isolado da rede para garantir que não seja acessado
remotamente e adquirido imediatamente, ou a bateria descarregará e, em última análise,
o dispositivo poderá desligar. Se o dispositivo estiver desligado e você remover o cartão
SD, você deve garantir que o cartão permaneça vinculado ao próprio dispositivo e seja
adquirido externamente e internamente para garantir que todos os dados sejam capturados.
Em uma situação normal, a tabela a seguir sugere as etapas recomendadas para lidar
com cartões SD encontrados em Windows Phones:
Machine Translated by Google

A maioria das ferramentas forenses comerciais oferece a extração de dados de cartões SD.
Frequentemente, o processo de extração do telefone apenas extrai os dados que residem no
cartão SD. Geralmente, esse é o caso quando não há suporte para um Windows Phone
específico. Se o cartão SD não for reconhecido pela ferramenta e os dados não forem extraídos,
é provável que o cartão SD tenha sido criptografado pelo usuário e a senha do dispositivo seja
diferente da senha do cartão SD.
Quando isso ocorrer, tente quebrar a senha e readquirir o dispositivo. Observe que quebrar
uma senha em um cartão SD nem sempre é possível, mas vale a pena tentar ataques de força
bruta e de dicionário como faria em um disco rígido padrão ou dispositivo externo.

Ao adquirir um SD que foi removido de um Windows Phone, o FTK


Imager é uma opção gratuita e confiável para criar uma imagem forense sólida que
Machine Translated by Google

podem ser examinados em uma variedade de ferramentas. Para criar uma imagem de cartão SD, siga
estas etapas:

1. Remova o cartão SD do dispositivo e certifique-se de documentar todos os identificadores no

cartão e no telefone para garantir que eles não fiquem permanentemente separados.

2. Insira o cartão SD em um bloqueador de gravação e insira-o em seu forense


posto de trabalho.

3. Inicie o FTK Imager.


4. Selecione Arquivo e, em seguida, Criar imagem de disco.

5. Selecione a unidade física:

FTK Imager – criando uma imagem de disco


Machine Translated by Google

6. Use a lista suspensa para selecionar o dispositivo correto.

Observe a marca e o tamanho para garantir que você está adquirindo o dispositivo correto.

7. Selecione Concluir.

8. Clique em Adicionar e selecione o tipo de imagem. Para este exemplo, Raw (dd) será usado, pois
é compatível com a maioria dos métodos comerciais e de código aberto para análise:

FTK Imager – selecionando o tipo de imagem

9. Insira as informações relevantes do caso e selecione Avançar. isso pode ser

pulou. 10.
Selecione o destino da imagem:
Machine Translated by Google

FTK Imager – salvando seu arquivo de imagem

11. Selecione Concluir e, em seguida, selecione Iniciar. É recomendável que você verifique as
imagens depois que elas forem criadas.

Depois de concluído, seus resultados serão exibidos. Abordaremos a análise dos dados do cartão
SD nas seções a seguir.
Machine Translated by Google

Principais artefatos para exame


Nesta seção, apresentaremos a localização de alguns dos artefatos
forenses mais comuns do Windows Phone, incluindo contatos, SMS e
histórico de chamadas e internet.
Machine Translated by Google

Extraindo contatos e SMS


Todos os contatos e mensagens curtas (SMS) recebidas e enviadas no Windows Phone 7–
10 são armazenados no arquivo chamado store.vol, que está presente em \Application
Data\Microsoft\Outlook\Stores\DeviceStore (Windows 7) e Users Diretórios
\WPCOMMSERVICES\APPDATA\Local\Unistore (Windows 8-10). Um exemplo de arquivo store.vol do
Windows 10 pode ser visto na captura de tela a seguir:

O arquivo store.vol em um Windows Phone

Agora, vamos aprender como extrair o histórico de chamadas.


Machine Translated by Google

Extraindo histórico de chamadas

Atualmente, os dados do histórico de chamadas podem ser extraídos do arquivo Phone . É


importante observar que o arquivo não possui extensão e está localizado em
\Users\WPCOMMSERVICES\APPDATA\ Local\UserData\. Aqui está um exemplo de um arquivo
do Windows 10 Phone :

O arquivo Phone em um Windows Phone

De maneira semelhante, extrairemos o histórico da Internet na seção a seguir.


Machine Translated by Google

Extraindo o histórico da internet


O histórico da Internet pode ser extraído do arquivo WebCacheV01.dat localizado em
\Users\DefApps\APPDATA\Local\Microsoft\Windows\WebCache\. Aqui está um exemplo de um arquivo
Windows 10 WebCacheV01.dat:

O arquivo WebCacheV01.dat em um Windows Phone

Esses arquivos podem ser examinados manualmente, por exemplo, com um visualizador
hexadecimal, ou podem ser analisados automaticamente com ferramentas forenses móveis. Aqui
está o arquivo WebCacheV01.dat sendo analisado com o Magnet AXIOM:
Machine Translated by Google

Arquivo WebCacheV01.dat analisado com Magnet AXIOM

Com isso, abordamos como extrair SMS, contatos, chamadas e histórico


da Internet de um Windows Phone.
Machine Translated by Google

Resumo
A aquisição de dados de dispositivos Windows Phone é um desafio, pois eles são
seguros, e as ferramentas forenses comerciais e os métodos de código aberto não
fornecem soluções fáceis para examinadores forenses como você. Ferramentas múltiplas,
chip off, JTAG e os métodos que definimos neste livro são alguns dos métodos que
fornecem acesso aos dados do usuário em dispositivos Windows Phone. Freqüentemente,
você descobrirá que os dispositivos Windows Phone exigem vários métodos de extração
para adquirir dados acessíveis. O maior desafio é conseguir acesso ao dispositivo para
adquirir os dados. Assim que os dados estiverem disponíveis, todas as informações
extraídas poderão ser analisadas por você.

Neste capítulo, abordamos a interface, recursos importantes e o modelo de


segurança do dispositivo Windows Phone. Em seguida, examinamos as diferentes
partições e a estrutura de pastas no sistema de arquivos do Windows. O registro do
Windows Phone é semelhante ao registro do sistema operacional da Microsoft. Vimos
como extrair dados com e sem o uso de ferramentas comerciais e examinamos alguns
artefatos forenses comuns do Windows Phone. Com esse conhecimento, agora você
pode extrair dados do usuário de um Windows Phone usando vários métodos de extração.

O próximo capítulo o guiará pela análise de arquivos de aplicativos de terceiros.


Machine Translated by Google

Analisando aplicativos de terceiros


arquivos

Aplicativos de terceiros conquistaram a comunidade de smartphones.


A maioria dos proprietários de smartphones tem mais de um aplicativo em seu dispositivo do qual
eles dependem para conversar, jogar, obter direções ou compartilhar fotos. De acordo com https://
www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/, existem quase 5
milhões de aplicativos em todo o mundo para vários smartphones. A App Store da Apple oferece
aproximadamente 1,8 milhão de aplicativos, o Google Play oferece 2,47 milhões, a Amazon oferece
600.000 e o Windows oferece 670.000. Espera-se que esse número cresça exponencialmente até 2020.

O objetivo deste capítulo é apresentá-lo aos vários aplicativos vistos no Android, dispositivos iOS e
Windows Phones. Cada aplicativo irá variar devido a versões e dispositivos, mas suas estruturas
subjacentes são semelhantes. Veremos como os dados são armazenados e por que os arquivos de
preferência são importantes para sua investigação.

Abordaremos os seguintes tópicos em detalhes neste capítulo:

Diferentes aplicativos de terceiros


Como os aplicativos são armazenados em dispositivos iOS
Como os aplicativos são armazenados em dispositivos Android
Armazenamento de aplicativos do Windows Phone
Como usar soluções comerciais e de código aberto para analisar dados de aplicativos
Machine Translated by Google

Introdução a aplicativos
de terceiros
Aplicativos de terceiros são parte integrante das investigações de dispositivos móveis; muitas
vezes, os principais artefatos parecem existir dentro de um aplicativo. Isso exige que você
entenda onde os dados do aplicativo são armazenados no dispositivo, como os dados do
aplicativo são salvos para essa plataforma e qual ferramenta melhor ajuda a descobrir as
evidências. A análise manual geralmente é um fator chave ao examinar aplicativos de terceiros
em qualquer smartphone. Embora algumas ferramentas comerciais, como Belkasoft Evidence
Center ou Magnet AXIOM, sejam conhecidas pelo suporte à análise de aplicativos, nenhuma
ferramenta é perfeita e é virtualmente impossível para as ferramentas acompanharem as
atualizações frequentes lançadas para cada aplicativo.

Na maioria das vezes, você descobrirá que as ferramentas comerciais disponíveis analisam
os aplicativos mais populares do mercado. Por exemplo, quando o Facebook comprou o
WhatsApp, Belkasoft, Cellebrite, Magnet Forensics e Oxygen Forensics começaram a oferecer
suporte a esse aplicativo. O Facebook é extremamente popular, mas os dados nem sempre
são extraídos ou analisados, devido aos recursos de segurança integrados ao aplicativo — é
aqui que todos os aplicativos diferem. Nosso melhor conselho é testar, testar e testar!
Você pode baixar um aplicativo, preencher dados e examinar os resultados para ver como sua
visão da evidência se compara à sua evidência real. Esta prática permitirá que você entenda
como as atualizações alteram os artefatos, como os locais das evidências mudam e como
extrair manualmente os artefatos que estão faltando em suas ferramentas. Além disso, a
engenharia reversa de um aplicativo e a análise de seu código ajudarão você a identificar onde
os dados são armazenados e como são armazenados.

A maioria dos aplicativos não requer um plano de dados para uso; eles podem funcionar
totalmente por meio de uma rede Wi-Fi, o que significa que os aplicativos ainda podem
funcionar se uma pessoa viajar para uma região na qual seu dispositivo normalmente não
funcionaria. Por exemplo, quando viajo, confio no Skype, Viber e WhatsApp para ligar e enviar
mensagens de texto para familiares e amigos. Para usar esses aplicativos, basta que meu
smartphone esteja conectado ao Wi-Fi.
Machine Translated by Google

Já abordamos algumas dicas de extração e análise de aplicativos de


terceiros neste livro. Além disso, discutimos os arquivos que precisam ser
examinados para entender e analisar os dados do aplicativo no Capítulo 5,
Análise e recuperação de dados do iOS; Capítulo 10, Análise e recuperação de
dados do Android; Capítulo 11, Análise de aplicativos Android, malware e
engenharia reversa; e Capítulo 12, Forense do Windows Phone. Este capítulo irá
aprofundar os aplicativos e arquivos relevantes e irá prepará-lo para a análise
desses artefatos. Cada aplicativo tem um propósito. A maioria das ferramentas
fornece suporte para o aplicativo mais popular em cada categoria. O resto é com
você. Uma rápida olhada nos aplicativos apresentados pela ferramenta Oxygen
Forensic Detective é mostrada na captura de tela a seguir. Como esperado, esses
não são todos os aplicativos presentes no dispositivo; em vez disso, esses são
apenas os que a ferramenta sabe como analisar:
Machine Translated by Google

Exemplo de aplicativos analisados pelo Oxygen Forensic Detective em um dispositivo Apple

Na próxima seção, analisaremos alguns dos aplicativos de bate-papo


amplamente utilizados.
Machine Translated by Google

Aplicativos de bate-papo

Os aplicativos de bate-papo estão entre os aplicativos mais comuns do mercado.


Esses aplicativos fornecem aos usuários a capacidade de bater papo ou ligar fora dos serviços
padrão oferecidos pelo provedor de serviços de rede. Esses aplicativos geralmente podem ser
mais seguros em comparação com outros aplicativos. Por seguro, queremos dizer que os
aplicativos podem oferecer criptografia, perfis privados, bate-papos em grupo privados e muito mais.
Além disso, esses aplicativos permitem que o usuário envie mensagens ou ligue para outras pessoas
sem a necessidade de um plano de dados, pois o Wi-Fi fornece todo o acesso necessário.
Facebook Messenger, WhatsApp, Skype, Tango e Snapchat são alguns dos aplicativos mais
populares.

A análise de artefatos de aplicativos de bate-papo nem sempre é simples. Frequentemente, várias


ferramentas e métodos serão necessários para extrair todos os dados contidos neles.
As ferramentas comerciais podem analisar apenas uma parte dos dados, forçando você a aprender
como examinar e recuperar todos os dados ou perder evidências. Na captura de tela a seguir, o
Oxygen Forensic Detective está sendo usado para analisar mensagens de chat do Tango em um
dispositivo Android. Observe que a mensagem não mostra a imagem na tabela. No entanto, essa
imagem pode ser recolocada na mensagem (observe a captura de tela que é mostrada com uma
seta apontando para a mensagem à qual ela pertence), para fornecer uma visão geral do que estava
sendo compartilhado em uma conversa. Este foi um processo manual e não foi realizado pela
ferramenta:
Machine Translated by Google

Um exemplo de como reunir novamente os logs de bate-papo do aplicativo

A seguir, veremos os aplicativos de GPS.


Machine Translated by Google

aplicativos de GPS
A maioria dos usuários ramifica de seus aplicativos de telefone padrão para suporte a GPS.
Isso inclui obter direções para locais e obter mapas para áreas de interesse. Aplicações GPS
comuns incluem Waze e Google Maps. O Waze vai além de apenas fornecer direções, pois
também alerta o usuário sobre perigos na estrada, trânsito e policiais que podem ser encontrados
ao longo da rota em que está dirigindo:
Machine Translated by Google

O aplicativo Waze

Outros aplicativos que armazenam informações de localização incluem Twitter,


Instagram, Facebook e Foursquare. Esses aplicativos permitem que um usuário alerte
amigos e seguidores sobre sua localização quando eles criam uma postagem ou
compartilham uma imagem ou vídeo. Todas essas transações são rastreadas dentro do aplicativo.
Compreender isso é fundamental para descobrir artefatos adicionais que não são
relatados por sua ferramenta forense.
Machine Translated by Google

Ao examinar informações de localização de aplicativos GPS, é melhor assumir que


você precisa examinar manualmente os bancos de dados e arquivos de preferências
associados a esse aplicativo. Recomendamos usar sua ferramenta forense para triar
os dados no dispositivo e, em seguida, mergulhar profundamente nos artefatos, que
serão discutidos posteriormente neste capítulo. Um exemplo do Waze sendo analisado
pelo UFED Physical Analyzer pode ser encontrado na captura de tela a seguir. Aqui,
podemos ver que o usuário tinha 5 locais favoritos, 74 locais mapeados e 70 rotas
recentes. Todas essas informações devem ser verificadas manualmente se pertencerem
à investigação. Isso ocorre porque a ferramenta não pode determinar se o usuário
digitou o endereço, se foi sugerido ou se o usuário viajou até aquele local. Habilidades
adequadas são exigidas por você para vincular um usuário a um local específico, e isso
exige mais do que uma ferramenta forense:

O aplicativo Waze no UFED Physical Analyzer

Analisaremos agora alguns dos aplicativos de mensagens seguras populares.


Machine Translated by Google

Aplicativos seguros
Se os dados são seguros e autodestrutivos, eles já existiram? Ignore as alegações
de retenção de dados e procure por esses dados, pois esses aplicativos geralmente
fazem alegações simplesmente falsas. Embora os aplicativos sejam projetados com a
segurança em mente, as atualizações são lançadas rapidamente e as verificações de
garantia de qualidade podem não ser fortes o suficiente para detectar tudo. Ocasionalmente,
você encontrará um aplicativo com um banco de dados criptografado ou inexistente, mas o
arquivo inclui um diário, registros de gravação antecipada ou arquivos de memória
compartilhada que contêm partes de bate-papos que deveriam ser criptografados. Além
disso, o usuário pode salvar arquivos de mídia compartilhados, fazer capturas de tela de
conversas e muito mais. Freqüentemente, você pode descobrir as imagens, arquivos de
áudio e vídeo que foram compartilhados e deveriam ser criptografados.

Alguns aplicativos populares de mensagens seguras incluem Telegram, Wickr e Signal.


Alguns deles são criptografados, onde nada é recuperável.
No entanto, tudo depende do dispositivo, do SO em execução no smartphone e da versão
do aplicativo. O nível de segurança desses aplicativos é anunciado publicamente, mas,
novamente, leve isso com cautela. Você deve sempre presumir que pode haver uma
vulnerabilidade no aplicativo que pode fornecer acesso forense. Cavar para esta evidência!
Machine Translated by Google

Aplicações financeiras
Os aplicativos que utilizam informações financeiras, como informações
de cartão de crédito e serviços bancários pessoais, devem ser criptografados e
seguros. Os dispositivos iOS não adquirirão esses aplicativos sem um ID e senha da Apple.
Mesmo que você tenha o ID Apple e a senha do usuário, os dados extraídos
ainda devem ser criptografados. Alguns exemplos de aplicativos financeiros incluem
Google Pay, Microsoft Wallet, PayPal, Apple Pay e compras no aplicativo.
Ao examinar um dispositivo, você pode ver que o aplicativo foi instalado com os
metadados do aplicativo associados, mas as informações e transações da conta
não estarão acessíveis.
Machine Translated by Google

Aplicativos de redes sociais


O suporte comercial para aplicativos de redes sociais é forte, pois são os aplicativos mais
populares baixados das lojas de aplicativos. Esses aplicativos permitem que os usuários façam
postagens, compartilhem locais, conversem publicamente e em particular e basicamente
catalogem suas vidas. Aplicações comuns de redes sociais incluem Facebook, Twitter e
Instagram. Frequentemente, os usuários permitem que um aplicativo, como o Instagram, tenha
acesso ao Facebook e ao Twitter para que a postagem seja perfeita. Assim, ao examinar os
dispositivos, o usuário pode encontrar várias cópias de um mesmo arquivo ou conversa devido
ao compartilhamento que ocorre entre os aplicativos.

Ao examinar esses aplicativos com ferramentas comerciais, é comum que chats e contatos
sejam analisados, o que significa que outros dados podem ser negligenciados.
Novamente, isso significa que você deve examinar o despejo de dados para garantir que
nada seja perdido. Como exemplo, vamos dar uma olhada no Twitter. Este aplicativo
armazena muitas informações que podem exigir mais de uma ferramenta para análise. Além
disso, o usuário pode ter que examinar manualmente os arquivos do banco de dados para
garantir que todos os artefatos tenham sido recuperados.

Vamos dar uma olhada no que a ferramenta foi capaz de extrair. Conforme declarado várias
vezes neste livro, comece com o que a ferramenta está dizendo que está instalado e, em
seguida, formule palavras-chave e métodos para se aprofundar no sistema de arquivos.
Podemos ver as informações da conta do usuário do Twitter, bem como o caminho do arquivo
onde esses dados estão sendo extraídos, na seguinte captura de tela:
Machine Translated by Google
Machine Translated by Google

Twitter analisado pelo Magnet AXIOM

A próxima etapa lógica é visualizar o que a ferramenta pode dizer sobre o


aplicativo e como ele foi usado. A Magnet AXIOM forneceu as seguintes informações
para uso da conta do Twitter. Observe que os tweets públicos e as mensagens privadas
(DMs) são recuperados:

Uso do Twitter por Magnet AXIOM

Depois de examinar o que foi analisado pela ferramenta, os arquivos do banco de dados
devem ser examinados para garantir que nada foi perdido. Isso nem sempre é simples,
pois cada conta e função pode ter um banco de dados exclusivo. Por função, queremos
dizer que os contatos podem ser armazenados em um banco de dados enquanto os bate-
papos e as informações da conta são armazenados em outro. Depois de se familiarizar
com os aplicativos comuns, você saberá onde procurar primeiro.

Na captura de tela a seguir, podemos ver todos os bancos de dados associados


ao Twitter. Mais uma vez, comece com o que você sabe e vá mais fundo:
Machine Translated by Google

Bancos de dados do Twitter contendo atividade do usuário

Cada banco de dados pode conter dados exclusivos que podem ser analisados para
artefatos adicionais. Esses aplicativos também contêm valores de user_id exclusivos , que podem
ser usados como palavras-chave para pesquisar outros dispositivos com vestígios de comunicação
em uma investigação.

Consultas personalizadas podem ser escritas para analisar bancos de dados de interesse do
Twitter. Um bom exemplo de como fazer isso é mostrado a seguir. Esta consulta é específica
para analisar contatos do Twitter:

SELECT _id AS "Index",


user_id AS "User ID",
username AS "Username",
name AS "Name", datetime
(profile_created/1000,'UNIXEPOCH','localtime') AS "Profile Created", descrição AS "Twitter Descrição",
web_url AS "URL do site", localização AS "Localização",
Machine Translated by Google

seguidores AS "Seguidores", amigos


AS "Seguindo", users.statuses AS
"Número de Tweets", image_url AS "URL da imagem
do perfil", datetime (atualizado/1000,'UNIXEPOCH','hora
local') AS "Perfil atualizado"
DE usuários

Até agora, examinamos vários tipos de aplicativos de terceiros e como as


ferramentas podem ajudar um investigador a extrair os dados. Veremos agora
alguns dos conceitos fundamentais que ajudarão um investigador durante a
análise dos dados.
Machine Translated by Google

Codificação versus criptografia


Os termos codificação e criptografia são usados com tanta frequência ao discutir aplicativos e
dados do smartphone que muitas vezes são confundidos. A codificação é essencialmente o
processo de ofuscar uma mensagem ou informação para que apareça como código bruto. Em
alguns casos, o objetivo da codificação é tornar os dados irreconhecíveis para o computador ou
para o usuário. Na realidade, o objetivo principal da codificação é transformar a entrada em um
formato diferente usando um esquema disponível publicamente. Em outras palavras, qualquer
um pode facilmente decodificar um valor codificado. A criptografia, no entanto, transforma os
dados usando uma chave para manter seu conteúdo confidencial. Portanto, o texto criptografado
só pode ser revertido se você tiver a chave.

A maioria dos aplicativos afirma que criptografa dados ou que os dados nunca são salvos em disco.
Embora isso seja verdade para alguns, a maioria é simplesmente codificada. As opções de
codificação podem variar, mas a opção mais comum para dados de smartphone é Base64.
Os aplicativos de mensagens geralmente dependem da codificação Base64 para fazer com que
os dados pareçam ocultos ou seguros. Um artefato comum de Base64 é o preenchimento dos
dados com = quando os bytes codificados não são divisíveis por três.

Alguns anos atrás, Oxygen Forensics e Autopsy eram duas das poucas ferramentas que
suportavam a decodificação de cargas Base64 de aplicativos derivados de smartphones. Para
que essas ferramentas analisem os dados, elas devem oferecer suporte ao aplicativo que contém
a codificação. Atualmente, MSAB, UFED Physical Analyzer e Magnet IEF fornecem suporte de
decodificação Base64 .

Um exemplo de mensagens codificadas em Base64 é mostrado na captura de tela a


seguir. Esses dados são do aplicativo de chat do Tango:
Machine Translated by Google

Mensagens Tango codificadas em Base64

A criptografia é um pouco mais difícil, pois o próprio aplicativo pode nem fornecer acesso
aos dados criptografados. Por exemplo, você pode descobrir que o diretório do banco de
dados ou as células que contêm os dados criptografados estão simplesmente vazios.
Ocasionalmente, você terá acesso aos blobs criptografados nos bancos de dados,
mas esses dados nem sempre podem ser descriptografados. Novamente, quando você se
depara com dados criptografados, procure outro lugar. Você examinou o diário e escreveu
logs de antecedência? Você examinou os diretórios de cache e mídia? Você examinou o
cartão SD? Estas são perguntas comuns que você frequentemente terá que se fazer para
garantir que não está confiando demais em suas ferramentas forenses e que está cobrindo
suas bases para garantir que nada seja esquecido.
Como explicamos, comece com o que você sabe. Sabemos que os diretórios de cache e
banco de dados armazenam dados do usuário, então este é um ótimo lugar para começar
seu exame manual, como você pode ver na captura de tela a seguir:
Machine Translated by Google

Locais de armazenamento de dados para aplicativos

Nas seções a seguir, abordaremos como os aplicativos armazenam seus


dados no dispositivo e a importância de vários tipos de opções de armazenamento.
Machine Translated by Google

Armazenamento de dados de aplicativos


iOS, Android e Windows Phone
Quase todos os aplicativos dependem do SQLite para armazenamento de dados. Esses bancos de
dados podem ser armazenados internamente no dispositivo ou no cartão SD para telefones relevantes.
Quando o SQLite é usado, os arquivos de memória temporários são comumente associados a cada
banco de dados para tornar o SQLite mais eficiente. Esses arquivos são diários de reversão (DIÁRIO),
Logs Write-Ahead (WAL) e arquivos de Memória Compartilhada (SHM) . Esses arquivos podem conter
dados que não estão presentes no banco de dados SQLite. Podemos ver vários arquivos WAL e SHM
associados a vários arquivos de banco de dados do WhatsApp na seguinte captura de tela:

Um arquivo SHM e exemplo WAL

Além dos bancos de dados SQLite, outros dispositivos contam com arquivos Plist, XML, JSON e DAT
para armazenamento de dados de aplicativos, armazenamento de dados de contas, informações de
compra e preferências do usuário. Esses arquivos serão discutidos nas seções Android, iOS e Windows
Phone deste capítulo.
Machine Translated by Google

aplicativos iOS
A Apple conta com SQLite e Plist como locais comuns para armazenamento de dados de
aplicativos. Ocasionalmente, arquivos JSON serão usados para dados do aplicativo.
Examinar aplicativos recuperados de um dispositivo iOS pode ser opressor.
Sugerimos que você comece com o que você sabe e o que sua ferramenta está lhe
dizendo. Examine os aplicativos instalados listados pela ferramenta de sua escolha. A partir
daqui, vá diretamente para o diretório de aplicativos e verifique se nada está sendo esquecido.
Quando um usuário exclui um aplicativo, os bancos de dados geralmente permanecem e o
link para o aplicativo instalado é simplesmente quebrado.
Examinar todas as áreas do dispositivo iOS evitará que você perca dados:
Machine Translated by Google

Aplicativos instalados em um iPhone

Depois de examinar os aplicativos instalados, procure nos diretórios Biblioteca e


Documentos quaisquer arquivos Plist relevantes que possam conter artefatos de aplicativos.
Machine Translated by Google

Por fim, examine o diretório de mídia no iPhone, bem como aquele associado ao
aplicativo para recuperar artefatos adicionais, como fotos compartilhadas, vídeos,
arquivos de áudio e fotos de perfil. Na captura de tela a seguir, examinamos o diretório de mídia
associado ao aplicativo WhatsApp:

Dados de aplicativos em um iPhone

Vamos agora dar uma olhada no armazenamento de dados em aplicativos Android.


Machine Translated by Google

aplicativos Android
Os dispositivos Android dependem muito do SQLite para armazenamento de
aplicativos. Os arquivos de preferência para cada aplicativo geralmente estão nos
formatos de arquivo DAT ou XML. Mais do que em um dispositivo iOS, examinar aplicativos
em um dispositivo Android pode ser uma das tarefas mais tediosas. Isso se deve aos vários
locais onde os dados podem ser armazenados. O melhor lugar para começar é com uma
ferramenta que forneça uma lista do que está instalado no dispositivo. Em seguida, vá para
os subdiretórios fora do diretório /Root . Lembre-se de que esses aplicativos podem possuir
nomes exclusivos e podem ser difíceis de localizar.

Você pode ter que pesquisar o aplicativo para entender melhor os nomes de arquivos
associados a cada um deles. A captura de tela a seguir é um exemplo de diretórios de
aplicativos em um dispositivo Android:
Machine Translated by Google

Dados de aplicativos em um dispositivo Android

Cada um desses diretórios de aplicativos conterá muitos dados a serem examinados.


Recomendamos começar com os diretórios Databases e Cache e depois expandir
sua análise para outros locais no dispositivo. Os próximos locais a serem examinados
incluem as partições de mídia e cache . Se os dados parecem estar faltando ou
supostamente foram excluídos, não se esqueça de examinar o diretório Downloads no
dispositivo e no cartão SD.

Os dados do aplicativo podem existir em vários locais nos diretórios de mídia . O uso de
uma ferramenta, como o UFED Physical Analyzer, que fornece recursos de pesquisa de
palavras-chave que vão além dos itens analisados, realmente ajudará a localizar artefatos
pertencentes a aplicativos específicos. Estamos analisando a grande quantidade de dados
armazenados no diretório de mídia em um dispositivo Android em
Machine Translated by Google

a captura de tela a seguir. Esses dados são exclusivos do que está armazenado
nos diretórios de aplicativos discutidos anteriormente. Cada local precisa ser
examinado minuciosamente para garantir que nada seja esquecido. É importante
que você leve o que aprendeu nos capítulos anteriores para analisar os dados do
aplicativo Android:

Dados exclusivos do aplicativo no diretório Media

Veremos agora os aplicativos instalados no Windows Phone e sua


aquisição.
Machine Translated by Google

Aplicativos do Windows Phone


Os aplicativos encontrados em Windows Phones não são diferentes daqueles
encontrados em dispositivos iOS e Android. SQLite é o formato mais comum usado para
armazenamento de dados. No entanto, nem todos os dispositivos permitem que arquivos
SQLite sejam armazenados internamente no telefone. Para esses dispositivos, todos os
dados do aplicativo serão encontrados no cartão SD. Alguns podem considerar isso uma
sorte porque nos poupa de ter que examinar vários locais no dispositivo, mas o cartão SD
e os próprios aplicativos podem ser criptografados.

Sempre que possível, é melhor remover o cartão SD e adquiri-lo usando uma


ferramenta forense. Quando isso não for possível, o próximo melhor método seria
tentar adquirir o cartão SD pelo telefone usando uma ferramenta forense. Novamente,
isso geralmente resultará em dados perdidos. Como último esforço, a análise ao vivo
pode ser concluída montando o dispositivo e usando o Windows Explorer para visualizar
os aplicativos armazenados no dispositivo e no cartão SD, conforme discutido no
Capítulo 12, Windows Phone Forensics.
Machine Translated by Google

Métodos forenses usados para


extrair dados de aplicativos de terceiros
Quase todas as ferramentas comerciais tentarão suportar a extração de aplicativos de
terceiros. Recomendamos que você teste suas ferramentas exaustivamente e
frequentemente, se você confiar na saída da ferramenta para seus resultados investigativos.
Isso ocorre porque os aplicativos são atualizados com tanta frequência que é quase
impossível que as ferramentas não percam algo. Você deve aprender sobre os aplicativos,
como eles funcionam e como os dispositivos armazenam dados para cada aplicativo.
Recomendamos enfaticamente que você use sua ferramenta para triar o caso e, em seguida,
mergulhe nos dados para extrair manualmente tudo o que as ferramentas não perceberem.
Certifique-se de incluir apenas dados factuais em seu relatório forense e não tudo o que as
ferramentas analisam, pois as ferramentas não podem decifrar a diferença entre um dispositivo
e uma criação humana. Somente um examinador treinado pode fazer isso com confiança.
Machine Translated by Google

Ferramentas comerciais

Como você viu neste livro, existem muitas ferramentas que podem lidar com o trabalho de
perícia em smartphones. No entanto, existem alguns que realmente se destacam quando se
trata de analisar os dados do aplicativo. Magnet AXIOM, Oxygen Forensic Detective e UFED
Physical Analyzer são alguns exemplos que fazem um bom trabalho de recuperação de dados
das categorias de aplicativos discutidas neste capítulo.
Vamos dar uma olhada rápida em como aproveitar cada uma dessas ferramentas para
analisar os dados do aplicativo. Lembre-se de que essas ferramentas não encontrarão
todos os aplicativos e não analisarão todos os dados dos aplicativos.
Machine Translated by Google

Detetive forense de oxigênio


O Oxygen Forensic Detective pode ser usado para examinar os dados do aplicativo.
Para este exemplo, estamos assumindo que a aquisição está completa e estamos
simplesmente tentando analisar os dados. Observe que o Oxygen é capaz de adquirir
e analisar smartphones. Neste exemplo, adquirimos o dispositivo com o Cellebrite
UFED e o analisamos com Oxygen. Para carregar um despejo de dados de um
dispositivo e examinar seus artefatos de aplicativo, execute as seguintes etapas:

1. Inicie o Detetive Forense de Oxigênio.


2. Selecione a opção Importar arquivo e escolha sua imagem. Várias imagens
formatos são suportados para ingestão no Oxygen.
3. Após a conclusão da análise, comece a examinar os aplicativos analisados:
Machine Translated by Google

A visualização do aplicativo Oxygen Forensic Detective


Machine Translated by Google

4. Em seguida, comece a examinar os aplicativos de interesse clicando


no aplicativo e examinando todos os arquivos associados.

5. Depois de selecionar o aplicativo, você verá os dados que foram analisados e o


caminho completo do arquivo de onde os dados foram extraídos. Use este
caminho para verificar manualmente as descobertas. Estamos olhando para o
aplicativo Pinterest na captura de tela a seguir. Observe como o contêiner,
arquivo e tabela de interesse são fornecidos e hiperlinks para o usuário. A
ferramenta está até incentivando você a se aprofundar e verificar as descobertas:

Exemplo de Pinterest de detetive de oxigênio

O Oxygen Detective possui recursos integrados para pesquisa de


palavras-chave, favoritos e relatórios. Além disso, o banco de dados
SQLite e o Plist Viewer fornecerão a você um método para examinar os
dados relevantes do aplicativo
Machine Translated by Google

6. Relate todas as informações da conta, bate-papos, mensagens, locais e qualquer


outros dados de interesse, pois isso fornece relevância para sua investigação.

A próxima ferramenta que veremos é o Magnet AXIOM.


Machine Translated by Google

AXIOMA magnético
O Magnet AXIOM é conhecido como um dos líderes em internet e análise de
aplicativos para mídia digital. É tão forte com dispositivos móveis.
Novamente, uma ferramenta não pode fazer o trabalho, mas o AXIOM provou
ser o mais forte e analisa a maioria dos aplicativos do Android, iOS e Windows Phones.
Para usar o AXIOM para examinar os artefatos do aplicativo, execute as seguintes
etapas:

1. Inicie o AXIOM, crie um novo caso e selecione MOBILE (observe que, se MOBILE
estiver esmaecido, você precisará obter uma licença que forneça suporte móvel
da Magnet Forensics):

Selecionando a fonte de evidência

2. Selecione LOAD EVIDENCE e navegue até seu arquivo de imagem. Mais de


uma imagem pode ser carregada e analisada ao mesmo tempo.

3. Selecione IR PARA DETALHES DO ARTEFATO e determine o que deseja


analisar. Recomendamos selecionar todos os aplicativos:
Machine Translated by Google

Artefatos suportados pelo Magnet AXIOM

4. Selecione ANALISAR EVIDÊNCIA.

5. Depois de concluído, você pode usar Artefatos:


Machine Translated by Google

Artefatos de aplicação em Magnet AXIOM

A primeira etapa do exame é revisar o que foi analisado pelo AXIOM. Na


captura de tela anterior, podemos ver que o Telegram foi analisado.
Comece seu exame no local mais relevante. Por exemplo, se você estiver procurando
por bate-papos do Telegram, vá direto para esse local e comece a examinar os
artefatos. Observe que Mensagens e Bate-papos são divididos em duas categorias
diferentes. Isso é comum quando mensagens privadas são usadas. Todos os
recipientes de aplicação relevantes devem ser examinados. Além disso, o AXIOM fornece
Machine Translated by Google

o caminho completo do arquivo do qual os dados foram recuperados. Use outra


ferramenta para navegar até este arquivo para verificação e exame manual.

O AXIOM também fornece pesquisa de palavra-chave lógica (ele pesquisará o que


pode analisar e nada mais), marcação de favoritos e relatórios. Certifique-se de relatar
apenas artefatos de aplicativos factuais e incorporá-los em seu relatório forense final.
Machine Translated by Google

UFED Analisador Físico


O Physical Analyzer é uma das ferramentas forenses móveis mais conhecidas do mercado. Essa
ferramenta é uma das melhores plataformas para realizar um exame manualmente, além de aproveitar
os dados analisados pela ferramenta. Para análise de aplicativos, o Physical Analyzer é bom para
analisar bate-papos e contatos para cada aplicativo compatível. Para dados que não são analisados, o
Physical Analyzer fornece uma plataforma analítica que permite ao usuário navegar no sistema de
arquivos para descobrir artefatos adicionais. A pesquisa de palavras-chave é robusta nesta ferramenta e
é capaz de pesquisar dados hexadecimais brutos e analisados. Além disso, um visualizador SQLite está
incluído.

Para realizar um exame forense dos dados do aplicativo no Physical Analyzer, execute as seguintes
etapas para começar:

1. Inicie o Physical Analyzer clicando duas vezes no arquivo de imagem de atalho do UFED ou
clicando duas vezes no ícone da ferramenta.
2. Carregue o arquivo de imagem e aguarde até que a análise seja concluída.
3. Examine os artefatos analisados, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Dados analisados pelo analisador físico

Recomendamos examinar o que é analisado e consultar o hiperlink de onde os dados


estão sendo extraídos. Navegue até esse caminho e examine todo o diretório do aplicativo.

Para localizar o diretório do aplicativo, aproveite os recursos integrados de pesquisa


de palavras-chave para ajudar na investigação. Lembre-se, você pode ter que realizar
pesquisas para determinar os nomes de arquivos associados ao aplicativo se isso não for
aparente.
Machine Translated by Google

Ferramentas de código aberto/livres

Para aqueles com orçamento limitado, é possível examinar dados de aplicativos


de smartphones usando soluções de código aberto e ferramentas baratas. Essas
soluções são mais difíceis de usar e muitas vezes não são a resposta para os novatos
na área forense que precisam da ajuda de uma ferramenta para extração e análise de dados.
Examinar os dados do aplicativo é tedioso e, se você não souber onde procurar,
provavelmente precisará gastar algum dinheiro para obter uma vantagem inicial.
Ferramentas como o Andriller podem ser compradas por cerca de US$ 500. Embora não
seja gratuito, também não custa US $ 10.000, que é o custo de algumas das outras
ferramentas comerciais. Na seção a seguir, abordaremos algumas de nossas ferramentas
favoritas que são úteis na análise de dados de aplicativos de smartphones.
Machine Translated by Google

Trabalhando com Autópsia

A autópsia é uma das melhores ferramentas para exames de sistema de arquivos.


Infelizmente, a análise do iOS não é fornecida no Autopsy, mas ainda pode ser útil
para imagens do sistema de arquivos. A autópsia pode ser baixada em http://
sleuthkit.org/autop sy/. Ao usar o Autopsy, o módulo Android Analyzer analisará alguns
dados do aplicativo do dispositivo. Vejamos como usar o Autopsy para análise de
imagens do Android.

Para usar o Autopsy, baixe o software e instale-o em uma máquina Windows e siga estas instruções.
Certifique-se de estar sempre usando a versão mais recente:

1. Inicie a Autópsia.
2. Crie um novo caso:

Criação de caso de autópsia

3. Selecione Avançar e clique em Concluir.


4. Navegue até seu arquivo de imagem e selecione Avançar.
5. Selecione os módulos que deseja executar. A pesquisa por palavra-chave e o Android
Analyzer serão os mais proveitosos para um dispositivo Android:
Machine Translated by Google

Seleção do módulo de autópsia

Módulos de ingestão são ferramentas incorporadas ao Autopsy que podem ser executadas quando
o caso é iniciado ou a qualquer momento depois. Os módulos padrão nesta versão do Autopsy são
os seguintes:

Atividade recente: extrai atividades recentes do usuário, como navegação na Web,


documentos usados recentemente e programas instalados.
Pesquisa de hash: identifica arquivos conhecidos e notáveis usando bancos de dados de
hash fornecidos, como um banco de dados NSRL padrão. Também permite importar bancos
de dados de hash personalizados.
Identificação do tipo de arquivo: corresponde aos tipos de arquivo com base em
assinaturas binárias.
Extrator de arquivo: extrai arquivos compactados (.zip, .rar, .arj,
.7z, .gzip, .bzip2 e .tar). Ele extrai automaticamente esses tipos de arquivo
e coloca seu conteúdo na árvore de diretórios.
Analisador EXIF: ingere arquivos JPEG e recupera seus metadados EXIF.
Pesquisa por palavra-chave: realiza a indexação de arquivos e a pesquisa periódica usando
palavras-chave e expressões regulares em listas. Permite o carregamento de
Machine Translated by Google

palavras-chave/listas personalizadas.

Analisador de e-mail: este módulo detecta e analisa arquivos mbox e pst/ost e preenche
artefatos de e-mail no quadro-negro.
Detector de incompatibilidade de extensão: são arquivos sinalizadores que possuem uma
extensão não padrão com base em seus tipos de arquivo.
Verificador E01: valida a integridade dos arquivos E01.
Android Analyzer: extrai dados do sistema Android e de aplicativos de terceiros.

Identificador de Arquivos Interessantes: Identifica itens interessantes, conforme definido.

Além disso, você pode instalar módulos de terceiros para o Autopsy. Alguns deles são realmente
úteis para a análise forense do Android. Um bom exemplo é o Parse SQLite DB de Mark McKinnon.
Este módulo analisa qualquer banco de dados SQLite que encontra e o importa para o conteúdo
extraído. Este e outros módulos podem ser baixados deste GitHub: https://github.com/markmckinnon/
Autopsy-Plugins

O Autopsy fornece acesso aos dados do sistema de arquivos mais rapidamente do que qualquer
ferramenta comercial ou de código aberto disponível. Saber para onde ir a partir daí é a parte mais difícil.
Portanto, novamente, comece com qualquer coisa que esteja no conteúdo extraído e, em seguida,
mergulhe no sistema de arquivos para examinar os arquivos discutidos neste livro e quaisquer
dados relevantes do aplicativo, conforme mostrado na captura de tela a seguir:
Machine Translated by Google

Navegando no sistema de arquivos com Autopsy

Depois de identificar os aplicativos de interesse, comece com o que é analisado e, em


seguida, examine o banco de dados, o cache e os arquivos de preferência relevantes. A
autópsia inclui o SQLite Viewer básico que pode ser usado para fins de triagem. Se você
precisar executar consultas, recomendamos usar o DB Browser for SQLite ou
Machine Translated by Google

navegadores incluídos em produtos comerciais, por exemplo, Belkasoft Evidence Center,


especialmente se você deseja analisar dados de listas livres e espaço não alocado.

O Android Analyzer pode decodificar alguns artefatos automaticamente, por


exemplo, contatos, chamadas e SMS. A captura de tela a seguir mostra os resultados
das mensagens SMS decodificadas:

Mensagens SMS decodificadas pela autópsia

Agora, veremos mais alguns métodos de extração de dados.


Machine Translated by Google

Outros métodos de extração


de dados do aplicativo
Uma das maneiras mais fáceis de analisar dados de aplicativos é criar consultas SQLite
personalizadas e scripts Python para analisar dados de interesse. Discutimos várias
sugestões e exemplos de consultas e scripts ao longo deste livro. O Python é uma das
melhores soluções porque é gratuito e temos acesso total às suas bibliotecas. Uma coisa
a ter em mente é que nossos scripts precisam ser atualizados com frequência para
acompanhar as atualizações do aplicativo. Além disso, certifique-se de que seus
esquemas de codificação estejam corretos para evitar que os artefatos do aplicativo
sejam perdidos ou não sejam interpretados corretamente.

Além dos scripts Python, já existem analisadores gratuitos que oferecem suporte à
extração de aplicativos. O WhatsApp Extract é uma ferramenta gratuita para Android e
iOS que extrai dados do aplicativo WhatsApp dos dispositivos. Muitas vezes, esta
ferramenta gratuita extrai mais dados do que as soluções comerciais, dependendo das
permissões que o usuário alocou durante a instalação. Outros, como Mari DeGrazia (http://
az4n6.blogspot.in/p/downloads.html), Adrian Leong (https://gith ub.com/cheeky4n6monkey/
4n6-scripts), Sarah Edwards (https:// github.com/mac4n6), e Alexis Brignoni (https://
github.com/abrignoni) desenvolveram scripts para analisar aplicativos, recuperar dados
excluídos de páginas gratuitas do SQLite, decodificar Base64 e muito mais. Recomendamos
usar o que já está disponível antes de desenvolver o seu próprio.
Machine Translated by Google

Resumo
Neste capítulo, aprendemos como analisar e extrair com êxito dados de aplicativos
populares de terceiros. Muitos aplicativos não são o que afirmam ser.
Nunca confie no que você lê sobre aplicativos, pois os testes de garantia de qualidade
em aplicativos não são consistentes e determinamos várias vulnerabilidades e falhas
de segurança ao longo dos anos que nos fornecem métodos para reunir os dados do
aplicativo. Além disso, as atualizações do aplicativo mudarão a maneira como
precisamos ver os dados encontrados. Entender cada smartphone e como ele armazena
os dados do aplicativo é o primeiro passo para examinar com sucesso os aplicativos em
smartphones. Saber que as atualizações podem alterar a localização, a codificação e a
criptografia dos dados, bem como o funcionamento da sua ferramenta, é um dos
conceitos mais difíceis de serem compreendidos pelos examinadores. É seu trabalho
aprender os recursos do aplicativo para descobrir o máximo de dados do dispositivo
móvel.

Entender como um aplicativo funciona é difícil o suficiente sem ter que considerar como
extrair artefatos. Como você leu neste livro, há muitas maneiras de analisar dados de
smartphones. Uma ferramenta nunca é suficiente, e a realidade é que a perícia móvel
pode ser cara. Esperamos ter fornecido a você um guia prático que ensina como
adquirir e analisar artefatos recuperados de smartphones. Pegue o que você aprendeu
e aplique-o imediatamente aos seus métodos para conduzir perícias móveis ou use-o
para ficar mais preparado em seu próximo trabalho. Lembre-se de que a prática, os
testes e o treinamento o tornarão melhor em seu trabalho e o ajudarão a aperfeiçoar a
arte da perícia móvel.
Machine Translated by Google

Outros livros que você pode gostar


Se você gostou deste livro, você pode estar interessado nestes outros livros de
Pacote:

Forense digital e resposta a incidentes


Gerard Johansen

ISBN: 978-1-78728-868-3

Crie e implante recursos de resposta a incidentes em sua organização

Construir uma base sólida para adquirir e lidar com evidências adequadas para
análise posterior
Analise as evidências coletadas e determine a causa raiz de um incidente de
segurança
Aprenda a integrar técnicas e procedimentos forenses digitais no processo geral
de resposta a incidentes
Integre a inteligência de ameaças na análise de evidências digitais
Preparar documentação escrita para uso interno ou com partes externas, como
reguladores ou agências de aplicação da lei
Machine Translated by Google

Aprendendo Python para Forense


Preston MillerChapin Bryce

ISBN: 978-1-78328-523-5

Descubra como realizar o desenvolvimento de script Python


Atualize-se aprendendo as melhores práticas em programação forense
Crie scripts por meio de um design iterativo
Explore o rápido desenvolvimento de scripts especializados
Entenda como aproveitar as bibliotecas forenses desenvolvidas pela
comunidade
Projete de forma flexível para acomodar obstáculos presentes e futuros
Conduzir investigações eficazes e eficientes por meio de pré-análise programática

Descubra como transformar dados brutos em relatórios e visualizações


personalizados
Machine Translated by Google

Deixe um comentário - deixe outros


leitores saberem o que você pensa
Por favor, compartilhe seus pensamentos sobre este livro com outras pessoas,
deixando um comentário no site onde você o comprou. Se você comprou o livro na
Amazon, deixe-nos uma crítica honesta na página deste livro na Amazon. Isso é
vital para que outros leitores em potencial possam ver e usar sua opinião imparcial
para tomar decisões de compra, podemos entender o que nossos clientes pensam
sobre nossos produtos e nossos autores podem ver seus comentários sobre o título
que eles trabalharam com a Packt para criar. Levará apenas alguns minutos do seu
tempo, mas é valioso para outros clientes em potencial, nossos autores e a Packt.
Obrigado!

Você também pode gostar