X
BLOG

Aceleración del cumplimiento de MISRA y CERT con flujos de trabajo de informes dedicados

Aceleración del cumplimiento de MISRA y CERT con flujos de trabajo de informes dedicados Tiempo de leer: 5 minutos
La introducción de un estándar de codificación como MISRA o CERT en el flujo de trabajo diario del desarrollador puede llevar mucho tiempo y resultar intrusivo. En esta publicación, analizamos cómo acelerar el cumplimiento con la automatización de herramientas, los informes dedicados y la gestión del flujo de trabajo.

Durante el desarrollo de software activo, el flujo de trabajo típico del desarrollador consiste en codificar (código nuevo, refactorizar o corregir el código existente), probar la unidad local, enviar el código al control de fuente, iniciar una compilación de integración continua (CI) y recibir retroalimentación de tal compilar, corregir errores y continuar con la siguiente función a implementar.

En esta publicación, describiré cómo introducir con éxito un estándar de codificación en este proceso diario aprovechando el análisis estático automatizado con informes dedicados y administración de flujo de trabajo. Esto le ayudará a presentar el proceso de cumplimiento del estándar de codificación y todos los beneficios que aporta, sin sacrificar su productividad ni frustrar a los desarrolladores.

Con cumplimiento e informes dedicados para los estándares de codificación, también podrá garantizar:

  • La efectividad del proceso (reduciendo la carga sobre los desarrolladores)
  • Coherencia en la política (y seguimiento del progreso del equipo)
  • Aspectos formales del cumplimiento (incluida la generación automática de la documentación de cumplimiento que pueda ser requerida por su contratista o el organismo de certificación)

¡Vamos a empezar! Empezaremos por el principio, con la configuración de prueba.

Definir la configuración de la prueba

Lo primero que hará cuando adopte el análisis estático en el flujo de trabajo es definir la configuración de los verificadores de análisis de código estático que son relevantes para su proyecto. Un jefe de equipo, arquitecto u oficial de seguridad funcional debe definir la configuración de la prueba, con una colección de verificadores de análisis estáticos para hacer cumplir el estándar de codificación. Este puede ser un proceso único o una acción repetitiva durante la vida útil del proyecto.

Si no tiene la obligación externa de seguir un estándar de codificación específico, le recomendamos que seleccione un estándar primario a seguir, como CERT or MISRAy ampliándolo con pautas adicionales de otros estándares que pueden ser valiosos para nuestro desarrollo. Por lo general, vemos a nuestro usuario que confía en MISRA C 2012 para incluir pautas seleccionadas de CERT C en el proceso y viceversa.

Publique la configuración de prueba en el IDE

Una vez que se prepara la configuración de prueba, se pone automáticamente a disposición de todos los miembros del equipo, directamente en sus IDE, para su uso continuo durante el desarrollo de software.

Este punto del flujo de trabajo es fundamental para acelerar el proceso de cumplimiento y aprovechar los beneficios de la detección temprana de defectos y vulnerabilidades de seguridad del análisis estático automatizado. Los desarrolladores escanean su código inmediatamente después de su creación, casi instantáneamente. Según nuestras observaciones, incluso retrasos de 10 a 20 minutos en la entrega de los resultados del análisis de cumplimiento es lo suficientemente largo como para que los desarrolladores pierdan el enfoque y continúen con otro trabajo.

Código de registro para escaneo de cumplimiento adicional

En el siguiente paso, los desarrolladores registran su código, lo que desencadena la compilación de CI, donde se realiza un análisis de cumplimiento adicional.

(A menudo surgen preguntas sobre si tiene sentido configurar exploraciones de análisis estático como una puerta para el registro de código, de modo que se rechace el registro de código fuente que no cumpla con las normas. En nuestra experiencia, esto no funciona bien. Los desarrolladores obtienen fácilmente frustrado por las confirmaciones rechazadas y el trabajo en equipo puede verse obstaculizado, mientras que las piezas de código dependientes no se integran a tiempo. Un mejor flujo de trabajo no bloquea los registros de código, sino que asume que cualquier infracción que ingrese al repositorio de origen se detecta en el nivel de CI).

Durante la compilación de CI, se realiza un análisis completo del repositorio de origen. ¿Por qué realizar un escaneo adicional si el código ya está escaneado en el IDE? Los escaneos a nivel de integración proporcionan una red de seguridad que se requiere, ya que algunas pautas son detectables solo a nivel del sistema, o simplemente se pasa por alto una infracción. Además, se necesita una vista completa del sistema de la fuente para un análisis estático más complejo (análisis de flujo) que ayude a detectar defectos y vulnerabilidades de seguridad.

