36
Wagner Elias Vale Security Conference - 03 Set. 2011 Você confia nas aplicações mobile? Monday, September 5, 2011

Vale Security Conference - 2011 - 1 - Wagner Elias

Embed Size (px)

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-sec0304092011

Citation preview

Page 1: Vale Security Conference - 2011 - 1 - Wagner Elias

Wagner EliasVale Security Conference - 03 Set. 2011

Você confia nas aplicações mobile?

Monday, September 5, 2011

Page 2: Vale Security Conference - 2011 - 1 - Wagner Elias

Monday, September 5, 2011

Page 3: Vale Security Conference - 2011 - 1 - Wagner Elias

Bypass de Autorização

Monday, September 5, 2011

Page 4: Vale Security Conference - 2011 - 1 - Wagner Elias

Bypass de Autorização

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

Monday, September 5, 2011

Page 5: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 6: Vale Security Conference - 2011 - 1 - Wagner Elias

Um pouco sobre estas aplicações

Monday, September 5, 2011

Page 7: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 8: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 9: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 10: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 11: Vale Security Conference - 2011 - 1 - Wagner Elias

AndroidManifest.xml codificado

Monday, September 5, 2011

Page 12: Vale Security Conference - 2011 - 1 - Wagner Elias

AndroidManifest.xml decodificado

Monday, September 5, 2011

Page 13: Vale Security Conference - 2011 - 1 - Wagner Elias

Arquitetura iPhone

Application

Framework (Cocoa)

ObjetiveC Runtime

iOS

Processador (ARM)

Firmware

Hardware

Monday, September 5, 2011

Page 14: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 15: Vale Security Conference - 2011 - 1 - Wagner Elias

OWASP Top10 Mobile Risks

Monday, September 5, 2011

Page 16: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 17: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 18: Vale Security Conference - 2011 - 1 - Wagner Elias

Tipos de Análise

Monday, September 5, 2011

Page 19: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 20: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 21: Vale Security Conference - 2011 - 1 - Wagner Elias

Como realizar uma análise dinâmica

ProxyCharles/Burp/WebScarab

Mobile Application Web

Profile and Analysis

Tools

Monday, September 5, 2011

Page 22: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 23: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 24: Vale Security Conference - 2011 - 1 - Wagner Elias

Ferramentas Utilizadas para análise

Monday, September 5, 2011

Page 25: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 26: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 27: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 28: Vale Security Conference - 2011 - 1 - Wagner Elias

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

Page 29: Vale Security Conference - 2011 - 1 - Wagner Elias

SQLite Manager

Monday, September 5, 2011

Page 30: Vale Security Conference - 2011 - 1 - Wagner Elias

Instruments

Demo

Monday, September 5, 2011

Page 31: Vale Security Conference - 2011 - 1 - Wagner Elias

Shark

Demo

Monday, September 5, 2011

Page 32: Vale Security Conference - 2011 - 1 - Wagner Elias

Recursos do Xcode

Demo

Monday, September 5, 2011

Page 33: Vale Security Conference - 2011 - 1 - Wagner Elias

Clang

http://clang-analyzer.llvm.org/Monday, September 5, 2011

Page 34: Vale Security Conference - 2011 - 1 - Wagner Elias

Você ainda confia?

Monday, September 5, 2011

Page 35: Vale Security Conference - 2011 - 1 - Wagner Elias

32

Wagner Elias, [email protected]@welias

www.conviso.com.br

Monday, September 5, 2011

Page 36: Vale Security Conference - 2011 - 1 - Wagner Elias

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