• Nenhum resultado encontrado

Análise de Aplicações Potencialmente Nocivas em Dispositivos com Sistema Operacional Android

N/A
N/A
Protected

Academic year: 2021

Share "Análise de Aplicações Potencialmente Nocivas em Dispositivos com Sistema Operacional Android"

Copied!
56
0
0

Texto

(1)

An´

alise de Aplica¸

oes Potencialmente Nocivas em

Dispositivos com Sistema Operacional Android

Wesley Morais de Ara´

ujo

Orientador: Prof. Ms. Jo˜ao Batista Borges Neto Co-orientador: Prof. Esp. Alexandre Melo Queiroga

Trabalho de Conclus˜ao de Curso apre-sentado ao Curso de Bacharelado em Siste-mas de Informa¸c˜ao como parte dos requisitos para obten¸c˜ao do t´ıtulo de Bacharel em Sis-temas de Informa¸c˜ao.

Laborat´orio de Elementos do Processamento da Informa¸c˜ao – LabEPI Caic´o, RN, 11 de fevereiro de 2020

(2)

Universidade Federal do Rio Grande do Norte - UFRN Sistema de Bibliotecas - SISBI

Cataloga¸c˜ao de Publica¸c˜ao na Fonte. UFRN - Biblioteca Setorial Profa. Maria L´ucia da Costa Bezerra - - CERES–Caic´o

Ara´ujo, Wesley Morais de.

An´alise de Aplica¸c˜oes Potencialmente Nocivas em Dispositivos com Sistema Operacional Android. / Wesley Morais de Ara´ujo. – Caic´o, RN, 2019.

36 f.: il. color

Orientador: Prof. Dr. Jo˜ao Batista Borges Neto. Co-orientador: Prof. Esp. Alexandre Melo Queiroga.

Trabalho de Conclus˜ao de Curso – Universidade Federal do Rio Grande do Norte. Centro de Ensino Superior do Serid´o. Departamento de Computa¸c˜ao e Tecnologia. Bacharelado em Sistemas de Informa¸c˜ao.

1. Aplica¸c˜oes Potencialmente Nocivas. 2. Dispositivos M´oveis. 3. Seguran¸ca da Informa¸c˜ao. I. Neto, Jo˜ao Batista Borges. II. Queiroga, Alexandre Melo. III. T´ıtulo.

RN/UF/BS-Caic´o CDU 004.49

(3)

Wesley Morais de Ara´

ujo

Monografia aprovada em 12 de Dezembro de 2019 pela banca examinadora composta pelos seguintes membros:

Prof. Ms. Jo˜ao Batista Borges Neto (orientador) . . . DCT/UFRN

Prof. Esp. Alexandre Melo Queiroga (co-orientador) . . . DCT/UFRN

(4)
(5)
(6)
(7)

Agrade¸co a Deus pelo discernimento, for¸ca e sa´ude para poder superar as dificuldades. Ao meu pai Carlos Alberto de Ara´ujo, meu melhor amigo, que sempre me apoiou e que me ajudou a conseguir meus objetivos. A minha m˜ae Jud´elia Morais da Silva Ara´ujo, o principal motivo para a realiza¸c˜ao deste trabalho, sem sua ajuda eu nunca conseguiria chegar onde estou, muito obrigado por me guiar. Sou grato ao senhor e a senhora que nunca mediram esfor¸cos para me ajudar em qualquer coisa que eu precisasse. A minha voinha Maria que tamb´em sempre me ajudou em tudo o que eu precisei e a toda a minha fam´ılia. Amo vocˆes.

Aos meus colegas e amigos de faculdade Aline e Bruno os quais entraram juntamente no curso comigo e que me acompanharam at´e onde estou hoje, sem a ajuda n˜ao conseguiria chegar onde cheguei. As minha amigas e tamb´em colegas de curso Carol, Juliana, Bismark, Jos´e Ronaldo e Renata, que mesmo em outro per´ıodo estiveram comigo e me ajudaram quando precisei. A todos os meus colegas de laborat´orio pela convivˆencia di´aria, pelos estudos e por todo o conhecimento trocado. Colegas e amigos que levarei para a vida. Sou eternamente grato ao professor Jo˜ao Borges que sempre com paciˆencia me orientou e ao professor Alexandre Queiroga por ter aceito me co-orientar, repassando seus conheci-mentos, e por todos os momentos de descontra¸c˜ao proporcionados. A todos os professores que tive nesse tempo de curso pelos ensinamentos, instru¸c˜oes durante todo o meu tempo nesta universidade e contribui¸c˜oes para minha forma¸c˜ao.

A todos os meus amigos, por todos os momentos de descontra¸c˜ao, onde me fizeram esquecer as dificuldades, os deveres e renovando sempre a mente. Agrade¸co em especial a Jo˜ao, Bia e Maria Ritha, que nos momentos que achei que n˜ao conseguiria mais estavam l´a pra me acolher, sempre estiveram comigo quando eu mais precisei, que me apoiaram e me ajudaram a tomar decis˜oes. Considero vocˆes como meus irm˜aos.

Finalmente, sou grato pela oportunidade de desenvolver este trabalho no Laborat´orio de Elementos do Processamento da Informa¸c˜ao (LabEPI), sediado Centro de Ensino Superior do Serid´o da Universidade Federal do Rio Grande do Norte.

(8)
(9)

trabalho visa analisar as principais caracter´ısticas de aplica¸c˜oes potencialmente nocivas para dispositivos m´oveis, baseados em Android, com o intuito de servir como um ponto de partida para futuras solu¸c˜oes e estrat´egias de seguran¸ca para estes sistemas. Para isto, um total de 682 aplica¸c˜oes potencialmente nocivas foram analisadas de forma est´atica, a partir de informa¸c˜oes coletadas de seu c´odigo fonte. Por meio destas informa¸c˜oes, as aplica¸c˜oes foram classificadas e agrupadas em fam´ılias, permitindo a identifica¸c˜ao dos principais tipos de aplica¸c˜oes potencialmente nocivas neste cen´ario. Assim, a partir dos dados coletados destas aplica¸c˜oes, foi poss´ıvel concluir que ´e poss´ıvel utiliz´a-los para a sua identifica¸c˜ao, de forma a permitir uma melhor compreens˜ao de seu funcionamento e tamb´em modelar poss´ıveis amea¸cas e vulnerabilidades. Com isso, espera-se que este estudo permita uma poss´ıvel identifica¸c˜ao, atrav´es da an´alise do c´odigo fonte de uma aplica¸c˜ao, se ela apresenta car´ater malicioso.

Palavras-chave: Aplica¸c˜oes Potencialmente Nocivas; Dispositivos M´oveis; Seguran¸ca da Informa¸c˜ao.

(10)
(11)

main characteristics of the potentially harmful applications for mobile devices, based on Android, in order to be a starting point for future security solutions and strategies for these systems. Furthermore, a number of 682 potentially harmful applications were analy-zed following the static analysis method, where features were collected from their source code. From these information, the applications were classified and grouped into families, allowing us to identify the main types of potentially harmful applications in this scenario. Thus, we conclude that it is possible to use data collected from these applications for a better understanding of their operation and also for modeling of possible threats and vul-nerabilities. Finally, we expect that this work can be useful for further identification, based on the analysis of its source code, if an application present possibly malicious features.

(12)
(13)

Sum´

ario

Lista de Figuras 11

Lista de Tabelas 13

Gloss´ario 15

1 Introdu¸c˜ao 1

1.1 Tema e Delimita¸c˜ao do estudo. . . 1

1.2 Contextualiza¸c˜ao e Problema . . . 2

1.3 Objetivos . . . 2

1.3.1 Objetivo Geral . . . 2

1.3.2 Objetivos espec´ıficos . . . 2

1.4 Motiva¸c˜ao e Justificativa do estudo . . . 3

1.5 Organiza¸c˜ao do trabalho . . . 4

2 Levantamento bibliogr´afico 5 2.1 Seguran¸ca da Informa¸c˜ao . . . 5

2.1.1 Medidas de Seguran¸ca . . . 6

2.1.2 Os Principais Atributos da Seguran¸ca de Informa¸c˜ao . . . 6

2.1.3 Tipos de Ataque . . . 7

2.2 Desenvolvimento em Dispositivos M´oveis. . . 9

2.2.1 Principais Componentes do Android . . . 11

2.2.2 A Plataforma Android . . . 14

2.2.3 Boas Pr´aticas . . . 15

2.3 Seguran¸ca em Dispositivos M´oveis . . . 15

2.3.1 Seguran¸ca em Android . . . 16

2.3.2 T´ecnicas e Estrat´egias de Detec¸c˜ao de PHAs . . . 17

2.4 Aprendizado de M´aquina . . . 18

2.4.1 Clustering . . . 19

3 Desenvolvimento 21 3.1 Procedimentos Metodol´ogicos . . . 21

3.2 Explora¸c˜ao das Aplica¸c˜oes Potencialmente Nocivas . . . 22

3.3 An´alise dos Resultados . . . 26

4 Considera¸c˜oes Finais 31 4.1 Resultados. . . 31

(14)

10 Sum´ario

(15)

Lista de Figuras

2.1 Total de Incidentes Reportados ao CERT.br por Ano . . . 9

2.2 Ciclo de vida de uma Activity . . . 10

2.3 Diagrama de Vis˜ao Geral do Gerenciamento de Acesso ao Armazenamento do Content Provider. . . 12

2.4 Pilha de Software do Android . . . 14

3.1 Sele¸c˜ao de Modelo: Fluxo de Trabalho Esquem´atico . . . 22

3.2 Matriz de Dissimilaridade das Permiss˜oes . . . 27

3.3 Matriz de Dissimilaridade das Inten¸c˜oes . . . 28

3.4 Exemplo de Trecho de C´odigo do PHA 10 . . . 28

3.5 Exemplo de Trecho de C´odigo do PHA 21 . . . 29

3.6 Exemplo de Trecho de C´odigo do PHA 8. . . 29

(16)
(17)

Lista de Tabelas

1.1 Autores e suas Ferramentas de An´alise . . . 3

2.1 Permiss˜oes perigosas e grupos de permiss˜oes . . . 13

2.2 Taxa de Instala¸c˜ao de PHA da Google Play no Per´ıdo de Julho `a Setembro de 2019 . . . 16

2.3 Taxa de Instala¸c˜ao de PHA Fora da Google Play no Per´ıdo de Julho `a Setembro de 2019 . . . 17

3.1 Permiss˜oes por cluster. . . 23

(18)
(19)

Gloss´

ario

Acrˆ

onimos

