PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

VMware corrige la vulnérabilité Spring4Shell dans plusieurs produits

mardi 5 avril 2022 à 08:12

VMware a publié un bulletin de sécurité pour indiquer comment se protéger de la faille de sécurité critique nommée Spring4Shell, découverte au sein du framework Java "Spring".

On pouvait s'attendre à ce genre de nouvelle étant donné que Spring appartient à VMware, et cela se confirme : Spring est bien utilisé par certains produits VMware. Certaines versions bénéficient d'une mise à jour qui permet de se protéger, tandis que pour d'autres où il n'existe pas de correctif officiel, VMware a tout de même mis en ligne une procédure à appliquer pour se protéger.

Pour rappel, Spring est un framework open source populaire auprès de la communauté Java, dont l'objectif est de faciliter le développement d'applications en Java. Il est utilisé dans de nombreux domaines, notamment pour des applications Web et des API.

Désormais identifiée avec la référence CVE-2022-22965, la vulnérabilité Spring4Shell hérite d'un score de sévérité de 9,8 sur 10, et elle affecte les produits VMware suivants (certaines versions) :

Pour le moment, le correctif pour VMware Tanzu Kubernetes Grid Integrated Edition se fait attendre, comme vous pourrez le constater en regardant le tableau de suivi sur le site de VMware. En attendant, les utilisateurs de cette solution peuvent appliquer manuellement la procédure proposée par VMware sur cette page.

La vulnérabilité Spring4Shell permet une exécution de code à distance sur une machine vulnérable, et étant donné qu'elle est activement exploitée, il est recommandé d'appliquer les mesures de protection proposées par VMware si vous utilisez l'un des produits affectés, ou de mettre à jour le produit dans une version plus récente. Au niveau de Spring en tant que tel, les mises à jour corrigées sont les suivantes :

Source

The post VMware corrige la vulnérabilité Spring4Shell dans plusieurs produits first appeared on IT-Connect.

Comment installer PHP 8 sur IIS 10 ?

lundi 4 avril 2022 à 16:00

I. Présentation

Après avoir vu comment installer et configurer IIS 10 sur Windows Server 2022, nous allons voir comment installer PHP 8 (ou PHP 7.4) sur un serveur Web IIS 10. De nombreuses applications et sites reposent sur PHP, alors c'est à mon sens incontournable de savoir ajouter PHP sur un serveur IIS. Plus précisément, je vais installer PHP 8.1.4 sur Windows Server 2022, mais vous pouvez appliquer cette procédure avec d'autres versions de PHP et Windows.

Pour installer PHP sur un serveur IIS, il y a deux manières de procéder :

La première méthode est clairement la plus rapide, mais à mon avis ce n'est pas la bonne méthode à utiliser, car les packages de la WPI sont très en retard. Par exemple, PHP 8.0.0 est disponible, mais les dernières versions, notamment la 8.1.4 n'est pas disponible. Concernant PHP 7.4, la version la plus récente est 7.4.13 alors que la version 7.4.28 est disponible.

Si vous souhaitez suivre les mises à jour de PHP, notamment pour bénéficier des derniers correctifs de sécurité, je vous recommande d'appliquer la seconde méthode. Cela tombe bien, car c'est la seconde méthode que je vais détailler dans ce tutoriel, même si je vais commencer par vous montrer la WPI pour illustrer mes propos. 😉

