Únase a nosotros el 30 de abril: Presentación de la prueba CT de Parasoft C/C++ para pruebas continuas y excelencia en el cumplimiento | Regístrese ahora

Reducir el riesgo y el costo de lograr un software compatible

Foto de cabeza de Arthur Hicken, evangelista de Parasoft
9 de Octubre de 2023
11 min leer

Asegurarse de entregar productos de software que cumplan con los estándares regulatorios y de cumplimiento puede dejar una costosa presión sobre el presupuesto de su empresa. En esta publicación, aprenderá cómo la automatización de pruebas de Parasoft lo ayudará a reducir los costos y el riesgo de cumplimiento.

El cumplimiento en el desarrollo de software puede significar cosas ligeramente diferentes para diferentes organizaciones. Las diferencias en la obtención de software compatible probablemente se relacionen con el mercado donde venden sus productos. Van desde el desarrollo riguroso de software crítico para la seguridad hasta aplicaciones empresariales que requieren capacidades de seguridad y privacidad para manejar datos confidenciales.

¿Qué es el software compatible?

Los estándares y regulaciones surgen en diferentes industrias y se implementan para proteger a los clientes y usuarios de daños. Ese daño podría manifestarse como peligro físico o pérdida financiera de credenciales e información personal sensible. A menudo, estos estándares son una reacción a eventos que resultaron en lesiones o violaciones importantes de datos.

Estándares de seguridad, protección y privacidad

En términos de seguridad, existen varios estándares, algunos de los cuales incluyen:

  • DO-178C (aviónica de aviones)
  • ISO 26262 (software automotriz)
  • EN 50128 (sistemas ferroviarios)
  • IEC 62304 (médico)
  • IEC 61508 (automatización industrial)

También existen estándares de seguridad y privacidad como GDPR para protección general de datos/privacidad y PCI-DSS para el manejo seguro de la información de la tarjeta de crédito.

Cumplimiento de los requisitos de las normas

Para la mayoría de los estándares, el cumplimiento demuestra de varias formas que el software que está implementando cumple con los requisitos del estándar. El proceso de desarrollo produce documentación, informes y otros artefactos que muestran el cumplimiento. Tiene en cuenta las auditorías y puede incluir demostraciones y pruebas de aceptación.

La cantidad de tiempo y costo para el cumplimiento depende del nivel de rigor que requiera el estándar de la industria. Estos estándares definen las pautas de diseño y desarrollo a seguir en función del impacto de seguridad o protección que el software tiene en el usuario final. La falla del producto puede provocar la muerte o lesiones en casos graves. Por ejemplo, ISO 26262 definido para niveles de integridad de seguridad (A, B, C, D), donde ASIL A es el riesgo o impacto de seguridad más bajo y D el más alto.

Nivel de Integridad Seguro

La probabilidad de que ocurra más la gravedad del riesgo y la controlabilidad determinan dónde encaja un producto en el nivel de integridad de seguridad. La controlabilidad es la capacidad del conductor para mitigar el riesgo.

Software compatible: tabla de gravedad, exposición y controlabilidad
Tabla de gravedad, exposición y controlabilidad

La siguiente tabla muestra la gravedad, la exposición y la controlabilidad traducidas a las distintas ASIL en ISO 26262.

Análisis de peligros y evaluación de riesgos
Análisis de peligros y evaluación de riesgos

EN 50128 utiliza los términos niveles de integridad de seguridad del software (SSIL) con criterios similares. Tanto la norma ISO 26262 como la EN 50128 derivan sus definiciones de IEC 61508, que es una norma general para la seguridad funcional.

Estos niveles de SSIL también se basan en la probabilidad de falla y la gravedad de la falla en la vida y la integridad física. Como se esperaba, el nivel o rigor aumenta a medida que lo requiere el nivel ASIL / SIL y los costos de cumplimiento aumentan con él. El nivel de escrutinio aumenta con el riesgo. Como tal, hay un impacto en el costo y el cronograma del desarrollo de software, que los equipos de desarrollo pueden mejorar con la automatización.

