Cuando los microondas buenos se vuelven malos: Por qué la seguridad de los sistemas embebidos es la próxima batalla de los desarrolladores
Hay muchas referencias en la cultura pop a la IA y a los robots rebeldes, y a los aparatos que se vuelven contra sus amos humanos. Está muy impregnado de diversión y fantasía de ciencia ficción, pero con la IO y los dispositivos conectados cada vez más presentes en nuestros hogares, también debería serlo la conversación en torno a la ciberseguridad y la seguridad. El software nos rodea, y es muy fácil olvidar hasta qué punto dependemos de líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que el software basado en la web, las API y los dispositivos móviles, el código vulnerable de los sistemas integrados puede ser explotado si un atacante lo descubre.
Aunque es poco probable que un ejército de microondas venga a esclavizar a la raza humana (aunque, el bot de Tesla es un poco preocupante) como resultado de un ciberataque, los eventos cibernéticos maliciosos siguen siendo posibles. Algunos de nuestros coches, aviones y dispositivos médicos también dependen de un intrincado código de sistemas integrados para realizar tareas clave, y la perspectiva de que estos objetos se vean comprometidos no sólo es alarmante, sino que puede suponer una amenaza para la vida.
Al igual que cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código, justo al principio de la fase de creación. Y al igual que cualquier otro tipo de software, esto puede ser el caldo de cultivo para las vulnerabilidades insidiosas y comunes que podrían pasar desapercibidas antes de que el producto se ponga en marcha.
Los desarrolladores no son expertos en seguridad, ni ninguna empresa debe esperar que desempeñen ese papel, pero pueden dotarse de un arsenal mucho más potente para hacer frente al tipo de amenazas que les afectan. Los sistemas embebidos -que suelen estar escritos en C y C++- se utilizarán con más frecuencia a medida que nuestras necesidades tecnológicas sigan evolucionando, por lo que es esencial una formación especializada en seguridad para los desarrolladores sobre las herramientas de este entorno.
Frituras de aire que explotan, vehículos que se desvían... ¿Somos patos sentados?
Aunque existen algunas normas y regulaciones en torno a todo el desarrollo seguro para mantenernos a salvo, necesitamos dar pasos mucho más precisos y significativos hacia todo tipo de seguridad del software. Puede parecer descabellado pensar en un problema que pueda ser causado por alguien que hackea una freidora, pero ya ha ocurrido en forma de un ataque de ejecución remota de código (que permite al actor de la amenaza elevar la temperatura a niveles peligrosos), al igual que las vulnerabilidades que conducen a la toma de posesión de vehículos.
Los vehículos, en particular, son especialmente complejos, con múltiples sistemas integrados a bordo, cada uno de los cuales se encarga de microfunciones; todo, desde los limpiaparabrisas automáticos hasta las capacidades del motor y los frenos. 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 compleja infraestructura digital que está expuesta a múltiples vectores de ataque. Y con la previsión de que 76,3 millones de vehículos conectados lleguen a las carreteras de todo el mundo en 2023, esto representa un monolito de bases defensivas que hay que sentar para una verdadera seguridad.
MISRA es una organización clave en la buena lucha contra las amenazas de los sistemas embebidos, habiendo desarrollado directrices para facilitar la seguridad del código, la portabilidad y la fiabilidad en el contexto de los sistemas embebidos. Estas directrices son una estrella del norte en los estándares que toda empresa debe perseguir en sus proyectos de sistemas embebidos.
Sin embargo, para crear y ejecutar código que se adhiera a este estándar de oro se necesitan ingenieros de sistemas embebidos que confíen -por no decir que sean conscientes de la seguridad- en las herramientas.
¿Por qué es tan específica la formación en seguridad de los sistemas empotrados?
Los lenguajes de programación C y C++ son geriátricos para los estándares actuales, pero siguen siendo ampliamente utilizados. Forman el núcleo de funcionamiento de la base de código de los sistemas embebidos, y C/C++ embebido disfruta de una vida brillante y moderna 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 términos de problemas comunes como los fallos de inyección y el desbordamiento del búfer - para que los desarrolladores tengan realmente éxito en la mitigación de los errores de seguridad en los sistemas embebidos, deben ponerse manos a la obra con el código que imita los entornos en los que trabajan. La formación genérica en C sobre prácticas generales de seguridad simplemente no será tan potente y memorable como si se dedicara tiempo y atención extra a trabajar en un contexto de C embebido.
Con entre una docena y más de un centenar de sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban una formación precisa sobre lo que deben buscar y cómo solucionarlo, directamente en el IDE.

Proteger los sistemas integrados desde la base es responsabilidad de todos
El statu quo en muchas organizaciones es que la velocidad de desarrollo triunfa sobre la seguridad, al menos cuando se trata de la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad de producir código seguro, pero el desarrollo rápido de características impresionantes es el estándar de oro. La demanda de software no va a hacer más que aumentar, pero esta es una cultura que nos ha preparado para una batalla perdida contra las vulnerabilidades, y los consiguientes ciberataques que permiten.
Si los desarrolladores no están formados, no es culpa suya, y es un hueco que alguien del equipo de AppSec tiene que ayudar a llenar recomendando los programas adecuados y accesibles (por no hablar de evaluables) de actualización de conocimientos para toda la comunidad de desarrolladores. Desde el principio de un proyecto de desarrollo de software, la seguridad debe ser una de las principales consideraciones, y todos, especialmente los desarrolladores, deben recibir lo que necesitan para desempeñar su papel.
Cómo abordar los problemas de seguridad de los sistemas embebidos
El desbordamiento del búfer, los fallos de inyección y los errores de lógica de negocio 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 del búfer es especialmente frecuente, y si quieres profundizar en cómo ayudó a comprometer esa freidora de la que hablamos antes (permitiendo la ejecución remota de código), echa un vistazo a este informe sobre CVE-2020-28592.
Ahora, es el momento de ponerte manos a la obra con una vulnerabilidad de desbordamiento de búfer, en código C/C++ embebido real. Juega este desafío para ver si puedes localizar, identificar y arreglar los malos patrones de codificación que conducen a este insidioso error:
.png)
¿Cómo lo ha hecho? Visite www.securecodewarrior.com para obtener una formación precisa y eficaz sobre la seguridad de los sistemas integrados.


Al igual que ocurre con el software basado en la web, las API y los dispositivos móviles, el código vulnerable de los sistemas integrados puede ser explotado si un atacante lo descubre en la naturaleza.
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.


