Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

Les failles système

Généralités

Les systèmes d’exploitation sont de plus en plus sophistiqués et de plus en plus simples du point de vue utilisateur. Les mécanismes sous-jacents, parfois très compliqués, sont masqués afin de faciliter l’accès à l’outil informatique au plus grand nombre. Malheureusement, cette "simplification" est souvent réalisée au détriment de la sécurité et des performances.

Même si depuis quelques années les concepteurs, conscients des enjeux liés à la sécurité et à la protection des données, essaient d’améliorer leurs applications, les utilisateurs, quant à eux, restent généralement le maillon faible. Mal formés ou informés, peu habitués aux contraintes de sécurité, comme la confirmation ou la saisie de mot de passe, ils préfèrent souvent désactiver les protections mises en place ou ignorer les messages d’avertissement. C’est ainsi que, combinées avec un accès à Internet permanent, bon nombre de machines d’utilisateurs lambda sont transformées en machines zombies et utilisées pour réaliser des attaques dont l’ampleur et la dissimulation sont proportionnelles au nombre de machines utilisées.

Mais le constat ne s’arrête pas là : à l’origine simple assemblage d’électronique, les éléments de notre quotidien comme les téléphones mobiles, les réfrigérateurs, les téléviseurs, les caméras... embarquent désormais des systèmes d’exploitation à part entière qui peuvent être modifiés. De plus, à l’heure du tout communiquant, ces matériels constituent...

Les failles physiques

Introduction

Souvent, la sécurisation des accès aux matériels informatiques n’est pas une priorité pour les entreprises ou les administrations. Pour s’en convaincre, il suffit de faire le test et de voir avec quelle facilité, sous un prétexte quelconque, une personne étrangère à un service peut souvent accéder aux ordinateurs ou aux autres ressources informatiques du personnel.

En effet, autant les accès aux serveurs, aux routeurs et aux autres matériels d’administration informatique sont, dans les moyennes ou grandes entreprises, sous clé dans une salle spécialisée, autant les ordinateurs d’exploitation ou administratifs sont relativement accessibles.

Quand la question sur l’accès au matériel est posée au personnel, celui-ci relativise généralement le problème et répond qu’il n’a, par exemple, pas accès à des informations confidentielles, que l’entreprise fonctionne comme cela depuis des années et qu’elle n’a jamais connu le moindre problème. Quelquefois même la question est éludée sous prétexte que jamais aucune information ou même formation n’a été dispensée.

Dans les petites sociétés, les ordinateurs sont souvent très accessibles et un même compte utilisateur est souvent utilisé par tous avec un seul mot de passe (quand il y en a un !).

Or, l’accès physique (même restreint) à un ordinateur peut avoir des conséquences désastreuses pour une entreprise.

Lockpicking

