Segurança de Aplicativos Android

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog. Você receberá um email de confirmação. Somente depois de confirma-lo é que poderei lhe enviar os conteúdos exclusivos.

Email inválido.
Blog /Livros /Segurança de Aplicativos Android

Segurança de Aplicativos Android

Vinícius Thiengo
(2973) (1) (2)
Go-ahead
"Onde há uma vontade, há um caminho. Se há uma chance em um milhão de que você pode fazer algo, qualquer coisa, para manter o que você quer terminar, faça. Force a porta aberta e, se necessário, coloque seu pé naquela porta para mantê-la aberta."
Pauline Kael
Kotlin Android
Capa do livro Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia
TítuloDesenvolvedor Kotlin Android - Bibliotecas para o dia a dia
CategoriasAndroid, Kotlin
AutorVinícius Thiengo
Edição
Capítulos19
Páginas1035
Acessar Livro
Treinamento Oficial
Android: Prototipagem Profissional de Aplicativos
CursoAndroid: Prototipagem Profissional de Aplicativos
CategoriaAndroid
InstrutorVinícius Thiengo
NívelTodos os níveis
Vídeo aulas186
PlataformaUdemy
Acessar Curso
Receitas Android
Capa do livro Receitas Para Desenvolvedores Android
TítuloReceitas Para Desenvolvedores Android
CategoriaDesenvolvimento Android
AutorVinícius Thiengo
Edição
Ano2017
Capítulos20
Páginas936
Acessar Livro
Código Limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas599
Acessar Livro
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Conteúdo Exclusivo
Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido
Capa do livro Segurança de Aplicativos Android
Título
Segurança de Aplicativos Android
Categoria
Android
Autor(es)
Jeff Six
Editora
Novatec
Ano
2012
Edição
Páginas
140

Vamos lá, o livro Segurança de Aplicativos Android de Jeff Six é um baita livro, dessa vez não fiquei surpreso pela qualidade, pois o autor é engenheiro de segurança em grandes instituições financeiras dos Estados Unidos além de ter trabalhado na “pouco conhecida” National Security Agency (NSA), sempre com segurança. Enfim, nada do que falei até agora você não conseguiria encontrar na área “Sobre o autor” do livro. O tipo do livro é bem especifico apesar de o próprio autor deixar claro que o livro apenas abre as portas do mundo de segurança de aplicativos Android, que ele deixa bem claro durante o livro que é muito maior do que o apresentado, mas mesmo o autor falando que o livro não pode ser adotado como material único de referência quando o assunto é segurança de aplicativos Android o livro ao meu ver é bem completo para nós desenvolvedores que devemos saber pelo menos  o básico sobre segurança no momento de implementar nossos aplicativos.

Existia algumas coisas de segurança de aplicativos Android que eu já manjava um pouco, permissões no manifest, por exemplo. Porém se você me perguntasse coisas mais robustas além das permissões eu muito provavelmente não saberia ir muito longe. Por exemplo, sabe aquelas aplicações que nós temos de dar a ela o acesso de usuário root para conseguir obter a funcionalidade prometida? Muito comum em aplicações de screencast (filmagem da tela do dispositivo). Esse acesso de root que o usuário (eu faço isso às vezes, compulsório, mas tenho de fazer) da a aplicação de screencast é nada mais nada menos que dizer ao aplicativo “faça o que bem entender com meu dispositivo”. Literalmente é isso que acontece. Como abordado pelo autor no livro, o Linux (o Android é construído em cima do Linux) identifica cada aplicação com um id de usuário único, sendo assim tudo que a aplicação tem ou cria, que não esteja no SDCard do dispositivo somente pode ser acessado por ela (ou por outras aplicações que têm o mesmo id de usuário ou por meio de um ContentProvider), porém se a aplicação estiver com acesso root ela pode acessar qualquer coisa e lugar do sistema, mesmo o id de usuário sendo diferente, e é ai que entra o perigo, imagina você salvando os dados de login dos usuários de seu sistema em um SQLite e sem criptografia... uma aplicação maliciosa poderia facilmente acessar os SQLites de todas as aplicações do dispositivo do usuário e então envia-los para um servidor Web, isso tudo no background e você imaginando que aquela simples aplicação de screencast nada poderia causar de dano... tendo em mente que as senhas e logins tendem a ser os mesmos em outras plataformas! O autor deixa claro isso tudo no livro (essa do usuário root foi novidade para mim). O autor de “lambuja” da uma aula sobre criptografia de dados no capítulo 5, fala sobre chave simétrica, chave assimétrica (pública e privada), hash, códigos de criptografia nativos do Android, porque não salvar a chave de encriptação no dispositivo e por ai vai. Alias o autor mostra que o mais correto é trabalharmos com chave derivada. Na página 104, capítulo 5 ainda, tem um código que acredito já valer o preço do livro, depois de um caminhão de explicação sobre criptografia, encriptação, chaves e chaves derivadas, SHA 256 e AES com CBC o autor mostra um código em que é fornecida uma chave e então é criada uma chave derivada para então encriptar os dados e depois somente para confirmar o autor decripta os dados para provar que o conteúdo original é retornado... esse é o script para desenvolvedores que inevitavelmente precisam guardar dados sensíveis do usuário no dispositivo. O autor mostra que esse tipo de script de criptografia é a arma contra o acesso root ao dispositivo.

