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
Panorama de la gestión de riesgos de los promotores
La gestión de riesgos del desarrollador es un enfoque holístico y proactivo de la seguridad de las aplicaciones, centrado en quienes contribuyen al código y no en los bits y bytes de la propia capa de la aplicación.
Seguridad desde el diseño: Definición de las mejores prácticas, capacitación de los desarrolladores y evaluación comparativa de los resultados de la seguridad preventiva
En este documento de investigación, los cofundadores Secure Code Warrior , Pieter Danhieux y el Dr. Matias Madou, Ph.D., junto con los expertos colaboradores, Chris Inglis, ex Director Nacional Cibernético de EE.UU. (ahora Asesor Estratégico de Paladin Capital Group), y Devin Lynch, Director Senior, Paladin Global Institute, revelarán los hallazgos clave de más de veinte entrevistas en profundidad con líderes de seguridad empresarial, incluyendo CISOs, un VP de Seguridad de Aplicaciones y profesionales de seguridad de software.
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
Encontrar datos significativos sobre el éxito de las iniciativas Secure-by-Design es notoriamente difícil. Los responsables de la seguridad de la información se enfrentan a menudo al reto de demostrar el rendimiento de la inversión (ROI) y el valor empresarial de las actividades de los programas de seguridad, tanto a nivel de las personas como de la empresa. Por no mencionar que a las empresas les resulta especialmente difícil obtener información sobre cómo se comparan sus organizaciones con los estándares actuales del sector. La Estrategia Nacional de Ciberseguridad del Presidente desafió a las partes interesadas a "adoptar la seguridad y la resiliencia desde el diseño". La clave para que las iniciativas de seguridad por diseño funcionen no es sólo dotar a los desarrolladores de las habilidades necesarias para garantizar un código seguro, sino también garantizar a los reguladores que esas habilidades están en su lugar. En esta presentación, compartimos una miríada de datos cualitativos y cuantitativos, derivados de múltiples fuentes primarias, incluidos puntos de datos internos recogidos de más de 250.000 desarrolladores, opiniones de clientes basadas en datos y estudios públicos. Aprovechando esta agregación de puntos de datos, pretendemos comunicar una visión del estado actual de las iniciativas Secure-by-Design en múltiples verticales. El informe detalla por qué este espacio está actualmente infrautilizado, el impacto significativo que un programa de mejora de las competencias puede tener en la mitigación de los riesgos de ciberseguridad y el potencial para eliminar categorías de vulnerabilidades de un código base.
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.
Recursos para empezar
Revelado: Cómo define el sector cibernético la seguridad por diseño
En nuestro último libro blanco, nuestros cofundadores, Pieter Danhieux y el doctor Matias Madou, se sentaron con más de veinte líderes de seguridad empresarial, incluidos CISO, líderes de AppSec y profesionales de la seguridad, para averiguar las piezas clave de este rompecabezas y descubrir la realidad detrás del movimiento Secure by Design. Se trata de una ambición compartida por todos los equipos de seguridad, pero no de un libro de jugadas compartido.
¿Vibe Coding va a convertir tu código en una fiesta de fraternidad?
Vibe Coding es como una fiesta de fraternidad universitaria, y la IA es la pieza central de todos los festejos, el barril. Es muy divertido dar rienda suelta a la creatividad y ver adónde te lleva tu imaginación, pero después de unas cuantas borracheras, beber (o usar IA) con moderación es, sin duda, la solución más segura a largo plazo.