PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Firefox : Le DNS-over-HTTPS va être testé dans le mois

jeudi 12 septembre 2019 à 13:30

DNS-over-HTTPS est une méthode de protection pour la résolution DNS introduite au sein de Firefox 60, il y a plus d'un an. Mozilla va maintenant l'activer auprès d'un pool d'utilisateurs aux Etats-Unis afin de réaliser des essais.

Rappel : par défaut, la résolution DNS n'est pas chiffrée alors avec le protocole DNS-over-HTTPS l'idée est de faire passer les requêtes dans un flux HTTPS classique. A ne pas confondre avec le DNS-over-TLS qui a pour objectif de chiffrer directement les requêtes.

Pour que cela fonctionne, le serveur DNS utilisé doit être compatible, ce qui est un problème. Mozilla va donc pré-configurer son navigateur pour utiliser les serveurs DNS du géant américain Cloudflare. Cela signifie que la résolution DNS pour les flux Firefox ne sera plus gérée par le système d'exploitation mais directement par le navigateur.

Ce qui pose plusieurs problèmes notamment pour utiliser les solutions de filtrage de manière efficace à cause du chiffrement : un logiciel de contrôle parental, un proxy/firewall pour filtrer les sites Internet, etc.

Cela peut paraître effrayant, par exemple au Royaume-Uni, Mozilla est désormais classé dans la catégorie des "méchants d'Internet" par l'Association des fournisseurs d'accès à Internet (ISPAUK).

Mozilla a conscience des conséquences et travaille déjà sur le sujet... Bientôt rejoint par Google qui va intégrer la même fonctionnalité à Chrome 78 le mois prochain.

A suivre.

Mozilla va devenir dépendant de Cloudflare, est-ce vraiment une bonne idée ?

Debian 10 et Secure Boot : comment s’adapter au démarrage sécurisé ?

jeudi 12 septembre 2019 à 09:30

I. Présentation

Ça y est, Debian 10 (alias Buster) est maintenant sorti depuis le début de l’été apportant son lot de nouveautés. Du côté de l’installation, on aura l’occasion de voir cela au travers d’un autre tutoriel. Je vais plutôt vous parler du nouveau mode de démarrage initié depuis cette nouvelle version de la distribution Debian.

En effet, parmi les notes de la "Release", on peut lire que la distribution s’adapte désormais au mode de démarrage sécurisé (aussi appelé secure boot) inclus dans les BIOS de nouvelle génération, appelé UEFI (Unified Extensible Firmware Interface). Mais, peut-être serait-il de rappeler la fonction de tous ces éléments.

II. Le Secure Boot

Comme nous venons de le dire le démarrage sécurisé (ou secure boot) est inclus dans la nouvelle génération de BIOS appelé UEFI. Cela doit permettre de sécuriser la chaîne de démarrage de l’UEFI du début à la fin du chargement du système d’exploitation afin de s’assurer qu’aucun éléments indésirables (rootkits ou bootkits) ne viennent compromettre l’intégrité de l’ensemble de l’ordinateur.

RAPPEL : un rootkit a la particularité de démarrer avant n’importe quel programme de sécurité du système d’exploitation. Aussi, il s’agit ici d’empêcher toute activation de code nocif, avant le démarrage définitif du système de la machine.

Ce mode de fonctionnement est issu des laboratoires de la firme Microsoft et lors de la mise à jour de Windows 8 vers Windows 8.1, ce fonctionnement a été automatiquement activé sur l’ensemble des équipements dédiés et labellisés pour ce système d’exploitation, provoquant ainsi des réglages inadaptés de certains UEFI. Ceci a donc déclenché l’apparition de messages d’erreur sur certains systèmes, voire même empêché certains serveurs de démarrer.

Certaines distributions se sont alors employées à autoriser le mode de démarrage sécurisé. Cela a été le cas pour des distributions telles que Fedora, puis Red Hat, qui n’ont pas hésité à débourser de l’argent pour acheter le sésame magique : le fameux certificat Microsoft permettant alors de démarrer une machine équipée d’un BIOS UEFI, sur lequel le mode de démarrage sécurisé serait activé.