API . . . Application Programming Interface APK . . . Android Package APN . . . Aplica¸c˜oes Potencialmente Nocivas BYOD . . . Bring Your Own Device DoS . . . Denial of Service GUI . . . Graphical User Interface HTTP . . . Hypertext Transfer Protocol IP . . . Internet Protocol KISA . . . Korea Internet and Security Agency MDM . . . Mobile Device Management OHA . . . Open Headset Alliance PHA . . . Potentially Harmful Applications SMS . . . Short Message Service SO . . . Sistema Operacional TCP . . . Transmission Control Protocol VPN . . . Virtual Private Network

(20)
(21)

Cap´ıtulo 1

Introdu¸

ao

“Sometimes it’s the very people who no-one imagines anything of who do the things that no-one can imagine.”

Alan Turing

Este Cap´ıtulo est´a organizado da seguinte forma: Na Se¸c˜ao 1.1 est´a descrito o tema deste trabalho, assim como sua delimita¸c˜ao. Logo ap´os, na Se¸c˜ao 1.2´e apresentada a con-textualiza¸c˜ao e o problema que busca-se resolver. Em seguida s˜ao mostrados os objetivos gerais e espec´ıficos do projeto em quest˜ao, juntamente com a motiva¸c˜ao e a justificativa do estudo, nas Se¸c˜oes1.3 e 1.4 na devida ordem. Por fim, ´e exposto como o trabalho foi organizado na Se¸c˜ao 1.5.

1.1

Tema e Delimita¸

ao do estudo

Devido ao grande n´umero de viola¸c˜oes de seguran¸ca que ocorrem nos dispositivos m´oveis nos dias atuais, como ´e o caso da plataforma Android, os atacantes j´a consideram os dispositivos m´oveis como o principal alvo para roubar informa¸c˜oes pessoais usando v´arios tipos de aplica¸c˜oes prejudiciais (Karthick S,2017). Pelo simples fato destas informa¸c˜oes estarem vulner´aveis a tais ataques, com risco de perda de informa¸c˜oes de crucial relevˆancia, h´a a importˆancia do aumento da an´alise de seguran¸ca de tais dispositivos. Assim, um potencial direcionamento neste sentido diz respeito `a realiza¸c˜ao da an´alise dos sistemas de seguran¸ca dos dispositivos, como tamb´em das informa¸c˜oes contidas nestes, para que se tenha no¸c˜ao das informa¸c˜oes que poderiam ser perdidas, aprendendo desta forma a lidar com tais amea¸cas.

Os smartphones podem ser convertidos em armas de propaga¸c˜ao de agentes nocivos (Leite, 2018), devido ao fato que nem sempre os dispositivos est˜ao munidos sob a segu-ran¸ca oferecida pelas empresas. Sendo alvos vulner´aveis que a qualquer momento, mesmo n˜ao sendo intencional, podem executar c´odigos n˜ao testados e que possuem origem des-conhecida. Atrav´es disso, os ataques tomam vantagem de quanto o dispositivo estiver integrado na vida do usu´ario. Relacionando que hoje em dia a vida das pessoas est˜ao em seus dispositivos m´oveis, suas informa¸c˜oes mais pessoais est˜ao contidas nos mesmos.

Por estes motivos, o trabalho visa, principalmente, realizar a an´alise das “Potentially Harmful Applications” (PHA), em portuguˆes Aplica¸c˜oes Potencialmente Nocivas, em dis-positivos m´oveis que tenham o sistema operacional Android, visando obter a maior massa

(22)

2 Cap´ıtulo 1. Introdu¸c˜ao

de dispositivos do mercado. Com isso, ser´a poss´ıvel perceber quais informa¸c˜oes que mais s˜ao buscadas pelos PHAs, como tamb´em o que eles utilizam para obter tais informa¸c˜oes.

1.2

Contextualiza¸

ao e Problema

Nos dias atuais, os dispositivos m´oveis s˜ao ferramentas indispens´aveis para a vida mo-derna, destacando-se para diversas atividades de entretenimento e comunica¸c˜ao social, tais como enviar emails, tirar fotos, assistir v´ıdeos, conversar com amigos, navegar na Internet, acompanhar as redes sociais, etc (Lecheta, 2016). Al´em destas funcionalidades, o celular tamb´em ´e uma ferramenta que cada vez mais facilita a vida das pessoas, servindo para acessos banc´arios, mapas e entretenimento como m´usicas e jogos em geral. Por´em, tais benef´ıcios podem ter sentido oposto, visto que muitas informa¸c˜oes importantes como os pr´oprios dados banc´arios e outras informa¸c˜oes pessoais, que est˜ao salvas nestes disposi-tivos, estando protegidas ficam dependendo exclusivamente do grau de seguran¸ca que se tem nos mesmos.

Assim, tendo em vista o que foi dito, a respeito do n´ıvel de seguran¸ca das empresas, em rela¸c˜ao aos seus dados em dispositivos m´oveis, como tamb´em das informa¸c˜oes pessoais dos usu´arios ´e imprescind´ıvel que se fa¸ca uma an´alise dos agentes nocivos que podem vir a ter acesso a tais informa¸c˜oes. Havendo assim, um melhor entendimento de acordo com as categorias de classifica¸c˜ao dos agentes, o que os mesmos desejam obter ao ter acesso as informa¸c˜oes privadas dos usu´arios.

1.3

Objetivos

A seguir, est˜ao apresentados os objetivos gerais e espec´ıficos deste trabalho.

1.3.1 Objetivo Geral

Tem-se por objetivo geral a compreens˜ao e an´alise de “Potentially Harmful Appli-cations” (PHA), em portuguˆes Aplica¸c˜oes Potencialmente Nocivas, utilizando m´etodos est´aticos a partir de ferramentas, para que se possa entender seu funcionamento. Junta-mente a isto, ser´a poss´ıvel a realiza¸c˜ao da classifica¸c˜ao de acordo com suas caracter´ısticas. Desta forma, ser´a poss´ıvel agrup´a-los em fam´ılias de acordo com seus objetivos de invas˜ao.

1.3.2 Objetivos espec´ıficos

Para que os principais objetivos deste trabalho possam ser alcan¸cados, os seguintes objetivos espec´ıficos devem ser devidamente atendidos:

• Realiza¸c˜ao de engenharia reversa para retomar os arquivos .DEX em arquivos Java; • Elabora¸c˜ao de um classificador de PHA;

• Utiliza¸c˜ao do classificador para busca e an´alise de partes inconsistentes nos c´odigos Java;

• Classifica¸c˜ao e agrupamento dos PHA de acordo com os recursos que o PHA deseja utilizar.

(23)

Your Own Device (BYOD), express˜ao do inglˆes que significa “traga seu pr´oprio disposi-tivo”. Com a iniciativa BYOD, as organiza¸c˜oes podem reduzir gastos com infraestrutura tecnol´ogica e, al´em disso, d´a mais flexibilidade ao funcion´ario na hora de trabalhar (Leite,

2018).

Apesar das facilidades trazidas pelo BYOD, o problema est´a justamente no quesito de seguran¸ca dos dados, pois o usu´ario tem contato a dados fundamentais da empresa em seu dispositivo. Uma vez que esses dados come¸cam a trafegar atrav´es dos meios fornecidos pelas empresas, ´e necess´ario que tais dados n˜ao se misturem com as informa¸c˜oes pessoais do usu´ario, surgindo o uso de Mobile Device Management (MDM), sigla em inglˆes que significa “Gerenciamento de Dispositivos M´oveis”, o qual ir´a auxiliar na prote¸c˜ao, monitoramento, gerenciamento e suporte aos dispositivos nas empresas.

Para melhor entender o n´ıvel dos tipos de ataques ocorridos nas empresas, um caso recente de ataque foi o do PowerGhost que ´e um minerador de criptomoedas o qual cria moedas novas usando o poder de computa¸c˜ao dos PCs e dispositivos m´oveis da v´ıtima (Lab, 2018). Este malware atua mediante outros usu´arios, tirando proveito do poder dos computadores e dispositivos sem o conhecimento do propriet´ario. Este, faz com que seja utilizado tudo o que lhe seja necess´ario, por apenas um pequeno deslize de seguran¸ca referente ao usu´ario ou at´e mesmo das m´aquinas em quest˜ao.

Com o intuito de melhorar cada vez mais a compreens˜ao a respeito da ´area, juntamente com os riscos que a falta de seguran¸ca oferecem, foram realizados diversos trabalhos na ´

area de estudo, onde foram elaboradas ferramentas de classifica¸c˜ao como mostrado na Tabela 1.1. Visando cada vez mais mostrar o que os PHAs buscam obter dos usu´arios desprevenidos.

Autor Ferramenta de An´alise

Kim et al.(2018) Andro-Simnet

Shabtai et al. (2012) Andromaly

Wu et al. (2012) Droidmat

Tabela 1.1: Autores e suas Ferramentas de An´alise.

O Kim et al. (2018), buscou realizar um experimento onde foi realizado um pr´ e-processamento das amostras de PHA’s (dataset tamb´em utilizado na realiza¸c˜ao deste tra-balho), classificando-os em 8 (oito) fam´ılias. Para isto, utilizou os recursos de Sequˆencia de Chamadas da API, nomes das Activitys, nomes de Arquivos e Permiss˜oes. Mas, n˜ao classificaram todos os 682 PHA’s pois alguns n˜ao se enquadravam nos recursos que o autor buscou classificar. Utiliza m´etodos de an´alise est´atica e dinˆamica.

OShabtai et al.(2012), propˆos um framework que utilizava t´ecnicas de classifica¸c˜ao de Aprendizado de M´aquina para a realiza¸c˜ao de um sistema de detec¸c˜ao de malware. Realiza an´alise dinˆamica, observando v´arios recursos e eventos obtidos no sistema, em seguida, aplica classificadores padr˜oes do Aprendizado de M´aquina para classificar as observa¸c˜oes coletadas como normais (benignas) ou anormais (mal-intencionadas).

(24)

4 Cap´ıtulo 1. Introdu¸c˜ao

OWu et al. (2012), tamb´em utiliza m´etodos de extra¸c˜ao de caracter´ısticas est´aticas e dinˆamicas. Na an´alise est´atica, foram observadas as Permiss˜oes, Deployment de compo-nentes, Intents e Chamadas de API para que fosse poss´ıvel caracterizar o comportamento das aplica¸c˜oes Android. Na an´alise dinˆamica foi observada a Sequˆencia de Comporta-mento, Chamadas do sistema, Fluxo de dados e Consumo de energia. Para verificar a efic´acia foram realizados duas s´eries de experimentos onde comparavam a linha base com outro classificador.

Visto isso, o referente trabalho busca fazer uma an´alise est´atica de todos os 682 PHA’s, utilizando Aprendizado de M´aquina para que possam ser classificados e separados em fam´ılias, analisando o arquivo AndroidManifest.xml de cada arquivo, onde foram estudados as inten¸c˜oes e as permiss˜oes que foram solicitadas pelas aplica¸c˜oes.

1.5

Organiza¸

ao do trabalho

Este trabalho ´e composto por, al´em deste Cap´ıtulo, outros que englobam assuntos os quais ser˜ao necess´arios para o desenvolvimento deste trabalho. O Cap´ıtulo 2, onde encontra-se o levantamento bibliogr´afico do trabalho em quest˜ao, demonstra a importˆancia da seguran¸ca da informa¸c˜ao, como tamb´em a relevˆancia da mesma em dispositivos m´oveis. No Cap´ıtulo3´e apresentada a metodologia que foram utilizadas para atender aos ob-jetivos que foram citados anteriormente neste cap´ıtulo, incluindo alguns dos experimentos que j´a foram realizados com os dados que j´a foram obtidos de acordo com a pesquisa que foi realizada.

(25)

Cap´ıtulo 2

Levantamento bibliogr´

afico

“Come in close... Closer... Because the more you think you see the easier it’ll be to fool you.”

Now You See Me

Este Cap´ıtulo est´a organizado da seguinte forma: Na Se¸c˜ao 2.1 ´e apresentada a im-portˆancia da seguran¸ca da informa¸c˜ao, mostrando a base para a seguran¸ca, os tipos de ataque e as boas pr´aticas para evit´a-los. Em seguida, na Se¸c˜ao 2.2, s˜ao mostrados como s˜ao desenvolvidas as aplica¸c˜oes em Android e especifica¸c˜oes da plataforma em si, a qual ´e o objeto de estudo deste trabalho. Posteriormente, na Se¸c˜ao2.3´e exposta como ´e baseada a seguran¸ca em dispositivos m´oveis e em Android mais especificamente, juntamente com as t´ecnicas de detec¸c˜ao de PHAs.

2.1

Seguran¸

ca da Informa¸

ao

Sempre que um site ´e acessado, seja via computador pessoal, um computador p´ublico, ou um dispositivo m´ovel, informa¸c˜oes sobre o acesso do usu´ario ficam armazenadas (Cherry,

2014). Na grande maioria dos casos, esses dispositivos alimentam um banco de dados, permitindo que outros servi¸cos encontrem informa¸c˜oes sobre os usu´arios para seu uso e benef´ıcio. Em parte, as informa¸c˜oes s˜ao coletadas de forma at´e impercept´ıvel ao usu´ario, mesmo n˜ao necessitando do mesmo inform´a-las. Al´em disso, devido `a natureza dos dis-positivos m´oveis, uma outra fonte de vulnerabilidade encontra-se justamente, em sua co-munica¸c˜ao sem fio. Um problema que as redes sem fio enfrentam em rela¸c˜ao a seguran¸ca, como citouCabral e Caprino(2015), s˜ao as falhas nos protocolos de seguran¸ca.