Riesgos y costos asociados con el cumplimiento del software

El mayor riesgo para las organizaciones de software es la falla del software que puede causar la muerte, lesiones u otro tipo de daño que abre las puertas a la responsabilidad. Para ayudar a reducir este riesgo, las organizaciones de software deben cumplir con los estándares de seguridad y protección. Las organizaciones deben demostrar que tomaron todas las decisiones de ingeniería razonables para garantizar la seguridad del usuario/cliente/operador. Creando software más seguro y protegido requiere un compromiso con el espíritu y la letra de los estándares de la industria.

Retrabajo, reevaluación y redocumentación

Descubrir problemas importantes de seguridad y protección al final del ciclo de vida del software requiere una reelaboración significativa, una nueva prueba y una nueva documentación. Es caro y lleva tiempo resolverlo. También apunta a una posible falla en el sistema y en el proceso de ingeniería.

Es fundamental trasladar el cumplimiento de la izquierda lo más temprano posible en el ciclo de vida de desarrollo de software (SDLC). Parasoft recomienda desplazarse hacia la izquierda para todas las prácticas de calidad y seguridad. Con este fin, nuestras recomendaciones incluyen las herramientas, los procesos y la automatización adecuados para ayudar a reducir el riesgo del software y aumentar el cumplimiento sin afectar negativamente el costo y el cronograma.

Falta de un proceso adecuado al espacio de la aplicación

Con frecuencia, muchas organizaciones carecen de la adopción de una cultura y un proceso que se adapte al espacio de la aplicación. El software crítico para la seguridad, por ejemplo, requiere un alto nivel de rigor en el desarrollo de software que implica una mayor calidad en todo momento.

Falta de automatización y herramientas adecuadas

Las organizaciones que se alinean con los requisitos de seguridad y protección tienen una gran carga de trabajo que implica proporcionar una pista de auditoría de cumplimiento para cada etapa y proceso del software. Junto con el desarrollo de software habitual, el trabajo adicional incluye:

  • Seguimiento de requisitos para código y pruebas.
  • Generación de informes de fallas, cobertura de código, corrección y desviaciones.

En la mayoría de los casos, se aplican estándares de codificación, por ejemplo MISRA para ISO 26262. Por lo tanto, los equipos deben trabajar para corregir las desviaciones de los estándares y medir el cumplimiento.

Las pruebas funcionales son necesarias para demostrar que los productos cumplen con los requisitos. Esto se suma a las pruebas de requisitos de seguridad y protección. Todas las pruebas requieren documentación de seguimiento y auditoría.

Combinados, el mayor nivel de trazabilidad, pruebas, estrictos estándares de desarrollo y documentación aumentan significativamente los costos de desarrollo de los productos. Esto hace que el riesgo de problemas de cumplimiento posteriores sea aún más abrumador.

La clave para reducir la carga de trabajo y el tedio de estos procesos es la automatización.

Mejores prácticas para un cumplimiento exitoso del software

Al automatizar los procesos más repetitivos y tediosos, las herramientas de desarrollo de software ayudan a reducir la carga de trabajo y los errores de los procesos de cumplimiento. Además, las herramientas son mejores para realizar un seguimiento del historial del proyecto y relacionar los resultados con los requisitos, los componentes del software, las pruebas y las desviaciones registradas.

Las herramientas también ayudan a aplicar buenas prácticas, como estándares de codificación, pruebas unitarias, cobertura de código, trazabilidad y más. Los equipos pueden adoptar herramientas en las primeras etapas del ciclo de vida para ayudar a abandonar la carga de trabajo de cumplimiento.