Mais, Debian faisait de la résistant. En effet, le credo de cette célèbre distribution consiste à affirmer haut et fort qu’aucun logiciel hors du circuit Open Source ne pouvait être exécuté sur le système. Or, l’adjonction d’un tel certificat (même pour sa propre sécurité), n’entrait pas jusque-là dans la politique maison de Debian.

Depuis, Microsoft est sorti de son silence en déclarant que la fonction secure boot n’était pas configurée correctement dans l’UEFI et que celle-ci n’était pas activée dans le système du BIOS, provoquant de fait le message qui apparaissait précédemment. Pour régler cet inconvénient, deux solutions :

REMARQUE : toutefois, il faut noter que les cas de figure varient selon la version du système BIOS et la marque de la machine.

Revenons en maintenant au fonctionnement du secure boot. Cette fonctionnalité est apparue avec les EFI, permettant de contrôler l’exécution des fichiers binaires au format portable exécutable, de la même façon qu’un exécutable Windows (dont l’extension est .exe), en les autorisant ou non à s’exécuter. Ces programmes ont pour extension .efi. Mais, afin d’être démarrés et déclarés bootables, ces programmes doivent être placés sur une partition FAT (16 ou 32 bits), lors du démarrage de la machine.

REMARQUE : ces partitions peuvent être situées sur une clé USB ou directement sur une des partitions du disque dur de la machine.

Or, avec l’arrivée de Windows 8, puis de Windows 8.1, Microsoft a imposé aux constructeurs de mettre en place ce fameux démarrage sécurisé sur les UEFI et permettre le démarrage des bootloaders Windows uniquement, en les sécurisant. Ainsi, aucun autre programme .efi n’est bootable, puisque leur démarrage sécurisé est actif, impliquant de fait que les autres systèmes d’exploitation, hébergés sur ce type d’équipement, ne peuvent alors démarrer. C’est pourquoi les communautés GNU/Linux se sont mobilisées pour permettre malgré tout d’utiliser ce genre de matériel avec des systèmes Linux. Le fait que Debian s’y mette aussi n’est pas sans conséquence.

En effet, le fait d’utiliser ce mode sécurisé de démarrage implique certaines considérations. En effet, certaines fonctions seront systématiquement désactivées, car elles risquent de modifier le noyau linux, court-circuitant la sécurisation de l’espace système :

La Linux Foundation a travaillé sur ce problème et a imaginé un moyen de laisser activée la fonction de démarrage sécurisé. Les fichiers issus de cette réflexion sont :

Mais, ces fichiers s’adressent toutefois à des utilisateurs chevronnés sachant parfaitement utiliser ce genre d’exécutables. Une autre solution consiste à utiliser l’utilitaire shim. Il s’agit d’un package logiciel agissant comme un premier stage de bootloader sur des systèmes UEFI. Cette fonction est devenue la racine de confiance de l’ensemble des programmes UEFI. Elle embarque une autorité de certification de clés (notée CA), utilisée alors pour signer les programmes : le noyau linux, le bootloader GRUB ou encore le gestionnaire de firmware fwupdate.

En plus de l’autorité de certification de shim, les utilisateurs peuvent gérer une base de clés supplémentaire appelée la Machine Owner Key (et abrégée en MOK). Ainsi, les utilisateurs peuvent ajouter ou supprimer facilement des clés de programmes au sein de ce réceptacle. Un gestionnaire appelé mokutil permet d’administrer les éléments au sein de cette base de données.

Toutefois, les modifications de ces clés de la base MOK ne peuvent être réalisées que depuis la console, lors de la phase de démarrage. Cela réduit alors le risque d’introduire des maliciels ou d’effectuer des actions abusant de la confiance du système, en introduisant de nouvelles clés à l’insu de l’administrateur.

De plus, dans l’architecture UEFI, il existe quatre variables importantes s’installant au sein d’une ROM de la carte mère de façon persistante :

