
Por qué la seguridad de extremo a extremo es importante para los sistemas integrados
Los sistemas integrados ayudan a ofrecer una gran cantidad de tecnología moderna. Desde el control de velocidad adaptativo de tu coche hasta el wifi de tu frigorífico inteligente. Con el aumento de los ciberataques, proteger estos sistemas se ha vuelto fundamental.
Los dispositivos integrados son los principales objetivos de la piratería informática, ya que un ataque exitoso puede dar a los intrusos acceso a los datos que producen, reciben y procesan. Con frecuencia, esto puede tener graves consecuencias para el sistema más grande alimentado por el dispositivo integrado. Por ejemplo, apagando un dispositivo integrado en el avión de combate F-15, que recopila datos de varias cámaras y sensores, puede obstaculizar significativamente las defensas del avión.
Hemos escrito este artículo para cubrir todo lo que necesita para empezar a desarrollar sistemas integrados seguros. Esto es lo que se incluye:
- ¿Qué es la seguridad integrada?
- Desafíos a los que se enfrenta la implementación de la seguridad integrada.
- ¿Qué hace que un sistema integrado sea «seguro»?
- Por qué la seguridad de extremo a extremo es importante en un ecosistema integrado.
- Algunas herramientas de seguridad integradas.
- ¿Qué les falta a las soluciones integradas típicas?
- El futuro de la seguridad integrada.
¿Qué es la seguridad integrada?
La seguridad integrada proporciona las herramientas, los procesos y las mejores prácticas para proteger el software y el hardware de los dispositivos integrados.
Como los módulos de hardware de los sistemas integrados son pequeños, tienen varias limitaciones de memoria y almacenamiento. Por lo tanto, incorporarles medidas de seguridad se convierte en un enorme desafío de diseño. Sin embargo, por difícil que sea, es una necesidad del momento.
Muchos de los aparatos y máquinas que funcionan con dispositivos integrados también están conectados a Internet. Esto significa que los piratas informáticos pueden obtener acceso no autorizado a ellos y ejecutar cualquier código malicioso.
Un hackeo en un dispositivo integrado a menudo puede extenderse a otros componentes conectados o paralizar todo el sistema. Por ejemplo, supongamos que un atacante consigue hacerse con el control de un dispositivo integrado que permite a los conductores poner su coche en piloto automático. De este modo, el pirata informático puede conducir el coche fuera de la carretera o hacia el tráfico, lo que podría causar muchos daños.
Desafíos críticos de seguridad de los sistemas integrados
La seguridad del sistema integrado no recibe la atención que merece. Estas son algunas de las razones por las que:
- Falta de conocimiento de los desarrolladores:
Por lo general, los desarrolladores desconocen las mejores prácticas para desarrollar dispositivos integrados seguros. Esto se debe en parte al punto #2 y, en parte, a que las aplicaciones integradas son mucho más complicadas que las aplicaciones de software tradicionales. Comprender sus implicaciones de seguridad y escribir código seguro y eficiente para todos los casos de uso, además de en un entorno microinformático limitado, puede resultar difícil.
- Falta de estandarización:
Faltan estándares de ciberseguridad para los sistemas integrados. A pesar de que la industria automotriz está intentando cambiar eso lentamente. En los últimos años, los investigadores han publicado bastantes publicaciones que abordan las consideraciones de ciberseguridad para los vehículos inteligentes. Algunas de las más destacadas son SAE J3061, «Guía de ciberseguridad para sistemas de vehículos ciberfísicos»: y Reglamento WP.29 de la CEPE sobre ciberseguridad y procesos de actualización de software.
- Uso de componentes de terceros
Muchos dispositivos integrados requerían componentes de hardware y software de terceros para funcionar. A menudo, estos componentes se utilizan sin haber sido probados para detectar cualquier fallo o vulnerabilidad de seguridad.
- Software desactualizado
Un firmware desactualizado suele estar plagado de errores y vulnerabilidades potencialmente explotables. Aunque puede resultar especialmente difícil actualizar periódicamente el firmware de un dispositivo integrado pequeño, no es algo que se pueda ignorar.
- Conectividad directa a Internet
Muchos sistemas y dispositivos integrados están conectados directamente a Internet. Esto significa que no cuentan con la protección de los firewalls empresariales, que pueden detectar y prevenir los ataques a la red. Dado que los recursos son escasos, resulta muy difícil implementar niveles rigurosos de seguridad en un entorno tan limitado.
- Ataque a gran escala
Los dispositivos embebidos generalmente se producen a escala. Esto significa que una sola vulnerabilidad o falla puede afectar a millones de dispositivos, a veces en todo el mundo. Por lo tanto, contener los impactos de un ataque a un sistema integrado puede ser un desafío enorme.
Qué hace que un sistema integrado sea ¿seguro?
En las siguientes secciones, analizaremos algunas características del software y el hardware de los sistemas integrados seguros.
Mejores prácticas de seguridad de hardware
Un sistema integrado seguro tiene:
- Un entorno de ejecución confiable
Un entorno de ejecución confiable (TEE) permite el aislamiento a nivel de hardware de las operaciones críticas para la seguridad. Por ejemplo, la autenticación del usuario puede ejecutarse en un área segregada, lo que permite proteger mejor la información confidencial.
- Recursos de hardware debidamente particionados
Los diferentes componentes de hardware, como los procesadores, la caché, la memoria y las interfaces de red, etc., deben segregarse adecuadamente para que sus funciones sean lo más independientes posible. Esto ayuda a evitar que un error en un componente se propague a otros componentes.
- Protección de espacio ejecutable (ESP)
La protección del espacio ejecutable, o ESP, es la práctica de marcar ciertas regiones de memoria como no ejecutables. Si alguien intenta ejecutar cualquier código dentro de estas regiones marcadas, se produce una excepción.
Mejores prácticas de seguridad de software
Al crear software integrado, se deben tener en cuenta las siguientes prácticas recomendadas:
- Usa un arranque seguro:
Cuando se inicia un dispositivo integrado, la imagen de arranque se verifica mediante algoritmos criptográficos. Esto garantiza que la secuencia de arranque sea correcta y que el software (el firmware y cualquier otro dato relevante) no se haya manipulado.
- Utilice un sistema operativo de micronúcleo
Un sistema operativo de micronúcleo es mucho más pequeño que un sistema operativo tradicional y contiene un subconjunto de sus funciones. El espacio del núcleo es pequeño y muchos servicios de usuario (como la administración del sistema de archivos, etc.) se guardan en un espacio separado, conocido como espacio de usuario. Como se ejecutan menos código y operaciones en el espacio del kernel, la superficie de ataque se reduce significativamente.
- Utilice aplicaciones de software empaquetadas correctamente
Todas las aplicaciones de software deben ser independientes y estar empaquetadas correctamente. Por ejemplo, si una aplicación requiere una dependencia de terceros, no debe instalarse globalmente en el sistema operativo. Más bien, debería formar parte del paquete/contenedor de la aplicación.
- Validar todas las entradas
Todos los datos recibidos de fuentes externas o no confiables deben desinfectarse y validarse adecuadamente antes de pasarlos a componentes críticos de software o hardware.
Si una aplicación obtiene datos de una integración de API externa y cambia alguna configuración en función de ella, los datos recibidos deben validarse rigurosamente antes de cambiar la configuración.
- Proteja los datos en reposo:
Todo el software confidencial, los datos, los archivos de configuración, las claves seguras y las contraseñas, etc. que se almacenan en un dispositivo integrado deben estar protegidos. Por lo general, esto se hace mediante cifrado. Las claves privadas utilizadas para cifrar los datos deben almacenarse en un hardware de seguridad dedicado y diseñado específicamente.
La pirámide de la seguridad: seguridad integral para sistemas embebidos
Atrás quedaron los días en que la seguridad solía ser una idea de último momento. Un requisito no funcional. Hoy en día, la seguridad debe ser intrínseca. Los dispositivos deben ser seguros desde el diseño. Para ello, es esencial implementar requisitos de seguridad de extremo a extremo en un entorno integrado. Esto significa: piense en la seguridad al elegir el hardware, al definir la arquitectura del sistema, al diseñar su sistema y, por supuesto, al escribir el código.
Comience en el hardware
No importa qué tan sólida sea la seguridad de su software, si falta su hardware, será susceptible a los ataques. Las técnicas de seguridad integradas en el chip permiten un arranque seguro y una gestión eficiente de las funciones y los secretos criptográficos. Algunos componentes de hardware también pueden permitir que el sistema operativo ofrezca diversas funciones de seguridad, como la detección de anomalías en las llamadas al sistema, el cifrado del sistema de archivos y las políticas de control de acceso.
Un sistema tolerante a errores
Existen numerosos motivos para diseñar un sistema tolerante a fallos, y evitar los ataques de análisis diferencial de fallos es solo uno de ellos. En un ataque de este tipo, un pirata informático potencial puede utilizar técnicas de inyección de errores para intentar producir errores en un dispositivo integrado. Sin embargo, hay varias formas posibles de detectar este tipo de fallos y protegerse contra ellos:
- Replique las operaciones más críticas, de modo que se puedan comparar diferentes salidas, en un momento dado, para detectar la inyección de una falla.
- Fallo de forma predeterminada: cuando se gestionan varias condiciones (dentro de una condición If o un bloque de conmutadores), siempre se produce un error en el caso predeterminado, es decir, cuando nada más coincide.
- Introducir un comportamiento aleatorio: agregar pequeños retrasos aleatorios antes de las operaciones cruciales garantiza que su tiempo nunca sea predecible. Esto es clave en la detección de intrusos, ya que dificulta mucho a los piratas informáticos determinar los patrones de operación y realizar ataques cronometrados.
- Escudos protectores: los fabricantes deben usar protectores para cubrir los componentes más importantes y protegerlos de la manipulación externa.
- Detecte fluctuaciones anormales: detecte las fluctuaciones anormales en el voltaje, la corriente u otros valores y genere excepciones en consecuencia.
Proteja su aplicación... y su sistema operativo
Crear la defensa de su dispositivo a nivel de aplicación implica:
- Elegir componentes de software y hardware de terceros probados y acreditados que puedan actualizarse periódicamente.
- Capacitar a los desarrolladores en las mejores prácticas relacionadas con la seguridad de los sistemas integrados.
- Utilice un sistema operativo de micronúcleo para garantizar que se ejecute un número mínimo de operaciones en el espacio del núcleo.
- Supervise y protéjase contra los ataques de software, incluidos los virus, los troyanos y el malware.
- Elimine todos los servicios innecesarios. Su firmware solo debe tener lo que es absolutamente necesario. Por ejemplo, es posible que no necesite transferir archivos ni capturar paquetes, por lo que puede deshabilitar los protocolos de transferencia de archivos y los paquetes de red como Telnet.
- Utilice protocolos seguros como SFTP, IPsec, SSL, TLS, SSH y DNSSEC.
Herramientas para la seguridad del sistema integrado
Esta es una lista no exhaustiva de herramientas que pueden ayudar a proteger los sistemas integrados:
- lanzador de autobuses: una plataforma de depuración de alta velocidad que puede interactuar con los puertos de depuración del hardware.
- Ensalada: Decodifica varios protocolos como Serial, SPI e I2C, etc. Puedes usar analizadores de protocolos creados por la comunidad o crear los tuyos propios.
- Hidrabus: Hardware multiherramienta de código abierto que se puede usar para depurar, piratear y/o realizar pruebas de penetración de hardware integrado.
- Explotar: Un marco de explotación y pruebas de seguridad de Internet de las cosas (IoT) de código abierto.
- FACT (la herramienta de análisis y comparación de firmware): Marco utilizado para automatizar el análisis de seguridad del firmware.
- Los enrutadores se desvían: Un marco de explotación de código abierto para dispositivos integrados.
- Firmadyne: Sistema de código abierto para la emulación y el análisis dinámico del firmware integrado basado en Linux.
¿Dónde faltan las soluciones de seguridad integradas modernas?
Aunque hay varias soluciones disponibles para depurar, explotar y probar soluciones integradas, no se utilizan fácilmente. Se sigue haciendo hincapié en la protección física del dispositivo, pero no se hacen los esfuerzos suficientes para protegerlo contra los ataques relacionados con el software. Incluso los riesgos y vulnerabilidades de seguridad de las aplicaciones más simples y fáciles de evitar siguen siendo comunes entre los dispositivos integrados modernos.
Una de las principales razones de esto es la falta de conocimiento de los desarrolladores sobre la seguridad integrada. Según una encuesta realizada por Tripwire, el 68% de los profesionales de TI cree que su fuerza laboral no conoce adecuadamente las posibles vulnerabilidades.
Los desarrolladores no saben qué protocolos de seguridad elegir, qué marcos evitar, qué componentes de hardware segregar, cómo tratar los datos confidenciales y cómo determinar qué algoritmo de cifrado es el más seguro. Esta falta general de conocimiento y el desprecio por las mejores prácticas hacen que las aplicaciones que se ejecutan en dispositivos integrados sean susceptibles de verse comprometidas.
El futuro de la seguridad integrada
Se está trabajando mucho en el mercado de la seguridad integrada. Los expertos creen que la tasa de crecimiento anual compuesta (CAGR) del mercado puede alcanzar un cifra del 5,5% durante el período 2021-2026. Con el lanzamiento de más y más dispositivos de IoT, podemos esperar que se establezcan nuevos estándares de seguridad integrados.
La creciente adopción de dispositivos médicos portátiles también aumentará la demanda de soluciones de seguridad integradas confiables. Para que los dispositivos contengan y procesen datos médicos confidenciales, deben superar determinadas listas de verificación de seguridad, y esperamos que esto haga que los proveedores e ingenieros se centren más en la seguridad.
En el futuro, es posible que también tengamos soluciones que permitan la visibilidad, la supervisión y el control remotos de los principales componentes de software y hardware de los dispositivos integrados. Esto realmente cambiará las reglas del juego en el mundo de la seguridad de los sistemas integrados.
Al fin y al cabo, las firmas digitales, el cifrado de datos, la adición de firewalls, la implementación del control de acceso y la aleatorización de las operaciones solo pueden llevarle hasta cierto punto. Para crear dispositivos verdaderamente seguros, los desarrolladores deben estar capacitados para escribir código seguro. Identificar los posibles riesgos de seguridad y mitigarlos durante la fase de diseño de la aplicación contribuye en gran medida a crear sistemas intrínsecamente seguro.
Cómo puede ayudar Secure Code Warrior
El producto estrella de Secure Code Warrior, la plataforma de aprendizaje, incluye numerosos desafíos, cursos y evaluaciones interactivos que pueden ayudar a capacitar a los desarrolladores para escribir código C/C++ seguro. El contenido de la plataforma es específico para cada marco y es muy atractivo. Nuestros desafíos de codificación C/C++:Embed se inspiraron en MISRA C, AUTOSAR C++ (MISRA C++) e IEC.
Los desarrolladores pueden embarcarse en viajes de aprendizaje personalizados, en los que identifican las vulnerabilidades específicas de C/C++ y, lo que es más importante, aprenden a corregir esos errores. En este proceso, los desarrolladores pueden hacer un seguimiento de su progreso para identificar sus puntos débiles e incluso disfrutar de un concurso de programación amistoso con sus compañeros. Obtenga más información sobre cómo ayudamos a las industrias automotriz y de transporte con nuestras soluciones.
¿Quiere saber qué tan interactivos y centrados son nuestros desafíos? ¡Prueba algunos desafíos de C/C++:Embed ¡en la plataforma de aprendizaje hoy!