Note : je pars du principe que le rôle IIS est déjà installé sur votre serveur Windows (voir mon tutoriel d'installation IIS si besoin).

II. IIS : installation de PHP via Web Platform Installer

Pour installer PHP à partir de la WPI, il faut commencer par l'installer dans IIS. Pour cela, au sein de la console IIS, sur la gauche il faut cliquer "Obtenir de nouveaux composants Web Platform" afin d'être redirigé vers le site du téléchargement.

Après avoir téléchargé et installé l'extension, l'entrée "Web Platform Installer" est visible dans la page d'accueil du serveur IIS.

En accédant à la Web Platform, on peut rechercher "PHP" pour voir tous les paquets correspondants. Là, vous verrez PHP 8.0.0 et PHP 7.4.13, mais pas de versions plus récentes.

C'est dommage, et à mon sens rédhibitoire : passons à la seconde méthode afin d'installer la version PHP que l'on souhaite, à partir des sources officielles.

III. Ajouter PHP à IIS 10

A. Télécharger PHP pour Windows

Commençons par télécharger les sources de PHP. Dans cet article, je vais installer PHP 8.1.4 qui est la dernière version, mais vous pouvez partir sur PHP 7.4 : la procédure est la même.

Vous devez télécharger les sources au format "Zip" de la version "Non Thread Safe" comme le précise la documentation Microsoft.

Installation de PHP 8.1 pour IIS

Dans le nom, on peut voir "VS16 x64" et sur la gauche du site ceci : "The VC15 and VS16 builds require to have the Visual C++ Redistributable for Visual Studio 2015-2019 x64 or x86 installed". Bon, il faut donc que l'on installe Microsoft Visual C++ 2015-2019 sur notre serveur (liens de téléchargement ci-dessus), comme ceci :

Maintenant, nous allons attaquer la partie PHP. Tout d'abord, il faut extraire le contenu de l'archive "php-8.1.4-nts-Win32-vs16-x64.zip" vers le dossier "C:\PHP" (ou ailleurs), car c'est ici que je vais "installer" PHP sur mon serveur.

Installer PHP sur Windows

En fait, PHP ne s'installe pas comme un exécutable classique, comme vous pouvez le constater.

B. Ajouter PHP à la variable d'environnement "Path"

Désormais, nous allons modifier la variable d'environnement "Path" afin d'ajouter le chemin "C:\PHP". Grâce à cette modification, nous pourrons appeler "php" dans une console et Windows sait qu'il devra rechercher dans "C:\PHP".

Accédez aux propriétés avancées du système (Paramètres > Système > A propos de > Paramètres avancés du système) et cliquez sur "Variables d'environnement" (1). Ensuite, sélectionnez la variable "Path" (2) et cliquez sur le bouton "Modifier" (3). Une fenêtre s'ouvre... Cliquez sur "Nouveau" (4) puis indiquez "C:\PHP" (5). Validez une première fois (6), puis une seconde fois (7).

Si l'on ouvre une console PowerShell et que l'on indique la commande ci-dessous, elle va fonctionner ! C'est aussi un moyen de voir qu'en ligne de commande, PHP répond bien.

php -info

C. Installer le rôle CGI sur IIS

Pour que PHP fonctionne, nous devons ajouter le module "CGI" à notre serveur IIS. Il n'est pas inclus par défaut lorsque l'on installe IIS. Pour l'installer, suivez ces étapes :

1 - Ouvrez le gestionnaire de serveur et cliquez sur "Gérer" puis "Ajouter des rôles et fonctionnalités".

2 - Passez les écrans jusqu'à l'étape "Rôles de serveurs"

3 - Cochez la case correspondante au rôle "CGI" sous : Web Server (IIS) > Web Server > Application Development.

IIS ajouter CGI pour PHP

Poursuivez et lancez l'installation, ce qui devrait prendre quelques secondes.

D. Mapper PHP dans IIS

Il est temps d'intégrer PHP à IIS. Ouvrez la console IIS, cliquez sur le nom de votre serveur en haut à gauche puis sur "Mappages de gestionnaires".

Ensuite, cliquez en haut à droite sur "Ajouter un mappage de modules..." et renseignez les champs comme ceci :

En fait, on indique à IIS que lorsqu'il y a une demande d'un client web sur un fichier ".php", il doit la traiter grâce à l'exécutable "php-cgi.exe" qui s'appuie sur le module CGI de IIS que l'on vient d'installer. Vous obtenez ceci :

Cliquez sur "OK" puis validez avec "Oui".

Voilà, PHP est intégré à IIS ! 🙂

IV. Tester PHP sur IIS

Pour vérifier que PHP fonctionne bien avec notre serveur IIS lorsque l'on accède à une page PHP, et bien nous allons créer une page PHP. La racine de mon site étant "C:\www", je vais créer la page "test_php.php" dans ce dossier. Cette page va simplement exécuter la fonction phpinfo() pour afficher toute la configuration PHP active. Voici son code source :

<?php
phpinfo();
?>

Une fois que la page web est prête, on va tenter d'y accéder à partir d'un navigateur via l'URL suivante :

http://adresse-ip-serveur/test_php.php

La page s'affiche, PHP fonctionne bien ! On peut voir que c'est bien la version PHP 8.1.4 de PHP !

PHP 8.1 sur IIS 10

Remarque : cette page est pratique pour visualiser la configuration complète de PHP, mais vous ne devez pas la laisser accessible à tout le monde, car elle donne des informations sensibles sur la configuration. Si votre serveur est exposé sur Internet, supprimez le fichier après avoir testé.

V. Modifier la configuration de PHP avec IIS

Pour modifier la configuration de PHP, il faut éditer le fichier "php.ini" comme on le fait sur une machine Linux. Ce fichier se trouve tout simplement dans "C:\PHP", sauf que pour le moment il se nomme autrement :

php.ini-production

On peut voir qu'il contient la configuration de PHP :

Le problème, c'est que si vous modifiez ce fichier, cela ne changera rien. En fait, il faut le renommer en "php.ini" à la place de son nom d'origine "php.ini-production". Une fois que c'est fait, vous pouvez modifier les différentes options. Par exemple, la directive "upload_max_filesize" qui sert à gérer la taille maximale autorisée pour charger un fichier (par défaut 2 Mo).

Configuration php.ini sur Windows avec IIS

À chaque fois qu'une modification est effectuée dans "php.ini", il faut recharger le pool d'application pour que les changements soient pris en compte. Pour cela, dans la console IIS cliquez sur "Pools d'applications", puis effectuez un clic droit sur "DefaultAppPool" afin de cliquer sur "Recycler".

Un petit tour sur la page où s'affiche le phpinfo() permettra de vérifier que le changement est bien pris en compte ! 🙂

Voilà, PHP est installé sur le serveur Web IIS ! Votre application qui a besoin d'utiliser PHP devrait fonctionner !

The post Comment installer PHP 8 sur IIS 10 ? first appeared on IT-Connect.

Une faille critique dans GitLab à cause d’un mot de passe codé en dur !

lundi 4 avril 2022 à 08:38

GitLab a corrigé une faille de sécurité critique qui permet à un attaquant de prendre le contrôle de comptes utilisateurs à cause d'un mot de passe codé en dur.

Découverte en interne par les équipes de GitLab, la vulnérabilité CVE-2022-1162 touche aussi bien l'édition Community que l'édition Enterprise de GitLab. Ce qui est surprenant, c'est l'origine de cette faille : l'utilisation de mots de passe statiques (c'est-à-dire codé en dur !) lors de l'enregistrement basé sur OmniAuth dans GitLab Community Edition et Enterprise Edition.

