Simplifiez les flux de travail de conformité avec le nouveau test C/C++ 2024.2 et l'automatisation pilotée par l'IA | Inscrivez-vous

Comment l'analyse statique de Parasoft aurait pu empêcher la catastrophe de CrowdStrike

Portrait de Ricardo Camacho, directeur de la conformité de la sûreté et de la sécurité
24 juillet 2024
3 min lire

Les récentes pannes de système mondiales liées à la mise à jour du logiciel CrowdStrike Falcon montrent l'importance de tests complets avant le déploiement, y compris des pratiques éprouvées telles que l'analyse statique. Découvrez comment l'utilisation des outils d'analyse de code statique de Parasoft peut prévenir efficacement des problèmes similaires à l'avenir.

Dans le monde en évolution rapide de la livraison automatisée de logiciels (CI/CD), il est crucial de préserver l’intégrité et la fiabilité des mises à jour logicielles. Le récent incident survenu chez CrowdStrike, impliquant une mise à jour critique du capteur Windows, souligne l'impératif de tests complets avant le déploiement. Cet événement, qui a entraîné des problèmes importants après la mise à jour, sert de mise en garde pour les développeurs de logiciels : les tests automatisés doivent évaluer rigoureusement non seulement la cybersécurité, mais également la fiabilité et la sécurité. Le protocole de CrowdStrike commence par une suite de tests automatisés. CrowdStrike déclare :

« Le processus de publication des capteurs commence par des tests automatisés, avant et après la fusion dans notre base de code. Cela comprend les tests unitaires, les tests d’intégration, les tests de performances et les tests de résistance.

Il est intéressant de noter qu’il n’y a aucune mention de l’analyse de code statique dans leur programme de tests. Étant donné que les secteurs critiques pour la sécurité défendent depuis longtemps l’analyse statique pour anticiper les problèmes, cette omission est frappante. Les outils d'analyse statique comme ceux de Parasoft se sont révélés très efficaces pour améliorer la robustesse des logiciels.

Détection précoce avec analyse statique dans les tests Shift-Left

Les déploiements de logiciels automatisés reposent sur des tests logiciels complets effectués au début du cycle, également appelés test de décalage gauche—pour détecter les défauts et vulnérabilités potentiels avant qu’ils n’atteignent la production. Il est crucial, lors des premiers tests, de donner la priorité à la sécurité et à la fiabilité du code, ainsi qu'à la sécurité, afin d'éviter les incidents qui érodent la confiance et provoquent des perturbations importantes.

Analyse statique joue un rôle crucial dans les tests de décalage à gauche, en identifiant et en atténuant les problèmes dès le début du processus de développement. Contrairement à test dynamique, qui nécessite l'exécution du code, l'analyse statique examine le code source sans exécuter le programme. Cela permet une détection précoce des erreurs potentielles, des vulnérabilités de sécurité et des violations des normes de codage dès le début du cycle de vie du logiciel.

Dans le cas du problème de mise à jour CrowdStrike Falcon, le respect des normes de codage telles que MISRA, CERT et CWE grâce à des outils d'analyse statique aurait joué un rôle déterminant dans la détection et l'atténuation de ce défaut logique.

  • MISRA fournit des lignes directrices pour des logiciels sûrs et fiables, en particulier pour les systèmes embarqués.
  • CERT se concentre sur les pratiques de codage sécurisées pour prévenir les vulnérabilités de sécurité.
  • CWE propose une liste complète des faiblesses logicielles.

Ces normes contiennent toutes des directives de codage pour identifier l'utilisation de pointeurs NULL, la cause première de cet échec. Offres Parasoft couverture approfondie de ces normes et le déploiement d'un ensemble robuste de vérificateurs axés sur la sécurité, la sûreté et la fiabilité aurait pu détecter ces types de bogues plus tôt.

Voici quelques directives de codage d’analyse statique issues de trois normes différentes qui pourraient être utilisées pour détecter ces types de défauts logiciels.

MISRA C++ 2023Directives de codage
MISRA C++2023:7.11.1nullptr doit être la seule forme de la constante de pointeur nul
MISRA C++2023:8.7.1L'arithmétique du pointeur ne doit pas former un pointeur invalide
MISRA C++2023:11.6.2La valeur d'un objet ne doit pas être lue avant d'avoir été définie
CWEDirectives de codage
CWE : 395Utilisation de NULLPointer Exception Catch pour détecter le déréférencement de pointeur NULL
CWE : 476Déréférence de pointeur NULL
CWE : 626Erreur d'interaction d'octet NULL
CWE : 690Valeur de retour non cochée pour le déréférencement du pointeur NULL
CERT SEIDirectives de codage
CERT :
EXP34-C
Ne pas déréférencer les pointeurs nuls
CERT :
ARR30-C
Ne formez pas et n'utilisez pas de pointeurs hors limites ou d'indices de tableau
CERT :
ARR30-C
Ne pas accéder à la mémoire libérée

