La arquitectura constituye los cimientos sobre los cuales se erigirán nuestras aplicaciones.
Fuente: open stand
Posibles riesgos
El desarrollo seguro comienza con el diseño y la definición de nuestra arquitectura, teniendo en mente las posibles amenazas que pudieran poner en riesgo nuestro sistema, especialmente aquellas derivadas por el uso de componentes que:
- no estén identificados.
 - sean antiguos o incompatibles, que estén obsoletos o hayan dejado de ser soportados.
 - posean vulnerabilidades conocidas.
 - tengan puertos abiertos no indispensables.
 
Mejores prácticas
A continuación se detallan las mejores prácticas a la hora de diseñar, definir y mantener una arquitectura segura:
- Inventario que identifique cada componente de la arquitectura. Todo componente debe estar identificado, o de lo contrario se incurrirá en riesgos de seguridad.
 - Revisión del bastionado de componentes:
 - Identificación de dependencias internas:
 - Módulos.
 - Librerías.
 - Frameworks.
 - Plugins o complementos.
 - Servicios.
 - Otras.
 - Estado de actualización.
 - Configuraciones:
 - Puertos activados (solo los indispensables).
 - Usuarios y contraseñas personalizados (no por defecto).
 - Modo de depuración desactivado.
 - Otras configuraciones de seguridad (ajustadas a una mayor seguridad).
 - Identificación de vulnerabilidades y sus parches de seguridad. En caso de no existir parche:
 - analizar el riesgo y su impacto
 - proponer y adoptar:
 - un plan de vigilancia.
 - un plan de contingencias.
 - realizar un estudio de viabilidad de componentes alternativos.
 - Asegurar la seguridad perimetral lógica mediante la segmentación de red, firewalls, dispositivos IDS, etc.
 - Asegurar la protección de datos mediante:
 - autorización entre entornos.
 - copias de seguridad.
 - Proporcionar un entorno virtual como zona de trabajo, a ser posible, por lenguaje de programación.
 - Mantener las actualizaciones más recientes de:
 - lenguajes de programación
 - paquetes instalados
 - frameworks y librerías
 - herramientas de análisis y seguridad de los IDEs
 - En caso de trabajar con DevSecOps, dotar de herramientas de análisis de seguridad a lo largo del ciclo de vida del software, antes del despliegue en cada entorno.
 
