PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

GPO : Autoriser un groupe à se connecter en RDP

jeudi 19 mars 2020 à 09:10

I. Présentation

Les admins du domaine et les comptes locaux d'un serveur sont autorisés par défaut à se connecter en Bureau à distance (RDP) sur le serveur. Dans un environnement professionnel, on peut avoir besoin d'autoriser un autre groupe, avec des utilisateurs classiques, à se connecter aux serveurs. En effet, sur un serveur il n'est pas forcément nécessaire d'être connecté en administrateur.

Pour cela, il n'est pas question de passer sur chaque serveur... Bon à la limite s'il y en a deux, trois, pourquoi pas, et encore le fait d'utiliser une GPO permet de forcer la configuration.

Dans ce tutoriel, nous allons voir comment créer une GPO pour autoriser un groupe à se connecter en RDP sur les serveurs.

II. Attribuer les droits RDP

Sur votre infrastructure, ouvrez la console de gestion de stratégie de groupe. Créez une nouvelle GPO à l'aide d'un clic droit, par exemple sur l'OU qui contient les serveurs cibles. Cliquez sur "Créer un objet GPO dans ce domaine, et le lier ici...".

Donnez un nom à la GPO, et parcourez les paramètres comme cela :

Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Attribution des droits utilisateur

A l'intérieur, vous allez trouver le paramètre "Autoriser l'ouverture de session par les services Bureau à distance".

Ouvrez ce paramètre, et cliquez sur "Définir ces paramètres de stratégie" et cliquez sur "Ajouter un utilisateur ou un groupe". Ensuite, cliquez sur "Parcourir" pour rechercher dans l'annuaire l'objet à ajouter. C'est plus sûr que de saisir le nom directement dans la zone de saisie car il n'y a pas de contrôle de cohérence qui vérifie si le groupe/utilisateur existe vraiment.

Vous pouvez ajouter plusieurs utilisateurs ou groupes, l'avantage d'utiliser un groupe c'est qu'il suffit de l'alimenter ensuite dans l'annuaire Active Directory.

Il ne reste plus qu'à valider le paramétrage et d'attendre que la GPO se déploie sur vos serveurs. Ensuite, il faudra tester cette nouvelle configuration ! 🙂

Quel est l’intérêt d’un matériel informatique reconditionné ?

mercredi 18 mars 2020 à 15:00

Si les objets ou outils neufs restent prisés par nombre d'entreprises, sont apparues depuis quelques années des offres de hardwares et de matériels informatiques reconditionnés. Souvent victime de leur réputation, les objets reconditionnés peuvent parfois être une porte ouverte sur la croissance d'une entreprise. Mais comment et pourquoi, les sociétés devraient-elles se tourner vers ce type de produit ? C'est tout le sujet de cet article.

Le reconditionnement une méthode simple pour économiser

L'avantage principal des objets reconditionnés reste leur prix. Souvent 30 à 40% moins cher que le neuf, ils offriront un niveau de performance égal, tout en prodiguant une durée similaire voire plus longue dans le temps.

Des atouts considérables pour les entreprises TPE ou PME, voire multinationale qui souhaite scaler sur certains processus.

C'est notamment le cas dans l'achat de hardware à grande échelle qui peut poser problème notamment au niveau du tarif, pour des produits neufs et de dernière génération. Pour cette raison l'offre de reconditionnement, et d'achat de switch reconditionné par exemple constitue une véritable porte ouverte sur un abaissement conséquent des coûts de l'entreprise et de ses investissements. Néanmoins, est-ce vraiment fiable ?

Une fiabilité à toute épreuve

Si la démocratisation des offres de reconditionnement a connu un tel essor, c'est avant tout à cause des évolutions inhérentes et techniques des professionnels et des technologies. Plus formés, et plus adaptés à l'offre, les techniciens se sont avérés être de plus en plus capables de restaurer et de réparer chaque appareil informatique présenté à l'entreprise.

Dans cette logique les technologies, ont-elles aussi évolué tout en apportant leur lot de simplification. Autant de point qui a amené les offres de reconditionnement à voir le jour, et à se démocratiser par la suite.

Il est en effet essentiel de comprendre que le secteur a non seulement évoluer quantitativement mais aussi qualitativement. Deux points qui permettent aujourd'hui de fournir du hardware en parfait état de fonctionnement, reconditionné, et au prix de l'occasion. Une véritable opportunité pour nombre d'entreprises.

Un atout dans le développement durable

Soumises à de plus en plus de contraintes, les entreprises ont aussi un avantage considérable à se tourner vers les offres de reconditionnement. Non seulement elles abaisseront leurs coûts, mais aussi elles bénéficieront d'avantages conséquents sur le plan admiratif et comptable.

