Ouvrir le menu Fermer le menu

SAST et SCA dans ISO/SAE 21434

trait de séparation
Temps de lecture : 8 minutes
Alors que les voitures deviennent de plus en plus connectées et complexes, la quantité de logiciels nécessaires est stupéfiante. Avec 100 millions de lignes de code standard pour les véhicules actuels et jusqu'à 300 millions pour les véhicules autonomes. Parallèlement à cette connectivité et à cette complexité, il existe une surface de cyberattaque sans cesse croissante. L'objectif de la norme ISO/SAE 21434 est de lutter contre cette menace pour la sécurité et d'améliorer l'ingénierie de la cybersécurité des logiciels automobiles.

Cette norme relativement nouvelle est un descendant de la norme ISO 26262 existante pour la sécurité automobile dans le but de définir des objectifs, des exigences et des lignes directrices pour la sécurisation des systèmes électriques et électroniques dans les automobiles.

Plutôt que d'évaluer chaque clause majeure de la norme ISO/SAE 21434 et d'analyser comment elle s'applique à des outils tels que SAST (Static Application Security Testing) et SCA (Software Composition Analysis), cet article examine ce que dit la norme sur les domaines clés de la sécurité et où ces outils s'appliquent.

Comment les outils SAST comme GrammaTech CodeSonar aident

CODESonar_GRAMMATECH.png
Les outils SAST sont utiles pour augmenter les pratiques de mise en œuvre et de test existantes et sont destinés à fournir une source supplémentaire de découverte des défauts et des vulnérabilités. Considérez les points forts suivants des outils SAST qui s'appliquent à la fois au développement sécurisé et critique pour la sécurité.
  • Appliquer les normes de codage pour la sûreté, la sécurité et le style : L'automatisation de l'analyse du code pendant le développement du code garantit la qualité du flux de développement au quotidien.
  • Réduire l'effort manuel pour prouver la robustesse et le comportement du logiciel : Les outils SAST augmentent les tests logiciels en fournissant une meilleure assurance de la qualité des logiciels.
  • Réduction du nombre de défauts tout au long du développement : Un code qui fonctionne du premier coup est beaucoup moins cher à tester et à intégrer qu'un code bogué. Les bogues supprimés du code avant les tests (ou même la gestion de la configuration des sources) réduisent les coûts et les risques.
  • Trouver des défauts graves qui échappent aux tests :  Malgré la rigueur de test requise pour les logiciels automobiles, les outils SAST ont trouvé des défauts qui ont été manqués. Ce sont les types de défauts les plus inquiétants.
  • Accélération des preuves de certification : La documentation des résultats de la validation de la cybersécurité est essentielle pour prouver la conformité aux normes de certification. Les outils SAST disposent de fonctionnalités de création de rapports riches pour aider à prendre en charge les exigences de certification.

De plus, les outils SAST aident à la détection et à la découverte de vulnérabilités qui font partie du développement du produit conformément à la clause 11, garantissant qu'aucun risque déraisonnable ne subsiste dans le produit. Par exemple, les outils SAST offrent les fonctionnalités suivantes :

  • Shift left détection et prévention des vulnérabilités : les outils SAST tels que GrammaTech CodeSonar sont intégrés à l'environnement de développement du développeur et aux systèmes de génération de projet. La détection précoce des mauvaises pratiques de sécurité et des vulnérabilités possibles est détectée dès que le code est écrit. La prévention de ces types de problèmes de sécurité avant qu'ils n'entrent dans les référentiels de code ou les tests unitaires permet d'économiser les ressources en aval.
  • Évaluation continue du code source : SAST est souvent appliqué initialement à une grande base de code dans le cadre de son intégration initiale, mais là où il brille vraiment, c'est après l'établissement d'une base de référence initiale de qualité, de sûreté et de sécurité du code. Au fur et à mesure que chaque nouveau bloc de code est écrit (fichier ou fonction), il peut être analysé par les outils SAST et les développeurs peuvent traiter les erreurs et les avertissements rapidement et efficacement avant de vérifier le code dans le système de construction.
  • Détection et analyse des données entachées : L'analyse des flux de données des sources (c'est-à-dire des interfaces) vers les puits (où les données sont utilisées dans un programme) est essentielle pour détecter les vulnérabilités potentielles des données entachées. Toute entrée, qu'elle provienne d'une interface utilisateur ou d'une connexion réseau, si elle n'est pas cochée, est une faille de sécurité potentielle. L'injection de code et la fuite de données sont des résultats possibles de ces attaques qui peuvent avoir de graves conséquences.

