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
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)
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
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)
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?
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/