S'inscrivant dans le cadre de la consommation durable, la réutilisation permet aujourd'hui à bon nombre de sociétés de s'engager au côté des particuliers écoresponsables. L'occasion unique pour les entreprises de participer à l'effort citoyen tout en bénéficiant d'avantages sur le plan comptable.

Il reste donc important pour n'importe quel type de société de se tourner vers des produits informatiques reconditionnés, qui permettent non seulement de réduire les coûts, mais de fournir à l'entreprise une image de marque.

S'imposant de plus en plus au cœur des sociétés, l'achat en masse de produits remis à neuf constitue une solution durable pour créer une croissance saine dans des secteurs souvent très concurrentiels. D'autant plus que ces produits bénéficient d'une garantie longue durée, permettant d'être assuré quant à leur longévité dans le temps.

Le seul défaut de ces offres étant les stocks : souvent faible à l'échelle nationale, notamment pour des produits très demandés. En somme les aléas d'un succès qui n'est – aujourd'hui – plus à démontrer.

Télétravail : quelques offres chez Anker pour vous équiper !

mercredi 18 mars 2020 à 13:00

Bien que la livraison des colis soit impactée et ralentie par la pandémie du Covid-19, il reste possible de commander du matériel sur Internet. Le fabricant Anker propose des remises intéressantes sur certains de ses produits, en stock chez Amazon, qui sont utiles pour vous équiper à la maison et télé-travailler dans de bonnes conditions.

Au programme, Anker propose des accessoires mais aussi des périphériques, voici une liste des offres. A vous de piocher dans la liste si cela vous intéresse.

- Anker Hub USB-C 5 en 1

Ce hub USB-C contient plusieurs ports afin de connecter vos équipements sur votre ultrabook ou votre PC hybride : HDMI, RJ45 et 3 ports USB 3.0.

Prix d'origine : 35.99€
Offre actuelle : 28,79€ avec -20% via coupon sur Amazon
Lien : https://amzn.to/2UdkHux

- Anker 60W USB-C

Un chargeur mural avec un port USB-C et équipé des technologies PowerIQ 3.0 et GaN pour avoir à la fois les performances et un format compact. La puissance délivrée est de 60 Watts, ce qui est suffisant pour recharger certains ordinateurs portables, vos smartphones et tablettes.

Prix d'origine : 39.99€
Offre actuelle : 26,99€ avec -33% via coupon sur Amazon
Lien : https://amzn.to/3d2JrhL

- Câble USB-C vers HDMI

Ce câble d'une longueur de 180 cm est une bonne solution pour connecter votre PC à un écran externe supplémentaire, sur la télévision du salon par exemple. Je dis ça, je dis rien.

Prix d'origine : 19.99€
Offre actuelle : 15,99€ avec -20% via coupon sur Amazon
Lien : https://amzn.to/395jdIk

- Chargeur sans-fil double base

Pour recharger son smartphone (ou ses smartphones) entre deux appels, un chargeur sans-fil ça peut être bien pratique pour ne pas avoir à s'embêter avec le câble. Attention quand même à ce que votre smartphone soit compatible.

Prix d'origine : 49.99€
Offre actuelle : 39,99€ avec -20% via coupon sur Amazon
Lien : https://amzn.to/2QqA81j

- Anker Nebula Capsule Max

Le picoprojecteur portable, que l'on a pu tester dernièrement, est également en promotion. Un produit intéressant et qui fonctionne sur batterie. Je vous laisse le redécouvrir dans notre test : Test Nebula Capsule Max.

Prix d'origine : 499.99€
Offre actuelle : 399,99€ avec -15% via coupon sur Amazon
Lien : https://amzn.to/2x5YV3M

- Anker Eufy RoboVac L70

Un autre produit que l'on a testé : l'aspirateur robot Eufy RoboVac L70 avec son système de cartographie. Bien que l'on soit en télétravail, il y a une charge de travail importante au niveau des services informatiques en ce moment, alors c'est l'occasion de vous libérer un peu de temps !

Prix d'origine : 469.99€
Offre actuelle : 399,99€ avec -15% via coupon sur Amazon
Lien : https://amzn.to/2Ul8KDg

Ces offres sont valables jusqu'au dimanche 22 mars 2020.

HSTS – HTTP Strict Transport Security.. et BurpSuite

mercredi 18 mars 2020 à 09:30

I. Présentation

Dans cet article, nous allons nous intéresser au mécanisme et à la fonction de l'HSTS - HTTP Strict Transport Security. Nous finirons par un point de détail qui peut poser problème lors de l'utilisation d'un proxy (type BurpSuite) lorsque HSTS est implémenté sur un site web.

