En el siglo XXI los negocios se digitalizan, las fabricas se llenan de robots cada vez más inteligentes, y "cualquier cosa" se puede conectar a Internet. Esta transformación no es posible sin un elemento clave llamado software. El software es el elemento común y subyacente de cada una de las facetas de la transformación digital. En definitiva, podemos afirmar que es parte fundamental de cualquier organización moderna. En el día a día encontramos innumerables ejemplos del uso del software, desde un aplicativo ERP de gestión de la empresa, el firmware de los elementos de red, una página web corporativa, el e-commerce, las aplicaciones móviles, la banca digital, las transacciones electrónicas con las AAPP, el IoT, etc .

Por otro lado, los informes de amenazas cibernéticas de los últimos años repiten continuamente que la mayoría de los ataques informáticos se realizan a través de la explotación de las vulnerabilidades del software. Es por esto que la aplicación de una metodología que disminuya la probabilidad de que esto suceda se hace imprescindible. Pero ésta no es la única razón para aplicar la seguridad en la programación de aplicaciones, ya que con la entrada en vigor del RGPD, el responsable y el encargado del tratamiento de los datos personales están obligados a aplicar medidas técnicas y organizativas apropiadas para garantizar la seguridad de éstos. (Art 32 RGPD. Seguridad del Tratamiento). Y una de estas medidas es claramente el empleo de software seguro.

Desarrollo seguro de software

Cualquier compañía de software que quiera entregar un producto o servicio de calidad a sus clientes emplea conocidas metodologías de desarrollo como el SDLC (Systems Development Life Cycle), o el Agile; metodologías que permiten planificar y organizar las tareas de desarrollo de una forma más eficiente.


Si además se quiere garantizar que el software sea seguro, es aconsejable incluir en cada una de las fases del desarrollo ciertas medidas de seguridad, tales como políticas, formación de los programadores, identificación y análisis de los requerimientos de seguridad, modelado de amenazas, definición de la arquitectura de seguridad, pruebas de controles de seguridad, análisis estático del código, análisis dinámico de la aplicación, y configuración segura.

Existen distintas metodologías y guías de buenas prácticas para desarrollar aplicaciones y servicios de calidad y seguros. A continuación, mostramos algunas de ellas:

Demostrar la seguridad del software 

Como suministradores, las compañías de software se están viendo obligadas progresivamente no sólo a emplear medidas de seguridad, sino también a demostrar que sus aplicaciones son seguras, ya sea por exigencia del cliente, o por la necesidad de cumplir alguna norma como el RGPD. Con objeto de cubrir este aspecto, las empresas a menudo optan por la contratación de auditorías de seguridad externas.  No obstante, para dar más credibilidad y confianza a los clientes lo más apropiado es hacer uso de una certificación reconocida, que además permita acreditar niveles concretos de seguridad. Entre las certificaciones más reconocidas internacionalmente tenemos las siguientes:

Common Criteria: Evalúa las funciones de seguridad y el nivel de confianza de un producto TI. Está basado en siete niveles de garantía (EAL) de severidad creciente.

CMMI: Modelo escalonado sobre el concepto de madurez de la seguridad en el desarrollo y mantenimiento de software, que define 5 niveles o escalones de madurez.

ISO 15504: La norma es conocida también como Software Process Improvement Capability Determination, abreviado SPICE. Es un modelo de cinco niveles para la evaluación de la capacidad en los procesos de desarrollo de productos software.

ISO  27034: Es un estándar múltiple compuesto por 7 partes. Desde la 27034-1 a la 27034-7. Está orientada a procesos, y describe cómo integrar un conjunto de controles de seguridad en las aplicaciones. 

PCI DSS: Define los requerimientos mínimos de seguridad de los datos que debe cumplir cualquier organización que transmita, procese o almacene información de tarjetas de pago. Estos requerimientos se resumen en doce controles de seguridad básicos.

La metodología y referencial de calificación de seguridad de LEET Security dedica, como no, uno de sus 14 capítulos a la evaluación del nivel de seguridad de las aplicaciones desarrolladas para la prestación de los servicios. Para ello consideramos las siguientes 7 secciones:

o control de acceso al código fuente

o procedimientos de gestión de cambios

o seguridad por defecto (desarrollo seguro de sistemas y aplicaciones)

o externalización del desarrollo de software

o control de vulnerabilidades

o segregación de entornos

o protección de los datos del sistema.

De esta forma, nos aseguramos que también en esta componente crítica, los servicios calificados cuentan con todas las medidas de seguridad asociadas al nivel de calificación obtenido, y que se han seguido las buenas prácticas en el desarrollo y puesta en operación de las aplicaciones utilizadas. 

All you need is LEET

Suscríbete a nuestras comunicaciones desde este enlace

Puedes seguirnos en twitter.com/leet_security

17 de julio de 2018