NOTA: Este artículo no es sólo para las organizaciones que ya han sido hackeadas... La IEC 62443 es una norma genérica reconocida como aplicable en sectores críticos como la fabricación, la energía, el transporte, la sanidad y muchos otros.

 

Este artículo es el tercer episodio de una serie de 8, que cubre las principales prácticas que debe implementar cualquier organización que pretenda cumplir con el Estado del Arte en Ciberseguridad para los sistemas de control industrial y de automatización. Basado en un enfoque pragmático, este artículo le guía sobre cómo manejar la definición de los requisitos relacionados con un ciclo de vida de desarrollo seguro (IEC 62443-4-1) dentro de los procesos actuales de su organización.

 

Para desarrollar sistemáticamente productos seguros, hay que hacer hincapié en la seguridad a lo largo de todo el ciclo de vida del software, de manera que los resultados se consideren seguros por diseño. Por lo tanto, cada fase de un ciclo de vida de software común tiene que ser mejorada con prácticas de seguridad. Esto conduce a un ciclo de vida de desarrollo seguro, como se ilustra a continuación (en una visión general simplificada). En este tercer episodio, nos centraremos en las buenas prácticas necesarias para validar las partes del software en una fase temprana, el análisis del código y las revisiones de seguridad

Este proceso es necesario para garantizar que la implementación cubra adecuadamente el diseño seguro (véase el episodio 2 de esta serie para obtener más información sobre el diseño seguro) y sus requisitos de seguridad asociados, y siga las mejores prácticas de implementación.

 

La norma IEC 62443-4-1 describe estas prácticas de la siguiente manera:

  • "Contar con este proceso significa que el proveedor del producto lleva a cabo un amplio conjunto de revisiones de seguridad de la aplicación y su diseño. Normalmente se utilizarán diferentes tipos de revisiones para abordar diferentes objetivos. Por ejemplo, las revisiones manuales se suelen llevar a cabo con respecto al diseño de la implementación para verificar que se cumplen los requisitos y que la implementación protegerá adecuadamente contra las amenazas que se espera que estén presentes. Además, las revisiones manuales del código fuente pueden utilizarse para examinar el código fuente en cuanto a su adherencia a las mejores prácticas (véase 8.4), y el análisis estático automatizado del código fuente puede utilizarse para identificar anomalías, incluidas las vulnerabilidades de seguridad en el código, así como las no conformidades con determinadas reglas de programación."

Como se ha descrito anteriormente, las herramientas de análisis estático proporcionan un apoyo fundamental en las fases de codificación e integración del desarrollo de software. La figura siguiente muestra la superposición en un ciclo de vida de desarrollo de software de las herramientas de análisis estático y dinámico. Garantizar la calidad continua del código, tanto en la fase de desarrollo como en la de mantenimiento, reduce en gran medida los costes y riesgos de los problemas de seguridad y fiabilidad del software.

Como recordatorio, la norma ISA/IEC 62443 hace hincapié en una filosofía de defensa en profundidad (protección a través de múltiples capas de defensa aprovechando múltiples facetas de la práctica de seguridad) con un enfoque de seguridad por diseño. En este contexto, las herramientas de desarrollo, la automatización y las herramientas de análisis estático y dinámico desempeñan un papel fundamental en las "directrices de seguridad" y la "implementación segura.

Experiencia en seguridad

 

La norma define la necesidad de conocimientos de seguridad tanto en el diseño como en la implementación, pero también en las herramientas y técnicas modernas, entre las que se encuentran las herramientas de análisis estático. En cuanto a la implementación segura, la norma es muy clara en cuanto al papel que desempeñan las herramientas de análisis estático del código (SCA). El apartado 5.5 (Conocimientos de seguridad) dice
 

  • "Contar con este proceso significa que el personal asignado a los procesos relacionados con la seguridad tiene pruebas que demuestran sus calificaciones pertinentes. Esto incluye el conocimiento no sólo de la seguridad, sino también para el uso de cualquier norma relacionada con la seguridad (por ejemplo, las normas de codificación), las técnicas (por ejemplo, las mejores prácticas) y las herramientas (por ejemplo, las herramientas de análisis estático)."

Análisis estático del código

 

Se utiliza un análisis estático de código (SCA) para el código fuente con el fin de identificar errores de codificación de seguridad como desbordamientos de búfer, desviación de puntero nulo y cualquier otra violación de las normas de codificación definidas para la plataforma soportada. Si está disponible, el SCA se realizará utilizando una herramienta para el lenguaje utilizado. Además, el análisis estático del código se realizará cada vez que se modifique el software. La IEC 62443-4-1 considera definitivamente como una buena práctica el uso de dicha herramienta automática, así como las revisiones manuales para examinar el código fuente en cuanto a su adhesión a las mejores prácticas.

Conclusión:
&nbsp

Sin excluir los métodos y revisiones manuales, la automatización desempeña un papel fundamental para seguir con éxito las mejores prácticas de la norma IEC 62443-4-1. La automatización de las pruebas que incluye análisis estáticos y dinámicos aumenta el alcance de la detección de errores y vulnerabilidades al tiempo que disminuye la carga de trabajo general.

Incluso si el cumplimiento de la norma 62443 no es un objetivo final, el análisis de código y las revisiones generales de seguridad deben considerarse como una de las principales actividades que debe implementar y manejar cualquier organización para garantizar cierta confianza en un determinado ciclo de vida de desarrollo.
&nbsp

Si tiene alguna pregunta sobre el análisis de código, las revisiones generales de seguridad y/o los criterios de certificación, no dude en ponerse en contacto con nuestro especialista en ciberseguridad: Kilian Marty