Au sein du bulletin de sécurité officiel, GitLab précise : "Un mot de passe codé en dur était défini pour les comptes enregistrés à l'aide d'un fournisseur OmniAuth (par exemple, OAuth, LDAP, SAML) dans GitLab CE/EE, pour les versions 14.7 antérieures à 14.7.7, 14.8 antérieures à 14.8.5 et 14.9 antérieures à 14.9.2, ce qui peut permettre aux attaquants de prendre le contrôle des comptes."

Pour vous protéger et bloquer les éventuelles attaques, GitLab recommande de passer par la case mise à jour pour installer une version patchée : 14.7.7, 14.8.5 ou 14.9.2.

Deux jours avant la mise en ligne de ces nouvelles versions, les développeurs de GitLab ont apporté une modification au code source et ils ont supprimé un fichier nommé "lib/gitlab/password.rb". Ce fichier semble lié à la faille de sécurité évoquée dans cet article, car il permettait d'assigner un mot de passe faible et codé en dur à la constante "TEST_DEFAULT".

Source : Bleeping Computer

Par mesure de précaution, GitLab a pris la décision de forcer la réinitialisation du mot de passe de certains utilisateurs afin de les protéger contre une potentielle attaque.

Pour le moment, et toujours d'après l'éditeur, il n'y aurait pas eu de compromission de comptes, et les équipes de sécurité surveillent de près l'évolution de la situation afin d'identifier les comptes vulnérables à la faille CVE-2022-1162.

