Pentest em Aplicações Móveis

2,200 views

Published on

Apresentação realizada no dia 15/05/2011 durante a Conferência O Outro Lado (Co0L), promovida pelo Garoa Hacker Clube.

Published in: Technology
  • Be the first to comment

Pentest em Aplicações Móveis

  1. 1. Pentest em Aplicações MóveisWagner Elias, CTOConviso Application Security
  2. 2. Disclaimer Apresentação focada nas aplicações desenvolvidas para as plataformas e não no OS ou arquitetura
  3. 3. Conhecer a plataforma paraexplorar
  4. 4. Android
  5. 5. Conhecendo as arquiteturas
  6. 6. Android SDKSDK Disponibilizado gratuitamente pelaAndroid para desenvolver aplicaçõesAndroid
  7. 7. APK FilesArquivo que contém os itens utilizados nacomposição de uma aplicação Android ‣ AndroidManifest.xml ‣ Classes compiladas em .dex ‣ Alguns arquivos XML codificados
  8. 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. 9. AndroidManifest.xmlArquivo XML que define identificadoresúnicos para aplicações e as permissõesdo que pode ser feito
  10. 10. Intent Processo de comunicação inter- processos/aplicações ‣ Os IntentFilters definem como a aplicação pode se comunicar com outras
  11. 11. iPhone
  12. 12. iOS SDKSDK Disponibilizado gratuitamente pelaApple para desenvolver aplicações paraiPhone/iOS
  13. 13. Objective-CLiguagem orientada a objetos comcaracterísticas de SmallTalk e C
  14. 14. COCOA APIFramework para desenvolvimento deaplicações iOS fornecido pela Apple
  15. 15. As Vulnerabilidades
  16. 16. Principais Vulnerabilidades Existem vulnerabilidades comuns a plataforma e outras específicas ao Android ou iPhone/iPad
  17. 17. Principais Vulnerabilidades ‣ Armazenamento Inadequado ‣ SD Card ‣ SQLite3 ‣ Cache ‣ Permissões ‣ Comunicação entre apps ‣ Acesso a arquivos
  18. 18. AndroidQuebra de confidencialidade eintegridade na comunicação entreaplicações e recursos ‣ Configuração inadequada de AndroidManifest.xml ‣ Informações críticas hard-coded
  19. 19. iPhone/iPadDesenvolvida com código não gerenciado, é suscetível afalhas comuns em linguagens como C ‣ Buffer Overflow ‣ Integer Overflow ‣ Format StringAlém das falhas características da linguagem, o iOS tem orecurso de armazenamento compartilhado de chaves, queconfigurado de forma inadequada pode levar aocomprometimento de chaves
  20. 20. Ferramentas Utilizadas noProcesso
  21. 21. ToolsUm tool set de ferramentas necessáriaspara conseguir analisar e explorar asegurança das aplicações
  22. 22. GeraisIDE (Sugestões) Eclipse para o Android Xcode para o iPhoneEmulador Ambas plataformas contam com emuladoresClient para Database As duas plataformas armazenam dados locais usando SQLite3
  23. 23. AndroidAs aplicações para Android sãodesenvolvidas em código java e passampor um processo específico decompilação ‣ Analisar os arquivos .pak gerados ‣ Converter dex para java ‣ Analisar o java
  24. 24. Manifest Explorer Aplicação Android que possibilita escolher uma aplicação e analisar as configurações do AndroidManifest.xml
  25. 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. 26. DedexerConverte arquivos compilados em dx(bytecode .dex) para DEX Assembler‣ http://dedexer.sourceforge.net/
  27. 27. dex2jarConverte arquivos compilados em dx(bytecode .dex) para bytecode java (.jar) ‣ http://code.google.com/p/dex2jar/
  28. 28. JD-GUIDecompila jar files e apresenta o códigofonte em java‣ http://java.decompiler.free.fr/?q=jdgui
  29. 29. axml2xml.plConverte arquivos XML codificados emtexto claro ‣ http://code.google.com/p/android- random/downloads/detail? name=axml2xml.pl
  30. 30. iPhoneAs aplicações para iPhone sãodesenvolvidas em linguagem Objective-Ce altamente dependentes da COCOA API‣ Decompilar aplicações‣ Analisar Source-Code
  31. 31. otool Decompila aplicações desenvolvidas em Objective-C ‣ Pacote disponível no Mac/Xcode
  32. 32. class-dump-xDecompila aplicações desenvolvidas emObjective-C‣ http://iphone.freecoder.org/ classdump_en.html
  33. 33. SharkAplicação para monitorar o desempenhoque permite analisar o comportamentoda aplicação‣ Pacote disponível no Mac/Xcode
  34. 34. Clang
  35. 35. MobileFight
  36. 36. Breve em um repositórioperto de vocêFerramenta Open Source desenvolvidaem python pelo Conviso Labs parasuportar o processo de análise deaplicações desenvolvidas para iPhone/iPad, Android e BlackBerry
  37. 37. ConclusãoAplicações móveis, assim como qualqueraplicação, tem vulnerabilidades e devemser analisadas
  38. 38. ReferênciasBooks Mobile Application Security [Paperback] Beginning iPhone 4 Development: Exploring the iOS SDK [Paperback] The Busy Coders Guide to Advanced Android Development [Paperback] The Android Developers Cookbook: Building Applications with the Android SDK (Developers 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)

×