Iconos SCW
héroe bg sin separador
Blog

Cuando las buenas microondas se vuelven malas: por qué la seguridad de los sistemas integrados es el próximo gran reto para los desarrolladores

Doctor Matias Madou
Publicado el 30 de agosto de 2021
Última actualización el 8 de marzo de 2026

En la cultura pop hay muchas referencias a la inteligencia artificial y los robots rebeldes, así como a dispositivos que se rebelan contra sus amos humanos. Está muy impregnado de la diversión y la fantasía de la ciencia ficción, pero a medida que el Internet de las cosas y los dispositivos conectados ganan cada vez más importancia en nuestros hogares, también debería serlo el debate sobre la ciberseguridad y la seguridad. El software nos rodea y es muy fácil olvidar lo mucho que dependemos de las líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que 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 el mundo real.

Aunque es poco probable que un ejército de microondas esclavice a la humanidad (aunque Tesla-Bot es un poco preocupante), como resultado de un ciberataque, los ciberincidentes maliciosos siguen siendo posibles. Algunos de nuestros automóviles, aviones y dispositivos médicos también dependen de un complejo código de sistema integrado para realizar tareas importantes. La perspectiva de que estos objetos se vean comprometidos no solo es alarmante, sino que también puede poner en peligro la vida.

Al igual que con cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código al inicio de la fase de creación. Y, al igual que con cualquier otro tipo de software, esto puede ser un caldo de cultivo para vulnerabilidades de seguridad insidiosas y frecuentes que podrían pasar desapercibidas antes del lanzamiento del producto al mercado.

Los desarrolladores no son expertos en seguridad, y una empresa tampoco debería esperar que desempeñen ese papel, pero se les puede dotar de un arsenal mucho más potente para combatir el tipo de amenazas que les afectan. Los sistemas integrados, normalmente escritos en C y C++, se utilizarán cada vez más a medida que nuestras necesidades técnicas sigan evolucionando. Por lo tanto, es esencial que los desarrolladores reciban formación específica en materia de seguridad en relación con las herramientas de este entorno.

Freidoras de aire que explotan, vehículos malvados... ¿Somos presa fácil?

Aunque existen algunas normas y reglamentos en torno al desarrollo seguro en general, para protegernos debemos realizar avances mucho más precisos y significativos en materia de seguridad de todo tipo de software. Puede parecer descabellado pensar en un problema que pueda causar alguien que hackea una freidora de aire caliente, pero ha ocurrido en forma de un ataque de ejecución remota de código (que permite al agente malicioso aumentar la temperatura a un nivel peligroso), así como vulnerabilidades de seguridad que provocan el control de vehículos.

Los vehículos son especialmente complejos, ya que cuentan con varios sistemas integrados a bordo, cada uno de los cuales es responsable de microfunciones, desde los limpiaparabrisas automáticos hasta las funciones del motor y los frenos. El vehículo conectado está interconectado con un número cada vez mayor de tecnologías de comunicación, como WLAN, Bluetooth y GPS, y constituye una infraestructura digital compleja expuesta a numerosos vectores de ataque. Y con la previsión de que en 2023 habrá 76,3 millones de vehículos conectados circulando por las carreteras de todo el mundo, esto supone un monolito de bases defensivas que garantizan una seguridad real.

MISRA es una importante organización que lucha activamente contra las amenazas a los sistemas integrados y ha desarrollado directrices para facilitar la seguridad, la portabilidad y la fiabilidad de los códigos relacionados con los sistemas integrados. Estas directrices son una parte importante de los estándares que toda empresa debe aspirar a cumplir en sus proyectos de sistemas integrados.

Sin embargo, para crear y ejecutar código que cumpla con este estándar de oro, se necesitan ingenieros de sistemas integrados que estén familiarizados con las herramientas, por no hablar de que sean conscientes de la seguridad.

¿Por qué es tan específico el aumento de la seguridad de los sistemas integrados?

Los lenguajes de programación C y C++ son geriátricos según los estándares actuales, pero siguen utilizándose con frecuencia. Constituyen el núcleo funcional de la base de código para sistemas integrados, y Embedded C/C++ está viviendo una brillante y moderna vida como parte del mundo de los dispositivos conectados.

Aunque estos lenguajes tienen raíces bastante antiguas y muestran un comportamiento de seguridad similar en lo que respecta a problemas frecuentes como los errores de inyección y el desbordamiento del búfer, para solucionar con éxito las vulnerabilidades de seguridad en los sistemas integrados, los desarrolladores deben adquirir experiencia práctica con código que imite los entornos en los que trabajan. Una formación genérica en C sobre prácticas generales de seguridad simplemente no será tan eficaz y memorable como si se dedicara más tiempo y cuidado al trabajo en un contexto de C integrado.

Con entre una docena y más de cien sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban formación específica en el IDE sobre lo que deben tener en cuenta y cómo pueden solucionar el problema.

¿Cómo se ve un error en la lógica de negocio en C/C++ integrado? Eche un vistazo y vea si puede identificarlo y solucionarlo como un profesional.

La protección de los sistemas integrados desde la planta baja es responsabilidad de todos.

El statu quo en muchas organizaciones es que la velocidad del desarrollo es más importante que la seguridad, al menos en lo que respecta a la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad para crear código seguro, sino que el desarrollo rápido de funciones excelentes es el estándar de referencia. La demanda de software no hará más que aumentar, pero esta es una cultura que nos ha preparado para una lucha inútil contra las brechas de seguridad y los ciberataques resultantes.

Si los desarrolladores no están formados, no es culpa suya, sino una laguna que alguien del equipo de seguridad de aplicaciones debe subsanar recomendando a toda la comunidad de desarrolladores programas de formación adecuados, accesibles (por no hablar de evaluables). Desde el inicio de un proyecto de desarrollo de software, la seguridad debe ser una prioridad, y todos, especialmente los desarrolladores, deben saber qué necesitan para contribuir.

Manejo práctico de los problemas de seguridad de los sistemas integrados

El desbordamiento del búfer, los errores de inyección y los errores en la lógica empresarial son errores comunes en el desarrollo de sistemas integrados. Si están profundamente ocultos en un laberinto de microcontroladores en un solo vehículo o dispositivo, pueden suponer un desastre por motivos de seguridad.

El desbordamiento del búfer es especialmente frecuente, y si desea obtener más información sobre cómo contribuyó a comprometer la freidora de aire caliente de la que hablamos anteriormente (lo que permite la ejecución de código de forma remota), consulte este informe sobre CVE-2020-28592.

Ahora es el momento de poner en práctica una vulnerabilidad de desbordamiento de búfer en código C/C++ integrado real. Juegue a este desafío para ver si puede localizar, identificar y corregir los patrones de codificación incorrectos que han provocado este error insidioso:

Cree el historial del desbordamiento del búfer.



Wie hast du dich geschlagen? Besuchen www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Ver recurso
Ver recurso

Al igual que con el software basado en 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 el mundo real.

¿Te interesa saber más?

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.

Más información

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Reservar una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Doctor Matias Madou
Publicado el 30 de agosto de 2021

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.

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.

Compartir en:
marcas de LinkedInSocialx logotipo

En la cultura pop hay muchas referencias a la inteligencia artificial y los robots rebeldes, así como a dispositivos que se rebelan contra sus amos humanos. Está muy impregnado de la diversión y la fantasía de la ciencia ficción, pero a medida que el Internet de las cosas y los dispositivos conectados ganan cada vez más importancia en nuestros hogares, también debería serlo el debate sobre la ciberseguridad y la seguridad. El software nos rodea y es muy fácil olvidar lo mucho que dependemos de las líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que 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 el mundo real.

Aunque es poco probable que un ejército de microondas esclavice a la humanidad (aunque Tesla-Bot es un poco preocupante), como resultado de un ciberataque, los ciberincidentes maliciosos siguen siendo posibles. Algunos de nuestros automóviles, aviones y dispositivos médicos también dependen de un complejo código de sistema integrado para realizar tareas importantes. La perspectiva de que estos objetos se vean comprometidos no solo es alarmante, sino que también puede poner en peligro la vida.

Al igual que con cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código al inicio de la fase de creación. Y, al igual que con cualquier otro tipo de software, esto puede ser un caldo de cultivo para vulnerabilidades de seguridad insidiosas y frecuentes que podrían pasar desapercibidas antes del lanzamiento del producto al mercado.

Los desarrolladores no son expertos en seguridad, y una empresa tampoco debería esperar que desempeñen ese papel, pero se les puede dotar de un arsenal mucho más potente para combatir el tipo de amenazas que les afectan. Los sistemas integrados, normalmente escritos en C y C++, se utilizarán cada vez más a medida que nuestras necesidades técnicas sigan evolucionando. Por lo tanto, es esencial que los desarrolladores reciban formación específica en materia de seguridad en relación con las herramientas de este entorno.

Freidoras de aire que explotan, vehículos malvados... ¿Somos presa fácil?

Aunque existen algunas normas y reglamentos en torno al desarrollo seguro en general, para protegernos debemos realizar avances mucho más precisos y significativos en materia de seguridad de todo tipo de software. Puede parecer descabellado pensar en un problema que pueda causar alguien que hackea una freidora de aire caliente, pero ha ocurrido en forma de un ataque de ejecución remota de código (que permite al agente malicioso aumentar la temperatura a un nivel peligroso), así como vulnerabilidades de seguridad que provocan el control de vehículos.

Los vehículos son especialmente complejos, ya que cuentan con varios sistemas integrados a bordo, cada uno de los cuales es responsable de microfunciones, desde los limpiaparabrisas automáticos hasta las funciones del motor y los frenos. El vehículo conectado está interconectado con un número cada vez mayor de tecnologías de comunicación, como WLAN, Bluetooth y GPS, y constituye una infraestructura digital compleja expuesta a numerosos vectores de ataque. Y con la previsión de que en 2023 habrá 76,3 millones de vehículos conectados circulando por las carreteras de todo el mundo, esto supone un monolito de bases defensivas que garantizan una seguridad real.

MISRA es una importante organización que lucha activamente contra las amenazas a los sistemas integrados y ha desarrollado directrices para facilitar la seguridad, la portabilidad y la fiabilidad de los códigos relacionados con los sistemas integrados. Estas directrices son una parte importante de los estándares que toda empresa debe aspirar a cumplir en sus proyectos de sistemas integrados.

Sin embargo, para crear y ejecutar código que cumpla con este estándar de oro, se necesitan ingenieros de sistemas integrados que estén familiarizados con las herramientas, por no hablar de que sean conscientes de la seguridad.

¿Por qué es tan específico el aumento de la seguridad de los sistemas integrados?

Los lenguajes de programación C y C++ son geriátricos según los estándares actuales, pero siguen utilizándose con frecuencia. Constituyen el núcleo funcional de la base de código para sistemas integrados, y Embedded C/C++ está viviendo una brillante y moderna vida como parte del mundo de los dispositivos conectados.

Aunque estos lenguajes tienen raíces bastante antiguas y muestran un comportamiento de seguridad similar en lo que respecta a problemas frecuentes como los errores de inyección y el desbordamiento del búfer, para solucionar con éxito las vulnerabilidades de seguridad en los sistemas integrados, los desarrolladores deben adquirir experiencia práctica con código que imite los entornos en los que trabajan. Una formación genérica en C sobre prácticas generales de seguridad simplemente no será tan eficaz y memorable como si se dedicara más tiempo y cuidado al trabajo en un contexto de C integrado.

Con entre una docena y más de cien sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban formación específica en el IDE sobre lo que deben tener en cuenta y cómo pueden solucionar el problema.

¿Cómo se ve un error en la lógica de negocio en C/C++ integrado? Eche un vistazo y vea si puede identificarlo y solucionarlo como un profesional.

La protección de los sistemas integrados desde la planta baja es responsabilidad de todos.

El statu quo en muchas organizaciones es que la velocidad del desarrollo es más importante que la seguridad, al menos en lo que respecta a la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad para crear código seguro, sino que el desarrollo rápido de funciones excelentes es el estándar de referencia. La demanda de software no hará más que aumentar, pero esta es una cultura que nos ha preparado para una lucha inútil contra las brechas de seguridad y los ciberataques resultantes.

Si los desarrolladores no están formados, no es culpa suya, sino una laguna que alguien del equipo de seguridad de aplicaciones debe subsanar recomendando a toda la comunidad de desarrolladores programas de formación adecuados, accesibles (por no hablar de evaluables). Desde el inicio de un proyecto de desarrollo de software, la seguridad debe ser una prioridad, y todos, especialmente los desarrolladores, deben saber qué necesitan para contribuir.

Manejo práctico de los problemas de seguridad de los sistemas integrados

El desbordamiento del búfer, los errores de inyección y los errores en la lógica empresarial son errores comunes en el desarrollo de sistemas integrados. Si están profundamente ocultos en un laberinto de microcontroladores en un solo vehículo o dispositivo, pueden suponer un desastre por motivos de seguridad.

El desbordamiento del búfer es especialmente frecuente, y si desea obtener más información sobre cómo contribuyó a comprometer la freidora de aire caliente de la que hablamos anteriormente (lo que permite la ejecución de código de forma remota), consulte este informe sobre CVE-2020-28592.

Ahora es el momento de poner en práctica una vulnerabilidad de desbordamiento de búfer en código C/C++ integrado real. Juegue a este desafío para ver si puede localizar, identificar y corregir los patrones de codificación incorrectos que han provocado este error insidioso:

Cree el historial del desbordamiento del búfer.



Wie hast du dich geschlagen? Besuchen www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe.

Solicitamos su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Tratamos sus datos personales con el máximo cuidado y nunca los vendemos a otras empresas con fines comerciales.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies de «Analytics». Cuando haya terminado, puede desactivarlas en cualquier momento.

En la cultura pop hay muchas referencias a la inteligencia artificial y los robots rebeldes, así como a dispositivos que se rebelan contra sus amos humanos. Está muy impregnado de la diversión y la fantasía de la ciencia ficción, pero a medida que el Internet de las cosas y los dispositivos conectados ganan cada vez más importancia en nuestros hogares, también debería serlo el debate sobre la ciberseguridad y la seguridad. El software nos rodea y es muy fácil olvidar lo mucho que dependemos de las líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que 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 el mundo real.

Aunque es poco probable que un ejército de microondas esclavice a la humanidad (aunque Tesla-Bot es un poco preocupante), como resultado de un ciberataque, los ciberincidentes maliciosos siguen siendo posibles. Algunos de nuestros automóviles, aviones y dispositivos médicos también dependen de un complejo código de sistema integrado para realizar tareas importantes. La perspectiva de que estos objetos se vean comprometidos no solo es alarmante, sino que también puede poner en peligro la vida.

Al igual que con cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código al inicio de la fase de creación. Y, al igual que con cualquier otro tipo de software, esto puede ser un caldo de cultivo para vulnerabilidades de seguridad insidiosas y frecuentes que podrían pasar desapercibidas antes del lanzamiento del producto al mercado.

Los desarrolladores no son expertos en seguridad, y una empresa tampoco debería esperar que desempeñen ese papel, pero se les puede dotar de un arsenal mucho más potente para combatir el tipo de amenazas que les afectan. Los sistemas integrados, normalmente escritos en C y C++, se utilizarán cada vez más a medida que nuestras necesidades técnicas sigan evolucionando. Por lo tanto, es esencial que los desarrolladores reciban formación específica en materia de seguridad en relación con las herramientas de este entorno.

Freidoras de aire que explotan, vehículos malvados... ¿Somos presa fácil?

Aunque existen algunas normas y reglamentos en torno al desarrollo seguro en general, para protegernos debemos realizar avances mucho más precisos y significativos en materia de seguridad de todo tipo de software. Puede parecer descabellado pensar en un problema que pueda causar alguien que hackea una freidora de aire caliente, pero ha ocurrido en forma de un ataque de ejecución remota de código (que permite al agente malicioso aumentar la temperatura a un nivel peligroso), así como vulnerabilidades de seguridad que provocan el control de vehículos.

Los vehículos son especialmente complejos, ya que cuentan con varios sistemas integrados a bordo, cada uno de los cuales es responsable de microfunciones, desde los limpiaparabrisas automáticos hasta las funciones del motor y los frenos. El vehículo conectado está interconectado con un número cada vez mayor de tecnologías de comunicación, como WLAN, Bluetooth y GPS, y constituye una infraestructura digital compleja expuesta a numerosos vectores de ataque. Y con la previsión de que en 2023 habrá 76,3 millones de vehículos conectados circulando por las carreteras de todo el mundo, esto supone un monolito de bases defensivas que garantizan una seguridad real.

MISRA es una importante organización que lucha activamente contra las amenazas a los sistemas integrados y ha desarrollado directrices para facilitar la seguridad, la portabilidad y la fiabilidad de los códigos relacionados con los sistemas integrados. Estas directrices son una parte importante de los estándares que toda empresa debe aspirar a cumplir en sus proyectos de sistemas integrados.

Sin embargo, para crear y ejecutar código que cumpla con este estándar de oro, se necesitan ingenieros de sistemas integrados que estén familiarizados con las herramientas, por no hablar de que sean conscientes de la seguridad.

¿Por qué es tan específico el aumento de la seguridad de los sistemas integrados?

Los lenguajes de programación C y C++ son geriátricos según los estándares actuales, pero siguen utilizándose con frecuencia. Constituyen el núcleo funcional de la base de código para sistemas integrados, y Embedded C/C++ está viviendo una brillante y moderna vida como parte del mundo de los dispositivos conectados.

Aunque estos lenguajes tienen raíces bastante antiguas y muestran un comportamiento de seguridad similar en lo que respecta a problemas frecuentes como los errores de inyección y el desbordamiento del búfer, para solucionar con éxito las vulnerabilidades de seguridad en los sistemas integrados, los desarrolladores deben adquirir experiencia práctica con código que imite los entornos en los que trabajan. Una formación genérica en C sobre prácticas generales de seguridad simplemente no será tan eficaz y memorable como si se dedicara más tiempo y cuidado al trabajo en un contexto de C integrado.

Con entre una docena y más de cien sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban formación específica en el IDE sobre lo que deben tener en cuenta y cómo pueden solucionar el problema.

¿Cómo se ve un error en la lógica de negocio en C/C++ integrado? Eche un vistazo y vea si puede identificarlo y solucionarlo como un profesional.

La protección de los sistemas integrados desde la planta baja es responsabilidad de todos.

El statu quo en muchas organizaciones es que la velocidad del desarrollo es más importante que la seguridad, al menos en lo que respecta a la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad para crear código seguro, sino que el desarrollo rápido de funciones excelentes es el estándar de referencia. La demanda de software no hará más que aumentar, pero esta es una cultura que nos ha preparado para una lucha inútil contra las brechas de seguridad y los ciberataques resultantes.

Si los desarrolladores no están formados, no es culpa suya, sino una laguna que alguien del equipo de seguridad de aplicaciones debe subsanar recomendando a toda la comunidad de desarrolladores programas de formación adecuados, accesibles (por no hablar de evaluables). Desde el inicio de un proyecto de desarrollo de software, la seguridad debe ser una prioridad, y todos, especialmente los desarrolladores, deben saber qué necesitan para contribuir.

Manejo práctico de los problemas de seguridad de los sistemas integrados

El desbordamiento del búfer, los errores de inyección y los errores en la lógica empresarial son errores comunes en el desarrollo de sistemas integrados. Si están profundamente ocultos en un laberinto de microcontroladores en un solo vehículo o dispositivo, pueden suponer un desastre por motivos de seguridad.

El desbordamiento del búfer es especialmente frecuente, y si desea obtener más información sobre cómo contribuyó a comprometer la freidora de aire caliente de la que hablamos anteriormente (lo que permite la ejecución de código de forma remota), consulte este informe sobre CVE-2020-28592.

Ahora es el momento de poner en práctica una vulnerabilidad de desbordamiento de búfer en código C/C++ integrado real. Juegue a este desafío para ver si puede localizar, identificar y corregir los patrones de codificación incorrectos que han provocado este error insidioso:

Cree el historial del desbordamiento del búfer.



Wie hast du dich geschlagen? Besuchen www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Ver seminario web
Empiece
Más información

Haga clic en el enlace de abajo y descargue el PDF de este recurso.

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Ver informeReservar una demostración
Ver recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Te interesa saber más?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Doctor Matias Madou
Publicado el 30 de agosto de 2021

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.

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.

Compartir en:
marcas de LinkedInSocialx logotipo

En la cultura pop hay muchas referencias a la inteligencia artificial y los robots rebeldes, así como a dispositivos que se rebelan contra sus amos humanos. Está muy impregnado de la diversión y la fantasía de la ciencia ficción, pero a medida que el Internet de las cosas y los dispositivos conectados ganan cada vez más importancia en nuestros hogares, también debería serlo el debate sobre la ciberseguridad y la seguridad. El software nos rodea y es muy fácil olvidar lo mucho que dependemos de las líneas de código para hacer todas esas cosas inteligentes que nos proporcionan tanta innovación y comodidad. Al igual que 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 el mundo real.

Aunque es poco probable que un ejército de microondas esclavice a la humanidad (aunque Tesla-Bot es un poco preocupante), como resultado de un ciberataque, los ciberincidentes maliciosos siguen siendo posibles. Algunos de nuestros automóviles, aviones y dispositivos médicos también dependen de un complejo código de sistema integrado para realizar tareas importantes. La perspectiva de que estos objetos se vean comprometidos no solo es alarmante, sino que también puede poner en peligro la vida.

Al igual que con cualquier otro tipo de software, los desarrolladores son los primeros en tocar el código al inicio de la fase de creación. Y, al igual que con cualquier otro tipo de software, esto puede ser un caldo de cultivo para vulnerabilidades de seguridad insidiosas y frecuentes que podrían pasar desapercibidas antes del lanzamiento del producto al mercado.

Los desarrolladores no son expertos en seguridad, y una empresa tampoco debería esperar que desempeñen ese papel, pero se les puede dotar de un arsenal mucho más potente para combatir el tipo de amenazas que les afectan. Los sistemas integrados, normalmente escritos en C y C++, se utilizarán cada vez más a medida que nuestras necesidades técnicas sigan evolucionando. Por lo tanto, es esencial que los desarrolladores reciban formación específica en materia de seguridad en relación con las herramientas de este entorno.

Freidoras de aire que explotan, vehículos malvados... ¿Somos presa fácil?

Aunque existen algunas normas y reglamentos en torno al desarrollo seguro en general, para protegernos debemos realizar avances mucho más precisos y significativos en materia de seguridad de todo tipo de software. Puede parecer descabellado pensar en un problema que pueda causar alguien que hackea una freidora de aire caliente, pero ha ocurrido en forma de un ataque de ejecución remota de código (que permite al agente malicioso aumentar la temperatura a un nivel peligroso), así como vulnerabilidades de seguridad que provocan el control de vehículos.

Los vehículos son especialmente complejos, ya que cuentan con varios sistemas integrados a bordo, cada uno de los cuales es responsable de microfunciones, desde los limpiaparabrisas automáticos hasta las funciones del motor y los frenos. El vehículo conectado está interconectado con un número cada vez mayor de tecnologías de comunicación, como WLAN, Bluetooth y GPS, y constituye una infraestructura digital compleja expuesta a numerosos vectores de ataque. Y con la previsión de que en 2023 habrá 76,3 millones de vehículos conectados circulando por las carreteras de todo el mundo, esto supone un monolito de bases defensivas que garantizan una seguridad real.

