Segurança no Android

242 visualizações

Publicada em

Palestra sobre segurança do sistema operacional Android

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
242
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Segurança no Android

  1. 1. Segurança no Android
  2. 2. Whoami Euler Neto @netonightmare Entusiasta NTI GDG Aracaju Segurança (UFS São Cristóvão)
  3. 3. Smartphone = +
  4. 4. Ataque a smartphones ● Quem? ● Como? ● Por que?
  5. 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. 6. Ataque a smartphones ● Como? ○ Via sistema ■ Malware ■ Vulnerabilidade ○ Via redes ■ Wi-fi ■ Man in the Middle
  7. 7. Ataque a smartphones ● Quem? ○ Veremos a seguir...
  8. 8. Ataque a smartphones Fonte: http://pplware.sapo.pt/smartphones-tablets/android/99-dos-ataques-sao-direccionados-para-android/
  9. 9. Ataque a smartphones
  10. 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. 11. Ataque a smartphones Fonte: https://tecnoblog.net/12108/chefe-de-seguranca-do-android-diz-que-ataques-a-dispositivos-moveis-vao-aumentar/
  12. 12. Arquitetura do Android Tradicional Android #USER_ID #USER_ID_1 #USER_ID_2 #USER_ID_3
  13. 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. 14. Arquitetura do Android ● Modelo de segurança do Linux Fonte: http://linuxcommand.org/lts0070.php
  15. 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. 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. 17. Arquitetura do Android ● Processo de assinatura Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
  18. 18. Arquitetura do Android ● Processo de assinatura Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
  19. 19. Arquitetura do Android ● Processo de assinatura Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
  20. 20. Arquitetura do Android ● Processo de assinatura Fonte: https://www.udacity.com/wiki/ud853/course_resources/creating-a-signed-apk
  21. 21. Arquitetura do Android ● Processo de assinatura
  22. 22. Arquitetura do Android ● Isolamento Fonte: [2]
  23. 23. Arquitetura do Android ● Isolamento Fonte: [2]
  24. 24. Arquitetura do Android ● Isolamento ○ Activities <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testapps.test1"> ... <activity android:name=".Activity1" android:permission="com.example.testapps.test1.permission.START_ACTIVITY1"> <intent-filter> ... </intent-filter> </activity> ... </manifest>
  25. 25. Arquitetura do Android ● Isolamento ○ Services <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testapps.test1"> ... <service android:name=".MailListenerService" android:permission= "com.example.testapps.test1.permission.BIND_TO_MAIL_LISTENER" android:enabled="true" android:exported="true"> <intent-filter></intent-filter> </service> ... </manifest>
  26. 26. Arquitetura do Android ● Isolamento ○ Content Providers <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testapps.test1"> ... <provider android.name="com.example.testapps.test1.MailProvider" android.authorities="com.example.testapps.test1.mailprovider" android.readPermission="com.example.testapps.test1.permission.DB_READ" android.writePermission="com.example.testapps.test1.permission.DB_WRITE"> </provider> ... </manifest>
  27. 27. Arquitetura do Android ● Isolamento ○ Apps podem se comunicar com outros via: ■ Intents ■ Services ■ Content Providers ○ Mas também podemos usar permissões
  28. 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. 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. 30. Arquitetura do Android ● Custom Permissions ○ Criar sua própria permissão para acessar outros apps de modo restrito
  31. 31. Arquitetura do Android ● Custom Permissions ○ Exemplo: Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
  32. 32. Arquitetura do Android ● Custom Permissions ○ Exemplo: Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
  33. 33. Arquitetura do Android ● Custom Permissions ○ Exemplo: No AndroidManifest.xml: Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
  34. 34. Arquitetura do Android ● Custom Permissions ○ Exemplo: Vamos tentar de novo? Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
  35. 35. Arquitetura do Android ● Custom Permissions ○ Exemplo: Fonte: Programming Mobile Applications for Android Handheld Systems (Coursera)
  36. 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. 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. 38. Arquitetura do Android ● Armazenamento de dados Fonte: https://www.hackread.com/whatsapp-security-flaw-app-read-chats/
  39. 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?
  40. 40. Comunicação segura ● SSL/TLS Fonte: https://ssl.trustwave.com/support/support-how-ssl-works.php
  41. 41. Comunicação segura ● Man in the middle ○ Se colocar entre o cliente e o servidor ○ Interceptar tráfego ○ Dois tipos: passivo e ativo
  42. 42. Comunicação segura ● MITM Passivo ○ HTTP ○ Não há alteração dos dados
  43. 43. Comunicação segura ● MITM Ativo ○ HTTPS ○ Alteração dos dados
  44. 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. 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. 46. Comunicação segura ● Ou pior ainda: ausência de criptografia Fonte: http://thehackernews.com/2014/04/whatsapp-flaw-leaves-user-location.html
  47. 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/

×