Inicio Artículos de fondo SuperGuard: validación de la biblioteca estándar de C para aplicaciones de seguridad...

SuperGuard: validación de la biblioteca estándar de C para aplicaciones de seguridad crítica

6953
0

Análisis de cobertura de código

A lo largo de la creación del paquete de prueba SuperGuard se prestó especial atención a la cobertura de código para que una implementación madura y conocida de código abierto de la Biblioteca Estándar de C cumpliera el requisito de ASIL D incluido en la Cláusula 12.4.2.3. SuperGuard ofrece una cobertura del 100% para muchas funciones de la biblioteca, además de una alta cobertura de MC/DC. Las áreas en las que SuperGuard tiene una menor cobertura suelen ser las relacionadas con la respuesta definida por la implementación, para la cual no hay requisitos que se puedan obtener a partir de la especificación del lenguaje.

Aunque cada implementación de la biblioteca es diferente, en última instancia todas ellas han de manejar el análisis de casos similares. Esto significa que la alta cobertura de código de SuperGuard beneficia la cobertura de código para todas las implementaciones de la Biblioteca Estándar de C.

Casos anómalos

SuperGuard puede manejar los casos anómalos de dos formas. La primera está relacionada con la respuesta definida a partir de una entrada anómala; por ejemplo, al introducir un número negativo en la función sqrt() el resultado debe ser el valor NaN (suponiendo aritmética IEC 60559). Aunque este es un caso anómalo, la respuesta de la función está totalmente definida y se puede verificar como cualquier otra.

La segunda está relacionada con los requisitos que pueden ser verificados por el compilador. Por ejemplo, si una función debe proporcionar un resultado de tipo vacío, una prueba puede intentar usar el valor proporcionado con la previsión de que generará un error en el compilador.

Una prueba de esta clase se denominada un x-test en SuperGuard y el nombre del archivo de estas pruebas empieza por una x.

Los X-Test PASAN si el compilador indica un error de compilación y FALLA si no es así. Los X-Test nunca se ejecutan.

Resumen y conclusiones

Las aplicaciones de seguridad crítica exigen que los desarrolladores de software hagan todo lo que esté en su mano para asegurar que sus procesos de desarrollo, cadenas de herramientas y código de aplicación no represente riesgo alguno de heridas, pérdida de vidas, la interrupción de servicios esenciales o daños al medio ambiente. Cuando se utilizan herramientas y componentes de terceros y/o COTS (commercial off-the-shelf), como compiladores y bibliotecas estándar, los desarrolladores no deberían dar por hecho que estas herramientas y componentes estén libres de errores o que su prevalidación implique sea así. La validación solo es verdaderamente válida si es realizada en el mismo entorno de desarrollo y bajo las mismas condiciones del caso de uso que en la aplicación.

Mediante el empleo del mismo paquete de prueba incluido en la SuperTest, la solución de Solid Sands para la prueba y la verificación del compilador, su SuperGuard C Library Safety Qualification Suite añade la trazabilidad necesaria para relacionar los resultados de Las pruebas basados en requisitos, el método recomendado para comprobar requisitos de seguridad funcional como ISO 26262, con la especificación de la Biblioteca Estándar de C. La total trazabilidad se consigue descomponiendo las especificaciones funcionales de la Biblioteca Estándar ISO C en requisitos claramente definidos, desarrollando las especificaciones de prueba adecuadas para comprobar tales requisitos e implementándolas de acuerdo con las recomendaciones de ISO 26262.

Además, permite que los desarrolladores de software realicen estas pruebas en el mismo entorno de desarrollo bajo las mismas condiciones del caso de uso y en el mismo hardware de destino usado en su aplicación, con una cobertura de código estructural cercana al 100%. Al generar un informe exhaustivo de validación especialmente adaptado a las necesidades de las organizaciones con certificación ISO 26262, SuperGuard simplifica mucho la demostración de la integridad de los componentes de la biblioteca utilizados en aplicaciones de seguridad crítica.

Información perteneciente a Solid Sands B.V. Todos los derechos reservados.

(c) Copyright 2021 por Solid Sands B.V., Ámsterdam, Países Bajos

SuperTest™ y SuperGuard™ son marcas registradas de Solid Sands B.V., Ámsterdam, Países Bajos

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.