Escolar Documentos
Profissional Documentos
Cultura Documentos
Inserir e Defesa
Aqui para
Inserir Título Móveis
Dispositivos Aqui
Ataques em Sistema Operacional Android
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Ataques em Sistema Operacional Android
Objetivos
• Capacitar os alunos a identificarem ataques cibernéticos em dispositivos móveis, com
ferramentas de simulação de ambientes de Sistemas Operacionais Android e iPhone;
• Identificar ataques aos Sistemas Operacionais citados, erradicação dos malwares e recu-
peração dos dispositivos.
Caro Aluno(a)!
Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl-
timo momento o acesso ao estudo, o que implicará o não aprofundamento no material
trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas.
Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você
poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns
dias e determinar como o seu “momento do estudo”.
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de
discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de
troca de ideias e aprendizagem.
Bons Estudos!
UNIDADE
Ataques em Sistema Operacional Android
Após diversas parcerias fechadas, em novembro de 2007, foi criada a Open Handset
Alliance (OHA).
Além disso, seria possível acelerar a inovação da Plataforma Móvel e oferecer aos
consumidores um serviço móvel mais rico, barato e uma melhor experiência.
6
Figura 2 – Primeiro Android HTC G1
Fonte: Reprodução
Arquitetura do Sistema
A arquitetura geral Android consiste em componentes que se enquadram em seis
camadas principais, incluindo: aplicativos Android, o Android ou Java API Framework,
a Máquina Virtual Dalvik, o Código Nativo do espaço do usuário, a camada de hardware
e o kernel do Linux.
7
7
UNIDADE
Ataques em Sistema Operacional Android
A camada System Apps é onde as aplicações instaladas pelo usuário residem e executam.
A camada Java API Framework expõe as APIs do Sistema para funcionalidades
comuns que são rotineiramente usadas pela maioria das aplicações.
Isso inclui funcionalidades de elementos visuais, compartilhamento de dados ou aces-
sos como telefone ou funcionalidades GPS.
A camada Native C/C++ Libraries contém as Bibliotecas C e C++, as quais geren-
ciam processos de baixo nível, como desenhos gráficos, encriptação de Rede, multimí-
dia e renderização de imagens.
A camada Android Runtime representa a área do Sistema Operacional onde a Má-
quina Virtual (VM) responsável pelas aplicações em execução reside.
A camada Hardware Abstraction Layer (HAL) define as interfaces padrão para os
fabricantes de hardware implementarem. Utilizando a HAL, os fabricantes podem im-
plementar as funcionalidades sem afetar ou modificar o Sistema alto nível.
A camada Linux Kernel é a camada subjacente que une todas as camadas superio-
res. Essa camada controla todo o acesso ao hardware do dispositivo por meio de drivers
de dispositivo.
Como ocorre em qualquer computador, o kernel é o responsável pelo gerenciamento
de memória, processos e energia. O kernel do Android é baseado no kernel do Linux 2.6.
Os componentes de Código Nativo do espaço do usuário do Android incluem: servi-
ços do Sistema, como void e DBus, serviços de Rede, como dhcpd e wpa_supplicant e
Bibliotecas, como bionic libc, WebKit e OpenSSL.
Alguns desses serviços e Bibliotecas se comunicam com serviços e drivers no
nível do kernel, enquanto outros facilitam operações nativas de nível inferior para o
Código gerenciado.
O Android fez inúmeras adições e alterações na árvore de fontes do kernel, algumas
das quais possuem suas próprias ramificações de segurança.
Os drivers no nível do kernel também fornecem funcionalidades adicionais, como
acesso à câmera, Wi-Fi e outros dispositivos de Rede. De particular atenção é o driver
do Binder, que Implementa Comunicação entre Processos (IPC).
8
Características Técnicas
A base do Android traz consigo uma herança bem compreendida do isolamento do pro-
cesso semelhante ao Unix e o princípio do menor privilégio, especificamente, o conceito
em que os processos em execução como usuários separados não podem interferir uns com
os outros, como o envio de sinais ou o acesso ao espaço de memória um do outro.
O Android compartilha o paradigma UID/ID de grupo (GID) do Linux, mas não possui os
arquivos password e group tradicionais para sua origem de credenciais de usuário e grupo.
O Android também reserva intervalos de AID usados para provisionar UIDs de aplica-
tivos. Versões do Android após o 4.1 adicionaram intervalos adicionais de AID para vá-
rios perfis de usuários e usuários de processos isolados (por exemplo, para o sandboxing
adicional do Chrome).
Além dos AIDs, o Android usa grupos suplementares para permitir que processos
acessem recursos compartilhados ou protegidos. Por exemplo, a associação ao grupo
sdcard_rw permite que um processo leia e grave o diretório/sdcard, já que suas opções
de montagem restringem quais grupos podem ler e gravar. Isso é semelhante a como
grupos suplementares são usados em muitas distribuições do Linux.
Por padrão, os dispositivos Android vem de fábrica com a permissão root (adminis-
trador) desabilitada para o Sistema, pois caso isso ocorresse, alguns usuários sem pre-
paro poderiam realizar ações que os deixassem expostos ou até mesmo que causassem
dano ou perda de funcionalidade do dispositivo.
9
9
UNIDADE
Ataques em Sistema Operacional Android
Tabela 1
App Web App Híbrido App Nativo
• São aplicados codificadas em linguagem própria
• São sites responsivos, embarcados em • São apps, embarcados em webviews, com
da plataforma que interagem diretamente com
webviews, como um janela particular; algumas chamadas de sistema local;
o sistema;
• Desenvolvimento e manutenção são • Desenvolvimento e manutenção são
• Desenvolvimento e manutenção e manutenção
mais baratos o que faz esse tipo de mais baratos o que faz esse tipo de
deste tipo de app é mais caro porém permite
aplicação popular. aplicação popular.
maior segurança.
Fonte: //https://www.gsma.com
Essa Máquina Virtual (VM) foi especialmente projetada para fornecer uma camada de
abstração eficiente ao Sistema operacional subjacente.
Isso ocorre para que o Sistema suporte as diferenças entre os Sistemas Operacionais sem
que o desenvolvedor tenha a necessidade de escrever aplicativos para dispositivos específicos.
10
Modelo de Segurança do Android
De modo geral o Modelo de Segurança do Android detém duas camadas distintas
de segurança.
Basicamente, assim, como no Linux, a aplicação pode interagir com qualquer arqui-
vo de sua propriedade (mesmo UID), porém não com de outros UIDs, a não ser que seja
explicitamente compartilhado por outra aplicação ou pelo Sistema Operacional.
11
11
UNIDADE
Ataques em Sistema Operacional Android
12
Infelizmente, isso nem sempre se aplica ao mundo dos aplicativos para dispositivos
móveis. Talvez devido à falta de compreensão sobre como implementar adequadamente
SSL ou TLS ou apenas a noção incorreta sobre a Rede da Operadora e a segurança
sobre ela, os desenvolvedores de aplicativos para dispositivos móveis, às vezes, não pro-
tegem os dados confidenciais em trânsito.
Além disso, cada um desses tipos de armazenamento pode ser criado e acessado
de várias maneiras, incluindo Códigos gerenciados e nativos, ou por meio de interfaces
estruturadas, como provedores de conteúdo. Os erros mais comuns incluem armazena-
mento de dados confidenciais de texto sem formatação, provedores de conteúdo despro-
tegidos e permissões de arquivo inseguras.
13
13
UNIDADE
Ataques em Sistema Operacional Android
# ls -l /data/data/com.skype.merlin_mecha/files/jcaseap
-rw-rw-rw- app_152 app_152 331776 2011-04-13 00:08 main.db
-rw-rw-rw- app_152 app_152 119528 2011-04-13 00:08 main.db-journal
-rw-rw-rw- app_152 app_152 40960 2011-04-11 14:05 keyval.db
-rw-rw-rw- app_152 app_152 3522 2011-04-12 23:39 config.xml drwxrwxrwx app_152 app_152 2011-04-11
14:05 voicemail
-rw-rw-rw- app_152 app_152 0 2011-04-11 14:05 config.lck
-rw-rw-rw- app_152 app_152 61440 2011-04-13 00:08 bistats.db drwxrwxrwx app_152 app_152 2011-04-12
21:49 chatsync
-rw-rw-rw- app_152 app_152 12824 2011-04-11 14:05 keyval.db-journal
-rw-rw-rw- app_152 app_152 33344 2011-04-13 00:08 bistats.db-journal
# grep Default /data/data/com.skype.merlin_mecha/files/shared.xml
<Default>jcaseap</Default>
O cliente Skype usou Código Nativo para grande parte de sua funcionalidade, in-
cluindo a criação e a interação com esses arquivos.
14
Como um exemplo de exposição de registro do ActivityManager, considere o seguin-
te trecho:
Quando você vê o navegador de ações sendo chamado, talvez por meio do usuário
tocando em um link em uma mensagem de e-mail ou SMS, os detalhes da chamada
sendo passada são claramente visíveis e incluem a URL (http://www.wiley.com/) que o
usuário está visitando.
Embora esse exemplo trivial possa não parecer uma questão importante, nessas
circunstâncias, ele apresenta uma oportunidade de coletar algumas informações sobre a
atividade de navegação na Web de um usuário.
15
15
UNIDADE
Ataques em Sistema Operacional Android
Como vimos, a Plataforma possui algumas camadas e cada uma delas pode oferecer
portas de entrada para ataques, desde falhas no chip de processamento até personaliza-
ções de distribuidoras que podem oferecer risco.
Vamos ver alguns exemplos de tópicos principais do guia MITRE ATT&CK para
mobile, considerando a Plataforma Android com alvo.
Acesso Inicial
A tática de acesso inicial representa os vetores que os atacantes usam para ganhar
uma posição inicial em um dispositivo móvel.
Tabela 2
Nome Descrição
Com essa técnica, o navegador da Web do usuário é direcionado para exploração. Por
exemplo, um site pode conter conteúdo de mídia mal-intencionado, destinado a
Compromisso de passagem
explorar vulnerabilidades em analisadores de mídia, conforme demonstrado pela
vulnerabilidade do Android Stagefright.
Explorar através de interfaces O dispositivo móvel pode ser alvo de exploração através da sua interface para
de rádio Redes celulares ou outras interfaces de rádio.
Um atacante com acesso físico a um dispositivo móvel pode tentar ignorar a tela
Bypass Lockscreen
de bloqueio do dispositivo, utilizando recursos físicos ou lógicos.
16
Nome Descrição
O comprometimento da cadeia de fornecimento é a manipulação de produtos ou
mecanismos de entrega de produtos antes do recebimento por um consumidor
Compromisso da cadeia final para fins de comprometimento de dados ou Sistema. Algo relacionado, os
de suprimentos atacantes também podem identificar e explorar vulnerabilidades inadvertidamente
presentes. Em muitos casos, pode ser difícil ter certeza se a funcionalidade
explorável é devida à intenção maliciosa ou simplesmente erro inadvertido.
Persistência
Persistência é qualquer alteração de acesso, ação ou configuração em um dispositivo
móvel que fornece ao atacante uma presença persistente no dispositivo.
Tabela 3
Nome Descrição
Autorize o acesso do Um aplicativo mal-intencionado pode solicitar privilégios de administrador do
administrador do dispositivo dispositivo. Se o usuário conceder os privilégios, o aplicativo poderá executar
para impedir a remoção etapas para tornar sua remoção mais difícil.
Se um atacante puder escalar privilégios, ele poderá usar esses privilégios para
inserir um código mal-intencionado na partição do Sistema do dispositivo, em
Modifique a partição do Sistema
que ele poderá persistir após as redefinições do dispositivo e não ser facilmente
removido pelo usuário do dispositivo.
Se um atacante puder escalar privilégios, ele poderá usar esses privilégios para
inserir um código mal-intencionado no Trusted Execution Environment
(TEE) do dispositivo ou em outro ambiente de execução isolado, no qual o
Modifique o ambiente
código pode escapar da detecção, persistir após redefinições do dispositivo e não
de execução confiável
ser removível pelo usuário do dispositivo. Executar código dentro do TEE pode
fornecer a um atacante a capacidade de monitorar ou adulterar o comportamento
geral do dispositivo.
17
17
UNIDADE
Ataques em Sistema Operacional Android
Escalação de Privilégios
A escalação de privilégios inclui técnicas que permitem que um invasor obtenha um
nível mais alto de permissões no dispositivo móvel.
Tabela 4
Nome Descrição
Um aplicativo mal-intencionado ou outro vetor de ataque pode ser usado para explorar
vulnerabilidades no código em execução no Trusted Execution Environment (TEE). O
atacante poderia, então, obter privilégios mantidos pelo TEE, potencialmente incluindo
Exploit Vulnerabilidade TEE a capacidade de acessar chaves criptográficas ou outros dados sensíveis. Privilégios
escalados do Sistema Operacional podem ser primeiro requeridos para ter a capacidade de
atacar o TEE. Se não, os privilégios dentro do TEE podem potencialmente ser usados para
explorar o Sistema operacional.
Movimentação Lateral
Movimentação lateral consiste em técnicas que permitem a um atacante acessar e
controlar Sistemas Remotos em uma Rede e podem, mas não necessariamente, incluir
a execução de ferramentas em Sistemas Remotos.
Tabela 5
Nome Descrição
Com privilégios escalados, um atacante pode programar o dispositivo móvel
para representar dispositivos USB, como dispositivos de entrada (teclado e
mouse), dispositivos de armazenamento e/ou dispositivos de Rede, a fim de
Ataque PC via conexão USB
atacar um PC fisicamente conectado. Wang e Stavrou e Kamkar descrevem essa
técnica. Essa técnica foi demonstrada no Android e não temos conhecimento de
nenhuma demonstração no iOS.
Atacantes podem tentar explorar servidores corporativos, estações de
trabalho ou outros recursos na Rede. Essa técnica pode aproveitar o acesso do
Explorar Recursos Da Empresa
dispositivo móvel a uma Rede Corporativa Interna por meio de conectividade
local ou por meio de uma Rede Privada Virtual (VPN).
Efeitos
Os efeitos consistem em Técnicas usadas pelo atacante para executar seus objetivos
de missão, mas que não se encaixam perfeitamente em outra categoria, como Coleção.
18
Tabela 6
Nome Descrição
Um atacante pode criptografar arquivos armazenados no dispositivo móvel para impedir
que o usuário os acesse, apenas desbloqueando o acesso aos arquivos após o pagamento
de um resgate. Sem privilégios escalados, o atacante é geralmente limitado a somente
Criptografar arquivos para resgate
criptografar arquivos em locais de armazenamento externos/compartilhados. Essa
técnica foi demonstrada no Android e não temos conhecimento de nenhum uso
demonstrado no iOS.
Um atacante poderia tentar gerar receita de publicidade fraudulenta a partir
Gerar receita de publicidade
de dispositivos móveis, por exemplo, acionando cliques automáticos de links de
fraudulenta
publicidade sem o envolvimento do usuário.
Um aplicativo malicioso pode usar APIs padrão do Android para enviar mensagens
Fraude de tarifação Premium SMS SMS. Mensagens SMS podem potencialmente ser enviadas para números premium
que cobram o proprietário do dispositivo e geram receita para um atacante.
Efeitos – Rede
No ambiente móvel, os dispositivos móveis são frequentemente conectados à Redes
fora do controle corporativo, como Redes celulares ou Redes Wi-Fi públicas.
No entanto, as Redes Celulares, geralmente, têm limites de dados e/ou taxas de dados
extras que podem aumentar o potencial de detecção de comunicação adversária.
Tabela 7
Nome Descrição
Um atacante pode fazer com que o dispositivo móvel use Protocolos menos
seguros, por exemplo, ao interferir nas frequências usadas por Protocolos
Downgrade para Protocolos
mais novos, como o LTE, e permitir que Protocolos mais antigos, como o GSM,
não seguros
comuniquem-se conforme descrito no NIST SP 800-187. O uso de Protocolos
menos seguros pode tornar a comunicação mais fácil de escutar ou manipular.
19
19
UNIDADE
Ataques em Sistema Operacional Android
Nome Descrição
Um atacante pode explorar as vulnerabilidades do Sistema de sinalização para
Explorar SS7 para redirecionar redirecionar chamadas ou mensagens de texto para um número de telefone sob
chamadas telefônicas/SMS o controle do invasor. O atacante poderia, então, agir como um homem no meio
para interceptar ou manipular a comunicação.
Explorar o SS7 para rastrear o local Um atacante pode explorar as vulnerabilidades do Sistema de sinalização para
do dispositivo rastrear a localização de dispositivos móveis.
Um invasor pode interceptar sinais de rádio (por exemplo, Wi-Fi, celular, GPS) para
Bloqueio ou negação de serviço
impedir que o dispositivo móvel se comunique.
Se o tráfego de Rede entre o dispositivo móvel e um servidor remoto não estiver
protegido com segurança, um invasor posicionado na Rede poderá manipular
a comunicação da Rede sem ser detectado. Por exemplo, os pesquisadores
Manipular a comunicação
da FireEye descobriram, em 2014, que 68% dos 1.000 principais aplicativos
do dispositivo
gratuitos da Google Play Store tinham pelo menos uma vulnerabilidade de
implementação de TLS (Transport Layer Security), potencialmente abrindo o
tráfego de Rede dos aplicativos para ataques man-in-the-middle.
Um atacante poderia montar uma estação base de celulares e usá-la para
espionar ou manipular a comunicação de dispositivos celulares. Por exemplo,
Estação base celular desonesta
Ritter e DePerry, da iSEC Partners, demonstraram essa técnica usando uma
femtocell comprometida na Black Hat USA 2013.
Um atacante pode configurar pontos de acesso Wi-Fi não autorizados ou comprometer
pontos de acesso existentes e, se o dispositivo se conectar a eles, realizar ataques
Pontos de acesso Wi-Fi desonestos
baseados em Rede, como interceptar ou modificar a comunicação da Rede, conforme
descrito no NIST SP 800-153.
Um atacante pode convencer a operadora de Rede Móvel (por exemplo, por
meio de Redes Sociais, identificação forjada ou ataques internos realizados
Troca de cartão SIM por funcionários confiáveis) a emitir um novo cartão SIM e associá-lo a um
número de telefone e conta existentes. O atacante poderia, então, obter
mensagens SMS ou sequestrar telefonemas destinados a outra pessoa.
Ataques
Ferramentas Importantes
Algumas ferramentas utilizadas para inter-
ceptação podem ser instaladas no Computador
usado para o ataque e outras são instaladas nos
dispositivos móveis.
20
Bypass Reconhecimento de Digital
Ataques desse tipo podem ser realizados considerando como alvo potencial as OEMs,
as fabricantes e as distribuidoras dos dispositivos.
Também pode remover os outros tipos de bloqueio, PIN, senha e padrão com
poucos cliques.
21
21
UNIDADE
Ataques em Sistema Operacional Android
Após esse procedimento, é importante cadastrar uma nova digital e remover a an-
terior para que não ocorram problemas; caso contrário o processo pode ser revertido.
Interceptação
O processo de interceptação se baseia no uso de proxy e, basicamente, por meio des-
se recurso, podemos realizar testes internos ou ataques. A disparidade está realmente
no local de configuração. Podemos configurar o proxy no roteador caso o objetivo seja
ganhar acesso ou, diretamente, no dispositivo de teste, como podemos ver na Figura 11:
Figura 13
Fonte: Acervo do Conteudista
22
Figura 14 – Local de alteração de proxy em dispositivos Android
Fonte: Reprodução
23
23
UNIDADE
Ataques em Sistema Operacional Android
Por meio da interceptação, é possível mapear as chamadas realizadas pelo App para o
servidor, entender o funcionamento de tokens e verificar os dados que estão sendo trafegados.
Ataque Surface
Para esse ataque, iremos utilizar o Drozer como ferramenta auxiliar, simulando ação
de um aplicativo terceiro malicioso.
O Drozer deve ser instalado no dispositivo móvel alvo utilizando a técnica de acesso
inicial, para aplicativos não autorizados. Para realizar o controle das operações, deve-se
instalar a versão console também no Computador origem.
Figura 16
Fonte: Acervo do Conteudista
Isso nos mostra que temos vários vetores em potencial. O aplicativo exporta várias
atividades de telas usadas pelo aplicativo, objetos de banco de dados e serviços trabalha-
dos em segundo plano.
Também observamos que o serviço é debuggable, o que significa que podemos ane-
xar um depurador ao processo, usando adb e percorrer o Código.
Podemos aprofundar essa superfície de ataque usando alguns comandos mais específicos.
Por exemplo, podemos perguntar quais atividades são exportadas pelo Sieve:
Figura 17
Fonte: Acervo do Conteudista
Nesse caso, o retorno esperado seriam apenas as telas de inicialização como login
ou splash de carregamento.
24
Atividades como PWlist não são esperadas e não requerem permissão. Podemos
pedir ao Drozer para lançá-la:
Figura 18
Fonte: Acervo do Conteudista
Esse comando irá iniciar uma intent apropriada em segundo plano e a entrega ao
Sistema por meio da chamada startActivity. Teremos sucesso no ataque, caso a autori-
zação seja ignorada, e recebemos uma lista das credenciais do usuário.
Figura 19
Fonte: Acervo do Conteudista
Figura 20
Fonte: Acervo do Conteudista
25
25
UNIDADE
Ataques em Sistema Operacional Android
Clonagem de APP
O Processo de Clonagem de App envolve conseguir acesso ao APK e acessar o
Código da Aplicação.
Para nos auxiliar na obtenção do arquivo APK, temos alguns sites, como o https://apps.
evozi.com, ou também podemos capturar o arquivo via SSH no diretório da aplicação.
26
Após a alteração da extensão de dex > jar, basta abrir o arquivo em um compilador
java, como o eclipse ou JDGUI, e realizar as alterações ou avaliações necessárias.
apktool b -f -d nome-do-aplicativo
Após esse processo, será gerado arquivo .apk no diretório em que estão sendo trata-
dos arquivos; basta instalar ou distribuir na Loja.
Clonagem de Dispositivo
O processo de Clonagem de Dispositivos, basicamente, envolve a restauração de backups
de dispositivos específicos.
27
27
UNIDADE
Ataques em Sistema Operacional Android
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Livros
Web Aplication hackers handbook – Finding and Exploiting Security Flaws
STUTTARD, D; PINTO, M. Web Aplication Hackers Handbook – Finding and
Exploiting Security Flaws. 2.ed. Hoboken: Wiley Publishing, 2011;
Leitura
Curso GIAC SEC575
https://bit.ly/2ZI5BPH
Top 10 2013/ProjectMethodology
https://bit.ly/2vuQI5s
OWASP Mobile Security Project
https://bit.ly/1FAIJiv
MITRE ATT&CK
https://bit.ly/2vtTMyw
Fingerprints On Mobile Devices: Abusing and Leaking
https://ubm.io/2ielAyR
28
Referências
CHELL, D. et al. The Mobile Application Hacker‘s Handbook. Nova York: John
Wiley & Sons Inc, 2015.
DRAKE, J. et al. Android Hacker‘s Handbook. Canada: John Wiley & Sons Inc,
2014. (E-book).
MILLER, C. et al. IOS Hacker’s Handbook. Nova York: John Wiley & Sons Inc, 2012.
29
29