O documento discute as preocupações com a segurança de aplicativos móveis. Apresenta os principais riscos de segurança como vazamento de dados, bypass de autenticação e interceptação de senhas. Também mostra a arquitetura de aplicativos para Android e iPhone e ferramentas para análise estática e dinâmica de aplicativos móveis.
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
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
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
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
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