Développement logiciel : les 25 faiblesses que les pirates adorent

Cloud

Le classement 2011 CWE/SANS répertoriant les 25 erreurs les plus flagrantes en termes de développement logiciel est paru. Les pirates s’en servent pour contourner la sécurité IT.

Un laboratoire travaillant pour la sécurité intérieure américaine a publié une liste de 25 erreurs logicielles provoquant des vulnérabilités critiques (2011 CWE/SANS Top 25 Most Dangerous Software Errors).

La plupart d’entre elles pourraient pourtant être corrigées à faible coût…

MITRE a donc réactualisé sa liste annuelle des 25 erreurs logicielles les plus exploitées par les hackers pour compromettre les systèmes informatiques (à télécharger au format PDF).

Le MITRE est une « organisation à but non lucratif » regroupant 6 000 chercheurs et travaillant essentiellement pour le gouvernement américain.

Cette liste a été élaborée en collaboration avec le SANS Institute, un vaste centre orienté sécurité IT (études, formations, certifications…).

Le but est de guider les éditeurs de logiciels vers de meilleures pratiques, et les aider à corriger les failles qu’ils ont pu laisser par erreur dans leurs codes.

En tête du classement est « la mauvaise neutralisation des commandes SQL spéciales« , qui permet la fameuse attaque par « Injection SQL ».

La faille est très répandue, connue des hackers et facile à utiliser. Elle permet de récupérer – et parfois modifier – les informations d’une base de données.

C’est la faille qui est à la source, rien que cette année, des problèmes de Sony Picture, PBS (le site a été transformé pour afficher une fausse actualité), Oracle (pourtant éditeur de MySQL) et du cabinet de sécurité HBGary Federal.

Elle serait pourtant facile à corriger pour un coût faible…

Autre faille aisée à éviter et pourtant très répandue (et utilisée) : les « autorisations manquantes », qui pointe à la sixième place du classement.

Les pirates exploitent le fait que certains sites autorisent un utilisateur basique à accéder à des niveaux de sécurité avancés.

C’est la faille utilisée contre Citigroup en mai, qui a permis aux pirates de subtiliser les informations bancaires de 360 000 clients et de voler 2,7 millions de dollars à 3 400 d’entre eux.

Enfin, le rapport pointe en huitième position une erreur souvent commise par les entreprises, qui négligent de prévoir un chiffrement de leurs données sensibles.

Si un pirate arrive à prendre le contrôle d’un seul des nodes du réseau où transitent ces données, ils peuvent les « sniffer » et les récupérer, et elles sont directement exploitables.

MITRE affirme que c’est une des failles qui a permis à LulzSec de récupérer et publier autant de données sensibles pendant sa courte existence.

Les 25 erreurs de développement logiciel à éluder

1 Improper Neutralization of Special Elements used in an SQL Command (‘SQL Injection’)
2 Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’)
3 Buffer Copy without Checking Size of Input (‘Classic Buffer Overflow’)
4 Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
5 Missing Authentication for Critical Function
6 Missing Authorization
7 Use of Hard-coded Credentials
8 Missing Encryption of Sensitive Data
9 Unrestricted Upload of File with Dangerous Type
10 Reliance on Untrusted Inputs in a Security Decision
11 Execution with Unnecessary Privileges
12 Cross-Site Request Forgery (CSRF)
13 Improper Limitation of a Pathname to a Restricted Directory (‘Path Traversal’)
14 Download of Code Without Integrity Check
15 Incorrect Authorization
16 Inclusion of Functionality from Untrusted Control Sphere
17 Incorrect Permission Assignment for Critical Resource
18 Use of Potentially Dangerous Function
19 Use of a Broken or Risky Cryptographic Algorithm
20 Incorrect Calculation of Buffer Size
21 Improper Restriction of Excessive Authentication Attempts
22 URL Redirection to Untrusted Site (‘Open Redirect’)
23 Uncontrolled Format String
24 Integer Overflow or Wraparound
25 Use of a One-Way Hash without a Salt

Source : CWE/SANS, classement juin 2011