Petit traité sur le hacking
Je profite de mon expérience en ce domaine pour donner mon avis et tenter d'expliquer ce qui à pu se passer. Je met ça la en vrac dans le topic, mais si un modo juge utile de créer un nouveau topic pour le mettre dedans, pas de pb.
La com' annoncée est qu'il y à eu intrusion sur la BDD et récupération de donnée.
Avant tout je précise que je ne connait pas l'infrastructure en place chez Ankama, et que je me base donc uniquement sur mon imagination et une estimation des faits réels.
Chapitre 1 : Possibilité d'intrusions.
Avant tout, si vous ne le savez pas déjà Ankama n'héberge pas ses propres serveurs, mais utilise un espace chez un hébergeur. C'est généralement un bon point car le prestataire en charge de l'hébergement est spécialisé dans se domaine.
D'un point de vue réseau, (si cela est bien fait) il est impossible d'accéder au serveur BDD si on ne se trouve pas dans une "bulle réseau" dans laquelle se trouve aussi les serveurs de Jeu et/ou d'authentification (qui eux ont besoin d'un accès BDD).
Cependant cette bulle à bien des points d'entrée, sinon cela ne servirait pas à grand chose :
- L'hébergeur y a accès (de manière physique et ou réseau)
- Certaines personnes habilitées chez Ankama
- Nous les joueurs, mais uniquement à destination des serveurs de jeu.
Les possibilités d'intrusions sont donc soit liés à l'hébergement, soit à un accès via Ankama, soit via ce qui est accessible au grand public.
Chapitre 1-A : Exploitation de faille
L'exploit est la partie "noble" du hacking. En utilisant ses compétences, le pirate à trouvé une faille qui lui permette de dépasser les limitations imposées sur les services à sa disposition. Le but ultime ayant d'avoir l'accès à une ligne de commande (shell) sur une des machines à l'intérieur de la bulle, et pouvoir ensuite faire tout ce qu'il souhaite. A défaut d'avoir un accès complet, il est tout à fait honorable d'arriver à pouvoir passer des ordres et récupérer les réponses.
Je doute fortement que ce point d'entrée soit celui utilisé, mais on ne sait jamais.
Chapitre 1-B : Le Social Egineering
C'est la partie fourbe du hacking. Cela suppose d'avoir déjà plus ou moins un accès à un service d'un point de vue technique, mais d'être bloqué par un passage de sécurité (clef de cryptage, mot de passe, etc). La méthode est simple mais peux sembler bête, il s'agit tout simplement de demander à une personne de donner ses propres éléments de sécurité. Le cas le plus basique serait d'appeler quelqu'un par téléphone en se faisant passer pour quelqu'un d'autre.
Cela peux aussi prendre la forme d'un faux mail ou site web et s'apparente alors à de l'hameçonnage (aka Phishing).
Chapitre 1-C : L'intrusion / Utilisation de virus
Tout le monde à déjà eu à faire à un virus, et c'est peux être la le point d'entrée. Le principe d'un virus dans le but du hacking consiste systématique à exécuter du code sur la machine de sa victime dans deux optiques. Soit récupérer des données (fichiers, cookies, etc), soit installer du code malicieux (Trojan, Keylogger, etc.). Si on arrive à cela sur le poste d'une personne qui est d'un côté connecté à internet, et de l'autre au réseau Ankama contenant la BDD, c'est gagné il n'y a plus qu'à compléter le chemin vers le serveur BDD.
Chapitre 2 : Qu'est ce que l'on va récupérer.
En toute logique sur la BDD nous avons un mélange de données en clair et de données cryptées. Les données en clair sont donc directement lisibles par le pirate. On peux supposer que cela soit le cas pour le login (nom de compte).
Ankama à d'ailleurs fait une communication indiquant que les données récupérées ne permettraient pas d'accéder au compte du moins c'est ce qu'ils pensaient. Comment cela est possible, je vais tacher de vous l'expliquer dans "La cryptographie pour les nuls !"
Il existe deux méthodes pour sécuriser des données :
Le chiffrage (aka cryptage) et le hachage :
Le chiffrage consiste à appliquer une transformation au mot de passe initial :
par exemple (attention c'est simple) inverse le mot :
> monpass devient donc ssapnom
Le chiffrage peux éventuellement utiliser une clef. par exemple : 1423 pour inverse les lettres 1 et 4, puis 2 et 3
> monpass deviendrait alors pnomass
Cet algorithme est réversible, à partir du moment ou on connait la méthode et la clef.
(Il existe aussi des méthodes asymétriques, mais on ne va pas rentrer dans les détails)
Le hachage consiste à générer quelque chose à partir de morceaux uniquement.
Pour reprendre une exemple simple :
1ere lettre + 2 dernières lettres + nombre de voyelles + longueur
monpass donne alors mss0107
Quelqu'un qui arrive à récupérer le mot de passe haché ne peux alors pas remonter au mot de passe d'origine, même avec l'algo :
Hash(monspass) => mss0107
unHash(mss0107) => ???
Sauf que la ou cette technique à une faille c'est que généralement tout le monde utilise les mêmes algorithmes de hachage, par exemple le MD5 (sans salt pour les experts).
il suffit donc de réaliser une "rainbow table" et de mémoriser quel pass correspond à quel hachage :
Hash(aaaaaaa) => sdjqhsdj
Hash(aaaaaab) => sdfkdlfdl
...
Hash(monspass) => mss0107
D'ou l'utilité d'avoir un mot de passe long et complexe (lettes + chiffres + symboles)
C'est tout pour aujourd'hui. je compléterai l'article prochainement si cela vous intéresse.
|