Obtenga la información de actualización crítica más reciente para la vulnerabilidad de Log4j. Vea cómo abordar el problema con la guía de Parasoft. Más información >>

X

Cumplimiento de normas y estándares de codificación MISRA C

Los desarrolladores utilizan ampliamente los estándares de codificación MISRA en empresas más allá de la industria automotriz, como dispositivos médicos y médicos, militar, aeroespacial, automatización industrial, ferrocarriles y energía. Los estándares proporcionan un conjunto de pautas o mejores prácticas para escribir código C y C ++ incrustado (C ++ se integra en Microsoft Visual Studio) y facilitan la autoría de código seguro y portátil para sistemas críticos de seguridad y protección.

¿Qué es MISRA?

La Motor Industry Software Reliability Association (MISRA) se refiere al estándar de codificación legendario y ampliamente adoptado para los lenguajes C y C ++. MISRA proporciona un conjunto completo de pautas de codificación que se enfoca en proteger las aplicaciones contra violaciones de seguridad conocidas y vulnerabilidades de seguridad. La Asociación clasifica las pautas como una "regla" o una "directiva".

Una regla viene con una descripción completa del requisito de codificación y, a través del análisis estático, los desarrolladores pueden usarla para verificar que el código fuente cumpla con una guía sin la necesidad de buscar ninguna otra información. Una directiva, por otro lado, ofrece una receta importante o una guía de desarrollo que los desarrolladores deben seguir cuando, por lo general, no les es posible realizar una verificación de cumplimiento.

MISRA es un consorcio de industrias relacionadas con la automoción que se unió a principios de la década de 1990 como resultado del Programa de Investigación de Sistemas Críticos de Seguridad del Reino Unido. El gobierno del Reino Unido instituyó este programa para abordar algunos de los desafíos que enfrentó la industria automotriz debido a que los fabricantes de automóviles y camiones incrementaron el uso de software en la fabricación y operación de vehículos de carretera. Parasoft es miembro del consorcio MISRA.

Para el desarrollo de C, el último estándar MISRA C: 2012 es compatible con las especificaciones de lenguaje C90, C99, C11 y C18. La versión actual, MISRA C: 2012 (a veces escrita como MISRA C 2012 o MISRA C2012), ha evolucionado durante varios años, y la Enmienda 2 a MISRA C: 2012 se publicó en 2020. Se proyecta que la Enmienda 3 se publique en 2022. Para el lenguaje de programación C ++, el estándar MISRA actual es MISRA C ++ 2008.

Nota: MISRA es un conjunto de reglas para la codificación segura, no para probar API (interfaces de programación de aplicaciones).

“MISRA”, “MISRA C” y el logotipo del triángulo son marcas comerciales registradas de The MISRA Consortium Limited. © The MISRA Consortium Limited, 2021. Todos los derechos reservados.

Beneficios de MISRA

Cuando los desarrolladores implementan las pautas de MISRA, les ayuda a entregar un código seguro y confiable que tiene beneficios eternos. El cumplimiento de MISRA afecta el éxito y la longevidad de su producto al tiempo que reduce los costos laborales y el tiempo de comercialización.

Aumente la calidad del código y reduzca el costo de los defectos.

Evite los defectos de código en las primeras etapas del proceso de desarrollo del producto antes de que se conviertan en una cascada de desafíos más costosos en el futuro.

Satisfacer los estándares de procesos de la industria.

Parasoft ofrece análisis estático MISRA como la solución recomendada por estándares de proceso como ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 y más.

Satisfacer las pruebas de seguridad de análisis estático (SAST).

Incorpore las reglas y directivas del código de seguridad MISRA directamente en su ciclo de vida de desarrollo de software como parte de su estrategia SAST.

Expanda de MISRA y cree sus propias pautas de codificación personalizadas.

Cree su propia configuración de estándares de codificación personalizada para su organización utilizando nuestro RuleWizard.

Combine estándares de codificación como CERT con MISRA para obtener la calidad de código óptima.

Parasoft ofrece la agregación de estándares como MISRA con todos y cada uno de nuestros otros estándares de codificación admitidos: CERT, CWE, OWASP, UL 2900 y otros.

Incorpore MISRA SA en su flujo de trabajo de CI / CD.

El análisis estático MISRA de Parasoft se integra fácilmente en su canal de CI / CD optimizado con pruebas continuas que brindan software de alta calidad, seguro y protegido rápidamente.

Pruebe de manera más inteligente con IA y ML.

Parasoft incorpora inteligencia artificial y aprendizaje automático para mejorar la productividad en el flujo de trabajo de análisis estático MISRA de su equipo, marcando y priorizando las violaciones de reglas que el equipo necesita corregir primero.

Soluciones para ayudar a cumplir con los requisitos de MISRA

Implemente el conjunto de productos de Parasoft para realizar análisis estáticos de código sin importar en qué entorno de desarrollo trabaje.

Mejores prácticas de cumplimiento de MISRA

Cuando se trata del cumplimiento de MISRA, recomendamos varias prácticas altamente beneficiosas. Aquí hay una lista de algunos de los métodos a considerar.

Realizar revisiones de código / pares

Además del cumplimiento de MISRA, reúnase con sus compañeros ingenieros de software y verifique sistemáticamente el código de los demás en busca de errores y violaciones de estilo de codificación. La experiencia muestra que esta actividad acelera la producción y mejora sustancialmente la calidad del código.

Claridad de código

El cumplimiento de MISRA lo ayuda a escribir código que sea fácil de leer y comprender. No sea demasiado inteligente y escriba un código críptico que sea difícil de seguir o que se malinterprete fácilmente. No desea que otros ingenieros o usted mismo pasen mucho tiempo tratando de descifrar un error en su código.

Robustez del código

Cuando logra el cumplimiento de MISRA, lo ayuda a escribir un código confiable que no solo maneja los escenarios de días soleados sino también los días lluviosos. Esto incluye escenarios negativos que preparan su aplicación si se encuentra con datos no válidos.

Portabilidad de código

El cumplimiento de MISRA ayuda a los programadores a escribir código teniendo en cuenta la portabilidad porque el código portátil, como POSIX y ANSI C, permite movimientos fáciles y rápidos a otras plataformas. Los desarrolladores pueden adaptar otros compiladores u otros sistemas operativos con cambios mínimos de código. Muchas veces existen oportunidades financieras o comerciales cuando se debe realizar la migración a otro sistema operativo o destino.

Complejidad del código

El cumplimiento de MISA ayuda a los codificadores a escribir código que no tiene una gran cantidad de ramas. Cuantas más ramas, mayor es la complejidad del código y mayor el número de errores potenciales en el código.

Reutilización de código

El cumplimiento de MISRA le ayuda a escribir código portátil que puede reutilizar en productos o proyectos futuros. Esto mejora la productividad y reduce los costos de mano de obra y pruebas.

Registre correctamente sus desviaciones

Cualquier desviación de la directriz de MISRA requiere una documentación completa sobre la directriz, el alcance, la justificación, la garantía de seguridad, las consecuencias y la mitigación.

Reducir el ruido MISRA

Los codificadores pueden escribir algunas construcciones de código de una manera que provoque una infracción de MISRA. Parasoft proporciona un método para filtrar conscientemente este ruido.

Adopción del cumplimiento de MISRA

Una gran ventaja de proponer el cumplimiento de MISRA es que los equipos de seguridad pueden introducir y utilizar las pautas en cualquier fase de desarrollo de software de un proyecto, y las pautas son efectivas incluso si un proyecto está incompleto y parcialmente codificado.

El mayor desafío al introducir el cumplimiento de MISRA es que una gran cantidad de código puede producir una gran cantidad de advertencias. Por lo tanto, las empresas deben enfocarse en lograr que el equipo sea productivo lo antes posible al integrar el cumplimiento de MISRA en un proyecto.

Las empresas también deben concentrarse en minimizar la posibilidad de que las advertencias de análisis estático abrumen al equipo. A medida que lograr el cumplimiento de MISRA se convierte en parte de la rutina diaria de los desarrolladores, los desarrolladores pueden analizar los resultados más rápido y corregir errores de manera más eficiente.

Consideraciones sobre la madurez del producto

También es importante considerar la madurez del producto en desarrollo, ya que esto afecta la forma en que la empresa puede adoptar el cumplimiento de MISRA.

Proyecto existente en el mercado

El enfoque principal para adoptar el cumplimiento de MISRA para estos proyectos se llama "reconocer y aplazar". Dado que los desarrolladores están agregando un pequeño código nuevo, todos los errores de seguridad y las vulnerabilidades de seguridad que descubren se suman a la deuda técnica existente.

Proyecto existente con desarrollo actual

El enfoque recomendado para el cumplimiento de MISRA se llama enfoque de “una línea en la arena”. En un nivel alto, este enfoque significa que los desarrolladores mejoran el código nuevo a medida que lo desarrollan, al tiempo que posponen las advertencias menos críticas como deuda técnica.

Nuevo proyecto

Los desarrolladores pueden integrar el cumplimiento de MISRA en sus entornos de desarrollo desde el principio, lo que garantiza un alto estándar de código de calidad a medida que lo escriben. El enfoque de adopción en este caso se denomina acertadamente "greenfield".

Captura de pantalla de los informes y análisis de Parasoft sobre el cumplimiento de MISRA C 20212 que muestra gráficos circulares y otros datos que reflejan el cumplimiento del código.

Ejemplo de informe de cumplimiento automatizado

Panel de análisis de Parasoft con informes de cumplimiento automatizados. Para aplicaciones críticas de seguridad, querrá utilizar nuestra solución certificada TÜV SÜD en sistemas críticos de seguridad.

¿Por qué Parasoft?

Parasoft C / C ++test detecta problemas complejos en tiempo de ejecución de cumplimiento de MISRA al principio de la etapa de desarrollo, sin la necesidad de ejecutar costosas pruebas de tiempo de ejecución. La prueba C / C ++ analiza las rutas de ejecución a través del código y encuentra problemas de cumplimiento de MISRA, como desreferenciación de puntero nulo, división por cero, fugas de memoria y vulnerabilidades de seguridad, como aritmética en un operando de puntero, desbordamientos de búfer, código inalcanzable y función del sistema stdlib.

Los usuarios pueden ver los resultados del cumplimiento de MISRA de la prueba C / C ++ en el panel de informes dinámicos de Parasoft, lo que permite el posprocesamiento automatizado y estrategias avanzadas de informes utilizando datos históricos. Es fácil ver los resultados de cumplimiento de MISRA en todas las compilaciones a lo largo del tiempo, incluso cuando se trabaja con grandes bases de código y código heredado donde la visibilidad del código suele ser un desafío para que pueda concentrarse rápidamente en la calidad del código recién agregado.

Con widgets que rastrean automáticamente el cumplimiento de MISRA, los usuarios obtienen una vista dinámica del proceso de cumplimiento del software y pueden producir fácilmente informes automáticos para auditorías de código y objetivos de certificación.

Preguntas Frecuentes

Incorpore en la fase de implementación de su software una solución certificada por TÜV que analiza su código según el estándar MISRA para detectar violaciones conocidas de seguridad y seguridad de las aplicaciones.

En el desarrollo ágil moderno, también puede automatizar el análisis y el cumplimiento de MISRA en su flujo de trabajo de integración continua y entrega continua (CI / CD). Asegúrese de comprender todas las infracciones identificadas y asegúrese de abordarlas todas. Si hay alguna desviación, documente minuciosamente como lo requiere el estándar MISRA.

Por último, debe presentar los siguientes artefactos para la certificación de cumplimiento de MISRA.

  1. Plan de cumplimiento de las pautas de MISRA
  2. Plan de reclasificación de las pautas de MISRA
  3. Informe de desviaciones de MISRA
  4. Resumen de cumplimiento de MISRA

La última versión, MISRA C: 2012, ha evolucionado durante varios años e incluye 158 reglas MISRA C y 17 directivas para un total de 175 pautas. La enmienda 2 a MISRA C: 2012, publicada en 2020, amplió el estándar en 2 reglas.

El análisis estático es el proceso de examinar el código fuente sin ejecución, generalmente con el propósito de encontrar errores o evaluar la seguridad y confiabilidad del código. Esto significa que los equipos de software y los equipos de seguridad de software pueden usar análisis estático en código parcialmente completo, bibliotecas y código fuente de terceros.

Las herramientas de análisis estático ayudan a los equipos a ajustarse a estándares de codificación como MISRA C / C ++, AUTOSAR C ++ 14, SEI CERT o su propia configuración personalizada.