Arquitectura de seguridad para un sistema ciberfísico de adquisición, procesamiento y análisis de datos médicos de las tripulaciones que realizan entrenamiento en cámara de altura
BENEFICIARIO
Tripulaciones de vuelo que efectúen entrenamiento en cámaras de altura o hipobáricas
INTEGRANTES
- Jennifer Aguirre Velandia
- Sergio Baudin Cruz
AÑO
2023
PALABRAS CLAVE
ASCON, Aviación, Cámara de altura, Confidencialidad, Criptografia ligera, Disponibilidad, Hipobárica, Hipoxia, Integridad, IoT, Tripulaciones de vuelo, Protección de datos, Privacidad, Seguridad, Sensado.
CONTEXTO
En la actualidad la Fuerza Aeroespacial Colombiana dirige ejercicios en cámaras hipobáricas o de altura, simulando
las condiciones que se encontrarían en un vuelo y sometiendo a los tripulantes
a pruebas de hipoxia. Esto con el objetivo de entrenar a los tripulantes y
pilotos para que reconozcan los síntomas causados por la falta de oxígeno y
prevengan posibles riesgos durante el vuelo.
Para facilitar el entrenamiento,
los estudiantes de la Universidad de los Andes desarrollaron un sistema
ciberfísico para la adquisición de signos vitales durante el entrenamiento de
Cámara de altura, que ayuda a identificar cuando los tripulantes entran en
estado de hipoxia en tiempo real, monitoreando los datos de pulsoximetría,
enviando alarmas a través de un servicio web y almacenándolos en la nube para
su posterior consumo.
Este sistema se considera
vulnerable a ataques de hombre en el medio, suplantación, exfiltración de
datos, falta de autenticación y autorización en los módulos, careciendo de
controles de seguridad necesarios para la confidencialidad y privacidad de la
información de los tripulantes.
Teniendo en cuenta
la Ley de Protección de Datos Personales 1581 de 2012, los
datos relativos a la salud (como lo son los de pulsoximetría), son de carácter
sensible y, por tanto, se debe garantizarse que sean tratados como tales
cuando están siendo procesados, almacenados o cuando se encuentran en tránsito.
Ya que el sistema no cuenta con las protecciones necesarias en sus diferentes
componentes, se puede considerar que se están vulnerando los datos
privados y semiprivados de los tripulantes.
PROPUESTA
Se propone
diseñar e implementar la arquitectura de seguridad del sistema ciberfísico de
medición de pulsoximetría para cámaras de altura, de modo que permita
almacenar, trasmitir y procesar los datos sensados, manteniendo el nivel de
seguridad y privacidad adecuados. Además de asegurar la adquisición,
procesamiento y análisis de los datos médicos de los tripulantes que participan
en los entrenamientos de cámara de altura.
Considerando
las necesidades y riesgos de seguridad del sistema ciberfísico, se propone una
arquitectura de 3 módulos. Estos están diseñados de acuerdo con la
interconexión entre sus principales componentes: las estaciones (compuestas por
el tripulante y el dispositivo de sensado), el Gateway/servidor (centralizador
de peticiones y datos), la red interna (LAN) y un servicio de almacenamiento en
la nube.
Cada módulo
contará con controles a nivel de sistema para mitigar los riesgos de seguridad
identificados en el manejo de la información médica y personal de los
tripulantes.
·
Módulo 1: Estación a Gateway
El primer módulo, ubicado en la
cámara de altura, consta de cuatro estaciones para la tripulación y el sector
del instructor con actuadores de alerta. Cada estación tiene un dispositivo de
sensado “tipo guante” con un sensor de pulsoximetría y un módulo de wifi. En
el sector del instructor, el Gateway cuenta con un sensor de presión
atmosférica y actuadores de alerta (leds indicadores para señalar hipoxia en
las estaciones). El Gateway inicia el entrenamiento indicando a los sensores a
través de wifi, sincronizando los tiempos en cada estación y el sensor
barométrico. Durante el entrenamiento, los dispositivos informan al Gateway
cada 2 segundos sobre su estado. Además, el Gateway procesa y almacena los
datos, y administra un actuador para notificar al supervisor sobre cualquier
disminución brusca de la saturación de oxígeno por parte de la tripulación.
En este módulo, se busca asegurar la transmisión de datos y garantizar un
mecanismo de autenticación e identificación para cada estación hacia el
Gateway. Se pretende asegurar la autenticidad e integridad de los datos, además
de implementar una forma para reconocer, mitigar y darle trazabilidad a
acciones maliciosas, como suplantaciones de las estaciones, envío de datos no
autorizados o modificaciones en los paquetes intercambiados o fugas. Al mismo
tiempo, la estación debería gestionar su propio estado para evitar que, debido
a errores de lectura, no responda correctamente y deje de obtener los datos.
·
Módulo 2: Gateway/Servidor a LAN
En el segundo módulo, el Gateway asume un segundo rol como servidor web y procesa los datos obtenidos del módulo 1 para presentarlos a los usuarios de la red interna a través de una página web. Se propone la implementación de controles de acceso, autorización, consumo, edición y/o eliminación de datos en los diferentes componentes del sistema. Esto se realiza con el objetivo de cubrir posibles escenarios maliciosos en los que los usuarios, canales y plataformas puedan estar involucrados.
· Módulo 3: Gateway a Cloud.
El último módulo es el que se
encarga de la conexión del Gateway con un servicio en la nube. El Gateway envía
el archivo .csv con todas las mediciones del ejercicio a un servidor remoto de
Cloud, el cual actúa de almacenamiento permanente, permitiendo tener un
histórico de los ejercicios. Este módulo fue creado para garantizar
la trazabilidad y backups de los datos en caso de pérdida o eliminación, sin
embargo, necesita medidas de protección en cuanto al envío y acceso en la nube
de los datos. Debe ajustarse las medidas de acceso en el servidor web que
ayuden a mantener un control sobre los cambios de los datos y la lectura de
estos, al igual que un ajuste sobre los permisos y privilegios sobre los
archivos a subir.
RESULTADOS
Se logró implementar los controles necesarios para el manejo de la información en cualquiera de sus estados en cada uno de los módulos definidos. De igual manera, se observó el impacto de cada una de las soluciones implementadas en el sistema en términos de confidencialidad, integridad y disponibilidad, de manera que protejan los datos personales y sensibles de los tripulantes.
Módulo 1: Estación a Gateway
En este módulo se implementó un mecanismo de cifrado para los datos en tránsito y almacenamiento. Teniendo en cuenta que era necesario utilizar un algoritmo de cifrado robusto, pero que pudiera ser soportado por el sistema ciberfísico propuesto y que contara con tiempo de respuesta bajos, se utilizó el algoritmo con esquema ASCON-128. Este cuenta con funcionalidades de cifrado ligero que luego de ser probados con la infraestructura del módulo, tiene la capacidad de cifrar un mensaje de 168 bytes en 0.345 milisegundos y descifrarlo en 0.860 milisegundos, teniendo en cuenta que él envió de datos al Gateway se efectúa entre 2 a 5 segundos, el tiempo de cifrado esta de acuerdo con los requerimientos.
Para la conexión y autenticación entre la estación y el Gateway se implementó un protocolo de autenticación con llaves pre compartidas, usando el tag de la función MAC (Message Autentication Code) de ASCON. El envío y recepción de mensajes en MQTT cifrados, se lograba luego de que se hiciera la verificación del cifrado y su llave de la siguiente forma:
Con este método de autenticación, se establecían las llaves de cifrado, permitiendo el uso de ASCON para cifrar y descifrar mensajes directamente desde las estaciones y el Gateway. Por otro lado, cualquier error o fallo generado durante este proceso o la comunicación con los dispositivos se registra directamente en los logs de seguridad para ser posteriormente analizado y tomar las decisiones pertinentes. En general, el módulo contaría con trazabilidad de eventos, integridad, confidencialidad y privacidad de los datos recopilados y la disponibilidad tanto del sistema como de la información
Módulo 2: Gateway a LAN
Para este caso, el Gateway gestiona el servicio web mediante una herramienta Node-Red y otros dispositivos en la red interna pueden acceder a la página web con un dashboard para consumir los datos a través del navegador. Con esta herramienta, se abordó la seguridad de los datos recibidos desde las estaciones mediante MQTT.
Uno de los retos en este módulo fue lograr la interacción entre los lenguajes de programación JavaScript y Python, considerando que Node-Red se centra en la programación en bloques con el empleo de JavaScript, mientras que en las estaciones, las placas de desarrollo utilizan Python y MicroPython. Así se garantizó no solo la integración de los datos recibidos o enviados con estos lenguajes, sino también la validación, integridad y veracidad de los datos obtenidos del módulo anterior, los ingresados por usuarios desde la página web, la configuración del servicio, el manejo de las peticiones y las conexiones.
De igual forma, se configuró de forma exitosa el registro de eventos, manejos de sesiones, generación de formularios de autenticación, y cifrado de datos y comunicaciones mediante TLS y ASCON; todo para garantizar la confidencialidad e integridad de los datos.
Módulo 3: Gateway a Cloud
Este módulo se encarga de transportar el archivo con los datos de la estación a cloud de manera segura. Para esto se usó el gestor de almacenamiento en la nube Dropbox y su documentación, que incluía un script en Python para hacer la carga y descarga de archivos y carpetas a una aplicación de Dropbox, se generó el token de acceso que necesitará el script y se le asignaron los permisos más restringidos posibles. Como el consumo de los datos para la historia clínica está por fuera del alcance del presente proyecto y solo es necesario almacenarlos, se marcaron los permisos para ser solo de escritura a la nube y solo puede ser accedida por el usuario creador de la aplicación.
Para brindar confidencialidad, integridad y privacidad de los datos se utilizó la implementación del cifrado de ASCON en los módulos pasados, la data es almacenada cifrada al llegar a este módulo. Lo que se necesitaba para este segmento era verificar que las tareas o scripts que utilizaban el archivo de datos cifrado, no recibiera entradas de usuarios o se pudiera modificar de alguna forma por un usuario no autorizado.