Hay muchas referencias en la cultura pop a la IA y a los robots rebeldes, y a los aparatos que se vuelven contra sus amos humanos. Está muy impregnado de diversión y fantasía de ciencia ficción, pero con la IO y los dispositivos conectados cada vez más presentes en nuestros hogares, también debería serlo la conversación en torno a la ciberseguridad y la seguridad. El software nos rodea, y es muy fácil olvidar hasta qué punto dependemos de líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que el software basado en la web, las API y los dispositivos móviles, el código vulnerable de los sistemas integrados puede ser explotado si un atacante lo descubre.
Aunque es poco probable que un ejército de microondas venga a esclavizar a la raza humana (aunque, el bot de Tesla es un poco preocupante) como resultado de un ciberataque, los eventos cibernéticos maliciosos siguen siendo posibles. Algunos de nuestros coches, aviones y dispositivos médicos también dependen de un intrincado código de sistemas integrados para realizar tareas clave, y la perspectiva de que estos objetos se vean comprometidos no sólo es alarmante, sino que puede suponer una amenaza para la vida.
Al igual que cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código, justo al principio de la fase de creación. Y al igual que cualquier otro tipo de software, esto puede ser el caldo de cultivo para las vulnerabilidades insidiosas y comunes que podrían pasar desapercibidas antes de que el producto se ponga en marcha.
Los desarrolladores no son expertos en seguridad, ni ninguna empresa debe esperar que desempeñen ese papel, pero pueden dotarse de un arsenal mucho más potente para hacer frente al tipo de amenazas que les afectan. Los sistemas embebidos -que suelen estar escritos en C y C++- se utilizarán con más frecuencia a medida que nuestras necesidades tecnológicas sigan evolucionando, por lo que es esencial una formación especializada en seguridad para los desarrolladores sobre las herramientas de este entorno.
Frituras de aire que explotan, vehículos que se desvían... ¿Somos patos sentados?
Aunque existen algunas normas y regulaciones en torno a todo el desarrollo seguro para mantenernos a salvo, necesitamos dar pasos mucho más precisos y significativos hacia todo tipo de seguridad del software. Puede parecer descabellado pensar en un problema que pueda ser causado por alguien que hackea una freidora, pero ya ha ocurrido en forma de un ataque de ejecución remota de código (que permite al actor de la amenaza elevar la temperatura a niveles peligrosos), al igual que las vulnerabilidades que conducen a la toma de posesión de vehículos.
Los vehículos, en particular, son especialmente complejos, con múltiples sistemas integrados a bordo, cada uno de los cuales se encarga de microfunciones; todo, desde los limpiaparabrisas automáticos hasta las capacidades del motor y los frenos. 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 compleja infraestructura digital que está expuesta a múltiples vectores de ataque. Y con la previsión de que 76,3 millones de vehículos conectados lleguen a las carreteras de todo el mundo en 2023, esto representa un monolito de bases defensivas que hay que sentar para una verdadera seguridad.
MISRA es una organización clave en la buena lucha contra las amenazas de los sistemas embebidos, habiendo desarrollado directrices para facilitar la seguridad del código, la portabilidad y la fiabilidad en el contexto de los sistemas embebidos. Estas directrices son una estrella del norte en los estándares que toda empresa debe perseguir en sus proyectos de sistemas embebidos.
Sin embargo, para crear y ejecutar código que se adhiera a este estándar de oro se necesitan ingenieros de sistemas embebidos que confíen -por no decir que sean conscientes de la seguridad- en las herramientas.
¿Por qué es tan específica la formación en seguridad de los sistemas empotrados?
Los lenguajes de programación C y C++ son geriátricos para los estándares actuales, pero siguen siendo ampliamente utilizados. Forman el núcleo de funcionamiento de la base de código de los sistemas embebidos, y C/C++ embebido disfruta de una vida brillante y moderna 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 términos de problemas comunes como los fallos de inyección y el desbordamiento del búfer - para que los desarrolladores tengan realmente éxito en la mitigación de los errores de seguridad en los sistemas embebidos, deben ponerse manos a la obra con el código que imita los entornos en los que trabajan. La formación genérica en C sobre prácticas generales de seguridad simplemente no será tan potente y memorable como si se dedicara tiempo y atención extra a trabajar en un contexto de C embebido.
Con entre una docena y más de un centenar de sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban una formación precisa sobre lo que deben buscar y cómo solucionarlo, directamente en el IDE.

