Standard Cybersécurité UL 2900
Pourquoi utiliser CodeSonar pour se conformer au Standard cybersécurité UL2900 ?
L’UL 2900 est un standard de Cybersécurité pour les logiciels ou plus exactement un Cybersecurity Assurance Program (CAP) publié par le Underwriter’s Laboratory (UL). Société indépendante américaine, très active dans la certification et la conformité de nombreux appareils électriques en termes de sécurité (Safety), l’UL intervient également dans le domaine de la cybersécurité en tant que participant à l’élaboration des normes Cyber mais également en tant qu’organisme de certification. Ses standards deviennent des références sur le marché et la FDA (Food & Drug Administration, Agence américain des produits alimentaires et médicamenteux) a reconnu et adopté le standard UL 2900 comme conforme à ses exigences de Cybersécurité.
Un des points notables de ce standard UL 2900 est qu’il spécifie les exigences de cybersécurité relatives au produit, mais également l’ensemble des tests auxquels il doit être soumis pour obtenir la conformité, et notamment le rôle de l’Analyse Statique.
Un des points notables de ce standard UL 2900 est qu’il spécifie les exigences de cybersécurité relatives au produit, mais également l’ensemble des tests auxquels il doit être soumis pour obtenir la conformité, et notamment le rôle de l’Analyse Statique.
Rôle de l’Analyse Statique dans l’UL 2900 :
La cybersécurité peut se résumer à la gestion des risques. Le déploiement d’un système connecté dans un écosystème plus ou moins ouvert doit tenir compte de toutes les menaces potentielles, les comptabiliser et les planifier. Cela implique que la cybersécurité doit être intégrée en début du cycle de développement et suivie tout au long du cycle. Mais le fait de déplacer la sécurité au plus tôt implique d’amener de l’automatisation dans les tests dont l’Analyse Statique est une pierre angulaire.
La norme UL 2900 est claire sur les exigences concernant l’analyse de code dans le cadre de la documentation du produit soumis à certification, comme par exemple dans la section 4.1 (Product Documentation), où il est spécifié :
La norme UL 2900 est claire sur les exigences concernant l’analyse de code dans le cadre de la documentation du produit soumis à certification, comme par exemple dans la section 4.1 (Product Documentation), où il est spécifié :
- Dans le cadre de recherche des failles logicielles, une analyse devra être effectuée, cela implique d’utiliser des outils d’analyse des codes source
- Le code binaire et/ou pseudo-code et les identifiants associés doivent être maitrisés
18 - Analyse Statique de code source
o 18.1 : tout code source fourni par le vendeur conformément au 4.1(d) doit être évalué par une analyse statique de code
o 18.2 : le produit devra être évalué pour au moins toutes les failles logicielles énumérées dans les versions les plus récentes des sources mentionnées à l’annexe A, selon le cas, applicables au produit
o 18.1 : tout code source fourni par le vendeur conformément au 4.1(d) doit être évalué par une analyse statique de code
o 18.2 : le produit devra être évalué pour au moins toutes les failles logicielles énumérées dans les versions les plus récentes des sources mentionnées à l’annexe A, selon le cas, applicables au produit
19 - Analyse Statique des codes binaires
o 19.1 : tous les codes binaires ou Byte-code fournis par le vendeur conformément au 4.1(e) doivent être évalués au moyen d’une analyse statique
o 19.2 : le produit devra être évalué pour au moins toutes les failles logicielles énumérées dans les versions les plus récentes des sources mentionnées à l’annexe A, selon le cas, applicables au produit
o 19.1 : tous les codes binaires ou Byte-code fournis par le vendeur conformément au 4.1(e) doivent être évalués au moyen d’une analyse statique
o 19.2 : le produit devra être évalué pour au moins toutes les failles logicielles énumérées dans les versions les plus récentes des sources mentionnées à l’annexe A, selon le cas, applicables au produit
Il est donc évident que la norme UL 2900 impose une analyse statique à la fois sur les codes sources mais également sur les codes binaires.
Bénéfices de l’Analyse Statique :
Les outils d’analyse Statique de code constituent un élément clé pour la conception d’équipements plus sûrs. La détection et la correction des défauts logiciels comptent parmi les coûts les plus importants dans le développement d’un produit, mais plus ceci intervient tôt dans le cycle de développement, plus la réduction des coûts est importante et plus le risque de ne pas passer la conformité est faible.
L’analyse Statique est une approche qui répond pleinement à ces objectifs en permettant de :
L’analyse Statique est une approche qui répond pleinement à ces objectifs en permettant de :
- Trouver des erreurs/défauts avant les campagnes de tests (Tests unitaires entre autres) : elle peut être utilisée dès le début du projet, intégrée aux environnements de développement
- Trouver des défauts non détectables durant les campagnes de tests : les Tests unitaires, même avec une couverture de code importante, ne testent que les cas qu’on a définis. L’analyse Statique explore le maximum de chemins possibles
- Détecter et analyser les « Tainted Data » : l’analyse du flot des données de leurs sources (via les interfaces notamment) jusqu’à leur utilisation est cruciale car ce sont des vecteurs majeurs d’attaques
- Vérifier la conformité des règles de codage Safety & Cyber : l’Analyse Statique permet de contrôler la conformité du code source vis à vis des standards de règles de codage de sécurité (comme le MISRA-C, CWE, CERT, …)
- D’analyser les codes Tierces-parties (binaires) : les applications modernes se basent souvent sur des librairies commerciales ou Open Source, mais dès lors quelle est la qualité de ces codes tiers ? Un outil d’Analyse Statique tel que CodeSonar® de GrammaTech® permet non seulement de scanner les codes sources, mais également les librairies binaires pour détecter des failles qui seraient impossible de détecter par d’autres types de tests
CodeSonar® & la certification UL 2900 :
La norme UL 2900 est claire sur l’utilisation de l’Analyse Statique dans le process de certification à la fois sur les codes sources mais aussi en exigeant le même degré d’analyse sur les codes binaires.
En permettant à la fois l’Analyse Statique avancée sur les codes sources et les codes binaires, CodeSonar® répond pleinement aux exigences de ce standard. De plus, s’intégrant au plus tôt dans le cycle de développement, amenant une automatisation des analyses et une génération automatique des documentations (rapports) et en prenant à charge les tests et la conformité des standards de codage, CodeSonar® amène des gains directs en termes de productivité, d’amélioration de la qualité des logiciels et de la sécurité.
En permettant à la fois l’Analyse Statique avancée sur les codes sources et les codes binaires, CodeSonar® répond pleinement aux exigences de ce standard. De plus, s’intégrant au plus tôt dans le cycle de développement, amenant une automatisation des analyses et une génération automatique des documentations (rapports) et en prenant à charge les tests et la conformité des standards de codage, CodeSonar® amène des gains directs en termes de productivité, d’amélioration de la qualité des logiciels et de la sécurité.