II. HSTS - Qu'est-ce que c'est ?

Le but principale d'HSTS est de renforcé la sécurité d'un site web et de ses utilisateur via deux actions :

Il arrive en effet que la sécurité des transmissions effectuées via HTTPS soit mise à mal, et ceci via différents scénarios :

Nous venons ici de voir les deux contextes où HSTS peut être mis en place afin de renforcer la sécurité d'un site web et de ses visiteurs.

Note : Tous les navigateurs possèdent une liste des autorités de certifications de confiance, lorsqu'un site web présente un certificat signé par l'une de ces autorités de certification (CA), alors le certificat est dit "de confiance", autrement, le navigateur émet une alerte.

III. Fonctionnement de HSTS

HSTS est défini par le serveur, c'est une instruction que le serveur web va passer au navigateur du visiteur. De son côté, le navigateur saura alors de quelle manière interagir avec le serveur. En exemple, voici l'entête HTTP réponse d'un serveur configuré pour utiliser HSTS :


Implémentation du HTTP Strict-Transport-Security dans une entête réponse d'un serveur web

Ici, la directive "includeSubDomains", permet de protéger également les sous-domaines avec HSTS, la directive "max-age" permet d'indiquer pour combien de temps à partir de la réception de cette réponse les "règles" HSTS sont à respecter pour le navigateur. Dans le contexte de l'exemple, le navigateur n'acceptera pas d'effectuer une requête en HTTP jusqu'à 31536000 secondes après la réception de cette réponse. Au delà, la directive HSTS sera "oubliée" et le navigateur acceptera d'effectuer des requêtes HTTP ou de proposer la validation d'un certificat auto-signé.

Pour cette raison, la directive HSTS est généralement incluse dans chaque réponse du serveur web, et non pas juste la première de l'échange.

Et la directive preload ?

Parlons un peu du "preload" au niveau HSTS. Si l'on analyse bien la situation, un navigateur qui n'a jamais fait de requête vers le site abcd.fr ne sait pas si celui-ci utilise HSTS ou non, il est donc susceptible d'y faire une requête via un canal non sécurisé (HTTP ou certificat Auto-signé). Les navigateurs ont alors mis en place une "preload list" intégrée aux navigateurs, qui savent alors si, pour un site donné, ceux-ci doivent utiliser HSTS ou non. Concrètement, il s'agit d'une liste "hard-codée" que l'on trouve dans les navigateurs, à l'image des autorités de certification. Pour information, il est possible d'inscrire sont site à cette preload list ici : https://hstspreload.appspot.com/.

e lien amène vers la liste gérée pour le navigateur Chrome, cette liste est elle même incluse dans la preload-list des navigateur concurrents.

Sachez toutefois que tous les navigateurs ne prennent pas en charge HSTS, voici une liste, récupérée au moment de l'écriture de cette article, qui détaille les navigateurs et versions compatibles :

Concrètement, le RFC  697 HTTP Strict Transport Security (HSTS) de novembre 2012 ne fait pas mention de la présence de la directive "preload" dans le header HTTP réponse du serveur, son rôle n'est donc pas clair et je suis preneur d'informations à ce sujet 🙂

Le cas BurpSuite + HSTS

Lorsque l'on utilise BurpSuite pour le deboggage ou lors d'un test d'intrusion web, il est possible de rencontre un problème si le site web visé implémente HSTS. Plus précisément, un problème de ce type (cas burpSuite + google.fr) :

Ici, et pour ceux qui ont bien compris les notions précédentes de cet article, le message est clair : HSTS est implémenté pour le site visité et Firefox ne peut établir de connexion dans un contexte non sécurisé (pas en https OU avec un certificat non signé par une autorité de certification de confiance).

Pour saisir pourquoi ce problème peut survenir dans les cas d'utilisation d'un proxy, il faut revoir rapidement le fonctionnement du proxy dans un contexte HTTPS.

Note : Ce contexte peut apparaitre dans le cas d'un Proxy SSL web, qui vise alors le trafic des utilisateur vers internet, ou alors un proxy "local" type BurpSuite ou similaire.

Lorsque l'on fait passer un trafic auprès d'un outil capable de l'analyse (Proxy/sniffeur réseau), aucun problème n'est à traiter lorsque celui-ci est en clair. Cependant, lorsque ce trafic est chiffré (via SSL, donc en HTTPS dans un contexte web), l'outil qui s'interpose entre le client et le serveur membre de la communication n'est plus capable de comprendre ce qui passe sur le réseau.

