SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Você confia nas aplicações
     mobile?
     Wagner Elias
     Vale Security Conference - 03 Set. 2011


Monday, September 5, 2011
Monday, September 5, 2011
Bypass de Autorização




Monday, September 5, 2011
Bypass de Autorização




             Vazamento de Informações
              sensíveis sobre o usuário




Monday, September 5, 2011
Bypass de Autorização




             Vazamento de Informações
              sensíveis sobre o usuário



                                          Possibilitava a interceptação da
                                                 senha do usuário




Monday, September 5, 2011
Um pouco sobre estas
         aplicações




Monday, September 5, 2011
Arquitetura Android
                                             Application

                                         Android Framework

                             Android Libraries      Android Runtime (Dalvik)

                                             Linux Kernel



                            Hardware/Firmware e Processador depende do
                                 dispositivo que roda o OS Android




Monday, September 5, 2011
Anatomia de uma aplicação
         Android
                              É responsável por tratar os eventos da tela como: clique do
                   Activity
                              botão na tela, escrever um texto dinamicamente na tela


                              Similar a uma Activity mas pode ser extendida,
                    Service
                              possibilitando comunicação entre outros services


                   Content    Implementa um método de acesso a dados armazenados
                   Provider   nos repositórios disponíveis no aparelho


                  Broadcast   Criada para receber em segundo plano mensagens
                  Receivers   (intents) trocadas entre aplicações


                Process and   Por padrão cada aplicação rodando gera um processo no
                   Tasks      kernel linux


Monday, September 5, 2011
JVM x Dalvik VM
                            Java Source     Java Source

                               Java             Java
                              Compiler         Compiler

                             Java Byte       Java Byte
                               Code            Code
                                                 Dex
                                               Compiler

                                             Dalvik Byte
                                               Code



                                          Dalvik Executable
                              JVM            Dalvik VM



Monday, September 5, 2011
APK Files
              Arquivo que contem os itens que
              compoem uma aplicação Android
               ‣ AndroidManifest.xml
               ‣ Classes compiladas em .dex
               ‣ Outros arquivos XML relacionados as
                    telas


Monday, September 5, 2011
AndroidManifest.xml
         codificado




Monday, September 5, 2011
AndroidManifest.xml
         decodificado




Monday, September 5, 2011
Arquitetura iPhone
                               Application

                            Framework (Cocoa)

                            ObjetiveC Runtime

                                  iOS

                            Processador (ARM)

                                Firmware

                                Hardware




Monday, September 5, 2011
Anatomia de uma aplicação
         iPhone
                    User
                              Interface da aplicação que interage com a Cocoa touch
                  Interface


               Cocoa Touch    API que interage com os recursos do i(Phone|Pad|Pod)


                              Linguagem baseada em C com orientação a objetos
                Objective C
                              baseada no SmallTalk




Monday, September 5, 2011
OWASP Top10 Mobile
         Risks




Monday, September 5, 2011
OWASP Top 10 Mobile Risks
                        1   Inseguro ou desnecessário armazenamento de dados em
                            Client-Side


                        2   Falta de proteção de dados em trânsito



                        3   Vazamento de dados pessoais



                        4   Incapacidade de proteger os recursos com autenticação


                            Incapacidade de implementar o princípio do menor
                        5   privilégio


Monday, September 5, 2011
OWASP Top 10 Mobile Risks
                        6   Injeção em Client-Side



                        7   Negação de Serviços em Client-Side



                        8   Código de terceiro mal intencionado



                        9   Buffer Overflow



                      10    Falha ao implementar controles em Server-Side


Monday, September 5, 2011
Tipos de Análise




Monday, September 5, 2011
Análise Dinâmica
              Com a aplicação rodando é análisado o seu
              comportamento:

               ‣ Debugging
               ‣ Network Traffic
               ‣ Acesso e Comunicação (HTTP/SOAP/Etc...)
               ‣ Acesso a File System
               ‣ Armazenamento e Leitura de Dados

Monday, September 5, 2011
Análise Estática

              Análise onde é feita uma engenharia reversa da aplicação
              e realizado as seguintes análises

               ‣ Source Code Review
               ‣ Análise de Strings Hardcoded
               ‣ Análise de Armazenamento de Dados
               ‣ Análise de Cache


Monday, September 5, 2011
Como realizar uma análise
         dinâmica

               Mobile             Proxy              Web
             Application    Charles/Burp/WebScarab



              Profile and
               Analysis
                Tools




Monday, September 5, 2011
Android Static Analysis
                        1   Descompactar o pacote .apk usando ferramentas de
                            descompressão de arquivos zip


                        2   Decodificar os arquivos XML usando o axml2xml.pl


                            Converter arquivos compilados em .dex para bytecode
                        3   java usando o dex2jar


                        4   Decompilar código java usando JAD



                        5   Analisar o código fonte Java


Monday, September 5, 2011
iPhone Static Analysis
                        1   Decompilar binários compilados em ObjectiveC usando o
                            otool ou class-dump-x


                            Realizar análise estática manual ou automatizada usando
                        2   Clang




Monday, September 5, 2011
Ferramentas Utilizadas
         para análise




Monday, September 5, 2011
Gerais
         ‣ IDE (Sugestões)
           ‣ Eclipse para o Android
           ‣ Xcode para o iPhone
         ‣ Emulador
           ‣ Ambas as plataformas possuem emuladores
         ‣ Client para Database
           ‣ As duas plataformas armazenam dados locais usando
                    SQLite3



Monday, September 5, 2011
Manifest Explorer e
         Package Play

              Manifest Explorer : Aplicação Android para analisar o
              arquivo AndroidManifest.xml
               ‣ http://www.isecpartners.com/mobile-security-tools/manifest-explorer.html
              Package Play: Identifica todos os pacotes instalados no
              dispositivo
               ‣ http://www.isecpartners.com/mobile-security-tools/package-play.html




Monday, September 5, 2011
Intent Sniffer e Intent
         Fuzzer

              Intent Sniffer: Monitora toda a comunicação gerada via
              Intent que a aplicação realiza
               ‣ http://www.isecpartners.com/mobile-security-tools/intent-sniffer.html
              Intent Fuzzer: Fuzzing de Intent entre as aplicações
               ‣ http://www.isecpartners.com/mobile-security-tools/intent-fuzzer.html




Monday, September 5, 2011
APKinspector
              Uma ferramenta gráfica que faz toda a engenharia
              reversa de um APK e apresenta as seguintes informações:

               ‣ Flow Graph
               ‣ Dalvik Codes
               ‣ Java Bytecode
               ‣ Java Code
               ‣ AndroidManifest.xml

                                             http://code.google.com/p/apkinspector/
Monday, September 5, 2011
SQLite Manager




Monday, September 5, 2011
Instruments




                            Demo
Monday, September 5, 2011
Shark




                            Demo
Monday, September 5, 2011
Recursos do Xcode




                             Demo
Monday, September 5, 2011
Clang




                            http://clang-analyzer.llvm.org/
Monday, September 5, 2011
Você ainda confia?




Monday, September 5, 2011
Wagner Elias, CTO
                   welias@conviso.com.br
                   @welias

                   www.conviso.com.br




                                           32



Monday, September 5, 2011
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)




Monday, September 5, 2011

Mais conteúdo relacionado

Semelhante a Confie nas Aplicações Mobile

Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioDesenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioLeandro Rezende
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao androidPaulo Remoli
 
iOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosiOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosMaurício Linhares
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
Apostila Java
Apostila JavaApostila Java
Apostila Javadeilton
 
Persistência com Realm para Android e iOS
Persistência com Realm para Android e iOSPersistência com Realm para Android e iOS
Persistência com Realm para Android e iOStdc-globalcode
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo OliveiraRonildo Oliveira
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis HíbridasThomas Kanzig
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose Berardo
 
Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Gustavo Ciello
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento androidDiego Keller
 

