El diseño inseguro y las fallas arquitectónicas son una nueva categoría de riesgos para 2021, y es crucial ir más allá de la estrategia de “shift-left” en el espacio de la codificación para llevar a cabo actividades previas al código que son fundamentales para los principios de Diseño Seguro. Notables Enumeraciones Comunes de Debilidades (CWEs) incluyen CWE-209, CWE-256, CWE-501 y CWE-522.
El diseño inseguro representa una “falta de diseño de control efectivo” y es diferente de una implementación insegura. El diseño seguro es una cultura y metodología que evalúa las amenazas y asegura que el código sea diseñado y probado de manera robusta para prevenir métodos de ataque conocidos. Se requieren un ciclo de desarrollo seguro, patrones de diseño seguros, una metodología de camino pavimentado, una biblioteca de componentes seguros, herramientas y modelado de amenazas para el desarrollo seguro de software.
La falta de perfilado de riesgos comerciales inherente al software o sistema en desarrollo es uno de los factores que contribuyen al diseño inseguro. Para prevenir el diseño inseguro, se debe contar con profesionales de seguridad de aplicaciones (AppSec) para evaluar y diseñar controles de seguridad y privacidad, y establecer una biblioteca de patrones de diseño seguros.
Se debe utilizar el modelado de amenazas para la autenticación crítica, el control de acceso, la lógica empresarial y los flujos clave. El lenguaje y los controles de seguridad deben integrarse en las historias de usuario, y se deben realizar comprobaciones de plausibilidad en cada nivel de la aplicación. Por último, se debe limitar el consumo de recursos por parte del usuario o del servicio, y se deben segregar las capas de nivel en los sistemas y las capas de red según las necesidades de exposición y protección.
Para mejorar aún más la seguridad de su aplicación y protegerse contra el diseño inseguro, sugerimos aprovechar servicios como INFRA www.infrascan.net y check.website.