Afin de pouvoir comprendre ce trafic chiffrer, un proxy ou un analyseur réseau doit s'interposer également dans l'échange chiffré de la manière suivante :


On voit ici que le certificat utilisé entre le serveur et le Proxy (qui intercepte puis retransmet les requêtes des clients web) utilise le certificat signé du serveur web comme le ferait un client web sans présence du proxy. En revanche le trafic entre le client et le proxy utilise le certificat du proxy, ainsi le proxy peut déchiffrer le trafic en provenance et direction du client. Hors, ce certificat est dans la grande majorité des cas auto-signé ou signé par une autorité de certification locale et non inclue dans la liste par défaut des CA dans les navigateurs. Pour cette raison, la présence d'un proxy peut amener les utilisateurs à cet affichage :
L'utilisateur peut alors valider en tout conscience l’utilisation  d'un certificat signé par une autorité de certification qui n'est pas de confiance (dite "non trustée" en franglais).

C'est là qu'HSTS peut devenir bloquant, nous avons vu qu'en présence d'une implémentation HSTS, le navigateur doit refuser toute connexion dans un contexte non sécurisé, hors la présence d'un certificat signé par un CA qui n'est pas de confiance est un cas de figure de transmission non sécurisée. Dans un contexte HSTS, il nous est tout simplement pas autorisé d'ajouter un exception au navigateur, car cela irait à l'encontre de l'instruction HSTS fixée par le serveur web.

A noter que d'autres proxys dans le même type que BurpSuite ou même des proxys d'entreprise (Squid) sont aussi concernés.

Il est alors nécessaire de faire croire à notre navigateur que l'autorité de certification qui a signé le certificat utilisé par notre proxy est de confiance, cela en l'ajoutant à notre liste des autorités de certifications (CA) de confiance du navigateur.

IV. Résoudre le problème de l'HSTS lors de l'utilisation d'un proxy

Cette manipulation est documentée pour tous les navigateurs, je vous montre néanmoins la manière de procéder pour l'extraction dans BurpSuite et l'ajout dans Firefox :

Il faut commencer par aller récupérer le certificat du CA de BuprSuite, après avoir démarré BurpSuite puis avoir configuré Firefox pour passer au travers celui-ci, il faut saisir "http://burp" dans le navigateur :

Ensuite, il faut cliquer sur "CA Certificat" puis télécharger le fichier "cacert.der" :

Ce certificat devra ensuite être  ajouté dans Firefox, pour cela, aller dans "Options", puis dans "Avancé" > "Certificats" > "Afficher les Certificats" > "Autorités" > "Importer", nous allons alors devoir aller chercher le certificat nouvellement exporté de BurpSuite et cocher "Confirmer cette AC pour identifier des sites web." :


Une fois cela fait, Firefox considérera BurpSuite comme une autorité de certification de confiance, en conséquence, les conditions requises pour communiquer avec un site web ayant implémenté HSTS seront satisfaites. Voici un exemple de site possédant une implémentation HSTS dont les flux sont passés au travers BurpSuite :

Cette procédure peut être opérée sur tous les navigateurs.

Du point de vu sécurité, ce "bypass HSTS" est toutefois difficile à mettre en place si l'on souhaite effectuer une attaque par Man-In-The-Middle, en effet, il faut déjà avoir un accès au poste utilisateur pour effectuer la procédure d'ajout du certificat CA.

Voici une ressource complémentaire sur le fonctionnement et l'implémentation de l’analyse des flux HTTPS en entreprise, des recommandations de l'ANSSI qui détailles comment implémenter un proxy d'entreprise en position Man-In-The-Middle et interceptant le trafic HTTPS : Recommandations de sécurité concernant l’analyse des flux HTTPS

N'hésitez pas à partager vos recommandations et vos avis dans les commentaires !

Gestion d’empreinte numérique sur Linux

mardi 17 mars 2020 à 13:00

I. Présentation

Comme sous GNU/Linux tout est fichier, il convient de vérifier systématiquement la provenance des éléments téléchargés ainsi que ceux déjà en place sur le système. Pour cela, on doit alors calculer une empreinte de l’élément en question : fichier ou téléchargement. On parle aussi de fingerprint, de message-digest ou encore de checksum. Il s’agit d’une valeur de 128 bits correspondant à une somme de contrôle, calculée à partir de l’élément quel qu’il soit : archive, fichier(s), image ISO…

REMARQUE : on parle également de l’empreinte d’un fichier comme d’un hash ou d’une somme de contrôle. En ce qui concerne ce billet, nous nous intéresserons tout particulièrement aux éléments téléchargés, pus qu’à ceux déjà en place qui nécessitent un autre type d’outil appelé IDS (Intrusion Detection System) qui fera l’objet d’un autre tutoriel.

