Ouvrir le menu Fermer le menu

JuliaSoft pour améliorer la sécurité et la confidentialité des systèmes IoT

< Retour à la newsletter
L'Internet des objets regroupe deux domaines différents du développement de logiciels : la programmation embarquée au niveau des appareils et les applicatifs de l'entreprise au niveau du cloud. Cela a des implications pour la sécurité et la confidentialité qui n'existaient pas auparavant. En raison de l'ampleur de l'interconnectivité entre les périphériques, les passerelles et les systèmes back-end, tous les équipements de la chaîne doivent atteindre un niveau de qualité et de sécurité approprié, car un seul maillon faible dans la chaîne peut sérieusement compromettre la sécurité globale du système IoT.  Si des normes et procédures rigoureuses de sécurité sont appliquées avec succès pour les systèmes critiques embarqués en C et C ++, cela n’est pas aussi courant pour les langages de programmation utilisés au niveau de l’entreprise, tels que Java et C#. L'adoption d’un tel niveau de rigueur en matière de conception, de développement et de test doit être normalisée sur l'ensemble de l'écosystème de l'Internet des objets.

Un facteur de différenciation essentiel entre les systèmes embarqués et les systèmes d’entreprise est que dans les systèmes d’entreprise, un défaut ou une faille de sécurité ne causera généralement pas de blessures voire la mort d’individus. Or l’IoT lie les logiciels d'entreprise et les périphériques critiques, propageant ainsi les risques et les conséquences dans les deux mondes.

L’analyse statique dans le développement de logiciels d'entreprise

L'analyse statique est largement adoptée pour déboguer les logiciels d'entreprise. Cependant, cette utilisation est surtout axée sur la recherche de certains bogues et non de tous comme c'est le cas pour les logiciels embarqués critiques.

Néanmoins la prolifération des applications Web et Cloud a changé cet état d’esprit, notamment en raison des vulnérabilités de sécurité comme l’injection de commandes SQL pouvant entrainer des dommages importants aux entreprises. Cela a poussé à utiliser des bonnes pratiques de développement comme l’adoption de techniques telles que le SAST (Static Application Security Testing), dont le but est d’éradiquer les vulnérabilités.

Ceci a amené le développement d’outils d’analyse statique orientés pour les langages Web ou Cloud qui ont prouvé leur efficacité pour détecter les vulnérabilités les plus courantes répertoriées par l’OWASP telles que les injections SQL ou Cross site scripting (XSS) ou plus récemment l’exposition des données (échangées) dans le code.

Basé sur des technologies différentes et focalisés sur des objectifs eux aussi différents, ces analyseurs statiques atteignent une couverture et une précision radicalement différentes les uns des autres. Divers projets tel que l'OWASP Benchmark ont été développés pour comparer l'efficacité de ces outils. Notamment l’équilibre entre la détection de faux positifs (avertissements d’erreurs potentielles mais non réelles) et les faux négatifs (vrais défauts manqués par l'analyseur) détermine l'efficacité de l'outil.

La solution JuliaSoft pour un développement en toute sécurité

Les RSSI sont plus préoccupés que jamais par la sécurité et notamment la protection de données : 67% craignent d’être victimes d’une cyberattaque dans un proche avenir pouvant entrainer des pertes de données confidentielles ou de graves perturbations de service. La solution JuliaSoft permet d’améliorer la sécurité des logiciels IoT de manière suivante :
  • Tainted Data Analysis : analyse du flux des données pour détecter des vulnérabilités complexes. Ce type analyse est l’un des plus important et le ROI direct sur un outil d’analyse statique car il permet de détecter les données vitales à surveiller en termes de vecteur d’attaque (injection de commande notamment)
  • Description détaillée et traçabilité jusqu’au code source : toutes les erreurs rapportées sont décrites de manière détaillée avec le lien jusqu’au code source ayant généré cette erreur, afin  de corriger très rapidement le code et d’accélérer le processus de codage tout en améliorant la sécurité
  • Taux de détection des vulnérabilités extrêmement élevé : le moteur d'analyse de JuliaSoft est unique et basé sur une interprétation abstraite du code. Le taux de « faux négatifs » est extrêmement faible (voir les résultats du bench réalisé par l'OWASP à la figure 2)
  • Vulnérabilités détaillées : Julia fournit des informations et une trace complète de chaque vulnérabilité détectée, permettant aux développeurs d’appréhender plus rapidement et plus efficacement les bonnes pratiques de codage
  • Identification des points vulnérables possibles : associé à l’outil de conformité Julia GPDR cela permet de détecter et signaler les risques d’exposition aux données et de violations RGPD.
  • Prise en charge de la conformité aux exigences RGPD : l'analyse et les rapports effectués par Julia sont utilisés pour soutenir les audits RGPD et le cas échéant, la preuve de la diligence requise
L’analyse statique avancée telle que celle de JuliaSoft est une méthode très efficace pour détecter plusieurs vulnérabilités de sécurité critiques listées dans le Top 10 OWASP et le Top 10 OWASP IoT permettant d’atteindre un taux de rappel et de précision (Recall & Precision) particulièrement élevé par rapport à d’autres approches comme le montre la figure 2 ci-dessous :
Juliasoft-OWASP Benchmark Results Comparison
La figure 2 indique le nombre de faux négatifs (FN), de vrais positifs (TP) et de faux positifs (FP) obtenus par Julia sur le point de repère OWASP. Pour toutes les catégories, Julia n’a obtenu aucun faux négatif prouvant la solidité (pratique) de l’analyse. De plus, le nombre de faux positifs représente un faible pourcentage du nombre d’avertissements produits. Notez que dans ce benchmark, l’organisme attribue une lettre à chaque outil, et il n’est pas autorisé de citer les noms des produits testés.

JuliaSoft & Grammatech pour les systèmes multi-langages et multi plates-formes de l’IoT

Le propre d’un système IoT est de mixer des équipements embarqués (critiques dans certains cas) et des équipements d’entreprise (serveurs Cloud). Il y a donc une mixité de langages entre les parties embarquées souvent en C/C++ et les parties applicatives d’entreprise (cloud) écrites en Java ou C#.

La solution idéale pour analyser les vulnérabilités multi-langages consiste à intégrer deux solutions parmi les meilleures. Julia, l'analyseur statique de JuliaSoft, l’un des plus performants du marché pour Java et .NET et CodeSonar de Grammatech, l’analyseur statique avancé pour les codes source C/C ++ et les binaires. Les résultats et détections de CodeSonar, notamment en termes de flot de données échangées, sont ainsi remontés dans Julia permettant une analyse en continu sur toute la chaine. Cette approche unique permet d’accroitre la couverture d’analyse de manière inégalée.
JuliaSoft - GrammaTech - ISIT

Conclusion

L'extension des services d'entreprise aux périphériques assurant des fonctions critiques pour la sécurité nécessite une rigueur accrue dans le développement de ces systèmes.

JuliaSoft, associé à GrammaTech, offre les outils les plus performants pour Java / .NET et C / C ++, respectivement avec Julia et CodeSonar, afin de combler ce fossé entre le développement de logiciels d'entreprise et de logiciels embarqués. Les éditeurs de logiciels qui développent des applications d’entreprise destinées à l’IoT doivent prendre au sérieux la sécurité. Conjointement à des processus plus rigoureux, un outil d'analyse statique avancé tel que Julia fournit une assurance supplémentaire contre les défauts critiques et les vulnérabilités de sécurité.
Pour en savoir plus, contactez :
Frédéric MARAVAL
Responsable Produits Systèmes embarqués et Qualité logicielle

Pages associées :
PRODUITS 
FORMATIONS