Le fournisseur de tests de sécurité des applications Veracode a découvert qu'après une analyse initiale, sept applications sur dix contiennent une faille de sécurité dans une bibliothèque open source.
Les nouvelles recherches de la société montrent comment l'utilisation de l'open source peut introduire des failles, augmenter les risques et augmenter la dette de sécurité. Pour compiler son nouveau rapport sur l'état de la sécurité des logiciels (SOSS): Open Source Edition, Veracode a analysé les bibliothèques open source des composants dans sa base de données de 85 000 applications, qui représentent 351 000 bibliothèques externes uniques.
Presque toutes les applications modernes et même celles qui sont vendues dans le commerce sont construites à l'aide de certains composants open source. Cependant, une faille unique dans une bibliothèque se répercutera en cascade sur toutes les applications qui exploitent ce code. Dans un communiqué de presse, directeur de la recherche chez Veracode, Chris Eng a expliqué comment l'utilisation de bibliothèques open source peut étendre la surface d'attaque d'une application, en disant:
«Les logiciels open source présentent une variété surprenante de défauts. La surface d'attaque d'une application n'est pas limitée à son propre code et au code des bibliothèques explicitement incluses, car ces bibliothèques ont leurs propres dépendances. En réalité, les développeurs introduisent beaucoup plus de code, mais s'ils connaissent et appliquent les correctifs de manière appropriée, ils peuvent réduire l'exposition aux risques. »
Sommaire
Bibliothèques open source
Selon Veracode, les bibliothèques communément incluses sont présentes dans plus de 75% des applications pour chaque langage de programmation. Les recherches de la société ont également révélé que les bibliothèques défectueuses se retrouvent indirectement dans le code, car 47% d'entre elles trouvées dans les applications sont transitoires et ne sont pas attirées directement par les développeurs mais par les bibliothèques en amont.
Heureusement cependant, les failles introduites par la bibliothèque dans la plupart des applications peuvent être corrigées avec seulement une mise à jour de version mineure car des mises à niveau de bibliothèque majeures ne sont généralement pas requises. Cependant, les développeurs ne peuvent pas compter sur les CVE (Vulnérabilités et Expositions Communes) pour comprendre les défauts des bibliothèques car toutes les bibliothèques n'en ont pas. Par exemple, plus de 61% des bibliothèques défectueuses en JavaScript n'ont pas de CVE correspondantes.
Le rapport a également révélé que certains écosystèmes de langage de programmation ont tendance à attirer beaucoup plus de dépendances transitives que d'autres. Dans plus de 80% des applications JavaScript, Ruby et PHP, la majorité des bibliothèques sont des dépendances transitives.
La sélection du langage de programmation joue également un rôle à la fois en termes de taille de l'écosystème et de prévalence des failles dans ces écosystèmes. Par exemple, l'inclusion d'une bibliothèque PHP donnée a plus de 50% de chances d'apporter une faille de sécurité.
Parmi les dix principaux défauts de l'OWASP, les faiblesses concernant le contrôle d'accès sont les plus courantes et représentent plus de 25% de tous les défauts. Le Cross-Site Scripting (XSS) est la catégorie de vulnérabilité la plus courante dans les bibliothèques open source (30%), suivie d'une désérialisation non sécurisée (23,5%) et d'un contrôle d'accès cassé (20,3%).