SlideShare a Scribd company logo
1 of 55
Seguridad
en Android
Diciembre 2014
https://speakerdeck.com/jmortega/
@jmortegac
DALVIK / ART/ APK / PERMISOS
MALWARE
TOOLS
SEGURIDAD EN COMPONENTES
ANÁLISIS ESTÁTICO ECLIPSE /ANDROID STUDIO
ENCRIPTACIÓN / OFUSCACIÓN
INGENIERÍA INVERSA
ANALIZADORES APK / FORENSICS
Dalvik vs ART(4.4)
DALVIK ART
Compilación
Just-In-Time (JIT)
Compilación
Ahead-Of-Time (AOT)
Cache se construye a
medida que se ejecutan
las aplicaciones
Cache se construye al
arrancar el dispositivo
Apps se compilan cuando
se ejecutan
Almacena las aplicaciones
compiladas
Mayor consumo espacio
interno
 Settings>Developer options>Select runtime
Generar APK
ZIP + jarsigner+ zipalign
Obtener APK
 Google Play
 Markets alternativos (BlackMart, Fdroid, Aptoide)
 Apk extractor
 http://apps.evozi.com/apk-downloader
/data/data ROOT
$ adb shell
 Detectar Root
private boolean isDeviceRooted(){
try{
Runtime.getRuntime().exec("su");
return true;
}catch(IOExeception ex){
return false;
}
}
public static boolean() isDeviceRooted(){
File f= new File("/system/sbin/su");
return f.exits();
}
Permisos
 Instalar algún tipo de
aplicación que compruebe los
permisos.
 Deshabilitar actualizaciones
automáticas.
Limitar permisos
Recomendaciones en permisos
 Minimizar el número de permisos que se piden
 33% aplicaciones piden más permisos de los
necesarios
 ¿Es necesario android.permission.CAMERA?
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Images.Media.DESCRIPTION, "Image capture");
contentValues.put(MediaStore.Images.Media.TITLE, "new image");
Uri uri =
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
contentValues);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 1);
Permissions in apps
 <uses-permission android:name="android.permission.CAMERA" />
 ¿Donde está el permiso?
 En la aplicación Google Camera
 GoogleCamera.apk
Malware
• Instalar de orígenes
conocidos
• Comprobar los permisos
antes de instalar/actualizar
• Revisar comentarios de los
usuarios
• Deshabilitar conexión
automática a redes Wifi y
evitar conectarnos a redes
Free.
Recomendaciones
para evitar
malware
Malware detection in Google play
Bluebox
Security
Scanner
SRT
AppScanner
Lookout
Mobile
Security
Advanced
Mobile Care
Malwarebytes
Anti-Malware
CM Security
foresafe.com/scan
mobilesandbox.org
andrototal.org
copperdroid
Firmar aplicaciones
 Java keytool
$ keytool -genkey -v -keystore <keystore filename>
-alias <alias for key> -keyalg RSA -keysize 2048
-validity 10000
Android Studio
 Tool included in Android SDK for apk compress and optimizing
$ zipalign -f 4 app-signed.apk final-app.apk
 Build > Generate Signed APK
Shared preferences
 Fichero xml almacenado en
/data/data/com.your.package/shared_prefs/preferences
.xml
 No es recomendable almacenar información sensible
relativa a nombres de usuario y contraseñas
 Librería para securizar este fichero
 https://github.com/scottyab/secure-preferences
ROOT
Secure Shared preferences ROOT
Webview
Webview best practices
Tener cuidado con librerías de terceros
No guardar passwords
No guardar datos de formularios
Limpiar Caché
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
@Override public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.clearCache(true); //delete local files in the browser
}
SQLite
SQLiteDatabase db = dbHelper.getWriteableDatabase();
String userQuery = "SELECT lastName FROM useraccounts WHERE
userID = ?";
SQLiteStatement prepStatement =db.compileStatement(userQuery);
prepStatement.bindString(1, "userID");
prepStatement.simpleQueryForString();
Sentencias preparadas para evitar sql injection
rawQuery
compileStatement
OWASP Mobile Top 10 Risks
LINT ECLIPSE /ANDROID STUDIO
 Integrado en el the SDK
 Permite detectar errores comunes de programación
ANDROID STUDIO
SONARQuBE http://www.sonarqube.org/
Encriptación en el teléfono
 Soportado desde Android 3.0
 Lleva 1h encriptar los datos
 Implica una reducción del rendimiento
Ofuscación
 Renombra clases, campos y métodos con nombre
cortos (a,b,c,..)
Ofuscación en proyectos android
Proguard
Integrado en el SDK
 http://developer.android.com/tools/help/proguard.html
Habilitar Proguard en eclipse
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-
project.txt
Ofuscación en proyectos android
Habilitar Proguard en android STUDIO
build.gradle
android {
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android.txt') ,
'proguard-rules.pro'
}
}
Proguard.config
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
Renombrar .apk to .zip
Extraer zip que contiene el .dex
Ejecutar dex2jar
Abrir el .jar con java decompiler
Apk Tool
 Convierte un fichero .apk file a un projecto android
$ apktool d target.apk output_directory
Dex2jar
 http://code.google.com/p/dex2jar
 Convierte ejecutable Dalvik en fichero jar.
$ unzip target.apk
$ d2jdex2jar.sh classes.dex -o target.jar
Java Decompiler
 http://java.decompiler.free.fr
APK to Java Decompiler
 https://github.com/skylot/jadx
Decompilar directamente desde apk
Virtuous Ten Studio
http://virtuous-ten-studio.com/
Sólo para windows
Virtuous Ten Studio
Virtuous Ten Studio
Androwarn
python androwarn.py -i my_apk.apk -r html -v 3
https://github.com/maaaaz/androwarn
Telephony identifiers exfiltration: IMEI, IMSI, MCC, MNC, LAC, CID, operator's name...
Device settings exfiltration: software version, usage statistics, system settings, logs...
Geolocation information leakage: GPS/WiFi geolocation...
Connection interfaces information exfiltration: WiFi credentials, Bluetooth MAC adress...
Telephony services abuse: premium SMS sending, phone call composition...
Audio/video flow interception: call recording, video capture...
Remote connection establishment: socket open call, Bluetooth pairing, APN settings
edit...
PIM data leakage: contacts, calendar, SMS, mails...
External memory operations: file access on SD card...
PIM data modification: add/delete contacts, calendar events...
Arbitrary code execution: native code using JNI, UNIX command, privilege escalation...
Denial of Service: event notification deactivation, file deletion, process killing, virtual
keyboard disable, terminal shutdown/reboot...
Dexter online
 https://dexter.bluebox.com
Dexter online
 https://github.com/viaforensics/android-forensics
Forensics
Books
References
 http://code.google.com/p/dex2jar/
 https://code.google.com/p/android-apktool
 http://ashishb.net/security/android-security-related-tools
 http://androidcracking.blogspot.com.es
 http://developer.android.com/guide/topics/security/permissions.html
 http://source.android.com/devices/tech/security/#android-
application-security
 http://siis.cse.psu.edu/android_sec_tutorial.html
Seguridad en Android

More Related Content

Viewers also liked (7)

Seguridad en android.ppt
Seguridad en android.pptSeguridad en android.ppt
Seguridad en android.ppt
 
Cp r75 firewall_admin_guide
Cp r75 firewall_admin_guideCp r75 firewall_admin_guide
Cp r75 firewall_admin_guide
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Firma digital en Venezuela
Firma digital en VenezuelaFirma digital en Venezuela
Firma digital en Venezuela
 
Firma Digital
Firma DigitalFirma Digital
Firma Digital
 

Similar to Seguridad en Android

Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Fátima Casaú Pérez
 

Similar to Seguridad en Android (20)

Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Data storage
Data storageData storage
Data storage
 
FROM lost to the Docker 2020
FROM lost to the Docker 2020FROM lost to the Docker 2020
FROM lost to the Docker 2020
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
FROM lost to the docker
FROM lost to the dockerFROM lost to the docker
FROM lost to the docker
 
Android Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivityAndroid Tips & Tricks - Boosting your productivity
Android Tips & Tricks - Boosting your productivity
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
 
