Día tras día escuchamos noticias de ciberataques que se aprovechan de vulnerabilidades en las aplicaciones. Un error durante el desarrollo de una aplicación puede causar graves consecuencias a las empresas que la utilizan, como por ejemplo, pérdida o robo de información, daños a la imagen corporativa o sanciones económicas. Por ello, es fundamental desarrollar y utilizar software lo más seguro posible.
Los riesgos de ciberseguridad aumentan y evolucionan de una manera imparable, convirtiendo en imprescindibles los ciclos de vida de desarrollo de software y las metodologías que otorgan un papel protagonista a la seguridad de las aplicaciones. A continuación, hablaremos sobre el desarrollo seguro de software, su importancia y en qué consiste.
¿Qué es el desarrollo seguro de software?
Tradicionalmente era habitual que el desarrollo de aplicaciones estuviera enfocado principalmente a cumplir con las funcionalidades exigidas por el cliente. Otras cuestiones, como la seguridad, se tenían en cuenta de una manera más liviana al final del proyecto. Este enfoque provocaba que, al igual que con cualquier tipo de fallo, si se encontraba una vulnerabilidad durante la fase de pruebas o tras entregar la aplicación al cliente, el coste de solucionarla podía ser enorme.
Tendencia de hechos relacionados con la cibercriminalidad en España. Fuente: Ministerio del Interior
Hoy en día, la seguridad de las aplicaciones es un aspecto fundamental y prioritario. Además, las pérdidas económicas y de tiempo asociadas a considerar la seguridad únicamente en las últimas fases del ciclo de vida de las aplicaciones provocaron un cambio de paradigma.
El desarrollo seguro de software es una metodología cuyo objetivo es considerar la seguridad de las aplicaciones durante todo su ciclo de vida, empezando desde la propia definición de requisitos de las mismas. El propósito de esta filosofía es determinar cuanto antes las necesidades de seguridad y las posibles vulnerabilidades que puede tener la aplicación, sin esperar a fases o iteraciones posteriores.
¿Cuáles son sus ventajas?
Los beneficios son evidentes, tanto para la empresa que desarrolla la aplicación como para sus clientes que la utilizan. Siguiendo el enfoque del desarrollo seguro de software, las aplicaciones serán diseñadas, implementadas y probadas pensando en su seguridad, facilitando conseguir lo siguiente:
- aplicaciones más seguras. El número de vulnerabilidades que tendrán las aplicaciones será menor, al igual que su criticidad. Esto es fundamental puesto que el número de ataques que se aprovechan de vulnerabilidades en las aplicaciones es cada vez mayor y las consecuencias para las empresas y las personas son cada vez más severas.
- optimización de tiempos y costes de ejecución en los proyectos. Los resultados de los proyectos serán mejores, puesto que la corrección de los fallos de seguridad requerirá menores tiempos de desarrollo al detectarse en fases más tempranas, y se evitarán imprevistos de última hora que puedan causar incumplimientos de plazo.
- mayor satisfacción de los clientes. Las dos anteriores se traducirán en una mayor confianza de los clientes en las aplicaciones.
¿En qué consiste?
Como se ha comentado anteriormente, consiste en considerar la seguridad desde el primer momento y durante todo el ciclo de vida de las aplicaciones. La integración de la seguridad en cada fase del ciclo de vida es independiente de la metodología utilizada (cascada, ágil, DevOps). Las empresas que desarrollan software pueden intentar añadir controles y procedimientos en cada una de las fases con el objetivo de incorporar seguridad a sus aplicaciones. No obstante, existen metodologías e iniciativas que aportan las pautas necesarias y pueden ser utilizadas como referencia para facilitar esta tarea. Algunas de ellas son:
- Microsoft SDL (Microsoft Security Development Lifecycle)
- CLASP (Comprehensive, Lightweight Application Security Process)
- BSIMM (Building Security In Maturity Model)
- SSDF (Secure Software Development Framework)
- OpenSAMM (Open Software Assurance Maturity Model)
- OSSA (Oracle Software Security Assurance)
Todo esto implica a las personas, a los procesos y a la tecnología. Es fundamental disponer de unas bases sólidas que capaciten a estos tres grupos para poner en marcha una política de desarrollo seguro de software.
Desarrollar software 100% seguro es utópico, sin embargo, siguiendo una metodología de desarrollo seguro se establecerán los principios para minimizar el número de vulnerabilidades y disminuir su impacto. Además, no se debe aplicar la seguridad únicamente al final del desarrollo porque los costes serán mayores. La seguridad debe ser integrada en todo el ciclo de vida del software.
En ITCL prestamos especial atención a la seguridad de nuestros desarrollos. Para ello, analizamos las necesidades de nuestros clientes, estudiando los requisitos y las características de cada aplicación de manera individual y buscando el equilibrio entre seguridad y usabilidad. Por ejemplo, el proyecto share4business realizado para Mercedes-Benz España, en el que desarrollamos un servicio de vehículo compartido para empresas siguiendo estrictos procedimientos y controles de seguridad.
Ingeniero Informático. Responsable de las soluciones de Ciberseguridad dentro del Grupo de Investigación Electrónica Aplicada e Inteligencia Artificial de ITCL.
Especialista en seguridad informática para Ciberseguridad empresarial y en tecnologías avanzadas. Sus principales trabajos se centran en el diseño y el desarrollo de nuevos sistemas electrónicos de diversa aplicación industrial, basados en microcontroladores y microprocesadores, con especial relevancia en la investigación de vulnerabilidades en dispositivos IoT así como en su protección frente a ataques.