
Un examen de WhiteSource a montré lequel des langages de programmation a les plus grands trous de sécurité. Le vainqueur de l'anti-rating est C. Mais ce n'est que le début de l'histoire.
La technologie dans son ensemble est bourrée de bogues de sécurité. À un niveau bas, ce sont des erreurs matérielles. Il en était de même avec la vulnérabilité d'Intel et les erreurs Spectre. Les trous dans la sécurité des langages de programmation sont légèrement supérieurs. Et il y en a beaucoup!
Récemment, OpenSource WhiteSource, une société de sécurité, a effectué des recherches de vulnérabilité dans sept des langages de programmation les plus courants au cours des dix dernières années. L'entreprise a utilisé sa base de données de sécurité linguistique pour détecter les erreurs. Il contient des vulnérabilités open source provenant de plusieurs sources, telles que la base de données nationale de vulnérabilité (NVD), des instructions de sécurité, des trackers GitHub`a et des projets open source.
La société a identifié les langages suivants: C, Java, JavaScript, Python, Ruby, PHP et C ++. Et ce n'est pas surprenant. Comme quelle langue a le plus d'erreurs de sécurité. Par une large marge, c'est X. Plus de 50% des vulnérabilités détectées s'y trouvaient.
Comme Kees «Case» Cook, ingénieur en sécurité du noyau Linux Linux chez Google, a récemment noté: «C est un assembleur amélioré. Presque un code machine. " En outre, «C porte des bagages gênants, un comportement vague et d'autres faiblesses qui conduisent à des failles de sécurité et à des vulnérabilités de l'infrastructure».
Cependant, WhiteSource affirme que «vous ne pouvez pas dire que C est moins sécurisé que les autres langages. Un grand nombre de vulnérabilités dans le code C open source peut être expliqué par un certain nombre de facteurs. Pour commencer, C a été utilisé plus longtemps que les autres langages que nous avons explorés. Il contient la plus grande quantité de code écrit. C'est également l'un des langages derrière des infrastructures aussi importantes que OpenSSL et le noyau Linux. Cette combinaison de volume et de position centrale explique le grand nombre de vulnérabilités open source connues. »
WhiteSource a saisi le point. Mais, malgré des décennies de programmation et de gestion du C, il existe vraiment des moyens dans ce langage de commettre trop facilement de terribles erreurs de sécurité. Par exemple, il existe un grand nombre d'exemples de comportement non défini en C, ce qui ouvre des opportunités pour toutes sortes de problèmes.
Dans le même temps, C ++ est devenu célèbre pour les vulnérabilités du plus haut degré de danger au cours des cinq dernières années. Les erreurs de tampon qui ont affecté C depuis longtemps sont souvent détectées en C ++.
Les chiffres ne reflètent pas l'ensemble du tableau, si nous parlons de la langue la plus ou la moins protégée.
(Image WhiteSource)Cela étant dit, JavaScript est probablement le langage le plus populaire. Et le seul qui a montré "une augmentation continue du nombre de vulnérabilités au cours des 10 dernières années".
WhiteSource souligne qu'avant de narguer JavaScript, veuillez noter que ces résultats sont trompeurs. La plupart de l'énumération des faiblesses courantes dans JavaScript consiste en des sorties du répertoire désigné et des trous dans la protection cryptographique des packages JavaScript qui sont à peine utilisés et pris en charge.
Pourquoi alors ces problèmes linguistiques et d'autres sont-ils en vue? De nouveaux programmes automatisés, tels que les outils d'analyse de code source, découvrent des vulnérabilités qui autrement seraient ignorées.
Le seul langage qui s'est bien montré en matière de failles de sécurité est (roulement de tambour!) - Python. Oui, bon vieux Python souvent ridiculisé.
Presque toutes les langues contribuent à la liste générale des vulnérabilités. Deux erreurs de la liste étaient en tête et ont été signalées dans 70% des cas: Crossite Scripting (XSS), également connu sous le nom de CWE-79 et validation d'entrée inadéquate (CWE-20).
Autres erreurs courantes: fuite / divulgation (CWE-200), répertoire hors limites (CWE-22) et CWE-264 - Autorisations, privilèges et contrôles d'accès. Ce dernier a récemment été supplanté par son parent plus spécifique et plus proche - Improper Access Control (CWE-284).
Mais C est-il vraiment le pire et Python le meilleur? WhiteSource estime que c'est une conclusion trop simple: "Bien que le jeu" Mon langage de programmation soit plus sûr que le vôtre "est certainement une façon amusante de passer du temps ... la réponse ne semble pas vous aider à créer des logiciels plus innovants ou plus sécurisés."
Inversement, vous devriez passer plus de temps «à rester à la pointe des vulnérabilités open source, à comprendre les forces et les faiblesses du langage de programmation que vous et votre équipe utilisez».
En fin de compte, la sécurité ne se résume pas aux langages de programmation, mais à la façon dont vous les utilisez.
→
ACTION: 40% de réduction sur IaaS pour les développeurs.Steven J. Vaughan-Nichols pour Linux et Open Source
Article original