3.android eclipse
3.android   eclipse3.android   eclipse
3.android eclipse
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Intel Android @ HackMTY
Intel Android @ HackMTYIntel Android @ HackMTY
Intel Android @ HackMTY
 
Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)Aprendiendo a usar NDK Android Day(castellano)
Aprendiendo a usar NDK Android Day(castellano)
 
Desarrollos Open edX Edunext
Desarrollos Open edX EdunextDesarrollos Open edX Edunext
Desarrollos Open edX Edunext
 
Plugins para la extensión de Open edX.pptx
Plugins para la extensión de Open edX.pptxPlugins para la extensión de Open edX.pptx
Plugins para la extensión de Open edX.pptx
 
Devfest Lima2012
Devfest Lima2012Devfest Lima2012
Devfest Lima2012
 
IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)IOF Labs Weekend - Android (27082011)
IOF Labs Weekend - Android (27082011)
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 

More from Jose Manuel Ortega Candel

Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
Jose Manuel Ortega Candel
 

More from Jose Manuel Ortega Candel (20)

Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdfAsegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
 
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
 
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdf
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdf
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloud
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8s
 
Implementing cert-manager in K8s
Implementing cert-manager in K8sImplementing cert-manager in K8s
Implementing cert-manager in K8s
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)
 
Python para equipos de ciberseguridad
Python para equipos de ciberseguridad Python para equipos de ciberseguridad
Python para equipos de ciberseguridad
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue Team
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source tools
 
Python Memory Management 101(Europython)
Python Memory Management 101(Europython)Python Memory Management 101(Europython)
Python Memory Management 101(Europython)
 
SecDevOps containers
SecDevOps containersSecDevOps containers
SecDevOps containers
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collector
 

