Inicio / Protege tu empresa / Blog / Cada mochuelo a su olivo: separación de personal y entornos

Cada mochuelo a su olivo: separación de personal y entornos

Publicado el 31/08/2015, por INCIBE
Cada mochuelo a su olivo: separación de personal y entornos

En contra de lo que muchos pueden creer, las buenas prácticas para el desarrollo seguro de software no se limitan únicamente a crear un código limpio, eficiente y libre de vulnerabilidades, sino que existe una importantísima componente organizativa que por desgracia no siempre se tiene en cuenta.

Existen componentes vitales sin los cuales todos los recursos que invirtamos en testear el software y auditar su seguridad pueden no servir para nada: hablamos de la importancia de la segregación de tareas y de la necesidad de que dispongamos de entornos diferenciados para desarrollo, pruebas y producción.

La separación de entornos consiste en tener plataformas independientes para los diferentes pasos por los que debe pasar un desarrollo durante todo su ciclo de vida: el entorno de desarrollo será donde crearemos y modificaremos todo el código de la aplicación. Una vez el código esté listo, lo migraremos a preproducción para probarlo antes de considerarlo definitivo, momento en que pasará al entorno de producción donde será explotado.

Si no hacemos una adecuada separación de entornos es posible que los datos con los que hagamos las pruebas no sean una muestra significativa o valida, pueden estar corruptos, es posible que se hayan cambiado sin un adecuado control, pude ser que acabemos validando versiones del software que volverán a ser modificadas con el consiguiente riesgo de fallos funcionales y de seguridad, etc.

Por otro lado la segregación de tareas consiste en dividir la creación, mantenimiento y operación de sistema entre el diferente personal de modo que, por ejemplo, quien haya creado la aplicación no vaya a utilizarla en su día a día, evitando así que quien haya diseñado las medidas de seguridad para controlar al usuario, no acabe siendo usuario.

Con una correcta segregación de tareas mantendremos también un código más estable y modular ya que, por ejemplo, la seguridad de la base de datos será independiente de la de la aplicación al estar diseñadas por personal diferente que debe ocuparse de que su parte sea completa y funcional.

La segregación de tareas puede parecer menos crítica de lo que realmente es, pero la debemos tener en cuenta que ante una segregación de tareas insuficiente nos expondremos a que las aplicaciones no tengan una estructura solida, se utilicen "trucos" incontrolados al utilizar la aplicación, o que un técnico descontento pueda modificar el sistema, ya sea para sabotearlo o sacar provecho personal.