Por esses motivos, como dito porGoodrich e Tamassia(2013), a prote¸c˜ao de informa¸c˜ao sens´ıvel deve ir al´em da seguran¸ca dos dispositivos e se estender sobre o ambiente no qual essa informa¸c˜ao ´e fornecida e lida. Para assim, refor¸car cada vez mais a seguran¸ca, apesar de surgirem t´ecnicas de roubo de dados ainda mais complexas. Os ativos da informa¸c˜ao, que consistem na informa¸c˜ao e tudo que a suporta ou se utiliza dela, possuem vulnera-bilidades ou fraquezas que podem gerar, intencionalmente ou n˜ao, a indisponibilidade, a quebra de confidencialidade ou integridade (Lyra, 2008), que s˜ao os principais atributos da seguran¸ca. Tais fraquezas podem ocasionalmente vir a ser exploradas.

A informa¸c˜ao ´e um ativo e, tal como qualquer outro ativo, ´e de extrema importˆancia para alguma organiza¸c˜ao ou pessoa e, por isso, deve ser protegida. Com todas as amea¸cas

(26)

6 Cap´ıtulo 2. Levantamento bibliogr´afico

encontradas, as quais tanto pessoas como organiza¸c˜oes est˜ao expostas, a necessidade de prote¸c˜ao aumenta.

Seguran¸ca se trata de gerenciar riscos (Six, 2012). Para isto, ´e necess´ario entender trˆes outros fatores que atuam de forma relevante, que s˜ao vulnerabilidade a qual indica o qu˜ao as medidas defensivas do sistema est´a baixo, comprometido ou ausente; amea¸cas que ´e alguma coisa ou algu´em que pode vir a obter vantagens das vulnerabilidades e as con-sequˆencias que s˜ao o que poderia vir a ocorrer caso algum dos fatores anteriores ocorrerem. Em contraponto, para que possa ser instaurada a seguran¸ca, devem ser levados em consi-dera¸c˜ao outros trˆes pontos que remetem a confidencialidade que implica em ter a certeza que somente ter´a acesso `as informa¸c˜oes quem realmente est´a designado a isso; integridade garante que os dados s˜ao ver´ıdicos e inalter´aveis por quem n˜ao deva e disponibilidade ´e dito no que se refere ao sistema estar funcionando como deveria.

2.1.1 Medidas de Seguran¸ca

Visando manter a seguran¸ca tanto dos dados armazenados nos dispositivos como do aparelho f´ısico, surgem medidas as quais s˜ao utilizadas para que se possa manter a con-fidencialidade, privacidade, integridade e a disponibilidade das informa¸c˜oes perante os usu´arios. A criptografia ´e um dos dom´ınios de uma das principais certifica¸c˜oes de segu-ran¸ca da informa¸c˜ao (Zochio,2016). Tem o principal objetivo de ocultar o real significado da mensagem e n˜ao a mensagem propriamente dita. Mesmo com a criptografia, as in-forma¸c˜oes n˜ao est˜ao totalmente seguras, visto que caso sejam interceptadas, existem estu-dos e algoritmos de criptoan´alise que permitem, n˜ao instantaneamente, que a mensagem seja descriptografada, sem conhecer o m´etodo utilizado para criptografar.

Conforme as necessidades, o controle de acesso ´e uma forma de garantir, atrav´es de regras e pol´ıticas, quem tem a real necessidade de saber determinadas informa¸c˜oes. Jun-tamente com a autentica¸c˜ao, que consiste em determinar a identidade de uma pessoa, de forma a garantir que somente um usu´ario tenha acesso. Isso se deve de forma a combinar algo que o usu´ario possua (como um cart˜ao inteligente ou um dispositivo que armazena chaves), algo que a pessoa sabe (como uma senha), e algo que a pessoa ´e (como sua im-press˜ao digital) (Goodrich e Tamassia,2013). A autoriza¸c˜ao se deve ao fato da necessidade do usu´ario de acordo com as pol´ıticas de de controle de acesso.

Medidas para garantir a integridade dos dados podem ser tomadas a partir da rea-liza¸c˜ao de c´opias de seguran¸ca, garantindo sempre que os dados possam ser restaurados caso tenham sido alterados de forma n˜ao intencional ou n˜ao autorizada; somas de veri-fica¸c˜ao, que consiste na cria¸c˜ao de uma fun¸c˜ao que mapeia o conte´udo de um arquivo para um valor num´erico, qualquer altera¸c˜ao em seu conte´udo resultar´a em um valor de sa´ıda diferente; e c´odigos de corre¸c˜ao de dados, onde s˜ao utilizados m´etodos de armazenamento de dados de tal forma que qualquer altera¸c˜ao podem ser facilmente detectadas e corri-gidas. H´a tamb´em a seguran¸ca f´ısica, que consiste em formas de proteger o dispositivo f´ısico e redundˆancias computacionais que indicam a duplica¸c˜ao de componentes importan-tes, aumentando a confiabilidade e garantindo a seguran¸ca de um sistema, bem como sua disponibilidade.

2.1.2 Os Principais Atributos da Seguran¸ca de Informa¸c˜ao

(27)

autentica¸c˜ao, autoriza¸c˜ao e seguran¸ca f´ısica.

• Privacidade: a qual garante que os indiv´ıduos controlem ou influenciem quais in-forma¸c˜oes sobre eles podem ser coletadas e armazenadas, e por quem e para quem tais informa¸c˜oes podem ser reveladas (Brown e Stallings,2017). Tendo o intuito prin-cipal de manter em sigilo tudo o que os usu´arios desejem que terceiros n˜ao saibam. Admitindo que muitas informa¸c˜oes dos usu´arios s˜ao coletadas em redes sociais ou at´e em ferramentas de pesquisa na internet, visando propor uma melhor experiˆencia para os mesmos.

• Integridade: propriedade de que a informa¸c˜ao n˜ao foi alterada de maneira n˜ao au-torizada Goodrich e Tamassia(2013). Sua inten¸c˜ao ´e manter a real informa¸c˜ao dos dados sem que n˜ao haja nenhuma altera¸c˜ao em seu conte´udo. Os m´etodos cita-dos anteriormente para proteger a confidencialidade da informa¸c˜ao tamb´em ajudam a evitar que os dados sejam modificados. Al´em deles, existem v´arias ferramentas como c´opias de seguran¸ca, somas de verifica¸c˜ao e c´odigos de corre¸c˜ao de dados, que auxiliam na manuten¸c˜ao da integridade.

• Disponibilidade: propriedade da informa¸c˜ao ser acess´ıvel e modific´avel no momento oportuno por aqueles que estejam autorizados a fazer isso (Goodrich e Tamassia,

2013). O que faz com que sempre que necess´aria uma informa¸c˜ao, a mesma esteja sempre dispon´ıvel e de r´apido acesso. Tamb´em existem ferramentas que garantem a disponibilidade, dentre elas prote¸c˜oes f´ısicas e redundˆancias computacionais.

2.1.3 Tipos de Ataque

Todos os diferentes pontos em que um invasor pode entrar em um sistema e onde pode obter dados, s˜ao descritos como vetores de ataque (Righetto, 2018). Estes podem ser desde os caminhos para dados de entrada e sa´ıda de aplicativos, como dados valiosos, aos c´odigos que protegem esses dados. Todos estes, vˆem a servir de vetor de ataque, visto que qualquer um pode vir a ser usado para que haja um acesso de atacantes indesejados ao dispositivo.

A Android busca classificar aplicativos que representam um risco potencial `a segu-ran¸ca dos usu´arios ou de seus dados. Esses tipos de aplicativos s˜ao geralmente chamados de “malware”. No entanto, esse termo n˜ao possui uma taxonomia bem definida e aceita universalmente. Por isso, nos referimos a esses aplicativos como Potentially Harmful Ap-plications (PHAs) termo que em portuguˆes significa “Aplica¸c˜oes Potencialmente Nocivas”. Buscando melhorar o entendimento a respeito, (Google, 2017) classifica os PHAs da se-guinte forma:

