Usa Agentic AI para generar pruebas de API más inteligentes. En minutos. Descubra cómo >>
Saltar a la sección
Cómo MISRA C 2025 aborda los desafíos de la IA y Rust
Explore las actualizaciones clave en MISRA C 2025, el papel de la IA en la generación de código, la creciente popularidad de Rust y cómo estos cambios impactan a los desarrolladores y las organizaciones.
Saltar a la sección
Saltar a la sección
Directrices MISRA C Han marcado la pauta en seguridad, protección y fiabilidad en sistemas embebidos durante décadas. Esto es especialmente cierto en sectores como la automoción, la aeroespacial, los dispositivos médicos y la automatización industrial. Con el lanzamiento de MISRA C 2025, las directrices de codificación siguen evolucionando, abordando desafíos modernos como el código generado por IA y el creciente interés en Rust como alternativa a C/C++.
Actualizaciones incrementales de MISRA C 2025 con mejoras prácticas
MISRA C 2025 es un refinamiento incremental de MISRA C 2023Los cambios clave apuntan a mejorar la seguridad y la experiencia de los desarrolladores.
Nuevas reglas y modificaciones
Las directrices incluyen cuatro nuevas reglas que abordan los riesgos de codificación emergentes.
- No permitir la comparación implícita de punteros a nulos.
- Restringir el uso de miembros de unión inactivos, excepto matrices de caracteres, que están permitidos para lecturas de alias.
- Garantizar identificadores de macro de protección de inclusión únicos en todo un proyecto.
- Se fortalecen los requisitos para las conversiones de puntero a entero, por ejemplo, ahora se requiere la Regla 11.4 en lugar de ser una recomendación.
Reglas modificadas
Se incorporaron dos reglas a otras reglas. Como resultado, se eliminaron como parte de la refactorización de la organización de reglas. Además, la controvertida regla consultiva que exigía un único punto de salida en las funciones, que aparentemente desapareció, pasó a ser opcional.
Se renumeraron tres reglas para una mejor organización y se modificaron trece reglas para reflejar las mejores prácticas actuales y aclarar ambigüedades.
Más sobre la desaparición de la regla de salida única
La regla de salida única ha sido un elemento básico de MISRA durante décadas. Históricamente vinculada a prácticas de programación modular más antiguas, el cambio para hacerla opcional reconoce las prácticas modernas de programación estructurada y refleja la transición de MISRA hacia la practicidad sin comprometer la seguridad.
Esta regla se originó en la programación en ensamblador, donde los saltos podían ocurrir en cualquier lugar. Pero en lenguajes estructurados modernos como C, cada retorno sale de forma segura al emisor. Algunas organizaciones aún la aplican, por lo que el grupo de trabajo MISRA la mantuvo, pero ahora es opcional.
Restricciones relajadas para mayor flexibilidad de los desarrolladores
MISRA C 2025 también introdujo más flexibilidad para los desarrolladores en las siguientes áreas.
- Sentencias de cambio. Ahora las cláusulas pueden terminarse con declaraciones distintas a `break` (por ejemplo, `return`, `abort` o `continue`), lo que reduce la necesidad de código inalcanzable.
- Conversiones de punteros. Se agregaron excepciones para las conversiones que involucran `intptr_t` y `uintptr_t`, alineándose con las asignaciones estándar.
- Memoria dinámica. Ahora se permite la conversión inmediata de la memoria recién asignada a un tipo de puntero específico. Sin embargo, se sigue desaconsejando el uso de memoria dinámica.
Código generado por IA y cumplimiento de MISRA
¿Cómo se aplican las directrices MISRA al código generado por IA? Es una pregunta urgente en el desarrollo de software.
El código generado por IA no es lo mismo que el código generado automáticamente calificable
Tradicionalmente, MISRA ofrece flexibilidad para el código generado automáticamente, por ejemplo, el generado por Simulink o Stateflow. MISRA tiene un largo historial de adaptarlo a ciertas normas consultivas, reclasificándolo como "no aplicado" para facilitar el cumplimiento.
Por otro lado, MISRA exige que el código generado por IA a partir de LLM, como GitHub Copilot, cumpla con los mismos estándares que el código escrito por humanos. El comité de MISRA enfatiza que el código de IA carece de las garantías deterministas de los generadores basados en modelos, lo que significa que puede introducir riesgos impredecibles y requiere un escrutinio adicional. Por ello, requiere análisis estático, revisiones por pares y pruebas unitarias. De hecho, estos métodos de prueba son obligatorios.
Remediación asistida por IA
La IA puede ayudar a corregir infracciones de MISRA. Soluciones como Parasoft C/C++test se integran con GitHub Copilot y añaden orientación contextual, integrando documentación de reglas y utilizando razonamiento en cadena de pensamiento para generar correcciones conformes.
En resumen, la solución de análisis estático de Parasoft integra IA, conectándola con el cumplimiento para hacer lo siguiente:
- Explicar las violaciones en contexto.
- Sugiera soluciones compatibles para problemas como el uso indebido del puntero, por ejemplo.
- Suprimir automáticamente las violaciones de reglas heredadas al migrar a MISRA C 2025.
Los desarrolladores aún necesitan revisar las sugerencias de IA, pero el proceso acelera la remediación y al mismo tiempo mantiene el cumplimiento.
Ampliando el alcance de MISRA
MISRA publicó dos nuevas adendas más allá de las directrices principales.
- El Anexo 5 asigna las pautas de MISRA C a las debilidades de CWE etiquetadas como relevantes para la seguridad de la memoria, lo que ayuda a los desarrolladores a abordar las vulnerabilidades de manera sistemática.
- El Anexo 6 evalúa la aplicabilidad de las directrices MISRA C a la oxidación, identificando posibles problemas de seguridad. Este es un paso fundamental para futuras directrices específicas para la oxidación.
La pregunta de Rust: ¿MISRA se está expandiendo más allá de C/C++?
A medida que el lenguaje de programación Rust gana terreno en los sistemas críticos para la seguridad, muchos se preguntan si MISRA desarrollará pautas para él.
Si bien el apéndice 6 explora cómo las reglas existentes de C/C++ podrían aplicarse a Rust, su modelo de propiedad y las características de seguridad de memoria requieren nuevas reglas específicas del lenguaje. La comunidad de Rust trabaja activamente en estándares de seguridad, lo que podría derivar en una futura directriz MISRA para Rust.
Conclusiones clave para los desarrolladores
La norma MISRA C 2025 perfecciona el estándar con actualizaciones que priorizan la practicidad sin comprometer la seguridad. A continuación, se presentan algunos puntos importantes.
- El código generado por IA requiere escrutinio. Trátelo como si fuera un código escrito por humanos y exija su total cumplimiento.
- Las herramientas son fundamentales. Soluciones como Parasoft C/C++test agilizan el cumplimiento con correcciones asistidas por IA y una integración perfecta en los flujos de trabajo.
- Estar al día. Las nuevas asignaciones de MISRA para CWE y Rust muestran el papel evolutivo del estándar en la seguridad del software moderno.
Conclusión: La seguridad en la era de la IA y los nuevos lenguajes
MISRA C 2025 demuestra cómo los estándares de seguridad deben evolucionar junto con la tecnología. Al abordar el código generado por IA, reconsiderar las reglas obsoletas y explorar la compatibilidad con Rust, MISRA se asegura de seguir siendo un marco confiable para software de misión crítica.
Para los desarrolladores, es evidente: la automatización y la IA pueden facilitar la programación, pero la supervisión humana y las pruebas rigurosas siguen siendo indispensables. A medida que la industria avanza, mantenerse informado y adaptable será crucial para mantener la innovación y la seguridad.
Encuentre y corrija violaciones de código C/C++ más rápido con análisis estático impulsado por IA