Evitar defectos de seguridad en el diseño de software seguro

Recomendaciones y técnicas de expertos sobre cómo evitar los defectos de seguridad en el diseño de software seguro.

El Centro del IEEE para el Diseño Seguro (CSD) ha publicado un reporte con 10 recomendaciones para evitar los defectos de seguridad en el diseño de software.

El diseño de software seguro tiene como objetivo permitir que el sistema soporte y cumpla con los requerimientos necesarios de autenticación, autorización, confidencialidad, integridad de datos, rendición de cuentas, disponibilidad, y no repudio, inclusive cuando el sistema está bajo ataque.

El CSD juntó a especialistas en el tema para discutir los tipos de defectos de seguridad en el diseño de software. Los especialistas analizaron fallas encontradas en sus propias revisiones de diseño o que estaban disponibles a partir de datos externos.

Un sistema puede tener defectos de implementación o errores de programación que pueden ocasionar que sea violada la seguridad del sistema.

Los especialistas identificaron una lista de las principales fallas de diseño de seguridad, muchas de las cuales han sido conocidas por décadas y que aún se siguen presentando en el diseño de software. A la lista sumaron recomendaciones y técnicas de cómo evitar los defectos de seguridad.

Para evitar los defectos mayores de seguridad en el diseño de software, los expertos recomiendan:

  • Ganar o dar, pero nunca asumir, confiar.
  • Utilizar un mecanismo de autenticación que no pueda ser eludido o manipulado.
  • Autorizar después de la autenticación.
  • Separar estrictamente las instrucciones de datos y de control, y nunca procesar las instrucciones de control recibidas de fuentes no confiables.
  • Definir un enfoque que asegure que todos los datos son validados explícitamente.
  • Utilizar criptografía correctamente.
  • Identificar los datos sensibles y cómo deben ser manejados.
  • Considerar siempre a los usuarios.
  • Comprender cómo la integración de los componentes externos cambia su superficie de ataque.
  • Ser flexible al considerar los cambios futuros a los objetos y actores.

Deja una respuesta