Ctrl+Alt+Prod : automatisation, infra et bonnes pratiques pour admins et devops

  • GitHub Public Monitoring : triage et vérification pour les secrets qui fuitent

    GitHub Public Monitoring : triage et vérification pour les secrets qui fuitent

    Un stagiaire pousse par erreur un fichier .env dans un fork public de ton repo interne. Trois minutes plus tard, un bot scanne la clé AWS qu’il contient et teste si elle fonctionne encore. C’est à peu près le scénario que GitHub cherche à raccourcir avec Public Monitoring, sa fonctionnalité de détection de secrets exposés en dehors de tes propres dépôts privés — et qui vient de gagner un vrai outil de triage le 23 octobre 2026.

    Ce que Public Monitoring surveille (et ce qu’il ne surveille pas)

    Lancée en préversion publique le 1er juillet 2026, Public Monitoring scanne en continu la surface publique de github.com : contenu Git, commentaires de pull request, issues. Elle ne touche jamais aux dépôts privés — GitHub est explicite là-dessus dans l’annonce d’origine. L’idée n’est pas de remplacer le secret scanning classique sur tes propres repos, mais de repérer ce qui a fuité ailleurs : un fork personnel oublié, un gist, le dépôt public d’un ancien contributeur qui a copié-collé un bout de code avec un token dedans.

    L’attribution à ton entreprise se fait de deux façons. La première, par appartenance : si le compte qui a commité est membre de ton organisation GitHub, la fuite remonte automatiquement. La seconde, plus intéressante, par domaine vérifié : si l’e-mail associé au commit utilise un domaine que ton organisation a vérifié, la fuite est rattachée même si le compte GitHub n’a jamais été ajouté à l’entreprise — typiquement un compte personnel qu’un développeur utilise avec son adresse pro. C’est ce deuxième mécanisme qui couvre le vrai angle mort : les devs qui bossent sur leurs propres projets open source avec leur mail d’entreprise, sans que personne au sein de la boîte le sache.

    Les nouveautés du 23 octobre : on passe du simple radar à un vrai outil de travail

    Jusqu’ici, Public Monitoring se contentait de remonter une alerte dans le dashboard de sécurité de l’entreprise, sans grand-chose pour la gérer au quotidien. La mise à jour du 23 octobre change ça sur quatre points.

    Triage depuis le dashboard

    Les admins d’entreprise et les security managers peuvent désormais fermer une alerte (Ignorée ou Corrigée, avec un commentaire optionnel), la rouvrir, et consulter l’historique complet des actions. Le filtrage par dépôt, committer, type de secret, méthode d’attribution et statut rend enfin gérable une liste qui, sur une grosse organisation, peut vite compter des dizaines d’entrées.

    Vérification de validité en continu

    Chaque alerte affiche désormais un statut — Active, Inactive ou Inconnu — basé sur une vérification automatique et permanente de la validité du token, pour les fournisseurs supportés. Concrètement : plus besoin de tester toi-même si la clé AWS qui a fuité est encore valide avant de paniquer ou de l’ignorer.

    API REST et webhook d’entreprise

    Le nouvel endpoint GET /enterprises/{enterprise}/secret-scanning/public-monitoring-alerts expose les métadonnées complètes (type de secret, attribution, emplacement d’exposition). Exemple d’appel :

    curl -H "Authorization: Bearer $GH_ENTERPRISE_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      "https://api.github.com/enterprises/ctrl-alt-prod/secret-scanning/public-monitoring-alerts?state=open"

    Et pour être notifié en temps réel sans avoir à poller l’API, l’événement webhook secret_scanning_public_monitoring_alert se souscrit au niveau de l’entreprise — de quoi brancher ça directement sur ton canal d’astreinte plutôt que de compter sur quelqu’un qui pense à aller vérifier le dashboard.

    Ce que fermer une alerte NE fait PAS

    Un point que GitHub précise noir sur blanc dans son changelog et qui mérite d’être répété : passer une alerte en « Corrigée » ne révoque rien et ne supprime rien du dépôt public concerné. Ça change seulement son statut dans ton tableau de bord d’entreprise. La clé AWS qui a fuité reste valide et visible publiquement jusqu’à ce que quelqu’un la révoque réellement côté fournisseur et nettoie l’historique Git si besoin. Le triage organise le travail, il ne le fait pas à ta place.

    Et il y a un angle mort plus sérieux que celui-là, pointé par StepSecurity dans son analyse de la fonctionnalité : Public Monitoring ne voit que ce qui finit publiquement visible sur github.com. Si un secret est exfiltré vers une infrastructure contrôlée par l’attaquant — exactement le mode opératoire des campagnes TeamPCP et GhostAction documentées cette année — la fonctionnalité ne le détecte jamais, puisqu’il n’y a rien à scanner sur GitHub. Les logs d’exécution des workflows Actions, eux, ne sont mentionnés nulle part dans la documentation de couverture : à traiter comme hors périmètre jusqu’à preuve du contraire.

    Disponible pour qui, à quel coût

    Public Monitoring reste en préversion publique, réservée à GitHub Enterprise Cloud, et incluse sans coût supplémentaire si tu as déjà une licence GitHub Advanced Security ou GitHub Secret Protection. Depuis le 22 octobre, elle couvre aussi les clients Enterprise Cloud avec data residency — une case qui restait vide depuis le lancement de juillet.

    Ce que ça change concrètement pour ton équipe

    La vraie valeur de cette mise à jour n’est pas la détection elle-même — elle existait déjà depuis juillet — mais le fait qu’elle devienne enfin exploitable en routine. Avant le 23 octobre, une alerte Public Monitoring finissait soit ignorée dans un coin du dashboard, soit traitée à la main sans trace de qui avait fait quoi. Avec le triage, l’historique et le webhook, tu peux enfin la faire entrer dans un vrai processus d’astreinte : réception en temps réel, vérification de validité automatique pour prioriser, et une trace d’audit pour savoir qui a fermé quoi et pourquoi.

    Ceci dit, ça reste de la détection après coup. Si ton équipe pousse régulièrement des secrets par erreur, la vraie correction est en amont — un hook de push protection qui bloque le commit avant qu’il parte, pas un dashboard qui te prévient après qu’il soit déjà public. Public Monitoring est un excellent filet de sécurité pour les angles morts (forks, comptes personnels, anciens contributeurs) ; ce n’est pas une raison de relâcher la discipline sur tes propres dépôts.

    FAQ

    Public Monitoring scanne-t-il mes dépôts privés ?

    Non, jamais. GitHub l’indique explicitement : seule la surface publique de github.com est couverte (contenu Git, PR, issues).

    Faut-il une configuration particulière pour l’activer ?

    Non — les propriétaires d’entreprise et les security managers l’activent depuis l’onglet Security, sans paramétrage supplémentaire au niveau des dépôts individuels.

    Que se passe-t-il si je ferme une alerte par erreur ?

    Tu peux la rouvrir à tout moment depuis le dashboard — l’historique garde la trace de chaque changement d’état, donc rien n’est perdu.

    La vérification de validité fonctionne-t-elle pour tous les types de secrets ?

    Non, uniquement pour les fournisseurs supportés par le mécanisme de validity checking de GitHub. Pour les autres, l’alerte reste au statut « Inconnu ».

    En pratique

    Si ton organisation a déjà GitHub Advanced Security ou Secret Protection, active Public Monitoring cette semaine et branche le webhook sur ton outil d’astreinte plutôt que de laisser quelqu’un surveiller le dashboard à la main. Et pendant que tu y es, vérifie que la protection de ta chaîne de dépendances npm en CI est aussi activée, et que ton cache GitHub Actions ne traîne pas une vieille faille de cache poisoning — les trois couvrent des angles morts différents de la même histoire de supply chain.

  • CVE-2026-88771 : la faille NetScaler qui pille ta config

    CVE-2026-88771 : la faille NetScaler qui pille ta config

    Une chaîne de caractères glissée dans le champ username d’une requête d’authentification, et sept jours plus tard un attaquant se retrouve avec root sur ton appliance NetScaler — sans avoir rien authentifié. C’est le mécanisme de CVE-2026-88771, une injection de commande (CWE-20) notée 9.5 en CVSS 4.0, divulguée par Citrix le 27 septembre 2026 et toujours activement exploitée six semaines plus tard : CrowdSec a compté 308 signaux correspondants entre le 28 septembre et le 18 octobre, avec un pic de 43 en une seule journée le 14 octobre. Si tu as patché la variante SAML CVE-2026-88779 couverte ici début octobre en pensant avoir réglé le dossier NetScaler, cet article-là concerne un autre trou, plus ancien et bien plus grave.

    Un mécanisme d’exploitation qui vaut le détour technique

    Ce n’est pas une injection SQL classique. Citrix journalise le nom d’utilisateur envoyé à l’endpoint /nf/auth/doAuthentication.do, sans validation. Un script de maintenance interne, ns_monuploadd_err.pl, relit ensuite ces lignes de log sur une base planifiée et les insère dans une commande shell sans les filtrer — la commande s’exécute alors en root. Comme ce script tourne sur un cron interne et pas à la réception de la requête, l’exécution peut survenir jusqu’à 24 heures après l’envoi de la charge, ce qui complique sérieusement la corrélation dans les logs si tu cherches l’origine après coup. D’après watchTowr, qui a documenté la chaîne complète, d’autres champs loggés comme le User-Agent peuvent porter la même charge. Et la configuration par défaut est vulnérable : aucune fonctionnalité optionnelle à activer pour être exposé, aucun prérequis particulier côté config NetScaler.

    Chez Rapid7, l’analyse post-compromission d’une des deux organisations identifiées montre exactement ce que fait la commande injectée une fois exécutée : elle archive /flash/nsconfig — le dossier qui contient ns.conf — dans /var/netscaler/gui/vpn/c. Problème : le dossier /vpn/ est servi publiquement par l’appliance, sans authentification. N’importe qui peut donc récupérer cette archive avec un simple GET sur /vpn/c. Et le contenu n’est pas anodin : mots de passe admin chiffrés, identifiants de bind LDAP/RADIUS/TACACS, certificats SSL et clés privées, clés d’hôte SSH, fichiers de licence, paramètres de synchronisation HA. Autrement dit, de quoi relancer une attaque bien après le premier accès, même si la faille d’origine est corrigée depuis.

    Versions concernées et correctif

    Citrix a corrigé la faille dans les versions suivantes, publiées le 27 septembre 2026 (bulletin CTX697096) :

    • NetScaler ADC et Gateway 14.1 : corrigé en 14.1-73.37 (vulnérable avant cette version)
    • NetScaler ADC et Gateway 13.1 : corrigé en 13.1-64.23
    • NetScaler ADC 14.1-FIPS : corrigé en 14.1-73.37 FIPS
    • NetScaler ADC 13.1-FIPS et 13.1-NDcPP : corrigé en 13.1-37.279

    Ces mêmes builds corrigent aussi CVE-2026-88772 (CVSS 9.5, débordement mémoire nécessitant DTLS activé) — les deux failles font partie du même lot de huit vulnérabilités publiées ce jour-là. Si ta version remonte seulement jusqu’à ces builds de septembre sans aller jusqu’à 14.1-73.41/13.1-64.28, tu restes en revanche exposé à CVE-2026-88779, patchée une semaine plus tard et déjà traitée dans l’article lié plus haut : deux lots de correctifs distincts, à appliquer dans l’ordre chronologique inverse de leur publication.

    Chronologie de l’exploitation : plus ancienne que la divulgation

    Rapid7 situe les premières tentatives d’exploitation de CVE-2026-88771 au 20 septembre 2026 — soit une semaine avant que Citrix ne publie l’avis officiel. Beazley Security date même une campagne probable dès le 20 septembre, et le chercheur Kevin Beaumont rapporte des webshells observés début septembre. Le 24 septembre, Rapid7 observe un webshell chez une deuxième organisation compromise, déposé à /var/netscaler/logon/LogonPoint/custom/.ctxs.receiver (hash SHA256 ed082f744f035035900f67edf438f2f7d0528ac501234f63d476d65273cdb9a1 si tu veux le chercher dans tes propres logs). CISA a ajouté CVE-2026-88771 à son catalogue Known Exploited Vulnerabilities le jour même de la divulgation, avec une échéance de remédiation au 30 septembre pour les agences fédérales américaines — trois jours, pas trois semaines, ce qui donne une idée du niveau d’urgence perçu côté CISA.

    Un détail qui change la donne pour qui doit juste patcher et passer à autre chose : un proof-of-concept public existe depuis le 28 septembre, le Detection Artefact Generator de watchTowr, qui se contente d’exécuter un id inoffensif en root pour confirmer la vulnérabilité sans causer de dégâts. Sa seule existence suffit à élargir le bassin d’attaquants capables de l’exploiter, bien au-delà du groupe qui l’a découverte.

    Patcher ne suffit pas : l’ordre des opérations compte

    Voilà le point sur lequel il ne faut pas se tromper : le correctif ferme la faille, il ne nettoie rien de ce qu’un attaquant a pu déposer avant. Et comme la mise à jour redémarre l’appliance — ce qui efface les implants purement en mémoire et une partie des preuves volatiles — patcher avant d’avoir cherché une compromission revient à détruire potentiellement les indices dont tu as besoin pour savoir si tu as été touché.

    La bonne séquence, dans cet ordre précis :

    • Fais d’abord une snapshot de l’appliance, puis cherche les indicateurs de compromission listés par Citrix dans l’article CTX694799 : comptes superutilisateur inconnus dans ns.conf (l’exemple cité par watchTowr est gw_health), fichiers inattendus dans /var/tmp et /var/vpn/ns_helper, fichiers cachés sous /var/netscaler/logon/LogonPoint/, un listener sur le port TCP 37512, des clés inconnues dans /root/.ssh/.
    • Si tu trouves le moindre signe de compromission, ne patche pas en place : reconstruis depuis une image propre et fais tourner tous les secrets que l’appliance pouvait stocker — mots de passe LDAP/RADIUS/TACACS inclus, pas seulement le compte admin local.
    • Si rien n’est trouvé, applique le correctif, vérifie la version avec show ns version en CLI, et reste vigilant : « rien trouvé » ne veut pas dire « rien n’est arrivé », juste que les indicateurs connus n’y sont pas.

    CrowdSec a publié un scénario de détection dès le 28 septembre, mais signale ne disposer d’aucune règle de virtual patching (AppSec) spécifique à cette CVE à la date du 19 octobre — les listes de blocage couvrent une partie des IP malveillantes identifiées, pas la totalité. Côté chiffres d’exposition, CrowdSec a tracé 24 IP source distinctes entre le 22 septembre et le 18 octobre. Ce n’est pas massif comparé à une faille de masse exploitée par botnet, mais ça correspond à une activité ciblée et soutenue sur près d’un mois, pas à un test isolé qui se serait éteint tout seul.

    FAQ

    CVE-2026-88771 et CVE-2026-88779, c’est la même faille ?

    Non. CVE-2026-88771 est une injection de commande exploitable sans authentification en configuration par défaut, corrigée le 27 septembre. CVE-2026-88779 est un déni de service lié à une configuration SAML spécifique, corrigée une semaine plus tard, le 4 octobre. Les deux appartiennent au même fournisseur et à des lots de correctifs rapprochés, mais ce sont deux failles distinctes avec deux surfaces d’exposition différentes.

    Une authentification est-elle nécessaire pour exploiter CVE-2026-88771 ?

    Non, c’est tout le problème : la charge part vers l’endpoint d’authentification lui-même, avant toute vérification d’identifiants. C’est ce qui explique le score CVSS de 9.5 et la complexité d’attaque qualifiée de faible par Citrix.

    Comment savoir si mon appliance a déjà été compromise avant de patcher ?

    Cherche les indicateurs listés plus haut (comptes superutilisateur inconnus, fichiers sous /var/tmp ou /var/netscaler/logon/LogonPoint/, listener sur le port 37512, clés SSH inconnues) avant d’appliquer le correctif, pas après — le redémarrage lié au patch peut effacer des preuves volatiles.

    Le patch seul protège-t-il rétroactivement les secrets déjà exposés via /vpn/c ?

    Non. Si l’archive de configuration a déjà pu être téléchargée par un attaquant, les secrets qu’elle contient (mots de passe, clés SSH, certificats) restent compromis tant qu’ils ne sont pas explicitement régénérés, même après la mise à jour.

    Ce que ça dit sur les appliances exposées en 2026

    Trois CVE NetScaler critiques en moins de six semaines sur le même produit, deux d’entre elles déjà exploitées avant même leur divulgation officielle : si ton NetScaler est exposé directement sur Internet sans WAF devant, ce n’est plus une question de « si » mais de « quand ». La bonne nouvelle, relative, c’est que Citrix documente ses indicateurs de compromission de façon précise à chaque fois — ce qui n’était pas toujours le cas il y a encore deux ou trois ans sur ce genre d’appliances. Prends le temps de l’audit avant de cocher la case « patché » dans ton tableau de suivi.

  • Agentic Autofix dans Azure DevOps : Copilot corrige tes CVE

    Agentic Autofix dans Azure DevOps : Copilot corrige tes CVE

    Un admin active Autofix sur un repo, un développeur clique sur « Generate fix » face à une alerte de dépendance vulnérable, et quinze minutes plus tard une pull request atterrit avec un changement de version, une explication et un score de priorité. C’est la promesse de l’Agentic Autofix, annoncée le 21 octobre 2026 par Laura Jiang sur le blog Azure DevOps. Pas une nouvelle fonctionnalité isolée : une refonte du moteur qui pilotait déjà Copilot Autofix pour GitHub Advanced Security depuis juin, cette fois avec un agent qui va fouiller ton code avant de répondre.

    Ce qui change par rapport à l’ancien Autofix

    La première version d’Autofix, lancée en juin 2026, générait des correctifs pour un ensemble limité de règles CodeQL. Elle lisait l’alerte, proposait un diff, point final. La version agentique s’appuie sur le moteur du Copilot coding agent : il explore le dépôt pour comprendre le contexte autour de l’alerte, rédige une proposition, puis la relit et l’ajuste avant de te la soumettre. Concrètement, ça veut dire qu’il peut repérer qu’une fonction de validation d’entrée existe déjà ailleurs dans ton code et s’en servir, plutôt que d’inventer son propre patch isolé.

    Deuxième changement, plus structurant : Autofix ne se limite plus à CodeQL. Il traite aussi les alertes de code scanning remontées par des outils tiers, et couvre les vulnérabilités de dépendances — ce que l’ancienne version ne faisait pas du tout. Tu peux aussi le guider avec des instructions personnalisées et des « skills » placées dans les emplacements `.github` ou `.agents` de ton repo. Microsoft donne deux exemples concrets dans son billet : pointer l’agent vers un helper de validation d’entrée déjà approuvé par l’équipe, ou lui fournir une skill qui encode la procédure interne de mise à jour de paquets avec ses vérifications de compatibilité.

    Dépendances vulnérables : le score EPSS plutôt que le seul CVSS

    Sur une alerte de dépendance supportée, tu sélectionnes « Generate fix » et l’agent ouvre une pull request avec le changement proposé et une explication — qui passe ensuite par ta revue de code habituelle, rien n’est mergé automatiquement. Ce qui change vraiment la donne pour trier parmi des dizaines d’alertes, c’est l’affichage du percentile EPSS quand la donnée est disponible : plus le percentile est élevé, plus la probabilité d’exploitation relative de cette CVE est classée haut par rapport aux autres failles connues. Ce n’est pas une probabilité d’attaque en soi, juste un rang — Microsoft le précise explicitement dans son billet, et c’est la bonne nuance à transmettre à ton équipe avant qu’elle ne confonde les deux.

    Azure DevOps distingue aussi désormais les dépendances de développement des dépendances d’exécution sur les écosystèmes supportés, via un badge « Development » et un filtre Scope. Le billet suggère une méthode de triage simple et plutôt juste : combiner le filtre Runtime avec une plage de percentile EPSS élevé, puis pondérer avec la sévérité et l’exposition réelle de l’application. Une dépendance de build jamais exposée en prod avec un EPSS élevé reste moins urgente qu’une dépendance runtime avec un EPSS moyen sur un service exposé à Internet — le score seul ne suffit jamais à trancher.

    Activer Agentic Autofix sur ton organisation

    L’activation se fait en un bouton, au niveau organisation, projet ou dépôt, et couvre à la fois les alertes de dépendances et de code scanning. Une fois l’option activée côté admin, c’est au niveau du dépôt que les alertes individuelles sont sélectionnées pour passer par Autofix. Le déploiement s’étale sur deux à trois semaines selon Microsoft — les organisations déjà dans la preview publique limitée peuvent demander des correctifs dès maintenant sur les alertes supportées, la preview publique générale, elle, commence en novembre 2026.

    Le billet ne précise ni les langages exacts couverts pour la génération de fix, ni les noms des outils de code scanning tiers pris en charge, ni les paliers de licence requis — trois détails qu’on attend encore en pratique avant de pouvoir chiffrer sérieusement un déploiement à l’échelle d’une organisation.

    Ce que ça coûte vraiment en crédits IA

    Générer un correctif consomme des crédits IA. Activer Autofix sur un repo ne déclenche rien tout seul : tant que personne ne clique sur « Generate fix », aucun crédit n’est consommé. Toutes les demandes n’aboutissent pas non plus à un correctif exploitable. Et la responsabilité ne change pas de camp : chaque suggestion générée par l’agent doit être relue, buildée et testée avant merge, exactement comme n’importe quelle PR humaine — Autofix accélère la proposition, pas la revue.

    Pour une équipe qui gère déjà des centaines d’alertes de dépendances sans jamais les traiter faute de temps, le calcul reste simple : même avec un taux d’échec non négligeable sur les correctifs générés, chaque PR qui atterrit toute prête vaut mieux qu’une alerte qui dort depuis huit mois. L’outil ne remplace pas un programme de gestion des vulnérabilités, il réduit juste la friction du dernier kilomètre — celui où la plupart des équipes calent, pas par manque de volonté mais par manque de temps.

    FAQ

    Agentic Autofix remplace-t-il complètement l’ancien Copilot Autofix ?

    Oui, c’est une évolution du même produit, pas un outil parallèle. Le nom et le bouton restent « Copilot Autofix », mais le moteur sous-jacent est désormais celui du Copilot coding agent, avec exploration de contexte et relecture avant proposition.

    Faut-il GitHub Advanced Security pour en profiter ?

    Oui, Agentic Autofix s’appuie sur GitHub Advanced Security for Azure DevOps, qui fournit déjà le code scanning et la détection de dépendances vulnérables sous-jacents.

    Un correctif généré peut-il être mergé automatiquement ?

    Non. Chaque proposition passe par ta pull request et ton processus de revue habituel — build, tests, relecture humaine du diff complet avant tout merge.

    Où signaler un problème ou un retour d’expérience ?

    Microsoft indique trois canaux dans son billet : les commentaires du blog, l’email, ou la Azure DevOps Developer Community.

    Pour aller plus loin

    Si ta vraie bataille porte sur les alertes de code plutôt que de dépendances, l’autre moitié de l’équation Copilot côté Azure Repos — la revue de pull request automatisée — vaut le détour : on l’avait couverte au moment de sa preview publique en septembre. Et si le problème vient plutôt de paquets npm compromis en amont plutôt que de CVE déjà connues dans tes dépendances, le GitHub Package Firewall couvert la semaine dernière attaque le sujet par un autre bout, en amont de la CI plutôt qu’après coup sur une alerte déjà ouverte.

    Reste la question du moment : activer Autofix aujourd’hui, en preview, sur un repo critique ? Si ton backlog d’alertes de dépendances dépasse la centaine et que personne n’y touche depuis des mois, oui, ça vaut le test — le pire qui puisse arriver est une PR non mergée. Si ton équipe a déjà un processus de triage qui tourne, attends plutôt la preview générale de novembre pour avoir une image plus claire des langages et outils réellement couverts.

  • Terraform 1.17 passe en GA : Policy, et le vrai sujet caché dans le changelog

    Terraform 1.17 passe en GA : Policy, et le vrai sujet caché dans le changelog

    Terraform 1.17.0 est sorti le 21 octobre 2026. Le changelog met en avant le passage en disponibilité générale de Terraform Policy — logique, c’est la fonctionnalité qu’on suivait depuis la bêta début octobre. Mais la ligne la plus importante de ce changelog n’a rien à voir avec les policies : c’est celle qui dit que le binaire est désormais compilé avec Go 1.26.10, pour ne plus faire confiance à des certificats d’autorité de certification compromis.

    Terraform Policy quitte l’expérimental

    On avait couvert la bêta de cette fonctionnalité dans notre article sur Terraform 1.17 et ses policies HCL le 14 octobre. Deux semaines plus tard, le flag -policies disponible sur plan, apply et query n’a plus besoin d’un build expérimental ni du flag -allow-experimental-features — il est utilisable en production sans réserve.

    Les policies s’écrivent en HCL, dans des fichiers .policy.hcl — pas de nouveau langage à apprendre si tu connais déjà Terraform. La nouveauté de cette version concerne surtout query : les policies évaluées sur les ressources découvertes par un bloc list renvoient désormais correctement les statuts Unknown et N/A au lieu de résultats incohérents, un bug corrigé entre la bêta et le GA. La documentation officielle de Terraform Policy détaille la syntaxe complète si tu veux écrire tes premières règles.

    Pour qui venait de Sentinel ou d’OPA/Conftest en externe, l’intérêt n’est pas la puissance du langage — HCL reste plus limité qu’un vrai langage de politique comme Rego — mais l’intégration native : pas de binaire tiers à installer, pas de pipeline séparé à maintenir pour une politique simple de type « interdire les buckets publics » ou « exiger un tag owner« .

    -minimal-refresh : une option de planification à tester

    Moins visible dans les annonces, mais potentiellement plus utile au quotidien pour qui gère un state volumineux : la nouvelle option -minimal-refresh sur terraform plan limite le rafraîchissement aux seules ressources qui ont des changements proposés, au lieu de rafraîchir l’intégralité du state à chaque plan. Sur un state de plusieurs centaines de ressources où la majorité ne bouge jamais entre deux applies, ça peut réduire significativement le nombre d’appels API et le temps de plan — à vérifier sur ton propre state plutôt qu’à prendre pour argent comptant, le gain dépend entièrement de la proportion de ressources réellement stables.

    Le vrai sujet caché dans le changelog : les clés CA d’eMudhra

    Voici ce qui justifie une mise à jour même si tu n’utilises ni les policies ni -minimal-refresh. Le 17 octobre 2026, le chercheur Wayne a découvert que huit certificats intermédiaires de l’autorité de certification eMudhra utilisaient des clés privées P-384 anormalement faibles — récupérables en testant seulement 256 possibilités. Un autre chercheur, Flüpke, a publié l’une de ces clés sur GitHub pour démontrer le problème ; elle correspondait bien à un certificat révoqué.

    La cause : une erreur de script chez eMudhra a généré un second jeu de clés plus faibles en avril 2025, sélectionné par erreur pour la signature parce que ses libellés ressemblaient à ceux du bon jeu. Certains de ces certificats avaient même été soumis à Sectigo pour une cross-signature, élargissant la surface d’impact potentielle. eMudhra affirme que la plupart des intermédiaires concernés n’ont jamais servi en production et n’a trouvé aucune preuve qu’ils aient émis des certificats pour des utilisateurs finaux — mais la fenêtre d’exposition théorique court depuis avril 2025, sans garantie que personne n’en a profité.

    La réaction en cascade a été rapide : eMudhra a révoqué les huit certificats et arrêté l’émission sous sa racine G3, Mozilla a bloqué les certificats via OneCRL le 17 octobre puis sorti Firefox 158.0.1 le 20, Chrome a bloqué six intermédiaires le 17, Apple a ajouté ses propres protections le 22. L’équipe Go a réagi dans le même mouvement avec les versions 1.27.3 et 1.26.10, qui corrigent CVE-2026-111943 en retirant la confiance envers ces clés compromises. C’est cette version de Go — 1.26.10 — qui compile désormais Terraform 1.17.0, comme le détaille le changelog officiel sur GitHub.

    Le point à retenir ne se limite pas à Terraform : si tu as d’autres binaires Go dans ta chaîne d’outils (Docker, kubectl, Vault, ta propre CLI interne…), ils méritent la même vérification. Le détail complet de l’incident, timeline comprise, est couvert par BleepingComputer.

    Faut-il migrer tout de suite ?

    Pour un projet neuf, oui, sans hésiter : rien dans les notes de version ne signale de changement cassant, et les corrections de bugs de cette 1.17.0 (panique évitée sur les fonctions pow/log en cas de résultat infini, ordre déterministe du nettoyage des tests, diagnostics d’ephemeral resources enfin affichés au lieu d’être silencieusement perdus) sont toutes dans le sens de la stabilité, pas de la rupture.

    Pour un parc existant, la priorité dépend de ton usage : si tu es sur OpenTofu plutôt que Terraform, le sujet policies ne te concerne pas directement — on a détaillé les différences d’approche sur le chiffrement de state dans notre article sur OpenTofu 1.13 face à Terraform. Mais le correctif Go pour eMudhra, lui, concerne tout le monde qui fait confiance à un binaire Terraform pour parler en TLS à un provider cloud.

    FAQ

    Terraform Policy remplace-t-il Sentinel ou OPA ?
    Pas vraiment, plutôt une alternative native pour les cas simples. Sentinel reste propre à HCP Terraform/Terraform Enterprise, et OPA/Rego offre un langage de politique nettement plus expressif pour des règles complexes multi-ressources.

    Je n’utilise pas les policies, dois-je mettre à jour quand même ?
    Oui, pour le correctif Go lié à eMudhra. Si ton binaire Terraform communique en TLS avec un provider cloud, la version du runtime Go avec laquelle il a été compilé a une importance directe sur la confiance accordée à certains certificats.

    Le chiffrement de state a-t-il changé dans cette version ?
    Non, les notes de version de la 1.17.0 ne mentionnent aucune évolution sur ce point — la fonctionnalité de chiffrement de state existante n’est pas modifiée par cette sortie.

    En pratique

    terraform version te donne la version installée et le runtime Go associé en quelques secondes. Si tu gères plusieurs postes ou plusieurs runners CI, c’est le bon moment pour vérifier lesquels tournent encore sur un Go antérieur à 1.26.10 ou 1.27.3 — pas seulement pour Terraform, mais pour tout ce que ta chaîne d’outils fait tourner en Go.

  • CVE-2026-19444 : kubectl cp sous Windows écrit hors du dossier cible

    CVE-2026-19444 : kubectl cp sous Windows écrit hors du dossier cible

    Si tu administres des clusters Kubernetes depuis un poste Windows, une ligne dans le changelog du 28 septembre a de bonnes chances de te concerner directement : kubectl cp peut écrire des fichiers en dehors du dossier que tu lui as donné comme destination. Pas besoin d’un cluster mal configuré ni d’un bug exotique côté serveur — juste un conteneur dont tu n’es pas totalement sûr, et un client kubectl pas encore à jour.

    Ce que dit l’avis de sécurité

    La faille porte la référence CVE-2026-19444, un CVSS v3.1 de 6.5 (vecteur AV:A/AC:L/PR:H/UI:R/S:C/C:L/I:H/A:N) selon le Kubernetes Security Response Committee. Elle a été signalée par la chercheuse Moriel Harush et corrigée avec Marly Salazar, Maciej Szulik et Vyom Yadav, suivie sous le ticket #141294 et publiée dans l’annonce officielle de sécurité Kubernetes du 28 septembre 2026.

    Un détail change tout dans ce dossier : seuls les clients kubectl tournant sous Windows sont touchés. Linux et macOS en sont indemnes, pas parce qu’ils ont été corrigés plus tôt, mais parce que le mécanisme d’extraction qui pose problème est spécifique à Windows.

    Le mécanisme : un tar qui ne fait pas ce qu’on croit

    kubectl cp ne lit pas directement les fichiers du conteneur. Il lance un tar à l’intérieur du conteneur pour construire une archive, qui est ensuite transférée puis dépaquetée sur ta machine. Tout le problème tient dans cette confiance implicite : si le binaire tar du conteneur est malveillant (ou simplement remplacé), il peut fabriquer une archive dont les chemins internes sortent du dossier de destination une fois extraite côté Windows. Résultat : une écriture de fichier arbitraire, limitée uniquement par les droits du compte Windows qui exécute la commande.

    Ce n’est pas un problème côté API server, côté etcd, ni côté kubelet — rien à corriger sur ton cluster. La faille vit entièrement dans le binaire client que tu lances depuis ton poste ou ton agent CI.

    Versions concernées et correctifs

    Trois branches sont touchées, chacune avec sa version corrigée :

    • 1.34.0 à 1.34.11 → corrigé en 1.34.12
    • 1.35.0 à 1.35.8 → corrigé en 1.35.9
    • 1.36.0 à 1.36.4 → corrigé en 1.36.5

    La branche 1.37 n’apparaît pas dans la liste des versions affectées : elle est sortie après le correctif. Dans tous les cas, la bonne pratique reste de garder kubectl dans une version proche de celle du control plane — pas une raison de plus pour sauter trois versions mineures d’un coup.

    kubectl version --client

    Cette commande suffit à savoir si un poste ou un agent est exposé. Fais-la tourner sur chaque machine Windows qui touche à un cluster, pas seulement sur le poste que tu utilises au quotidien.

    Qui est vraiment exposé

    Sur le papier, un CVSS de 6.5 n’a rien d’alarmant — il faut une interaction utilisateur et des privilèges élevés côté attaquant pour que l’exploitation ait un sens. Dans la pratique, trois scénarios rendent ce correctif prioritaire plutôt qu’optionnel :

    • Un cluster multi-tenant, où tu n’as pas un contrôle total sur le contenu de chaque pod que tu peux être amené à inspecter.
    • Un agent CI Windows qui copie des artefacts depuis des conteneurs de build, potentiellement issus d’un repository externe ou d’une pull request non fiable.
    • Une investigation incident response, où tu copies justement le contenu d’un pod compromis pour l’analyser — le pire moment pour découvrir que l’outil d’analyse lui-même peut être retourné contre toi.

    Dans les trois cas, le point commun, c’est que tu utilises kubectl cp sur un contenu dont tu n’as pas la certitude qu’il est sain. C’est précisément la situation que cette faille cible.

    Ce qu’il faut faire, dans l’ordre

    1. Inventorie tous les binaires kubectl.exe en circulation — pas seulement les postes interactifs, mais aussi les images de développement, les runners CI et ce que déploient tes outils de gestion de parc.
    2. Mets à jour vers la version corrigée de ta branche (1.34.12, 1.35.9 ou 1.36.5).
    3. En attendant le déploiement, évite kubectl cp depuis des workloads multi-tenant, des jobs de build ou tout pod dont tu ne maîtrises pas le contenu.

    Le correctif ne touche que le client. Aucune action côté serveur, aucun redémarrage de composant de contrôle, aucune fenêtre de maintenance à prévoir pour l’appliquer.

    FAQ

    Mes clusters Linux ou mes nœuds sont-ils affectés ?
    Non. La faille touche uniquement l’extraction de l’archive côté client Windows. Le control plane, les nœuds et les clients kubectl Linux/macOS ne sont pas concernés.

    Un CVSS de 6.5, est-ce que ça vaut vraiment la mise à jour en urgence ?
    Le score reflète les conditions d’exploitation (droits élevés, interaction utilisateur requise), pas la gravité de l’impact une fois ces conditions réunies — une écriture de fichier arbitraire reste une primitive dangereuse, en particulier en contexte CI où le compte qui exécute kubectl a souvent plus de droits qu’un simple poste utilisateur.

    Faut-il aussi vérifier les plugins kubectl tiers ?
    L’avis ne couvre que le binaire officiel kubectl. Si tu utilises des wrappers ou des forks qui réimplémentent cp à partir du même mécanisme tar, vérifie-les séparément — rien ne garantit qu’ils héritent du correctif upstream.

    En pratique

    Ce genre de faille ne fait jamais la une, mais elle rappelle une chose simple : un client d’administration qui fait confiance par défaut au contenu qu’il manipule reste un point d’entrée, même quand le cluster lui-même est irréprochable. Si la sécurisation de tes clusters en général mérite une remise à plat, notre guide complet pour sécuriser un cluster Kubernetes couvre le sujet plus largement. Et si cette CVE t’intéresse pour sa mécanique côté Windows, elle complète bien celle qu’on a détaillée sur la faille zero-day Windows Shell CVE-2026-96951 — même système d’exploitation, deux surfaces d’attaque très différentes.

    La prochaine étape est simple : lance l’inventaire de tes kubectl Windows cette semaine, pas au prochain audit de sécurité.

  • Entra ID : SSPR exige des méthodes enregistrées dès le 9 novembre

    Entra ID : SSPR exige des méthodes enregistrées dès le 9 novembre

    Dans un peu plus de deux semaines, le 9 novembre 2026, Entra ID cesse d’accepter les numéros de téléphone ou adresses mail issus de l’annuaire pour la réinitialisation de mot de passe en libre-service (SSPR), s’ils n’ont jamais été explicitement enregistrés par l’utilisateur. Si tu comptes sur mobilePhone, businessPhone ou otherMails synchronisés depuis l’AD on-premises pour couvrir ce cas, une partie de tes utilisateurs risque de se retrouver bloqués au prochain mot de passe oublié.

    Ce qui change concrètement

    Aujourd’hui, SSPR peut vérifier l’identité d’un utilisateur de deux façons : avec une méthode d’authentification que l’utilisateur a lui-même enregistrée (téléphone confirmé par SMS, email vérifié…), ou avec des données déjà présentes dans l’annuaire — typiquement un numéro synchronisé depuis Active Directory via Entra Connect, jamais confirmé par l’utilisateur. C’est cette deuxième voie que Microsoft ferme, dans le cadre de la Secure Future Initiative : une donnée de contact qui n’a jamais été validée par son propriétaire est une porte d’entrée pour du social engineering (numéro obsolète récupéré par un tiers, boîte mail partagée mal configurée…).

    Chiffre cité par Microsoft : environ 86 % des vérifications SSPR passent déjà par une méthode enregistrée. Le changement touche donc une minorité de cas, mais potentiellement toute une tranche d’utilisateurs si ton organisation s’est reposée sur la synchronisation automatique plutôt que sur l’enregistrement actif.

    Un calendrier qui ne raconte pas tout à fait la même histoire selon la source

    C’est le genre de détail qui mérite d’être signalé plutôt que lissé. La documentation Microsoft Learn sur la préremplissage des données SSPR indique, au 24 octobre 2026 :

    • « Starting Nov 9, 2026 » : si ta politique SSPR exige l’enregistrement et qu’un utilisateur n’a pas assez de méthodes, une campagne d’enregistrement le sollicitera avant l’application de la restriction.
    • « Starting Oct 5, 2026 » : SSPR n’accepte plus que les méthodes explicitement enregistrées — les propriétés issues de l’annuaire cessent de fonctionner.

    Pris au pied de la lettre, ça voudrait dire que l’enregistrement forcé des utilisateurs restants démarre après que la restriction soit déjà en vigueur, ce qui n’a pas de sens dans l’ordre des opérations. Le message du Centre des messages Microsoft 365 associé (MC1325414), lui, décrit une chronologie inverse et cohérente : campagne de sollicitation à partir du 5 octobre 2026, date limite d’action au 6 novembre, puis entrée en vigueur de la restriction le 9 novembre (le message a été révisé plusieurs fois, une version antérieure mentionnait le 7 novembre). C’est cette seconde chronologie qui correspond à la logique du changement — prévenir avant de couper. Si tu veux trancher pour ton tenant, le plus fiable reste de relire le message MC1325414 directement dans ton Centre des messages Microsoft 365 : le calendrier peut aussi varier entre cloud public et GCC/GCC High.

    Comment vérifier ta couverture avant le 9 novembre

    Le Centre d’administration Entra (Entra ID > Authentication methods > User registration details) donne une vue utilisateur par utilisateur, mais pour un tenant de plusieurs centaines de comptes, un export via Microsoft Graph PowerShell va plus vite :

    Connect-MgGraph -Scopes "Reports.Read.All"
    
    # Liste les utilisateurs qui ne sont PAS enregistrés pour SSPR
    Get-MgReportAuthenticationMethodUserRegistrationDetail -Filter "isSsprRegistered eq false" |
        Select-Object UserPrincipalName, UserDisplayName, IsSsprCapable, IsSsprEnabled, MethodsRegistered |
        Export-Csv -Path "sspr-non-enregistres.csv" -NoTypeInformation
    

    Le filtre isSsprRegistered eq false remonte directement la liste à traiter. Croise avec IsSsprEnabled pour écarter les comptes pour qui SSPR n’est de toute façon pas activé — pas la peine de les relancer.

    Pour accélérer l’enregistrement du reste, la campagne d’enregistrement native (Entra ID > Authentication methods > Registration campaign) sollicite les utilisateurs à chaque MFA réussie, avec une limite de trois reports possibles avant enregistrement obligatoire. Elle cible nativement Authenticator ou les passkeys, pas directement SSPR — mais un utilisateur qui enregistre Authenticator via cette campagne couvre de fait son SSPR dans la plupart des configurations de politique.

    Les comptes à risque réel

    Trois profils à vérifier en priorité, dans cet ordre : les comptes de service ou boîtes partagées avec SSPR activé par erreur (ils n’ont souvent aucune méthode enregistrée, personne n’y pense) ; les utilisateurs distants ou peu actifs qui ne se connectent pas assez souvent pour avoir été sollicités par une campagne MFA ; et les administrateurs eux-mêmes — ils sont soumis à une politique SSPR à deux méthodes par défaut, donc plus exposés si une seule de leurs méthodes dépendait de l’annuaire.

    FAQ

    Qu’est-ce qui arrive à un utilisateur sans méthode enregistrée après le 9 novembre ?

    Il ne pourra plus réinitialiser son mot de passe seul. Il devra s’enregistrer via myprofile.microsoft.com (My Security Info) s’il peut encore se connecter, ou passer par un administrateur dans le cas contraire.

    Ça concerne aussi les tenants GCC et GCC High ?

    Oui, mais avec une fenêtre de déploiement distincte (début novembre à mi-novembre 2026 pour ces clouds, contre un calendrier resserré pour le cloud public) — vérifie le message MC1325414 propre à ton tenant plutôt que de supposer une date unique.

    Les questions de sécurité restent-elles valables pour SSPR ?

    Pour l’instant oui, mais elles sont en cours de dépréciation séparément : leur retrait pour SSPR est annoncé pour mars 2027. Ce n’est pas lié au changement du 9 novembre, mais ça vaut le coup de traiter les deux dans la même revue de politique SSPR si tu t’y mets maintenant.

    Puis-je encore préremplir les contacts via Entra Connect après le 9 novembre ?

    Techniquement la synchronisation continue de fonctionner, mais ces valeurs ne suffiront plus à elles seules pour SSPR : l’utilisateur devra les confirmer une première fois à l’enregistrement pour qu’elles comptent comme méthode enregistrée.

    Pour la suite

    Lance l’export PowerShell cette semaine plutôt que la semaine du 9 novembre — ça laisse une marge pour relancer les comptes isolés avant que la restriction morde. Si ce genre d’échéance Entra ID te semble familier, ce n’est pas un hasard : l’opérateur memberOf dans les Conditional Access part aussi à la retraite début novembre (détails ici), et la bascule d’Entra Connect Sync fin septembre a laissé quelques tenants sur le carreau faute d’anticipation (retour d’expérience à lire). Un seul calendrier des échéances Entra ID à jour, partagé avec le reste de l’équipe infra, évite de courir après chacune au dernier moment.

  • FOCUS 1.4 : réconciliation de facture, et un breaking change

    FOCUS 1.4 : réconciliation de facture, et un breaking change

    FOCUS 1.4 est sorti le 4 juin 2026, à la conférence FinOps X. Jusqu’ici, rien d’alarmant : la spec passe en revue mineure tous les six mois environ depuis 2023. Sauf que cette fois, une colonne change de format au point de casser les requêtes qui la consomment. Si ton pipeline FinOps s’appuie sur ContractApplied, ça vaut le coup de vérifier avant de mettre à jour ton connecteur.

    Ce que FOCUS ajoute avec la 1.4

    FOCUS (FinOps Open Cost and Usage Specification) normalise la façon dont les fournisseurs cloud décrivent une ligne de facturation : même structure de colonnes chez AWS, Azure, GCP ou OCI, pour que tes tableaux de bord FinOps n’aient pas à gérer un mapping différent par fournisseur. Les deux précédentes versions avaient chacune résolu un problème précis : la 1.2 a normalisé l’intégration dans Azure Cost Management (on en parlait ici), la 1.3 a réglé le casse-tête de la répartition des coûts partagés entre équipes (voir cet article). La 1.4, elle, s’attaque à un problème différent : faire coller les données d’usage avec la facture réellement reçue.

    Au total, le changelog liste 47 nouvelles colonnes. La plupart arrivent avec deux datasets inédits : BillingPeriod et InvoiceDetail.

    InvoiceDetail et BillingPeriod : combler le trou entre usage et facture

    Avant la 1.4, FOCUS décrivait bien l’usage (CostAndUsage) mais ne modélisait pas la facture elle-même — numéro de facture, date d’émission, date d’échéance, numéro de bon de commande. InvoiceDetail ajoute une vingtaine de colonnes pour ça : InvoiceId, InvoiceIssueDate, PaymentDueDate, PurchaseOrderNumber, ReferenceInvoiceId, entre autres. BillingPeriod complète avec le cycle de facturation (BillingPeriodStart, BillingPeriodEnd, BillingPeriodStatus).

    Concrètement, ça permet enfin de faire le lien entre « ce que dit l’usage mesuré » et « ce qui apparaît réellement sur la facture payable » — la fameuse réconciliation facture, jusque-là bricolée à la main ou absente des exports FinOps. La colonne InvoiceId, qui était seulement recommandée en 1.3, devient d’ailleurs MUST (obligatoire) dès que l’émetteur de facture supporte les factures payables.

    ContractCommitment s’enrichit pour les programmes d’engagement

    Une quinzaine de colonnes s’ajoutent à ContractCommitment, dont ContractCommitmentApplicability, ContractCommitmentModel et ContractCommitmentPaymentModel. C’est la fonctionnalité Commitment Program Eligibility Details : tu peux désormais savoir si une charge est éligible à un programme de remise par engagement (Reserved Instances, Savings Plans, CUD…) sans deviner à partir du type de ressource.

    Le breaking change : ContractApplied passe en objet JSON structuré

    C’est le point qui mérite une vraie attention avant de migrer. La colonne ContractApplied, qui relie une charge à un ou plusieurs engagements contractuels, voit son format JSON révisé en 1.4. Le format actuel impose une clé racine Elements (un tableau), avec des champs typés strictement :

    {
      "Elements": [
        {
          "ContractId": "12345",
          "ContractCommitmentId": "23456",
          "ContractCommitmentAppliedCost": 500000.00
        },
        {
          "ContractId": "12345",
          "ContractCommitmentId": "34567",
          "ContractCommitmentAppliedQuantity": 10000.00,
          "ContractCommitmentAppliedUnit": "compute_hours"
        }
      ]
    }
    

    ContractCommitmentAppliedCost est conditionnelle (requise si quantité et unité ne sont pas fournies), et doit être exprimée dans la devise de facturation. Les clés personnalisées restent possibles, mais doivent être préfixées x_ en PascalCase (x_MyCustomKey) — sinon un parseur strict les rejettera.

    Si tes requêtes (dbt, SQL, Python) parsent cette colonne en s’attendant à l’ancienne structure, elles vont silencieusement renvoyer des valeurs vides ou lever une exception selon ton parseur JSON. Teste sur un échantillon de factures avant de basculer ton pipeline de prod, pas après.

    BilledCost et EffectiveCost : des règles nettement plus strictes

    Le changelog qualifie la révision d’EffectiveCost de « Heavily revised » : les règles sur les covering charges (quand un engagement couvre une charge) et les validations croisées entre lignes sont désormais détaillées, là où la 1.3 restait plus vague. BilledCost gagne lui aussi des exigences élargies — ajustements de prix, charges couvertes, entités non facturantes — et une tolérance d’écart d’arrondi est introduite spécifiquement pour la réconciliation de facture (deux systèmes qui arrondissent différemment ne doivent plus produire un écart bloquant).

    Autre durcissement notable : le format des devises doit désormais respecter strictement ISO 4217:2015 (codes à trois lettres), l’exception qui tolérait les devises virtuelles (tokens, crédits propriétaires) a été retirée. Si un de tes fournisseurs facture en « crédits » plutôt qu’en devise réelle, ça ne passera plus la validation telle quelle.

    Colonnes dépréciées : adieu ProviderName et PublisherName

    ProviderName et PublisherName, déjà dépréciées en 1.3, sont officiellement supprimées en 1.4. Le changelog renvoie vers la section Participating Entity Identification pour choisir la colonne de remplacement adaptée à ton cas (il y en a plusieurs selon qu’il s’agit du fournisseur direct, d’un revendeur ou d’une marketplace). Si un tableau de bord chez toi filtre encore sur ProviderName, c’est le moment de migrer avant que le champ ne disparaisse purement et simplement de tes exports.

    Faut-il migrer tout de suite ?

    Ça dépend de où tu en es. Si tu n’as pas encore adopté FOCUS du tout, pars directement sur la 1.4 — aucune raison de passer par la 1.2 ou la 1.3 pour un déploiement neuf, la compatibilité ascendante existe pour la lecture mais pas l’inverse. Si tu es déjà sur la 1.3 avec un pipeline de réconciliation construit à la main (exports Cost Management + factures PDF parsées à côté), la 1.4 remplace une bonne partie de ce bricolage par des colonnes natives — ça vaut l’effort de migration. Si ton usage de FOCUS se limite à des dashboards de répartition de coûts sans lien avec la facturation, l’urgence est moindre : les nouvelles colonnes ne te concernent pas directement, seul le changement de ContractApplied (si tu l’utilises) demande une revue.

    Côté adoption par les fournisseurs : Azure Cost Management exportait déjà en 1.2 lors de notre article d’octobre, OCI a annoncé son support FOCUS cette année également. Vérifie la version exacte supportée par export avant de brancher ton nouveau parseur — rien n’empêche qu’un export te livre encore du 1.2 ou du 1.3 pendant une période de transition.

    FAQ

    FOCUS 1.4 est-il rétrocompatible avec la 1.3 ?

    Pour la lecture des colonnes inchangées, oui. Mais ContractApplied change de format et ProviderName/PublisherName disparaissent : un parseur strict écrit pour la 1.3 ne lira pas correctement un export 1.4 sur ces points précis.

    Qu’est-ce qui remplace ProviderName et PublisherName ?

    La section Participating Entity Identification de la spec propose plusieurs colonnes selon le rôle de l’entité dans la chaîne de facturation (fournisseur direct, revendeur, marketplace) — il n’y a pas un remplaçant unique, le bon choix dépend de ton modèle de facturation.

    Mon fournisseur cloud supporte-t-il déjà FOCUS 1.4 ?

    Ça varie. Vérifie la documentation d’export de ton fournisseur (Cost Management pour Azure, CUR pour AWS, Billing Export pour GCP) avant de supposer que tu reçois déjà du 1.4 — beaucoup de fournisseurs annoncent le support FOCUS en général sans préciser la version exacte livrée par défaut.

    Et FOCUS 1.5, prévue pour quand ?

    Aucune date n’est annoncée publiquement à ce stade. La FinOps Foundation évoque des pistes — prix catalogue (list pricing) des fournisseurs et suivi natif de la consommation de tokens IA — mais rien n’est figé ni daté.

    Pour la suite

    Si ton équipe FinOps continue de réconcilier facture et usage à coups d’exports PDF parsés à la main, FOCUS 1.4 est une bonne excuse pour arrêter. Commence par un test du nouveau format ContractApplied sur un échantillon de factures avant de toucher à ton pipeline de production, et vérifie la version FOCUS réellement exportée par ton fournisseur plutôt que de la supposer.

  • KubeVM Service : Broadcom pilote les VM ESX depuis Kubernetes

    KubeVM Service : Broadcom pilote les VM ESX depuis Kubernetes

    Dans la plupart des boîtes, les VMs et les workloads Kubernetes vivent dans deux mondes séparés : les pods passent par GitOps et Argo CD, les VMs passent par un ticket, un script PowerCLI ou Terraform à la main. Le 22 octobre 2026, Broadcom a publié sur le blog VMware Cloud Foundation un billet signé Daniel Koeck, Technical Product Manager, qui propose de faire disparaître cette frontière — pas en migrant les VMs vers des conteneurs, mais en les pilotant depuis l’API Kubernetes tout en les laissant tourner directement sur ESX.

    KubeVM Service : ce que ça change concrètement

    L’idée centrale, c’est la gestion déclarative : au lieu d’enchaîner des commandes PowerCLI étape par étape, tu décris l’état final voulu — ressources, OS, état d’alimentation — et un contrôleur de réconciliation fait converger la réalité vers cette déclaration en continu, exactement comme un Deployment Kubernetes classique. La différence avec un vrai pod : la VM ne tourne pas dans un conteneur sur un nœud worker, elle reste une VM ESX normale, visible dans vCenter avec ses limites de resource pool, ses politiques de stockage et ses règles DRS appliquées comme d’habitude.

    Techniquement, ça se traduit par une ressource personnalisée Kubernetes, VirtualMachine, dans le groupe d’API kube-vm.io/v1alpha1 :

    apiVersion: kube-vm.io/v1alpha1
    kind: VirtualMachine
    metadata:
      name: analytics-gpu-workstation
      namespace: data-science-team
    spec:
      className: gpu-accelerated-large
      imageName: "ubuntu-24-04-cuda-12"
      powerState: PoweredOn
      bootstrap:
        cloudInit:
          rawCloudConfig:
            secretName: dev-workstation-bootstrap

    Le champ className pointe vers une classe de VM que les admins ont définie à l’avance (CPU, RAM, GPU) et une politique de stockage vCenter (vSAN, NVMe). Le bootstrap passe par cloud-init classique — clés SSH, hostname, réseau, paquets — avec les secrets dans des Secrets Kubernetes et le reste dans des ConfigMaps. Côté gouvernance, le RBAC Kubernetes limite les droits par namespace, des quotas matériels évitent qu’une équipe monopolise les ressources, et des politiques d’expiration (via spec, métadonnées, ou Kyverno/OPA) permettent d’arrêter ou supprimer automatiquement les VMs temporaires — un sandbox d’agent IA qui vit 48h, typiquement.

    Ce qui coexiste, et ce qui ne change pas

    Pas de migration forcée : les VMs déclaratives et les VMs classiques gérées depuis vCenter cohabitent sur les mêmes clusters, réseaux et stockages. Broadcom précise même qu’une VM existante peut être intégrée à la gestion déclarative sans changement d’IP ni interruption. C’est un point important, parce que ça positionne KubeVM Service comme une couche de contrôle additionnelle plutôt que comme un remplacement — tu ne jettes rien de ce qui tourne déjà.

    Les cas d’usage mis en avant sont précis : sandboxes d’agents IA à cycle de vie court, postes de travail data science avec GPU, et passthrough matériel pour accélérateurs. Rien, pour l’instant, sur des workloads de production classiques type serveur applicatif ou base de données — ce qui suggère que Broadcom vise d’abord les usages où le provisionnement à la demande via API a le plus de valeur, pas le remplacement du provisionnement VM traditionnel partout.

    Le bémol qu’il faut garder en tête : c’est une v1alpha1

    Le groupe d’API kube-vm.io/v1alpha1 ne laisse aucun doute : on est à un stade très précoce. L’article de Broadcom ne donne ni date de disponibilité générale, ni liste d’OS supportés, ni limites de scalabilité, ni modèle de tarification. Pour une fonctionnalité qui touche à la gestion de VMs en production, ce flou n’est pas anodin — à ce stade, c’est une démonstration de direction stratégique plus qu’un produit prêt à adopter.

    Et la question qu’on peut se poser sans détour : est-ce que ça vaut vraiment le coup de superposer une couche Kubernetes à un provisionnement VM qui fonctionne déjà très bien avec le provider Terraform vSphere ? Pour une équipe plateforme déjà 100 % GitOps sur Kubernetes, avec des devs qui ne veulent plus jamais ouvrir vCenter, la réponse est probablement oui — un seul kubectl apply pour tout, VMs et pods compris. Pour une équipe infra classique qui maîtrise déjà PowerCLI ou Terraform et n’a pas de cluster Kubernetes à côté de ses VMs, ça ajoute une dépendance technique (API server, RBAC, CRD) pour un bénéfice qui reste à démontrer en dehors des cas d’usage GPU/agents IA.

    Dans le contexte de l’ère post-Broadcom

    Ce lancement s’inscrit dans une tendance qu’on suit depuis notre comparatif VMware/Hyper-V/Azure Local après la crise des licences Broadcom : Broadcom cherche à donner de nouvelles raisons de rester sur VMware Cloud Foundation plutôt que de migrer vers Proxmox, Nutanix ou Hyper-V, en misant sur des intégrations que les alternatives n’ont pas encore. KubeVM Service va dans ce sens — c’est un argument de différenciation technique, pas juste une réponse à la pression tarifaire. Reste à voir si l’écosystème Kubernetes autour (Argo CD, Flux, portails type Backstage) suit au même rythme que l’API elle-même.

    FAQ

    KubeVM Service remplace-t-il vCenter ?

    Non. Les VMs créées via KubeVM Service restent visibles et gérables dans vCenter normalement — c’est une couche de pilotage additionnelle via l’API Kubernetes, pas un remplacement de la console d’administration.

    Faut-il convertir ses VMs existantes pour les utiliser avec KubeVM Service ?

    Non, Broadcom indique qu’une VM existante peut être intégrée à la gestion déclarative sans migration ni changement d’IP.

    Est-ce disponible en production aujourd’hui ?

    L’API est en version v1alpha1, sans date de GA annoncée — à tester en lab avant d’envisager une mise en production.

    En pratique

    Si tu as déjà un cluster Kubernetes avec GitOps en place et des besoins réguliers de VMs à cycle de vie court (sandboxes, postes GPU), garde un œil sur ce projet et teste-le en lab dès qu’un accès y est possible — mais ne prévois pas de bascule de ton provisionnement VM de production dessus avant une version stabilisée au-delà de l’alpha.

  • ObservabilityCON 2026 : Grafana Cloud mise sur le Knowledge Graph et -50% de coûts

    ObservabilityCON 2026 : Grafana Cloud mise sur le Knowledge Graph et -50% de coûts

    Un client de Grafana Labs, DATEV eG, cherchait une ligne de log précise dans environ 1 To de données fraîchement ingérées. Avant, ça prenait trois minutes de scan. Avec la nouvelle recherche full-text annoncée le 20 octobre 2026 à ObservabilityCON, le même type de requête tombe à moins de trois secondes sur un volume effectif ramené à environ 100 Go. C’est le genre de chiffre qui parle plus qu’un slide marketing, et c’est loin d’être la seule annonce de l’événement.

    Full-text search : la fonction la plus immédiatement utile

    Basée sur la technologie Logline, rachetée par Grafana Labs en avril 2026, la recherche full-text pour Grafana Cloud Logs passe en GA sans surcoût. L’idée : retrouver une ligne précise (un request ID, un customer ID) sans avoir à scanner tout le volume de logs comme le fait une requête LogQL classique sur un gros intervalle de temps. D’après Grafana, la réduction du volume effectivement analysé tourne entre 80 et 90 % sur les cas d’usage de ce type.

    Si tu gères un cluster avec une rétention de logs généreuse et que tes requêtes de debug mettent une éternité à remonter un incident précis dans la pile, c’est la fonctionnalité de cette liste à tester en premier — elle ne demande aucune migration, juste une mise à jour vers la version qui l’expose (section « niah » de la doc Grafana Cloud Logs).

    Adaptive Telemetry : jusqu’à 50 % de coûts en moins, mais pas pour rien

    Grafana avance une baisse moyenne de coûts de télémétrie de 30 % à 50 % chez ses clients grâce à l’ensemble des fonctions Adaptive Telemetry, désormais enrichi :

    • Adaptive Metrics auto-apply (GA) : applique automatiquement les recommandations de réduction, avec un mode « cost-first » qui ne retient que celles qui ne font pas grimper le nombre total de séries actives — un garde-fou qu’on apprécie quand on a déjà vu une « optimisation » automatique faire l’inverse de ce qui était promis.
    • Volumetric sampling (GA) : répartit le budget d’échantillonnage entre services et types de requêtes plutôt qu’un taux uniforme. Les tests précoces de Grafana montrent environ 25 % de densité d’information en plus qu’un échantillonnage probabiliste classique, à volume constant.
    • Diversity sampling (GA) : conserve une combinaison unique d’attributs (service, route, code de statut) toutes les 15 minutes, sans logique de sampling à maintenir à la main.
    • Adaptive Logs Archive (public preview) et replay à la demande (private preview, sur inscription) : envoie les logs froids vers un bucket objet que tu possèdes, pour l’audit ou la conformité, avec réhydratation possible plus tard.
    • Requêtage des traces écartées (GA) : récupère par ID n’importe quelle trace des 24 dernières heures, même si Adaptive Traces l’avait jugée non pertinente et écartée — utile le jour où tu réalises après coup qu’une trace mise de côté aurait été exactement celle qu’il fallait garder.

    Pour un lecteur qui suit déjà notre comparatif Prometheus 3.13 LTS vs 3.15, la logique est la même qu’avec le downsampling natif de Prometheus : réduire le volume stocké sans perdre l’information qui compte réellement en cas d’incident. Grafana pousse juste le curseur plus loin, côté SaaS, avec des algorithmes qui décident à ta place — ce qui est un gain de temps si tu leur fais confiance, et un sujet d’audit si tu dois justifier une rétention précise devant un régulateur.

    Knowledge Graph : la promesse la plus ambitieuse, la plus en preview

    Le Knowledge Graph se présente comme une couche de contexte runtime qui relie agents, applications, bases de données, services cloud et clusters Kubernetes entre eux, avec un accès par requête Cypher pour que les agents IA récupèrent des relations à la demande plutôt que de reconstruire ce contexte à partir de données brutes. Le statut varie fortement selon la brique :

    • GA : Frontend Observability, Cloud Provider Observability (AWS, Azure, Google Cloud), entités et relations personnalisées, contexte runtime pour agents via Grafana Assistant ou gcx.
    • Public preview : Synthetic Monitoring, Agent Observability (cartographie des agents IA et de leurs dépendances).
    • Private preview : Database Observability pour SQL Server, service ownership (intégration Service Center), historique d’incidents lié à l’IRM.

    Autrement dit, la partie vraiment solide aujourd’hui (GA) reste centrée sur la cartographie infra/cloud classique. Tout ce qui concerne spécifiquement les agents IA — Agent Observability en tête — est encore en preview, et Grafana ne détaille ni la configuration ni les métriques collectées à ce stade. Si ton équipe n’opère pas encore d’agents IA en production, cette partie de l’annonce peut attendre sans rien perdre.

    Ce qui change concrètement pour ton setup existant

    Si tu es déjà sur Grafana 13.2, aucune de ces annonces n’impose de montée de version lourde : full-text search et la plupart des fonctions Adaptive Telemetry sont des capacités Grafana Cloud, pas des changements de l’OSS auto-hébergé. Si tu fais tourner ta propre stack Prometheus/Grafana sans la couche Cloud, l’essentiel de ce qui sort le 20 octobre ne te concerne pas directement — à part comme indicateur de la direction que prend l’écosystème : de plus en plus de traitement intelligent du volume de télémétrie, plutôt que du simple stockage brut.

    FAQ

    Faut-il migrer vers Grafana Cloud pour profiter de ces annonces ?

    Oui pour la quasi-totalité : full-text search, Adaptive Telemetry et Knowledge Graph sont des fonctionnalités de Grafana Cloud, pas de l’édition open source auto-hébergée.

    Le mode « cost-first » d’Adaptive Metrics peut-il dégrader mes dashboards existants ?

    Selon Grafana, ce mode n’applique que les recommandations qui ne font pas augmenter le nombre total de séries actives — il est pensé pour limiter ce risque, mais Grafana ne communique pas de garantie chiffrée au-delà de cette description.

    Agent Observability remplace-t-il un outil d’AIOps dédié ?

    Non, pas en l’état : c’est une cartographie des agents IA et de leurs dépendances dans le Knowledge Graph, encore en public preview, sans détail public sur les métriques collectées ni la tarification.

    En pratique

    Commence par activer la recherche full-text sur Grafana Cloud Logs si tu y as accès — c’est gratuit, GA, et c’est la fonction qui fera gagner du temps dès le prochain incident de prod, bien avant que le Knowledge Graph ou Agent Observability sortent de preview.

    Sources : le récapitulatif officiel des annonces ObservabilityCON 2026 sur grafana.com et le communiqué de presse Grafana Labs du 20 octobre 2026.

  • Veeam Intelligent ResOps pour Microsoft 365 : l’IA undo passe en GA

    Veeam Intelligent ResOps pour Microsoft 365 : l’IA undo passe en GA

    88 % des entreprises utilisent déjà des agents IA en production ou en test, mais 7 % seulement se disent prêtes à encaisser les dégâts qu’ils peuvent causer. C’est le chiffre qui ouvre le communiqué de Veeam du 15 octobre 2026 annonçant la disponibilité générale d’Intelligent ResOps (iResOps) pour Microsoft 365. Et il résume bien le problème : un agent Copilot qui modifie ou supprime des fichiers par erreur dans SharePoint, ça arrive déjà, et la plupart des équipes IT ne le savent même pas tant que ça ne fait pas de bruit.

    Ce que fait vraiment iResOps pour Microsoft 365

    iResOps n’est pas un nouveau produit de sauvegarde — c’est un module qui se branche sur Veeam Data Cloud for Microsoft 365 déjà en place, sans migration de données ni refonte d’architecture. Son rôle : relier les données de production à leur contexte de sauvegarde via ce que Veeam appelle le DataAI Command Graph, une couche qui couvre SharePoint, OneDrive, Teams et Exchange Online. Les capacités de sécurité et de gouvernance viennent en grande partie de Securiti AI, une société que Veeam a rachetée pour bâtir cette plateforme DataAI Command.

    Concrètement, trois blocs de fonctions :

    • Découverte des agents IA et de leurs accès : iResOps détecte les agents présents dans le tenant — Copilot en tête — et montre à quelles données sensibles chacun peut toucher. Il signale le partage excessif, ce qui est souvent la vraie porte d’entrée du problème plutôt que l’agent lui-même.
    • L’« AI agent file undo » : quand un agent modifie ou supprime des fichiers à tort, les admins voient les changements fichier par fichier et peuvent annuler individuellement — pas besoin de restaurer tout un site SharePoint pour récupérer un seul document corrompu. Veeam ne détaille pas la profondeur d’historique disponible ni le mécanisme technique exact de restauration, donc à vérifier en POC si cette granularité correspond à ton besoin réel.
    • Classification et nettoyage ROT (données redondantes, obsolètes, triviales) sur les quatre charges de travail M365, avec mise en quarantaine avant archivage ou suppression définitive, et une fonction de « minimum viable recovery » qui repère les données prioritaires et les lacunes de couverture avant qu’un incident ne les révèle.

    Pourquoi maintenant : la friction entre agents IA et gouvernance des données

    Le chiffre le plus inquiétant du Data Trust & Resilience Report 2026 de Veeam n’est pas celui des 88 % d’adoption — c’est que plus de 82 % des entreprises ont des agents IA non identifiés dans leur environnement IT. Autrement dit, la plupart des DSI pilotent une flotte d’agents dont ils ne connaissent qu’une partie. Un agent qui réécrit des fichiers dans Teams sans qu’on sache qu’il existe, c’est le scénario exact que la fonction de découverte d’iResOps cible.

    Ça rejoint un problème qu’on a déjà creusé côté couverture M365 native : notre article sur ce que Microsoft 365 Backup couvre vraiment montrait déjà que la protection native laisse des angles morts sur la gouvernance fine. iResOps ne remplace pas une stratégie de sauvegarde — il ajoute une couche de contexte et de réversibilité par-dessus, ce qui est différent.

    Ce qui arrive ensuite : la feuille de route iResOps

    Microsoft 365 est le premier produit de la gamme iResOps à atteindre le GA depuis son lancement en mai 2026 — les autres sont encore en Private Preview, à des stades d’avancement très différents :

    • Veeam Data Platform (Private Preview) : connecte les serveurs de sauvegarde existants à DataAI Command, avec recherche globale, récupération de fichiers et trois agents IA intégrés. La version 13.2 est attendue en GA plus tard au T4 2026.
    • Okta (Private Preview) : service géré pour corriger les erreurs de configuration et les modifications malveillantes d’identités, avec des points de restauration immuables sur 29 types d’objets et une fenêtre de suppression réversible de 30 jours.
    • GitHub, Azure DevOps et Google IAM : Private Previews prévues plus tard au T4 2026.

    Si tu protèges déjà tes workloads M365 avec Veeam, le module Microsoft 365 est disponible dès aujourd’hui en add-on sur les éditions Foundation et Advanced de Veeam Data Cloud for Microsoft 365, ou via les Veeam Cloud & Service Providers. Pour les autres briques, patience — on parle de previews, pas de produits stabilisés, et Veeam prévient lui-même que les fonctionnalités en Private Preview peuvent encore changer.

    Est-ce que ça vaut le coup de s’y intéresser maintenant ?

    Oui, si Copilot ou un autre agent IA tourne déjà sur ton tenant M365 et que tu n’as aucune visibilité sur ce qu’il touche — c’est précisément le trou que ce module comble, et c’est rare de voir un éditeur de sauvegarde attaquer le sujet par ce biais plutôt que par un simple argument de rétention plus longue. En revanche, si tu cherches une refonte complète de ta stratégie de sauvegarde M365, ce n’est pas le bon point d’entrée : iResOps suppose que tu as déjà Veeam Data Cloud for Microsoft 365 en place. Et pour tout ce qui touche aux autres briques de la gamme (Veeam Data Platform, Okta, GitHub…), mieux vaut attendre une stabilisation avant de t’engager en production, vu le nombre de Private Previews encore en jeu.

    FAQ

    iResOps pour Microsoft 365 nécessite-t-il de changer d’outil de sauvegarde ?

    Non. C’est un add-on sur Veeam Data Cloud for Microsoft 365 — si tu utilises déjà ce produit, l’activation ne demande ni migration de données ni changement d’architecture.

    Quelle est la différence avec notre récapitulatif des failles Veeam KB4902 ?

    Rien à voir directement : KB4902 concerne des vulnérabilités corrigées dans Backup & Replication côté infrastructure on-prem. iResOps, lui, cible la gouvernance des données SaaS M365 face aux agents IA — deux périmètres de risque distincts chez le même éditeur.

    Et si je n’utilise pas encore d’agents IA type Copilot dans mon tenant ?

    La fonction de découverte reste utile : d’après Veeam, plus de 82 % des organisations ont des agents IA non identifiés dans leur environnement — tu pourrais en avoir sans le savoir, via des intégrations tierces ou des extensions activées par défaut.

    En pratique

    Si tu es déjà client Veeam Data Cloud for Microsoft 365, le plus simple est de demander une démo du module iResOps à ton contact Veeam ou à ton CSP pour voir la granularité réelle de l’« agent file undo » sur tes propres données avant de l’activer en production — c’est le genre de fonctionnalité dont la valeur se juge sur un cas concret, pas sur une fiche produit.