III. Génération des clés

La mise en adéquation du mode sécurisé de démarrage avec la nouvelle version Debian 10 nécessite en premier lieu la génération de nos propres clés PK, KEK et db. Commençons par se créer un répertoire de travail :

$ mkdir efikeys
$ cd efikeys

Ensuite, passons à la création des clés en utilisant OpenSSL pour générer des clés RSA de longueur 2048 bits ainsi qu’un certificat X.509 en SHA-256 avec une expiration dans 10 ans :

$ openssl req -new -x509 -newkey rsa:2048 -subj "/CN=PK-Debian/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256
$ openssl req -new -x509 -newkey rsa:2048 -subj "/CN=KEK-Debian/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
$ openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Kernel-SignKey-Debian/" -keyout db.key -out db.crt -days 3650 -nodes -sha256

REMARQUE : le contenu ou descriptif du champ CN (Common Name) est laissé à la discrétion de l’administrateur et peut être remplacé par n’importe quel texte que l’on souhaite.

Au final, nous disposons maintenant de trois certificats :

Ainsi que de trois clés privées associées :

IV. Préparation et installation des clés

Puisque désormais nous avons nos clés et certificats, on peut générer une liste de signatures, signées au format .auth. En effet, la majorité des architectures UEFI n’acceptent que ce format. Pour cela, on doit récupérer l’utilitaire Open Source efitools. Ce package peut se télécharger depuis la page https://packages.debian.org/buster/efitools.

Ensuite, on doit générer la liste de signatures en les signant avec notre clé PK créée précédemment :

$ cert-to-efi-sig-list -g "$(uuidgen)" PK.crt PK.esl
$ sign-efi-sig-list -k PK.key -c PK.crt PK.esl PK.auth

On peut alors pratiquer de la même façon pour la clé KEK ainsi que la clé db :

$ cert-to-efi-sig-list -g "$(uuidgen)" KEK.crt KEK.esl
$ sign-efi-sig-list -a -k PK.key -c PK.crt KEK KEK.esl KEK.auth
$ cert-to-efi-sig-list -g "$(uuidgen)" db.crt db.esl
$ sign-efi-sig-list -a -k KEK.key -c KEK.crt db db.esl db.auth

La mise en place de ces clés est un peu plus délicate. En effet, pour les intégrer à notre architecture UEFI on va les transférer sur une clé USB et démarrer le menu UEFI pour se rendre dans la section "Key Management", afin d’exécuter les opérations suivantes (précisément dans l’ordre décrit ci-dessous):

Pour ces trois dernières actions, une fenêtre s’affichera à l’écran, permettant ainsi de sélectionner les fichiers stockés sur notre clé USB. Une fois les clés intégrées, on peut quitter le système en sélectionnant l’option "Save & Exit".

REMARQUE : jusque-là nous avons délibérément laisse la clé dbx de côté. Ainsi, on pourra au choix, générer une liste vierge ou récupérer un ancien fichier dbx présents dans le Secure Boot de notre UEFI. Par contre, il faudra signer ce dernier, à nouveau, avec notre nouvelle clé KEK et le remettre en place avec sa nouvelle signature.

V. Signature du binaire de démarrage

Maintenant que les clés sont intégrées, on doit encore signer le binaire à exécuter. Pour cela, on va utiliser l’utilitaire sibsign, tiré du paquet sbsigntool afin d’en créer une version .efi signée:

$ sbsign --key KEK.key --cert KEK.crt --output BootSigned.efi Boot.efi

ATTENTION : le fait d’utiliser la clé KEK et son certificat n’est pas une généralité et dépend fortement des machines sur lesquelles on effectue ces opérations. Il se peut qu’il faille remplacer l’utilisation de la clé KEK et de son certificat par ceux de la clé db.

Lorsque cela est fait, il ne reste plus qu’à déposer le fichier en sortie sur notre clé USB, sous l’appellation Bootx64.efi. La chaîne de démarrage est maintenant complète. Bien évidemment, on aurait aussi bien pu utiliser PXE et le protocole TFTP pour manipuler ces clés, en lieu et place de la clé USB.

