Schijfversleuteling en een nosuid-mount klinken als varianten van hetzelfde idee, en ze hebben helemaal niets met elkaar te maken. Het ene beschermt data in rust, en het andere bepaalt of de kernel een privilegebit respecteert op het moment dat een programma start. Een helper die de identiteit niet bereikt die hij verwacht, klaagt over het tweede. De aanname dat het eerste verantwoordelijk is, stuurt mensen klanten opnieuw te installeren die nooit kapot waren.

Twee Onverwante Eigenschappen

Schijfversleuteling beantwoordt wie de blokken kan lezen als de machine uit staat. Een mountoptie beantwoordt wat de kernel doet met de modusbits van een bestand als iemand het uitvoert. Niets aan het eerste beperkt het tweede, en een volledig versleutelde laptop kan een bestandssysteem mounten met alle beperkingen op hun plaats.

Ze als één eigenschap lezen is wat de theorie oplevert dat een versleutelde thuismap root-toegang verhindert. Die theorie overleeft omdat de twee symptomen op dezelfde machine verschijnen, niet omdat ze een oorzaak delen.

Wat de Overgang Echt Onderdrukt

De execve-referentie beschrijft hoe een uitvoerbaar bestand met set-user-ID de effectieve identiteit van het nieuwe proces verandert in die van de eigenaar van het bestand. Dezelfde pagina somt de voorwaarden op die die overgang onderdrukken en het equivalent daarvan voor groeps-ID’s: een no_new_privs-instelling, een bestandssysteem gemount met nosuid en een proces dat wordt gevolgd. Bestandscapaciteiten worden onder dezelfde voorwaarden genegeerd. Die vier regels dekken bijna elk rapport van dit soort.

Die lijst verklaart waarom de modus die ls afdrukt nooit het hele autorisatieverhaal is. Hij vertelt je niet welke voorwaarde een bepaalde foutmelding veroorzaakte, en de toepassing meldt mogelijk een ongerelateerde aanmeldingsbewerking met dezelfde woorden. Noteer het exacte programma, de launcher en de foutvolgorde voordat je een conclusie trekt.

Identificeer het uitvoerbare bestand dat het ondersteunde pakket installeerde, de eigenaar, het werkelijke pad en het beleid van het bestandssysteem dat het bevat. Een kopie in een downloadmap is niet de geïnstalleerde helper, wat de modus ook zegt.

Wat Je Beter Niet Doet

Set-user-ID-bits zetten op een niet-geverifieerd binair bestand en het rondschuiven tot de beperking verdwijnt, is geen reparatie. Het vervangt een beleid dat je niet begreep door een privilege dat je niet kunt auditen, en dezelfde techniek toegepast op een helper is een bekende escalatieroute. nosuid van een mount verwijderen is erger, omdat het elk programma op dat bestandssysteem raakt, niet slechts één.

De ondersteunde route is de gedocumenteerde installatie van de helper of dienst door de klant, uitgevoerd door een beheerder, die het binaire bestand plaatst waar het beleid het verwacht. Zo blijft één privilegemechanisme in plaats van twee.

Bevestig de Echte Startcontext

Start de helper na een geautoriseerde correctie zoals het product hem start, en niet vanuit een root-shell. Succes als root bewijst niets over het pad dat een gewone gebruiker neemt, en het verschil tussen die twee contexten is precies waar de fout over ging.

Bevestig daarna de netwerkbewerking waarvoor de helper bestaat. Een helper die start maar de interface niet kan configureren heeft het probleem een fase verder geschoven, niet opgelost.

findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper

Noteer de mountopties en het eigenaarschap van de helper in dezelfde notitie. Anders herhaalt de volgende persoon die dit debugt de versleutelingstheorie vanaf het begin.

Gerelateerde artikelen