Large panorama des méthodes informatiques criminalistiques

Techniques

En raison de la richesse du sujet, nous n'aborderons que 3 techniques seulement utilisées par l’expert dans cette partie intéressante : Qu'est-ce que sont ces techniques ? Nous allons le voir ci-dessous...

La stéganographie et la stéganalyse

La stéganographie est une technique souvent utilisée par les pirates pour cacher des informations illicites (mots de passe, adresses IP, numéros de comptes bancaires volés, …) au sein de photographies mais pas seulement.


Dans cette scène, un message stéganographié est présent dans le coin en bas à gauche.


Il s'agit en effet d'une citation en braille dont la signification est la suivante : "Si un aveugle conduit un autre aveugle, ils tomberont tous les deux dans la fosse. Matthieu 15:14".

Son fonctionnement repose sur le choix d'un algorithme de chiffrement. Nous allons nous intéresser à l'exemple d’un algorithme faible : Pour contrer la stéganographie, la stéganalyse procède à la détection de contenu caché. C’est un processus qui peut être mis à mal assez facilement : Ce procédé peut faire varier la teinte des pixels d’une image mais il est quasiment impossible de détecter à l’œil nu le message dans l’image. La méthodologie pour détecter l’usage de la stéganographie dans X photos est la suivante : La stéganographie et la stéganalyse sont aussi utilisées pour extraire du contenu audio. Par exemple, il est possible d'extraire la voix d’un ravisseur lors d’une conversation téléphonique dans un milieu bruyant.

Les métadonnées

Des métadonnées peuvent être présentes dans les fichiers, les emails, les conversations réseaux, ... et contenir des informations souvent sous forme de données brutes (paquet réseau, musique, texte…). Tout fichier non brut dispose de métadonnées (HTML, Word, MP3, …). Prenons l'exemple de la photo (libre de droits) ci-dessous :


Rien de plus innocent à première vue. Mais un petit tour sur un lecteur de métadonnées EXIF comme
http://regex.info/exif.cgi ou encore http://www.viewexifdata.com/index.php permet d’obtenir les informations confidentielles suivantes : Faites vous même l'essai en téléchargeant cette image et en questionnant l'un des deux sites EXIF proposés !

Outre les sites Web, des librairies existent en PHP, Javascript, … et des logiciels aussi pour la plus grande joie des développeurs.

La cryptographie et la cryptanalyse

Il n'est plus nécessaire de présenter la cryptographie et la cryptanalyse, dont les concepts sont devenus vieux comme le monde, comme le fait de chiffrer et déchiffrer par tous les moyens efficients possibles une information avec ou à partir d'un mot de passe.

Parfois, l'expert en informatique légale peut, lors d'une enquête, rencontrer des archives sécurisées à accès restreint par un mot de passe. Dans le cadre de sa profession, le juge peut exiger d'en connaître la teneur. L'expert va donc soumettre l'archive a des outils qui vont tenter de casser ce mot de passe de diverses manières. Les méthodes les plus classiques consistent à tester toutes les combinaisons de mots de passe (force brute), un sous-ensemble connu (dictionnaire, joker) ou, le cas échéant, interroger directement le suspect et son entourage voire étudier l'environnement du suspect pour en déduire le mot de passe (ingénierie sociale).

Il s'avère que ces méthodes ont de grossiers défauts :

J'ai l'honneur de vous présenter une technique peu évoquée dans notre formation qui réalise un bon compromis entre le temps de calcul et la quantité de données à conserver pour trouver le bon mot de passe. Il s'agit des Rainbow Tables (tables arc-en-ciel). Cette technique a été inventée en 2003 par Philippe Oechslin. Elle dispose seulement d'une fonction de hachage et d'une fonction de réduction. L'objectif consiste à précalculer les hashs pour obtenir les mots de passe. Elle nécessite toutefois une grande capacité physique de stockage car les hashs mémorisés peuvent atteindre des Giga voire des Terra-octets de données.



Comment une table arc-en-ciel fonctionne t’elle ?


Dans un premier temps, nous allons enregistrer disons 250 couples { mots de passe – hash } dans la table comme vous pouvez le voir ci-dessus.


Pour le mot de passe abcd, nous allons calculer son hash (fff75abc), puis le réduire, ce qui nous donnera un second mot de passe (dsae). A celui-ci on va calculer son hash etc…

On itère un nombre défini de fois jusqu’à obtenir l’empreinte 3257785a. Puis, on va enregistrer le couple { abcd, 3257785a } dans la table.

Dans un second temps, nous allons tenter de cracker un hash. Il y a trois cas de figures : Aucun système n'est infaillible. C'est pour cela que je liste ci-dessous les inconvénients majeurs de cette technique et quelques solutions pour pallier à cela :

Risques de collisions des hashsParfois, il se peut qu’une collision apparaisse et retourne le même mot de passe pour deux hashs différents. Une solution pour pallier à cela est de créer une fonction de réduction différente par colonne de chaîne. C’est de cette forme que l’algorithme possède le nom de « tables arc-en-ciel » ! Nous pouvons aussi éventuellement réduire la probabilité de tomber sur le même mot de passe en salant les hashs avec une unité de temps.
Attaque par botnetUn botnet (réseau de machines zombies) équipé d’un algorithme de déchiffrement par Rainbow Tables peut attaquer un serveur d’authentification et générer les hashs des mots de passe possibles très rapidement et efficacement. D'où l'utilité de se protéger côté serveur par une authentification forte (double ou triple serait un plus) avec une demande de reconnexion exponentielle dans le temps (Après un échec de connexion, la tentative de reconnexion s'effectuera dans 2 secondes, puis 4, 8, 16, ...) en plus de gérer une blacklist pour filtrer les adresses IP liées aux attaques.

La lutte contre les intrusions dans un système : les IDS

Les attaques de type intrusives sont un combat à part entière pour les experts en informatique légale. Les victimes de ce genre d'attaque sont en principe des entreprises (banque, assurance, du domaine de la défense et militaire), des personnes parfois influentes (politicien, diplomate, journaliste). L'attaquant s'est introduit dans leur système informatique au travers d'une faille (souvent humaine, parfois organisationnelle ou technique). L'expert doit donc enquêter sur ces 3 catégories de faiblesse pour en connaître la source qui remet en question la solidité des quatres règles fondamentales de la sécurité des systèmes d'information de l'entreprise victime : Disponibilité, Intégrité, Confidentialité, Traçabilité.

Il existe bien entendu des solutions de lutte contre les intrusions (Firewall, Antivirus, réseaux privés virtuels de type VPN) mais utilisées individuellement elles ne garantissent pas une sécurité optimale. L'intérêt recherché est de pouvoir détecter mais aussi de prévenir les risques. C'est le rôle d'un "Intrusion Detection System" (IDS). Il peut se trouver à l'état matériel ou logiciel et effectue de la surveillance dans un réseau (Network-based IDS) ou sur une machine précise (Host-based IDS). Tout évènement suspect est détecté, signalé par une alerte, traité et le système est prémunis contre les attaques du même acabit à l'avenir. L'intérêt de cet outil est d'automatiser un travail fastidieux que ne pourrait faire l'expert seul.

Le pirate informatique peut utiliser des attaques massives (Deni de service, éventuellement distribué, pour saturer de requêtes un équipement et le rendre KO un moment, ...) ou furtives (voler des données et effacer les logs serveurs pour ne pas se faire repérer, ...). L'expert détectera aisément avec l'IDS adéquat la première action par le flot de requêtes simultanées arrivant sur le serveur de l'entreprise victime. En bloquant le trafic de l'attaque, il pourra stopper l'attaque. Dans le second cas, l'expert devra être plus méticuleux car la détection d'une présence furtive est comme la recherche dans une botte de foin. Il faut savoir où chercher ! Certains IDS proposent de faire un hash md5 des fichiers critiques du système. Ainsi, s'ils ont été modifiés par un pirate, l'IDS détectera les différences à partir des empreintes comparées des hash entre le fichier original et le fichier courant. Puis, il signalera cela à l'expert.

J'ai rencontré récemment un script PHP qui possédait du code obfusqué en
base64 pour rendre illisible sa compréhension par un utilisateur néophyte. En réalité, cela ressemblait à cet exemple :

eval(gzinflate(base64_decode('aGVsbG8geW91bmcgcGFkYXdhbiwgSSdt IGEgdmlydXMgdG8gZGVzdHJveSB5b3Vy IHdlYnNpdGUuLi4=')));

Comme vous pouvez le constater, la chaîne aGVsbG8geW91bmcgcGFkYXdhbiwgSSdt IGEgdmlydXMgdG8gZGVzdHJveSB5b3Vy IHdlYnNpdGUuLi4= est humainement illisible. Une fois ce code déchiffré lors de l'exécution du script (Vous pouvez le décoder à l'aide de ce site), l'évaluation du contenu dézippé décodé en base 64 donnait le contenu de la charge utile de l'attaque. Dans notre exemple, nous obtenons :

echo 'hello young padawan, I'm a virus to destroy your website...';

Le script du pirate avait un rôle plus vicieux. Il chargeait des fichiers et librairies depuis un serveur pour les exécuter localement comme une boîte de Pandore qui venait de s'ouvrir. Le pirate venait de transformer la machine infectée en zombie contrôlé à distance, de manière indétectable puisque le code vérolé en base 64 n'a pas été remarqué par l'Intrusion Protection Système (un IDS amélioré et étendu, apte à prendre des contre-mesures pour riposter à une attaque).

C'est de cette manière que j'ai appris comment un pirate pouvait déjouer la détection d'un IPS ou d'un IDS. Il existe toutefois des solutions pour se prémunir de ce genre d'attaques comme placer les lignes suivantes dans le fichier php.ini de votre serveur Web pour interdire l'exécution des fonctions PHP concernées et des URL à distance :

allow_url_fopen = Off;
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source,phpinfo,proc_open,base64_decode,base64_encodem,proc_terminate;

Toutefois, lors d'une enquête, l'expert en informatique légale va dans un premier temps tenter de comprendre la situation avant de répliquer à l'attaque. Pour cela, une idée est d'installer un honeypot (un pot de miel virtuel). Il s'agit d'une machine-leurre qui dispose de services et de failles bien-connues de l'expert, sur laquelle viendront s'exercer les pirates lors de leurs attaques. Comme cette machine-leurre est interfacée en amont du système d'informations de l'entreprise victime, l'expert pourra étudier les attaques et comprendre les intentions des hackers avant qu'ils n'atteignent le coeur du système d'informations.

Il reste néanmoins qu'aucun système n'est infaillible. C'est pour cela qu'il faut régulièrement mettre à jour ses logiciels et équipements, se former aux nouvelles technologies et s'informer des techniques et des failles récentes. C'est ce que l'expert en informatique légale s'est engagé à faire pour respecter sa mission.

Valid XHTML 1.0!