• Backdoors: aplica¸c˜oes que permitem a execu¸c˜ao de opera¸c˜oes indesejadas, potenci-almente prejudiciais, controladas remotamente em um dispositivo.

(28)

8 Cap´ıtulo 2. Levantamento bibliogr´afico

• Comercial Spyware: Qualquer aplica¸c˜ao que transmita informa¸c˜oes confidenciais do dispositivo sem o consentimento do usu´ario e n˜ao exibe uma notifica¸c˜ao persistente de que isso est´a acontecendo.

• Data Collection: Qualquer aplica¸c˜ao que colete informa¸c˜oes sobre aplicativos ins-talados, informa¸c˜oes sobre contas de terceiros ou nomes de arquivos no dispositivo sem o consentimento do usu´ario.

• Denial of Service: aplica¸c˜oes que, sem o conhecimento do usu´ario, executa um ataque de nega¸c˜ao de servi¸co ou faz parte de um ataque de nega¸c˜ao de servi¸co distribu´ıdo contra outros sistemas e recursos. Isso pode acontecer enviando um alto volume de solicita¸c˜oes Hypertext Transfer Protocol (HTTP) traduzindo “Protocolo de Trans-ferˆencia de Hipertexto”para produzir carga excessiva em servidores remotos. • Hostile Downloader : aplica¸c˜oes que, por si s´o, n˜ao s˜ao potencialmente prejudiciais,

mas faz o download de outras aplica¸c˜oes potencialmente prejudiciais.

• Mobile Billing Fraud : aplica¸c˜oes que cobram dos usu´arios de maneira intencional-mente enganosa.

• SMS Fraud : aplica¸c˜oes que cobram dos usu´arios o envio de SMS premium sem o consentimento ou tentam disfar¸car suas atividades de SMS, ocultando acordos de divulga¸c˜ao ou mensagens SMS da operadora de celular, notificando o usu´ario sobre cobran¸cas ou confirmando a assinatura.

• Call Fraud : aplica¸c˜oes que podem adicionar cobran¸cas `a conta de celular de um usu´ario fazendo chamadas dispendiosas sem inform´a-las primeiro.

• Toll Fraud : aplica¸c˜oes que enganam os usu´arios para se inscrever ou comprar conte´udo atrav´es de sua conta de telefone celular.

• Non-Android Threat : aplica¸c˜oes que cont´em amea¸cas n˜ao Android. Essas aplica¸c˜oes n˜ao podem causar danos ao usu´ario ou ao dispositivo Android, mas contˆem compo-nentes potencialmente prejudiciais a outras plataformas.

• Phishing: aplica¸c˜oes que fingem vir de uma fonte confi´avel, solicitam credenciais de autentica¸c˜ao e/ou informa¸c˜oes de faturamento de um usu´ario e envia os dados para um terceiro.

• Privilege Escalation: aplica¸c˜oes que comprometem a integridade do sistema, que-brando a caixa de prote¸c˜ao do aplicativo ou alterando ou desativando o acesso `as principais fun¸c˜oes relacionadas `a seguran¸ca.

• Ransomware: aplica¸c˜oes que usam controle parcial ou extenso de um dispositivo ou dados em um dispositivo e exige pagamento para liberar ao controle.

• Rooting: aplica¸c˜oes de escalonamento de privil´egios que cria root no dispositivo. • Spam: aplica¸c˜oes que enviam mensagens comerciais n˜ao solicitadas para a lista de

(29)

usu´ario.

De acordo com o CERT.br (2018b), os casos de incidentes com PHAs tem variado bastante de acordo com os ´ultimos anos, para compara¸c˜ao, podemos ver a Figura2.1. O total de notifica¸c˜oes recebidas em 2018 foi de 676.514, n´umero 19% menor que o total de 2017 e o total de notifica¸c˜oes recebidas em 2017 foi de 833.775, n´umero 29% maior que o total de 2016. Mas um dos fatores que chamou aten¸c˜ao foi no ano de 2014 o qual o total de notifica¸c˜oes recebidas foi de 1.047.031, este n´umero foi 197% maior que o total de 2013, oriundo principalmente de ataques Denial of Service (DoS), o qual busca atacar a “disponibilidade”de um sistema.

Figura 2.1: Total de Incidentes Reportados ao CERT.br por Ano

Fonte: CERT.br(2018b)

2.2

Desenvolvimento em Dispositivos M´

oveis

O Android possui uma pilha de software com base em Linux de c´odigo aberto criada para diversos dispositivos (Google, 2018), o que faz com que desenvolvedores externos possam contribuir com a constru¸c˜ao da plataforma de forma direta. Estes desenvolvedores conhecidos como Open Handset Alliance (OHA), que s˜ao os grandes influenciadores no mercado de tecnologia m´ovel, como por exemplo a Intel, LG, Motorola, Samsung, Dell entre muitos outros. Pelo fato da plataforma estar em constante desenvolvimento e os OHA possu´ırem grande influˆencia, juntamente com o Google, eles tem o objetivo de criar uma plataforma moderna e flex´ıvel para o desenvolvimento de aplica¸c˜oes corporativas (Lecheta,2016).

(30)

10 Cap´ıtulo 2. Levantamento bibliogr´afico

Para o desenvolvimento de uma aplica¸c˜ao mobile ´e necess´ario ter o conhecimento de o que ´e uma Activity, que nada mais ´e uma janela que cont´em a interface do usu´ario da sua aplica¸c˜ao. Um aplicativo pode conter zero ou mais Activities, garantindo que haja intera¸c˜ao com o usu´ario. Desde o momento em que uma atividade aparece na tela at´e o momento em que est´a oculta, ela passa por v´arios est´agios, conhecidos como ciclo de vida de uma Activity (Lee,2012), assim mostrado na Figura 2.2.

Figura 2.2: Ciclo de vida de uma Activity

Fonte: Adaptado de Lee(2012)

A classe base Activity determina uma s´erie de eventos que governam o ciclo de vida de uma atividade. A classe Activity define os seguintes eventos:

• onCreate() Chamado quando a Activity ´e criada pela primeira vez; • onStart() Chamado quando a Activity se torna vis´ıvel para o usu´ario; • onResume() Chamado quando a Activity come¸ca a interagir com o usu´ario; • onPause() Chamado quando a Activity atual est´a em pausa e a Activity anterior

est´a sendo retomada;

(31)

2.2.1 Principais Componentes do Android

O Android apresenta uma abordagem mais rica e complexa, oferecendo suporte a m´ultiplos pontos de entrada de aplicativos. As aplica¸c˜oes devem prever que o sistema poder´a inicializ´a-los em locais diferentes, dependendo do ponto em que se encontra o usu´ario e do que ele deseja fazer a seguir. Em vez de uma hierarquia de locais, seu programa ´e um grupo cooperante de componentes que podem ser inicializados a partir de um ponto fora do fluxo normal de seu aplicativo (Mednieks et al.,2012). Tais componentes ser˜ao descritos a seguir.

• Broadcast Receiver - Os aplicativos Android podem enviar ou receber mensagens de broadcast, ou em portuguˆes transmiss˜ao, do sistema Android e outros aplicativos Android, semelhantes ao padr˜ao de design de publica¸c˜ao e assinatura. Essas trans-miss˜oes s˜ao enviadas quando ocorre um evento de interesse. Por exemplo, o sistema Android envia transmiss˜oes quando ocorrem v´arios eventos do sistema, como quando o sistema ´e inicializado ou o dispositivo come¸ca a carregar. Os aplicativos tamb´em podem enviar transmiss˜oes personalizadas, por exemplo, para notificar outros apli-cativos sobre algo em que possam estar interessados (por exemplo, alguns novos dados foram baixados). Os aplicativos podem se registrar para receber transmiss˜oes espec´ıficas. Quando uma transmiss˜ao ´e enviada, o sistema roteia automaticamente as transmiss˜oes para aplicativos que se inscreveram para receber esse tipo espec´ıfico de transmiss˜ao. De um modo geral, as transmiss˜oes podem ser usadas como um sistema de mensagens entre aplicativos e fora do fluxo normal do usu´ario (Google,

2019a).

• Content Provider - Auxiliam aplicativos a gerenciar o acesso aos dados armaze-nados por si mesmo, armazearmaze-nados por outros aplicativos e fornecer uma maneira de compartilhar dados com outros aplicativos. Eles encapsulam os dados e fornecem mecanismos para definir a seguran¸ca e constituem a interface padr˜ao que os conecta em um processo com o c´odigo em execu¸c˜ao em outro processo (Google,2019b). Eles permitir que outros aplicativos acessem e modifiquem com seguran¸ca os dados do aplicativo, conforme ilustrado na Figura 2.3.

• Permissions - O Android ´e um sistema operacional de privil´egio separado em que cada aplicativo executa com uma identidade de sistema distinta (ID de grupo e de usu´ario do Linux). Partes do sistema tamb´em s˜ao separadas em identidades distin-tas. O Linux, por meio disso, isola os aplicativos uns dos outros e do sistema (Google,

2019d). O objetivo de uma permiss˜ao ´e proteger a privacidade de um usu´ario do Android. Os aplicativos devem solicitar permiss˜ao para acessar dados confidenci-ais do usu´ario (como contatos e SMS), al´em de certos recursos do sistema (como cˆamera e internet). Dependendo do recurso, o sistema pode conceder a permiss˜ao automaticamente ou solicitar ao usu´ario que aprove a solicita¸c˜ao (Google, 2019d). As permiss˜oes do sistema s˜ao divididas em v´arios n´ıveis de prote¸c˜ao. Os dois n´ıveis

(32)

12 Cap´ıtulo 2. Levantamento bibliogr´afico

Figura 2.3: Diagrama de Vis˜ao Geral do Gerenciamento de Acesso ao Armazenamento do Content Provider.

Fonte: Adaptado de Google(2019b)

de prote¸c˜ao mais importantes que devem ser considerados s˜ao as permiss˜oes normais e perigosas:

– Permiss˜oes Normais: abrange ´areas onde os aplicativos necessitam ter acesso a dados ou recursos fora da sandbox do aplicativo, mas apresenta pouco risco `a privacidade do usu´ario ou `a opera¸c˜ao de outros aplicativos.

– Permiss˜oes Perigosas: cobrem ´areas onde as aplica¸c˜oes precisam de dados ou recursos que envolvem informa¸c˜oes pessoais do usu´ario ou que podem afetar os dados armazenados do usu´ario ou a opera¸c˜ao de outros aplicativos.

– H´a algumas permiss˜oes que n˜ao se comportam como as normais nem as perigo-sas. SYSTEM ALERT WINDOW e WRITE SETTINGS s˜ao particularmente sens´ıveis, portanto, a maioria dos aplicativos n˜ao as devem usar, conhecidas com Permiss˜oes Especiais. Se um aplicativo precisa de uma dessas permiss˜oes, deve declarar a permiss˜ao no manifesto e enviar uma intent solicitando a autoriza¸c˜ao do usu´ario.

Todas as permiss˜oes do sistema Android pertencem a grupos de permiss˜ao. Se um aplicativo solicita uma permiss˜ao perigosa listada no seu manifesto e n˜ao tem ne-nhuma permiss˜ao no grupo de permiss˜oes, o sistema mostra uma caixa de di´alogo ao usu´ario que descreve o grupo de permiss˜oes que o aplicativo quer acessar. Se um aplicativo solicita uma permiss˜ao perigosa listada no seu manifesto e o apli-cativo j´a tem outra permiss˜ao perigosa no mesmo grupo de permiss˜oes, o sistema imediatamente concede a permiss˜ao sem nenhuma intera¸c˜ao com o usu´ario (Google,

2019d). As permiss˜oes perigosas juntamente com seus grupos est˜ao listadas a seguir na Tabela 2.1.

(33)

MICROPHONE RECORD AUDIO

PHONE READ PHONE STATE, CALL PHONE, READ CALL LOG, WRITE CALL LOG, ADD VOICEMAIL, USE SIP, PROCESS OUTGOING CALLS

SENSORS BODY SENSORS

SMS SEND SMS, RECEIVE SMS, READ SMS, RECEIVE WAP PUSH, RE-CEIVE MMS

STORAGE READ EXTERNAL STORAGE, WRITE EXTERNAL STORAGE

• Intent - permite iniciar uma atividade em outro aplicativo descrevendo uma a¸c˜ao simples que vocˆe gostaria de executar (como “exibir um mapa” ou “tirar uma foto-grafia”) em um objeto Intent. Esse tipo de intent ´e chamado de impl´ıcito, porque n˜ao especifica o componente do aplicativo a iniciar. Em vez disso, ele especifica uma a¸c˜ao que fornece alguns dados com os quais realizar a a¸c˜ao. Ao chamar startActi-vity() ou startActivityForResult() e passar um intent impl´ıcito, o sistema resolve-o para um aplicativo que pode process´a-lo e inicia a Activity correspondente. Se hou-ver mais de um aplicativo que pode processar, o sistema apresentar´a ao usu´ario uma caixa de di´alogo para escolher o aplicativo a usar (Google,2019c).

• Service - componente de aplicativo que pode executar opera¸c˜oes de execu¸c˜ao de-morada em segundo plano e n˜ao fornece uma interface com o usu´ario. Outro com-ponente do aplicativo pode iniciar um servi¸co e continua em execu¸c˜ao em segundo plano, mesmo se o usu´ario alternar para outro aplicativo. Por exemplo, um servi¸co pode lidar com transa¸c˜oes de rede, tocar m´usica, executar Entrada/Sa´ıda de arqui-vos ou interagir com um Content Provider, tudo em segundo plano (Google,2019f). Existem trˆes diferentes tipos de Service:

– Foreground: realiza opera¸c˜oes que s˜ao percept´ıveis ao usu´ario, como por exem-plo, um aplicativo de ´audio usaria um service em primeiro plano para reproduzir uma faixa de ´audio. Este tipo de service continua em execu¸c˜ao mesmo quando o usu´ario n˜ao est´a mais interagindo com a aplica¸c˜ao.

– Background : executa opera¸c˜oes que n˜ao s˜ao percebidas diretamente pelo usu´ario. Por exemplo, se um aplicativo usasse uma service para compactar seu armaze-namento, isso geralmente seria uma service em segundo plano.

– Bound : quando um componente do aplicativo chama bindService() para vin-cul´a-lo. Uma service bound ou em portuguˆes vinculada oferece uma interface servidor-cliente que permite que os componentes interajam com a interface, en-viem solicita¸c˜oes, recebam resultados, mesmo em processos com comunica¸c˜ao interprocessual (IPC). Um servi¸co vinculado permanece em execu¸c˜ao somente enquanto outro componente do aplicativo estiver vinculado a ele.

(34)

14 Cap´ıtulo 2. Levantamento bibliogr´afico

2.2.2 A Plataforma Android

H´a muitos fatores econˆomicos que impulsionam o desenvolvimento de dispositivos m´oveis que s˜ao contr´arios `a seguran¸ca: desenvolvimento r´apido, custos agressivos e uma necessidade constante de ultrapassar os limites da experiˆencia do usu´ario (Geater,2013). Com o intuito de melhorar o sistema para a utiliza¸c˜ao do usu´ario, mas minimizando a seguran¸ca necess´aria para tal. Segundo a Worldpanel (2018), 94,2% destes dispositivos m´oveis presentes no Brasil, possuem o sistema operacional (SO) Android. Mas n˜ao so-mente no Brasil apresenta maior quantidade de usu´arios, em pa´ıses como China (80,4%), Austr´alia (62,9%), Estados Unidos (61,0%), tamb´em apresentam alto ´ındice de usabilidade deste SO, sendo assim o SO mais utilizado no mundo, sendo l´ıder na categoria, ocupando grande parte do mercado. A Figura2.4mostra como est´a organizada a sua arquitetura.

Figura 2.4: Pilha de Software do Android

Fonte: Adaptado deGoogle(2018)

No topo de todas camadas s˜ao encontradas as aplica¸c˜oes, ou seja, os aplicativos funda-mentais escritos em Java ou em Kotlin, como e-mail, navegadores e calend´arios. Na camada seguinte (Frameworks), s˜ao encontrados todas as API’s e todos os recursos utilizados pe-los aplicativos como classes visuais, que incluem listas, grades, classes de texto, bot˜oes e at´e um navegador web embutido. View System (componentes utilizados na constru¸c˜ao de aplicativos), Content Provider, possibilita que uma aplica¸c˜ao possa acessar informa¸c˜oes de outra aplica¸c˜ao, ou at´e mesmo compartilhem suas informa¸c˜oes, possibilitando a troca de informa¸c˜oes entre aplicativos (Pereira e da Silva, 2009). Nesta camada tamb´em se encontram elementos como servi¸co de localiza¸c˜ao, Bluetooth, Wi-Fi e USB.

(35)

m´aquina virtual atrav´es da ferramenta DX (Pereira e da Silva,2009), como tamb´em pode conter uma instˆancia da m´aquina virtual ART (Android Runtime). Esta, veio com o ob-jetivo de substituir a Dalvik trazendo melhorias uma das quais era de otimizar o c´odigo ao m´aximo para melhorar o desempenho dos aplicativos atrav´es do Ahead-of-time (AOT) (Lecheta, 2017). Por ´ultimo a camada do Kernel do Linux que ´e utilizada para servi¸cos centrais do sistema, como seguran¸ca, gest˜ao de processos, pilhas de protocolos de rede e modelo de drives. Atua tamb´em como camada de abstra¸c˜ao entre o hardware e o restante da pilha de software.

2.2.3 Boas Pr´aticas

Os dispositivos m´oveis al´em de funcionalidades similares aos dos computadores pesso-ais, tamb´em apresentam os mesmos riscos. Al´em disso, possuem caracter´ısticas que podem torn´a-los ainda mais atraentes para pessoas mal-intencionadas (CERT.br,2018a). Alguns destes riscos s˜ao caracterizados como o vazamento de informa¸c˜oes, maior possibilidade de perda e furto, invas˜ao de privacidade, instala¸c˜ao de aplicativos maliciosos, propaga¸c˜ao de c´odigos maliciosos.

Cuidados devem ser tomados, tanto antes, observando os mecanismos de seguran¸ca, restaurando as configura¸c˜oes de f´abrica, caso dispositivos usados, al´em de n˜ao obter dis-positivos que tenham suas permiss˜oes alteradas ou desbloqueados de forma ilegal, como depois. Ap´os a posse de um dispositivo, instalar e manter sempre atualizados, antivi-rus, antispam entre outros mecanismos para manter a seguran¸ca do usu´ario. Casos de recep¸c˜ao de SMS, e-mail e outros meios vindas de fontes desconhecidas, onde contenham links suspeitos, devem ser evitados.

Mas a seguran¸ca n˜ao deve ser somente na parte l´ogica, fisicamente o dispositivo tamb´em est´a vulner´avel a amea¸cas de furto e roubo do mesmo. Sempre proteja suas senhas, sua privacidade e seus dados, de forma a garantir sempre os atributos principais da seguran¸ca, a confidencialidade, a integridade e a disponibilidade dos mesmos.

2.3

Seguran¸

ca em Dispositivos M´

oveis

