Failles de sécurité dans le code
Les logiciels de système d'exploitation, les logiciels d'application ou les micrologiciels d'un système embarqué sont des composants élémentaires de toute infrastructure numérique. Cependant, l’accélération croissante et la pression des délais dans les projets de numérisation conduisent souvent à négliger les aspects impératifs de la sécurité de l’information. Les exigences de développement d'un logiciel sont généralement centrées sur les fonctions et mettent l'accent sur les aspects constructifs, de sorte que la vision destructrice des failles de sécurité potentielles est pour la plupart diamétralement opposée aux objectifs de développement réels : de nombreux programmeurs n'ont tout simplement pas non plus une vision structurée et précise de la cybersécurité.
Dans ces conditions, les équipes de développement ont du mal à réviser en permanence et à sécuriser de manière cohérente le codage de leurs logiciels, comme en témoignent les nombreuses vulnérabilités que l'association à but non lucratif MITRE Corporation publie chaque année dans son CVE (Vulnérabilités et expositions courantes). Les correctifs de sécurité réguliers, même chez les fabricants de logiciels les plus connus, sont un indicateur de la tâche de Sisyphe consistant à corriger les bogues liés à la sécurité, sans parler de les identifier avant même leur lancement sur le marché.
Code open source – un cas particulier
Lors du codage de logiciels auto-développés, les programmeurs aiment recourir à des bibliothèques et des modules open source. Les avantages pratiques sont évidents : si vous n'avez pas à réinventer la roue encore et encore, vous bénéficiez de cette avancée technologique, d'un développement rapide, de coûts de développement réduits, d'une plus grande transparence grâce au code open source et d'une plus grande interopérabilité grâce aux normes et interfaces ouvertes. .
On dit aussi souvent que le code open source offre un haut degré de sécurité car le code a été validé par de nombreux utilisateurs et l'intelligence en essaim de la communauté open source permet une correction rapide et efficace des bugs.
En pratique, cette confiance doit désormais être évaluée de manière différenciée et critique. L'exemple le plus grave est la vulnérabilité de sécurité Zero Day Log4Shell dans la bibliothèque de journalisation largement utilisée Log4J pour les applications Java, découverte en novembre 2021. Vous avez peut-être entendu parler du niveau d'alerte rouge émis par l'Office fédéral allemand pour la sécurité de l'information (BSI). ) pour Log4Shell. La bibliothèque Log4J, distribuée en tant que quasi-standard fiable via la Fondation Apache, s'est imposée dans de nombreux systèmes depuis 2013, y compris dans des services Web bien connus tels qu'Amazon AWS.
La complexité de ces bibliothèques bien développées et également entretenues fournit implicitement de puissantes fonctionnalités dont un développeur importateur ignore souvent dans son propre nouveau développement combiné, mais qui peuvent être exploitées par des attaquants.
Un autre facteur d'insécurité des composants open source sont les attaques dites de la chaîne d'approvisionnement, c'est-à-dire les vulnérabilités intégrées intentionnelles par des acteurs malveillants qui se font passer pour des membres de la communauté open source et aident au développement du code. Une telle vulnérabilité constitue un moyen extrêmement efficace pour les pirates informatiques d’attaquer un grand nombre d’organisations d’utilisateurs en aval. Il n’est donc pas étonnant que ce vecteur d’attaque se développe rapidement : Etude Sonatype a diagnostiqué une augmentation de 650 % en comparant 2020 et 2021.