SCW图标
英雄背景无分隔线
博客

Por qué la seguridad de extremo a extremo es importante para los sistemas integrados

Secure Code Warrior
发布于 2021 年 8 月 19 日
最后更新于 2026年3月6日

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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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 ,使安全编码成为开发人员提高技能的积极和参与的经验。我们引导每个编码者沿着他们自己喜欢的学习途径前进,从而使具有安全技能的开发人员成为我们互联世界的日常超级英雄。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Secure Code Warrior
发表于2021年8月19日

Secure Code Warrior ,使安全编码成为开发人员提高技能的积极和参与的经验。我们引导每个编码者沿着他们自己喜欢的学习途径前进,从而使具有安全技能的开发人员成为我们互联世界的日常超级英雄。

本文由Secure Code Warrior的行业专家团队致力于让开发人员从一开始就具备构建安全软件的知识和技能。凭借在安全编码实践、行业趋势和现实世界见解方面的深厚专业知识。

分享到:
领英品牌社交x 标志

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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!

查看资源
查看资源

请填写以下表格以下载报告

我们希望获得您的许可,以便向您发送有关我们产品或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会出于营销目的将其出售给其他公司。

发送
scw 成功图标
SCW 错误图标
要提交表单,请启用「分析」cookie。完成后请随时将其重新禁用。

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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!

观看网络研讨会
开始
了解更多

点击下方链接,下载此资源的PDF文件。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
感兴趣了解更多吗?

分享到:
领英品牌社交x 标志
作者
Secure Code Warrior
发表于2021年8月19日

Secure Code Warrior ,使安全编码成为开发人员提高技能的积极和参与的经验。我们引导每个编码者沿着他们自己喜欢的学习途径前进,从而使具有安全技能的开发人员成为我们互联世界的日常超级英雄。

本文由Secure Code Warrior的行业专家团队致力于让开发人员从一开始就具备构建安全软件的知识和技能。凭借在安全编码实践、行业趋势和现实世界见解方面的深厚专业知识。

分享到:
领英品牌社交x 标志

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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!

目录

下载PDF
查看资源
感兴趣了解更多吗?

Secure Code Warrior ,使安全编码成为开发人员提高技能的积极和参与的经验。我们引导每个编码者沿着他们自己喜欢的学习途径前进,从而使具有安全技能的开发人员成为我们互联世界的日常超级英雄。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多出版物
资源中心

入门资源

更多出版物