En résumé, voici le genre d’architecture que nous avons construit :

Ce principe s’applique également aux modules noyau non signés ou à tout autre programme que l’on souhaiterait voir démarrer avant le bootloader GRUB. Maintenant, après cette première approche, on va vite s’apercevoir qu’au niveau du système, nombre de modules, pas encore inclus dans le noyau ne pourront plus fonctionner. En effet, certains modules sont fournis via DKMS (Dynamic Kernel Modules Support) et compilés à l’installation du paquet. Or, lorsque Secure Boot est installé et configuré, les modules non signés par la clé Debian ne sont pas activés. Voyons donc, comment traiter ce cas de figure.

VI. Signature des modules DKMS

Nous allons alors créer un couple de clés privée/publique en RSA sur 2048 bits. La clé publique sera convertie au format DER et chargée en base MOK (Machine Owner Key).

REMARQUE : afin de ne pas mélanger les clés servant à UEFI et celles que l’on va maintenant utiliser, nous les stockerons dans le répertoire /etc/dkms/keys.

Nous devons créer cette arborescence et y créer notre paire de clé de la façon suivante :

# mkdir -p /etc/dkms/keys
# chmod -R 700 /etc/dkms/keys
# cd /etc/dkms/keys
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.key -out MOK.crt -nodes -days 3650-subj "/CN=Srv01/"

On changera évidemment le nom de la machine Srv01 par celui de son environnement. De plus, on notera ici que l’on travaille directement avec le compte root et non plus le compte d’un utilisateur délégué. La conversion au format DER s’obtient en exécutant la commande suivante :

# openssl x509 -in MOK.crt -out MOK.der -outform DER

Maintenant, il faut intégrer ces clés dans notre base MOK. Pour cela, on va utiliser l’utilitaire mokutil indiquant à shim de charger les clés au prochain redémarrage :

# mokutil --import /etc/dkms/keys/MOK.der

Soit dit en passant, on comprend pourquoi shim s’appelle ainsi, il s’agit d’une véritable cale (ou emplacement de stockage) de clés !

ATTENTION : l’utilitaire mokutil demande la saisie et la confirmation d’un mot de passe afin de protéger l’accès à cette clé, lors de son chargement dans la base MOK via shim. Il est conseillé d’utiliser un mot de passe se saisissant facilement via le clavier, sinon on risque ne pas pouvoir le ressaisir par la suite.

Dès lors, il ne reste plus qu’à rebooter la machine et lors de la phase de redémarrage, un nouvel écran shim apparaitra et permettra alors d’importer la clé publique précédemment générée dans notre base MOK. Désormais, on peut alors manuellement signer les modules DKMS et leur permettre d’être pris en compte par la base MOK.

Heureusement, sous Debian, les modules DKMS ne sont pas compressés et peuvent donc être signer directement, via un simple modprobe du module. Dans le cas contraire, il faudrait utiliser un outil de signature tel que sign-file, utilisable comme suit :

# /usr/lib/linux-kbuild-<KernelVers>/scripts/sign-file sha256 <Private> <Public> <Module>

 

VII. Conclusion

Voilà vous savez tout ou presque sur la fonctionnalité de Secure Boot UEFI. Maintenant, il reste à mettre en application. Il est vrai que l’ensemble de la procédure peut s’avérer longue et rébarbative. Mais, je ne doute pas que la communauté Linux mette rapidement en œuvre une solution intégrée et adaptée à ce nouveau mode de démarrage.

