SlideShare uma empresa Scribd logo
1 de 38
Pentest em Aplicações Móveis
Wagner Elias, CTO
Conviso Application Security
Disclaimer


 Apresentação focada nas aplicações
 desenvolvidas para as plataformas e não
 no OS ou arquitetura
Conhecer a plataforma para
explorar
Android
Conhecendo as arquiteturas
Android SDK


SDK Disponibilizado gratuitamente pela
Android para desenvolver aplicações
Android
APK Files

Arquivo que contém os itens utilizados na
composição de uma aplicação Android
 ‣ AndroidManifest.xml
 ‣ Classes compiladas em .dex
 ‣ Alguns arquivos XML codificados
JVM x Dalvik VM
       Java            Java
      Source          Source

       Java             Java
      Compiler         Compiler

     Java Byte       Java Byte
       Code            Code
                         Dex
                       Compiler

                     Dalvik Byte
                       Code



                  Dalvik Executable
      JVM
                     Dalvik VM
AndroidManifest.xml

Arquivo XML que define identificadores
únicos para aplicações e as permissões
do que pode ser feito
Intent

 Processo de comunicação inter-
 processos/aplicações
 ‣ Os IntentFilters definem como a
  aplicação pode se comunicar com
  outras
iPhone
iOS SDK


SDK Disponibilizado gratuitamente pela
Apple para desenvolver aplicações para
iPhone/iOS
Objective-C



Liguagem orientada a objetos com
características de SmallTalk e C
COCOA API



Framework para desenvolvimento de
aplicações iOS fornecido pela Apple
As Vulnerabilidades
Principais Vulnerabilidades


 Existem vulnerabilidades comuns a
 plataforma e outras específicas ao
 Android ou iPhone/iPad
Principais Vulnerabilidades
 ‣ Armazenamento Inadequado
   ‣ SD Card
   ‣ SQLite3
   ‣ Cache
 ‣ Permissões
   ‣ Comunicação entre apps
   ‣ Acesso a arquivos
Android

Quebra de confidencialidade e
integridade na comunicação entre
aplicações e recursos
 ‣ Configuração inadequada de
  AndroidManifest.xml
 ‣ Informações críticas hard-coded
iPhone/iPad
Desenvolvida com código não gerenciado, é suscetível a
falhas comuns em linguagens como C

 ‣ Buffer Overflow
 ‣ Integer Overflow
 ‣ Format String
Além das falhas características da linguagem, o iOS tem o
recurso de armazenamento compartilhado de chaves, que
configurado de forma inadequada pode levar ao
comprometimento de chaves
Ferramentas Utilizadas no
Processo
Tools


Um tool set de ferramentas necessárias
para conseguir analisar e explorar a
segurança das aplicações
Gerais
IDE (Sugestões)
  Eclipse para o Android
  Xcode para o iPhone
Emulador
  Ambas plataformas contam com emuladores
Client para Database
  As duas plataformas armazenam dados locais usando
  SQLite3
Android

As aplicações para Android são
desenvolvidas em código java e passam
por um processo específico de
compilação
 ‣ Analisar os arquivos .pak gerados
 ‣ Converter dex para java
 ‣ Analisar o java
Manifest Explorer


 Aplicação Android que possibilita
 escolher uma aplicação e analisar as
 configurações do AndroidManifest.xml
Intent Sniffer


 Monitora a comunicação gerada através
 do Intent que a aplicação realizada
 ‣ http://www.isecpartners.com/mobile-
  security-tools/intent-fuzzer.html
Dedexer


Converte arquivos compilados em dx
(bytecode .dex) para DEX Assembler
‣ http://dedexer.sourceforge.net/
dex2jar


Converte arquivos compilados em dx
(bytecode .dex) para bytecode java (.jar)
 ‣ http://code.google.com/p/dex2jar/
JD-GUI


Decompila jar files e apresenta o código
fonte em java
‣ http://java.decompiler.free.fr/?q=jdgui
axml2xml.pl

Converte arquivos XML codificados em
texto claro
 ‣ http://code.google.com/p/android-
  random/downloads/detail?
  name=axml2xml.pl
iPhone

As aplicações para iPhone são
desenvolvidas em linguagem Objective-C
e altamente dependentes da COCOA API
‣ Decompilar aplicações
‣ Analisar Source-Code
otool


 Decompila aplicações desenvolvidas em
 Objective-C
 ‣ Pacote disponível no Mac/Xcode
class-dump-x


Decompila aplicações desenvolvidas em
Objective-C
‣ http://iphone.freecoder.org/
 classdump_en.html
Shark

Aplicação para monitorar o desempenho
que permite analisar o comportamento
da aplicação
‣ Pacote disponível no Mac/Xcode
Clang
MobileFight
Breve em um repositório
perto de você

Ferramenta Open Source desenvolvida
em python pelo Conviso Labs para
suportar o processo de análise de
aplicações desenvolvidas para iPhone/
iPad, Android e BlackBerry
Conclusão


Aplicações móveis, assim como qualquer
aplicação, tem vulnerabilidades e devem
ser analisadas
Referências
Books

   Mobile Application Security [Paperback]

   Beginning iPhone 4 Development: Exploring the iOS SDK [Paperback]

   The Busy Coder's Guide to Advanced Android Development [Paperback]

   The Android Developer's Cookbook: Building Applications with the Android SDK (Developer's Library)
   [Paperback]

Papers

   Desenvolvimento iOS (http://blog.mobilizando.com.br/wp-content/uploads/2011/05/
   Desenvolvimento_iOS.pdf)

   Android Attacks (https://www.immunityinc.com/infiltrate/presentations/Android_Attacks.odt.pdf)

   Penetration test android applications (http://www.mcafee.com/us/resources/white-papers/foundstone/
   wp-pen-testing-android-apps.pdf)

   Penetration test android applications (http://www.mcafee.com/us/resources/white-papers/foundstone/
   wp-pen-testing-iphone-ipad-apps.pdf)

Mais conteúdo relacionado

Destaque

Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Carlos Melo
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Thiago Dieb
 
Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Raphael Adrien
 
Examinando redes com Nmap
Examinando redes com NmapExaminando redes com Nmap
Examinando redes com NmapDaniel Marques
 
Técnicas hacker soluções para segurança 1
Técnicas hacker soluções para segurança 1Técnicas hacker soluções para segurança 1
Técnicas hacker soluções para segurança 1ponto hacker
 
1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo1008 ProgramaçãO C Completo
1008 ProgramaçãO C CompletoFxx
 
Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015C H
 
Livro Aberto Aprendendo a Programar na Linguagem C
Livro Aberto Aprendendo a Programar na Linguagem CLivro Aberto Aprendendo a Programar na Linguagem C
Livro Aberto Aprendendo a Programar na Linguagem CMarcos Quinho
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Livro Linguagem C - Completo
Livro Linguagem C - CompletoLivro Linguagem C - Completo
Livro Linguagem C - CompletoMarcos Quinho
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoHeber Gutenberg
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Alax Ricard
 
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.comIntrodução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.comRaul Batalha
 

Destaque (20)

Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1Concepcao de banco_de_dados-aula_1
Concepcao de banco_de_dados-aula_1
 
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
Fisl 16 – WordPress vs Hacker – descubra o que ainda é preciso saber para bl...
 
Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2Construindo uma arquitetura com REST, HTML 5 e JSF 2
Construindo uma arquitetura com REST, HTML 5 e JSF 2
 
Examinando redes com Nmap
Examinando redes com NmapExaminando redes com Nmap
Examinando redes com Nmap
 
Pentest web
Pentest webPentest web
Pentest web
 
Flisol 2016
Flisol 2016Flisol 2016
Flisol 2016
 
teste de invasão
teste de invasãoteste de invasão
teste de invasão
 
IBM Mobile First Security
IBM Mobile First SecurityIBM Mobile First Security
IBM Mobile First Security
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Técnicas hacker soluções para segurança 1
Técnicas hacker soluções para segurança 1Técnicas hacker soluções para segurança 1
Técnicas hacker soluções para segurança 1
 
1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo
 
Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015
 
Livro Aberto Aprendendo a Programar na Linguagem C
Livro Aberto Aprendendo a Programar na Linguagem CLivro Aberto Aprendendo a Programar na Linguagem C
Livro Aberto Aprendendo a Programar na Linguagem C
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Livro Linguagem C - Completo
Livro Linguagem C - CompletoLivro Linguagem C - Completo
Livro Linguagem C - Completo
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
 
Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1Livro curso de_hacker_para_iniciantes_cap_1
Livro curso de_hacker_para_iniciantes_cap_1
 
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.comIntrodução a estrutura de dados   josé lucas rangel - raulzinho.cb@hotmail.com
Introdução a estrutura de dados josé lucas rangel - raulzinho.cb@hotmail.com
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 

Semelhante a Pentest Aplicativos Móveis

Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao androidPaulo Remoli
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento androidDiego Keller
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, ActivityArthur Emanuel
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryValdir Junior
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.Everton Dewes
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 
Android-Juliana-slides.ppt
Android-Juliana-slides.pptAndroid-Juliana-slides.ppt
Android-Juliana-slides.pptMarcelo Silva
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidCarlos Eugenio Torres
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdf
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdfSíntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdf
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdfJoana Sousa
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform BridgesCaio Chaves Garcez
 

Semelhante a Pentest Aplicativos Móveis (20)

Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento android
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, Activity
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 
Android-Juliana-slides.ppt
Android-Juliana-slides.pptAndroid-Juliana-slides.ppt
Android-Juliana-slides.ppt
 
Android
AndroidAndroid
Android
 
Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?Você confia nas suas aplicações mobile?
Você confia nas suas aplicações mobile?
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e AndroidPalestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
Palestra Desenvolvimento de Apps Móveis: Iniciando no iOS e Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Básico de desenvolvimento com Android
Básico de desenvolvimento com AndroidBásico de desenvolvimento com Android
Básico de desenvolvimento com Android
 
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdf
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdfSíntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdf
Síntese do Capítulo 1_ Aplicações Móveis - História e Plataformas.pdf
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform Bridges
 

Mais de Conviso Application Security

Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareConviso Application Security
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Conviso Application Security
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web HackingConviso Application Security
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOConviso Application Security
 
Automatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebAutomatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebConviso Application Security
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...Conviso Application Security
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408Conviso Application Security
 
Encontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashEncontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashConviso Application Security
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Conviso Application Security
 

Mais de Conviso Application Security (20)

Entendendo o PCI-DSS
Entendendo o PCI-DSSEntendendo o PCI-DSS
Entendendo o PCI-DSS
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de software
 
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações? Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
Uma verdade inconveniente - Quem é responsável pela INsegurança das aplicações?
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
 
Building Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
 
Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?Você Escreve Código e Quem Valida?
Você Escreve Código e Quem Valida?
 
Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!Testar não é suficiente. Tem que fazer direito!
Testar não é suficiente. Tem que fazer direito!
 
Implementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISOImplementando Segurança em desenvolvimento com a verdadeira ISO
Implementando Segurança em desenvolvimento com a verdadeira ISO
 
Automatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações WebAutomatizando a análise passiva de aplicações Web
Automatizando a análise passiva de aplicações Web
 
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...MASP: Um processo racional para garantir o nível de proteção das aplicações w...
MASP: Um processo racional para garantir o nível de proteção das aplicações w...
 
HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?HTML5 Seguro ou Inseguro?
HTML5 Seguro ou Inseguro?
 
Threats from economical improvement rss 2010
Threats from economical improvement rss 2010Threats from economical improvement rss 2010
Threats from economical improvement rss 2010
 
O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408O processo de segurança em desenvolvimento, que não é ISO 15.408
O processo de segurança em desenvolvimento, que não é ISO 15.408
 
Encontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flashEncontrando falhas em aplicações web baseadas em flash
Encontrando falhas em aplicações web baseadas em flash
 
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009Protegendo Aplicações Php com PHPIDS - Php Conference 2009
Protegendo Aplicações Php com PHPIDS - Php Conference 2009
 
Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009Playing Web Fuzzing - H2HC 2009
Playing Web Fuzzing - H2HC 2009
 
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
 
Abotoaduras & Bonés
Abotoaduras & BonésAbotoaduras & Bonés
Abotoaduras & Bonés
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Extreme Web Hacking - h2hc 2008
Extreme Web Hacking - h2hc 2008Extreme Web Hacking - h2hc 2008
Extreme Web Hacking - h2hc 2008
 

Pentest Aplicativos Móveis

  • 1. Pentest em Aplicações Móveis Wagner Elias, CTO Conviso Application Security
  • 2. Disclaimer Apresentação focada nas aplicações desenvolvidas para as plataformas e não no OS ou arquitetura
  • 3. Conhecer a plataforma para explorar
  • 6. Android SDK SDK Disponibilizado gratuitamente pela Android para desenvolver aplicações Android
  • 7. APK Files Arquivo que contém os itens utilizados na composição de uma aplicação Android ‣ AndroidManifest.xml ‣ Classes compiladas em .dex ‣ Alguns arquivos XML codificados
  • 8. JVM x Dalvik VM Java Java Source Source Java Java Compiler Compiler Java Byte Java Byte Code Code Dex Compiler Dalvik Byte Code Dalvik Executable JVM Dalvik VM
  • 9. AndroidManifest.xml Arquivo XML que define identificadores únicos para aplicações e as permissões do que pode ser feito
  • 10. Intent Processo de comunicação inter- processos/aplicações ‣ Os IntentFilters definem como a aplicação pode se comunicar com outras
  • 12. iOS SDK SDK Disponibilizado gratuitamente pela Apple para desenvolver aplicações para iPhone/iOS
  • 13. Objective-C Liguagem orientada a objetos com características de SmallTalk e C
  • 14. COCOA API Framework para desenvolvimento de aplicações iOS fornecido pela Apple
  • 16. Principais Vulnerabilidades Existem vulnerabilidades comuns a plataforma e outras específicas ao Android ou iPhone/iPad
  • 17. Principais Vulnerabilidades ‣ Armazenamento Inadequado ‣ SD Card ‣ SQLite3 ‣ Cache ‣ Permissões ‣ Comunicação entre apps ‣ Acesso a arquivos
  • 18. Android Quebra de confidencialidade e integridade na comunicação entre aplicações e recursos ‣ Configuração inadequada de AndroidManifest.xml ‣ Informações críticas hard-coded
  • 19. iPhone/iPad Desenvolvida com código não gerenciado, é suscetível a falhas comuns em linguagens como C ‣ Buffer Overflow ‣ Integer Overflow ‣ Format String Além das falhas características da linguagem, o iOS tem o recurso de armazenamento compartilhado de chaves, que configurado de forma inadequada pode levar ao comprometimento de chaves
  • 21. Tools Um tool set de ferramentas necessárias para conseguir analisar e explorar a segurança das aplicações
  • 22. Gerais IDE (Sugestões) Eclipse para o Android Xcode para o iPhone Emulador Ambas plataformas contam com emuladores Client para Database As duas plataformas armazenam dados locais usando SQLite3
  • 23. Android As aplicações para Android são desenvolvidas em código java e passam por um processo específico de compilação ‣ Analisar os arquivos .pak gerados ‣ Converter dex para java ‣ Analisar o java
  • 24. Manifest Explorer Aplicação Android que possibilita escolher uma aplicação e analisar as configurações do AndroidManifest.xml
  • 25. Intent Sniffer Monitora a comunicação gerada através do Intent que a aplicação realizada ‣ http://www.isecpartners.com/mobile- security-tools/intent-fuzzer.html
  • 26. Dedexer Converte arquivos compilados em dx (bytecode .dex) para DEX Assembler ‣ http://dedexer.sourceforge.net/
  • 27. dex2jar Converte arquivos compilados em dx (bytecode .dex) para bytecode java (.jar) ‣ http://code.google.com/p/dex2jar/
  • 28. JD-GUI Decompila jar files e apresenta o código fonte em java ‣ http://java.decompiler.free.fr/?q=jdgui
  • 29. axml2xml.pl Converte arquivos XML codificados em texto claro ‣ http://code.google.com/p/android- random/downloads/detail? name=axml2xml.pl
  • 30. iPhone As aplicações para iPhone são desenvolvidas em linguagem Objective-C e altamente dependentes da COCOA API ‣ Decompilar aplicações ‣ Analisar Source-Code
  • 31. otool Decompila aplicações desenvolvidas em Objective-C ‣ Pacote disponível no Mac/Xcode
  • 32. class-dump-x Decompila aplicações desenvolvidas em Objective-C ‣ http://iphone.freecoder.org/ classdump_en.html
  • 33. Shark Aplicação para monitorar o desempenho que permite analisar o comportamento da aplicação ‣ Pacote disponível no Mac/Xcode
  • 34. Clang
  • 36. Breve em um repositório perto de você Ferramenta Open Source desenvolvida em python pelo Conviso Labs para suportar o processo de análise de aplicações desenvolvidas para iPhone/ iPad, Android e BlackBerry
  • 37. Conclusão Aplicações móveis, assim como qualquer aplicação, tem vulnerabilidades e devem ser analisadas
  • 38. Referências Books Mobile Application Security [Paperback] Beginning iPhone 4 Development: Exploring the iOS SDK [Paperback] The Busy Coder's Guide to Advanced Android Development [Paperback] The Android Developer's Cookbook: Building Applications with the Android SDK (Developer's Library) [Paperback] Papers Desenvolvimento iOS (http://blog.mobilizando.com.br/wp-content/uploads/2011/05/ Desenvolvimento_iOS.pdf) Android Attacks (https://www.immunityinc.com/infiltrate/presentations/Android_Attacks.odt.pdf) Penetration test android applications (http://www.mcafee.com/us/resources/white-papers/foundstone/ wp-pen-testing-android-apps.pdf) Penetration test android applications (http://www.mcafee.com/us/resources/white-papers/foundstone/ wp-pen-testing-iphone-ipad-apps.pdf)

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n