En intégrant ces normes dans leur processus de développement, CrowdStrike aurait pu identifier les erreurs de codage, les failles de sécurité et les problèmes de conformité avant qu'ils n'atteignent la production. Cela aurait permis de garantir que la mise à jour était robuste, sécurisée et conforme aux meilleures pratiques, évitant ainsi les perturbations et les risques de sécurité potentiels rencontrés par environ 8.5 milliards d'appareils.

Analyse statique vs analyse dynamique.

Découvrez en quoi ils diffèrent et pourquoi chacun est important.

Comment Parasoft's L'analyse statique aurait pu aider 

Les outils d'analyse statique de Parasoft sont conçus pour détecter un large éventail de problèmes pouvant entraîner des pannes logicielles. L'intégration de ces outils dans le pipeline d'intégration et de livraison continues (CI/CD) permet aux développeurs d'analyser automatiquement leur code pour détecter les problèmes potentiels à chaque modification. Cette approche proactive permet d’identifier :

  1. Failles de sécurité. L'analyse statique peut détecter les failles de sécurité courantes, telles que les dépassements de tampon et les vulnérabilités d'injection SQL, avant qu'elles ne deviennent exploitables.
  2. Problèmes de qualité du code. S'assurer que le code adhère aux meilleures pratiques et aux normes de codage est essentiel pour la maintenabilité et la réduction de la dette technique. Les outils de Parasoft aident à appliquer automatiquement ces normes.
  3. Erreurs logiques. Des erreurs logiques subtiles peuvent être difficiles à détecter via des examens manuels. Les outils automatisés peuvent identifier ces problèmes en analysant la structure et le flux du code.
  4. Respect des normes de sécurité. Pour des secteurs comme l’automobile et la santé, le respect des normes de sécurité est crucial. Les outils d'analyse statique de Parasoft prennent en charge la conformité aux normes telles que MISRA et CERT, garantissant que le code répond aux exigences réglementaires.

Les avantages des tests proactifs

La mise en œuvre des solutions de tests automatisés de Parasoft peut réduire considérablement le risque d'incidents tels que le problème de mise à jour CrowdStrike Falcon. Les principaux avantages comprennent :

  • Détection précoce des problèmes. Détecter les problèmes dès le début du processus de développement permet aux équipes de les résoudre avant qu'ils ne dégénèrent en problèmes coûteux.
  • Efficacité accrue. Les tests automatisés réduisent le besoin de révisions manuelles approfondies, permettant ainsi aux développeurs de se concentrer sur des tâches plus critiques.
  • Sécurité renforcée. Avec la montée des cybermenaces, assurer la sécurité des logiciels est plus important que jamais. L'analyse statique permet d'identifier et d'atténuer les vulnérabilités potentielles.
  • Conformité améliorée. Pour les entreprises des secteurs réglementés, les tests automatisés permettent de garantir que leurs logiciels répondent à toutes les normes de conformité nécessaires.

Conclusion

L'incident de mise à jour CrowdStrike Falcon souligne l'importance de tests approfondis dans le développement de logiciels. Tirer parti de solutions de tests automatisés telles que Les outils d'analyse statique de Parasoft peut réduire considérablement le risque d’introduire des problèmes dans les mises à jour logicielles. Cela protège non seulement la réputation d’une entreprise, mais garantit également une expérience plus fluide aux utilisateurs. Sur le marché actuel, compétitif et soucieux de la sécurité, investir dans des solutions de test robustes n'est pas seulement une bonne pratique, c'est une nécessité.

Premiers pas avec l'analyse statique

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.

Article connexe + ressources

Texte de démonstration de test d'application Java à droite avec le logo Jtest à droite
Webinaire
Inscrivez-vous maintenant : 22 janvier

Démo avec questions-réponses : test d'application Java

Texte de démonstration des tests continus C & C++ à gauche avec le logo Parasoft C/C++test CT à droite
Webinaire
Inscrivez-vous maintenant : 15 janvier

Démo avec questions-réponses : tests continus C & C++

Démo de test de logiciels C et C++
Webinaire
Inscrivez-vous maintenant : 18 décembre

Démo avec questions-réponses : test de logiciels C et C++