Pour aller plus loin dans la démarche, on peut notamment automatiser la signature des modules DKMS permettant ainsi de les rendre utilisable immédiatement (sur des distributions autres que Debian). Quoi qu’il en soit, on ne coupera pas au fait de devoir redémarrer le serveur plusieurs fois afin d’intégrer les différentes clés dans la base de gestion de l’utilitaire shim. En espérant que cela vous sera utile pour sécuriser vos distributions Debian (ainsi que les autres d'ailleurs).

Patch Tuesday – Septembre 2019 : 79 vulnérabilités, 17 critiques.

mercredi 11 septembre 2019 à 13:45

Le Patch Tuesday de la rentrée est là ! Microsoft corrige 79 vulnérabilités au travers de ce pack de correctifs, dont 17 classées comme critique.

Le chercheur Tavis Ormandy (Google Project Zero) avait découvert, en août 2019, une vulnérabilité qui permettait à un utilisateur standard d'exécuter des programmes avec des privilèges élevés. Microsoft avait corrigé une partie de cette vulnérabilité le mois dernier (CVE-2019-1162), la suite arrive ce mois-ci (CVE-2019-1235).

Microsoft a également corrigé 4 vulnérabilités au niveau du client RDP. Si un utilisateur se connecte sur un serveur RDP malicieux, cela offre la possibilité à l'attaquant d'exécuter du code à distance sur le poste de l'utilisateur. Ces vulnérabilités sont référencées comme suit : CVE-2019-0787, CVE-2019-0788, CVE-2019-1290 et CVE-2019-1291.

Le Patch Tuesday de septembre contient également un correctif pour Adobe Flash Player afin de corriger une faille critique. D'autres composants sont également concernés par ce patch : .NET Framework, Office, Windows Secure Boot, ADFS (faille XSS), ou encore Exchange on-premise, etc.

Au-delà des correctifs liés à la sécurité, espérons que Microsoft corrige les dysfonctionnements causés par la mise à jour KB4512941 (utilisation anormale du processeur, notamment) via ce Patch Tuesday. Ce qui est possible, car Microsoft avait annoncé un correctif à la mi-septembre.

Source

Comment installer et configurer sSMTP sur CentOS 7.6 ?

mercredi 11 septembre 2019 à 09:20

I. Présentation

L'outil sSMTP est une très bonne alternative à Postfix et Sendmail si vous souhaitez envoyer des e-mails à partir de votre serveur Linux, notamment sous CentOS ou Debian. Il présente l'avantage d'être simple à configurer et léger, il consomme donc peu de ressources, et se contentera de faire le relais vers le serveur de messagerie configuré.

Dans cet exemple, j'utilise une machine sous CentOS 7.6. Cependant, la configuration de sSMTP en elle-même est applicable sur d'autres distributions, notamment Debian.

II. Installer sSMTP

Grâce au gestionnaire de paquet yum, installez le paquet avec la commande suivante :

yum install -y ssmtp

Si vous obtenez un message indiquant que le paquet n'est pas disponible, ajoutez le dépôt EPEL à votre système :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* 
yum -y install epel-release

Passons maintenant à la configuration.

III. Configurer sSMTP - ssmtp.conf

Sachez que sSMTP s'appuie sur deux fichiers pour sa configuration :

- /etc/ssmtp/ssmtp.conf
- /etc/ssmtp/revaliases

Le premier est le fichier de configuration principal, c'est surtout celui-ci qui va nous intéresser. Le second sert à spécifier une adresse e-mail spécifique (alias) à utiliser pour un utilisateur.

Maintenant, ouvrez le fichier de configuration principal ssmtp.conf mais avant cela, nous en faisons une copie :

cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.origin
nano /etc/ssmtp/ssmtp.conf

sSMTP ira s'authentifier auprès du serveur de messagerie ciblé, avec vos identifiants, pour envoyer les e-mails. Il est tout à fait possible d'utiliser un compte Gmail, OVH, Ionos, etc... À condition d'indiquer les bonnes infos.

Voici un exemple de configuration complet et commenté que vous pouvez adapter :

# Serveur SMTP vers lequel envoyer les e-mails
MailHub=smtp.domaine.fr:587

# Le domaine source utilisé pour envoyer les e-mails
RewriteDomain=it-connect.fr

# Nom de la machine
Hostname=lamp01

# Ré-écrire le champ from (expéditeur) 
FromLineOverride=yes

# Adresse à utiliser pour envoyer les e-mails à partir des comptes admins
Root=linux@it-connect.fr

# Option par défaut pour le fichier certificat
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

# Utiliser de TLS (UseStartTLS à activer si besoin)
#UseSTARTTLS=YES 
UseTLS=YES

# Authentification (utilisateur et mot de passe)
AuthUser=linux@it-connect.fr
AuthPass=MonSuperPassword

Ce paramétrage ne fonctionnera peut-être pas avec votre serveur de messagerie, tout dépend de la configuration du serveur utilisé. Si ça ne fonctionne pas lorsque nous allons réaliser le test, essayez surtout de "jouer" avec les directives liées au TLS.

Il ne reste plus qu'à tester d'envoyer un e-mail ! 🙂

Note : les modifications sur la config de sSMTP sont immédiatement prises en compte, il n'y a pas de service à redémarrer.

IV. Envoyer un e-mail avec sSMTP

Pour réaliser un test de manière simple, nous allons modifier le MTA par défaut du système afin d'utiliser sSMTP. Exécutez cette commande :

alternatives --config mta

Si le MTA par défaut n'est pas sSMTP, alors indiquez son ID (à repérer sur la sortie de la commande) pour le définir par défaut.

Cela nous permet d'utiliser la commande "mail" pour réaliser un test d'envoi d'un e-mail. Par exemple à destination de florian@domaine.fr avec l'objet "Test e-mail" et le contenu "test" :

echo "test" | mail -s "Test e-mail" florian@domaine.fr

La commande mail va s'appuyer directement sur sSMTP. Si vous n'obtenez pas de message d'erreur, il est fort probable que l'e-mail arrive dans votre boite e-mail dans les secondes qui suivent 😉

V. Utiliser sSMTP avec PHP

Si vous souhaitez envoyer des e-mails depuis votre site Internet, il y a de fortes chances pour que vous souhaitiez intégrer sSMTP à PHP pour l'utiliser en tant que MTA. La configuration est simple, le fichier de configuration PHP (php.ini) contient la directive "sendmail_path" où l'on spécifie le nom du binaire à utiliser pour envoyer les e-mails.

Éditez le fichier de configuration php.ini :

nano /etc/php.ini

Recherchez la ligne "sendmail_path" et remplacez sendmail par sSMTP, comme ceci :

sendmail_path = /usr/sbin/ssmtp -t

Il ne reste plus qu'à sauvegarder ! Voilà sSMTP est désormais installé et configuré sur votre machine, il n'y a plus qu'à en profiter 🙂

Un gain de popularité pour Ecosia suite aux incendies en Amazonie

mardi 10 septembre 2019 à 14:00

Lorsque l'on parle de moteurs de recherche, les noms de Google, Bing et Qwant ressortent généralement les premiers. Sauf qu'il existe d'autres moteurs de recherche, dont Ecosia qui a la particularité d'être éco-responsable.

Ecosia, le moteur de recherche qui plante des arbres.

En fait, 80% des revenus générés par les recherches des utilisateurs sont destinés à plantation d'arbres au travers le monde. Cela signifie qu'en utilisant Ecosia, vous participez à la reforestation de l'Amazonie.

Né il y a 10 ans, en Allemagne à la suite d'un partenariat entre Yahoo! et Bing, Ecosia a connu récemment un gain de popularité de 1150% ! Dans son rythme de croisière habituel, Ecosia comptabilise 20 000 installations par jour, maintenant c'est 250 000 par jour, un bon énorme.

Grâce à cette popularité en hausse, Ecosia est sur un rythme d'un arbre planté toutes les 0,8 secondes. Dans les six prochains mois, l'objectif serait de replanter trois millions d'arbres au Brésil. Au total, il y a eu plus de 67 millions d'arbres plantés au travers le monde.

✅ Allez hop, c'est installé sur mon smartphone ! A toi de jouer (et de l'utiliser) 😉 - https://www.ecosia.org/

PS : Ecosia respecte votre vie privée et les données sont anonymisées dans un délai d'une semaine.