On ne peut pas parler d’accès physique à un ordinateur sans parler du lockpicking (http://www.lockpickingfrance.org/), ou crochetage de serrure en français.

On trouvera...

Les mots de passe

Introduction

Les mots de passe restent actuellement le moyen le plus répandu pour contrôler les accès à des ressources restreintes. Ils sont utilisés depuis des siècles, notamment dans le domaine militaire. De plus, ils interviennent à de nombreux niveaux : au démarrage de l’ordinateur, lors de l’accès au courrier électronique...

En informatique, un mot de passe est une suite de caractères, pas forcément constituée uniquement de chiffres et de lettres, avec ou sans signification.

Complexité

La qualité d’un mot de passe se définit par sa complexité à être deviné, trouvé, et par sa longueur. Il faut bien comprendre qu’un mot de passe n’est pas une garantie de protection absolue. Il permet seulement de ralentir, plus ou moins efficacement, un attaquant. En effet, l’essai de toutes les combinaisons permettra finalement d’obtenir l’accès au système protégé.

Prenons un cas réel : la perte du code d’un antivol de vélo, constitué de trois rouleaux numérotés chacun de 0 à 9. Chaque rouleau a donc 10 valeurs. Les trois rouleaux permettent alors 10*10*10 possibilités, soit 1000. Les essais successifs de ces 1000 combinaisons pouvant être effectués en un temps raisonnable, la serrure peut être déverrouillée sans en connaître le code.

En informatique, c’est pareil… en pire :

  • L’automatisation est possible.

  • Un ordinateur ira vraiment beaucoup plus vite et un réseau d’ordinateurs encore plus !

Cependant, le mot de passe peut être beaucoup plus long et les caractères possibles sont plus nombreux. La tâche n’est alors pas si facile car le nombre de possibilités...

Chiffrement et cryptage

Introduction

Il existe de nombreux sites expliquant les bases de la cryptographie, comme : http://www.sebsauvage.net/comprendre/encryptage/index.html

La cryptographie permet de :

  • transformer un message afin de le rendre inexploitable par une tierce partie en cas d’interception ;

  • garantir la confidentialité ;

  • garantir l’intégrité d’un message ;

  • authentifier l’émetteur ou le destinataire ;

  • fournir un mécanisme de non-répudiation ;

  • fournir un mécanisme anti-rejeu.

Un chiffrement est dit "sûr" si :

  • le coût du craquage est plus élevé que le bénéfice qu’il procure ;

  • le temps requis par le craquage dépasse la durée de pertinence de l’information clé.

L’algorithme de chiffrement est également connu et public. L’examen public en garantit la fiabilité, et créer son propre algorithme est une mauvaise pratique (security by offuscation). 

Le chiffrement symétrique

C’est un chiffrement rapide utilisé généralement pour les gros volumes de données.

Le chiffrement symétrique est réversible : une donnée chiffrée peut être déchiffrée. Comme la même clé est utilisée pour chiffrer et pour déchiffrer les données, il faut garantir la sécurité de la clé symétrique tant lors de son stockage que lors de l’échange avec des partenaires.

AES (Advanced Encryption Standard) et Camelia sont les deux algorithmes recommandés par l’ENISA (European Network and Information Security Agency).

Les algorithmes DES, Blowfish, Kasumi, 3DES sont considérés comme obsolètes et ne doivent être utilisés que pour garantir...

Les processus

Un processus est une tâche qui s’exécute sur un processeur. Chaque processus est identifié par son PID (Process ID), un nombre entier unique. Le Gestionnaire des tâches permet de voir l’état des différents processus qui s’exécutent sur la machine et d’agir sur ceux-ci. Traditionnellement, sous Windows, il est accessible en effectuant [Ctrl][Alt][Suppr]. Sous macOS, il faut passer par le Moniteur d’activité ; ou, comme sur tout système Unix, on utilise la commande ps.

images/C9-Figure_21.png

Les processus sous Windows

Au lancement, un processus est exécuté avec les droits de l’utilisateur courant, mais le processus peut élever ses privilèges pour effectuer une tâche administrative, ou baisser ses privilèges pour ne conserver que ceux dont il a besoin. Cette dernière opération est courante pour les démons sous Unix. En effet, ils doivent démarrer en tant que root pour lire leur configuration, afin d’allouer les ressources nécessaires. Mais fonctionner en tant que root serait inutilement dangereux, pour un démon réseau par exemple, alors le processus diminue ses privilèges ensuite. En cas de compromission du service, l’attaquant n’aura que des privilèges très limités, réduisant ainsi l’impact sur le système.

Le Gestionnaire des tâches permet notamment de vérifier la quantité de mémoire et le pourcentage d’utilisation du processeur par chacun des processus. Cela permet de déceler le responsable en cas de comportement suspect de la machine comme des ralentissements anormaux.

Le processus coupable peut alors être terminé : sous Windows, en sélectionnant le processus dans la liste, puis en cliquant sur le bouton Terminer le processus ; sous Unix, via la commande...

Le démarrage

Le démarrage est une phase critique. Le système d’exploitation est vulnérable pour établir la sécurité. En effet, rien ne garantit que ses fichiers n’ont pas été altérés ou qu’un programme malveillant ne s’est pas exécuté avant que le contrôle ne lui ait été donné.

L’abus des modes de démarrage dégradés

Un système d’exploitation doit être capable de démarrer pour être réparé, ce qui pose quelques problèmes de sécurité. Par exemple, sous GNU/Linux, il est possible de passer, via le chargeur de démarrage, un programme alternatif à init, chargé de l’initialisation du système. Mais si un shell est utilisé, on obtient alors un accès direct en mode administrateur.

La parade est donc de sécuriser le chargeur de démarrage, en y plaçant un mot de passe.

Sur macOS X, il est possible de démarrer en mode mono-utilisateur, qui lance alors un shell administrateur directement, en maintenant les touches [Pomme] + S au démarrage. Pour se protéger, il faut activer le mot de passe de protection du firmware du Mac avec l’outil dédié sur le DVD d’installation de macOS.

Les attaques de preboot

Les nouveaux systèmes d’exploitation tirent de plus en plus parti de la signature des fichiers pour ne pas charger des programmes altérés par une tierce partie. L’attaque de preboot consiste à charger un programme avant n’importe lequel du système d’exploitation. Ainsi, peu importent les sécurités ajoutées, notre programme a les pleins pouvoirs et a donc la possibilité de modifier à la volée les données en mémoire...

Windows

Gestion des utilisateurs

Un utilisateur est la représentation virtuelle d’une personne physique, enregistrée sur l’ordinateur, à laquelle des informations sont associées comme ses nom et prénom, adresse et mot de passe. Pour interagir avec le système, un utilisateur physique s’authentifie avec son utilisateur virtuel : il saisit son identifiant et son mot de passe avant de pouvoir faire quoi que ce soit. Les actions sont alors effectuées sous cette identité, et sont limitées par les permissions qui lui ont été attribuées.

Des utilisateurs spéciaux existent sur les systèmes, sans lien avec une personne physique. Il s’agit d’utilisateurs uniquement virtuels permettant de cadrer le fonctionnement des programmes, afin d’en limiter les privilèges, par sécurité : par exemple, ne pas autoriser l’accès à une ligne de commandes, au réseau, à interagir avec l’interface graphique, etc.

Windows gère ses utilisateurs dans un fichier SAM (Security Account Manager). Traditionnellement, les utilisateurs se gèrent de façon graphique dans la console de gestion du système accessible via la commande compmgmt.msc.

images/C9-Figure_08.png

Les utilisateurs sous Windows

Il est possible également de gérer les utilisateurs en ligne de commandes, via des commandes, des scripts VBS ou VBA et via PowerShell.

  • Création de l’utilisateur :

net user Laurent 
  • Ajout de l’utilisateur "Laurent" au groupe "marketing" sans le retirer du groupe originel :

net localgroup marketing Laurent /add 
  • Suppression de l’utilisateur "Laurent" ainsi que des fichiers contenus dans son répertoire personnel :

net user Laurent /delete 

Reportez-vous à la documentation de Windows pour plus...

Linux

Gestion des utilisateurs

Les utilisateurs sont enregistrés dans le fichier /etc/passwd et leur mot de passe dans le fichier /etc/shadow. Historiquement, il n’y avait que le fichier passwd qui contenait les mots de passe. Mais étant un simple fichier texte, les empreintes (hashs) étaient donc lisibles par tous, le déchiffrage des mots de passe était trivial. Le fichier shadow a donc été créé. Il s’agit d’une copie de passwd, incluant les mots de passe.

Seul root possède les droits de modification et de lecture sur ce fichier. De plus, il est le seul compte qui peut agir sur les autres comptes du système.

images/C9-Figure_07.png

Les utilisateurs sous Linux

Ces fichiers peuvent directement être modifiés avec un éditeur de texte. Cependant, des outils simplifient la tâche.

  • Ajout de l’utilisateur "Laurent" au groupe "recherche" :

adduser Laurent recherche 
  • Ajout de l’utilisateur "Laurent" au groupe "marketing" sans le retirer du groupe originel ("recherche") :

usermod -aG marketing toto 
  • Suppression de l’utilisateur "Laurent" ainsi que des fichiers contenus dans son répertoire personnel :

userdel -r Laurent 

Pour la syntaxe, se reporter au manuel des outils : man useradd, man usermod, man userdel depuis un terminal.

Gestion des groupes

Les groupes sont gérés dans le fichier texte /etc/group et là aussi des outils de gestion sont disponibles :

  • groupadd : ajout d’un groupe.

  • groupmod : modification d’un groupe.

  • groupdel : suppression d’un groupe.

  • gpasswd : gestion des utilisateurs d’un groupe.

Affectation des permissions

Sous GNU/Linux, tout est fichier. Un périphérique et un dossier se manipulent alors comme tels. Un fichier possède un propriétaire et un groupe...

macOS X

Gestion des utilisateurs

Rendez-vous dans le menu Pomme - Préférences système, puis Utilisateurs et groupes. Il pourra être nécessaire de déverrouiller le panneau en cliquant sur le cadenas situé en bas à gauche, puis en saisissant un mot de passe administrateur.

L’ajout et la suppression d’un groupe ou d’un compte utilisateur se font respectivement avec les boutons + et -. Dans le cas d’un ajout, il suffit de sélectionner dans la liste déroulante Nouveau le type de compte : groupe, administrateur ou simple utilisateur. Notez qu’il est possible d’activer ici le chiffrement du répertoire personnel, permettant d’éviter la lecture de vos fichiers à partir d’un autre compte utilisateur ou d’un autre système d’exploitation.

images/C9-Figure_09.png

Les utilisateurs sous OS X

Bien évidemment, vous pouvez effectuer toutes ces tâches en ligne de commande avec l’outil de gestion d’annuaire DSL.

En tant que root :

Création d’une nouvelle entrée pour l’utilisateur "laurent" sous /Users :

dscl . create /Users/laurent 

Définition de l’environnement utilisateur :

dscl . create /Users/laurent UserShell /bin/bash 

Création et initialisation du nom complet de l’utilisateur :

dscl . create /Users/laurent RealName "Laurent" 

Création et initialisation de l’identifiant unique de l’utilisateur :

dscl . create /Users/laurent UniqueID 505 

Création et initialisation du groupe principal de l’utilisateur :

dscl . create /Users/laurent PrimaryGroupID 1000 

Création et initialisation du répertoire personnel de l’utilisateur :

dscl . create /Users/laurent NFSHomeDirectory /Local/Users/laurent 

Création du mot de passe de l’utilisateur :

dscl . passwd...

Exploitation des vulnérabilités des systèmes d’exploitation

Il existe de nombreux outils permettant de tester et d’exploiter les vulnérabilités des différents OS et plateformes. Parmi les plus connus, il y a le framework Metasploit (MSF).

Pour utiliser un outil comme MSF, il faut comprendre les notions suivantes :

  • Vulnérabilité : c’est une faille dans un code informatique provenant d’une erreur de conception ou d’implémentation fragilisant le système. Lorsque ces dernières sont découvertes, elles sont identifiées, classées suivant leur sévérité et publiées sous forme de CVE (Common Vulnerabilities and Exposures). Le lien suivant permet de visualiser les dernières vulnérabilités concernant Windows 10 : https://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-32238/Microsoft-Windows-10.html

  • Exploit : c’est un programme conçu pour exploiter une vulnérabilité.

  • Payload : c’est un programme permettant d’interagir sur le système cible afin d’en prendre le contrôle ou de le déstabiliser. Meterpreter est un des plus populaires, il permet entre autres de créer, de modifier, de supprimer, de télécharger des fichiers vers ou depuis la machine cible. Il permet de capturer les frappes-clavier, de figer le fond d’écran, et de supprimer ou créer des processus.

  • Post : c’est un module complémentaire utilisé après l’exploitation pour récupérer des preuves ou basculer vers d’autres machines du réseau (pivoting).

Metasploit est déjà installé sous Kali, mais voici comment installer Metasploit sous Debian :

# cd /opt 
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/
master/config/templates/metasploit- ...

Big Data et confidentialité

Le 27 septembre 2015, Terry Myerson, vice-président de Microsoft, postait un message officiel (https://blogs.windows.com/windowsexperience/2015/09/28/privacy-and-windows-10/#OM92l9t2lHLbGrKe.97) concernant les données collectées et la confidentialité de Windows 10 :

"Je vous assure qu’aucune autre entreprise n’est plus engagée, plus transparente et à l’écoute des clients sur ce sujet important…

Dès le début, nous avons conçu Windows 10 avec deux principes simples de confidentialité à l’esprit :

  • Windows 10 collecte des informations pour que le produit fonctionne mieux pour vous.

  • Vous maîtrisez la capacité de déterminer les informations recueillies.

Avec Windows 10, les informations que nous collectons sont chiffrées durant le transit vers nos serveurs, puis stockées dans des installations sécurisées."

Mais dans les faits ?

Nous avons voulu mener notre propre expérience. Deux machines virtuelles identiques ont subi la même installation de Windows 10. Sur la première aucune modification n’a été réalisée tandis que la seconde a été modifiée afin de réduire les échanges d’informations.

Aucune installation de logiciel tiers n’a été effectuée et personne ne s’est connecté sur les postes de travail hormis pour faire l’installation de Windows 10.

Une capture du trafic réseau a été réalisée sur les machines durant trois heures.

 

Windows 10 d’origine

Windows 10 modifié

Nombre de paquets échangés

23.649

108

Nombre de requêtes DNS

61

4

Nombre d’URL différentes

19

1

Windows 10 communique beaucoup sur Internet :

  • Communications...

Conclusion

Il pourrait être dangereux de laisser libre accès à son ordinateur. Que ce soit le vol de mots de passe ou l’injection de programmes malveillants, tout est possible dès lors que l’accès à la machine est autorisé. Il existe encore bien d’autres pratiques pour récupérer des données sur une machine accessible physiquement, mais ce chapitre donne un aperçu des méthodes les plus usitées.

L’important est d’être sensibilisés à ce problème et de respecter les règles de bon sens suivantes :

  • Restreindre autant que possible l’accès physique à notre machine.

  • Protéger le BIOS de notre machine et mettre un mot de passe sur le boot.

  • Avoir un mot de passe intégrant une notion de complexité (alphanumérique + caractères spéciaux).

  • Interdire le boot sur autre chose que le disque dur.

  • Fermer la session de notre ordinateur en cas d’absence de courte durée ou l’arrêter pour les longues durées.

  • S’assurer de la mise à jour des systèmes, antivirus et autres anti-spywares.

  • Empêcher tous les mécanismes de montage automatique de périphériques.

  • Activer essentiellement les accès physiques indispensables au travail.

  • Utiliser un système de chiffrement des données confidentielles.

  • Virtualiser.

  • Séparer les privilèges.

  • Choisir des mots de passe avec intelligence.

  • Privilégier l’authentification multifacteur.

  • Mettre à jour les systèmes.

  • Informer et former les utilisateurs.

Respecter ces règles, rendra plus difficile l’accès aux données sensibles et bien des ennuis seront évités.

La sécurité des systèmes n’est pas chose aisée car la menace peut provenir...