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

Manejo de archivos de inicio y macros tipo función

El lenguaje C complica la vida del comprobador de varias maneras. Por eso no todas las funciones en la Biblioteca Estándar de C se implementan solo en formato binario precompilado. Muchas también dependen enormemente de la información contenida en los archivos fuente de inicio.

Estos archivos de inicio, que definen elementos como tipos, variables globales y macros, forman parte de la biblioteca en igual medida que las funciones de la biblioteca (precompiladas). Muchas funciones se implementan como función real y como macro, y para aumentar su velocidad y eficiencia es habitual que se recurra a su implementación como macro. Ambos casos son comprobados por SuperGuard.

A diferencia de los binarios correspondientes, los macros tipo función no están precompilados. Son compilados por el compilador del SDK junto con el código fuente de la aplicación. Por tanto, es importante que, junto con otro contenido de los archivos de inicio, se comprueben para los casos de uso específicos de una aplicación de seguridad crítica. En la biblioteca de C++, el uso de macros se eleva hasta un nivel aún más alto mediante el uso de plantillas de tipo genérico que solo existen en la cabecera.

Manejo de archivos de inicio y macros tipo función en Superguard

Cuando la comprobación basada en requisitos encaja con ISO 26262 Parte 8 Cláusula 12

Gracias a estas metodologías de prueba basadas en requisitos, SuperGuard asegura la disponibilidad de los siguientes elementos fundamentales incluidos en ISO 26262: Parte 8, Cláusula 12.4.1 para considerar validado un elemento de software:

12.4.1 a) la especificación del componente de software

La especificación de las Bibliotecas Estándar de C y C++ se basan estándares ISO disponibles públicamente y SuperGuard añade requisitos funcionales claros a las descripciones de la respuesta que contienen estos estándares.

12.4.1 b) prueba de que el componente de software cumple sus requisitos

Al convertir los requisitos funcionales extraídos de las descripciones de la respuesta de la especificación de la biblioteca en especificaciones de prueba y diseños de test, y uniendo Las pruebas resultantes en un conjunto exhaustivo de prueba ejecutables, SuperGuard ofrece la demostración de que una implementación de la Biblioteca Estándar de C cumple los requisitos extraídos y por tanto la descripción de la respuesta.

12.4.1 c) prueba de que el componente de software es adecuado para el uso al que se destina

Cuando se utiliza SuperGuard para comprobar una implementación de la Biblioteca Estándar de C, genera un informe detallado del estado PASA/FALLA de todas las pruebas con una total trazabilidad hasta los requisitos funcionales extraídos de las descripciones de la respuesta de la especificación.

SuperGuard también cumple los requisitos de ISO 26262 Parte 8, Cláusula 12, párrafos 12.4.2.2, 12.4.2.3 y 12.4.2.4, que están relacionados con 12.4.1b visto antes. La cláusula 12.4.2.2 indica que la verificación de un componente de software se puede realizar mediante una comprobación basada en requisitos y un paquete de prueba especializado, que es lo que proporciona SuperGuard. También establece que la verificación debe “cubrir tanto las condiciones normales de funcionamiento como la respuesta si se produce un fallo” y no debería “mostrar errores que pudieran llevar a incumplir los requisitos de seguridad asignados a este componente de software”. SuperGuard comprueba los requisitos funcionales para todos los fallos de funcionamiento definidos en el estándar del lenguaje ISO C.

La cláusula 12.4.2.3 define un requisito añadido para el uso de componentes de software en aplicaciones ASIL-D y establece que se debe medir la cobertura estructural con el fin de evaluar que se han completado los casos de prueba.

La cláusula 12.4.2.4 establece que el proceso de verificación detallado en la Cláusula 12 solo se puede aplicar a una implementación sin cambios del componente de software. Si bien algunos desarrolladores sustituyen las funciones de la biblioteca por sus propias implementaciones especializadas, estas modificaciones normalmente solo se aplican a unas pocas funciones. Dado que la Biblioteca Estándar de C es muy modular y que prácticamente todas las implementaciones de la función son independientes del resto de la biblioteca, la mayoría de las funciones de la biblioteca aún se pueden verificar según lo dispuesto en la Parte 8, Cláusula 12, permitiendo así que el desarrollador de la aplicación se concentre en validar solo aquellas funciones que han sido modificadas de acuerdo con lo establecido en la Parte 6.

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.