Qu'est-ce qu'une base de données, et pourquoi ce mot revient à chaque brèche
Lire la version audio
Presque tous les incidents d'actualité déjà couverts sur ce site, de DentaQuest à Klue, mentionnent une base de données compromise, sans jamais s'arrêter sur ce que ce mot désigne réellement.
Un tableau, mais qu'on peut interroger
Une base de données ressemble, dans son principe le plus simple, à un tableau : des lignes, des colonnes, des informations organisées de façon structurée. Ce qui la distingue d'un simple fichier ou d'une feuille de calcul, c'est la capacité à l'interroger directement, plutôt que de devoir la parcourir intégralement à chaque fois pour trouver une information précise.
Le langage SQL, la façon de poser une question
La grande majorité des bases de données structurées se pilotent avec un langage standardisé, SQL, qui permet de formuler une demande précise ("donne-moi toutes les lignes où telle condition est vraie") sans avoir besoin d'écrire un programme complexe pour l'obtenir. Ce langage reste, à quelques variations près, le même d'un système de base de données à un autre, ce qui en fait l'une des compétences les plus transférables du monde de la programmation.
Pourquoi une recherche est quasi instantanée même sur des millions de lignes
Une base de données bien conçue maintient une structure annexe appelée index, un peu comme l'index d'un livre qui indique directement à quelle page se trouve un mot précis, sans avoir besoin de lire l'ouvrage entier pour le retrouver. Sans cet index, chercher une information précise demanderait de parcourir chaque ligne une par une, une opération beaucoup trop lente dès que le volume de données dépasse quelques milliers de lignes. C'est cette structure d'index qui permet à une recherche de rester quasi instantanée même sur des millions, voire des milliards de lignes.
Bases relationnelles et bases NoSQL, deux approches différentes
Les bases de données relationnelles, les plus anciennes et les plus répandues, organisent les données en tables reliées entre elles par des règles précises, avec une structure fixée à l'avance. Les bases dites NoSQL, plus récentes, assouplissent cette structure pour gagner en flexibilité ou en capacité à gérer des volumes massifs répartis sur de nombreuses machines, au prix de certaines garanties que les bases relationnelles offrent plus naturellement. Le choix entre les deux dépend du problème à résoudre, aucune des deux approches n'étant strictement meilleure que l'autre dans l'absolu.
Pourquoi une base de données mal protégée est une cible si intéressante
Une base de données concentre, en un seul endroit, l'ensemble des informations qu'une organisation détient sur ses utilisateurs ou ses clients. C'est précisément cette concentration qui en fait une cible si intéressante pour un attaquant : compromettre une seule base de données bien remplie peut rapporter, d'un coup, des millions d'enregistrements, là où attaquer chaque personne individuellement demanderait un effort proportionnellement immense. C'est ce mécanisme de concentration, plus que n'importe quelle faille technique spécifique, qui explique l'ampleur de brèches comme celle de DentaQuest ou de Klue déjà couvertes sur ce site.
Ce que ça change, concrètement
C'est cette même logique qui justifie de chiffrer une base de données au repos, de restreindre strictement qui peut s'y connecter, avec des identifiants aussi bien protégés qu'un mot de passe personnel (voir l'article dédié), et de limiter au strict nécessaire les informations réellement conservées. Une base de données qui ne contient que ce qui est vraiment utile reste, par construction, moins dangereuse à perdre qu'une base qui accumule indéfiniment tout ce qui pourrait un jour servir.