La maggior parte dei sistemi Linux che consentono agli utenti non root di eseguire il codice direttamente rootable?

63

long story short if you can execute code on a box it is usually straightforward to get root

( citazione fonte )

L'implicazione immediata di questa citazione (se è accurata) è che se stai eseguendo un sistema multiutente e non provi il tuo dannato per impedire a tutti gli utenti di creare file con il set di autorizzazioni x , il sistema è buono come compromesso. Il corollario è che il funzionamento di un sistema multiutente, come quelli tipici delle università, che in base alla progettazione consentono a tutti gli studenti di eseguire esercizi in C, C ++, assemblaggi, ecc. È inutile, poiché ogni studente può radicare direttamente questo sistema. p>

Poiché la gestione di sistemi informatici destinati a essere utilizzati da più persone rispetto ai loro proprietari non è considerata inutile, e le strutture di limitazione dei privilegi (gestione dei diritti degli utenti, sandboxing, ecc. ecc.) non sono considerate inutili, dubito in qualche modo di questo tipo di commenti. Ma cosa so?

È vero che la maggior parte dei sistemi Linux è direttamente rootable da chiunque possa eseguire il codice su di essi?

    
posta gaazkam 29.10.2018 - 23:52
fonte

4 risposte

90

No, questo non è corretto. Mentre si discute sulla relativa difficoltà di trovare e sfruttare le vulnerabilità di 0day su Linux quando si ha accesso locale, l'architettura di sicurezza stessa di un moderno sistema Linux (con un MMU ) è progettato per isolare diversi utenti e impedire l'escalation dei privilegi. Un utente non root non può ottenere la root senza un'autorizzazione appropriata senza sfruttare una vulnerabilità esistente e tali vulnerabilità di privilegio sono rapidamente risolte non appena vengono scoperte. *

È possibile, tuttavia, abusare del fattore umano e ottenere la radice sfruttando equivoci onnipresenti nella professione di sysadmin. Questo ovviamente dipende dal fatto che l'amministratore di sistema abbia frainteso l'architettura di sicurezza del sistema che gestisce. Un elenco non esaustivo di esempi:

  • Elevare i privilegi con sudo o su da un utente non privilegiato ma non fidato. 1

  • Trucca un amministratore di sistema nell'esecuzione di ldd su un eseguibile statico dannoso come root. 2

  • Abusare di un binario installato in modo non sicuro. 3

  • Passare a un utente inferiore da root, consentendo un attacco pushback TTY. 4 5

* Sebbene questo sia apparentemente vero, molte implementazioni non si aggiornano abbastanza frequentemente, portando a sistemi di produzione dal vivo vulnerabili a bug noti. Un aggiornamento disponibile non garantisce l'installazione di un aggiornamento.

    
risposta data 30.10.2018 - 00:05
fonte
26

Per riformulare l'offerta - Le vulnerabilità di escalation dei privilegi sono esistite e continueranno a essere trovate o create.

Durante l'ultima settimana abbiamo questo piccolo idiota in SystemD ; cosa avremo la prossima settimana, verrà riparata in tempo e quanto è buono il regime di patching?

Dovresti dare per scontato che sia possibile che un utente malintenzionato che può essere eseguito su una scatola possa probabilmente ottenere l'accesso root alla propria istanza del sistema operativo a un certo punto indipendentemente dal sistema operativo in uso. Quanto "semplice" una simile attività è forse discutibile, ma se un utente può eseguire codice arbitrario, allora dà loro un sacco di spazio.

    
risposta data 30.10.2018 - 12:54
fonte
14

Sfruttare una vulnerabilità di escalation dei privilegi è già abbastanza difficile, così facendo, mentre si è certi di non lasciare tracce è molto più difficile. Un utente Android che tenta di eseguire il root del proprio telefono può continuare a provare un exploit dopo l'altro, senza preoccuparsi o dover nascondere le proprie tracce. Uno studente che tenta ripetutamente di abusare di sudo o di diffondere file eseguibili su tutta la condivisione file verrà probabilmente notato e rimproverato o espulso.

A proposito, il # 1 modo per ottenere l'accesso come root in un'impostazione multiutente è aspettare che un utente privilegiato cammini fuori dalla workstation dimenticandosi di bloccarlo. L'ho visto in due università su tre che ho frequentato. Tuttavia, si applica la stessa osservazione sul non essere scoperti.

    
risposta data 30.10.2018 - 14:59
fonte
5

Penso che "semplicemente" significhi "senza trucchi umani e altri strumenti di ingegneria sociale". Quindi la risposta è - Sì, se i sistemi contengono 0-day senza patch che porta all'escalation dei privilegi.

Potrebbe essere un 0-giorno a livello di applicazione. Ad esempio, se ci sono eseguibili di proprietà di root con le autorizzazioni setuid che potrebbero influenzare i file arbitrari. L'ultimo riferimento è Xorg . Puoi cercare i potenziali vettori come questo: find / -user root -perm -4000 -print 2>/dev/null . Un altro esempio: servizio di sistema come systemd menzionato sopra.

Oppure potrebbe essere un 0-giorno a livello di kernel. Sono piuttosto rari ma più rumorosi perché la loro copertura è molto più ampia. Un buon riferimento è dirty COW .

Sopra è vero se c'è un'assenza di controlli di accesso obbligatorio abilitati che possono impedire l'esecuzione di alcuni exploit.

O forse potrebbe essere anche un attacco a livello di avvio. L'avvio sicuro è tuo amico allora.

    
risposta data 31.10.2018 - 16:30
fonte

Leggi altre domande sui tag