web-dev-qa-db-fra.com

Quels sont les répertoires journaux mondiaux par défaut?

Dans un système de fichiers Linux standard, lequel de ces répertoires communs est écritable mondial par défaut?

 /tmp 
 /etc
 /var 
 /proc 
 /bin 
 /boot
 /....
 ....

Pourquoi sont-ils écrits mondiaux? Est-ce que cela pose un risque de sécurité?

15
Abdennour TOUMI

Les annuaires les seuls FHS-Mandated couramment écrits mondiaux sont /tmp et /var/tmp. Dans les deux cas, c'est parce qu'ils sont destinés à stocker des fichiers temporaires pouvant être faits par n'importe qui.

Aussi commun est-il /dev/shm, en tant que TMPFS (système de fichiers appuyé par la RAM), pour un accès rapide aux données de taille moyenne partagées entre les processus ou simplement créer des fichiers qui sont garantis pour être détruits sur le redémarrage.

Il peut aussi y avoir un /var/mail ou /var/spool/mail, et parfois d'autres annuaires de spouleur. Ceux-ci sont utilisés pour tenir le courrier temporairement avant de traiter. Ils ne sont toujours pas toujours écrits mondiaux, en fonction des outils utilisés. Quand ils sont, c'est que des fichiers peuvent y être créés par des outils utilisateur pour traiter par des démons.

Tous ces répertoires ont généralement le Bit collant (t) défini, ce qui signifie que seul le propriétaire d'un fichier ou du répertoire peut déplacer ou supprimer les fichiers.

Tout programme exécutant en tant qu'utilisateur peut effectuer des fichiers dans ces annuaires et que la création du programme de faire la bonne chose en ce qui concerne la sécurité de ses données particulières. Il n'y a pas de problème de sécurité général particulier autre que quelqu'un qui remplit potentiellement le système de fichiers, mais de nombreuses possibilités d'un programme pour le faire fausse.

Il y a eu quelques mouvements vers un service spécifique au service /tmp répertoires. Ceux-ci évitent certains des bugs potentiels pouvant venir, de sorte que ce n'est pas aussi vital que le programme soit exempt de bugs dans la manière dont il utilise le répertoire.


Vous pouvez trouver les annuaires mondiaux sur votre système avec:

find / -maxdepth 3 -type d -perm -777
17
Michael Homer

/tmp, /var/tmp, Et /var/lock Sont écrits mondiaux par défaut. Il peut y avoir des liens symboliques, tels que /usr/tmp/var/tmp, Prévu à la compatibilité avec les applications plus anciennes.

/tmp Et /var/tmp World-writable car ils sont destinés à être utilisés par n'importe quel utilisateur pour un stockage temporaire. /var/lock Est world-writable de sorte que tout processus, fonctionnant comme utilisateur, puisse créer des fichiers de verrouillage dans un emplacement central.

Y a-t-il un risque de sécurité? Non, mais sorte de oui.

Les autorisations de tous ces répertoires sont 1777, Avec le principal 1 Étant le Bit collant . Cela signifie que, même si quelqu'un peut créer un fichier dans ces répertoires horaires mondiaux, seul le propriétaire peut supprimer ses propres fichiers (et bien sûr, l'utilisateur racine peut aussi).

Le risque de sécurité possible peut résulter de la création de fichiers temporaires non sécurisée. Étant donné que ces répertoires sont un service gratuit pour tous, les utilisateurs doivent prendre des précautions afin de garantir que les fichiers qu'ils créent sont des nouveaux fichiers, plutôt que d'ouvrir un fichier existant ou un lien symbolique qui aurait peut-être été planifié par un utilisateur malveillant. Si des fichiers sont créés en utilisant des techniques appropriées, telles que open(…, O_EXCL) ou mkstemp(3) , alors ce risque est évité.

8
200_success

Pour trouver des annuaires horaires mondiaux, vous pouvez utiliser

find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print

Pour les fichiers change de type à f

Pour les symboles de symboles à l

Pour définir un peu collant:

find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print0| xargs -0 chmod +t
2
jithinsha

/tmp

C'est risqué, car vous devez ajouter du code supplémentaire pour l'utiliser en toute sécurité. De toute évidence, cela est négligé.

Un exemple récent est donné par Steve Kemp. http://blog.steve.org.uk/somemines_reading_code_makes_you_scream_.html

./mgmt/tools/SysAPI.cc:  tmp = fopen("/tmp/shadow", "w");
./mgmt/tools/SysAPI.cc:    system("/bin/mv -f /tmp/shadow /etc/shadow");

Si vous (l'attaquant) Remplacez/TMP/Shadow avant la deuxième ligne, vous pouvez remplacer le mot de passe de tout le monde. (Je suppose que l'attaque vous oblige à créer le fichier avant la première ligne et à faire le fichier World-Wriperable).

SystemD sur Linux permet d'atténuer de telles vulnérabilités en isolant/TMP pour de nombreux services système. (Sauf ceux qui "mal à effet/TMP comme emplacement pour IPC et autres primitives de communication").

À Fedora Linux - http://fedoraject.org/wiki/features/servicesprivatetMP

Systemd Explication - http://0pointer.de/blog/projects/security.html

2
sourcejedi