X
BLOG

Reducir el riesgo y el costo de lograr un software compatible

Reducir el riesgo y el costo de lograr un software compatible Tiempo de leer: 10 minutos

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)

También existen estándares de seguridad y privacidad como GDPR para la protección / privacidad de datos generales 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 capacidad de control determina 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 capacidad de control que se traduce en las diversas ASIL en ISO 26262:

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

Figura 2: 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 las normas ISO 26262 como EN50128 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. La creación de software más seguro requiere un compromiso con el espíritu y la letra de los estándares de la industria. 1

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 cambiar el cumplimiento izquierdo lo antes posible en el ciclo de vida del desarrollo de software (SDLC). (Recomendamos cambiar a la izquierda para todas las prácticas de calidad, seguridad y protección). Con este fin, nuestras recomendaciones incluyen las herramientas, el proceso y la automatización adecuados para ayudar a reducir el riesgo de 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, los estándares de codificación son aplicables, 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. 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.

Herramientas y automatización para el cumplimiento

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

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

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

Las siguientes secciones discuten cómo las herramientas de Parasoft ayudan a reducir los riesgos y costos de cumplimiento.

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. Estas son algunas de esas herramientas:

  • 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

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. La herramienta probada proporciona funciones de prueba, contextos configurables y mecanismos de informes que ayudan con las metodologías avanzadas de prueba de software.

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

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.

Cobertura del código de ensamblaje

La herramienta de cobertura de ensamblaje de Parasoft (ASMTool) satisface las recomendaciones de código de objeto ejecutable establecidas por DO-178B/ C Nivel A. Con poco esfuerzo, ASMTool puede generar informes de cobertura estructural a partir de código objeto ejecutable.

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. La prueba Parasoft C / C ++ admite verificadores mapeados para los estándares de codificación, por lo que los desarrolladores no necesitan desreferenciar las advertencias a los estándares.

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

Parasoft también admite estándares centrados en la seguridad como SEI CERT. Ayuda a las organizaciones a detectar vulnerabilidades de seguridad en su código y administrar el proceso para lograr el cumplimiento del estándar. La alta precisión de los verificadores de código, el bajo nivel de falsas alarmas y los informes de cumplimiento sofisticados de conformidad 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

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 informes y análisis 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 del 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 con 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 Parasoft DTP para MISRA y SEI CERT.

Informes de cumplimiento para MISRA

Parasoft C / C ++test 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í:

Centro de informes: Cumplimiento de MISRA C 2012
Centro de informes: Cumplimiento de MISRA C 2012

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 (como L1, L2 y totalmente compatible). La prueba Parasoft C / C ++ incluye un tablero dedicado para CERT Conformidad C, que se ve así:

Centro de informes: 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.

Reducir el costo y el riesgo de cumplimiento de software

Dado que se describe el papel de los productos Parasoft en cada etapa de desarrollo, ¿cómo Parasoft reduce el riesgo y ahorra dinero en el cumplimiento del software?

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

Un conjunto de pruebas probado diseñado específicamente para aplicaciones funcionales críticas para la seguridad. 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 stubs, 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 para el 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 C / C ++ elimina esta capa innecesaria y asegura que el estado de la memoria antes de ejecutar las pruebas se construye de la misma manera que en los sistemas de producción.

Elimine los gastos generales para el cumplimiento de la seguridad funcional. Parasoft proporciona integración de datos en todo el equipo, informes convenientes personalizados para diferentes estándares de codificación y análisis avanzados a través del galardonado Process Intelligence Engine de Parasoft. Los usuarios se benefician de la capacidad de agregar información a través de múltiples fuentes diferentes (como código fuente o sistemas de administración de requisitos, herramientas de prueba o ALM) para análisis de datos únicos, lo que ayuda a enfocar los esfuerzos de la manera más productiva. Los equipos pueden aumentar la productividad al monitorear las tendencias en el proceso de desarrollo y generar fácilmente informes que cumplan con los estándares de la industria, como “Cumplimiento de MISRA: 2016”.

Resumen

La construcción de software crítico para la seguridad y la protección requiere procesos rigurosos que requieren mucho tiempo y son costosos de implementar y por una buena razón: la falla de dicho software puede tener consecuencias drásticas. Se establecen 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 radica 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.

Abordar el cumplimiento de la norma ISO 26262 en las pruebas de software automotriz

Escrito por

Arthur Hicken

Arthur ha estado involucrado en seguridad de software y automatización de pruebas en Parasoft durante más de 25 años, ayudando a investigar nuevos métodos y técnicas (incluidas 5 patentes) mientras ayuda a los clientes a mejorar sus prácticas de software.

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

Prueba Parasoft