GitLab est une solution très populaire auprès des entreprises et des développeurs, avec plus de 30 millions de comptes utilisateurs présents dans le monde entier.

Source

The post Une faille critique dans GitLab à cause d’un mot de passe codé en dur ! first appeared on IT-Connect.

Microsoft peut bloquer le passage à Windows 11 à cause d’Internet Explorer

lundi 4 avril 2022 à 08:13

Microsoft a pris la décision de bloquer la mise à niveau de Windows 10 vers Windows 11 sur certaines machines à cause d'Internet Explorer. Que se passe-t-il ?

Bien qu'il soit toujours possible de forcer la mise à niveau de Windows 10 vers Windows 11 en déclenchant l'opération manuellement, Microsoft a mis en place un blocage sur certaines machines Windows, par précaution. Les machines concernées sont dans un état spécifique : les données d'Internet Explorer 11 ne sont pas importées dans Microsoft Edge et Internet Explorer est défini en tant que navigateur par défaut.

En fait, si vous effectuez une mise à niveau de Windows 10 vers Windows 11 sans importer les données d'Internet Explorer dans Edge au préalable, et bien les données d'IE sont perdues. Pour éviter la mauvaise surprise aux utilisateurs qui utilisent Internet Explorer comme navigateur principal, Microsoft a préféré mettre en place ce blocage. Entre nous, c'est quand même dommage d'utiliser encore Internet Explorer en 2022. 🙂

Si Internet Explorer est le navigateur principal, mais que les données sont importées dans Edge, alors la mise à niveau sera proposée. Le blocage sera levé par la suite, quand Microsoft aura trouvé une solution en s'appuyant sur une mise à jour d'Edge.

Ce n'est pas la première fois que Microsoft met en place un blocage pour empêcher certaines machines de passer à Windows 11. En effet, Microsoft a bloqué la mise à niveau sur les machines où VirtualBox était installé, à cause d'une incompatibilité avec Hyper-V. Désormais, ce problème est résolu alors Microsoft a levé les blocages.

Concernant Internet Explorer, il sera retiré de Windows 10 (sur certaines versions) à partir du 15 juin prochain et les utilisateurs seront redirigés automatiquement vers Microsoft Edge. A vous de choisir entre Microsoft Edge, ou un autre navigateur : Firefox, Brave, Chrome, etc.

En ce moment, l'adoption de Windows 11 ralentie sérieusement, enfin on peut dire qu'elle stagne. Avec ce blocage, les choses ne vont pas s'arranger même si Microsoft ne précise pas combien de machines sont concernées.

Source

The post Microsoft peut bloquer le passage à Windows 11 à cause d’Internet Explorer first appeared on IT-Connect.

Restrictions par adresse IP avec IIS 10

dimanche 3 avril 2022 à 18:00

I. Présentation

Avoir un ou plusieurs sites web, c’est bien, contrôler les accès c’est encore mieux. Le serveur IIS de Microsoft propose justement d’effectuer des restrictions au niveau des adresses IP et des noms de domaine, de la même manière qu’on peut le faire sous Apache avec la directive "Require IP", ou anciennement « Allow From » et « Deny From » sur les versions d'Apache inférieure à v2.4.

Nous allons voir dans ce tutoriel comment mettre en place ce type de restriction sur un serveur IIS 10, sous Windows Server 2022. Néanmoins, cette méthode est la même depuis des années donc elle s'applique sur les versions précédentes de Windows et d'IIS.

Ces règles sont particulièrement pratiques pour protéger certaines applications qui ne doivent pas être accessibles par n'importe quelle machine. Par exemple, l'accès à PhpMyAdmin pour administrer des bases de données en mode Web.

A. Principe

Avant de vous montrer comment définir ces restrictions, intéressons-nous au principe. Vous allez devoir autoriser ou refuser des accès pour appliquer une restriction, toutefois vous n’allez pas pouvoir faire une règle pour toutes les adresses IP et les noms de domaine possibles sinon vous n’êtes pas quitte… C’est pourquoi il faut définir un mode de fonctionnement pour les restrictions à partir du moment où vous décidez d’en faire.

Du coup, si vous décidez de refuser l’accès à certaines adresses IP il faudra indiquer que toutes les autres adresses IP ont un accès autorisé, question de logique finalement. À l’inverse, si vous indiquez précisément des adresses IP qui ont le droit d’accéder à votre site web, indiquez à IIS qu’il doit refuser pour tout le reste.

Si vous refusez certaines adresses IP et que vous dites à IIS de refuser tout le reste, ça va poser problème et c’est illogique de procéder de cette façon.

B. A quel niveau sont définies les restrictions ?

Il est possible de définir les restrictions sur le serveur web dans sa globalité, du coup les restrictions définies à ce niveau seront appliquées sur tous les sites web de votre serveur IIS. Il est également possible de définir des restrictions site par site, ou deux faire les deux c’est-à-dire des restrictions communes à tous les sites web au niveau du serveur IIS et le reste au cas par cas.

Grâce aux restrictions positionnées au niveau du serveur IIS directement, les sites vont appliquer les restrictions, car il y a une notion d'héritage, comme pour d'autres options.

II. Accès à « Restrictions par adresse IP et domaine »

Pour accéder au module de configuration des restrictions, ouvrez votre gestionnaire IIS et positionnez sur la racine de votre serveur IIS ou sur un site directement, selon où vous souhaitez appliquer vos restrictions.

Une fois que vous y êtes, double cliquez sur l’icône du module « Restrictions par adresse IP et domaine ».

Restriction IP IIS

Si vous ne trouvez pas cette icône dans la console IIS, pas de panique ! Il suffit d'ajouter le composant à votre serveur IIS, car il s'agit d'une fonctionnalité optionnelle. Pour cela, c'est simple : ouvrez le Gestionnaire de serveur, cliquez sur "Gérer" puis "Ajouter des rôles et fonctionnalités". Modifiez l'installation de IIS en sélectionnant "IP and Domain Restrictions" (ou l'équivalent en français) et poursuivez jusqu'à la fin de l'assistant pour effectuer l'installation.

En PowerShell, on peut ajouter cette fonctionnalité via la commande suivante (Install-WindowsFeature) :

Install-WindowsFeature -Name Web-IP-Security

III. Ajouter une autorisation

Pour ajouter une autorisation, faites clic droit dans le panneau de droite puis cliquez sur « Ajouter une entrée d’autorisation… » : une fenêtre s’ouvrira. Deux choix s’offrent à vous :

- Adresse IP spécifique : Spécifier une seule adresse IP qui correspond à l’adresse IP que vous autorisez à accéder au(x) site(s). Il est possible d’indiquer aussi un nom de domaine.