Semelhante a Confie nas Aplicações Mobile (20)

Pentest em Aplicações Móveis
Pentest em Aplicações MóveisPentest em Aplicações Móveis
Pentest em Aplicações Móveis
 
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem FioDesenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
Desenvolvimento de Sistemas para Dispositivos Móveis e Sem Fio
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao android
 
Android
AndroidAndroid
Android
 
iOS, APIs e sincronização de dados
iOS, APIs e sincronização de dadosiOS, APIs e sincronização de dados
iOS, APIs e sincronização de dados
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Java
JavaJava
Java
 
Básico de desenvolvimento com Android
Básico de desenvolvimento com AndroidBásico de desenvolvimento com Android
Básico de desenvolvimento com Android
 
Persistência com Realm para Android e iOS
Persistência com Realm para Android e iOSPersistência com Realm para Android e iOS
Persistência com Realm para Android e iOS
 
Realm
RealmRealm
Realm
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
Titanium
TitaniumTitanium
Titanium
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Aplicações Móveis Híbridas
Aplicações Móveis HíbridasAplicações Móveis Híbridas
Aplicações Móveis Híbridas
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento android
 

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?
 
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
 
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
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Segurança em Desenvolvimento de Software
Segurança em Desenvolvimento de SoftwareSegurança em Desenvolvimento de Software
Segurança em Desenvolvimento de Software
 

