1.3 ESTRATEGIAS DE DISEÑO E IMPLEMENTACION
1.3.2 Soporte de las Estrategias por parte de la Infraestructura Computacional
El rápido crecimiento de la Web y otras aplicaciones basadas en Internet han alentado el desa- rrollo de una infraestructura computacional de soporte a las aplicaciones distribuidas. En tanto que los esfuerzos iniciales en la Web estuvieron concentrados en la publicación de infor- mación, su dominio de aplicación se ha extendido hasta alcanzar a espectro mucho más amplio de las necesidades computacionales de una organización. El foco técnico de este crecimiento se ha desplazado desde herramientas tales como navegadores o servidores Web hacia el desarrollo de un conjunto de servicios provistos comercialmente a través de Internet y compatibles con la misma. Ejemplos de estos servicios son servicios de archivos, impresión, transacciones, mensa- jería, directorios seguridad y objetos, tales como CORBA (Common Object Request Broker Architecture) y DCOM (Distribuited Component Object Model).
Las infraestructuras distribuidas disponibles comercialmente se encuentran en una fase temprana de su desarrollo y todavía no proporcionan directamente capacidades de supervivencia. El reco- nocimiento no es un servicio soportado y la recuperación es provista en forma indirecta por un servidor de transacciones. Generalmente, una organización adopta tal infraestructura a costos más bajos mediante el empleo de una infraestructura común para aplicaciones disponibles vía intra- nets, extranets e Internet, y para simplificar el desarrollo de aplicaciones embebiendo la compleji- dad de la computación distribuida dentro de la infraestructura más que en cada aplicación.
una infraestructura distribuida. Un requerimiento general de la supervivencia del sistema es la de atender a la autenticación de usuario, y la administración de la autoridad otorgada a ese usua- rio respecto del acceso a datos y a sistemas. La autenticación puede ser implementada emplean- do contraseñas y autorizaciones que son validadas mediante listas de control de acceso. No obs- tante, en muchos sistemas, tales como aplicaciones de base de datos, las listas de control de acceso están soportadas por la misma aplicación.
Aspecto de
supervivencia Taxonomías de estrategias
Resistencia • Seguridad tradicional, incluida la encriptación y los canales encubiertos
• Diversidad y maximización de diferencias entre nodos
particulares
• Analytic redundancy y Voting4 • Validación continua de la confianza
• Exhibición de propiedades estocásticas y comporta-
miento aleatorio
Reconocimiento • Analytic redundancy y testeo (incluidas fallas en soft- ware, encriptación y confianza)
• Monitoreo de intrusión y actividades sospechosas • Monitoreo del comportamiento e integridad del siste-
ma
Recuperación • Redundancia física y de información
• Copias no-locales de recursos de información • Preparación, presteza, planificación de contingencias
y equipos de respuesta
Adaptación y Evolución • Cambios generales y específicos para resistir, recono- cer, o recuperarse ante nuevas vulnerabilidades que van siendo descubiertas
• Difusión de alertas a todos los demás nodos • Difusión de estrategias de adaptación y evolución • Disuasión vía represalia o castigo
Tabla 2. Una taxonomía de las estrategias relacionadas con la supervivencia
Cuando los usuarios, los datos y las aplicaciones del sistema se encuentran distribuidos geográ- ficamente, se vuelve dificultoso mantener dentro de la aplicación los datos del perfil de usuario. Un servicio de directorio compartido, el cual forma parte de una infraestructura distribuida,
Las técnicas más difundidas para implementar sistemas de alta disponibilidad, ya sean de hardware o de software, incluyen la replicación con mayority voting y analytic redundancy. La replicación con mayority voting requiere de un conjunto de módulos idénticos, y determina la aquella salida que ha de ser de la mayoría de los módulos. Este método también es conocido como N-version programming cuando se lo emplea para proveer confiabilidad a un software. Analytic redundancy emplea un sistema de respaldo menos complejo para reemplazar un módulo de alto desempeño en caso de falla. Estos métodos vienen bien para ofrecer tolerancia a fallo dentro de una variedad de configuraciones. Sin embargo, en el caso de redes de computadoras, resultan suficientes métodos menos complejos y menos costosos.
puede proporcionar la capacidad de almacenamiento de datos y un protocolo, tal como LDAP (Lightweight Directory Access Protocol), para el acceso y reemplazo de los mecanismos de control de acceso específicos de cada aplicación. Estos servicios de seguridad de la infraestruc- tura pueden proporcionar los mecanismos de autenticación de usuario tales como una interfase de clave pública, mecanismos para describir el control de acceso, y los medios para definir una política de seguridad. El uso de servicios compartidos para la autenticación y autorización de usuarios debería reducir la complejidad de la aplicación y del sistema en su conjunto, como así también proveer el medio para definir una política de seguridad de la organización.
Cuando se implementa esta estrategia, la arquitectura del sistema está constreñida por los servi- cios provistos por la infraestructura y los protocolos soportados. Por ejemplo, una estrategia de supervivencia puede ser el intercambio de un servicio principal con una implementación alterna- tiva de ese servicio para el caso que el primero se vea comprometido. En el actual estadio de despliegue de la infraestructura, si bien existe un cierto grado de interoperabilidad entre los servicios provistos por diferentes fabricantes, presenta una integración de servicios tal que hace difícil o imposible el reemplazo de un servicio, como por ejemplo un servicio de directorio, con otro de un proveedor diferente.
El empleo de servicios de directorio compartido también plantea problemas generales de super- vivencia. Una infraestructura utilizada de manera extendida debería desarrollar un robusto con- junto de servicios. Sin embargo, su difundido empleo da lugar a una importante e informada comunidad de intrusos y a una vasta diseminación de información acerca de las vulnerabilidades del sistema y de las soluciones de seguridad. Un directorio comprometido o inaccesible puede afectar a múltiples aplicaciones y a múltiples sitios.
Una parte esencial para atender a la capacidad de supervivencia de un sistema es el estableci- miento de procedimientos operacionales y administrativos para el sistema de directorios de tal manera que los administradores de sistema puedan monitorear el servicio y ofrecer recupera- ción. El balance en el diseño es que la implementación de procedimientos de monitoreo y recu- peración sea menos costosa al momento de emplear componentes compartidos que emplear la arquitectura específica de una aplicación. Los servicios de infraestructura proveen un soporte genérico de replicación y mantenimiento de la consistencia a través de sitios distribuidos. No obstante, lograr la supervivencia de la misión global requiere no sólo del conocimiento del im- pacto de los datos de control de acceso comprometidos y del diseño de una política de recupera- ción, sino también del conocimiento de las aplicaciones del sistema.
Los productos de infraestructura disponibles comercialmente proporcionan servicios generales que son independientes del dominio de aplicación. Sin embargo, algunos de los servicios lista- dos en la Figura 3 requieren de conocimientos específicos del dominio de aplicación. Por ejem-
plo, el reconocimiento de una intrusión o el mantenimiento de la confianza entre los nodos requiere del conocimiento del comportamiento esperado. Un protocolo puede asegurar que la información sea entregada, pero no puede validar la pertinencia de los datos. Se pueden incluir mecanismos de recuperación simples en los logs de transacciones o de restauración de archivos; pero el empleo de transacciones, estrategias rollback y técnicas más avanzadas requieren de experiencia en el dominio para identificar estados consistentes de la aplicación y el impacto de los datos comprometidos.
El empleo exitoso de tales técnicas de recuperación se ha dado en productos centrados en la aplicación, tales como sistemas de base de datos relacionales que administran estructuras de datos relativamente homogéneas. La aplicación de estas técnicas a sistemas de computación distribuida generales es más dificultosa.