Este artículo cubrirá una descripción general de la protección de los sistemas integrados. Empezaremos por la definición básica y, a continuación, analizaremos los desafíos de la seguridad integrada, algunas soluciones típicas y los acertijos que faltan.
Secure Code Warrior fait du codage sécurisé une expérience positive et attrayante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son propre parcours d'apprentissage, afin que les développeurs compétents en matière de sécurité deviennent les super-héros quotidiens de notre monde connecté.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.Secure Code Warrior fait du codage sécurisé une expérience positive et attrayante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son propre parcours d'apprentissage, afin que les développeurs compétents en matière de sécurité deviennent les super-héros quotidiens de notre monde connecté.
Cet article a été écrit par Secure Code Warrior L'équipe d'experts du secteur de s'engage à fournir aux développeurs les connaissances et les compétences nécessaires pour créer des logiciels sécurisés dès le départ. S'appuyant sur une expertise approfondie des pratiques de codage sécurisé, des tendances du secteur et des connaissances du monde réel.


Los sistemas integrados ayudan a ofrecer una gran cantidad de tecnología moderna. Desde el control de velocidad adaptativo de tu coche hasta el wifi de tu frigorífico inteligente. Con el aumento de los ciberataques, proteger estos sistemas se ha vuelto fundamental.
Los dispositivos integrados son los principales objetivos de la piratería informática, ya que un ataque exitoso puede dar a los intrusos acceso a los datos que producen, reciben y procesan. Con frecuencia, esto puede tener graves consecuencias para el sistema más grande alimentado por el dispositivo integrado. Por ejemplo, apagando un dispositivo integrado en el avión de combate F-15, que recopila datos de varias cámaras y sensores, puede obstaculizar significativamente las defensas del avión.
Hemos escrito este artículo para cubrir todo lo que necesita para empezar a desarrollar sistemas integrados seguros. Esto es lo que se incluye:
- ¿Qué es la seguridad integrada?
- Desafíos a los que se enfrenta la implementación de la seguridad integrada.
- ¿Qué hace que un sistema integrado sea «seguro»?
- Por qué la seguridad de extremo a extremo es importante en un ecosistema integrado.
- Algunas herramientas de seguridad integradas.
- ¿Qué les falta a las soluciones integradas típicas?
- El futuro de la seguridad integrada.
¿Qué es la seguridad integrada?
La seguridad integrada proporciona las herramientas, los procesos y las mejores prácticas para proteger el software y el hardware de los dispositivos integrados.
Como los módulos de hardware de los sistemas integrados son pequeños, tienen varias limitaciones de memoria y almacenamiento. Por lo tanto, incorporarles medidas de seguridad se convierte en un enorme desafío de diseño. Sin embargo, por difícil que sea, es una necesidad del momento.
Muchos de los aparatos y máquinas que funcionan con dispositivos integrados también están conectados a Internet. Esto significa que los piratas informáticos pueden obtener acceso no autorizado a ellos y ejecutar cualquier código malicioso.
Un hackeo en un dispositivo integrado a menudo puede extenderse a otros componentes conectados o paralizar todo el sistema. Por ejemplo, supongamos que un atacante consigue hacerse con el control de un dispositivo integrado que permite a los conductores poner su coche en piloto automático. De este modo, el pirata informático puede conducir el coche fuera de la carretera o hacia el tráfico, lo que podría causar muchos daños.
Desafíos críticos de seguridad de los sistemas integrados
La seguridad del sistema integrado no recibe la atención que merece. Estas son algunas de las razones por las que:
- Falta de conocimiento de los desarrolladores:
Por lo general, los desarrolladores desconocen las mejores prácticas para desarrollar dispositivos integrados seguros. Esto se debe en parte al punto #2 y, en parte, a que las aplicaciones integradas son mucho más complicadas que las aplicaciones de software tradicionales. Comprender sus implicaciones de seguridad y escribir código seguro y eficiente para todos los casos de uso, además de en un entorno microinformático limitado, puede resultar difícil.
- Falta de estandarización:
Faltan estándares de ciberseguridad para los sistemas integrados. A pesar de que la industria automotriz está intentando cambiar eso lentamente. En los últimos años, los investigadores han publicado bastantes publicaciones que abordan las consideraciones de ciberseguridad para los vehículos inteligentes. Algunas de las más destacadas son SAE J3061, «Guía de ciberseguridad para sistemas de vehículos ciberfísicos»: y Reglamento WP.29 de la CEPE sobre ciberseguridad y procesos de actualización de software.
- Uso de componentes de terceros
Muchos dispositivos integrados requerían componentes de hardware y software de terceros para funcionar. A menudo, estos componentes se utilizan sin haber sido probados para detectar cualquier fallo o vulnerabilidad de seguridad.
- Software desactualizado
Un firmware desactualizado suele estar plagado de errores y vulnerabilidades potencialmente explotables. Aunque puede resultar especialmente difícil actualizar periódicamente el firmware de un dispositivo integrado pequeño, no es algo que se pueda ignorar.
- Conectividad directa a Internet
Muchos sistemas y dispositivos integrados están conectados directamente a Internet. Esto significa que no cuentan con la protección de los firewalls empresariales, que pueden detectar y prevenir los ataques a la red. Dado que los recursos son escasos, resulta muy difícil implementar niveles rigurosos de seguridad en un entorno tan limitado.
- Ataque a gran escala
Los dispositivos embebidos generalmente se producen a escala. Esto significa que una sola vulnerabilidad o falla puede afectar a millones de dispositivos, a veces en todo el mundo. Por lo tanto, contener los impactos de un ataque a un sistema integrado puede ser un desafío enorme.
Qué hace que un sistema integrado sea ¿seguro?
En las siguientes secciones, analizaremos algunas características del software y el hardware de los sistemas integrados seguros.
Mejores prácticas de seguridad de hardware
Un sistema integrado seguro tiene:
- Un entorno de ejecución confiable
Un entorno de ejecución confiable (TEE) permite el aislamiento a nivel de hardware de las operaciones críticas para la seguridad. Por ejemplo, la autenticación del usuario puede ejecutarse en un área segregada, lo que permite proteger mejor la información confidencial.
- Recursos de hardware debidamente particionados
Los diferentes componentes de hardware, como los procesadores, la caché, la memoria y las interfaces de red, etc., deben segregarse adecuadamente para que sus funciones sean lo más independientes posible. Esto ayuda a evitar que un error en un componente se propague a otros componentes.
- Protección de espacio ejecutable (ESP)
La protección del espacio ejecutable, o ESP, es la práctica de marcar ciertas regiones de memoria como no ejecutables. Si alguien intenta ejecutar cualquier código dentro de estas regiones marcadas, se produce una excepción.
Mejores prácticas de seguridad de software
Al crear software integrado, se deben tener en cuenta las siguientes prácticas recomendadas:
- Usa un arranque seguro:
Cuando se inicia un dispositivo integrado, la imagen de arranque se verifica mediante algoritmos criptográficos. Esto garantiza que la secuencia de arranque sea correcta y que el software (el firmware y cualquier otro dato relevante) no se haya manipulado.
- Utilice un sistema operativo de micronúcleo
Un sistema operativo de micronúcleo es mucho más pequeño que un sistema operativo tradicional y contiene un subconjunto de sus funciones. El espacio del núcleo es pequeño y muchos servicios de usuario (como la administración del sistema de archivos, etc.) se guardan en un espacio separado, conocido como espacio de usuario. Como se ejecutan menos código y operaciones en el espacio del kernel, la superficie de ataque se reduce significativamente.
- Utilice aplicaciones de software empaquetadas correctamente
Todas las aplicaciones de software deben ser independientes y estar empaquetadas correctamente. Por ejemplo, si una aplicación requiere una dependencia de terceros, no debe instalarse globalmente en el sistema operativo. Más bien, debería formar parte del paquete/contenedor de la aplicación.
- Validar todas las entradas
Todos los datos recibidos de fuentes externas o no confiables deben desinfectarse y validarse adecuadamente antes de pasarlos a componentes críticos de software o hardware.
Si una aplicación obtiene datos de una integración de API externa y cambia alguna configuración en función de ella, los datos recibidos deben validarse rigurosamente antes de cambiar la configuración.
- Proteja los datos en reposo:
Todo el software confidencial, los datos, los archivos de configuración, las claves seguras y las contraseñas, etc. que se almacenan en un dispositivo integrado deben estar protegidos. Por lo general, esto se hace mediante cifrado. Las claves privadas utilizadas para cifrar los datos deben almacenarse en un hardware de seguridad dedicado y diseñado específicamente.
La pirámide de la seguridad: seguridad integral para sistemas embebidos
Atrás quedaron los días en que la seguridad solía ser una idea de último momento. Un requisito no funcional. Hoy en día, la seguridad debe ser intrínseca. Los dispositivos deben ser seguros desde el diseño. Para ello, es esencial implementar requisitos de seguridad de extremo a extremo en un entorno integrado. Esto significa: piense en la seguridad al elegir el hardware, al definir la arquitectura del sistema, al diseñar su sistema y, por supuesto, al escribir el código.
Comience en el hardware
No importa qué tan sólida sea la seguridad de su software, si falta su hardware, será susceptible a los ataques. Las técnicas de seguridad integradas en el chip permiten un arranque seguro y una gestión eficiente de las funciones y los secretos criptográficos. Algunos componentes de hardware también pueden permitir que el sistema operativo ofrezca diversas funciones de seguridad, como la detección de anomalías en las llamadas al sistema, el cifrado del sistema de archivos y las políticas de control de acceso.
Un sistema tolerante a errores
Existen numerosos motivos para diseñar un sistema tolerante a fallos, y evitar los ataques de análisis diferencial de fallos es solo uno de ellos. En un ataque de este tipo, un pirata informático potencial puede utilizar técnicas de inyección de errores para intentar producir errores en un dispositivo integrado. Sin embargo, hay varias formas posibles de detectar este tipo de fallos y protegerse contra ellos:
- Replique las operaciones más críticas, de modo que se puedan comparar diferentes salidas, en un momento dado, para detectar la inyección de una falla.
- Fallo de forma predeterminada: cuando se gestionan varias condiciones (dentro de una condición If o un bloque de conmutadores), siempre se produce un error en el caso predeterminado, es decir, cuando nada más coincide.
- Introducir un comportamiento aleatorio: agregar pequeños retrasos aleatorios antes de las operaciones cruciales garantiza que su tiempo nunca sea predecible. Esto es clave en la detección de intrusos, ya que dificulta mucho a los piratas informáticos determinar los patrones de operación y realizar ataques cronometrados.
- Escudos protectores: los fabricantes deben usar protectores para cubrir los componentes más importantes y protegerlos de la manipulación externa.
- Detecte fluctuaciones anormales: detecte las fluctuaciones anormales en el voltaje, la corriente u otros valores y genere excepciones en consecuencia.
Proteja su aplicación... y su sistema operativo
Crear la defensa de su dispositivo a nivel de aplicación implica:
- Elegir componentes de software y hardware de terceros probados y acreditados que puedan actualizarse periódicamente.
- Capacitar a los desarrolladores en las mejores prácticas relacionadas con la seguridad de los sistemas integrados.
- Utilice un sistema operativo de micronúcleo para garantizar que se ejecute un número mínimo de operaciones en el espacio del núcleo.
- Supervise y protéjase contra los ataques de software, incluidos los virus, los troyanos y el malware.
- Elimine todos los servicios innecesarios. Su firmware solo debe tener lo que es absolutamente necesario. Por ejemplo, es posible que no necesite transferir archivos ni capturar paquetes, por lo que puede deshabilitar los protocolos de transferencia de archivos y los paquetes de red como Telnet.
- Utilice protocolos seguros como SFTP, IPsec, SSL, TLS, SSH y DNSSEC.
Herramientas para la seguridad del sistema integrado
Esta es una lista no exhaustiva de herramientas que pueden ayudar a proteger los sistemas integrados:
- lanzador de autobuses: una plataforma de depuración de alta velocidad que puede interactuar con los puertos de depuración del hardware.
- Ensalada: Decodifica varios protocolos como Serial, SPI e I2C, etc. Puedes usar analizadores de protocolos creados por la comunidad o crear los tuyos propios.
- Hidrabus: Hardware multiherramienta de código abierto que se puede usar para depurar, piratear y/o realizar pruebas de penetración de hardware integrado.
- Explotar: Un marco de explotación y pruebas de seguridad de Internet de las cosas (IoT) de código abierto.
- FACT (la herramienta de análisis y comparación de firmware): Marco utilizado para automatizar el análisis de seguridad del firmware.
- Los enrutadores se desvían: Un marco de explotación de código abierto para dispositivos integrados.
- Firmadyne: Sistema de código abierto para la emulación y el análisis dinámico del firmware integrado basado en Linux.
¿Dónde faltan las soluciones de seguridad integradas modernas?
Aunque hay varias soluciones disponibles para depurar, explotar y probar soluciones integradas, no se utilizan fácilmente. Se sigue haciendo hincapié en la protección física del dispositivo, pero no se hacen los esfuerzos suficientes para protegerlo contra los ataques relacionados con el software. Incluso los riesgos y vulnerabilidades de seguridad de las aplicaciones más simples y fáciles de evitar siguen siendo comunes entre los dispositivos integrados modernos.
Una de las principales razones de esto es la falta de conocimiento de los desarrolladores sobre la seguridad integrada. Según una encuesta realizada por Tripwire, el 68% de los profesionales de TI cree que su fuerza laboral no conoce adecuadamente las posibles vulnerabilidades.
Los desarrolladores no saben qué protocolos de seguridad elegir, qué marcos evitar, qué componentes de hardware segregar, cómo tratar los datos confidenciales y cómo determinar qué algoritmo de cifrado es el más seguro. Esta falta general de conocimiento y el desprecio por las mejores prácticas hacen que las aplicaciones que se ejecutan en dispositivos integrados sean susceptibles de verse comprometidas.
El futuro de la seguridad integrada
Se está trabajando mucho en el mercado de la seguridad integrada. Los expertos creen que la tasa de crecimiento anual compuesta (CAGR) del mercado puede alcanzar un cifra del 5,5% durante el período 2021-2026. Con el lanzamiento de más y más dispositivos de IoT, podemos esperar que se establezcan nuevos estándares de seguridad integrados.
La creciente adopción de dispositivos médicos portátiles también aumentará la demanda de soluciones de seguridad integradas confiables. Para que los dispositivos contengan y procesen datos médicos confidenciales, deben superar determinadas listas de verificación de seguridad, y esperamos que esto haga que los proveedores e ingenieros se centren más en la seguridad.
En el futuro, es posible que también tengamos soluciones que permitan la visibilidad, la supervisión y el control remotos de los principales componentes de software y hardware de los dispositivos integrados. Esto realmente cambiará las reglas del juego en el mundo de la seguridad de los sistemas integrados.
Al fin y al cabo, las firmas digitales, el cifrado de datos, la adición de firewalls, la implementación del control de acceso y la aleatorización de las operaciones solo pueden llevarle hasta cierto punto. Para crear dispositivos verdaderamente seguros, los desarrolladores deben estar capacitados para escribir código seguro. Identificar los posibles riesgos de seguridad y mitigarlos durante la fase de diseño de la aplicación contribuye en gran medida a crear sistemas intrínsecamente seguro.
Cómo puede ayudar Secure Code Warrior
El producto estrella de Secure Code Warrior, la plataforma de aprendizaje, incluye numerosos desafíos, cursos y evaluaciones interactivos que pueden ayudar a capacitar a los desarrolladores para escribir código C/C++ seguro. El contenido de la plataforma es específico para cada marco y es muy atractivo. Nuestros desafíos de codificación C/C++:Embed se inspiraron en MISRA C, AUTOSAR C++ (MISRA C++) e IEC.
Los desarrolladores pueden embarcarse en viajes de aprendizaje personalizados, en los que identifican las vulnerabilidades específicas de C/C++ y, lo que es más importante, aprenden a corregir esos errores. En este proceso, los desarrolladores pueden hacer un seguimiento de su progreso para identificar sus puntos débiles e incluso disfrutar de un concurso de programación amistoso con sus compañeros. Obtenga más información sobre cómo ayudamos a las industrias automotriz y de transporte con nuestras soluciones.
¿Quiere saber qué tan interactivos y centrados son nuestros desafíos? ¡Prueba algunos desafíos de C/C++:Embed ¡en la plataforma de aprendizaje hoy!

