CIF Changer la vulnérabilité qui transforme l'authentification Kerberos en accès racine dans Linux

Auteur: Publié 4 min de lectura 265 lecture

Les images de cet article ont été générées par intelligence artificielle. Notre méthode de publication

Un échec à l'escalade des privilèges locaux surnommés CIFSwitch a été documenté dans le sous-système CIFS du noyau Linux et montre comment un mélange de conception du noyau et de comportement d'utilisation de l'espace peut transformer un appel d'authentification légitime en route vers racine. CIFS (Common Internet File System) est utilisé pour monter et accéder aux ressources du réseau, et lorsque ces assemblages nécessitent Kerberos / SPNEGO le noyau délègue une partie du travail à un assistant dans l'espace utilisateur (cifs.upcall) géré par la collection cifs-utils. L'erreur profite du fait que le noyau ne valorise pas correctement l'origine de certaines requêtes clés (cifs.spnego), ce qui permet à un utilisateur non privilégié de forger une requête et d'activer le flux d'authentification comme s'il venait du client CIFS du noyau.

Dans la pratique, la vulnérabilité réside dans la cifs.up call fonctionne avec les privilèges racine et les champs de confiance qui, par conception, auraient dû être générés par le noyau. Un attaquant local peut manipuler ces champs pour forcer un changement de nom et provoquer une résolution de nom (NSS) avant que l'aide réduit ses privilèges, qui ouvre la porte pour charger un module NSS malveillant et exécuter le code avec des privilèges système. La découverte et la description technique détaillée sont disponibles dans le rapport du chercheur Asim Viladi Oglu Manizado, qui a également publié un PoC public pour valider l'atténuation: CIF Rapport technique de commutation et Dépôt PoC.

CIF Changer la vulnérabilité qui transforme l'authentification Kerberos en accès racine dans Linux
Image générée avec IA.

Cet échec n'est pas universel: il a été introduit dans l'arbre du noyau en 2007 et son exploitation dépend de plusieurs facteurs combinés: version du noyau avec la route vulnérable, présence d'une version de cifs-utils implémenter le changement d'espace de noms, la disponibilité d'espace de noms d'utilisateurs dans la configuration du système et les politiques de sécurité (SELinux / AppArmor) qui ne bloquent pas l'attaque. Manizado souligne plusieurs distributions qui, avec leur configuration par défaut au moment de l'essai, étaient vulnérables; d'autres distortions incluent des protections par défaut qui atténuent l'exploitation même si le code concerné existe.

Le patch qui corrige la racine du problème ajoute des validations pour s'assurer que les cifs. Les requêtes spnego proviennent en fait du client CIFS du noyau ; le commit en amont se trouve dans le noyau : commit 3da1fdf. Cependant, le déploiement de ce patch dépend de chaque fournisseur : la seule façon fiable de fermer la fenêtre est de mettre à jour les paquets noyau et cifs-utils publiés par votre distribution et de redémarrer les systèmes touchés.

Pour les gestionnaires et les responsables de la sécurité, une priorité pragmatique devrait être appliquée: mise à jour kernel et cifs-utils aux versions parachevées et vérifier les notes de sécurité de la distribution; si la mise à jour immédiate n'est pas possible, considérer l'atténuation temporaire comme désactiver ou bloquer le module CIFS(liste noire), désinstaller cifs-utils si ce n'est pas nécessaire, et désactiver les espaces de noms d'utilisateur non privilégiés. Ces actions réduisent la surface de l'attaque, même si elles peuvent affecter les fonctions d'assemblage du réseau; évaluer l'impact sur les services avant de les appliquer en production.

CIF Changer la vulnérabilité qui transforme l'authentification Kerberos en accès racine dans Linux
Image générée avec IA.

Détecter les tentatives d'exploitation nécessite d'examiner les registres de système et d'audit à la recherche d'exécutions anormales cifs.upcall, des appels inhabituels au clavier du noyau et l'activité de chargement du module NSS à partir d'endroits inattendus. Si vous avez des outils de détection EDR ou d'intégrité, recherchez des changements dans / lib / libns _ * et dans les binaires associés aux cifs. Il est également bon de comparer des systèmes avec un inventaire connu pour identifier des hôtes avec des versions de noyau ou cifs-utils sans patching.

Sur le plan organisationnel, CIFSwitch rappelle que les chaînes entre l'espace noyau et l'espace utilisateur (assistants avec privilèges) sont des vecteurs critiques: les examens de sécurité devraient inclure non seulement les correctifs du noyau, mais aussi la coordination avec les utilitaires de l'espace utilisateur et la configuration de la politique de confinement (SELinux / AppArmor). Pour les équipes toujours dépendantes du montage CIFS / Kerberos, recommandez de tester les patchs dans les environnements de préproduction et d'utiliser le PoC publié par le chercheur uniquement dans des conditions contrôlées pour valider les contre-mesures: PoC CIFSwitch.

Résumé pratique: prioriser les mises à jour du noyau et les paquets cifs-utils de votre fournisseur de distribution, supprimer ou bloquer les composants CIFS si ce n'est pas nécessaire, restreindre l'espace de noms d'utilisateur et renforcer les politiques de confinement. La combinaison du stationnement, de la réduction de la surface et de la surveillance est la seule façon de minimiser les risques à mesure que les versions de stationnement se répandent dans leur infrastructure.

Couverture

Autres

Plus de nouvelles sur le même sujet.