Confie nas Aplicações Mobile

  • 1. Você confia nas aplicações mobile? Wagner Elias Vale Security Conference - 03 Set. 2011 Monday, September 5, 2011
  • 4. Bypass de Autorização Vazamento de Informações sensíveis sobre o usuário Monday, September 5, 2011
  • 5. Bypass de Autorização Vazamento de Informações sensíveis sobre o usuário Possibilitava a interceptação da senha do usuário Monday, September 5, 2011
  • 6. Um pouco sobre estas aplicações Monday, September 5, 2011
  • 7. Arquitetura Android Application Android Framework Android Libraries Android Runtime (Dalvik) Linux Kernel Hardware/Firmware e Processador depende do dispositivo que roda o OS Android Monday, September 5, 2011
  • 8. Anatomia de uma aplicação Android É responsável por tratar os eventos da tela como: clique do Activity botão na tela, escrever um texto dinamicamente na tela Similar a uma Activity mas pode ser extendida, Service possibilitando comunicação entre outros services Content Implementa um método de acesso a dados armazenados Provider nos repositórios disponíveis no aparelho Broadcast Criada para receber em segundo plano mensagens Receivers (intents) trocadas entre aplicações Process and Por padrão cada aplicação rodando gera um processo no Tasks kernel linux Monday, September 5, 2011
  • 9. JVM x Dalvik VM Java Source Java Source Java Java Compiler Compiler Java Byte Java Byte Code Code Dex Compiler Dalvik Byte Code Dalvik Executable JVM Dalvik VM Monday, September 5, 2011
  • 10. APK Files Arquivo que contem os itens que compoem uma aplicação Android ‣ AndroidManifest.xml ‣ Classes compiladas em .dex ‣ Outros arquivos XML relacionados as telas Monday, September 5, 2011
  • 11. AndroidManifest.xml codificado Monday, September 5, 2011
  • 12. AndroidManifest.xml decodificado Monday, September 5, 2011
  • 13. Arquitetura iPhone Application Framework (Cocoa) ObjetiveC Runtime iOS Processador (ARM) Firmware Hardware Monday, September 5, 2011
  • 14. Anatomia de uma aplicação iPhone User Interface da aplicação que interage com a Cocoa touch Interface Cocoa Touch API que interage com os recursos do i(Phone|Pad|Pod) Linguagem baseada em C com orientação a objetos Objective C baseada no SmallTalk Monday, September 5, 2011
  • 15. OWASP Top10 Mobile Risks Monday, September 5, 2011
  • 16. OWASP Top 10 Mobile Risks 1 Inseguro ou desnecessário armazenamento de dados em Client-Side 2 Falta de proteção de dados em trânsito 3 Vazamento de dados pessoais 4 Incapacidade de proteger os recursos com autenticação Incapacidade de implementar o princípio do menor 5 privilégio Monday, September 5, 2011
  • 17. OWASP Top 10 Mobile Risks 6 Injeção em Client-Side 7 Negação de Serviços em Client-Side 8 Código de terceiro mal intencionado 9 Buffer Overflow 10 Falha ao implementar controles em Server-Side Monday, September 5, 2011
  • 18. Tipos de Análise Monday, September 5, 2011
  • 19. Análise Dinâmica Com a aplicação rodando é análisado o seu comportamento: ‣ Debugging ‣ Network Traffic ‣ Acesso e Comunicação (HTTP/SOAP/Etc...) ‣ Acesso a File System ‣ Armazenamento e Leitura de Dados Monday, September 5, 2011
  • 20. Análise Estática Análise onde é feita uma engenharia reversa da aplicação e realizado as seguintes análises ‣ Source Code Review ‣ Análise de Strings Hardcoded ‣ Análise de Armazenamento de Dados ‣ Análise de Cache Monday, September 5, 2011
  • 21. Como realizar uma análise dinâmica Mobile Proxy Web Application Charles/Burp/WebScarab Profile and Analysis Tools Monday, September 5, 2011
  • 22. Android Static Analysis 1 Descompactar o pacote .apk usando ferramentas de descompressão de arquivos zip 2 Decodificar os arquivos XML usando o axml2xml.pl Converter arquivos compilados em .dex para bytecode 3 java usando o dex2jar 4 Decompilar código java usando JAD 5 Analisar o código fonte Java Monday, September 5, 2011
  • 23. iPhone Static Analysis 1 Decompilar binários compilados em ObjectiveC usando o otool ou class-dump-x Realizar análise estática manual ou automatizada usando 2 Clang Monday, September 5, 2011
  • 24. Ferramentas Utilizadas para análise Monday, September 5, 2011
  • 25. Gerais ‣ IDE (Sugestões) ‣ Eclipse para o Android ‣ Xcode para o iPhone ‣ Emulador ‣ Ambas as plataformas possuem emuladores ‣ Client para Database ‣ As duas plataformas armazenam dados locais usando SQLite3 Monday, September 5, 2011
  • 26. Manifest Explorer e Package Play Manifest Explorer : Aplicação Android para analisar o arquivo AndroidManifest.xml ‣ http://www.isecpartners.com/mobile-security-tools/manifest-explorer.html Package Play: Identifica todos os pacotes instalados no dispositivo ‣ http://www.isecpartners.com/mobile-security-tools/package-play.html Monday, September 5, 2011
  • 27. Intent Sniffer e Intent Fuzzer Intent Sniffer: Monitora toda a comunicação gerada via Intent que a aplicação realiza ‣ http://www.isecpartners.com/mobile-security-tools/intent-sniffer.html Intent Fuzzer: Fuzzing de Intent entre as aplicações ‣ http://www.isecpartners.com/mobile-security-tools/intent-fuzzer.html Monday, September 5, 2011
  • 28. APKinspector Uma ferramenta gráfica que faz toda a engenharia reversa de um APK e apresenta as seguintes informações: ‣ Flow Graph ‣ Dalvik Codes ‣ Java Bytecode ‣ Java Code ‣ AndroidManifest.xml http://code.google.com/p/apkinspector/ Monday, September 5, 2011
  • 30. Instruments Demo Monday, September 5, 2011
  • 31. Shark Demo Monday, September 5, 2011
  • 32. Recursos do Xcode Demo Monday, September 5, 2011
  • 33. Clang http://clang-analyzer.llvm.org/ Monday, September 5, 2011
  • 34. Você ainda confia? Monday, September 5, 2011
  • 35. Wagner Elias, CTO welias@conviso.com.br @welias www.conviso.com.br 32 Monday, September 5, 2011
  • 36. 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) Monday, September 5, 2011