Embora os dispositivos m´oveis executem sistemas operacionais, comuniquem-se se-gundo a pilha de protocolos Transmission Control Protocol, em portuguˆes “Protocolo de Controlo de Transmiss˜ao”e o Internet Protocol, em portuguˆes “Protocolo de Inter-net”(TCP/IP), que ´e o conjunto de protocolos de comunica¸c˜ao entre dispositivos em rede, e acessem v´arios dos mesmos recursos que os computadores tradicionais, eles tamb´em tˆem seus pr´oprios recursos exclusivos, que acrescentam novos vetores de ataques e protocolos `

a mistura (Weidman,2014). Por este motivo, as op¸c˜oes de explora¸c˜ao de falhas, no caso dos dispositivos m´oveis s´o aumenta, visto que poder˜ao ser coletadas informa¸c˜oes locais do dispositivo. Tendo acesso a contatos ou Short Message Service (SMS) que forem recebi-das, dependendo do objetivo do invasor, os privil´egios podem ser alterados, o que pode vir a gerar um temor ainda maior. Desta brecha, h´a a possibilidade de ataque a outros

(36)

16 Cap´ıtulo 2. Levantamento bibliogr´afico

dispositivos que estejam conectados a uma Virtual Private Network (VPN) que o aparelho explorado.

2.3.1 Seguran¸ca em Android

Como j´a citado anteriormente na Se¸c˜ao2.3, a plataforma Android possui como base de toda a sua estrutura a organiza¸c˜ao do sistema operacional Linux, incluindo o Kernel, como mostrado na Figura2.4, Tal estrutura¸c˜ao tem impacto direto na seguran¸ca da plataforma, o que implica dizer que aplicativos s˜ao impedidos de acessar recursos, arquivos ou at´e a base de dados de outras aplica¸c˜oes.

Contudo, na camada superior do kernel, os servi¸cos do Android podem ser explorados, por exemplo, o processo que instala ou atualiza aplicativos (Guillaume Hiet,2019). Este processo, no Android, ´e bastante falho, visto que podem ser instalados aplicativos de fontes desconhecidas. Devido isso, n˜ao h´a controle dos certificados digitais usados para assinar aplicativos Android, e os aplicativos Android geralmente s˜ao auto-assinados e n˜ao podem ser rastreados para o desenvolvedor (Seacord,2015). Em fun¸c˜ao disso, fica f´acil a altera¸c˜ao de c´odigo, inser¸c˜ao de algo malicioso e compartilh´a-lo.

Six (2012) citou que a amea¸ca causada pelo acesso root em um dispositivo no qual seu aplicativo esteja sendo executado vai al´em da de um usu´ario realizando essa a¸c˜ao. Alguns dos malwares mais avan¸cados que visam aos dispositivos Android fazem uso de vulnerabilidades no n´ıvel do kernel para obter acesso como root. Por este motivo, estes malwares est˜ao livres para modificarem seu acesso e obterem informa¸c˜oes de grande parte das aplica¸c˜oes presentes nos dispositivos.

Com todos esses fatores, pode-se entender que os dispositivos est˜ao suscept´ıveis `a diversos tipos de ataques. Visando isso, aGoogle (2019e) elaborou as Tabelas 2.2 e 2.3

que mostram a porcentagem dos tipos de PHA’s que foram detectados em dispositivos. As imagens, mostram que mesmo com todos os artefatos utilizados pela Google e at´e mesmo pelo hardware encontrado nos aparelhos, nenhum est´a imune `a ataques externos. As taxas vistas em aplica¸c˜oes de fora da Google Play s˜ao de maior relevˆancia mas de justificativa por serem de fontes n˜ao conhecidas, vindas de qualquer parte.

Tabela 2.2: Taxa de Instala¸c˜ao de PHA da Google Play no Per´ıdo de Julho `a Setembro de 2019

Categoria Taxa de Instala¸c˜ao de PHA

DoS 0,10059669%

Spyware 0,04254252% Fraude Telefˆonica 0,014112836%

Phishing 0,0014049586% Cavalo de Troia 0,0010691937% Escalonamento de Privil´egios 0,0006981912% Backdoor 0,0004518898% Download Hostis 0,0003482942% Spam 0,0000380745% Spyware Comercial 0,0000287209% Malware do Windows 0,0000234364% Fraude de SMS 0,0000163002% Root 0,0000087742% Ransomeware 0,0000000033% Fraude de Chamada 0%

(37)

Fraude Telefˆonica 0,009698237% Root 0,0085315165% Backdoor 0,0074765165% Spyware 0,007352133% Phishing 0,0057274614% Spam 0,0042812793% Fraude de Chamada 0,0030539595% Escalonamento de Privil´egios 0,002285302%

Fraude de SMS 0,0013589009% Spyware Comercial 0,0004360971% Ransomeware 0,0002183715% Malware do Windows 0,0000015193%

2.3.2 T´ecnicas e Estrat´egias de Detec¸c˜ao de PHAs

Juntamente com o r´apido crescimento das conex˜oes de alta velocidade da internet a cria¸c˜ao de novos PHAs tamb´em se teve de forma significativa. Para isto, v´arias t´ecnicas podem ser utilizadas para a an´alise e detec¸c˜ao dos mesmos, as quais se dividem em dois tipos de solu¸c˜oes.

• An´alise Est´atica: neste tipo de an´alise, as informa¸c˜oes coletadas sobre o programa e o seu comportamento esperado, s˜ao feitas atrav´es de an´alises impl´ıcitas e expl´ıcitas em seu c´odigo fonte. Apesar de serem r´apidos e eficazes, se limitam principalmente pelo fato da utiliza¸c˜ao de m´etodos de ofusca¸c˜ao nos c´odigos. Isto, faz com que este tipo de an´alise seja incapaz de detectar malwares polim´orficos (que se alteram de um usu´ario invadido para outro).

• An´alise Dinˆamica: ou tamb´em conhecida com An´alise Baseada em Comportamento, consiste em coletar informa¸c˜oes durante o tempo de execu¸c˜ao, como chamadas que o sistema realiza, acesso `a rede e altera¸c˜oes de arquivos e mem´oria. Uma vez que a an´alise do programa ´e feita em tempo real, n˜ao h´a problemas em rela¸c˜ao `a m´etodos de ofusca¸c˜ao. Em contraponto a isto, ´e dif´ıcil simular as condi¸c˜oes apropriadas, nas quais as fun¸c˜oes maliciosas do programa ser˜ao ativadas (como o aplicativo vulner´avel que o malware explora). Segundo, n˜ao est´a claro qual ´e o per´ıodo de tempo necess´ario para observar a aparˆencia da atividade maliciosa de cada malware (Shabtai et al.,

2012).

Tais solu¸c˜oes s˜ao implementadas principalmente usando m´etodos de an´alise basea-dos em assinaturas e baseabasea-dos em heur´ısticas. O m´etodo baseado em assinaturas, s˜ao comumente utilizados por fornecedores de antiv´ırus, dependendo principalmente da iden-tifica¸c˜ao de assinaturas exclusivas que definem o PHA. S˜ao in´uteis em rela¸c˜ao `a PHA desconhecidos. O m´etodo baseado em heur´ısticas, consiste na an´alise por meio de regras j´a determinadas por especialistas ou atrav´es do aprendizado de m´aquina. Isto definir´a o comportamento maligno ou benigno, afim de analisar e detectar PHA desconhecidos.

(38)

18 Cap´ıtulo 2. Levantamento bibliogr´afico

A an´alise est´atica visa determinar o PHA antes do tempo de execu¸c˜ao. Ele analisa os arquivos de origem e os classifica de acordo com as permiss˜oes e especifica¸c˜oes do sistema desejadas. As principais vantagens deste m´etodo s˜ao que ele ´e r´apido, possui baixos requisitos de recursos do sistema e bloqueia PHAs sem danificar o sistema. O ponto fraco do m´etodo ´e que ele ´e resistente apenas a m´etodos conhecidos e n˜ao pode impedir ataques de dia zero. Na an´alise dinˆamica, tenta-se impedir softwares maliciosos examinando os dados do tempo de execu¸c˜ao dos aplicativos. No entanto, o alto consumo de recursos e os recursos limitados de dispositivos m´oveis dificultam o uso do m´etodo em tais aparelhos em tempo real (S¸ahın et al.,2018).

2.4

Aprendizado de M´

aquina

O processo computacional de aprendizado de m´aquina busca inferir automaticamente e, portanto, generalizar, um modelo de aprendizado com base em um conjunto de dados finito e amostral. Os modelos de aprendizado utilizam-se de fun¸c˜oes estat´ısticas para descrever as dependˆencias entre os dados e a correla¸c˜ao entre as entradas e sa´ıdas. De forma simples, este processo permite ao computador aprender, sem ser explicitamente programado, e otimizar sua an´alise e desempenho com base nos resultados de cada itera¸c˜ao do modelo de aprendizado (de Souza Gomes,2019).

Conforme citado por (Canepa,2016), baseado na metodologia utilizada para o treina-mento e tendo em vista os dados fornecidos, os tipos de aprendizado podem ser divididos em:

• Aprendizado Supervisionado: consiste em operar com uma expectativa conhecida, na qual os conjuntos de dados de entrada neste contexto s˜ao chamados de conjuntos dos rotulados, objetivando conseguir encontrar instˆancias semelhantesGollapudi(2016). O objetivo ´e aprender a rela¸c˜ao instˆancia/r´otulo e com base nos conhecimentos adquiridos atrav´es do treinamento, ser capaz de realizar previs˜oes de comportamento ou tomadas de decis˜ao.

• Aprendizado Semi-Supervisionado: assim como na supervisionada, h´a um conjunto de dados rotulados. A diferen¸ca ´e que, al´em dos dados rotulados, temos dados n˜a orotulados tamb´em. O sistema deve analisar esses conjuntos e fazer o melhor poss´ıvel com o de dados n˜ao rotulados. Este tipo de abordagem ´e utilizado quando o conjunto de treinamento cont´em registros insuficientes para obter um resultado com boa precis˜ao Lima e Pinto(2016).

• Aprendizado N˜ao-supervisionado: ´e utilizado quando n˜ao se tem um alvo espec´ıfico, isto ´e, n˜ao h´a um r´otulo inerente `as caracter´ısticas dadas no exemplo Gollapudi

(2016). O objetivo ´e agrupar os exemplos atrav´es da semelhan¸ca entre os atributos. Este tipo de abordagem geralmente ´e utilizada em problemas onde a aprendizagem ´

e baseada na equivalˆencia entre as instˆancias, isto ´e, h´a uma busca pelo padr˜ao de caracter´ısticas intr´ınsecas aos exemplos dados (Alves,2018).

• Aprendizagem por Refor¸co: Na aprendizagem por refor¸co, trabalha-se com a ideia de condicionamento (saber se uma a¸c˜ao ´e correta ou n˜ao) a partir de recompensas ou puni¸c˜oes. Esses condicionamentos s˜ao modelados a partir da an´alise do problema, onde ao t´ermino de uma a¸c˜ao e a partir dos resultados desta, o m´odulo inteligente da

(39)

O clustering ´e uma tarefa de aprendizado n˜ao supervisionada que visa particionar um conjunto de objetos de dados n˜ao rotulados em grupos ou clusters homogˆeneos. A parti¸c˜ao ´e executada de maneira que objetos no mesmo grupo sejam mais semelhantes entre si do que objetos em conjuntos diferentes (Montero et al., 2014). Uma quest˜ao bastante importante durante a an´alise de cluster ´e estabelecer o que queremos dizer com objetos de dados “semelhantes”, isto ´e, determinar uma medida de similaridade/dissimilaridade adequada entre dois objetos. Visando destacar ao m´aximo em que os dois grupos diferem mais.

´

E uma t´ecnica em que dados semelhantes s˜ao colocados em grupos relacionados ou homogˆeneos sem o conhecimento avan¸cado das defini¸c˜oes dos grupos (Aghabozorgi et al.,

2015). Existem alguns algoritmos que realizam o processo. Para ajuda da escolha, um dos principais crit´erios a serem avaliados foi que n˜ao fosse necess´ario a identifica¸c˜ao da quantidade de clusters existentes nos objetos a serem estudados.

Com todos os crit´erios avaliados, o melhor que se enquadrou `as necessidades deste tra-balho foi o Pvclust, que ´e um pacote R[i]para avaliar a incerteza na an´alise hier´arquica de agrupamentos. A escolha se deu basicamente pelo fato de n˜ao ser necess´aria a identifica¸c˜ao da quantidade de clusters existentes. Com isso, muitos dos classificadores conhecidos, como o K-means, foram descartados por este fato.

Para cada cluster no cluster hier´arquico, as quantidades chamadas de p-values s˜ao calculadas por meio de reamostragem de autoescala de v´arias escalas. O p-value de um cluster ´e um valor entre 0 e 1, que indica o qu˜ao forte o cluster ´e suportado pelos dados. O pvclust fornece dois tipos de p-values: valor de AU (Approximately Unbiased) traduzindo para o portuguˆes Aproximadamente Imparcial e valor de BP (Bootstrap Probability) tra-duzindo para o portuguˆes Probabilidade de Inicializa¸c˜ao. O p-value de AU, que ´e calculado por reamostragem de inicializa¸c˜ao m´ultipla em v´arias escalas, ´e uma melhor aproxima¸c˜ao ao p-value imparcial do que o valor de BP calculado por reamostragem de inicializa¸c˜ao normal. O pvclust executa a an´alise hier´arquica de cluster por meio da fun¸c˜ao hclust e calcula automaticamente os p-values para todos os clusters contidos no cluster de dados originais (Suzuki e Shimodaira,2006).

A fun¸c˜ao Hclust executa uma an´alise hier´arquica de cluster usando um conjunto de diferen¸cas para os n objetos que est˜ao sendo armazenados em cluster. Inicialmente, cada objeto ´e atribu´ıdo ao seu pr´oprio cluster e, em seguida, o algoritmo prossegue iterativa-mente, em cada est´agio unindo os dois clusters mais semelhantes, continuando at´e que exista apenas um ´unico cluster. Em cada est´agio, as distˆancias entre os clusters s˜ao recal-culadas pela f´ormula de atualiza¸c˜ao de dissimilaridade de Lance-Williams, de acordo com o m´etodo de agrupamento espec´ıfico que est´a sendo usado que foi o Ward.D2 (R-Manual,

2019b). O m´etodo de Distˆancia escolhido foi o bin´ario, onde os vetores s˜ao considerados como bits bin´arios, portanto, elementos diferentes de zero est˜ao “ativados” e zero s˜ao “de-sativados”. A distˆancia ´e a propor¸c˜ao de bits em que apenas um est´a entre aqueles em que pelo menos um est´a (R-Manual,2019a).

[i]Pacote pvclust para ambiente R:

(40)
(41)

Cap´ıtulo 3

Desenvolvimento

“Everything should be made as simple as possible, but not simpler.”

Albert Einstein

Este Cap´ıtulo est´a organizado da seguinte forma: Na Se¸c˜ao 3.1 est´a uma breve in-trodu¸c˜ao de como ser´a feito o projeto, descrevendo a metodologia que ser´a utilizada. Em seguida, na Se¸c˜ao 3.2 est´a mostrando como foi feta todo o processo de explora¸c˜ao dos dados obtidos, logo em seguida na Se¸c˜ao 3.3 est˜ao alguns dos experimentos que foram realizados durante a fase de testes para a verifica¸c˜ao a veracidade dos clusters elaborados.

3.1

Procedimentos Metodol´

ogicos

O desenvolvimento deste trabalho se d´a, inicialmente, nas quest˜oes relacionadas `a se-guran¸ca dos dispositivos m´oveis, mais especificamente dispositivos com SO Android. Uma das principais funcionalidades ser´a a an´alise de Android Package (APK), onde ser´a poss´ıvel verificar se determinada aplica¸c˜ao cont´em inten¸c˜oes de disseminar ou alterar informa¸c˜oes pessoais ou n˜ao. Com isso, poder´a ser realizado o agrupamento em fam´ılias, de acordo com o que a aplica¸c˜ao desejar fazer.

A implementa¸c˜ao, se dar´a inicialmente, usado t´ecnicas de an´alise est´atica, onde os PHA foram analisados atrav´es do seu c´odigo fonte, buscando Intents, Content Provider, ou algo que tenha car´ater maligno, que fa¸ca com que a aplica¸c˜ao falhe em um dos trˆes principais atributos das seguran¸ca da informa¸c˜ao.

Os PHA foram analisados de forma est´atica e classificados de acordo com quais in-forma¸c˜oes desejam utilizar sem o consentimento do usu´ario. Foram comparados com a lista mostrada na Se¸c˜ao 2.1.3, levando em considera¸c˜ao que a verifica¸c˜ao dos aplicativos avisa o usu´ario se ele detectar a tentativa de instala¸c˜ao de qualquer aplicativo que se en-quadre em uma ou mais dessas categorias em seus dispositivos (Google,2017). Quando ´e detectado que um PHA cont´em recursos de v´arias categorias, ele ´e classificado com base nas caracter´ısticas mais prejudiciais.

