[en] Nowadays the need for a shorter time-to-market of applications is evident. However, even though the time needed for developing them gets reduced, we still need to be able to deliver reliable and secure apps. This was already a challenging task, and it is even more so with the time restrictions and the rapidly evolving technologies. Hidden flaws in software can result in security vulnerabilities that potentially allow attackers to compromise systems and applications. There are hackers and crackers who may be keeping an eye on our valuable personal information. Hence, these applications need to be secured and should be reliable since our private and important information or documents are stored on the back end of these n-tiered applications. Each year thousands of such vulnerabilities are reported publicly to the Common Vulnerabilities and Exposures database. These vulnerabilities are often caused by subtle errors made by programmers and can propagate quickly due to the prevalence of open-source software and code reuse. We are confronted with the dilemma of the need for speeding up the software development process while at the same time the requirement of delivering reliable and secure applications. There are many approaches for tackling this problem which range from adapting the software development process to more concrete technical solutions. In this TFM we will try to analyse the use of one or several automatized software tools for verifying whether the application under construction has the required level of security by detecting potential vulnerabilities or flaws that could cause an undesired misfunction. This approach addresses the detection of vulnerable code during the course of the software development cycle.

[es] Hoy en día es una evidencia la necesidad de un menor tiempo de lanzamiento al mercado de las aplicaciones. Sin embargo, aunque el tiempo necesario para desarrollarlas se reduzca, todavía se necesita poder ofrecer aplicaciones confiables y seguras. Esto era ya es una tarea difícil, y ahora lo es aún más con las restricciones de tiempo y la rápida evolución de las tecnologías. Los errores ocultos en el software pueden traducirse en vulnerabilidades de seguridad que potencialmente permitan a los atacantes poner en peligro los sistemas y aplicaciones. Hay hackers y crackers que pueden estar al acecho para obtener nuestra valiosa información personal. Por lo tanto, estas aplicaciones deben ser seguras y confiables ya que nuestra información o documentos privados se almacenan en estas aplicaciones de n capas. Cada año miles de estas vulnerabilidades se desvelan públicamente en el Common Vulnerabilities and Exposures database [23]. Estas vulnerabilidades son a menudo ocasionadas por errores sutiles cometidos por programadores y pueden propagarse rápidamente debido a la prevalencia del software de código abierto así como a la reutilización de código. Nos enfrentamos al dilema de la necesidad de acelerar el proceso de desarrollo de software y al mismo tiempo el requisito de ofrecer aplicaciones fiables y seguras. Hay muchos enfoques para abordar este problema que van desde adaptar el proceso de desarrollo de software a soluciones técnicas más concretas. En este TFM intentaremos analizar el uso de una o varias herramientas automatizadas para verificar si las aplicaciones en construcción tienen el nivel de seguridad requerido mediante la detección de posibles vulnerabilidades o errores que podría causar un funcionamiento no deseado. Este enfoque aborda la detección de código vulnerable durante el curso del ciclo de desarrollo de software.