Page 1 - Principios de Seguridad de Software
P. 1
Laboratorio de Ciberseguridad
Principios de Seguridad en el Software
Dr. Miguel A. Rojas – mrojas@ude.edu.uy
A/S Diego Nogueira – dnogueira@ude.edu.uy
La seguridad en el software es uno de los temas De acuerdo con McGraw (2006), la seguridad
complejos a los que se deben enfrentar los en el software debe ser parte del ciclo de vida
analistas, diseñadores, desarrolladores de de desarrollo y por consiguiente, incluirse
software y cuyo impacto en el sistema se puede como parte activa de éste mediante la
analizar desde múltiples dimensiones. aplicación de buenas prácticas de desarrollo o
al menos de considerar e incluir ciertos
En la seguridad informática se utiliza el elementos.
concepto de seguridad por capas, donde cada
capa agrega un nuevo nivel de seguridad que McGraw y Viega (2005) presentan una lista
protege de los distintos ataques. que se compone 10 elementos,
denominada “Principios rectores para la
A medida que se incrementan las capas de seguridad del software”, que deben
seguridad, el software se vuelve más complejo considerarse y aplicarse a la hora de crear
y difícil de construir, las pruebas de software cualquier tipo de aplicación o sistema de
son más difíciles de realizar y en ocasiones software. A continuación, se presenta un
presentan un impacto en la usabilidad y la breve resumen de cada uno de estos
percepción por parte del cliente. elementos.
Existe un gran número de vulnerabilidades, 1. Asegurar el eslabón más débil: Una
tipos de ataque y riesgos de seguridad que se aplicación es un conjunto de componentes
relacionan con el tipo de aplicación de interconectados insertos en un ambiente físico
software, donde algunas de estas determinado, por lo que podemos interpretarlo
vulnerabilidades son exclusivas de las como distintos eslabones de una gran cadena
aplicaciones web, de escritorio, entre otros. compuesta por elementos físicos y lógicos. La
seguridad de una aplicación está determinada
Como si esto fuera poco, la seguridad del por su eslabón más débil. Se debe trabajar en
software no depende exclusivamente de su asegurar el elemento más débil (de forma
diseño, sino que también, el contexto y la iterativa) para asegurar la aplicación en su
arquitectura física y lógica donde esta se ejecuta conjunto.
juega un papel fundamental y es una parte
importante en la defensa por capas. 2. Practicar la defensa profunda: Como
se mencionó anteriormente, la seguridad de
una aplicación consiste en una superposición
Debido a su definición, contexto y objetivo, las
aplicaciones y servicios que son accesibles por de capas. La defensa en profundidad consiste
en aplicar distintas estrategias (o capas) donde
redes, como Internet, se encuentran si una capa es inadecuada o no puede detener
particularmente expuestas y son sensibles a una
gran variedad de ataques. un ataque, otra capa puede hacerlo.
3. Controlar los fallos: A medida que los
Es importante destacar que las aplicaciones que sistemas se vuelven más complejos, el control
son accedidas desde Internet se encuentran de errores resulta vital. Los errores o fallos son
(generalmente) accesibles las 24 horas del día, inevitables, pero los problemas relacionados a
los 365 días del año y desde cualquier parte del las fallas son gestionables. Disponer de una
planeta lo que hace que la superficie de ataque estrategia para responder cuando un fallo se
siempre este expuesta a diferencia de las produce resulta crucial para limitar la
aplicaciones de escritorio que tienden a estar información que se expone en estas
más aisladas. circunstancias.