Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Tecnología de Internet de las cosas

Seis pasos para proteger los sistemas integrados en IoT

Mark Pitchford de LDRA

La seguridad sigue siendo una preocupación primordial para una amplia gama de sistemas integrados en la Internet de las cosas (IoT). Si se infiltran, los sistemas enterrados en la red eléctrica, la generación de energía, la fabricación, los sistemas automotrices, los dispositivos médicos, la administración de edificios, las bombas de gas, las tostadoras y mucho más, pueden representar un riesgo significativo, Mark Pitchford de LDRA informes.

Afortunadamente, con seguridad, el viejo adagio “una onza de prevención vale una libra de cura” es ciertamente cierto, y la base de la frase de moda mucho más reciente de “cambio a la izquierda”. La previsión de ingeniería ayuda a construir sistemas seguros a un costo menor que las pruebas reactivas posteriores. De hecho, dado que la creación de software seguro tiene mucho en común con la creación de aplicaciones funcionalmente seguras, el desarrollo de software seguro comienza siguiendo los procesos de seguridad funcional.

Considere estas mejores prácticas para ayudar a producir código de alta calidad y mejorar la seguridad de los sistemas integrados:

1. Incorporar seguridad en el ciclo de vida del desarrollo de software

La verificación tradicional de código seguro es en gran medida reactiva. El código se desarrolla de acuerdo con pautas relativamente flexibles y luego se prueba para identificar vulnerabilidades. Ya sea que utilice un desarrollo ágil o un modelo de ciclo de vida de desarrollo tradicional, existe un enfoque más proactivo para la seguridad diseñada.

Con el desarrollo tradicional, los requisitos fluyen hacia el diseño, el código (quizás a través de un modelo) y las pruebas. Con un desarrollo ágil, los requisitos se crean iterativamente en capas desde adentro hacia afuera, cada una con su propio ciclo de requisitos, diseño, código y prueba. Con cualquiera de las dos metodologías, garantizar que los requisitos de seguridad sean una parte integral del proceso de desarrollo conducirá a un resultado mucho más satisfactorio que simplemente buscar vulnerabilidades al final.

2. Garantice la trazabilidad bidireccional

La mayoría de los estándares de seguridad funcional requieren evidencia de la trazabilidad bidireccional, la confirmación de una cobertura completa y exhaustiva entre las fases de desarrollo entre todas las etapas de desarrollo, desde los requisitos hasta el diseño, el código y la prueba. Con tal transparencia, el impacto de cualquier cambio en los requisitos o de los casos de prueba fallidos se puede evaluar con un análisis de impacto y luego abordarlo.

Los artefactos se pueden volver a generar automáticamente para presentar evidencia de cumplimiento continuo con el estándar apropiado. Donde la seguridad es primordial, la trazabilidad bidireccional también asegura que no haya código redundante o funcionalidad no especificada y eso incluye métodos de puerta trasera. Estas ventajas subrayan el valor del desarrollo sistemático para aumentar la capacidad de crear sistemas seguros.

3. Elija un subconjunto de idiomas seguro

Al desarrollar con C o C ++, alrededor del 80% de los defectos del software se pueden atribuir al uso incorrecto del 20% de las construcciones del lenguaje. Los subconjuntos de idiomas mejoran tanto la seguridad como la seguridad al prevenir o marcar el uso de construcciones inseguras. Dos estándares de codificación populares, MISRA C y Carnegie Mellon Software Engineering Institute (SEI) CERT C, ayudan a los desarrolladores a producir código seguro.

La aplicación de MISRA C o CERT C resultará en un código más seguro que si no se aplicara ninguno. Sin embargo, la aplicación manual de estas pautas tiene el precio de tiempo, esfuerzo, dinero e, irónicamente, calidad, ya que el proceso manual es complejo y propenso a errores. Para reducir los costos y mejorar la productividad, las organizaciones de desarrollo deben automatizar el soporte para el cumplimiento.

4. Utilice un estándar de proceso centrado en la seguridad

Los estándares de seguridad proporcionan otra pieza de la solución de desarrollo seguro, aunque los estándares de seguridad no están tan bien desarrollados ni probados con el tiempo como los estándares de seguridad funcional, que han tenido décadas de uso. Sin embargo, esto cambiará a medida que se desarrollen los estándares de seguridad específicos de la industria.

La industria automotriz, por ejemplo, está desarrollando actualmente ISO / SAE 21434 “Ingeniería de ciberseguridad de vehículos de carretera” para mitigar el problema de los vehículos conectados como objetivos de ataques cibernéticos. La promesa de un documento sustancial con más detalles que los principios rectores de alto nivel de SAE J3061 “Guía de ciberseguridad para sistemas de vehículos cibernéticos” hace que ISO / SAE 21434 sea ampliamente anticipado.

5. Automatice tanto como sea posible

En cada etapa del proceso de desarrollo de software, la automatización reduce las vulnerabilidades en los sistemas integrados y ahorra una gran cantidad de tiempo y costos. Los desarrolladores pueden conectarse a herramientas de requisitos (por ejemplo, IBM Rational DOORS), importar construcciones de simulación y modelado, y probarlas con el código para ver de un vistazo cómo y si se cumplen los requisitos, qué falta y dónde está el código muerto que no lo hace. t cumpla con un requisito.

Un motor de análisis estático puede verificar el cumplimiento de los estándares de codificación y los estándares funcionales de seguridad y protección. Con la automatización y el diseño seguro, las pruebas reactivas, como las pruebas de penetración, tienen un lugar, pero su función es confirmar que el código es seguro para no descubrir dónde no está.

6. Seleccione una base de software segura

El software integrado seguro debe ejecutarse en una plataforma segura, por lo que si una aplicación es atacada, se ejecuta en su propio silo, aislada de otros componentes de software ("separación de dominio"). Las herramientas de verificación y prueba de software automatizadas se integran en entornos de desarrollo comunes desde la especificación de requisitos hasta el diseño y modelado, pasando por la codificación y la documentación. Esto asegura que los desarrolladores puedan construir sistemas seguros en un entorno familiar y con las herramientas ya especificadas para su sistema.

Seguir estos seis procesos proporciona un enfoque cohesivo para desarrollar software integrado para IoT que sea seguro y confiable.

El autor es Mark Pitchford de LDRA.

Para obtener más información, haga clic aquí:


Tecnología de Internet de las cosas

  1. Asegurar el IoT industrial:la pieza que falta en el rompecabezas
  2. El camino hacia la seguridad industrial de IoT
  3. Abordar las vulnerabilidades de seguridad del IoT industrial
  4. Protección de IoT contra ciberataques
  5. Protección del vector de amenazas de IoT
  6. Protección de IoT mediante engaños
  7. Mano a mano - Por qué IoT necesita SD-WAN
  8. Protección de IoT desde la capa de red hasta la capa de aplicación
  9. Cuatro pasos para contratar al mejor CISO en un mundo de IoT
  10. Tres pasos para la seguridad global de IoT
  11. La seguridad potencia el verdadero potencial de IoT