Construyendo software seguro

mtp
Por mtp

Construyendo software seguro

Claves y herramientas que nos ayudarán a cumplir este objetivo

Cuando hablamos de seguridad se ponen encima de la mesa un montón de factores a tener en cuenta, cada uno acompañado por una solución, herramienta o estrategia que resulta necesario utilizar o implantar.

En unos casos se hablará de las ventajas o desventajas en el uso de protocolos SSL. En otros, de perímetros y de firewalls. El cumplimiento de normas, como la ISO 27000, o la conveniencia de llevar a cabo pruebas de seguridad al final del ciclo de desarrollo del software, son también aspectos que siguen centrando esta conversación.

Todo lo anterior es positivo y necesario, sin embargo, a la hora de hablar de seguridad, como en casi todas las circunstancias de la vida, conviene ir a la raíz del asunto y comenzar la casa construyendo unos cimientos sólidos. De esta forma, de poco valdrán las medidas que tomemos si no basamos nuestro negocio en un software sólido y sin fisuras.

Por todo ello, la primera pregunta que debemos hacernos, al sentarnos a hablar de seguridad, sería la siguiente:

¿Estamos construyendo un software seguro?

En una economía cada vez más basada en las aplicaciones, la seguridad es un factor que hay que tener en cuenta en cada una de las fases de desarrollo de las mismas. Esto es así ya que la producción de software es un proceso en el que es necesario ir identificando y corrigiendo vulnerabilidades de forma continua. Es decir, no vale desarrollar la aplicación y luego probarla.

Apoyo en herramientas específicas

Naturalmente, a la hora de producir software seguro, también existen en el mercado herramientas suficientes para ayudarnos en esa labor. Aconsejo las siguientes:

  • Checkmarx, una herramienta de análisis de seguridad del código fuente, integrable con los entornos de desarrollo SW más comunes (Eclipse, MS-Visual Studio, Jira, Jenkins…) que alertará a los programadores sobre las vulnerabilidades que vayan introduciendo en su código.
  • BlackDuck, una herramienta de análisis de la seguridad, licenciamiento y operatividad de las librerías de código abierto de terceros empleadas en los propios desarrollos. También integrable con los entornos de desarrollo habituales.
  • Contrast, una herramienta de análisis de seguridad del aplicativo en funcionamiento basada en IAST (Interactive Application Security Testing), o lo que es lo mismo pruebas de caja gris.

Pero además de contar con alguna de estas herramientas, también resulta imprescindible implantar un Ciclo de Vida de Desarrollo de Software Seguro basado en los siguientes pasos:

  • Análisis de la situación de procesos SW y de las herramientas de desarrollo SW empleadas.
  • Propuesta de las herramientas de seguridad más adecuadas en cada caso.
  • Realizar pruebas de concepto y proyectos pilotos para validar las herramientas propuestas y su uso en los procesos del cliente.
  • Formar y dar soporte a los ingenieros de desarrollo.

Luis Redondo
Responsable del Área de Ciberseguridad de MTP