10 nov 2015

Elementos de la capa transversal en arquitecturas Microsoft

Autenticación y autorización.
Diseñar una buena estrategia de autenticación es importante para la seguridad y confiabilidad de la aplicación.
Fallar en el diseño de la estrategia de autenticación deja a la aplicación vulnerable a ataques de tipo spoofing attacks, dictionary attacks, session hijacking y otros.
Diseñar una buena estrategia de autorización es importante para la seguridad y confiabilidad de la aplicación.
Fallar en el diseño de la estrategia de autorización deja a la aplicación vulnerable a divulgación de información, manipulación de datos, y aumento de privilegios.

Almacenamiento en caché.
El almacenamiento en caché puede mejorar el rendimiento y la capacidad de respuesta de la aplicación. Sin embargo, un mal diseño puede degradarlos.
Se debe utilizar el almacenamiento en caché para optimizar la búsqueda de datos recurrentes,  disminuir la carga en la red de comunicaciones y evitar la duplicidad de procesamiento.
Cuando se implementa el almacenamiento en caché se debe decidir cuándo cargar los datos y cuándo removerlos debido a que han expirado.
Se recomienda el uso de mecanismos asíncronos para la carga (en caché) de datos de uso recurrente.

Comunicaciones.
Las comunicaciones se refieren a la interacción entre los componentes de la aplicación a través de capas y niveles. El mecanismo a elegir depende de los escenarios de implementación que la aplicación debe soportar.

Administración de la configuración.
Diseñar un buen mecanismo de gestión de la configuración es importante para la seguridad y la flexibilidad de la aplicación.
No hacerlo deja a la aplicación vulnerable a una variedad de ataques y también conduce a una sobrecarga administrativa para la aplicación.

Administración de excepciones.
Diseñar una buena estrategia de gestión de excepciones es importante para la seguridad y la confiabilidad de la aplicación.
No hacerlo puede obstaculizar el diagnóstico y la resolución de problemas de la aplicación. También puede dejar a la aplicación vulnerable a un ataque de denegación de servicio (DoS) que podría revelar información sensible y crítica.
El manejo de excepciones es un proceso costoso, por ello es importante que el diseño tome en consideración los problemas de desempeño.
Un buen enfoque es diseñar un mecanismo de manejo de excepciones centralizado y considerar puntos de acceso dentro de un sistema de gestión de excepciones (como WMI) como soporte a los sistemas de monitoreo empresarial como Microsoft System Center.

Registro (logging) e instrumentación.
Diseñar una buena estrategia de registro (logging) e instrumentación es importante para la seguridad y confiabilidad de la aplicación.
No hacerlo puede dejar vulnerable a la aplicación a repudiation threats, en donde los usuarios niegan sus acciones y el repositorio de almacenamiento de registro puede ser requerido para demostrar fechoría en procedimientos legales.
Se debe auditar y registrar toda actividad a través de las capas de la aplicación, que pueda ayudar a detectar actividades sospechosas y proporcionar alertas tempranas de un ataque grave.
La instrumentación puede ser implementada mediante el uso de contadores de desempeño y eventos que proporcionen al administrador del sistema, información acerca del estado, el desempeño y la salud de la aplicación.

Administración del estado.
La gestión del estado se refiere al manejo de la persistencia de datos que representan el estado de un componente, operación o fase de un proceso. Los datos del estado pueden ser persistidos utilizando diferentes formatos y tipos de almacenamiento. El diseño de un mecanismo de gestión de estado, puede afectar el desempeño de la aplicación. Persistir incluso pequeños volúmenes de información de estado puede afectar el rendimiento y la capacidad de escalabilidad de la aplicación. Se deben tomar en cuenta las opciones que están disponibles para la gestión del estado.

Validación.
Diseñar un mecanismo eficaz de validación de datos de entrada es importante en términos de usabilidad y confiabilidad de la aplicación.
No hacerlo puede dejar a la aplicación abierta a datos inconsistentes, violaciones a reglas de negocio y una mala  experiencia de usuario.

No realizar validaciones de entrada adecuadamente también puede generar problemas de seguridad como cross-site scripting attacks, SQL injection attacks, buffer overflows, y otros tipos de ataques de entrada.

No hay comentarios.: