Simplifique los flujos de trabajo de cumplimiento con el nuevo C/C++test 2024.2 y la automatización impulsada por IA | Regístrese ahora

Cómo el análisis estático de Parasoft podría haber evitado la catástrofe de CrowdStrike

Foto de cabeza de Ricardo Camacho, Director de Cumplimiento de Seguridad y Seguridad
24 de julio de 2024
3 min leer

Las recientes interrupciones del sistema en todo el mundo relacionadas con la actualización del software CrowdStrike Falcon muestran la importancia de realizar pruebas integrales previas a la implementación, incluidas prácticas comprobadas como el análisis estático. Descubra cómo utilizar las herramientas de análisis de código estático de Parasoft puede prevenir eficazmente problemas similares en el futuro.

En el acelerado mundo de la entrega automatizada de software (CI/CD), salvaguardar la integridad y confiabilidad de las actualizaciones de software es crucial. El reciente incidente en CrowdStrike, que involucró una actualización crítica del sensor de Windows, subraya la necesidad de realizar pruebas exhaustivas previas a la implementación. Este evento, que generó problemas importantes después de la actualización, sirve como advertencia para los desarrolladores de software: las pruebas automatizadas deben evaluar rigurosamente no solo la ciberseguridad sino también la confiabilidad y la seguridad. El protocolo de CrowdStrike comienza con un conjunto de pruebas automatizadas. CrowdStrike afirma:

“El proceso de liberación del sensor comienza con pruebas automatizadas, tanto antes como después de fusionarse con nuestro código base. Esto incluye pruebas unitarias, pruebas de integración, pruebas de rendimiento y pruebas de estrés”.

Curiosamente, no se menciona el análisis de código estático en su régimen de pruebas. Dado que los sectores críticos para la seguridad han defendido durante mucho tiempo el análisis estático para anticiparse a los problemas, la omisión es sorprendente. Las herramientas de análisis estático como las de Parasoft han demostrado ser muy efectivas para mejorar la solidez del software.

Detección temprana con análisis estático en pruebas de desplazamiento a la izquierda

Las implementaciones de software automatizadas se basan en pruebas integrales de software realizadas al principio del ciclo, también conocidas como prueba de desplazamiento a la izquierda—para detectar posibles fallas y vulnerabilidades antes de que lleguen a producción. Es fundamental que las pruebas tempranas prioricen la seguridad y confiabilidad del código junto con la seguridad para evitar incidentes que erosionen la confianza y causen interrupciones significativas.

Análisis estático juega un papel crucial en las pruebas de cambio a la izquierda, identificando y mitigando problemas en las primeras etapas del proceso de desarrollo. A diferencia de pruebas dinámicas, que requiere ejecutar el código, el análisis estático examina el código fuente sin ejecutar el programa. Esto permite la detección temprana de posibles errores, vulnerabilidades de seguridad y violaciones de estándares de codificación en las primeras etapas del ciclo de vida del software.

En el caso del problema de actualización de CrowdStrike Falcon, cumplir con estándares de codificación como Misra, CERTy CWE a través de herramientas de análisis estático habría sido fundamental para detectar y mitigar este defecto lógico.

  • MISRA proporciona pautas para software seguro y confiable, particularmente para sistemas integrados.
  • CERT se centra en prácticas de codificación segura para prevenir vulnerabilidades de seguridad.
  • CWE ofrece una lista completa de debilidades del software.

Todos estos estándares contienen pautas de codificación para identificar el uso de punteros NULL, la causa principal de esta falla. Ofertas de Parasoft Cobertura profunda para estos estándares. y la implementación de un conjunto sólido de verificadores centrados en la seguridad y la confiabilidad podría haber detectado este tipo de errores de manera temprana.

A continuación se presentan algunas pautas de codificación de análisis estático de tres estándares diferentes que podrían usarse para encontrar este tipo de defectos de software.

