Plusieurs agences américaines, dont la CISA, ont publié une alerte de sécurité au sujet d'un groupe de cybercriminels nommés Daixin Team qui est à l'origine de nombreuses attaques informatiques ! Ce gang privilégie les attaques contre les établissements de santé et il a déjà fait plusieurs victimes aux États-Unis.
Pour rappel, la CISA (Cybersecurity & Infrastructure Security Agency) est l'agence gouvernementale des États-Unis qui est en charge des questions de cybersécurité, dans le même esprit que l'ANSSI en France. Cette alerte de sécurité est émise par la CISA, mais également le FBI, ainsi que l'agence de santé HHS (Health and Human Services).
Le gang Daixin Team est un groupe de ransomware qui applique le principe de la double extorsion : les données sont chiffrées, mais également exfiltrées. Dans le bulletin d'alerte, on peut lire : "Daixin Team est un groupe de ransomware et d'extorsion de données qui a ciblé le secteur hospitalier avec des opérations de ransomware et d'extorsion de données depuis au moins juin 2022."
Sur les 4 derniers mois, ce groupe de cybercriminels a été associé à plusieurs cyberattaques, notamment celle contre l'OakBend Medical Center. Cette attaque s'est déroulée le 1er septembre 2022 et durant laquelle les pirates ont pu exfiltrer 3,5 Go de données correspondant à 1 million d'enregistrements avec des informations sur les patients et les employés.
Pour compromettre l'infrastructure, les pirates informatiques s'appuient généralement sur un accès VPN. Ce dernier sert d'accès initial. Pour obtenir cet accès, soit ils exploitent une vulnérabilité présente dans le boîtier VPN (par exemple un pare-feu non à jour sur lequel un accès VPN est configuré), soit ils s'appuient sur une campagne de phishing pour dérober des identifiants. Dans le rapport, c'est précisé que le MFA n'était pas activé sur l'accès VPN.
Une fois l'accès initial obtenu, les pirates se déplacent sur les autres hôtes du réseau compromis en utilisant les protocoles RDP et SSH. La CISA précise : "Les pirates ont exploité des comptes privilégiés pour accéder à VMware vCenter Server et réinitialiser les mots de passe des comptes pour les serveurs ESXi dans l'environnement. Les pirates ont ensuite utilisé SSH pour se connecter aux serveurs ESXi accessibles et déployer le ransomware sur ces serveurs. ". Il s'avère que le ransomware utilisé par la Daixin Team serait basé sur le code source de Babuk. Tous les fichiers avec les extensions .vmdk, .vmem, .vswp, .vmsd, .vmx, et .vmsn stockés sous "/vmfs/volumes/" sont chiffrés par le ransomware.
Pour exfiltrer les données, les cybercriminels utilisent l'outil open source Rclone. D'ailleurs, la CISA précise que la présence de Rclone sur le serveur est un indicateur de compromission.
Cette alerte émise par les agences américaines montre qu'il n'y a pas qu'en France que les établissements de santé sont pris pour cible par les cybercriminels. En espérant que le groupe Daixin Team n'ait pas en tête de s'attaquer aux entités françaises.
Google a fait une annonce qui s'adresse directement aux utilisateurs de Windows 7 et Windows 8.1 : à partir du 7 février 2023, le navigateur Google Chrome ne sera plus supporté sur ces deux versions de Windows !
Windows 7 n'est plus pris en charge par Microsoft depuis le 14 janvier 2020, tandis que Windows 8.1 ne sera plus pris en charge par Microsoft à partir du 10 février 2023. Progressivement, les logiciels tiers abandonnent également la prise en charge de ces deux versions de Windows : la preuve avec cette nouvelle annonce de Google. Pour Windows 7, ça peut se comprendre, mais pour Windows 8.1, cela peut sembler précipiter même si cela correspond à 3 jours près au planning de Microsoft.
À partir du 7 février 2023, et à l'occasion de la sortie de Chrome 110, Windows 7 et Windows 8.1 ne seront plus pris en charge par Google Chrome. Attention, le navigateur de Google continuera de fonctionner sur ces deux versions de Windows, mais ils ne recevront plus de mises à jour. Adieu les nouvelles fonctionnalités, mais aussi (et surtout) les correctifs pour les failles de sécurité !
Même si cela peut sembler paradoxal, Windows 7 reste encore beaucoup plus utilisé que Windows 8.1 (même si au final ça se comprend). D'après le site StatCounter, Windows 7 est encore utilisé par 10,68% des ordinateurs à l'échelle mondiale, tandis que la part de marché de Windows 8.1 est nettement inférieure : seulement 2,7%. À titre de comparaison, la part de marché de Windows 11 est seulement de 13,56% !
Avec l'abandon de Google Chrome sur ces deux systèmes d'exploitation, les utilisateurs vont devoir se tourner vers d'autres navigateurs. Toutefois, il faut se rendre à l'évidence et s'orienter vers un nouveau système d'exploitation : Windows 10 ou Windows 11, même s'il y a peu de chances qu'une machine sous Windows 7 soit pleinement compatible Windows 11. Rien ne vous empêche aussi de passer sur Linux : il y a de très bonnes distributions.
Apple a mis en ligne de nouvelles mises à jour de sécurité qui permettent de corriger différentes vulnérabilités, dont une faille de sécurité zero-day exploitée dans le cadre d'attaques. Les iPhones et les iPads sont affectés par cette vulnérabilité.
La faille de sécurité est associée à la référence CVE-2022-42827 et c'est un bug de type "Out-of-bounds Write", ce qui signifie que des données sont écrites en dehors du tampon de la mémoire. Typiquement, cela peut amener à une corruption de données, à un plantage ou à l'exécution de code. Cela se confirme car Apple affirme que si un attaquant parvient à exploiter cette vulnérabilité, il peut exécuter du code sur l'appareil vulnérable en bénéficiant des privilèges du noyau.
La firme de Cupertino précise également : "Apple est au courant d'un rapport selon lequel ce problème pourrait avoir été activement exploité." - Aucune certitude et il n'y a pas de preuves, mais visiblement cette vulnérabilité serait exploitée dans le cadre d'attaques.
Pour se protéger, les utilisateurs doivent installer les dernières versions du système : iOS 16.1 et iPadOS 16.
Rapportée à Apple par un chercheur en sécurité anonyme, cette vulnérabilité n'est pas la seule corrigée par l'entreprise américaine. En effet, le bulletin de sécurité mentionne pas moins de 20 vulnérabilités différentes et désormais corrigées.
Depuis le début de l'année 2022, il s'agit de la 9ème faille de sécurité zero-day corrigée par Apple. En septembre, il s'agissait de la CVE-2022-32917 présente dans le noyau d'iOS, tout comme la CVE-2022-32894 corrigée en août dernier, en même temps que la CVE-2022-22675 dans WebKit.
D'après McAfee, un malware surnommé Clicker est présent dans une dizaine d'applications Android qui représentent au total plus de 20 millions de téléchargements. Quels sont les risques ? Et, quelles sont ces applications à éviter ? Faisons le point.
Le logiciel malveillant, une fois en place sur l'appareil Android de l'utilisateur, va simuler des requêtes sur des sites Web et des clics sur des publicités dans le but d'enrichir les cybercriminels à l'origine de Clicker. Du côté de l'appareil, il y a une consommation excessive du réseau mais aussi de l'énergie, ce qui se fait ressentir au niveau de l'autonomie. Les chercheurs de McAfee soulignent que Clicker ne passe pas à l'action immédiatement : il attend au moins une heure après l'installation d'une application malveillante avant d'effectuer les premières requêtes. Il y a également un délai aléatoire entre chaque activité malveillante afin d'être le plus discret possible.
Ce sont des applications d'apparences inoffensives qui intègrent Clicker, notamment des utilitaires pour la caméra du smartphone, une application de prise de notes, une application de nettoyage pour rendre l'appareil plus rapide, etc... Voici la liste des applications malveillantes fournie dans le rapport de McAfee :
Même si certaines applications sont peu téléchargées, il y en a tout de même 6 avec plus de 1 million de téléchargements au compteur. Ces statistiques sont issues des chiffres publiés sur le Google Play Store.
Clicker ne semble pas effectuer d'autres actions malveillantes sur votre appareil Android : il ne vole pas d'identifiants et ne cherche pas à extraire vos données. Son but principal est de générer de l'argent afin que cela profite aux cybercriminels, sur le principe évoqué précédemment.
Dans ce tutoriel, nous allons apprendre à configurer un serveur VPN sous Debian 11 avec OpenVPN, dans l'objectif de créer un serveur VPN sur lequel on va s'appuyer pour naviguer sur Internet.Ce tutoriel est idéal si vous souhaitez mettre en place votre propre serveur VPN, sur un serveur VPS dans le Cloud chez OVHcloud ou autre... Ainsi, une machine cliente à distance pourra se connecter au serveur OpenVPN pour accéder à Internet en exploitant la connexion du serveur OpenVPN, mais aussi à l'infrastructure distante, que ce soit le serveur VPN en lui-même, ou un autre serveur du même réseau. En effet, ce principe repose sur la mise en place d'un VPN "client-to-site".
Pour rappel, VPN signifie Virtual Private Network et l'objectif d'un VPN est simple : le VPN va créer un lien virtuel entre deux points, par exemple entre deux réseaux d'entreprise (VPN site à site), ou entre un PC client et un réseau d'entreprise (VPN client à site). Au sein de ce lien, que l'on appelle un tunnel, les données seront chiffrées et isolées du reste du trafic, c'est là tout l'intérêt du VPN et cette notion de "privé". De nos jours, les VPN pour un usage personnel sont très populaires pour contourner la censure, masquer sa navigation sur Internet, etc.
Pour mettre en place un serveur VPN basé sur OpenVPN, il y a différentes solutions : s'appuyer sur un pare-feu comme Pfsense, utiliser une machine Linux, utiliser une machine Windows, etc... Aujourd'hui, on s'intéresse à la mise en œuvre sur une machine Linux, en l'occurrence sous Debian 11.
Voici quelques informations sur l'infrastructure du jour :
Il y a plusieurs architectures possibles, notamment :
Le serveur OpenVPN dispose d'une adresse IP publique (cas d'un VPS) donc on se connecte en direct sur son adresse IP publique
Le serveur OpenVPN est masqué derrière un routeur / un pare-feu, et donc derrière un NAT. Résultat, on se connecte sur l'adresse IP publique de l'équipement (routeur/pare-feu) et grâce à une règle de redirection de port, on se connecte à notre VPN - Je suis dans ce cas, dans le cadre de cette démo
Une fois connecté au VPN à partir du client VPN, tout le trafic de la machine passe par le VPN et sort par la connexion Internet du serveur OpenVPN.
II. Installation d'OpenVPN Server sur Debian 11
Nous pourrions configurer le serveur OpenVPN manuellement, et pas à pas sur notre serveur Debian 11. Toutefois, nous allons utiliser un script d'installation qui va permettre de déployer un serveur VPN très facilement et rapidement. Ce script, compatible Debian, Rocky Linux, Fedora, Ubuntu, etc... est disponible sur GitHub : vous pouvez réviser son code à volonté.
Dès que le script est téléchargé, vous devez ajouter des droits d'exécution afin de pouvoir l'exécuter par la suite :
chmod +x openvpn-install.sh
Ensuite, exécutez le script pour commencer la configuration pas à pas d'OpenVPN Server :
sudo ./openvpn-install.sh
B. Configurer le VPN
Le message "Welcome ton the OpenVPN installer!" s'affiche et les étapes de configuration vont s'enchaîner. Tout d'abord, il faut indiquer l'adresse IPv4 du serveur VPN, mais la bonne nouvelle, c'est qu'elle remonte automatiquement. S'il s'agit de l'adresse IP locale, cela signifie qu'il y a un NAT et dans ce cas, c'est logique. Sinon, l'adresse IP publique de votre serveur, par exemple de votre serveur VPS, s'affichera ici. Ici, le script remonte bien "192.168.100.51" Validez.
D'ailleurs, le script détecte la présence du NAT et indique l'adresse IP publique. Il suffit de valider, à moins que vous souhaitiez préciser un nom de domaine spécifique ou corriger l'information remontée par le script (qui s'appuie sur cURL pour récupérer votre IP publique).
Il est demandé si vous souhaitez activer le support IPv6, vous pouvez indiquer "n" pour refuser.
What port do you want OpenVPN to listen to?
Ensuite, il faut choisir le port sur lequel va écouter le serveur VPN. Par défaut, c'est le port 1194, mais je vous recommande d'utiliser un port personnalisé pour masquer votre VPN (vous pouvez utiliser un port utilisé par un autre protocole (exemple : 443/HTTPS) pour passer plus facilement au travers de certains pare-feu).
Pour définir un port personnalisé, indiquez "2" puis indiquez le numéro de port. Par exemple "44912" dans mon exemple.
What protocol do you want OpenVPN to use ?
OpenVPN est plus rapide avec le protocole de transport UDP, et d'ailleurs c'est son mode de fonctionnement par défaut. Je vous encourage de rester sur UDP, sauf si vous chercher à passer au travers d'un pare-feu : si vous utilisez le port 443, il est plus cohérent d'utiliser le TCP pour faire comme le HTTPS !
What DNS resolvers do you want to use with the VPN ?
Une fois connecté au VPN, quel serveur VPN voulez-vous utiliser pour la résolution de noms. Vous pouvez choisir un serveur personnalisé avec le choix 13, ou en choisir un dans la liste en indiquant son numéro.
Voilà pour la première série de questions. Passons à la suite.
Do you want to use compression ?
Le script nous recommande de ne pas utiliser la compression, car elle est exploitée par les attaques VORACLE. Indiquez "n" et validez.
Customize encryption settings ?
Le script est déjà préconfiguré pour utiliser certains paramètres pour le chiffrement du tunnel VPN et sa sécurité dans son ensemble. Vous avez la possibilité de définir vos propres paramètres en indiquant "y", sinon il suffit de faire "n".
Ci-dessous, voici les différentes options proposées (ainsi que les choix recommandés et correspondants à la configuration automatique) pour ceux qui décident de personnaliser les options de chiffrement.
La première partie de l'interrogatoire est terminé ! Jusqu'à présent, le script n'a pas encore modifié la machine locale. Par contre, à ce moment précis si vous appuyez sur la touche "Entrée" (ou une autre touche), l'installation du serveur OpenVPN débutera.
C. Création d'un premier client
Suite à la configuration du serveur VPN, l'installation via le script se poursuit avec la création d'un premier client VPN. Indiquez le nom du PC qui va utiliser le VPN (histoire de s'y retrouver), par exemple "pc-flo". Ensuite, la question "Do you want to protect the configuration file with a password?" s'affiche, indiquez "2" pour oui afin de définir un mot de passe qui sera nécessaire pour établir la connexion VPN.
Ceci va générer un fichier de configuration OVPN dans le profil de l'utilisateur en cours d'utilisation. Ici, je suis connecté en tant que root alors la configuration est générée dans "/root/". D'un point de vue du serveur VPN, l'ajout de ce client va générer deux fichiers :
Le certificat du client dans /etc/openvpn/easy-rsa/pki/issued/<nom du client>.crt
La clé privée du client dans /etc/openvpn/easy-rsa/pki/private/<nom du client>.key
Note : à tout moment, vous pouvez modifier la configuration de votre serveur OpenVPN en modifiant le fichier de config : /etc/openvpn/server.conf
D. Ajouter un nouveau client OpenVPN
À tout moment, vous pouvez ajouter un nouveau client pur que chaque machine qui se connecte dispose de son propre certificat. Que ce soit pour ajouter ou supprimer un nouveau client, il suffit de réexécuter le script et de faire le choix "1".
sudo ./openvpn-install.sh
E. En mode NAT : la règle de redirection de ports
En mode NAT, c'est-à-dire avec un serveur VPN connecté derrière un routeur/pare-feu où le NAT est activé, vous allez devoir créer une règle de redirection de port. Sinon, les flux à destination de votre adresse IP publique sur le port 44912 ne seront pas redirigés vers le serveur VPN.
Ainsi, sur mon pare-feu, je crée une règle pour rediriger les flux UDP/44912 à destination de mon adresse IP publique à destination du serveur VPN (192.168.100.51).
III. Tester la connexion VPN
Le fichier de configuration généré précédemment (/root/pc-flo.ovpn) dans le profil de l'utilisateur doit être transféré sur l'ordinateur qui doit se connecter au VPN. Si vous êtes sur Windows, vous pouvez utiliser WinSCP ou SCP, et sous Linux vous pouvez utiliser SCP.
A. Sur Windows
Sur Windows, il faudra installer OpenVPN GUI ou OpenVPN Connect. Personnellement, j'utilise OpenVPN GUI donc je dois copier-coller le fichier OVPN dans le répertoire suivant :
C:\Program Files\OpenVPN\config
Ainsi, dans mon client VPN, je vois bien ma nouvelle connexion VPN apparaître qui reprend pour nom celui du fichier OVPN :
En cliquant sur "Connecter", je dois saisir le mot de passe associé au client "PC-FLO" afin de m'authentifier à l'aide de mon certificat.
Une fois connecté, je peux accéder en SSH à mon serveur Debian 11 grâce à son adresse IP locale, à savoir "192.168.100.51". Je peux également accéder aux autres serveurs de mon infrastructure distante. Si j'accède à Internet, je passe par mon VPN et j'utilise donc la connexion Internet de mon serveur VPN !
Côté Windows, en regardant la configuration IP de ma machine, je vois que le tunnel VPN fonctionne sur le réseau "10.8.0.0/24" puisque je dispose de l'adresse IP "10.8.0.2/24". Ce sous-réseau est définit dans le fichier "/etc/openvpn/server.conf" du serveur VPN via la ligne "server 10.8.0.0 255.255.255.0". Au niveau des serveurs DNS, ce sont bien ceux de Cloudflare qui sont définis (1.0.0.1 et 1.1.1.1) et que j'avais choisis lors de la configuration initiale.
B. Sur Linux
Si votre poste client, qui doit utiliser le VPN, est sous Linux, vous pouvez installer OpenVPN via cette commande :
sudo apt-get install openvpn
Ensuite, le fichier de configuration OVPN devra être déposé à cet emplacement :
/etc/openvpn/client/
Pour déclencher une connexion basée sur ce fichier de configuration, il suffira de faire :
La connexion du poste client est visible dans les journaux du serveur VPN, en exécutant la commande ci-dessous.
journalctl --identifier ovpn-server
Par exemple, lors de la connexion depuis mon poste client sous Windows, les journaux suivants sont visibles :
SRV-DEB-1 ovpn-server[436393]: MULTI: multi_init called, r=256 v=256
SRV-DEB-1 ovpn-server[436393]: IFCONFIG POOL IPv4: base=10.8.0.2 size=252
SRV-DEB-1 ovpn-server[436393]: IFCONFIG POOL LIST
SRV-DEB-1 ovpn-server[436393]: Initialization Sequence Completed
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 Outgoing Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 Outgoing Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 Incoming Control Channel Encryption: Cipher 'AES-256-CTR' initialized with 256 bit key
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 Incoming Control Channel Encryption: Using 256 bit message hash 'SHA256' for HMAC authentication
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 TLS: Initial packet from [AF_INET]89.87.49.50:53471, sid=eb971c1d a6a6884b
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 VERIFY OK: depth=1, CN=cn_uIEY50Oeg1zhnla8
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 VERIFY OK: depth=0, CN=pc-flo
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_VER=2.5.6
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_PLAT=win
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_PROTO=6
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_NCP=2
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_CIPHERS=AES-256-GCM:AES-128-GCM
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_LZ4=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_LZ4v2=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_LZO=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_COMP_STUB=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_COMP_STUBv2=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_TCPNL=1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_GUI_VER=OpenVPN_GUI_11
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 peer info: IV_SSO=openurl,crtext
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, 256 bit EC, curve: prime256v1
SRV-DEB-1 ovpn-server[436393]: <IP du serveur VPN>:53471 [pc-flo] Peer Connection Initiated with [AF_INET]<IP publique du PC Client>:53471
En complément, vous pouvez visualiser les règles IPtables avec la commande ci-dessous :
iptables -t nat -L -n -v
Cette commande doit vous permettre de voir que la chaîne POSTROUTING contient cette ligne :
2200 971K MASQUERADE all -- * ens192 10.8.0.0/24 0.0.0.0/0
Une ligne indispensable pour que les flux du VPN soient correctement routés et acheminés.
IV. Conclusion
Ce tutoriel touche à sa fin : nous venons de voir une manière simple de mettre en place un serveur OpenVPN sous Debian 11 à l'aide de ce superbe script d'installation. J'ai pris le temps de vous expliquer ce que faisait le script pour que vous puissiez comprendre ce que vous faites, en même temps. Sachez qu'il existe de nombreuses configurations possibles pour la mise en place d'un VPN avec OpenVPN.
Pour mettre en place un VPN permettant de se connecter à une infrastructure complète, je vous recommande de le mettre en place sur votre pare-feu afin de pouvoir gérer les flux directement à ce niveau-là. Ce sera plus facile pour autoriser uniquement certains protocoles dans le tunnel VPN ou pour autoriser les flux uniquement vers certains hôtes. Par contre, pour un VPN que vous utilisez à usage personnel, pour contourner la censure par exemple, cette solution est idéale.