sfruttando setuid e setgid bit

2

Stavo leggendo materiale su codifica sicura e in molti punti si dice di non usare i bit setuid e setgid per l'escalation dei privilegi. Questi sono vulnerabili e possono portare a problemi di sicurezza. Invece dovremmo eseguire un processo di helper dedicato che può fare il lavoro, come launchd su osx. Quindi la mia domanda è: come setuid e setgid sono insicuri? e come può essere sfruttato?

    
posta user775093 15.04.2015 - 01:43
fonte

2 risposte

2

Non sono i bit stessi che sono insicuri, ma se un utente malintenzionato è stato in grado di sfruttare un difetto in un binario setuid / setgid risulterebbe nell'esecuzione di codice con privilegi elevati. Quindi, riducendo il numero oi binari (e le linee di codice) che funzionano con privilegi elevati, riduci la superficie di attacco.

    
risposta data 15.04.2015 - 02:31
fonte
1

Il motivo per cui un autore del software usa suid / guid è perché alcune funzioni del programma richiedono l'accesso come root. Prendiamo ad esempio l'utilità ping. Per fare tutta quella comunicazione ICMP, è necessario un socket raw. L'apertura di un socket raw richiede i privilegi di root. Quindi, il programma è costruito come un binario suid / guid, inizia aprendo il socket raw e subito dopo elimina i privilegi suid e guid.

L'esecuzione di questo tipo di programmi va bene fintanto che puoi fidarti delle persone o dell'organizzazione che ha scritto il programma - ad esempio puoi fidarti dell'utilità ping che viene fornita con una distribuzione Linux o Unix importante. Se hai il codice sorgente puoi leggerlo da solo.

I processi di helper dedicati vengono eseguiti come root e hanno gli stessi problemi di trust dei binari suid / guid. Guarda chi ha scritto l'helper e / o leggi il codice.

    
risposta data 15.04.2015 - 15:11
fonte

Leggi altre domande sui tag