Réutilisation de logiciels et chaîne d'approvisionnement

La norme ISO/SAE 21434 est très claire sur le fait que "la gestion des risques de cybersécurité est appliquée tout au long de la chaîne d'approvisionnement pour soutenir l'ingénierie de la cybersécurité". Ainsi, des pratiques et des contrôles de sécurité doivent être appliqués aux fournisseurs et aux composants fournis et réutilisés, y compris les logiciels. Parmi les différents niveaux de fournisseurs, un accord d'interface de cybersécurité est utilisé pour soutenir les «activités de cybersécurité distribuées» dans le but d'avoir des directives et des procédures communes entre les fournisseurs et les équipementiers.

On s'attend également à ce que les fournisseurs se conforment également à la norme, "La capacité d'un fournisseur candidat à développer et, le cas échéant, à effectuer des activités de post-développement conformément au présent document doit être évaluée." Et "Pour soutenir l'évaluation par un client de la capacité du fournisseur, un fournisseur doit fournir un enregistrement de la capacité de cybersécurité." Cela comprendrait des preuves de la capacité du fournisseur en matière de cybersécurité, telles que les meilleures pratiques de développement, de post-développement, de gouvernance, de qualité et de sécurité de l'information. Toute transaction dans la chaîne d'approvisionnement doit être conforme à la norme ISO/SAE 21434.

Bien que les nomenclatures logicielles (SBOM) ne soient pas mentionnées ici, elles constituent un élément important des transactions logicielles entre fournisseurs. Ils jouent un rôle important dans la divulgation des vulnérabilités et assurent la diligence raisonnable dans les processus du fournisseur

Comment les SBOM profitent-ils au développement de logiciels automobiles ?

Conformément à la norme ISO/SAE 21434, l'adoption d'un logiciel de gestion des risques de la chaîne d'approvisionnement et l'utilisation de SBOM pour faciliter cela contribuent grandement à améliorer la sécurité.

Comme pour les nomenclatures physiques qui sont utilisées pour gérer la chaîne d'approvisionnement des pièces, les SBOM aident à surveiller et à gérer les composants logiciels pour les vulnérabilités de sécurité et les problèmes de licence. Cela signifie également de meilleures décisions de fournisseur basées sur des informations exploitables dans les SBOM.

L'intégration de l'analyse de la composition logicielle (SCA) de cette manière et l'utilisation régulière des SBOM comme artefact de développement critique présentent de nombreux avantages, notamment :
  • Découvrir : identifiez les composants open source dans le code tiers et les logiciels COTS/tiers. Détectez les vulnérabilités connues (N-day) et inconnues (Zero-day) dans ces composants.
  • Gérer : prenez des décisions de sécurité plus intelligentes en fonction de la visibilité sur le code/logiciel. Respectez les exigences de sécurité, de licence et de conformité aux risques des fournisseurs.
  • Remediate : Protégez-vous contre les menaces de cybersécurité grâce à des informations exploitables sur les vulnérabilités. Rationalisez la correction des vulnérabilités pour atténuer les risques logiciels.

Comment des outils comme CodeSentry aident

CODESentry_GRAMMATECH
Des outils tels que GrammaTech CodeSentry peuvent analyser les logiciels open source, tiers et commerciaux prêts à l'emploi (COTS) et déterminer les composants constitutifs même lorsque les seuls supports disponibles sont des fichiers binaires. Ce faisant, il génère un SBOM et un rapport de vulnérabilité qui détermine le risque que pose le composant SOUP. Les SBOM fournissent également :
  • Identifier et éviter les vulnérabilités dans les composants réutilisés dans vos propres logiciels développés et dans les logiciels achetés par votre organisation.
  • Gestion des risques de la chaîne d'approvisionnement des logiciels pour supprimer et réduire les risques de sécurité inconnus dans les logiciels réutilisés. Les SBOM fournissent des données pour les décisions commerciales sur les achats de logiciels et la réutilisation open source.
  • Qualification de la chaîne d'approvisionnement pour assurer la cohérence et la responsabilité des fournisseurs. Les fournisseurs qui satisfont aux exigences du SBOM lors de l'approvisionnement bénéficient d'un traitement préférentiel.
  • Amélioration de la sécurité et des avantages en aval qui accompagnent la gestion et l'atténuation des risques. Éviter et détecter les risques de sécurité avant qu'ils ne soient intégrés à leur produit rapporte d'énormes dividendes lors du développement et du déploiement de vos produits.
  • Compréhension commune des actifs logiciels fournie avec un SBOM standardisé parmi les développeurs de logiciels, les fournisseurs et les projets open source. Les SBOM deviennent un moyen de communiquer le contenu et les dépendances des logiciels à l'intérieur et à l'extérieur d'une organisation.
Les SBOM sont un artefact important dans la chaîne d'approvisionnement des logiciels et deviendront le moyen courant d'assurer la provenance des logiciels acquis dans les logiciels automobiles.

Développement sécurisé et test de code

ISO/SAE 21434 est clair sur la nécessité d'une approche organisationnelle descendante de la sécurité. De la gestion à la culture d'entreprise, en passant par la gestion de projet, la chaîne d'approvisionnement et les processus continus, la sécurité doit faire partie de chaque étape de la prise de décision. La sécurité est conçue, non ajoutée ou « testée ».

En ce qui concerne les spécificités des pratiques de développement de logiciels et l'utilisation d'outils de sécurité, cela est énoncé dans la clause 10 (Développement de produits) et la clause 11 (Validation de la cybersécurité). L'objectif du développement de produits est de garantir la définition, la conception et la validation des spécifications de sécurité. tout en identifiant les faiblesses et en créant une piste d'audit de la spécification à la vérification et à la validation. Dans la validation de la cybersécurité, l'objectif est de prouver les allégations de sécurité faites pour le produit et de s'assurer qu'il ne reste aucun risque de sécurité déraisonnable.

Intégration et vérification

Dans la clause 10.4.2 de la norme ISO/SAE 21434, l'analyse statique est spécifiquement mentionnée comme méthode recommandée pour vérifier les spécifications de sécurité. Cela appelle également à « la conformité avec les directives de modélisation, de conception et de codage de [RQ-10-05], le cas échéant ». [RQ-10-05] demande que « pour les langages de conception, de modélisation ou de programmation appropriés pour la cybersécurité qui ne sont pas abordés par le langage lui-même, ils doivent être couverts par des directives de conception, de modélisation et de codage, ou par l'environnement de développement ». En d'autres termes, l'utilisation de directives de codage telles que MISRA C ou CERT C et d'autres méthodes d'application de bonnes pratiques de programmation.

Conclusion

Il est clair que les outils SBOM, SCA et SAST ont un rôle important à jouer dans le développement de logiciels automobiles sûrs et sécurisés. Les outils sont une partie importante de l'assurance de la sécurité lors du développement et des tests du code utilisé dans les systèmes automobiles. Pour garantir la sécurité et l'intégrité de la chaîne d'approvisionnement logicielle, les outils SCA jouent un rôle important dans la génération et la vérification des SBOM pour les logiciels open source et tiers.

De plus, les outils SAST aident l'équipe de développement de logiciels à suivre les directives et les normes pour garantir la qualité, la sûreté et la sécurité des logiciels. Utilisés conjointement avec des pipelines d'intégration et de livraison continues, les outils SAST automatisent la détection et la prévention des vulnérabilités dans certains cas avant qu'elles n'entrent dans le référentiel de code.

Les outils SCA et SAST jouent un rôle de plus en plus important dans la démonstration de la diligence raisonnable des fabricants, un élément important de la conformité aux normes comme ISO/IEC 21434.
1