Je vous propose de détailler ici le processus de vérification des différents éléments que l’on peut télécharger sur des sites référencés, tels que fichiers, archives, image ISO ou encore système complexes. Un checksum MD5 n’a d’autre but que de garantir la provenance du fichier d’origine voire d’un groupe de fichiers. Son intérêt majeur est de permettre la vérification de l’intégrité des données ainsi récupérées. Cela couvre le risque d’une perturbation ou d’un problème réseau, ayant pour conséquence, lors d’un téléchargement, de corrompre une archive ou un fichier en cours de déploiement. Mais, cela permet aussi de s’assurer qu’aucune attaque d’individus peu scrupuleux, détournant ou falsifiant les fichiers vitaux du système, n’a eu lieu.

REMARQUE : il existe différents formats d’algorithmes de calcul d’empreinte : SHA-1, SHA-2 et même, aujourd’hui, SHA-3. MD5 est l’une des fonctions de l’algorithme SHA-1 qui est normalement obsolète. Il est conseillé d’utiliser les fonctions de l’algorithme SHA-2. Mais, pour des besoins de calculs et de vérifications rapides, on peut toutefois encore utiliser md5sum.

En résumé, en comparant l’empreinte MD5 (ou autre) du fichier que l’on souhaite récupérer à celle que le site de téléchargement nous fournit, on peut ainsi être certain que l’élément récupéré correspond bien à celui distribué officiellement par le site de récupération et qu’il n’a été en aucune manière corrompu. On garantit ainsi qu’il s’agit bien du même fichier et que ce dernier est entier (non tronqué) et surtout non falsifié.

II. Un peu d'histoire

Les fonctions de hachage MD5 ont été inventées en 1991. Mais, en 1996, deux éventualités de collision ont été découvertes via ces mêmes fonctions. Cela signifie qu’avec deux entrées différentes, on peut réussir à obtenir la même signature d’empreinte. Cela a été conforté par la découverte en 2004 de véritables collisions complètes. Par ailleurs, ce genre de signature peut être facilement cassée grâce à des attaques de type arc-en-ciel (aussi appelée rainbow table).

Ce genre de problématique correspond en cryptanalyse à une structure de données, permettant de retrouver un mot de passe à partir de son empreinte. Il s’agit d’une amélioration des compromis temps-mémoire proposé par Martin HELLMAN dans les années 1980. La table arc-en-ciel est constituée de paires de mot de passe où chaque ligne est composée d’un mot de passe de départ et un mot de passe d’arrivée. Ainsi, pour calculer la table, on établit des chaînes grâce à un mot de passe initial. Celui-ci subit une série de réductions et de hachage afin d’obtenir des éléments intermédiaires (avec mot de passe et empreintes correspondantes).

La fonction de réduction transforme une empreinte en un nouveau mot de passe. Afin d’éviter les problèmes de collision, plusieurs fonctions de réductions doivent être utilisées. Ainsi, après plusieurs milliers d’itérations, on obtient un mot de passe en bout de chaîne. C’est celui-ci qui sera stocké avec le mot de passe d’origine de cette chaîne. Le reste de la chaîne n’est alors pas conservée afin de limiter l’utilisation de la mémoire nécessaire.

REMARQUE : il est toutefois possible de retrouver les différentes étapes intermédiaires en calculant l’ensemble de la chaîne à partir de l’élément en tête de liste.

On recommence avec un autre mot de passe pour établir une nouvelle chaîne et ainsi de suite jusqu’à la constitution d’une nouvelle table dont les statistiques soient suffisantes pour garantir le succès de l’attaque.

Exemple : table arc-en-ciel avec trois fonctions de réduction :

En parallèle, l’algorithme de hachage SHA-1 a été publié en 1995. Mais, de la même manière que pour MD5, des chercheurs ont mis en évidence des attaques possibles contre ce mécanisme et cela a très vite été remplacé par l’algorithme SHA-2, fournissant alors des fonctions plus complexes telles que SHA-224 (avec la commande sha224sum), SHA-256 (avec la commande sha256sum), SHA-384 (avec la commande sha384sum) et SHA-512 (et la commande sha512sum). Depuis 2015, il existe même un algorithme SHA-3 encore plus complexe.

III. Utilitaire md5sum

Sous GNU/Linux, l’utilitaire md5sum est en général partie intégrante de la distribution. Si toutefois ce n’était pas le cas, on peut installer le package coreutils afin de permettre de disposer de la fonctionnalité d’empreinte MD5 et de sa commande md5sum. Tout ce qu’il y a à faire alors est de se placer dans le répertoire contenant l’élément à vérifier et à exécuter la commande suivante :

$ md5sum Fichier

Exemple : pour effectuer la vérification du fichier /etc/passwd :

$ md5sum passwd
2d8d90df3c4b84eb9e281a3f10767aa5 passwd

Bien évidemment, si l’on ne se trouve pas dans le dossier ou répertoire du fichier à vérifier, il faut alors fournir le chemin d’accès à celui-ci en absolu (en d’autres termes le chemin complet) :

$ md5sum /etc/passwd

On peut alors facilement imaginer vérifier n’importe quel type de fichier, comme par exemple une archive compressée au format .tar.gz (ou même au format .tar.xz) :

$ md5sum LibreOffice_6.3.4_Linux_x86-64.tar.gz

La valeur affichée doit bien sûr être la même que celle fournie par l’éditeur (ou l’auteur dans le cas d’un package), de l’élément à télécharger, qu’il s’agisse d’un package, d’une archive ou d’une image ISO. On peut facilement rediriger l’empreinte récupérée dans un fichier texte en vue d’effectuer des traitements ou des comparaisons ultérieurement :

$ md5sum Fichier > Fichier.cksum

Ensuite, pour effectuer la vérification, on peut alors exécuter la commande suivante permettant de vérifier la présence de n’importe quel changement :

$ md5sum -v -c Fichier.mksum

Cela fonctionne aussi avec d’autres fonctions de calcul d’empreinte tels que sha256sum ou sha512sum qui sont moins risqués. De plus, si un fichier comporte une anomalie ou une différence par rapport à l’original, md5sum le signalera automatiquement.

REMARQUE : il est possible de réaliser l’empreinte de plusieurs fichiers en simultané grâce à l’instruction suivante (ou en combinant avec une commande find) :

$ md5sum Fichier1 Fichier2

De façon générale, on peut formaliser le calcul de l’empreinte d’un fichier de la façon suivante :

$ echo -n “MonFichier“|md5sum 2d8d90df3c4b84eb9e281a3f10767aa5 -

ATTENTION : si l’on souhaite calculer l’empreinte d’une chaîne de caractères (ou d’un mot de passe) cela est tout à fait possible mais il faut alors exécuter la commande suivante :

$ echo -n “Chaine“|md5sum <Digest Chaine>

IV. Vérification d'archives

En ce qui concerne les archives, qui contiennent la plupart du temps des systèmes plus complexes, voire des applications ou des suites logicielles, on peut bien sûr continuer d’utiliser md5sum, mais il est fortement conseillé d’utiliser à la place sha256sum (ou mieux encore sha512sum).

REMARQUE : ce que l’on vient de dire des archives est également vrai pour des fichiers de type image ISO.

En fait, MD5 permet de garantir l’intégrité des données, mais pas nécessairement leur provenance. Pour cela, on doit utiliser un autre outil. Par exemple, si l’on se réfère aux archives du code source du noyau linux disponible sur le serveur http://ftp.lip6.fr/pub/linux/kernel/sources/ (quel que soit la version jusqu’à v4.x), on remarquera des fichiers au suffixe évocateur .sign contenant des lignes comme celle décrite ci-dessous :

----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJbcJ/kAAoJEHm+PkMAQRiGI4QH/RbfO3a0w6JHlNl6DxDbMpluAT7oGfC08YO1pJ8ZJcIPiOAxOQ0SUcI/RIcgYWtM3/2/k6FC7txCbDmE/3PW8bWNFqdn+1qtL3DUAG5GH9vbC8aTmNh2EvEkH96vWh7zBQZrOt6H3kiwrHdcfHVPDdu6JHf8ecsyYtF1Y2XrSQq4nzs298FbAkDkR+IQ0oV28kOoHv0MwHJ2ofvKcNffQ3StJrypnkqCTQEX0IGWUwz/N5xMp0e3eM+gE7FsWsIcTZNbWk7hBbQ2rbytq30OZTVNfRRHR4qVnFp8G7jKS4CdEQVfTgwl4KL15Ri7tdY0LUS3dTafITJ8LTXtd/Er7Io==Ub5V
-----END PGP SIGNATURE-----

