Il y a bien eu une cyberattaque associée à une fuite de données chez le spécialiste des équipements réseau D-Link ! Que s'est-il passé ?
Début octobre, un pirate informatique a mis en ligne un message sur un forum de hacking populaire afin de mettre en vente des données appartenant à D-Link. Le prix de vente est fixé à 500 dollars.
"J'ai compromis le réseau interne de D-Link à Taiwan, j'ai 3 millions de lignes d'informations sur les clients, ainsi que le code source de D-View extrait du système.", précise le pirate dans son annonce. Il aurait à sa disposition le code source du logiciel de gestion réseau D-Link D-View ainsi que des informations sur les clients de D-Link, mais aussi sur le PDG, sur les employés de la marque et même des personnes du gouvernement taïwanais. En ce qui concerne les informations personnelles, il s'agirait de noms, d'adresses e-mail, d'adresses postales, de numéros de téléphone, ainsi que les dates de création de comptes D-Link et de dernière connexion à ce compte.
Toutefois, il n'est pas certain que ses données soient récentes. Un échantillon mis en ligne par le pirate et contenant 45 enregistrements contient uniquement des dates comprises entre 2012 et 2013. C'est peut-être l'une des raisons pour lesquels ces données sont vendues à un tarif dérisoire.
Que s'est-il passé ?
D-Link a confirmé cette fuite de données et a donné des explications. Un employé se serait fait piéger par une attaque de phishing, ce qui a permis à l'attaquant d'obtenir un accès au réseau de l'entreprise. Dès que l'intrusion a été détectée, D-Link a mis hors ligne les systèmes impactés et à procédé à la désactivation des deux comptes utilisée par l'attaquant.
Le système auquel a pu accéder l'attaquant correspondrait à un environnement de test utilisé par D-Link et sur lequel tournait une version obsolète de D-View : D-View 6, en fin de vie depuis 2015. De ce fait, on peut se dire que ce serveur aurait dû être arrêté depuis plusieurs années...
D-Link conteste le nombre d'enregistrements contenu dans la fuite de données ! Le pirate indique qu'il détient 3 millions d'enregistrements, tandis que D-Link affirme ce qui suit : "Toutefois, d'après les enquêtes, il ne contenait qu'environ 700 enregistrements périmés et fragmentés qui étaient inactifs depuis au moins sept ans."
D'après D-Link, le pirate aurait pu volontairement modifier l'horodatage des enregistrements : "Nous avons des raisons de penser que les derniers horodatages de connexion ont été délibérément falsifiés pour que les données archaïques paraissent récentes."
Si vous utilisez Hyper-V, méfiez-vous des mises à jour d'octobre 2023 ! Suite à l'installation des mises à jour, certains admins ne pouvaient plus démarrer les VM de leur serveur Hyper-V ! Voici ce que l'on sait sur ce bug.
Les dernières mises à jour de Microsoft, disponibles depuis le 10 octobre 2023, seraient à l'origine d'un bug gênant sur les hyperviseurs Hyper-V sous Windows Server 2019 (KB5031361) et Windows Server 2022 (KB5031364).
Voici quelques exemples d'erreurs rencontrées par les admins au moment de démarrer une VM :
Échec du démarrage de la machine virtuelle <Nom de la VM>. Erreur : '<Nom de la VM>' n'a pas réussi à démarrer.
Échec de la mise sous tension avec l'erreur "Fonction incorrecte".
Échec de l'ouverture "<Chemin vers VHDX>" avec l'erreur "Fonction illégale'' (0x80070001)
Dans certains cas, il peut y avoir des machines virtuelles qui démarrent, et d'autres non. Il y a notamment ce topic qui en parle, mais également celui-ci. Petit à petit, le sujet semble prendre de l'ampleur...!
Microsoft serait au courant de ce problème et des investigations sont en cours afin d'apporter une solution aux utilisateurs impactés. Ce qui est étonnant, c'est que Microsoft a ajouté puis supprimé une information sur la page de support de la mise à jour KB5031364, où il était précisé : "Après avoir installé cette mise à jour sur des machines virtuelles (VM) exécutant Windows Server 2022 sur certaines versions de VMware ESXi, il se peut que Windows Server 2022 ne démarre pas.", même s'il n'est pas question d'Hyper-V dans ce message, tout cela est peut-être lié...
En attendant, la seule solution connue serait de désinstaller la mise à jour problématique.
Dans ce cas, sur le serveur, vous pouvez exécuter la commande ci-dessous pour désinstaller la mise à jour. Ouvrez une Invite de commande en tant qu'administrateur (via un clic droit) et exécutez la commande correspondante à votre version de Windows Server :
La dernière version stable de WhatsApp accueille une nouveauté importante en matière de sécurité : les passkeys, pour vous débarrasser des mots de passe ! Faisons le point sur cette annonce.
Les passkeys (ou clés d'accès) ont le vente en poupe chez les éditeurs, notamment chez Google, Microsoft et maintenant Meta. Dernièrement, Microsoft a introduit un gestionnaire de passkeys à Windows 11 grâce à la mise à jour de fonctionnalité Moment 4. Désormais, c'est au tour de Meta de faire évoluer WhatsApp pour prendre en charge les passkeys pour l'authentification. La liste, disponible sur ce site, et proposée par 1Password, montre que de nombreux services supportent les passkeys.
Grâce aux passkeys, WhatsApp permet à ses utilisateurs de s'authentifier sans mot de passe. En fait, une passkey est liée à un appareil et à votre compte, et le processus d'authentification va s'appuyer sur un composant local, sur votre appareil, pour vérifier votre identité. De ce fait, vous pouvez utiliser un code PIN, le lecteur d'empreintes digitales ou la fonction de reconnaissance faciale de votre smartphone. Il s'agit d'une méthode d'authentification supplémentaire et rien ne vous empêche de continuer à utiliser un mot de passe.
Cette nouvelle méthode d'authentification basée sur la cryptographie à clé publique renforce la sécurité de votre compte en éliminant le mot de passe, tout simplement. Avec l'authentification via une passkey, le second facteur d'authentification est également éliminé.
Android users can easily and securely log back in with passkeys only your face, finger print, or pin unlocks your WhatsApp account pic.twitter.com/In3OaWKqhy
Meta a testé cette fonctionnalité pendant plusieurs semaines au sein d'une version beta de WhatsApp. Désormais, cette nouveauté est prête et elle est en cours de déploiement à l'échelle mondiale pour l'ensemble des utilisateurs, soit 2 milliards d'utilisateurs.
Attention tout de même, cette nouveauté profite uniquement aux utilisateurs d'Android. Sous iOS, il faudra encore patienter un peu, car ce n'est pas disponible (Meta n'a pas donné de précision à ce sujet) .
Des cybercriminels prorusses ont mis au point une campagne de phishing pour exploiter une faille de sécurité découverte dans WinRAR, dans l'objectif de collecter des identifiants sur les machines compromises. Faisons le point sur cette menace.
L'entreprise Cluster25 a publié un nouveau rapport qui évoque cette campagne de phishing : "L'attaque implique l'utilisation de fichiers d'archive malveillants qui exploitent la vulnérabilité récemment découverte affectant le logiciel de compression WinRAR dans les versions antérieures à la version 6.23 et répertoriée sous le nom de CVE-2023-38831."
Cette vulnérabilité a été découverte au mois d'août 2023 et elle permet d'exécuter du code arbitraire sur la machine cible par la simple ouverture d'un fichier contenu dans l'archive compressée. Comme le précise le site du NIST, cette vulnérabilité a été activement exploitée entre avril et août 2023.
Dans le cas présent, l'archive diffusée par les pirates contient un fichier PDF malveillant, qui, lors de son ouverture, entraine l'exécution d'un script Batch. Ensuite, ce script Batch est utilisé pour appeler PowerShell et exécuter d'autres commandes. Ceci permet de déployer un reverse shell sur l'hôte compromis, ce qui offre un accès distant à l'attaquant.
Dans cette archive RAR, le fichier PDF et le répertoire ont le même nom. Ce n'est pas un hasard : c'est ce qui permet d'exploiter la vulnérabilité. Lorsque le fichier PDF est ouvert, le contenu du dossier portant le même nom est exécuté également. Ainsi, ce fichier contient le script Batch.
Ensuite, toujours à l'aide de commandes PowerShell, des données sont exfiltrées de la machine à partir du site légitime webhook[.]site. En l'occurrence, les commandes PowerShell ont un but bien précis : voler les identifiants sur la machine, notamment ceux enregistrés dans les navigateurs Google Chrome et Microsoft Edge.
Si vous utilisez WinRAR, vous devez impérativement le mettre à jour pour vous protéger contre cette vulnérabilité. Par ailleurs, la dernière version de Windows 11 prend en charge le format RAR, en plus du format ZIP, ce qui peut permettre de se passer de cette application.
Dans ce tutoriel, nous allons effectuer une installation pas-à-pas de GLPI 10 sur une machine Debian 12, en mettant en place Apache2, PHP 8.2 (PHP-FPM) et MariaDB Server.
GLPI est un logiciel libre de gestion de parc informatique permettant d'avoir une solution de ticketing gratuite pour le support informatique, de gérer l'inventaire des équipements, notamment les ordinateurs et les téléphones, de gérer ses contrats, ses licences, ses consommables, ses baies serveurs, etc.... Créé en 2003, GLPI est une solution populaire utilisée par des milliers d'entreprises.
Bien que son éditeur Teclib propose une version payante et hébergée en mode SaaS, GLPI est toujours gratuit et vous pouvez l'héberger sur votre serveur, que ce soit pour vos besoins internes ou pour vos clients, notamment pour la gestion des tickets de support.
Avant d'évoquer l'installation, parlons des prérequis. GLPI a besoin d'un serveur Web, de PHP et d'une base de données pour fonctionner. Sous Linux, ceci correspond à un socle LAMP. Il supporte plusieurs serveurs Web : Apache2, Nginx, lighttpd et IIS.
Pour le reste, voici ce que vous devez savoir :
Version de PHP
Minimum : PHP 7.4(plus supportée !)
Maximum : PHP 8.2
Base de données
MySQL 5.1 minimum
MariaDB 10.2 minimum
Il y aura également plusieurs extensions PHP à installer pour que GLPI puisse fonctionner.
La dernière version de GLPI à l'heure où j'écris ces lignes, à savoir GLPI 10.0.10, ajoute le support de PHP 8.3 (future version stable) et MySQL 8.1, en plus de corriger de nombreuses vulnérabilités critiques.
Pour cette démonstration, nous allons utiliser une machine sous Debian 12 et nous allons installer dessus Apache2, PHP 8.3 ainsi que MariaDB.
Si vous avez besoin de précisions supplémentaires, vous pouvez consulter la documentation officielle :
Commençons par l'installation par une mise à jour des paquets sur la machine Debian 12. Pensez également à lui attribuer une adresse IP et à effectuer la configuration du système.
sudo apt-get update && sudo apt-get upgrade
A. Installer le socle LAMP
La première grande étape consiste à installer les paquets du socle LAMP : Linux Apache2 MariaDB PHP. Sous Debian 12, qui est la dernière version stable de Debian, PHP 8.2 est distribué par défaut dans les dépôts officiels.
Commençons par installer ces trois paquets :
sudo apt-get install apache2 php mariadb-server
Puis, nous allons installer toutes les extensions nécessaires au bon fonctionnement de GLPI.
Ces commandes vont permettre de récupérer les versions de ces extensions pour PHP 8.2.
Si vous envisagez d'associer GLPI avec un annuaire LDAP comme l'Active Directory, vous devez installer l'extension LDAP de PHP. Sinon, ce n'est pas nécessaire et vous pouvez le faire par la suite, si besoin.
sudo apt-get install php-ldap
Nous venons d'installer Apache2, MariaDB, PHP et un ensemble d'extensions.
B. Préparer une base de données pour GLPI
Nous allons préparer MariaDB pour qu'il puisse héberger la base de données de GLPI. La première action à effectuer, c'est d'exécuter la commande ci-dessous pour effectuer le minimum syndical en matière de sécurisation de MariaDB.
sudo mysql_secure_installation
Vous serez invité à changer le mot de passe root, mais aussi à supprimer les utilisateurs anonymes, désactiver l'accès root à distance, etc... Tout est bien expliqué. Voici un exemple sur mon serveur pour vous guider :
Ensuite, nous allons créer une base de données dédiée pour GLPI et celle-ci sera accessible par un utilisateur dédié. Hors de question d'utiliser le compte root de MariaDB : une base de données = un utilisateur.
Connectez-vous à votre instance MariaDB :
sudo mysql -u root -p
Saisissez le mot de passe root de MariaDB, que vous venez de définir à l'étape précédente.
Puis, nous allons exécuter les requêtes SQL ci-dessous pour créer la base de données "db23_glpi" ainsi que l'utilisateur "glpi_adm" avec le mot de passe "MotDePasseRobuste" (que vous changez, bien sûr). Cet utilisateur aura tous les droits sur cette base de données (et uniquement sur celle-ci).
CREATE DATABASE db23_glpi;
GRANT ALL PRIVILEGES ON db23_glpi.* TO glpi_adm@localhost IDENTIFIED BY "MotDePasseRobuste";
FLUSH PRIVILEGES;
EXIT
Ce qui donne :
Voilà, la base de données prête.
C. Télécharger GLPI et préparer son installation
La prochaine étape consiste à télécharger l'archive ".tgz" qui contient les sources d'installation de GLPI. A partir du GitHub de GLPI, récupérez le lien vers la dernière version. Ici, c'est la version GLPI 10.0.10 qui est installée.
L'archive sera téléchargée dans le répertoire "/tmp" :
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.10/glpi-10.0.10.tgz
Puis, nous allons exécuter la commande ci-dessous pour décompresser l'archive .tgz dans le répertoire "/var/www/", ce qui donnera le chemin d'accès "/var/www/glpi" pour GLPI.
sudo tar -xzvf glpi-10.0.10.tgz -C /var/www/
Nous allons définir l'utilisateur "www-data" correspondant à Apache2, en tant que propriétaire sur les fichiers GLPI.
sudo chown www-data /var/www/glpi/ -R
Ensuite, nous allons devoir créer plusieurs dossiers et sortir des données de la racine Web (/var/www/glpi) de manière à les stocker dans les nouveaux dossiers que nous allons créer. Ceci va permettre de faire une installation sécurisée de GLPI, qui suit les recommandations de l'éditeur.
Le répertoire /etc/glpi
Commencez par créer le répertoire "/etc/glpi" qui va recevoir les fichiers de configuration de GLPI. Nous donnons des autorisations à www-data sur ce répertoire car il a besoin de pouvoir y accéder.
Nous devons configurer GLPI pour qu'il sache où aller chercher les données. Autrement dit, nous allons déclarer les nouveaux répertoires fraichement créés.
Nous allons créer ce premier fichier :
sudo nano /var/www/glpi/inc/downstream.php
Afin d'ajouter le contenu ci-dessous qui indique le chemin vers le répertoire de configuration :
Afin d'ajouter le contenu ci-dessous permettant de déclarer deux variables permettant de préciser les chemins vers les répertoires "files" et "log" que l'on a préparé précédemment.
Passons à la configuration du serveur web Apache2. Nous allons créer un nouveau fichier de configuration qui va permettre de configurer le VirtualHost dédié à GLPI. Dans mon cas, le fichier s'appelle "support.it-connect.tech.conf" en référence au nom de domaine choisi pour accéder à GLPI : support.it-connect.tech. L'idéal étant d'avoir un nom de domaine (même interne) pour accéder à GLPI afin de pouvoir positionner un certificat SSL par la suite.
Ce qui donne la configuration suivante (selon le modèle officiel de la documentation) :
<VirtualHost *:80>
ServerName support.it-connect.tech
DocumentRoot /var/www/glpi/public
# If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
# you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
# Alias "/glpi" "/var/www/glpi/public"
<Directory /var/www/glpi/public>
Require all granted
RewriteEngine On
# Redirect all requests to GLPI router, unless file exists.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
Quand la configuration est prête, enregistrez le fichier.
Puis, nous allons activer ce nouveau site dans Apache2 :
sudo a2ensite support.it-connect.tech.conf
Nous en profitons également pour désactiver le site par défaut car il est inutile :
sudo a2dissite 000-default.conf
Nous allons aussi activer le module "rewrite" (pour les règles de réécriture) car on l'a utilisé dans le fichier de configuration du VirtualHost (RewriteCond / RewriteRule).
sudo a2enmod rewrite
Il ne reste plus qu'à redémarrer le service Apache2 :
sudo systemctl restart apache2
E. Utilisation de PHP8.2-FPM avec Apache2
Pour utiliser PHP en tant que moteur de scripts avec Apache2, il y a deux possibilités : utiliser le module PHP pour Apache2 (libapache2-mod-php8.2) ou utiliser PHP-FPM.
Il est recommandé d'utiliser PHP-FPM car il est plus performant et se présente comme un service indépendant. Dans l'autre mode, chaque processus Apache2 exécute son propre moteur de scripts PHP.
Si vous souhaitez utiliser PHP-FPM, suivez les étapes ci-dessous. Sinon, passez à la suite mais veillez à configurer l'option "session.cookie_httponly" évoquée ci-dessous.
Nous allons commencer par installer PHP8.2-FPM avec la commande suivante :
sudo apt-get install php8.2-fpm
Puis, nous allons activer deux modules dans Apache et la configuration de PHP-FPM, avant de recharger Apache2 :
Pour configurer PHP-FPM pour Apache2, nous n'allons pas éditer le fichier "/etc/php/8.2/apache2/php.ini" mais plutôt ce fichier :
sudo nano /etc/php/8.2/fpm/php.ini
Dans ce fichier, recherchez l'option "session.cookie_httponly" et indiquez la valeur "on" pour l'activer, afin de protéger les cookies de GLPI.
; Whether or not to add the httpOnly flag to the cookie, which makes it ; inaccessible to browser scripting languages such as JavaScript. ; https://php.net/session.cookie-httponly session.cookie_httponly = on
Enregistrez le fichier quand c'est fait. Par la suite, vous pourriez être amené à effectuer d'autres modifications, notamment pour augmenter la taille des uploads sur GLPI, etc.
Pour appliquer les modifications, nous devons redémarrer PHP-FPM :
sudo systemctl restart php8.2-fpm.service
Pour finir, nous devons modifier notre VirtualHost pour préciser à Apache2 que PHP-FPM doit être utilisé pour les fichiers PHP :
Voilà, tout est prêt ! Il ne reste plus qu'à installer GLPI !
IV. Installation de GLPI
Pour effectuer l'installation de GLPI, nous devons utiliser un navigateur Web afin d'accéder à l'adresse du GLPI. Il s'agit de l'adresse déclarée dans le fichier de configuration Apache2 (ServerName).
Si vous avez suivi toutes les étapes correctement, vous devriez arriver sur cette page. Nous allons commencer par choisir la langue.
Puisqu'il s'agit d'une nouvelle installation, nous cliquons sur "Installer".
Etape importante : GLPI vérifie la configuration de notre serveur pour déterminer si tous les prérequis sont respectés. Tout est bon, donc nous pouvons continuer.
A l'étape suivante, nous devons renseigner les informations pour se connecter à la base de données. Nous indiquons "localhost" en tant que serveur SQL puisque MariaDB est installé en local, sur le même serveur que GLPI. Puis, nous indiquons notre utilisateur "glpi_adm" et le mot de passe associé.
Après avoir cliqué sur "Continuer", nous devons choisir la base de données "db23_glpi" créée précédemment.
Poursuivez...
Suivez les dernières étapes qui n'ont pas de réel impact. Le plus dur est fait !
Félicitations, vous venez d'installer GLPI ! Comme le précise la dernière étape, le compte administrateur par défaut est "glpi/glpi" !
Nous allons donc nous connecter avec le compte "glpi" et le mot de passe "glpi".
Bienvenue sur votre nouveau serveur GLPI !
Même si l'installation est terminée, nous avons encore quelques actions à réaliser pour la finaliser :
Changer le mot de passe de tous les comptes par défaut (cliquez sur les liens situés dans l'encadré orange)
Supprimer le fichier "install.php" puisqu'il n'est plus nécessaire et représente un risque (relancer l'installation)
sudo rm /var/www/glpi/install/install.php
Voilà, c'est fait. Désormais, votre GLPI est prêt à être utilisé et configuré (création d'utilisateurs, de catégories, de tickets, etc...).
V. Conclusion
En suivant ce tutoriel pas à pas, vous devez être en mesure d'installer GLPI sur un serveur Debian 12 ! A quelques détails près, cette procédure peut s'appliquer à d'autres systèmes et versions. N'hésitez pas à poster un commentaire ou à vous connecter sur notre serveur Discord si vous avez une question.
Souhaitez-vous plus de tutoriels sur GLPI ? Je peux envisager des tutoriels pour le passer en HTTPS avec un certificat, mais aussi sur le déploiement de l'agent GLPI, etc.