La combinación de escaneos locales en los IDE de los usuarios y escaneos centrales en el servidor CI asegura precisión y eficiencia.

Ver los resultados y determinar acciones

Cuando se utiliza la prueba Parasoft C / C ++, los resultados del análisis de CI se publicarán en un centro centralizado de informes y análisis, al que se accede en un navegador web, que almacena y analiza los datos.

Los líderes de equipo pueden utilizar el portal web para acceder a los resultados, comprender el estado actual de cumplimiento y profundizar en áreas específicas de interés. Luego, pueden asignar tareas a los desarrolladores para hacer un seguimiento de las infracciones encontradas durante el análisis.

Arreglar problemas

Luego, los desarrolladores solucionan estos problemas, escanean el código localmente y realizan las correcciones, iniciando otro ciclo.

Generar informes y documentación

A medida que el proyecto se acerca a su finalización y el equipo se acerca a su objetivo de cumplimiento, los informes de cumplimiento se generan automáticamente, incluidos todos los documentos requeridos por el estándar de codificación principal que está en uso. Estos informes dedicados, específicos para el estándar, ahorran mucho tiempo, ya que reducen la cantidad de trabajo manual tedioso relacionado con la creación y el mantenimiento de la documentación de cumplimiento.

A continuación se muestran ejemplos de cómo se ve esto para MISRA y CERT.

Informes de cumplimiento para MISRA

La prueba de Parasoft C / C ++ proporciona informes dedicados para documentar el cumplimiento de MISRA C.Un panel en el portal web de Parasoft proporciona vistas de un vistazo sobre el estado actual del proyecto, como el que se muestra aquí:

Cada uno de estos widgets del panel se puede vincular a una vista más detallada, que contiene informes de infracción detallados, archivos y código fuente.

Desde aquí, puede crear automáticamente los informes necesarios para documentar el cumplimiento de MISRA como se describe en Cumplimiento de MISRA 2016: Lograr el cumplimiento de las pautas de codificación de MISRA. La automatización de estos informes es un gran ahorro de tiempo, ya que reduce en gran medida la cantidad de trabajo manual necesario para documentar el cumplimiento del proyecto.

Informes de cumplimiento para SEI CERT C

Aunque el estándar SEI CERT C no requiere informes de cumplimiento específicos, sí requiere un proyecto para documentar la conformidad con los conjuntos de reglas (por ejemplo, L1, L2 y totalmente compatible). La prueba Parasoft C / C ++ incluye un tablero dedicado para el cumplimiento de CERT C , que se ve así:

Los líderes de equipo pueden usar esta vista de panel para profundizar en áreas específicas de interés y asignar tareas a los desarrolladores para aumentar el cumplimiento con el tiempo. Ver los resultados en el contexto del marco de evaluación de riesgos utilizado por el estándar de codificación en sí (por ejemplo, ver violaciones específicas de las pautas L1), agiliza significativamente el proceso. La automatización de estos informes reduce la cantidad de análisis que los líderes de equipo y los arquitectos deben realizar para lograr el cumplimiento de CERT C.

Resumen

Para acelerar el cumplimiento, tres elementos son esenciales: gestión centralizada de las políticas de cumplimiento, ciclos breves de retroalimentación para los desarrolladores que trabajan con IDE y escaneos de CI / CD para la gestión de procesos y la generación de informes. La automatización a través del análisis estático es clave no solo para lograr el cumplimiento del conjunto de reglas, sino también para reducir el esfuerzo manual de documentar e informar el cumplimiento a los auditores y evaluadores. Al aprovechar los flujos de trabajo centrados en el desarrollador que aprovechan la prueba de Parasoft C / C ++, los equipos pueden evaluar y monitorear el cumplimiento de manera eficiente a diario, con herramientas de informes dedicadas para ayudar a los líderes de equipo a administrar y lograr el cumplimiento.

Pruebas de desarrollo unificadas para aplicaciones C y C ++

Escrito por

Miroslaw Zielinski

Gerente de producto para las soluciones de prueba integradas de Parasoft, las especialidades de Miroslaw incluyen C / C ++, RTOS, análisis de código estático, pruebas unitarias, gestión de la calidad del software para aplicaciones críticas de seguridad y cumplimiento del software con los estándares de seguridad.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft