Componentes Básicos de un S.E.
El número de sistemas embebidos o empotrados, según datos de wayback machine (2013), existen en el mundo mas de los 10.000 millones, una cifra que sigue creciendo día a día. No solo están desplegados en la industria, sino que afectan a cualquier faceta de nuestra vida, gran cantidad de equipos de uso diario integran estos sistemas, como coches, ascensores, juguetes, kinect, entre otros.
Los sistemas embebidos se cree que son cerrados debido a la carencia de interfaces con el usuario o con otros dispositivos, cuando realmente son equipos totalmente funcionales cuyo objetivo es ejecutar tareas de control. Los sistemas embebidos no siempre son sistemas de tiempo real, en realidad, no requieren esta característica por defecto. Básicamente, un sistema embebido se caracteriza por dos funcionalidades:
- Fiabilidad: Deben ser capaces de funcionar de manera ininterrumpida en modo desatendido.
- Personalización: Deben posibilitar la modificación del sistema de acuerdo a las necesidades del proceso.
Un problema de los sistemas embebidos es que, por norma general, están diseñados sin seguridad, ofreciendo una conectividad sin límites y las medidas protectoras que ofrece el mercado son muy escasas. Los primeros sistemas embebidos se basaban exclusivamente en el procesador (microcontrolador), sin un sistema operativo y con las instrucciones grabadas directamente sobre él. Cuando el procesador quedaba obsoleto, el dispositivo también, y con ello la programación.
Al rededor de los años 80 cuando surgen los primeros sistemas embebidos con sistema operativo, sobre todo para cubrir las necesidades de comunicación, independizando las aplicaciones del hardware y permitiendo la reutilización de librerías. Las características de los sistemas operativos modernos incluyen (aunque no todos los sistemas embebidos las usen):
- Interfaz gráfica con el usuario
- Implementación de pilas de protocolos
- Soporte para almacenamientos externos, como USB.
Principales problemas de seguridad
Como sucede con la mayoría del equipamiento industrial, los sistemas embebidos están pensados para ser seguros a nivel físico, incorporando medidas de reinicio en caso de fallo (watchdog), partes hardware duplicadas, programación inmune a fallos, entre otros.
Algunas de las debilidades de los sistemas embebidos que afectan a la ciberseguridad a nivel lógico que se pueden encontrar son:
- Compartir secretos: En muchas ocasiones, determinada información sensible, como contraseñas, se comparten entre las aplicaciones propias del fabricante para que se comuniquen más fácilmente unas con otras. Esta compartición permitiría a un potencial atacante por acceder con un mismo usuario a múltiples aplicaciones.
- Certificados privados: para muchos servicios se utilizan certificados autofirmados que no disponen del respaldo de entidades de confianza, bajando el nivel de seguridad de los servicios. El uso de estos certificados puede ser aprovechado por un atacante, utilizando otros generados de forma específica y permitiéndole realizar acciones en el dispositivo o engañar al usuario.
- Contraseñas embebidas y puertas traseras: Suelen ser dos características muy habituales. El fabricante incluye contraseñas embebidas impidiendo que puedan ser modificadas con el paso del tiempo y haciendo que en todos los clientes se utilicen las mismas. Las puertas traseras les permiten a los fabricantes el acceso a los dispositivos embebidos sin tener en cuenta los posibles cambios que haya realizado el cliente. El aprovechamiento de estas debilidades por un atacante le permitiría obtener información del dispositivo o incluso llegar a tomar su control.
- Fallos de código libre: Muchas partes de código de los sistemas embebidos se basan en rutinas o procedimientos reutilizados, muchas veces incluso código libre. Este código no suele revisarse y puede provocar fallos, bien con otras partes del sistema o por debilidades en su programación. Estos fallos pueden ser aprovechados por los atacantes como puntos de entrada para ataques más evolucionados.
- Criptografía débil o inexistente: Los métodos de cifrado utilizados suelen ser escasos. El uso de comunicaciones cifradas solo se utiliza en las últimas versiones más avanzadas, mientras que las versiones más sencillas disponen de comunicaciones tipo Telnet y HTTP con sus carencias ampliamente conocidas. Esta limitación permitiría a un potencial atacante capturar e interpretar el tráfico intercambiado entre dos dispositivos, pudiendo conseguir información sensible del dispositivo.
- Autenticación débil o inexistente: La autenticación de los dispositivos suele basarse en un código PIN (como los móviles) o directamente no disponer de ningún tipo de control de accesos. Un potencial atacante podría utilizar métodos de fuerza bruta sin demasiados problemas para conseguir el acceso a los dispositivos o aplicaciones.
- Explotación del software servidor (HMI, gestión, web): Algunos de los servicios ofrecidos se hacen en modo cliente-servidor, siendo el servidor el dispositivo embebido. Estos servicios pueden ser vulnerables a ataques de tipo XSS, inyección SQL, etc. El aprovechamiento de estas debilidades por parte de un atacante podría suponer una denegación de servicio del dispositivo o la ejecución de código remoto, con los consiguientes problemas para el operador.
- Comunicaciones entrada/salida: Los puertos de comunicaciones con el exterior son los puntos más débiles de los sistemas embebidos. De forma general, no puede deshabilitarse su uso, de manera que todos los puertos disponibles están siempre disponibles aunque no se usen para nada. Los puertos que no se encuentran en uso por las necesidades del dispositivo pueden ser aprovechados por un potencial atacante como punto de entrada al dispositivo para tratar de tomar su control.
- Explotación de la lógica en escalera: La propia programación del bucle de control que realiza no suele estar adecuadamente protegida, de manera que puede modificarse para realizar pasos diferentes a los desarrollados por el fabricante. Un potencial atacante podría obtener y modificar la programación del dispositivo, haciendo que éste realice unas acciones diferentes poniendo en riesgo todo el proceso, incluso vidas humanas y el medio ambiente.
- DoS y DDoS: Son la consecuencia más típica ante cualquier ataque. Estos dispositivos no suelen contar con control de tramas de red o similar, de manera que una petición reiterada de información puede llegar a saturar los canales de comunicación. Pero no solo las comunicaciones pueden provocar estas interrupciones, otros fallos de diseño dentro de las aplicaciones, como no normalización de los datos de entrada del usuario, también pueden finalizar en denegaciones de servicio.
A todas estas debilidades lógicas hay que sumarle las posibles opciones físicas, ya que la apertura del dispositivo para su análisis y posterior ataque siempre está ahí. Estos sistemas embebidos no suelen disponer de mecanismos de detección de apertura, así como tampoco de eliminación de puertos de test utilizados en la fase de diseño del hardware.
Las razones para aplicar medidas de seguridad a los sistemas embebidos son muchas. Del lado del fabricante caen algunas, sobre todo las relacionadas con aspectos físicos; pero por el lado del usuario también se pueden hacer cosas para mejorar la seguridad.
One Comment
Jesús Antonio De la cruz Hernández
En el diseño y desarrollo de un sistema embebido es necesario considerar optimizar las soluciones en hardware y software, así como reducir la memoria, hacer uso eficiente de las baterías y sobre todo que regularmente están asociados con aplicaciones de tiempo real, utilizando los sistemas de comunicación disponibles actualmente y tratando de ofrecer dispositivos autónomos e inteligentes.