MISRA C++ 2023Directrices de codificación
MISRA C++2023:7.11.1nullptr será la única forma de la constante de puntero nulo
MISRA C++2023:8.7.1La aritmética de punteros no formará un puntero inválido.
MISRA C++2023:11.6.2El valor de un objeto no se leerá antes de que se haya establecido
CWEDirectrices de codificación
CWE:395Uso de captura de excepción de puntero NULL para detectar desreferencia de puntero NULL
CWE:476Desreferencia del puntero NULO
CWE:626Error de interacción de bytes nulos
CWE:690Valor de retorno no marcado para desreferencia de puntero NULL
CERTIFICADO SEIDirectrices de codificación
CERTIFICADO:
EXP34-C
No desreferenciar punteros nulos
CERTIFICADO:
ARR30-C
No forme ni utilice punteros o subíndices de matriz fuera de límites
CERTIFICADO:
ARR30-C
No acceder a la memoria liberada

Al integrar estos estándares en su proceso de desarrollo, CrowdStrike podría haber identificado errores de codificación, fallas de seguridad y problemas de cumplimiento antes de que llegaran a producción. Esto habría garantizado que la actualización fuera sólida, segura y cumpliera con las mejores prácticas, evitando así las interrupciones y los posibles riesgos de seguridad que experimentan aproximadamente 8.5 millones de dispositivos.

Análisis estático versus análisis dinámico.

Aprenda en qué se diferencian y por qué cada uno es importante.

Cómo Parasoft's El análisis estático podría haber ayudado 

Las herramientas de análisis estático de Parasoft están diseñadas para detectar una amplia gama de problemas que podrían provocar fallas en el software. La integración de estas herramientas en el proceso de integración y entrega continua (CI/CD) permite a los desarrolladores escanear automáticamente su código en busca de posibles problemas con cada cambio. Este enfoque proactivo puede identificar:

  1. Vulnerabilidades de seguridad. El análisis estático puede detectar fallas de seguridad comunes, como desbordamientos de búfer y vulnerabilidades de inyección SQL, antes de que sean explotables.
  2. Problemas de calidad del código. Garantizar que el código cumpla con las mejores prácticas y los estándares de codificación es esencial para la mantenibilidad y la reducción de la deuda técnica. Las herramientas de Parasoft ayudan a hacer cumplir estos estándares automáticamente.
  3. Errores lógicos. Los errores lógicos sutiles pueden resultar difíciles de detectar mediante revisiones manuales. Las herramientas automatizadas pueden identificar estos problemas analizando la estructura y el flujo del código.
  4. Cumplimiento de las normas de seguridad. Para industrias como la automovilística y la sanitaria, el cumplimiento de las normas de seguridad es crucial. Las herramientas de análisis estático de Parasoft respaldan el cumplimiento de estándares como MISRA y CERT, lo que garantiza que el código cumpla con los requisitos reglamentarios.

Los beneficios de las pruebas proactivas

La implementación de las soluciones de prueba automatizadas de Parasoft puede reducir significativamente el riesgo de incidentes como el problema de actualización de CrowdStrike Falcon. Los beneficios clave incluyen:

  • Detección temprana de problemas. Detectar los problemas en las primeras etapas del proceso de desarrollo permite a los equipos abordarlos antes de que se conviertan en problemas costosos.
  • Eficiencia incrementada. Las pruebas automatizadas reducen la necesidad de revisiones manuales exhaustivas, lo que libera a los desarrolladores para que puedan centrarse en tareas más críticas.
  • Seguridad mejorada. Con el aumento de las ciberamenazas, garantizar la seguridad del software es más importante que nunca. El análisis estático ayuda a identificar y mitigar posibles vulnerabilidades.
  • Cumplimiento mejorado. Para las empresas de industrias reguladas, las pruebas automatizadas ayudan a garantizar que su software cumpla con todos los estándares de cumplimiento necesarios.

Conclusión

El incidente de actualización de CrowdStrike Falcon resalta la importancia de realizar pruebas exhaustivas en el desarrollo de software. Aprovechando soluciones de pruebas automatizadas como Herramientas de análisis estático de Parasoft puede reducir significativamente el riesgo de introducir problemas en las actualizaciones de software. Esto no sólo protege la reputación de una empresa sino que también garantiza una experiencia más fluida para los usuarios. En el mercado actual, competitivo y preocupado por la seguridad, invertir en soluciones de prueba sólidas no es sólo una mejor práctica: es una necesidad.

Introducción al análisis estático

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

Publicación relacionada + Recursos

Demostración de prueba de software C y C++
Seminarios Web
Regístrate ahora: 18 de diciembre

Demostración con preguntas y respuestas: Pruebas de software C y C++