Please enable JavaScript.
Coggle requires JavaScript to display documents.
Detección de vulnerabilidades en el código fuente de Android - Coggle…
Detección de vulnerabilidades en el código fuente de Android
Contexto y Motivación
Dominio de Android (71.45% de usuarios móviles)
Problemas comunes
Aplicaciones mal diseñadas en seguridad
Falta de mecanismos automatizados de detección de vulnerabilidades
Crecimiento en uso de smartphones (4.3 mil millones en 2023)
Objetivo general
Mejorar la seguridad desde el desarrollo, no solo con parches posteriores
Metodología (SLR)
Revisión sistemática en 5 bases de datos (ACM, IEEE, ScienceDirect, Springer, Web of Science)
Filtro de publicaciones (2016–2022)
Basada en PRISMA
Análisis de 118 estudios finales tras aplicar criterios de inclusión/exclusión y snowballing :
Objetivos y Alcance
Investigar herramientas y datasets
Identificar oportunidades de investigación futura
Analizar técnicas de detección de vulnerabilidades
ML/DL (principal enfoque)
Métodos convencionales (secundario)
Revisar 118 estudios técnicos (2016–2022)
Preguntas de Investigación
¿Qué herramientas, datasets y repositorios se utilizan?
¿Qué técnicas se usan para detectar y prevenir vulnerabilidades?
¿Qué métodos existen para análisis de código fuente Android?
Análisis de Aplicaciones Android
Análisis Dinámico
Técnicas
Análisis de tráfico de red, llamadas al sistema, uso de recursos
Riesgos: crash del entorno, limitaciones en inputs
Requiere ejecutar la app en sandbox
Análisis Híbrido
Permite mejor detección de comportamientos maliciosos complejos
Estudios destacados: DCDroid, Vulvet, APKTool + Emuladores
Combina análisis estático y dinámico
Análisis Estático
Técnicas
Análisis de manifiesto (permisos, servicios, intents)
Análisis de código (API calls, flujos de información, opcodes)
Herramientas: Soot, Jimple, Smali, Call Graphs
No requiere ejecutar la app
Detección de Vulnerabilidades
Con Machine Learning / Deep Learning
Dinámico + ML
Uso de LSTM, CNN, J48 para detectar patrones maliciosos
Modelos: 6th Sense, system call anomaly detection
Ejecución y monitoreo de apps
Híbrido + ML
Algoritmos: MLP, SVM, kNN, RIDOR
Precisión de hasta 98.27% (según estudios)
Modelos combinados para detectar malware y vulnerabilidades
Estático + ML
Clasificación de funciones vulnerables (NB, RF, DT, CNN, etc.)
Ejemplo: WaffleDetector, Vulvet
Representación con AST
Métodos Convencionales (no ML)
Parsers personalizados de APK (ej. DexParser)
Frameworks de escaneo como VScanner
Lenguajes formales (ej. Alloy)
Ejemplo: WebVSec para vulnerabilidades en WebViews
Herramientas y Repositorios Usados
Herramientas: APKTool, Androguard, Soot, DroidRA, WebVSec
Repositorios/Datasets:
AndroZoo
GitHub, Kaggle
Android Malware Dataset (AMD)
NVD, CWE, CVE (vulnerabilidades conocidas)
Drebin
Tipos de Vulnerabilidades Detectadas
Inyecciones SQL
SSL/TLS mal implementados
Fugas de datos por logs o intents
Componentes expuestos (Activities, Broadcast Receivers)
WebViews inseguros
APIs sensibles mal protegidas
Permisos mal gestionados
Errores Comunes
Usuarios
Otorgan permisos sin entender los riesgos
Desarrolladores
Uso de permisos innecesarios en el AndroidManifest
Reutilización de código vulnerable
No aplican pruebas de seguridad
Comparación con Revisiones Previas
Revisión más completa hasta la fecha (2016–2022)
Mejora respecto a estudios anteriores
Mayor enfoque en ML
Evaluación crítica de cada enfoque
Más estudios revisados
Inclusión de herramientas y prevención, no solo detección
Líneas Futuras de Investigación
Detección temprana integrada en IDEs
Desarrollo de datasets más completos y públicos
Extender detección a apps con código nativo (NDK)
Métodos automáticos de parcheo de código
Mejorar la precisión de ML/DL
Prevención de Vulnerabilidades
Educación de desarrolladores en codificación segura
Uso de análisis estático temprano en IDEs
Integrar la detección en el ciclo de desarrollo
Integración de ML en entornos de desarrollo