O documento discute segurança no Android, abordando os principais riscos de ataques a smartphones, como malware, vulnerabilidades e ataques de rede. Explica a arquitetura de segurança do Android, incluindo isolamento entre aplicativos, permissões e assinatura digital. Também trata de comunicação segura, riscos de ataques Man-in-the-Middle e a importância da criptografia.
5. Ataque a smartphones
● Por que?
○ Roubar dinheiro e informações pessoais
○ Fama
○ Fazer sniff nas conexões
○ Usar seu dispostivo (botnet, spamming)
○ Para o lulz
6. Ataque a smartphones
● Como?
○ Via sistema
■ Malware
■ Vulnerabilidade
○ Via redes
■ Wi-fi
■ Man in the Middle
10. Ataque a smartphones
Fonte: http://www.hardware.com.br/noticias/2015-01/google-nao-ira-mais-lancar-atualizacoes-de-seguranca-para-as-versoes-anteriores-ao-android-kit-kat.
html
11. Ataque a smartphones
Fonte: https://tecnoblog.net/12108/chefe-de-seguranca-do-android-diz-que-ataques-a-dispositivos-moveis-vao-aumentar/
13. Arquitetura do Android
● Modelo de segurança do Linux
○ O coração do Android é o Linux (KERNEL!)
○ Cada usuário possui um User ID (UID)
○ Cada grupo possui um Group ID (GID)
○ Três grupos de permissão: owner, group e world
○ As permissões podem ser Read, Write ou eXecutable
14. Arquitetura do Android
● Modelo de segurança do Linux
Fonte: http://linuxcommand.org/lts0070.php
15. Arquitetura do Android
● Modelo de segurança do Android
○ Cada APK tem seu próprio UID
○ Assinatura digital: parte criptografada do software
que prova a identidade do desenvolvedor
■ Certificado digital
■ Chave privada
○ Certificate Authority (CA)
16. Arquitetura do Android
● Tipos de assinatura digital
○ Debug Mode: gerado automaticamente no momento
da compilaçao
○ Release Mode: assinar com seu próprio certificado
17. Arquitetura do Android
● Processo de assinatura
Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
18. Arquitetura do Android
● Processo de assinatura
Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
19. Arquitetura do Android
● Processo de assinatura
Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
20. Arquitetura do Android
● Processo de assinatura
Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
27. Arquitetura do Android
● Isolamento
○ Apps podem se comunicar com outros via:
■ Intents
■ Services
■ Content Providers
○ Mas também podemos usar permissões
28. Arquitetura do Android
● Permissões
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.app.myapp" >
<uses-permission android:name="android.permission.(nome da permissão)" />
...
</manifest>
29. Arquitetura do Android
● Permissões
○ Mais usadas:
Normal Valor padrão. Permissões de baixo risco que não requer aprovação do
usuário
Dangerous Permissões de alto risco que autorizam o aplicativo a acessar dados
privados do aplicativo, podendo causar impacto no sistema. Requer
aprovação do usuário
30. Arquitetura do Android
● Custom Permissions
○ Criar sua própria permissão para acessar outros
apps de modo restrito
31. Arquitetura do Android
● Custom Permissions
○ Exemplo:
Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
32. Arquitetura do Android
● Custom Permissions
○ Exemplo:
Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
33. Arquitetura do Android
● Custom Permissions
○ Exemplo:
No AndroidManifest.xml:
Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
34. Arquitetura do Android
● Custom Permissions
○ Exemplo:
Vamos tentar de novo?
Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
35. Arquitetura do Android
● Custom Permissions
○ Exemplo:
Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
36. Arquitetura do Android
● Ataques através de permissões
Fonte: http://www.zdnet.com/article/android-users-give-malware-apps-permission-to-rob-them-express-shock-at-the-results/
37. Arquitetura do Android
● Armazenamento de dados
○ Por padrão, arquivos só podem ser acessados pelo
app que os gerou
○ Caminho padrão: /data/data/app_package_name
○ Cartões SD não possuem sistema de permissão
Linux (qualquer app pode acessar)
38. Arquitetura do Android
● Armazenamento de dados
Fonte: https://www.hackread.com/whatsapp-security-flaw-app-read-chats/
39. Arquitetura do Android
● Resumo dos fundamentos de segurança
○ Credibilidade
■ Podemos confiar no autor do app?
○ Isolamento e permissões
■ Podemos controlar os limites do app?
○ Criptografia
■ Os arquivos de seu app estão seguros?
44. Comunicação segura
● MITM Ativo
○ Cuidado com redes Wi-fi desconhecidas!
○ Cuidado com mensagens de certificados
desconhecidos!
○ Verifique se a conexão é HTTPS!
45. Comunicação segura
● Ou pior: SSL vulnerável
Fonte: https://www.fireeye.com/blog/threat-research/2014/08/ssl-vulnerabilities-who-listens-when-android-applications-talk.html
46. Comunicação segura
● Ou pior ainda: ausência de criptografia
Fonte: http://thehackernews.com/2014/04/whatsapp-flaw-leaves-user-location.html
47. Referências
[1] Jeff Six; Application Security for the Android Platform, Processes,
Permissions, and Other Safeguards; O’Reilly Media, 2011, 114 páginas
[2] Marakana, Inc. ; Deep Dive Into Android Security: http://pt.slideshare.
net/marakana/deep-dive-into-android-security-10123665?related=1
[3] Android developers: http://developer.android.com
[4] Mike Part; Mobile Application Security: Who, How and Why; Trustwave,
2012: https://www.owasp.org/images/c/cf/ASDC12-
Mobile_Application_Security_Who_how_and_why.pdf
[5] Anatomy of Android: http://anatomyofandroid.com/