Registro:
| Documento: | Tesis de Grado |
| Título: | Mejorando taint analysis para JavaScript con grandes cantidades de código |
| Título alternativo: | Improving taint analysis specificacions for javascript with big code |
| Autor: | Balbi, Pablo Luis |
| Editor: | Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| Publicación en la web: | 2025-06-12 |
| Fecha de defensa: | 2023 |
| Fecha en portada: | 2023 |
| Grado Obtenido: | Grado |
| Título Obtenido: | Licenciado en Ciencias de la Computación |
| Departamento Docente: | Departamento de Computación |
| Director: | Garbervetsky, Diego David |
| Jurado: | Castro, Rodrigo Daniel; Godoy, Javier Ignacio |
| Idioma: | Español |
| Palabras clave: | ANALISIS ESTATICO; TAINT ANALYSIS; APRENDIZAJE AUTOMATICO; PROGRAMACION LINEAL; SEGURIDAD DE LA INFORMACIONSTATIC PROGRAM ANALYSIS; TAINT ANALYSIS; MACHINE LEARNING; LINEAR PROGRAMMING; INFORMATION SECURITY |
| Formato: | PDF |
| Handle: |
http://hdl.handle.net/20.500.12110/seminario_nCOM000530_Balbi |
| PDF: | https://bibliotecadigital.exactas.uba.ar/download/seminario/seminario_nCOM000530_Balbi.pdf |
| Registro: | https://bibliotecadigital.exactas.uba.ar/collection/seminario/document/seminario_nCOM000530_Balbi |
| Ubicación: | Dep.COM 000530 |
| Derechos de Acceso: | Esta obra puede ser leída, grabada y utilizada con fines de estudio, investigación y docencia. Es necesario el reconocimiento de autoría mediante la cita correspondiente. Balbi, Pablo Luis. (2023). Mejorando taint analysis para JavaScript con grandes cantidades de código. (Tesis de Grado. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de http://hdl.handle.net/20.500.12110/seminario_nCOM000530_Balbi |
Resumen:
En la actualidad, las técnicas de análisis estático de código son una herramienta muy usada para detectar, de manera temprana, vulnerabilidades de seguridad durante etapas tempranas en el proceso de desarrollo. Taint analysis es un tipo particular de análisis, con prestaciones que lo caracterizan como un gran candidato para detectar fallas muy comunes en aplicaciones web, como son los ataques de inyección. Si bien las técnicas para llevar a cabo este tipo de análisis están ampliamente estudiadas, el mismo depende de una serie de especificaciones que indican qué elementos de un programa podrían estar involucrados en una vulnerabilidad. En esta tesis se presenta una técnica de inferencia de especificaciones de taint analysis, para el lenguaje JavaScript. La implementación de la misma surge de combinar un método ya existente basado en aprendizaje automático, con el motor de análisis estático CodeQL. La técnica presentada parte un grafo que modela la propagación de datos a lo largo de un programa, y construye un modelo de optimización lineal que resuelve el problema de inferencia de manera escalable. Las especificaciones producidas se expresan en una representación que permite generalizar un fragmento de código, para as ́ı poder reconocer casos similares en otros programas. Además, se presenta una nueva metodología de evaluación que no requiere supervisión alguna, a fin de cuantificar el potencial de la técnica para inferir nuevas especificaciones. Mediante esta metodología, se evalúa el procedimiento presentado en el trabajo, sobre un conjunto de alrededor de setecientos programas afectados por cuatro clases diferentes de vulnerabilidades de seguridad, alcanzando valores de recall cercanos al 80 %.
Abstract:
Nowadays, static code analysis techniques are widely used tools for detecting security vulnerabilities early in the development stage. Taint analysis is a specific type of static code analysis commonly used to detect security-related problems in web applications, such as injection attacks. While the techniques for conducting taint analysis are well-studied, they depend on a set of specifications that indicate which program elements could be involved in a vulnerability. This thesis presents a technique, Jeldon, for inferring the specifications required for taint analysis in JavaScript. The implementation combines an existing machine learningbased approach with the static analysis engine CodeQL. Our approach starts with a graph that models data propagation throughout a program, then, it constructs a linear optimization model which is capable of solving the inference problem required to build the specifications in a scalable manner. The produced specifications are expressed in a representation that allows the generalization of a fragment of code, enabling the analyzer to recognize similar patterns in other programs. Additionally, we present a new methodology for quantitatively evaluating the Jeldon technique. This new methodology allows us to measure how well it performs inferring new specifications, without requiring any supervision. Using this methodology, we evaluated Jeldon on approximately 700 programs affected by four different security vulnerability kinds, achieving a recall of around 80 %.
Citación:
---------- APA ----------
Balbi, Pablo Luis. (2023). Mejorando taint analysis para JavaScript con grandes cantidades de código. (Tesis de Grado. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de https://hdl.handle.net/20.500.12110/seminario_nCOM000530_Balbi
---------- CHICAGO ----------
Balbi, Pablo Luis. "Mejorando taint analysis para JavaScript con grandes cantidades de código". Tesis de Grado, Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales, 2023.https://hdl.handle.net/20.500.12110/seminario_nCOM000530_Balbi
Estadísticas:
Descargas mensuales
Total de descargas desde :
https://bibliotecadigital.exactas.uba.ar/download/seminario/seminario_nCOM000530_Balbi.pdf
Distrubución geográfica