Sistema de preprocesamiento para optimizar la generación de embeddings para aplicaciones de seguridad basadas en LLMs (2024)
Este proyecto aborda el problema de la persistencia de vulnerabilidades de seguridad críticas en aplicaciones móviles Android a lo largo de los años. A pesar de los avances tecnológicos y las mejores prácticas en desarrollo, vulnerabilidades como el almacenamiento inseguro de datos o el manejo de autorización deficiente, son reflejo de una brecha en la capacitación de los desarrolladores más que en la disponibilidad de herramientas para contrarrestar estos problemas. Con el objetivo de mitigar esta dificultad, este trabajo se desarrolló en conjunto con el proyecto “Conversational Model to Support Security Queries from Android Developers” de Miguel Muñoz, el cual propone una solución basada en el uso de inteligencia artificial (IA) y procesamiento de lenguaje natural (NLP) para identificar y prevenir errores de seguridad en el desarrollo de aplicaciones Android. La solución incluye el diseño de un sistema de NLP que analiza contenido técnico a partir de artículos de investigación sobre ciberseguridad, responde preguntas y proporciona recomendaciones de seguridad en tiempo real. El sistema se basa en una arquitectura que procesa información desde archivos PDF, los convierte en datos estructurados y genera embeddings a través de modelos como RoBERTa, que posteriormente almacena en una base de datos vectorial (ChromaDB). Este enfoque busca responder consultas de los desarrolladores para mejorar la calidad del código y reducir la incidencia de vulnerabilidades críticas, contribuyendo a un entorno digital más seguro. El componente clave desarrollado en este proyecto sirve como base para el sistema principal, este es la implementación de un sistema de preprocesamiento para artículos en formato PDF, compuesto por módulos que permiten la extracción y limpieza de información relevante. Estos módulos convierten los PDFs en formatos estructurados, eliminan elementos irrelevantes como tablas y referencias, evalúan la calidad semántica de los datos y los dividen en fragmentos manejables. Este proceso asegura que el sistema principal opere con información precisa y confiable. El sistema completo fue evaluado mediante pruebas basadas en 47 preguntas representativas, considerando criterios como la completitud de las respuestas, la validez del contenido adicional y la coherencia en la información adicional proporcionada. Los resultados muestran un desempeño satisfactorio en términos de coherencia y validez, aunque identifican áreas de mejora en la cobertura y precisión del contenido. Estos hallazgos subrayan la necesidad de optimizar las estrategias de manejo de incertidumbre y búsqueda de información adicional. En síntesis, este proyecto de tesis integra investigación en ciberseguridad y técnicas de NLP para proponer una solución que apoye a los desarrolladores en la creación de aplicaciones móviles seguras. Al proporcionar herramientas educativas y prácticas en tiempo real, esta iniciativa busca disminuir la brecha de conocimiento y reducir el impacto de vulnerabilidades críticas en el ecosistema Android.