Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>

Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>
Saltar a la sección
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.
Saltar a la sección
Saltar a la sección
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.
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, CERT y CWE a través de herramientas de análisis estático habría sido fundamental para detectar y mitigar este defecto lógico.
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++ 2023 | Directrices de codificación |
---|---|
MISRA C++2023:7.11.1 | nullptr será la única forma de la constante de puntero nulo |
MISRA C++2023:8.7.1 | La aritmética de punteros no formará un puntero inválido. |
MISRA C++2023:11.6.2 | El valor de un objeto no se leerá antes de que se haya establecido |
CWE | Directrices de codificación |
---|---|
CWE:395 | Uso de captura de excepción de puntero NULL para detectar desreferencia de puntero NULL |
CWE:476 | Desreferencia del puntero NULO |
CWE:626 | Error de interacción de bytes nulos |
CWE:690 | Valor de retorno no marcado para desreferencia de puntero NULL |
CERTIFICADO SEI | Directrices 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.
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:
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:
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.
Pruebas Java más inteligentes con IA para mayor velocidad, cobertura y cumplimiento