A categoriza¸c˜ao de caracter´ısticas mais prejudiciais ´e levada em considera¸c˜ao o que a aplica¸c˜ao visa alcan¸car. Como por exemplo, um aplicativo que obt´em dados e pede pagamento para liberar tais dados como o Ransomeware ´e mais grave que uma aplica¸c˜ao que tem acesso `a fotos e SMS como um spyware. Tendo como base que o que agrava varia de acordo com o que se o PHA obteve. Com isso, foi feita uma compara¸c˜ao entre o que o

(42)

22 Cap´ıtulo 3. Desenvolvimento

PHA utiliza e sua classifica¸c˜ao de acordo com o Android, buscando encontrar semelhan¸cas, afim de descobrir quais as caracter´ısticas mais utilizadas por cada tipo de PHA

3.2

Explora¸

ao das Aplica¸

oes Potencialmente Nocivas

O desenvolvimento deste trabalho tem origem, inicialmente, na coleta dos dados a serem analisados. Para tal, utilizou-se o dataset [i] obtido da KISA, com 682 aplica¸c˜oes, para obter uma quantidade significativa das PHAs. Tendo acesso aos dados, foi necess´ario passar por um processo de descompress˜ao, visto que os mesmos estavam como APK.

Conseguindo visualizar os arquivos que continham os c´odigos, durante a etapa de pr´ e-processamento foi necess´ario a utiliza¸c˜ao de um programa chamado AXMLPrinter2[ii]para transformar o arquivo AndroidManifest.XML em formato leg´ıvel. Logo ap´os ser poss´ıvel a leitura, foi rodado um script escrito em Shell, o qual buscava por linhas em todos os Manifestos que continham as permiss˜oes que foram utilizadas no desenvolvimento de cada aplica¸c˜ao.

Com isso, foi elaborado um arquivo .txt contendo a lista com todos os 682 PHAs juntamente com as permiss˜oes utilizadas por cada um, processo chamado de extra¸c˜ao de atributos. O fluxo do processo foi exemplificado na Figura3.1.

Figura 3.1: Sele¸c˜ao de Modelo: Fluxo de Trabalho Esquem´atico

Fonte: Adaptado de Roth e Lange(2004)

Com os atributos adquiridos, foi poss´ıvel fazer algumas an´alises iniciais, admitindo que foram encontradas um total de 56 permiss˜oes nas aplica¸c˜oes contidas do dataset. As permiss˜oes mais usadas, estando presente em 681 das 682 aplica¸c˜oes foram INTER-NET e READ PHONE STATE. J´a as permiss˜oes menos utilizadas, estando presente em apenas 1 aplica¸c˜ao foram CHANGE WIFI MULTICAST STATE, INSTALL DRM, PRO-CESS INCOMING CALL e WRITE APN SETTINGS. As demais permiss˜oes est˜ao entre essas faixas de utiliza¸c˜ao.

Com o intuito de reduzir a quantidade de permiss˜oes encontradas, optou-se por remover as mais utilizadas e as que menos foram. Buscando obter melhores resultados quando fosse realizar o clustering.

Em seguida, foi elaborado um arquivo .csv onde continham todos os PHAs e as per-miss˜oes, sendo organizados como mostrado a ´ultima parte da Figura 3.1, nas linhas es-tavam contidas as aplica¸c˜oes e nas colunas as permiss˜oes. As aplica¸c˜oes que continham a permiss˜ao eram marcados com 1 (um) e nas que n˜ao tinham 0 (zero). Desse modo, poderia ser aplicado o m´etodo de clustering.

[i]

Dataset com todas as aplica¸c˜oes: https://drive.google.com/file/d/ 14m0GxgtJWDlVOvttmOlUfi54h9y7j-Bj/view?usp=sharing

[ii]Dispon´ıvel em:

(43)

J

onde J corresponde ao coeficiente de similaridade de Jaccard, que ´e dado por J = M11

M01+ M10+ M11

. (3.2)

Nesta equa¸c˜ao, s˜ao computadas as combina¸c˜oes entre os valores 0 e 1 dos atributos de cada PHA, onde, sendo A e B dois vetores de dois PHAs,

• M11 representa o n´umero total de atributos onde tanto em A quanto em B possuem

valor 1;

• M01 representa o n´umero total de atributos onde em A ´e 0 e em B ´e 1;

• M10 representa o n´umero total de atributos onde em A ´e 1 e em B ´e 0;

• M00 representa o n´umero total de atributos onde tanto em A quanto em B possuem valor 0.

A partir do c´alculo destas distˆancias, pˆode-se elaborar uma matriz de dissimilaridade, como pode ser observada na Figura3.2 a seguir. Quanto mais semelhante as permiss˜oes contidas nos PHAs mais azul, com distˆancia iguais ou mais pr´oximas a zero e quanto mais diferentes mais vermelho com distˆancias mais pr´oximas ou iguais a um. A matriz de dissimilaridade consiste no grau de diferen¸ca entre o conte´udo existente em uma aplica¸c˜ao e as demais.

Com esses dados obtidos, foi realizado o clustering a partir das permiss˜oes, utilizando o Pvclust para isto, obtendo um total de 23 clusters diferentes. O cluster e as permiss˜oes contidas no mesmo s˜ao mostrados na Tabela3.1

Tabela 3.1: Permiss˜oes por cluster.

Clusters Permiss˜oes Utilizadas

1 ACCESS WIFI STATE, INTERNET, MOUNT UNMOUNT FILESYSTEMS,

READ CONTACTS, READ PHONE STATE, RECEIVE SMS,

WRITE EXTERNAL STORAGE

2 ACCESS WIFI STATE, BIND DEVICE ADMIN, CALL PHONE, GET TASKS, INTER-NET, MOUNT FORMAT FILESYSTEMS, MOUNT UNMOUNT FILESYSTEMS, PROCESS OUTGOING CALLS, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, SYS-TEM ALERT WINDOW, WRITE EXTERNAL STORAGE

3 ACCESS NETWORK STATE, BIND DEVICE ADMIN, GET TASKS, IN-TERNET, KILL BACKGROUND PROCESSES, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RE-CEIVE SMS, SEND SMS, UPDATE APP OPS STATS, VIBRATE, WRITE CONTACTS, WRITE EXTERNAL STORAGE, WRITE SMS

4 INTERNET, READ PHONE STATE, READ SMS, RECEIVE SMS, SEND SMS, WRITE EXTERNAL STORAGE

5 ACCESS NETWORK STATE, CAMERA, INTERNET, READ PHONE STATE, SYS-TEM ALERT WINDOW, WRITE EXTERNAL STORAGE

(44)

24 Cap´ıtulo 3. Desenvolvimento

6 ACCESS NETWORK STATE, ACCESS WIFI STATE, BIND DEVICE ADMIN, CALL PHONE, CHANGE WIFI STATE, GET TASKS, INSTALL SHORTCUT, IN-TERNET, KILL BACKGROUND PROCESSES, MODIFY AUDIO SETTINGS, MO-DIFY PHONE STATE, READ CONTACTS, READ LOGS, READ PHONE STATE, RECEIVE BOOT COMPLETED, RECEIVE SMS, RESTART PACKAGES, SEND SMS, SYSTEM ALERT WINDOW, UNINSTALL SHORTCUT, VIBRATE, WAKE LOCK, WRITE CONTACTS, WRITE EXTERNAL STORAGE

7 ACCESS NETWORK STATE, ACCESS WIFI STATE, ADD SYSTEM SERVICE, BIND DEVICE ADMIN, CHANGE WIFI STATE, INTERNET, MOUNT UNMOUNT FILESYSTEMS, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE MMS, RECEIVE SMS, RE-CEIVE WAP PUSH, SEND SMS, WRITE EXTERNAL STORAGE, WRITE SMS 8 ACCESS WIFI STATE, CALL PHONE, GET TASKS, INSTALL SHORTCUT,

INTER-NET, MOUNT UNMOUNT FILESYSTEMS, READ PHONE STATE, READ SMS, RE-CEIVE SMS, WRITE EXTERNAL STORAGE

9 ACCESS NETWORK STATE, ACCESS WIFI STATE, BIND SERVICE ADMIN, CALL PHONE, CHANGE WIFI STATE, INTERNET, READ CALL LOG,

READ CONTACTS, READ PHONE STATE, READ SMS,

RE-CEIVE BOOT COMPLETED, RECEIVE MMS, RECEIVE SMS, RECORD AUDIO, SEND SMS, WAKE LOCK, WRITE CALL LOG, WRITE CONTACTS, WRITE EXTERNAL STORAGE, WRITE SETTINGS, WRITE SMS

10 ACCESS NETWORK STATE, ACCESS WIFI STATE, ADD SYSTEM SERVICE, BROADCAST STICKY, CALL PHONE, CHANGE WIFI STATE, INTERNET, MOUNT UNMOUNT FILESYSTEMS, READ CALL LOG, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, WAKE LOCK, WRITE CALL LOG, WRITE EXTERNAL STORAGE, WRITE SMS

11 BIND DEVICE ADMIN, CALL PHONE, INTERNET, MODIFY PHONE STATE, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, WRITE SETTINGS

12 ACCESS NETWORK STATE, BIND DEVICE ADMIN, CALL PHONE, CHANGE NETWORK STATE, CHANGE WIFI STATE, GET TASKS, INTER-NET, MOUNT UNMOUNT FILESYSTEMS, PROCESS OUTGOING CALLS, READ CALL LOG, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, VIBRATE, WRITE CALL LOG, WRITE EXTERNAL STORAGE, WRITE SETTINGS, WRITE SMS

13 BIND DEVICE ADMIN, INTERNET, READ PHONE STATE, READ SMS, RE-CEIVE BOOT COMPLETED, RERE-CEIVE SMS, SEND SMS, WRITE SETTINGS 14 ACCESS NETWORK STATE, ACCESS WIFI STATE, BIND DEVICE ADMIN,

CHANGE WIFI STATE, DISABLE KEYGUARD, GET TASKS, INTERNET, READ CONTACTS, READ EXTERNAL STORAGE, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, SYSTEM ALERT WINDOW, WAKE LOCK, WRITE EXTERNAL STORAGE, WRITE SETTINGS, WRITE SMS

15 ACCESS COARSE LOCATION, ACCESS MOCK LOCATION, AC-CESS NETWORK STATE, ACCESS WIFI STATE, CHANGE WIFI STATE, INTER-NET, MOUNT UNMOUNT FILESYSTEMS, READ PHONE STATE, READ SMS, RECEIVE SMS, SEND SMS, WRITE EXTERNAL STORAGE, WRITE SMS

16 ACCESS COARSE LOCATION, ACCESS FINE LOCATION, AC-CESS NETWORK STATE, ACCESS WIFI STATE, ANSWER PHONE, DE-LETE PACKAGES, INSTALL PACKAGES, INTERNET, READ CONTACTS, READ PHONE STATE, READ SMS, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, SYSTEM ALERT WINDOW, SYSTEM OVERLAY WINDOW, VI-BRATE, WAKE LOCK, WRITE CONTACTS, WRITE EXTERNAL STORAGE, WRITE SETTINGS

17 ACCESS NETWORK STATE, BIND DEVICE ADMIN, CALL PHONE, GET TASKS, INTERNET, MODIFY PHONE STATE, PROCESS OUTGOING CALLS,

READ CONTACTS, READ PHONE STATE, READ SMS,

RE-CEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, SYS-TEM ALERT WINDOW, VIBRATE, WAKE LOCK, WRITE CONTACTS, WRITE EXTERNAL STORAGE, WRITE SMS

18 CALL PHONE, INSTALL SHORTCUT, INTERNET, MOUNT UNMOUNT FILESYSTEMS,

READ CONTACTS, READ PHONE STATE, READ SMS,

RE-CEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS,

(45)

20 ACCESS NETWORK STATE, ACCESS WIFI STATE, ANSWER PHONE, BIND DEVICE ADMIN, CALL PHONE, DELETE PACKAGES, GET TASKS, INSTALL PACKAGES, INTERNET, MODIFY AUDIO SETTINGS, MO-DIFY PHONE STATE, MOUNT UNMOUNT FILESYSTEMS, PRO-CESS OUTGOING CALLS, READ CONTACTS, READ LOGS, READ PHONE STATE, RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS, SYS-TEM ALERT WINDOW, VIBRATE, WAKE LOCK, WRITE CONTACTS, WRITE EXTERNAL STORAGE

21 ACCESS COARSE LOCATION, ACCESS FINE LOCATION, AC-CESS MOCK LOCATION, BIND DEVICE ADMIN, CALL PHONE, IN-TERNET, READ CONTACTS, READ PHONE STATE, READ SMS, RE-CEIVE BOOT COMPLETED, RECEIVE SMS, RECORD AUDIO, SEND SMS, WRITE CONTACTS, WRITE SETTINGS

22 ACCESS NETWORK STATE, BIND DEVICE ADMIN, CALL PHONE, IN-TERNET, MOUNT UNMOUNT FILESYSTEMS, READ PHONE STATE,

RECEIVE BOOT COMPLETED, RECEIVE SMS, SEND SMS,

WRITE EXTERNAL STORAGE

23 MOUNT UNMOUNT FILESYSTEMS, WRITE EXTERNAL STORAGE

O processo para obten¸c˜ao da lista de Inten¸c˜oes foi semelhante ao das Permiss˜oes, mostrado na Figura3.1, o ´unico processo que houve diferen¸ca foi no momento da extra¸c˜ao de atributos. Apesar de todos os PHAs utilizarem as Inten¸c˜oes LAUNCHER e MAIN, as mesmas n˜ao podem ser removidas pois h´a aplica¸c˜oes que possuem somente estas Inten¸c˜oes por serem iniciadores de a¸c˜oes nas aplica¸c˜oes.

A mesma an´alise foi feita com as Inten¸c˜oes, sendo tamb´em calculada a distˆancia bin´aria e elaborado a sua matriz de dissimilaridade, apresentada na Figura3.3. Da mesma ma-neira, as partes indicadas em azul apresentam maior similaridade, que obteve valores iguais a zero ou pr´oximos dele e as partes apresentadas em vermelho s˜ao as que mais se diferem, onde o m´aximo valor encontrado foi 0.96875.

Da mesma forma, foi utilizado o Pvclust para a realiza¸c˜ao do clustering. Com isso, foram obtidos 17 clusters, que podem ser observados juntamente com as Intents utilizadas por cada um na Tabela3.2a seguir.

Tabela 3.2: Intents por cluster.

Clusters Intents Utilizadas 1 LAUNCHER, MAIN

2 ACTION SHUTDOWN, BOOT COMPLETED, LAUNCHER, MAIN,

Referências

Documentos relacionados

Ainda que o representante do MPRJ não faça uso de insinuações dire- tas sobre a homofobia do pai, fica comprovado que todo o seu argumento é construído com base na repulsa de

Lance algumas bolinhas na direção da criança, ela deve tentar através da percepção de tempo e reação tentar recolher a bolinha com o copo. Alternar o movimento em ambos

A Organização passa a manter informações documentadas (documentos) e retém informação documentada (registos), desenvolvendo um sistema de gestão da qualidade

b) organizar e manter sob sua guarda a documentação relativa às atividades desenvolvidas pelo COMITÊ. Artigo 23 - A BB DTVM, enquanto ADMINISTRADORA do FUNDO, não

Desde o início do curso, cada aluno terá um orientador acadêmico, que terá a função de identificar as aptidões do aluno e orientá-lo na escolha dos blocos e

Outro ponto que é por vezes discutido é que o oleo bruto contem algum principio que não permanece no oleo purificado, donde se suppôr o primeiro muito mais activo.. Quando o

Empreende-se a análise das personagens jornalistas no romance e nas crônicas do autor, procurando compreender a caracterização proposta por Lima Barreto em seu

Aplicação Materiais Características Metal 304L Metal 316L Até 1.450 O C Pressão < 3.000 PSI Temperatura Agressividade Pressão Transparência Recuperação Aço Galvanizado SPRA