Mostrar el registro sencillo del ítem

Trabajo Fin de Máster

dc.contributor.advisorGalindo Duarte, José Ángeles
dc.contributor.advisorBenavides Cuevas, David Felipees
dc.creatorMárquez Trujillo, Antonio Germánes
dc.date.accessioned2022-12-15T10:35:47Z
dc.date.available2022-12-15T10:35:47Z
dc.date.issued2022
dc.identifier.citationMárquez Trujillo, A.G. (2022). Análisis de vulnerabilidades en las dependencias de proyectos de desarrollo software. (Trabajo Fin de Máster Inédito). Universidad de Sevilla, Sevilla.
dc.identifier.urihttps://hdl.handle.net/11441/140489
dc.description.abstractSecurity has become a crucial factor in the development of software systems. The number of dependencies in software systems is becoming a source of countless bugs and vulnerabilities. Due to the scalability in the number of dependencies and their versions, i.e., the variability within dependencies, the developer of a software system cannot analyze it manually. In the past, the software product line community proposed several techniques and mechanisms to cope with the problems that arise when dealing with variability and dependency management in such systems. In this memory, we present a solution that allows automated dependency analysis for vulnerabilities within software projects based on techniques from the software product line community. Our solution first inspects the software dependencies and their available versions, then generates a graph of dependencies, each with their available versions and to which security-related information is subsequently attributed. In other words, vulnerabilities or CVEs (Common Vulnerabilities and Exposures) are the formal and centralized way for the cybersecurity community to represent the information on a vulnerability, the systems it affects, whether it can be exploited, and the severity or impact it has. The systems involved are specified in a list of CPEs (Common Platform Enumeration - CPE) within the CVE, which are diagrams with information about the affected systems. And the impact is defined based on the CVSS (Common Vulnerability Scoring System), which is a standard system for scoring the impact or severity of a vulnerability on a range from 0 to 10. This is done by making use of the Vulnerabilities Data Base (VDB), which is a repository of data on vulnerabilities discovered and cataloged to date. Then, it is translated into a formal model, in this case, based on the Satisfiability Modulo Theories (SMT). This allows us to transform a model, in this case the dependency graph, into a Boolean satisfiability problem using propositional logic that we can reason about and analyse. To this end, we design a set of analysis and reasoning operations on these problems that allow us to extract useful information about the set of vulnerabilities of the project’s configuration space, that is, the set of dependencies with their associated versions. As well as information for advice on the security risk of these projects and their possible configurations, allowing the developer to automatically perceive this information which would be very time consuming if done manually. We also compared our solution with others on the market, in which we observed that our solution can detect more vulnerabilities in the dependencies in different projects.es
dc.description.abstractLa seguridad se ha convertido en un factor crucial en el desarrollo de los sistemas software. La cantidad de dependencias existentes en los sistemas software se está convirtiendo en una fuente de innumerables errores y vulnerabilidades, y debido a la escalabilidad en el número de las mismas y sus versiones, es decir, a la variabilidad dentro de las dependencias, al desarrollador de un sistema software no puede analizarlo de forma manual. En el pasado, la comunidad de líneas de productos software propuso varias técnicas y mecanismos para hacer frente a los problemas que surgen al tratar la variabilidad y la gestión de dependencias en dichos sistemas. En esta memoria presentamos una solución, que permite el análisis automatizado de las dependencias en busca de vulnerabilidades dentro de los proyectos de software basándose en técnicas de la comunidad de líneas de productos software. Nuestra solución inspecciona primero las dependencias del software y sus ver siones disponibles, luego genera un grafo de dependencias cada una con sus ver siones disponibles y a las que posteriormente se les atribuye información relativa a la seguridad. Es decir, las vulnerabilidades o CVE (Common Vulnerabilities and Exposures), que son la manera formal y centralizada por la comunidad de la ciberse guridad de representar la información de una vulnerabilidad, los sistemas a los que afecta, si se puede explotar y la severidad o impacto que tiene. Los sistemas a los que afecta se especifica en una lista de CPEs (Common Platform Enumeration - CPE) dentro del CVE, estos son esquemas con información sobre los sistemas afectados. Y el impacto se define en base al CVSS (Common Vulnerability Scoring System) el cual es un sistema común para puntuar en un rango del 0 al 10 el impacto o severidad de una vulnerabilidad. Todo esto haciendo uso de las bases de datos de vulnerabilidades (Vulnerabilities Data Base - VDB), que son repositorios de datos sobre las vulnerabilidades descubiertas y catalogadas hasta la actualidad. Luego, se traduce a un modelo formal, en este caso, basado en las teorías de satisfacibilidad módulo (Satisfiability Modulo Theories - SMT). Que nos permite transformar un modelo, en este caso el grafo de dependencias, a un problema deanalizar. Para ello diseñamos un conjunto de operaciones de análisis y razonamiento sobre estos problemas que permiten extraer información útil sobre el conjunto de vulnerabilidades del espacio de configuraciones del proyecto, es decir, el con junto de dependencias con sus versiones asociadas. Así como de información para el asesoramiento sobre el riesgo de seguridad de estos proyectos y sus posibles configuraciones, haciendo que el desarrollador de forma automática perciba esta información que de manera manual sería muy costoso en tiempo. Así mismo com paramos nuestra solución con otras existentes en el mercado, en las que observamos que nuestra solución es capaz de detectar más vulnerabilidades en las dependencias en diferentes proyectos. satisfacibilidad booleana usando lógica proposicional el cual podamos razonar yes
dc.formatapplication/pdfes
dc.format.extent66es
dc.language.isospaes
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internacional*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/*
dc.titleAnálisis de vulnerabilidades en las dependencias de proyectos de desarrollo softwarees
dc.typeinfo:eu-repo/semantics/masterThesises
dc.type.versioninfo:eu-repo/semantics/publishedVersiones
dc.rights.accessRightsinfo:eu-repo/semantics/openAccesses
dc.contributor.affiliationUniversidad de Sevilla. Departamento de Lenguajes y Sistemas Informáticoses
dc.description.degreeUniversidad de Sevilla. Máster Universitario en Ingeniería del Software: Cloud, Datos y Gestión de las Tecnologías de la Informaciónes
dc.publication.endPage49es

FicherosTamañoFormatoVerDescripción
Memoria_TFM___antmartru.pdf1.239MbIcon   [PDF] Ver/Abrir  

Este registro aparece en las siguientes colecciones

Mostrar el registro sencillo del ítem

Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Excepto si se señala otra cosa, la licencia del ítem se describe como: Attribution-NonCommercial-NoDerivatives 4.0 Internacional