Proteger los sistemas integrados desde la base es responsabilidad de todos
El statu quo en muchas organizaciones es que la velocidad de desarrollo triunfa sobre la seguridad, al menos cuando se trata de la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad de producir código seguro, pero el desarrollo rápido de características impresionantes es el estándar de oro. La demanda de software no va a hacer más que aumentar, pero esta es una cultura que nos ha preparado para una batalla perdida contra las vulnerabilidades, y los consiguientes ciberataques que permiten.
Si los desarrolladores no están formados, no es culpa suya, y es un hueco que alguien del equipo de AppSec tiene que ayudar a llenar recomendando los programas adecuados y accesibles (por no hablar de evaluables) de actualización de conocimientos para toda la comunidad de desarrolladores. Desde el principio de un proyecto de desarrollo de software, la seguridad debe ser una de las principales consideraciones, y todos, especialmente los desarrolladores, deben recibir lo que necesitan para desempeñar su papel.
Cómo abordar los problemas de seguridad de los sistemas embebidos
El desbordamiento del búfer, los fallos de inyección y los errores de lógica de negocio 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 del búfer es especialmente frecuente, y si quieres profundizar en cómo ayudó a comprometer esa freidora de la que hablamos antes (permitiendo la ejecución remota de código), echa un vistazo a este informe sobre CVE-2020-28592.
Ahora, es el momento de ponerte manos a la obra con una vulnerabilidad de desbordamiento de búfer, en código C/C++ embebido real. Juega este desafío para ver si puedes localizar, identificar y arreglar los malos patrones de codificación que conducen a este insidioso error:
.png)
¿Cómo lo ha hecho? Visite www.securecodewarrior.com para obtener una formación precisa y eficaz sobre la seguridad de los sistemas integrados.

Hay muchas referencias en la cultura pop a la IA y a los robots rebeldes, y a los aparatos que se vuelven contra sus amos humanos. Está muy impregnado de diversión y fantasía de ciencia ficción, pero con la IO y los dispositivos conectados cada vez más presentes en nuestros hogares, también debería serlo la conversación en torno a la ciberseguridad y la seguridad. El software nos rodea, y es muy fácil olvidar hasta qué punto dependemos de líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que el software basado en la web, las API y los dispositivos móviles, el código vulnerable de los sistemas integrados puede ser explotado si un atacante lo descubre.
Aunque es poco probable que un ejército de microondas venga a esclavizar a la raza humana (aunque, el bot de Tesla es un poco preocupante) como resultado de un ciberataque, los eventos cibernéticos maliciosos siguen siendo posibles. Algunos de nuestros coches, aviones y dispositivos médicos también dependen de un intrincado código de sistemas integrados para realizar tareas clave, y la perspectiva de que estos objetos se vean comprometidos no sólo es alarmante, sino que puede suponer una amenaza para la vida.
Al igual que cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código, justo al principio de la fase de creación. Y al igual que cualquier otro tipo de software, esto puede ser el caldo de cultivo para las vulnerabilidades insidiosas y comunes que podrían pasar desapercibidas antes de que el producto se ponga en marcha.
Los desarrolladores no son expertos en seguridad, ni ninguna empresa debe esperar que desempeñen ese papel, pero pueden dotarse de un arsenal mucho más potente para hacer frente al tipo de amenazas que les afectan. Los sistemas embebidos -que suelen estar escritos en C y C++- se utilizarán con más frecuencia a medida que nuestras necesidades tecnológicas sigan evolucionando, por lo que es esencial una formación especializada en seguridad para los desarrolladores sobre las herramientas de este entorno.
Frituras de aire que explotan, vehículos que se desvían... ¿Somos patos sentados?
Aunque existen algunas normas y regulaciones en torno a todo el desarrollo seguro para mantenernos a salvo, necesitamos dar pasos mucho más precisos y significativos hacia todo tipo de seguridad del software. Puede parecer descabellado pensar en un problema que pueda ser causado por alguien que hackea una freidora, pero ya ha ocurrido en forma de un ataque de ejecución remota de código (que permite al actor de la amenaza elevar la temperatura a niveles peligrosos), al igual que las vulnerabilidades que conducen a la toma de posesión de vehículos.
Los vehículos, en particular, son especialmente complejos, con múltiples sistemas integrados a bordo, cada uno de los cuales se encarga de microfunciones; todo, desde los limpiaparabrisas automáticos hasta las capacidades del motor y los frenos. 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 compleja infraestructura digital que está expuesta a múltiples vectores de ataque. Y con la previsión de que 76,3 millones de vehículos conectados lleguen a las carreteras de todo el mundo en 2023, esto representa un monolito de bases defensivas que hay que sentar para una verdadera seguridad.
MISRA es una organización clave en la buena lucha contra las amenazas de los sistemas embebidos, habiendo desarrollado directrices para facilitar la seguridad del código, la portabilidad y la fiabilidad en el contexto de los sistemas embebidos. Estas directrices son una estrella del norte en los estándares que toda empresa debe perseguir en sus proyectos de sistemas embebidos.
Sin embargo, para crear y ejecutar código que se adhiera a este estándar de oro se necesitan ingenieros de sistemas embebidos que confíen -por no decir que sean conscientes de la seguridad- en las herramientas.
¿Por qué es tan específica la formación en seguridad de los sistemas empotrados?
Los lenguajes de programación C y C++ son geriátricos para los estándares actuales, pero siguen siendo ampliamente utilizados. Forman el núcleo de funcionamiento de la base de código de los sistemas embebidos, y C/C++ embebido disfruta de una vida brillante y moderna 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 términos de problemas comunes como los fallos de inyección y el desbordamiento del búfer - para que los desarrolladores tengan realmente éxito en la mitigación de los errores de seguridad en los sistemas embebidos, deben ponerse manos a la obra con el código que imita los entornos en los que trabajan. La formación genérica en C sobre prácticas generales de seguridad simplemente no será tan potente y memorable como si se dedicara tiempo y atención extra a trabajar en un contexto de C embebido.
Con entre una docena y más de un centenar de sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban una formación precisa sobre lo que deben buscar y cómo solucionarlo, directamente en el IDE.

