Quanto è sicuro Linux in modalità utente, in termini di protezione del sistema host?

2

Due domande su Linux in modalità utente :

  • Supponiamo che un attacco di escalation di privilegi venga utilizzato per ottenere la root in un guest UML. Assumendo i kernel host e guest moderni (3.0 o successivi), è banale sfuggire alla sandbox, come con un chroot? O è più difficile?

  • È possibile eseguire direttamente un exploit di escalation di privilegi sul kernel host, da un guest UML? Oppure bypassare il kernel UML non è pratico per un utente malintenzionato?

posta DanL4096 30.07.2014 - 22:19
fonte

1 risposta

2

Non so come viene eseguito esattamente un kernel UML sul sistema host. Sto speculando interamente , ma le mie speculazioni potrebbero essere utili se puoi combinarle con alcuni documenti sulle implementazioni di UML.

Escalation di privilegi nel guest con un exploit specifico per il cliente

Essere root sul kernel guest dovrebbe essenzialmente permettervi di fare tutto ciò che volete con i privilegi del PID che è stato usato per eseguire questo kernel.

Se l'esecuzione di un kernel UML viene eseguita con UID 0 (che suppongo sia improbabile), il processo non viene eseguito in uno spazio dei nomi PID e il processo è stato lasciato con uno dei molte funzionalità che consentono i privilegi completi , quindi sei in un problema profondo e profondo e dovresti considerare l'intero host da contaminare.

Se quel processo viene eseguito con UID 0 all'esterno di uno spazio dei nomi PID ma con qualche forma di applicazione MAC, ciò che può fare e come può persistere dipende dal sistema specifico. I ruoli di SELinux potrebbero essere particolarmente utili per aggiungere una protezione aggiuntiva. Probabilmente sei nei guai.

Se il processo viene eseguito con un altro UID o è bloccato in uno spazio dei nomi PID, è più probabile che sia protetto. La VM guest sarà fatta per, ma dovrebbero esserci dei limiti a ciò che può fare il tuo avversario e il resto del sistema host potrebbe essere protetto in modo decente.

Escalation di privilegi con un exploit che si applica anche all'host

Non è improbabile che l'host del tuo kernel UML sia lo stesso kernel. Quindi, supponendo che un utente malintenzionato abbia trovato un modo per abusare di un kernel UML, sarebbe ragionevole presumere che abbiano anche un exploit per il kernel host, eccetto per:

  • Namespace e MAC potrebbero fornire una certa quantità di protezione assicurando che meno dell'interfaccia di syscall di Linux sia disponibile e che potrebbe impedire al tuo aggressore di eseguire l'exploit.
  • Un exploit che si basa su un modulo non attendibile presente solo nel kernel guest non comporterebbe nemmeno un compromesso dell'host.
risposta data 30.07.2014 - 22:55
fonte

Leggi altre domande sui tag