GNU/Linux >> Tutoriels Linux >  >> Linux

Détecter les bibliothèques partagées obsolètes en mémoire avec UChecker

Ce tutoriel explique ce qu'est UCchecker et comment détecter les bibliothèques partagées obsolètes en mémoire avec UChecker dans les systèmes d'exploitation Linux.

Présentation

Les organisations informatiques qui s'appuient sur des logiciels libres et open source (FOSS) sont confrontées à une lutte constante pour traiter les bibliothèques partagées non corrigées. C'est un problème non trivial, car les bibliothèques partagées sont une surface d'attaque largement ciblée. Par exemple, des recherches suggèrent qu'OpenSSL est le logiciel le plus ciblé au monde, représentant 19 % des activités hostiles dans le monde .

Si vous êtes responsable des bibliothèques OpenSSL et GNU C (glibc), parmi de nombreux jeux de codes open source comparables, vous êtes obligé d'effectuer des mises à jour et une gestion des correctifs en temps opportun. L'approche traditionnelle de la mise à jour des bibliothèques consiste à redémarrer l'ensemble du serveur ou à redémarrer tous les processus s'il n'y a aucun moyen d'identifier les processus qui utilisent encore les bibliothèques obsolètes. Cependant, les redémarrages du système entraînent des complications et des risques qui leur sont propres. Merci à KernelCare équipe, nous pouvons facilement résoudre ce problème avec un simple script nommé UChecker .

Qu'est-ce que UChecker ?

UChecker, abréviation de vérificateur d'espace utilisateur , est un analyseur gratuit et open source qui identifie les processus qui utilisent encore des bibliothèques obsolètes et qui nécessitent un redémarrage. Il a été créé lors du développement de correction en direct pour les bibliothèques partagées par KernelCare. Avec Uchecker, vous pouvez identifier les bibliothèques FOSS vulnérables et les corriger. Vous devrez redémarrer les processus concernés (sauf si vous utilisez des services de mise à jour de bibliothèque sans redémarrage), mais en recherchant les vulnérabilités, vous pouvez déterminer quels processus nécessitent une attention et lesquels ne le sont pas.

En conséquence, vous évitez les redémarrages inutiles du serveur qui entraînent des dégradations et/ou des pannes de service ainsi que la création de fenêtres de vulnérabilité, car les bibliothèques restent sans correctif jusqu'à ce que le redémarrage puisse être programmé. En effet, vous ne savez peut-être même pas quels services utilisent quelles bibliothèques, il est donc tentant de se contenter de redémarrer tout le serveur pour tous les mettre à jour ou de redémarrer les principaux services. Cette pratique peut également être aussi perturbatrice qu'un redémarrage.

Comment UChecker fonctionne

Uchecker fonctionne avec toutes les distributions Linux modernes, à partir des 6e versions. C'est un logiciel libre, construit avec JSON et ouvert à la redistribution et/ou à la modification selon les termes de la licence publique générale GNU. Uchecker détecte les processus qui utilisent d'anciennes bibliothèques partagées (c'est-à-dire non corrigées). Il détecte et signale les bibliothèques partagées non à jour qui sont utilisées par les processus en cours d'exécution. Ses capacités de détection sont basées sur la comparaison BuildID. Par conséquent, ils sont au courant des fichiers supprimés ou remplacés.

L'illustration graphique suivante montre comment fonctionne Uchecker.

L'outil Uchecker est capable de détecter l'ID et le nom du processus ainsi que les noms des bibliothèques partagées qui ne sont pas corrigées, ainsi que leurs ID de construction. Uchecker obtient les derniers BuildID à partir des ressources KC. Il prend ensuite un processus en cours d'exécution en itérant sur /proc/ et obtient une bibliothèque de partage liée à partir de /proc/<pid>/maps . À ce stade, Uchecker demande si la bibliothèque partagée n'a pas été remplacée ou supprimée. Selon la réponse, le logiciel analysera ELF à partir du système de fichiers ou analysera ELF à partir de la mémoire mappée. Ensuite, Uchecker rassemble le BuildID à partir de .note.gnu.build-id .

Détecter les bibliothèques partagées obsolètes en mémoire avec UChecker

Il n'y a aucune installation requise! Exécutez simplement le script Uchecker pour trouver les bibliothèques non corrigées sur votre serveur Linux :

# curl -s -L https://kernelcare.com/checker | python

La commande ci-dessus analyse vos systèmes de serveur Linux à la recherche de bibliothèques partagées obsolètes liées au python traite et les répertorie dans la sortie standard.

Vous pouvez ensuite mettre à jour ces bibliothèques non corrigées à l'aide du gestionnaire de packages par défaut de votre système.

Regardez la démonstration visuelle du fonctionnement d'Uchecker dans la vidéo suivante :

Conclusion

Uchecker vous permet de garder vos bibliothèques FOSS corrigées et à jour. Vous pouvez éviter les tracas courants de devoir redémarrer les serveurs car vous ne savez pas quels processus doivent être redémarrés. Ceci est pertinent pour les bibliothèques OpenSSL et GNU C (glibc), entre autres. Avec des technologies comme KernelCare+, il est même désormais possible de réaliser un correctif en direct des vulnérabilités dans les bibliothèques essentielles de l'espace utilisateur en plus de celles du noyau Linux. Vous pouvez mettre à jour les applications sans affecter leur état opérationnel. Aucun redémarrage ou redémarrage n'est requis.


Linux
  1. "quel" équivalent pour les bibliothèques partagées ?

  2. Commande gratuite sous Linux expliquée avec des exemples

  3. 10 exemples de commandes IPCS (avec introduction IPC)

  4. Suppression des bibliothèques partagées Linux

  5. Mécanismes de verrouillage pour la cohérence de la mémoire partagée

Commandes Linux :explorer la mémoire virtuelle avec vmstat

Comment répertorier les bibliothèques partagées utilisées par les exécutables sous Linux

Comment utiliser la mémoire partagée avec Linux en C

Gestion de la mémoire avec la structure epoll_event

Pourquoi la mémoire partagée du noyau est à 0 sur Ubuntu 12.04 ?

rkhunter :segments de mémoire partagée suspects