Advanced aaa system for interoperable distributed architectures

  1. Paniagua Diez, Fidel
Supervised by:
  1. José Sierra Cámara Director
  2. Diego Suárez Touceda Co-director

Defence university: Universidad Carlos III de Madrid

Fecha de defensa: 25 May 2020

Committee:
  1. Florina Almenares Mendoza Chair
  2. Manuel Sánchez Rubio Secretary
  3. Antonio Izquierdo Manzanares Committee member

Type: Thesis

Teseo: 620633 DIALNET

Abstract

La tecnología está en continua evolución con el empleo de nuevos dispositivos y sistemas y como ellos se comunican. En los últimos años, esta evaluación ha traído nuevas tendencias como Bring Your Own Devices (BYOD), Cloud Computing o Internet of Things. La integración de estas tendencias, tanto en el entorno personal como en el entorno corporativo, ofrece nuevas oportunidades a cambio de incrementar la superficie de ataque. Desafortunadamente, las medidas de protección tradicionales no son suficientes para proteger la información en estos nuevos escenarios, ya que estos no pueden depender de soluciones basadas en centralización (la información va a ser almacenada y usada en múltiples y heterogéneos dispositivos), ni en el aislamiento físico (los dispositivos tienden a estar fuera del los límites de seguridad del propietario de la información, su intranet), ni en soluciones que requieran gran carga computacional (algunos dispositivos dispondrán de recursos computacionales muy limitados). Un buen ejemplo de estos problemas son las noticias sobre fugas de datos que continuamente han aparecido en las noticias durante los últimos años. Casos como el del robo de fotografías privadas de la actriz Jennifer Lawrence, el robo de información interna de las compañías por sus propios trabajadores, como en Google y Allen & Hoshall, o el famoso caso de la publicación de información sensible de la NSA por parte de Edward Snowden. A medida que evolucionamos de sistemas aislados a una red de dispositivos heterogéneos que comparten información, la superficie de ataque se traslada de la red interna de las empresas a un nuevo entorno distribuido sin barreras. Tradicionalmente, la información se administraba dentro de la red interna de una empresa utilizando dispositivos configurados de forma segura. Sin embargo, hoy en día, la mayor parte de la información ya no se almacena ni se utiliza dentro de este entorno interno (por ejemplo, computación en la nube). Además, los dispositivos externos pueden compartir la información que recopilan y recibir información de otros dispositivos o servicios, lo que dificulta la validación de los dispositivos que utilizan la información a la vez que se asegura su control de acceso. Y lo que es peor, las capacidades limitadas de la mayoría de estos dispositivos hacen que la implementación de medidas de seguridad de última generación no sea práctica (por ejemplo, dispositivos “werable”). Múltiples ejemplos pueden ser dados para ilustrar esta evolución en diferentes entornos y como los nuevos escenarios reclaman nuevas soluciones de seguridad: -> Entorno personal: En sus entornos privados, las personas pasaron de tener un único ordenador de sobremesa que almacenaba toda su información a usar varios dispositivos heterogéneos (ordenadores portátiles, tabletas, teléfonos móviles, dispositivos “wearable, etc), algunos de ellos con capacidades computacionales muy bajas y los cuales no solo almacenan información, sino que también la generan (comportamiento de los usuarios, preferencias, etc.) y la comparten en la nube. -> Entorno corporativo: Las redes corporativas fueron sistemas con límites bien definidos. Sin embargo, a día de hoy con la aparición del trabajo remoto, los servicios externalizados, computación en la nube, BYOD o Corporate Owned, Personally Enabled (COPE) hace que estos límites no estén claros. -> Entorno de la Salud: este entorno también ha seguido el mismo camino de descentralización, heterogeneización y compartición de información con la llegada de la digitalización. Sin embargo, debido a la sensibilidad de esta información (registros médicos, configuración de un marcapasos, etc), su protección es crucial, pero al mismo tiempo es difícil de alcanzar cuando se integran en los procesos médicos dispositivos con baja capacidad computacional tales como dispositivos “wearable”. -> Entorno militar: En general estos entornos han sido siempre los más restrictivos con sistemas y redes clasificadas que suelen estar aisladas. Sin embargo, para mantener competitividad han necesitado evolucionar. Ejemplos de esta evolución son, entre otros, el uso de dispositivos portables para monitorizar y ayudar a los soldados en el campo de batalla, usando vehículos aéreos no tripulados para completar o tener soporte en sus misiones o la descentralización de las estaciones de control de tierra, sistemas que tradicionalmente eran centralizados y que estaban protegidos físicamente, y que ahora se pueden configurar de forma particular para cada misión Estos ejemplos, especialmente los dos últimos (salud y militar) por ser más exigentes en sus medidas de seguridad, han sido el inicio de discusiones acerca de la capacidad de las soluciones existentes para proporcionar a estos entornos tres servicios esenciales de seguridad: Autenticación Autorización y Contabilidad (Authentication, Authorization y Accounting en inglés) que también se le conoce como AAA. La autenticación es un servicio de seguridad que garantiza que un usuario es quien dice ser después de su identificación mediante un identificador o valor similar. El usuario primero responde a la pregunta "¿Quién eres?" (identificación) y luego tiene que proporcionar una prueba de ello. La autenticación se puede proporcionar utilizando uno, o una combinación, de los siguientes elementos: algo que sabe (por ejemplo, una contraseña), algo que es (por ejemplo, una característica biométrica como una huella digital) o algo que tiene (por ejemplo, un token de autenticación como una tarjeta inteligente). Existen varios protocolos conocidos que proporcionan autenticación de extremo a extremo (entre otros servicios de seguridad) como Transport Layer Security (TLS) o EAP-TLS para tarjetas inteligentes. Desafortunadamente, no son una opción viable para los entornos presentados debido a la ausencia de los recursos necesarios para implementar una pila TCP/IP y para administrar la sobrecarga de algunos de los dispositivos involucrados (por ejemplo, dispositivos “wearable”). Existen algunas soluciones que abordan el problema de un servicio de autenticación segura para estos dispositivos, pero que están más preocupados por autenticar al usuario que tiene el dispositivo sin dar importancia al propio dispositivo y que están limitados a escenarios donde existe una comunicación directa entre los extremos de la autenticación. Por lo tanto, es necesario asegurar los entornos descritos para ir un paso más allá y disponer de dispositivos “wearable” autónomos e independientes que puedan realizar una autenticación extremo a extremo por sí mismo con una entidad remota. Con esto en mente, hemos propuesto un protocolo de autenticación que permite la autenticación segura y mutua extremo a extremo entre un dispositivo “wearable” y cualquier otra entidad, como otro dispositivo “wearable”, un dispositivo personal (teléfono móvil), un servidor remoto o una aplicación de un usuario. Nuestro diseño utiliza un protocolo de autenticación punto a punto independientemente de si otros dispositivos intermedios son confiables o no. La autorización responde a la pregunta "¿Qué puedes hacer?". Una vez que un usuario se ha autenticado con éxito, se pueden tomar decisiones sobre qué acciones se le permite realizar y cuáles no, de acuerdo con una política de seguridad. Como en el caso de la autenticación, existen varias soluciones conocidas para la autorización en sistemas distribuidos, incluidas algunas con grandes restricciones para entornos de salud o militares. Sin embargo, ninguna de estas soluciones está disponible para las características específicas (portabilidad, tamaño pequeño, recursos y capacidad computacionales bajos, rango limitado de conectividad, etc.) asociados con los dispositivos portables actuales. Por el contrario, las soluciones orientadas a estos dispositivos se centran en proteger (mediante el uso de cifrado) el acceso a la información de terceros no autorizados y no cubren el control de acceso sobre la información cuando el dispositivo la maneja. Por lo tanto, es necesario desarrollar un sistema de control de acceso para proteger el acceso a la información almacenada en el dispositivo portable que no solo controle quién puede acceder a la información sino también qué se puede hacer con ella. Con esto en mente, propusimos un protocolo de autorización que, además de proteger la información del acceso no autorizado, también permite definir (mediante una política de seguridad) y aplicar (mediante una solución de hardware y software) un conjunto de restricciones sobre cómo debe manejarse la información en el dispositivo portable. A continuación, se ha propuesto un sistema completo de control de acceso, combinando el protocolo de autenticación y autorización descritos anteriormente, para dispositivos portables actuales. El sistema de control de acceso definido puede ser integrado en entornos corporativos y para validarlo se han desarrollado dos prototipos reales para estaciones de control de tierra, uno para el Sistema de Comando y Control y el otro para el Sistema de Monitorización. Este sistema de control de acceso integra el eXtensible Access Control Markup Language (XACML), que es un lenguaje basado en XML ampliamente utilizado para definir políticas de control de acceso basadas en atributos (Attribute Based Access Controla en inglés (ABAC)). XACML fue desarrollado para estandarizar el control de acceso basado en atributos, proporcionando una terminología común que permitiese la interoperabilidad entre múltiples implementaciones de ABAC, usando para ello un conjunto de políticas de seguridad que permita tomar una decisión de acceso basada en los atributos del sujeto, los atributos del recurso y las condiciones del entorno. A pesar de su gran uso, la mayoría de sus implementaciones sufren un grave problema de rendimiento cuando aumenta el número y la complejidad de las políticas de seguridad. Es cierto que se han realizado algunas propuestas para mejorar el rendimiento, pero lo hacen a costa de reducir la funcionalidad ofrecida. Por ello, es necesario desarrollar una solución para reducir la complejidad computacional de evaluar las políticas XACML mientras se mantienen todas las funcionalidades. Con esta limitación en mente, desarrollamos una forma de modelar y almacenar políticas XACML dentro de una base de datos gráfica. Una de las características más llamativas de estas bases de datos es el alto rendimiento ofrecido en las operaciones sobre los datos. Por lo tanto, si las políticas de seguridad se evaluasen utilizando estas bases de datos, la propiedad de rendimiento se garantiza automáticamente. Además, debido a la potencia de los motores y conectores que ofrecen estas bases de datos, también podemos garantizar que podamos ofrecer todas las funciones definidas por XACML. Sin embargo, en algunos escenarios donde existen servicios que ya utilizan una implementación clásica de XACML, cambiar la arquitectura necesaria para la solución propuesta anteriormente puede no ser una opción. Para tales escenarios, hemos definido un enfoque híbrido compatible con las implementaciones clásicas de XACML que minimiza las modificaciones necesarias en la arquitectura al tiempo que mejora el rendimiento del sistema utilizando una base de datos gráfica. En ambos casos se ha implementado un prototipo que demuestra su viabilidad y que nos permitió validar la mejora en rendimiento frente a las soluciones clásicas. La contabilidad es un servicio de seguridad que responde, entre otros, a la pregunta "¿Qué hiciste?" haciendo un seguimiento de las actividades del usuario (generalmente, utilizando registros de datos). Para proporcionar un servicio de contabilidad confiable, garantizar la integridad de los datos registrados es clave. Existen varias soluciones para almacenar y administrar los registros generados por los sistemas, pero la mayoría de ellas dependen de servidores centrales para su almacenamiento y de terceros de confianza para asegurar su integridad. Esta dependencia de una arquitectura centralizada hace que estas soluciones no sean adecuadas para los entornos distribuidos y heterogéneos en discusión dentro de esta tesis. Con estas limitaciones en mente, ha surgido una corriente de investigación para evaluar el uso de Blockchain como una solución para resolver este problema. Estas propuestas ofrecen la inmutabilidad de los registros en entornos heterogéneos y descentralizados, pero no proporcionan un control de acceso detallado a los registros de datos (los datos son públicos para todos los miembros de la red Blockchain), al contrario de lo que ocurre en las soluciones centralizadas. Por lo tanto, es deseable encontrar una solución adecuada para los entornos heterogéneos y descentralizados mientras se mantienen todas las características de seguridad relevantes de los sistemas centralizados. Con estas limitaciones en mente, se ha desarrollado un sistema de registro de logs basado en Blockchain que no tiene dependencias con terceros de confianza, provee inmutabilidad de los logs, confidencialidad y control de acceso (tanto a nivel de nodo Blockchain como a nivel de usuario). Además se diseñó e implementó un prototipo que permitió validar tanto que el sistema propuesto es técnicamente posible como que puede proveer todas las funcionalidades previstas. Como se ha descrito anteriormente, durante el transcurso de esta tesis nos hemos enfrentado al problema de AAA para entornos heterogéneos y distribuidos desde diferentes ángulos y ofrecemos soluciones para las principales brechas de seguridad identificadas. Sin embargo, diseñar una solución de seguridad específica para todos los posibles escenarios heterogéneos y distribuidos es un tema demasiado amplio para ser abordado en una sola tesis. Por ello, de la investigación realizada y las soluciones propuestas se abren varias líneas de trabajo futuro, tales como: -> Evaluar la flexibilidad de nuestro sistema de control de acceso ligero para su uso en dispositivos IoT que son aún más restringidos que los dispositivos portables estudiados en esta tesis, como por ejemplo los sensores, y que evalue si este sistema es lo suficientemente flexible como para integrarse dentro de una arquitectura IoT. Nuestro sistema de control de acceso necesita conectar un token seguro al dispositivo IoT y nuestra propuesta requiere, o bien de una conexión NFC o de una ranura para tarjeta SD. Por lo tanto, el primer paso es validar si en los sensores IoT podría integrar físicamente el token seguro y si su firmware puede integrar una aplicación segura para administrar los recursos de acuerdo con el formato definido por nuestro sistema de control de acceso ligero. Además, también sería necesario evaluar si tiene sentido usar la arquitectura diseñada con el proveedor de servicio y de identidad propuestos, o si esta arquitectura debe adaptarse de acuerdo a las diferentes capas existentes en una arquitectura IoT. -> Extender nuestro sistema de control de acceso multinivel para proporcionar un control de acceso híbrido, basado en roles y en atributos. Hay algunas propuestas que combinan estos dos modelos de control de acceso para construir un protocolo de control de acceso híbrido. Por lo tanto, el objetivo de esta investigación sería extender nuestro protocolo de control de acceso ligero para incluir información relacionada con los roles de los usuarios, definir cómo se puede integrar en la arquitectura definida y cómo se puede procesar. -> El prototipo del modelo de base de datos gráfica puro cubre un subconjunto (operadores de comparación) de las operaciones XACML. Por lo tanto, sería interesante extender este prototipo para cubrir todas las operaciones de XACML y llevar a cabo un análisis de rendimiento detallado que permita validar los resultados obtenidos con nuestro prototipo. -> Nuestro sistema XACML híbrido se ha prototipado utilizando la librería Balana incluida en el servidor de identidad de WSO2. Debido a los buenos resultados de rendimiento obtenidos, creemos que sería interesante evaluar la integración de esta solución dentro de la versión oficial del servidor de identidad de WSO2. -> El sistema de registro de logs implementa una forma de localizar cada almacén de registros creado en la red que es muy similar a un sistema de nombres de dominio (DNS) y que permite que los operadores los puedan localizar. Por ello, encontramos interesante explorar la integración de las soluciones DNS que existen en el entorno Blockchain, como Ethereum Name Service, en nuestro propio sistema. -> Un área importante en la que se usa Blockchain es la identidad digital, que se conoce como identidad digital auto-soberana. Es una evolución de los sistemas de identidad anteriores porque la información de identidad del usuario está bajo su control, debido a que no es necesario que un tercero de confianza administre esa información, ya que la esta confianza la proporciona la propia red Blockchain. Por lo tanto, como nuestra solución de registro de logs necesita recibir información del usuario para evaluar la política de seguridad, sería interesante integrar una solución de identidad digital auto-soberana para administrar la información del usuario.