Próbuję ustalić, czy w systemie Linux zmienne środowiskowe dla procesu są obserwowalne przez innych użytkowników (innych niż root).
Bezpośrednim przypadkiem użycia jest tajemnica w zmiennych środowiskowych. Jest to omawiane w wielu miejscach w Internecie jako niepewne, ale nie byłem w stanie dokładnie określić punktu ekspozycji w Linuksie.
Zauważ, że nie mówię o umieszczaniu w plikach tajemnic czystego tekstu. Zauważ też, że nie mówię o narażeniu się na konto root (próbuję ukryć sekrety przed przeciwnikiem z rootem jako niestabilny).
To pytanie wydaje się odnosić się do moich, z komentarzami, które klasyfikują zmienne środowiskowe jako całkowicie pozbawione bezpieczeństwa lub po prostu zaciemniające, ale w jaki sposób można uzyskać do nich dostęp?
W moich testach jeden nieuprzywilejowany użytkownik nie może obserwować zmiennych środowiskowych dla innego użytkownika poprzez tabelę procesów ('ps auxwwe'). Polecenia ustawiające zmienne środowiskowe (np. Eksport) są wbudowanymi powłokami, które nie trafiają do tabeli procesów i przez rozszerzenie nie znajdują się w / proc / $ pid / cmdline. / proc / $ pid / Environment jest odczytywalny tylko przez UID właściciela procesu.
Być może zamieszanie dotyczy różnych systemów operacyjnych lub wersji. Różne (niedawne) źródła w Internecie potępiają niepewność zmiennych środowiskowych, ale moje sprawdzanie punktowe różnych wersji linuksa wydaje się wskazywać, że nie jest to możliwe, sięgając wstecz do 2007 r. (Prawdopodobnie dalej, ale nie mam pól na ręka do testu).
Jak w Linuksie użytkownik nieuprzywilejowany może obserwować zmienne środowiskowe dla procesów innych?