J'essaie de déterminer si, sous Linux, les variables d'environnement d'un processus sont observables par d'autres utilisateurs (non root).
Le cas d'utilisation immédiat met des secrets dans les variables d'environnement. Ceci est discuté dans de nombreux endroits du Web comme étant peu sûr, mais je n'ai pas pu me concentrer sur le point d'exposition exact sous Linux.
Notez que je ne parle pas de mettre des secrets en texte clair dans des fichiers. Notez également que je ne parle pas de l'exposition au compte root (je vois la tentative de cacher les secrets d'un adversaire avec root comme un non-démarreur).
Cette question semble répondre à la mienne, avec des commentaires qui classent les variables d'environnement comme étant complètement sans sécurité, ou simplement masquées, mais comment peut-on y accéder?
Dans mes tests, un utilisateur non privilégié ne peut pas observer les variables d'environnement d'un autre utilisateur via la table de processus ('ps auxwwe'). Les commandes qui définissent les variables d'environnement (par exemple l'exportation) sont des commandes internes du shell qui ne parviennent pas sur la table de processus et par extension ne sont pas dans / proc / $ pid / cmdline. / proc / $ pid / environ n'est lisible que par l'UID du propriétaire du processus.
La confusion est peut-être entre différents systèmes d'exploitation ou versions. Diverses sources (récentes) sur le Web dénoncent l'insécurité des variables d'environnement, mais ma vérification ponctuelle des différentes versions de Linux semble indiquer que ce n'est pas possible depuis au moins jusqu'en 2007 (probablement plus loin, mais je n'ai pas de cases sur main pour tester).
Sous Linux, comment un utilisateur non privilégié peut-il observer les variables d'environnement pour les processus d'un autre?