Travailler avec des capacités Linux

introduction

Les capacités Linux sont des attributs spéciaux du noyau Linux qui accordent aux processus et aux exécutables binaires des privilèges spécifiques qui sont normalement réservés aux processus dont l'ID utilisateur effectif est 0 (l'utilisateur root, et uniquement l'utilisateur root, a UID 0).

Cet article expliquera certaines des capacités disponibles, leurs utilisations et comment les définir et les supprimer. Veuillez noter que la définition de capacités sur les exécutables peut compromettre la sécurité de votre système. En tant que tel, vous devriez envisager de tester sur un système hors production avant d'implémenter des capacités en production.

Conditions préalables

  • Un système Linux sur lequel vous avez un accès root (soit via l'utilisateur root ou un utilisateur avec accès sudo).

Explication

Essentiellement, l'objectif des capacités est de diviser la puissance de `` root '' en privilèges spécifiques, de sorte que si un processus ou un binaire qui possède une ou plusieurs capacités est exploité, les dommages potentiels sont limités par rapport au même processus exécuté en tant que root.

Les capacités peuvent être définies sur les processus et les fichiers exécutables. Un processus résultant de l'exécution d'un fichier peut gagner les capacités de ce fichier.

Les capacités implémentées sur Linux sont nombreuses, et beaucoup ont été ajoutées depuis leur version originale. Certains d'entre eux sont les suivants:

  • CAP_CHOWN: Modifiez l'ID utilisateur et l'ID groupe des fichiers
  • CAP_DAC_OVERRIDE: Remplacer le DAC (contrôle d'accès discrétionnaire). Par exemple, vto contourne les vérifications des autorisations de lecture / écriture / exécution.
  • CAP_KILL: Contourner les contrôles de permission pour envoyer des signaux aux processus.
  • CAP_SYS_NICE: Augmenter la gentillesse des processus ( Une explication de la gentillesse peut être trouvée ici )
  • CAP_SYS_TIME: Régler le système et l'horloge matérielle en temps réel

Pour la liste complète, exécutez man 7 capabilities.

Les capacités sont attribuées dans des ensembles, à savoir "autorisé", "héritable", "effectif" et "ambiant" pour les threads, et "autorisé", "héritable" et "effectif" pour les fichiers. Ces ensembles définissent différents comportements complexes, leur explication complète dépasse le cadre de cet article.

Lors de la définition des capacités dans un fichier, nous utiliserons presque toujours «autorisé» et «efficace», par exemple CAP_DAC_OVERRIDE+ep. Remarquez le +ep, qui désigne les ensembles susmentionnés.

Utilisation des capacités de fichier

Forfaits requis

Il existe deux principaux outils, getcapet setcapqui peuvent respectivement afficher et définir ces attributs.

  • Sur Debian et Ubuntu, ces outils sont fournis par le libcap2-binpackage, qui peut être installé avec:apt install libcap2-bin
  • Sur CentOS et Fedora, le libcappackage est nécessaire:yum install libcap
  • Sur Arch Linux, ils sont également fournis par libcap:pacman -S libcap

Capacités de lecture

Pour voir si un fichier a un ensemble de capacités, vous pouvez simplement exécuter getcap /full/path/to/binary, par exemple:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Si vous souhaitez savoir quelles fonctionnalités sont déjà définies sur votre système, vous pouvez rechercher récursivement l'ensemble de votre système de fichiers avec la commande suivante:

getcap -r /

En raison du fait que les systèmes de fichiers virtuels (tels que /proc) ne prennent pas en charge ces opérations, la commande ci-dessus produira des milliers d'erreurs, donc pour une sortie plus propre, utilisez ce qui suit:

getcap -r / 2>/dev/null 

Attribution et suppression de capacités

Pour définir une capacité particulière sur un fichier, utilisez setcap "capability_string" /path/to/file.

Pour supprimer toutes les fonctionnalités d'un fichier, utilisez setcap -r /path/to/file.

Pour démonstration, nous allons créer un fichier vierge dans le répertoire courant, lui donner une capacité et le supprimer. Commencez par ce qui suit:

root@demo:~# touch testfile
root@demo:~# getcap testfile

La deuxième commande ne produit aucune sortie, ce qui signifie que ce fichier n'a aucune capacité.

Ensuite, définissez une capacité pour le fichier:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

"CAP_CHOWN + ep" a été utilisé comme exemple, mais tout autre peut être attribué de cette manière.

Maintenant, supprimez toutes les fonctionnalités de testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Encore une fois, il n'y aura pas de sortie, car "CAP_CHOWN + ep" a été supprimé.

Conclusion

Les capacités ont de nombreuses utilisations potentielles et peuvent aider à renforcer la sécurité de vos systèmes. Si vous utilisez le bit SUID sur vos exécutables, envisagez de le remplacer par la capacité spécifique requise.



LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.