Blog

Cuando los microondas fallan: por qué la seguridad en sistemas embebidos es el próximo gran desafío para los desarrolladores

August 30, 2021
Dr. Matias Madou
Persona conduciendo un coche Mercedes con las luces del salpicadero encendidas y estelas de luces de colores en el exterior durante la noche.

Existen muchas referencias en la cultura popular a la IA rebelde, los robots y los electrodomésticos que se vuelven contra sus amos humanos. Aunque está muy arraigado en la fantasía y la diversión de la ciencia ficción, con el auge del IoT y los dispositivos conectados en nuestros hogares, también debería aumentar la conversación sobre ciberseguridad y protección. El software nos rodea y es muy fácil olvidar cuánto dependemos de líneas de código para realizar todas esas funciones inteligentes que nos brindan tanta innovación y comodidad. Al igual que el software basado en web, las API y los dispositivos móviles, el código vulnerable en los sistemas embebidos puede ser explotado si un atacante lo descubre en el mundo real.

Aunque es poco probable que un ejército de microondas venga a esclavizar a la raza humana (aunque el bot de Tesla resulta un poco preocupante) como resultado de un ciberataque, los incidentes cibernéticos malintencionados siguen siendo posibles. Algunos de nuestros coches, aviones y dispositivos médicos también dependen de complejos códigos de sistemas embebidos para realizar tareas clave, y la posibilidad de que estos objetos sean vulnerados no solo es alarmante, sino que puede poner vidas en peligro.

Al igual que cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código, justo al comienzo de la fase de creación. Y, como ocurre con cualquier otro tipo de software, este puede ser el caldo de cultivo para vulnerabilidades insidiosas y comunes que podrían pasar desapercibidas antes de que el producto salga al mercado.

Los desarrolladores no son expertos en seguridad, ni ninguna empresa debería esperar que desempeñen ese papel, pero pueden contar con un arsenal mucho más sólido para hacer frente al tipo de amenazas que les afectan. Los sistemas embebidos, escritos normalmente en C y C++, se utilizarán con mayor frecuencia a medida que nuestras necesidades tecnológicas sigan evolucionando, por lo que es esencial ofrecer formación especializada en seguridad a los desarrolladores sobre las herramientas de este entorno.

Freidoras de aire que explotan, vehículos rebeldes... ¿Somos blancos fáciles?

Aunque existen algunos estándares y normativas sobre el desarrollo seguro para mantenernos protegidos, debemos avanzar de forma mucho más precisa y significativa hacia todo tipo de seguridad de software. Puede parecer descabellado pensar en un problema causado por alguien que piratea una freidora de aire, pero ha ocurrido en forma de un ataque de ejecución remota de código (que permite al atacante aumentar la temperatura a niveles peligrosos), al igual que vulnerabilidades que han llevado al secuestro de vehículos.

Los vehículos, en particular, son especialmente complejos, con múltiples sistemas embebidos a bordo, cada uno de los cuales se encarga de microfunciones; desde los limpiaparabrisas automáticos hasta las capacidades del motor y el frenado. Entrelazado con una pila cada vez mayor de tecnologías de comunicación como Wi-Fi, Bluetooth y GPS, el vehículo conectado representa una infraestructura digital compleja expuesta a múltiples vectores de ataque. Y con 76,3 millones de vehículos conectados previstos en las carreteras de todo el mundo para 2023, eso representa un monolito de cimientos defensivos que establecer para una verdadera seguridad.

MISRA es una organización clave que lucha contra las amenazas a los sistemas embebidos, habiendo desarrollado directrices para facilitar la seguridad, la protección, la portabilidad y la fiabilidad del código en el contexto de los sistemas embebidos. Estas directrices son una estrella polar en los estándares a los que toda empresa debe aspirar en sus proyectos de sistemas embebidos.

Sin embargo, para crear y ejecutar código que cumpla con este estándar de oro se necesitan ingenieros de sistemas embebidos que tengan confianza, además de ser conscientes de la seguridad, en el uso de las herramientas.

¿Por qué es tan específica la capacitación en seguridad de sistemas embebidos?

Los lenguajes de programación C y C++ son geriátricos para los estándares actuales, pero siguen siendo muy utilizados. Forman el núcleo funcional del código base de los sistemas embebidos, y el C/C++ embebido disfruta de una vida moderna y brillante como parte del mundo de los dispositivos conectados.

A pesar de que estos lenguajes tienen raíces bastante antiguas -y muestran comportamientos de vulnerabilidad similares en cuanto a problemas comunes como fallos de inyección y desbordamiento de búfer-, para que los desarrolladores tengan éxito real en la mitigación de errores de seguridad en sistemas embebidos, deben trabajar con código que imite los entornos en los que operan. La formación genérica en C sobre prácticas de seguridad no será tan potente ni memorable como si se dedica tiempo y cuidado adicionales a trabajar en un contexto de C embebido.

Con entre una docena y más de cien sistemas embebidos en un vehículo moderno, es imperativo que los desarrolladores reciban formación precisa sobre qué buscar y cómo solucionarlo, directamente en el IDE.
‍

¿Qué aspecto tiene un fallo de lógica empresarial en C/C++ embebido? Echa un vistazo y comprueba si puedes identificarlo y solucionarlo como un profesional.

Proteger los sistemas embebidos desde la base es responsabilidad de todos

El statu quo en muchas organizaciones es que la velocidad de desarrollo prevalece sobre la seguridad, al menos en lo que respecta a la responsabilidad del desarrollador. Rara vez se les evalúa por su capacidad para producir código seguro, pero el desarrollo rápido de funciones increíbles es el estándar de oro. La demanda de software no hará más que aumentar, pero esta es una cultura que nos ha abocado a una batalla perdida contra las vulnerabilidades y los ciberataques que estas permiten.

Si los desarrolladores no están formados, no es culpa suya, y es un vacío que alguien del equipo de AppSec debe ayudar a llenar recomendando los programas de capacitación adecuados, accesibles (y evaluables) para toda la comunidad de desarrollo. Justo al comienzo de un proyecto de desarrollo de software, la seguridad debe ser una consideración primordial, proporcionando a todos, especialmente a los desarrolladores, lo que necesitan para desempeñar su papel.

Adquirir experiencia práctica con problemas de seguridad en sistemas embebidos

El desbordamiento de búfer, los fallos de inyección y los errores de lógica empresarial son escollos comunes en el desarrollo de sistemas embebidos. Cuando están enterrados en un laberinto de microcontroladores en un solo vehículo o dispositivo, pueden significar un desastre desde el punto de vista de la seguridad.

El desbordamiento de búfer es especialmente frecuente, y si quieres profundizar en cómo ayudó a comprometer esa freidora de aire de la que hablamos antes (permitiendo la ejecución remota de código), consulta este informe sobre CVE-2020-28592.

Es hora de trabajar directamente con una vulnerabilidad de desbordamiento de búfer en código C/C++ embebido real. Participa en este desafío para ver si puedes localizar, identificar y corregir los patrones de programación deficientes que provocan este error insidioso:
‍

Secure Code Warrior logo with text: Squash dangerous embedded systems bugs and a red Play Now button.
Haz que el desbordamiento de búfer sea cosa del pasado.

‍

¿Cómo te fue? Visita www.securecodewarrior.com para obtener formación precisa y eficaz sobre seguridad en sistemas embebidos.

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.