Seguridad en Android

  • 3. DALVIK / ART/ APK / PERMISOS MALWARE TOOLS SEGURIDAD EN COMPONENTES ANÁLISIS ESTÁTICO ECLIPSE /ANDROID STUDIO ENCRIPTACIÓN / OFUSCACIÓN INGENIERÍA INVERSA ANALIZADORES APK / FORENSICS
  • 4. Dalvik vs ART(4.4) DALVIK ART Compilación Just-In-Time (JIT) Compilación Ahead-Of-Time (AOT) Cache se construye a medida que se ejecutan las aplicaciones Cache se construye al arrancar el dispositivo Apps se compilan cuando se ejecutan Almacena las aplicaciones compiladas Mayor consumo espacio interno  Settings>Developer options>Select runtime
  • 5. Generar APK ZIP + jarsigner+ zipalign
  • 6. Obtener APK  Google Play  Markets alternativos (BlackMart, Fdroid, Aptoide)  Apk extractor  http://apps.evozi.com/apk-downloader
  • 8.  Detectar Root private boolean isDeviceRooted(){ try{ Runtime.getRuntime().exec("su"); return true; }catch(IOExeception ex){ return false; } } public static boolean() isDeviceRooted(){ File f= new File("/system/sbin/su"); return f.exits(); }
  • 9.
  • 10. Permisos  Instalar algún tipo de aplicación que compruebe los permisos.  Deshabilitar actualizaciones automáticas.
  • 12. Recomendaciones en permisos  Minimizar el número de permisos que se piden  33% aplicaciones piden más permisos de los necesarios  ¿Es necesario android.permission.CAMERA? ContentValues contentValues = new ContentValues(); contentValues.put(MediaStore.Images.Media.DESCRIPTION, "Image capture"); contentValues.put(MediaStore.Images.Media.TITLE, "new image"); Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); startActivityForResult(intent, 1);
  • 13. Permissions in apps  <uses-permission android:name="android.permission.CAMERA" />  ¿Donde está el permiso?  En la aplicación Google Camera  GoogleCamera.apk
  • 14.
  • 15. Malware • Instalar de orígenes conocidos • Comprobar los permisos antes de instalar/actualizar • Revisar comentarios de los usuarios • Deshabilitar conexión automática a redes Wifi y evitar conectarnos a redes Free. Recomendaciones para evitar malware
  • 16. Malware detection in Google play Bluebox Security Scanner SRT AppScanner Lookout Mobile Security Advanced Mobile Care Malwarebytes Anti-Malware CM Security
  • 18.
  • 19. Firmar aplicaciones  Java keytool $ keytool -genkey -v -keystore <keystore filename> -alias <alias for key> -keyalg RSA -keysize 2048 -validity 10000
  • 20. Android Studio  Tool included in Android SDK for apk compress and optimizing $ zipalign -f 4 app-signed.apk final-app.apk  Build > Generate Signed APK
  • 21.
  • 22. Shared preferences  Fichero xml almacenado en /data/data/com.your.package/shared_prefs/preferences .xml  No es recomendable almacenar información sensible relativa a nombres de usuario y contraseñas  Librería para securizar este fichero  https://github.com/scottyab/secure-preferences ROOT
  • 25. Webview best practices Tener cuidado con librerías de terceros No guardar passwords No guardar datos de formularios Limpiar Caché webSettings.setSavePassword(false); webSettings.setSaveFormData(false); @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); view.clearCache(true); //delete local files in the browser }
  • 26. SQLite SQLiteDatabase db = dbHelper.getWriteableDatabase(); String userQuery = "SELECT lastName FROM useraccounts WHERE userID = ?"; SQLiteStatement prepStatement =db.compileStatement(userQuery); prepStatement.bindString(1, "userID"); prepStatement.simpleQueryForString(); Sentencias preparadas para evitar sql injection rawQuery compileStatement
  • 27. OWASP Mobile Top 10 Risks
  • 28.
  • 29. LINT ECLIPSE /ANDROID STUDIO  Integrado en el the SDK  Permite detectar errores comunes de programación
  • 32.
  • 33. Encriptación en el teléfono  Soportado desde Android 3.0  Lleva 1h encriptar los datos  Implica una reducción del rendimiento
  • 34.
  • 35. Ofuscación  Renombra clases, campos y métodos con nombre cortos (a,b,c,..)
  • 36. Ofuscación en proyectos android Proguard Integrado en el SDK  http://developer.android.com/tools/help/proguard.html Habilitar Proguard en eclipse proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard- project.txt
  • 37. Ofuscación en proyectos android Habilitar Proguard en android STUDIO build.gradle android { buildTypes { release { runProguard true proguardFile getDefaultProguardFile('proguard-android.txt') , 'proguard-rules.pro' } }
  • 38. Proguard.config -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }
  • 39.
  • 40. Renombrar .apk to .zip Extraer zip que contiene el .dex Ejecutar dex2jar Abrir el .jar con java decompiler
  • 41. Apk Tool  Convierte un fichero .apk file a un projecto android $ apktool d target.apk output_directory
  • 42. Dex2jar  http://code.google.com/p/dex2jar  Convierte ejecutable Dalvik en fichero jar. $ unzip target.apk $ d2jdex2jar.sh classes.dex -o target.jar
  • 44. APK to Java Decompiler  https://github.com/skylot/jadx Decompilar directamente desde apk
  • 48. Androwarn python androwarn.py -i my_apk.apk -r html -v 3 https://github.com/maaaaz/androwarn Telephony identifiers exfiltration: IMEI, IMSI, MCC, MNC, LAC, CID, operator's name... Device settings exfiltration: software version, usage statistics, system settings, logs... Geolocation information leakage: GPS/WiFi geolocation... Connection interfaces information exfiltration: WiFi credentials, Bluetooth MAC adress... Telephony services abuse: premium SMS sending, phone call composition... Audio/video flow interception: call recording, video capture... Remote connection establishment: socket open call, Bluetooth pairing, APN settings edit... PIM data leakage: contacts, calendar, SMS, mails... External memory operations: file access on SD card... PIM data modification: add/delete contacts, calendar events... Arbitrary code execution: native code using JNI, UNIX command, privilege escalation... Denial of Service: event notification deactivation, file deletion, process killing, virtual keyboard disable, terminal shutdown/reboot...
  • 49.
  • 53. Books
  • 54. References  http://code.google.com/p/dex2jar/  https://code.google.com/p/android-apktool  http://ashishb.net/security/android-security-related-tools  http://androidcracking.blogspot.com.es  http://developer.android.com/guide/topics/security/permissions.html  http://source.android.com/devices/tech/security/#android- application-security  http://siis.cse.psu.edu/android_sec_tutorial.html