Il s’agit en fait d’un fichier de signature GPG (anciennement PGP – Pretty Good Privacy passée sous licence privée et remplacée par Gnu Privacy Guard), permettant de garantir la provenance dudit fichier. Les signatures de ce type reposent sur une méthode de chiffrement à clé publique. Cela permet à un développeur (ou un groupe de développeurs de signer de manière électronique son œuvre : un fichier de code, une archive, un message voire même une image ISO, en utilisant sa clé secrète (aussi appelée clé privée). Cette dernière ne devrait (et ne doit d’ailleurs jamais) être divulguée publiquement.

Afin de vérifier une signature, on utilise alors l’homologue de la clé privée, appelée par opposition : clé publique.  Celle-ci, en revanche est mise à la disposition de tous et est présente d’ordinaire dans un serveur de clés. Si l’on reprend l’exemple du code source du noyau linux il nous faut alors récupérer la clé publique correspondant au projet de “Kernel Linux“. Dans le cadre de projets reconnus, si les développeurs sont consciencieux on devrait systématiquement trouver une page dédiée au signalement du numéro de clé à utiliser. En ce qui concerne le noyau linux, on trouve cette page à l’adresse suivante http://www.kernel.org/signature.html. Ainsi, la clé recherchée est 0x517D0F0E.

REMARQUE : généralement sur cette même page on dispose également des empreintes de chaque développeur du projet, comme c’est le cas du projet du noyau linux :

Ainsi, pour poursuivre la démarche et récupérer la clé publique du projet (qu’il s’agisse d’une image ISO ou d’archives), il nous faut utiliser le logiciel Gnu Privacy Guard (autrement dit : gpg). Si celui-ci n’est pas encore installé, il faut pour cela exécuter la commande suivante :

$ yum install gnupg

REMARQUE : sur une distribution Debian ou Ubuntu, la commande utilisera plutôt le gestionnaire de package apt :

$ apt-get install gnupg

Après quoi, on peut alors récupérer la clé publique souhaitée en exécutant l’instruction ci-dessous :

$ gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E
gpg: requête de la clé 517D0F0E de wwwkeys.pgp.net...
gpg: clé 517D0F0E: clé publique importée
gpg:        Quantité totale traitée: 1
gpg:                             importée: 1

Dès lors, on peut alors vérifier la validité de l’archive en combinant maintenant l’ensemble des informations :

$ gpg –verify linux-4.18.7.tar.sign linux-4.18.7.tar.xz

REMARQUE : depuis quelques temps déjà il existe une version plus récente de gpg appelée gpg2. De plus, dans la documentation officielle le serveur de clé à interroger est généralement hkp://keys.gnupg.net. Mais, la plupart du temps on n’arrive pas à récupérer les clés publiques. Il vaut mieux en cas de message d’erreur interroger hkp://pgp.mit.edu.

D’ailleurs en utilisant cette nouvelle version, on dispose également de l’information du développeur concerné par ce code :

$ gpg2 –keyserver hkp://pgp.mit.edu –recv-keys <PubKey>

Cela permet d’afficher alors le résultat sous la forme suivante :

On constate ainsi que dans le cas présent le développeur n’est autre que Greg KROAH-HARTMAN, membre éminent de l’équipe de développement du noyau linux, aux côtés de Linux TORVALDS, que l’on peut joindre à l’adresse greg@kroah.com. Ainsi, on est certain qu’il ne s’agit pas d’un vague développeur au fond d’un garage qui est l’auteur de ce code et on valide ainsi la provenance de la source du téléchargement.

IV. Vérification du paquetage

Peut-être le savez-vous, mais les paquetages (qu’il s’agisse de .rpm ou de .deb) sont également équipés d’un mécanisme de signature PGP permettant, comme on l’a vu précédemment avec les archives (ou les images ISO) de vérifier l’intégrité du téléchargement et la provenance dudit package.

REMARQUE : la vérification d’intégrité de paquetage ne vaut que pour un fichier à télécharger, non encore installé sur le système. Par ailleurs, dans la majorité des cas, les paquetages récupérés appartiennent à des dépôts officiels et/ou déclarés : CentOS, RHEL, Fedora…

Par défaut, l’utilitaire yum vérifie l’intégrité des paquets qu’il installe en utilisant la clé GPG du dépôt. Cette vérification permet de confirmer l’origine “contrôlée“ du paquet et d’assurer que celui-ci n’a pas été altéré depuis sa mise en ligne, volontairement (acte de piratage) ou non (problème de téléchargement). Lorsque la vérification échoue il est déconseillé d’installer le paquet incriminé. Toutefois, on peut malgré tout passer outre et effectuer la vérification à l’aide de l’utilitaire rpm. Prenons comme hypothèse de travail, que nous souhaitions installer le package postfix sur notre serveur et que pour cela, nous devons le télécharger depuis le site https://centos.pkgs.org/7/centos-x86_64/postfix-2.10.1-7.el7.x86_64.rpm.html. Après avoir récupéré le package, il est alors possible d’utiliser la commande suivante :

$ rpm --checksig postfix-2.10.1-7.el7.x86_64.rpm

Dans ce cas, soit on a préalablement chargé la signature et on recevra un message comme celui-ci-dessous :

postfix-2.10.1-7.el7.x86_64.rpm: md5 gpg OK

Dans le cas contraire, on recevra le message suivant :

postfix-2.10.1-7.el7.x86_64.rpm: digests SIGNATURES PAS OK.

ATTENTION : lorsqu’on se retrouve avec un paquet rpm non signé à installer (ce qui n’est généralement pas le cas d’un paquet issu d’un dépôt officiel), on peut tout de même l’installer via la commande suivante :

# yum localinstall –nogpgcheck <Package>.rpm

Enfin, si l’on dispose du fichier de signature .asc correspondant au paquet récupéré, il suffit alors d’exécuter la commande suivante pour l’intégrer au système :

# rpm --import postfix.asc

On peut également effectuer cette opération d’import à partir d’une adresse URL. Par exemple, pour intégrer la signature de MySQL, on pourrait exécuter :

# rpm --import http://dev.mysql.com/doc/refman/5.1/en/checking-gpg-signature.html

On rappelle également que dans les fichiers .repo de déclaration de dépôts, on trouve un champ gpgcheck (ainsi que enabled pour l’activation ou non de cette option) et le champ gpgkey fournissant les indications de récupération des signatures.

En ce qui concerne les paquets .deb des distribution Debian, on trouve également un moyen de vérifier que le paquet à installer provient bien de son mainteneur et qu’il n’a subi aucune altération. On parle de scellement de paquets. La signature, en tant que telle ne se fait pas directement au niveau du paquet mais au niveau de la Release et de sa signature Release.gpg. Ce fichier est placé sur les miroirs Debian indiqué dans le fichier /etc/apt/sources.list. Il fournit la liste des différents fichiers Packages, accompagnés de leur somme de contrôle MD5, SHA1 et SHA256. Ces dernières permettant de vérifier que le contenu du paquet n’a pas été altéré.

Les fichiers Packages intègrent à leur tour une liste de paquets Debian ainsi que leur somme de contrôle afin de garantir que leur contenu n’a pas lui non plus été altéré. La gestion des clés de confiance s’effectue via l’utilitaire apt-key, fourni par le package apt. Ce dernier tient à jour un trousseau de clés publiques GPG, utilisées pour vérifier les signatures des différents fichiers Release.gpg obtenus depuis le ou les miroirs Debian.

REMARQUE : on peut bien sûr se servir de ce programme pour ajouter manuellement des clés supplémentaires (lorsqu’on souhaite ajouter des miroirs autres que les officiels). Mais, dans le cas courant, seules les clés officielles Debian sont vraiment utiles.

Les clés sont automatiquement maintenues à jour par le package debian-archive-keyring qui installe les trousseaux de clés dans le répertoire /etc/apt/trusted.gpg.d. Toutefois, on notera que la première installation de ce même paquet pose problème car, même s’il est signé (comme les autres packages), cette signature ne peut être à son tour vérifiée de façon externe. Aussi, le principe consiste-t-il à vérifier les empreintes (aussi appelées fingerprints) des clés importées, avant de leur faire aveuglément confiance et d’installer de nouveaux paquets. Pour se faire, il suffit d’exécuter la commande suivante :

# apt-key fingerprints

Ce genre de commande permet de lister, pour une distribution Debian, les empreintes (ou fingerprints) des clés importées. En les comparant avec celle du package à télécharger, cela permettra de leur faire confiance ou non avant leur installation :

Exemple : fichier xz-utils.md5sums contenant les empreintes des fichiers du package xz-utils :

Cet outil permet de générer des listes de sommes de contrôle à partir des archives .deb pour des paquets n‘en possédant pas. Toutefois, là encore, ce programme, s’il n’a pas été lancé depuis un média sûr avec une version déjà vérifiée de debsums. Du coup, des outils associés pour valider les autres paquets déjà installés, ne seront pas d’une grande utilité en matière de sécurité et d’intégrité.

V. Conclusion

Lors de la durée de vie du système d’exploitation vous pourrez aussi être amenés à utiliser des outils gérant l’intégrité des fichiers de l’ordinateur à posteriori tels que tripwire, AIDE, integrit ou d’autres outils du même genre.

Voilà, vous pouvez maintenant vous consacrer à vos empreintes. Vous savez désormais tout ou presque concernant l’intégrité et l’identification de la provenance de vos téléchargements. Alors j’espère que désormais afin de limiter le risque potentiel de virus, de vers ou d’autres attaques sournoises sur vos systèmes vous penserez à vérifier l’un et l’autre dès lors que vos effectuerez un chargement de fichiers, d’image ISO ou de paquetages.