6. Principios para un Diseño Seguro.
Algunas vulnerabilidades pueden incorporarse a la aplicación a partir de decisiones de diseño
incorrectas. Aplicar principios de diseño seguro ayuda a prevenir este tipo de fallos.
6.1 Minimizar la Superficie de Ataque.
Cada línea de código es un bug en potencia. Cada bug puede implicar en una vulnerabilidad y ser
explotada. Se debe reducir la cantidad de componentes y librerías de las que se dependerá. Esta
práctica afecta la cantidad final de errores en el código.
6.2 Diseñar para ser Mantenido
Indefectiblemente, habrá que corregir errores o fallos. Sin embargo, la arquitectura de la aplicación
puede perjudicar o ayudar en su mantenimiento. Será más viable corregir vulnerabilidades de seguridad
en un sistema con arquitectura simple y mantenimiento sencillo.
Factores como la complejidad de módulos y arquitectura afectan a la seguridad de la aplicación por el
efecto que tienen sobre su mantenibilidad. La rapidez con la que se corrigen los errores afecta la
“ventana de vulnerabilidad”, siendo ésta el plazo durante el cual se desconoce la existencia de una falla
de seguridad en el sistema.
6.3 El eslabón más débil.
Generalmente, los atacantes utilizarán inicialmente las vulnerabilidades más fáciles de explotar. La
arquitectura de seguridad de su aplicación será tan resistente como lo sea el componente con la mínima
seguridad.
Es una buena práctica identificar los puntos débiles de la seguridad de la aplicación mediante revisiones
de diseño y una vez detectados, fortalecerlos ajustando el diseño o implementando controles de
seguridad.
6.4 Seguridad por Defecto.
Los usuarios usualmente tienden a no configurar los parámetros de seguridad por lo que este tipo de
controles deben ser configurados de la forma más segura posible. Eventualmente se puede ofrecer la
posibilidad de deshabilitar algunos de ellos. Como principio general, se recomienda desalentar
configuraciones inseguras.
6.5 Mantener la Usabilidad.
El buen software es transparente para el usuario. Es esencial negociar un equilibrio entre controles de
seguridad y la usabilidad del sistema. Este principio también se conoce como “Aceptabilidad
psicológica”. Deberá evitarse generar experiencias de usuario que puedan confundir a los usuarios y
llevarlos a tomar malas decisiones de seguridad.
6.6 Autorización para Todo por Defecto.
Por defecto, debe requerirse autorización para acceder a los recursos de la aplicación. En caso de que se
decidiera publicar ciertos recursos, debe fundamentarse tal decisión en base a reglas de la organización.
IF-2021-76718462-APN-DNCIB#JGM
Adicionalmente, debería hacerse un análisis de los riesgos asociados a la decisión
que se adopte.
Página 13 de 35
Select target paragraph3
Connect to a paragraph
Connect to an entity
Disable highlights
Add to table of contents