Segurança no Android

A evolução de novas tecnologias para dispositivos móveis, principalmente para celulares, vem se propagando pelo mundo e em grande escala o sistema operacional que vem predominando é o Android. Este artigo trata de um assunto de suma importância: características do sistema citado e técnicas de segurança para maior proteção dos dados pessoais do usuário e aplicativos para essa plataforma, devido seu crescente uso.

[ Hits: 7.042 ]

Por: Janine Gomes Coelho em 21/12/2016


Comunicação de processos



Cada processo é executado em um ambiente controlado chamado Sandbox e lhe é atribuído um user ID o qual determina seu escopo e restringe acessos externos. Neste caso, para duas aplicações que estejam em processos distintos é necessário que sejam declaradas nos manifestos as permissões de acesso apropriadas para a comunicação entre os dois processos. No entanto, é possível que duas aplicações distintas possam ser executadas no mesmo processo. Conforme Ortiz (2010):

"Diferentes aplicativos podem ser executados no mesmo processo. [..] é preciso primeiro assinar esses aplicativos usando a mesma chave privada e, a seguir, atribuir a eles o mesmo ID de usuário do Linux usando o arquivo de manifesto"
isso permite que as aplicações compartilhem dados e recursos entre si.

A comunicação de processos é utilizada para que possamos acessar uma parte da memória que não podemos acessar, pois a memória é paginada e segmentada, não possibilitando o acesso direto. Como a comunicação entre os processos é um procedimento muito importante para o Android, foram implementados alguns mecanismos para que seja possível ter os acessos necessários com mais agilidade e praticidade, não tendo necessidade de implementar a cada vez que fosse utilizar um aplicativo, por exemplo que fosse necessário acessar a memória.

Para a comunicação entre processos no Android, um dos meios que podemos utilizar é o Binder, que é nada mais nada menos que uma versão modificada do kernel do Linux, mas também temos o Ashmem, que está ligada ao Kernel do Linux, como o Binder.

Binder

O Binder é utilizado como um RPC como o próprio nome já diz "remote procedure calls", chamadas de procedimentos remotos, como não podemos acessar diretamente a memória, é utilizado este mecanismo para que possa fazer a comunicação entre os processos desejados, todos serão passados pelo Binder. Ele foi desenvolvido para atender as necessidades de conseguir acessar códigos em processos separados, envolvendo serviços e aplicações. É possível que você desenvolva seu próprio RPC, ou instanciar um objeto binder. O binder somente é válido enquanto estamos utilizando ele em algum processo específico, quando finalizamos o processo, o binder também é finalizado.

O transporte dos dados são feitos por variáveis confiáveis e seguros, não era como os streams. Quando estamos com um arquivo aberto, foi feita alguma modificação, salvamos, parte deste arquivo, se não todo ele, fica salvo na memória, permitindo assim que possa ser modificado, não tendo segurança nenhuma, só se tem a devida segurança quando fechamos o arquivo, este procedimento é os streams, é o fluxo dos dados. O binder não utiliza esse fluxo.

Ashmem

Com o ashmem, podemos ter um mapeamento das prop A implementação deste Ashmem (Anonymous shared memory) localiza-se em "mm/ashmem.c". Este é um novo mecanismo utilizado para compartilhamento de memória, pois nele conseguimos ter acesso a uma memoria que está sendo compartilhada, por dois ou mais processos. Ele é recomendado para celulares que não possui muita memória, pois como este mecanismo é mais leve, possibilita melhor funcionamento. A memória só é liberada se realmente precisar, se está com pouca memória livre, nesses casos de pouca memória, ele descarta regiões de memórias compartilhadas, de um modo mais seguro.

PERMISSÕES E NÍVEL DE SEGURANÇA

Aplicativos Android não têm permissões concedidas para acessar recursos ou APIs por padrão, isto o torna seguro quanto a softwares maliciosos, pois é necessária a ação do usuário para permitir que o aplicativo possa acessar recursos ou dados restritos que estejam protegidos pelo sistema. Para impor quais operações um aplicativo tem permissão para realizar, o Android utiliza o sistema de segurança em nível de processo, IDs de usuário e de grupo associados herdados do Linux.

Segundo Ortiz (2010):

"Por padrão, os aplicativos são executados dentro de um processo básico de ambiente de simulação sem permissões atribuídas, evitando, desta forma, que tais aplicativos acessem o sistema ou os recursos. Aplicativos Android podem solicitar permissões, no entanto, por meio do arquivo de manifesto do aplicativo."
ou seja, se haver a necessidade de acessar um recurso o qual o aplicativo não tenha permissão, o aplicativo irá gerar um manifesto ao sistema o qual alertará o usuário que poderá permitir que o aplicativo tenha acesso ao recurso desejado. O Android provê APIs de proteção de dados e de recursos em tempo de execução que verificam, impõem, concedem ou revogam as permissões de acesso de um aplicativo a outro aplicativo, aos dados ou ao hardware.

