Les bases de données sont des
composants incontournables des serveurs web et des applications en ligne qui
fournissent du contenu dynamique. Des données secrètes ou critiques peuvent
être stockées dans les bases de données : il est donc important de les protéger
efficacement.
Les mécanismes permettant la sécurité
des base de données :
L’authentification
est le processus qui permet de contrôler l’identité de l’utilisateur et qui assure
donc une sécurité. Le principe de cette authentification est de, généralement,
taper son nom d’utilisateur ainsi qu’un mot de passe. Mais cette
authentification peut être implicite et héritée d’une authentification
précédente, ou reconnue automatiquement (@IP du user sur le réseau par
exemple). Cependant, ce choix peut s’avérer être dangereux.
Quelques principales
menaces :
·
Blackdoors (portes
dérobées) : Dans un logiciel, une porte dérobée est une fonctionnalité
inconnue de l'utilisateur légitime, qui donne un accès secret au logiciel. L'introduction
d'une porte dérobée dans un logiciel à l'insu de son utilisateur transforme le
logiciel en cheval de Troie.
·
L’injection SQL : type d'exploitation d'une faille
de sécurité d'une
application interagissant avec une base de données, en injectant une requête
SQL non prévue par le
système et pouvant compromettre sa sécurité. Par exemple, imaginons que le script
PHP exécutant cette requête ne vérifie pas les données entrantes pour garantir
sa sécurité, Un hacker
pourrait alors fournir les informations suivantes :
Utilisateur : Dupont' --
Mot de passe : n'importe lequel
La
requête devient :
SELECT uid WHERE name = 'Dupont' -- '
AND password =
'4e383a1918b432a9bb7702f086c56596e';
Les caractères -- marquent le début
d'un commentaire en SQL. La requête est donc
équivalente à :
SELECT uid WHERE name = 'Dupont';
L'attaquant peut alors se connecter
sous l'utilisateur Dupont avec n'importe quel mot de passe. Il s'agit d'une
injection de SQL réussie, car l'attaquant est parvenu à injecter les caractères
qu'il voulait pour modifier le comportement de la requête.
Leur sécurité n'est pas toujours
maîtrisée. De nos jours, le vol de
numéros de cartes bancaires ou encore de données personnelles sont souvent à la
une des journaux, ce qui démontre bien que le SGBD est au centre de ces
évènements. Protéger une base de données est une tâche simple, mais qui peut
s’avérer complexe si on veut le faire de manière exhaustive et sans impacter la
stabilité. Mais cette sécurisation passe avant tout par la prise en compte des
particularités et des spécificités de la base par les Directions des Systèmes
d’Information de l’entreprise. Plus de 250 failles ont été répertoriées chez
Oracle, 130 sur MySQL et 80 sur Microsoft SQL Server. Parmi celles-ci, il n’est
pas rare de trouver des failles permettant la prise de contrôle à distance du
SGBDR par le réseau. Cependant, Oracle a mis l'accent sur l'amélioration du
login et du compte utilisateur pour mieux protéger les données. Les comptes
utilisateurs disposent désormais de paramètres d'expiration avancés qui
permettent de verrouiller un compte au-delà d'une date déterminée, ou de ne
permettre l'accès aux données qu'à des heures précises de la journée.
Contributeurs :
Maryline Rodet
Marlène Vixaysakd