Proteger los sistemas integrados desde la base es responsabilidad de todos
El statu quo en muchas organizaciones es que la velocidad de desarrollo triunfa sobre la seguridad, al menos cuando se trata de la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad de producir código seguro, pero el desarrollo rápido de características impresionantes es el estándar de oro. La demanda de software no va a hacer más que aumentar, pero esta es una cultura que nos ha preparado para una batalla perdida contra las vulnerabilidades, y los consiguientes ciberataques que permiten.
Si los desarrolladores no están formados, no es culpa suya, y es un hueco que alguien del equipo de AppSec tiene que ayudar a llenar recomendando los programas adecuados y accesibles (por no hablar de evaluables) de actualización de conocimientos para toda la comunidad de desarrolladores. Desde el principio de un proyecto de desarrollo de software, la seguridad debe ser una de las principales consideraciones, y todos, especialmente los desarrolladores, deben recibir lo que necesitan para desempeñar su papel.
Cómo abordar los problemas de seguridad de los sistemas embebidos
El desbordamiento del búfer, los fallos de inyección y los errores de lógica de negocio 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 del búfer es especialmente frecuente, y si quieres profundizar en cómo ayudó a comprometer esa freidora de la que hablamos antes (permitiendo la ejecución remota de código), echa un vistazo a este informe sobre CVE-2020-28592.
Ahora, es el momento de ponerte manos a la obra con una vulnerabilidad de desbordamiento de búfer, en código C/C++ embebido real. Juega este desafío para ver si puedes localizar, identificar y arreglar los malos patrones de codificación que conducen a este insidioso error:
.png)
¿Cómo lo ha hecho? Visite www.securecodewarrior.com para obtener una formación precisa y eficaz sobre la seguridad de los sistemas integrados.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.
Hay muchas referencias en la cultura pop a la IA y a los robots rebeldes, y a los aparatos que se vuelven contra sus amos humanos. Está muy impregnado de diversión y fantasía de ciencia ficción, pero con la IO y los dispositivos conectados cada vez más presentes en nuestros hogares, también debería serlo la conversación en torno a la ciberseguridad y la seguridad. El software nos rodea, y es muy fácil olvidar hasta qué punto dependemos de líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que el software basado en la web, las API y los dispositivos móviles, el código vulnerable de los sistemas integrados puede ser explotado si un atacante lo descubre.
Aunque es poco probable que un ejército de microondas venga a esclavizar a la raza humana (aunque, el bot de Tesla es un poco preocupante) como resultado de un ciberataque, los eventos cibernéticos maliciosos siguen siendo posibles. Algunos de nuestros coches, aviones y dispositivos médicos también dependen de un intrincado código de sistemas integrados para realizar tareas clave, y la perspectiva de que estos objetos se vean comprometidos no sólo es alarmante, sino que puede suponer una amenaza para la vida.
Al igual que cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código, justo al principio de la fase de creación. Y al igual que cualquier otro tipo de software, esto puede ser el caldo de cultivo para las vulnerabilidades insidiosas y comunes que podrían pasar desapercibidas antes de que el producto se ponga en marcha.
Los desarrolladores no son expertos en seguridad, ni ninguna empresa debe esperar que desempeñen ese papel, pero pueden dotarse de un arsenal mucho más potente para hacer frente al tipo de amenazas que les afectan. Los sistemas embebidos -que suelen estar escritos en C y C++- se utilizarán con más frecuencia a medida que nuestras necesidades tecnológicas sigan evolucionando, por lo que es esencial una formación especializada en seguridad para los desarrolladores sobre las herramientas de este entorno.
Frituras de aire que explotan, vehículos que se desvían... ¿Somos patos sentados?
Aunque existen algunas normas y regulaciones en torno a todo el desarrollo seguro para mantenernos a salvo, necesitamos dar pasos mucho más precisos y significativos hacia todo tipo de seguridad del software. Puede parecer descabellado pensar en un problema que pueda ser causado por alguien que hackea una freidora, pero ya ha ocurrido en forma de un ataque de ejecución remota de código (que permite al actor de la amenaza elevar la temperatura a niveles peligrosos), al igual que las vulnerabilidades que conducen a la toma de posesión de vehículos.
Los vehículos, en particular, son especialmente complejos, con múltiples sistemas integrados a bordo, cada uno de los cuales se encarga de microfunciones; todo, desde los limpiaparabrisas automáticos hasta las capacidades del motor y los frenos. 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 compleja infraestructura digital que está expuesta a múltiples vectores de ataque. Y con la previsión de que 76,3 millones de vehículos conectados lleguen a las carreteras de todo el mundo en 2023, esto representa un monolito de bases defensivas que hay que sentar para una verdadera seguridad.
MISRA es una organización clave en la buena lucha contra las amenazas de los sistemas embebidos, habiendo desarrollado directrices para facilitar la seguridad del código, la portabilidad y la fiabilidad en el contexto de los sistemas embebidos. Estas directrices son una estrella del norte en los estándares que toda empresa debe perseguir en sus proyectos de sistemas embebidos.
Sin embargo, para crear y ejecutar código que se adhiera a este estándar de oro se necesitan ingenieros de sistemas embebidos que confíen -por no decir que sean conscientes de la seguridad- en las herramientas.
¿Por qué es tan específica la formación en seguridad de los sistemas empotrados?
Los lenguajes de programación C y C++ son geriátricos para los estándares actuales, pero siguen siendo ampliamente utilizados. Forman el núcleo de funcionamiento de la base de código de los sistemas embebidos, y C/C++ embebido disfruta de una vida brillante y moderna 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 términos de problemas comunes como los fallos de inyección y el desbordamiento del búfer - para que los desarrolladores tengan realmente éxito en la mitigación de los errores de seguridad en los sistemas embebidos, deben ponerse manos a la obra con el código que imita los entornos en los que trabajan. La formación genérica en C sobre prácticas generales de seguridad simplemente no será tan potente y memorable como si se dedicara tiempo y atención extra a trabajar en un contexto de C embebido.
Con entre una docena y más de un centenar de sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban una formación precisa sobre lo que deben buscar y cómo solucionarlo, directamente en el IDE.

