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:
¿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:
¿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:
¿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:
¿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
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
El movimiento Secure-by-Design es el futuro del desarrollo de software seguro. Conozca los elementos clave que las empresas deben tener en cuenta cuando piensan en una iniciativa Secure-by-Design.
DigitalOcean reduce su deuda de seguridad con Secure Code Warrior
El uso por parte de DigitalOcean de la formación Secure Code Warrior ha reducido significativamente la deuda de seguridad, permitiendo a los equipos centrarse más en la innovación y la productividad. La mejora de la seguridad ha reforzado la calidad de sus productos y su ventaja competitiva. De cara al futuro, SCW Trust Score les ayudará a seguir mejorando las prácticas de seguridad y a continuar impulsando la innovación.
Recursos para empezar
La puntuación de confianza revela el valor de las iniciativas de mejora de la seguridad mediante el diseño
Nuestra investigación ha demostrado que la formación en código seguro funciona. Trust Score, que utiliza un algoritmo basado en más de 20 millones de puntos de datos de aprendizaje procedentes del trabajo de más de 250 000 alumnos en más de 600 organizaciones, revela su eficacia a la hora de reducir las vulnerabilidades y cómo hacer que la iniciativa sea aún más eficaz.
Seguridad reactiva frente a seguridad preventiva: Prevenir es mejor que curar
La idea de introducir la seguridad preventiva en el código y los sistemas heredados al mismo tiempo que en las aplicaciones más recientes puede parecer desalentadora, pero un planteamiento basado en el diseño seguro, aplicado mediante la mejora de las competencias de los desarrolladores, puede aplicar las mejores prácticas de seguridad a esos sistemas. Es la mejor oportunidad que tienen muchas organizaciones de mejorar su seguridad.
Ventajas de la evaluación comparativa de las competencias de seguridad de los desarrolladores
La creciente atención que se presta al código seguro y a los principios del diseño seguro exige que los desarrolladores reciban formación en ciberseguridad desde el principio del proceso de desarrollo de software, con herramientas como Secure Code Warrior's Trust Score, que ayudan a medir y mejorar sus progresos.
Impulsando iniciativas de seguridad por diseño para empresas con éxito significativo
Nuestro último documento de investigación, Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise, es el resultado de un análisis profundo de iniciativas reales de Secure-by-Design a nivel empresarial y de la derivación de enfoques de mejores prácticas basados en hallazgos basados en datos.