REFERÊNCIAS BIBLIOGRÁFICAS

ALMEIDA, Josiane. Análise de Segurança e de Ferramentas na Plataforma Android. Passo Fundo, Mar de 2013. Disponível em: <http://painel.passofundo.ifsul.edu.br/uploads/arq/201603302120161378702704.pdf> Acesso em 18 out 2016.

ARAUJO, Rafael. Uma discussão sobre o uso incorreto de funções criptográficas em aplicativos Android. São Paulo, 29 de jun de 2014. Disponível em: <http://grenoble.ime.usp.br/~gold/cursos/2014/movel/mono1st/1306-RafaelWill.pdf> Acesso em 18 out 2016.

BATISTA Adriana, DELLAQUILA Bruna, BALTHAZAR Glauber. Análise da Segurança de Aplicativos na Plataforma Android Através da Adoção de Patterns. São Paulo, 1 de set de 2013. Disponível em: <http://cbsoft2013.unb.br/wp-content/uploads/2013/09/analise-da-seguranca-de-aplicativos-na-plataforma-android-atraves-da-adocao-de-patterns.pdf>. Acesso em 18 out 2016.

CIBRÃO, Daniel, GONÇALVES, Rui. Portugal, Jan de 2011. Disponível em: <http://web.fe.up.pt/~jmcruz/ssi/ssi.1112/trabs-als/final/G4T10-android-final.pdf> Acesso em 18 out 2016.

CRUZ, Rafael, ARANHA, Diego. Análise de Segurança em Aplicativos Bancários na Plataforma Android. Disponível em: <http://sbseg2015.univali.br/anais/WTICG/artigoCompletoWTICG02.pdf> Acesso em 18 out 2016.

FILHO, Antônio. Segurança da Informação: Sobre a Necessidade de Proteção de Sistemas de Informações. Revista Espaço Acadêmico. Nov de 2004. Disponível em: <http://www.espacoacademico.com.br/042/42amsf.htm> Acesso em 18 de out de 2016.

MEDEIROS, Antônio, BARBOSA, Luis. Análise de Segurança da Plataforma Android. Rio de Janeiro, 2014. Disponível em: <http://www.defesacibernetica.ime.eb.br/pub/repositorio/2014-Sombra_Helder.pdf> Acesso em 18 out 2016.

OTSUKA, Gilberto, ZANELATO, Ana Paula. O Sistema Android no Universo dos Dispositivos Móveis. Disponível em: <http://intertemas.toledoprudente.edu.br/revista/index.php/ETIC/article/view/3759/3520> Acesso em 18 out 2016.

SACHSE, Nelson. Avaliação Comparativa do Modelo de Segurança do Android. Portugal, Dez de 2010. Disponível em: <https://bdigital.ufp.pt/bitstream/10284/1960/2/DM_12464.pdf> Acesso em 18 out 2016.

Página anterior    

Páginas do artigo
   1. Segurança no Android
   2. Segurança de sistemas
   3. Arquitetura de segurança Android
   4. Instalação de aplicativos
   5. Comunicação de processos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

adb - Como capturar em vídeo a tela de seu Android

Ambiente de Desenvolvimento para Android

Processing - Programação para dispositivos móveis

Processing - Programando para Android e iOS

Hello Android! Meu Primeiro APP

  
Comentários
[1] Comentário enviado por matsumiya em 02/01/2017 - 13:53h

Ótimo artigo, parabéns!

[2] Comentário enviado por Hiboµ em 22/01/2017 - 12:31h

Parabéns pelas pesquisas, muito bem organizada nas referências. O Elgio é um Mestre inspirador, deve estar sendo ótimo as aulas dele. Meu, pardon o off-topic mas, tu já se esbarrou aí em Gravataí com o Thiago Miranda?

[3] Comentário enviado por janinegomes em 23/01/2017 - 13:41h


[2] Comentário enviado por Hiboµ em 22/01/2017 - 12:31h

Parabéns pelas pesquisas, muito bem organizada nas referências. O Elgio é um Mestre inspirador, deve estar sendo ótimo as aulas dele. Meu, pardon o off-topic mas, tu já se esbarrou aí em Gravataí com o Thiago Miranda?


Muito obrigada :D
E sim com certeza o Elgio é um grande professor que me inspira muito. As aulas de seguranças foram muito boas.
Talvez eu tenha me esbarrado com ele, mas por nome, não lembro quem é...
Grata!

[4] Comentário enviado por janinegomes em 23/01/2017 - 13:42h


[1] Comentário enviado por matsumiya em 02/01/2017 - 13:53h

Ótimo artigo, parabéns!


Enzo, muito obrigada ;)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts