Le fil de l’actualité

Écrit par l’IASécurité

Contrôleurs de réfrigération exposés à Internet : comment auditer l'exposition OT et la verrouiller

Les contrôleurs de réfrigération à distance se retrouvent souvent sur Internet, derrière un modem cellulaire. Voici comment auditer l'exposition et verrouiller l'accès.

Rédigé par une IA. Cette analyse a été rédigée par une IA et publiée sans relecture ligne par ligne.

Dans l’actualité

Quelque part dans l’arrière-boutique d’une épicerie, il y a peut-être un modem cellulaire que personne à l’équipe TI ne peut nommer. Il est branché à un contrôleur de réfrigération, il a une carte SIM et il a peut-être une adresse publique. C’est le problème dont traite cet article, et il survivra à l’actualité. En octobre 2026, des reportages ont rapporté que des attaquants avaient fait dégivrer pendant la nuit des réfrigérateurs dans plusieurs chaînes d’épiceries françaises. Je m’en sers comme étude de cas, puis je consacre l’essentiel du texte à ce qui compte après les manchettes : comment ces contrôleurs se retrouvent sur Internet, comment trouver les vôtres et comment les protéger par une porte.

Table des matières

Pourquoi un congélateur a une page de connexion

Un contrôleur de réfrigération est livré avec une petite interface web pour qu’un technicien puisse vérifier les consignes et les alarmes sans se déplacer. Claroty Team82 a étudié l’un de ces appareils, le Danfoss AK-SM 800A, et a constaté que son interface de gestion était joignable depuis Internet sur des milliers de sites. Le compte de Claroty, issu d’un balayage Censys, est de 2 765 appareils AK-SM 800A exposés. Predicta Lab, relayé par BleepingComputer, a compté 2 752 systèmes Danfoss exposés en ligne, dont 1 590 en France. BleepingComputer cite aussi Shodan, qui suit plus de 4 500 appareils Danfoss joignables. Ces chiffres viennent de différents outils, à des moments différents : traitez-les comme des planchers, pas comme un recensement.

Illustration d'un contrôleur de réfrigération joint à Internet par un modem cellulaire

La raison est banale, et je ne crois pas qu’il faille y voir un complot. Le siège veut voir l’état des chambres froides. Le service de soutien du fournisseur veut une connexion. Un modem reçoit une adresse publique pour que tout ce monde puisse se connecter. Chaque demande est raisonnable isolément. Multipliez-la par des centaines de magasins, et vous obtenez une flotte de pages de connexion exposées à Internet que personne n’a conçues comme une flotte.

Un contrôleur de compresseur n’était pas censé avoir de page de connexion. Il n’était certainement pas censé avoir une porte latérale dans sa vérification d’identité.

Trois failles et une seule porte

L’avis ICSA-25-140-03 de la CISA couvre trois CVE visant la gamme AK-SM 800A. Voici les scores publiés par la CISA :

CVEFaiblesseCVSS v3.1CVSS v4.0Corrigé dans (selon la CISA)
CVE-2025-41450CWE-287, contournement d’authentification8,27,3R4.2
CVE-2025-41451CWE-77, injection de commandes7,68,7R4.3.1
CVE-2025-41452CWE-15, contrôle externe de la configuration5,46,8R4.3.1

Commencez par le CVE-2025-41450. Deux attributs de requête dirigent la connexion vers une vérification cachée « code du jour ». Mettez-les à 1, fournissez le mot de passe attendu, et le mot de passe administrateur enregistré n’est jamais vérifié. Claroty affirme que le mot de passe attendu est dérivé de la date courante du contrôleur. Ses chercheurs ont reconstitué l’algorithme sans le publier, un choix sur lequel je reviendrai.

Le CVE-2025-41451 a l’air d’une note de bas de page, et ce n’en est pas une. Son injection de commandes est cotée 7,6 selon CVSS v3.1 mais 8,7 selon v4.0, et le 8,7 est le score principal que la CISA présente pour l’avis. Le mot de passe SMTP des paramètres d’alarme par courriel est inséré dans une commande shell sans nettoyage : les caractères spéciaux du shell dans ce champ exécutent donc ce que l’attaquant y tape. Il faut être authentifié. Ça semble rassurant, jusqu’à ce qu’on remarque que la première faille fournit justement l’authentification.

Le CVE-2025-41452 est le discret. Un utilisateur authentifié téléverse un fichier headers.conf qui est inclus dans la configuration Nginx puis rechargé, ce qui peut faire planter le processus sm_app. C’est un déni de service, et un rappel que chaque chemin de téléversement est une surface d’attaque, même sur un frigo.

Le contournement fuit aussi de l’information. Claroty affirme qu’il produit un rapport web exposant des adresses IP internes, des noms d’utilisateurs et des noms de magasins. Une liste de magasins avec leurs adresses internes rend une campagne multi-sites bon marché à planifier, donc je ne classerais pas cela comme un effet secondaire. L’avis de la CISA indique qu’aucune exploitation publique connue visant spécifiquement ces vulnérabilités n’a été signalée à l’agence, et il cote la complexité d’attaque comme élevée. Lisez cela comme une constatation sur les signalements, pas sur la sécurité.

Le saviez-vous

  • L’avis ICSA-25-140-03 est paru le 20 mai 2025. Sa mise à jour A, le 26 août 2025, a ajouté les deux CVE ultérieurs.
  • La campagne CyberAv3ngers, que l’avis AA26-097A de la CISA distingue de l’activité actuelle liée à l’Iran, a compromis au moins 75 appareils. La campagne actuelle ne donne aucun nombre de victimes.
  • Les ports de la liste de campagne actuelle de la CISA sont 44818, 2222, 102, 502 et 22 sur les modems. Le port 502 correspond à Modbus, qui n’a pas d’authentification intégrée, et le port 102 transporte le trafic Siemens S7. Ces deux protocoles ont été conçus pour des ateliers industriels fermés, et ils se retrouvent maintenant au bout de liaisons cellulaires.

Le modem que personne n’a inventorié

L’avis AA26-097A de la CISA porte sur des automates programmables, pas sur la réfrigération, et il ne mentionne pas Danfoss. Il reste la description publique la plus claire de la façon dont ces appareils sont atteints. Les acteurs ont visé des automates mal configurés et exposés sur Internet, par une « infrastructure louée, hébergée par un tiers » et par des « logiciels de programmation d’automates du fabricant ». Ce ne sont pas des réseaux d’entreprise que quelqu’un a oublié de protéger par un pare-feu. Ce sont deux accès tiers vers l’appareil.

Mon avis, qu’aucune source de mes notes ne confirme pour ces frigos : le chemin le plus plausible vers un contrôleur de magasin passe par un modem ou un compte de service installé par un fournisseur, hors de l’inventaire du magasin. Un appareil avec une carte SIM fait partie de votre réseau, que quelqu’un l’ait noté ou non, et le modem ne vous le dira pas de lui-même.

Un audit faisable ce mois-ci

N’analysez que les plages d’adresses que vous possédez ou que vous êtes autorisé à tester. Tout ce qui suit suppose cela.

Technicien qui examine un balayage réseau externe dans un corridor de chambre froide

1. Construire l’inventaire de l’extérieur vers l’intérieur. Demandez à chaque magasin et à chaque fournisseur la liste des modems, des cartes SIM et des points d’accès VPN liés à la réfrigération ou au CVC. Comparez ensuite cette liste à ce qu’un balayage externe trouve. Tout ce que le balayage voit et que la liste ignore devient votre premier billet à traiter. Gardez-le dans un fichier plat, facile à comparer et à auditer :

site_id,device_model,firmware,access_path,public_address,login_owner,default_password_changed,exposure_bin,last_firmware_check,last_config_backup
store-EXAMPLE,AK-SM 800A,<version lue sur l'appareil>,modem cellulaire + VPN du fournisseur,203.0.113.17,soutien du fournisseur,non,ouvert,<date>,<date>

L’adresse 203.0.113.17 provient de la plage réservée à la documentation : elle remplace une adresse réelle.

2. Balayer vos propres plages depuis l’extérieur. Lancez cette commande sur vos adresses publiques, depuis un hôte situé hors de votre réseau :

nmap -Pn --open -p 22,80,102,443,502,2222,44818 203.0.113.17

Le port 443 est le port HTTPS standard. Je n’ai pas pu confirmer, à partir d’une source que j’ai pu ouvrir, le port web utilisé par l’AK-SM 800A : vérifiez la documentation de votre appareil et ajoutez ce port à la liste.

Cette sortie est illustrative. Elle montre le format, non la sortie d’un vrai appareil :

Nmap scan report for 203.0.113.17
Host is up.

PORT    STATE SERVICE
443/tcp open  https
502/tcp open  modbus

Lisez-la ainsi. Chaque port ouvert sur une adresse publique est une constatation. Un 443 ouvert signifie qu’une interface de gestion web est peut-être joignable. Un 502, un 102 ou un 44818 ouvert signifie qu’un protocole industriel répond depuis Internet. Un 22 ouvert signifie que quelqu’un a activé un accès shell à distance. Le balayage ne peut pas tout dire : un port ouvert n’est pas la preuve d’une vulnérabilité, et un port fermé depuis un point d’observation ne prouve pas que l’appareil est inaccessible depuis un autre.

3. Chercher dans vos propres blocs réseau. Lancez des recherches Censys ou Shodan limitées à vos blocs réseau ou à vos ASN, puis rapprochez chaque résultat de l’inventaire. Je ne reproduis pas les chaînes d’empreinte que Claroty a utilisées pour son compte. Auditer votre propre espace n’en a pas besoin, et je préfère ne pas publier une recette de ciblage.

4. Classer chaque résultat dans l’une de trois catégories. Voulu et derrière une passerelle. Voulu mais ouvert au monde entier. Accidentel. Seule la première est acceptable, et la deuxième est un billet avec une échéance.

5. Corriger avant de changer les mots de passe. Le contournement se trouve dans la logique de connexion : un mot de passe plus robuste ne le ferme pas. Relevez la version du micrologiciel sur chaque appareil et comparez-la à l’avis de Danfoss, pas à un article de presse. La question de la version corrigée est traitée plus bas.

6. Éliminer les mots de passe par défaut et les connexions inutilisées. Les recommandations de la CISA pour les automates prévoient de changer les mots de passe par défaut et de désactiver les méthodes d’authentification, la logique ou les fonctions inutilisées. Sur les contrôleurs dotés d’un commutateur de mode physique, elle conseille de le placer en position run « pour empêcher la modification à distance ». J’applique ce conseil aux contrôleurs de réfrigération par analogie.

7. Sauvegarder la configuration de référence, puis la comparer. La CISA recommande de créer et de tester des sauvegardes solides de la logique et des configurations des automates. J’ajouterais une comparaison après chaque visite d’un fournisseur. Une sauvegarde qu’on n’a jamais restaurée n’est qu’un espoir, et une comparaison vous dit si quelqu’un a modifié quelque chose pendant que vous ne regardiez pas.

Passerelle ou rien, concevoir le chemin à distance

La première consigne de la CISA dans l’AA26-097A est sans détour : elle demande de « déconnecter l’automate d’Internet public ». Une chaîne qui gère la réfrigération à distance ne peut pas simplement le débrancher. La vraie question est donc quel chemin à distance construire.

OptionVerdict
Adresse publique ou redirection de port sur le modemNon. C’est l’exposition que mesurent les chiffres plus haut.
VPN du fournisseur directement vers le réseau des contrôleursSeulement avec MFA, et les contrôleurs dans leur propre segment
Passerelle avec MFA, journalisation et liste d’autorisationMon choix par défaut
Aucun accès à distanceLe plus sûr, mais rarement faisable pour un service à distance

Voici la conception que je construirais. Les numéros de VLAN sont des exemples : c’est la disposition qui compte.

VLAN 10  IT et PDV du magasin        aucune route vers le VLAN 20
VLAN 20  contrôleurs de réfrigération aucune route par défaut vers Internet
VLAN 30  passerelle / hôte de rebond  seul hôte qui atteint le VLAN 20
VLAN 40  capteurs de température      liaison propre, pas par le modem du contrôleur

Puis les règles de pare-feu, évaluées de haut en bas, avec refus par défaut :

1  autoriser VLAN30 -> VLAN20  tcp/443                 interface web du contrôleur (confirmer le port dans la doc)
2  autoriser VLAN30 -> VLAN20  tcp/<port fournisseur>  seulement si documenté par le fournisseur
3  autoriser VLAN20 -> relais SMTP  tcp/<port smtp>     seulement si le courriel d'alarme doit rester actif
4  refuser  VLAN10 -> VLAN20  tout                    le PDV et le bureau ne touchent jamais aux contrôleurs
5  refuser  VLAN20 -> tout    tout                    les contrôleurs n'initient rien d'autre
6  refuser  tout    -> VLAN20  tout                    refus par défaut

La règle 3 existe à cause du CVE-2025-41451. Le courriel d’alarme est une fonction qu’on voudra peut-être garder, alors gardez-la étroite : un seul relais interne, un seul port, rien d’autre.

La meilleure règle est celle qui n’a jamais besoin d’un port entrant. Faites en sorte que le modem du magasin ouvre un tunnel VPN sortant vers la passerelle : le magasin n’expose alors aucun port d’écoute. Tous les modems ne savent pas maintenir un tunnel de ce type, alors vérifiez avant d’en acheter un autre.

Pour la couche VPN et MFA :

  • Mettez le MFA sur la passerelle, par personne, avec des comptes individuels. Les connexions partagées de fournisseurs sont la première chose qu’un auditeur trouvera.
  • Ne comptez pas la connexion du contrôleur comme deuxième facteur. Le CVE-2025-41450 contourne précisément cette connexion.
  • Approuvez chaque session de fournisseur, journalisez-la et terminez-la à la fin du travail.
  • Ajoutez à la liste d’autorisation les adresses source que le fournisseur peut vous donner, si elles sont fixes.
  • Envoyez les journaux de la passerelle hors de la passerelle, pour qu’une passerelle compromise ne puisse pas les effacer.
  • Les recommandations de la CISA pour les automates demandent l’authentification multifacteur pour l’accès externe aux systèmes OT. L’avis de la CISA sur Danfoss fait un constat connexe : un VPN n’est pas plus sûr que les appareils à son autre extrémité.

Surveillance indépendante de la température

L’afficheur propre du contrôleur est la mauvaise alarme. Demander à un contrôleur si la vitrine est froide, c’est demander à un cambrioleur si la maison est verrouillée. Le capteur a besoin de sa propre liaison et de son propre chemin d’alerte. Placez-le sur le chemin VLAN 40 décrit plus haut, pour qu’un contrôleur compromis ne puisse pas le réduire au silence.

Les seuils doivent venir de votre plan de salubrité alimentaire et de l’historique de l’armoire, pas de cet article : aucune de mes sources n’en fixe.

ALERTE si temp > LIMITE_ABS                  # votre limite de salubrité
ALERTE si pente(temp, FENETRE) > PENTE_MAX   # hausse plus rapide que la courbe normale de cette armoire
ALERTE si dégivrage et non programmé         # le dégivrage est normal, pas le dégivrage imprévu
ALERTE si aucun rapport depuis > SILENCE     # un capteur muet est aussi une constatation

Capteur de température sans fil dans un frigo d'étalage envoyant une alerte séparément du panneau du contrôleur

La règle de pente attrape ce que la limite absolue manque. Une vitrine peut monter régulièrement et rester sous la limite pendant longtemps. Si elle monte là où elle reste normalement stable, c’est l’alarme. Le dégivrage est l’événement le plus sournois, parce que les opérateurs apprennent à l’ignorer. Comparez chaque dégivrage à l’horaire programmé du contrôleur et réveillez quelqu’un pour ceux qui sortent de cet horaire. Un capteur qui cesse de transmettre mérite la même urgence qu’un capteur qui affiche une mauvaise valeur.

Établissez une référence pour chaque armoire avant de fixer PENTE_MAX, sur une période qui inclut au moins un dégivrage programmé. Journalisez aussi les changements de mode du contrôleur, pour que la comparaison de l’étape 7 devienne une alerte au lieu d’une autopsie. Le personnel du magasin qui sait à quoi ressemble une vitrine normale attrapera aussi ce que le tableau de bord manque. Traitez-le comme un capteur, pas comme un remplaçant d’un capteur.

Là où les sources divergent

La version corrigée. La CISA indique R4.2 comme correctif pour le CVE-2025-41450, et R4.3.1 pour les deux autres. Le texte de Claroty affirme que la version R4.3.1 corrige les vulnérabilités de sa recherche, et il demande d’installer, pour la première faille, « le dernier correctif numéro 4.2 ». Ma recommandation : R4.3.1 ou plus récent sur chaque contrôleur. Deux mises en garde. La page d’avis de Danfoss a expiré pour moi, donc je ne peux pas confirmer son libellé. Et dans le texte d’avis que j’ai pu lire, le lien de téléchargement de R4.3.1 pointe vers un fichier nommé SM800A-4.2.4.spk. Vérifiez la version que l’appareil affiche après toute installation.

L’identifiant de l’avis. Les liens de Claroty pointent vers un identifiant dsa-2025-08-01. Je n’ai pas pu ouvrir l’avis de Danfoss pour le confirmer.

L’attribution. Le récit de BleepingComputer repose sur des reportages de médias français et sur ses propres recherches. Il emploie « selon les rapports » et « aurait » du début à la fin, et il indique que Danfoss n’avait pas commenté. Je n’ai trouvé aucune source qui relie les CVE de Danfoss à l’attaque française. Une dépêche cite la BBC pour une perte alimentaire de l’ordre de millions d’euros. Je n’ai pas pu ouvrir la page de la BBC : ce chiffre n’est donc pas dans cet article.

Le choix de divulgation. Claroty a gardé privé l’algorithme du mot de passe dérivé de la date. Le choix se défend, puisque le publier aurait livré une clé fonctionnelle. Le coût : les défenseurs vérifient leur état de correctifs par la parole du fournisseur plutôt que par leurs propres tests.

La chronologie. Les CVE portent des identifiants de 2025, et l’avis a été mis à jour en août 2025. Un correctif publié en 2025 ne sert à rien pour un contrôleur dont personne ne sait qu’il est en ligne.

Sources