MISRA es una importante organización que lucha activamente contra las amenazas a los sistemas integrados y ha desarrollado directrices para facilitar la seguridad, la portabilidad y la fiabilidad de los códigos relacionados con los sistemas integrados. Estas directrices son una parte importante de los estándares que toda empresa debe aspirar a cumplir en sus proyectos de sistemas integrados.

Sin embargo, para crear y ejecutar código que cumpla con este estándar de oro, se necesitan ingenieros de sistemas integrados que estén familiarizados con las herramientas, por no hablar de que sean conscientes de la seguridad.

¿Por qué es tan específico el aumento de la seguridad de los sistemas integrados?

Los lenguajes de programación C y C++ son geriátricos según los estándares actuales, pero siguen utilizándose con frecuencia. Constituyen el núcleo funcional de la base de código para sistemas integrados, y Embedded C/C++ está viviendo una brillante y moderna vida como parte del mundo de los dispositivos conectados.

Aunque estos lenguajes tienen raíces bastante antiguas y muestran un comportamiento de seguridad similar en lo que respecta a problemas frecuentes como los errores de inyección y el desbordamiento del búfer, para solucionar con éxito las vulnerabilidades de seguridad en los sistemas integrados, los desarrolladores deben adquirir experiencia práctica con código que imite los entornos en los que trabajan. Una formación genérica en C sobre prácticas generales de seguridad simplemente no será tan eficaz y memorable como si se dedicara más tiempo y cuidado al trabajo en un contexto de C integrado.

Con entre una docena y más de cien sistemas integrados en un vehículo moderno, es imprescindible que los desarrolladores reciban formación específica en el IDE sobre lo que deben tener en cuenta y cómo pueden solucionar el problema.

¿Cómo se ve un error en la lógica de negocio en C/C++ integrado? Eche un vistazo y vea si puede identificarlo y solucionarlo como un profesional.

La protección de los sistemas integrados desde la planta baja es responsabilidad de todos.

El statu quo en muchas organizaciones es que la velocidad del desarrollo es más importante que la seguridad, al menos en lo que respecta a la responsabilidad de los desarrolladores. Rara vez se les evalúa por su capacidad para crear código seguro, sino que el desarrollo rápido de funciones excelentes es el estándar de referencia. La demanda de software no hará más que aumentar, pero esta es una cultura que nos ha preparado para una lucha inútil contra las brechas de seguridad y los ciberataques resultantes.

Si los desarrolladores no están formados, no es culpa suya, sino una laguna que alguien del equipo de seguridad de aplicaciones debe subsanar recomendando a toda la comunidad de desarrolladores programas de formación adecuados, accesibles (por no hablar de evaluables). Desde el inicio de un proyecto de desarrollo de software, la seguridad debe ser una prioridad, y todos, especialmente los desarrolladores, deben saber qué necesitan para contribuir.

Manejo práctico de los problemas de seguridad de los sistemas integrados

El desbordamiento del búfer, los errores de inyección y los errores en la lógica empresarial son errores comunes en el desarrollo de sistemas integrados. Si están profundamente ocultos en un laberinto de microcontroladores en un solo vehículo o dispositivo, pueden suponer un desastre por motivos de seguridad.

El desbordamiento del búfer es especialmente frecuente, y si desea obtener más información sobre cómo contribuyó a comprometer la freidora de aire caliente de la que hablamos anteriormente (lo que permite la ejecución de código de forma remota), consulte este informe sobre CVE-2020-28592.

Ahora es el momento de poner en práctica una vulnerabilidad de desbordamiento de búfer en código C/C++ integrado real. Juegue a este desafío para ver si puede localizar, identificar y corregir los patrones de codificación incorrectos que han provocado este error insidioso:

Cree el historial del desbordamiento del búfer.



Wie hast du dich geschlagen? Besuchen www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Índice

Descargar PDF
Ver recurso
¿Te interesa saber más?

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.

Más información

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Reservar una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas