Nicolas Engel

Idea(ls) on cybersecurity

Comment tester ses idées en cybersécurité sans tomber dans l’illégalité ?

Contrairement aux réflexions sur la cybersécurité décorrélées du terrain que votre auteur écrit courageusement au vu et au su de tous, la mise en pratique est toujours plus délicate. Dans un domaine où nombreux sont ceux qui se targuent de leurs expertises, la démonstration des compétences frôle régulièrement l’illégalité. Certes des plateforme d’apprentissage et de challenge en cybersécurité existent à l’image de l’excellente Root-me.org. Je reviendrai d’ailleurs probablement sur ce sujet, qui constitue un terrain de jeu infini. Cependant aussi ludique qu’elles puissent être, ces plateformes ne permettent pas de tester un système d’information dans son intégralité.

C’est dans cette optique qu’existent les machines virtuelles, permettant d’émuler un système complet sur votre ordinateur. Quelque soit votre système d’exploitation et pour peu que vous ayez une machine assez puissante, il vous sera ainsi possible d’émuler un système d’exploitation tiers sur votre PC.

Schéma d’architecture simple des machines virtuelles

Tel un Janus des temps modernes, il vous sera possible de faire office d’attaquant et d’attaqué et ainsi de simuler des exploitations de faille sans craindre les foudres de la justice.

VirtualBox est une solution gratuite permettant d’héberger des machines virtuelles sur son PC

Metasploitable, la machine virtuelle pré-packagée pour les hackers

Il est de notoriété publique que les informaticiens détestent refaire plusieurs fois une même opération. Que la raison première en soit la fainéantise ou une volonté déraisonnable d’automatisation importe au final assez peu. Je vous propose ainsi de plonger dans le monde merveilleux de Metasploitable, machine virtuelle conçue autour d’un système particulièrement vulnérable comme terrain de jeu des hackers souhaitant faire leurs armes.

Metasploit à l’origine est un projet open source dont le but est de fournir des informations sur les vulnérabilités de systèmes informatiques, d’aider à la pénétration et au développement de signatures pour les systèmes de détection d’intrusion (IDS, Intrusion Detection System). Sa société mère a donc créé la machine virtuelle Metasploitable afin de permettre de tester sa solution en toute sécurité.

Ci-dessous un rapide tutoriel permettant d’installer Metasploitable.

Ces quelques étapes devraient vous permettre de passer rapidement à la pratique sans trop de risque pour votre système source.

Comment scanner sa propre machine virtuelle ?

Puisque cet article ne ressemble décidément pas aux autres, je vous joins ci-dessous l’excellent tutoriel de Fengwei Zhang pour scanner Metasploitable2 à partir d’une instance Kali Linux. Cela permettra aux novices de plonger aisément dans le monde de la reconnaissance et détection des vulnérabilités en toute sécurité.

Lab3-instruction.pdf

Comment configurer le réseau de sa machine virtuelle ?

Si comme moi, vous avez tenté de scanner l’instance Metasploitable à partir d’une autre machine virtuelle telle qu’une VM Kali Linux par exemple, vous vous êtes rendu compte que Metasploitable n’était pas “visible” sur le réseau. Une clarification des configurations réseaux des machines virtuelles s’impose.

Ainsi comprenons-nous que la machine virtuelle se doit d’être configurée en accès par pont (Bridged) si nous désirons pouvoir en scanner les ports.

Les machines virtuelles sont-elles la panacée ?

Une critique récurrente sur l’existence de machine virtuelle pré-packagée est qu’elles peuvent elle-même contenir des menaces en leur sein.

En effet, les scanners antivirus ne peuvent pas facilement scanner des menaces l’intérieur des machines virtuelles.

À première vue, on pourrait penser que ce serait une question triviale pour les antivirus et antispyware de vérifier ce qui se passe à l’intérieur d’une VM. Après tout, la machine virtuelle invitée vit à l’intérieur de la machine hôte. Malheureusement, c’est loin d’être le cas. Une partie du processus de virtualisation implique de découper les données, ce qui complexifie la recherche des signatures des menaces pour les antivirus. En effet, ces derniers examinent deux domaines pour trouver du code malveillant: la mémoire et les systèmes de fichiers.

En préambule, rappelons que la plupart des systèmes d’exploitation modernes ont un système de mémoire virtuelle qui divise les données à l’intérieur de la machine, les structures de mémoire. À l’aide de plusieurs tables, la mémoire virtuelle est ensuite mappée aux adresses de stockage matérielles physiques (disque dur etc.)

Les structures de mémoire font croire à chaque programme sur la machine qu’il y a une énorme quantité de mémoire alors que la RAM physique est en fait limitée. Les systèmes d’exploitation modernes prennent en charge la mémoire virtuelle en échangeant des données typiquement entre la RAM et le disque dur.

Dans un environnement de machine virtuelle, l’invité dispose de son propre système de mémoire virtuelle, ainsi que de ses propres tables qui mappent la vue de la mémoire de diverses applications sur la mémoire physique. Mais la mémoire physique de la machine virtuelle se trouve en fait à l’intérieur de la mémoire virtuelle de la machine hôte. Ce mapping est donc un casse-tête pour l’antivirus.

Un problème similaire se produit dans le système de fichiers. Dans la plupart des implémentations de machine virtuelle, le système de fichiers de l’invité est simplement un gros fichier dans la machine hôte. Toutes sortes d’informations de formatage sont stockées dans ce fichier et tous les fichiers malveillants ici sont décomposés en différents éléments qui sont ensuite distribués.

Pour analyser la machine hôte, l’antivirus peut s’appuyer sur le système d’exploitation pour regrouper les secteurs du disque dur en fichiers. Mais le scanner anti-virus n’a pas ce luxe à l’intérieur de l’invité, où le système de fichiers de l’invité décompose les informations en secteurs virtuels qui sont à l’intérieur de ce gros fichier sur le disque dur de l’hôte.

Il existe des pistes pour créer des scanners antivirus au sein d’une machine virtuelle.

Au lieu de rechercher une série de signatures, le logiciel rechercherait des anomalies à l’intérieur de l’invité. Ces anomalies pourraient être plus facilement discernées par l’hôte et ne nécessitent pas un mappage complet de la mémoire et du système de fichiers. A l’heure où ces lignes sont écrites, si une machine virtuelle est contaminée, il sera difficile de s’en prémunir.

La machine virtuelle, outil indispensable du hacker ?

Une rapide comparaison permet d’analyser l’intérêt mais aussi des limites de l’utilisation des machines virtuelles en matière de sécurité.

Intérêts

  • Utiliser plusieurs systèmes d’exploitations sur une même machine physique.
  • Construire une architecture logicielle différente de l’architecture physique avec notamment plusieurs machines pouvant communiquer ensemble.
  • La création d’une machine virtuelle repose sur un disque dur virtuel. Si la machine virtuelle crashe, la machine physique et le système hôte ne sont pas impactés.
  • En terme de sécurité, si vous voulez tester un logiciel compromis par un virus, la machine virtuelle permettra de limiter les effets au disque dur virtuel (dans la plupart des cas…)

Limites

  • Les machines virtuelles sont moins puissantes que les systèmes hôtes car elles accèdent à la couche matérielle via une couche d’intermédiation.
  • Si le système hôte est contaminée par un virus, la machine virtuelle pourra être compromise également.
  • La configuration des machines virtuelles notamment en matière de droits et autorisations peut être complexe.

Loin des poncifs critiquant la pertinence de reprendre des VMs existantes et pour peu qu’on en connaisse les limites au préalable, les machines virtuelles sont à l’heure actuelle un outil indispensable pour effectuer des tests en cybersécurité.

“Nous vivons chaque jour dans des environnements virtuels définis par nos idées.”

Michael Crichton

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *