Zašto nosuid sprječava pomoćnika VPN-a da postane root
Šifrirani početni direktorij i montiranje s nosuid različita su svojstva. Pomoćniku treba pouzdana putanja instalacije i kontekst pokretanja koji poštuje njegov bit privilegija.
Šifriranje diska i montiranje s nosuid zvuče kao varijante iste ideje, a nisu uopće povezani. Jedno štiti podatke u mirovanju, a drugo odlučuje hoće li kernel poštovati bit privilegija u trenutku kada se program pokreće. Pomoćnik koji ne može dosegnuti identitet koji očekuje žali se na drugo. Pretpostavka da je prvo odgovorno šalje ljude da ponovno instaliraju klijente koji nikada nisu bili pokvareni.
Dva nepovezana svojstva
Šifriranje diska odgovara na pitanje tko može čitati blokove dok je stroj isključen. Opcija montiranja odgovara na pitanje što će kernel učiniti s bitovima načina datoteke kada je netko izvrši. Ništa u prvome ne ograničava drugo, a potpuno šifrirano prijenosno računalo može montirati datotečni sustav sa svim ograničenjima na mjestu.
Čitanje njih kao jednog svojstva stvara teoriju da šifrirani početni direktorij sprječava root pristup. Ta teorija opstaje zato što se dva simptoma pojavljuju na istom stroju, a ne zato što dijele uzrok.
Što zapravo potiskuje prijelaz
Referenca za execve opisuje kako izvršna datoteka sa set-user-ID mijenja efektivni identitet novog procesa u identitet vlasnika datoteke. Ista stranica navodi uvjete koji potiskuju taj prijelaz i ekvivalent za identifikatore skupina: postavka no_new_privs, datotečni sustav montiran s nosuid i proces koji se prati. Mogućnosti datoteke zanemaruju se pod istim uvjetima. Ta četiri pravila pokrivaju gotovo svako izvješće ove vrste.
Taj popis objašnjava zašto način koji ispisuje ls nikada nije cijela priča o autorizaciji. Ne govori vam koji je uvjet prouzročio određenu poruku o pogrešci, a aplikacija može prijavljivati nepovezanu operaciju s vjerodajnicama istim riječima. Zabilježite točan program, pokretač i slijed pogreške prije nego donesete zaključak.
Utvrdite izvršnu datoteku koju je instalirao podržani paket, njezina vlasnika, njezinu stvarnu putanju i pravila datotečnog sustava koji je sadrži. Kopija u mapi za preuzimanja nije instalirani pomoćnik, što god njezin način govorio.
Što ne treba raditi
Postavljanje bitova set-user-ID na neprovjerenu binarnu datoteku i premještanje iste dok ograničenje ne nestane nije popravak. Time se pravilo koje niste razumjeli zamjenjuje privilegijem koji ne možete revidirati, a ista tehnika primijenjena na pomoćnika poznat je put za eskalaciju. Uklanjanje nosuid s montaže još je gore, jer pogađa svaki program na tom datotečnom sustavu, a ne samo jedan.
Podržani put je dokumentirana instalacija pomoćnika ili usluge koju izvodi administrator i koja postavlja binarnu datoteku tamo gdje je pravilo očekuje. Tako ostaje jedan mehanizam privilegija umjesto dva.
Potvrdite stvarni kontekst pokretanja
Nakon odobrenog ispravka pokrenite pomoćnik onako kako ga pokreće proizvod, a ne iz root ljuske. Uspjeh kao root ne dokazuje ništa o putu kojim ide običan korisnik, a razlika između tih dvaju konteksta upravo je ono o čemu je bila riječ.
Zatim potvrdite mrežnu operaciju zbog koje pomoćnik postoji. Pomoćnik koji se pokrene, ali ne može konfigurirati sučelje, pomaknuo je problem jednu fazu dalje, a nije ga riješio.
findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper
Zabilježite opcije montiranja i vlasništvo pomoćnika u istoj bilješci. Inače će sljedeća osoba koja ovo bude otklanjala ponovno započeti teoriju o šifriranju.