Valore reale dei modelli MAC in Linux
Ho letto di MAC e DAC in Internet, ma ancora non riesco a capire da quale tipo di attacco è impossibile proteggersi se si utilizzano solo le funzionalità DAC + rispetto alle funzionalità MAC + DAC +. Se un processo non viene eseguito come root e manca di CAP_DAC_OVERRIDE, CAP_FOWNER e altre capacità pericolose, non può superare la proprietà già assegnata e gli ACL delle risorse che utilizza. D'altra parte, se un processo viene eseguito come root e ha CAP_MAC_ADMIN, può sovrascrivere il contesto di sicurezza imposto dal MAC.
Quindi MAC è "solo un ulteriore livello di protezione" senza alcun vantaggio reale sul moderno sistema Linux?
Update1 Aggiungerò qui le mie "risposte" ad argomenti particolari. Presumo che nessuno dei processi venga eseguito come root e abbia funzionalità non necessarie (ad eccezione dei processi / script di avvio del sistema).
Un argomento : puoi proteggere un server web dall'esecuzione di comandi shell arbitrari.
Risposta : (mettendo da parte le app Web containerizzate) si potrebbe aggiungere un ACL di autorizzazione per tutti i comandi a cui l'UID / GID del server può accedere e un ACL proibitivo al resto dei comandi sull'host.
Un argomento : un utente può avere un file con i permessi 0777 [e essenzialmente farlo trapelare a tutti nel sistema].
Risposta : lo script di avvio del sistema può impostare l'ACL predefinito sulla directory in cui viene creato questo file, in modo che qualunque cosa il processo utente crea in quella directory ottenga sempre l'ACL ereditato. In generale, avere 7 in "altri" sembra una cattiva idea e se il file ottiene tali autorizzazioni, la politica discrezionale potrebbe essere applicata qui al lancio del sistema (installazione della distribuzione), o anche all'avvio ogni volta che il sistema si avvia.
Risposte
La distinzione sta in chi decide i permessi sui file. Un DAC fornisce al proprietario del file il pieno controllo delle autorizzazioni del file. MAC utilizza le etichette per imporre un controllo centralizzato, il che significa che c'è un ulteriore livello di sicurezza che non spetta al proprietario del file decidere. Ad esempio, un utente potrebbe avere un file con autorizzazioni rwxrwxrwx (777), ma MAC applica il suo rwx solo a un set specifico di etichette di sicurezza, ignorando di fatto DAC.
DAC non copre tutte le potenziali situazioni di autorizzazione di sicurezza che il MAC avrebbe. Gli ACL sono molto flessibili rispetto al DAC.
Per semplicità, DAC ti consente solo di controllare rwx, giusto? Con DAC, puoi essere molto più esplicito e controllare a livello di syscall ciò che è permesso. Ad esempio, potresti consentire a qualcuno di aggiungere a un file, ma non sovrascriverlo / eliminarlo.