A continuación se presentan cuatro mejores prácticas recomendadas a seguir para entregar software compatible con éxito:

  • Evaluación y documentación minuciosa. Implementar un sistema de gestión de calidad con procesos, procedimientos y responsabilidades bien documentados para lograr políticas y objetivos de calidad para toda la organización. Este es un paso fundamental para garantizar el cumplimiento.
  • Implementar políticas y procedimientos claros. Adopte un proceso de desarrollo de software con políticas y procedimientos claros que funcionen para su organización. Agile scrum es muy popular y viene con políticas y procedimientos claros que permiten a los equipos autogestionarse, aprender de la experiencia y adaptarse al cambio.
  • Utilizar herramientas y automatización. Utilice herramientas de software certificadas que tengan un historial exitoso de uso para lograr el cumplimiento del software con los estándares de seguridad funcional de la industria. Herramientas que ofrecen automatización y remedian la introducción de errores humanos, proporcionan un seguimiento de auditoría y reducen los costos laborales.
  • Auditorías y seguimiento periódicos. Cree informes, como paneles visibles o documentación con análisis sobre el progreso, el estado y la calidad de su proyecto de software. Informes que incluyan una evaluación o auditoría de áreas críticas con alto riesgo que deben abordarse lo antes posible.

Reducción de riesgos y costos de cumplimiento con la automatización

Las herramientas de Parasoft ayudan a reducir los riesgos y costos de cumplimiento. Además, los equipos pueden satisfacer los requisitos de verificación y validación con informes integrales e integraciones de herramientas.

Cómo encajan los productos Parasoft en cada fase del diagrama V clásico del SDLC.

Cumplimiento de los estándares de seguridad funcional con Parasoft Tools

Desarrollar software crítico para la seguridad no es tarea fácil. Parasoft ayuda a aliviar la carga al ofrecer una amplia gama de herramientas de verificación y prueba de desarrollo. Éstos son algunos de esos métodos de verificación probados, que están diseñados específicamente para aplicaciones críticas para la seguridad funcional:

  • Análisis de cumplimiento de estándares de codificación
  • Análisis de flujo de datos y control
  • Prueba unitaria
  • Monitoreo de aplicaciones
  • Componentes del flujo de trabajo

Al realizar pruebas unitarias o monitoreo de memoria en tiempo de ejecución, todos los componentes necesarios para construir el binario de prueba, incluidos los casos de prueba para la estimulación del código probado y los resguardos, se expresan en forma de código fuente y se pueden versionar e inspeccionar. Este enfoque es superior a otras herramientas en las que la estimulación del código probado se envía en tiempo de ejecución desde el host y requiere conversiones adicionales antes de asignarlas a las variables en la memoria. La prueba de Parasoft C/C++ elimina esta capa innecesaria y asegura que el estado de la memoria antes de ejecutar las pruebas se construya de la misma manera que en los sistemas de producción.

La prueba C/C++ combina múltiples tecnologías de prueba integradas en una sola herramienta. Su amplitud se traduce en una mayor eficiencia del desarrollador al desarrollar aplicaciones con requisitos de seguridad funcional. Los desarrolladores pueden centrarse en sus actividades principales sin tener que aprender, integrar y calificar varias herramientas. Los integradores de herramientas o arquitectos no tienen que perder tiempo implementando interfaces entre herramientas para intercambiar datos y generar informes uniformes. En cambio, lo obtienen todo de Parasoft listo para usar.

Cobertura del código de ensamblaje

La herramienta de cobertura de ensamblaje de Parasoft (ASMTool) satisface las recomendaciones de código objeto ejecutable establecidas por C Nivel A. ASMTool puede generar informes de cobertura estructural a partir de código objeto ejecutable con poco esfuerzo.

La cobertura estructural se informa con una visión fácilmente revisable del código generado por el compilador que no se puede rastrear directamente a las declaraciones del código fuente. También rastrea las declaraciones de cambio, proporcionando una visión completa de las rutas de ejecución de la prueba en el nivel de instrucción del lenguaje de máquina.

ASMTool también admite la recopilación de cobertura estructural tanto del proceso de integración de software (prueba de hardware de destino) como del entorno de desarrollo de escritorio (Prueba de Parasoft C / C ++ para pruebas unitarias).