Inacreditavelmente o autor fala também sobre SQL –injection, pode acreditar, esse assunto ainda está em voga até mesmo no desenvolvimento mobile Android, mas na verdade o que o autor aborda nesse capítulo (6) é a importância de validarmos todos os dados de entrada que vêm de nossas aplicações para o servidor Web, ele mostra que uma das armas é utilizar scripts de montagem de SQL que trabalham com métodos de parametrização de argumento, é nada mais nada menos que aqueles métodos em que nós montamos a SQL (comandos) de uma lado com as famosas “?” e então colocamos os dados enviados como sendo o outro parâmetro de entrada do método, segundo o autor, dessa forma pode vir qualquer coisa como dado que a aplicação se encarregará de tratar tais dados como apenas dados a serem gravados ignorando então os scripts maliciosos que contém apóstrofos, caracteres de comentário em SQL e por ai vai.

Mas o assunto muito necessário que encontrei no livro foi de “Principio do Privilégio Mínimo”, ou seja, somente devemos dar acesso ao que o usuário realmente deve acessar, somente devemos gravar dados (no SQLite e outras entidades do dispositivo) que realmente iremos utilizar, e por ai vai. Eu mesmo depois de ler esse tópico reformulei a base de dados local de uma aplicativo que administro, pois percebi que guardava um caminhão de dados do usuário que na verdade não os utilizava para nada, coisas que na fase de projeto passam batido e agente acaba nem percebendo que pode virar um grande problema mais para frente.

Então é isso, o livro é de um baita aprendizado, é bem pequeno, apenas 140 páginas, e sem sombra de dúvidas aborda mais que o necessário do que programadores que não têm foco em segurança (até porque não da para abraçar o mundo e aplicativos mobile é sim um mundo muito grande) precisam saber. Primeiro livro que li desse autor e a foi fenomenal a experiência, achei a explicação muito boa, bem direta, mas sem pular o necessário. Somente tenho uma queixa que é quando ele fala sobre segurança na transmissão dos dados entre APP e servidor Web, show de bola ele mostrar que podemos travar a comunicação apenas com um servidor e vice-versa, porém apesar de ele mostrar o script de validação de servidor e cia no lado cliente, APP Android, ele simplesmente pulou a parte de mostrar como fazer isso no lado servidor, servidor Web, falando que não faz parte do escopo do livro e sem dar ao menos uma referência em uma determinada linguagem para os leitores poderem ir buscar a complementação do script ou apenas aprender sobre como implementar o lado servidor desse script de validação. Achei que pelo menos uma referência seria de grande ajuda. Mas mesmo assim não deixarei de dar cinco estrelas, pois pelo tamanho do livro e pelo excelente conteúdo abordado com maestria porque quem entende do assunto (NSA, lembra?).

Vlw.

Receba em primeira mão, e com prioridade, os conteúdos Android exclusivos do Blog.
Email inválido

Relacionado

Android CookbookAndroid CookbookLivros
Padrões de Projeto Para o AndroidPadrões de Projeto Para o AndroidLivros
Construindo Aplicativos Android com HTML, CSS e JavaScriptConstruindo Aplicativos Android com HTML, CSS e JavaScriptLivros
AWS Para DesenvolvedoresAWS Para DesenvolvedoresLivros

Compartilhar

Comentários Facebook (1)

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...