- Plage d’adresses IP : Spécifier une adresse IP de réseau et un masque de sous-réseau pour autoriser une plage d’adresses IP correspondante à un réseau spécifique (Exemple : LAN d’entreprise) à accéder à ce site.

Restrictions par adresse IP et domaine IIS

Pour confirmer l’ajout, cliquez sur « OK » et recommencez l’opération pour chacune de vos autorisations.

IV. Ajouter un refus

Sur le même principe que pour ajouter une autorisation, faites clic droit dans le panneau de droite et cliquez sur « Ajouter une entrée de refus » et la fenêtre d’ajout apparaîtra. En ce qui concerne les champs à remplir, ce sont les mêmes que pour les autorisations sauf que là c’est pour refuser.

Adresse IP

V. Mode de fonctionnement

Cette partie de la configuration est très importante puisque c’est là que vous allez définir si vous refusez ou autorisez tous clients sur lesquels aucune restriction n’est configurée. Toujours via un clic droit, cliquez sur « Modifier les paramètres de fonction ». Voici des explications concernant les paramètres :

- Accès pour les clients non spécifiés : Que fait-on si un client pour lequel aucune restriction n’est configurée tente de se connecter au site web ? On l’autorise ou on le refuse, à vous de choisir, mais restez logique par rapport à ce que vous avez défini au niveau des restrictions.

- Activer les restrictions des noms de domaine : Activer ou noms les restrictions des noms de domaine en plus des adresses IP et plage d’adresses IP.

- Activer le mode proxy : Si vous activez ce mode, les demandes passeront par un serveur proxy que vous devrez définir.

- Refuser le type d’action : Indiquez le type d’action à effectuer lorsqu’une demande est refusée, parmi les 4 choix disponibles (Non autorisé : réponse HTTP 401, Interdit : réponse HTTP 403, Page introuvable : réponse HTTP 404 et Annulé : terminer la connexion HTTP).

Config restriction

VI. Restrictions dynamiques

Les paramètres de restrictions dynamiques permettent à votre serveur IIS de refuser l’accès à certains clients lorsque ceux-ci effectue trop de demande simultanées, par exemple. Ainsi, vous pouvez limiter les risques de subir une attaque de déni de service (DOS) et protégez votre serveur IIS.

Afin de configurer une restriction dynamique, faites clic droit dans le panneau de droite et cliquez sur « Modifier les paramètres de restriction dynamique ». Vous obtiendrez la fenêtre suivante :

iis828

Les deux principales options sont :

- Refuser l’adresse IP en fonction du nombre de demandes concurrentes : Si le client effectue plus de n demandes de connexion simultanée, alors on le refuse en l’ajoutant à la liste des adresses IP restreintes. Le paramètre n correspondant au nombre maximal de demandes concurrentes que vous autorisez, si vous activez ce paramètre.

- Refuser l’adresse IP en fonction du nombre de demandes sur une période : Si le client effectue plus de n demande de connexion sur une durée précise, alors on le restreint. Le paramètre n correspondant au nombre maximal de demandes que vous autorisez, si vous activez ce paramètre. Vous devez également définir la période de temps (en millisecondes) utilisez pour vérifier si le client n’excède pas le nombre de demandes autorisées.

VII. Vérification

Afin de vérifier le fonctionnement de la configuration, j’ai refusé les connexions provenant de l’adresse IP « 192.168.100.10 » sur l'un de mes sites (toutes les autres connexions sont autorisées). Lorsque j’accède à ce même site avec le client restreint, un message d’interdiction doit s’afficher.

Voici ce que ça me donne dans la configuration du module IIS :

IIS 10 Restriction par adresse IP

Lorsque j’accède au site web à partir du client restreint, je suis bien bloqué et obtiens un message d’erreur d’interdiction (une erreur HTTP 403) :

Erreur HTTP car restriction par adresse IP IIS

The post Restrictions par adresse IP avec IIS 10 first appeared on IT-Connect.