Los sistemas integrados ayudan a ofrecer una gran cantidad de tecnología moderna. Desde el control de velocidad adaptativo de tu coche hasta el wifi de tu frigorífico inteligente. Con el aumento de los ciberataques, proteger estos sistemas se ha vuelto fundamental.
Los dispositivos integrados son los principales objetivos de la piratería informática, ya que un ataque exitoso puede dar a los intrusos acceso a los datos que producen, reciben y procesan. Con frecuencia, esto puede tener graves consecuencias para el sistema más grande alimentado por el dispositivo integrado. Por ejemplo, apagando un dispositivo integrado en el avión de combate F-15, que recopila datos de varias cámaras y sensores, puede obstaculizar significativamente las defensas del avión.
Hemos escrito este artículo para cubrir todo lo que necesita para empezar a desarrollar sistemas integrados seguros. Esto es lo que se incluye:
- ¿Qué es la seguridad integrada?
- Desafíos a los que se enfrenta la implementación de la seguridad integrada.
- ¿Qué hace que un sistema integrado sea «seguro»?
- Por qué la seguridad de extremo a extremo es importante en un ecosistema integrado.
- Algunas herramientas de seguridad integradas.
- ¿Qué les falta a las soluciones integradas típicas?
- El futuro de la seguridad integrada.
¿Qué es la seguridad integrada?
La seguridad integrada proporciona las herramientas, los procesos y las mejores prácticas para proteger el software y el hardware de los dispositivos integrados.
Como los módulos de hardware de los sistemas integrados son pequeños, tienen varias limitaciones de memoria y almacenamiento. Por lo tanto, incorporarles medidas de seguridad se convierte en un enorme desafío de diseño. Sin embargo, por difícil que sea, es una necesidad del momento.
Muchos de los aparatos y máquinas que funcionan con dispositivos integrados también están conectados a Internet. Esto significa que los piratas informáticos pueden obtener acceso no autorizado a ellos y ejecutar cualquier código malicioso.
Un hackeo en un dispositivo integrado a menudo puede extenderse a otros componentes conectados o paralizar todo el sistema. Por ejemplo, supongamos que un atacante consigue hacerse con el control de un dispositivo integrado que permite a los conductores poner su coche en piloto automático. De este modo, el pirata informático puede conducir el coche fuera de la carretera o hacia el tráfico, lo que podría causar muchos daños.
Desafíos críticos de seguridad de los sistemas integrados
La seguridad del sistema integrado no recibe la atención que merece. Estas son algunas de las razones por las que:
- Falta de conocimiento de los desarrolladores:
Por lo general, los desarrolladores desconocen las mejores prácticas para desarrollar dispositivos integrados seguros. Esto se debe en parte al punto #2 y, en parte, a que las aplicaciones integradas son mucho más complicadas que las aplicaciones de software tradicionales. Comprender sus implicaciones de seguridad y escribir código seguro y eficiente para todos los casos de uso, además de en un entorno microinformático limitado, puede resultar difícil.
- Falta de estandarización:
Faltan estándares de ciberseguridad para los sistemas integrados. A pesar de que la industria automotriz está intentando cambiar eso lentamente. En los últimos años, los investigadores han publicado bastantes publicaciones que abordan las consideraciones de ciberseguridad para los vehículos inteligentes. Algunas de las más destacadas son SAE J3061, «Guía de ciberseguridad para sistemas de vehículos ciberfísicos»: y Reglamento WP.29 de la CEPE sobre ciberseguridad y procesos de actualización de software.
- Uso de componentes de terceros
Muchos dispositivos integrados requerían componentes de hardware y software de terceros para funcionar. A menudo, estos componentes se utilizan sin haber sido probados para detectar cualquier fallo o vulnerabilidad de seguridad.
- Software desactualizado
Un firmware desactualizado suele estar plagado de errores y vulnerabilidades potencialmente explotables. Aunque puede resultar especialmente difícil actualizar periódicamente el firmware de un dispositivo integrado pequeño, no es algo que se pueda ignorar.
- Conectividad directa a Internet
Muchos sistemas y dispositivos integrados están conectados directamente a Internet. Esto significa que no cuentan con la protección de los firewalls empresariales, que pueden detectar y prevenir los ataques a la red. Dado que los recursos son escasos, resulta muy difícil implementar niveles rigurosos de seguridad en un entorno tan limitado.
- Ataque a gran escala
Los dispositivos embebidos generalmente se producen a escala. Esto significa que una sola vulnerabilidad o falla puede afectar a millones de dispositivos, a veces en todo el mundo. Por lo tanto, contener los impactos de un ataque a un sistema integrado puede ser un desafío enorme.
Qué hace que un sistema integrado sea ¿seguro?
En las siguientes secciones, analizaremos algunas características del software y el hardware de los sistemas integrados seguros.
Mejores prácticas de seguridad de hardware
Un sistema integrado seguro tiene:
- Un entorno de ejecución confiable
Un entorno de ejecución confiable (TEE) permite el aislamiento a nivel de hardware de las operaciones críticas para la seguridad. Por ejemplo, la autenticación del usuario puede ejecutarse en un área segregada, lo que permite proteger mejor la información confidencial.
- Recursos de hardware debidamente particionados
Los diferentes componentes de hardware, como los procesadores, la caché, la memoria y las interfaces de red, etc., deben segregarse adecuadamente para que sus funciones sean lo más independientes posible. Esto ayuda a evitar que un error en un componente se propague a otros componentes.
- Protección de espacio ejecutable (ESP)
La protección del espacio ejecutable, o ESP, es la práctica de marcar ciertas regiones de memoria como no ejecutables. Si alguien intenta ejecutar cualquier código dentro de estas regiones marcadas, se produce una excepción.
Mejores prácticas de seguridad de software
Al crear software integrado, se deben tener en cuenta las siguientes prácticas recomendadas:
- Usa un arranque seguro:
Cuando se inicia un dispositivo integrado, la imagen de arranque se verifica mediante algoritmos criptográficos. Esto garantiza que la secuencia de arranque sea correcta y que el software (el firmware y cualquier otro dato relevante) no se haya manipulado.
- Utilice un sistema operativo de micronúcleo
Un sistema operativo de micronúcleo es mucho más pequeño que un sistema operativo tradicional y contiene un subconjunto de sus funciones. El espacio del núcleo es pequeño y muchos servicios de usuario (como la administración del sistema de archivos, etc.) se guardan en un espacio separado, conocido como espacio de usuario. Como se ejecutan menos código y operaciones en el espacio del kernel, la superficie de ataque se reduce significativamente.
- Utilice aplicaciones de software empaquetadas correctamente
Todas las aplicaciones de software deben ser independientes y estar empaquetadas correctamente. Por ejemplo, si una aplicación requiere una dependencia de terceros, no debe instalarse globalmente en el sistema operativo. Más bien, debería formar parte del paquete/contenedor de la aplicación.
- Validar todas las entradas
Todos los datos recibidos de fuentes externas o no confiables deben desinfectarse y validarse adecuadamente antes de pasarlos a componentes críticos de software o hardware.
Si una aplicación obtiene datos de una integración de API externa y cambia alguna configuración en función de ella, los datos recibidos deben validarse rigurosamente antes de cambiar la configuración.
- Proteja los datos en reposo:
Todo el software confidencial, los datos, los archivos de configuración, las claves seguras y las contraseñas, etc. que se almacenan en un dispositivo integrado deben estar protegidos. Por lo general, esto se hace mediante cifrado. Las claves privadas utilizadas para cifrar los datos deben almacenarse en un hardware de seguridad dedicado y diseñado específicamente.
La pirámide de la seguridad: seguridad integral para sistemas embebidos
Atrás quedaron los días en que la seguridad solía ser una idea de último momento. Un requisito no funcional. Hoy en día, la seguridad debe ser intrínseca. Los dispositivos deben ser seguros desde el diseño. Para ello, es esencial implementar requisitos de seguridad de extremo a extremo en un entorno integrado. Esto significa: piense en la seguridad al elegir el hardware, al definir la arquitectura del sistema, al diseñar su sistema y, por supuesto, al escribir el código.
Comience en el hardware
No importa qué tan sólida sea la seguridad de su software, si falta su hardware, será susceptible a los ataques. Las técnicas de seguridad integradas en el chip permiten un arranque seguro y una gestión eficiente de las funciones y los secretos criptográficos. Algunos componentes de hardware también pueden permitir que el sistema operativo ofrezca diversas funciones de seguridad, como la detección de anomalías en las llamadas al sistema, el cifrado del sistema de archivos y las políticas de control de acceso.
Un sistema tolerante a errores
Existen numerosos motivos para diseñar un sistema tolerante a fallos, y evitar los ataques de análisis diferencial de fallos es solo uno de ellos. En un ataque de este tipo, un pirata informático potencial puede utilizar técnicas de inyección de errores para intentar producir errores en un dispositivo integrado. Sin embargo, hay varias formas posibles de detectar este tipo de fallos y protegerse contra ellos:
- Replique las operaciones más críticas, de modo que se puedan comparar diferentes salidas, en un momento dado, para detectar la inyección de una falla.
- Fallo de forma predeterminada: cuando se gestionan varias condiciones (dentro de una condición If o un bloque de conmutadores), siempre se produce un error en el caso predeterminado, es decir, cuando nada más coincide.
- Introducir un comportamiento aleatorio: agregar pequeños retrasos aleatorios antes de las operaciones cruciales garantiza que su tiempo nunca sea predecible. Esto es clave en la detección de intrusos, ya que dificulta mucho a los piratas informáticos determinar los patrones de operación y realizar ataques cronometrados.
- Escudos protectores: los fabricantes deben usar protectores para cubrir los componentes más importantes y protegerlos de la manipulación externa.
- Detecte fluctuaciones anormales: detecte las fluctuaciones anormales en el voltaje, la corriente u otros valores y genere excepciones en consecuencia.
Proteja su aplicación... y su sistema operativo
Crear la defensa de su dispositivo a nivel de aplicación implica:
- Elegir componentes de software y hardware de terceros probados y acreditados que puedan actualizarse periódicamente.
- Capacitar a los desarrolladores en las mejores prácticas relacionadas con la seguridad de los sistemas integrados.
- Utilice un sistema operativo de micronúcleo para garantizar que se ejecute un número mínimo de operaciones en el espacio del núcleo.
- Supervise y protéjase contra los ataques de software, incluidos los virus, los troyanos y el malware.
- Elimine todos los servicios innecesarios. Su firmware solo debe tener lo que es absolutamente necesario. Por ejemplo, es posible que no necesite transferir archivos ni capturar paquetes, por lo que puede deshabilitar los protocolos de transferencia de archivos y los paquetes de red como Telnet.
- Utilice protocolos seguros como SFTP, IPsec, SSL, TLS, SSH y DNSSEC.
Herramientas para la seguridad del sistema integrado
Esta es una lista no exhaustiva de herramientas que pueden ayudar a proteger los sistemas integrados:
- lanzador de autobuses: una plataforma de depuración de alta velocidad que puede interactuar con los puertos de depuración del hardware.
- Ensalada: Decodifica varios protocolos como Serial, SPI e I2C, etc. Puedes usar analizadores de protocolos creados por la comunidad o crear los tuyos propios.
- Hidrabus: Hardware multiherramienta de código abierto que se puede usar para depurar, piratear y/o realizar pruebas de penetración de hardware integrado.
- Explotar: Un marco de explotación y pruebas de seguridad de Internet de las cosas (IoT) de código abierto.
- FACT (la herramienta de análisis y comparación de firmware): Marco utilizado para automatizar el análisis de seguridad del firmware.
- Los enrutadores se desvían: Un marco de explotación de código abierto para dispositivos integrados.
- Firmadyne: Sistema de código abierto para la emulación y el análisis dinámico del firmware integrado basado en Linux.
¿Dónde faltan las soluciones de seguridad integradas modernas?
Aunque hay varias soluciones disponibles para depurar, explotar y probar soluciones integradas, no se utilizan fácilmente. Se sigue haciendo hincapié en la protección física del dispositivo, pero no se hacen los esfuerzos suficientes para protegerlo contra los ataques relacionados con el software. Incluso los riesgos y vulnerabilidades de seguridad de las aplicaciones más simples y fáciles de evitar siguen siendo comunes entre los dispositivos integrados modernos.
Una de las principales razones de esto es la falta de conocimiento de los desarrolladores sobre la seguridad integrada. Según una encuesta realizada por Tripwire, el 68% de los profesionales de TI cree que su fuerza laboral no conoce adecuadamente las posibles vulnerabilidades.
Los desarrolladores no saben qué protocolos de seguridad elegir, qué marcos evitar, qué componentes de hardware segregar, cómo tratar los datos confidenciales y cómo determinar qué algoritmo de cifrado es el más seguro. Esta falta general de conocimiento y el desprecio por las mejores prácticas hacen que las aplicaciones que se ejecutan en dispositivos integrados sean susceptibles de verse comprometidas.
El futuro de la seguridad integrada
Se está trabajando mucho en el mercado de la seguridad integrada. Los expertos creen que la tasa de crecimiento anual compuesta (CAGR) del mercado puede alcanzar un cifra del 5,5% durante el período 2021-2026. Con el lanzamiento de más y más dispositivos de IoT, podemos esperar que se establezcan nuevos estándares de seguridad integrados.
La creciente adopción de dispositivos médicos portátiles también aumentará la demanda de soluciones de seguridad integradas confiables. Para que los dispositivos contengan y procesen datos médicos confidenciales, deben superar determinadas listas de verificación de seguridad, y esperamos que esto haga que los proveedores e ingenieros se centren más en la seguridad.
En el futuro, es posible que también tengamos soluciones que permitan la visibilidad, la supervisión y el control remotos de los principales componentes de software y hardware de los dispositivos integrados. Esto realmente cambiará las reglas del juego en el mundo de la seguridad de los sistemas integrados.
Al fin y al cabo, las firmas digitales, el cifrado de datos, la adición de firewalls, la implementación del control de acceso y la aleatorización de las operaciones solo pueden llevarle hasta cierto punto. Para crear dispositivos verdaderamente seguros, los desarrolladores deben estar capacitados para escribir código seguro. Identificar los posibles riesgos de seguridad y mitigarlos durante la fase de diseño de la aplicación contribuye en gran medida a crear sistemas intrínsecamente seguro.
Cómo puede ayudar Secure Code Warrior
El producto estrella de Secure Code Warrior, la plataforma de aprendizaje, incluye numerosos desafíos, cursos y evaluaciones interactivos que pueden ayudar a capacitar a los desarrolladores para escribir código C/C++ seguro. El contenido de la plataforma es específico para cada marco y es muy atractivo. Nuestros desafíos de codificación C/C++:Embed se inspiraron en MISRA C, AUTOSAR C++ (MISRA C++) e IEC.
Los desarrolladores pueden embarcarse en viajes de aprendizaje personalizados, en los que identifican las vulnerabilidades específicas de C/C++ y, lo que es más importante, aprenden a corregir esos errores. En este proceso, los desarrolladores pueden hacer un seguimiento de su progreso para identificar sus puntos débiles e incluso disfrutar de un concurso de programación amistoso con sus compañeros. Obtenga más información sobre cómo ayudamos a las industrias automotriz y de transporte con nuestras soluciones.
¿Quiere saber qué tan interactivos y centrados son nuestros desafíos? ¡Prueba algunos desafíos de C/C++:Embed ¡en la plataforma de aprendizaje hoy!

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez consulter le rapportVeuillez réserver une démonstration.Secure Code Warrior fait du codage sécurisé une expérience positive et attrayante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son propre parcours d'apprentissage, afin que les développeurs compétents en matière de sécurité deviennent les super-héros quotidiens de notre monde connecté.
Cet article a été écrit par Secure Code Warrior L'équipe d'experts du secteur de s'engage à fournir aux développeurs les connaissances et les compétences nécessaires pour créer des logiciels sécurisés dès le départ. S'appuyant sur une expertise approfondie des pratiques de codage sécurisé, des tendances du secteur et des connaissances du monde réel.
Los sistemas integrados ayudan a ofrecer una gran cantidad de tecnología moderna. Desde el control de velocidad adaptativo de tu coche hasta el wifi de tu frigorífico inteligente. Con el aumento de los ciberataques, proteger estos sistemas se ha vuelto fundamental.
Los dispositivos integrados son los principales objetivos de la piratería informática, ya que un ataque exitoso puede dar a los intrusos acceso a los datos que producen, reciben y procesan. Con frecuencia, esto puede tener graves consecuencias para el sistema más grande alimentado por el dispositivo integrado. Por ejemplo, apagando un dispositivo integrado en el avión de combate F-15, que recopila datos de varias cámaras y sensores, puede obstaculizar significativamente las defensas del avión.
Hemos escrito este artículo para cubrir todo lo que necesita para empezar a desarrollar sistemas integrados seguros. Esto es lo que se incluye:
- ¿Qué es la seguridad integrada?
- Desafíos a los que se enfrenta la implementación de la seguridad integrada.
- ¿Qué hace que un sistema integrado sea «seguro»?
- Por qué la seguridad de extremo a extremo es importante en un ecosistema integrado.
- Algunas herramientas de seguridad integradas.
- ¿Qué les falta a las soluciones integradas típicas?
- El futuro de la seguridad integrada.
¿Qué es la seguridad integrada?
La seguridad integrada proporciona las herramientas, los procesos y las mejores prácticas para proteger el software y el hardware de los dispositivos integrados.
Como los módulos de hardware de los sistemas integrados son pequeños, tienen varias limitaciones de memoria y almacenamiento. Por lo tanto, incorporarles medidas de seguridad se convierte en un enorme desafío de diseño. Sin embargo, por difícil que sea, es una necesidad del momento.
Muchos de los aparatos y máquinas que funcionan con dispositivos integrados también están conectados a Internet. Esto significa que los piratas informáticos pueden obtener acceso no autorizado a ellos y ejecutar cualquier código malicioso.
Un hackeo en un dispositivo integrado a menudo puede extenderse a otros componentes conectados o paralizar todo el sistema. Por ejemplo, supongamos que un atacante consigue hacerse con el control de un dispositivo integrado que permite a los conductores poner su coche en piloto automático. De este modo, el pirata informático puede conducir el coche fuera de la carretera o hacia el tráfico, lo que podría causar muchos daños.
Desafíos críticos de seguridad de los sistemas integrados
La seguridad del sistema integrado no recibe la atención que merece. Estas son algunas de las razones por las que:
- Falta de conocimiento de los desarrolladores:
Por lo general, los desarrolladores desconocen las mejores prácticas para desarrollar dispositivos integrados seguros. Esto se debe en parte al punto #2 y, en parte, a que las aplicaciones integradas son mucho más complicadas que las aplicaciones de software tradicionales. Comprender sus implicaciones de seguridad y escribir código seguro y eficiente para todos los casos de uso, además de en un entorno microinformático limitado, puede resultar difícil.
- Falta de estandarización:
Faltan estándares de ciberseguridad para los sistemas integrados. A pesar de que la industria automotriz está intentando cambiar eso lentamente. En los últimos años, los investigadores han publicado bastantes publicaciones que abordan las consideraciones de ciberseguridad para los vehículos inteligentes. Algunas de las más destacadas son SAE J3061, «Guía de ciberseguridad para sistemas de vehículos ciberfísicos»: y Reglamento WP.29 de la CEPE sobre ciberseguridad y procesos de actualización de software.
- Uso de componentes de terceros
Muchos dispositivos integrados requerían componentes de hardware y software de terceros para funcionar. A menudo, estos componentes se utilizan sin haber sido probados para detectar cualquier fallo o vulnerabilidad de seguridad.
- Software desactualizado
Un firmware desactualizado suele estar plagado de errores y vulnerabilidades potencialmente explotables. Aunque puede resultar especialmente difícil actualizar periódicamente el firmware de un dispositivo integrado pequeño, no es algo que se pueda ignorar.
- Conectividad directa a Internet
Muchos sistemas y dispositivos integrados están conectados directamente a Internet. Esto significa que no cuentan con la protección de los firewalls empresariales, que pueden detectar y prevenir los ataques a la red. Dado que los recursos son escasos, resulta muy difícil implementar niveles rigurosos de seguridad en un entorno tan limitado.
- Ataque a gran escala
Los dispositivos embebidos generalmente se producen a escala. Esto significa que una sola vulnerabilidad o falla puede afectar a millones de dispositivos, a veces en todo el mundo. Por lo tanto, contener los impactos de un ataque a un sistema integrado puede ser un desafío enorme.
Qué hace que un sistema integrado sea ¿seguro?
En las siguientes secciones, analizaremos algunas características del software y el hardware de los sistemas integrados seguros.
Mejores prácticas de seguridad de hardware
Un sistema integrado seguro tiene:
- Un entorno de ejecución confiable
Un entorno de ejecución confiable (TEE) permite el aislamiento a nivel de hardware de las operaciones críticas para la seguridad. Por ejemplo, la autenticación del usuario puede ejecutarse en un área segregada, lo que permite proteger mejor la información confidencial.
- Recursos de hardware debidamente particionados
Los diferentes componentes de hardware, como los procesadores, la caché, la memoria y las interfaces de red, etc., deben segregarse adecuadamente para que sus funciones sean lo más independientes posible. Esto ayuda a evitar que un error en un componente se propague a otros componentes.
- Protección de espacio ejecutable (ESP)
La protección del espacio ejecutable, o ESP, es la práctica de marcar ciertas regiones de memoria como no ejecutables. Si alguien intenta ejecutar cualquier código dentro de estas regiones marcadas, se produce una excepción.
Mejores prácticas de seguridad de software
Al crear software integrado, se deben tener en cuenta las siguientes prácticas recomendadas:
- Usa un arranque seguro:
Cuando se inicia un dispositivo integrado, la imagen de arranque se verifica mediante algoritmos criptográficos. Esto garantiza que la secuencia de arranque sea correcta y que el software (el firmware y cualquier otro dato relevante) no se haya manipulado.
- Utilice un sistema operativo de micronúcleo
Un sistema operativo de micronúcleo es mucho más pequeño que un sistema operativo tradicional y contiene un subconjunto de sus funciones. El espacio del núcleo es pequeño y muchos servicios de usuario (como la administración del sistema de archivos, etc.) se guardan en un espacio separado, conocido como espacio de usuario. Como se ejecutan menos código y operaciones en el espacio del kernel, la superficie de ataque se reduce significativamente.
- Utilice aplicaciones de software empaquetadas correctamente
Todas las aplicaciones de software deben ser independientes y estar empaquetadas correctamente. Por ejemplo, si una aplicación requiere una dependencia de terceros, no debe instalarse globalmente en el sistema operativo. Más bien, debería formar parte del paquete/contenedor de la aplicación.
- Validar todas las entradas
Todos los datos recibidos de fuentes externas o no confiables deben desinfectarse y validarse adecuadamente antes de pasarlos a componentes críticos de software o hardware.
Si una aplicación obtiene datos de una integración de API externa y cambia alguna configuración en función de ella, los datos recibidos deben validarse rigurosamente antes de cambiar la configuración.
- Proteja los datos en reposo:
Todo el software confidencial, los datos, los archivos de configuración, las claves seguras y las contraseñas, etc. que se almacenan en un dispositivo integrado deben estar protegidos. Por lo general, esto se hace mediante cifrado. Las claves privadas utilizadas para cifrar los datos deben almacenarse en un hardware de seguridad dedicado y diseñado específicamente.
La pirámide de la seguridad: seguridad integral para sistemas embebidos
Atrás quedaron los días en que la seguridad solía ser una idea de último momento. Un requisito no funcional. Hoy en día, la seguridad debe ser intrínseca. Los dispositivos deben ser seguros desde el diseño. Para ello, es esencial implementar requisitos de seguridad de extremo a extremo en un entorno integrado. Esto significa: piense en la seguridad al elegir el hardware, al definir la arquitectura del sistema, al diseñar su sistema y, por supuesto, al escribir el código.
Comience en el hardware
No importa qué tan sólida sea la seguridad de su software, si falta su hardware, será susceptible a los ataques. Las técnicas de seguridad integradas en el chip permiten un arranque seguro y una gestión eficiente de las funciones y los secretos criptográficos. Algunos componentes de hardware también pueden permitir que el sistema operativo ofrezca diversas funciones de seguridad, como la detección de anomalías en las llamadas al sistema, el cifrado del sistema de archivos y las políticas de control de acceso.
Un sistema tolerante a errores
Existen numerosos motivos para diseñar un sistema tolerante a fallos, y evitar los ataques de análisis diferencial de fallos es solo uno de ellos. En un ataque de este tipo, un pirata informático potencial puede utilizar técnicas de inyección de errores para intentar producir errores en un dispositivo integrado. Sin embargo, hay varias formas posibles de detectar este tipo de fallos y protegerse contra ellos:
- Replique las operaciones más críticas, de modo que se puedan comparar diferentes salidas, en un momento dado, para detectar la inyección de una falla.
- Fallo de forma predeterminada: cuando se gestionan varias condiciones (dentro de una condición If o un bloque de conmutadores), siempre se produce un error en el caso predeterminado, es decir, cuando nada más coincide.
- Introducir un comportamiento aleatorio: agregar pequeños retrasos aleatorios antes de las operaciones cruciales garantiza que su tiempo nunca sea predecible. Esto es clave en la detección de intrusos, ya que dificulta mucho a los piratas informáticos determinar los patrones de operación y realizar ataques cronometrados.
- Escudos protectores: los fabricantes deben usar protectores para cubrir los componentes más importantes y protegerlos de la manipulación externa.
- Detecte fluctuaciones anormales: detecte las fluctuaciones anormales en el voltaje, la corriente u otros valores y genere excepciones en consecuencia.
Proteja su aplicación... y su sistema operativo
Crear la defensa de su dispositivo a nivel de aplicación implica:
- Elegir componentes de software y hardware de terceros probados y acreditados que puedan actualizarse periódicamente.
- Capacitar a los desarrolladores en las mejores prácticas relacionadas con la seguridad de los sistemas integrados.
- Utilice un sistema operativo de micronúcleo para garantizar que se ejecute un número mínimo de operaciones en el espacio del núcleo.
- Supervise y protéjase contra los ataques de software, incluidos los virus, los troyanos y el malware.
- Elimine todos los servicios innecesarios. Su firmware solo debe tener lo que es absolutamente necesario. Por ejemplo, es posible que no necesite transferir archivos ni capturar paquetes, por lo que puede deshabilitar los protocolos de transferencia de archivos y los paquetes de red como Telnet.
- Utilice protocolos seguros como SFTP, IPsec, SSL, TLS, SSH y DNSSEC.
Herramientas para la seguridad del sistema integrado
Esta es una lista no exhaustiva de herramientas que pueden ayudar a proteger los sistemas integrados:
- lanzador de autobuses: una plataforma de depuración de alta velocidad que puede interactuar con los puertos de depuración del hardware.
- Ensalada: Decodifica varios protocolos como Serial, SPI e I2C, etc. Puedes usar analizadores de protocolos creados por la comunidad o crear los tuyos propios.
- Hidrabus: Hardware multiherramienta de código abierto que se puede usar para depurar, piratear y/o realizar pruebas de penetración de hardware integrado.
- Explotar: Un marco de explotación y pruebas de seguridad de Internet de las cosas (IoT) de código abierto.
- FACT (la herramienta de análisis y comparación de firmware): Marco utilizado para automatizar el análisis de seguridad del firmware.
- Los enrutadores se desvían: Un marco de explotación de código abierto para dispositivos integrados.
- Firmadyne: Sistema de código abierto para la emulación y el análisis dinámico del firmware integrado basado en Linux.
¿Dónde faltan las soluciones de seguridad integradas modernas?
Aunque hay varias soluciones disponibles para depurar, explotar y probar soluciones integradas, no se utilizan fácilmente. Se sigue haciendo hincapié en la protección física del dispositivo, pero no se hacen los esfuerzos suficientes para protegerlo contra los ataques relacionados con el software. Incluso los riesgos y vulnerabilidades de seguridad de las aplicaciones más simples y fáciles de evitar siguen siendo comunes entre los dispositivos integrados modernos.
Una de las principales razones de esto es la falta de conocimiento de los desarrolladores sobre la seguridad integrada. Según una encuesta realizada por Tripwire, el 68% de los profesionales de TI cree que su fuerza laboral no conoce adecuadamente las posibles vulnerabilidades.
Los desarrolladores no saben qué protocolos de seguridad elegir, qué marcos evitar, qué componentes de hardware segregar, cómo tratar los datos confidenciales y cómo determinar qué algoritmo de cifrado es el más seguro. Esta falta general de conocimiento y el desprecio por las mejores prácticas hacen que las aplicaciones que se ejecutan en dispositivos integrados sean susceptibles de verse comprometidas.
El futuro de la seguridad integrada
Se está trabajando mucho en el mercado de la seguridad integrada. Los expertos creen que la tasa de crecimiento anual compuesta (CAGR) del mercado puede alcanzar un cifra del 5,5% durante el período 2021-2026. Con el lanzamiento de más y más dispositivos de IoT, podemos esperar que se establezcan nuevos estándares de seguridad integrados.
La creciente adopción de dispositivos médicos portátiles también aumentará la demanda de soluciones de seguridad integradas confiables. Para que los dispositivos contengan y procesen datos médicos confidenciales, deben superar determinadas listas de verificación de seguridad, y esperamos que esto haga que los proveedores e ingenieros se centren más en la seguridad.
En el futuro, es posible que también tengamos soluciones que permitan la visibilidad, la supervisión y el control remotos de los principales componentes de software y hardware de los dispositivos integrados. Esto realmente cambiará las reglas del juego en el mundo de la seguridad de los sistemas integrados.
Al fin y al cabo, las firmas digitales, el cifrado de datos, la adición de firewalls, la implementación del control de acceso y la aleatorización de las operaciones solo pueden llevarle hasta cierto punto. Para crear dispositivos verdaderamente seguros, los desarrolladores deben estar capacitados para escribir código seguro. Identificar los posibles riesgos de seguridad y mitigarlos durante la fase de diseño de la aplicación contribuye en gran medida a crear sistemas intrínsecamente seguro.
Cómo puede ayudar Secure Code Warrior
El producto estrella de Secure Code Warrior, la plataforma de aprendizaje, incluye numerosos desafíos, cursos y evaluaciones interactivos que pueden ayudar a capacitar a los desarrolladores para escribir código C/C++ seguro. El contenido de la plataforma es específico para cada marco y es muy atractivo. Nuestros desafíos de codificación C/C++:Embed se inspiraron en MISRA C, AUTOSAR C++ (MISRA C++) e IEC.
Los desarrolladores pueden embarcarse en viajes de aprendizaje personalizados, en los que identifican las vulnerabilidades específicas de C/C++ y, lo que es más importante, aprenden a corregir esos errores. En este proceso, los desarrolladores pueden hacer un seguimiento de su progreso para identificar sus puntos débiles e incluso disfrutar de un concurso de programación amistoso con sus compañeros. Obtenga más información sobre cómo ayudamos a las industrias automotriz y de transporte con nuestras soluciones.
¿Quiere saber qué tan interactivos y centrados son nuestros desafíos? ¡Prueba algunos desafíos de C/C++:Embed ¡en la plataforma de aprendizaje hoy!
Table des matières
Secure Code Warrior fait du codage sécurisé une expérience positive et attrayante pour les développeurs à mesure qu'ils améliorent leurs compétences. Nous guidons chaque codeur le long de son propre parcours d'apprentissage, afin que les développeurs compétents en matière de sécurité deviennent les super-héros quotidiens de notre monde connecté.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.
Veuillez réserver une démonstration.TéléchargerRessources pour débuter
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu de pointe évolue constamment afin de s'adapter au paysage changeant du développement logiciel, en tenant compte de votre rôle. Nous proposons des thèmes allant de l'IA à l'injection XQuery pour différents postes, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par thème et par fonction.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour débuter
Cybermon est de retour : les missions IA de Beat the Boss sont désormais disponibles à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année chez SCW. Mettez en œuvre des défis de sécurité avancés basés sur l'IA et le LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer grâce à des pratiques de conception sécurisées, à la prévention des vulnérabilités et au développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en 10 parties intitulée « Les catalyseurs de la réussite », qui montre comment relier la codification sécurisée aux résultats commerciaux, tels que la réduction des risques et la rapidité d'atteinte de la maturité du programme à long terme.




%20(1).avif)
.avif)
