vale security conference - 2011 - 1 - wagner elias
DESCRIPTION
Vale Security Conference - 2011Sábado - 1ª PalestraPalestrante : Wagner EliasPalestra : Você confia nas aplicações desenvolvidas para sistemas operacionais mobile?Twitter (Wagner Elias) : https://twitter.com/#!/weliasVídeo da Palestra (YouTube) : http://www.youtube.com/watch?v=e_CfvY1sazkSlide (SlideShare) : http://www.slideshare.net/valesecconf/mobile-vale-sec0304092011TRANSCRIPT
Wagner EliasVale Security Conference - 03 Set. 2011
Você confia nas aplicações mobile?
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
Linux Kernel
Hardware/Firmware e Processador depende do dispositivo que roda o OS Android
Android Runtime (Dalvik)
Monday, September 5, 2011
Anatomia de uma aplicação Android
Activity
Service
Content Provider
Broadcast Receivers
É responsável por tratar os eventos da tela como: clique do botão na tela, escrever um texto dinamicamente na tela
Similar a uma Activity mas pode ser extendida, possibilitando comunicação entre outros services
Implementa um método de acesso a dados armazenados nos repositórios disponíveis no aparelho
Criada para receber em segundo plano mensagens (intents) trocadas entre aplicações
Process and Tasks
Por padrão cada aplicação rodando gera um processo no kernel linux
Monday, September 5, 2011
JVM x Dalvik VM
Dex Compiler
Java Compiler
Java Source
Dalvik Executable
Dalvik VM
Java Byte Code
Dalvik Byte Code
Java Compiler
JVM
Java Source
Java Byte Code
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
Cocoa Touch
Objective C
Interface da aplicação que interage com a Cocoa touch
API que interage com os recursos do i(Phone|Pad|Pod)
Linguagem baseada em C com orientação a objetos baseada no SmallTalk
Monday, September 5, 2011
OWASP Top10 Mobile Risks
Monday, September 5, 2011
OWASP Top 10 Mobile Risks
1
2
3
4
Inseguro ou desnecessário armazenamento de dados em Client-Side
Falta de proteção de dados em trânsito
Vazamento de dados pessoais
Incapacidade de proteger os recursos com autenticação
5 Incapacidade de implementar o princípio do menor privilégio
Monday, September 5, 2011
OWASP Top 10 Mobile Risks
6
7
8
9
Injeção em Client-Side
Negação de Serviços em Client-Side
Código de terceiro mal intencionado
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
ProxyCharles/Burp/WebScarab
Mobile Application Web
Profile and Analysis
Tools
Monday, September 5, 2011
Android Static Analysis
1
2
3
4
Descompactar o pacote .apk usando ferramentas de descompressão de arquivos zip
Decodificar os arquivos XML usando o axml2xml.pl
Converter arquivos compilados em .dex para bytecode java usando o dex2jar
Decompilar código java usando JAD
5 Analisar o código fonte Java
Monday, September 5, 2011
iPhone Static Analysis
1
2
Decompilar binários compilados em ObjectiveC usando o otool ou class-dump-x
Realizar análise estática manual ou automatizada usando 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
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