Proteger los sistemas integrados desde la base es responsabilidad de todos
El statu quo en muchas organizaciones es que la velocidad de desarrollo triunfa sobre la seguridad, al menos cuando se trata de la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad de producir código seguro, pero el desarrollo rápido de características impresionantes es el estándar de oro. La demanda de software no va a hacer más que aumentar, pero esta es una cultura que nos ha preparado para una batalla perdida contra las vulnerabilidades, y los consiguientes ciberataques que permiten.
Si los desarrolladores no están formados, no es culpa suya, y es un hueco que alguien del equipo de AppSec tiene que ayudar a llenar recomendando los programas adecuados y accesibles (por no hablar de evaluables) de actualización de conocimientos para toda la comunidad de desarrolladores. Desde el principio de un proyecto de desarrollo de software, la seguridad debe ser una de las principales consideraciones, y todos, especialmente los desarrolladores, deben recibir lo que necesitan para desempeñar su papel.
Cómo abordar los problemas de seguridad de los sistemas embebidos
El desbordamiento del búfer, los fallos de inyección y los errores de lógica de negocio 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 del búfer es especialmente frecuente, y si quieres profundizar en cómo ayudó a comprometer esa freidora de la que hablamos antes (permitiendo la ejecución remota de código), echa un vistazo a este informe sobre CVE-2020-28592.
Ahora, es el momento de ponerte manos a la obra con una vulnerabilidad de desbordamiento de búfer, en código C/C++ embebido real. Juega este desafío para ver si puedes localizar, identificar y arreglar los malos patrones de codificación que conducen a este insidioso error:
.png)
¿Cómo lo ha hecho? Visite www.securecodewarrior.com para obtener una formación precisa y eficaz sobre la seguridad de los sistemas integrados.
Índice
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Servicios profesionales - Acelerar con experiencia
El equipo de servicios de estrategia de programas (PSS) de Secure Code Warriorle ayuda a crear, mejorar y optimizar su programa de codificación segura. Tanto si empieza de cero como si está perfeccionando su enfoque, nuestros expertos le proporcionarán orientación personalizada.
Temas y contenidos de la formación sobre código seguro
Nuestro contenido, líder en el sector, evoluciona constantemente para adaptarse al cambiante panorama del desarrollo de software teniendo en cuenta su función. Temas que cubren todo, desde IA a XQuery Injection, ofrecidos para una variedad de roles desde Arquitectos e Ingenieros a Product Managers y QA. Eche un vistazo a lo que ofrece nuestro catálogo de contenidos por tema y función.
Búsqueda: Aprendizaje líder en la industria para mantener a los desarrolladores por delante mitigando el riesgo.
Quests es una learning platform que ayuda a los desarrolladores a mitigar los riesgos de seguridad del software mediante la mejora de sus habilidades de codificación segura. Con rutas de aprendizaje curadas, desafíos prácticos y actividades interactivas, capacita a los desarrolladores para identificar y prevenir vulnerabilidades.
Recursos para empezar
Inyección indirecta y riesgos de seguridad de las herramientas de codificación agéntica
Cómo se engañó a un agente de codificación para que escribiera código propenso a inyecciones SQL, instalara herramientas de shell y tal vez incluso acechara a su usuario.
La Década de los Defensores: Secure Code Warrior Cumple Diez Años
Secure Code Warriorha permanecido unido, dirigiendo el barco a través de cada lección, triunfo y contratiempo durante toda una década. Estamos creciendo y listos para afrontar nuestro próximo capítulo, SCW 2.0, como líderes en gestión de riesgos para desarrolladores.
10 predicciones clave: Secure Code Warrior sobre la influencia de la IA y el diseño seguro en 2025
Las organizaciones se enfrentan a decisiones difíciles sobre el uso de la IA para apoyar la productividad a largo plazo, la sostenibilidad y el retorno de la inversión en seguridad. En los últimos años nos ha quedado claro que la IA nunca sustituirá por completo el papel del desarrollador. Desde las asociaciones entre IA y desarrolladores hasta las crecientes presiones (y confusión) en torno a las expectativas de seguridad por diseño, echemos un vistazo más de cerca a lo que podemos esperar durante el próximo año.