Herramienta de cobertura de ensamblaje de Parasoft (ASMTool)
Herramienta de cobertura de ensamblaje de Parasoft (ASMTool)

Cumplimiento del estándar de codificación

Los estándares de codificación juegan un papel importante en muchos estándares de seguridad y protección. En la mayoría de los casos, la única forma práctica de exigir el cumplimiento de un estándar de codificación como AUTOSAR C ++ 14 (utilizado en sistemas automotrices) es con una herramienta de análisis estático. Parasoft ayuda a las organizaciones a realizar análisis estáticos, pruebas unitarias, cobertura de código estructural, trazabilidad de requisitos y otros métodos de prueba recomendados por el estándar.

La prueba Parasoft C/C++ admite verificadores asignados para los estándares de codificación, por lo que los desarrolladores no necesitan desreferenciar las advertencias a los estándares. La herramienta probada proporciona funciones de prueba, contextos configurables y mecanismos de generación de informes que ayudan con metodologías avanzadas de prueba de software. Los estándares que Parasoft admite directamente incluyen:

Los equipos de desarrollo de software pueden lograr el cumplimiento y ahorrar tiempo con Parasoft C / C ++test. Los equipos tienen una forma práctica de prevenir, exponer y corregir errores en su software con informes y paneles generados automáticamente. Pueden preparar la documentación necesaria para las auditorías con la ayuda de la calificación de herramientas automatizadas.

Los equipos pueden personalizar el sistema de informes interactivo de Parasoft según los requisitos impuestos por las reglas que utilicen, como AUTOSAR C++ 14, HIC++, MISRA C/C++, etc., y permitir un flujo de trabajo diario eficiente. Los desarrolladores pueden verificar el cumplimiento de su código sin salir de sus IDE e integrar el proceso de escaneo en las compilaciones de CI en los servidores.

Parasoft también soporta estándares centrados en la seguridad como SEI CERT. Ayuda a las organizaciones a detectar vulnerabilidades de seguridad en su código y gestionar el proceso para lograr el cumplimiento del estándar. La alta precisión de los verificadores de códigos, el bajo nivel de falsas alarmas y los sofisticados informes de cumplimiento consistentes con el estándar CERT ayudan a minimizar los costos y gastos generales relacionados.

Los informes de cumplimiento únicos de Parasoft proporcionan una vista dinámica del proceso de desarrollo. Los informes interactivos y los paneles personalizados brindan diferentes vistas de los resultados del estado de cumplimiento de CERT y utilizan la redacción y las categorizaciones definidas por el estándar para facilitar su comprensión.

Software compatible: estándares de codificación
Niveles de gravedad de los estándares de codificación de software compatibles

Generación de informes y documentos centralizados

La combinación de varias técnicas de automatización de pruebas da como resultado mucha información de calidad. Estos datos son útiles, pero el gran volumen dificulta obtener información sobre la calidad de sus entregables y tomar decisiones sobre el lanzamiento o los cambios en el proceso de desarrollo.

Para respaldar la toma de decisiones, es beneficioso agregar los datos en una vista centralizada de calidad. Los paneles gráficos proporcionan una vista de nivel superior del progreso de las pruebas. La correlación de datos de calidad con sus requisitos e historias de usuarios proporciona una verdadera trazabilidad bidireccional para que pueda evaluar el riesgo comercial y el impacto de las brechas en sus prácticas de prueba.

El panel de análisis e informes de Parasoft agrega datos de todas las diferentes prácticas de prueba, incluidas análisis estático, como el cumplimiento del estándar de codificación AUTOSAR o MISRA, cobertura de código y trazabilidad desde pruebas unitarias, pruebas API y validación funcional a nivel de sistema. Esto proporciona una vista centralizada de la calidad que es una auditoría en tiempo real de su proceso y visibilidad del estado de cumplimiento del estándar requerido. Este análisis también genera la documentación necesaria para demostrar el cumplimiento ante un auditor.

Parasoft DTP vista centralizada de la calidad agregada en todas las herramientas y fases de desarrollo.
Parasoft DTP vista centralizada de la calidad agregada en todas las herramientas y fases de desarrollo.

Solo como ejemplos, veamos los informes de la prueba de Parasoft C / C ++ y DTP de Parasoft para MISRA y SEI 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í:

Captura de pantalla del Centro de informes de Parasoft DTP que muestra el análisis y las métricas de cumplimiento de MISRA C 2023
Centro de informes: Cumplimiento de MISRA C 2023

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 2020: 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 el cumplimiento de los conjuntos de reglas, como L1, L2 y el cumplimiento total. La prueba Parasoft C/C++ incluye un panel dedicado para la conformidad con CERT C, que se ve así:

Captura de pantalla del Centro de informes de Parasoft DTP que muestra el análisis y las métricas de cumplimiento de SEI CERT C
Centro de informes: Cumplimiento de SEI CERT C

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.

Calificación de la herramienta

La calificación de herramientas es un proceso obligatorio para el desarrollo de software crítico para la seguridad. Kits de calificación de Parasoft para la prueba Parasoft C / C ++ automatice el proceso de creación de la documentación de respaldo requerida para la calificación de herramientas de análisis estático, pruebas unitarias y requisitos de cobertura, reduciendo tanto el potencial de error humano como el tiempo necesario para realizar la calificación de la herramienta.

La reducción del riesgo y el costo de la calificación de herramientas incluye lo siguiente:

  • Genere automáticamente documentación de cumplimiento. Parasoft automatiza la creación de la documentación requerida para calificar la prueba de Parasoft C / C ++ para su uso en industrias críticas para la seguridad al guiar al usuario a través de un flujo de trabajo intuitivo y generar documentación que es fundamental para demostrar la calificación de la herramienta.
  • Reduzca el alcance de lo que se necesita para calificar la herramienta. El primer paso en el flujo de trabajo eficiente de Parasoft es seleccionar los casos de uso específicos y las capacidades de la prueba de Parasoft C / C ++ que se utilizan en el proyecto de software, para reducir el alcance general de lo que necesita ser calificado y agilizar el proceso de calificación.
  • Ejecutar pruebas automáticamente. Aunque el proceso de calificación de herramientas no se puede automatizar al 100%, el flujo de trabajo único de los kits de calificación de Parasoft lo hace lo más sencillo posible, lo que reduce los esfuerzos de prueba manuales y ejecuta pruebas automatizadas para casos de uso seleccionados.

Equilibrio de riesgos y recompensas en el cumplimiento del software

La creación de software crítico para la seguridad requiere procesos rigurosos que consumen mucho tiempo y son costosos de implementar, y por una buena razón: el fallo de dicho software puede tener consecuencias drásticas. Se implementan estándares de la industria para ayudar a guiar a las empresas a crear software de alta calidad para garantizar la seguridad en los productos desarrollados. Sin embargo, cumplir con estos estándares de la industria es costoso. Ese costo reside tanto en el proceso de desarrollo como en los artefactos necesarios para documentar el proceso de ingeniería. Las organizaciones pueden reducir costos con las aplicaciones adecuadas de herramientas y técnicas de software modernas.

Parasoft proporciona las herramientas adecuadas y el soporte para los procesos que ayudan a reducir el riesgo y los costos del cumplimiento del software con un conjunto de herramientas unificado y comprobado que reduce la "fricción" causada por el uso de múltiples herramientas de múltiples proveedores. Una solución integrada también simplifica enormemente la calificación de herramientas, un aspecto crítico del cumplimiento.

Tener una plataforma integrada permite el análisis de datos únicos recopilados de múltiples herramientas en varias etapas de desarrollo para enfocar los recursos en los objetivos más importantes. Esta visión centralizada del cumplimiento, la calidad y la seguridad es clave para tomar decisiones acertadas y reducir en gran medida las conjeturas para lograr el cumplimiento.

Vea cómo lograr las demandas de cumplimiento en análisis estático, pruebas unitarias y cobertura de código estructural con Parasoft C/C++test.

“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.